*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
/* ═════════ EL MOVIMIENTO ES UN SISTEMA, NO UN VALOR POR REGLA ═════════
   MEDIDO el 14/09/2026: 226 `transition` en la plataforma y 192 en el v2, con
   CINCO duraciones —.13s .14s .15s .16s .2s— apretadas en 70 milisegundos de
   rango. Esa es la causa de «no se siente fluido», y no es que falte animacion:
   es que un boton y un panel tardan casi lo mismo, asi que el movimiento no
   alcanza a decir QUE TIPO DE COSA acaba de pasar. Un clic tiene que contestar
   antes de que el dedo se levante; una superficie que entra tiene que dar tiempo
   a que el ojo la siga. Son dos velocidades distintas y hasta hoy eran la misma.

   LA ESCALA. Cinco pasos y cada uno tiene UN trabajo:
     --mo-1  90ms   el clic contesta         :active, un tilde, un switch
     --mo-2 140ms   un control cambia        chip, tab, fila, hover de boton
     --mo-3 210ms   algo aparece al lado     dropdown, tooltip, popover
     --mo-4 300ms   una superficie entra     modal, cajon, panel lateral
     --mo-5 440ms   la pantalla se compone   entradas escalonadas
     --mo-paso 45ms  el escalon entre hermanos de una misma entrada

   LAS CURVAS. Habia DIEZ, y tres eran el mismo rebote escrito a mano con
   decimales distintos (.34,1.56,.64,1 · .34,1.5,.6,1 · .34,1.7,.5,1). Quedan
   cuatro y cada una nombra su fisica: `out` frena al entrar, `in` acelera al
   salir, `std` mueve de un estado a otro, `pop` es el UNICO rebote.

   LOS CINCO TOKENS VIEJOS NO SE BORRAN: apuntan a la escala nueva. Son 418
   declaraciones repartidas en cinco archivos y reescribirlas de una es cambiar
   418 cosas sin poder mirar ninguna. Apuntando, la jerarquia entra de una vez y
   cada componente se muda a su paso cuando le toca su tanda.

   Y EL QUE PIDIO NO MOVERSE, NO SE MUEVE: `prefers-reduced-motion` aplasta la
   escala a 1ms en el `:root`, una vez, en vez de pedirle a cada regla que se
   acuerde. Se conserva la opacidad —no marea— y los spinners, que son estado. */
:root{--z-panel:200;--z-fixed:500;--z-over:600;--z-nav:650;--z-modal:9999;--z-modal2:10000;--z-top:10001;--mo-1:90ms;--mo-2:140ms;--mo-3:210ms;--mo-4:300ms;--mo-5:440ms;--mo-paso:45ms;--ez-out:cubic-bezier(.22,1,.36,1);--ez-in:cubic-bezier(.4,0,1,.4);--ez-std:cubic-bezier(.4,0,.2,1);--ez-pop:cubic-bezier(.34,1.56,.64,1);--tr-fast:var(--mo-1);--tr-14:var(--mo-2);--tr-base:var(--mo-2);--tr-16:var(--mo-2);--tr-slow:var(--mo-3);--ease-out:var(--ez-out);--sp1:4px;--sp2:6px;--sp3:8px;--sp4:10px;--sp5:12px;--sp6:14px;--sp7:16px;--sp8:18px;--sp9:20px;--sp10:24px;--r6:6px;--r9:9px;--r10:10px;--r11:11px;--r14:14px;--r20:20px;--rpill:999px;--border:1px solid var(--bd);--sh-xs:0 1px 2px rgba(15,23,42,.04);--sh-sm:0 1px 3px rgba(15,23,42,.04);--sh-md:0 10px 22px rgba(15,23,42,.08);--sh-brand:0 4px 14px rgba(19,193,172,.3);--sh-focus:0 0 0 3px rgba(19,193,172,.1);--teal-d:#0d9488;--teal-tx:#0a5f55;--violet:#7c3aed;--violet2:#8b5cf6;--slate:#64748b;--amber-d:#d97706;--amber-dd:#92400e;--blue:#2563eb;--sky:#0ea5e9;--slate-bg:#f1f5f9;
  /* === Tipografía: escala estándar (no aplicada aún) === */
  --fs-display:28px;--fs-h1:22px;--fs-h2:18px;--fs-h3:15px;--fs-body:14px;--fs-sec:13px;--fs-ter:12px;--fs-label:11px;--fs-micro:10px;
  --fw-reg:400;--fw-med:500;--fw-semi:600;--fw-bold:700;--fw-heavy:800;
  --lh-tight:1.2;--lh-snug:1.3;--lh-body:1.45;--lh-loose:1.6;
  --p:#13c1ac;--pd:#0e9c8a;--pl:#e8faf7;--p2:rgba(19,193,172,.14);
  --bg:#f4f7fa;--surf:#fff;--bd:#e6ecf2;--bd2:#cdd8e3;
  --t1:#14202e;--t2:#4a5a6b;--t3:#8ea0b2;
  --ok:#0ea47f;--warn:#e8890c;--danger:#e5484d;
  --ok-bg:#e7f8f2;--warn-bg:#fdf4e7;--danger-bg:#fdecec;
  --r8:8px;--r12:12px;--r16:16px;
  --sb-w:228px;--sb-coll:52px;
}
/* ══ REDUCIR MOVIMIENTO ES SUAVIZAR, NO APAGAR ══
   La primera version aplastaba los cinco tokens a 1ms, que es comodo de
   escribir y es demasiado: al que pide menos movimiento le sacaba tambien los
   fundidos, y un fundido de opacidad no marea a nadie —explica—. Lo que marea
   es el DESPLAZAMIENTO. Asi que las duraciones bajan pero no se van, el
   `:active` pasa a instantaneo porque ahi el movimiento ES el mensaje, y las
   dos entradas propias se redefinen sin `translate`: mismo nombre, mismo
   fundido, cero desplazamiento. Las animaciones heredadas —las de ZnappView y
   el v2, que mueven mucho— si se apagan de golpe: no las escribi yo y no puedo
   garantizar cual de ellas marea. */
@media (prefers-reduced-motion:reduce){
  :root{--mo-1:1ms;--mo-2:100ms;--mo-3:120ms;--mo-4:140ms;--mo-5:160ms;--mo-paso:0ms}
  *,*::before,*::after{animation-duration:1ms!important;animation-iteration-count:1!important;
    scroll-behavior:auto!important}
  @keyframes homeEnt{from{opacity:0}to{opacity:1}}
  @keyframes znFila{from{opacity:0}to{opacity:1}}
  .home-ent,.home-kpis .home-kpi,.home-acts>*,.pdv-tbl tbody.zn-entra tr{
    animation-duration:var(--mo-3)!important;animation-delay:0ms!important}
  /* los que SI siguen girando: un spinner no es adorno, es el estado «esperame» */
  .spin,.zn-spin,.loading,[class*="spinner"]{animation-duration:.9s!important;
    animation-iteration-count:infinite!important}
}
/* ═════════ EL CLIC CONTESTA ═════════
   Es el 80% de «entendés que hiciste algo» y casi no existía: había hover en
   todos lados —que dice «esto se puede tocar»— y casi nada en `:active`, que es
   el que dice «te escuché». La diferencia importa cuando la accion tarda: entre
   el clic y la respuesta del servidor hay medio segundo en el que la pantalla
   no daba una sola señal, y ahí es donde el usuario vuelve a hacer clic.
   Hundirse un 3% es suficiente —no es una animacion, es un acuse de recibo— y a
   90ms termina antes de que el dedo se levante.

   Va sobre `button` y `[role=button]` de una vez y no componente por
   componente: son 212 controles con `cursor:pointer` repartidos en cinco
   archivos, y el que se escriba a mano es el que se va a olvidar mañana.
   `:where()` lo deja en especificidad CERO, asi que cualquier regla existente
   con su propio `transform` le gana sin tener que pelear con `!important`.
   `data-nopress` es la puerta de salida para el que no deba hundirse. */
:where(button,[role="button"],.ni,.zsel-ck,.fp-chip,.map-chip,.pro-chip,.com-grpchip):not(:disabled):not([aria-disabled="true"]):not([data-nopress]):active{
  transform:scale(.97);
  /* 110ms: la banda del acuse de pulsacion es 100-160. A 90 el ojo casi no
     alcanza a registrar que se hundio. */
  transition-duration:110ms
}
/* los que son una superficie grande se hunden menos: un 3% en una tarjeta de
   240px de alto son 7px de salto y se lee como un error de layout, no como un
   acuse. */
:where(.cre-mcard,.com-optcard,.mis-introcard,.rp-solicitar,.cc-card,.ccr-card):not([data-nopress]):active{
  transform:scale(.993)
}
/* ══ LOS MODALES ENTRAN, Y ENTRAN DESDE EL CENTRO ══
   El popover sale de su boton porque cuelga de el; un modal no cuelga de
   nada —aparece en el medio de la pantalla— asi que su origen es el centro y
   cambiarlo lo haria salir de un lugar arbitrario.
   Se anima la ENTRADA y no la salida: al abrir hay algo nuevo que ubicar y
   300ms ayudan a ubicarlo; al cerrar el usuario ya decidio, y cualquier demora
   se lee como que el clic no agarro. */
/* FAMILIA A · NACEN EN EL DOM. `.rc2-ov`, `.zn-prompt-ov` y `.rev-pop-ov` se
   crean con el modal ya abierto y se borran al cerrar, asi que no hay estado
   cerrado que escribir: `@starting-style` les da el cuadro cero y listo. */
:where(.rc2-ov,.zn-prompt-ov,.rev-pop-ov){
  transition:opacity var(--mo-4) var(--ez-out)}
@starting-style{ :where(.rc2-ov,.zn-prompt-ov,.rev-pop-ov){opacity:0} }
/* FAMILIA B · VIVEN APAGADOS EN LA PAGINA y se encienden con una clase. Acá
   el par tiene que estar completo —cerrado en 0, abierto en 1— o al cerrar el
   nodo se queda entero en pantalla el tiempo de la transicion. */
:where(.mis-overlay,.cm-modal-ov,.ced-ov,.zn-pinpick,.score-info-overlay){
  opacity:0;transition:opacity var(--mo-4) var(--ez-out),display var(--mo-4) allow-discrete}
.mis-overlay.vis,.cm-modal-ov.vis,.zn-pinpick.vis,.score-info-overlay.vis,.ced-ov.on{opacity:1}
@starting-style{
  .mis-overlay.vis,.cm-modal-ov.vis,.zn-pinpick.vis,.score-info-overlay.vis,.ced-ov.on{opacity:0}
}
:where(.mis-modal,.rc2-modal,.cm-modal,.ced-modal,.zn-prompt,.pp-modal,.score-info-box,.rev-pop){
  transform-origin:center;
  transition:opacity var(--mo-4) var(--ez-out),transform var(--mo-4) var(--ez-out)}
@starting-style{
  :where(.mis-modal,.rc2-modal,.cm-modal,.ced-modal,.zn-prompt,.pp-modal,.score-info-box,.rev-pop){
    opacity:0;transform:translateY(8px) scale(.97)}
}
/* ═════════ CUANDO LA LISTA CAMBIA, LA LISTA LO DICE ═════════
   Es la parte del pedido que no es «que se sienta fluido» sino «que entienda que
   hice algo y que exactamente». Buscar, filtrar, ordenar o cambiar de pagina
   reescribe el cuerpo de la tabla en un cuadro, y el resultado es que en una
   lista de diez filas parecidas —nombres de supermercados, direcciones— el ojo
   no registra que cambio nada. El usuario escribe en el buscador y no sabe si
   filtro, si no habia resultados, o si el campo no anduvo.
   Las filas entran corridas 18ms una de otra. Eso alcanza: el movimiento de
   arriba hacia abajo dice «esto es nuevo» sin ningun cartel, y con diez filas
   la secuencia entera dura 180ms, que es menos de lo que tarda el ojo en
   volver del buscador a la tabla.

   `backwards` y no `forwards`, por lo mismo que en el home: el estado normal de
   una fila es verse. La animacion solo decide como llega.

   Funciona sin tocar una linea de JS porque `_comApply` —y sus hermanas— sacan
   los `<tr>` del documento y los vuelven a poner: un nodo reinsertado reinicia
   sus animaciones. Lo que era un detalle de implementacion resulta ser
   exactamente el disparador que hace falta. */
.pdv-tbl tbody.zn-entra tr{animation:znFila var(--mo-3) var(--ez-out) backwards}
@keyframes znFila{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
.pdv-tbl tbody.zn-entra tr:nth-child(2){animation-delay:18ms}
.pdv-tbl tbody.zn-entra tr:nth-child(3){animation-delay:36ms}
.pdv-tbl tbody.zn-entra tr:nth-child(4){animation-delay:54ms}
.pdv-tbl tbody.zn-entra tr:nth-child(5){animation-delay:72ms}
.pdv-tbl tbody.zn-entra tr:nth-child(6){animation-delay:90ms}
.pdv-tbl tbody.zn-entra tr:nth-child(7){animation-delay:108ms}
.pdv-tbl tbody.zn-entra tr:nth-child(8){animation-delay:126ms}
.pdv-tbl tbody.zn-entra tr:nth-child(9){animation-delay:144ms}
.pdv-tbl tbody.zn-entra tr:nth-child(n+10){animation-delay:162ms}
html{font-family:"DM Sans",sans-serif;background:var(--bg);color:var(--t1);font-size:var(--fs-body);line-height:1.5;overflow-x:hidden}
body{display:flex;min-height:100vh;min-height:100svh;overflow-x:hidden}

/* ── SIDEBAR ── */
.sb{width:var(--sb-w);background:var(--surf);border-right:var(--border);display:flex;flex-direction:column;position:fixed;top:0;left:0;height:100vh;height:100svh;z-index:var(--z-panel);transition:width .25s var(--ez-std);overflow:hidden}
.sb-logo{height:64px;padding:0 16px;display:flex;align-items:center;justify-content:center;border-bottom:var(--border);flex-shrink:0;cursor:pointer;user-select:none;transition:background var(--tr-base)}
.sb-logo:hover{background:var(--bg)}
.sb-logo-img{height:30px;width:auto;max-width:172px;object-fit:contain;object-position:center;pointer-events:none;transition:opacity var(--tr-slow)}
.sb-logo-icon{display:none;height:31px;width:31px;object-fit:contain;pointer-events:none}
/* ══ EL AIRE DE LA BARRA, SOBRE LA MISMA ESCALA QUE EL RESTO ══
   La barra mezclaba literales y valores fuera de la escala —`2px` entre ítems,
   `10px` en el filete, `14px` en el separador— mientras el resto del dashboard
   usa `--sp1..--sp9`. Y su padding era `--sp3` (8px) contra los 16 del logo y
   los 12 del pie: tres ritmos distintos en una columna de 228px. Ahora todo
   sale de la escala y el horizontal empata con el pie. */
.nav{padding:var(--sp5) var(--sp5) var(--sp7);flex:1;overflow-y:auto;overflow-x:hidden}
.cfg-card{background:var(--surf);border:var(--border);border-radius:var(--r12);padding:18px 20px}
.cfg-dist-more{background:none;border:none;color:var(--p);font-size:var(--fs-label);cursor:pointer;padding:8px 0 2px;font-weight:600}
.cfg-dist-more:hover{text-decoration:underline}
.cfg-card-ttl{font-size:var(--fs-body);font-weight:var(--fw-bold);color:var(--t1);display:flex;align-items:center;gap:var(--sp3)}
.cfg-card-sub{font-size:var(--fs-ter);color:var(--t3);margin:3px 0 14px;line-height:1.5}
.cfg-row{display:flex;align-items:center;justify-content:space-between;gap:var(--sp4);padding:7px 0;border-bottom:var(--border)}
.cfg-row:last-of-type{border-bottom:none}
.cfg-row-lbl{font-size:var(--fs-body);color:var(--t1);font-weight:var(--fw-semi)}
.cfg-row-lbl small{display:block;font-size:var(--fs-label);color:var(--t3);font-weight:var(--fw-med)}
.cfg-input{width:96px;text-align:right}
.cfg-users-empty{color:var(--t3);text-align:center;padding:14px 8px}
.cfg-users-act{display:flex;gap:var(--sp2);justify-content:flex-end}
.cfg-ubtn{border:var(--border);background:var(--surf);border-radius:var(--r6);padding:4px 10px;font-size:var(--fs-ter);font-weight:var(--fw-semi);font-family:inherit;cursor:pointer;color:var(--t2);transition:var(--tr-base)}
.cfg-ubtn:hover{border-color:var(--p);color:var(--p)}
.cfg-ubtn.del:hover{border-color:var(--danger);color:var(--danger)}
.cfg-btn{background:var(--p);color:var(--surf);border:none;border-radius:var(--r8);padding:9px 16px;font-size:var(--fs-body);font-weight:var(--fw-bold);font-family:inherit;cursor:pointer;transition:var(--tr-base)}
.cfg-btn:hover{background:var(--p-dk,#0b7c6f)}
.cfg-btn.sec{background:var(--bg);color:var(--t1);border:var(--border)}
.cfg-btn:disabled{opacity:.5;cursor:default}
.cfg-msg{font-size:var(--fs-sec);font-weight:var(--fw-semi);margin-top:10px;min-height:16px}
.cfg-search{width:100%;padding:8px 12px;border:var(--border);border-radius:var(--r8);font-size:var(--fs-body);font-family:inherit;background:var(--bg);outline:none;color:var(--t1);box-sizing:border-box;margin-bottom:8px}
.cfg-search:focus{border-color:var(--p)}
.cfg-list{display:flex;flex-direction:column;gap:3px;max-height:220px;overflow-y:auto;border:var(--border);border-radius:var(--r8);padding:var(--sp2)}
.cfg-citem{display:flex;align-items:center;gap:var(--sp4);padding:8px 10px;border-radius:var(--r8);cursor:pointer;transition:.12s}
.cfg-citem:hover{background:var(--bg)}
.cfg-citem.on{background:var(--p2)}
.cfg-citem-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}
.cfg-citem-name{flex:1;font-size:var(--fs-body);font-weight:var(--fw-semi);color:var(--t1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cfg-citem-sos{font-size:var(--fs-label);color:var(--t3);font-weight:var(--fw-semi);flex-shrink:0}
.cfg-citem-mark{width:18px;height:18px;border-radius:50%;border:2px solid var(--bd);flex-shrink:0;display:flex;align-items:center;justify-content:center}
.cfg-citem.on .cfg-citem-mark{border-color:var(--p);background:var(--p)}
.nav::-webkit-scrollbar{width:3px}.nav::-webkit-scrollbar-thumb{background:var(--bd2);border-radius:2px}
.nav-grp{font-size:var(--fs-micro);font-weight:var(--fw-bold);color:var(--t2);text-transform:uppercase;letter-spacing:1px;padding:18px 12px 5px;white-space:nowrap;transition:opacity var(--tr-base),height .25s,padding .25s;line-height:1}
/* ══════════════════════════════════════════════════════════════════════
   LA BARRA, CONTRA `docs/inspiracion/sidebar.png`
   El item medía 34px de alto —8px de padding y 13px de texto— con el ícono a
   18. En la referencia mide 46, el ícono 19 y la etiqueta 15, y ESO es lo que
   hace que cada destino se lea como una sección y no como un renglón de una
   lista. El área clicable pasa de 34 a 46px de alto, que además es el mínimo
   cómodo para apuntar sin mirar.
   ══════════════════════════════════════════════════════════════════════ */
/* ══ SOBRIA, NO SIMPÁTICA ══
   DM Sans es geométrica y de ojo redondo: a 15px y peso 600, con el ícono a
   trazo 2.15 y un relleno teal fuerte, cada destino se leía como un botón de
   juguete. Pero lo sobrio sale del PESO, el trazo y el estado, no de cambiar
   de tipografía: probé con una sans de sistema y era peor —metía una segunda
   familia al lado de DM Sans y ese choque se notaba más que la redondez—.
   Queda DM Sans a 14px, el mismo cuerpo que el título del topbar, con peso
   normal y tracking apenas cerrado. */
.ni{display:flex;align-items:center;gap:13px;padding:0 14px;min-height:50px;
  border-radius:9px;cursor:pointer;margin-bottom:var(--sp1);
  transition:background var(--tr-base),color var(--tr-base);
  /* el cuerpo NO se declara acá: `.cc-sb .ni` en `campanas.css` tiene la misma
     especificidad, carga después y lo fija en `--fs-body` (14px) — el mismo
     que el título del topbar, que es justo la coherencia que hace falta. */
  font-weight:var(--fw-med);letter-spacing:-.01em;color:#1b2736;
  user-select:none;white-space:nowrap;position:relative}
/* el hover se nota sin encenderse: un gris frío, sin teal */
.ni:hover{background:#f1f5f9;color:var(--t1)}
/* EL ACTIVO SE TIÑE ENTERO, no sólo la letra: en la referencia es un bloque
   teal claro con el ícono en tinta de marca, y se ve desde el otro lado de la
   pantalla. Antes cambiaba el color del texto y poco más. */
/* EL ACTIVO SE DISTINGUE POR TINTA, NO POR RELLENO. El bloque teal al .20 con
   un filo de 3px se leía como un botón presionado. Un velo mínimo alcanza
   cuando el ícono y la etiqueta cambian de color: eso es lo que dice «estás
   acá» sin gritarlo. */
.ni.on{background:rgba(19,193,172,.10);color:#0a7d6e;font-weight:var(--fw-semi)}
.ni.on .ni-ic{color:var(--p)}
.ni.on:hover{background:rgba(19,193,172,.15)}
/* ÍCONOS FINOS Y DE SOPORTE. A trazo 2.15 y 20px competían con la etiqueta;
   son la marca del destino, no su título. Trazo 1.6, un punto menos de tamaño
   y un gris con cuerpo: se leen, pero no mandan. */
.ni-ic{width:18px;height:18px;display:flex;align-items:center;justify-content:center;
  flex-shrink:0;color:#61748a;transition:color var(--tr-base)}
.ni-ic svg{width:18px;height:18px;stroke-width:1.6}
.ni:hover .ni-ic{color:#33455a}
.ni-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}

/* ── el filete que reemplaza a los rótulos de grupo ── */
.nav-sep{height:1px;background:var(--bd);margin:var(--sp6) var(--sp4)}

/* ── la cuenta de alertas, como el «3» rojo de la referencia ── */
.ni-n{flex:0 0 auto;min-width:21px;height:21px;padding:0 6px;border-radius:999px;
  display:inline-flex;align-items:center;justify-content:center;
  background:#e5484d;color:#fff;font-size:11px;font-weight:700;
  font-variant-numeric:tabular-nums;line-height:1}
.sb.collapsed .ni-n{display:none}

/* ── WORKSPACE: una superficie propia, no una lista indentada ── */
/* SIN RECUADRO. La caja que envolvía a Workspace agregaba una cuarta superficie
   a la barra —fondo, borde y radio— para decir algo que la sangría de los hijos
   y el chevron ya dicen. El grupo sigue siendo un grupo: lo agrupa la sangría,
   no un marco. `.ni-grupo` queda como contenedor estructural, sin pintura. */
.ni-grupo{margin:var(--sp1) 0}
.ni-grupo .ni-parent{margin-bottom:0}
/* la rotación del chevron y su `margin-left:auto` ya viven en `informe.css`
   —`.sb .ni-chev` y `.sb .ni-parent:not(.exp) .ni-chev`—: acá sólo el color,
   o serían dos archivos declarando lo mismo y ganando el que cargue último. */
.ni-parent .ni-chev{color:var(--t2)}
/* `.cc-sb` adelante porque hay que ganarle a `.cc-sb .ni{font-size:--fs-body}`:
   sin eso el hijo medía lo mismo que el padre y el grupo se leía plano. */
.cc-sb .ni-grupo .ni-child{min-height:42px;font-size:13px;font-weight:var(--fw-med);
  padding-left:var(--sp6);margin-bottom:var(--sp1);color:#2b3a4c}
.ni-grupo .ni-child .ni-ic{width:17px;height:17px}
.ni-grupo .ni-child .ni-ic svg{width:17px;height:17px;stroke-width:1.6}

/* ── CREAR: la única acción de la barra, y por eso la única sólida ── */
/* CREAR NO PUEDE PERDER LA DELANTERA. Si los once destinos suben a semibold y
   50px, el CTA tiene que subir mas o deja de ser el protagonista: 56px, peso
   800 y una sombra mas larga. Es lo unico solido de la barra. */
/* CREAR SIGUE MANDANDO, pero por ser el único sólido y no por ser el más
   gordo: relleno plano en vez de degradé, peso 600 y una sombra corta. En una
   barra sobria, el contraste de superficie ya lo separa de los once destinos. */
/* el margen de abajo es mayor a propósito: la sombra del botón baja ~16px, y
   como `.nav` es un bloque los márgenes COLAPSAN —queda el mayor de los dos,
   no la suma—, así que con 14 contra los 14 del filete seguían tocándose. */
.ni-crear{margin:var(--sp7) 0 var(--sp9);min-height:52px;border-radius:11px;
  background:#0d9c8b;
  color:#fff;font-weight:var(--fw-semi);font-size:15px;letter-spacing:-.01em;
  box-shadow:0 1px 2px rgba(4,51,44,.14),0 6px 16px rgba(13,156,139,.22)}
.ni-crear .ni-ic,.ni-crear .ni-chev{color:#fff}
.ni-crear .ni-ic{width:19px;height:19px}
.ni-crear .ni-ic svg{width:19px;height:19px;stroke-width:2}
.ni-crear .ni-chev{opacity:.8}
.ni-crear:hover{background:#0f8d7f;color:#fff;
  box-shadow:0 1px 2px rgba(4,51,44,.16),0 8px 20px rgba(13,156,139,.28)}
.ni-crear:hover .ni-ic{color:#fff}
.ni-crear.on{background:#0d9c8b;color:#fff}
/* EL BOTÓN CREAR NO CAMBIA DE TAMAÑO AL PLEGARSE. Tenía `min-height:46px`
   contra los 52 de desplegada, y un margen distinto: durante la transición el
   botón se encogía seis píxeles y se corría, que es lo que deformaba el
   efecto. Mismo alto y mismo margen en los dos estados: sólo desaparece la
   etiqueta, como en el resto de los ítems. */
.sb.collapsed .ni-crear{margin:var(--sp7) 0 var(--sp9);min-height:52px;border-radius:11px}

/* ── el pie: créditos y configuración, fuera de la navegación ── */
/* el `gap` no separa un nodo de texto suelto de su <em> cuando el contenedor
   hereda `overflow:hidden` del `.ni-label`: se leía «Créditos$0». */
.ni-pie .ni-label{display:flex;align-items:baseline}
.ni-pie em{font-style:normal;font-size:13px;font-weight:var(--fw-bold);color:var(--p);
  margin-left:8px}
.ni-pie em:empty{display:none}
.ni-pie .ni-chev{color:var(--t2);opacity:.7}
.sb.collapsed .ni-pie em{display:none}
.ni-score{margin-left:auto;flex-shrink:0;min-width:29px;height:20px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--r10);font-size:var(--fs-label);font-weight:var(--fw-bold);font-variant-numeric:tabular-nums;letter-spacing:.2px}
.ni-score.s-hi{background:rgba(16,185,129,.14);color:#059669}
.ni-score.s-mid{background:rgba(245,158,11,.17);color:#b45309}
.ni-score.s-lo{background:rgba(239,68,68,.13);color:#dc2626}
.sb.collapsed .ni-score{display:none}
.sb-foot{padding:12px 16px;border-top:var(--border);overflow:hidden;transition:padding .25s}
.sb-client-name{font-size:var(--fs-sec);font-weight:var(--fw-bold);color:var(--t1);line-height:var(--lh-snug);white-space:nowrap}
.sb-client-meta{font-size:var(--fs-micro);color:var(--t3);margin-top:2px;white-space:nowrap}
.sb-foot .sb-client-name{font-size:13px;font-weight:800;color:var(--t1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:0}
.sb-foot .sb-client-meta{font-size:11px;color:var(--t3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:0}
.sb-foot-actions{display:flex;flex-direction:column}
.sb-fa{width:100%;display:flex;align-items:center;justify-content:flex-start;gap:10px;padding:10px 13px;border:1px solid var(--bd,#e5eaf0);border-radius:var(--r10,10px);background:var(--surf,#fff);color:var(--t2);font-size:13px;font-weight:700;cursor:pointer;font-family:inherit;transition:var(--tr-14);text-align:left}
.sb-fa svg{width:16px;height:16px;flex-shrink:0}
.sb-fa span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* ── Volver al Home: arriba de todo, bajo el logo. Separado de la navegación
      por una línea, para que se lea como "salida" y no como una sección más. ── */
.sb-back-wrap{padding:10px 14px 12px;border-bottom:var(--border)}
.sb-back{width:100%;display:flex;align-items:center;gap:10px;padding:9px 12px;
  border:1px solid var(--p2,#ccf5ef);border-radius:var(--r10,10px);background:var(--pl,#e6faf6);
  color:var(--pd,#0f766e);font-size:13px;font-weight:700;font-family:inherit;cursor:pointer;
  text-align:left;transition:background var(--tr-base),border-color var(--tr-base),color var(--tr-base),transform var(--tr-base)}
.sb-back:hover{background:var(--p);border-color:var(--p);color:#fff;transform:translateX(-2px)}
.sb-back svg{width:17px;height:17px;flex:0 0 auto}
.sb-back span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sb.collapsed .sb-back-wrap{padding:10px 0 12px;display:flex;justify-content:center}
.sb.collapsed .sb-back{width:38px;height:38px;padding:0;justify-content:center}
.sb.collapsed .sb-back span{display:none}
.sb.collapsed .sb-back:hover{transform:none}
/* el pie queda solo con dos acciones: más aire entre ellas */
.sb-foot-actions{gap:9px}
.sb-fa:hover{border-color:var(--p);color:var(--pd);background:var(--pl,#e6faf6)}
.sb-fa.on{border-color:var(--p);background:var(--pl,#e6faf6);color:var(--pd);font-weight:800}
.sb.collapsed .sb-fa span{display:none}
.sb.collapsed .sb-fa{width:38px;height:38px;padding:0;justify-content:center;border-radius:10px;text-align:center}
.sb.collapsed .sb-fa svg{margin:0}
.sb.collapsed .sb-foot-actions{flex-direction:column;align-items:center;gap:8px;width:auto}
/* collapsed */
.sb.collapsed{width:var(--sb-coll)}
.sb.collapsed .sb-logo-img{display:none}
.sb.collapsed .sb-logo-icon{display:flex}
.sb.collapsed .sb-logo{padding:0;justify-content:center}
.sb.collapsed .nav-grp{opacity:0;height:0;padding:0;overflow:hidden}
/* `gap:0` PORQUE LA ETIQUETA SIGUE AHI. Con `display:none` no habia nada que
   separar; ahora la etiqueta mide cero pero sigue siendo un item del flex, y
   los 13px de `gap` del `.ni` corren el icono 6px a la izquierda. MEDIDO: el
   centro del icono caia en -6 del centro del item. */
/* MISMO CRITERIO QUE `.cc-sb.collapsed .ni` en `campanas.css`: plegada, el
   ícono se queda donde estaba. Las dos reglas tienen que decir lo mismo o el
   sidebar se comporta distinto según qué clases tenga puestas. */
.sb.collapsed .ni{justify-content:flex-start;padding:10px 8px;gap:10px}
/* ═════════ LA BARRA SE ABRE, NO APARECE ═════════
   MEDIDO ANTES DE TOCAR NADA: el plan sospechaba que animar `width` disparaba
   relayout de la pagina entera y que ahi estaba la traba. Se midio abriendo y
   cerrando seis veces seguidas —p50 6,9ms, p99 7,6ms, el peor cuadro 9,6 y
   CERO cuadros por encima de 20—. No se traba. Pasar `width` a `transform`
   habria sido reescribir el layout del shell entero para arreglar algo que no
   esta roto, asi que no se hace; queda anotado que se midio y cuanto dio.

   LO QUE SI FALTABA es que se lea como que se ABRE. Las etiquetas pasaban de
   `display:none` a visible todas en el mismo cuadro: la barra cambiaba de
   ancho con suavidad y el contenido aparecia de golpe adentro, que es
   exactamente la sensacion de dos cosas separadas en vez de un movimiento.
   Ahora se desvanecen, y entran corridas 30ms una de otra siguiendo al borde
   que se abre. Al cerrar se van todas juntas y rapido: cerrar es una decision
   ya tomada y esperar un escalonado se siente lento.

   EL MECANISMO NO ES NUEVO: es el que `campanas.css` ya usa para su propia
   barra —desvanecer y `flex:0 0 0`, nunca `display`— y funciona. Con
   `display:none` no hay nada que animar, y sin apagar el `flex:1` la caja
   invisible sigue repartiendo el ancho del item y corre el icono del centro.
   Se copia ese, en vez de inventar un segundo. */
.sb .ni-label{opacity:1;transform:translateX(0);
  transition:opacity var(--mo-3) var(--ez-out),transform var(--mo-3) var(--ez-out)}
.sb.collapsed .ni-label{display:block;opacity:0;transform:translateX(-8px);
  flex:0 0 0;width:0;min-width:0;pointer-events:none;
  transition-duration:var(--mo-1);transition-delay:0s}
/* el escalon: 30ms por item y se corta en el sexto —mas alla de eso la
   secuencia entera pasaria el medio segundo y la barra se sentiria lenta.
   Vale para las dos barras: la del shell y la de campanas. */
:where(.sb):not(.collapsed) .nav .ni:nth-child(2) .ni-label{transition-delay:30ms}
:where(.sb):not(.collapsed) .nav .ni:nth-child(3) .ni-label{transition-delay:60ms}
:where(.sb):not(.collapsed) .nav .ni:nth-child(4) .ni-label{transition-delay:90ms}
:where(.sb):not(.collapsed) .nav .ni:nth-child(5) .ni-label{transition-delay:120ms}
:where(.sb):not(.collapsed) .nav .ni:nth-child(n+6) .ni-label{transition-delay:150ms}

.sb.collapsed .sb-foot{padding:10px 0;display:flex;flex-direction:column;align-items:center;gap:8px}.sb.collapsed .sb-client-name,
.sb.collapsed .sb-client-meta{display:none}
.sb.collapsed .ni:hover::after{content:attr(data-tt);position:fixed;left:60px;top:auto;background:var(--t1);color:var(--surf);font-size:var(--fs-sec);font-weight:var(--fw-semi);padding:5px 12px;border-radius:7px;white-space:nowrap;z-index:var(--z-modal2);pointer-events:none;box-shadow:0 4px 14px rgba(0,0,0,.25);transform:translateY(-50%)}

/* ── MAIN ── */
.main{margin-left:var(--sb-w);width:calc(100% - var(--sb-w));flex:none;min-height:100vh;min-height:100svh;display:flex;flex-direction:column;transition:margin-left .25s var(--ez-std),width .25s var(--ez-std)}
.main.sb-collapsed{margin-left:var(--sb-coll);width:calc(100% - var(--sb-coll))}
.main::before{content:"";position:fixed;top:0;left:var(--sb-w);right:0;bottom:0;background:radial-gradient(ellipse 50% 40% at 80% 10%,rgba(19,193,172,.05) 0%,transparent 60%);pointer-events:none;z-index:0;transition:left .25s var(--ez-std)}
.main.sb-collapsed::before{left:var(--sb-coll)}

/* ── TOOLBAR ── */
.tb{background:var(--surf);border-bottom:var(--border);padding:0 20px;height:64px;display:flex;align-items:center;gap:var(--sp3);position:sticky;top:0;z-index:150}
.tb-title{font-size:var(--fs-h3);font-weight:var(--fw-heavy);color:var(--t1);flex:1;min-width:0;overflow:hidden;white-space:nowrap;display:flex;align-items:center;gap:9px}
.tb-title span{color:var(--t1);font-weight:var(--fw-heavy)}
/* LA MIGA DE PAN. «Inicio» es un boton y se ve como un enlace apagado; el
   ultimo tramo es donde estas y va en tinta plena. */
.tb-crumb{display:inline-flex;align-items:center;gap:7px;background:none;border:0;padding:0;
  cursor:pointer;font:inherit;font-weight:var(--fw-med);color:var(--t3);
  transition:color var(--tr-14,.14s) ease}
.tb-crumb:hover{color:var(--p)}
.tb-crumb svg{flex-shrink:0}
.tb-crumb-sep{color:var(--t4,#aab);font-weight:var(--fw-med);margin:0 -2px}
.tb-title .tb-crumb-a{display:inline-flex;align-items:center;gap:7px;
  color:var(--t1);font-weight:var(--fw-heavy)}
.tb-user{display:flex;align-items:center;gap:var(--sp4);flex-shrink:0}
.tb-user .cc-user-av{width:34px;height:34px;border-radius:var(--r9);font-size:var(--fs-body)}
.tb-user-meta{display:flex;flex-direction:column;line-height:1.15}
.tb-user-meta .sb-client-name,.tb-user-meta .sb-client-meta{white-space:nowrap}
.tb-logout{height:34px;padding:0 13px;gap:7px;border-radius:var(--r9);border:var(--border);background:transparent;color:var(--t3);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:var(--tr-base);flex-shrink:0}
.tb-logout-txt{font-size:var(--fs-sec);font-weight:var(--fw-bold)}
@media(max-width:600px){.tb-logout-txt{display:none}.tb-logout{padding:0;width:34px}}
.tb-logout:hover{border-color:var(--danger,var(--danger));color:var(--danger,var(--danger))}
.tb-logout svg{width:16px;height:16px}
@media(max-width:560px){.tb-user-meta{display:none}}
#home-leaflet{position:absolute;inset:0;z-index:1;background:#aaceea}
.home-map-empty{display:flex;align-items:center;justify-content:center;height:100%;color:var(--t3);font-size:var(--fs-body);padding:0 20px;text-align:center}
.home-empty-map{pointer-events:none}
.home-map .leaflet-control-zoom,.home-map .leaflet-control-zoom *{pointer-events:auto}
.tb-title svg{flex-shrink:0}
body.zn-precampaign #centro-misiones,body.zn-precampaign #cm-tab{display:none!important}
.cre-sec-t{font-size:var(--fs-body);font-weight:var(--fw-bold);color:var(--t1);margin:28px 0 13px;letter-spacing:-.2px}
.cre-back{background:none;border:none;color:var(--t2);font-weight:var(--fw-bold);font-size:var(--fs-body);cursor:pointer;padding:0;margin:14px 0 12px;font-family:inherit}
.cre-back:hover{color:var(--p)}.plat-hint a{color:var(--p);font-weight:var(--fw-bold);cursor:pointer}
.plat-hint{font-size:var(--fs-label);color:var(--t3);margin-top:5px;line-height:1.4}
.cr-gauge{position:relative;flex-shrink:0;width:172px;height:172px}
.cr-card-t{font-size:var(--fs-h3);font-weight:var(--fw-heavy);color:var(--t1)}
.cr-card-s{font-size:var(--fs-sec);color:var(--t3);margin-top:3px;margin-bottom:16px}
.cr-chips{display:flex;gap:var(--sp4);flex-wrap:wrap}
.cr-chip{border:1.5px solid var(--bd);border-radius:var(--r12);padding:11px 16px;font-size:var(--fs-body);font-weight:var(--fw-bold);color:var(--t2);cursor:pointer;transition:var(--tr-fast);background:var(--bg)}
.cr-chip:hover{border-color:var(--p)}
.cr-chip.on{border-color:var(--p);background:var(--p2);color:var(--pd)}
.cr-chip.method{display:flex;align-items:center;gap:var(--sp3)}
.cr-label{font-size:var(--fs-sec);font-weight:var(--fw-bold);color:var(--t2);margin:18px 0 9px}
.cr-mv-badge{display:inline-block;font-size:var(--fs-label);font-weight:var(--fw-bold);padding:3px 9px;border-radius:7px}
.cr-montos{margin-top:4px}
.cr-montos .cr-chip{position:relative;flex:1;text-align:center;justify-content:center}
.cr-pop{position:absolute;top:-9px;left:50%;transform:translateX(-50%);background:var(--p);color:var(--surf);font-size:var(--fs-micro);font-weight:var(--fw-bold);padding:2px 8px;border-radius:99px;white-space:nowrap}
.cr-sent{text-align:center;padding:30px 16px 24px}.cr-sent-ic{width:64px;height:64px;border-radius:50%;background:#10b9811a;display:flex;align-items:center;justify-content:center;margin:0 auto 16px}.cr-sent-t{font-size:var(--fs-h2);font-weight:var(--fw-bold);color:var(--t1);margin-bottom:8px}.cr-sent-s{font-size:var(--fs-body);color:var(--t2);line-height:1.55;max-width:380px;margin:0 auto}
.cr-methods{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--sp4);margin-top:8px}
.cr-transf-note{display:flex;gap:9px;align-items:flex-start;background:var(--pl);border:1px solid var(--p);border-radius:var(--r11);padding:11px 13px;margin-top:12px}
.cr-transf-note b{display:block;font-size:var(--fs-sec);color:var(--pd)}
.cr-transf-note span{display:block;font-size:var(--fs-ter);color:var(--t2);margin-top:2px}
.cr-comp-in{font-family:inherit;font-size:var(--fs-sec);color:var(--t2)}
.cr-method{border:1.5px solid var(--bd);border-radius:13px;padding:14px 8px;text-align:center;cursor:pointer;transition:var(--tr-14);background:var(--surf)}
.cr-method:hover{border-color:var(--p)}
.cr-method.on{border-color:var(--p);background:var(--p2)}
.cr-method-ic{display:flex;justify-content:center;margin-bottom:9px}
.cr-method-t{font-size:var(--fs-ter);font-weight:var(--fw-bold);color:var(--t2);line-height:var(--lh-snug)}
.cr-chip.sm{padding:7px 11px;font-size:var(--fs-sec)}
.cr-eye{background:none;border:none;color:var(--t3);cursor:pointer;padding:var(--sp1);border-radius:var(--r6);display:inline-flex}
.cr-eye:hover{color:var(--p);background:var(--bg)}
@media(max-width:560px){.cr-methods{grid-template-columns:repeat(2,1fr)}.cr-montos{flex-wrap:wrap}}
.cfg-block{background:var(--surf);border:var(--border);border-radius:18px;padding:24px 26px;margin-top:18px}
.cfg-block-hd{margin-bottom:18px}
.cfg-block-t{font-size:16px;font-weight:var(--fw-heavy);color:var(--t1)}
.cfg-block-s{font-size:var(--fs-body);color:var(--t3);margin-top:5px;line-height:1.5;max-width:640px}
.cfg-form{display:grid;grid-template-columns:1fr 1fr;gap:14px 18px}
.cfg-field{display:flex;flex-direction:column;gap:var(--sp2)}
.ms-grp{border-bottom:1px solid var(--bd,#eef2f7)}
.ms-grp:last-child{border-bottom:none}
.ms-grp-hd{width:100%;display:flex;align-items:center;gap:8px;background:none;border:none;padding:9px 8px;cursor:pointer;font-family:inherit;text-align:left;color:var(--t1,#0f172a);font-size:13px;font-weight:700;border-radius:8px}
.ms-grp-hd:hover{background:var(--bg,#f6f9fc)}
.ms-grp-chev{display:inline-flex;transition:transform .18s;color:var(--t3,#94a3b8)}
.ms-grp-hd.open .ms-grp-chev{transform:rotate(90deg)}
.ms-grp-name{flex:1}
.ms-grp-count{font-size:11px;font-weight:700;color:var(--t3,#94a3b8);background:var(--bg,#f1f5f9);border-radius:20px;padding:1px 9px;white-space:nowrap}
.ms-grp-body{padding:2px 8px 10px 26px;display:grid;grid-template-columns:repeat(auto-fill,minmax(155px,1fr));gap:1px 12px}
.cfg-pgrp-row{display:flex;align-items:center;gap:9px;margin-bottom:7px}
.cfg-pgrp-dot{width:9px;height:9px;border-radius:50%;background:#475569;flex-shrink:0}
.cfg-pgrp-in{flex:1;text-align:left;max-width:340px}
.cfg-pgrp-cnt{font-size:11px;font-weight:700;color:var(--t3,#94a3b8);background:var(--bg,#f1f5f9);border-radius:20px;padding:2px 9px;white-space:nowrap}
.cfg-pgrp-add{display:flex;gap:8px;align-items:center;margin-top:10px;max-width:460px}
.cfg-pgrp-add .cfg-input{flex:1;text-align:left}
.zpo-cat-add{border:1.5px dashed var(--bd,#cbd5e1)!important;background:transparent!important;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;transition:background-color var(--tr-base),border-color var(--tr-base),color var(--tr-base),transform var(--mo-1)}
.zpo-cat-add:hover{border-color:var(--p)!important;background:rgba(19,193,172,.04)!important}
.zpo-cat-add-ic{background:var(--bg,#f1f5f9)!important;color:var(--t3,#94a3b8)!important}
.zpo-cat-add:hover .zpo-cat-add-ic{background:var(--p)!important;color:#fff!important}
.zpo-cat-addsub{font-size:11px;color:var(--t3,#94a3b8);margin-top:2px}

.zsel{display:flex;flex-direction:column;gap:12px}
.zsel-search{display:flex;align-items:center;gap:9px;background:var(--surf,#fff);border:1.5px solid var(--bd,#e5eaf0);border-radius:12px;padding:11px 14px;transition:border-color var(--tr-base)}
.zsel-search:focus-within{border-color:var(--p)}
.zsel-input{flex:1;border:none;background:none;outline:none;font-family:inherit;font-size:14px;color:var(--t1,#0f172a)}
.zsel-qclear{display:none;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;background:var(--bg,#f1f5f9);color:var(--t3,#94a3b8);cursor:pointer;flex-shrink:0}
.zsel-qclear:hover{background:#e2e8f0;color:var(--t1)}
.zsel-sum-empty{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--t3,#94a3b8);background:var(--bg,#f6f9fc);border:1px dashed var(--bd,#e5eaf0);border-radius:11px;padding:12px 14px;line-height:1.45}
.zsel-sum-h{display:flex;align-items:center;gap:7px;font-size:12.5px;color:var(--t2,#475569);margin-bottom:8px}
.zsel-sum-h b{color:var(--t1,#0f172a)}
.zsel-sum-body{display:flex;flex-wrap:wrap;gap:8px}
.zsel-grp{background:var(--surf,#fff);border:1px solid var(--bd,#e8edf3);border-radius:11px;padding:9px 11px;min-width:150px;flex:1 1 auto;max-width:100%}
.zsel-grp-whole{background:linear-gradient(180deg,rgba(19,193,172,.06),rgba(19,193,172,.02));border-color:rgba(19,193,172,.35)}
.zsel-grp-h{display:flex;align-items:center;gap:7px;margin-bottom:6px}
.zsel-grp-h b{font-size:12.5px;color:var(--t1,#0f172a)}
.zsel-grp-count{font-size:10.5px;font-weight:700;color:var(--t3,#94a3b8);background:var(--bg,#f1f5f9);border-radius:20px;padding:1px 8px}
.zsel-grp-acts{display:flex;align-items:center;gap:8px;margin-left:auto}
.zsel-grp-whole .zsel-grp-h{margin-bottom:0}
.zsel-lnk{background:none;border:none;font-family:inherit;font-size:11px;font-weight:700;color:var(--p);cursor:pointer;padding:0;margin-left:auto}
.zsel-lnk:hover{text-decoration:underline}
.zsel-x{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:6px;border:none;background:var(--bg,#f1f5f9);color:var(--t3,#94a3b8);cursor:pointer}
.zsel-x:hover{background:#fee2e2;color:#dc2626}
.zsel-chips{display:flex;flex-wrap:wrap;gap:5px}
.zsel-chip{display:inline-flex;align-items:center;gap:4px;font-size:11.5px;font-weight:600;color:var(--t2,#475569);background:var(--bg,#f1f5f9);border-radius:7px;padding:3px 4px 3px 8px}
.zsel-chip button{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border:none;background:none;color:var(--t3,#94a3b8);cursor:pointer;border-radius:4px}
.zsel-chip button:hover{background:#fecaca;color:#dc2626}
.zsel-results{border:1px solid var(--bd,#e8edf3);border-radius:12px;overflow:hidden;background:var(--surf,#fff)}
.zsel-list{display:flex;flex-direction:column}
.zsel-row{display:flex;align-items:center;gap:11px;padding:9px 12px;border-bottom:1px solid var(--bd,#eef2f7)}
.zsel-row:last-child{border-bottom:none}
.zsel-row.on{background:rgba(19,193,172,.05)}
.zsel-row:hover{background:var(--bg,#f6f9fc)}
.zsel-row.on:hover{background:rgba(19,193,172,.09)}
.zsel-ck{flex-shrink:0;width:22px;height:22px;border-radius:7px;border:2px solid var(--bd,#cbd5e1);background:var(--surf,#fff);cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;transition:background-color var(--tr-base),border-color var(--tr-base),color var(--tr-base),transform var(--mo-1)}
.zsel-ck:hover{border-color:var(--p)}
.zsel-ck.ck-on{background:var(--p);border-color:var(--p)}
.zsel-row-main{flex:1;min-width:0;cursor:pointer;display:flex;flex-direction:column;gap:2px}
.zsel-row-name{font-size:13.5px;font-weight:600;color:var(--t1,#0f172a);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.zsel-row-meta{font-size:11px;color:var(--t3,#94a3b8);display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.zsel-row-meta b{color:var(--p)}
.zsel-tag{font-size:9.5px;font-weight:800;letter-spacing:.03em;text-transform:uppercase;border-radius:5px;padding:1px 6px}
.zsel-tag-prov{background:rgba(19,193,172,.12);color:var(--teal-d,#0d9488)}
.zsel-tag-loc{background:#eef2ff;color:#6366f1}
.zsel-drill{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:8px;border:none;background:var(--bg,#f1f5f9);color:var(--t3,#94a3b8);cursor:pointer}
.zsel-drill:hover{background:var(--p);color:#fff}
.zsel-empty{padding:22px 14px;text-align:center;font-size:12.5px;color:var(--t3,#94a3b8)}
.zsel-pag{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 12px;background:var(--bg,#f8fafc);border-top:1px solid var(--bd,#eef2f7)}
.zsel-pbtn{display:inline-flex;align-items:center;gap:4px;font-family:inherit;font-size:12px;font-weight:700;color:var(--t2,#475569);background:var(--surf,#fff);border:1px solid var(--bd,#e2e8f0);border-radius:8px;padding:5px 11px;cursor:pointer}
.zsel-pbtn:hover:not([disabled]){border-color:var(--p);color:var(--p)}
.zsel-pbtn[disabled]{opacity:.4;cursor:default}
.zsel-pinfo{font-size:11.5px;color:var(--t3,#94a3b8);font-weight:600}
.zsel-crumb{display:flex;align-items:center;gap:9px;padding:9px 12px;background:var(--bg,#f8fafc);border-bottom:1px solid var(--bd,#eef2f7)}
.zsel-crumb-b{display:inline-flex;align-items:center;gap:3px;font-family:inherit;font-size:12px;font-weight:700;color:var(--t2,#475569);background:none;border:none;cursor:pointer;padding:0}
.zsel-crumb-b:hover{color:var(--p)}
.zsel-crumb-cur{font-size:13px;font-weight:800;color:var(--t1,#0f172a);flex:1}
.zsel-wholebtn{display:inline-flex;align-items:center;gap:5px;font-family:inherit;font-size:11.5px;font-weight:700;color:var(--p);background:rgba(19,193,172,.1);border:1px solid rgba(19,193,172,.3);border-radius:8px;padding:5px 11px;cursor:pointer}
.zsel-wholebtn.on{background:var(--p);color:#fff;border-color:var(--p)}
.zsel-wholenote{display:flex;align-items:flex-start;gap:8px;padding:14px;font-size:12.5px;color:var(--t2,#475569);line-height:1.5}
.zsel-wholenote b{color:var(--t1,#0f172a)}


.cfg-field label{font-size:var(--fs-ter);font-weight:var(--fw-bold);color:var(--t2)}
.cfg-input{padding:11px 13px;border:1.5px solid var(--bd);border-radius:var(--r10);font-size:var(--fs-body);font-family:inherit;background:var(--bg);color:var(--t1);outline:none;transition:var(--tr-base)}
.cfg-input:focus{border-color:var(--p);background:var(--surf)}
.cfg-note{display:flex;align-items:flex-start;gap:7px;font-size:var(--fs-label);color:var(--t3);margin-top:12px;line-height:1.5}
@media(max-width:680px){.cfg-form{grid-template-columns:1fr}}
.cr-top-cargar{padding:0;border-top:none}
.cr-paysecure{text-align:center;border-top:var(--border);padding:13px;font-size:var(--fs-ter);color:var(--t3);display:flex;align-items:center;justify-content:center;gap:7px}
.cr-modal{display:none;position:fixed;inset:0;background:rgba(15,23,42,.5);z-index:var(--z-panel);align-items:center;justify-content:center;padding:var(--sp9)}
.cr-modal.on{display:flex}
.cr-modal-box{background:var(--surf);border-radius:18px;max-width:560px;width:100%;padding:26px 28px 22px;position:relative;box-shadow:0 20px 60px rgba(0,0,0,.3);max-height:92vh;overflow:auto}
.cr-modal-x{position:absolute;top:12px;right:16px;background:none;border:none;font-size:26px;color:var(--t3);cursor:pointer;line-height:1}
.cr-modal-box .cr-top-cargar{padding:0;border-top:none}
.cr-monto-in{display:flex;align-items:center;gap:5px;font-size:19px;font-weight:var(--fw-heavy);color:var(--t1)}
.cr-monto-in input{border:none;outline:none;font:inherit;width:100%;background:transparent;color:var(--t1);padding:0}
.cr-continue{background:var(--p);color:var(--surf);border:none;border-radius:13px;font-size:var(--fs-h3);font-weight:var(--fw-heavy);cursor:pointer;display:flex;align-items:center;justify-content:center;gap:9px;font-family:inherit;transition:var(--tr-base)}
.cr-continue:hover{background:var(--pd);transform:translateY(-1px)}
.cr-continue-full{width:100%;justify-content:center;margin-top:18px;padding:14px 18px}
.cr-custom-wrap{display:none;margin-top:10px}
.cr-custom-wrap.show{display:block}
.cr-custom-wrap .cr-monto-in{border:1.5px solid var(--p);border-radius:13px;padding:11px 15px;background:var(--surf)}
.cr-method{position:relative}
.cr-method-ck{position:absolute;top:8px;right:8px;width:18px;height:18px;border-radius:50%;background:var(--p);display:none;align-items:center;justify-content:center}
.cr-method.on .cr-method-ck{display:flex}
.cr-comp-drop{display:flex;align-items:center;gap:11px;border:1.5px dashed var(--bd);border-radius:13px;padding:13px 15px;margin-top:14px;cursor:pointer;transition:var(--tr-14);background:var(--bg)}
.cr-comp-drop:hover{border-color:var(--p);background:var(--p2)}
.cr-comp-drop.has{border-style:solid;border-color:var(--p);background:var(--p2)}
.cr-comp-txt{display:flex;flex-direction:column;min-width:0}
.cr-comp-txt b{font-size:var(--fs-sec);color:var(--t1);font-weight:var(--fw-semi);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cr-comp-txt span{font-size:var(--fs-ter);color:var(--t3)}
.cr-comp-in{display:none}
@media(max-width:1080px){.cr-top-r{border-left:none;border-top:var(--border)}}
.cre-hero{position:relative;overflow:hidden;display:flex;align-items:center;gap:var(--sp10);background:linear-gradient(120deg,#eafaf5,#f3fbf8 55%,var(--surf));border:var(--border);border-radius:var(--r20);padding:26px 30px;margin-bottom:8px}
.cre-hero-t{font-size:30px;font-weight:var(--fw-heavy);color:var(--t1);letter-spacing:-1px;display:flex;align-items:center;gap:9px}
.cre-hero-s{font-size:var(--fs-body);color:var(--t2);margin-top:6px}
.cre-hero-ico{width:66px;height:66px;border-radius:50%;background:var(--surf);display:flex;align-items:center;justify-content:center;font-size:30px;box-shadow:0 2px 10px rgba(15,23,42,.06);flex-shrink:0}
.cre-mcards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--sp8);margin-top:4px;align-items:stretch;justify-items:stretch}
.cre-mcard{position:relative;width:100%;box-sizing:border-box;justify-self:stretch;appearance:none;margin:0;display:flex;flex-direction:column;align-items:flex-start;text-align:left;gap:7px;background:var(--surf);border:var(--border);border-radius:18px;padding:26px;cursor:pointer;font-family:inherit;transition:background-color var(--tr-base),border-color var(--tr-base),color var(--tr-base),transform var(--mo-1);min-height:240px;box-shadow:var(--sh-sm)}
.cre-mcard:hover{border-color:var(--p);box-shadow:0 0 0 1.5px var(--p),0 10px 26px rgba(19,193,172,.14);transform:translateY(-2px)}
.cre-mcard.main{background:var(--surf);border-color:var(--p);box-shadow:0 2px 12px rgba(19,193,172,.12)}
.cre-mbadge{position:absolute;top:18px;right:18px;display:inline-flex;align-items:center;gap:5px;background:var(--p2);color:var(--pd);font-size:var(--fs-ter);font-weight:var(--fw-bold);padding:5px 11px;border-radius:var(--rpill)}
.cre-mic{width:60px;height:60px;border-radius:var(--r16);display:flex;align-items:center;justify-content:center;margin-bottom:8px}
.cre-mcard.main .cre-mic{border-radius:50%}
.cre-mt{font-size:21px;font-weight:var(--fw-heavy);color:var(--t1);letter-spacing:-.3px}
.cre-md{font-size:var(--fs-body);color:var(--t3);line-height:1.5;max-width:250px}
.cre-marr{margin-top:auto;width:46px;height:46px;border-radius:50%;border:1.5px solid var(--bd);display:flex;align-items:center;justify-content:center;transition:background-color var(--tr-base),border-color var(--tr-base),color var(--tr-base),transform var(--mo-1)}
.cre-mcard:hover .cre-marr{border-color:var(--p)}
.cre-marr.fill{border-radius:var(--r14);background:var(--p);border-color:var(--p);box-shadow:var(--sh-brand)}
@media(max-width:900px){.cre-mcards{grid-template-columns:1fr}}
.cre-hero-art{position:absolute;right:30px;top:50%;transform:translateY(-50%);opacity:.45;pointer-events:none}
.cre-steps-row{display:flex;align-items:center;flex-wrap:wrap;background:var(--surf);border:var(--border);border-radius:var(--r16);padding:16px 20px;box-shadow:var(--sh-xs)}
.cre-step{flex:1;display:flex;gap:var(--sp5)}
.cre-step-n{border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:var(--fw-heavy);flex-shrink:0}
.cre-step-t{color:var(--t1)}
.cre-step-d{color:var(--t3);margin-top:2px}
.cre-step-arr{display:flex;align-items:center;flex-shrink:0}
@media(max-width:900px){.cre-steps-row{flex-direction:column}.cre-step-arr{transform:rotate(90deg);align-self:center}.cre-hero-art{display:none}}
@media(max-width:560px){.cre-hero{flex-direction:column;align-items:flex-start}}
.tb-sep{width:1px;height:20px;background:var(--bd);flex-shrink:0}
.tb-camp{background:var(--p2);color:var(--pd);font-size:var(--fs-label);font-weight:var(--fw-bold);padding:3px 9px;border-radius:5px;white-space:nowrap;flex-shrink:0}
/* Period selector */
.period-wrap{display:flex;align-items:center;background:var(--bg);border-radius:var(--r8);padding:3px;gap:2px;border:var(--border);flex-shrink:0;position:relative}
.vt-btn{padding:5px 10px;border-radius:var(--r6);font-size:var(--fs-label);font-weight:var(--fw-med);cursor:pointer;color:var(--t2);transition:background-color var(--tr-base),border-color var(--tr-base),color var(--tr-base),transform var(--mo-1);border:none;background:transparent;display:flex;align-items:center;gap:var(--sp1);white-space:nowrap;font-family:"DM Sans",sans-serif}
.vt-btn.on{background:var(--surf);color:var(--t1);font-weight:var(--fw-semi);box-shadow:0 1px 3px rgba(0,0,0,.08)}
.vt-btn.rt.on{color:var(--ok)}
.pulse-dot{width:7px;height:7px;border-radius:50%;background:var(--ok);animation:pulse-anim 1.6s ease infinite;flex-shrink:0}
@keyframes pulse-anim{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.75)}}
/* Date range dropdown */
.date-dropdown{position:absolute;top:calc(100% + 8px);right:0;background:var(--surf);border:var(--border);border-radius:var(--r12);padding:var(--sp6);min-width:280px;box-shadow:0 8px 32px rgba(0,0,0,.12);z-index:var(--z-fixed);display:none}
.date-dropdown.vis{display:block}
/* cuelga de la esquina superior derecha del boton de rango. */
.date-dropdown{transform-origin:100% 0;opacity:0;transform:translateY(-6px) scale(.97);
  transition:opacity var(--mo-3) var(--ez-out),transform var(--mo-3) var(--ez-out),
    display var(--mo-3) allow-discrete}
.date-dropdown.vis{opacity:1;transform:none}
.date-dropdown:not(.vis){transition-duration:var(--mo-1)}
@starting-style{ .date-dropdown.vis{opacity:0;transform:translateY(-6px) scale(.97)} }
.date-quick{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:12px}
.date-quick-btn{padding:4px 10px;border-radius:5px;border:var(--border);background:var(--bg);font-size:var(--fs-label);font-weight:var(--fw-med);cursor:pointer;transition:background-color var(--tr-base),border-color var(--tr-base),color var(--tr-base),transform var(--mo-1);color:var(--t2);font-family:"DM Sans",sans-serif}
.date-quick-btn:hover{border-color:var(--p);color:var(--p)}
.date-quick-btn.on{border-color:var(--p);background:var(--p2);color:var(--pd);font-weight:var(--fw-bold)}
.date-range-inputs{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp3)}
.date-input-grp label{font-size:var(--fs-micro);font-weight:var(--fw-bold);color:var(--t3);text-transform:uppercase;letter-spacing:.5px;display:block;margin-bottom:4px}
.date-input-grp input{width:100%;border:var(--border);border-radius:var(--r6);padding:6px 8px;font-size:var(--fs-sec);font-family:"DM Sans",sans-serif;color:var(--t1);background:var(--surf);outline:none}
.date-input-grp input:focus{border-color:var(--p)}
.date-apply-row{margin-top:10px;display:flex;justify-content:flex-end;gap:var(--sp2)}
.date-apply-btn{padding:6px 14px;border-radius:var(--r6);border:none;font-size:var(--fs-sec);font-weight:var(--fw-semi);cursor:pointer;font-family:"DM Sans",sans-serif;transition:background-color var(--tr-base),border-color var(--tr-base),color var(--tr-base),transform var(--mo-1)}
.btn-filtros{display:flex;align-items:center;gap:var(--sp2);padding:5px 12px;border-radius:var(--r8);border:var(--border);background:var(--surf);cursor:pointer;font-size:var(--fs-sec);font-weight:var(--fw-semi);color:var(--t1);transition:background-color var(--tr-base),border-color var(--tr-base),color var(--tr-base),transform var(--mo-1);white-space:nowrap;font-family:"DM Sans",sans-serif;flex-shrink:0}
.btn-filtros:hover{border-color:var(--p);color:var(--p);background:var(--pl)}
.filter-badge{background:var(--p);color:var(--surf);font-size:var(--fs-micro);font-weight:var(--fw-bold);padding:0 5px;border-radius:var(--r8);min-width:16px;text-align:center;display:none}
.filter-badge.vis{display:inline-block}
.vm-banner{display:none;padding:8px 14px;border-radius:var(--r8);font-size:var(--fs-sec);font-weight:var(--fw-semi);margin-bottom:14px;align-items:center;gap:var(--sp3)}
.vm-banner.rt-mode{display:flex;background:var(--ok-bg);color:#065f46;border:1px solid #d1fae5}
.vm-banner.mensual-mode{display:flex;background:var(--p2);color:var(--pd);border:1px solid rgba(19,193,172,.2)}

/* ── FILTER PANEL ── */
.fp-overlay{position:fixed;inset:0;background:rgba(15,23,42,.3);z-index:var(--z-fixed);opacity:0;pointer-events:none;transition:opacity var(--tr-slow);backdrop-filter:blur(2px)}
.fp-overlay.vis{opacity:1;pointer-events:all}
.fp{position:fixed;top:0;right:-380px;width:min(360px,100vw);height:100vh;height:100svh;background:var(--surf);border-left:var(--border);z-index:var(--z-over);display:flex;flex-direction:column;transition:right .28s var(--ez-std);box-shadow:-8px 0 32px rgba(15,23,42,.12)}
.fp.vis{right:0}
.fp-hd{padding:16px 18px;border-bottom:var(--border);display:flex;align-items:center;justify-content:space-between;flex-shrink:0}
.fp-ttl{font-size:var(--fs-body);font-weight:var(--fw-bold);color:var(--t1)}
.fp-close{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:var(--r6);cursor:pointer;color:var(--t3);transition:background-color var(--tr-base),border-color var(--tr-base),color var(--tr-base),transform var(--mo-1);border:none;background:transparent;font-size:var(--fs-h3);font-family:"DM Sans",sans-serif}
.fp-close:hover{background:var(--bg);color:var(--t1)}
.fp-body{flex:1;overflow-y:auto;padding:24px 24px 10px}
#fp .period-wrap{width:100%;justify-content:center}
#fp .date-dropdown{position:static;top:auto;right:auto;min-width:0;width:100%;box-shadow:none;margin-top:10px;padding:var(--sp5)}
#fp #vt-period{flex:1;justify-content:center}
#fp #vt-rt{flex:1;justify-content:center}
.fp-sec{margin-bottom:20px}
.fp-sec-ttl{font-size:var(--fs-micro);font-weight:var(--fw-bold);color:var(--t3);text-transform:uppercase;letter-spacing:.8px;margin-bottom:8px;padding-bottom:5px;border-bottom:1px solid var(--bg)}
.fp-chip{padding:4px 10px;border-radius:var(--r20);border:var(--border);background:var(--surf);font-size:var(--fs-ter);cursor:pointer;transition:background-color var(--tr-base),border-color var(--tr-base),color var(--tr-base),transform var(--mo-1);font-weight:var(--fw-med);color:var(--t2);user-select:none}
.fp-chip:hover{border-color:var(--p);color:var(--p)}
.fp-chip.on{border-color:var(--p);background:var(--p2);color:var(--p);font-weight:var(--fw-bold)}
.fp-foot{padding:12px 18px;border-top:var(--border);display:flex;gap:var(--sp3);flex-shrink:0}
.fp-btn{flex:1;padding:9px;border-radius:var(--r8);border:var(--border);font-size:var(--fs-body);font-weight:var(--fw-semi);cursor:pointer;transition:background-color var(--tr-base),border-color var(--tr-base),color var(--tr-base),transform var(--mo-1);font-family:"DM Sans",sans-serif}
.fp-btn-apply{background:var(--p);color:var(--surf);border-color:var(--p)}
.fp-btn-apply:hover{background:var(--pd)}
.fp-btn-clear{background:var(--surf);color:var(--t2)}
.fp-active-bar{background:var(--pl);border-top:1px solid rgba(19,193,172,.2);padding:7px 18px;font-size:var(--fs-label);color:var(--pd);font-weight:var(--fw-semi);display:none;flex-shrink:0}
.fp-active-bar.vis{display:block}

/* ── CONTENT ── */
.ct{padding:40px 44px;flex:1;position:relative}
.sec{display:none;position:relative;z-index:1;overflow-x:auto;-webkit-overflow-scrolling:touch}
.sec.on{display:block;animation:fi .2s ease}
@keyframes fi{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}

/* ── GRIDS ── */
.g2{display:grid;grid-template-columns:1fr 1fr}
.g3{display:grid;grid-template-columns:1fr 1fr 1fr}
.g4{display:grid;grid-template-columns:repeat(4,1fr)}

/* ── CARDS ── */
.c{background:var(--surf);border:var(--border);border-radius:var(--r12)}
.mc-val{color:var(--t1)}
.mc-ft{opacity:.75}
.sh{margin-bottom:16px;display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp4);flex-wrap:wrap}
.tag{display:inline-flex;align-items:center;padding:3px 8px;border-radius:5px;font-size:var(--fs-label);font-weight:var(--fw-semi);white-space:nowrap}
.tag-ok{background:var(--ok-bg);color:#065f46}
.tag-warn{background:var(--warn-bg);color:var(--amber-dd)}
.tag-danger{background:var(--danger-bg);color:#991b1b}
/* .tag-neutral vive en campanas.css, que carga despues y ganaba esta copia entera */
.tag-p{background:var(--p2);color:var(--pd)}
.formula-box{background:var(--bg);border-left:3px solid var(--p);border-radius:0 var(--r8) var(--r8) 0;padding:9px 12px;margin-top:8px;font-size:var(--fs-label);color:var(--t2)}
.formula-box strong{color:var(--t1)}
.pb-w{margin-bottom:10px}
.pb-hd{display:flex;justify-content:space-between;align-items:center;margin-bottom:3px}
.pb-val{font-size:var(--fs-body);font-weight:var(--fw-bold)}
.pb-sub{font-size:var(--fs-micro);color:var(--t3);margin-bottom:3px}
.pb-bg{height:6px;background:var(--bg);border-radius:4px;overflow:hidden}
.pb-fill{height:100%;border-radius:4px;width:0;transition:width 1.1s var(--ez-std)}
.cb-row{display:flex;align-items:center;gap:var(--sp3);margin-bottom:7px}
.cb-brand{width:120px;font-size:var(--fs-label);color:var(--t2);flex-shrink:0;line-height:var(--lh-snug)}
.cb-bg{flex:1;height:20px;background:var(--bg);border-radius:4px;overflow:hidden;position:relative}
.cb-fill{height:100%;border-radius:4px;width:0;transition:width 1s ease;display:flex;align-items:center;padding:0 7px}
.cb-pct{font-size:var(--fs-micro);font-weight:var(--fw-bold);color:var(--surf);white-space:nowrap}
.cb-val{width:36px;font-size:var(--fs-label);font-weight:var(--fw-bold);color:var(--t1);text-align:right;flex-shrink:0}
/* info button */
.info-btn{border:none;background:var(--bg);color:var(--t3);font-size:var(--fs-micro);font-weight:var(--fw-bold);width:15px;height:15px;border-radius:50%;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;margin-left:3px;vertical-align:middle;font-family:"DM Sans",sans-serif;flex-shrink:0}
.info-btn:hover{background:var(--p2);color:var(--pd)}
#info-tip{position:fixed;background:var(--t1);color:var(--surf);font-size:var(--fs-ter);font-weight:var(--fw-med);line-height:var(--lh-loose);padding:8px 12px;border-radius:var(--r9);max-width:250px;z-index:var(--z-modal);pointer-events:none;display:none;opacity:0;transition:opacity var(--tr-base);box-shadow:0 6px 20px rgba(0,0,0,.25)}
/* tables */
.pdv-tbl{width:100%;border-collapse:collapse}
/* ══ UNA TABLA QUE SE DESLIZA TIENE QUE AVISAR QUE SE DESLIZA ══
   Medido a 390px: en Comercios la tira muestra 252px de 810, y los botones
   «Ver», «Editar» y «Asignar grupo» arrancan en x=776 —fuera de la pantalla—.
   Son ALCANZABLES: hay scroll propio. El problema es que nada lo dice, así que
   en la práctica puede que nadie llegue nunca. Lo mismo en el Home y en
   Configuración, donde el único control de cada fila queda afuera.

   La sombra se pinta SOLA y sólo cuando hace falta, sin una línea de JS: los
   dos degradados blancos van con `background-attachment:local` —se mueven con
   el contenido— y los dos radiales con `scroll` —se quedan pegados al borde—.
   Cuando no hay nada más para ver, el blanco tapa al radial y la sombra
   desaparece. Es la técnica estándar de «scroll shadows» y no necesita medir
   nada, que es justo lo que la hace no quedar mintiendo.

   Va sólo en pantallas angostas: en escritorio estas tablas entran enteras y la
   sombra sería ruido. */
.tbl-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%}
@media(max-width:760px){
  .tbl-scroll{
    background:
      linear-gradient(to right, var(--surf) 40%, rgba(255,255,255,0)) left center / 28px 100% no-repeat local,
      linear-gradient(to left,  var(--surf) 40%, rgba(255,255,255,0)) right center / 28px 100% no-repeat local,
      radial-gradient(farthest-side at 0 50%, rgba(15,23,42,.17), rgba(15,23,42,0)) left center / 11px 100% no-repeat scroll,
      radial-gradient(farthest-side at 100% 50%, rgba(15,23,42,.17), rgba(15,23,42,0)) right center / 11px 100% no-repeat scroll;
  }
}
.pdv-tbl th{font-size:var(--fs-label);font-weight:var(--fw-bold);color:var(--t2);text-transform:uppercase;letter-spacing:.4px;padding:7px 10px;text-align:left;border-bottom:2px solid var(--bd)}
.pdv-tbl td{padding:8px 10px;font-size:var(--fs-sec);border-bottom:1px solid var(--bg);vertical-align:middle}
.pdv-tbl tr:hover td{background:var(--bg)}
.pdv-tbl tr:last-child td{border-bottom:none}
.dot{width:16px;height:16px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:var(--fs-micro);font-weight:var(--fw-bold);flex-shrink:0}
.dot-si{background:var(--ok-bg);color:#065f46}.dot-no{background:var(--danger-bg);color:#991b1b}
/* paginator */
.paginator{display:flex;align-items:center;gap:7px;margin-top:10px;justify-content:center}
.pg-btn{padding:4px 9px;border-radius:var(--r8);border:var(--border);background:var(--surf);cursor:pointer;font-size:var(--fs-ter);font-weight:var(--fw-semi);color:var(--t2);font-family:"DM Sans",sans-serif;transition:background-color var(--tr-base),border-color var(--tr-base),color var(--tr-base),transform var(--mo-1)}
.pg-btn:hover:not(:disabled){border-color:var(--p);color:var(--p)}
.pg-btn:disabled{opacity:.4;cursor:default}
.pg-info{font-size:var(--fs-ter);color:var(--t3);font-weight:var(--fw-semi);min-width:50px;text-align:center}
.gauge-center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center}
.zdim-row{display:flex;align-items:center;gap:14px;padding:13px 0;border-bottom:1px solid var(--bg)}
.zdim-row:last-child{border-bottom:none}
.zdim-ic{display:flex;align-items:center;justify-content:center;width:20px;flex-shrink:0}
.zdim-info{flex-shrink:0}
.zdim-bg{flex:1;max-width:560px;background:var(--bg);border-radius:4px;overflow:hidden}
.zdim-fill{border-radius:3px;transition:width 1.2s var(--ez-std)}
.zdim-score{min-width:28px;text-align:right}
.home-hero-score{display:flex;flex-direction:column;justify-content:center;border:var(--border);border-radius:var(--r16);background:var(--surf);box-shadow:0 1px 4px rgba(15,23,42,.06)}
.home-hero-dims{padding:22px 28px;border:var(--border);border-radius:var(--r16);background:var(--surf);box-shadow:0 1px 4px rgba(15,23,42,.06);display:flex;flex-direction:column;justify-content:center}
.home-kpis-label{font-size:var(--fs-label);font-weight:var(--fw-bold);color:var(--t3);text-transform:uppercase;letter-spacing:1px;margin-bottom:12px}
.home-kpis-sub{text-transform:none;letter-spacing:0;font-weight:var(--fw-semi);color:var(--t3);opacity:.75}
.zdim-clk{cursor:pointer;border-radius:8px;margin-left:-8px;margin-right:-8px;padding-left:8px;padding-right:8px;transition:background .12s}
.zdim-clk:hover{background:var(--p2)}
.home-dims-h{font-size:var(--fs-label);font-weight:var(--fw-bold);color:var(--t3);text-transform:uppercase;letter-spacing:1px;margin-bottom:12px}
#sec-home .zdim-head{display:grid;grid-template-columns:26px minmax(140px,190px) 54px 56px 1fr auto 18px;align-items:center;gap:14px;padding:0 0 10px;border-bottom:1px solid var(--bd);margin-bottom:2px}
#sec-home .zdim-head>div{font-size:var(--fs-micro);font-weight:var(--fw-bold);color:var(--t3);text-transform:uppercase;letter-spacing:.5px}
#sec-home .zdim-head-dim{grid-column:1/3}
#sec-home .zdim-head-peso{grid-column:3;text-align:center}
#sec-home .zdim-head-score{grid-column:4;text-align:center}
#sec-home .zdim-row{display:grid;grid-template-columns:26px minmax(140px,190px) 54px 56px 1fr auto 18px;align-items:center;gap:14px;padding:11px 0;border-bottom:1px solid var(--bg)}
#sec-home #home-zdim-rows .zdim-row:last-child{border-bottom:none}
#sec-home .zdim-clk{border-radius:8px;margin-left:-8px;margin-right:-8px;padding-left:8px;padding-right:8px}
#sec-home .zdim-ic{display:flex;align-items:center;justify-content:center;width:26px;height:26px}
#sec-home .zdim-info{width:auto;min-width:0}
#sec-home .zdim-name{font-size:var(--fs-sec);font-weight:var(--fw-bold);color:var(--t1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#sec-home .zdim-sub{font-size:var(--fs-label);color:var(--t3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#sec-home .zdim-peso{text-align:center;font-size:var(--fs-body);font-weight:var(--fw-semi);color:var(--t2)}
#sec-home .zdim-score{text-align:center;font-size:var(--fs-h4);font-weight:var(--fw-heavy);min-width:0;width:auto}
#sec-home .zdim-bg{max-width:none;height:8px}
#sec-home .zdim-badge{font-size:var(--fs-micro);font-weight:var(--fw-bold);padding:4px 11px;border-radius:20px;white-space:nowrap;text-align:center;justify-self:end}
#sec-home .zdim-chev{color:var(--t3);display:flex;align-items:center;justify-content:center;opacity:.55}
#sec-home .zdim-clk:hover .zdim-chev{color:var(--p);opacity:1}
.zdim-foot{margin-top:14px;padding-top:13px;border-top:1px solid var(--bg);font-size:var(--fs-label);color:var(--t3)}
@media(max-width:820px){.home-hero{grid-template-columns:1fr}}
/* gondola NEW */
.gnd-wrap{background:#f8fafc;border:2px solid var(--bd2);border-radius:var(--r14)}
.gnd-stat-bench{font-size:var(--fs-micro);color:var(--t3);margin-top:1px}
.gnd-rank-item{display:flex;align-items:center;gap:var(--sp3);padding:5px 0;border-bottom:1px solid var(--bg)}
.gnd-rank-num{width:18px;height:18px;border-radius:50%;background:var(--bg);display:flex;align-items:center;justify-content:center;font-size:var(--fs-micro);font-weight:var(--fw-bold);flex-shrink:0}
.gnd-rank-bar{flex:1;height:8px;background:var(--bg);border-radius:4px;overflow:hidden}
.gnd-rank-fill{height:100%;border-radius:4px}
/* map */
#leaflet-map{height:400px;border-radius:var(--r12);overflow:hidden;border:var(--border)}
.bv-hero{display:flex;justify-content:space-between;align-items:center;gap:34px;padding:6px 0 28px;flex-wrap:wrap}
.bv-hero-l{flex:1;min-width:280px}
.bv-eyebrow{font-size:var(--fs-sec);font-weight:var(--fw-bold);letter-spacing:.12em;color:var(--p);text-transform:uppercase}
.bv-title{font-size:34px;font-weight:var(--fw-heavy);color:var(--t1);letter-spacing:-1px;margin:12px 0 14px;line-height:1.12}
.bv-leaf{font-size:25px}
.bv-desc{font-size:var(--fs-h3);color:var(--t2);line-height:1.62;max-width:560px;margin:0}
.bv-obj-lbl{display:block;font-size:var(--fs-label);font-weight:var(--fw-bold);letter-spacing:.08em;text-transform:uppercase;color:var(--p);margin-bottom:8px}
.bv-hero-r{flex-shrink:0}
.bv-brand-circle{width:230px;height:196px;border-radius:24px;background:radial-gradient(circle at 62% 38%,#eafaf4,#d4ede4);display:flex;align-items:center;justify-content:center;overflow:hidden}
.bv-brand-circle img{max-width:76%;max-height:80%;object-fit:contain}
.bv-brand-ph span{font-size:64px;font-weight:var(--fw-heavy);color:var(--p);opacity:.45}
.bv-scope{display:grid;grid-template-columns:repeat(5,1fr);background:var(--surf);border:var(--border);border-radius:18px;padding:22px 8px;margin-bottom:24px}
.bv-scard{padding:4px 22px;border-right:var(--border)}
.bv-scard:last-child{border-right:none}
.bv-scard-ic{width:38px;height:38px;border-radius:var(--r11);background:var(--pl,#eafaf6);color:var(--p);display:flex;align-items:center;justify-content:center;margin-bottom:13px}
.bv-scard-l{font-size:var(--fs-ter);color:var(--t3);margin-bottom:6px}
.bv-scard-v{font-size:20px;font-weight:var(--fw-heavy);color:var(--t1);letter-spacing:-.4px;line-height:1.12}
.bv-scard-s{font-size:var(--fs-label);color:var(--t3);margin-top:6px}
.bv-cover{display:grid;grid-template-columns:.85fr 1.4fr;border:var(--border);border-radius:var(--r20);overflow:hidden;margin-bottom:32px}
.bv-cover-l{background:linear-gradient(160deg,#eafaf5,#e2f4ec);padding:34px 32px;display:flex;flex-direction:column;justify-content:center}
.bv-kicker{font-size:var(--fs-ter);font-weight:var(--fw-bold);letter-spacing:.1em;color:var(--p);text-transform:uppercase;margin-bottom:12px}
.bv-cover-t{font-size:25px;font-weight:var(--fw-heavy);color:var(--t1);letter-spacing:-.6px;line-height:1.18;margin:0 0 12px}
.bv-cover-d{font-size:var(--fs-body);color:var(--t2);line-height:var(--lh-loose);margin:0 0 22px;max-width:300px}
.bv-cta{align-self:flex-start;background:var(--surf);border:var(--border);border-radius:var(--r12);padding:13px 22px;font-size:var(--fs-body);font-weight:var(--fw-bold);color:var(--t1);cursor:pointer;font-family:inherit;transition:var(--tr-base);box-shadow:0 2px 8px rgba(15,23,42,.05)}
.bv-cta:hover{border-color:var(--p);color:var(--p);transform:translateY(-1px)}
.bv-legend{display:flex;gap:var(--sp8);flex-wrap:wrap;margin-top:26px;font-size:var(--fs-sec);color:var(--t2)}
.bv-legend span{display:flex;align-items:center;gap:7px}
.bv-legend i{width:9px;height:9px;border-radius:50%;display:inline-block}
.bv-cover-r{position:relative;min-height:340px}
#bienv-map{position:absolute;inset:0}
.bv-map-empty{display:flex;align-items:center;justify-content:center;height:100%;color:var(--t3);font-size:var(--fs-body);padding:0 20px;text-align:center}
.bv-nav-wrap{text-align:center;margin-bottom:8px}
.bv-nav-t{font-size:var(--fs-h1);font-weight:var(--fw-heavy);color:var(--t1);letter-spacing:-.5px;margin:0 0 8px}
.bv-nav-s{font-size:var(--fs-body);color:var(--t3);margin:0 0 24px}
.bv-nav{display:grid;grid-template-columns:repeat(5,1fr);gap:var(--sp7)}
.bv-ncard{background:var(--surf);border:var(--border);border-radius:var(--r16);padding:22px 20px;text-align:left;cursor:pointer;transition:var(--tr-16);display:flex;flex-direction:column;min-height:152px}
.bv-ncard:hover{border-color:var(--p);transform:translateY(-3px);box-shadow:0 14px 30px rgba(15,23,42,.08)}
.bv-ncard-ic{width:42px;height:42px;border-radius:var(--r12);background:var(--pl,#eafaf6);color:var(--p);display:flex;align-items:center;justify-content:center;margin-bottom:16px}
.bv-ncard-t{font-size:var(--fs-h3);font-weight:var(--fw-heavy);color:var(--t1);margin-bottom:6px}
.bv-ncard-d{font-size:var(--fs-sec);color:var(--t3);line-height:1.5;flex:1}
.bv-ncard-arr{color:var(--p);font-size:var(--fs-h2);font-weight:var(--fw-bold);margin-top:14px}
@media(max-width:1080px){.bv-scope,.bv-nav{grid-template-columns:repeat(2,1fr)}.bv-scard{border-right:none;border-bottom:var(--border);padding:14px 18px}.bv-cover{grid-template-columns:1fr}}
@media(max-width:560px){.bv-scope,.bv-nav{grid-template-columns:1fr}.bv-title{font-size:27px}.bv-brand-circle{width:100%}}
.map-filter-bar{display:flex;gap:var(--sp2);flex-wrap:wrap;margin-bottom:10px;align-items:center}
.map-chip{padding:4px 11px;border-radius:var(--r20);border:var(--border);background:var(--surf);font-size:var(--fs-ter);cursor:pointer;transition:background-color var(--tr-base),border-color var(--tr-base),color var(--tr-base),transform var(--mo-1);font-weight:var(--fw-med);color:var(--t2);font-family:"DM Sans",sans-serif}
.map-chip.on{border-color:var(--p);background:var(--p2);color:var(--pd);font-weight:var(--fw-bold)}
/* PDV modal */
.pdv-overlay{position:fixed;inset:0;background:rgba(15,23,42,.55);z-index:700;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .25s;backdrop-filter:blur(3px)}
.pdv-overlay.vis{opacity:1;pointer-events:all}
.pdv-modal{background:var(--surf);border-radius:var(--r16);width:500px;max-width:94vw;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 24px 60px rgba(15,23,42,.25);animation:fi .22s ease}
.pdv-modal-hd{padding:12px 16px;border-bottom:var(--border);display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp3);flex-shrink:0}
.pdv-modal-name{font-size:var(--fs-body);font-weight:var(--fw-bold);color:var(--t1)}
.pdv-modal-tipo{font-size:var(--fs-label);color:var(--t3)}
.pdv-close-btn{width:26px;height:26px;border-radius:var(--r6);border:none;background:var(--bg);cursor:pointer;font-size:var(--fs-body);display:flex;align-items:center;justify-content:center;color:var(--t2);font-family:"DM Sans",sans-serif}
.pdv-modal-body{overflow-y:auto;flex:1}
.mis-overlay{position:fixed;inset:0;z-index:var(--z-top);background:rgba(15,23,42,.55);display:none;align-items:center;justify-content:center;padding:var(--sp10)}
.zn-pinpick{position:fixed;inset:0;z-index:10005;background:rgba(11,15,20,.55);display:none;align-items:center;justify-content:center;padding:24px}
.zn-pinpick.vis{display:flex}
.pp-modal{position:relative;background:var(--surf,#fff);border-radius:16px;width:min(440px,94vw);max-height:82vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 24px 70px rgba(0,0,0,.32)}
.pp-close{position:absolute;top:13px;right:13px;width:32px;height:32px;border:none;background:var(--bg,#f1f5f9);border-radius:50%;font-size:15px;color:var(--t2,#475569);cursor:pointer;z-index:2}
.pp-close:hover{background:#e2e8f0}
.pp-head{display:flex;align-items:center;gap:12px;padding:18px 20px 14px;border-bottom:1px solid var(--bd,#e5eaf0)}
.pp-head-ic{width:38px;height:38px;border-radius:11px;background:var(--p2,#e6faf6);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.pp-title{font-size:16px;font-weight:800;color:var(--t1,#0f172a);line-height:1.2}
.pp-sub{font-size:12px;color:var(--t3,#94a3b8);margin-top:2px}
.pp-list{padding:10px;overflow-y:auto;display:flex;flex-direction:column;gap:7px}
.pp-row{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;text-align:left;border:1px solid var(--bd,#e5eaf0);background:var(--surf,#fff);border-radius:11px;padding:11px 13px;font-family:inherit;cursor:pointer;transition:var(--tr-14)}
.pp-row:not(.pp-row-na):hover{border-color:var(--p,#13c1ac);background:var(--p2,#e6faf6)}
.pp-row-na{cursor:default;opacity:.72;background:var(--bg,#f8fafc)}
.pp-row-l{display:flex;flex-direction:column;gap:2px;min-width:0}
.pp-id{font-size:13.5px;font-weight:800;color:var(--pd,#0f766e);font-variant-numeric:tabular-nums}
.pp-date{font-size:11.5px;color:var(--t3,#94a3b8)}
.pp-row-r{display:flex;align-items:center;gap:8px;flex-shrink:0}
.pp-badge{font-size:11px;font-weight:700;padding:3px 9px;border-radius:999px}
.pp-ok{background:#d1fae5;color:#047857}
.pp-pend{background:#fef3c7;color:#a16207}
.pp-rv{display:inline-flex;align-items:center;gap:3px;font-size:10.5px;font-weight:700;color:#b45309;background:#fffbeb;border:1px solid #fde68a;padding:2px 7px;border-radius:999px}
.pp-arr{display:flex;color:var(--p,#13c1ac)}
.pp-foot{padding:11px 18px;border-top:1px solid var(--bd,#e5eaf0);font-size:11.5px;color:var(--t3,#94a3b8);line-height:1.45}
.pp-foot b{color:var(--t2,#475569)}
.mis-overlay.vis{display:flex}
.mis-modal{position:relative;background:var(--surf);border-radius:var(--r20);width:1120px;max-width:96vw;height:90vh;max-height:880px;min-height:580px;overflow:hidden;box-shadow:0 30px 80px rgba(0,0,0,.34);display:flex}
.mis-photo-load{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;z-index:2}
.mis-close{position:absolute;top:16px;right:16px;z-index:7;width:36px;height:36px;border-radius:50%;border:var(--border);background:var(--surf);color:var(--t2);font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:var(--tr-base);box-shadow:0 2px 8px rgba(0,0,0,.08)}
.mis-revisit{display:inline-flex;align-items:center;gap:6px;border:1.5px solid #d9c48a;background:#fffbeb;color:#a16207;border-radius:999px;padding:7px 13px;font-size:12.5px;font-weight:700;font-family:inherit;cursor:pointer;transition:var(--tr-base);white-space:nowrap}
.mis-revisit:hover{background:#fef3c7;border-color:#c99a2e}
.mis-revisit.on{background:#f59e0b;border-color:#f59e0b;color:#fff}
.mis-report-panel{display:none;position:absolute;top:68px;left:auto;right:22px;z-index:6;background:var(--surf);border:var(--border);border-radius:var(--r12);box-shadow:0 14px 38px rgba(15,23,42,.26);padding:16px 16px 14px;width:380px;max-width:calc(100% - 44px)}
.mis-report-panel.vis{display:block}

/* marcar comercio */
.mis-marca-panel{display:none;position:absolute;top:68px;right:22px;z-index:7;background:var(--surf);border:var(--border);border-radius:var(--r12);box-shadow:0 14px 38px rgba(15,23,42,.26);padding:14px;width:330px;max-width:calc(100% - 44px)}
.mis-marca-panel.vis{display:block}
.mkp-h{display:flex;align-items:center;gap:8px;margin-bottom:4px}
.mkp-t{font-size:14px;font-weight:800;color:var(--t1);flex:1}
.mkp-x{background:none;border:none;color:var(--t3);font-size:14px;cursor:pointer;line-height:1}
.mkp-x:hover{color:var(--t1)}
.mkp-s{font-size:12px;color:var(--t3);margin-bottom:10px;line-height:1.4}
.mkp-cur{display:flex;align-items:center;gap:7px;background:#fff7ed;border:1px solid #fed7aa;color:#c2410c;border-radius:9px;padding:8px 11px;font-size:12.5px;margin-bottom:10px}
.mkp-list{display:flex;flex-direction:column;gap:5px;max-height:230px;overflow-y:auto}
.mkp-i{display:flex;align-items:center;gap:9px;width:100%;border:1px solid var(--bd,#e5eaf0);background:var(--surf);border-radius:9px;padding:9px 11px;font-size:13px;font-weight:600;color:var(--t1);font-family:inherit;cursor:pointer;transition:.12s;text-align:left}
.mkp-i:hover{border-color:var(--p);background:var(--pl,#e6faf6)}
.mkp-i.on{border-color:var(--p);background:var(--pl,#e6faf6);color:var(--pd);font-weight:800}
.mkp-i-dot{width:7px;height:7px;border-radius:50%;background:var(--p);flex-shrink:0}
.mkp-i-ck{margin-left:auto;display:inline-flex;color:var(--pd)}
.mkp-ed{display:flex;align-items:center;gap:6px}
.mkp-in{flex:1;border:1px solid var(--bd,#e5eaf0);border-radius:8px;padding:8px 10px;font-size:12.5px;font-family:inherit;color:var(--t1);outline:none}
.mkp-in:focus{border-color:var(--p)}
.mkp-del{border:1px solid var(--bd,#e5eaf0);background:var(--surf);color:#b91c1c;border-radius:8px;padding:7px 9px;font-size:11px;cursor:pointer;line-height:1}
.mkp-del:hover{background:#fef2f2;border-color:#fecaca}
.mkp-add{width:100%;margin-top:8px;border:1px dashed var(--bd,#cbd5e1);background:none;color:var(--pd);border-radius:9px;padding:9px;font-size:12.5px;font-weight:700;cursor:pointer;font-family:inherit}
.mkp-add:hover{border-color:var(--p);background:var(--pl,#e6faf6)}
.mkp-foot{display:flex;gap:7px;margin-top:11px}
.mkp-btn{flex:1;border:none;background:var(--p);color:#fff;border-radius:9px;padding:9px;font-size:12.5px;font-weight:800;cursor:pointer;font-family:inherit}
.mkp-btn:hover{background:var(--pd)}
.mkp-btn-gh{background:var(--surf);color:var(--t2);border:1px solid var(--bd,#e5eaf0)}
.mkp-btn-gh:hover{background:var(--bg);color:var(--pd);border-color:var(--p)}

.cfg-mot-list{display:flex;flex-direction:column;gap:8px;margin-top:6px}
.cfg-loc-list{display:flex;flex-direction:column;gap:9px;margin-top:10px}
@keyframes rezB1{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(-5vmin,4vmin) scale(1.08)}}
@keyframes rezB2{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(4vmin,-5vmin) scale(1.11)}}
@keyframes rezB3{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(-7vmin,-3vmin) scale(1.16)}}
@keyframes rezGrid{to{transform:translate(26px,26px)}}
@keyframes rezDu{0%,100%{transform:translate(0,0) scale(1);opacity:.16}
  50%{transform:translate(3vmin,-4vmin) scale(1.5);opacity:.3}}
@keyframes rezRot{to{transform:rotate(360deg)}}
@keyframes rezSweep{0%,62%{left:-40vmax}92%,100%{left:120vmax}}
@keyframes rezSlIn{0%{opacity:0;transform:translateX(4vmin) scale(.985);filter:blur(7px)}
  62%{filter:blur(0)}100%{opacity:1;transform:none;filter:blur(0)}}
@keyframes rezSheen{0%,74%{background-position:190% 0}90%,100%{background-position:-90% 0}}
@keyframes rezUp{to{opacity:1;transform:none}}
@keyframes rezPop{to{opacity:1;transform:none}}
@keyframes rezWord{0%{opacity:0;transform:translateY(3vmin) scale(.97);filter:blur(6px)}
  100%{opacity:1;transform:none;filter:blur(0)}}
@keyframes rezCard{0%{opacity:0;transform:perspective(1000px) rotateX(10deg) translateY(2.6vmin) scale(.95)}
  100%{opacity:1;transform:none}}
@keyframes rezTick{to{opacity:1;transform:none}}
@keyframes rezRow{to{opacity:1;transform:none}}
@keyframes rezGauge{to{stroke-dashoffset:var(--off)}}
@keyframes rezTickIn{to{opacity:.55}}
@keyframes rezVsL{0%{opacity:0;transform:translateX(-4vmin) scale(.94)}100%{opacity:1;transform:none}}
@keyframes rezVsR{0%{opacity:0;transform:translateX(4vmin) scale(.94)}100%{opacity:1;transform:none}}
@keyframes rezFan{
  0%{opacity:0;transform:translateY(16vmin) rotate(0) scale(.86)}
  55%{opacity:1}
  100%{opacity:1;transform:translate(var(--dx),var(--dy)) rotate(var(--rot)) scale(1)}}
@keyframes rezStack{
  0%{opacity:0;transform:translateX(9vmin) rotate(7deg) scale(.9)}
  7%{opacity:1;transform:translateX(0) rotate(-1.5deg) scale(1)}
  26%{opacity:1;transform:translateX(0) rotate(-1.5deg) scale(1)}
  34%{opacity:0;transform:translateX(-8vmin) rotate(-8deg) scale(.92)}
  100%{opacity:0;transform:translateX(-8vmin) rotate(-8deg) scale(.92)}}
@keyframes rezCpBar{from{transform:scaleX(0)}to{transform:scaleX(1)}}
/* comercio */
.tBody{fill:#F4F7F9;stroke:#CBD8E0;stroke-width:2}
.tAwn{fill:#E3EBF0;stroke:#CBD8E0;stroke-width:2;stroke-linejoin:round}
.tRay{fill:#F7FAFC;stroke:none}
.tSign{fill:#E3EBF0;stroke:#CBD8E0;stroke-width:1.8}
.tDoor,.tWin{fill:#fff;stroke:#CBD8E0;stroke-width:1.8}
.tShelf{stroke:#CBD8E0;stroke-width:1.6;fill:none;stroke-linecap:round}
.tKnob{fill:#CBD8E0}
/* znapper */
.pSk{fill:color-mix(in srgb,var(--ac) 20%,#fff);stroke:var(--ac);stroke-width:2}
.pBd{fill:var(--ac);opacity:.88}
.pLn{stroke:var(--ac);stroke-width:3;stroke-linecap:round;fill:none}
.pPh{fill:#0B1F2A;opacity:.82}
@keyframes rezZnp{0%,100%{transform:translate(392px,146px)}
  25%{transform:translate(386px,143px)}55%{transform:translate(392px,147px)}80%{transform:translate(398px,143px)}}
@keyframes rezLgA{0%,100%{transform:rotate(-13deg)}50%{transform:rotate(13deg)}}
@keyframes rezArm{0%,45%,100%{transform:rotate(0)}58%{transform:rotate(-12deg)}72%{transform:rotate(-12deg)}}
@keyframes rezFlash{0%,58%{opacity:0}64%{opacity:1}100%{opacity:0}}
/* fotos que van saltando */
.phF{fill:#fff;stroke:var(--ac);stroke-width:2}
.phL{fill:none;stroke:var(--ac);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;opacity:.75}
@keyframes rezPhoP{0%{opacity:0;transform:translateY(10px) scale(.8)}
  12%{opacity:1;transform:translateY(0) scale(1)}
  70%{opacity:1;transform:translateY(0) scale(1)}
  100%{opacity:0;transform:translateY(-9px) scale(.96)}}
.vsB{fill:#fff;stroke-width:2.5}
.vsK{fill:none;stroke-width:3.2;stroke-linecap:round;stroke-linejoin:round}
.bCap{fill:var(--ink);opacity:.28}
.bBody{fill:#F4F7F9;stroke:#CBD8E0;stroke-width:2}
.bLbl{fill:#DCE6EC}
@keyframes rezBtl{0%{opacity:0}100%{opacity:1}}
/* precio */
.tgB{fill:color-mix(in srgb,var(--ac) 12%,#fff);stroke:var(--ac);stroke-width:2.5}
.tgH{fill:#fff;stroke:var(--ac);stroke-width:2.5}
.tgT{fill:var(--ac);font-size:44px;font-weight:800;text-anchor:middle;
  font-family:"DM Sans",system-ui,sans-serif;letter-spacing:-.03em}
.cnB{fill:color-mix(in srgb,var(--ac) 18%,#fff);stroke:var(--ac);stroke-width:2}
.cnL{stroke:var(--ac);stroke-width:2;stroke-linecap:round}
@keyframes rezCoin{0%{opacity:0}100%{opacity:1}}
@keyframes rezTag{0%,100%{transform:rotate(-11deg)}50%{transform:rotate(-7deg)}}
@keyframes rezFacIn{to{opacity:1}}
.lvA{stroke:var(--ac);stroke-width:3;stroke-linecap:round;stroke-linejoin:round;fill:none}
@keyframes rezLvl{0%,100%{opacity:.35;transform:translateX(0)}50%{opacity:1;transform:translateX(-5px)}}
@keyframes rezDn{to{stroke-dashoffset:var(--off)}}
@keyframes rezPlataIc{0%,100%{transform:translateY(0) rotate(0)}
  46%{transform:translateY(-3px) rotate(-5deg)}72%{transform:translateY(0) rotate(3deg)}}
@keyframes rezDisp{to{left:var(--a);right:calc(100% - var(--b))}}
@keyframes rezPin{0%{opacity:0;transform:scale(0) translateY(-10px)}
  60%{opacity:1}100%{opacity:1;transform:scale(1) translateY(0)}}
@keyframes rezPinP{0%{opacity:.55;transform:scale(.7)}70%,100%{opacity:0;transform:scale(1.9)}}
@keyframes rezMap{0%{opacity:0;transform:scale(.94)}100%{opacity:1;transform:none}}
@keyframes rezKen{0%{transform:scale(1)}100%{transform:scale(1.1)}}
@keyframes rezFill{from{width:0}to{width:100%}}

/* ══ BOTÓN ZNAPPVIEW ══
   Fondo liso: nada de degradés por dentro. Todo el efecto vive en el borde y
   alrededor: un anillo que se expande, un resplandor que late, el borde que
   cambia de tono y una chispa que asoma. Cinco animaciones con períodos
   distintos (17 s, 11 s, 7,5 s, 6,5 s, 13 s) que nunca caen en fase. */
.sb-fa-rp{position:relative;overflow:visible;background:var(--surf,#fff);
  color:var(--pd,#0f766e);will-change:transform;
  border:1px solid var(--p2,#ccf5ef);border-radius:13px 11px 14px 10px;
  animation:rezVida 17s cubic-bezier(.36,.07,.19,.97) infinite,
            rezCorr 11s ease-in-out infinite,
            rezHalo 6.5s ease-in-out infinite,
            rezBorde 7.5s ease-in-out infinite}
.sb-fa-rp>*{position:relative;z-index:1}

/* anillo que se expande desde el borde hacia afuera */
.sb-fa-rp::before{content:'';position:absolute;inset:0;border-radius:inherit;
  border:1.5px solid var(--p,#13c1ac);opacity:0;pointer-events:none;
  animation:rezOnda 7.5s var(--ez-out) infinite}
/* chispa que asoma fuera del borde: señal de vida */
.sb-fa-rp::after{content:'';position:absolute;top:-3px;right:-3px;width:7px;height:7px;
  border-radius:50%;background:var(--p,#13c1ac);opacity:0;pointer-events:none;
  box-shadow:0 0 8px 1px rgba(19,193,172,.7);
  animation:rezChispa 13s ease-in-out infinite}

/* el movimiento: la mayor parte flota, y cada tanto hace algo raro */
@keyframes rezVida{
  0%,14%   {transform:translate(0,0) rotate(0) scale(1)}
  17%      {transform:translate(0,-2px) rotate(0) scale(1.012)}
  20%      {transform:translate(0,0) rotate(0) scale(1)}
  /* se asoma un poco fuera de lugar y vuelve */
  29%      {transform:translate(5px,-1px) rotate(-1.4deg) scale(1.03)}
  33%      {transform:translate(-1px,0) rotate(.4deg) scale(1)}
  35%      {transform:translate(0,0) rotate(0) scale(1)}
  46%,50%  {transform:translate(0,-2.5px) rotate(0) scale(1.015)}
  54%      {transform:translate(0,0) rotate(0) scale(1)}
  /* tiritón corto */
  63%      {transform:translate(-2px,0) rotate(.8deg) scale(1)}
  65%      {transform:translate(2px,0) rotate(-.8deg) scale(1)}
  67%      {transform:translate(-1px,0) rotate(.4deg) scale(1)}
  69%      {transform:translate(0,0) rotate(0) scale(1)}
  /* se estira apenas, como desperezándose */
  80%      {transform:translate(0,1px) rotate(0) scale(1.045,.97)}
  84%      {transform:translate(0,0) rotate(0) scale(.99,1.02)}
  87%,100% {transform:translate(0,0) rotate(0) scale(1)}}
/* el borde se ondula: nunca es exactamente el mismo rectángulo */
@keyframes rezCorr{
  0%,100%{border-radius:13px 11px 14px 10px}
  25%    {border-radius:11px 15px 10px 14px}
  50%    {border-radius:15px 10px 13px 12px}
  75%    {border-radius:10px 13px 15px 11px}}
/* resplandor exterior */
@keyframes rezHalo{
  0%,100%{box-shadow:0 0 0 0 rgba(19,193,172,0)}
  50%    {box-shadow:0 2px 18px -1px rgba(19,193,172,.42)}}
/* el borde cambia de intensidad */
@keyframes rezBorde{
  0%,100%{border-color:var(--p2,#ccf5ef)}
  45%    {border-color:var(--p,#13c1ac)}
  70%    {border-color:var(--p2,#ccf5ef)}}
/* onda que sale del borde */
@keyframes rezOnda{
  0%,52%  {opacity:0;transform:scale(1)}
  60%     {opacity:.75;transform:scale(1)}
  86%,100%{opacity:0;transform:scale(1.16)}}
@keyframes rezChispa{
  0%,72%,100%{opacity:0;transform:scale(.4)}
  76%{opacity:1;transform:scale(1.15)}
  80%{opacity:.5;transform:scale(.8)}
  84%{opacity:1;transform:scale(1)}
  90%{opacity:0;transform:scale(.5)}}

.sb-fa-rp:hover{background:var(--pl,#e6faf6);border-color:var(--p);color:var(--pd);
  animation-play-state:paused;transform:translateY(-1px) scale(1.03);
  border-radius:12px;box-shadow:0 0 0 3px rgba(19,193,172,.16),0 5px 18px rgba(19,193,172,.3);
  transition:transform .18s var(--ez-pop),box-shadow .18s,background .18s}
.sb-fa-rp:hover::before,.sb-fa-rp:hover::after{animation-play-state:paused}
.sb-fa-rp:active{transform:scale(.97)}
.sb-fa-rp svg{width:16px;height:16px;flex:0 0 auto;
  animation:rezIcono 8.3s ease-in-out infinite}
@keyframes rezIcono{0%,88%,100%{transform:rotate(0)}92%{transform:rotate(-9deg) scale(1.1)}96%{transform:rotate(5deg)}}
@media(prefers-reduced-motion:reduce){
  .sb-fa-rp,.sb-fa-rp::before,.sb-fa-rp::after,.sb-fa-rp svg{animation:none}
  .sb-fa-rp{border-radius:var(--r10,10px)}}
@keyframes rezIntroBg{0%{opacity:0}100%{opacity:1}}
@keyframes rezIntroOut{0%{opacity:1}100%{opacity:0}}
@keyframes rezLbl{to{opacity:.85}}
@keyframes rezZ{0%{opacity:0;transform:scale(.5) rotate(-14deg)}
  100%{opacity:1;transform:scale(1) rotate(0)}}
@keyframes rezZLat{0%,100%{transform:scale(1)}50%{transform:scale(1.055)}}
@keyframes rezZOut{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(1.5)}}
@keyframes rezRing{0%{opacity:0;transform:scale(.6)}
  40%{opacity:.85;transform:scale(1.35)}100%{opacity:0;transform:scale(2.6)}}
}

.cfg-loc-i{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--bd,#e5eaf0);border-radius:11px;padding:11px 13px;background:var(--surf,#fff)}
.cfg-loc-i b{font-size:13px;color:var(--t1,#0f172a)}
.cfg-loc-n{display:inline-block;margin-left:8px;font-size:11px;font-weight:800;color:var(--t3,#94a3b8);background:var(--bg,#f1f5f9);border-radius:20px;padding:1px 9px}
.cfg-loc-d{font-size:11.5px;color:var(--t3,#94a3b8);margin-top:3px}
.plat-btn-d{background:#fee2e2;color:#b91c1c;border-color:#fecaca}
.plat-btn-d:hover{background:#fecaca}
.plat-btn[disabled]{opacity:.45;cursor:default}
.cfg-mot-i{display:flex;align-items:center;gap:9px}
.cfg-mot-dot{width:7px;height:7px;border-radius:50%;background:var(--p,#13c1ac);flex-shrink:0}
.cfg-mot-in{flex:1;text-align:left}
.cfg-mot-del{border:1px solid var(--bd,#e5eaf0);background:var(--surf,#fff);color:#b91c1c;border-radius:8px;padding:8px 10px;font-size:12px;cursor:pointer;line-height:1;flex-shrink:0}
.cfg-mot-del:hover{background:#fef2f2;border-color:#fecaca}
.cfg-mot-empty{font-size:13px;color:var(--t3,#94a3b8);padding:10px 2px}
.cfg-mot-actions{margin-top:14px;display:flex;gap:10px;flex-wrap:wrap}
#plat-motivos.cfg-flash{animation:cfgFlash 1.8s ease}
@keyframes cfgFlash{0%,100%{box-shadow:0 0 0 0 rgba(19,193,172,0)}30%{box-shadow:0 0 0 3px rgba(19,193,172,.35)}}
.mkp-btn-off{background:var(--surf);color:#b91c1c;border:1px solid #fecaca}
.mkp-btn-off:hover{background:#fef2f2}

.mis-report-t{font-size:var(--fs-body);font-weight:var(--fw-bold);color:var(--t1);margin-bottom:9px}
.mis-report-panel textarea{width:100%;min-height:82px;border:var(--border);border-radius:var(--r9);padding:10px 12px;font:inherit;font-size:var(--fs-body);color:var(--t1);resize:vertical;box-sizing:border-box;outline:none}
.mis-report-panel textarea:focus{border-color:var(--p)}
.mis-report-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:11px}
.mis-report-cancel{border:var(--border);background:var(--surf);color:var(--t2);border-radius:var(--r9);padding:8px 14px;font-weight:var(--fw-semi);cursor:pointer}
.mis-report-send{border:none;background:var(--p);color:#fff;border-radius:var(--r9);padding:8px 16px;font-weight:var(--fw-bold);cursor:pointer}
.mis-close:hover{background:var(--bg);color:var(--t1)}
.mis-grid{display:grid;grid-template-columns:460px 1fr;width:100%;height:100%}
.mis-photos{background:#0f172a;padding:18px;display:flex;flex-direction:column;gap:12px;height:100%;box-sizing:border-box;min-height:0}
.mis-photo-main{flex:1;min-height:0;border-radius:var(--r14);overflow:hidden;background:#0b1220;display:flex;align-items:center;justify-content:center;position:relative;cursor:zoom-in}
.mis-photo-zoom{position:absolute;left:10px;bottom:10px;display:flex;align-items:center;gap:5px;background:rgba(11,15,20,.66);color:#fff;font-size:11px;font-weight:600;padding:5px 10px;border-radius:999px;cursor:zoom-in;z-index:3;pointer-events:auto}
.mis-photo-zoom svg{flex-shrink:0}
.mis-photo-main img{width:100%;height:100%;object-fit:contain}
.mis-fnav{position:absolute;top:50%;transform:translateY(-50%);width:34px;height:34px;border-radius:50%;border:none;background:rgba(15,23,42,.55);color:var(--surf);font-size:20px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:2;transition:background var(--tr-base);backdrop-filter:blur(2px);font-family:inherit;padding:0}
.mis-fnav:hover{background:rgba(15,23,42,.85)}
.mis-fnav-prev{left:10px}
.mis-fnav-next{right:10px}
.mis-photo-ph{color:var(--slate);font-size:var(--fs-body);font-weight:var(--fw-semi);text-align:center;padding:var(--sp9);line-height:1.5}
.mis-photo-count{color:var(--bd2);font-size:var(--fs-label);font-weight:var(--fw-semi);text-align:center;min-height:14px}
.mis-thumbs{display:flex;gap:var(--sp3);flex-wrap:wrap;justify-content:center}
.mis-thumb{width:54px;height:54px;border-radius:var(--r8);overflow:hidden;border:2px solid transparent;cursor:pointer;background:#1e293b}
.mis-thumb.on{border-color:var(--p)}
.mis-thumb img{width:100%;height:100%;object-fit:cover}
.mis-info{display:flex;flex-direction:column;height:100%;min-height:0;overflow:hidden;padding:0}
.mis-info-head{flex-shrink:0;padding:20px 28px 18px 28px;border-bottom:1px solid var(--bd)}
.mis-info-body{flex:1;min-height:0;overflow-y:auto;padding:15px 26px 24px}
.mis-actions{display:flex;gap:10px;margin:15px 0 0}
.misd-act{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:8px;height:46px;padding:0 16px;border-radius:12px;border:1.5px solid var(--bd,#e5eaf0);background:var(--surf,#fff);color:var(--t1,#0f172a);font-size:14px;font-weight:700;font-family:inherit;cursor:pointer;transition:var(--tr-16);white-space:nowrap;box-shadow:0 1px 2px rgba(15,23,42,.06)}
.misd-act:hover{transform:translateY(-1px);box-shadow:0 6px 16px rgba(15,23,42,.13)}
.misd-act:active{transform:translateY(0);box-shadow:0 1px 2px rgba(15,23,42,.06)}
.misd-act svg{flex-shrink:0}
.misd-act-rev{background:#fdf7ec;border-color:#ecd7a3;color:#966611}
.misd-act-rev svg{color:#dd9520}
.misd-act-rev:hover{background:#fbeed3;border-color:#e2c583}
.misd-act-rev.on{background:#ef9d2a;border-color:#ef9d2a;color:#fff}
.misd-act-rev.on svg{color:#fff}
.misd-act-report{background:#f8fafc;border-color:var(--bd,#e5eaf0);color:var(--t1,#0f172a)}
.misd-act-report svg{color:var(--t3,#94a3b8)}
.misd-act-report:hover{background:#fef2f2;border-color:#f2c4c4;color:#c0392b}
.misd-act-report:hover svg{color:#c0392b}
.mis-badge{display:inline-flex;align-items:center;flex-shrink:0;font-size:var(--fs-micro);font-weight:var(--fw-bold);letter-spacing:.6px;text-transform:uppercase;color:var(--surf);background:var(--p);padding:5px 11px;border-radius:var(--r20);white-space:nowrap}
.mis-title{font-size:19px;font-weight:var(--fw-heavy);color:var(--t1);line-height:1.2;letter-spacing:-.01em;margin:0;min-width:0;overflow:hidden;text-overflow:ellipsis}
.mis-titlerow{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:2px;padding-right:44px}
.mis-back{display:inline-flex;align-items:center;gap:5px;background:none;border:none;padding:0;margin-bottom:11px;color:var(--pd,#0f766e);font-size:12.5px;font-weight:700;font-family:inherit;cursor:pointer;transition:var(--tr-14)}
.mis-back:hover{color:var(--p);gap:7px}
.mis-back svg{flex-shrink:0}
.mis-addr{font-size:13px;color:var(--t3);margin-top:5px;font-weight:600}
.mis-meta{display:flex;flex-wrap:wrap;gap:7px 14px;margin-top:12px}
.mis-meta-item{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:600;color:var(--t2,#475569);max-width:100%}
.mis-meta-item>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mis-meta-item svg{color:var(--t3,#94a3b8);flex-shrink:0}
.mis-list{display:flex;flex-direction:column}
.mis-respuestas{display:flex;flex-direction:column;gap:11px}
.mis-qa-head{margin-bottom:15px;padding-bottom:13px;border-bottom:1px solid var(--bd,#e5eaf0)}
.mis-qa-head-t{font-size:14px;font-weight:800;color:var(--t1,#0f172a);letter-spacing:-.01em}
.mis-qa-head-s{font-size:12px;font-weight:600;color:var(--t3,#94a3b8);margin-top:3px}
#mis-info-ttl{font-size:14px!important;font-weight:800!important;color:var(--t1,#0f172a)!important;letter-spacing:-.01em;text-transform:none!important;margin:0 0 15px!important;padding-bottom:13px;border-bottom:1px solid var(--bd,#e5eaf0)}
.mis-qa{background:var(--surf,#fff);border:1px solid var(--bd,#e5eaf0);border-radius:12px;padding:12px 14px}
.mis-qa-q{display:flex;align-items:flex-start;gap:9px;font-size:13px;font-weight:700;color:var(--t1,#0f172a);line-height:1.45;margin-bottom:8px}
.mis-qa-n{flex-shrink:0;width:19px;height:19px;border-radius:6px;background:var(--p2,#e6faf6);color:var(--pd,#0f766e);font-size:10.5px;font-weight:800;display:flex;align-items:center;justify-content:center;margin-top:1px}
.mis-qa-a{font-size:13.5px;color:var(--t2,#334155);line-height:1.5;padding-left:29px;word-break:break-word}
.mis-qa-photos{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding-left:29px}
.mis-qa-th{width:72px;height:72px;border-radius:10px;background-size:cover;background-position:center;cursor:zoom-in;border:1px solid var(--bd,#e5eaf0);transition:var(--tr-14)}
.mis-qa-th:hover{transform:scale(1.05);box-shadow:0 3px 10px rgba(0,0,0,.16)}
.mis-qa-tag{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:700;color:var(--t3,#94a3b8);margin-left:2px}
.mis-resp-empty{display:flex;flex-direction:column;align-items:center;gap:9px;text-align:center;color:var(--t3,#94a3b8);font-size:13px;padding:28px 16px;background:var(--bg,#f8fafc);border-radius:12px;line-height:1.5}
.mis-resp-spin{width:24px;height:24px;border:2.5px solid var(--bd,#e5eaf0);border-top-color:var(--p,#13c1ac);border-radius:50%;animation:mis-resp-spin .7s linear infinite}
@keyframes mis-resp-spin{to{transform:rotate(360deg)}}
.leaflet-tooltip.zn-tt-wrap{background:#fff;border:1px solid #e5eaf0;border-radius:10px;box-shadow:0 6px 20px rgba(15,23,42,.16);padding:9px 12px;color:#0f172a;font-family:inherit;white-space:normal}
.leaflet-tooltip.zn-tt-wrap.leaflet-tooltip-top:before{border-top-color:#fff}
.leaflet-tooltip.zn-tt-wrap.leaflet-tooltip-bottom:before{border-bottom-color:#fff}
.leaflet-tooltip.zn-tt-wrap.leaflet-tooltip-left:before{border-left-color:#fff}
.leaflet-tooltip.zn-tt-wrap.leaflet-tooltip-right:before{border-right-color:#fff}
.zn-tt{min-width:118px;max-width:230px;line-height:1.35}
.zn-tt-name{font-size:13px;font-weight:800;color:#0f172a;line-height:1.3}
.zn-tt-sub{font-size:11.5px;color:#475569;margin-top:2px}
.zn-tt-row{display:flex;align-items:center;gap:5px;margin-top:5px;font-size:11px;font-weight:700}
.zn-tt-id{color:#94a3b8}
.zn-tt-dot{color:#cbd5e1}
.zn-tt-ok{color:#0d9488}
.zn-tt-na{color:#94a3b8}
.rcp2-sel{border:1.5px solid var(--bd,#e5eaf0);background:var(--surf,#fff);border-radius:9px;padding:9px 11px;font-size:13.5px;font-weight:600;color:var(--t1,#0f172a);font-family:inherit;cursor:pointer;width:100%}
.rcp2-sel:focus{outline:none;border-color:var(--pd,#0f766e)}
/* ═══ Recompensa v2 ═══ */
.rc2-card{padding:18px 22px 20px;margin-bottom:14px}
.rc2-hd{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:14px;flex-wrap:wrap}
.rc2-sec-t{font-size:15.5px;font-weight:800;color:var(--t1,#0f172a)}
.rc2-sec-s{font-size:12.5px;color:var(--t3,#94a3b8);margin-top:3px;max-width:620px;line-height:1.45}
.rc2-mut{color:var(--t3,#cbd5e1)}
.rc2-up{color:#c0392b;font-weight:700}.rc2-down{color:#0d9488;font-weight:700}.rc2-eq{color:var(--t3,#94a3b8)}
.rc2-btn{display:inline-flex;align-items:center;gap:6px;border-radius:10px;padding:9px 15px;font-size:13px;font-weight:700;font-family:inherit;cursor:pointer;transition:var(--tr-14);border:1.5px solid transparent;white-space:nowrap}
.rc2-btn-p{background:var(--pd,#0f766e);color:#fff;box-shadow:0 1px 3px rgba(15,23,42,.12)}
.rc2-btn-p:hover{filter:brightness(1.08);transform:translateY(-1px)}
.rc2-btn-ghost{background:var(--surf,#fff);border-color:var(--bd,#e5eaf0);color:var(--t2,#475569)}
.rc2-btn-ghost:hover{border-color:var(--pd,#0f766e);color:var(--pd,#0f766e)}
.rc2-btn-d{background:#dc2626;color:#fff}
.rc2-btn-d:hover{filter:brightness(1.08)}
.rc2-basecard{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;padding:20px 22px;margin-bottom:14px;border-radius:16px;background:linear-gradient(135deg,#f0fdfa,#f6f3ff);border:1px solid var(--bd,#e5eaf0)}
.rc2-base-k{font-size:11.5px;font-weight:800;text-transform:uppercase;letter-spacing:.5px;color:var(--pd,#0f766e)}
.rc2-base-v{font-size:30px;font-weight:800;color:var(--t1,#0f172a);letter-spacing:-.6px;margin-top:4px;line-height:1.1}
.rc2-base-u{font-size:14px;font-weight:600;color:var(--t2,#475569);letter-spacing:0}
.rc2-base-d{font-size:12.5px;color:var(--t2,#475569);margin-top:5px}
.rc2-base-r{display:flex;align-items:center;gap:16px}
.rc2-base-stat{display:flex;flex-direction:column;align-items:flex-end}
.rc2-base-sl{font-size:11px;font-weight:700;color:var(--t3,#94a3b8);text-transform:uppercase;letter-spacing:.4px}
.rc2-base-sv{font-size:18px;font-weight:800;color:var(--t1,#0f172a)}
.rc2-filters{padding:14px 18px;margin-bottom:14px;border-radius:14px;background:var(--surf,#fff);border:1px solid var(--bd,#e5eaf0)}
.rc2-filters-h{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:11px;flex-wrap:wrap}
.rc2-filters-t{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:800;color:var(--t1,#0f172a)}
.rc2-filters-s{font-size:12px;color:var(--t3,#94a3b8)}
.rc2-clear{border:none;background:var(--p2,#e6faf6);color:var(--pd,#0f766e);border-radius:8px;padding:6px 12px;font-size:12px;font-weight:700;font-family:inherit;cursor:pointer}
.rc2-clear:hover{filter:brightness(.97)}
.rc2-flds{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}
.rc2-fld{display:flex;flex-direction:column;gap:5px;min-width:0}
.rc2-fld label{display:flex;align-items:center;gap:5px;font-size:11px;font-weight:800;color:var(--t2,#475569);text-transform:uppercase;letter-spacing:.3px}
.rc2-fcount{font-size:10px;font-weight:700;color:var(--t3,#94a3b8);background:var(--bg,#f1f5f9);border-radius:20px;padding:1px 6px}
.rc2-sel{width:100%;border:1.5px solid var(--bd,#e5eaf0);background:var(--surf,#fff);border-radius:9px;padding:9px 10px;font-size:13px;font-weight:600;color:var(--t1,#0f172a);font-family:inherit;cursor:pointer}
.rc2-sel:focus{outline:none;border-color:var(--pd,#0f766e)}
.rc2-sel.on{border-color:var(--pd,#0f766e);background:var(--p2,#e6faf6);color:var(--pd,#0f766e)}
.rc2-sel:disabled{background:var(--bg,#f8fafc);color:var(--t3,#cbd5e1);cursor:not-allowed}
.rc2-tabs{display:inline-flex;background:var(--bg,#f1f5f9);border-radius:10px;padding:3px;gap:2px;margin-bottom:12px;flex-wrap:wrap}
.rc2-tab{border:none;background:none;padding:8px 14px;border-radius:8px;font-size:12.5px;font-weight:700;color:var(--t2,#475569);cursor:pointer;font-family:inherit;transition:var(--tr-14);white-space:nowrap}
.rc2-tab:hover{color:var(--t1,#0f172a)}
.rc2-tab.on{background:var(--pd,#0f766e);color:#fff;box-shadow:0 1px 3px rgba(15,23,42,.12)}
.rc2-tblwrap{overflow-x:auto;border:1px solid var(--bd,#e5eaf0);border-radius:12px}
.rc2-tbl{width:100%;border-collapse:collapse;font-size:13px}
.rc2-tbl th{text-align:left;font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.4px;color:var(--t3,#94a3b8);padding:11px 13px;background:var(--bg,#f8fafc);border-bottom:1px solid var(--bd,#e5eaf0);white-space:nowrap}
.rc2-tbl td{padding:11px 13px;border-bottom:1px solid var(--bd,#eef2f6);color:var(--t1,#0f172a)}
.rc2-row{cursor:pointer;transition:.12s}
.rc2-row:hover td{background:rgba(15,118,110,.04)}
.rc2-row.open td{background:var(--p2,#e6faf6)}
.rc2-c-g{white-space:nowrap}
.rc2-c-gin{display:flex;align-items:center;gap:7px}
.rc2-chev{display:inline-flex;color:var(--t3,#94a3b8);transition:transform var(--tr-16)}
.rc2-chev.open{transform:rotate(180deg);color:var(--pd,#0f766e)}
.rc2-c-n{font-weight:700}
.rc2-c-h{text-align:center;font-weight:700;color:#14261f;white-space:nowrap}
.rc2-c-u{white-space:nowrap;color:var(--t2,#475569);font-weight:600}
.rc2-c-p{white-space:nowrap}
.rc2-tag{display:inline-block;margin-left:6px;font-size:9.5px;font-weight:800;text-transform:uppercase;letter-spacing:.4px;padding:2px 6px;border-radius:5px;background:var(--p2,#e6faf6);color:var(--pd,#0f766e);vertical-align:1px}
.rc2-tag-h{background:#f3f0ff;color:#7c3aed}
.rc2-x-facts{font-size:12px;color:var(--t2,#475569)}
.rc2-x-r{flex-wrap:wrap}
.rc2-empty{text-align:center;color:var(--t3,#94a3b8);padding:28px}
.rc2-empty2{padding:18px;background:var(--bg,#f8fafc);border:1px dashed var(--bd,#e5eaf0);border-radius:12px;color:var(--t2,#475569);font-size:13px;line-height:1.55}
.rc2-pager{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:11px;flex-wrap:wrap}
.rc2-pg-i{font-size:12px;color:var(--t3,#94a3b8);font-weight:600}
.rc2-pg-b{display:flex;align-items:center;gap:8px}
.rc2-pg{border:1.5px solid var(--bd,#e5eaf0);background:var(--surf,#fff);color:var(--t2,#475569);border-radius:8px;padding:6px 12px;font-size:12.5px;font-weight:700;font-family:inherit;cursor:pointer}
.rc2-pg:hover:not(:disabled){border-color:var(--pd,#0f766e);color:var(--pd,#0f766e)}
.rc2-pg:disabled{opacity:.45;cursor:not-allowed}
.rc2-pg-n{font-size:12.5px;font-weight:700;color:var(--t1,#0f172a)}
.rc2-foot{margin-top:11px;font-size:11px;color:var(--t3,#94a3b8);line-height:1.5}
.rc2-rules{display:flex;flex-direction:column;gap:9px}
.rc2-rule{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 15px;border:1px solid var(--bd,#e5eaf0);border-radius:12px;background:var(--surf,#fff);transition:var(--tr-14)}
.rc2-rule:hover{border-color:#cbd5e1;box-shadow:0 2px 8px rgba(15,23,42,.06)}
.rc2-rule-cond{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.rc2-cchip{display:inline-flex;align-items:center;gap:5px;background:var(--bg,#f1f5f9);border-radius:7px;padding:4px 9px;font-size:12.5px;color:var(--t1,#0f172a)}
.rc2-cchip-k{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.3px;color:var(--t3,#94a3b8)}
.rc2-cplus{color:var(--t3,#cbd5e1);font-weight:800;font-size:12px}
.rc2-rule-meta{font-size:11.5px;color:var(--t3,#94a3b8);margin-top:5px}
.rc2-rule-r{display:flex;align-items:center;gap:10px;flex-shrink:0}
.rc2-rule-v{font-size:16px;font-weight:800;color:var(--t1,#0f172a)}
.rc2-mini{width:32px;height:32px;border-radius:8px;border:1px solid var(--bd,#e5eaf0);background:var(--surf,#fff);color:var(--t2,#475569);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:var(--tr-14)}
.rc2-mini:hover{border-color:#f0c0c0;color:#c0392b;background:#fef2f2}
.rc2-hist{display:flex;flex-direction:column}
.rc2-h-it{display:flex;align-items:center;gap:12px;padding:9px 0;border-bottom:1px solid var(--bd,#eef2f6);font-size:12.5px}
.rc2-h-it:last-child{border-bottom:none}
.rc2-h-d{font-size:11px;font-weight:700;color:var(--t3,#94a3b8);min-width:78px;flex-shrink:0}
.rc2-h-t{flex:1;color:var(--t1,#0f172a);min-width:0}
.rc2-h-v{color:var(--t2,#475569);white-space:nowrap}
.rc2-h-ar{color:var(--t3,#cbd5e1)}
.rc2-ov{position:fixed;inset:0;z-index:10006;background:rgba(15,23,42,.55);display:flex;align-items:center;justify-content:center;padding:24px}
.rc2-modal{position:relative;width:100%;max-width:940px;background:var(--surf,#fff);border-radius:18px;padding:28px 32px;box-shadow:0 24px 60px rgba(15,23,42,.28);max-height:88vh;overflow-y:auto}
.rc2-m-x{position:absolute;top:14px;right:14px;border:none;background:none;color:var(--t3,#94a3b8);font-size:15px;cursor:pointer;padding:5px;border-radius:7px;line-height:1;font-family:inherit}
.rc2-m-x:hover{background:var(--bg,#f1f5f9);color:var(--t1,#0f172a)}
.rc2-m-t{font-size:18px;font-weight:800;color:var(--t1,#0f172a);padding-right:26px}
.rc2-m-sub{font-size:13px;color:var(--t2,#475569);margin-top:6px;line-height:1.5}
.rc2-m-cond{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:12px}
.rc2-m-box{margin-top:14px;padding:12px 14px;background:var(--bg,#f8fafc);border-radius:11px}
.rc2-m-row{display:flex;align-items:center;justify-content:space-between;font-size:13px;color:var(--t2,#475569);padding:4px 0}
.rc2-m-row b{color:var(--t1,#0f172a);font-weight:800}
.rc2-m-lbl{font-size:12px;font-weight:800;color:var(--t2,#475569);text-transform:uppercase;letter-spacing:.3px;margin:16px 0 8px}
.rc2-m-ctrl{display:flex;align-items:center;gap:10px}
.rc2-step{width:40px;height:44px;border-radius:10px;border:1.5px solid var(--bd,#e5eaf0);background:var(--surf,#fff);color:var(--t1,#0f172a);font-size:19px;font-weight:700;cursor:pointer;font-family:inherit;flex-shrink:0}
.rc2-step:hover{border-color:var(--pd,#0f766e);color:var(--pd,#0f766e);background:var(--p2,#e6faf6)}
.rc2-m-in{flex:1;text-align:center;border:1.5px solid var(--bd,#e5eaf0);border-radius:10px;padding:11px;font-size:21px;font-weight:800;color:var(--t1,#0f172a);font-family:inherit;min-width:0}
.rc2-m-in:focus{outline:none;border-color:var(--pd,#0f766e)}
.rc2-m-imp{margin-top:12px;padding:10px 13px;border-radius:10px;font-size:12.5px;font-weight:700}
.rc2-m-imp.up{color:#c0392b;background:#fef2f2}
.rc2-m-imp.down{color:#0d9488;background:#effcf9}
.rc2-m-imp.eq{color:var(--t3,#94a3b8);background:var(--bg,#f1f5f9)}
.rc2-m-act{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}

/* ruta de navegación */
.rc2-crumbs{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:10px 12px;margin-bottom:12px;background:var(--bg,#f8fafc);border:1px solid var(--bd,#e5eaf0);border-radius:12px;transition:background .3s}
.rc2-crumbs.flash{animation:rc2flash 1.1s ease}
@keyframes rc2flash{0%{background:var(--p2,#e6faf6);border-color:var(--pd,#0f766e)}100%{background:var(--bg,#f8fafc)}}
.rc2-cr-l{display:flex;align-items:center;gap:5px;flex-wrap:wrap;min-width:0}
.rc2-cr{display:inline-flex;align-items:center;gap:6px;border:1px solid transparent;background:none;border-radius:8px;padding:6px 10px;font-size:12.5px;font-weight:700;color:var(--t2,#475569);cursor:pointer;font-family:inherit;transition:var(--tr-14);max-width:280px}
.rc2-cr:hover{background:var(--surf,#fff);border-color:var(--bd,#e5eaf0);color:var(--t1,#0f172a)}
.rc2-cr.on{background:var(--p2,#e6faf6);color:var(--pd,#0f766e);border-color:var(--pd,#0f766e);border-width:1.5px}
.rc2-cr.on:hover{background:#d5f5ee}
.rc2-cr.on.last{background:var(--pd,#0f766e);color:#fff;border-color:var(--pd,#0f766e)}
.rc2-cr.on.last:hover{filter:brightness(1.06);color:#fff}
.rc2-cr.on .rc2-cr-k{opacity:.75}
.rc2-cr-home.on{background:var(--pd,#0f766e);color:#fff;border-color:var(--pd,#0f766e)}
.rc2-cr-sep{opacity:.45}
.rc2-cr.on:hover{filter:brightness(1.06);color:#fff}
.rc2-cr-k{font-size:9.5px;font-weight:800;text-transform:uppercase;letter-spacing:.4px;opacity:.65}
.rc2-cr b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rc2-cr-home svg{opacity:.75}
.rc2-cr-sep{display:inline-flex;color:var(--t3,#cbd5e1)}
.rc2-cr-wrap{display:inline-flex;align-items:center;position:relative}
.rc2-cr-new{animation:rc2pop .28s var(--ez-pop)}
@keyframes rc2pop{0%{opacity:0;transform:translateX(-8px) scale(.9)}100%{opacity:1;transform:none}}
.rc2-cr-x{margin-left:-2px;border:none;background:none;color:var(--t3,#94a3b8);font-size:11px;cursor:pointer;padding:5px 6px;border-radius:6px;line-height:1;font-family:inherit}
.rc2-cr-x:hover{background:#fef2f2;color:#c0392b}
.rc2-cr-clear{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--bd,#e5eaf0);background:var(--surf,#fff);color:var(--t2,#475569);border-radius:9px;padding:7px 12px;font-size:12px;font-weight:700;font-family:inherit;cursor:pointer;flex-shrink:0;transition:var(--tr-14)}
.rc2-cr-clear:hover{border-color:#f0c0c0;color:#c0392b;background:#fef2f2}
/* ver por + filtrar */
.rc2-verpor{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.rc2-verpor-l{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.4px;color:var(--t3,#94a3b8)}
.rc2-fp-btn{display:inline-flex;align-items:center;gap:5px;margin-left:auto;border:1.5px dashed var(--bd,#cbd5e1);background:var(--surf,#fff);color:var(--t2,#475569);border-radius:9px;padding:7px 12px;font-size:12.5px;font-weight:700;font-family:inherit;cursor:pointer;transition:var(--tr-14)}
.rc2-fp-btn:hover{border-color:var(--pd,#0f766e);color:var(--pd,#0f766e)}
.rc2-fp-btn.on{background:var(--p2,#e6faf6);border-style:solid;border-color:var(--pd,#0f766e);color:var(--pd,#0f766e)}
.rc2-fp{padding:14px;margin-bottom:12px;background:var(--bg,#f8fafc);border:1px solid var(--bd,#e5eaf0);border-radius:12px;animation:rc2slide .22s ease}
@keyframes rc2slide{0%{opacity:0;transform:translateY(-6px)}100%{opacity:1;transform:none}}
.rc2-fp-h{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.4px;color:var(--t3,#94a3b8);margin-bottom:9px}
.rc2-fp-none{font-size:12.5px;color:var(--t3,#94a3b8)}
/* feedback al filtrar */
.rc2-tblwrap.flash tbody tr{animation:rc2rows .34s ease both}
@keyframes rc2rows{0%{opacity:0;transform:translateY(5px)}100%{opacity:1;transform:none}}
.rc2-btn-in{background:var(--p2,#e6faf6);color:var(--pd,#0f766e);border-color:var(--pd,#0f766e)}
.rc2-btn-in:hover{background:var(--pd,#0f766e);color:#fff;transform:translateY(-1px)}
.rc2-btn-in:hover svg{stroke:#fff}
.rc2-go{display:flex;flex-direction:column;align-items:flex-end;gap:7px}
.rc2-go-l{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:700;color:var(--t2,#475569)}
.rc2-go-l svg{opacity:.7}
.rc2-go-chips{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.rc2-go-chip{border:1.5px solid var(--pd,#0f766e);background:var(--p2,#e6faf6);color:var(--pd,#0f766e);border-radius:8px;padding:7px 12px;font-size:12.5px;font-weight:700;font-family:inherit;cursor:pointer;transition:var(--tr-14);white-space:nowrap}
.rc2-go-chip:hover{background:var(--pd,#0f766e);color:#fff;transform:translateY(-1px);box-shadow:0 2px 8px rgba(15,118,110,.25)}
/* fila expandida: más aire y peso */
.rc2-xrow td{background:linear-gradient(180deg,#f7fbfa,#f8fafc)!important;padding:0!important;border-bottom:2px solid var(--pd,#0f766e)}
.rc2-x{display:flex;align-items:flex-start;justify-content:space-between;gap:28px;padding:26px 26px 26px 22px;border-left:4px solid var(--pd,#0f766e);flex-wrap:wrap}
.rc2-x-t{font-size:17px;font-weight:800;color:var(--t1,#0f172a);letter-spacing:-.2px}
.rc2-x-facts{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}
.rc2-x-facts span{display:inline-flex;align-items:center;background:var(--surf,#fff);border:1px solid var(--bd,#e5eaf0);border-radius:9px;padding:7px 12px;font-size:12.5px;color:var(--t2,#475569);font-weight:600}
.rc2-x-facts span b{color:var(--t1,#0f172a);font-weight:800;margin-left:4px}
.rc2-x-rule{margin-top:13px;padding:10px 13px;background:var(--surf,#fff);border:1px solid var(--bd,#e5eaf0);border-radius:10px;font-size:12.5px;color:var(--t2,#475569);display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.rc2-x-rule-off{background:none;border-style:dashed;color:var(--t3,#94a3b8)}
.rc2-x-l{flex:1;min-width:260px}
.rc2-x-r{display:flex;flex-direction:column;align-items:flex-end;gap:10px;flex-shrink:0}
.rc2-x-btns{align-items:flex-start}
.rc2-x-btns .rc2-btn{padding:11px 17px;font-size:13.5px}
/* menú desplegable "Entrar y ver por" */
.rc2-go{position:relative}
.rc2-go-car{display:inline-flex;transition:transform var(--tr-16);margin-left:2px}
.rc2-go-car.up{transform:rotate(180deg)}
.rc2-btn-in.on{background:var(--pd,#0f766e);color:#fff}
.rc2-btn-in.on svg{stroke:#fff}
.rc2-go-pop{position:absolute;top:calc(100% + 7px);right:0;z-index:30;background:var(--surf,#fff);border:1px solid var(--bd,#e5eaf0);border-radius:13px;box-shadow:0 14px 36px rgba(15,23,42,.18);padding:7px;transform-origin:100% 0;opacity:1;transform:none;transition:opacity var(--mo-3) var(--ez-out),transform var(--mo-3) var(--ez-out)}
/* NACE EN SU ESQUINA, NO EN EL AIRE. `transform-origin` va donde vive el
   ancla —arriba a la derecha, que es de donde cuelga— y la escala arranca en
   .96 y no en cero: nada en el mundo real aparece desde la nada, y un
   elemento que crece desde un punto se lee como un globo inflandose. */
/* SIN KEYFRAME: estos dos popovers se abren y cierran seguido, y un keyframe
   reinicia desde cero cada vez que lo interrumpen. Con `@starting-style` el
   navegador tiene el cuadro inicial y la transicion se re-apunta sola. */
@starting-style{ .rc2-go-pop,.pdv2-go-pop{opacity:0;transform:translateY(-6px) scale(.96)} }
.rc2-go-pop-h{font-size:11px;font-weight:700;color:var(--t3,#94a3b8);padding:8px 10px 7px;border-bottom:1px solid var(--bd,#eef2f6);margin-bottom:5px;text-align:left}
.rc2-go-pop-h b{color:var(--t1,#0f172a);font-weight:800}
.rc2-go-it{display:flex;align-items:center;gap:9px;width:100%;border:none;background:none;border-radius:9px;padding:10px 11px;font-size:13.5px;font-weight:700;color:var(--t1,#0f172a);font-family:inherit;cursor:pointer;transition:.12s;text-align:left}
.rc2-go-it:hover{background:var(--p2,#e6faf6);color:var(--pd,#0f766e)}
.rc2-go-it-ic{display:inline-flex;flex-shrink:0;opacity:.8}
.rc2-go-it-ar{margin-left:auto;display:inline-flex;color:var(--t3,#cbd5e1)}
.rc2-go-it:hover .rc2-go-it-ar{color:var(--pd,#0f766e)}
.rc2-tab{display:inline-flex;align-items:center;gap:6px}
.rc2-tab-n{font-size:10.5px;font-weight:800;background:var(--surf,#fff);color:var(--t3,#94a3b8);border-radius:20px;padding:1px 6px;min-width:18px;text-align:center}
.rc2-tab.on .rc2-tab-n{background:rgba(255,255,255,.22);color:#fff}
.rc2-search{display:flex;align-items:center;gap:7px;margin-left:auto;background:var(--surf,#fff);border:1.5px solid var(--bd,#e5eaf0);border-radius:10px;padding:8px 12px;min-width:220px;transition:var(--tr-14)}
.rc2-search:focus-within{border-color:var(--pd,#0f766e)}
.rc2-search input{border:none;outline:none;background:none;font-family:inherit;font-size:13px;color:var(--t1,#0f172a);width:100%}
.rc2-go-it-p{background:var(--bg,#f8fafc)}
.rc2-go-it-tx{display:flex;flex-direction:column;gap:1px;min-width:0;text-align:left}
.rc2-go-it-tx small{font-size:11px;font-weight:600;color:var(--t3,#94a3b8)}
.rc2-go-sep{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.4px;color:var(--t3,#cbd5e1);padding:9px 11px 5px;text-align:left}
.rc2-go-pop{min-width:266px}
/* columna código bajo el nombre del PDV */
.rc2-c-cod{font-size:11px;color:var(--t3,#94a3b8);margin-top:2px;padding-left:19px}
/* ── Ficha del punto de venta: compacta, coherente con la escala del dashboard ── */
.rc2-xrow-pdv td{background:#f7fbfa!important;border-bottom:2px solid var(--pd,#0f766e)}
.rc2-file{padding:0;border-left:3px solid var(--pd,#0f766e)}
.rc2-file-hd{display:flex;align-items:center;gap:11px;padding:16px 20px 12px}
.rc2-file-ic{width:32px;height:32px;border-radius:9px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.rc2-file-t{flex:1;min-width:0}
.rc2-file-nm{font-size:15.5px;font-weight:800;color:var(--t1,#0f172a);line-height:1.25}
.rc2-file-s{display:flex;align-items:center;gap:5px;font-size:12px;color:var(--t3,#94a3b8);margin-top:2px}
.rc2-file-tag{flex-shrink:0;font-size:9.5px;font-weight:800;text-transform:uppercase;letter-spacing:.5px;border-radius:6px;padding:4px 9px}
.rc2-file-body{display:flex;gap:16px;padding:0 20px 18px;align-items:stretch;flex-wrap:wrap}
/* PAGO — el protagonista */
.rc2-pay{flex:1;min-width:320px;background:var(--surf,#fff);border:1px solid #99f6e4;border-radius:12px;padding:16px 18px;display:flex;flex-direction:column}
.rc2-pay-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.rc2-pay-l{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.5px}
.rc2-pay-v{font-size:26px;font-weight:800;color:var(--t1,#0f172a);letter-spacing:-.6px;line-height:1.15;margin-top:3px}
.rc2-pay-org{flex-shrink:0;font-size:10.5px;font-weight:700;border-radius:6px;padding:4px 9px;white-space:nowrap}
.rc2-org-base{background:var(--bg,#f1f5f9);color:var(--t2,#475569)}
.rc2-org-inh{background:#f3f0ff;color:#7c3aed}
.rc2-org-own{background:var(--pd,#0f766e);color:#fff}
.rc2-pay-stats{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px}
.rc2-ps{display:inline-flex;align-items:center;gap:4px;background:var(--bg,#f8fafc);border:1px solid var(--bd,#eef2f6);border-radius:7px;padding:6px 10px;font-size:11.5px;color:var(--t2,#475569);white-space:nowrap}
.rc2-ps i{font-style:normal;font-weight:800;color:var(--t1,#0f172a);font-size:12.5px}
.rc2-pay-act{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-top:auto;padding-top:16px}
.rc2-pay-cta{padding:11px 20px;font-size:13.5px}
.rc2-pay-help{font-size:11px;color:var(--t3,#94a3b8);flex:1;min-width:170px;line-height:1.45}
/* DATOS — secundarios pero legibles */
.rc2-file-l{width:236px;flex-shrink:0}
.rc2-file-lbl{font-size:9.5px;font-weight:800;text-transform:uppercase;letter-spacing:.5px;color:var(--t3,#94a3b8);margin-bottom:6px}
.rc2-fis{background:var(--surf,#fff);border:1px solid var(--bd,#e5eaf0);border-radius:12px;padding:2px 12px}
.rc2-fi{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 0;border-bottom:1px solid var(--bd,#f1f5f9);min-width:0}
.rc2-fi:last-child{border-bottom:none}
.rc2-fi-k{font-size:11px;color:var(--t3,#94a3b8);flex-shrink:0}
.rc2-fi-v{font-size:12px;font-weight:700;color:var(--t1,#0f172a);text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:1000px){.rc2-file-l{width:100%}.rc2-pay{min-width:0;width:100%}}
@media(max-width:900px){.rc2-search{margin-left:0;width:100%}}
.rc2-x-btns{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.rc2-rule-sec{font-size:11px;color:var(--t3,#94a3b8);margin-top:3px}
.rc2-rule-off{background:var(--bg,#f8fafc);border-style:dashed}
.rc2-rule-off .rc2-rule-v{color:var(--t3,#94a3b8)}
.rc2-rule-warn{display:inline-flex;align-items:center;font-size:9.5px;font-weight:800;text-transform:uppercase;letter-spacing:.4px;background:#fef2f2;color:#c0392b;border-radius:5px;padding:3px 7px;cursor:help}
.rc2-rule-part{display:inline-flex;align-items:center;font-size:9.5px;font-weight:800;text-transform:uppercase;letter-spacing:.4px;background:#fffbeb;color:#92400e;border-radius:5px;padding:3px 7px;cursor:help}
.rc2-rule-vwrap{text-align:right}
.rc2-rule-vu{font-size:10px;font-weight:700;color:var(--t3,#94a3b8);text-transform:uppercase;letter-spacing:.3px;margin-top:1px}
.rc2-m-imp{display:flex;flex-direction:column;gap:3px}
.rc2-m-imp2{font-size:11.5px;font-weight:600;opacity:.75}
/* modal ancho, en dos columnas */
.rc2-m-hd{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-bottom:10px}
.rc2-m-lvl{display:inline-flex;align-items:center;gap:5px;font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.5px;border-radius:20px;padding:5px 11px}
.rc2-m-cols{display:grid;grid-template-columns:1fr 1fr;gap:26px;margin-top:20px;align-items:start}
.rc2-m-cl,.rc2-m-cr{min-width:0}
.rc2-m-cl .rc2-m-lbl,.rc2-m-cr .rc2-m-lbl{margin-top:0}
.rc2-m-cr .rc2-m-cond{margin-top:0}
.rc2-m-cr .rc2-m-box{margin-top:12px}
/* nivel en la fila expandida */
.rc2-x-lvl{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-bottom:8px}
.rc2-lvl-ic{display:inline-flex}
.rc2-lvl-t{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.6px;color:var(--pd,#0f766e)}
.rc2-lvl-w{display:inline-flex;align-items:center;gap:4px;font-size:10.5px;font-weight:800;background:var(--p2,#e6faf6);color:var(--pd,#0f766e);border-radius:20px;padding:3px 9px}
.rc2-x-grupo .rc2-x-t{font-size:19px}
/* el punto de venta se distingue por color (violeta) del alcance amplio (verde) */
.rc2-xrow-pdv td{border-bottom-color:#7c3aed!important}
.rc2-file{border-left-color:#7c3aed}
.rc2-file-ic{background:#f3f0ff}
.rc2-file-tag{background:#f3f0ff;color:#7c3aed}
.rc2-pay{border-color:#ddd6fe}
.rc2-pay-l{color:#6d28d9}
.rc2-pay-cta{background:#7c3aed;box-shadow:0 2px 10px rgba(124,58,237,.26)}
.rc2-m-lvl-pdv{box-shadow:inset 0 0 0 1px rgba(124,58,237,.25)}
@media(max-width:760px){.rc2-modal{max-width:520px;padding:24px}.rc2-m-cols{grid-template-columns:1fr;gap:18px}}
.rc2-m-step{font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.5px;color:var(--pd,#0f766e);background:var(--p2,#e6faf6);display:inline-block;padding:4px 9px;border-radius:20px;margin-bottom:9px}
.rc2-m-opts{display:flex;flex-direction:column;gap:9px}
.rc2-m-opt{display:flex;align-items:flex-start;gap:11px;width:100%;text-align:left;border:1.5px solid var(--bd,#e5eaf0);background:var(--surf,#fff);border-radius:12px;padding:13px 14px;cursor:pointer;font-family:inherit;transition:var(--tr-14)}
.rc2-m-opt:hover{border-color:#cbd5e1}
.rc2-m-opt-r{flex-shrink:0;width:17px;height:17px;border-radius:50%;border:2px solid var(--bd,#cbd5e1);margin-top:2px;transition:var(--tr-14);position:relative}
.rc2-m-opt.on{border-color:var(--pd,#0f766e);background:var(--p2,#e6faf6)}
.rc2-m-opt.on .rc2-m-opt-r{border-color:var(--pd,#0f766e);border-width:5px}
.rc2-m-opt.rc2-m-opt-d.on{border-color:#dc2626;background:#fef2f2}
.rc2-m-opt.rc2-m-opt-d.on .rc2-m-opt-r{border-color:#dc2626}
.rc2-m-opt-tx{display:flex;flex-direction:column;gap:3px;min-width:0}
.rc2-m-opt-tx b{font-size:13.5px;color:var(--t1,#0f172a);font-weight:800}
.rc2-m-opt-tx small{font-size:11.5px;color:var(--t2,#475569);line-height:1.45}
.rc2-m-affl{margin-top:14px;padding:12px 13px;background:var(--bg,#f8fafc);border:1px solid var(--bd,#e5eaf0);border-radius:11px}
.rc2-m-affl-h{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.3px;color:var(--t3,#94a3b8);margin-bottom:9px}
.rc2-m-affs{font-size:12px;color:var(--t2,#475569);margin:9px 0 7px;line-height:1.45}
.rc2-m-aff{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:7px 9px;background:var(--surf,#fff);border:1px solid var(--bd,#e5eaf0);border-radius:9px;margin-bottom:5px}
.rc2-m-aff b{font-size:13px;color:var(--t1,#0f172a);white-space:nowrap}
.rc2-m-affm{font-size:11.5px;color:var(--t3,#94a3b8);padding-left:3px}
.rc2-m-aff-del{opacity:.55;text-decoration:line-through;border-color:#fbdcdc;background:#fef7f7}
.rc2-m-affl-w{background:#fffbeb;border-color:#fde68a}
.rc2-m-affl-w .rc2-m-affl-h{color:#92400e}
.rc2-m-res{margin-top:14px;border:1px solid var(--bd,#e5eaf0);border-radius:12px;overflow:hidden}
.rc2-m-res-r{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 14px;font-size:13px;color:var(--t2,#475569);border-bottom:1px solid var(--bd,#eef2f6)}
.rc2-m-res-r:last-child{border-bottom:none}
.rc2-m-res-r b{color:var(--t1,#0f172a);font-weight:800;text-align:right}
.rc2-m-res-big{background:var(--p2,#e6faf6);padding:14px}
.rc2-m-res-big b{font-size:17px}
.rc2-m-ar{color:var(--t3,#94a3b8);margin:0 3px}
.rc2-m-warn{display:flex;align-items:center;gap:7px;margin-top:12px;padding:11px 13px;border-radius:10px;background:#fffbeb;color:#92400e;font-size:12.5px;font-weight:600;line-height:1.45}
.rc2-m-warn-d{background:#fef2f2;color:#c0392b}
.rc2-lswarn{display:flex;align-items:flex-start;gap:9px;padding:13px 15px;margin-bottom:14px;border-radius:12px;background:#fffbeb;border:1px solid #fde68a;color:#92400e;font-size:12.5px;line-height:1.5}
.rc2-lswarn b{font-weight:800}
/* ═══ Créditos — misma escala tipográfica que el resto ═══
   big 34 · sec-t 15.5 · valor 22 · cuerpo 13 · meta 12.5 · label 11 uppercase */
.cr2-card{padding:24px;margin-bottom:18px}
.cr2-sec-t{font-size:15.5px;font-weight:800;color:var(--t1,#0f172a)}
.cr2-sec-s{font-size:12.5px;color:var(--t3,#94a3b8);margin-top:3px;line-height:1.45}
.cr2-hd{margin-bottom:16px}
.cr2-saldo{display:flex;align-items:center;justify-content:flex-start;gap:34px;flex-wrap:wrap;padding:34px 36px}
.cr2-saldo-l{flex:1 1 300px;min-width:260px}
.cr2-state{display:inline-flex;align-items:center;gap:7px;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.5px;color:var(--pd,#0f766e);background:var(--p2,#e6faf6);border-radius:20px;padding:6px 12px}
.cr2-state.warn{color:#92400e;background:#fffbeb}
.cr2-dot{width:7px;height:7px;border-radius:50%;background:currentColor;flex-shrink:0}
.cr2-state-s{font-size:11px;font-weight:600;text-transform:none;letter-spacing:0;opacity:.85;margin-left:2px}
.cr2-lbl{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.5px;color:var(--t3,#94a3b8);margin-top:22px}
.cr2-big{font-size:46px;font-weight:800;color:var(--pd,#0f766e);letter-spacing:-1.4px;line-height:1.04;margin-top:9px;margin-bottom:2px}
.cr2-sub{font-size:13px;color:var(--t2,#475569);margin-top:5px}
.cr2-cta{display:inline-flex;align-items:center;gap:8px;margin-top:20px;background:var(--pd,#0f766e);color:#fff;border:none;border-radius:11px;padding:13px 22px;font-size:14px;font-weight:700;font-family:inherit;cursor:pointer;transition:var(--tr-14);box-shadow:0 2px 8px rgba(15,118,110,.22)}
.cr2-cta:hover{filter:brightness(1.08);transform:translateY(-1px)}
.cr2-saldo-r{flex-shrink:0;align-self:stretch;display:flex;align-items:center;border-left:1px solid var(--bd,#e5eaf0);padding-left:34px}
.cr2-runway{text-align:center;background:var(--p2,#e6faf6);border-radius:14px;padding:22px 30px}
.cr2-runway-n{font-size:32px;font-weight:800;color:var(--pd,#0f766e);letter-spacing:-.8px;line-height:1.1}
.cr2-runway-l{font-size:12.5px;font-weight:600;color:var(--t2,#475569);margin-top:5px}
.cr2-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:18px}
.cr2-kpi{background:var(--surf,#fff);border:1px solid var(--bd,#e5eaf0);border-radius:14px;padding:18px 20px}
.cr2-kpi-top{display:flex;align-items:center;justify-content:space-between;gap:10px}
.cr2-kpi-l{font-size:12.5px;font-weight:700;color:var(--t2,#475569)}
.cr2-kpi-ic{width:32px;height:32px;border-radius:9px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.cr2-kpi-v{font-size:22px;font-weight:800;color:var(--t1,#0f172a);letter-spacing:-.4px;margin-top:12px;line-height:1.15}
.cr2-kpi-s{font-size:11.5px;color:var(--t3,#94a3b8);margin-top:4px}
.cr2-tblwrap{overflow-x:auto;border:1px solid var(--bd,#e5eaf0);border-radius:12px}
.cr2-tbl{width:100%;border-collapse:collapse;font-size:13px}
.cr2-tbl th{text-align:left;font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.4px;color:var(--t3,#94a3b8);padding:12px 14px;background:var(--bg,#f8fafc);border-bottom:1px solid var(--bd,#e5eaf0);white-space:nowrap}
.cr2-th-r{text-align:right}
.cr2-tbl td{padding:13px 14px;border-bottom:1px solid var(--bd,#eef2f6);color:var(--t1,#0f172a)}
.cr2-tbl tbody tr:last-child td{border-bottom:none}
.cr2-tbl tbody tr:hover td{background:rgba(15,118,110,.03)}
.cr2-t-date{color:var(--t2,#475569);white-space:nowrap}
.cr2-t-mov b{font-weight:700}
.cr2-t-mut{color:var(--t3,#94a3b8)}
.cr2-t-amt{text-align:right;font-weight:800;white-space:nowrap}
.cr2-badge{display:inline-block;font-size:11px;font-weight:700;padding:4px 10px;border-radius:7px;white-space:nowrap}
.cr2-empty{text-align:center;color:var(--t3,#94a3b8);padding:34px 20px;font-size:13px;line-height:1.5}
/* ═══ PDV's v2 ═══ */
.pdv2-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:16px}
.pdv2-kpi{background:var(--surf,#fff);border:1px solid var(--bd,#e5eaf0);border-radius:14px;padding:18px 20px}
.pdv2-kpi-v{font-size:26px;font-weight:800;letter-spacing:-.5px;line-height:1.1}
.pdv2-kpi-l{font-size:12.5px;font-weight:700;color:var(--t2,#475569);margin-top:6px}
.pdv2-kpi-s{font-size:11.5px;color:var(--t3,#94a3b8);margin-top:2px}
.pdv2-crumbs{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:10px 12px;margin-bottom:14px;background:var(--bg,#f8fafc);border:1px solid var(--bd,#e5eaf0);border-radius:12px}
.pdv2-crumbs.flash{animation:rc2flash 1.1s ease}
.pdv2-cr-l{display:flex;align-items:center;gap:5px;flex-wrap:wrap}
.pdv2-cr{display:inline-flex;align-items:center;gap:6px;border:1px solid transparent;background:none;border-radius:8px;padding:6px 10px;font-size:12.5px;font-weight:700;color:var(--t2,#475569);cursor:pointer;font-family:inherit;transition:var(--tr-14)}
.pdv2-cr:hover{background:var(--surf,#fff);border-color:var(--bd,#e5eaf0);color:var(--t1,#0f172a)}
.pdv2-cr.on{background:var(--pd,#0f766e);color:#fff}
.pdv2-cr-k{font-size:9.5px;font-weight:800;text-transform:uppercase;letter-spacing:.4px;opacity:.65}
.pdv2-cr-sep{display:inline-flex;color:var(--t3,#cbd5e1)}
.pdv2-cr-w{display:inline-flex;align-items:center;animation:rc2pop .28s var(--ez-pop)}
.pdv2-cr-x{border:none;background:none;color:var(--t3,#94a3b8);font-size:11px;cursor:pointer;padding:5px 6px;border-radius:6px;font-family:inherit}
.pdv2-cr-x:hover{background:#fef2f2;color:#c0392b}
.pdv2-cr-clear{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--bd,#e5eaf0);background:var(--surf,#fff);color:var(--t2,#475569);border-radius:9px;padding:7px 12px;font-size:12px;font-weight:700;font-family:inherit;cursor:pointer}
.pdv2-cr-clear:hover{border-color:#f0c0c0;color:#c0392b;background:#fef2f2}
.pdv2-card{padding:18px 20px 20px}
.pdv2-verpor{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.pdv2-verpor-l{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.4px;color:var(--t3,#94a3b8)}
.pdv2-tabs{display:inline-flex;background:var(--bg,#f1f5f9);border-radius:10px;padding:3px;gap:2px;flex-wrap:wrap}
.pdv2-tab{border:none;background:none;padding:8px 13px;border-radius:8px;font-size:12.5px;font-weight:700;color:var(--t2,#475569);cursor:pointer;font-family:inherit;transition:var(--tr-14);white-space:nowrap}
.pdv2-tab:hover{color:var(--t1,#0f172a)}
.pdv2-tab.on{background:var(--pd,#0f766e);color:#fff;box-shadow:0 1px 3px rgba(15,23,42,.12)}
.pdv2-search{display:flex;align-items:center;gap:7px;margin-left:auto;background:var(--surf,#fff);border:1.5px solid var(--bd,#e5eaf0);border-radius:10px;padding:8px 12px;min-width:230px;transition:var(--tr-14)}
.pdv2-search:focus-within{border-color:var(--pd,#0f766e)}
.pdv2-search input{border:none;outline:none;background:none;font-family:inherit;font-size:13px;color:var(--t1,#0f172a);width:100%}
.pdv2-tab{display:inline-flex;align-items:center;gap:6px}
.pdv2-tab-n{font-size:10.5px;font-weight:800;background:var(--surf,#fff);color:var(--t3,#94a3b8);border-radius:20px;padding:1px 6px;min-width:18px;text-align:center}
.pdv2-tab.on .pdv2-tab-n{background:rgba(255,255,255,.22);color:#fff}
/* ── Módulo de filtros de PDV's ── */
.pf-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.pf-btn{display:inline-flex;align-items:center;gap:7px;border:1.5px solid var(--bd,#e5eaf0);background:var(--surf,#fff);color:var(--t2,#475569);border-radius:10px;padding:9px 14px;font-size:13px;font-weight:700;font-family:inherit;cursor:pointer;transition:var(--tr-14)}
.pf-btn:hover{border-color:var(--pd,#0f766e);color:var(--pd,#0f766e)}
.pf-btn.on,.pf-btn.has{border-color:var(--pd,#0f766e);background:var(--p2,#e6faf6);color:var(--pd,#0f766e)}
.pf-n{font-size:10.5px;font-weight:800;background:var(--pd,#0f766e);color:#fff;border-radius:20px;padding:1px 6px;min-width:17px;text-align:center}
.pf-car{display:inline-flex;transition:transform var(--tr-16)}
.pf-car.up{transform:rotate(180deg)}
.pf-chips{display:flex;gap:6px;flex-wrap:wrap}
.pf-chip{display:inline-flex;align-items:center;gap:6px;background:var(--p2,#e6faf6);border:1px solid var(--pd,#0f766e);color:var(--pd,#0f766e);border-radius:8px;padding:5px 6px 5px 10px;font-size:12px;font-weight:700}
.pf-chip button{border:none;background:none;color:currentColor;cursor:pointer;font-size:10px;padding:2px 4px;border-radius:5px;font-family:inherit;opacity:.7}
.pf-chip button:hover{opacity:1;background:rgba(15,118,110,.12)}
.pf-clear{text-decoration:underline}
.pf-hint{font-size:12px;color:var(--t3,#94a3b8)}
.pf-count{margin-left:auto;font-weight:700;white-space:nowrap}
.pf-panel{display:flex;gap:24px;flex-wrap:wrap;padding:18px;margin-bottom:14px;background:var(--bg,#f8fafc);border:1px solid var(--bd,#e5eaf0);border-radius:13px;animation:rc2slide .2s ease}
.pf-sec{flex:1;min-width:290px}
.pf-lbl{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.5px;color:var(--t3,#94a3b8);margin-bottom:9px}
.pf-ests{display:flex;gap:6px;flex-wrap:wrap}
.pf-est{display:inline-flex;align-items:center;gap:6px;border:1.5px solid var(--bd,#e5eaf0);background:var(--surf,#fff);color:var(--t2,#475569);border-radius:9px;padding:7px 11px;font-size:12.5px;font-weight:700;font-family:inherit;cursor:pointer;transition:var(--tr-14)}
.pf-est:hover{border-color:#cbd5e1}
.pf-est-n{font-size:10.5px;font-weight:800;background:var(--bg,#f1f5f9);color:var(--t3,#94a3b8);border-radius:20px;padding:1px 6px}
.pf-est.on{border-color:var(--pd,#0f766e);background:var(--p2,#e6faf6);color:var(--pd,#0f766e)}
.pf-est.on .pf-est-n{background:var(--pd,#0f766e);color:#fff}
.pf-est-sin.on{border-color:#dc2626;background:#fef2f2;color:#c0392b}
.pf-est-sin.on .pf-est-n{background:#dc2626}
.pf-est-rev.on{border-color:#d97706;background:#fffbeb;color:#92400e}
.pf-est-rev.on .pf-est-n{background:#d97706}
.pf-dates{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap}
.pf-f{display:flex;flex-direction:column;gap:5px;flex:1;min-width:130px}
.pf-f label{font-size:11px;font-weight:700;color:var(--t2,#475569)}
.pf-sel,.pf-inp{border:1.5px solid var(--bd,#e5eaf0);background:var(--surf,#fff);border-radius:9px;padding:8px 10px;font-size:13px;font-weight:600;color:var(--t1,#0f172a);font-family:inherit;width:100%}
.pf-sel:focus,.pf-inp:focus{outline:none;border-color:var(--pd,#0f766e)}
.pf-x{border:1.5px solid var(--bd,#e5eaf0);background:var(--surf,#fff);color:var(--t2,#475569);border-radius:9px;padding:8px 12px;font-size:12.5px;font-weight:700;font-family:inherit;cursor:pointer;white-space:nowrap}
.pf-x:hover{border-color:#f0c0c0;color:#c0392b;background:#fef2f2}
.pf-uni{font-size:11px;color:var(--t3,#94a3b8);margin-top:9px;line-height:1.45}
@media(max-width:900px){.pf-count{margin-left:0;width:100%}}
.pdv2-go{position:relative}
.pdv2-gx-btn{display:inline-flex;align-items:center;gap:6px;border:1.5px solid var(--pd,#0f766e);background:var(--p2,#e6faf6);color:var(--pd,#0f766e);border-radius:10px;padding:10px 15px;font-size:13px;font-weight:700;font-family:inherit;cursor:pointer;transition:var(--tr-14);white-space:nowrap}
.pdv2-gx-btn:hover{background:var(--pd,#0f766e);color:#fff}
.pdv2-gx-btn:hover svg{stroke:#fff}
.pdv2-gx-btn.on{background:var(--pd,#0f766e);color:#fff}
.pdv2-gx-btn.on svg{stroke:#fff}
.pdv2-go-car{display:inline-flex;transition:transform var(--tr-16)}
.pdv2-go-car.up{transform:rotate(180deg)}
.pdv2-go-pop{position:absolute;top:calc(100% + 7px);right:0;z-index:30;min-width:262px;background:var(--surf,#fff);border:1px solid var(--bd,#e5eaf0);border-radius:13px;box-shadow:0 14px 36px rgba(15,23,42,.18);padding:7px;transform-origin:100% 0;opacity:1;transform:none;transition:opacity var(--mo-3) var(--ez-out),transform var(--mo-3) var(--ez-out);text-align:left}
.pdv2-go-pop-h{font-size:11px;font-weight:700;color:var(--t3,#94a3b8);padding:8px 10px 7px;border-bottom:1px solid var(--bd,#eef2f6);margin-bottom:5px}
.pdv2-go-pop-h b{color:var(--t1,#0f172a);font-weight:800}
.pdv2-go-it{display:flex;align-items:center;gap:9px;width:100%;border:none;background:none;border-radius:9px;padding:10px 11px;font-size:13.5px;font-weight:700;color:var(--t1,#0f172a);font-family:inherit;cursor:pointer;transition:.12s;text-align:left}
.pdv2-go-it:hover{background:var(--p2,#e6faf6);color:var(--pd,#0f766e)}
.pdv2-go-it-p{background:var(--bg,#f8fafc)}
.pdv2-go-it-tx{display:flex;flex-direction:column;gap:1px;min-width:0}
.pdv2-go-it-tx small{font-size:11px;font-weight:600;color:var(--t3,#94a3b8)}
.pdv2-go-it-ic{display:inline-flex;flex-shrink:0;opacity:.8}
.pdv2-go-it-ar{margin-left:auto;display:inline-flex;color:var(--t3,#cbd5e1)}
.pdv2-go-it:hover .pdv2-go-it-ar{color:var(--pd,#0f766e)}
.pdv2-go-sep{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.4px;color:var(--t3,#cbd5e1);padding:9px 11px 5px}
.pdv2-tblwrap{overflow:hidden;border:1px solid var(--bd,#e5eaf0);border-radius:12px}
.pdv2-tbl{table-layout:fixed}
.pdv2-tbl th,.pdv2-tbl td{overflow:hidden;text-overflow:ellipsis}
.pdv2-tbl th:first-child,.pdv2-tbl td:first-child{width:26%}
.pdv2-c-mut,.pdv2-c-sub{white-space:normal;word-break:break-word}
.pdv2-tblwrap.flash tbody tr{animation:rc2rows .34s ease both}
.pdv2-tbl{width:100%;border-collapse:collapse;font-size:13px}
.pdv2-tbl th{text-align:left;font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.4px;color:var(--t3,#94a3b8);padding:12px 14px;background:var(--bg,#f8fafc);border-bottom:1px solid var(--bd,#e5eaf0);white-space:nowrap}
.pdv2-tbl td{padding:12px 14px;border-bottom:1px solid var(--bd,#eef2f6);color:var(--t1,#0f172a);vertical-align:middle}
.pdv2-tbl tbody tr:last-child td{border-bottom:none}
.pdv2-row{cursor:pointer;transition:.12s}
.pdv2-row:hover td{background:rgba(15,118,110,.04)}
.pdv2-row:hover .pdv2-c-go{color:var(--pd,#0f766e);transform:translateX(3px)}
.pdv2-nm{font-weight:700;display:flex;align-items:center;gap:7px}
.pdv2-cod{font-size:11.5px;color:var(--t3,#94a3b8);margin-top:2px}
.pdv2-revtag{display:inline-flex;align-items:center;gap:3px;font-size:9.5px;font-weight:800;text-transform:uppercase;letter-spacing:.3px;background:#fffbeb;color:#92400e;border-radius:5px;padding:2px 6px}
.pdv2-c-mut{color:var(--t2,#475569);white-space:nowrap}
.pdv2-c-sub{font-size:11px;color:var(--t3,#94a3b8);margin-top:2px}
.pdv2-mut{color:var(--t3,#cbd5e1)}
.pdv2-vis{display:inline-block;font-size:12px;font-weight:800;padding:5px 10px;border-radius:7px;white-space:nowrap}
.pdv2-disp{display:inline-block;font-size:12px;font-weight:800;background:#eff6ff;color:#2563eb;border-radius:7px;padding:4px 10px}
.pdv2-c-go{color:var(--t3,#cbd5e1);text-align:right;transition:var(--tr-14)}
.pdv2-empty{text-align:center;color:var(--t3,#94a3b8);padding:34px 20px}
/* filas de grupo: fondo propio, destacan del resto */
.pdv2-grow{cursor:pointer;transition:.12s}
.pdv2-grow td{background:#f2f7f6;font-weight:600;border-bottom:1px solid #e2ecea}
.pdv2-grow:hover td{background:#e9f4f2}
.pdv2-grow.open td{background:var(--p2,#e6faf6);border-bottom-color:var(--pd,#0f766e)}
.pdv2-c-g{white-space:nowrap}
.pdv2-c-gin{display:flex;align-items:center;gap:8px}
.pdv2-c-g b{font-size:13.5px;font-weight:800}
.pdv2-chev{display:inline-flex;color:var(--t3,#94a3b8);transition:transform var(--tr-16)}
.pdv2-chev.open{transform:rotate(180deg);color:var(--pd,#0f766e)}
.pdv2-c-n{font-weight:700;white-space:nowrap}
.pdv2-bar{width:96px;height:7px;border-radius:5px;background:#dbe6e4;overflow:hidden}
.pdv2-bar span{display:block;height:100%;border-radius:5px;background:var(--pd,#0f766e)}
.pdv2-bar-l{display:block;font-size:11px;color:var(--t2,#475569);margin-top:4px;font-weight:600}
.pdv2-sin{display:inline-block;font-size:12px;font-weight:800;background:#fef2f2;color:#c0392b;border-radius:7px;padding:4px 10px}
.pdv2-revn{display:inline-block;font-size:12px;font-weight:800;background:#fffbeb;color:#92400e;border-radius:7px;padding:4px 10px}
.pdv2-gx td{background:linear-gradient(180deg,#f7fbfa,#f8fafc)!important;padding:0!important;border-bottom:2px solid var(--pd,#0f766e)}
.pdv2-gxin{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:22px 24px;border-left:4px solid var(--pd,#0f766e);flex-wrap:wrap}
.pdv2-gx-t{font-size:16px;font-weight:800;color:var(--t1,#0f172a)}
.pdv2-gx-facts{display:flex;flex-wrap:wrap;gap:8px;margin-top:11px}
.pdv2-gx-facts span{background:var(--surf,#fff);border:1px solid var(--bd,#e5eaf0);border-radius:9px;padding:7px 12px;font-size:12.5px;color:var(--t2,#475569);font-weight:600}
.pdv2-gx-r{display:flex;flex-direction:column;align-items:flex-end;gap:7px}
.pdv2-pager{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px;flex-wrap:wrap}
.pdv2-pg-i{font-size:12px;color:var(--t3,#94a3b8);font-weight:600}
.pdv2-pg-b{display:flex;align-items:center;gap:8px}
.pdv2-pg{border:1.5px solid var(--bd,#e5eaf0);background:var(--surf,#fff);color:var(--t2,#475569);border-radius:8px;padding:6px 12px;font-size:12.5px;font-weight:700;font-family:inherit;cursor:pointer}
.pdv2-pg:hover:not(:disabled){border-color:var(--pd,#0f766e);color:var(--pd,#0f766e)}
.pdv2-pg:disabled{opacity:.45;cursor:not-allowed}
.pdv2-pg-n{font-size:12.5px;font-weight:700;color:var(--t1,#0f172a)}
/* ── detalle: expediente ── */
.pdv2-back{display:inline-flex;align-items:center;gap:7px;border:1.5px solid var(--bd,#e5eaf0);background:var(--surf,#fff);color:var(--t2,#475569);border-radius:10px;padding:9px 15px;font-size:13px;font-weight:700;font-family:inherit;cursor:pointer;transition:var(--tr-14);margin-bottom:16px}
.pdv2-back svg{transform:rotate(180deg)}
.pdv2-back:hover{border-color:var(--pd,#0f766e);color:var(--pd,#0f766e);background:var(--p2,#e6faf6)}
.pdv2-file{display:flex;align-items:stretch;gap:22px;padding:22px;margin-bottom:16px;flex-wrap:wrap}
.pdv2-f-l{flex-shrink:0}
.pdv2-f-photo{position:relative;width:200px;height:200px;border-radius:14px;background-size:cover;background-position:center;cursor:zoom-in;background-color:#0f172a}
.pdv2-f-photo-l{position:absolute;left:9px;bottom:9px;display:inline-flex;align-items:center;gap:5px;background:rgba(15,23,42,.72);color:#fff;font-size:10.5px;font-weight:700;border-radius:6px;padding:4px 8px}
.pdv2-f-photo-none{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;background:var(--bg,#f8fafc);border:1px dashed var(--bd,#e5eaf0);color:var(--t3,#94a3b8);font-size:12px;cursor:default}
.pdv2-f-m{flex:1;min-width:240px;display:flex;flex-direction:column;justify-content:center}
.pdv2-f-rev{display:inline-flex;align-items:center;gap:5px;align-self:flex-start;font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.4px;background:#fffbeb;color:#92400e;border-radius:20px;padding:5px 11px;margin-bottom:10px}
.pdv2-f-nm{position:relative;font-size:27px;font-weight:800;color:var(--t1,#0f172a);letter-spacing:-.6px;line-height:1.15;padding-bottom:11px}
.pdv2-f-nm:after{content:'';position:absolute;left:0;bottom:0;width:52px;height:4px;border-radius:3px;background:var(--pd,#0f766e)}
.pdv2-f-cod{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--t3,#94a3b8);font-weight:600;margin-top:12px}
.pdv2-f-badge{display:inline-block;align-self:flex-start;font-size:12px;font-weight:800;border-radius:8px;padding:6px 12px;margin-top:12px}
.pdv2-f-tags{display:flex;flex-wrap:wrap;gap:7px;margin-top:14px}
.pdv2-tag{display:inline-flex;align-items:center;gap:6px;background:var(--bg,#f1f5f9);border-radius:8px;padding:6px 11px;font-size:12.5px;color:var(--t1,#0f172a)}
.pdv2-tag-k{font-size:9.5px;font-weight:800;text-transform:uppercase;letter-spacing:.3px;color:var(--t3,#94a3b8)}
.pdv2-f-dir{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--t2,#475569);margin-top:12px}
.pdv2-f-r{flex-shrink:0}
.pdv2-f-map{width:170px;height:170px;border-radius:12px;overflow:hidden;border:1px solid var(--bd,#e5eaf0);background:#eef3f7}
.pdv2-f-map-none{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;color:var(--t3,#94a3b8);font-size:11.5px;border-style:dashed}
.pdv2-stats{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-bottom:6px}
.pdv2-st{background:var(--surf,#fff);border:1px solid var(--bd,#e5eaf0);border-radius:12px;padding:16px 18px}
.pdv2-st-v{font-size:19px;font-weight:800;color:var(--t1,#0f172a);letter-spacing:-.3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pdv2-st-l{font-size:11.5px;color:var(--t3,#94a3b8);margin-top:4px;font-weight:600}
.pdv2-empty2{padding:22px;background:var(--bg,#f8fafc);border:1px dashed var(--bd,#e5eaf0);border-radius:12px;color:var(--t2,#475569);font-size:13px;line-height:1.55}
/* ── Historial de visitas ── */
.pdv2-tl{display:flex;flex-direction:column;position:relative;padding-left:6px}
.pdv2-tl-it{display:flex;gap:14px;position:relative;padding-bottom:14px}
.pdv2-tl-it:before{content:'';position:absolute;left:13px;top:30px;bottom:0;width:2px;background:var(--bd,#e5eaf0)}
.pdv2-tl-it:last-child{padding-bottom:0}
.pdv2-tl-it:last-child:before{display:none}
.pdv2-tl-dot{flex-shrink:0;width:28px;height:28px;border-radius:50%;background:var(--pd,#0f766e);color:#fff;font-size:12px;font-weight:800;display:flex;align-items:center;justify-content:center;z-index:1;margin-top:2px}
.pdv2-tl-c{flex:1;background:var(--surf,#fff);border:1px solid var(--bd,#e5eaf0);border-radius:13px;min-width:0;transition:var(--tr-14)}
.pdv2-tl-c:hover{border-color:#cbd5e1;box-shadow:0 2px 10px rgba(15,23,42,.05)}
.pdv2-tl-top{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:15px 16px;flex-wrap:wrap}
.pdv2-tl-l{flex:1;min-width:0}
.pdv2-tl-nro{display:flex;align-items:center;gap:7px;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.5px;color:var(--t3,#94a3b8)}
.pdv2-tl-tag{font-size:9.5px;font-weight:800;text-transform:uppercase;letter-spacing:.3px;background:var(--p2,#e6faf6);color:var(--pd,#0f766e);border-radius:5px;padding:2px 6px}
.pdv2-tl-tag-l{background:#f3f0ff;color:#7c3aed}
.pdv2-tl-fecha{display:flex;align-items:baseline;gap:7px;flex-wrap:wrap;font-size:15px;font-weight:800;color:var(--t1,#0f172a);margin-top:5px;letter-spacing:-.2px}
.pdv2-tl-dia{text-transform:capitalize;color:var(--pd,#0f766e)}
.pdv2-tl-hora{display:inline-flex;align-items:center;gap:4px;font-size:12.5px;font-weight:700;color:var(--t2,#475569);background:var(--bg,#f1f5f9);border-radius:6px;padding:3px 8px}
.pdv2-tl-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px}
.pdv2-ch{display:inline-flex;align-items:center;gap:4px;font-size:11.5px;font-weight:700;color:var(--t2,#475569);background:var(--bg,#f8fafc);border:1px solid var(--bd,#eef2f6);border-radius:7px;padding:4px 9px}
.pdv2-ch-mut{color:var(--t3,#94a3b8);font-weight:600}
.pdv2-tl-det{flex-shrink:0;display:inline-flex;align-items:center;gap:6px;border:none;background:var(--pd,#0f766e);color:#fff;border-radius:10px;padding:11px 18px;font-size:13px;font-weight:700;font-family:inherit;cursor:pointer;transition:var(--tr-14);box-shadow:0 2px 8px rgba(15,118,110,.22)}
.pdv2-tl-det:hover{filter:brightness(1.08);transform:translateY(-1px)}
.pdv2-tl-foot{display:flex;align-items:center;gap:11px;flex-wrap:wrap;padding:11px 16px;border-top:1px solid var(--bd,#eef2f6);background:var(--bg,#fbfcfd);border-radius:0 0 12px 12px}
.pdv2-tl-flbl{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.4px;color:var(--t3,#cbd5e1)}
.pdv2-tl-th{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.pdv2-tl-i{width:44px;height:44px;border-radius:8px;background-size:cover;background-position:center;cursor:zoom-in;border:1px solid var(--bd,#e5eaf0);transition:var(--tr-14)}
.pdv2-tl-i:hover{transform:scale(1.08);border-color:var(--pd,#0f766e)}
.pdv2-tl-more{font-size:11.5px;font-weight:700;color:var(--t3,#94a3b8)}
@media(max-width:640px){.pdv2-tl-det{width:100%;justify-content:center}}
@media(max-width:1100px){.pdv2-stats{grid-template-columns:repeat(3,1fr)}}
@media(max-width:900px){.pdv2-kpis{grid-template-columns:repeat(2,1fr)}.pdv2-search{margin-left:0;width:100%}}
@media(max-width:640px){.pdv2-kpis,.pdv2-stats{grid-template-columns:1fr}.pdv2-file{flex-direction:column}.pdv2-f-photo,.pdv2-f-map{width:100%}.pdv2-gxin{flex-direction:column;align-items:stretch}.pdv2-gx-r{align-items:stretch}}
@media(max-width:900px){.cr2-kpis{grid-template-columns:1fr}}
@media(max-width:640px){.cr2-saldo{flex-direction:column;align-items:stretch}.cr2-saldo-r{width:100%;border-left:none;padding-left:0;border-top:1px solid var(--bd,#e5eaf0);padding-top:22px;margin-top:4px;justify-content:center}}
@media(max-width:640px){.rc2-x-r{align-items:stretch;width:100%}.rc2-go{align-items:stretch}.rc2-go-chips{justify-content:stretch}.rc2-go-chip{flex:1}}
@media(max-width:900px){.rc2-flds{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.rc2-flds{grid-template-columns:1fr}.rc2-basecard{flex-direction:column;align-items:stretch}.rc2-base-r{justify-content:space-between}.rc2-x{flex-direction:column;align-items:stretch}.rc2-x-r{justify-content:stretch}.rc2-x-r .rc2-btn{flex:1;justify-content:center}}
.mis-row{display:flex;align-items:center;gap:var(--sp4);padding:9px 0;border-bottom:var(--border)}
.mis-row:last-child{border-bottom:none}
.mis-row-ic{width:30px;height:30px;border-radius:var(--r8);background:var(--bg);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--p)}
.mis-row-k{font-size:var(--fs-label);color:var(--t3);font-weight:var(--fw-semi);width:130px;flex-shrink:0}
.mis-row-v{font-size:var(--fs-body);color:var(--t1);font-weight:var(--fw-semi)}
@media(max-width:700px){.mis-grid{grid-template-columns:1fr}
@media(max-width:860px){.mis-modal{width:96vw;height:auto;max-height:92vh}.mis-grid{grid-template-columns:1fr;height:auto}.mis-photos{height:auto;min-height:240px}.mis-info{height:auto;overflow:visible}.mis-info-body{overflow:visible}.mis-info-head{padding-right:28px}}.mis-photos{min-height:200px}}
.pdv-section{padding:10px 14px;border-bottom:1px solid var(--bg)}
.pdv-section-ttl{font-size:var(--fs-micro);font-weight:var(--fw-bold);color:var(--t3);text-transform:uppercase;letter-spacing:.6px;margin-bottom:7px;display:flex;align-items:center;gap:5px}
/* obs cards */
.obs-card-v2{background:var(--surf);border:var(--border);border-radius:var(--r12);margin-bottom:10px;display:flex;align-items:stretch;overflow:hidden;transition:box-shadow var(--tr-base)}
.obs-card-v2:hover{box-shadow:0 4px 14px rgba(0,0,0,.07)}
.obs-card-v2-icon{width:80px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:14px 10px;flex-shrink:0}
.obs-card-v2-icon svg{color:var(--surf)}
.obs-card-v2-dim{font-size:var(--fs-micro);font-weight:var(--fw-bold);letter-spacing:1px;text-transform:uppercase;color:var(--surf);text-align:center;margin-top:3px}
.obs-card-v2-body{flex:1;padding:12px 16px;display:flex;gap:var(--sp6);align-items:flex-start}
.obs-card-v2-main{flex:1}
.obs-card-v2-meta{font-size:var(--fs-micro);font-weight:var(--fw-bold);color:var(--t3);text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px}
.obs-card-v2-title{font-size:var(--fs-body);font-weight:var(--fw-bold);color:var(--t1);line-height:1.4;margin-bottom:5px}
.obs-card-v2-desc{font-size:var(--fs-ter);color:var(--t2);line-height:var(--lh-loose);margin-bottom:7px}
.obs-card-v2-chips{display:flex;gap:var(--sp1);flex-wrap:wrap}
.obs-card-v2-chip{font-size:var(--fs-micro);background:var(--bg);color:var(--t2);padding:2px 7px;border-radius:4px;font-weight:var(--fw-med)}
/* ══ LO QUE ENCONTRAMOS (Resumen) ══
   Tres filas y un titular. La tentacion era otra grilla de tarjetas; el
   problema del Resumen no era que faltaran tarjetas, era que ninguna decia
   nada. Una fila con el numero grande a la izquierda y la frase al lado se
   lee en diagonal, que es como se lee un informe que llega por mail. */
.hz{background:var(--surf);border:var(--border);border-radius:var(--r16);padding:20px 22px 8px;margin:14px 0}
.hz-top{display:flex;align-items:baseline;justify-content:space-between;gap:14px;margin-bottom:12px}
.hz-lbl{font-size:var(--fs-label);font-weight:var(--fw-bold);letter-spacing:.7px;text-transform:uppercase;color:var(--t3)}
.hz-all{font-size:var(--fs-ter);font-weight:var(--fw-semi);color:var(--pd);cursor:pointer;background:none;border:none;padding:0}
.hz-all:hover{text-decoration:underline}
.hz-head{font-size:var(--fs-h2);font-weight:var(--fw-bold);color:var(--t1);line-height:var(--lh-snug);letter-spacing:-.3px}
.hz-sub{font-size:var(--fs-sec);color:var(--t2);line-height:var(--lh-body);margin-top:6px;max-width:82ch}
/* Cinta de "estas mirando la evidencia de un hallazgo". Sin esto, el mapa
   filtrado miente: parece el universo entero relevado. */
.hzf{display:flex;align-items:center;gap:14px;flex-wrap:wrap;background:var(--pl);border:1px solid var(--p2);
  border-radius:var(--r12);padding:12px 16px;margin-bottom:14px}
.hzf-t{flex:1;min-width:260px;font-size:var(--fs-sec);color:var(--t1);line-height:var(--lh-body)}
.hzf-t b{font-weight:var(--fw-bold)}
.hzf-x{font-size:var(--fs-ter);font-weight:var(--fw-semi);color:var(--pd);background:var(--surf);
  border:1px solid var(--p2);border-radius:var(--r8);padding:7px 13px;cursor:pointer}
.hzf-x:hover{background:var(--surf);border-color:var(--p)}
.obs-card-v2-badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:var(--r10);font-size:var(--fs-micro);font-weight:var(--fw-bold);white-space:nowrap;flex-shrink:0;margin-right:4px}
.obs-card-v2-side{width:110px;flex-shrink:0;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:12px 6px;border-left:1px solid var(--bg)}
.obs-card-v2-kpi{font-size:24px;font-weight:var(--fw-heavy);line-height:1;text-align:center}
.obs-card-v2-kpi-lbl{font-size:var(--fs-micro);font-weight:var(--fw-bold);color:var(--t3);text-transform:uppercase;letter-spacing:.4px;text-align:center;margin-top:3px}
.obs-filter-btn{padding:4px 11px;border-radius:var(--r20);border:var(--border);background:var(--surf);font-size:var(--fs-ter);cursor:pointer;transition:background-color var(--tr-base),border-color var(--tr-base),color var(--tr-base),transform var(--mo-1);font-weight:var(--fw-med);color:var(--t2);font-family:"DM Sans",sans-serif}
.obs-filter-btn.on{border-color:var(--p);background:var(--p2);color:var(--pd);font-weight:var(--fw-bold)}
.funnel-step{display:flex;align-items:center;gap:var(--sp5);margin-bottom:6px;position:relative}
.funnel-fill{height:100%;display:flex;align-items:center;padding:0 12px;color:var(--surf);transition:width 1.2s ease;min-width:0;white-space:nowrap}
.funnel-fill-label{position:absolute;left:12px;top:50%;transform:translateY(-50%);font-size:var(--fs-sec);font-weight:var(--fw-bold);color:var(--t2);pointer-events:none;white-space:nowrap}
.funnel-pct{width:40px;text-align:right;font-size:var(--fs-body);font-weight:var(--fw-bold);flex-shrink:0}
/* canal detail cards */
.canal-card{background:var(--surf);border:var(--border);border-radius:var(--r12);padding:14px 16px}
.canal-card-hd{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.canal-card-name{font-size:var(--fs-body);font-weight:var(--fw-bold);color:var(--t1)}
.canal-card-pdvs{font-size:var(--fs-label);color:var(--t3)}
.canal-pct-big{font-size:var(--fs-display);font-weight:var(--fw-heavy);line-height:1;margin-bottom:4px}
/* tendencias */
.tend-chart-wrap{background:var(--surf);border:var(--border);border-radius:var(--r12);padding:16px 18px;margin-bottom:14px}
.tend-chart-ttl{font-size:var(--fs-body);font-weight:var(--fw-bold);color:var(--t1);margin-bottom:3px}
.tend-chart-sub{font-size:var(--fs-ter);color:var(--t2);opacity:.75;margin-bottom:12px}
/* missions table */
.mission-status{display:inline-flex;align-items:center;padding:2px 8px;border-radius:4px;font-size:var(--fs-micro);font-weight:var(--fw-bold)}
/* zone breakdown */
.zona-drill-btn{display:inline-flex;align-items:center;gap:5px;font-size:var(--fs-label);color:#fff;background:var(--p);border:none;cursor:pointer;font-weight:700;padding:7px 13px;border-radius:9px;font-family:inherit;text-decoration:none;transition:var(--tr-base)}
.zona-drill-btn:hover{background:var(--p);color:#fff;box-shadow:0 3px 10px rgba(19,193,172,.3);transform:translateY(-1px)}
/* RESPONSIVE */
@media(max-width:1180px){.g4{grid-template-columns:repeat(2,1fr)}}
@media(max-width:1024px){
  :root{--sb-w:200px}
  .g4{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:768px){
  :root{--sb-w:var(--sb-coll)}
  .sb{width:var(--sb-coll)}
  .sb .sb-logo-img{display:none}
  .sb .sb-logo-icon{display:flex}
  .sb .sb-logo{padding:0;justify-content:center}
  .sb .nav-grp{opacity:0;height:0;padding:0;overflow:hidden}
  .sb .ni{justify-content:center;padding:10px 0}
  .sb .ni-label{display:none}
  .sb .ni-score{display:none}
  .sb .sb-foot{padding:8px 0;display:flex;justify-content:center}.sb .sb-client-name,
.sb .sb-client-meta{display:none}
  .sb .ni:hover::after{left:calc(var(--sb-coll)+6px)}
  .main{margin-left:var(--sb-coll)!important}
  /* ══ Y LA TARJETA DESTACADA NO ES LA COLUMNA DEL LAYOUT ══
     La regla de arriba está pensada para `#cc-main.main`, la columna de
     contenido. Pero «Nueva misión» —la acción principal del Creador— también
     lleva la clase suelta `main` (`plataforma.js:864`, `cre-mcard main`), así
     que se comía los 52px del sidebar plegado y el `!important` le ganaba a su
     propio `margin:0`. Medido a 390px: la tarjeta iba de x=122 a x=424 mientras
     las otras tres arrancaban en 70, con el borde derecho y el rótulo «Acción
     principal» recortados contra el borde de la pantalla. */
  .cre-mcard.main{margin-left:0!important}
  .main::before{left:var(--sb-coll)!important}.g2,
.g3,
.g4{grid-template-columns:1fr}
  .ct{padding:28px}
  .tb{padding:0 12px;gap:var(--sp2)}
  .tb-title{font-size:var(--fs-sec)}
  .tb-camp{display:none}
  .tb-sep{display:none}
  .period-wrap{flex-shrink:0}
  .gnd-wrap{overflow-x:auto}
}
@media(max-width:480px){
  .tb-title{display:none}
  .vt-btn{font-size:var(--fs-micro);padding:4px 7px}
.fp .period-wrap{padding:6px;gap:5px;border-radius:14px;margin-bottom:4px}
.fp .vt-btn{flex:1;justify-content:center;padding:13px 14px;font-size:var(--fs-sec);border-radius:10px;font-weight:var(--fw-semi)}
.fp .fp-sec-ttl{font-size:var(--fs-label);letter-spacing:.6px;margin-bottom:14px}
.fp .fp-sec{margin-bottom:8px}
}

@media(max-width:768px){
  /* H2 — hero-metric apila en mobile (icono+número arriba, cuerpo abajo) */
  .hero-metric{flex-wrap:wrap;gap:12px 14px;padding:var(--sp7)}
  .hero-metric-divider{display:none}
  .hero-metric-num{font-size:44px}
  .hero-metric-body{flex-basis:100%;min-width:0}
  /* H3 — tap targets más cómodos para el dedo */
  .vt-btn,.btn-filtros,.map-chip,.obs-filter-btn,.cfg-btn{min-height:40px}
  .map-chip,.obs-filter-btn{padding-top:9px;padding-bottom:9px}
  /* H5 — el topbar no se corta: si los controles desbordan, scrollean lateralmente */
  .tb{overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch}
}

/* ── ENHANCED SECTION LABELS ── */
.sec-divider{position:relative}
.home-2col{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media(max-width:900px){.home-2col{grid-template-columns:1fr}}
.dmap-wrap{position:relative;margin-top:10px}
.dmap{height:440px;border-radius:var(--r14);overflow:hidden;border:var(--border);z-index:0}
.dmap-views{display:flex;gap:6px;flex-wrap:wrap}
.dmap-view{border:var(--border);background:var(--surf);color:var(--t2);font-family:inherit;font-size:var(--fs-sec);font-weight:var(--fw-semi);padding:6px 12px;border-radius:var(--rpill);cursor:pointer;transition:var(--tr-14)}
.dmap-view:hover{border-color:var(--p);color:var(--p)}
.dmap-view.on{background:var(--p);color:#fff;border-color:var(--p)}
.dmap-legend{position:absolute;bottom:12px;left:12px;background:rgba(255,255,255,.95);border:var(--border);border-radius:10px;padding:9px 12px;font-size:var(--fs-label);color:var(--t2);z-index:500;box-shadow:0 4px 14px rgba(0,0,0,.12);display:flex;flex-direction:column;gap:5px;max-width:200px}
.dmap-leg-row{display:flex;align-items:center;gap:7px}
.dmap-cards{margin-top:16px}
.dmap-sku-tag{display:inline-flex;align-items:center;gap:6px;margin-top:8px;background:var(--p2);color:var(--pd);font-size:var(--fs-label);font-weight:var(--fw-bold);padding:4px 10px;border-radius:var(--rpill)}
.dmap-sku-tag button{border:none;background:transparent;color:var(--pd);cursor:pointer;font-size:13px;padding:0;line-height:1}
@media(max-width:640px){.dmap{height:340px}}
.pb-w-click{cursor:pointer;border-radius:8px;padding:7px 9px;margin:2px -9px;transition:background var(--tr-14)}
.pb-w-click:hover{background:var(--p2)}
.dsku-row{cursor:pointer;transition:background .12s}
.dsku-row:hover{background:var(--p2)}
.dmap-leg-sq{width:12px;height:12px;border-radius:3px;flex-shrink:0}
.dmap-leg-h{font-size:var(--fs-label);font-weight:var(--fw-bold);color:var(--t1);margin-bottom:2px}
.dmap-card-detail{margin-top:11px;padding-top:11px;border-top:1px solid var(--bd)}
.dtbl-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.dtbl-sel{display:flex;align-items:center;gap:8px;font-size:var(--fs-sec);font-weight:var(--fw-semi);color:var(--t2)}
.dtbl-sel select{font-family:inherit;font-size:var(--fs-sec);font-weight:var(--fw-semi);color:var(--t1);border:var(--border);border-radius:var(--r9);padding:7px 12px;background:var(--surf);cursor:pointer}
.dtbl-count{font-size:var(--fs-label);color:var(--t3)}
.dtbl-wrap{overflow-x:auto;border:var(--border);border-radius:var(--r12)}
.dtbl{width:100%;border-collapse:collapse}
.dtbl th{text-align:left;font-size:var(--fs-label);font-weight:var(--fw-bold);color:var(--t3);text-transform:uppercase;letter-spacing:.4px;padding:10px 14px;border-bottom:1px solid var(--bd);white-space:nowrap;background:var(--bg)}
.dtbl td{padding:11px 14px;border-bottom:1px solid var(--bd);font-size:var(--fs-sec);color:var(--t2);vertical-align:middle}
.dtbl tbody tr:last-child td{border-bottom:none}
.dtbl-row{cursor:pointer;transition:background .12s}
.dtbl-row:hover{background:var(--p2)}
.dtbl-loc{font-weight:var(--fw-semi);color:var(--t1)}
.dtbl-sort{cursor:pointer;user-select:none;white-space:nowrap}
.dtbl-sort:hover{color:var(--p)}
.dtbl-cov{display:flex;align-items:center;gap:9px;min-width:130px}
.dtbl-cov-bar{flex:1;height:6px;border-radius:3px;background:var(--bg);overflow:hidden;max-width:120px}
.dtbl-cov-bar>span{display:block;height:100%;border-radius:3px}
.dtbl-cov-v{font-weight:var(--fw-bold);min-width:40px}
.dtbl-badge{display:inline-block;font-size:var(--fs-label);font-weight:var(--fw-bold);padding:3px 10px;border-radius:20px;white-space:nowrap}
.dtbl-go{color:var(--t3);text-align:right;font-weight:800;width:24px}
.dtbl-row:hover .dtbl-go{color:var(--p)}
.dmap-crumb{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.dmap-back{border:var(--border);background:var(--surf);color:var(--t2);font-family:inherit;font-size:var(--fs-sec);font-weight:var(--fw-semi);padding:6px 12px;border-radius:var(--rpill);cursor:pointer;transition:var(--tr-14)}
.dmap-back:hover{border-color:var(--p);color:var(--p)}
.dmap-crumb-lbl{font-size:var(--fs-h4);font-weight:var(--fw-bold);color:var(--t1)}
.dmap-crumb-sub{font-size:var(--fs-label);color:var(--t3);margin-top:1px}
.dpdv{border:var(--border);border-radius:var(--r14);padding:20px;background:var(--surf)}
.dpdv-head{display:flex;align-items:center;gap:12px;margin-bottom:18px;flex-wrap:wrap}
.dpdv-name{font-size:var(--fs-h3);font-weight:var(--fw-heavy);color:var(--t1)}
.dpdv-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;margin-bottom:18px}
.dpdv-fact{background:var(--bg);border-radius:var(--r9);padding:10px 12px}
.dpdv-fact-l{font-size:var(--fs-label);color:var(--t3);text-transform:uppercase;letter-spacing:.3px;margin-bottom:3px}
.dpdv-fact-v{font-size:var(--fs-sec);font-weight:var(--fw-semi);color:var(--t1);word-break:break-word}
.dpdv-sec{font-size:var(--fs-label);font-weight:var(--fw-bold);color:var(--t3);text-transform:uppercase;letter-spacing:.4px;margin-bottom:9px}
.dpdv-skus{display:flex;flex-wrap:wrap;gap:7px}
.dpdv-sku{font-size:var(--fs-label);font-weight:var(--fw-semi);color:var(--pd);background:var(--p2);border-radius:20px;padding:4px 11px}
.dpdv-empty{font-size:var(--fs-sec);color:var(--t3)}
.dpdv-insight{margin-top:16px;font-size:var(--fs-sec);color:var(--t2);background:var(--bg);border-radius:var(--r9);padding:11px 13px}
.dexp-fbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;background:var(--bg);border-radius:var(--r12);padding:11px 14px;margin-bottom:16px}
.dexp-fbar-lbl{font-size:var(--fs-label);font-weight:var(--fw-bold);color:var(--t3);text-transform:uppercase;letter-spacing:.4px}
.dexp-fbar-empty b{font-size:var(--fs-sec);color:var(--t1)}
.dexp-fbar-hint{font-size:var(--fs-label);color:var(--t3)}
.dexp-fchip{display:inline-flex;align-items:center;gap:6px;background:var(--surf);border:1.5px solid var(--p);border-radius:var(--rpill);padding:4px 5px 4px 11px;font-size:var(--fs-sec)}
.dexp-fchip-d{color:var(--t3);font-size:var(--fs-label);font-weight:var(--fw-semi)}
.dexp-fchip b{color:var(--t1)}
.dexp-fchip-x{border:none;background:var(--p2);color:var(--pd);width:18px;height:18px;border-radius:50%;cursor:pointer;font-size:11px;display:flex;align-items:center;justify-content:center;line-height:1;flex-shrink:0}
.dexp-fchip-x:hover{background:var(--p);color:#fff}
.dexp-fplus{color:var(--t3);font-weight:var(--fw-bold);font-size:var(--fs-body)}
.dexp-fclear{margin-left:auto;border:none;background:none;color:var(--t2);font-family:inherit;font-size:var(--fs-label);font-weight:var(--fw-semi);cursor:pointer;padding:5px 9px;border-radius:var(--r9)}
.dexp-fclear:hover{background:var(--surf);color:var(--danger)}
.dexp-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:24px}
.dexp-metric{background:var(--bg);border-radius:var(--r12);padding:15px 16px}
.dexp-metric.hero{background:var(--p2)}
.dexp-metric-v{font-size:var(--fs-h2);font-weight:var(--fw-heavy);color:var(--t1);line-height:1.1}
.dexp-metric-l{font-size:var(--fs-label);color:var(--t3);margin-top:4px}
.dexp-step{margin-bottom:24px}
.dexp-step-h{display:flex;align-items:center;gap:9px;font-size:var(--fs-h4);font-weight:var(--fw-bold);color:var(--t1);margin-bottom:12px}
.dexp-step-n{width:22px;height:22px;border-radius:50%;background:var(--p);color:#fff;font-size:var(--fs-label);font-weight:var(--fw-heavy);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.dexp-hint{font-size:var(--fs-label);color:var(--t3);margin:-2px 0 12px}
.dexp-by{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-bottom:12px}
.dexp-by-chip{border:var(--border);background:var(--surf);color:var(--t2);font-family:inherit;font-size:var(--fs-sec);font-weight:var(--fw-semi);padding:6px 13px;border-radius:var(--rpill);cursor:pointer;transition:var(--tr-14)}
.dexp-by-chip:hover{border-color:var(--p);color:var(--p)}
.dexp-by-chip.on{background:var(--p);color:#fff;border-color:var(--p)}
.dexp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(215px,1fr));gap:11px}
.dexp-card{border:var(--border);border-radius:var(--r12);padding:14px 16px;background:var(--surf);cursor:pointer;transition:var(--tr-14)}
.dexp-card:hover{border-color:var(--p);box-shadow:0 3px 12px rgba(0,0,0,.07);transform:translateY(-1px)}
.dexp-card:hover .dexp-card-go{color:var(--p)}
.dexp-card-top{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.dexp-card-n{font-size:var(--fs-body);font-weight:var(--fw-bold);color:var(--t1)}
.dexp-card-p{font-size:var(--fs-h4);font-weight:var(--fw-heavy)}
.dexp-card-s{font-size:var(--fs-label);color:var(--t3);margin-top:4px}
.dexp-card-bar{height:6px;border-radius:3px;background:var(--bg);overflow:hidden;margin-top:10px}
.dexp-card-bar>span{display:block;height:100%;border-radius:3px}
.dexp-card-go{margin-top:10px;font-size:var(--fs-label);font-weight:var(--fw-bold);color:var(--t3);text-align:right}
.dexp-skustep{border-top:1px dashed var(--bd);padding-top:22px}
.dexp-sku-note{font-size:var(--fs-sec);color:var(--t2);background:var(--p2);border-radius:var(--r9);padding:10px 13px;margin-bottom:14px}
.dexp-sku-arrow{color:var(--p);font-weight:800;margin-right:3px}
.dexp-sku-flt{color:var(--pd);font-weight:var(--fw-semi)}
.pf-toolbar{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-bottom:14px}
.pf-search{display:flex;align-items:center;gap:8px;border:var(--border);border-radius:var(--r9);padding:8px 12px;background:var(--surf);flex:1;min-width:220px}
.pf-search input{border:none;background:none;outline:none;font-family:inherit;font-size:var(--fs-sec);color:var(--t1);width:100%}
.pf-sels{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.pf-sel{font-family:inherit;font-size:var(--fs-label);font-weight:var(--fw-semi);color:var(--t2);border:var(--border);border-radius:var(--rpill);padding:7px 11px;background:var(--surf);cursor:pointer;max-width:165px}
.pf-clear{border:none;background:none;color:var(--t2);font-family:inherit;font-size:var(--fs-label);font-weight:var(--fw-semi);cursor:pointer;padding:6px 10px;border-radius:var(--r9)}
.pf-clear:hover{background:var(--bg);color:var(--danger)}
.pf-count{font-size:var(--fs-label);color:var(--t3);margin-bottom:10px}
.pf-tblwrap{overflow-x:auto;border:var(--border);border-radius:var(--r12)}
.pf-tbl{width:100%;border-collapse:collapse;min-width:820px}
.pf-tbl th{text-align:left;font-size:var(--fs-label);font-weight:var(--fw-bold);color:var(--t3);text-transform:uppercase;letter-spacing:.4px;padding:10px 12px;border-bottom:1px solid var(--bd);white-space:nowrap;background:var(--bg)}
.pf-tbl td{padding:10px 12px;border-bottom:1px solid var(--bd);font-size:var(--fs-sec);color:var(--t2);vertical-align:middle}
.pf-tbl tbody tr:last-child td{border-bottom:none}
.pf-tbl tbody tr:hover{background:var(--p2)}
.pf-sort{cursor:pointer;user-select:none}
.pf-sort:hover{color:var(--p)}
.pf-avatar{width:36px;height:36px;border-radius:9px;color:#fff;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:var(--fw-heavy);letter-spacing:.5px}
.pf-name{font-weight:var(--fw-semi);color:var(--t1);white-space:nowrap}
.pf-cov{display:flex;align-items:center;gap:8px;min-width:110px}
.pf-cov-bar{flex:1;height:6px;border-radius:3px;background:var(--bg);overflow:hidden;max-width:90px}
.pf-cov-bar>span{display:block;height:100%;border-radius:3px}
.pf-cov-v{font-weight:var(--fw-bold);min-width:36px}
.pf-badge{display:inline-block;font-size:var(--fs-label);font-weight:var(--fw-bold);padding:3px 10px;border-radius:20px;white-space:nowrap}
.pf-badge.ok{background:#10b9811f;color:#047857}
.pf-badge.no{background:#94a3b81f;color:#64748b}
.pf-empty{text-align:center;color:var(--t3);padding:22px;font-size:var(--fs-sec)}
.pf-div-sub{font-size:var(--fs-label);color:var(--t3);margin:-4px 0 12px}
.pf-div-bench{font-size:var(--fs-label);font-weight:var(--fw-bold);color:var(--pd);background:var(--p2);border-radius:20px;padding:4px 11px}
.pf-diqgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:16px;margin-bottom:8px}
.pf-diqcard{border:var(--border);border-radius:var(--r14);padding:18px;background:var(--surf);text-align:center}
.pf-diq-t{font-size:var(--fs-body);font-weight:var(--fw-bold);color:var(--t1);margin-bottom:14px}
.pf-pie{width:130px;height:130px;border-radius:50%;margin:0 auto 14px;position:relative;display:flex;align-items:center;justify-content:center}
.pf-pie-empty{background:var(--bg)}
.pf-pie-hole{width:78px;height:78px;border-radius:50%;background:var(--surf);display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.1}
.pf-pie-hole b{font-size:var(--fs-h2);font-weight:var(--fw-heavy);color:var(--t1)}
.pf-pie-hole span{font-size:var(--fs-micro);color:var(--t3)}
.pf-bench{display:flex;justify-content:center;gap:14px;margin-bottom:14px;font-size:var(--fs-label)}
.pf-bench-o b{color:var(--p);font-size:var(--fs-body)}.pf-bench-o{color:var(--t3)}
.pf-bench-m b{color:var(--t2);font-size:var(--fs-body)}.pf-bench-m{color:var(--t3)}
.pf-legs{display:flex;flex-direction:column;gap:5px;text-align:left}
.pf-leg{display:flex;align-items:center;gap:8px;padding:4px 8px;border-radius:var(--r9);cursor:pointer;transition:background .12s}
.pf-leg:hover{background:var(--p2)}
.pf-leg-dot{width:10px;height:10px;border-radius:3px;flex-shrink:0}
.pf-leg-n{flex:1;font-size:var(--fs-label);color:var(--t2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pf-leg-v{font-size:var(--fs-label);font-weight:var(--fw-bold);color:var(--t1)}
.pf-depthstep{margin-top:26px;border-top:1px dashed var(--bd);padding-top:20px}
.pf-depthhead{font-size:var(--fs-body);color:var(--t2);margin-bottom:12px}
.pf-depthhead b{color:var(--t1)}
.pf-depthbar{display:flex;height:16px;border-radius:8px;overflow:hidden;margin-bottom:14px;background:var(--bg)}
.pf-depthseg{height:100%;transition:width .4s}
.pf-depthcards{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px}
.pf-depthcard{border:var(--border);border-radius:var(--r12);padding:12px 14px;background:var(--surf);cursor:pointer;transition:var(--tr-14)}
.pf-depthcard:hover{border-color:var(--p);transform:translateY(-1px)}
.pf-depthcard-top{display:flex;align-items:center;gap:7px;margin-bottom:6px}
.pf-depthdot{width:9px;height:9px;border-radius:50%;flex-shrink:0}
.pf-depthcard-l{font-size:var(--fs-label);font-weight:var(--fw-semi);color:var(--t2)}
.pf-depthcard-v{font-size:var(--fs-h3);font-weight:var(--fw-heavy);color:var(--t1)}
.pf-depthcard-s{font-size:var(--fs-label);color:var(--t3);margin-top:2px}
.pf-drill{margin-top:20px;border:1.5px solid var(--p);border-radius:var(--r12);overflow:hidden}
.pf-drill-hd{display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--p2);padding:11px 14px}
.pf-drill-t{font-size:var(--fs-body);font-weight:var(--fw-bold);color:var(--t1);border-left:3px solid;padding-left:9px}
.pf-drill-x{border:none;background:none;color:var(--t2);font-family:inherit;font-size:var(--fs-label);font-weight:var(--fw-semi);cursor:pointer}
.pf-drill-x:hover{color:var(--danger)}
.pf-drows{max-height:280px;overflow:auto;padding:6px 0}
.pf-drow{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 14px;font-size:var(--fs-sec);border-bottom:1px solid var(--bg)}
.pf-drow-n{font-weight:var(--fw-semi);color:var(--t1)}
.pf-drow-m{color:var(--t3);font-size:var(--fs-label);white-space:nowrap}
.popc-insight{display:flex;align-items:flex-start;gap:11px;border-radius:var(--r12);padding:13px 15px;margin-bottom:16px;font-size:var(--fs-sec);line-height:1.45}
.popc-insight.ok{background:#ecfdf5;color:#065f46}.popc-insight.ok svg{color:#10b981}
.popc-insight.warn{background:#fffbeb;color:#78350f}.popc-insight.warn svg{color:#f59e0b}
.popc-insight b{font-weight:var(--fw-bold)}
.popc-toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:12px}
.popc-count{font-size:var(--fs-label);color:var(--t3);margin-bottom:8px}
.popc-list{display:flex;flex-direction:column}
.popc-row{display:flex;align-items:center;gap:11px;padding:8px 8px;border-radius:var(--r9)}
.popc-row.clk{cursor:pointer;transition:background .12s}
.popc-row.clk:hover{background:var(--p2)}
.popc-chip{width:24px;height:24px;border-radius:7px;color:#fff;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:var(--fw-heavy);flex-shrink:0}
.popc-n{flex:0 0 165px;font-size:var(--fs-sec);color:var(--t2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.popc-you{font-size:var(--fs-micro);background:var(--p2);color:var(--pd);border-radius:20px;padding:1px 7px;font-weight:var(--fw-bold);margin-left:4px}
.popc-bg{flex:1;height:9px;border-radius:5px;background:var(--bg);overflow:hidden;min-width:80px}
.popc-fill{height:100%;border-radius:5px;transition:width .5s}
.popc-v{flex:0 0 44px;text-align:right;font-size:var(--fs-sec);font-weight:var(--fw-bold)}
.sec-divider-lbl{text-transform:uppercase;letter-spacing:1.8px;border:var(--border);border-radius:var(--r20)}
.kpi-group-ttl{border-left:3px solid var(--p)}
.hero-metric-lbl{display:flex;align-items:center;gap:5px}
.c-sub{opacity:1}

/* ── KPI CARD ICONS ── */
.mc{padding-top:16px}
.mc-icon{opacity:.9}
/* hero-metric enhanced */
.hero-metric{border-width:2px}
.hero-metric::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:inherit;border-radius:var(--r16) var(--r16) 0 0}
.hero-metric-icon{margin-right:4px}
/* Canal cards more visual */
.canal-card{border-left:4px solid var(--bd)}
/* Funnel enhanced */
.funnel-fill{font-size:var(--fs-body);font-weight:var(--fw-bold)}
.zdim-bg{height:6px}
.zdim-fill{height:100%}
.zdim-score{font-size:var(--fs-h3);font-weight:var(--fw-heavy)}
.zdim-info{width:175px}

/* ── GLOBAL RESET FIXES ── */
/* Fix mc card — restore proper padding, remove broken padding-top */
.mc{background:var(--surf);border:var(--border);border-radius:var(--r12);
    padding:18px 18px 14px;transition:transform .18s,box-shadow .18s;
    position:relative;overflow:hidden;gap:0}
.mc:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,.08)}
.mc-accent{position:absolute;top:0;left:0;right:0;height:3px;
           border-radius:var(--r12) var(--r12) 0 0}
.mc-val{font-size:30px;font-weight:var(--fw-heavy);line-height:1;margin-bottom:4px}
.mc-tr{display:flex;align-items:center;gap:var(--sp1);font-size:var(--fs-ter);font-weight:var(--fw-semi)}
.mc-tr.up{color:var(--ok)}.mc-tr.dn{color:var(--danger)}.mc-tr.neu{color:var(--t3)}
.mc-ft{margin-top:5px;font-size:var(--fs-label);color:var(--t2);line-height:1.5}
.mc-bench{display:flex;align-items:center;justify-content:space-between;
          margin-top:8px;padding-top:8px;border-top:1px solid var(--slate-bg);font-size:var(--fs-label)}
.mc-bench-lbl{color:var(--t3)}.mc-bench-val{font-weight:var(--fw-bold);color:var(--t2)}
/* mc icon — positioned correctly */
.mc-icon{position:absolute;top:14px;right:14px;width:36px;height:36px;
         border-radius:50%;display:flex;align-items:center;justify-content:center}
.mc-icon svg{width:16px;height:16px;color:var(--surf)}

/* ── GRID SPACING ── */
.g2{gap:var(--sp7);margin-bottom:18px}
.g3{gap:var(--sp7);margin-bottom:18px}
.g4{gap:var(--sp6);margin-bottom:18px}
.c{padding:20px 22px}
.mb14{margin-bottom:18px}

/* ── HERO METRIC — redesigned per screenshot ── */
.hero-metric{background:var(--surf);border:var(--border);border-radius:var(--r16);
             padding:28px 30px;margin-bottom:20px;display:flex;align-items:center;
             gap:var(--sp10);overflow:hidden;position:relative}
.hero-metric::after{content:"";position:absolute;right:-40px;top:-40px;
                    width:180px;height:180px;border-radius:50%;
                    background:rgba(255,255,255,.06);pointer-events:none}
.hero-metric-icon{width:80px;height:80px;border-radius:50%;display:flex;
                  align-items:center;justify-content:center;flex-shrink:0}
.hero-metric-icon svg{width:36px;height:36px;color:var(--surf)}
.hero-metric-numblock{display:flex;flex-direction:column;align-items:center;
                      min-width:120px;flex-shrink:0}
.hero-metric-num{font-size:56px;font-weight:var(--fw-heavy);line-height:1;letter-spacing:-3px}
.hero-metric-unit{font-size:var(--fs-sec);color:var(--slate);margin-top:2px;font-weight:var(--fw-med)}
.hero-metric-divider{width:1px;height:80px;background:var(--bd);flex-shrink:0}
.hero-metric-body{flex:1;min-width:0}
.hero-metric-lbl{font-size:var(--fs-micro);font-weight:var(--fw-bold);color:var(--p);text-transform:uppercase;
                 letter-spacing:1.5px;margin-bottom:6px}
.hero-metric-ttl{font-size:20px;font-weight:var(--fw-heavy);color:var(--t1);line-height:var(--lh-tight);
                 margin-bottom:8px;letter-spacing:-0.4px}
.hero-metric-sub{font-size:var(--fs-body);color:var(--t2);line-height:1.65;margin-bottom:10px}

/* ── KPI GROUP TITLE — clean design, no bracket ── */
.kpi-group-ttl{display:flex;align-items:center;gap:var(--sp4);margin-bottom:14px;margin-top:4px}
.kpi-group-ttl svg{flex-shrink:0}
/* Override old kpi-group-ttl style completely */
.kpi-group-ttl{background:none!important;border:none!important;padding:0!important;
               border-radius:0!important;font-size:inherit!important;
               font-weight:inherit!important;color:inherit!important;
               text-transform:none!important;letter-spacing:inherit!important}

/* ── SCORE WRAP — fixed layout ── */
.score-wrap{background:var(--surf);border:var(--border);border-radius:var(--r16);
            overflow:hidden;display:flex;flex-direction:column;padding:0;gap:0;
            align-items:stretch}

/* ── SEC DIVIDER — cleaner ── */
.sec-divider{display:flex;align-items:center;gap:var(--sp6);margin:24px 0 16px}
.sec-divider-line{flex:1;height:1px;background:var(--bd)}
.sec-divider-lbl{font-size:var(--fs-label);font-weight:var(--fw-bold);color:var(--t2);white-space:nowrap;
                 background:var(--surf);padding:0 4px}

/* ── SECTION HEADER (sh equivalent) ── */
.sec-hdr{display:flex;align-items:flex-start;justify-content:space-between;
         gap:var(--sp5);flex-wrap:wrap;margin-bottom:20px;padding-bottom:18px;
         border-bottom:1px solid var(--bg)}
.sec-hdr-left{display:flex;align-items:flex-start;gap:var(--sp6)}
.sec-hdr-iconbox{width:52px;height:52px;border-radius:var(--r14);display:flex;
                 align-items:center;justify-content:center;flex-shrink:0}
.sec-hdr-iconbox svg{width:24px;height:24px;color:var(--surf)}
.sec-hdr-ttl{font-size:24px;font-weight:var(--fw-heavy);color:var(--t1);letter-spacing:-0.6px;
             line-height:1.1;margin-bottom:4px}
.sec-hdr-sub{font-size:var(--fs-body);color:var(--t2);line-height:1.5}
.comp-brand-grid{display:flex;flex-wrap:wrap;gap:var(--sp3);margin-bottom:12px}
.comp-brand-chip{display:flex;align-items:center;gap:7px;padding:7px 13px;
                 border-radius:var(--r8);border:2px solid var(--bd);
                 background:var(--surf);cursor:pointer;transition:background-color var(--tr-base),border-color var(--tr-base),color var(--tr-base),transform var(--mo-1);
                 font-size:var(--fs-body);font-weight:var(--fw-semi);color:var(--t2);
                 font-family:"DM Sans",sans-serif;user-select:none}
.comp-brand-chip:hover{border-color:var(--bd2);color:var(--t1)}
.comp-brand-chip.selected{border-color:var(--p);background:var(--p2);color:var(--pd)}
.comp-brand-chip.our-brand{border-color:var(--p);background:var(--pl);color:var(--pd);cursor:default}
.comp-brand-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}
.comp-vs-panel{background:var(--bg);border-radius:var(--r8);padding:10px 14px;
               margin-top:10px;font-size:var(--fs-sec);color:var(--t2);display:flex;
               align-items:center;gap:var(--sp3);flex-wrap:wrap}
.derived-item{flex:1;padding:16px 18px;border-right:var(--border)}
.derived-item:last-child{border-right:none}

/* Ensure c-hd and c-ttl look great */
.c-hd{display:flex;align-items:flex-start;justify-content:space-between;
      margin-bottom:14px;gap:var(--sp3)}


/* Darker label texts */
.mc-lbl{font-size:var(--fs-micro);font-weight:var(--fw-bold);color:#374151!important;text-transform:uppercase;letter-spacing:.5px;margin-bottom:5px;padding-right:42px;line-height:1.4}
.c-ttl{font-size:var(--fs-label);font-weight:var(--fw-bold);color:#1e293b!important;text-transform:uppercase;letter-spacing:.6px}
.c-sub{font-size:var(--fs-sec);color:var(--t2)!important;margin-top:3px;line-height:1.5}
.zdim-name{font-size:var(--fs-sec);font-weight:var(--fw-bold);color:#1e293b!important}
.zdim-sub{font-size:var(--fs-micro);color:var(--slate)!important}
.pb-lbl{font-size:var(--fs-body);font-weight:var(--fw-med);color:#1e293b!important}
.derived-lbl{color:#374151!important}
.kpi-group-ttl-text{font-size:var(--fs-body);font-weight:var(--fw-bold);color:#1e293b!important;letter-spacing:-0.2px}
.kpi-group-ttl-sub{font-size:var(--fs-ter);color:var(--slate)!important;font-weight:var(--fw-reg)}


/* Fix derived-row items padding */
.derived-row{display:flex;flex-wrap:wrap;gap:0;margin-bottom:18px;background:var(--surf);border:var(--border);border-radius:var(--r12);overflow:hidden}
.derived-item,.derived-row>div:not([style*="width:1px"]){flex:1;min-width:180px;padding:18px 20px!important;border-right:var(--border)}
.derived-row>div[style*="width:1px"]{display:none!important}
.derived-row>div:last-child{border-right:none}
.derived-lbl{font-size:var(--fs-micro);font-weight:var(--fw-bold);color:#374151;text-transform:uppercase;letter-spacing:.8px;margin-bottom:6px;line-height:var(--lh-snug)}
.derived-val{font-size:16px;font-weight:var(--fw-heavy);color:var(--t1);line-height:var(--lh-tight)}
.derived-sub{font-size:var(--fs-label);color:var(--slate);margin-top:4px}


/* Score wrap white bg override */
.score-wrap .zdim-name{color:#1e293b!important}
.score-wrap .zdim-sub{color:var(--slate)!important}
.score-wrap .zdim-bg{background:var(--slate-bg)!important}
.score-wrap .zdim-row{border-bottom-color:var(--slate-bg)!important}


/* ── GONDOLA HYPERREALISTIC CSS OVERRIDES ── */
#gnd-new-wrap { background: #f0f2f5; border: 2px solid #c0c8d0; overflow: hidden; }
#gnd-levels-container { width: 100%; }
#gnd-levels-container > div { min-height: 134px; }
.gnd-wrap { overflow: visible !important; }


/* Gondola card compact override */
#gnd-new-wrap { margin:10px 16px 14px !important; border-radius:var(--r10) !important; }
#gnd-levels-container > div > div:last-child { font-size:var(--fs-label) !important; }
.gnd-wrap { margin-bottom:10px }
/* Home KPI exec grid */
#home-kpi-exec > div{padding:16px 20px;border-right:var(--border);border-bottom:var(--border);display:flex;flex-direction:column;justify-content:center}
#home-kpi-exec > div:last-child{border-bottom:none}
/* Score info modal */
.score-info-overlay{position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:var(--z-modal);display:flex;align-items:center;justify-content:center;display:none}
.score-info-overlay.vis{display:flex}
.score-info-box{background:var(--surf);border-radius:var(--r16);padding:var(--sp10);max-width:440px;width:90%;box-shadow:0 24px 60px rgba(0,0,0,.2)}
/* ── Product Tour (autocontenido / removible) ── */
#ztour-spot{position:fixed;border-radius:var(--r12);box-shadow:0 0 0 9999px rgba(15,23,42,.55);z-index:100000;pointer-events:none;transition:all .28s var(--ez-std)}
#ztour-tip{position:fixed;z-index:100001;background:var(--surf);border-radius:var(--r14);padding:18px 18px 14px;width:300px;max-width:90vw;box-shadow:0 18px 50px rgba(15,23,42,.32);font-family:'DM Sans',sans-serif;transition:top .28s var(--ez-std),left .28s var(--ez-std)}
#ztour-tip .zt-step{font-size:var(--fs-label);font-weight:var(--fw-bold);color:var(--p);text-transform:uppercase;letter-spacing:1.2px;margin-bottom:6px}
#ztour-tip .zt-ttl{font-size:var(--fs-h3);font-weight:var(--fw-heavy);color:var(--t1);margin-bottom:6px;line-height:1.25}
#ztour-tip .zt-body{font-size:var(--fs-body);color:var(--t2);line-height:1.55;margin-bottom:14px}
#ztour-tip .zt-bar{display:flex;align-items:center;justify-content:space-between;gap:var(--sp4)}
#ztour-tip .zt-dots{display:flex;gap:5px}
#ztour-tip .zt-dot{width:6px;height:6px;border-radius:50%;background:var(--bd);transition:background-color var(--tr-base),border-color var(--tr-base),color var(--tr-base),transform var(--mo-1)}
#ztour-tip .zt-dot.on{background:var(--p);width:16px;border-radius:3px}
#ztour-tip .zt-btns{display:flex;gap:7px}
#ztour-tip .zt-b{border:none;border-radius:var(--r8);padding:7px 13px;font-size:var(--fs-sec);font-weight:var(--fw-bold);cursor:pointer;font-family:inherit}
#ztour-tip .zt-b.prim{background:var(--p);color:var(--surf)}
#ztour-tip .zt-b.ghost{background:var(--bg);color:var(--t2)}
#ztour-tip .zt-skip{position:absolute;top:12px;right:14px;border:none;background:none;color:var(--t3);font-size:var(--fs-ter);font-weight:var(--fw-semi);cursor:pointer;font-family:inherit}
#ztour-tip .zt-arrow{position:absolute;width:14px;height:14px;background:var(--surf);transform:rotate(45deg);box-shadow:-3px -3px 6px rgba(15,23,42,.04)}
@media (max-width:640px){#ztour-tip{width:84vw}}


/* Gondola module hover */
.gnd-mod:hover { transform: translateY(-4px) scale(1.03); z-index: 10 !important; }
.gnd-mod { transition:transform .12s; }

/* ── #4 FRANJA DE PRUEBA GRATUITA (arriba del título de cada sección) ── */
.trial-strip{display:flex;align-items:center;gap:var(--sp4);margin:0 0 16px;padding:9px 14px;
  border:1px solid #cfece8;border-radius:var(--r10);
  background:linear-gradient(90deg,rgba(19,193,172,.07),rgba(19,193,172,.015));
  font-size:var(--fs-body);color:var(--t2);flex-wrap:wrap}
.ts-spark{color:var(--p);font-size:var(--fs-body);line-height:1;flex-shrink:0}
.ts-badge{display:inline-flex;align-items:center;font-size:var(--fs-micro);font-weight:var(--fw-bold);letter-spacing:.7px;
  text-transform:uppercase;color:var(--pd);background:var(--pl);border:1px solid #bfe9e3;
  padding:3px 9px;border-radius:var(--rpill);white-space:nowrap}

/* ── #6 SIDEBAR ITEM BLOQUEADO (gris suave) ── */
.ni.locked{background:#eef1f5;border:1px solid var(--bd)}
.ni.locked .ni-label{color:var(--t3)}
.ni.locked .ni-ic{color:#b4bdc9}
.ni.locked:hover{background:#e6eaf0}
.ni-lock{margin-left:auto;flex-shrink:0;color:#b4bdc9;display:flex;align-items:center}
.sb.collapsed .ni-lock{display:none}
/* sección bloqueada: título visible, resto blurreado */
.sec.locked-sec{position:relative}
.sec.locked-sec > *:not(.sec-lock-keep):not(.sec-lock-overlay){filter:blur(7px);opacity:.5;pointer-events:none;user-select:none}
.sec-lock-overlay{position:absolute;left:0;right:0;top:90px;bottom:0;display:flex;align-items:flex-start;justify-content:center;padding-top:60px;z-index:5}
.sec-lock-card{background:var(--surf);border:var(--border);border-radius:var(--r16);padding:30px 34px;max-width:380px;text-align:center;box-shadow:0 8px 32px rgba(0,0,0,.07)}
.sec-lock-ic{width:44px;height:44px;border-radius:var(--r12);background:#eef1f5;display:flex;align-items:center;justify-content:center;margin:0 auto 16px}
.sec-lock-ic svg{width:20px;height:20px;color:var(--t3)}
.sec-lock-ttl{font-size:16px;font-weight:var(--fw-bold);color:var(--t1);margin-bottom:6px;letter-spacing:-.2px}
.sec-lock-sub{font-size:var(--fs-body);color:var(--t3);line-height:var(--lh-loose)}

/* ── #2/#3 LOCK SCREEN ── */
#lock-screen{position:fixed;inset:0;z-index:var(--z-modal);display:flex;align-items:center;justify-content:center;background:#f8fafc;transition:opacity .5s ease;overflow:hidden;font-family:"DM Sans",sans-serif}
body.zn-logged #lock-screen{display:none!important;opacity:0!important;pointer-events:none!important}
.lock-forgot{text-align:center;margin:0 0 14px;user-select:none}
#pw-reset-modal{z-index:var(--z-top)}
.mc-inv{padding:16px 16px 14px;display:flex;flex-direction:column}
.inv-total{font-size:25px;font-weight:var(--fw-heavy);color:var(--t1);letter-spacing:-.5px;line-height:1.05;margin-top:2px}
.inv-sub{font-size:var(--fs-sec);font-weight:var(--fw-bold);color:var(--t2);margin-top:5px;line-height:var(--lh-snug)}
.inv-break{margin-top:11px;border-top:var(--border);padding-top:7px}
.inv-row{display:flex;justify-content:space-between;align-items:center;gap:var(--sp3);padding:4px 0;font-size:var(--fs-ter)}
.inv-row .k{color:var(--t2);font-weight:var(--fw-semi)}
.inv-row .v{color:var(--t1);font-weight:var(--fw-bold);white-space:nowrap}
.inv-row.fee .v{color:var(--p)}
.inv-row.total{border-top:var(--border);margin-top:3px;padding-top:8px;font-size:var(--fs-body)}
.inv-row.total .k,.inv-row.total .v{color:var(--t1);font-weight:var(--fw-heavy)}
.inv-row.cpp{border-top:1px dashed var(--bd);margin-top:2px}
.inv-row.cpp .k,.inv-row.cpp .v{color:var(--t3);font-size:var(--fs-label)}
.cfg-slider{width:100%;-webkit-appearance:none;appearance:none;height:7px;border-radius:5px;background:var(--bd);outline:none;cursor:pointer;margin:0}
.cfg-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:18px;height:18px;border-radius:50%;background:var(--c,var(--p));border:2px solid var(--surf);box-shadow:0 1px 4px rgba(0,0,0,.25);cursor:pointer}
.cfg-slider::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:var(--c,var(--p));border:2px solid var(--surf);box-shadow:0 1px 4px rgba(0,0,0,.25);cursor:pointer}
.cfg-pz{display:flex;gap:var(--sp10);align-items:flex-start;flex-wrap:wrap;margin-top:4px}
.cfg-pz-left{flex:0 0 170px;display:flex;flex-direction:column;align-items:center;gap:var(--sp3);margin:0 auto}
.cfg-donut-wrap{position:relative;width:160px;height:160px}
.cfg-donut-ctr{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;pointer-events:none}
.cfg-donut-num{font-size:36px;font-weight:var(--fw-heavy);line-height:1;letter-spacing:-1px;color:var(--ok)}
.cfg-donut-den{font-size:var(--fs-label);font-weight:var(--fw-bold);color:var(--t3);margin-top:3px;text-transform:uppercase;letter-spacing:.5px}
.cfg-pz-status{font-size:var(--fs-body);font-weight:var(--fw-bold);text-align:center;line-height:1.4;min-height:32px;max-width:160px}
.cfg-pz-right{flex:1 1 320px;min-width:280px}
.cfg-prow{display:flex;align-items:center;gap:11px;padding:9px 0;border-bottom:var(--border)}
.cfg-prow:last-child{border-bottom:none}
.cfg-pdot{width:11px;height:11px;border-radius:3px;flex-shrink:0}
.cfg-pname{font-size:var(--fs-body);font-weight:var(--fw-semi);color:var(--t1);flex:0 0 92px}
.cfg-prange{flex:1;min-width:70px;display:flex;align-items:center}
.cfg-prange .cfg-slider{width:100%}
.cfg-pnum{width:52px;padding:5px 4px;border:var(--border);border-radius:var(--r6);font-size:var(--fs-body);font-family:inherit;text-align:center;background:var(--bg);color:var(--t1);flex-shrink:0}
.cfg-pnum:focus{border-color:var(--p);outline:none}
.cfg-ppct{flex:0 0 42px;text-align:right;font-size:var(--fs-sec);font-weight:var(--fw-bold);color:var(--t2)}
@media (max-width:560px){.cfg-pz-left{flex-basis:auto}.cfg-pname{flex-basis:78px}}
#lock-screen::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 70% 50% at 50% 0%,rgba(19,193,172,.07) 0%,transparent 60%);pointer-events:none}
.lock-wrap{position:relative;width:100%;padding:40px 24px;display:flex;flex-direction:column;align-items:center}
.lock-logo-wrap{display:flex;align-items:center;justify-content:center}
.lock-logo-wrap img{width:auto}
.lock-card{background:var(--surf);border:1px solid var(--bd);border-radius:var(--r16);width:100%;box-shadow:0 1px 3px rgba(0,0,0,.04),0 8px 32px rgba(0,0,0,.06)}
.lock-card-ttl{color:var(--t1);text-align:center}
.lock-card-sub{color:var(--t3);line-height:var(--lh-loose);text-align:center}
.lock-field{display:flex;flex-direction:column;gap:var(--sp2);margin-bottom:16px}
.lock-field label{font-size:var(--fs-label);font-weight:var(--fw-bold);color:var(--slate);text-transform:uppercase;letter-spacing:.6px}
.lock-input-wrap{position:relative}
.lock-input{width:100%;background:#f8fafc;border:1.5px solid var(--bd);color:var(--t1);font-family:"DM Sans",sans-serif;outline:none;transition:border-color var(--tr-slow),box-shadow var(--tr-slow),background var(--tr-slow)}
.lock-input::placeholder{color:var(--bd2)}
.lock-input:focus{border-color:var(--p);background:var(--surf);box-shadow:0 0 0 3px rgba(19,193,172,.10)}
.lock-eye{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:28px;height:28px;border:none;background:none;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--t3);padding:0}
.lock-eye:hover{color:var(--p)}
.lock-eye svg{width:18px;height:18px}
.lock-btn{width:100%;border:none;color:var(--surf);font-family:"DM Sans",sans-serif;cursor:pointer;transition:background var(--tr-slow),transform .05s}
.lock-btn:active{transform:translateY(1px)}
.lock-err{font-size:var(--fs-sec);color:var(--danger);margin:-6px 0 14px;text-align:center;font-weight:var(--fw-med)}
.lock-foot{margin-top:24px;font-size:var(--fs-label);color:var(--bd2);letter-spacing:.3px}
.lock-pill{display:inline-flex;align-items:center;gap:7px;background:var(--surf);border:1px solid var(--bd);border-radius:var(--rpill);padding:7px 15px;font-size:var(--fs-body);font-weight:var(--fw-bold);color:var(--t2);margin-bottom:22px;box-shadow:0 2px 8px rgba(15,23,42,.04)}
.lock-pill-dot{width:8px;height:8px;border-radius:50%;background:var(--p)}
.lock-logo-wrap{margin-bottom:22px}
.lock-logo-wrap img{height:34px}
.lock-card-ttl{font-size:var(--fs-display);font-weight:var(--fw-heavy);letter-spacing:-.6px;margin-bottom:7px}
.lock-card-sub{margin-bottom:26px;font-size:var(--fs-body)}
.lock-input{padding:14px 42px 14px 44px;border-radius:var(--r11);font-size:var(--fs-body)}
.lock-ic{position:absolute;left:15px;top:50%;transform:translateY(-50%);color:var(--t3);display:flex;pointer-events:none}
.lock-ic svg{width:18px;height:18px}
.lock-row{display:flex;justify-content:space-between;gap:var(--sp4);margin:2px 0 20px;flex-wrap:wrap}
.lock-forgot{font-size:var(--fs-body);font-weight:var(--fw-bold);color:var(--p);cursor:pointer}
.lock-forgot:hover{text-decoration:underline}
/* -- "Mantener la sesion iniciada" -- clases propias: no pisan ninguna .lock-* vieja */
.lock-keep{display:inline-flex;align-items:center;gap:8px;cursor:pointer;user-select:none;font-size:var(--fs-body);color:var(--t2,#64748b);line-height:1}
.lock-keep input{appearance:none;-webkit-appearance:none;width:16px;height:16px;flex:0 0 16px;margin:0;border:1.5px solid #cbd5e1;border-radius:4px;background:#fff;cursor:pointer;position:relative;transition:background .15s ease,border-color .15s ease}
.lock-keep:hover input{border-color:var(--p)}
.lock-keep input:checked{background:var(--p);border-color:var(--p)}
.lock-keep input:checked::after{content:"";position:absolute;left:4.5px;top:1px;width:4px;height:8px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}
.lock-keep input:focus-visible{outline:2px solid var(--p);outline-offset:2px}
/* `.lock-forgot` trae `margin:0 0 14px` de cuando era el UNICO hijo de la fila
   y estaba centrado. Con la casilla al lado, ese margen lo sube 7px --la mitad--
   y los dos textos quedan en ejes distintos. Se anula SOLO cuando hay casilla,
   con un selector nuevo: la regla vieja sigue intacta para cualquier otro uso. */
.lock-row .lock-keep~.lock-forgot{margin-bottom:0}
/* El <img> sin src dibujaba el icono de imagen rota. Ya no puede pasar: ahora
   trae src embebido, y esta regla es el cinturon por si alguien lo saca. */
#load-logo-img:not([src]){visibility:hidden}
.lock-btn{margin-top:0;display:flex;align-items:center;justify-content:center;gap:9px;padding:15px;border-radius:var(--r12);font-size:var(--fs-h3);font-weight:var(--fw-heavy);background:linear-gradient(135deg,var(--teal-d),#16c79a);box-shadow:0 8px 22px rgba(13,148,136,.28)}
.lock-btn:hover{background:linear-gradient(135deg,#0b8278,#13b88d);transform:translateY(-1px)}
.lock-secure{display:flex;align-items:center;justify-content:center;gap:7px;margin-top:18px;font-size:var(--fs-sec);color:var(--t3)}

/* ── #8 PANTALLA DE CARGA ── */
#load-screen{position:fixed;inset:0;z-index:var(--z-modal2);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:26px;background:#f8fafc;transition:opacity .45s ease;font-family:"DM Sans",sans-serif}
#load-screen::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 70% 50% at 50% 0%,rgba(19,193,172,.07) 0%,transparent 60%);pointer-events:none}
#load-logo-img{height:30px;width:auto;position:relative}
.load-bar{width:200px;height:4px;border-radius:var(--rpill);background:var(--bd);overflow:hidden;position:relative}
.load-bar::after{content:"";position:absolute;left:-40%;top:0;height:100%;width:40%;border-radius:var(--rpill);background:var(--p);animation:loadSlide 1.1s ease-in-out infinite}
@keyframes loadSlide{0%{left:-40%}100%{left:115%}}
.load-txt{font-size:var(--fs-sec);color:var(--t3);letter-spacing:.3px;position:relative}

/* ================= CENTRO DE MISIONES (encapsulado · cm-*) ================= */
:root{--cm-w:322px}
.cm{position:fixed;top:0;right:0;width:var(--cm-w);height:100vh;height:100svh;background:var(--surf);border-left:var(--border);z-index:560;overflow-y:auto;overflow-x:hidden;transform:translateX(102%);transition:transform .26s var(--ez-std);box-shadow:-10px 0 34px rgba(2,32,28,.10)}
@media(min-width:1201px){
  .cm{width:var(--cm-w)}
}
/* botones */
.cm-btn{width:100%;border:none;border-radius:var(--r8);font-family:inherit;font-weight:var(--fw-bold);cursor:pointer;transition:var(--tr-base);font-size:var(--fs-body);padding:10px 14px}
.cm-btn-primary{background:var(--p);color:var(--surf);box-shadow:0 4px 12px rgba(19,193,172,.32)}
.cm-btn-primary:hover{background:var(--pd)}
/* modal solicitar accion */
.cm-modal-ov{position:fixed;inset:0;background:rgba(8,22,20,.46);backdrop-filter:blur(2px);z-index:9200;display:none;align-items:center;justify-content:center;padding:var(--sp8)}
.cm-modal-ov.vis{display:flex}
.cm-modal{background:var(--surf);border-radius:var(--r16);width:430px;max-width:100%;max-height:90vh;overflow:auto;box-shadow:0 30px 70px rgba(2,32,28,.3);animation:cmpop .2s ease}
@keyframes cmpop{from{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}
.cm-modal-hd{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:var(--border)}
.cm-modal-ttl{font-size:var(--fs-h3);font-weight:var(--fw-heavy);color:var(--t1)}
.cm-modal-x{border:none;background:transparent;font-size:var(--fs-h2);color:var(--t3);cursor:pointer;line-height:1}
.cm-modal-body{padding:16px 18px}
.cm-modal-field{margin-top:14px}
.cm-modal-field label{display:block;font-size:var(--fs-sec);font-weight:var(--fw-bold);color:var(--t1);margin-bottom:6px}
.cm-modal-field textarea{width:100%;min-height:84px;resize:vertical;border:var(--border);border-radius:var(--r8);padding:10px 12px;font-family:inherit;font-size:var(--fs-body);color:var(--t1);outline:none;box-sizing:border-box}
.cm-modal-field textarea:focus{border-color:var(--p)}
.cm-modal-msg{font-size:var(--fs-sec);font-weight:var(--fw-semi);margin-top:10px;min-height:16px}
.cm-modal-foot{padding:0 18px 18px}
/* responsive */
@media(max-width:1200px){
  .cm{width:340px;max-width:90vw}
}
@media(max-width:720px){
  .cm{width:100%;max-width:100%;height:86vh;height:86svh;top:auto;bottom:0;border-left:none;border-top:var(--border);border-radius:18px 18px 0 0;transform:translateY(102%)}
}
/* ================= /CENTRO DE MISIONES ================= */

/* ── v94 responsive plataforma + login + overrides ── */
@media(max-width:1024px){.plat-wrap,.home-wrap,.cc-cmain .cc-wrap{padding-left:44px;padding-right:44px}}
@media(max-width:768px){.home-wrap{padding:26px 22px 56px}}
/* `.home-kpis` salió de acá por lo mismo: perdía contra `campanas.css`, que
   carga después. Ahora la regla base se adapta sola. */
@media(max-width:560px){.cr-gauge{width:150px;height:150px}}
@media(max-width:520px){.lock-card-ttl{font-size:25px}.lock-pill{margin-bottom:18px}}
.cre-step{background:none;border:none;border-radius:0;align-items:flex-start;min-width:140px}
/* ── v95 comercios ── */
.plat-head-row{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--sp7);flex-wrap:wrap;margin-bottom:24px}
.plat-head-actions{display:flex;gap:var(--sp4);flex-wrap:wrap}
.plat-head-row .plat-h,.plat-head-row .plat-sub{margin:0}
.com-card{padding:22px 24px}
.com-card-hd{font-size:16px;font-weight:var(--fw-heavy);color:var(--t1);margin-bottom:16px}
.com-toolbar{display:flex;flex-wrap:wrap}
.com-pills{display:flex;flex-wrap:wrap}
.com-pill{border:var(--border);background:var(--bg);border-radius:var(--rpill);padding:7px 15px;font-size:var(--fs-body);font-weight:var(--fw-bold);color:var(--t2);cursor:pointer;font-family:inherit;transition:var(--tr-fast)}
.com-pill:hover{border-color:var(--p)}
.com-pill.on{border-color:var(--p);background:var(--p2);color:var(--pd)}
.com-sort{border:var(--border);background:var(--surf);border-radius:var(--r10);padding:8px 12px;font-size:var(--fs-body);font-weight:var(--fw-semi);color:var(--t2);cursor:pointer;font-family:inherit;margin-left:auto}
/* ══════ EL TITULO DE UNA SECCION ══════
   Mismo bloque para todas, calcado del de Alertas, que es el que quedo bien:
   emblema, rotulo de contexto, titular y bajada. Antes habia tres tratamientos
   distintos conviviendo —una tarjeta con degrade, un titulo pelado sin icono, y
   un tercero solo para Reportes y Campanas— y eso hace que cada seccion se
   sienta una app distinta. El emblema es EL MISMO SVG que esa seccion tiene en
   la barra lateral: el ojo lo reconoce del menu, no tiene que aprenderlo otra
   vez.
   Las medidas salen del de Alertas y no se eligieron de nuevo: emblema de 46
   con icono de 22, titular de 32 con -1.1px de tracking, y los controles al ras
   de la linea de base para que el bloque lea como una sola cabecera. */
.plat-hd{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--sp10);
  margin:0 0 22px;flex-wrap:wrap}
/* EL TITULO CEDE Y LOS CONTROLES NO: al reves, un buscador se encoge hasta que
   su propio placeholder no entra. */
.plat-hd-x{flex:1 1 280px;min-width:0;display:flex;align-items:flex-start;gap:15px}
.plat-hd-tx{min-width:0}
/* EL EMBLEMA. Circulo teñido con el halo apenas visible: es el mismo lenguaje
   que usan las tarjetas de adentro de cada seccion, asi que la cabecera y el
   contenido se leen como una pieza y no como un titulo suelto arriba de unas
   cajas. */
.plat-hd-em{flex:0 0 auto;width:46px;height:46px;border-radius:50%;display:flex;
  align-items:center;justify-content:center;margin-top:4px;
  background:var(--pl);color:var(--teal-d);box-shadow:0 0 0 6px rgba(19,193,172,.07)}
.plat-hd-em svg{width:22px;height:22px}
/* EL ROTULO DE CONTEXTO: sobre QUE estas parado. No es decoracion —siempre
   lleva un dato— y cuando no hay ninguno honesto, no se pone. */
.plat-hd-k{display:block;font-size:var(--fs-label);font-weight:var(--fw-bold);
  letter-spacing:.1em;text-transform:uppercase;color:var(--teal-d);margin-bottom:5px}
.plat-hd-k[hidden]{display:none}
.plat-hd-t{font-size:32px;font-weight:var(--fw-bold);letter-spacing:-1.1px;line-height:1.05;
  color:var(--t1);margin:0}
.plat-hd-d{font-size:var(--fs-h3);font-weight:var(--fw-reg);color:var(--t2);
  margin:7px 0 0;max-width:62ch;line-height:var(--lh-body)}
/* EL GRUPO DE CONTROLES NO SE PARTE: sueltos, al achicar la ventana el boton
   principal se desprende solo a un renglon propio y alineado a la izquierda. */
.plat-hd-c{display:flex;align-items:center;gap:var(--sp4);flex:0 0 auto;flex-wrap:nowrap;
  justify-content:flex-end;margin-left:auto;padding-bottom:2px}
@media (max-width:900px){
  .plat-hd-em{display:none}
  .plat-hd-c{width:100%;margin-left:0;justify-content:flex-start;flex-wrap:wrap}
}
@media (max-width:620px){ .plat-hd-t{font-size:26px;letter-spacing:-.7px} }

.com-tbl th{color:var(--t3);font-weight:var(--fw-bold);padding:11px 12px;font-size:var(--fs-label);text-transform:uppercase;letter-spacing:.5px;text-align:left}
.com-tbl td{padding:15px 12px;border-top:var(--border);font-size:var(--fs-body);vertical-align:middle}
.com-name{display:flex;align-items:center;gap:11px}
.com-cod{font-weight:700;color:var(--pd,#0f766e);font-variant-numeric:tabular-nums;white-space:nowrap}
.com-name b{font-weight:var(--fw-bold);color:var(--t1)}
.com-ava{width:34px;height:34px;border-radius:var(--r9);background:var(--p2);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.com-badge{display:inline-block;font-size:var(--fs-ter);font-weight:var(--fw-bold);padding:4px 11px;border-radius:var(--rpill);white-space:nowrap}
.com-actions{display:flex;align-items:center;gap:var(--sp2);justify-content:flex-end;white-space:nowrap}
.com-act{border:var(--border);background:var(--surf);border-radius:var(--r8);padding:7px 13px;font-size:var(--fs-sec);font-weight:var(--fw-bold);color:var(--t1);cursor:pointer;font-family:inherit;display:inline-flex;align-items:center;gap:5px;transition:var(--tr-fast)}
.com-act:hover{border-color:var(--p);color:var(--p)}
.com-act-go{background:var(--p);border-color:var(--p);color:var(--surf)}
.com-act-go:hover{background:var(--pd);color:var(--surf)}
.com-act-rev{background:var(--warn);border-color:var(--warn);color:var(--surf)}
.com-act-rev:hover{background:var(--amber-d);color:var(--surf)}
.com-act-grp{background:#eff4ff;border-color:#cfe0ff;color:var(--blue)}
.com-act-grp:hover{border-color:var(--blue);color:var(--blue)}
.com-filtsel{font-weight:var(--fw-bold);color:var(--t1)}
.rp-solicitar{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:9px;min-height:210px;border:2px dashed var(--bd2);border-radius:var(--r14);background:var(--bg);cursor:pointer;padding:24px;transition:background-color var(--tr-base),border-color var(--tr-base),color var(--tr-base),transform var(--mo-1)}
.rp-solicitar:hover{border-color:var(--p);background:var(--pl);transform:translateY(-2px)}
.rp-sol-ic{width:56px;height:56px;border-radius:50%;background:var(--p2);display:flex;align-items:center;justify-content:center}
.rp-sol-t{font-size:var(--fs-h3);font-weight:var(--fw-bold);color:var(--t1)}
.rp-sol-s{font-size:var(--fs-sec);color:var(--t2);max-width:210px;line-height:1.4}
.rps-opts{display:flex;flex-direction:column;gap:8px}
.rps-opt{display:flex;align-items:center;gap:9px;padding:10px 12px;border:var(--border);border-radius:10px;cursor:pointer;font-size:var(--fs-body);color:var(--t1)}
.rps-opt:hover{border-color:var(--p)}
.mis-zona-box{margin-top:14px;background:var(--bg);border:var(--border);border-radius:var(--r14);padding:16px}
.mis-zona-stat{text-align:center;margin-bottom:14px}
.mis-zona-stat-n{font-size:30px;font-weight:var(--fw-heavy);color:var(--p);line-height:1}
.mis-zona-stat-l{font-size:var(--fs-sec);color:var(--t2);margin-top:4px}
.mis-zona-qty{margin-bottom:12px}
.mis-zona-qty label{display:block;font-size:var(--fs-sec);font-weight:var(--fw-bold);color:var(--t2);margin-bottom:6px}
.mis-zona-already{margin-top:10px;font-size:var(--fs-sec);color:var(--pd);display:flex;align-items:center;gap:6px}
.ced-ov{position:fixed;inset:0;z-index:var(--z-modal);background:rgba(15,23,42,.55);display:none;align-items:center;justify-content:center;padding:20px}
.ced-ov.on{display:flex}
.ced-modal{background:var(--surf);border-radius:var(--r16);width:min(560px,100%);max-height:88vh;overflow:auto;box-shadow:0 20px 60px rgba(15,23,42,.3)}
.ced-hd{display:flex;align-items:center;justify-content:space-between;padding:18px 20px;border-bottom:var(--border)}
.ced-t{font-size:var(--fs-h2);font-weight:var(--fw-bold);color:var(--t1)}
.ced-x{background:none;border:none;font-size:24px;color:var(--t3);cursor:pointer;line-height:1}
.ced-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:20px}
.ced-grid .com-fld{display:flex;flex-direction:column;gap:5px}
.ced-grid label{font-size:var(--fs-sec);font-weight:var(--fw-bold);color:var(--t2)}
.ced-grid input{padding:9px 11px;border:var(--border);border-radius:9px;font-family:inherit;font-size:var(--fs-body);color:var(--t1);width:100%}
.ced-grid input:disabled{background:var(--bg);color:var(--t2)}
.ced-foot{display:flex;justify-content:flex-end;gap:10px;padding:0 20px 20px}
@media(max-width:560px){.ced-grid{grid-template-columns:1fr}}
.cv-tcol{min-width:0}
.cv-tbl tbody tr{transition:background var(--tr-14)}
.cv-estbadge{display:inline-flex;align-items:center;gap:5px;padding:5px 11px;border-radius:var(--rpill);font-size:var(--fs-sec);font-weight:var(--fw-bold);white-space:nowrap}
.cv-est-ok{background:#10b9811a;color:#0d9488}
.cv-est-pend{background:#f59e0b1a;color:#b45309}
.cv-detbtn{display:inline-flex;align-items:center;gap:5px;background:var(--surf);border:var(--border);color:var(--pd);font-weight:var(--fw-semi);font-size:var(--fs-sec);padding:6px 11px;border-radius:var(--r8);cursor:pointer;font-family:inherit;white-space:nowrap;transition:border-color var(--tr-14),background var(--tr-14)}
.cv-detbtn:hover{border-color:var(--p);background:var(--pl);color:var(--teal-tx)}
.cv-detbtn:hover svg{stroke:currentColor}
.com-atajos{display:grid;grid-template-columns:repeat(5,1fr);gap:var(--sp5)}
.com-atajo{display:flex;align-items:center;gap:var(--sp5);background:var(--surf);border:var(--border);border-radius:var(--r14);padding:var(--sp7);cursor:pointer;transition:var(--tr-base)}
.com-atajo:hover{border-color:var(--p);transform:translateY(-2px)}
.com-atajo-ic{width:38px;height:38px;border-radius:var(--r10);background:var(--p2);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.com-atajo-t{font-size:var(--fs-body);font-weight:var(--fw-bold);color:var(--t1)}
.com-atajo-d{font-size:var(--fs-label);color:var(--t3);margin-top:2px;line-height:1.35}
.com-atajo>svg:last-child{margin-left:auto;flex-shrink:0}
.com-tabs{display:flex;margin:18px 0 22px}
.com-optcard{position:relative;flex:1;display:flex;align-items:flex-start;gap:13px;text-align:left;border:1.5px solid var(--bd);background:var(--surf);border-radius:16px;padding:18px;cursor:pointer;font-family:inherit;transition:background-color var(--tr-base),border-color var(--tr-base),color var(--tr-base),transform var(--mo-1);box-shadow:var(--sh-sm)}
.com-optcard:hover{border-color:var(--p);box-shadow:0 4px 14px rgba(19,193,172,.13)}
.com-optcard.on{border-color:var(--p);background:var(--p2)}
.com-optcard-ic{width:44px;height:44px;border-radius:12px;background:var(--bg);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.com-optcard.on .com-optcard-ic{background:#fff}
.com-optcard-tx{display:flex;flex-direction:column;gap:3px;min-width:0}
.com-optcard-t{font-size:var(--fs-body);font-weight:var(--fw-bold);color:var(--t1)}
.com-optcard-d{font-size:var(--fs-label);color:var(--t3);line-height:1.4}
.com-optcard-ck{position:absolute;top:12px;right:12px;width:20px;height:20px;border-radius:50%;background:var(--p);display:flex;align-items:center;justify-content:center;opacity:0;transition:var(--tr-base)}
.com-optcard.on .com-optcard-ck{opacity:1}
.com-load-main{display:flex;flex-direction:column;min-width:0;min-height:calc(100vh - 300px)}
.com-drop{border:2px dashed var(--bd)!important;background:linear-gradient(180deg,#f8fefc,var(--surf));text-align:center;padding:48px 24px;cursor:pointer;transition:var(--tr-base);flex:1;min-height:340px;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:18px;margin-top:6px;width:100%}
.com-drop:hover{border-color:var(--p)!important;background:#f0fbf8}
.com-drop-ic{margin-bottom:18px;transform:scale(1.35)}
.com-drop-t{font-size:var(--fs-h2);font-weight:var(--fw-bold);color:var(--t1)}
.com-drop-t span{color:var(--p)}
.com-drop-tpl{margin-top:14px;background:none;border:none;color:var(--p);font-size:var(--fs-body);font-weight:var(--fw-bold);cursor:pointer;font-family:inherit;display:inline-flex;align-items:center;gap:var(--sp2)}
.com-file{display:flex;align-items:center;gap:9px;background:var(--ok-bg);border:1px solid #a7f3d0;border-radius:var(--r11);padding:12px 16px;font-size:var(--fs-body);color:var(--t2)}
.com-file b{color:var(--t1)}
.com-file-ch{margin-left:auto;background:none;border:none;color:var(--p);font-weight:var(--fw-bold);font-size:var(--fs-body);cursor:pointer;font-family:inherit}
.com-prev-tbl th{color:var(--t3);padding:10px 12px;font-size:var(--fs-ter)}
.com-prev-tbl td{padding:13px 12px;border-top:var(--border);font-size:var(--fs-body)}
.com-prev-more{text-align:center;padding:var(--sp6);color:var(--p);font-size:var(--fs-body);font-weight:var(--fw-bold);cursor:pointer;border-top:var(--border);margin-top:4px}
.com-res-strip{display:flex;flex-wrap:wrap;gap:var(--sp3);margin:4px 0 16px}
.com-res-chip{display:inline-flex;align-items:center;gap:var(--sp2);font-size:var(--fs-sec);color:var(--t2);background:var(--bg);border:var(--border);border-radius:var(--rpill);padding:5px 11px}
.com-res-chip b{color:var(--t1)}
.com-load-single{max-width:880px}
.com-tabs{gap:8px;margin-bottom:20px}
.com-man{padding:26px 28px}
.com-man .cr-card-t{font-size:var(--fs-h4);margin-bottom:18px}
.com-man .mis-field label,.com-man label{margin-bottom:6px;display:block;font-weight:var(--fw-semi)}
.com-load-main{gap:22px}
.com-confirm{width:100%;margin-top:16px;padding:15px}
.com-fld{display:flex;flex-direction:column;gap:5px;margin-bottom:11px}
.com-fld label{font-size:var(--fs-ter);font-weight:var(--fw-bold);color:var(--t2)}
.com-fld input{border:1.5px solid var(--bd);border-radius:var(--r10);padding:10px 12px;font-size:var(--fs-body);font-family:inherit;color:var(--t1);outline:none;transition:var(--tr-base);background:var(--surf)}
.com-fld input:focus{border-color:var(--p);box-shadow:var(--sh-focus)}
.com-man-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px 20px;margin-bottom:14px}
.com-foot{display:flex;align-items:center;justify-content:center;gap:var(--sp3);flex-wrap:wrap;background:var(--surf);border:var(--border);border-radius:var(--r14);padding:var(--sp6);margin-top:20px}
.com-foot button{background:none;border:none;color:var(--p);font-size:var(--fs-body);font-weight:var(--fw-bold);cursor:pointer;font-family:inherit;display:inline-flex;align-items:center;gap:7px;padding:4px 18px;border-right:var(--border)}
.com-foot button:last-child{border-right:none}
@media(max-width:900px){.com-atajos{grid-template-columns:repeat(2,1fr)}.com-man-grid{grid-template-columns:1fr}}
@media(max-width:760px){.com-toolbar{flex-direction:column;align-items:stretch}.com-sort{margin-left:0}.com-tabs{flex-direction:column}.com-actions{flex-wrap:wrap;justify-content:flex-start}.com-foot{flex-direction:column}.com-foot button{border-right:none;border-bottom:var(--border);width:100%;justify-content:center}.com-foot button:last-child{border-bottom:none}}
@media(max-width:560px){.com-atajos{grid-template-columns:1fr}}
/* ── v96 ── */
/* 1 leyenda del mapa de misiones del home */
.hl-dot{width:11px;height:11px;border-radius:50%;display:inline-block;flex-shrink:0}
/* ════ NUEVA MISIÓN (wizard) ════ */
.mis-hero{display:flex;align-items:center;gap:var(--sp6);background:linear-gradient(120deg,rgba(19,193,172,.085),rgba(19,193,172,.015) 60%);border:var(--border);border-radius:18px;padding:16px 20px;margin:6px 0 16px}
.mis-hero-ic{width:46px;height:46px;border-radius:13px;background:var(--p2);display:flex;align-items:center;justify-content:center;flex-shrink:0}
/* stepper */
.mis-stepper{display:flex;align-items:center;justify-content:center;gap:0;margin:0 auto 26px;max-width:760px}
.mis-stp{display:flex;flex-direction:column;align-items:center;gap:7px;background:none;border:none;cursor:pointer;font-family:inherit;padding:0;flex-shrink:0}
.mis-stp-d{width:34px;height:34px;border-radius:50%;background:var(--bg);border:1.5px solid var(--bd);color:var(--t3);font-size:var(--fs-body);font-weight:var(--fw-bold);display:flex;align-items:center;justify-content:center;transition:var(--tr-base)}
.mis-stp-l{font-size:var(--fs-label);font-weight:var(--fw-bold);color:var(--t3);white-space:nowrap}
.mis-stp.on .mis-stp-d{background:var(--p);border-color:var(--p);color:var(--surf);box-shadow:0 0 0 4px var(--p2)}
.mis-stp.on .mis-stp-l{color:var(--t1)}
.mis-stp.done .mis-stp-d{background:var(--pd);border-color:var(--pd);color:var(--surf)}
.mis-stp.done .mis-stp-l{color:var(--t2)}
.mis-stp-line{flex:1;height:2px;background:var(--bd);margin:0 6px;margin-bottom:20px;min-width:18px}
.mis-stp-line.fill{background:var(--p)}
/* panel */
.mis-panel{max-width:880px;margin:0 auto;background:var(--surf);border:var(--border);border-radius:18px;padding:32px 36px;box-shadow:0 2px 10px rgba(15,23,42,.04)}
.mis-panel-wide{max-width:1080px}
.mis-panel-wide + .mis-nav{max-width:1080px}
/* ── Intro nueva misión ── */
.mis-introgrid{flex-direction:column;margin-top:4px}
.mis-introcard{width:100%}
.mis-introcard:hover{transform:translateY(-1px)}
.mis-introcard-p{border-color:var(--pd,#0f766e);background:linear-gradient(135deg,#f0fdfa,#f6f3ff)}
.mis-introcard-ic{border:1px solid var(--bd,#e5eaf0);flex-shrink:0}
.mis-introcard-ic2{background:#f3f0ff;border-color:#ddd6fe}
.mis-introcard-tx{flex:1;display:flex;flex-direction:column;gap:3px;min-width:0}
.mis-introcard-t{display:flex;align-items:center;gap:7px}
.mis-introcard-n{font-size:10.5px;font-weight:800;background:var(--bg,#f1f5f9);color:var(--t3,#94a3b8);border-radius:20px;padding:2px 7px}
.mis-introcard-s{font-weight:500}
.mis-introcard-go{flex-shrink:0;color:var(--t3,#cbd5e1);display:flex;transition:var(--tr-base)}
.mis-introcard:hover .mis-introcard-go{color:var(--pd,#0f766e);transform:translateX(3px)}
.mis-cal-link{display:inline-flex;align-items:center;gap:7px;margin-top:14px;border:none;background:none;color:var(--t2,#475569);font-size:12.5px;font-weight:700;font-family:inherit;cursor:pointer;padding:8px 10px;border-radius:8px}
.mis-cal-link:hover{background:var(--bg,#f1f5f9);color:var(--pd,#0f766e)}
.mis-cal-n{font-size:10.5px;font-weight:800;background:var(--p2,#e6faf6);color:var(--pd,#0f766e);border-radius:20px;padding:1px 7px}
/* ── Que Znapp elija (v2) ── */
.fn2-wrap{display:block}
.fn2-grid{display:grid;grid-template-columns:1fr 320px;gap:18px;align-items:start}
.fn2-l{display:flex;flex-direction:column;gap:14px;min-width:0}
.fn2-step{background:var(--surf,#fff);border:1px solid var(--bd,#e5eaf0);border-radius:14px;padding:18px 20px}
.fn2-step-hd{display:flex;align-items:flex-start;gap:11px;margin-bottom:14px}
.fn2-num{width:24px;height:24px;border-radius:50%;background:var(--pd,#0f766e);color:#fff;font-size:12px;font-weight:800;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:1px}
.fn2-t{font-size:14.5px;font-weight:800;color:var(--t1,#0f172a)}
.fn2-opt{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.4px;background:var(--bg,#f1f5f9);color:var(--t3,#94a3b8);border-radius:5px;padding:2px 7px;margin-left:5px;vertical-align:1px}
.fn2-s{font-size:12.5px;color:var(--t3,#94a3b8);margin-top:3px;line-height:1.5}
.fn2-totrow{display:flex;align-items:center;gap:10px}
.fn2-totin{width:150px;border:1.5px solid var(--bd,#e5eaf0);border-radius:11px;padding:13px 15px;font-size:24px;font-weight:800;color:var(--t1,#0f172a);font-family:inherit;letter-spacing:-.5px}
.fn2-totin:focus{outline:none;border-color:var(--pd,#0f766e)}
.fn2-totsuf{font-size:13.5px;font-weight:700;color:var(--t2,#475569)}
.fn2-locked{display:flex;align-items:center;gap:10px;padding:18px;background:var(--bg,#f8fafc);border:1px dashed var(--bd,#e5eaf0);border-radius:13px;font-size:13px;color:var(--t3,#94a3b8);line-height:1.5;margin-top:14px}
.fn2-noblocks{display:flex;align-items:center;gap:10px;padding:15px;background:var(--p2,#e6faf6);border-radius:11px;font-size:12.5px;color:var(--t2,#475569);line-height:1.5}
.fn2-add{display:inline-flex;align-items:center;gap:6px;margin-top:11px;border:1.5px dashed var(--bd,#cbd5e1);background:none;color:var(--pd,#0f766e);border-radius:10px;padding:10px 15px;font-size:13px;font-weight:700;font-family:inherit;cursor:pointer;transition:var(--tr-14)}
.fn2-add:hover{background:var(--p2,#e6faf6);border-color:var(--pd,#0f766e);border-style:solid}
.fn2-block{position:relative;border:1px solid var(--bd,#e5eaf0);border-left:4px solid var(--pd,#0f766e);border-radius:12px;padding:14px 40px 14px 15px;margin-bottom:9px;background:var(--surf,#fff)}
.fn2-bx{position:absolute;top:10px;right:10px;border:none;background:none;color:var(--t3,#cbd5e1);font-size:12px;cursor:pointer;padding:5px 7px;border-radius:6px;font-family:inherit}
.fn2-bx:hover{background:#fef2f2;color:#c0392b}
.fn2-conds{display:flex;flex-direction:column;gap:7px}
.fn2-cond{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.fn2-j{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.4px;color:var(--t3,#94a3b8);min-width:56px}
.fn2-sel{border:1.5px solid var(--bd,#e5eaf0);background:var(--surf,#fff);border-radius:9px;padding:8px 10px;font-size:13px;font-weight:600;color:var(--t1,#0f172a);font-family:inherit;cursor:pointer;flex:1;min-width:120px}
.fn2-sel:focus{outline:none;border-color:var(--pd,#0f766e)}
.fn2-sel-d{flex:0 0 auto;width:145px;background:var(--bg,#f8fafc);font-weight:700}
.fn2-cx{border:none;background:none;color:var(--t3,#94a3b8);font-size:11px;cursor:pointer;padding:5px;border-radius:6px;font-family:inherit}
.fn2-cx:hover{background:#fef2f2;color:#c0392b}
.fn2-addcond{align-self:flex-start;display:inline-flex;align-items:center;gap:5px;margin-left:63px;border:none;background:none;color:var(--pd,#0f766e);font-size:12px;font-weight:700;font-family:inherit;cursor:pointer;padding:4px 6px;border-radius:6px}
.fn2-addcond:hover{background:var(--p2,#e6faf6)}
.fn2-amtrow{display:flex;align-items:center;gap:11px;flex-wrap:wrap;margin-top:12px;padding-top:12px;border-top:1px solid var(--bd,#f1f5f9)}
.fn2-amt{display:flex;align-items:center;gap:7px}
.fn2-amtin{width:80px;border:1.5px solid var(--bd,#e5eaf0);border-radius:9px;padding:8px 10px;font-size:14.5px;font-weight:800;color:var(--t1,#0f172a);font-family:inherit;text-align:center}
.fn2-amtin:focus{outline:none;border-color:var(--pd,#0f766e)}
.fn2-qtog{display:inline-flex;background:var(--bg,#f1f5f9);border-radius:8px;padding:2px;gap:2px}
.fn2-qt{border:none;background:none;padding:6px 10px;border-radius:6px;font-size:11.5px;font-weight:700;color:var(--t3,#94a3b8);cursor:pointer;font-family:inherit}
.fn2-qt.on{background:var(--surf,#fff);color:var(--pd,#0f766e);box-shadow:0 1px 3px rgba(15,23,42,.1)}
.fn2-hay{font-size:11.5px;color:var(--t3,#94a3b8);font-weight:600}
@media(max-width:1000px){.fn2-grid{grid-template-columns:1fr}}
.mis-auto2{width:100%}
.fnl-col-r{position:sticky;top:8px}
.fnl-sumcard{background:var(--surf,#fff);border:var(--border,1px solid #e5eaf0);border-radius:16px;padding:20px;box-shadow:0 2px 12px rgba(15,23,42,.05)}
.fnl-sum-hd{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.5px;color:var(--t3,#94a3b8);margin-bottom:14px}
.fnl-sumtotal{display:flex;flex-direction:column;gap:2px;margin-bottom:16px}
.fnl-sumtotal-n{font-size:42px;font-weight:800;color:var(--pd,#0f766e);line-height:1;font-variant-numeric:tabular-nums}
.fnl-sumtotal-l{font-size:12.5px;color:var(--t3,#94a3b8);line-height:1.4}
.fnl-bar{display:flex;height:14px;border-radius:8px;overflow:hidden;background:var(--bg,#f1f5f9);margin-bottom:16px;gap:2px}
.fnl-barseg{height:100%;border-radius:3px;transition:width .25s ease;min-width:3px}
.fnl-barseg-resto{background:repeating-linear-gradient(45deg,#e2e8f0,#e2e8f0 5px,#eef2f6 5px,#eef2f6 10px)}
.fnl-sumlist{display:flex;flex-direction:column;gap:9px}
.fnl-sumrow{display:flex;align-items:center;gap:9px;font-size:13px}
.fnl-sumdot{width:10px;height:10px;border-radius:3px;flex-shrink:0}
.fnl-sumdot-resto{background:repeating-linear-gradient(45deg,#cbd5e1,#cbd5e1 2px,#e2e8f0 2px,#e2e8f0 4px)}
.fnl-sumlbl{flex:1;min-width:0;color:var(--t2,#475569);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fnl-sumn{font-weight:800;color:var(--t1,#0f172a);font-variant-numeric:tabular-nums}
.fnl-sum-empty{display:flex;align-items:center;gap:8px}
.fnl-sumwarn{display:flex;align-items:flex-start;gap:7px;font-size:12px;color:#b45309;background:#fffbeb;border:1px solid #fde68a;border-radius:10px;padding:9px 12px;margin-top:14px;line-height:1.45}
.mis-steptt{font-size:20px;font-weight:var(--fw-heavy);color:var(--t1);letter-spacing:-.3px}
.mis-stepsub{font-size:var(--fs-body);color:var(--t3);margin:5px 0 22px;line-height:var(--lh-body)}
.mis-field label,.mis-lbl{display:block;font-size:var(--fs-sec);font-weight:var(--fw-bold);color:var(--t2);margin:0 0 6px}
.mis-field{margin-bottom:14px}
.mis-g2{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp6)}
.mis-hint2{font-size:var(--fs-ter);color:var(--t3);margin:10px 0 4px;line-height:1.4}
/* nav */
.mis-nav{display:flex;justify-content:space-between;align-items:center;gap:var(--sp5);max-width:720px;margin:18px auto 0}
.mis-navbtn{display:inline-flex;align-items:center;gap:var(--sp3);background:var(--surf);border:var(--border);border-radius:var(--r12);padding:12px 20px;font-size:var(--fs-body);font-weight:var(--fw-bold);color:var(--t2);cursor:pointer;font-family:inherit}
.mis-navbtn:hover{border-color:var(--p);color:var(--pd)}
.mis-navbtn-p{background:var(--p);border-color:var(--p);color:var(--surf);box-shadow:var(--sh-brand)}
.mis-navbtn-p:hover{background:var(--pd);color:var(--surf)}
.mis-navbtn-static{cursor:default;color:var(--t3);background:var(--bg)}
.mis-navbtn-static:hover{border-color:var(--bd);color:var(--t3)}
/* paso 1 campañas */
.mis-campgrid{display:flex;flex-direction:column;gap:var(--sp4)}
.mis-campcard{display:flex;align-items:center;gap:13px;text-align:left;background:var(--surf);border:1.5px solid var(--bd);border-radius:var(--r14);padding:15px 17px;cursor:pointer;font-family:inherit}
.mis-campcard:hover{border-color:var(--p)}
.mis-campcard.on{border-color:var(--p);background:var(--p2)}
.mis-campcard-rd{width:24px;height:24px;border-radius:50%;border:2px solid var(--bd);flex-shrink:0;display:flex;align-items:center;justify-content:center}
.mis-campcard.on .mis-campcard-rd{background:var(--p);border-color:var(--p)}
.mis-campcard-tx{flex:1;min-width:0}
.mis-campcard-nm{font-size:var(--fs-h3);font-weight:var(--fw-bold);color:var(--t1)}
.mis-campcard-meta{display:flex;align-items:center;gap:var(--sp4);margin-top:4px}
.mis-campcard-sug{font-size:var(--fs-sec);color:var(--t3);font-weight:var(--fw-semi)}
.mis-eb{font-size:var(--fs-label);font-weight:var(--fw-bold);border-radius:var(--rpill);padding:2px 9px}
.mis-eb.ok{background:rgba(16,185,129,.13);color:var(--teal-d)}
.mis-eb.mut{background:var(--bg);color:var(--t3)}
.mis-empty2{padding:26px;text-align:center;color:var(--t3);font-size:var(--fs-body);background:var(--bg);border-radius:var(--r12)}
.mis-autobox{display:flex;flex-direction:column;gap:12px;margin-top:6px}
.fnl-sum-empty{color:var(--t3);font-size:var(--fs-sec);text-align:center;line-height:1.5}
/* ===== Embudo de información (Distribución) ===== */
.dist-embudo{display:flex;flex-direction:column;gap:6px;margin-top:8px}
.emb-card{background:var(--surf);border:var(--border);border-radius:var(--r14);padding:4px 4px 6px;box-shadow:var(--sh-sm)}
.emb-hd{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;cursor:pointer;border-radius:var(--r12)}
.emb-hd:hover{background:var(--bg)}
.emb-hd-ttl{font-size:var(--fs-body);font-weight:var(--fw-bold);color:var(--t1)}
.emb-hd-sub{font-size:var(--fs-label);color:var(--t3);margin-top:2px}
.emb-exp{border:1px solid var(--bd);background:var(--surf);color:var(--p);font-size:var(--fs-label);font-weight:var(--fw-bold);padding:7px 13px;border-radius:999px;cursor:pointer;white-space:nowrap;flex-shrink:0}
.emb-exp:hover{background:var(--pl);border-color:var(--p)}
.emb-tabs{display:flex;gap:6px;flex-wrap:wrap;padding:4px 14px 10px}
.emb-tab{border:1px solid var(--bd);background:var(--surf);color:var(--t2);font-size:var(--fs-label);font-weight:var(--fw-med);padding:6px 13px;border-radius:999px;cursor:pointer;transition:var(--tr-fast)}
.emb-tab:hover{border-color:var(--p);color:var(--p)}
.emb-tab.on{background:var(--p);border-color:var(--p);color:#fff;font-weight:var(--fw-bold)}
.emb-body{padding:2px 14px 14px}
.emb-rows{display:flex;flex-direction:column;gap:11px}
.emb-row-top{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:5px}
.emb-row-name{font-size:var(--fs-sec);font-weight:var(--fw-med);color:var(--t1)}
.emb-row-val{font-size:var(--fs-sec);font-weight:var(--fw-heavy);color:var(--t1)}
.emb-bar{height:7px;background:var(--bg);border-radius:999px;overflow:hidden}
.emb-bar-fill{height:100%;background:linear-gradient(90deg,var(--p),var(--p2,#0891b2));border-radius:999px}
.emb-row-sub{font-size:var(--fs-ter);color:var(--t3);margin-top:4px}
.emb-empty{padding:22px;text-align:center;color:var(--t3);font-size:var(--fs-sec)}
.emb-gen-big{font-size:38px;font-weight:var(--fw-heavy);color:var(--p);line-height:1;display:flex;align-items:baseline;gap:8px;margin-bottom:14px}
.emb-gen-big span{font-size:var(--fs-label);font-weight:var(--fw-med);color:var(--t3)}
.emb-gen-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px;margin-bottom:12px}
.emb-gen-l{font-size:var(--fs-ter);color:var(--t3);text-transform:uppercase;letter-spacing:.4px;margin-bottom:3px}
.emb-gen-v{font-size:var(--fs-body);font-weight:var(--fw-bold);color:var(--t1)}
.emb-gen-hint{font-size:var(--fs-label);color:var(--t3);line-height:1.5;background:var(--bg);padding:10px 12px;border-radius:var(--r10)}
.mc-drill-hint{position:absolute;top:9px;right:11px;font-size:14px;color:var(--t3);cursor:pointer;opacity:.45;transition:var(--tr-base);line-height:1;z-index:2}
.mc-drill-hint:hover{opacity:1;color:var(--p)}
.mc:hover .mc-drill-hint{opacity:.8}
.mis-empty2 a{color:var(--pd);cursor:pointer;font-weight:var(--fw-bold)}
/* paso 2 */
.mis-seg{display:flex;gap:var(--sp3);margin-bottom:14px}
.mis-seg-b{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:var(--sp3);background:var(--surf);border:1.5px solid var(--bd);border-radius:var(--r12);padding:var(--sp5);font-size:var(--fs-body);font-weight:var(--fw-bold);color:var(--t3);cursor:pointer;font-family:inherit}
.mis-seg-b.on{border-color:var(--p);background:var(--p2);color:var(--pd)}
.mis-destbox{border:var(--border);border-radius:var(--r14);overflow:hidden}
.mis-subtoggle{display:flex;gap:var(--sp1);padding:var(--sp3);background:var(--bg);border-bottom:var(--border)}
.mis-subtoggle button{flex:1;background:none;border:none;border-radius:var(--r9);padding:var(--sp3);font-size:var(--fs-body);font-weight:var(--fw-bold);color:var(--t3);cursor:pointer;font-family:inherit}
.mis-subtoggle button.on{background:var(--surf);color:var(--t1);box-shadow:0 1px 3px rgba(15,23,42,.08)}
.mis-pick-hd{padding:var(--sp4);border-bottom:var(--border)}
.mis-pick-hd .plat-input{width:100%}
.mis-pick-list{max-height:460px;overflow:auto}
.mis-pick-row{display:flex;align-items:center;gap:11px;padding:10px 14px;border-bottom:1px solid rgba(15,23,42,.05);cursor:pointer;font-size:var(--fs-body)}
.mis-pick-row:hover{background:var(--bg)}
.mis-pick-row.on{background:var(--p2)}
.mis-pick-row input{accent-color:var(--p);width:16px;height:16px}
.mis-pick-id{font-weight:var(--fw-bold);color:var(--t1);min-width:76px}
.mis-pick-nm{flex:1;color:var(--t2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mis-pick-loc{color:var(--t3);font-size:var(--fs-ter)}
.mis-pick-empty{padding:var(--sp9);text-align:center;color:var(--t3);font-size:var(--fs-body)}
.mis-grplist{padding:var(--sp2)}
.mis-grprow{display:flex;align-items:center;justify-content:space-between;gap:var(--sp4);padding:11px 12px;border-bottom:1px solid rgba(15,23,42,.05)}
.mis-grprow:last-child{border-bottom:none}
.mis-grp-nm{font-size:var(--fs-body);font-weight:var(--fw-bold);color:var(--t1)}
.mis-grp-c{font-size:var(--fs-ter);color:var(--t3)}
.mis-mini{display:inline-flex;align-items:center;gap:var(--sp2);background:var(--surf);border:var(--border);border-radius:var(--r10);padding:7px 12px;font-size:var(--fs-sec);font-weight:var(--fw-bold);color:var(--t2);cursor:pointer;font-family:inherit}
.mis-mini:hover{border-color:var(--p);color:var(--pd)}
.mis-tpl{margin-top:12px}
.mis-selbar{display:flex;align-items:center;gap:7px;font-size:var(--fs-body);color:var(--t2);margin-top:14px}
.mis-commodes{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:4px 0 16px}
.mis-commode-c{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:9px;text-align:left;padding:14px;border:1.5px solid var(--bd);border-radius:14px;background:var(--surf);cursor:pointer;transition:var(--tr-14);font-family:inherit}
.mis-commode-c:hover{border-color:var(--p)}
.mis-commode-c.on{border-color:var(--p);background:var(--p2)}
.mis-commode-ic{width:38px;height:38px;border-radius:10px;background:var(--bg);display:flex;align-items:center;justify-content:center}
.mis-commode-c.on .mis-commode-ic{background:var(--surf)}
.mis-commode-tx{display:flex;flex-direction:column;gap:2px}
.mis-commode-t{font-size:var(--fs-body);font-weight:var(--fw-bold);color:var(--t1)}
.mis-commode-s{font-size:var(--fs-ter);color:var(--t3);line-height:1.3}
.mis-commode-ck{position:absolute;top:10px;right:10px;width:18px;height:18px;border-radius:50%;background:var(--p);display:none;align-items:center;justify-content:center}
.mis-commode-c.on .mis-commode-ck{display:flex}
.mis-selbar.has{color:var(--t1);font-weight:var(--fw-semi)}
@media(max-width:640px){.mis-commodes{grid-template-columns:1fr}}
.mis-selbar b{color:var(--t1)}
.mis-clearids{margin-left:auto;background:none;border:none;color:var(--danger);font-size:var(--fs-sec);font-weight:var(--fw-bold);cursor:pointer}
.mis-drop{border:2px dashed var(--bd);border-radius:var(--r14);padding:30px 20px;text-align:center;cursor:pointer;background:var(--bg)}
.mis-drop:hover{border-color:var(--p)}
.mis-drop-ic{margin-bottom:8px}
.mis-drop-t{font-size:var(--fs-body);font-weight:var(--fw-semi);color:var(--t2)}
.mis-drop-t span{color:var(--pd);font-weight:var(--fw-bold);text-decoration:underline}
.mis-drop-s{font-size:var(--fs-ter);color:var(--t3);margin-top:4px}
.mis-csvloaded{display:flex;align-items:center;gap:11px;padding:14px 16px;background:var(--p2);border:var(--border);border-radius:13px}
.mis-csvloaded-t{font-size:var(--fs-body);font-weight:var(--fw-bold);color:var(--t1)}
.mis-csvloaded-s{font-size:var(--fs-ter);color:var(--t3)}
.mis-csvloaded button{margin-left:auto}
.mis-csvnote2{display:flex;align-items:center;gap:var(--sp3);font-size:var(--fs-body);color:var(--t2);background:var(--bg);border:var(--border);border-radius:var(--r12);padding:13px 15px;margin-bottom:16px}
/* paso 3 tipos */
/* ── Timer de reaparición (always-on) ── */
.ao-box{margin-top:16px;padding:18px 20px;background:linear-gradient(135deg,#f0fdfa,#f6f3ff);border:1px solid #99f6e4;border-radius:14px;animation:rc2slide .22s ease}
.ao-hd{display:flex;align-items:flex-start;gap:11px;margin-bottom:16px}
.ao-ic{width:34px;height:34px;border-radius:10px;background:var(--surf,#fff);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.ao-t{font-size:14.5px;font-weight:800;color:var(--t1,#0f172a)}
.ao-s{font-size:12.5px;color:var(--t2,#475569);margin-top:3px;line-height:1.5}
.ao-row{display:flex;align-items:center;gap:16px}
.ao-range{flex:1;-webkit-appearance:none;appearance:none;height:6px;border-radius:5px;background:linear-gradient(90deg,#13c1ac,#0f766e);outline:none;cursor:pointer}
.ao-range::-webkit-slider-thumb{-webkit-appearance:none;width:20px;height:20px;border-radius:50%;background:#fff;border:3px solid var(--pd,#0f766e);cursor:pointer;box-shadow:0 2px 6px rgba(15,23,42,.2)}
.ao-range::-moz-range-thumb{width:20px;height:20px;border-radius:50%;background:#fff;border:3px solid var(--pd,#0f766e);cursor:pointer}
.ao-val{display:flex;align-items:center;gap:5px;flex-shrink:0}
.ao-num{width:64px;border:1.5px solid var(--bd,#e5eaf0);background:var(--surf,#fff);border-radius:10px;padding:9px;font-size:17px;font-weight:800;color:var(--t1,#0f172a);font-family:inherit;text-align:center}
.ao-num:focus{outline:none;border-color:var(--pd,#0f766e)}
.ao-val span{font-size:13px;font-weight:700;color:var(--t2,#475569)}
.ao-chips{display:flex;gap:6px;flex-wrap:wrap;margin-top:13px}
.ao-chip{border:1.5px solid var(--bd,#e5eaf0);background:var(--surf,#fff);color:var(--t2,#475569);border-radius:8px;padding:6px 12px;font-size:12.5px;font-weight:700;font-family:inherit;cursor:pointer;transition:var(--tr-14)}
.ao-chip:hover{border-color:var(--pd,#0f766e);color:var(--pd,#0f766e)}
.ao-chip.on{border-color:var(--pd,#0f766e);background:var(--pd,#0f766e);color:#fff}
.ao-note{display:flex;align-items:center;gap:6px;margin-top:14px;padding:10px 13px;background:var(--surf,#fff);border-radius:10px;font-size:12.5px;color:var(--t2,#475569);line-height:1.45}
.ao-note b{color:var(--t1,#0f172a);font-weight:800}
.mis-types{display:grid;grid-template-columns:repeat(3,1fr);gap:11px}
.mis-type{display:flex;flex-direction:column;align-items:flex-start;gap:var(--sp1);text-align:left;background:var(--surf);border:1.5px solid var(--bd);border-radius:var(--r14);padding:15px;cursor:pointer;font-family:inherit}
.mis-type:hover{border-color:var(--p)}
.mis-type.on{border-color:var(--p);background:var(--p2)}
.mis-type-ic{margin-bottom:4px}
.mis-type-t{font-size:var(--fs-body);font-weight:var(--fw-bold);color:var(--t1)}
.mis-type-d{font-size:var(--fs-label);color:var(--t3);line-height:var(--lh-snug)}
.mis-recur{margin-top:18px;padding-top:18px;border-top:var(--border)}
.mis-switch{display:flex;align-items:center;gap:9px;font-size:var(--fs-body);font-weight:var(--fw-semi);color:var(--t2);margin:18px 0 12px;cursor:pointer}
.mis-switch input{width:16px;height:16px;accent-color:var(--p)}
/* paso 5 recompensa */
.mis-reward{margin-bottom:18px}
.mis-rec-row{display:flex;justify-content:center;margin-bottom:16px}
.mis-rec-in{display:flex;align-items:center;gap:5px;font-size:30px;font-weight:var(--fw-heavy);color:var(--t1);border:1.5px solid var(--bd);border-radius:var(--r14);padding:10px 22px;background:var(--surf)}
.mis-rec-in input{border:none;outline:none;font-size:30px;font-weight:var(--fw-heavy);width:150px;font-family:inherit;color:var(--p);background:transparent;text-align:center}
.mis-slider{width:100%;accent-color:var(--p);height:6px;cursor:pointer;margin:6px 0 4px}
.mis-bar{position:relative;height:10px;background:var(--bg);border:var(--border);border-radius:var(--rpill);margin:14px 0 8px;overflow:visible}
.mis-bar-fill{height:100%;border-radius:var(--rpill);background:var(--p);width:0;transition:width .12s,background .12s}
.mis-bar-sug{position:absolute;top:-5px;width:2px;height:18px;background:var(--t1);left:50%}
.mis-bar-sug::after{content:'';position:absolute;top:-5px;left:-3px;width:8px;height:8px;border-radius:50%;background:var(--t1)}
.mis-bar-lbls{display:flex;justify-content:space-between;align-items:center;font-size:var(--fs-ter);color:var(--t3)}
.mis-bar-state{font-weight:var(--fw-heavy)}
.mis-sugline{text-align:center;font-size:var(--fs-sec);color:var(--t3);margin-top:10px}
.mis-sugline b{color:var(--t2)}
/* calculadora */
.mis-calc{background:var(--bg);border:var(--border);border-radius:var(--r14);padding:18px 20px;margin-top:4px}
.mis-calc-t{font-size:var(--fs-body);font-weight:var(--fw-bold);color:var(--t1);margin-bottom:10px}
.mis-calc-row{display:flex;justify-content:space-between;align-items:center;font-size:var(--fs-body);color:var(--t2);padding:6px 0}
.mis-calc-row b{color:var(--t1);font-weight:var(--fw-bold)}
.mis-calc-sub{border-top:1px dashed var(--bd);margin-top:2px;padding-top:9px}
.mis-calc-total{display:flex;justify-content:space-between;align-items:center;border-top:var(--border);margin-top:7px;padding-top:12px}
.mis-calc-total span{font-size:var(--fs-body);font-weight:var(--fw-bold);color:var(--t1)}
.mis-calc-total b{font-size:23px;font-weight:var(--fw-heavy);color:var(--pd);letter-spacing:-.5px}
.mis-sum-row{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--sp5);font-size:var(--fs-body);color:var(--t3);padding:7px 0}
.mis-sum-row b{color:var(--t1);font-weight:var(--fw-bold);text-align:right}
.mis-rev{display:flex;flex-direction:column;gap:var(--sp6)}
.mis-rev-name{display:flex;flex-direction:column;gap:var(--sp2)}
.mis-rev-name label{font-size:var(--fs-body);font-weight:var(--fw-bold);color:var(--t1)}
.mis-rev-name label span{font-weight:var(--fw-med);color:var(--t3)}
.mis-rev-name input{border:var(--border);border-radius:var(--r10);padding:11px 13px;font-size:var(--fs-body);font-family:inherit;color:var(--t1);background:var(--surf)}
.mis-rev-name input:focus{outline:none;border-color:var(--p);box-shadow:0 0 0 3px var(--pl)}
.mis-rev-hero{display:flex;justify-content:space-between;align-items:flex-end;gap:var(--sp7);background:linear-gradient(135deg,#f0fdfa,#f5fcff);border:1px solid #99f6e4;border-radius:15px;padding:18px 20px}
.mis-rev-hero-r{text-align:right}
.mis-rev-k{font-size:var(--fs-label);font-weight:var(--fw-bold);color:var(--t3);text-transform:uppercase;letter-spacing:.4px;margin-bottom:4px}
.mis-rev-v{font-size:19px;font-weight:var(--fw-heavy);color:var(--t1);line-height:var(--lh-tight)}
.mis-rev-cost{font-size:26px;font-weight:var(--fw-heavy);color:var(--pd);line-height:1}
.mis-rev-list{background:var(--bg);border:var(--border);border-radius:13px;padding:2px 16px}
.mis-rev-row{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--sp6);font-size:var(--fs-body);color:var(--t3);padding:11px 0;border-bottom:var(--border)}
.mis-rev-row:last-child{border-bottom:none}
.mis-rev-row b{color:var(--t1);font-weight:var(--fw-bold);text-align:right}
.mis-rev-cost-list{background:#fafbfc}
.mis-launchbtn,.cmp-createbtn{width:100%;justify-content:center;margin-top:16px}
.mis-presubtn{width:100%;display:inline-flex;align-items:center;justify-content:center;gap:8px;margin-top:10px;background:var(--surf);border:1.5px solid var(--p);color:var(--pd);font-family:inherit;font-size:14px;font-weight:700;padding:12px 18px;border-radius:12px;cursor:pointer;transition:var(--tr-base)}
.mis-presubtn:hover{background:var(--p2);box-shadow:0 3px 10px rgba(19,193,172,.18)}
/* Misiones Agenda+Calendario */
/* ── Planificación v2 ── */
.ms2-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:16px}
.ms2-kpi{background:var(--surf,#fff);border:1px solid var(--bd,#e5eaf0);border-radius:14px;padding:18px 20px}
.ms2-kpi-top{display:flex;align-items:center;justify-content:space-between;gap:10px}
.ms2-kpi-l{font-size:12.5px;font-weight:700;color:var(--t2,#475569)}
.ms2-kpi-ic{width:32px;height:32px;border-radius:9px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.ms2-kpi-v{font-size:26px;font-weight:800;color:var(--t1,#0f172a);letter-spacing:-.5px;margin-top:12px;line-height:1.1}
.ms2-kpi-s{font-size:11.5px;color:var(--t3,#94a3b8);margin-top:3px}
.ms2-bar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:12px 16px;margin-bottom:16px}
.ms2-view{display:inline-flex;background:var(--bg,#f1f5f9);border-radius:10px;padding:3px;gap:2px}
.ms2-tg{display:inline-flex;align-items:center;gap:6px;border:none;background:none;padding:8px 14px;border-radius:8px;font-size:13px;font-weight:700;color:var(--t2,#475569);cursor:pointer;font-family:inherit;transition:var(--tr-14);white-space:nowrap}
.ms2-tg:hover{color:var(--t1,#0f172a)}
.ms2-tg.on{background:var(--surf,#fff);color:var(--pd,#0f766e);box-shadow:0 1px 3px rgba(15,23,42,.1)}
.ms2-sep{width:1px;height:26px;background:var(--bd,#e5eaf0)}
.ms2-fls{display:flex;gap:6px;flex-wrap:wrap}
.ms2-fl{display:inline-flex;align-items:center;gap:6px;border:1.5px solid var(--bd,#e5eaf0);background:var(--surf,#fff);color:var(--t2,#475569);border-radius:9px;padding:7px 12px;font-size:12.5px;font-weight:700;font-family:inherit;cursor:pointer;transition:var(--tr-14)}
.ms2-fl:hover{border-color:#cbd5e1}
.ms2-fl-n{font-size:10.5px;font-weight:800;background:var(--bg,#f1f5f9);color:var(--t3,#94a3b8);border-radius:20px;padding:1px 6px;min-width:17px;text-align:center}
.ms2-fl.on{border-color:var(--pd,#0f766e);background:var(--p2,#e6faf6);color:var(--pd,#0f766e)}
.ms2-fl.on .ms2-fl-n{background:var(--pd,#0f766e);color:#fff}
.ms2-search{display:flex;align-items:center;gap:7px;margin-left:auto;background:var(--surf,#fff);border:1.5px solid var(--bd,#e5eaf0);border-radius:10px;padding:8px 12px;min-width:230px;transition:var(--tr-14)}
.ms2-search:focus-within{border-color:var(--pd,#0f766e)}
.ms2-search input{border:none;outline:none;background:none;font-family:inherit;font-size:13px;color:var(--t1,#0f172a);width:100%}
.ms2-grid{display:grid;grid-template-columns:300px 1fr;gap:16px;align-items:start}
.ms2-card{padding:20px 22px}
.ms2-card-hd{margin-bottom:18px}
.ms2-card-t{font-size:15.5px;font-weight:800;color:var(--t1,#0f172a)}
.ms2-card-s{font-size:12.5px;color:var(--t3,#94a3b8);margin-top:3px}
.ms2-sec{margin-bottom:22px}
.ms2-sec:last-child{margin-bottom:0}
.ms2-sec-h{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-bottom:11px}
.ms2-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.ms2-d-ac{background:#0d9488;box-shadow:0 0 0 3px rgba(13,148,136,.15)}
.ms2-d-pr{background:#7c3aed;box-shadow:0 0 0 3px rgba(124,58,237,.15)}
.ms2-d-fn{background:#f59e0b;box-shadow:0 0 0 3px rgba(245,158,11,.15)}
.ms2-sec-t{font-size:13.5px;font-weight:800;color:var(--t1,#0f172a)}
.ms2-sec-c{font-size:11px;font-weight:800;background:var(--bg,#f1f5f9);color:var(--t3,#94a3b8);border-radius:20px;padding:2px 8px}
.ms2-sec-s{font-size:11.5px;color:var(--t3,#cbd5e1);margin-left:auto}
.ms2-rows{display:flex;flex-direction:column;gap:9px}
.ms2-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;background:var(--surf,#fff);border:1px solid var(--bd,#e5eaf0);border-radius:13px;transition:var(--tr-14)}
.ms2-row:hover{border-color:#cbd5e1;box-shadow:0 2px 10px rgba(15,23,42,.05)}
.ms2-row-l{flex:1;min-width:0}
.ms2-row-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.ms2-kind{font-size:9.5px;font-weight:800;text-transform:uppercase;letter-spacing:.5px;color:var(--t3,#94a3b8);background:var(--bg,#f1f5f9);border-radius:5px;padding:3px 7px}
.ms2-nm{font-size:14.5px;font-weight:800;color:var(--t1,#0f172a);letter-spacing:-.2px}
.ms2-camp{display:flex;align-items:center;gap:5px;font-size:12px;color:var(--t3,#94a3b8);margin-top:5px}
.ms2-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.ms2-ch{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:600;color:var(--t2,#475569);background:var(--bg,#f8fafc);border:1px solid var(--bd,#eef2f6);border-radius:7px;padding:4px 9px;white-space:nowrap}
.ms2-ch svg{opacity:.6}
.ms2-ch-rec{background:#f5f3ff;border-color:#ddd6fe;color:#6d28d9}
.ms2-ch-rec svg{opacity:1;stroke:#7c3aed}
.ms2-row-r{display:flex;align-items:center;gap:7px;flex-shrink:0}
.ms2-ico{width:34px;height:34px;border-radius:9px;border:1px solid var(--bd,#e5eaf0);background:var(--surf,#fff);color:var(--t3,#94a3b8);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:var(--tr-14)}
.ms2-ico:hover{border-color:var(--pd,#0f766e);color:var(--pd,#0f766e);background:var(--p2,#e6faf6)}
.ms2-empty{padding:18px;background:var(--bg,#f8fafc);border:1px dashed var(--bd,#e5eaf0);border-radius:11px;font-size:12.5px;color:var(--t3,#94a3b8);text-align:center}
@media(max-width:1100px){.ms2-kpis{grid-template-columns:repeat(2,1fr)}.ms2-grid{grid-template-columns:1fr}}
@media(max-width:700px){.ms2-kpis{grid-template-columns:1fr}.ms2-search{margin-left:0;width:100%}.ms2-row{flex-direction:column;align-items:stretch}.ms2-row-r{justify-content:flex-end}}
.ms-sec-dot{width:9px;height:9px;border-radius:50%;display:inline-block}
.ms-d-ac{background:var(--p)}.ms-d-pr{background:var(--violet)}.ms-d-fn{background:var(--warn)}.ms-d-vn{background:#dc2626}
.ms-sec-empty{font-size:var(--fs-body);color:var(--t3);padding:8px 2px}
.ms-menu-wrap{position:relative}
.ms-pop{position:absolute;right:0;top:34px;z-index:30;background:var(--surf);border:var(--border);border-radius:var(--r11);box-shadow:0 10px 30px rgba(15,23,42,.14);padding:5px;min-width:184px;display:none;flex-direction:column}
.ms-pop.open{display:flex}
/* SALE DEL BOTON DE TRES PUNTOS, que esta arriba a la derecha. */
.ms-pop{transform-origin:100% 0;opacity:0;transform:translateY(-6px) scale(.96);
  transition:opacity var(--mo-3) var(--ez-out),transform var(--mo-3) var(--ez-out),
    display var(--mo-3) allow-discrete}
.ms-pop.open{opacity:1;transform:none}
/* cerrar es una decision ya tomada: sale en 90ms y entra en 210. */
.ms-pop:not(.open){transition-duration:var(--mo-1)}
@starting-style{ .ms-pop.open{opacity:0;transform:translateY(-6px) scale(.96)} }
.ms-pop button{display:flex;align-items:center;gap:9px;border:none;background:none;font-family:inherit;font-size:var(--fs-body);color:var(--t1);padding:9px 11px;border-radius:var(--r8);cursor:pointer;text-align:left}
.ms-pop button:hover{background:var(--bg)}
.ms-pop-del{color:#dc2626!important}
.ms-tb{display:inline-flex;align-items:center;font-size:var(--fs-label);font-weight:var(--fw-bold);padding:3px 9px;border-radius:7px;white-space:nowrap}
.ms-tb-uv{background:#eff6ff;color:var(--blue)}.ms-tb-ao{background:var(--ok-bg);color:var(--teal-d)}.ms-tb-rc{background:#f5f3ff;color:var(--violet)}
.ms-eb{display:inline-flex;align-items:center;font-size:var(--fs-label);font-weight:var(--fw-bold);padding:4px 11px;border-radius:var(--rpill);white-space:nowrap}
.ms-eb-ac{background:#d1fae5;color:#047857}.ms-eb-pr{background:#ede9fe;color:#6d28d9}.ms-eb-pv{background:#ffedd5;color:#c2410c}.ms-eb-vn{background:#fee2e2;color:#b91c1c}.ms-eb-ps{background:var(--slate-bg);color:var(--slate)}
.ms-mc{background:var(--surf);border:var(--border);border-radius:var(--r16);padding:14px 16px}
.ms-mc-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.ms-mc-h b{font-size:var(--fs-body);font-weight:var(--fw-bold);color:var(--t1)}
.ms-mc-h button,.ms-bc-h button{width:28px;height:28px;border:var(--border);background:var(--surf);border-radius:var(--r8);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;color:var(--t2)}
.ms-mc-prev svg{transform:rotate(180deg)}
.ms-mc-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;text-align:center}
.ms-mc-wd{font-size:var(--fs-label);font-weight:var(--fw-bold);color:var(--t3);padding:4px 0}
.ms-mc-d{position:relative;font-size:var(--fs-sec);color:var(--t1);padding:7px 0 12px;border-radius:var(--r8)}
.ms-mc-mute{color:transparent}
.ms-mc-today{background:var(--pl);font-weight:var(--fw-heavy);color:var(--pd);outline:1.5px solid var(--p)}
.ms-mc-dots{position:absolute;left:0;right:0;bottom:3px;display:flex;justify-content:center;gap:2px}
.ms-dot{width:5px;height:5px;border-radius:50%;display:inline-block}
.ms-leg{display:flex;flex-wrap:wrap;gap:10px 14px;margin-top:12px;padding-top:10px;border-top:var(--border)}
.ms-leg span{display:inline-flex;align-items:center;gap:var(--sp2);font-size:var(--fs-ter);color:var(--t2)}
.ms-cgrid{display:grid;grid-template-columns:1fr 358px;gap:var(--sp8);align-items:start}
.ms-bc{background:var(--surf);border:var(--border);border-radius:var(--r16);padding:14px 16px;box-shadow:var(--sh-sm)}
.ms-bc-h{display:flex;align-items:center;gap:var(--sp4);margin-bottom:10px}
.ms-bc-h b{font-size:var(--fs-h3);font-weight:var(--fw-bold);color:var(--t1)}
.ms-bc-today-btn{width:auto!important;padding:0 12px;font-size:var(--fs-body);font-weight:var(--fw-semi);font-family:inherit}
.ms-bc-wds{display:grid;grid-template-columns:repeat(7,1fr)}
.ms-bc-wd{font-size:var(--fs-label);font-weight:var(--fw-bold);color:var(--t3);padding:6px 8px}
.ms-bc-grid{display:grid;grid-template-columns:repeat(7,1fr);border-left:var(--border);border-top:var(--border)}
.ms-bc-c{min-height:96px;border-right:var(--border);border-bottom:var(--border);padding:5px 6px;cursor:pointer;transition:background .12s;overflow:hidden}
.ms-bc-c:hover{background:var(--bg)}
.ms-bc-mute{background:#fafbfc;cursor:default}
.ms-bc-sel{outline:2px solid var(--p);outline-offset:-2px;border-radius:var(--r8)}
.ms-bc-n{font-size:var(--fs-sec);font-weight:var(--fw-semi);color:var(--t2);margin-bottom:3px}
.ms-bc-today .ms-bc-n{background:var(--p);color:var(--surf);width:21px;height:21px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center}
.ms-chip{font-size:var(--fs-label);line-height:1.25;padding:3px 6px;border-radius:var(--r6);margin-bottom:3px;font-weight:var(--fw-semi);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ms-chip-s{display:block;font-weight:var(--fw-med);opacity:.85;font-size:var(--fs-micro)}
.ms-chip-ac{background:var(--ok-bg);color:var(--teal-d)}.ms-chip-pr{background:#f5f3ff;color:var(--violet)}.ms-chip-ao{background:var(--ok-bg);color:var(--teal-d)}.ms-chip-fn{background:#fff7ed;color:#c2410c}.ms-chip-vn{background:#fee2e2;color:#b91c1c}
.ms-bc-foot{display:flex;align-items:center;justify-content:space-between;gap:var(--sp5);flex-wrap:wrap;margin-top:12px}
.ms-inds{display:flex;gap:var(--sp7);flex-wrap:wrap}
.ms-ind{display:flex;align-items:center;gap:var(--sp3);font-size:var(--fs-sec);color:var(--t2)}
.ms-ind-ic{width:32px;height:32px;border-radius:var(--r9);background:var(--bg);display:inline-flex;align-items:center;justify-content:center;flex:none}
.ms-ind b{color:var(--t1);font-weight:var(--fw-bold);font-size:var(--fs-body)}
.ms-daypanel{background:var(--surf);border:var(--border);border-radius:var(--r16);padding:16px 18px;box-shadow:var(--sh-sm)}
.ms-dp-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.ms-dp-h b{font-size:var(--fs-h3);font-weight:var(--fw-heavy);color:var(--t1)}
.ms-dp-h button{width:28px;height:28px;border:var(--border);background:var(--surf);border-radius:var(--r8);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;color:var(--t2)}
.ms-dg{margin-top:12px}
.ms-dg-h{display:flex;align-items:center;gap:var(--sp3);font-size:var(--fs-body);font-weight:var(--fw-bold);color:var(--t1);margin-bottom:8px}
.ms-di{border:var(--border);border-radius:var(--r11);padding:11px 12px;margin-bottom:8px}
.ms-di-top{display:flex;align-items:center;gap:var(--sp3);flex-wrap:wrap}
.ms-di-nm{font-size:var(--fs-body);font-weight:var(--fw-bold);color:var(--t1)}
.ms-di-hr{margin-left:auto;font-size:var(--fs-ter);color:var(--t3)}
.ms-di-camp{font-size:var(--fs-ter);color:var(--t3);margin:4px 0 8px}
.ms-di-bot{display:flex;align-items:center;gap:var(--sp5);flex-wrap:wrap;font-size:var(--fs-ter);color:var(--t2)}
.ms-di-bot span{display:inline-flex;align-items:center;gap:5px}
.ms-dp-link{display:inline-flex;align-items:center;gap:var(--sp2);margin-top:12px;font-size:var(--fs-body);font-weight:var(--fw-bold);color:var(--pd);cursor:pointer;text-decoration:none}
@media(max-width:1100px){.ms-cgrid{grid-template-columns:1fr}}
@media(max-width:760px){.ms-bc-c{min-height:64px}}
/* calendario */
.mis-callayout{display:grid;grid-template-columns:330px 1fr;gap:var(--sp8);align-items:start}
.mis-calcard{background:var(--surf);border:var(--border);border-radius:var(--r16);padding:16px 18px;box-shadow:var(--sh-xs);position:sticky;top:14px}
.mis-cal-hd{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.mis-cal-ttl{font-size:var(--fs-h3);font-weight:var(--fw-heavy);color:var(--t1)}
.mis-cal-nav{background:var(--bg);border:var(--border);border-radius:var(--r9);width:30px;height:30px;cursor:pointer;color:var(--t2);font-size:var(--fs-h3)}
.mis-cal-week{display:grid;grid-template-columns:repeat(7,1fr);gap:var(--sp1);margin-bottom:4px}
.mis-cal-week span{text-align:center;font-size:var(--fs-label);font-weight:var(--fw-bold);color:var(--t3)}
.mis-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:var(--sp1)}
.mis-cell{aspect-ratio:1;border-radius:var(--r9);border:1px solid transparent;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:var(--fs-sec);color:var(--t2);position:relative}
.mis-cell-mute{visibility:hidden}
.mis-cell.has{background:var(--p2);border-color:var(--p);font-weight:var(--fw-bold);color:var(--t1)}
.mis-cell-dots{display:flex;gap:3px;font-size:var(--fs-micro);line-height:1;margin-top:1px}
.mis-dot-ini{color:var(--p)}.mis-dot-fin{color:var(--t3)}
.mis-cal-leg{display:flex;gap:var(--sp6);justify-content:center;margin-top:12px;font-size:var(--fs-label);color:var(--t3)}
.mis-cal-leg i{font-style:normal;font-size:var(--fs-micro);margin-right:2px}
.mis-batchlist-t{font-size:var(--fs-body);font-weight:var(--fw-bold);color:var(--t1);margin-bottom:12px}
.mis-batch{background:var(--surf);border:var(--border);border-radius:var(--r14);padding:15px 17px;margin-bottom:12px;box-shadow:var(--sh-xs)}
.mis-batch-hd{display:flex;align-items:center;justify-content:space-between;gap:var(--sp4)}
.mis-batch-nm{font-size:var(--fs-body);font-weight:var(--fw-bold);color:var(--t1);display:flex;align-items:center;gap:var(--sp3);flex-wrap:wrap}
.mis-tbadge{font-size:var(--fs-label);font-weight:var(--fw-bold);border-radius:var(--rpill);padding:2px 9px}
.mis-batch-acts{display:flex;gap:var(--sp2);flex-shrink:0}
.mis-act{display:inline-flex;align-items:center;gap:5px;background:var(--surf);border:var(--border);border-radius:var(--r9);padding:6px 10px;font-size:var(--fs-sec);font-weight:var(--fw-semi);color:var(--t2);cursor:pointer;font-family:inherit}
.mis-act:hover{border-color:var(--p)}.mis-act-del:hover{border-color:var(--danger)}
.mis-batch-meta,.mis-batch-dates{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:11px;font-size:var(--fs-sec);color:var(--t2)}
.mis-batch-meta span,.mis-batch-dates span{display:inline-flex;align-items:center;gap:var(--sp2)}
.mis-batch-dates{border-top:1px solid rgba(15,23,42,.06);padding-top:10px;color:var(--t3)}
.mis-empty{text-align:center;padding:54px 20px;background:var(--surf);border:1px dashed var(--bd);border-radius:var(--r16)}
.mis-empty-ic{margin-bottom:12px}
.mis-empty-t{font-size:16px;font-weight:var(--fw-heavy);color:var(--t1)}
.mis-empty-s{font-size:var(--fs-body);color:var(--t3);margin:6px auto 18px;max-width:380px}
@media(max-width:720px){.mis-panel{padding:22px 18px}.mis-stp-l{display:none}.mis-types{grid-template-columns:1fr}.mis-g2{grid-template-columns:1fr}.mis-callayout{grid-template-columns:1fr}.mis-calcard{position:static}.mis-rec-in input{width:120px}}
/* ── NUEVA CAMPAÑA (extra) ── */
.cmp-pkgs{display:grid;grid-template-columns:repeat(2,1fr);gap:11px}
.cmp-pkg-pers{grid-column:1/-1}
.cmp-pers-box{margin:12px 0 4px}
.cmp-pers-box label{display:block;font-size:var(--fs-sec);font-weight:var(--fw-bold);color:var(--t2);margin-bottom:7px}
.cmp-pkg{position:relative}
.cmp-pkg-ck{position:absolute;top:11px;right:11px;width:20px;height:20px;border-radius:50%;border:2px solid var(--bd);display:flex;align-items:center;justify-content:center}
.cmp-pkg.on .cmp-pkg-ck{background:var(--p);border-color:var(--p)}
.cmp-pkgsku{border:var(--border);border-radius:13px;padding:14px 16px;margin-bottom:12px}
.cmp-pkgsku-t{font-size:var(--fs-body);font-weight:var(--fw-bold);color:var(--t1);margin-bottom:4px}
.cmp-skunote-info{display:flex;align-items:flex-start;gap:7px;background:var(--bg,#f4f7fa);border:1px dashed var(--bd,#e5eaf0);border-radius:10px;padding:10px 12px;margin-top:8px;font-size:12.5px;color:var(--t2,#475569);line-height:1.45}
.cmp-comp-hint{font-size:12.5px;color:var(--t2,#475569);margin:4px 0 8px;line-height:1.45}
.cmp-chips{display:flex;flex-wrap:wrap;gap:var(--sp2);margin-top:9px}
.cmp-chip{font-size:var(--fs-ter);font-weight:var(--fw-bold);color:var(--pd);background:var(--p2);border:var(--border);border-radius:var(--rpill);padding:3px 10px}
.cmp-skufoot{display:flex;align-items:center;gap:var(--sp6);margin-top:14px}
.cmp-skusel{margin-top:12px;border:var(--border);border-radius:var(--r12);overflow:hidden;background:var(--surf)}
.cmp-skusearchw{display:flex;align-items:center;gap:8px;padding:10px 12px;border-bottom:1px solid var(--bg)}
.cmp-skusearch{flex:1;border:none;outline:none;background:none;font-family:inherit;font-size:var(--fs-sec);color:var(--t1)}
.cmp-skulist{max-height:290px;overflow-y:auto}
.cmp-skuopt{display:flex;align-items:center;gap:11px;padding:10px 13px;cursor:pointer;border-bottom:1px solid var(--bg);transition:background .12s}
.cmp-skuopt:last-child{border-bottom:none}
.cmp-skuopt:hover{background:var(--p2)}
.cmp-skuopt.on{background:var(--p2)}
.cmp-skuck{width:20px;height:20px;border-radius:6px;border:1.5px solid var(--bd2);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.cmp-skuopt.on .cmp-skuck{background:var(--p);border-color:var(--p)}
.cmp-skuinfo{min-width:0;flex:1}
.cmp-skunm{font-size:var(--fs-sec);font-weight:var(--fw-semi);color:var(--t1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cmp-skumeta{font-size:var(--fs-label);color:var(--t3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:1px}
.cmp-skupager{display:flex;align-items:center;justify-content:center;gap:14px;padding:9px;border-top:1px solid var(--bg)}
.cmp-skupg{border:var(--border);background:var(--surf);color:var(--t2);font-family:inherit;font-size:var(--fs-label);font-weight:var(--fw-semi);padding:5px 12px;border-radius:var(--rpill);cursor:pointer}
.cmp-skupg:disabled{opacity:.4;cursor:default}
.cmp-skupg:not(:disabled):hover{border-color:var(--p);color:var(--p)}
.cmp-skupgn{font-size:var(--fs-label);color:var(--t3);font-weight:var(--fw-semi)}
.cmp-skuempty{padding:22px 14px;text-align:center;color:var(--t3);font-size:var(--fs-sec)}
.cmp-skunote{display:flex;align-items:center;gap:7px;margin-top:10px;font-size:var(--fs-sec);color:var(--t2);background:var(--p2);border-radius:var(--r9);padding:10px 12px}
.cmp-chip-x{border:none;background:none;color:var(--pd);cursor:pointer;font-size:14px;margin-left:5px;padding:0;line-height:1}
.rev-pop-ov{position:fixed;inset:0;background:rgba(15,23,42,.5);z-index:99999;display:flex;align-items:center;justify-content:center;padding:20px;animation:fi .18s ease}
.rev-pop{background:var(--surf);border-radius:18px;max-width:420px;width:100%;padding:30px 30px 24px;text-align:center;box-shadow:0 20px 60px rgba(15,23,42,.3)}
.rev-pop-ic{width:60px;height:60px;border-radius:50%;background:#fef3c7;display:flex;align-items:center;justify-content:center;margin:0 auto 16px}
.rev-pop-t{font-size:var(--fs-h3);font-weight:var(--fw-heavy);color:var(--t1);margin-bottom:9px}
.rev-pop-tx{font-size:var(--fs-sec);color:var(--t2);line-height:1.55;margin-bottom:22px}
.rev-pop-btn{width:100%;background:var(--p);color:#fff;border:none;font-family:inherit;font-size:var(--fs-body);font-weight:var(--fw-bold);padding:13px;border-radius:12px;cursor:pointer;transition:var(--tr-base)}
.rev-pop-btn:hover{filter:brightness(1.05);box-shadow:0 4px 14px rgba(19,193,172,.35)}
.cmp-counter{font-size:var(--fs-body);font-weight:var(--fw-bold);color:var(--t3)}
.cmp-skuwarn{font-size:var(--fs-ter);color:var(--amber-d);font-weight:var(--fw-semi)}
@media(max-width:720px){.cmp-pkgs{grid-template-columns:1fr}}
.cmp-createbtn{width:100%;justify-content:center;margin-top:18px;padding:var(--sp6)}
.cmp-done{text-align:center;padding:28px 16px}
.cmp-done-ic{width:64px;height:64px;border-radius:50%;background:var(--p2);display:flex;align-items:center;justify-content:center;margin:0 auto 16px}
.cmp-done-t{font-size:21px;font-weight:var(--fw-heavy);color:var(--t1)}
.cmp-done-s{font-size:var(--fs-body);color:var(--t3);margin:8px auto 22px;max-width:430px;line-height:1.5}
.cmp-done-acts{display:flex;gap:var(--sp5);justify-content:center;flex-wrap:wrap}
.mis-loadhint{font-size:var(--fs-sec);color:var(--t3);margin-top:12px}
.mis-loadhint button{background:none;border:none;color:var(--pd);font-weight:var(--fw-bold);cursor:pointer;font-family:inherit;font-size:var(--fs-sec);padding:0}
.mis-credit{border-top:var(--border);margin-top:12px;padding-top:12px}
.mis-credit-row{display:flex;justify-content:space-between;font-size:var(--fs-body);color:var(--t2);padding:4px 0}
.mis-credit-row b{color:var(--t1)}
.mis-credit-warn{display:flex;align-items:center;gap:7px;flex-wrap:wrap;font-size:var(--fs-ter);color:#b45309;background:rgba(217,119,6,.08);border-radius:var(--r9);padding:9px 11px;margin-top:9px}
.mis-credit-warn b{color:#b45309}
.mis-credit-cta{background:var(--p);color:var(--surf);border:none;border-radius:var(--r8);padding:5px 11px;font-size:var(--fs-label);font-weight:var(--fw-bold);cursor:pointer;font-family:inherit;margin-left:auto}
.mis-credit-ok{display:flex;align-items:center;gap:7px;font-size:var(--fs-ter);color:var(--pd);margin-top:9px}
.mis-recseg{margin-bottom:14px}
.mis-seg3{display:flex;gap:var(--sp3);margin:8px 0 12px}
.mis-seg3-b{flex:1;padding:9px;border:var(--border);background:var(--surf);border-radius:var(--r10);font-size:var(--fs-body);font-weight:var(--fw-semi);color:var(--t2);cursor:pointer;font-family:inherit}
.mis-seg3-b.on{border-color:var(--p);background:var(--p2);color:var(--pd)}
.mis-segwrap{margin-top:4px}
.mis-segrows{display:flex;flex-direction:column;gap:var(--sp3);margin-top:6px}
.mis-segrow{display:flex;align-items:center;justify-content:space-between;gap:var(--sp5);padding:10px 12px;border:var(--border);border-radius:var(--r11);background:var(--bg)}
.mis-segrow-nm{font-weight:var(--fw-semi);font-size:var(--fs-body);color:var(--t1);display:block}
.mis-segrow-c{font-size:var(--fs-ter);color:var(--t3)}
.mis-rec-in.sm{padding:6px 10px;font-size:var(--fs-body);min-width:118px}
.mis-rec-in.sm input{width:72px;font-size:var(--fs-body)}
.mis-introhd{margin-bottom:16px}
.mis-introgrid{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp6)}
@media(max-width:640px){.mis-introgrid{grid-template-columns:1fr}}
.mis-introcard{display:flex;flex-direction:column;align-items:flex-start;gap:5px;text-align:left;padding:22px;border:1.5px solid var(--bd);border-radius:var(--r16);background:var(--surf);cursor:pointer;font-family:inherit;transition:background-color var(--tr-base),border-color var(--tr-base),color var(--tr-base),transform var(--mo-1)}
.mis-introcard:hover{border-color:var(--p);box-shadow:0 6px 20px rgba(19,193,172,.12)}
.mis-introcard.on{border-color:var(--p);background:var(--p2)}
.mis-introcard-ic{width:48px;height:48px;border-radius:var(--r12);background:var(--p2);display:flex;align-items:center;justify-content:center;margin-bottom:6px}
.mis-introcard-t{font-size:16px;font-weight:var(--fw-heavy);color:var(--t1)}
.mis-introcard-s{font-size:var(--fs-body);color:var(--t3);line-height:var(--lh-body)}
.mis-relist{display:flex;flex-direction:column;gap:var(--sp3);margin-top:16px}
.mis-rerow{display:flex;align-items:center;justify-content:space-between;gap:var(--sp5);padding:12px 14px;border:var(--border);border-radius:var(--r12);background:var(--bg)}
.mis-rewedit{display:inline-flex;align-items:center;gap:var(--sp1)}
.mis-rewedit input{width:74px;border:var(--border);border-radius:7px;padding:3px 7px;font-size:var(--fs-sec);font-family:inherit;color:var(--t1);background:var(--surf)}
.mis-rewedit input:focus{outline:none;border-color:var(--p)}
.cv-load{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:15px;padding:46px 24px;margin:8px 0 16px;background:var(--surf);border:var(--border);border-radius:16px;box-shadow:0 1px 4px rgba(15,23,42,.06);text-align:center}
.cv-load-t{font-size:var(--fs-h3);font-weight:var(--fw-bold);color:var(--t1)}
.cv-load-s{font-size:var(--fs-sec);color:var(--t3);margin-top:3px}
.cv-spin{width:34px;height:34px;border:3.5px solid var(--bg);border-top-color:var(--teal-d);border-radius:50%;display:inline-block;animation:cvspin .8s linear infinite}
@keyframes cvspin{to{transform:rotate(360deg)}}
.cv-err{display:flex;align-items:center;justify-content:space-between;gap:var(--sp5);padding:11px 14px;margin:0 0 14px;background:var(--danger-bg);border:1px solid #fecaca;border-radius:var(--r11);color:#b91c1c;font-size:var(--fs-body);font-weight:var(--fw-semi)}
.cv-retry{flex:none;border:0;background:#dc2626;color:var(--surf);font-weight:var(--fw-bold);font-size:var(--fs-body);padding:7px 13px;border-radius:var(--r8);cursor:pointer}
.cv-retry:hover{background:#b91c1c}
.cv-wrap{max-width:1280px}
.cv-back{display:inline-flex;align-items:center;gap:var(--sp2);background:none;border:none;color:var(--t3);font-weight:var(--fw-semi);font-size:var(--fs-body);cursor:pointer;font-family:inherit;padding:0;margin-bottom:14px}
.cv-back:hover{color:var(--pd)} .cv-back svg{transform:rotate(180deg)}
.cv-head{display:flex;align-items:center;gap:var(--sp9);flex-wrap:wrap;margin-bottom:20px}
.cv-head-l{display:flex;align-items:center;gap:var(--sp7);flex:1;min-width:240px}
.cv-logo{width:60px;height:60px;border-radius:15px;object-fit:cover;object-position:center;background:var(--surf);border:var(--border);flex-shrink:0;box-shadow:0 2px 8px rgba(15,23,42,.07);box-sizing:border-box;overflow:hidden;display:block}
.cv-logo-ph{display:flex;align-items:center;justify-content:center;font-weight:var(--fw-heavy);color:var(--pd);font-size:20px;background:var(--p2)}

/* progreso (item 1) */

/* selector de período (progreso) */
.cv-perbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:14px}
.cv-perbar-l{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.4px;color:var(--t3,#94a3b8)}
.cv-perchips{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.cv-per-sep{width:1px;height:20px;background:var(--bd,#e5eaf0);margin:0 4px;flex-shrink:0}
.cv-perchip{border:1px solid var(--bd,#e5eaf0);background:var(--surf,#fff);color:var(--t2,#475569);border-radius:20px;padding:5px 12px;font-size:12px;font-weight:700;cursor:pointer;font-family:inherit;transition:border-color var(--tr-14),background var(--tr-14),color var(--tr-14),transform var(--tr-16) var(--ease-out)}
.cv-perchip:hover{border-color:var(--p);color:var(--pd)}
.cv-perchip.on{background:var(--p);border-color:var(--p);color:#fff;box-shadow:0 1px 4px rgba(19,193,172,.3)}
/* crédito — jerarquía */
.cv-crh{display:flex;align-items:center;gap:15px;background:linear-gradient(120deg,var(--pl,#e6faf6),var(--surf,#fff));border:1px solid var(--p2,#ccf5ef);border-radius:14px;padding:18px 20px;margin-bottom:0}
.cv-crh-ic{width:46px;height:46px;border-radius:13px;background:var(--surf,#fff);display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 2px 8px rgba(19,193,172,.16)}
.cv-crh-tx{min-width:0}
.cv-crh-l{font-size:11.5px;font-weight:800;text-transform:uppercase;letter-spacing:.4px;color:var(--pd,#0f766e)}
.cv-crh-n{font-size:33px;font-weight:900;color:var(--t1,#0f172a);letter-spacing:-.7px;line-height:1.05;margin:3px 0}
.cv-crh-s{font-size:12px;color:var(--t2,#475569)}
.cv-crh-s b{color:var(--t1,#0f172a);font-weight:800}
.cv-cr2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.cv-crbox{border-radius:12px;padding:15px 16px;border:1px solid var(--bd,#e5eaf0)}
.cv-crbox-hoy{background:#f0f9ff;border-color:#bae6fd}
.cv-crbox-tot{background:var(--bg,#f8fafc)}
.cv-crbox-top{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.35px;color:var(--t3,#94a3b8)}
.cv-crbox-hoy .cv-crbox-top{color:#0369a1}
.cv-crbox-dot{width:7px;height:7px;border-radius:50%;background:#0ea5e9;box-shadow:0 0 0 3px rgba(14,165,233,.18)}
.cv-crbox-n{font-size:21px;font-weight:900;letter-spacing:-.4px;line-height:1.1;margin:5px 0 2px;color:var(--t1,#0f172a)}
.cv-crbox-hoy .cv-crbox-n{color:#0369a1}
.cv-crbox-tot .cv-crbox-n{color:var(--t2,#475569)}
.cv-cr-sep{display:flex;align-items:center;gap:12px;margin:16px 2px 13px;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.6px;color:var(--t3,#94a3b8)}
.cv-cr-sep::before,.cv-cr-sep::after{content:"";height:1px;background:var(--bd,#e5eaf0);flex:1}
.cv-ring-solo .cv-ring-in{font-size:24px;letter-spacing:-.5px}
.cv-prog2-r-solo{display:flex;flex-direction:column;justify-content:center}
.cv-prog2-solo{font-size:19px;font-weight:800;color:var(--t1,#0f172a);line-height:1.25;letter-spacing:-.2px}
.cv-prog2-soper{font-size:13px;color:var(--t3,#94a3b8);font-weight:600;margin-top:5px}
.cv-crbox-s{font-size:11px;color:var(--t3,#94a3b8)}
@media(max-width:520px){.cv-cr2{grid-template-columns:1fr}}
.cv-pbar{height:7px;border-radius:20px;background:var(--bd,#e5eaf0);overflow:hidden;margin:10px 0 9px}
.cv-pbar>i{display:block;height:100%;border-radius:20px;background:linear-gradient(90deg,#13c1ac,#38bdf8);transition:width .35s ease}
/* productos de la campana (item 5) */
.cv-sku-tools{display:flex;align-items:center;gap:8px;border:1.5px solid var(--bd,#e5eaf0);border-radius:10px;padding:8px 12px;margin-bottom:10px;background:var(--surf,#fff)}
.cv-sku-tools:focus-within{border-color:var(--pd,#0f766e)}
.cv-sku-ic{display:inline-flex;flex-shrink:0}
.cv-sku-q{flex:1;border:none;outline:none;font-size:13px;font-family:inherit;color:var(--t1,#0f172a);background:none}
.cv-sku-note{font-size:11.5px;color:var(--t3,#94a3b8);margin-bottom:10px;line-height:1.45}
.cv-sku-nm{font-weight:800;color:var(--t1,#0f172a)}
.cv-sku-cod{font-size:11px;color:var(--t3,#94a3b8);margin-top:2px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
.cv-sku-var{font-size:11px;color:var(--t2,#475569);margin-top:2px}
.cv-sku-tag{display:inline-block;margin-left:7px;font-size:9.5px;font-weight:800;text-transform:uppercase;letter-spacing:.3px;border-radius:20px;padding:2px 7px;vertical-align:middle}
.cv-sku-pend{background:#fff7ed;color:#c2410c;border:1px solid #fed7aa}
.cv-sku-extra{background:#eff6ff;color:#1d4ed8;border:1px solid #bfdbfe}
.cv-tbl .cv-num,.cv-num{text-align:right;white-space:nowrap}
.cv-name{font-size:24px;font-weight:var(--fw-heavy);color:var(--t1);display:flex;align-items:center;gap:var(--sp4);flex-wrap:wrap}
.cv-sub{display:flex;align-items:center;gap:var(--sp2);font-size:var(--fs-body);color:var(--t3);margin-top:4px} .cv-sub svg{width:14px;height:14px}
.cv-tab.cv-tab-pro{background:#f1eaff;border:none;border-radius:var(--r9);color:#6d28d9;font-weight:var(--fw-bold);padding:8px 15px;margin:0 2px 0 8px;align-self:center;transition:background var(--tr-16) ease}
.cv-tab.cv-tab-pro:hover{background:#e6d8ff;color:#6d28d9}
.cv-tab.cv-tab-pro.on{background:#e6d8ff;color:#6d28d9}
/* El v2 vive al lado del PRO a proposito: se abren desde el mismo lugar y se
   comparan. Verde Znapp para que se lea como "lo nuevo de la casa". */
.cv-head-acts{margin-left:auto;display:flex;gap:9px;flex-wrap:wrap;align-items:center}
.cv-cfgbtn{background:var(--surf)!important;border:var(--border)!important;color:var(--t2)!important;font-weight:var(--fw-semi);box-shadow:none!important}
.cv-cfgbtn:hover{border-color:var(--p)!important;color:var(--pd)!important}
.cv-cfgbtn-on{background:var(--pl)!important;border-color:var(--p)!important;color:var(--pd)!important}
.cv-tnm{font-size:var(--fs-body);font-weight:var(--fw-bold);color:var(--t1)}
.cv-tsub{font-size:var(--fs-ter);color:var(--t3);margin-top:2px;max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cv-sect:first-child{margin-top:4px}
/* SE LEIA COMO PIE DE PAGINA, Y NO ES UN PROBLEMA DE TAMANO. El fondo era un
   gradiente palido casi invisible sobre el fondo de la plataforma, asi que el
   bloque no tenia borde perceptible; y los tres datos de la derecha pesaban
   mas que la frase, que es el contenido. Ahora: superficie blanca de verdad y
   una barra teal a la izquierda que dice «esto es una pieza», sin agrandarla.
   El teal es acento, nunca superficie. */
.cv-genhero{background:var(--surf);border:var(--border);border-left:3px solid var(--pd);
  border-radius:16px;padding:20px 22px;margin-bottom:10px}
.cv-genhero-l{display:flex;align-items:center;gap:7px;font-size:var(--fs-ter);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:.5px;color:var(--pd);margin-bottom:9px}
.cv-genhero-v{font-size:var(--fs-h2);font-weight:var(--fw-bold);color:var(--t1);line-height:1.35}
.cv-genhero-meta{display:flex;flex-wrap:wrap;gap:14px 30px;flex:0 0 auto;align-content:flex-start}
.cv-genhero-preg{margin-top:16px;padding-top:15px;border-top:1px solid #cdeee9}
.cv-gh-preg-l{display:flex;align-items:center;gap:6px;font-size:var(--fs-label);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:.4px;color:var(--pd);margin-bottom:11px}
/* EL PROGRESO ES EL PROTAGONISTA Y EL CREDITO NO. Estaban 50/50, y con eso
   la pantalla mostraba dos cosas de igual peso cuando la pregunta al entrar
   es «como viene mi campana». Y el credito ademas ES DEL CLIENTE, no de la
   campana: competir de igual a igual es una promesa falsa.
   Va en el modificador y no en `.cv-grid2`, que vive en `informe.css` y lo
   comparten otras pantallas. Abajo de 900px `.cv-grid2` ya colapsa a una
   columna, asi que esto no necesita su propia media query. */
.cv-grid2-tight{margin-bottom:14px;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr)}
/* LA TARJETA DE PROGRESO TENIA UN AGUJERO ABAJO. Las dos son celdas de la
   misma grilla, asi que la izquierda se estira hasta el alto de la de credito
   —que va llena de arriba abajo— y el anillo se quedaba pegado al techo con
   100 px de nada debajo: un acantilado visual justo al lado del bloque mas
   denso de la pantalla. No se recorta la altura (dos tarjetas de altos
   distintos al lado se ven sin terminar): se USA, centrando el contenido. */
.cv-grid2-tight>.cv-card{display:flex;flex-direction:column}
.cv-grid2-tight>.cv-card>#cv-prog-host{flex:1;display:flex;flex-direction:column;justify-content:center}

.cv-genhero-preg .cv-preg-list{display:flex;flex-direction:column;gap:8px}
.cv-genhero-preg .cv-preg-i{display:flex;align-items:flex-start;gap:8px;font-size:var(--fs-sec);color:var(--t2);line-height:1.4;background:rgba(255,255,255,.5);border-radius:9px;padding:9px 12px}
.cv-gh-meta-i{display:flex;flex-direction:column;gap:4px}
.cv-gh-meta-l{font-size:var(--fs-label);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:.4px;color:var(--t3)}
/* metadato, no contenido: competian con la frase del objetivo */
.cv-gh-meta-v{font-size:var(--fs-sec);font-weight:var(--fw-semi);color:var(--t2)}
/* EL OBJETIVO MANDA Y LA FICHA ACOMPAÑA. Dos columnas en la misma fila: el
   objetivo crece (`1 1 380px`) y los tres datos duros ocupan lo que necesitan.
   Abajo de ~700px el `flex-wrap` los baja solo, sin media query. */
.cv-gh-top{display:flex;align-items:flex-start;gap:26px;flex-wrap:wrap}
.cv-gh-obj{flex:1 1 380px;min-width:0}
/* LAS PREGUNTAS SE PLIEGAN. Eran nueve items desplegados con textos largos y
   emojis: el grueso del alto de la pantalla para algo que se consulta una vez.
   `<details>` da el teclado y el foco gratis; lo unico que hay que hacer a mano
   es sacar el triangulito nativo y poner una flecha que gire. */
.cv-genhero-preg > summary{cursor:pointer;list-style:none;margin-bottom:0}
.cv-genhero-preg[open] > summary{margin-bottom:11px}
.cv-genhero-preg > summary::-webkit-details-marker{display:none}
.cv-genhero-preg > summary::after{content:'';width:7px;height:7px;flex:0 0 auto;
  border-right:2px solid var(--pd);border-bottom:2px solid var(--pd);
  transform:rotate(45deg) translate(-2px,-2px);transition:transform var(--tr-16) ease}
.cv-genhero-preg[open] > summary::after{transform:rotate(-135deg)}
/* el conteo va a la derecha del todo: cerrado, es lo unico que hay que leer */
.cv-gh-preg-n{margin-left:auto;font-size:var(--fs-label);font-weight:var(--fw-semi);
  text-transform:none;letter-spacing:0;color:var(--t3)}
@media (prefers-reduced-motion:reduce){ .cv-genhero-preg > summary::after{transition:none} }
.cv-prog2-big{font-size:26px;font-weight:var(--fw-heavy);color:var(--t1);line-height:1}
.cv-prog2-big span{font-size:16px;font-weight:var(--fw-semi);color:var(--t3)}
.cv-prog2-lbl{font-size:var(--fs-body);color:var(--t3);margin:3px 0 12px}
/* paginador de tablas de campaña (item 8) */
.cv-pager2{display:flex;align-items:center;justify-content:space-between;gap:var(--sp4);flex-wrap:wrap;margin-top:13px;padding-top:12px;border-top:var(--border)}
.cv-pg-info{font-size:var(--fs-sec);color:var(--t3);font-weight:var(--fw-semi)}
.cv-pg-btns{display:flex;align-items:center;gap:4px}
.cv-pgb{min-width:30px;height:30px;padding:0 8px;border:var(--border);background:var(--surf);color:var(--t2);border-radius:var(--r8);font-size:var(--fs-sec);font-weight:var(--fw-semi);cursor:pointer;font-family:inherit;transition:background var(--tr-14),border-color var(--tr-14),color var(--tr-14)}
.cv-pgb:hover:not(:disabled):not(.on){background:var(--bg);border-color:var(--bd2)}
.cv-pgb.on{background:var(--p);border-color:var(--p);color:#fff}
.cv-pgb:disabled{opacity:.4;cursor:default}
.cv-pgb-nav{font-size:16px;font-weight:var(--fw-bold);color:var(--t3)}
.cv-pgell{padding:0 2px;color:var(--t3);font-size:var(--fs-sec)}
/* card-tabla con título embellecido (item 10) */
.cv-tcard-h{display:flex;align-items:center;gap:12px;margin-bottom:18px;padding-bottom:15px;border-bottom:var(--border)}
.cv-tcard-ic{width:34px;height:34px;border-radius:var(--r10);background:var(--pl);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.cv-tcard-tx{flex:1;min-width:0}
.cv-tcard-t{font-size:var(--fs-h3);font-weight:var(--fw-heavy);color:var(--t1);letter-spacing:-.2px;line-height:1.15}
.cv-tcard-s{font-size:var(--fs-sec);color:var(--t3);margin-top:2px}
.cv-tcard-pill{flex-shrink:0;font-size:var(--fs-label);font-weight:var(--fw-bold);color:var(--pd);background:var(--pl);border:1px solid var(--p);border-radius:var(--rpill);padding:4px 11px;white-space:nowrap}
/* item 3 — Progreso de misiones centrado y aprovechando el espacio */
/* AL SER MAS ANCHO, CENTRADO SE VE VACIO. La tarjeta gano ancho para que el
   progreso sea el protagonista; con el contenido centrado y la barra de 145px
   lo que gano fue aire muerto a la derecha. Ahora arranca a la izquierda y la
   columna de texto se estira: la barra ocupa el ancho, que ademas la hace mas
   legible. Mas ancho sin llenarlo no es mas protagonismo, es un hueco. */
.cv-prog2{display:flex;align-items:center;justify-content:flex-start;gap:30px;min-height:188px;padding:4px 0;flex-wrap:wrap}
.cv-prog2-r{min-width:0;flex:1 1 auto}
/* item 5 — títulos de tablas/gráficos/métricas con acento */
.cv-tcard-t{position:relative;padding-bottom:0}
/* item 1 — alerta inline + vista de grupos + toggle + acceso productos */
.com-grp-alert{display:flex;align-items:center;gap:8px;margin:2px 22px 0;padding:9px 12px;background:#fef2f2;border:1px solid #fecaca;border-radius:var(--r10);color:#b91c1c;font-size:var(--fs-sec);font-weight:var(--fw-semi)}
.com-grp-name-err{border-color:#fca5a5 !important;box-shadow:0 0 0 3px rgba(220,38,38,.12) !important}
.com-card-hd-row{display:flex;align-items:center;justify-content:space-between;gap:var(--sp4);flex-wrap:wrap}
.com-viewtg{display:inline-flex;background:var(--bg);border:var(--border);border-radius:var(--r10);padding:3px}
.com-viewtg-b{display:inline-flex;align-items:center;gap:6px;border:none;background:none;color:var(--t2);font-family:inherit;font-size:var(--fs-sec);font-weight:var(--fw-bold);padding:6px 13px;border-radius:var(--r8);cursor:pointer;transition:background-color var(--tr-base),border-color var(--tr-base),color var(--tr-base),transform var(--mo-1)}
.com-viewtg-b.on{background:var(--surf);color:var(--pd);box-shadow:var(--sh-xs)}
.com-viewtg-n{background:var(--pl);color:var(--pd);border-radius:var(--rpill);font-size:var(--fs-micro);font-weight:var(--fw-heavy);padding:0 6px;min-width:16px;text-align:center}
.com-act-del{color:#dc2626}
.com-act-del:hover{background:#fef2f2;border-color:#fecaca}
.com-grpv-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:var(--sp6)}
.com-grpv-card{border:var(--border);border-radius:var(--r14);padding:16px;background:var(--surf);box-shadow:var(--sh-xs);display:flex;flex-direction:column;gap:11px;transition:box-shadow var(--tr-base)}
.com-grpv-card:hover{box-shadow:0 6px 18px rgba(15,23,42,.07)}
.com-grpv-top{display:flex;align-items:center;gap:11px}
.com-grpv-ic{width:38px;height:38px;border-radius:var(--r10);background:var(--pl);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.com-grpv-nm{font-size:var(--fs-h3);font-weight:var(--fw-heavy);color:var(--t1)}
.com-grpv-n{font-size:var(--fs-label);font-weight:var(--fw-semi);color:var(--t3)}
.com-grpv-prev{font-size:var(--fs-sec);color:var(--t2);line-height:1.45;flex:1;min-height:34px}
.com-grpv-acts{display:flex;gap:8px;border-top:var(--border);padding-top:11px}
.com-grpv-acts .com-act{flex:1;justify-content:center;display:inline-flex;align-items:center;gap:5px}
.com-grpv-empty{display:flex;flex-direction:column;align-items:center;gap:10px;padding:46px 20px;text-align:center}
.com-grpv-empty-t{font-size:var(--fs-h3);font-weight:var(--fw-heavy);color:var(--t1)}
.com-grpv-empty-s{font-size:var(--fs-body);color:var(--t3);max-width:340px;line-height:1.5}
.com-grpv-empty .plat-btn{margin-top:6px}
.pro-chip-mng{border-style:dashed !important;color:var(--pd) !important}
/* item 5 — títulos con acento lateral (una sola declaración: estaba en tres) */
.cv-card-t{position:relative;display:inline-block;padding:0 0 0 13px;font-size:var(--fs-sec);font-weight:var(--fw-bold);letter-spacing:.4px;text-transform:uppercase;color:var(--t3)}
.cv-card-t::before{content:'';position:absolute;left:0;top:50%;transform:translateY(-50%);width:4px;height:15px;border-radius:3px;background:linear-gradient(180deg,#2dd4bf,#0d9488)}
/* item 3 — barra de filtros con jerarquía (comercios + portafolio) */
.com-card-hd-row{margin-bottom:16px;padding-bottom:14px;border-bottom:var(--border)}
.com-card-hd-row>span{font-size:16px;font-weight:var(--fw-heavy);color:var(--t1)}
.com-toolbar{gap:10px;padding:12px 14px;background:var(--bg);border:var(--border);border-radius:var(--r12);margin-bottom:14px;align-items:center}
.com-search-wrap{flex:1 1 240px;min-width:200px;background:var(--surf)}
.com-pills{gap:5px}
@media(max-width:760px){.com-toolbar,.cc-toolbar{flex-direction:column;align-items:stretch}}
/* ════════ RECOMPENSA (item 8) ════════ */
.rcp-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp6);margin-bottom:16px}
.rcp-kpi{background:var(--surf);border:var(--border);border-radius:var(--r16);padding:16px 17px}
.rcp-kpi-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:11px}
.rcp-kpi-l{font-size:var(--fs-sec);font-weight:var(--fw-bold);color:var(--t2)}
.rcp-kpi-ic{width:30px;height:30px;border-radius:var(--r9);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.rcp-kpi-v{font-size:26px;font-weight:var(--fw-heavy);letter-spacing:-1px;color:var(--t1);line-height:1}
.rcp-kpi-s{font-size:var(--fs-label);color:var(--t3);margin-top:5px;font-weight:var(--fw-semi)}
.rcp-selcard{display:flex;flex-wrap:wrap;gap:14px;align-items:center;justify-content:space-between;background:linear-gradient(180deg,var(--pl),var(--surf));border:1.5px solid var(--p);border-radius:var(--r16);padding:16px 18px;margin-bottom:18px}
.rcp-selcard-l{display:flex;gap:11px;align-items:flex-start}
.rcp-selcard-t{font-size:var(--fs-h3);font-weight:var(--fw-bold);color:var(--t1)}
.rcp-selcard-s{font-size:var(--fs-sec);color:var(--t2);margin-top:2px;max-width:520px}
.rcp-select{min-width:240px;max-width:100%;padding:10px 13px;border:var(--border);border-radius:10px;background:var(--surf);color:var(--t1);font-family:inherit;font-size:var(--fs-body);font-weight:var(--fw-bold);cursor:pointer}
@keyframes rcpFade{from{opacity:0}to{opacity:1}}
@keyframes rcpPop{from{opacity:0;transform:scale(.95) translateY(10px)}to{opacity:1;transform:none}}
@media(max-width:980px){.rcp-kpis{grid-template-columns:repeat(2,1fr)}}
/* ════════ Revisión integral responsive — hardening ════════ */
canvas{max-width:100%}.cv-tbl-wrap,
.tbl-scroll{-webkit-overflow-scrolling:touch}
@media(max-width:720px){
 .rcp-kpi-v{font-size:22px}
}
@media(max-width:520px){
 .rcp-kpis{grid-template-columns:1fr 1fr;gap:10px}
 .rcp-kpi{padding:13px}
 .rcp-kpi-v{font-size:20px;overflow-wrap:anywhere}
 .com-card-hd-row{flex-direction:column;align-items:flex-start;gap:10px}
 .com-viewtg{width:100%}.com-viewtg-b{flex:1;justify-content:center}
 .com-grpv-grid{grid-template-columns:1fr}
}
@media(max-width:400px){
 .home-kpi-v{font-size:26px}
 .rcp-kpis{grid-template-columns:1fr}
}
/* Informe PRO — animación premium v2 (zoom-in fullscreen) */
.cv-tab.cv-tab-pro{position:relative;overflow:hidden}
.cv-tab.cv-tab-pro.igniting{background:linear-gradient(120deg,#7c3aed,#a855f7);color:#fff;box-shadow:0 0 0 3px rgba(124,58,237,.28),0 8px 26px rgba(124,58,237,.5);transform:translateY(-1px) scale(1.05);animation:proPulse .85s ease}
.cv-tab.cv-tab-pro.igniting .cv-pro{background:#fff;color:#7c3aed;transform:scale(1.12)}
.cv-tab.cv-tab-pro.igniting svg{stroke:#fff !important}
.cv-tab.cv-tab-pro.igniting::after{content:'';position:absolute;inset:0;background:linear-gradient(110deg,transparent 20%,rgba(255,255,255,.6) 50%,transparent 80%);transform:translateX(-120%);animation:proShine .85s ease forwards;pointer-events:none}
@keyframes proPulse{0%{transform:translateY(0) scale(1)}45%{transform:translateY(-1px) scale(1.08)}100%{transform:translateY(-1px) scale(1.05)}}
@keyframes proShine{to{transform:translateX(120%)}}
.pro-burst{position:fixed;inset:0;z-index:var(--z-top,10001);display:flex;align-items:center;justify-content:center;overflow:hidden;background:radial-gradient(130% 105% at 50% 40%,rgba(91,33,182,.40),rgba(14,11,24,.80) 68%);opacity:0;transition:opacity .55s var(--ez-std);backdrop-filter:blur(14px) saturate(1.15);-webkit-backdrop-filter:blur(14px) saturate(1.15)}
.pro-burst.on{opacity:1}
.pro-burst-bg{position:absolute;left:-10%;right:-10%;bottom:-8%;top:34%;background-image:linear-gradient(rgba(167,139,250,.13) 1px,transparent 1px),linear-gradient(90deg,rgba(167,139,250,.13) 1px,transparent 1px);background-size:56px 56px;-webkit-mask-image:radial-gradient(ellipse 58% 62% at 50% 26%,#000,transparent 74%);mask-image:radial-gradient(ellipse 58% 62% at 50% 26%,#000,transparent 74%);transform:perspective(760px) rotateX(64deg) scale(1.7);opacity:0;transition:opacity .8s ease}
.pro-burst.on .pro-burst-bg{opacity:.8;animation:proGrid 3.4s linear infinite}
@keyframes proGrid{to{background-position:0 56px}}
.pro-burst-core{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center}
.pro-burst-core::before{content:'';position:absolute;left:50%;top:32%;width:440px;height:440px;transform:translate(-50%,-50%);background:radial-gradient(circle,rgba(139,92,246,.42),transparent 62%);filter:blur(16px);z-index:-1;opacity:0;transition:opacity .6s ease}
.pro-burst.on .pro-burst-core::before{opacity:1;animation:proGlow 2.4s ease-in-out .3s infinite}
@keyframes proGlow{0%,100%{opacity:.42;transform:translate(-50%,-50%) scale(1)}50%{opacity:.78;transform:translate(-50%,-50%) scale(1.09)}}
.pro-z{position:relative;width:110px;height:72px;opacity:0;transform:scale(.62) translateY(10px);-webkit-mask:var(--zsrc) center/contain no-repeat;mask:var(--zsrc) center/contain no-repeat;filter:drop-shadow(0 10px 34px rgba(124,58,237,.5))}
.pro-z::before{content:'';position:absolute;inset:0;background:linear-gradient(135deg,#ede9fe,#a78bfa 48%,#7c3aed)}
.pro-z-sheen{position:absolute;inset:0;background:linear-gradient(104deg,transparent 42%,rgba(255,255,255,.92) 50%,transparent 58%);transform:translateX(-135%)}
.pro-burst.on .pro-z{animation:proZIn .95s var(--ez-out) .08s forwards}
.pro-burst.on .pro-z-sheen{animation:proSheen 1.15s cubic-bezier(.5,0,.2,1) .62s forwards}
@keyframes proZIn{0%{opacity:0;transform:scale(.62) translateY(10px)}55%{opacity:1}100%{opacity:1;transform:scale(1) translateY(0)}}
@keyframes proSheen{0%{transform:translateX(-135%)}100%{transform:translateX(135%)}}
.pro-burst-wm{margin-top:28px;font-size:clamp(28px,4.6vw,44px);font-weight:600;color:#f6f4ff;letter-spacing:.4px;line-height:1;display:flex;gap:.3em;align-items:baseline;opacity:0;transform:translateY(12px)}
.pro-burst.on .pro-burst-wm{animation:proUp .75s var(--ez-out) .4s forwards}
.pro-burst-wm span{font-weight:800;letter-spacing:1.5px;background:linear-gradient(120deg,#e9d5ff,#a78bfa 52%,#8b5cf6);-webkit-background-clip:text;background-clip:text;color:transparent}
.pro-burst-sub{margin-top:15px;font-size:11.5px;letter-spacing:3.4px;text-transform:uppercase;color:#c4b5fd;font-weight:600;opacity:0;transform:translateY(8px)}
.pro-burst.on .pro-burst-sub{animation:proUp .7s ease .58s forwards}
@keyframes proUp{to{opacity:1;transform:none}}
.pro-burst-load{margin-top:30px;width:190px;height:2px;border-radius:2px;background:rgba(196,181,253,.16);overflow:hidden;opacity:0}
.pro-burst.on .pro-burst-load{animation:proUp .5s ease .72s forwards}
.pro-burst-load i{display:block;height:100%;width:38%;border-radius:2px;background:linear-gradient(90deg,transparent,#a78bfa,#7c3aed,transparent);transform:translateX(-130%)}
.pro-burst.on .pro-burst-load i{animation:proLoad 1.5s var(--ez-std) .78s infinite}
@keyframes proLoad{0%{transform:translateX(-130%)}100%{transform:translateX(360%)}}}
.cv-tbl-soft tbody tr{transition:background .12s}
.cv-tbl-soft tbody tr:hover{background:#f8fafc}
.cv-tbl-soft thead th{font-size:var(--fs-label);letter-spacing:.3px;color:var(--t3)}
@media(max-width:760px){.cv-tiles{grid-template-columns:1fr}.cv-prog2{flex-direction:column;align-items:flex-start}}
.cv-pro{font-size:var(--fs-micro);font-weight:var(--fw-bold);letter-spacing:.5px;background:var(--violet);color:var(--surf);padding:2px 5px;border-radius:5px;margin-left:6px}
.cv-tabs{display:flex;align-items:center;flex-wrap:wrap;gap:var(--sp2);border-bottom:var(--border);margin-bottom:26px}
@keyframes pdvDrillIn{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:none}}
.pdv-det-map{height:200px;border-radius:var(--r14);overflow:hidden;background:var(--bg);z-index:0}
.pdv-bdg{display:inline-block;border-radius:var(--rpill);padding:3px 11px;font-size:var(--fs-label);font-weight:var(--fw-bold)}
.pdv-bdg-none{background:var(--bg);color:var(--t3)}
.pdv-bdg-once{background:#fef2f2;color:var(--danger)}
.pdv-bdg-rec{background:var(--p2);color:var(--pd)}
.pdv-bdg-hi{background:#eef7ff;color:#1d6fd0}
.cv-tab{display:inline-flex;align-items:center;gap:7px;background:none;border:none;border-bottom:2px solid transparent;padding:13px 18px;font-size:var(--fs-body);font-weight:var(--fw-semi);color:var(--t3);cursor:pointer;font-family:inherit;white-space:nowrap;margin-bottom:-1px}
.cv-tab:hover{color:var(--t1)} .cv-tab.on{color:var(--pd);border-bottom-color:var(--p)}
.cv-kpis{margin:0} .cv-kpi-sub{font-size:var(--fs-label);color:var(--t3);margin-top:2px}
/* ESTA MEDIA QUERY NUNCA SE PINTO, Y POR ESO A 390 LA GENERAL SE DESBORDABA.
   `.cv-grid2` base vive en `informe.css`, que en `ORDEN` carga DESPUES de
   `plataforma.css`: misma especificidad (0,1,0), gana el que carga ultimo, y
   el que carga ultimo es el de dos columnas. O sea que a 390 «Progreso» y
   «Consumo de credito» seguian lado a lado en 150 px cada una y el importe
   salia cortado a la mitad. Es la trampa que `css_dup` describe —«gana el que
   carga despues, no el archivo que tenes abierto»— y aca no la caza porque
   son declaraciones complementarias, no en conflicto dentro de un archivo.
   Se sube la especificidad SOLO para la General, que es la pantalla que se
   miro. Las otras `.cv-grid2` siguen sin colapsar: esta reportado. */
@media(max-width:900px){.cv-grid2{grid-template-columns:1fr}.cv-grid2.cv-grid2-tight{grid-template-columns:minmax(0,1fr)}}
/* FOCO VISIBLE PARA LOS CONTROLES DEL DETALLE. Este archivo no tenia una
   sola regla `:focus-visible`, asi que recorrer las pestañas y los filtros
   con el teclado dependia del anillo por defecto, que sobre el chip teal
   activo practicamente no se ve. `--pd` sobre blanco da 3,4:1 (WCAG 1.4.11). */
.cv-tab:focus-visible,.cv-perchip:focus-visible,.cv-detbtn:focus-visible,
.cv-genhero-preg>summary:focus-visible{outline:2px solid var(--pd);outline-offset:2px;border-radius:var(--r8)}
/* el chip de periodo se hunde al apretarlo: es un filtro que re-renderiza
   entero, y sin esto el click no devolvia nada hasta que terminaba. */
.cv-perchip:active{transform:scale(.97)}
@media (prefers-reduced-motion:reduce){.cv-perchip{transition-property:border-color,background,color}.cv-perchip:active{transform:none}}
.cv-mut{font-size:var(--fs-sec);color:var(--t3)}
.cv-empty{font-size:var(--fs-body);color:var(--t3);padding:var(--sp8);text-align:center;background:var(--bg);border-radius:var(--r12)}
.cv-ring{width:104px;height:104px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center}
.cv-ring-in{width:74px;height:74px;border-radius:50%;background:var(--surf);display:flex;align-items:center;justify-content:center;font-size:var(--fs-h1);font-weight:var(--fw-heavy);color:var(--t1)}
.cv-dot{width:9px;height:9px;border-radius:50%;display:inline-block;flex-shrink:0}
.cv-bars{display:flex;flex-direction:column;gap:var(--sp4)}
.cv-bar{display:flex;align-items:center;gap:var(--sp4);font-size:var(--fs-body)}
.cv-bar-k{width:96px;color:var(--t2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cv-bar-t{flex:1;height:8px;background:var(--bg);border-radius:var(--rpill);overflow:hidden}
.cv-bar-f{display:block;height:100%;background:var(--p);border-radius:var(--rpill)}
.cv-bar-v{width:84px;text-align:right;color:var(--t3)}
.cv-map{height:240px;border-radius:var(--r12);overflow:hidden;background:#aaceea;isolation:isolate}
.cv-tbl-wrap{overflow-x:auto}
.cv-tbl{width:100%;border-collapse:collapse;font-size:var(--fs-body)}
.cv-tbl th{text-align:left;text-transform:uppercase;font-size:var(--fs-label);letter-spacing:.4px;color:var(--t3);padding:8px 12px;border-bottom:var(--border)}
.cv-tbl td{padding:11px 12px;border-bottom:var(--border);color:var(--t1)}
.cv-tbl tbody tr:hover{background:var(--bg)}
.cv-subtabs{display:inline-flex;background:var(--bg,#f1f5f9);border-radius:11px;padding:4px;gap:3px;margin-bottom:18px;flex-wrap:wrap}
.cv-subtab{display:inline-flex;align-items:center;gap:7px;border:none;background:none;padding:9px 16px;border-radius:8px;font-size:13px;font-weight:700;color:var(--t2,#475569);cursor:pointer;font-family:inherit;transition:var(--tr-14);white-space:nowrap}
.cv-subtab:hover{color:var(--t1,#0f172a)}
.cv-subtab.on{background:var(--surf,#fff);color:var(--pd,#0f766e);box-shadow:0 1px 4px rgba(15,23,42,.1)}
.cv-subbody{display:block}
/* ── Estatus: tarjetas a lo ancho, una debajo de la otra ── */
.est-stack{display:flex;flex-direction:column;gap:16px}
.est-card{padding:0;overflow:hidden}
.est-hd{display:flex;align-items:center;gap:12px;padding:20px 24px;border-bottom:1px solid var(--bd,#e5eaf0);background:linear-gradient(180deg,#fbfdfd,#fff)}
.est-ic{width:34px;height:34px;border-radius:10px;background:var(--p2,#e6faf6);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.est-hd-t{flex:1;min-width:0}
.est-t{font-size:15.5px;font-weight:800;color:var(--t1,#0f172a)}
.est-s{font-size:12.5px;color:var(--t3,#94a3b8);margin-top:2px;line-height:1.45}
.est-pill{flex-shrink:0;font-size:12px;font-weight:800;border-radius:20px;padding:6px 13px;white-space:nowrap}
.est-pill.ok{background:var(--p2,#e6faf6);color:var(--pd,#0f766e)}
.est-pill.urg{background:#fef2f2;color:#c0392b}
.est-pill.mut{background:var(--bg,#f1f5f9);color:var(--t3,#94a3b8)}
.est-row{display:flex;gap:28px;padding:22px 24px;flex-wrap:wrap;align-items:center}
/* período */
.est-timeline{flex:1;min-width:300px}
.est-tl-bar{position:relative;height:8px;border-radius:5px;background:var(--bg,#f1f5f9)}
.est-tl-bar span{display:block;height:100%;border-radius:5px;background:linear-gradient(90deg,#13c1ac,#0f766e)}
.est-tl-bar i{position:absolute;top:50%;width:14px;height:14px;border-radius:50%;background:#fff;border:3px solid var(--pd,#0f766e);transform:translate(-50%,-50%);box-shadow:0 1px 4px rgba(15,23,42,.2)}
.est-tl-l{display:flex;justify-content:space-between;gap:12px;margin-top:12px}
.est-tl-p{display:flex;flex-direction:column;gap:2px}
.est-tl-p span{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.4px;color:var(--t3,#94a3b8)}
.est-tl-p b{font-size:13px;font-weight:800;color:var(--t1,#0f172a)}
.est-tl-c{align-items:center;text-align:center}
.est-tl-c b{color:var(--pd,#0f766e)}
.est-tl-r{align-items:flex-end;text-align:right}
.est-empty{display:flex;align-items:center;gap:11px;padding:16px;background:var(--bg,#f8fafc);border:1px dashed var(--bd,#e5eaf0);border-radius:12px;font-size:12.5px;color:var(--t2,#475569);line-height:1.5}
.est-edit{flex-shrink:0;width:360px;padding-left:28px;border-left:1px solid var(--bd,#e5eaf0)}
.est-edit-l{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.5px;color:var(--t3,#94a3b8);margin-bottom:9px}
.est-form{display:flex;align-items:flex-end;gap:9px}
.est-f{display:flex;flex-direction:column;gap:5px;flex:1;min-width:0}
.est-f label{font-size:10.5px;font-weight:700;color:var(--t2,#475569)}
.est-inp{border:1.5px solid var(--bd,#e5eaf0);background:var(--surf,#fff);border-radius:9px;padding:9px 10px;font-size:12.5px;font-weight:600;color:var(--t1,#0f172a);font-family:inherit;width:100%}
.est-inp:focus{outline:none;border-color:var(--pd,#0f766e)}
.est-save{white-space:nowrap;padding:10px 15px}
/* disponibilidad */
.est-state{flex:1;min-width:280px;display:flex;align-items:center;gap:12px;padding:16px 18px;border-radius:12px}
.est-state-ok{background:#effcf9;border:1px solid #99f6e4}
.est-state-warn{background:#fffbeb;border:1px solid #fde68a}
.est-state-mut{background:var(--bg,#f8fafc);border:1px solid var(--bd,#e5eaf0)}
.est-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}
.est-state-ok .est-dot{background:#0d9488;box-shadow:0 0 0 4px rgba(13,148,136,.15)}
.est-state-warn .est-dot{background:#d97706;box-shadow:0 0 0 4px rgba(217,119,6,.15)}
.est-state-mut .est-dot{background:#94a3b8}
.est-state-v{font-size:15px;font-weight:800;color:var(--t1,#0f172a)}
.est-state-s{font-size:12.5px;color:var(--t2,#475569);margin-top:2px}
.est-action{flex-shrink:0;width:360px;padding-left:28px;border-left:1px solid var(--bd,#e5eaf0);display:flex;flex-direction:column;align-items:flex-start;gap:8px}
.est-btn{white-space:nowrap}
.est-btn-warn{border:1.5px solid #fde68a;color:#92400e;background:#fffbeb}
.est-btn-warn:hover{border-color:#d97706;background:#fef3c7}
.est-help{font-size:11.5px;color:var(--t3,#94a3b8);line-height:1.45}
.est-danger{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;padding:16px 24px;background:#fef7f7;border-top:1px solid #fbdcdc}
.est-danger-l{flex:1;min-width:240px}
.est-danger-t{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:800;color:#c0392b}
.est-danger-s{font-size:11.5px;color:var(--t3,#94a3b8);margin-top:3px;line-height:1.45}
/* confirmaciones */
.est-step-d{background:#fef2f2!important;color:#c0392b!important}
.est-del-in{width:100%;border:1.5px solid var(--bd,#e5eaf0);border-radius:10px;padding:11px 13px;font-size:13.5px;font-weight:600;color:var(--t1,#0f172a);font-family:inherit;margin-top:4px}
.est-del-in:focus{outline:none;border-color:#dc2626}
.est-pausebtn{background:#d97706;box-shadow:0 1px 3px rgba(217,119,6,.3)}
@media(max-width:1000px){.est-edit,.est-action{width:100%;padding-left:0;border-left:none;border-top:1px solid var(--bd,#e5eaf0);padding-top:18px}}

@media(max-width:640px){.cv-subtabs{width:100%}.cv-subtab{flex:1;justify-content:center;padding:9px 10px}}
.cv-note{display:flex;align-items:center;gap:var(--sp3);font-size:var(--fs-body);color:var(--t2);background:var(--p2);border:1px solid #cdeee8;border-radius:var(--r12);padding:11px 14px}
.cv-preg-list{display:flex;flex-direction:column;gap:6px}
.cv-preg-i{display:flex;align-items:flex-start;gap:8px;padding:9px 11px;background:var(--bg);border:var(--border);border-radius:var(--r9);font-size:var(--fs-sec);color:var(--t1);font-weight:var(--fw-semi)}
.cv-maprow{display:flex;justify-content:flex-end}
.cv-maplegend{display:flex;gap:var(--sp7);font-size:var(--fs-body);color:var(--t2);margin-bottom:10px} .cv-maplegend span{display:inline-flex;align-items:center;gap:var(--sp2)}
.cv-mapwrap{position:relative;isolation:isolate} .cv-map-big{height:560px;border-radius:var(--r14);overflow:hidden;background:#aaceea;isolation:isolate}
.cv-mappanel{position:absolute;left:18px;bottom:18px;background:var(--surf);border:var(--border);border-radius:var(--r14);padding:16px 18px;box-shadow:0 6px 20px rgba(15,23,42,.12);min-width:190px;z-index:var(--z-fixed)}
.cv-mappanel-t{font-size:var(--fs-label);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:.4px;color:var(--t3);margin-bottom:10px}
.cv-mp-row{display:flex;align-items:center;gap:var(--sp3);font-size:var(--fs-body);color:var(--t2);padding:3px 0} .cv-mp-row b{color:var(--t1)}
.cv-mp-tot{font-size:var(--fs-sec);color:var(--t3);margin-top:8px;border-top:var(--border);padding-top:8px}

/* 7 logo del cliente en el avatar del topbar */
/* 8 inputs de datos del cliente (config plataforma) — anchos, sin heredar el 96px del informe */
.cfg-form .cfg-input{width:100%;max-width:none;text-align:left}
.cre-steps-row{gap:var(--sp7)}
.cre-step{padding:8px 6px}
.cre-step-n{width:28px;height:28px;font-size:var(--fs-body)}
.cre-step-t{font-size:var(--fs-sec);font-weight:var(--fw-bold)}
.cre-step-d{font-size:var(--fs-label)}
.com-pager{display:flex;align-items:center;justify-content:center;gap:var(--sp7);padding:var(--sp7);border-top:var(--border)}
.com-pg-btn{border:var(--border);background:var(--surf);border-radius:var(--r9);padding:8px 14px;font-size:var(--fs-body);font-weight:var(--fw-bold);color:var(--t1);cursor:pointer;font-family:inherit;transition:var(--tr-fast)}
.com-pg-btn:hover:not([disabled]){border-color:var(--p);color:var(--p)}
.com-pg-btn[disabled]{opacity:.4;cursor:default}
.com-pg-info{font-size:var(--fs-body);color:var(--t2);font-weight:var(--fw-semi)}
.lock-card{padding:66px 62px 56px}
.lock-wrap{max-width:600px}
.lock-row{align-items:center}.lock-forgot{display:inline-flex;align-items:center;line-height:1}
@media(max-width:560px){.plat-h{font-size:var(--fs-h1)}}
@media(max-width:520px){.lock-wrap{max-width:100%;padding:24px 14px}.lock-card{padding:40px 26px 34px}}

.zn-prompt-ov{position:fixed;inset:0;z-index:var(--z-top);background:rgba(15,23,42,.5);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;padding:var(--sp10)}.zn-prompt{background:var(--surf);border-radius:var(--r16);padding:22px;width:100%;max-width:400px;box-shadow:0 24px 60px rgba(15,23,42,.3)}.zn-prompt-t{font-size:var(--fs-h3);font-weight:var(--fw-bold);color:var(--t1);margin-bottom:var(--sp6)}.zn-prompt-i{width:100%;border:var(--border);border-radius:var(--r10);padding:10px 13px;font-size:var(--fs-body);font-family:inherit;color:var(--t1);outline:none}.zn-prompt-i:focus{border-color:var(--p)}.zn-prompt-acts{display:flex;justify-content:flex-end;gap:var(--sp3);margin-top:var(--sp7)}.zn-prompt-acts button{border:var(--border);background:var(--surf);font-family:inherit;font-size:var(--fs-sec);font-weight:var(--fw-semi);padding:8px 16px;border-radius:var(--r9);cursor:pointer}.zn-prompt-ok{background:var(--p)!important;border-color:var(--p)!important;color:#fff!important}
/* COMERCIOS · grupos — modal (item 3) */
.com-grp-ov{padding:var(--sp7)}
.com-grp{background:var(--surf);border-radius:var(--r16);width:100%;max-width:560px;max-height:88vh;display:flex;flex-direction:column;box-shadow:0 24px 60px rgba(15,23,42,.32);overflow:hidden}
.com-grp-hd{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp5);padding:20px 22px 14px}
.com-grp-t{font-size:var(--fs-h2,18px);font-weight:var(--fw-heavy);color:var(--t1);letter-spacing:-.3px}
.com-grp-s{font-size:var(--fs-sec);color:var(--t3);margin-top:3px;line-height:1.4}
.com-grp-x{flex-shrink:0;width:30px;height:30px;border:none;background:var(--bg);border-radius:var(--r9);color:var(--t3);font-size:19px;line-height:1;cursor:pointer;font-family:inherit;transition:background var(--tr-14)}
.com-grp-x:hover{background:var(--bd);color:var(--t1)}
.com-grp-chips{display:flex;align-items:center;gap:7px;flex-wrap:wrap;padding:0 22px 4px}
.com-grp-chipslbl{font-size:var(--fs-label);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:.5px;color:var(--t3)}
.com-grpchip{display:inline-flex;align-items:center;gap:6px;border:var(--border);background:var(--surf);color:var(--t2);border-radius:var(--rpill);padding:5px 11px;font-size:var(--fs-sec);font-weight:var(--fw-semi);cursor:pointer;font-family:inherit;transition:background-color var(--tr-base),border-color var(--tr-base),color var(--tr-base),transform var(--mo-1)}
.com-grpchip:hover{border-color:var(--bd2);background:var(--bg)}
.com-grpchip.on{background:var(--pl);border-color:var(--p);color:var(--pd)}
.com-grpchip-n{background:var(--bg);border-radius:var(--rpill);padding:0 6px;font-size:var(--fs-micro);font-weight:var(--fw-bold);min-width:16px;text-align:center}
.com-grpchip.on .com-grpchip-n{background:var(--surf)}
.com-grpchip-new{border-style:dashed;color:var(--pd)}
.com-grp-name{margin:12px 22px 0;border:var(--border);border-radius:var(--r10);padding:11px 14px;font-size:var(--fs-body);font-family:inherit;color:var(--t1);outline:none;transition:border-color var(--tr-14)}
.com-grp-name:focus{border-color:var(--p);box-shadow:0 0 0 3px var(--pl)}
.com-grp-tools{display:flex;align-items:center;gap:var(--sp4);padding:11px 22px;flex-wrap:wrap}
.com-grp-search{flex:1;min-width:180px;display:flex;align-items:center;gap:8px;border:var(--border);border-radius:var(--r10);padding:8px 12px;background:var(--bg)}
.com-grp-search input{flex:1;border:none;background:none;outline:none;font-size:var(--fs-body);font-family:inherit;color:var(--t1);min-width:0}
.com-grp-all{display:inline-flex;align-items:center;gap:7px;font-size:var(--fs-sec);font-weight:var(--fw-semi);color:var(--t2);cursor:pointer;white-space:nowrap}
.com-grp-all input{width:16px;height:16px;accent-color:var(--p);cursor:pointer}
.com-grp-list{flex:1;overflow-y:auto;border-top:var(--border);border-bottom:var(--border);margin:0 22px;min-height:140px}
.com-grprow{display:flex;align-items:center;gap:11px;padding:10px 4px;border-bottom:1px solid var(--bg);cursor:pointer;transition:background var(--tr-14)}
.com-grprow:hover{background:var(--bg)}
.com-grprow.on{background:var(--pl)}
.com-grprow:last-child{border-bottom:none}
.com-grprow input{width:17px;height:17px;accent-color:var(--p);cursor:pointer;flex-shrink:0}
.com-grprow-tx{min-width:0;display:flex;flex-direction:column;gap:1px}
.com-grprow-nm{font-size:var(--fs-body);font-weight:var(--fw-semi);color:var(--t1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.com-grprow-sub{font-size:var(--fs-label);color:var(--t3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.com-grprow-g{color:var(--pd);font-weight:var(--fw-bold)}
.com-grp-empty{padding:30px 4px;text-align:center;color:var(--t3);font-size:var(--fs-body)}
.com-grp-foot{display:flex;align-items:center;justify-content:space-between;gap:var(--sp4);padding:14px 22px 18px;flex-wrap:wrap}
.com-grp-count{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-sec);color:var(--t2);font-weight:var(--fw-semi)}
.com-grp-count b{color:var(--pd);font-weight:var(--fw-heavy)}
.com-grp-acts{display:flex;align-items:center;gap:8px;margin-left:auto}
.com-grp-acts button{border:var(--border);background:var(--surf);font-family:inherit;font-size:var(--fs-sec);font-weight:var(--fw-bold);padding:9px 16px;border-radius:var(--r9);cursor:pointer;transition:background-color var(--tr-base),border-color var(--tr-base),color var(--tr-base),transform var(--mo-1)}
.com-grp-cancel:hover{background:var(--bg)}
.com-grp-del{color:#dc2626;border-color:#fecaca !important}
.com-grp-del:hover{background:#fef2f2}
.com-grp-save{background:var(--p) !important;border-color:var(--p) !important;color:#fff !important}
.com-grp-save:hover{background:var(--pd) !important}
@media(max-width:560px){.com-grp{max-height:92vh}.com-grp-tools{flex-direction:column;align-items:stretch}}

/* MEDALLON: el cuadrado tenido de 48px que sostiene un icono de 22px. Eran OCHO
   `style=` identicos en el HTML, y el color se armaba concatenandole el alfa al
   hexadecimal del token -- `var(--p)22` --, que funciona SOLO mientras el token
   sea un hexadecimal: el dia que uno pase a rgb() o a un color con nombre el
   fondo desaparece y no da ningun error. `color-mix` no depende de como este
   escrito el token. El 13.33% es exactamente el alfa `22` (34/255). */
.medallon{width:48px;height:48px;border-radius:var(--r14);display:flex;align-items:center;justify-content:center;flex-shrink:0;background:color-mix(in srgb,var(--medallon-c) 13.33%,transparent)}
.medallon--marca{--medallon-c:var(--p)}
.medallon--warn{--medallon-c:var(--warn)}
.medallon--danger{--medallon-c:var(--danger)}

/* `hidden` NO alcanza cuando la clase trae `display`: la insignia de alertas
   tiene `display:inline-flex`, que le gana al atributo, así que en cero se
   pintaba un punto rojo vacío. Es la misma trampa que ya costó caro con otras
   clases de este archivo. */
.ni-n[hidden]{display:none!important}
