/* Zolteva · panel del cliente «Miami de noche» (ZOLTEVA_PANEL_NOCHE=1, registro/corporativo.py; 22 oct 2026).
   Pedro: «que me trabaje en el rediseño del panel del cliente con el mismo estilo [que la web nueva] y usando creatividad y
   sobre todo modernidad y simpleza». La última hoja del panel: detrás de fichas.css y corporativa.css, solo con body.zn.
   Solo presentación: ni un texto, campo, ruta ni dato cambian. Primero se cambian las fichas (las capas de abajo pintan con
   ellas); lo que sigue son los blancos escritos a mano que no pasan por una ficha, y la jerarquía de cada pantalla.
   Tipografías en esta carpeta, licencia SIL OFL 1.1: Figtree (Erik Kennedy) y Bricolage Grotesque (Mathieu Triay). */
@font-face{font-family:"Figtree";src:url("figtree-var.woff2") format("woff2");font-weight:300 900;font-style:normal;font-display:swap}
@font-face{font-family:"Bricolage Grotesque";src:url("bricolage-var.woff2") format("woff2");font-weight:200 800;font-stretch:75% 100%;font-style:normal;font-display:swap}

:root body.zb.zn{
  /* la noche: índigo profundo, menta de la marca, coral de Miami Beach */
  --n-fondo:#07060f; --n-sup:#100e1d; --n-sup-2:#161429; --n-sup-3:#1e1b36;
  --n-tinta:#f3f0ff; --n-texto:#d9d5f0; --n-mut:#a7a2c6; --n-tenue:#7d7899;
  --n-linea:rgba(255,255,255,.08); --n-linea-2:rgba(255,255,255,.05); --n-control:rgba(255,255,255,.18);
  --n-menta:#7dffbf; --n-menta-osc:#06120d; --n-menta-tinte:rgba(125,255,191,.12);
  --n-coral:#ff7a59; --n-coral-tinte:rgba(255,122,89,.13); --n-rojo:#ff8a94; --n-rojo-tinte:rgba(255,93,115,.14);
  --n-ambar:#ffcf7a; --n-ambar-tinte:rgba(255,191,90,.13); --n-violeta:#a99cff; --n-violeta-tinte:rgba(139,123,255,.16);
  --n-vidrio:rgba(255,255,255,.045); --n-vidrio-borde:rgba(255,255,255,.09);
  --n-sombra:0 1px 0 rgba(255,255,255,.06) inset,0 24px 60px -24px rgba(0,0,0,.7);
  --n-disp:"Bricolage Grotesque","Figtree",system-ui,sans-serif;
  --n-sans:"Figtree",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;

  /* fichas de abajo (fichas.css, clasica.css, sistema del panel, A17) → la noche */
  --f-tinta:var(--n-tinta); --f-papel:var(--n-fondo); --f-papel-2:var(--n-sup-2); --f-tarjeta:var(--n-sup); --f-hueco:var(--n-sup-2);
  --f-linea:var(--n-linea); --f-campo:#6f6a8f; --f-tinte:var(--n-menta-tinte); --f-acento:var(--n-menta); --f-acento-texto:var(--n-menta);
  --f-apagado:var(--n-mut); --f-bien:var(--n-menta); --f-bien-texto:var(--n-menta); --f-bien-fondo:var(--n-menta-tinte);
  --f-mal:var(--n-rojo); --f-mal-fondo:var(--n-rojo-tinte); --f-sans:var(--n-sans); --f-mono:var(--n-sans);
  --f-tinta-3:#ffffff;   /* la tinta es clara en la noche: el botón activo se aclara, no se oscurece */
  --f-sobre-tinta:var(--n-fondo); --f-sobre-tinta-mut:var(--n-mut);   /* sobre la tinta (clara), texto oscuro: con --n-tinta salía 1,0:1 (LA PUERTA, rc-sig) */
  --negro:var(--n-tinta); --naranja:var(--n-menta); --crema:var(--n-fondo); --crema-osc:var(--n-sup-2); --verde:var(--n-menta); --rojo:var(--n-rojo);
  --z-papel:var(--n-sup); --z-linea:var(--n-linea); --z-campo:#6f6a8f; --z-mut:var(--n-mut); --z-acento:var(--n-menta); --z-tinte:var(--n-menta-tinte); --z-foco:var(--n-menta);
  --zb-hueco:var(--n-sup-2); --zb-sans:var(--n-sans); --zb-mono:var(--n-sans);
  --zb-lat:transparent; --zb-lat-tinta:var(--n-texto); --zb-lat-mut:var(--n-mut); --zb-lat-linea:var(--n-linea); --zb-lat-on:var(--n-vidrio); --zb-lat-carta:var(--n-vidrio);
  --zb-ok-bg:var(--n-menta-tinte); --zb-mal-bg:var(--n-rojo-tinte);
  --a-verde-osc:var(--n-menta); --a-verde:var(--n-menta); --a-beis:var(--n-sup-3); --a-rosa:var(--n-coral);
  --a-fondo:var(--n-fondo); --a-linea:var(--n-linea); --a-tinta:var(--n-tinta); --a-texto:var(--n-texto); --a-mut:var(--n-mut);
  --a-verde-tinte:var(--n-menta-tinte); --a-verde-texto:var(--n-menta); --a-rosa-tinte:var(--n-coral-tinte); --a-rosa-linea:rgba(255,122,89,.28);
  --a-rojo:var(--n-rojo); --a-rojo-tinte:var(--n-rojo-tinte); --a-ambar-tinte:var(--n-ambar-tinte); --a-ambar:var(--n-ambar);
  --a-azul-tinte:var(--n-violeta-tinte); --a-azul:var(--n-violeta);
  --zs-fondo:var(--n-fondo); --zs-tarjeta:var(--n-sup); --zs-hueco:var(--n-sup-2); --zs-linea:var(--n-linea); --zs-linea-2:var(--n-linea-2);
  --zs-control:var(--n-control); --zs-campo:#6f6a8f; --zs-tinta:var(--n-tinta); --zs-mut:var(--n-mut); --zs-acento:var(--n-menta);
  --zs-acento-texto:var(--n-menta); --zs-tinte:var(--n-menta-tinte); --zs-foco:var(--n-menta);
  --zs-bien:var(--n-menta); --zs-bien-fondo:var(--n-menta-tinte); --zs-mal:var(--n-rojo); --zs-mal-fondo:var(--n-rojo-tinte);
  --zs-ambar:var(--n-ambar); --zs-ambar-fondo:var(--n-ambar-tinte);
  --zs-r-s:10px; --zs-r:14px; --zs-r-l:20px;
  --zs-sombra:var(--n-sombra); --zs-sombra-flota:0 30px 80px -20px rgba(0,0,0,.75),0 0 0 1px rgba(255,255,255,.08);
  background:var(--n-fondo); color:var(--n-texto); font-family:var(--n-sans);
  color-scheme:dark;
}
html:has(body.zn){background:#07060f}

/* el cielo: dos luces de neón muy quietas detrás de todo (solo transform; sin movimiento si se pide menos) */
:root body.zn::before,:root body.zn::after{content:"";position:fixed;z-index:-1;width:70vmax;height:70vmax;border-radius:50%;filter:blur(90px);pointer-events:none}
:root body.zn::before{background:radial-gradient(circle,#1fb98a 0%,transparent 62%);top:-38vmax;left:-24vmax;opacity:.22}
:root body.zn::after{background:radial-gradient(circle,#ff5d73 0%,#ff7a59 25%,transparent 62%);bottom:-42vmax;right:-30vmax;opacity:.13}
:root body.zn{isolation:isolate}
:root .zn ::selection{background:var(--n-menta);color:var(--n-menta-osc)}
:root .zn :focus-visible{outline-color:var(--n-menta)}

/* titulares de cartel; cifras grandes en la misma letra */
:root .zn h1,:root .zn h2,:root .zn h3{color:var(--n-tinta);font-family:var(--n-disp);letter-spacing:-.02em}
:root .zn h1{font-weight:800;letter-spacing:-.035em}

/* ---------- armazón: barra de arriba, barra lateral, barra inferior del móvil (vidrio sobre la noche) ---------- */
:root .zb.zn .pl-salto{background:var(--n-menta);color:var(--n-menta-osc);border-color:var(--n-menta)}
:root .zb.zn .zc-barra{background:rgba(7,6,15,.72);border-bottom:1px solid var(--n-linea);-webkit-backdrop-filter:blur(16px) saturate(140%);backdrop-filter:blur(16px) saturate(140%)}
:root .zb.zn .zc-marca{color:var(--n-tinta);font-family:var(--n-disp);font-weight:800;letter-spacing:-.03em}
:root .zb.zn .zn-logo{display:block;width:auto;height:30px;object-fit:contain}
:root .zb.zn .zc-marca .zn-logo{height:25px}
:root .zb.zn .pl-marca{padding:4px 10px 8px}
:root .zb.zn .pl-marca .zn-logo{width:132px;height:auto}
:root .zb.zn .marca{display:flex;align-items:center;gap:10px}
:root .zb.zn .marca .zn-logo{width:116px;height:auto}
:root .zb.zn .zd-logo .zn-logo{width:min(210px,70vw);height:auto;margin:0 auto 10px}
:root .zb.zn .zc-lema{color:var(--n-mut)}

/* Entrar comparte superficies, bordes y radios con el resto del panel. En escritorio la marca vive dentro de la tarjeta;
   por debajo de 1024 px esa tarjeta oculta su cabecera decorativa y se muestra el mismo logo en la barra superior. */
:root body.zb.zb-entrar.zn .zd-izq{background:var(--n-sup);border:1px solid var(--n-linea);border-radius:20px;box-shadow:var(--n-sombra);color:var(--n-texto)}
:root body.zb.zb-entrar.zn .zd-logo small,:root body.zb.zb-entrar.zn .p-entrar>p,:root body.zb.zb-entrar.zn .zd-izq>p{color:var(--n-mut)}
:root body.zb.zb-entrar.zn .p-entrar h1,:root body.zb.zb-entrar.zn .field label{color:var(--n-tinta)}
:root body.zb.zb-entrar.zn input{background:var(--n-sup-2);border-color:var(--n-control);color:var(--n-tinta)}
:root body.zb.zb-entrar.zn .p-social{background:var(--n-vidrio);border-color:var(--n-control);color:var(--n-tinta)}
:root body.zb.zb-entrar.zn a{color:var(--n-menta)}
:root body.zb.zb-entrar.zn .zd-demo{background:linear-gradient(160deg,#123e38 0%,#0d2928 100%);border:1px solid var(--n-linea)}
:root body.zb.zb-entrar.zn .zd-llamada,:root body.zb.zb-entrar.zn .zd-cli{background:var(--n-sup);color:var(--n-tinta)}
:root body.zb.zb-entrar.zn .zd-elena{background:var(--n-menta-tinte);color:var(--n-texto)}
:root body.zb.zb-entrar.zn .lang-switch{background:var(--n-vidrio);border-color:var(--n-control)}
:root body.zb.zb-entrar.zn .lang-switch a{background:transparent;color:var(--n-mut)}
:root body.zb.zb-entrar.zn .lang-switch a[aria-current="true"]{background:var(--n-tinta);color:#0b0a14}
@media(max-width:1023px){:root body.zb.zb-entrar.zn header.top .marca{visibility:visible}:root body.zb.zb-entrar.zn header.top .marca small{color:var(--n-mut)}}
/* Páginas sueltas con la noche (26 oct 2026): 2FA, contraseña, Configurar, enlace caducado, Calendario .ics.
   · Las de una columna (sin el orbe) enseñan el logotipo de la cabecera también en escritorio: la regla de Entrar lo
     esconde porque allí va en la columna izquierda.
   · En .zb-entrar los enlaces son menta: un a.btn (menta) se quedaba con el texto invisible («Configura tu negocio»).
   · Las cajas claras de calendarios.py y dosfa.py (#eaf6ee, #fff3e0, #fff) pasan a superficies de la noche. */
@media(min-width:1024px){:root body.zb.zb-entrar.zn:not(:has(.zd-cols)) header.top .marca{visibility:visible}:root body.zb.zb-entrar.zn header.top .marca::before{display:none}:root body.zb.zb-entrar.zn header.top .marca small{color:var(--n-mut)}}
:root body.zb.zb-entrar.zn a.btn:not(.ghost){color:var(--n-menta-osc)}
:root .zb.zn .p-cal-aviso{background:var(--n-menta-tinte);border:1px solid var(--n-menta);color:var(--n-tinta)}
:root .zb.zn .p-cal-aviso.mal{background:var(--n-ambar-tinte);border-color:var(--n-ambar)}
:root .zb.zn .p-2fa-fila,:root .zb.zn .p-2fa-codigos li{background:var(--n-sup-2);border:1px solid var(--n-control);color:var(--n-tinta)}
:root .zb.zn .zc-buscar input{background:var(--n-vidrio);border-color:var(--n-vidrio-borde);color:var(--n-tinta);border-radius:999px}
:root .zb.zn .zc-buscar input::placeholder{color:var(--n-mut)}
:root .zb.zn .zc-buscar input:focus{border-color:rgba(125,255,191,.5);outline:0;box-shadow:0 0 0 3px rgba(125,255,191,.18)}
:root .zb.zn .zc-ini{background-color:var(--n-menta);background-image:linear-gradient(135deg,var(--n-menta),#3fd3a0);color:var(--n-menta-osc)}
:root .zb.zn .zc-yo{color:var(--n-texto)}
:root .zb.zn .zc-tema{border-color:var(--n-linea);color:var(--n-texto)}
:root .zb.zn .zc-tema button[aria-pressed="true"]{background:var(--n-texto);color:#07060f}
:root .zb.zn .zc-barra .lang-switch{border-color:var(--n-linea)}
:root .zb.zn .zc-barra .lang-switch a{color:var(--n-texto)}
:root .zb.zn .zc-barra .lang-switch a[aria-current="true"]{background:var(--n-texto);color:#07060f}
:root .zb.zn .pl-lat{background:rgba(9,8,19,.6);border-right:1px solid var(--n-linea);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);color:var(--n-texto)}
:root .zb.zn .pl-nav a{color:var(--n-mut);border-radius:12px}
:root .zb.zn .pl-nav a svg{color:currentColor}
@media(hover:hover) and (pointer:fine){:root .zb.zn .pl-nav a:hover{background:var(--n-vidrio);color:var(--n-tinta)}}
:root .zb.zn .pl-nav a[aria-current="page"]{background:rgba(255,255,255,.07);color:var(--n-tinta);box-shadow:none}
:root .zb.zn .pl-n{background:var(--n-coral);color:#1a0904}
:root .zb.zn .zb-tarjeta{background:var(--n-vidrio);border:1px solid var(--n-vidrio-borde);color:var(--n-texto);box-shadow:none;border-radius:18px}
:root .zb.zn .zb-tarjeta .zb-tel{color:var(--n-tinta)}
:root .zb.zn .zb-tarjeta .zb-et{color:var(--n-mut)}
:root .zb.zn .zb-tarjeta hr{border-color:var(--n-linea)}
:root .zb.zn .zb-copiar{background:transparent;color:var(--n-tinta);border:1px solid var(--n-control);border-radius:999px}
@media(hover:hover) and (pointer:fine){:root .zb.zn .zb-copiar:hover,:root .zb.zn .pl-fin button:hover{background:var(--n-vidrio)}}
:root .zb.zn .zb-barra,:root .zb.zn .zb-tarjeta .zb-barra,:root .zb.zn .zc-uso-barra{background:rgba(255,255,255,.08)}
:root .zb.zn .zb-barra i,:root .zb.zn .zc-uso-barra i{background:linear-gradient(90deg,#3fd3a0,var(--n-menta));box-shadow:0 0 12px rgba(125,255,191,.45)}
:root .zb.zn .zc-servicio::before,:root .zb.zn .zb-vivo::before{background:var(--n-menta);box-shadow:0 0 0 3px rgba(125,255,191,.18),0 0 12px rgba(125,255,191,.7)}
:root .zb.zn .zc-servicio b{color:var(--n-tinta)}
:root .zb.zn .zc-servicio small{color:var(--n-mut)}
:root .zb.zn .lang-switch{background:var(--n-vidrio);border:1px solid var(--n-vidrio-borde);border-radius:999px;overflow:hidden}
:root .zb.zn .lang-switch a{color:var(--n-mut);background:transparent}
:root .zb.zn .lang-switch a[aria-current="true"],:root .zb.zn .pl-fin .lang-switch a[aria-current="true"],:root .zb.zn header.top .lang-switch a[aria-current="true"]{background:var(--n-tinta);color:#0b0a14}
:root .zb.zn .pl-fin button{background:transparent;color:var(--n-texto);border:1px solid var(--n-control);border-radius:999px}
:root .zb.zn .pl-fin .pl-ver,:root .zb.zn .rc-otra{color:var(--n-mut)}
:root .zb.zn header.top{background:rgba(7,6,15,.78);border-bottom:1px solid var(--n-linea);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}
:root .zb.zn .marca{color:var(--n-tinta)}
:root .zb.zn .pl-inf{background:rgba(12,10,24,.94);border-top:1px solid var(--n-linea);box-shadow:0 -10px 30px rgba(0,0,0,.4);-webkit-backdrop-filter:blur(18px) saturate(150%);backdrop-filter:blur(18px) saturate(150%)}
:root .zb.zn .pl-inf a,:root .zb.zn .pl-inf summary{color:var(--n-mut)}
:root .zb.zn .pl-inf a[aria-current="page"],:root .zb.zn .pl-inf summary.activo{color:var(--n-menta);box-shadow:none}
:root .zb.zn .pl-mas{background:var(--n-sup-2);border:1px solid var(--n-vidrio-borde);border-radius:18px;box-shadow:var(--zs-sombra-flota)}
:root .zb.zn .pl-mas a,:root .zb.zn .pl-mas button{color:var(--n-tinta)}
:root .zb.zn .pl-mas a[aria-current="page"]{background:var(--n-menta-tinte);box-shadow:inset 3px 0 0 var(--n-menta)}

/* ---------- botones: uno principal (pastilla menta luminosa), el resto de vidrio ---------- */
:root .zb.zn .btn{background:var(--n-menta);color:var(--n-menta-osc);border-color:transparent;border-radius:999px;box-shadow:0 10px 30px -12px rgba(125,255,191,.6),inset 0 1px 0 rgba(255,255,255,.5)}
@media(hover:hover) and (pointer:fine){:root .zb.zn .btn:hover{background:#a6ffd4}}
:root .zb.zn .btn.secondary,:root .zb.zn .btn.ghost{background:var(--n-vidrio);color:var(--n-tinta);border:1px solid var(--n-vidrio-borde);box-shadow:none}

/* ---------- tarjetas: paneles de vidrio, sin filo de color ---------- */
:root .zb.zn .p-sec,:root .zb.zn .zb-inicio .zc-abajo .p-sec,:root .zb.zn .zb-inicio .zb-cols .p-sec,:root .zb.zn .zb-ll .zb-llamadas-lista{background:var(--n-sup);border:1px solid var(--n-linea);border-radius:20px;box-shadow:none}
:root .zb.zn .p-sec.zc-rosa{background:#1a0f1a;border-color:rgba(255,122,89,.28)}
:root .zb.zn .zc-rosa .p-vacio{background:var(--n-vidrio);box-shadow:inset 0 0 0 1px rgba(255,122,89,.26)}
:root .zb.zn .p-enlace{color:var(--n-menta)}
:root .zb.zn .hint,:root .zb.zn small{color:var(--n-mut)}
:root .zb.zn .p-rs-vacio{background:var(--n-sup-2);border-color:var(--n-linea);color:var(--n-texto)}

/* ---------- la ficha de hoy (la frase y las cifras): el cartel de la noche ---------- */
:root .zb.zn .zc-hoy,:root .zb.zn .zc-ficha-osc,:root .zb.zn .pl-cont>section.p-sec:not(.cv)>.dt-mio.zc-ficha-osc,:root .zb.zn .zc-elena{
  position:relative;overflow:hidden;color:var(--n-tinta);
  background:radial-gradient(120% 140% at 0% 0%,rgba(31,185,138,.30) 0%,transparent 55%),radial-gradient(90% 120% at 100% 100%,rgba(255,122,89,.22) 0%,transparent 60%),linear-gradient(160deg,#141128 0%,#0d0b1c 100%);
  border:1px solid rgba(255,255,255,.1);border-radius:24px;box-shadow:0 1px 0 rgba(255,255,255,.08) inset,0 40px 90px -30px rgba(0,0,0,.8)}
:root .zb.zn .zc-ficha-osc .zc-frase,:root .zb.zn .zc-hoy .zc-hoy-frase,:root .zb.zn .p-rs-cab.zc-ficha-osc h2.zc-frase{color:var(--n-tinta);font-family:var(--n-disp);font-weight:700;letter-spacing:-.03em}
:root .zb.zn .zc-ficha-osc .zc-sig,:root .zb.zn .zc-hoy .zc-hoy-sig,:root .zb.zn .zc-hoy .zb-cifra>span,:root .zb.zn .zc-hoy .zb-cifra{color:var(--n-texto)}
:root .zb.zn .zc-hoy .zb-cifra b{color:var(--n-tinta);font-family:var(--n-disp);font-weight:700}
@media(hover:hover) and (pointer:fine){:root .zb.zn .zc-hoy .zb-cifra:hover{color:var(--n-tinta)}}
:root .zb.zn .zc-hoy .zb-cifra:focus-visible{outline-color:var(--n-menta)}
:root .zb.zn .zc-retrato{background-color:var(--n-menta);background-image:radial-gradient(circle at 34% 30%,#c8ffe4 0 18%,transparent 19%),linear-gradient(140deg,var(--n-menta),#2fc394);color:var(--n-menta-osc);box-shadow:0 0 0 6px rgba(125,255,191,.12),0 0 40px rgba(125,255,191,.35);font-family:var(--n-disp);font-weight:800}

/* ---------- cifras sueltas, etiquetas y resultados ---------- */
:root .zb.zn .zb-cifra{background:var(--n-vidrio);border-color:var(--n-vidrio-borde);color:var(--n-tinta)}
@media(hover:hover) and (pointer:fine){:root .zb.zn .zb-cifra:hover{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.16)}}
:root .zb.zn .zc-var,:root .zb.zn .zc-var[data-var="baja"]{background:rgba(255,255,255,.07);color:var(--n-texto)}
:root .zb.zn .zc-var[data-var="sube"]{background:var(--n-menta-tinte);color:var(--n-menta)}
:root .zb.zn .p-res{border:0;border-radius:999px;padding:2px 10px;font-weight:600}
:root .zb.zn .p-res.cita{background:var(--n-menta-tinte);color:var(--n-menta)}
:root .zb.zn .p-res.recado{background:var(--n-ambar-tinte);color:var(--n-ambar)}
:root .zb.zn .p-res.sin_cita{background:rgba(255,255,255,.06);color:var(--n-mut)}
:root .zb.zn .p-res.perdida{background:var(--n-rojo-tinte);color:var(--n-rojo)}
:root .zb.zn .zb-origen{background:rgba(255,255,255,.06);border-color:transparent;color:var(--n-mut)}
:root .zb.zn .zb-origen[data-origen]{background:var(--n-menta-tinte);color:var(--n-menta)}
:root .zb.zn .zb-origen[data-origen="panel"]{background:rgba(255,255,255,.07);color:var(--n-texto)}
:root .zb.zn .zc-contacto{background:rgba(255,255,255,.07);color:var(--n-texto)}
:root .zb.zn .zc-luna,:root .zb.zn .zc-ley-luna,:root .zb.zn .zc-luna .zc-fuera,:root .zb.zn .zc-ley-luna .zc-fuera{color:var(--n-violeta)}

/* ---------- listas y tablas: filas que respiran, separadores apenas visibles ---------- */
:root .zb.zn .zc-tabla th{color:var(--n-tenue);border-bottom-color:var(--n-linea);font-weight:500}
:root .zb.zn .zc-tabla td,:root .zb.zn .zc-tabla tr,:root .zb.zn .zc-pocas li,:root .zb.zn .zc-uso-fig{border-color:var(--n-linea-2)}
@media(hover:hover) and (pointer:fine){:root .zb.zn .zc-tabla tbody tr:hover{background:rgba(255,255,255,.035)}}
:root .zb.zn .zc-tabla .zb-que b,:root .zb.zn .zb-filas b{color:var(--n-tinta)}

/* ---------- pestañas y conmutadores ---------- */
:root .zb.zn .zb-tabs,:root .zb.zn .p-rs-per,:root .zb.zn .cal .cal-barra>.ag-nav:first-child,:root .zb.zn .zc-filtro{background:var(--n-vidrio);border:1px solid var(--n-vidrio-borde);border-radius:999px}
:root .zb.zn .zb-tabs a,:root .zb.zn .p-rs-per a,:root .zb.zn .cal .cal-barra>.ag-nav:first-child a{color:var(--n-mut);border-radius:999px}
:root .zb.zn .zb-tabs a[aria-current="true"],:root .zb.zn .p-rs-per a[aria-current="true"],:root .zb.zn .cal .cal-barra>.ag-nav:first-child a[aria-current="page"],:root .zb.zn .zc-filtro button[aria-pressed="true"],
:root .zb.zn .zb-ll>.zc-ficha-osc .zb-tabs a[aria-current="true"],:root .zb.zn .p-rs-cab.zc-ficha-osc .p-rs-per a[aria-current="true"]{background:var(--n-tinta);color:#0b0a14;box-shadow:none}
:root .zb.zn .zb-ll>.zc-ficha-osc .zb-tabs a,:root .zb.zn .p-rs-cab.zc-ficha-osc .p-rs-per a{color:var(--n-texto)}
:root .zb.zn .ag-nav a[aria-current="page"]{background:var(--n-tinta);border-color:var(--n-tinta);color:#0b0a14}
:root .zb.zn .cm td.cm-hoy .cm-n{background:var(--n-menta);color:var(--n-menta-osc)}
:root .zb.zn .cal-nota{background:var(--n-vidrio);border-left-color:var(--n-menta)}
:root .zb.zn .zb-aviso{background:var(--n-ambar-tinte);border-color:rgba(255,191,90,.3);color:var(--n-texto)}
:root .zb.zn .zb-aviso .btn{background:var(--n-menta);color:var(--n-menta-osc)}

/* ---------- campos ---------- */
:root .zb.zn input,:root .zb.zn select,:root .zb.zn textarea{background-color:rgba(255,255,255,.04);color:var(--n-tinta);border-color:var(--n-control)}
:root .zb.zn .dt-sel select{background-color:rgba(255,255,255,.04)}

/* ---------- llamadas: la cabecera clara (zc-clara) también de noche ---------- */
:root .zb.zn .zc-ficha-osc.zc-clara,:root .zb.zn .pl-cont>section.p-sec:not(.cv)>.dt-mio.zc-ficha-osc.zc-clara{border-top:1px solid rgba(255,255,255,.1)}
:root .zb.zn .zc-ficha-osc.zc-clara .zc-frase,:root .zb.zn .p-rs-cab.zc-ficha-osc.zc-clara h2.zc-frase{color:var(--n-tinta)}
:root .zb.zn .zc-ficha-osc.zc-clara .zc-sig,:root .zb.zn .p-rs-cab.zc-ficha-osc.zc-clara .zc-sig{color:var(--n-texto)}
:root .zb.zn .zb-ll>.zc-ficha-osc.zc-clara .zb-tabs,:root .zb.zn .p-rs-cab.zc-ficha-osc.zc-clara .p-rs-per{background:rgba(255,255,255,.06)}
:root .zb.zn .zb-ll>.zc-ficha-osc.zc-clara .zb-tabs a,:root .zb.zn .p-rs-cab.zc-ficha-osc.zc-clara .p-rs-per a{color:var(--n-texto)}
:root .zb.zn .zb-ll>.zc-ficha-osc.zc-clara .zb-tabs a[aria-current="true"],:root .zb.zn .p-rs-cab.zc-ficha-osc.zc-clara .p-rs-per a[aria-current="true"]{background:var(--n-tinta);color:#0b0a14}
:root .zb.zn .zb-ll>.zc-ficha-osc.zc-clara .zb-tabs a:focus-visible{outline-color:var(--n-menta)}
:root .zb.zn .cv-e p{background:var(--n-menta-tinte);border-color:rgba(125,255,191,.22);color:var(--n-tinta)}
:root .zb.zn .p-tabla tr.total td{border-color:var(--n-linea)}
:root .zb.zn .p-tabla small{color:var(--n-mut)}
:root .zb.zn .p-tabla small.solo-ancho{color:var(--n-mut)!important}   /* llega con style="color:#666" en línea: 3,5:1 sobre la noche */

/* ---------- agenda: cada servicio, su luz (mismo orden c0…c5; el texto, claro sobre el tinte) ---------- */
:root .zb.zn .cg-pista{background:rgba(255,255,255,.025);border-color:var(--n-linea);border-radius:14px}
:root .zb.zn .cg-horas,:root .zb.zn .cg-cab{color:var(--n-mut)}
:root .zb.zn .cg-cab a{color:var(--n-texto)}
:root .zb.zn .cg-hoy .cg-cab a b,:root .zb.zn .cz-d.cz-es-hoy b,:root .zb.zn .cm td.cm-hoy .cm-n{background:var(--n-menta);color:var(--n-menta-osc)}
:root .zb.zn .cg-cita{border-radius:10px;border-width:1px;border-left-width:3px;color:var(--n-tinta)}
:root .zb.zn .c0{background:rgba(255,122,89,.17);border-color:#ff7a59;color:var(--n-tinta)}
:root .zb.zn .c1{background:rgba(125,255,191,.13);border-color:#7dffbf;color:var(--n-tinta)}
:root .zb.zn .c2{background:rgba(255,255,255,.07);border-color:#a7a2c6;color:var(--n-tinta)}
:root .zb.zn .c3{background:rgba(139,123,255,.2);border-color:#a99cff;color:var(--n-tinta)}
:root .zb.zn .c4{background:rgba(255,191,90,.16);border-color:#ffcf7a;color:var(--n-tinta)}
:root .zb.zn .c5{background:rgba(111,211,255,.15);border-color:#6fd3ff;color:var(--n-tinta)}
:root .zb.zn .cg-cita.c0,:root .zb.zn .cg-cita.c1,:root .zb.zn .cg-cita.c2,:root .zb.zn .cg-cita.c3,:root .zb.zn .cg-cita.c4,:root .zb.zn .cg-cita.c5{border-top-color:rgba(255,255,255,.07);border-right-color:rgba(255,255,255,.07);border-bottom-color:rgba(255,255,255,.07)}
@media(hover:hover) and (pointer:fine){:root .zb.zn .cg-cita:hover{filter:brightness(1.18)}}
:root .zb.zn .c0-p{--pt:#ff7a59} :root .zb.zn .c1-p{--pt:#7dffbf} :root .zb.zn .c2-p{--pt:#a7a2c6}
:root .zb.zn .c3-p{--pt:#a99cff} :root .zb.zn .c4-p{--pt:#ffcf7a} :root .zb.zn .c5-p{--pt:#6fd3ff}
:root .zb.zn .cg-ahora{border-top-color:var(--n-coral)}
:root .zb.zn .cg-ahora::before{background:var(--n-coral);box-shadow:0 0 10px var(--n-coral)}
:root .zb.zn .cal-canc i{background:rgba(255,255,255,.06);border-color:var(--n-control)}
:root .zb.zn .cal-canc i::after{background:var(--n-mut)}
:root .zb.zn .cal-canc.si i{background:var(--n-menta)}
:root .zb.zn .cal-canc.si i::after{background:var(--n-menta-osc)}
:root .zb.zn .cz-hoy{background:var(--n-vidrio)}
:root .zb.zn .cz-d[aria-current]{background:var(--n-menta-tinte);border-color:rgba(125,255,191,.35);box-shadow:none;border-radius:14px}
:root .zb.zn .cz-n{background:rgba(255,255,255,.1);color:var(--n-tinta)}
:root .zb.zn .cz-d[aria-current] .cz-n{background:var(--n-menta);color:var(--n-menta-osc)}

:root .zb.zn .cg-cerr{background:rgba(0,0,0,.35)}   /* «atenuado: cerrado» (la leyenda); el rayado es solo para las horas bloqueadas */
:root .zb.zn .cal-ley i.cerr{background:rgba(0,0,0,.35);border-color:var(--n-control)}
:root .zb.zn .cg-bloq{background:repeating-linear-gradient(45deg,rgba(255,255,255,.08) 0 5px,rgba(255,255,255,.02) 5px 10px);border-color:var(--n-control);color:var(--n-tinta)}
:root .zb.zn .cg-bloq span{background:var(--n-sup-2);color:var(--n-tinta)}

:root .zb.zn .zb-ll .zc-ley-luna{margin:0 0 10px 4px}
:root .zb.zn .zb-ll .p-sec.zb-lista{background:none;border:0;box-shadow:none;padding:0;border-radius:0}
@media(max-width:600px){
  /* los filtros de Llamadas en una sola fila que se desliza con el dedo, como las pestañas de una app */
  :root .zb.zn .zb-ll>.zc-ficha-osc .zb-tabs,:root .zb.zn .zb-tabs{display:flex;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;max-width:100%}
  :root .zb.zn .zb-tabs::-webkit-scrollbar{display:none}
  :root .zb.zn .zb-ll>.zc-ficha-osc .zb-tabs{-webkit-mask-image:linear-gradient(90deg,#000 82%,transparent);mask-image:linear-gradient(90deg,#000 82%,transparent);padding-right:48px}
  :root .zb.zn .zb-tabs a{flex:none;white-space:nowrap}
}

/* =================== INICIO: lo de hoy arriba, una acción clara (devolver llamadas), el resto debajo =================== */
:root .zb.zn .zb-cab h1{font-size:clamp(26px,2.2vw + 14px,40px);line-height:1.02;margin:0 0 6px}
:root .zb.zn .zb-cab .zb-sub,:root .zb.zn .zb-ante{color:var(--n-mut)}
:root .zb.zn .zb-vivo{color:var(--n-menta)}
:root .zb.zn .zc-hoy{padding:28px 30px 26px}
:root .zb.zn .zc-hoy-frase{font-size:clamp(24px,1.6vw + 12px,34px);line-height:1.08;max-width:30ch}
:root .zb.zn .zc-hoy-sig{color:var(--n-texto);font-size:16px}
/* las cuatro cifras: cuatro losetas, el número grande arriba y lo que cuenta debajo */
:root .zb.zn .zc-hoy .zb-cifras{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:24px 0 0;padding:0;border:0}
:root .zb.zn .zc-hoy .zb-cifra{display:flex;flex-direction:column-reverse;align-items:flex-start;justify-content:flex-end;gap:6px;padding:16px 16px 14px;min-height:0;
  background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.08);border-radius:16px;color:var(--n-texto);transition:background var(--f-t2) var(--f-curva),border-color var(--f-t2) var(--f-curva),transform var(--f-t2) var(--f-curva)}
@media(hover:hover) and (pointer:fine){:root .zb.zn .zc-hoy .zb-cifra:hover{background:rgba(255,255,255,.09);border-color:rgba(255,255,255,.16);transform:translateY(-2px)}}
:root .zb.zn .zc-hoy .zb-cifra:active{transform:scale(.98)}
:root .zb.zn .zc-hoy .zb-cifra b{font-size:clamp(30px,2vw + 14px,44px);font-weight:700;letter-spacing:-.04em;line-height:.95}
:root .zb.zn .zc-hoy .zb-cifra>span{font-size:14px;line-height:1.3}
:root .zb.zn .zc-hoy .zb-cifra[href*="recados"]{background:linear-gradient(160deg,rgba(255,122,89,.2),rgba(255,122,89,.07));border-color:rgba(255,122,89,.32)}
:root .zb.zn .zc-hoy .zb-cifra[href*="recados"] b{color:#ffb39f}
@media(max-width:600px){
  :root .zb.zn .zc-hoy{padding:20px 18px 18px;border-radius:22px}
  :root .zb.zn .zc-hoy-cab{flex-direction:column;gap:12px}
  :root .zb.zn .zc-hoy .zc-retrato{width:40px;height:40px;font-size:18px}
  :root .zb.zn .zc-hoy-frase{font-size:24px;margin-top:0}
  :root .zb.zn .zc-hoy-sig{font-size:15px}
  :root .zb.zn .zc-hoy .zb-cifras{grid-template-columns:1fr 1fr;gap:8px;margin-top:18px}
  :root .zb.zn .zc-hoy .zb-cifra{padding:12px 12px 11px;border-radius:14px}
  :root .zb.zn .zc-hoy .zb-cifra>span{font-size:13px}
}
/* Debajo del resumen, solo dos cosas: «Por devolver» (lo que pide hacer algo) y «Próximas citas»; después la actividad
   como lista de cinco. Lo repetido no se pinta aquí (coordinador, 22 oct): «Llamadas de hoy» lo dice el resumen y vive en
   Llamadas; «Este ciclo» lo dice la cabecera de Llamadas; los minutos, una vez: en el lateral en el escritorio y en su
   tarjeta en el móvil, donde el lateral no existe. El HTML no cambia: es lo que se pinta. */
:root .zb.zn .zb-inicio .zc-abajo{display:none}
:root .zb.zn .zb-inicio .zb-cols{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:28px;align-items:start;margin-top:8px}
:root .zb.zn .zb-inicio .zb-col{display:contents}
:root .zb.zn .zb-inicio [data-zb="devolver"]{grid-column:1;grid-row:1}
:root .zb.zn .zb-inicio [data-zb="citas"]{grid-column:2;grid-row:1}
:root .zb.zn .zb-inicio [data-zb="llamadas"]{grid-column:1/-1;grid-row:2}
@media(min-width:900px){:root .zb.zn .zb-inicio [data-zb="minutos"]{display:none}}
@media(max-width:899px){
  :root .zb.zn .zb-inicio .zb-cols{display:flex;flex-direction:column;gap:20px}
  :root .zb.zn .zb-inicio [data-zb="minutos"]{order:4}
}
/* respira: tarjetas sin borde, un escalón de tono sobre la noche, más aire dentro y entre ellas */
:root .zb.zn .zb-inicio .zb-cols .p-sec{border:0;background:var(--n-sup);padding:26px 28px;border-radius:24px}
:root .zb.zn .zb-inicio .zc-hoy{margin-bottom:36px}
:root .zb.zn .zb-inicio .zb-ch{margin-bottom:14px}
:root .zb.zn .zb-inicio .zb-ch h2{font-size:20px}
@media(max-width:600px){:root .zb.zn .zb-inicio .zb-cols .p-sec{padding:20px 18px;border-radius:22px}:root .zb.zn .zb-inicio .zc-hoy{margin-bottom:24px}}
/* «Por devolver»: lo urgente se ve en tres segundos */
:root .zb.zn .zb-inicio .p-sec.zc-rosa{background:linear-gradient(160deg,#2a1420 0%,#170e1c 70%);box-shadow:0 0 0 1px rgba(255,122,89,.22) inset}
:root .zb.zn .p-sec.zc-rosa .zb-ch h2::before{content:"";display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--n-coral);box-shadow:0 0 12px var(--n-coral);margin:0 10px 3px 0}
/* la actividad, lista limpia de cinco: quién · resultado · hora, y la nota en una línea debajo */
:root .zb.zn .zb-inicio .zc-tabla thead{display:none}
:root .zb.zn .zb-inicio .zc-tabla,:root .zb.zn .zb-inicio .zc-tabla tbody{display:block;width:100%}
:root .zb.zn .zb-inicio .zc-tabla tr{display:grid;grid-template-columns:minmax(0,1fr) auto 96px;grid-template-areas:"quien res hora" "notas notas notas";align-items:center;gap:2px 16px;padding:14px 4px;border-bottom:1px solid var(--n-linea-2)}
:root .zb.zn .zb-inicio .zc-tabla tbody tr:last-child,:root .zb.zn .zb-inicio .zc-tabla tbody tr:nth-child(5){border-bottom:0}
:root .zb.zn .zb-inicio .zc-tabla tbody tr:nth-child(n+6){display:none}
:root .zb.zn .zb-inicio .zc-tabla td{border:0;padding:0}
:root .zb.zn .zb-inicio .zc-tabla .zc-quien{grid-area:quien;min-width:0}
:root .zb.zn .zb-inicio .zc-tabla .zb-cuando{grid-area:hora;text-align:right;color:var(--n-mut);font-size:13px}
:root .zb.zn .zb-inicio .zc-tabla td:nth-child(4){grid-area:res;padding:0}
:root .zb.zn .zb-inicio .zc-tabla .zc-tipo{display:none}
:root .zb.zn .zb-inicio .zc-tabla .zc-notas{grid-area:notas;padding-left:42px;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--n-mut);font-size:13.5px}
:root .zb.zn .zb-inicio .zc-tabla .zc-notas:empty{display:none}
:root .zb.zn .zb-inicio .zc-tabla-env{overflow:visible;margin:0}
@media(max-width:600px){
  :root .zb.zn .zb-inicio .zc-tabla tr{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"quien hora" "res res" "notas notas";gap:6px 10px}
  :root .zb.zn .zb-inicio .zc-tabla td:nth-child(4){padding-left:42px}
}
:root .zb.zn .zb-inicio [data-zb="minutos"] h2{font-size:16px;font-family:var(--n-sans);font-weight:600;letter-spacing:0;color:var(--n-texto)}
:root .zb.zn .zc-uso-num,:root .zb.zn .zb-minutos b{font-family:var(--n-disp)}

/* =================== LLAMADAS y CALENDARIO: el mismo criterio (menos bordes, más aire, lo secundario en voz baja) =================== */
:root .zb.zn .p-sec,:root .zb.zn .zb-ll .zb-llamadas-lista{border:0}
:root .zb.zn .zb-ll .zb-dos{gap:24px;margin-top:8px}
:root .zb.zn .zb-ll>.zc-ficha-osc{margin-bottom:28px}
:root .zb.zn .zb-ll>.zc-ficha-osc{display:grid;grid-template-columns:minmax(0,1fr);align-items:start;justify-items:start;gap:18px;width:100%;box-sizing:border-box}
:root .zb.zn .zb-ll>.zc-ficha-osc>div{min-width:0;max-width:100%}
:root .zb.zn .zb-ll>.zc-ficha-osc .zc-frase{max-width:34ch;overflow-wrap:anywhere;text-wrap:balance}
:root .zb.zn .zb-ll>.zc-ficha-osc .zb-tabs{max-width:100%;box-sizing:border-box}
/* «Uso de este ciclo» (solo vive aquí y dice los minutos adicionales: se queda entero), como un bloque de referencia */
:root .zb.zn #uso-semanas{font-size:13.5px}
:root .zb.zn #uso-semanas th{color:var(--n-tenue);font-weight:500;border-bottom:1px solid var(--n-linea)}
:root .zb.zn #uso-semanas td{border-bottom:1px solid var(--n-linea-2)}
:root .zb.zn .zb-ll .p-sec:has(#uso-semanas){background:#0c0a18;margin-top:28px}
/* Calendario: la rejilla sin marco; anterior · hoy · siguiente, un solo grupo */
:root .zb.zn main>.w>section.p-sec.ag:not(.cal-ficha)>.ag-semana-tabla{border:0;border-radius:24px;padding:24px}
:root .zb.zn .ag-nav a,:root .zb.zn .cal-barra a{border-color:var(--n-linea)}

/* =================== RESULTADOS =================== */
/* las tarjetas con los tokens de la noche (venían blancas: .p-an-rej y los estilos de analitica.py) */
:root .zb.zn .p-an .p-an-rej{background:transparent;border:0;gap:20px;border-radius:0;overflow:visible}
:root .zb.zn .p-an .p-an-rej>.p-rs-tarjeta,:root .zb.zn .p-rs-tarjeta{background:var(--n-sup);border:0;border-radius:24px;box-shadow:none;color:var(--n-texto);padding:24px 26px}
:root .zb.zn .p-rs-tarjeta h3,:root .zb.zn .p-an h4{color:var(--n-tinta)}
:root .zb.zn .p-an-dest,:root .zb.zn .p-an-var{color:var(--n-tinta)}
:root .zb.zn .p-an-nota,:root .zb.zn .p-an-ley,:root .zb.zn .p-rs-tarjeta p,:root .zb.zn .p-rs-tarjeta small{color:var(--n-mut)}
:root .zb.zn .p-an-ley i{border-color:var(--n-control)}
:root .zb.zn .p-an-picos li{border-top-color:var(--n-linea)}
:root .zb.zn .p-an-picos em{border-color:var(--n-control);color:var(--n-texto)}
:root .zb.zn .p-an a,:root .zb.zn .p-an summary{color:var(--n-menta)}
:root .zb.zn .p-an a:focus-visible{outline-color:var(--n-menta)}

:root .zb.zn .p-rs-cab.zc-ficha-osc.zc-clara .p-an-cifras{border-top-color:var(--n-linea)}
:root .zb.zn .p-rs-cab.zc-ficha-osc .p-rs-tarjeta{background:transparent;padding:0}
:root .zb.zn .p-rs-cab.zc-ficha-osc.zc-clara .p-rs-tarjeta b{color:var(--n-tinta);font-family:var(--n-disp)}
:root .zb.zn .p-rs-cab.zc-ficha-osc.zc-clara .p-rs-tarjeta h3,:root .zb.zn .p-rs-cab.zc-ficha-osc.zc-clara .p-an-var,:root .zb.zn .p-rs-cab.zc-ficha-osc.zc-clara .p-an-var small{color:var(--n-mut)}
:root .zb.zn .p-rs-cab.zc-ficha-osc.zc-clara .p-an-var i{color:var(--n-tinta)}

:root .zb.zn .p-rs-cab.zc-ficha-osc .p-an-cifras{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:16px 28px}
:root .zb.zn .p-rs-cab.zc-ficha-osc .p-rs-tarjeta b{font-size:30px;letter-spacing:-.03em}
/* las gráficas de Resultados (SVG de analitica.py y graficas_v2.py, colores A17): a la noche por sus atributos */
:root .zb.zn .p-an svg text{fill:var(--n-texto)}
:root .zb.zn .p-an svg rect[fill="#034742"]{fill:#7dffbf}
:root .zb.zn .p-an svg rect[fill="#388669"]{fill:#3fae86}
:root .zb.zn .p-an svg rect[fill="#E5EAE8"]{fill:rgba(255,255,255,.16)}
:root .zb.zn .p-an svg [stroke="#034742"]{stroke:var(--n-sup)}
:root .zb.zn .p-an svg line{stroke:var(--n-linea)}
:root .zb.zn .p-an-ley i[style*="#034742"]{background:#7dffbf!important}
:root .zb.zn .p-an-ley i[style*="repeating-linear-gradient"]{background:repeating-linear-gradient(45deg,#7dffbf 0 2px,#3fae86 2px 6px)!important}
:root .zb.zn .p-an-ley i[style*="#E5EAE8"]{background:rgba(255,255,255,.16)!important}
:root .zb.zn .p-an-ley i{border:0;border-radius:4px}

/* «Cuándo llaman» (registro/noche.py): un color, sin números; el número, al pasar o con el teclado */
:root .zb.zn .p-an-dest[data-an="fuera"]{font-family:var(--n-disp);font-size:20px;font-weight:600;letter-spacing:-.01em;line-height:1.3;max-width:52ch;margin:4px 0 20px}
:root .zb.zn .zn-calor{display:grid;grid-template-columns:44px repeat(var(--cols),minmax(0,1fr));gap:3px;align-items:center;font-size:12px;color:var(--n-mut)}
:root .zb.zn .zn-calor>span:not(.zn-dia){padding:0 0 6px 2px;font-weight:500;font-variant-numeric:tabular-nums}
:root .zb.zn .zn-dia{color:var(--n-texto);font-weight:600;font-size:13px}
:root .zb.zn .zn-c{display:block;height:26px;border-radius:5px;background:rgba(255,255,255,.075);position:relative;outline-offset:2px}
:root .zb.zn .zn-c.cerr{background:#05040b}
:root .zb.zn .zn-c.n1{background:#2f5f50} :root .zb.zn .zn-c.n2{background:#468a70}
:root .zb.zn .zn-c.n3{background:#62c497} :root .zb.zn .zn-c.n4{background:#7dffbf}
:root .zb.zn .zn-c.cerr.n1,:root .zb.zn .zn-c.cerr.n2,:root .zb.zn .zn-c.cerr.n3,:root .zb.zn .zn-c.cerr.n4{box-shadow:inset 0 0 0 2px #08070f}
:root .zb.zn .zn-c[tabindex]{cursor:default}
:root .zb.zn .zn-c[data-tip]:hover::after,:root .zb.zn .zn-c[data-tip]:focus-visible::after{content:attr(data-tip);position:absolute;z-index:5;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%);
  white-space:nowrap;background:var(--n-tinta);color:#0b0a14;font:600 12.5px/1.2 var(--n-sans);padding:7px 10px;border-radius:8px;box-shadow:0 10px 30px rgba(0,0,0,.5);pointer-events:none}
:root .zb.zn .zn-c[data-tip]:hover,:root .zb.zn .zn-c[data-tip]:focus-visible{outline:2px solid var(--n-tinta)}
:root .zb.zn .zn-calor-3{display:none}
@media(max-width:699px){
  :root .zb.zn .p-an .p-rs-graf .zn-calor-1{display:none}
  :root .zb.zn .p-an .p-rs-graf .zn-calor-3{display:grid;grid-template-columns:40px repeat(var(--cols),minmax(0,1fr));gap:4px}
  :root .zb.zn .zn-calor-3 .zn-c{height:30px}
  :root .zb.zn .zn-calor-3>span:not(.zn-dia){font-size:11px;padding-left:0}
  /* la etiqueta no se sale de la pantalla en las columnas de los bordes */
  :root .zb.zn .zn-calor-3 .zn-c:nth-child(9n+2)[data-tip]::after{left:0;transform:none}
  :root .zb.zn .zn-calor-3 .zn-c:nth-child(9n)[data-tip]::after,:root .zb.zn .zn-calor-3 .zn-c:nth-child(9n+8)[data-tip]::after{left:auto;right:0;transform:none}
}
:root .zb.zn .zn-ley{display:flex;flex-wrap:wrap;gap:8px 24px;margin:16px 0 0;font-size:13px;color:var(--n-mut)}
:root .zb.zn .zn-ley li{display:inline-flex;align-items:center;gap:6px}
:root .zb.zn .zn-ley .zn-c{width:18px;height:12px;border-radius:3px;border:0}
:root .zb.zn .zn-escala .zn-c{margin:0 -3px}
:root .zb.zn .zn-escala span:first-child{margin-right:6px} :root .zb.zn .zn-escala span:last-child{margin-left:6px}
/* «Las horas con más llamadas»: tres, legibles */
:root .zb.zn .p-an-picos li:nth-child(n+4){display:none}
:root .zb.zn .p-an-picos li{padding:12px 0;font-size:15px;color:var(--n-texto)}
:root .zb.zn .p-an .p-an-picos b{font-weight:600;color:var(--n-tinta)}
:root .zb.zn #an-cuando h4{margin-top:28px;font-family:var(--n-sans);font-size:15px;font-weight:600}

/* =================== BARRIDO: el resto de pantallas (Mi Elena, Desvío, Cuenta, fichas), blancos y verdes escritos a mano =================== */
:root .zb.zn .zc-sub-cont>.p-edit,:root .zb.zn .p-edit{background:var(--n-sup);border:0;color:var(--n-texto)}
:root .zb.zn .zc-sub a{color:var(--n-mut)}
:root .zb.zn .zc-sub a[aria-current="true"]{background:var(--n-tinta);color:#0b0a14!important;box-shadow:none;border-color:var(--n-tinta)}
@media(max-width:899px){:root .zb.zn .zc-sub a{background:var(--n-vidrio);border-color:var(--n-linea)}}
@media(max-width:599px){:root .zb.zn .zc-sub{position:static;flex-wrap:wrap;overflow:visible}:root .zb.zn .zc-sub a{flex:1 1 calc(50% - 4px);justify-content:center}}
@media(hover:hover) and (pointer:fine){:root .zb.zn .zc-sub a:hover,:root .zb.zn .zc-dia:hover{background:var(--n-vidrio)}}
:root .zb.zn .zc-elena-voz,:root .zb.zn .zc-elena-idioma{color:var(--n-texto)}
:root .zb.zn .zc-elena h1,:root .zb.zn .zc-elena-num,:root .zb.zn .zc-elena-enl a{color:var(--n-tinta)}
:root .zb.zn .zc-elena-vivo{color:var(--n-menta)}
:root .zb.zn .zc-elena-voz .voz-oir{background:var(--n-tinta)}
:root .zb.zn .zc-dia{border-bottom-color:var(--n-linea-2);color:var(--n-texto)}
:root .zb.zn .zc-dia[aria-expanded="true"],:root .zb.zn.zc-js-elena #horario .hour-row{background:var(--n-sup-2);border-color:var(--n-linea-2)}
:root .zb.zn .zc-regla{background:repeating-linear-gradient(90deg,rgba(255,255,255,.06) 0 calc(25% - 1px),rgba(255,255,255,.12) calc(25% - 1px) 25%)}
:root .zb.zn .zc-regla i{background:var(--n-menta)}
:root .zb.zn .zc-dia.zc-cerrado .zc-regla{background:rgba(0,0,0,.35)}
:root .zb.zn .zc-filtro button[aria-pressed="true"]{background:var(--n-tinta);color:#0b0a14}
:root .zb.zn .zc-ayuda[open]>summary{background:var(--n-vidrio)}
:root .zb.zn #elena-opciones fieldset[data-sec="como"]{border-top-color:var(--n-linea)}
:root .zb.zn .voz-opcion .chip-sub,:root .zb.zn .p-an-nota,:root .zb.zn .p-avisos .p-av-no{color:var(--n-mut)}
:root .zb.zn .p-avisos .p-av-activo{background:var(--n-menta-tinte);color:var(--n-menta)}
:root .zb.zn .p-avisos .p-av-no{background:rgba(255,255,255,.06)}
:root .zb.zn .zc-copiar-dias,:root .zb.zn .dt-sel select{background-color:var(--n-vidrio);border-color:var(--n-control);color:var(--n-tinta)}
:root .zb.zn .zc-sin-guardar{background:var(--n-sup-3);color:var(--n-tinta);box-shadow:var(--zs-sombra-flota)}
:root .zb.zn .zc-sin-guardar p,:root .zb.zn .zc-sin-guardar .zc-salir{color:var(--n-tinta)}
:root .zb.zn .zc-sin-guardar .btn{background:var(--n-menta);color:var(--n-menta-osc)}
/* las fichas «claras» (zc-clara) de Desvío y Cuenta: textos y enlaces con los tokens */
:root .zb.zn .dt-mio.zc-ficha-osc.zc-clara #dt-mio,:root .zb.zn .zc-uso.zc-ficha-osc.zc-clara h2,:root .zb.zn .zc-uso-ficha h2{color:var(--n-mut)}
:root .zb.zn .dt-mio.zc-ficha-osc.zc-clara .p-franja,:root .zb.zn .dt-mio.zc-ficha-osc.zc-clara .p-franja>span,:root .zb.zn .dt-mio.zc-ficha-osc.zc-clara .dt-ok,
:root .zb.zn .zc-uso-ficha .zc-uso-cifra b,:root .zb.zn .p-rs-cab.zc-ficha-osc.zc-clara .p-rs-tarjeta b{color:var(--n-tinta)}
:root .zb.zn .dt-mio.zc-ficha-osc.zc-clara .p-franja small,:root .zb.zn .dt-mio.zc-ficha-osc.zc-clara .dt-b,:root .zb.zn .dt-mio.zc-ficha-osc.zc-clara .dt-b p,
:root .zb.zn .dt-mio.zc-ficha-osc.zc-clara .dt-f,:root .zb.zn .dt-mio.zc-ficha-osc.zc-clara .dt-s,:root .zb.zn .dt-mio.zc-ficha-osc.zc-clara details p,
:root .zb.zn .dt-mio.zc-ficha-osc.zc-clara details li,:root .zb.zn .dt-pasos li,:root .zb.zn .dt-pasos p,:root .zb.zn .zc-uso-ficha p{color:var(--n-texto)}
:root .zb.zn .dt-mio.zc-ficha-osc.zc-clara a,:root .zb.zn .dt-mio.zc-ficha-osc.zc-clara .dt-b b,:root .zb.zn .dt-mio.zc-ficha-osc.zc-clara summary,:root .zb.zn .dt-pasos b,:root .zb.zn .dt-f a,:root .zb.zn details>p>b{color:var(--n-tinta)}
:root .zb.zn .dt-mio.zc-ficha-osc.zc-clara details{border-color:var(--n-linea)}
:root .zb.zn .dt-mio.zc-ficha-osc.zc-clara code,:root .zb.zn .dt-mio.zc-ficha-osc.zc-clara .dt-cod data,:root .zb.zn .dt-l code,:root .zb.zn .dt-cod data{background:rgba(255,255,255,.08);color:var(--n-tinta)}
:root .zb.zn .dt-mio.zc-ficha-osc.zc-clara .btn.ghost,:root .zb.zn .dt-cod .btn.ghost{background:var(--n-vidrio);color:var(--n-tinta);border:1px solid var(--n-control)}
:root .zb.zn .dt-mio.zc-ficha-osc.zc-clara li[data-paso="on"] .dt-cod{background:var(--n-menta-tinte)}
:root .zb.zn .dt-mio.zc-ficha-osc.zc-clara li[data-paso="on"] .dt-cod .btn.ghost{background:var(--n-tinta);color:#0b0a14;border-color:var(--n-tinta)}
:root .zb.zn .zc-uso.zc-ficha-osc.zc-clara p,:root .zb.zn .zc-uso.zc-ficha-osc.zc-clara .zc-sig{color:var(--n-texto)}
:root .zb.zn .dt-av li{border-top-color:rgba(255,93,115,.3)}
:root .zb.zn .cal-ficha>dl>dd{border-color:var(--n-linea)}
:root .zb.zn .zc-elena-voz .voz-oir .voz-oir-ico{border-color:transparent transparent transparent #0b0a14}
:root .zb.zn .dt-mio.zc-ficha-osc.zc-clara li[data-paso="on"] .dt-cod data,:root .zb.zn .dt-mio.zc-ficha-osc.zc-clara li[data-paso="on"] .dt-cod .dt-ok{color:var(--n-menta)}
:root .zb.zn .dt-av{background:var(--n-rojo-tinte);border-color:rgba(255,93,115,.35);color:var(--n-tinta)}
:root .zb.zn .dt-av h3,:root .zb.zn .dt-av p,:root .zb.zn .dt-av li,:root .zb.zn .dt-av span,:root .zb.zn .dt-av summary,:root .zb.zn .dt-av a{color:var(--n-tinta)}
:root .zb.zn .dt-av .dt-no{color:#ffb3ba}
/* Cuenta: el plan propio, la regla de minutos */
:root .zb.zn .pp-plan.tuyo{background:var(--n-menta-tinte);border-color:rgba(125,255,191,.4);box-shadow:none}
:root .zb.zn .pp-plan.tuyo .precio,:root .zb.zn .pp-plan.tuyo .min,:root .zb.zn .pp-plan.tuyo .min b{color:var(--n-tinta)}
:root .zb.zn .pp-plan.tuyo .mas,:root .zb.zn .pp-plan.tuyo small{color:var(--n-texto)}
:root .zb.zn .pp-marca{background:var(--n-menta);color:var(--n-menta-osc)}
:root .zb.zn .zc-uso-tope-txt{background:var(--n-sup);color:var(--n-texto)}
:root .zb.zn .zc-uso-fig{border-top-color:var(--n-linea)}
:root .zb.zn .zc-uso-tope{stroke:var(--n-mut)} :root .zb.zn .zc-uso-hoy{stroke:var(--n-control)}
:root .zb.zn .zc-uso-area{fill:rgba(125,255,191,.12)} :root .zb.zn .zc-uso-real{stroke:var(--n-menta)} :root .zb.zn .zc-uso-proy{stroke:#3fae86}

@media (prefers-reduced-motion:reduce){:root .zb.zn *{transition-duration:.01ms!important;animation-duration:.01ms!important}}

/* Inicio: la tendencia de «Llamadas de hoy» frente a ayer a esta hora (venía en el HTML, escondida en la franja de cifras).
   La mitad del sector la enseña en la cifra (ESTUDIO_paneles_sector.md, §1). Solo la cifra que la trae; debajo del rótulo. */
:root .zb.zn .zc-hoy .zb-cifra .zc-pie:has(.zc-var){display:flex;flex-wrap:wrap;order:-1;align-items:center;gap:4px 6px;font-style:normal;text-align:left;justify-self:auto}
:root .zb.zn .zc-hoy .zb-cifra .zc-pie:has(.zc-var) small{display:inline;font-size:12px;color:var(--n-texto)}

/* Resultados en el orden del sector (registro/noche.orden): «Cómo acabaron» y «Cuándo llaman» a lo ancho, «Qué piden» y
   «Cuánto duran» en pareja, «Quién llama» a lo ancho. Dos columnas: con tres, la pareja dejaba un hueco. */
@media(min-width:700px){:root .zb.zn .p-an .p-an-rej{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* La franja de «Lo que falta» del panel recién estrenado (registro/mejoras.py): venía crema (#fff8ec) con la tinta clara
   de la noche encima, 1,06:1 (LA PUERTA con la noche encendida, J*.10/J*.11). Con los tintes de la noche, como los avisos. */
:root .zb.zn .p-franja{background:var(--n-ambar-tinte);border-left-color:var(--n-ambar);color:var(--n-texto)}
:root .zb.zn .p-franja.ok{background:var(--n-menta-tinte);border-left-color:var(--n-menta)}
/* «Cómo acabaron» va a lo ancho, pero su gráfico no: a 1440 px el SVG (analitica.py, ancha → max-width:none) crecía hasta
   barras de 280 px y cifras de 32 px. Se queda del tamaño que tenía en su tarjeta de un tercio. */
:root .zb.zn .p-an #an-acabaron svg{max-width:560px}

/* Revisión profunda del 23 oct 2026: componentes añadidos después de la primera piel nocturna. La hoja clara escribía
   blancos literales (#fff), por eso no bastaba con cambiar los tokens. */

/* Resultados con ZOLTEVA_PANEL_GRAFICAS_V2: el anillo y su leyenda llegan de graficas_v2.py con colores y píldoras claros. */
:root .zb.zn .g2{color:var(--n-texto)}
:root .zb.zn .g2 .pista{stroke:rgba(255,255,255,.14)}
:root .zb.zn .g2 svg text{color:var(--n-tinta);fill:currentColor}
:root .zb.zn .g2 .arco[stroke="#034742"]{stroke:var(--n-menta)}
:root .zb.zn .g2 .arco[stroke="#388669"]{stroke:#3fae86}
:root .zb.zn .g2 .arco[stroke="#DDDAD4"]{stroke:rgba(255,255,255,.28)}
:root .zb.zn .g2-pil li{background:rgba(255,255,255,.055);border-color:var(--n-vidrio-borde);color:var(--n-texto)}
:root .zb.zn .g2-pil li i[style*="#034742"]{background:var(--n-menta)!important}
:root .zb.zn .g2-pil li i[style*="#388669"]{background:#3fae86!important}
:root .zb.zn .g2-pil li i[style*="#DDDAD4"]{background:rgba(255,255,255,.28)!important}
:root .zb.zn .g2-top li i{background:#3fae86}
:root .zb.zn .g2-apilada{background:rgba(255,255,255,.12)}
:root .zb.zn .g2-apilada i[style*="#E4F2EB"]{background:rgba(125,255,191,.28)!important}
:root .zb.zn .g2-apilada i[style*="#9FCDB6"]{background:#54b991!important}
:root .zb.zn .g2-apilada i[style*="#388669"]{background:#3fae86!important}
:root .zb.zn .g2-apilada i[style*="#034742"]{background:var(--n-menta)!important}
:root .zb.zn #an-acabaron .g2[data-g2="acabaron"]{display:grid;grid-template-columns:minmax(220px,340px) minmax(220px,1fr);gap:8px 34px;align-items:center}
:root .zb.zn #an-acabaron .g2[data-g2="acabaron"]>.g2-gran{margin:0}
:root .zb.zn #an-acabaron .g2[data-g2="acabaron"]>.g2-pil{align-content:center;margin:0}
:root .zb.zn #an-acabaron .g2[data-g2="acabaron"]>details{grid-column:1/-1}
@media(max-width:699px){:root .zb.zn #an-acabaron .g2[data-g2="acabaron"]{grid-template-columns:1fr;gap:10px}:root .zb.zn #an-acabaron .g2[data-g2="acabaron"]>details{grid-column:auto}}

/* Mi Elena → Voz: la cabecera y las 56 muestras EN/ES ya no heredan el botón blanco de corporativa.css. */
:root .zb.zn .zc-elena-voz .voz-oir,:root .zb.zn #elena-voz .voz-oir{background:rgba(255,255,255,.075);color:var(--n-tinta);border:1px solid var(--n-control);box-shadow:none}
:root .zb.zn .zc-elena-voz .voz-oir .voz-oir-ico,:root .zb.zn #elena-voz .voz-oir .voz-oir-ico{border-color:transparent transparent transparent currentColor}
@media(hover:hover) and (pointer:fine){:root .zb.zn #elena-voz .voz-oir:hover,:root .zb.zn .zc-elena-voz .voz-oir:hover{background:rgba(125,255,191,.15);border-color:rgba(125,255,191,.4)}}
:root .zb.zn #elena-voz .voz-oir[aria-pressed="true"],:root .zb.zn .zc-elena-voz .voz-oir[aria-pressed="true"]{background:var(--n-menta);color:var(--n-menta-osc);border-color:var(--n-menta)}

/* Lo que Elena debe saber: contenedor, fichas, leyendas, alta y ejemplos comparten las superficies de la noche. */
:root .zb.zn .p-saber #saber-fichas,:root .zb.zn .p-saber .sb-ejemplos{background:var(--n-sup);border-color:var(--n-linea);color:var(--n-texto)}
:root .zb.zn .p-saber .sb-ficha{background:var(--n-sup-2);border-color:var(--n-control);color:var(--n-texto);padding-top:18px}
:root .zb.zn .p-saber #saber-nueva{background:rgba(255,255,255,.035);border-color:var(--n-control)}
:root .zb.zn .p-saber .sb-ficha legend{position:relative;z-index:1;background:var(--n-sup-2);color:var(--n-tinta);padding:2px 8px;margin-left:-8px;line-height:1.35}
:root .zb.zn .p-saber #saber-nueva legend{background:var(--n-sup)}
:root .zb.zn .p-saber .field>label{color:var(--n-tinta)}
:root .zb.zn .p-saber .sb-borrar{color:var(--n-rojo)}
:root .zb.zn .p-saber .sb-caduco{color:var(--n-rojo)}
:root .zb.zn .p-saber .sb-ejemplos a{background:rgba(255,255,255,.035);border-color:var(--n-control);color:var(--n-texto)}
:root .zb.zn .p-saber .sb-ejemplos a b{color:var(--n-menta)}
@media(hover:hover) and (pointer:fine){:root .zb.zn .p-saber .sb-ejemplos a:hover{background:var(--n-menta-tinte);border-color:rgba(125,255,191,.45)}}

/* Conexiones: tarjetas que saltan de línea antes de apretarse; placa clara solo para logotipos oficiales oscuros. */
:root .zb.zn .cx-r{grid-template-columns:repeat(auto-fill,minmax(min(100%,390px),1fr))}
:root .zb.zn .cx-t{background:var(--n-sup);border-color:var(--n-linea);color:var(--n-texto)}
:root .zb.zn .cx-ico{background:var(--n-vidrio);color:var(--n-tinta);border:1px solid var(--n-vidrio-borde)}
:root .zb.zn .cx-ico.cx-marca{background:#f3f0ff;border-color:#f3f0ff;color:#0b0a14}
:root .zb.zn .cx-t [data-estado]{background:rgba(255,255,255,.065);border-color:var(--n-control);color:var(--n-texto)}
:root .zb.zn .cx-t [data-estado="connected"]{background:var(--n-menta-tinte);border-color:rgba(125,255,191,.35);color:var(--n-menta)}
:root .zb.zn .cx-t [data-estado="broken"]{background:var(--n-rojo-tinte);border-color:rgba(255,138,148,.4);color:var(--n-rojo)}
:root .zb.zn .cx-t video{width:100%;max-width:none;max-height:none}

/* Desvío: el vídeo 9:19.5 ya no queda limitado a 360 px de alto (144 px de ancho). Los controles nativos incluyen pantalla completa. */
:root .zb.zn .dt-video{padding:24px}
:root .zb.zn .dt-video video{display:block;width:min(100%,380px);height:auto;max-width:380px;max-height:none;margin:16px auto 0;border-radius:18px;background:#000}
@media(max-width:600px){:root .zb.zn .dt-video{padding:18px}:root .zb.zn .dt-video video{width:100%;max-width:none;margin-top:12px}}

/* ==========================================================================
   panel-noche.css — correcciones de la auditoría (capa noche)
   Todas las reglas viven solo dentro de :root .zb.zn
   ========================================================================== */

/* --- 1 · CONTROLES: se acabó el blanco; superficie oscura y texto claro --- */
:root .zb.zn .pb-botones .pb-b,
:root .zb.zn a.pb-b,
:root .zb.zn button.pb-b{
  background: var(--n-sup-2);
  border-color: var(--n-control);
  color: var(--n-tinta);
}
:root .zb.zn .pb-botones .pb-b:hover,
:root .zb.zn .pb-botones .pb-b:focus-visible,
:root .zb.zn a.pb-b:hover,
:root .zb.zn button.pb-b:hover{
  background: var(--n-sup-3);
  border-color: var(--n-control);
  color: var(--n-tinta);
}
/* el botón destructivo mantiene jerarquía con el tinte coral, no con blanco */
:root .zb.zn button#baja-continuar.pb-b{
  background: var(--n-coral-tinte);
  border-color: var(--n-coral);
  color: var(--n-tinta);
}
:root .zb.zn button#baja-continuar.pb-b:hover{
  background: var(--n-rojo-tinte);
  border-color: var(--n-rojo);
  color: var(--n-tinta);
}

/* enlaces-botón “Remove block”: coral sobre superficie oscura, sin caja clara */
:root .zb.zn .cal .btn-link.ag-quitar,
:root .zb.zn .cal-lista .btn-link.ag-quitar,
:root .zb.zn button.btn-link.ag-quitar{
  background: transparent;
  border-color: transparent;
  color: var(--n-coral);
}
:root .zb.zn .cal .btn-link.ag-quitar:hover,
:root .zb.zn button.btn-link.ag-quitar:hover{
  color: var(--n-ambar);
}

/* --- 2 · FONDOS CLAROS SOBRANTES → superficie oscura o tinte --- */

/* contador del mes (.cm-c) y marca de cancelado (.cm-x) */
:root .zb.zn .cm .cm-c{
  background: var(--n-violeta-tinte);
  border: 1px solid var(--n-linea);
  color: var(--n-tinta);
}
:root .zb.zn .cm .cm-c small{
  color: var(--n-texto);
}
:root .zb.zn .cm .cm-x{
  background: var(--n-sup-3);
  border: 2px dashed var(--n-control);
  color: var(--n-texto);
}
:root .zb.zn .cm td.cm-cerr a{
  background: var(--n-sup-2);
  border-color: var(--n-sup-2);
}
:root .zb.zn .cm td.cm-otro .cm-n{
  color: var(--n-mut);
}

/* leyenda de cancelados de la agenda */
:root .zb.zn .cal-ley i.canc,
:root .zb.zn i.canc{
  background: var(--n-sup-3);
  border: 2px dashed var(--n-coral);
}

/* bloqueo de agenda (li.ag-bloq) en lista y en calendario */
:root .zb.zn .ag-lista li.ag-bloq,
:root .zb.zn .cal-lista li.ag-bloq{
  background: var(--n-sup-2);
  border: 1px solid var(--n-linea);
  color: var(--n-texto);
}
:root .zb.zn .ag-lista li.ag-bloq span,
:root .zb.zn .cal-lista li.ag-bloq span{
  color: var(--n-texto);
}

/* etiqueta de evento (.cal-et) */
:root .zb.zn .cal-et,
:root .zb.zn em.cal-et,
:root .zb.zn .p-lista .p-cancelada em{
  background: var(--n-sup-3);
  border-color: var(--n-control);
  color: var(--n-texto);
}

/* cita agrupada de la rejilla semanal + su contador y su título */
:root .zb.zn .cg-grupo,
:root .zb.zn a.cg-cita.cg-grupo{
  background: var(--n-sup-3);
  border-color: var(--n-violeta);
  color: var(--n-tinta);
  box-shadow: none;
}
:root .zb.zn .cg-grupo span.n{
  background: var(--n-menta-tinte);
  border: 1px solid var(--n-linea);
  color: var(--n-menta);
}
:root .zb.zn .cg-grupo span.n.x{
  background: var(--n-sup-2);
  border: 1px dashed var(--n-control);
  color: var(--n-texto);
}
:root .zb.zn .cg-grupo span.q{
  color: var(--n-tinta);
}
:root .zb.zn .cg-grupo span.q.x{
  color: var(--n-mut);
}

/* --- 3 · CONMUTADOR / PESTAÑA ACTIVA: fondo --n-tinta real + texto oscuro --- */
:root .zb.zn .zb-tabs a[aria-current="true"],
:root .zb.zn .p-rs-per a[aria-current="true"],
:root .zb.zn .zc-sub a[aria-current="true"],
:root .zb.zn .ag-nav a[aria-current="page"],
:root .zb.zn .lang-switch a[aria-current="true"]{
  background-color: var(--n-tinta) !important;
  background-image: none !important;
  border-color: var(--n-tinta) !important;
  color: #0b0a14 !important;
}
:root .zb.zn .zb-tabs a[aria-current="true"] .zb-n,
:root .zb.zn .p-rs-per a[aria-current="true"] .zb-n{
  color: #0b0a14 !important;
}

/* --- 4 · TEXTOS: contraste ≥ 4,5:1 sobre su fondo real --- */

/* “9:00” de la ilustración del calendario en la pantalla de entrar */
:root .zb.zn.zb-entrar .zd-cal i,
:root .zb.zn .zd-hora i,
:root .zb.zn .zd-cal i{
  color: var(--n-texto);
}

/* rango / proporción de las métricas */
:root .zb.zn .p-rs-cab p[data-rs]{
  color: var(--n-texto);
}

/* frase de valor resaltada (<b>) dentro de los avisos de inicio/calendario */
:root .zb.zn b,
:root .zb.zn strong{
  color: var(--n-tinta);
}

/* --- 5 · SIN SCROLL HORIZONTAL a 390 / 768 --- */

/* barras de pestañas y contadores (.zb-tabs, .zb-llamadas-lista, .ag-nav) */
:root .zb.zn .zb-tabs,
:root .zb.zn .ag-nav,
:root .zb.zn .cal-barra{
  display: flex;
  flex-wrap: wrap;
  min-width: 0;
  max-width: 100%;
}
:root .zb.zn .zb-tabs a,
:root .zb.zn .ag-nav a,
:root .zb.zn .cal-barra a{
  min-width: 0;
  flex: 0 1 auto;
}
:root .zb.zn .zb-tabs a .zb-n,
:root .zb.zn span.zb-n{
  flex: 0 0 auto;
  white-space: nowrap;
}

/* rejilla semanal: el contenedor scrollea, las columnas pueden encogerse */
:root .zb.zn .cg{
  min-width: 0;
  max-width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
:root .zb.zn .cg-col,
:root .zb.zn .cg-col.cg-hoy,
:root .zb.zn .cg-cab,
:root .zb.zn .cg-cerr,
:root .zb.zn .cg-pista,
:root .zb.zn .cg-ahora,
:root .zb.zn .cg-cab a,
:root .zb.zn .cg-cab a b,
:root .zb.zn .cg-cab small{
  min-width: 0;
  box-sizing: border-box;
}
:root .zb.zn .cg-cab{
  flex-wrap: wrap;
}

/* Retoques de Claude tras la segunda auditoría (24 oct): la frase de valor lleva un verde fijo en .p-valor b, y la fecha de
   Resultados no tiene data-rs; la fila de llamada seleccionada NO es una pestaña y se queda oscura. */
:root .zb.zn .p-valor b{color:var(--n-tinta)}
:root .zb.zn .p-rs-cab p{color:var(--n-texto)}

/* =================== Auditoría panel 20261025: B1, B2, A3, A5 ===================
   Las hojas ESTILO de bienvenida.py y minutos_v2.py ponen fondo blanco fijo; en noche
   el texto lavanda queda sobre blanco (1,1:1). Estas reglas noche, con prefijo
   :root .zb.zn, superan a ESTILO por especificidad. Tintas de la noche ya definidas
   arriba: --n-sup #100e1d, --n-texto #d9d5f0, --n-tinta #f3f0ff, --n-mut #a7a2c6,
   --n-menta #7dffbf, tinta oscura sobre menta #0b0a14. */
/* B1: bienvenida */
:root .zb.zn .bv-card{background:var(--n-sup);border-color:var(--n-linea);color:var(--n-texto)}
:root .zb.zn .bv-card:has(.bv-q:checked){background:var(--n-sup-2);border-color:var(--n-control)}
:root .zb.zn .bv-nombre{color:var(--n-tinta)}
:root .zb.zn .bv-card:has(.bv-q:checked) .bv-nombre{color:var(--n-mut)}
:root .zb.zn .bv-dia{background:var(--n-sup);border-color:var(--n-linea)}
:root .zb.zn .bv-campos label,:root .zb.zn .bv-otro label,:root .zb.zn .bv-horas label{color:var(--n-texto)}
:root .zb.zn .bv-campos input,:root .zb.zn .bv-otro input,:root .zb.zn .bv-horas select{background:rgba(255,255,255,.04);color:var(--n-tinta);border-color:var(--n-control)}
:root .zb.zn .bv-chip span{background:var(--n-sup-2);color:var(--n-texto);border-color:var(--n-control)}
:root .zb.zn .bv-chip input:checked+span{background:var(--n-menta);color:#0b0a14;border-color:var(--n-menta)}
:root .zb.zn .bv-quitar{background:var(--n-sup-2);color:var(--n-tinta);border-color:var(--n-control)}
:root .zb.zn .bv-q:checked+.bv-cab .bv-quitar{background:var(--n-menta);color:#0b0a14;border-color:var(--n-menta)}
:root .zb.zn .bv-q:checked+.bv-cab .bv-quitar .bv-des{color:#0b0a14}
:root .zb.zn .bv-aviso{background:var(--n-sup);border-color:var(--n-rojo);color:var(--n-texto)}
:root .zb.zn .bv-aviso.espera{background:var(--n-sup-2);border-color:var(--n-control)}
:root .zb.zn .bv-estado{background:var(--n-menta);color:#0b0a14;border-color:var(--n-menta)}
:root .zb.zn .bv-c:checked~.bv-estado{background:var(--n-sup-2);color:var(--n-mut);border-color:var(--n-control)}
:root .zb.zn .bv-anadir{background:var(--n-menta);color:#0b0a14;border-color:var(--n-menta)}
:root .zb.zn .bv-dia.bv-mal{border-color:var(--n-rojo)}
/* B2: tarjeta de minutos */
:root .zb.zn .zb-mv2-dio div{background:var(--n-sup);border-color:var(--n-linea)}
:root .zb.zn .zb-mv2-dio b{color:var(--n-tinta)}
:root .zb.zn .zb-mv2-dio span{color:var(--n-mut)}
:root .zb.zn .zb-mv2 .anillo .pista{stroke:rgba(255,255,255,.14)}
:root .zb.zn .zb-mv2 .anillo .uso{stroke:var(--n-menta)}
:root .zb.zn .zb-mv2 .anillo.lleno .uso,:root .zb.zn .zb-mv2 .anillo.completo .uso{stroke:var(--n-menta)}
:root .zb.zn .zb-mv2 .anillo text{color:var(--n-tinta)}
:root .zb.zn .zb-mv2 .barras rect{fill:rgba(125,255,191,.45)}
:root .zb.zn .zb-mv2 .barras .hoy{fill:var(--n-menta)}
:root .zb.zn .zb-mv2 .barras text{color:var(--n-texto)}
:root .zb.zn .zb-mv2 th,:root .zb.zn .zb-mv2 td{border-color:var(--n-linea)}
/* A3: pestañas de Llamadas a menos de 600 px: en dos filas, como en clásico, no en una fila que se pisa */
@media(max-width:600px){
  :root .zb.zn .zb-tabs,:root .zb.zn .zb-ll>.zc-ficha-osc .zb-tabs{display:flex;flex-wrap:wrap;overflow-x:visible;max-width:100%}
  :root .zb.zn .zb-ll>.zc-ficha-osc .zb-tabs{-webkit-mask-image:none;mask-image:none;padding-right:0;border-radius:22px}   /* dos filas: sin forma de píldora */
}
/* A5: botón principal del paso 6 del tour */
:root .zb.zn .rc a.rc-sig{color:#0b0a14}
/* M6: avisos con reservas caído (ag-aviso): en noche, el beige claro con texto lavanda daba 2,22:1.
   Fondos oscuros teñidos con texto crema (contraste estático alto); la variante ok, igual: verde claro con
   lavanda también fallaba. La clase ya no lleva estilo en línea en clientes.py, así esta hoja puede mandar. */
:root .zb.zn .ag-aviso{background:#12291a;color:#d5f0dc;border-color:#388669}
:root .zb.zn .ag-aviso.mal{background:#241a08;color:#f5e6c4;border-color:#c98f2d}
/* M9: la demo animada de entrar en noche: el día («Thursday») era coral #ff7a59 sobre verde oscuro (1,57:1) y
   la hora de la cita, texto claro sobre coral (2,23:1). Día en tinta clara y chip de cita con tinta oscura. */
:root body.zb.zb-entrar.zn .zd-cal-t{color:var(--n-tinta)}
:root body.zb.zb-entrar.zn .zd-hora-cita em{color:#0b0a14}
/* M11: hojas ESTILO con fondo blanco que la noche no sobrescribía. Revisión estática, selector a selector:
   se arreglan solo las que heredan el texto lavanda de la noche sobre blanco (~2:1). NO se tocan .cg-canc
   (color #333 explícito sobre blanco, 12,6:1) ni las burbujas .cv-t p (tinta explícita en los dos lados).
   Las etiquetas .cv-q/.cv-nota sí fallaban: marrón #4a453c sobre el fondo oscuro de la noche. */
:root .zb.zn .ag-tabla td{background:var(--n-sup);color:var(--n-texto);border-color:var(--n-linea)}
:root .zb.zn .ag-tabla td.ag-libre a{color:var(--n-mut)}
:root .zb.zn .ag-form fieldset{background:var(--n-sup);color:var(--n-texto);border-color:var(--n-linea)}
:root .zb.zn .ct-fila{background:var(--n-sup);color:var(--n-texto);border-color:var(--n-linea)}
:root .zb.zn .p-cm-mal{background:#241a08;color:#f5e6c4;border-color:#c98f2d}
:root .zb.zn .p-cm-ok{background:#12291a;color:#d5f0dc;border-color:#388669}
:root .zb.zn .cv-q,:root .zb.zn .cv-nota{color:var(--n-mut)}
:root .zb.zn .dt-ops>details{background:var(--n-sup);color:var(--n-texto)}
/* 2FA (.p-2fa-fila, .p-2fa-codigos): lo lleva el PR #98 (noche de las páginas sueltas), medido allí; aquí no se repite. */
:root .zb.zn .p-svcs li{background:var(--n-sup);color:var(--n-texto);border-color:var(--n-linea)}
:root .zb.zn .pp-conm label{background:var(--n-sup);color:var(--n-texto)}
:root .zb.zn .pp-aviso{background:var(--n-sup);color:var(--n-texto)}
:root .zb.zn .p-rs-aviso{background:var(--n-sup);color:var(--n-texto);border-color:var(--n-linea)}
:root .zb.zn .p-rs-aviso a{color:var(--n-menta)}
/* Revisión PR 56 (26 oct): las citas ya hechas de la tarjeta Hoy (panel_v2, .v2-hecha) llevaban opacity:.6 en toda la fila; en
   noche la hora, el servicio y «Done» quedaban bajo 4,5:1 (axe serious, solo visible cuando una cita de hoy ya pasó, por eso la
   auditoría no lo vio). Se apagan con el color tenue de la noche (#a7a2c6 sobre #100e1d, 7,7:1), no con opacidad. */
:root .zb.zn .v2-hecha{opacity:1}
:root .zb.zn .v2-hecha .zb-que b,:root .zb.zn .v2-hecha .zb-que small,:root .zb.zn .v2-hecha .zb-cuando,:root .zb.zn .v2-hecha [data-v2="hecha"]{color:var(--n-mut)}
/* Revisión PR 56 (26 oct): «Help/Ayuda», el último del lateral, cae sobre el resplandor del fondo y daba 4,43:1 por píxel
   (axe lo deja en «incomplete»; fixture del PR #87). Solo ese enlace sube a --n-texto; el resto del lateral, igual. */
:root .zb.zn .pl-nav a[data-pl="ayuda"]:not([aria-current="page"]){color:var(--n-texto)}

/* Emergencias (registro/emergencias.py): la sección usa las fichas de la noche; solo se remata lo propio:
   los avisos de guardado/prueba (en clásico son pasteles claros: con tinta clara encima no se leerían) y el vídeo. */
:root .zn .p-em .p-em-ok{background:var(--n-menta-tinte);color:var(--n-menta);border-color:rgba(125,255,191,.35)}
:root .zn .p-em .p-em-mal{background:var(--n-rojo-tinte);color:var(--n-rojo);border-color:rgba(255,138,148,.35)}
:root .zn .p-em code{background:var(--n-sup-2);color:var(--n-texto);padding:1px 6px;border-radius:6px}
:root .zn .p-em fieldset>legend{color:var(--n-tinta)}
