/* ═══════════════════════════════════════
   ▓ PATRÓN · Cajón de ACCIÓN — gemelo vanilla ▓
   v1.2 · 2026-10-06 (cosecha completa: esta hoja ya NO PINTA NADA). v1.1 · 2026-10-06. v1.0 · 2026-10-05.
   Ficha: `design-system/PATRON_CAJON_ACCION.md`
   Kit: `catalogo-cd/components/CajonAccion.jsx`
   Lienzo aprobado: `plans/decisiones/_decision_cajon_accion_nuevo_contacto_2026-10-05.html`
   (columna «Propuesta · Variante A, ajustada»).

   El QUINTO tipo de la familia de cajones laterales: el que se abre con un BOTÓN DE ACCIÓN
   («+ Nuevo» de una lista) y sirve para capturar algo. Su primer caso es «Nuevo contacto».

   ⛔ UN PATRÓN SÓLO DISPONE PIEZAS; NO LAS PINTA (GOBIERNO.md §1-ter-bis, ampliada el 2026-10-06 ·
   `node design-system/gate_patron_pinta.js`). Todo lo que este cajón dibuja es una pieza
   canonizada en lo individual, y esta hoja quedó en CERO reglas que pinten:
     · el marco (420 · cabecera 64 · pie Z5), el título de grupo, la pila de campos, la nota
       «(opcional)», el aire de formulario (`data-aire="formulario"`) y la fila de dos campos
       (`.exds-caj-dos`) → `patrones/cajon-lateral/`;
     · el campo (sólo lectura, «(opcional)», ranura de la X, aviso con enlace `data-enlace`,
       desplegable sin elegir en gris `option[data-ejemplo]`, ir al primer error) → `Input`;
     · la lista de tipos con el círculo a la izquierda (`data-indicador="izq"`) y el peso V3 →
       `OptionList`;
     · «+ Agregar otro» bajo un campo (`data-forma="campo"`, máximo 3, la X) → `ListaRepetible`;
     · el correo → `EmailInput`; RFC y CURP en mayúsculas → `input-reglas`; «Agregar otro» y
       «Ubicar en el mapa» → `Button` ghost sm; el pin → `map-pin` del juego de íconos.
   Lo único que queda aquí es DISPOSICIÓN: que un campo ceda dentro de su columna y el margen de la
   lista de tipos.

   DECISION-FUENTE: Ricardo, 2026-10-05 — «El objetivo es rediseñar el cajon lateral de acción
   añadir contacto. […] inventaremos un nuevo cajon de accion, si es posible, con una estructura
   determinada por reglas que pueda aplicar en cualquier cajón de cualquier acción.»
   DECISION-FUENTE: Ricardo, 2026-10-06 — «No puede haber ninguna sección, patrón, pantalla o grupo
   de componentes sin que sus componentes estén canonizados en lo individua»

   REQUISITOS DEL ANFITRIÓN:
     1. Los tokens del canon (`colors_and_type.css`).
     2. `box-sizing: border-box`.
     3. `patrones/cajon-lateral/` (marco) y los componentes `Input` (con su variante select, el
        sólo-lectura, `.exds-input-opt`, `.exds-input-wrap--adorno` y el aviso con enlace),
        `EmailInput`, `Button`, `OptionList`, `IconButton` y `ListaRepetible`; y `input-reglas`
        para formatear RFC y CURP.
     4. El cuerpo del cajón NO lleva relleno propio: cada grupo trae el suyo. Con el relleno
        canónico del marco (`.exds-cajon-pad`) las líneas dejarían de ir a sangre.
     5. Cada grupo es `<section class="exds-cajon-zona" data-aire="formulario">`: la línea entre
        grupos y el aire de 24 son los de la zona del marco, no una copia.
   ═══════════════════════════════════════════════════════════════════════════════ */

/* Un campo = su rótulo ENCIMA + su caja. `min-width: 0` para que, dentro de la pila de campos del
   marco (un grid), ceda en vez de ensanchar la columna: DISPOSICIÓN, no pintura. */
.exds-cjacc-campo {
  min-width: 0;
}

/* La lista de tipos (OptionList en su recuadro canónico, `data-indicador="izq"`): el título del grupo
   ya fija el aire, así que se anula el margen superior de 2 del canon. DISPOSICIÓN. */
.exds-cjacc-tipo[role="radiogroup"] {
  margin: 0;
}

/* «Ubicar en el mapa» (A7): el `Button` ghost sm CANÓNICO (tinta y forma del Button, sin retoque), a la
   izquierda bajo su grupo. Sólo disposición: `justify-self: start` porque la pila de campos es un grid y
   sin él el botón se estiraría, y un margen izquierdo negativo igual a su relleno (14) para que el ícono
   caiga en el borde del campo. */
.exds-cjacc-ubicar.exds-btn {
  justify-self: start;
  margin-left: calc(var(--space-3-5, 14px) * -1);
}

@media (prefers-reduced-motion: reduce) {
  /* El patrón no anima nada por su cuenta: el cuerpo, los grupos y las líneas son estáticos.
     La guarda queda escrita para el día que un grupo se despliegue. */
  .exds-cajon-zona[data-aire="formulario"] { transition: none !important; }
}
