/* Portal del cliente · Gesadem — diseño elegido el 30/09/2026:
   menú lateral de secciones grandes (variante A) con el inicio en tablero (variante B),
   iconos y color propios por sección, y vista clara u oscura con un botón. */
@font-face{font-family:"IBM Plex Sans";font-weight:400;font-display:swap;src:url(fuentes/plex-sans-400.woff2) format("woff2")}
@font-face{font-family:"IBM Plex Sans";font-weight:500;font-display:swap;src:url(fuentes/plex-sans-500.woff2) format("woff2")}
@font-face{font-family:"IBM Plex Sans";font-weight:600;font-display:swap;src:url(fuentes/plex-sans-600.woff2) format("woff2")}
@font-face{font-family:"IBM Plex Sans";font-weight:700;font-display:swap;src:url(fuentes/plex-sans-700.woff2) format("woff2")}
@font-face{font-family:"IBM Plex Sans Condensed";font-weight:600;font-display:swap;src:url(fuentes/plex-cond-600.woff2) format("woff2")}
@font-face{font-family:"IBM Plex Mono";font-weight:400;font-display:swap;src:url(fuentes/plex-mono-400.woff2) format("woff2")}

/* Colores: claro por defecto; oscuro si el equipo lo tiene puesto (sin elección
   guardada) o si el cliente lo elige con el botón (data-modo en <html>). */
:root{
  color-scheme:light;
  --bg:#F2F4F7; --surface:#FFFFFF; --sunken:#E9EDF2; --ink:#16202B; --muted:#5A6676;
  --line:#D8DEE6; --brand:#12263b; --brand-ink:#FFFFFF; --brand-soft:#E3EAF2; --brand-2:#2d4d70;
  --boton:#12263b; --link:#245C94; --pdf:#B04545;
  --ok:#2C7A57; --ok-soft:#E1F1E8; --warn:#9A6414; --warn-soft:#F7ECD9; --idle:#6B7685; --idle-soft:#E8EBEF;
  --c-inicio:#12263b; --c-docs:#3D6A9C; --c-fact:#2B7565; --c-nom:#8A5A24; --c-imp:#8C3D58; --c-cua:#4B5A8E; --c-fir:#667381; --c-con:#56702B;
  --t-inicio:#E3EAF2; --t-docs:#E4ECF5; --t-fact:#E0F0EB; --t-nom:#F4EADC; --t-imp:#F3E3E9; --t-cua:#E6E9F4; --t-fir:#E9ECEF; --t-con:#EAF0DD;
  --sans:"IBM Plex Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  --cond:"IBM Plex Sans Condensed","Arial Narrow",system-ui,sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,Consolas,monospace;
}
@media (prefers-color-scheme:dark){
  :root:not([data-modo="claro"]){
    color-scheme:dark;
    --bg:#222F3E; --surface:#2C3A4B; --sunken:#344457; --ink:#F2F5F8; --muted:#BFCAD6; --line:#4A5D73;
    --brand-soft:#334963; --boton:#3D6794; --link:#A3CBF2; --pdf:#F2A0A0;
    --ok:#7FD6AC; --ok-soft:#24493A; --warn:#EDC57E; --warn-soft:#4D3E21; --idle:#BCC6D1; --idle-soft:#3A4A5D;
    --c-inicio:#A9C9EC; --c-docs:#98BEE6; --c-fact:#7FD0BA; --c-nom:#E8BC86; --c-imp:#EBA3BE; --c-cua:#B4BFEC; --c-fir:#B6C0CB; --c-con:#BEDA8A;
    --t-inicio:#334963; --t-docs:#304661; --t-fact:#264B42; --t-nom:#4D3D27; --t-imp:#503243; --t-cua:#384163; --t-fir:#394450; --t-con:#3A4B2A;
  }
}
:root[data-modo="oscuro"]{
  color-scheme:dark;
  --bg:#222F3E; --surface:#2C3A4B; --sunken:#344457; --ink:#F2F5F8; --muted:#BFCAD6; --line:#4A5D73;
  --brand-soft:#334963; --boton:#3D6794; --link:#A3CBF2; --pdf:#F2A0A0;
  --ok:#7FD6AC; --ok-soft:#24493A; --warn:#EDC57E; --warn-soft:#4D3E21; --idle:#BCC6D1; --idle-soft:#3A4A5D;
  --c-inicio:#A9C9EC; --c-docs:#98BEE6; --c-fact:#7FD0BA; --c-nom:#E8BC86; --c-imp:#EBA3BE; --c-cua:#B4BFEC; --c-fir:#B6C0CB; --c-con:#BEDA8A;
  --t-inicio:#334963; --t-docs:#304661; --t-fact:#264B42; --t-nom:#4D3D27; --t-imp:#503243; --t-cua:#384163; --t-fir:#394450; --t-con:#3A4B2A;
}
[data-s="inicio"]{--c:var(--c-inicio);--t:var(--t-inicio)} [data-s="docs"]{--c:var(--c-docs);--t:var(--t-docs)}
[data-s="fact"]{--c:var(--c-fact);--t:var(--t-fact)} [data-s="nom"]{--c:var(--c-nom);--t:var(--t-nom)}
[data-s="imp"]{--c:var(--c-imp);--t:var(--t-imp)} [data-s="cua"]{--c:var(--c-cua);--t:var(--t-cua)}
[data-s="fir"]{--c:var(--c-fir);--t:var(--t-fir)} [data-s="gc"]{--c:var(--c-chat);--t:var(--t-chat)} [data-s="con"]{--c:var(--c-con);--t:var(--t-con)}

*{box-sizing:border-box}
html,body{margin:0}
body{background:var(--bg);color:var(--ink);font:15px/1.5 var(--sans);min-height:100vh;display:flex;flex-direction:column}
a{color:var(--link)}
h1,h2,h3{margin:0;line-height:1.2;text-wrap:balance}
p{margin:0}
svg{flex:none}
.num{font-variant-numeric:tabular-nums}
.mono{font-family:var(--mono);font-size:13px}
.mut{color:var(--muted);font-size:13px}
.oculto{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.sprite{position:absolute;width:0;height:0}
:focus-visible{outline:2px solid var(--link);outline-offset:2px}

/* icono de sección: cuadrado de su color con el dibujo */
.chip{width:40px;height:40px;border-radius:11px;display:grid;place-items:center;background:var(--t);color:var(--c)}
.chip svg{width:22px;height:22px}
.chip.p{width:32px;height:32px;border-radius:9px}.chip.p svg{width:18px;height:18px}
.ico{width:18px;height:18px;color:var(--c,var(--muted))}
.ico.pdf{color:var(--pdf)}
.ico.bien{color:var(--ok)}
.ico.grande{width:28px;height:28px}

/* cabecera */
.cab{display:flex;align-items:center;gap:12px;background:var(--brand);color:var(--brand-ink);padding:10px 20px}
.logo{width:32px;height:32px;border-radius:7px;background:#fff;color:#12263b;display:grid;place-items:center;font:700 16px var(--sans);flex:none;text-decoration:none}
.marca{font-weight:600;font-size:14.5px;min-width:0}
.marca small{display:block;font-weight:400;opacity:.8;font-size:12.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cab .der{margin-left:auto;display:flex;align-items:center;gap:10px;font-size:13.5px}
.cab .quien{text-align:right;line-height:1.25}
.cab .quien small{display:block;opacity:.75;font-size:12px}
.avatar{width:32px;height:32px;border-radius:50%;background:var(--brand-2);display:grid;place-items:center;font:600 12.5px var(--sans);flex:none}
.cab form{margin:0}
.btn-cab{font:500 13px var(--sans);color:#fff;background:transparent;border:1px solid rgba(255,255,255,.35);border-radius:7px;padding:0 11px;cursor:pointer;min-height:36px;display:inline-flex;align-items:center;gap:6px}
.btn-cab:hover{background:rgba(255,255,255,.1)}
.btn-cab svg{width:17px;height:17px}
.cab select{font:500 13px var(--sans);color:#12263b;border-radius:7px;border:0;padding:6px 8px;min-height:36px;max-width:240px}
/* el botón del tema enseña lo que va a poner: la luna en claro, el sol en oscuro */
.tema .a-claro{display:none}
:root[data-modo="oscuro"] .tema .a-claro{display:inline}
:root[data-modo="oscuro"] .tema .a-oscuro{display:none}
@media (prefers-color-scheme:dark){
  :root:not([data-modo]) .tema .a-claro{display:inline}
  :root:not([data-modo]) .tema .a-oscuro{display:none}
}

/* cuerpo: menú de secciones a la izquierda */
.cuerpo{flex:1;display:grid;grid-template-columns:288px minmax(0,1fr);min-height:0}
.lado{border-right:1px solid var(--line);padding:16px 12px;display:flex;flex-direction:column;gap:4px;background:var(--surface)}
.item{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:12px;color:var(--ink);text-decoration:none;min-height:62px;border:1px solid transparent}
a.item:hover{background:var(--sunken)}
.item[aria-current="page"]{background:var(--t);border-color:color-mix(in srgb,var(--c) 30%,transparent)}
.item[aria-current="page"] .chip{background:var(--c);color:var(--surface)}
.item b{display:block;font-size:15px;font-weight:600}
.item small{display:block;color:var(--muted);font-size:12.5px;line-height:1.3}
.item .cont{margin-left:auto;font:600 12px var(--sans);background:var(--c);color:var(--surface);border-radius:999px;padding:2px 9px;font-variant-numeric:tabular-nums}
.item.off{opacity:.6}
.lado .sep{height:1px;background:var(--line);margin:8px 6px}
.lado .rot{font:600 11.5px var(--cond);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding:6px 12px 2px}
.lado .pie{margin-top:auto;font-size:12.5px;color:var(--muted);padding:12px;display:flex;align-items:center;gap:8px}

.main{padding:24px 30px 44px;display:flex;flex-direction:column;gap:16px;min-width:0;max-width:1140px}
.miga{font-size:13.5px;color:var(--muted);display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.miga a{color:var(--muted);text-decoration:none}
.miga a:hover{color:var(--link);text-decoration:underline}
.miga b{color:var(--ink);font-weight:600}
.titulo-sec{display:flex;align-items:center;gap:14px}
.titulo-sec .chip{flex-shrink:0}
.titulo-sec h1{font-size:23px;font-weight:600;letter-spacing:-.01em}
.titulo-sec p{color:var(--muted);font-size:13.5px}

/* avisos */
.aviso{display:flex;gap:10px;align-items:flex-start;border-radius:9px;padding:11px 14px;font-size:13.5px;background:var(--t,var(--brand-soft))}
.aviso.ok{background:var(--ok-soft)}
.aviso.warn{background:var(--warn-soft)}

/* inicio en tablero: una tarjeta por sección */
.mosaico{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.tesela{background:var(--surface);border:1px solid var(--line);border-top:4px solid var(--c);border-radius:14px;padding:18px 20px;display:flex;flex-direction:column;gap:14px;text-decoration:none;color:var(--ink);min-width:0}
a.tesela:hover{box-shadow:0 12px 26px -18px rgba(18,38,59,.6);border-color:color-mix(in srgb,var(--c) 45%,var(--line))}
.tesela .cab-t{display:flex;align-items:center;gap:12px}
.tesela h2{font-size:17px}
.tesela .cab-t small{display:block;color:var(--muted);font-size:12.5px}
.tesela .dato{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.tesela .dato b{font-size:28px;font-variant-numeric:tabular-nums;line-height:1}
.tesela .dato b.l{font-size:18px}
.tesela .dato span{color:var(--muted);font-size:13.5px}
.tesela .ult{font-size:12.5px;color:var(--muted);border-top:1px solid var(--line);padding-top:10px;display:flex;justify-content:space-between;gap:10px;align-items:baseline}
.tesela .ult span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.tesela .ult i{font-style:normal;color:var(--c);font-weight:600;white-space:nowrap}
.tesela.off{opacity:.6;border-top-color:var(--line)}

/* listas */
.lista{border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--surface)}
.fila{display:grid;grid-template-columns:minmax(0,1fr) 170px 120px;gap:12px;align-items:center;padding:10px 14px;border-top:1px solid var(--line);font-size:14px;color:var(--ink);text-decoration:none}
.fila:first-child{border-top:0}
a.fila:hover{background:var(--sunken)}
.fila.cab-lista{background:var(--sunken);font:600 11.5px var(--cond);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.fila .n{display:flex;align-items:center;gap:10px;min-width:0}
.fila .n span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.fila .m{color:var(--muted);font-size:13px}
.vacio{padding:18px 14px;color:var(--muted);font-size:13.5px}
.pastilla{display:inline-flex;align-items:center;font:600 12px var(--sans);border-radius:999px;padding:3px 10px;white-space:nowrap;justify-self:start}
.p-ok{background:var(--ok-soft);color:var(--ok)}
.p-warn{background:var(--warn-soft);color:var(--warn)}
.p-idle{background:var(--idle-soft);color:var(--idle)}
.nota{font-size:13px;color:var(--muted)}

/* enviar facturas */
.soltar{border:2px dashed color-mix(in srgb,var(--c-fact) 45%,var(--line));border-radius:12px;padding:20px;display:flex;gap:16px;align-items:center;background:var(--t-fact)}
.soltar.encima{border-color:var(--c-fact);border-style:solid}
.soltar b{display:block;font-size:15px}
.soltar p{font-size:13px;color:var(--muted);margin-top:2px}
.crece{flex:1}
.btn{font:600 14px var(--sans);border:0;border-radius:8px;padding:10px 16px;background:var(--boton);color:#fff;white-space:nowrap;cursor:pointer;min-height:44px;display:inline-flex;align-items:center;gap:8px;text-decoration:none}
.btn:hover{filter:brightness(1.15)}
.btn.sec{background:var(--surface);color:var(--ink);border:1px solid var(--line)}
.anios{display:flex;gap:6px;flex-wrap:wrap}
.anios a{font:500 13px var(--sans);text-decoration:none;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:6px 13px}
.anios a[aria-current="page"]{background:var(--boton);color:#fff;border-color:var(--boton)}

.botones-envio{display:flex;gap:8px;flex-wrap:wrap}
.ico.blanco{color:#fff;width:20px;height:20px}
/* «Hacer una foto» solo donde hay cámara a mano: pantallas táctiles */
.solo-movil{display:none}
@media (pointer:coarse){.solo-movil{display:inline-flex}}

/* entrar */
.acceso{flex:1;display:flex;flex-direction:column;align-items:center;gap:20px;padding:56px 16px;background:linear-gradient(180deg,var(--brand) 0 180px,var(--bg) 180px)}
.tarjeta{width:380px;max-width:100%;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:28px;display:flex;flex-direction:column;gap:14px;box-shadow:0 14px 34px -22px rgba(18,38,59,.55)}
.tarjeta .logo{width:44px;height:44px;font-size:22px;background:var(--brand);color:#fff}
.tarjeta p{font-size:14px;color:var(--muted)}
.tarjeta ul{margin:0;padding-left:18px;font-size:13.5px;color:var(--muted);display:flex;flex-direction:column;gap:4px}
.tarjeta form{margin:0}
.tarjeta .btn{width:100%;justify-content:center}
.t-tarjeta{font-size:21px}

/* pie y textos legales */
.pie-web{text-align:center;font-size:12.5px;color:var(--muted);padding:14px 16px;border-top:1px solid var(--line);background:var(--surface)}
.pie-web a{color:var(--muted)}
.legal-texto{max-width:760px;display:flex;flex-direction:column;gap:12px;font-size:14.5px}
.centrado{margin:0 auto}

/* móvil: el menú pasa arriba como botones con su icono */
.nav-movil{display:none}
@media (max-width:860px){
  .cuerpo{grid-template-columns:minmax(0,1fr)}
  .lado{display:none}
  .nav-movil{display:flex;gap:6px;overflow-x:auto;padding:10px 14px;background:var(--surface);border-bottom:1px solid var(--line)}
  .nav-movil a{flex:none;display:flex;align-items:center;gap:7px;text-decoration:none;color:var(--ink);font-size:13.5px;font-weight:600;border:1px solid var(--line);border-radius:12px;padding:5px 12px 5px 5px}
  .nav-movil a[aria-current="page"]{background:var(--t);border-color:color-mix(in srgb,var(--c) 30%,transparent)}
  .nav-movil .cont{font:600 11px var(--sans);background:var(--c);color:var(--surface);border-radius:999px;padding:1px 7px;margin-left:2px}
  .main{padding:16px}
  .cab{padding:10px 14px}
  .cab .quien,.tema .txt,.marca .sin-movil{display:none}
  .mosaico{grid-template-columns:minmax(0,1fr)}
  .fila{grid-template-columns:minmax(0,1fr) 100px}
  .fila > :nth-child(3){display:none}
  .soltar{flex-direction:column;align-items:flex-start}
}
@media (prefers-reduced-motion:no-preference){.tesela,.item{transition:background .15s,box-shadow .15s,border-color .15s}}

/* ── Cuadro de mando (tres niveles; los colores salen de las variables del tema) ── */
:root{--s-antes:#B7C0CC;--crit:#A93A3A;--crit-soft:#F6E1E1}
@media (prefers-color-scheme:dark){:root:not([data-modo="claro"]){--s-antes:#5C6B7D;--crit:#F2A0A0;--crit-soft:#4A2A2A}}
:root[data-modo="oscuro"]{--s-antes:#5C6B7D;--crit:#F2A0A0;--crit-soft:#4A2A2A}
.p-mal{background:var(--crit-soft);color:var(--crit)}
.mal{color:var(--crit)!important}.bien{color:var(--ok)!important}.ojo{color:var(--warn)!important}
.cuadro{display:flex;flex-direction:column;gap:16px}
.cm-contab{font-size:13px;color:var(--muted)}
.cm-mandos{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between}
.segmento{display:inline-flex;border:1px solid var(--line);border-radius:9px;overflow:hidden;background:var(--surface)}
.segmento button{font:500 13.5px var(--sans);color:var(--ink);background:transparent;border:0;padding:8px 14px;cursor:pointer;min-height:38px}
.segmento button[aria-pressed="true"]{background:var(--c-cua);color:var(--surface)}
.filtros{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:13px}
.filtro{font:500 13px var(--sans);color:var(--ink);background:var(--t-cua);border:1px solid color-mix(in srgb,var(--c-cua) 35%,transparent);border-radius:999px;padding:4px 11px;cursor:pointer}
.enlace{font:500 13px var(--sans);color:var(--link);background:none;border:0;cursor:pointer;text-decoration:underline;padding:4px}
.cm-bloque{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:16px 18px;display:flex;flex-direction:column;gap:12px;min-width:0}
.cm-cab h2{font-size:16.5px}
.cm-cab p{font-size:13px;color:var(--muted);margin-top:2px}
.cm-rejilla{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}
.conclusiones{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.conclusiones li{display:flex;gap:10px;align-items:baseline;font-size:14.5px;line-height:1.45}
.conclusiones .pastilla{min-width:84px;justify-content:center}
.cm-cifras{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.cm-cifras.n5{grid-template-columns:repeat(5,minmax(0,1fr))}
.cm-cifras.n6{grid-template-columns:repeat(3,minmax(0,1fr))}
.cm-cifra{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:14px 16px;display:flex;flex-direction:column;gap:4px;min-width:0}
.cm-cifra .cm-t{font-size:12.5px;color:var(--muted)}
.cm-cifra b{font-size:25px;font-variant-numeric:tabular-nums;line-height:1.15;color:var(--ink)}
.cm-cifra .cm-p{font-size:12.5px;color:var(--muted)}
.grafico{width:100%;height:auto;display:block;overflow:visible}
.grafico .rejilla{stroke:var(--line);stroke-width:1}
.grafico .cero{stroke:var(--muted);stroke-width:1}
.grafico .eje{fill:var(--muted);font:11.5px var(--sans)}
.grafico .eje.fuerte{fill:var(--ink);font-weight:600}
.grafico .barra.s-este{fill:var(--c-cua)} .grafico .barra.s-antes{fill:var(--s-antes)}
.grafico .barra.s-ingresos{fill:var(--c-fact)} .grafico .barra.s-gastos{fill:var(--c-imp)}
.grafico .barra.incompleta{opacity:.45;stroke:currentColor;stroke-dasharray:3 2}
.grafico .zona{fill:transparent;cursor:pointer}
.grafico .zona:hover{fill:var(--sunken)}
.grafico .zona.sel{fill:var(--t-cua)}
.grafico .linea{fill:none;stroke-width:2.2;stroke-linejoin:round;stroke-linecap:round}
.grafico .linea.s-este{stroke:var(--c-cua)} .grafico .linea.s-antes{stroke:var(--s-antes)}
.grafico .linea.discontinua{stroke-dasharray:6 4}
.grafico .punto{stroke:var(--surface);stroke-width:2}
.grafico .punto.s-este{fill:var(--c-cua)} .grafico .punto.s-antes{fill:var(--s-antes)}
.leyenda{display:flex;flex-wrap:wrap;gap:14px;font-size:12.5px;color:var(--muted)}
.leyenda span{display:inline-flex;align-items:center;gap:6px}
.muestra{width:12px;height:12px;border-radius:3px;display:inline-block}
.muestra.s-este{background:var(--c-cua)}.muestra.s-antes{background:var(--s-antes)}
.muestra.s-ingresos{background:var(--c-fact)}.muestra.s-gastos{background:var(--c-imp)}
.cm-tabla-sc{overflow-x:auto}
.cm-tabla{width:100%;border-collapse:collapse;font-size:13.5px}
.cm-tabla th,.cm-tabla td{padding:7px 8px;border-top:1px solid var(--line);text-align:left;vertical-align:top}
.cm-tabla thead th{border-top:0;font:600 11.5px var(--cond);letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.cm-tabla .d{text-align:right;white-space:nowrap}
.cm-tabla td small{display:block;color:var(--muted);font-size:12px;font-weight:400}
.cm-tabla tr.total td{font-weight:600}
.cm-tabla-sc .cm-tabla td,.cm-tabla-sc .cm-tabla th{text-align:right;white-space:nowrap;font-size:12.5px}
.cm-tabla-sc .cm-tabla tbody th{text-align:left;font-weight:600;color:var(--ink)}
.cm-pie3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.cm-pie3 div{display:flex;flex-direction:column;gap:2px;font-size:12.5px;color:var(--muted)}
.cm-pie3 b{font-size:17px;color:var(--ink);font-variant-numeric:tabular-nums}
.tramos{display:flex;gap:3px;border-radius:8px;overflow:hidden;min-height:54px}
.tramo{display:flex;flex-direction:column;justify-content:center;gap:1px;padding:6px 9px;min-width:0;border:0;font:inherit;text-align:left;color:#fff}
button.tramo{cursor:pointer}
.tramo span{font-size:11.5px;opacity:.9;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tramo b{font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tramo.t0{background:color-mix(in srgb,var(--c-nom) 45%,var(--surface));color:var(--ink)}
.tramo.t1{background:color-mix(in srgb,var(--c-nom) 65%,var(--surface))}
.tramo.t2{background:color-mix(in srgb,var(--c-nom) 85%,var(--surface))}
.tramo.t3{background:var(--c-nom)}
.tramo.sel{outline:3px solid var(--ink);outline-offset:-3px}
.barras-h{display:flex;flex-direction:column;gap:6px}
.bh{display:grid;grid-template-columns:minmax(0,190px) minmax(0,1fr) 96px;gap:10px;align-items:center;font:inherit;font-size:13.5px;color:var(--ink);background:none;border:0;padding:5px 6px;border-radius:7px;text-align:left}
button.bh{cursor:pointer}
button.bh:hover{background:var(--sunken)}
.bh.sel{background:var(--t-cua)}
.bh-n{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bh-b{height:12px;background:var(--sunken);border-radius:6px;overflow:hidden}
.bh-b i{display:block;height:100%;background:var(--c-docs);border-radius:6px}
.gasto .bh-b i{background:var(--c-imp)}
.bh-v{text-align:right}
.cm-ancho{grid-column:1/-1}
.cm-nivel{font-size:12.5px;color:var(--muted)}
@media (max-width:1100px){.cm-cifras.n5,.cm-cifras.n6{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:860px){
  .cm-rejilla{grid-template-columns:1fr}
  .cm-cifras,.cm-cifras.n5,.cm-cifras.n6{grid-template-columns:repeat(2,minmax(0,1fr))}
  .cm-cifra b{font-size:20px}
  .bh{grid-template-columns:minmax(0,1fr) 80px;grid-template-rows:auto auto}
  .bh-b{grid-column:1/-1;grid-row:2}
  .conclusiones .pastilla{min-width:70px}
}

/* Mandos del cuadro de mando (1/10/2026): año, periodo, desde-hasta, comparar, qué ver */
.cm-mandos{justify-content:flex-start;gap:14px 18px;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:12px 14px;align-items:flex-end}
.mando{display:flex;flex-direction:column;gap:4px;font-size:13px}
.mando .etq{font:600 11px var(--cond);letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
.mando select{font:500 14px var(--sans);color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:7px 10px;min-height:38px;max-width:100%}
.mando .dos{display:flex;gap:6px}
.mando.check{flex-direction:row;align-items:center;gap:8px;min-height:38px;cursor:pointer;font-size:14px}
.mando.check input{width:18px;height:18px;accent-color:var(--c-cua)}
.segmento.peq button{font-size:12.5px;padding:6px 11px;min-height:32px}
.cm-barra-graf{display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;align-items:center}
.chips-metrica{display:flex;flex-wrap:wrap;gap:6px}
.chips-metrica button{font:500 13px var(--sans);color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:6px 13px;cursor:pointer;min-height:34px}
.chips-metrica button[aria-pressed="true"]{background:var(--c-cua);color:var(--surface);border-color:var(--c-cua)}
.grafico .barra.fuera{opacity:.28}
.grafico .marca{stroke:var(--c-cua);stroke-width:1;stroke-dasharray:3 3}
.grafico [data-tip]{cursor:pointer}
.cm-tabla tr.marcada td{background:var(--t-cua)}
.cm-cartel{position:fixed;z-index:50;max-width:320px;background:var(--ink);color:var(--bg);font:500 12.5px/1.4 var(--sans);padding:7px 10px;border-radius:8px;pointer-events:none;box-shadow:0 8px 20px -10px rgba(0,0,0,.5)}
@media (max-width:860px){.cm-mandos{padding:10px}.mando{flex:1 1 140px}.mando select{width:100%}}

/* Firmas (vía A, 1/10/2026) */
.sala-firma{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(260px,1fr);gap:18px;align-items:start}
.sala-doc{display:flex;flex-direction:column;gap:8px}
.sala-doc iframe{width:100%;height:72vh;min-height:420px;border:1px solid var(--line);border-radius:10px;background:var(--sunken)}
.sala-lado{display:flex;flex-direction:column;gap:14px}
.caja-f{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:16px 18px;display:flex;flex-direction:column;gap:10px}
.caja-f h2{font-size:16px}
.caja-f p{font-size:14px;color:var(--muted)}
.form-firma{display:flex;flex-direction:column;gap:12px;margin:0}
.check-leido{display:flex;gap:10px;align-items:flex-start;font-size:14.5px;cursor:pointer}
.check-leido input{width:20px;height:20px;margin-top:1px;accent-color:var(--c-fir)}
.firmantes{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.firmantes li{display:flex;justify-content:space-between;gap:10px;align-items:center;font-size:14px}
.firmantes small{color:var(--muted)}
@media (max-width:860px){.sala-firma{grid-template-columns:1fr}.sala-doc iframe{height:60vh}}

/* Contabilidad (maqueta aprobada el 17/10/2026) */
.p-info{background:var(--brand-soft);color:var(--link)}
.aviso.info{background:var(--brand-soft)}
.aviso a{color:var(--link)}
.c-acciones{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.c-accion{display:flex;gap:12px;align-items:center;background:var(--t-con);border:2px dashed color-mix(in srgb,var(--c-con) 45%,var(--line));border-radius:12px;padding:14px 16px;min-width:0;color:var(--ink);text-decoration:none}
a.c-accion:hover{border-style:solid;border-color:var(--c-con)}
.c-accion b{display:block;font-size:15px}
.c-accion small{display:block;color:var(--muted);font-size:12.5px}
.c-accion.off{opacity:.55}
.c-mosaico{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.c-mosaico .tesela{gap:10px;padding:16px 18px;min-width:0}
.c-t{font-size:14px!important;font-weight:600;color:var(--muted)}
.c-fila{grid-template-columns:minmax(0,1.5fr) 110px 110px 140px 130px}
.fila .n small{display:block;color:var(--muted);font-size:12px}
.d{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.c-form{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:16px 18px;display:grid;grid-template-columns:minmax(0,1fr);gap:18px;align-items:start;margin:0}
.c-foto{display:flex;flex-direction:column;gap:8px;align-items:flex-start}
.c-campos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 16px;border:0;padding:0;margin:0;min-width:0}
.campo{display:flex;flex-direction:column;gap:4px;font-size:13px;min-width:0}
.campo .etq{font:600 11px var(--cond);letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
.campo input:not([type=radio]),.campo select,.campo textarea{font:inherit;font-size:14.5px;color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:8px 10px;min-height:42px;width:100%}
.campo textarea{min-height:60px;resize:vertical}
.ancho{grid-column:1/-1}
.seg{display:inline-flex;flex-wrap:wrap;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--bg);align-self:flex-start}
.seg label{display:flex;cursor:pointer;position:relative}
.seg input{position:absolute;opacity:0;width:1px;height:1px}
.seg span{padding:9px 13px;font-size:14px;border-left:1px solid var(--line)}
.seg label:first-child span{border-left:0}
.seg input:checked+span{background:var(--c-con);color:var(--surface);font-weight:600}
.seg input:focus-visible+span{outline:2px solid var(--link);outline-offset:-2px}
fieldset:disabled .seg label{cursor:default}
/* El aviso de inversión solo con «Equipos y vehículos» */
.c-inversion{display:none}
.c-campos:has(#categoria option[value="21x"]:checked) .c-inversion{display:flex}
.c-botones{grid-column:1/-1;display:flex;gap:8px;flex-wrap:wrap}
.btn.con{background:var(--c-con);color:var(--surface)}
.btn.peq{min-height:34px;padding:5px 12px;font-size:13px}
.c-borrar{display:flex;gap:10px;align-items:center;margin:0}
.c-pestanas{display:flex;gap:4px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.c-pestanas a{padding:8px 14px;font-weight:500;font-size:14px;color:var(--muted);border-bottom:3px solid transparent;margin-bottom:-1px;text-decoration:none}
.c-pestanas a[aria-current="page"]{color:var(--ink);border-color:var(--c-con)}
.c-pestanas small{font-weight:600;background:var(--sunken);border-radius:999px;padding:1px 7px;margin-left:5px;font-size:11.5px}
.c-leyenda .fila{grid-template-columns:1fr}
.c-leyenda .n{gap:12px}
.c-dos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}
.c-caja{background:var(--surface);border:1px solid var(--line);border-radius:12px;overflow:hidden}
.c-caja h2{font-size:15.5px;padding:12px 14px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:8px}
.c-caja .vacio{margin:0}
.c-cp{border-top:1px solid var(--line)}
.c-caja h2 + .c-cp{border-top:0}
.c-cp-fila{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px 14px;font-size:14px}
.c-cp-der{display:flex;gap:8px;align-items:center}
.c-cp summary{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px;align-items:center;padding:10px 14px;cursor:pointer;list-style:none;font-size:14px}
.c-cp summary::-webkit-details-marker{display:none}
.c-cp-n small{display:block;color:var(--muted);font-size:12px}
.c-cp[open] summary{background:var(--t-con)}
.c-cp-form{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:flex-end;padding:12px 14px;margin:0;border-top:1px dashed var(--line)}
.c-cp-form .campo{flex:1 1 140px}
@media (max-width:1180px) and (min-width:861px){
  .c-fila{grid-template-columns:minmax(0,1fr) 100px 96px 130px}
  .c-fila > :nth-child(5){display:none}
  .c-acciones,.c-mosaico{grid-template-columns:repeat(2,minmax(0,1fr))}
  .c-acciones > :last-child,.c-mosaico > :last-child{grid-column:1/-1}
}
@media (max-width:860px){
  .c-acciones,.c-mosaico,.c-dos{grid-template-columns:minmax(0,1fr)}
  .c-form{grid-template-columns:1fr}
  .c-campos{grid-template-columns:1fr}
  .c-fila{grid-template-columns:minmax(0,1fr) 100px}
  .c-fila > :nth-child(n+3){display:none}
}
/* Borrador de impuestos (segunda fase de Contabilidad, 17/10/2026) */
.c-borrador{display:flex;flex-direction:column;gap:12px}
.c-borrador > h2{font-size:18px}
.c-presentados{font-size:16px;margin-top:6px}
/* Banco del portal (segunda fase, 17/10/2026) */
.c-subir{cursor:default}
.c-subir .crece{display:flex;flex-direction:column;gap:6px;align-items:flex-start}
.c-elegir{cursor:pointer}
/* «¿Qué es este movimiento?» */
.c-explicar{grid-template-columns:1fr}
.c-seg-varios{flex-wrap:wrap}
.c-fila-botones{display:flex;gap:8px;flex-wrap:wrap}
.c-con-factura{display:none}
.c-campos:has(input[name=que][value=gasto_factura]:checked) .c-con-factura{display:flex}
.campo{position:relative}
.c-campos .oculto,.c-foto .oculto,.c-subir .oculto{left:0;top:0}
/* En el móvil, el estado (y «Explicar») en una segunda línea: es lo que importa. */
@media (max-width:860px){
  .c-fila > :nth-child(4),.c-fila > :nth-child(5){display:flex;align-items:center}
  .c-fila > :nth-child(5){justify-self:end}
  .c-fila.cab-lista > :nth-child(4),.c-fila.cab-lista > :nth-child(5){display:none}
}
.c-casar{cursor:pointer;grid-template-columns:auto minmax(0,1fr) auto;align-items:center}
.c-botones-caja{padding:12px 14px}
.c-nota-caja{font-size:12.5px;color:var(--muted);padding:8px 14px 0;margin:0}
.c-mosaico-uno{grid-template-columns:minmax(0,1fr)}

/* «Hacer una foto» o «Subir un fichero» (17/10/2026): dos botones grandes; en el móvil
   manda la foto y en el ordenador el fichero. */
.captura{display:flex;flex-direction:column;gap:10px;width:100%;max-width:560px}
.cap-botones{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.cap-gran{font:600 14px var(--sans);display:flex;align-items:center;gap:10px;text-align:left;cursor:pointer;
  border:1.5px solid var(--line);border-radius:12px;padding:12px 14px;min-height:64px;background:var(--surface);color:var(--ink)}
.cap-gran svg{width:26px;height:26px;flex:none;color:var(--c,var(--c-con))}
.cap-gran small{display:block;font-weight:400;font-size:12px;color:var(--muted)}
.cap-gran:hover{border-color:var(--c,var(--c-con))}
.es-movil .cap-foto,.es-pc .cap-fichero{background:var(--c,var(--c-con));border-color:var(--c,var(--c-con));color:var(--surface)}
.es-movil .cap-foto svg,.es-pc .cap-fichero svg,.es-movil .cap-foto small,.es-pc .cap-fichero small{color:var(--surface)}
.es-movil .cap-foto{order:-1}
.cap-paginas{display:flex;flex-direction:column;gap:8px;align-items:flex-start}
.cap-tiras{display:flex;gap:8px;flex-wrap:wrap}
.cap-pag{position:relative;width:72px;height:96px;border:1px solid var(--line);border-radius:6px;overflow:hidden;background:var(--sunken)}
.cap-pag img{width:100%;height:100%;object-fit:cover;display:block}
.cap-pag b{position:absolute;left:4px;bottom:3px;font:600 11px var(--sans);background:var(--surface);color:var(--ink);border-radius:4px;padding:0 4px}
.cap-quitar{position:absolute;top:2px;right:2px;width:24px;height:24px;border-radius:50%;border:0;cursor:pointer;
  background:var(--surface);color:var(--ink);font:600 15px/1 var(--sans);box-shadow:0 1px 3px rgba(0,0,0,.25)}
.cap-pc{display:grid;grid-template-columns:auto minmax(0,1fr);gap:14px;align-items:center;background:var(--sunken);border-radius:10px;padding:12px}
.cap-pc[hidden],.cap-webcam[hidden],.cap-paginas[hidden],[data-cap][hidden]{display:none}
.cap-qr svg{display:block;width:132px;height:132px;border-radius:6px}
.cap-pc-txt{display:flex;flex-direction:column;gap:6px;align-items:flex-start}
.cap-webcam{display:flex;flex-direction:column;gap:8px}
.cap-webcam video{width:100%;max-width:560px;border-radius:10px;background:#000}
.cap-que{display:flex;flex-direction:column;gap:4px;margin:10px 0}
.cap-que .etq{font:600 11px var(--cond);letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
[data-s="fact"] .seg input:checked+span{background:var(--c-fact)}
.soltar .captura{margin-top:4px}
@media (max-width:520px){.cap-botones{grid-template-columns:1fr}.cap-pc{grid-template-columns:1fr}}

/* Cobros (o pagos) de una factura (17/10/2026) */
.c-cobros-nuevos,.c-no-cobrado{display:none}
.c-campos:has(input[name=cobro][value=entera]:checked) .c-cobros-nuevos,
.c-campos:has(input[name=cobro][value=parte]:checked) .c-cobros-nuevos{display:flex}
.c-campos:has(input[name=cobro][value=no]:checked) .c-no-cobrado{display:flex}
.c-campos:not(:has(input[name=cobro])) .c-no-cobrado{display:flex}
.cobro-filas{display:flex;flex-direction:column;gap:8px;width:100%}
.cobro-fila{display:grid;grid-template-columns:minmax(0,160px) minmax(0,140px) minmax(0,160px) 32px;gap:10px;align-items:end}
.cobro-fila select{font:inherit;font-size:14px;min-height:40px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--ink);padding:0 8px}
.cobro-quitar{width:32px;height:32px;border-radius:50%;border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer;font:600 16px/1 var(--sans)}
.c-cobros{margin-top:16px}
.c-cobros h2{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.cobro-hecho{display:grid;grid-template-columns:100px 110px minmax(0,1fr) auto 32px;gap:10px;align-items:center;padding:8px 14px;border-top:1px solid var(--line);font-size:14px}
.cobro-hecho form{margin:0}
.c-cobros-form{display:flex;flex-direction:column;gap:10px;padding:12px 14px;border-top:1px solid var(--line)}
@media (max-width:560px){.cobro-fila{grid-template-columns:1fr 1fr}.cobro-hecho{grid-template-columns:1fr 1fr}}
.tres-botones{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px;margin:10px 0}
a.cap-gran{text-decoration:none}
#form-varias{display:flex;flex-direction:column;gap:6px}
#form-varias[hidden]{display:none}

/* El escáner (17/10/2026): pantalla completa, oscura, con las cuatro esquinas */
body.esc-abierto{overflow:hidden}
.esc-capa{position:fixed;inset:0;z-index:1000;background:#0b0f14;color:#fff;display:flex;flex-direction:column;
  padding:env(safe-area-inset-top,0px) 0 env(safe-area-inset-bottom,0px)}
.esc-cab{padding:12px 16px;font:600 15px var(--sans);text-align:center}
.esc-zona{flex:1;position:relative;overflow:hidden;display:grid;place-items:center;margin:0 10px}
.esc-lienzo{position:absolute}
.esc-vista{max-width:100%;max-height:100%;background:#fff;box-shadow:0 4px 18px rgba(0,0,0,.5)}
.esc-asa{position:absolute;width:30px;height:30px;margin:-15px 0 0 -15px;border-radius:50%;border:3px solid #fff;
  background:#4fd1b5;box-shadow:0 1px 6px rgba(0,0,0,.6);touch-action:none;cursor:grab;padding:0}
.esc-asa:focus-visible{outline:3px solid #fff;outline-offset:2px}
.esc-pie{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;padding:12px 16px}
.esc-pie .btn.sec{background:transparent;color:#fff;border-color:rgba(255,255,255,.4)}
.esc-chips{display:flex;gap:8px;justify-content:center;width:100%}
.chip-b{font:500 13px var(--sans);color:#fff;background:transparent;border:1px solid rgba(255,255,255,.4);border-radius:999px;padding:6px 14px;cursor:pointer;min-height:36px}
.chip-b[aria-pressed="true"]{background:#4fd1b5;border-color:#4fd1b5;color:#0b0f14;font-weight:600}

/* GesaScan (17/10/2026): la app y su página de instalar, una columna */
.app-cab .app-logo{width:32px;height:32px;border-radius:7px;flex:none}
.app-main{max-width:640px;width:100%;margin:0 auto;padding:16px;display:flex;flex-direction:column;gap:14px}
.app-main .captura{max-width:none}
.app-envios{margin-top:4px}
.app-compartido{background:var(--t-fact);border:1px solid var(--line);border-radius:12px;padding:14px;display:flex;flex-direction:column;gap:10px}
.app-compartido[hidden],.app-paso[hidden]{display:none}
.app-instalar h2{font-size:17px;margin:0}
.app-paso{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:14px 16px;display:flex;flex-direction:column;gap:8px}
.app-paso ol{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:4px}
.app-paso .cap-qr svg{width:180px;height:180px}
#app-cola[hidden]{display:none}
.app-huella{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:14px;display:flex;flex-direction:column;gap:10px;align-items:flex-start}
.app-huella[hidden]{display:none}
.app-movil{grid-template-columns:minmax(0,1fr) auto}
.app-movil form{margin:0}
.app-select{font:inherit;font-size:15px;min-height:42px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);padding:0 10px}
/* Sala de firmas por turnos (18/10/2026) */
.sala-ext{display:flex;flex-direction:column;gap:14px;max-width:760px}
.sala-turnos{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;font-size:13.5px}
.sala-turnos li{display:grid;grid-template-columns:28px minmax(0,1fr);gap:10px;align-items:center}
.sala-turnos .n{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font:600 12px var(--sans);background:var(--idle-soft);color:var(--idle)}
.sala-turnos li.hecho .n{background:var(--ok-soft);color:var(--ok)}
.sala-turnos li.ahora .n{background:var(--boton);color:#fff}
.sala-lector{max-height:70vh;overflow-y:auto;background:var(--sunken);border-radius:10px;padding:10px;display:flex;flex-direction:column;gap:12px}
.sala-pag{margin:0;display:flex;flex-direction:column;gap:4px}
.sala-pag img{width:100%;height:auto;background:#fff;border-radius:4px;box-shadow:0 4px 12px -8px rgba(0,0,0,.45);min-height:200px}
.sala-pag figcaption{font-size:12px;color:var(--muted);text-align:right}
.sala-paso{display:flex;flex-direction:column;gap:10px;align-items:flex-start}
.sala-chk{display:grid;grid-template-columns:22px minmax(0,1fr);gap:8px;align-items:start;font-size:14px}
.sala-chk input{width:20px;height:20px;margin:1px 0 0}
.sala-rechazo{border:1px solid var(--line);border-radius:10px;padding:10px 14px}
.sala-rechazo summary{cursor:pointer;font-size:13.5px;color:var(--muted)}
.sala-rechazo[open]{display:flex;flex-direction:column;gap:8px}
.sala-descargas{display:flex;flex-wrap:wrap;gap:8px}
.btn:disabled{opacity:.5;cursor:default;filter:none}
/* Contratos de trabajo (18/10/2026): resumen, lo voluntario y el certificado */
.sala-resumen{border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--surface)}
.sala-resumen h2{margin:0;background:var(--sunken);padding:8px 12px;font:600 11.5px var(--cond);letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
.sala-resumen dl{margin:0;display:grid;grid-template-columns:auto minmax(0,1fr);gap:5px 12px;padding:10px 12px;font-size:13.5px}
.sala-resumen dt{color:var(--muted)}
.sala-resumen dd{margin:0;font-weight:500}
.sala-resumen .nota{padding:0 12px 10px}
.sala-voluntario{border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin:0;display:flex;flex-direction:column;gap:8px}
.sala-voluntario legend{font-size:12.5px;color:var(--muted);padding:0 4px}
.sala-cert{border:1px solid var(--line);border-radius:10px;padding:10px 12px;display:grid;grid-template-columns:34px minmax(0,1fr);gap:10px;align-items:center;font-size:13.5px}
.sala-cert .sello{width:34px;height:34px;border-radius:50%;background:var(--ok-soft);color:var(--ok);display:grid;place-items:center;font-weight:700}
.sala-cert small{color:var(--muted)}
/* Sala de firmas, fase 2 (18/10/2026): firmar con DNIe o certificado (AutoFirma) */
.sala-autofirma{border:1px solid var(--line);border-radius:10px;padding:12px 14px;display:flex;flex-direction:column;gap:8px;align-items:flex-start;background:var(--surface)}
.sala-o{font-size:13.5px;color:var(--muted);margin:4px 0 0}
.sala-autofirma[hidden],.sala-o[hidden]{display:none}
/* Sala de firmas, diseño A (18/10/2026): tarjetas con los turnos y las caras de quien firma */
.sc-bloque{display:flex;flex-direction:column;gap:10px}
.sc-rot{font:600 11px var(--sans);letter-spacing:.09em;text-transform:uppercase;color:var(--muted);margin:4px 0 0}
.sc-tarjeta{display:grid;grid-template-columns:40px minmax(0,1fr) auto;gap:14px;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:14px 16px;text-decoration:none;color:var(--ink)}
.sc-tarjeta:hover{border-color:var(--muted)}
.sc-tipo{width:40px;height:40px;border-radius:11px;display:grid;place-items:center}
.sc-t-lab{background:#E7F0FA;color:#2563A8}.sc-t-alq{background:#E3F5F2;color:#0F766E}.sc-t-otro{background:#F3EAF7;color:#7C4D8F}
.sc-medio{display:flex;flex-direction:column;gap:3px;min-width:0}
.sc-medio b{font-size:15px}
.sc-medio small,.sc-der small{font-size:12.5px;color:var(--muted)}
.sc-ahora{color:var(--warn);font-weight:600}
.sc-turnos{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:6px}
.sc-grupo{display:flex}
.sc-grupo .sc-av+.sc-av{margin-left:-7px}
.sc-av{position:relative;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font:600 11px var(--sans);border:2px solid var(--surface);background:var(--idle-soft);color:var(--idle)}
.sc-av.sc-ok{background:var(--ok-soft);color:var(--ok)}.sc-av.sc-toca{background:var(--warn-soft);color:var(--warn)}.sc-av.sc-mal{background:var(--crit-soft);color:var(--crit)}
.sc-av.sc-yo{box-shadow:0 0 0 2px var(--boton)}
.sc-marca{position:absolute;right:-4px;bottom:-4px;width:15px;height:15px;border-radius:50%;display:grid;place-items:center;font-size:9px;line-height:1;color:#fff;border:2px solid var(--surface);background:var(--idle)}
.sc-ok .sc-marca{background:var(--ok)}.sc-toca .sc-marca{background:var(--warn)}.sc-mal .sc-marca{background:var(--crit)}
.sc-flecha{color:var(--muted)}
.sc-nom{font-size:12.5px;color:var(--muted)}
.sc-der{display:flex;flex-direction:column;align-items:flex-end;gap:6px;min-width:150px}
.sc-barra{width:150px;height:6px;border:0;border-radius:3px;overflow:hidden;background:var(--idle-soft);-webkit-appearance:none;appearance:none}
.sc-barra::-webkit-progress-bar{background:var(--idle-soft);border-radius:3px}
.sc-barra::-webkit-progress-value{background:var(--ok);border-radius:3px}
.sc-barra::-moz-progress-bar{background:var(--ok);border-radius:3px}
@media (max-width:640px){.sc-tarjeta{grid-template-columns:40px minmax(0,1fr)}.sc-der{grid-column:1/-1;align-items:flex-start}}
.sc-camino{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:10px 14px}
.sc-camino .sc-turnos{margin-top:0}
.sc-cuenta{margin-left:auto;font-size:12.5px;color:var(--muted)}
/* Facturar desde el portal (Camino B, 18/10/2026) */
.btn.v-nueva,.btn.v-emitir,.v-acciones .btn:not(.sec),.v-correo .btn,.c-cobros .c-cp-form .btn{background:var(--c-fact);color:var(--surface)}
.v-fila{grid-template-columns:minmax(0,1fr) 120px 150px}
.v-anulada{opacity:.6}
.v-anulada b{text-decoration:line-through}
.v-acciones{display:flex;gap:8px;flex-wrap:wrap}
.v-tabla{width:100%;border-collapse:collapse;font-size:14px}
.v-tabla th{background:var(--sunken);font:600 11px var(--cond);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);text-align:left;padding:7px 14px}
.v-tabla td{padding:8px 14px;border-top:1px solid var(--line);vertical-align:top}
.v-tabla small{display:block}
.v-tabla tfoot td{color:var(--muted)}
.v-tabla tfoot .v-total td{color:var(--ink);font-weight:700;font-size:15.5px}
.v-correo{display:flex;flex-direction:column;gap:10px;padding:12px 14px 14px;margin:0}
.v-check{display:flex;gap:8px;align-items:center;font-size:14px}
.v-anular summary{padding:12px 14px;cursor:pointer;font-weight:600;color:var(--crit)}
.btn.v-peligro{background:var(--crit);color:#fff}
.v-cli-form .btn{align-self:flex-end}
@media (max-width:860px){
  .v-fila{grid-template-columns:minmax(0,1fr) 100px}
  .v-fila > :nth-child(3){display:none}
}

.fila.v-pie-lista{display:flex;gap:14px;align-items:center;justify-content:flex-start;background:var(--t-fact)}
/* Facturar desde el portal, copia de «Facturar por un cliente» de la oficina (19/10/2026).
   Mismos bloques y textos; los colores, los del portal (claro y oscuro). «Así saldrá» es papel: blanco siempre. */
.vf-crece{flex-grow:1}
.vf-mut{color:var(--muted);font-size:13px}
.vf-btn,.vf-btn-sec,.vf-btn-plano{font:600 14px var(--sans);border-radius:11px;min-height:44px;padding:0 18px;display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;cursor:pointer;white-space:nowrap}
.vf-btn{background:var(--boton);color:#fff;border:0}
.vf-btn svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round}
.vf-btn-sec{background:var(--surface);color:var(--ink);border:1px solid var(--line);font-weight:500}
.vf-btn-plano{background:none;border:0;color:var(--muted);font-weight:500}
.vf-btn.peq,.vf-btn-sec.peq{min-height:36px;padding:0 13px;font-size:13px;border-radius:9px}
.vf-enlace{font-size:12.5px;color:var(--link)}
.vf-pastilla{display:inline-flex;font:600 11.5px var(--sans);border-radius:999px;padding:3px 10px;background:var(--t-fact);color:var(--c-fact);white-space:nowrap}
.vf-pastilla.vf-p-rect{background:var(--warn-soft);color:var(--warn)}
.vf-avatar{width:64px;height:64px;border-radius:18px;background:var(--boton);color:#fff;display:grid;place-items:center;font:700 24px var(--sans);flex:none}
.vf-avatar.peq{width:44px;height:44px;border-radius:13px;font-size:17px}
/* La ficha */
.vf-persona{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.vf-quien{flex:1;min-width:0}
.vf-quien h1{font-size:27px;letter-spacing:-.02em;line-height:1.15;margin:0}
.vf-quien p{margin:3px 0 0;color:var(--muted);font-size:13.5px}
.vf-der{display:flex;gap:10px;flex-wrap:wrap}
.vf-bloque{display:flex;flex-direction:column;gap:10px}
.vf-tit{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.vf-tit h2{font-size:19px;margin:0}
.vf-tit span{font-size:13px;color:var(--muted)}
.vf-tarjetas{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.vf-tarjeta{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:14px 16px;display:flex;flex-direction:column;gap:10px;min-width:0}
.vf-tarjeta[hidden]{display:none}
.vf-tarjeta-cab{display:flex;align-items:center;gap:11px;min-width:0}
.vf-ico{width:38px;height:38px;border-radius:11px;background:var(--t-fact);display:grid;place-items:center;flex:none}
.vf-ico svg,.vf-ico-nuevo svg{width:18px;height:18px;fill:none;stroke:var(--c-fact);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.vf-tarjeta-txt{min-width:0;display:flex;flex-direction:column}
.vf-tarjeta-txt b{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.vf-tarjeta-txt small{font-size:12px;color:var(--muted)}
.vf-tarjeta-pie{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.vf-nuevo{border:2px dashed color-mix(in srgb,var(--c-fact) 40%,var(--line));text-decoration:none;color:var(--ink);padding:18px 20px}
.vf-nuevo b{font-size:16px}
.vf-nuevo small{font-size:12.5px;color:var(--muted);line-height:1.5}
.vf-ico-nuevo{width:42px;height:42px;border-radius:12px;background:var(--t-fact);display:grid;place-items:center}
.vf-ico-nuevo svg{width:20px;height:20px;stroke-width:2.4}
.vf-ver-mas{grid-column:1/-1;justify-self:start;font:600 13.5px var(--sans);color:var(--c-fact);background:none;border:0;padding:4px;cursor:pointer}
.vf-facturas{background:var(--surface);border:1px solid var(--line);border-radius:16px;overflow:hidden;margin:0}
.vf-facturas-cab{display:flex;align-items:center;gap:12px;padding:13px 22px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.vf-facturas-cab h2{font-size:16.5px;margin:0}
.vf-anios{display:flex;gap:6px}
.vf-anios a{font-size:12.5px;border-radius:999px;padding:5px 12px;border:1px solid var(--line);color:var(--muted);text-decoration:none;background:var(--surface)}
.vf-anios a[aria-current="page"]{background:var(--boton);border-color:var(--boton);color:#fff;font-weight:600}
.vf-tabla{overflow-x:auto}
.vf-fila{display:grid;grid-template-columns:28px 90px 92px minmax(140px,1.2fr) 112px 100px 120px minmax(120px,1.3fr) 34px 34px;gap:12px;align-items:center;padding:7px 22px;border-bottom:1px solid var(--line);min-height:44px;font-size:13.5px;min-width:960px}
.vf-fila.vf-cab{background:var(--sunken);font:600 11px var(--cond);letter-spacing:.07em;text-transform:uppercase;color:var(--muted);min-height:0;padding:9px 22px}
.vf-num{font-weight:600;color:var(--c-fact);text-decoration:none;white-space:nowrap}
.vf-aquien{color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-decoration:underline;text-decoration-color:var(--line)}
.vf-estado{font-size:12.5px;color:var(--muted)}
.vf-e-total{color:var(--ok)} .vf-e-parcial{color:var(--warn)} .vf-e-anulada{color:var(--crit)}
.vf-correo{font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.vf-correo.ok{color:var(--ok)}
.vf-ico-btn{display:grid;place-items:center;width:30px;height:30px;border-radius:8px;border:1px solid var(--line);background:var(--surface)}
.vf-ico-btn svg{width:15px;height:15px;fill:none;stroke:var(--ink);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.vf-anulada{opacity:.55}
.vf-anulada .vf-num{text-decoration:line-through}
.vf-vacio{padding:16px 22px;color:var(--muted);font-size:13.5px}
/* La factura nueva */
.vf-barra{display:flex;align-items:center;gap:14px;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:10px 16px}
.vf-barra .vf-quien h1{font-size:20px}
.vf-atras{display:grid;place-items:center;width:42px;height:42px;border-radius:11px;border:1px solid var(--line);flex:none}
.vf-atras svg{width:18px;height:18px;fill:none;stroke:var(--muted);stroke-width:2.2;stroke-linecap:round}
.vf-nueva{display:flex;flex-wrap:wrap;gap:22px;align-items:flex-start}
.vf-izq{flex:1 1 560px;min-width:0;display:flex;flex-direction:column;gap:16px}
.vf-derecha{flex:0 1 420px;min-width:300px;display:flex;flex-direction:column;gap:14px;position:sticky;top:12px}
.vf-sec{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:18px 22px;display:flex;flex-direction:column;gap:14px}
.vf-sec-cab{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.vf-sec-cab h2{font-size:19px;margin:0;flex-grow:1}
.vf-circulo{width:32px;height:32px;border-radius:999px;background:var(--boton);color:#fff;display:grid;place-items:center;font:700 15px var(--sans);flex:none}
.vf-buscar{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:10px;padding:0 12px;min-height:40px;width:330px;max-width:100%;background:var(--bg)}
.vf-buscar svg{width:16px;height:16px;fill:none;stroke:var(--muted);stroke-width:2}
.vf-buscar input{border:0;background:none;font:inherit;font-size:13.5px;color:var(--ink);flex:1;min-width:0;outline:none}
.vf-dests{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.vf-dest{text-align:left;border-radius:12px;padding:10px 12px;display:flex;align-items:center;gap:10px;min-height:58px;color:var(--ink);background:var(--surface);border:1px solid var(--line);font:inherit;cursor:pointer;min-width:0}
.vf-dest.aqui{background:var(--t-fact);border:2px solid var(--c-fact)}
.vf-dest-ini{width:34px;height:34px;border-radius:10px;background:var(--t-fact);color:var(--c-fact);display:grid;place-items:center;font:700 12px var(--sans);flex:none}
.vf-dest-ini svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2.6;stroke-linecap:round}
.vf-dest.aqui .vf-dest-ini{background:var(--c-fact);color:var(--surface)}
.vf-dest-txt{min-width:0;display:flex;flex-direction:column}
.vf-dest-txt b{font-size:13.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.vf-dest-txt small{font-size:11.5px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.vf-dest-nuevo{border:2px dashed color-mix(in srgb,var(--c-fact) 40%,var(--line));color:var(--c-fact)}
.vf-res-lista{border:1px solid var(--line);border-radius:12px;overflow:hidden}
.vf-res-grupo{padding:7px 12px;background:var(--sunken);font:700 10.5px var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.vf-res-fila{display:flex;align-items:center;gap:10px;padding:9px 12px;border:0;border-top:1px solid var(--line);background:var(--surface);width:100%;text-align:left;font:inherit;color:var(--ink);cursor:pointer}
.vf-res-fila .vf-dest-txt{flex:1}
.vf-res-alta{color:var(--c-fact);font-weight:600;font-size:13px;background:var(--sunken)}
.vf-res-alta svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2.4}
.vf-elegido{display:flex;align-items:center;gap:10px;background:var(--t-fact);border-radius:10px;padding:9px 13px;font-size:13px}
.vf-elegido svg,.vf-paso svg{width:16px;height:16px;fill:none;stroke:var(--ok);stroke-width:2.6;stroke-linecap:round;flex:none}
.vf-seg{display:flex;background:var(--sunken);border-radius:10px;padding:3px;flex-wrap:wrap}
.vf-seg button{font:inherit;font-size:13px;border:0;border-radius:8px;padding:0 13px;min-height:36px;color:var(--muted);background:none;cursor:pointer}
.vf-seg button.aqui{font-weight:600;color:var(--ink);background:var(--surface);box-shadow:0 1px 3px rgba(18,38,59,.12)}
.vf-campo{display:flex;flex-direction:column;gap:5px;font-size:12px;color:var(--muted);min-width:0}
.vf-campo input,.vf-campo select,.vf-campo textarea,.vf-cxp input,.vf-extra input,.vf-op-fila input:not([type=checkbox]),.vf-art-fila input{font:inherit;font-size:14.5px;color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:0 12px;min-height:44px;width:100%;box-sizing:border-box}
.vf-campo textarea{padding:9px 12px;line-height:1.45;resize:vertical;min-height:60px}
.vf-linea{display:grid;grid-template-columns:minmax(0,1fr) 190px;gap:14px;align-items:end}
.vf-linea.con-iva{grid-template-columns:minmax(0,1fr) 96px 190px}
.vf-linea.con-x{grid-template-columns:minmax(0,1fr) 190px 28px}
.vf-linea.con-iva.con-x{grid-template-columns:minmax(0,1fr) 96px 190px 28px}
.vf-in-concepto{min-height:48px!important;font-size:15px!important}
.vf-in-importe{min-height:48px!important;font:700 22px var(--sans)!important;text-align:right;color:var(--c-fact)!important;border:2px solid var(--c-fact)!important}
.vf-x{border:0;background:none;padding:0;min-height:44px;cursor:pointer;display:grid;place-items:center}
.vf-x svg{width:15px;height:15px;fill:none;stroke:var(--muted);stroke-width:2.4;stroke-linecap:round}
.vf-cxp{border:1px solid var(--line);border-radius:11px;overflow:hidden}
.vf-cxp-fila{display:grid;grid-template-columns:minmax(0,1fr) 80px 100px 100px 28px;gap:12px;align-items:center;padding:6px 14px;border-bottom:1px solid var(--line)}
.vf-cxp-fila.vf-cab{background:var(--sunken);font:600 11px var(--cond);letter-spacing:.07em;text-transform:uppercase;color:var(--muted);padding:8px 14px}
.vf-cxp-fila input{min-height:38px;font-size:13.5px;border-radius:8px}
.vf-cxp-imp{font-weight:600}
.vf-iva{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.vf-chip{font:inherit;font-size:13px;border-radius:999px;padding:0 14px;min-height:36px;color:var(--muted);background:var(--surface);border:1px solid var(--line);cursor:pointer}
.vf-chip.aqui{font-weight:600;color:#fff;background:var(--c-fact);border-color:var(--c-fact)}
.vf-mas{font:600 13px var(--sans);color:var(--c-fact);background:none;border:0;padding:0 6px;min-height:36px;cursor:pointer}
.vf-mas:disabled{opacity:.45;cursor:default}
.vf-extras{display:flex;flex-direction:column;gap:8px;background:var(--sunken);border-radius:11px;padding:10px 13px}
.vf-extra{display:grid;grid-template-columns:110px minmax(0,1fr) 150px 28px;gap:10px;align-items:center}
.vf-extra-ret{grid-template-columns:110px 120px minmax(0,1fr) 28px}
.vf-extra input{min-height:38px;font-size:13.5px;border-radius:8px;background:var(--surface)}
.vf-obs small{font-size:11.5px}
.vf-oblig{color:var(--crit)}
.vf-totales{display:flex;gap:26px;justify-content:flex-end;font-size:14px;font-variant-numeric:tabular-nums;border-top:1px solid var(--line);padding-top:12px;flex-wrap:wrap;color:var(--muted)}
.vf-totales b{color:var(--ink);font-weight:600}
.vf-totales .vf-total b{color:var(--c-fact);font-size:17px;font-weight:700}
.vf-numfecha{display:flex;align-items:flex-end;gap:14px;flex-wrap:wrap}
.vf-in-num{width:150px!important;font-weight:600!important;font-size:15px!important}
.vf-numfijo{font-size:16px;color:var(--ink);padding:10px 0}
.vf-numtxt{font-size:13px;color:var(--muted);line-height:1.45;flex:1;min-width:240px}
.vf-numtxt b{color:var(--ink)}
.vf-enlace-btn{font:600 13px var(--sans);color:var(--c-fact);background:none;border:0;padding:0;text-decoration:underline;cursor:pointer}
.vf-opciones{border-top:1px solid var(--line);padding-top:10px;display:flex;flex-direction:column;gap:10px}
.vf-mas-op{align-self:flex-start;font:600 13.5px var(--sans);color:var(--ink);background:none;border:0;padding:0;cursor:pointer}
.vf-op-fila{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.vf-op-fila input:not([type=checkbox]){min-height:34px;font-size:13px;border-radius:8px;width:auto;flex:1;min-width:220px}
.vf-in-email{max-width:260px}
.vf-check{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--ink);cursor:pointer}
.vf-check.off{color:var(--muted);cursor:default}
.vf-check.peq{font-size:12.5px}
.vf-copia{background:var(--warn-soft);border:1px solid color-mix(in srgb,var(--warn) 35%,transparent);border-radius:12px;padding:11px 14px;font-size:13px;line-height:1.5}
.vf-rect{background:var(--brand-soft);border-radius:12px;padding:11px 14px;font-size:13px;line-height:1.5}
.vf-gris{background:var(--sunken);border-radius:16px;padding:22px;font-size:13.5px;color:var(--muted);line-height:1.5}
.vf-rotulo{font:700 10.5px var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.vf-asi{background:var(--sunken);border-radius:16px;padding:16px;display:flex;flex-direction:column;gap:8px}
.vf-papel{background:#fff;color:#12263b;border-radius:6px;box-shadow:0 8px 22px rgba(18,38,59,.14);padding:22px 24px;display:flex;flex-direction:column;gap:12px;font-size:11px;line-height:1.45;min-height:330px}
.vf-p-cab{display:flex;justify-content:space-between;gap:12px}
.vf-p-emisor{display:flex;gap:10px;align-items:flex-start;min-width:0}
.vf-p-logo{width:62px;height:22px;object-fit:contain;object-position:left top;flex:none}
.vf-p-emisor-txt{display:flex;flex-direction:column;min-width:0;color:#5B6B75}
.vf-p-emisor-txt b{font-size:12px;color:#12263b}
.vf-p-otros{white-space:pre-line}
.vf-p-fac{text-align:right;display:flex;flex-direction:column;color:#5B6B75}
.vf-p-fac b{font:700 17px var(--sans);color:#001F37}
.vf-p-cli{background:#F8FAFC;border-radius:5px;padding:8px 10px;display:flex;flex-direction:column}
.vf-p-cli small,.vf-p-obs small{color:#94a5aa;font-size:9.5px;letter-spacing:.1em;text-transform:uppercase}
.vf-p-cli span{color:#5B6B75}
.vf-p-linea{display:flex;justify-content:space-between;gap:10px;border-bottom:1px solid #E3E8EC;padding-bottom:6px}
.vf-p-supl{color:#5B6B75}
.vf-p-obs div{white-space:pre-line}
.vf-p-totales{align-self:flex-end;width:190px;display:grid;grid-template-columns:1fr auto;gap:3px 12px;font-variant-numeric:tabular-nums}
.vf-p-totales .vf-mut{color:#5B6B75;font-size:11px}
.vf-p-tot{border-top:1px solid #12263b;padding-top:3px}
.vf-p-cuenta{border:1px solid #E3E8EC;border-radius:5px;padding:6px 9px;color:#5B6B75}
.vf-p-cuenta b{color:#12263b}
.vf-p-nota{color:#5B6B75;font-size:10px}
.vf-pasos{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:14px 18px;display:flex;flex-direction:column;gap:8px}
.vf-paso{display:flex;gap:9px;font-size:13px;line-height:1.45}
.vf-paso svg{margin-top:2px}
.vf-hacer{font:600 18px var(--sans);color:#fff;background:var(--boton);border:0;border-radius:14px;min-height:62px;box-shadow:0 10px 22px rgba(15,76,70,.22);display:flex;align-items:center;justify-content:center;gap:11px;width:100%;cursor:pointer}
.vf-hacer svg{width:21px;height:21px;fill:none;stroke:#fff;stroke-width:2.2;stroke-linecap:round}
.vf-hacer:disabled{opacity:.55;cursor:default}
.vf-previa{font:500 13px var(--sans);color:var(--link);background:none;border:0;text-decoration:underline;cursor:pointer;align-self:center}
.vf-con-art{position:relative;width:100%}
.vf-art-menu{position:absolute;left:0;top:calc(100% + 4px);z-index:30;min-width:min(440px,100%);max-width:680px;width:max-content;background:var(--surface);border:1px solid var(--line);border-radius:10px;box-shadow:0 10px 26px rgba(18,38,59,.18);overflow:hidden}
.vf-art-menu[hidden]{display:none}
.vf-art{display:grid;grid-template-columns:56px minmax(0,1fr) auto;gap:10px;align-items:center;padding:9px 12px;font-size:13.5px;cursor:pointer;border-bottom:1px solid var(--line);color:var(--ink)}
.vf-art.aqui{background:var(--t-fact)}
.vf-art-cod{font:700 11.5px var(--sans);letter-spacing:.06em;background:var(--sunken);color:var(--c-fact);border-radius:6px;padding:3px 0;text-align:center}
.vf-art-pie{font-size:11.5px;color:var(--muted);padding:7px 12px;background:var(--sunken)}
.vf-dialogo{border:0;border-radius:16px;padding:0;width:640px;max-width:calc(100vw - 32px);background:var(--surface);color:var(--ink);box-shadow:0 20px 50px rgba(0,0,0,.3)}
.vf-dialogo::backdrop{background:rgba(14,20,27,.45)}
.vf-dlg-form{padding:22px 24px;display:flex;flex-direction:column;gap:10px;margin:0}
.vf-dlg-form h2{font-size:20px;margin:0}
.vf-campos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 12px}
.vf-campos .ancho{grid-column:1/-1}
.vf-campos .ancho2{grid-column:span 2}
.vf-dlg-botones{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap;margin-top:6px}
.vf-error{color:var(--crit);font-size:13px;margin:0;min-height:1em}
/* Sus datos y artículos */
.vf-caja{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:24px 26px;display:flex;flex-direction:column;gap:10px;max-width:760px}
.vf-caja h1{font-size:20px;margin:0}
.vf-dl{display:grid;grid-template-columns:150px minmax(0,1fr);gap:8px 16px;font-size:14px;margin:0}
.vf-dl dt{color:var(--muted)}
.vf-dl dd{margin:0}
.vf-pre{white-space:pre-line}
.vf-logo-ver{max-width:160px;max-height:50px;object-fit:contain;background:#fff;border-radius:6px}
.vf-form-datos{display:flex;flex-direction:column;gap:12px;margin:0}
.vf-sangria{margin:-6px 0 0 28px;font-size:12px}
.vf-recuadro{border:1px solid var(--line);border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;gap:6px;background:var(--bg)}
.vf-recuadro p{margin:0;font-size:12px}
.vf-recuadro .vf-ok{color:var(--ok);font-weight:600}
.vf-recuadro .vf-mal{color:var(--crit)}
.vf-logo{flex-direction:row;align-items:center;gap:12px;border-style:dashed}
.vf-logo .vf-mut{flex:1;font-size:12px;line-height:1.45}
.vf-logo .vf-mut b{color:var(--ink)}
.vf-sin-logo{width:110px;height:40px;border-radius:6px;background:var(--surface);border:1px solid var(--line);display:grid;place-items:center;font-size:11px;color:var(--muted);flex:none}
.vf-logo-btn{display:flex;flex-direction:column;gap:6px;align-items:flex-end}
.vf-oculto{position:absolute;width:1px;height:1px;opacity:0}
.vf-art-tabla{border:1px solid var(--line);border-radius:11px;overflow:hidden}
.vf-art-fila{display:grid;grid-template-columns:84px minmax(0,1fr) 120px 28px;gap:10px;align-items:center;padding:6px 12px;border-bottom:1px solid var(--line)}
.vf-art-fila.vf-cab{background:var(--sunken);font:600 11px var(--cond);letter-spacing:.07em;text-transform:uppercase;color:var(--muted);padding:8px 12px}
.vf-art-fila input{min-height:38px;font-size:13.5px;border-radius:8px}
.vf-art-fila .vf-cod{font-weight:700;letter-spacing:.06em;text-transform:uppercase;text-align:center}
.vf-art-pie-tabla{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
@media (max-width:1100px){.vf-tarjetas{grid-template-columns:repeat(2,minmax(0,1fr))}.vf-derecha{position:static;flex-basis:100%}}
@media (max-width:760px){
  .vf-tarjetas,.vf-dests{grid-template-columns:minmax(0,1fr)}
  .vf-quien h1{font-size:21px}
  .vf-avatar{width:48px;height:48px;font-size:18px;border-radius:14px}
  .vf-linea,.vf-linea.con-iva,.vf-linea.con-x,.vf-linea.con-iva.con-x{grid-template-columns:minmax(0,1fr) minmax(0,1.6fr)}
  .vf-linea > :first-child,.vf-linea:not(.con-iva) > label:nth-child(2){grid-column:1/-1}
  .vf-linea > .vf-x{grid-column:1/-1;justify-self:end;min-height:28px}
  .vf-cxp-fila{grid-template-columns:minmax(0,1fr) 64px 84px 28px}
  .vf-cxp-fila .vf-cxp-imp,.vf-cxp-fila.vf-cab > :nth-child(4){display:none}
  .vf-extra,.vf-extra-ret{grid-template-columns:minmax(0,1fr) 110px 28px}
  .vf-extra > .vf-mut:first-child{grid-column:1/-1}
  .vf-extra-ret > .vf-mut:nth-child(3){display:none}
  .vf-campos{grid-template-columns:minmax(0,1fr)}
  .vf-campos .ancho2{grid-column:auto}
  .vf-dl{grid-template-columns:minmax(0,1fr)}
  .vf-dl dt{margin-top:6px}
  .vf-sec{padding:16px}
  .vf-derecha{min-width:0}
  .vf-art-fila{grid-template-columns:70px minmax(0,1fr) 28px}
  .vf-art-fila input[name=a_precio]{grid-column:1/3}
  .vf-art-fila.vf-cab > :nth-child(3){display:none}
}

/* ── GesaChat (fase 1, 20/10/2026): la conversación del cliente y la pantalla de la oficina.
   Según la maqueta aprobada (https://claude.ai/artifact/Tj6nW5qxGsKp17HQz1BtTC). ── */
:root{--c-chat:#1F6F8B;--t-chat:#E1EFF4;--gc-fondo:#E9EDF2;--gc-yo:#12263b;--gc-ellos:#FFFFFF;--gc-nota:#FFF6DC;--gc-nota-borde:#E8D49A;--gc-crit:#A33A3A;--gc-crit-soft:#F8E5E5}
@media (prefers-color-scheme:dark){:root:not([data-modo="claro"]){--c-chat:#8ACFE6;--t-chat:#264B5A;--gc-fondo:#263444;--gc-yo:#3D6794;--gc-ellos:#344457;--gc-nota:#4D3E21;--gc-nota-borde:#7D6431;--gc-crit:#F2A0A0;--gc-crit-soft:#4A2A2A}}
:root[data-modo="oscuro"]{--c-chat:#8ACFE6;--t-chat:#264B5A;--gc-fondo:#263444;--gc-yo:#3D6794;--gc-ellos:#344457;--gc-nota:#4D3E21;--gc-nota-borde:#7D6431;--gc-crit:#F2A0A0;--gc-crit-soft:#4A2A2A}
/* En el iPhone, el alto visible (sin las barras de Safari ni el teclado): lo pone chat.js en --gc-alto. Sin el
   min-height:100vh general, que en iPhone es más que la pantalla y obligaba a desplazar (21/10/2026). */
html:has(body.gc-cuerpo),html:has(body.go-cuerpo){height:100%;overflow:hidden}
body.gc-cuerpo,body.go-cuerpo{height:var(--gc-alto,100dvh);min-height:0;display:flex;flex-direction:column;overflow:hidden;background:var(--bg)}
.gc-cab{position:static;flex:none;padding-top:max(10px,env(safe-area-inset-top,0px))}
.gc-cab .app-logo{width:32px;height:32px;border-radius:8px;flex:none}
.gc-volver{color:#fff;text-decoration:none;font-size:28px;line-height:1;padding:0 6px 0 0}
.gc-cuerpo [hidden],.go-cuerpo [hidden]{display:none!important}
.gc-cab .btn-cab{white-space:nowrap}
.gc-cab .marca{min-width:0;flex:1}
.gc-app{flex:1;min-height:0;display:flex;flex-direction:column;max-width:760px;width:100%;margin:0 auto;background:var(--gc-fondo)}
.gc-aviso{margin:8px 10px 0}
.gc-chat{flex:1;min-height:0;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:6px;background:var(--gc-fondo)}
.gc-cargando,.gc-vacio{margin:auto;color:var(--muted);text-align:center;max-width:32ch}
.gc-dia{align-self:center;font:500 11px var(--mono);color:var(--muted);background:var(--surface);border-radius:999px;padding:2px 10px;margin:6px 0}
.gc-b{max-width:82%;padding:7px 10px 5px;border-radius:14px;box-shadow:0 1px 0 rgba(0,0,0,.05);display:flex;flex-direction:column;gap:4px;font-size:15px;line-height:1.4;overflow-wrap:anywhere}
.gc-b em{font:600 10.5px var(--mono);letter-spacing:.04em;color:var(--c-chat);font-style:normal}
.gc-t{white-space:pre-wrap}
.gc-h{align-self:flex-end;font:400 10.5px var(--mono);opacity:.7}
.gc-v.gc-leido{color:#7CC3DB;opacity:1}
.gc-yo{align-self:flex-end;background:var(--gc-yo);color:#fff;border-bottom-right-radius:4px}
.gc-yo em{color:#cfe3f2}
.gc-ellos{align-self:flex-start;background:var(--gc-ellos);color:var(--ink);border-bottom-left-radius:4px}
.gc-gesa{align-self:flex-start;background:var(--t-chat);color:var(--ink);border-bottom-left-radius:4px}
.gc-nota{align-self:stretch;max-width:none;background:var(--gc-nota);border:1px dashed var(--gc-nota-borde);color:var(--ink)}
.gc-nota em{color:var(--warn)}
.gc-foto img{display:block;max-width:220px;max-height:260px;border-radius:8px;background:var(--surface)}
.gc-doc{display:flex;gap:8px;align-items:center;background:var(--surface);color:var(--ink);border-radius:8px;padding:7px 10px;text-decoration:none;font-size:13.5px}
.gc-doc span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.gc-b audio{width:230px;max-width:100%;height:36px}
.gc-escribe{flex:none;display:flex;gap:6px;align-items:flex-end;padding:8px 8px max(8px,env(safe-area-inset-bottom,0px));background:var(--surface);border-top:1px solid var(--line)}
.gc-escribe textarea{flex:1;min-width:0;resize:none;border:1px solid var(--line);background:var(--bg);color:var(--ink);border-radius:20px;padding:9px 14px;font:inherit;font-size:16px;line-height:1.35;max-height:120px;height:42px}
.gc-ib{width:42px;height:42px;border-radius:50%;border:0;display:grid;place-items:center;cursor:pointer;flex:none;background:var(--t-chat);color:var(--c-chat);font:600 22px var(--sans)}
.gc-ib svg{width:20px;height:20px}
.gc-env{background:var(--boton);color:#fff;font-size:18px}
.gc-graba{flex:none;display:flex;gap:10px;align-items:center;padding:10px 12px max(10px,env(safe-area-inset-bottom,0px));background:var(--surface);border-top:1px solid var(--line)}
.gc-graba span:nth-child(2){flex:1;font:500 14px var(--mono)}
.gc-punto{width:10px;height:10px;border-radius:50%;background:var(--gc-crit)}
@media (prefers-reduced-motion:no-preference){.gc-punto{animation:gc-late 1s infinite}}
@keyframes gc-late{50%{opacity:.3}}
.gc-hoja{border:0;border-radius:16px 16px 0 0;padding:0;width:100%;max-width:640px;margin:auto auto 0;max-height:90dvh;background:var(--surface);color:var(--ink)}
.gc-hoja::backdrop{background:rgba(14,20,27,.5)}
.gc-hoja-form{padding:16px 16px max(16px,env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;gap:14px}
.gc-hoja-cab{display:flex;align-items:center;justify-content:space-between;gap:10px}
.gc-hoja-cab h2{font-size:18px}
.gc-lista{flex:1;overflow-y:auto;max-width:760px;width:100%;margin:0 auto;background:var(--surface)}
.gc-conv{display:flex;gap:12px;align-items:center;padding:12px 14px;border-bottom:1px solid var(--line);text-decoration:none;color:var(--ink)}
.gc-av{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:var(--t-chat);color:var(--c-chat);font:700 13px var(--sans);flex:none}
.gc-conv-txt{flex:1;min-width:0}
.gc-conv-txt b,.gc-conv-txt small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gc-conv-txt small{color:var(--muted)}
.gc-conv-der{font:400 11px var(--mono);color:var(--muted)}
/* Oficina */
.go-cab{position:static;flex:none}
.go-app{flex:1;min-height:0;display:grid;grid-template-columns:320px minmax(0,1fr) 280px;background:var(--surface)}
.go-col{min-width:0;min-height:0;display:flex;flex-direction:column;border-right:1px solid var(--line)}
.go-der{border-right:0;background:var(--bg);overflow-y:auto;padding:14px;gap:14px}
.go-cab-c{padding:12px 14px;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:8px}
.go-chips,.go-modos{display:flex;gap:5px;flex-wrap:wrap;align-items:center}
.go-chip{font:600 12.5px var(--sans);border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:999px;padding:4px 10px;cursor:pointer;min-height:30px}
.go-chip[aria-pressed="true"]{background:var(--boton);color:#fff;border-color:var(--boton)}
.go-chip .n{font-weight:400;opacity:.85}
.go-buscar{border:1px solid var(--line);background:var(--bg);color:var(--ink);border-radius:8px;padding:8px 10px;font:inherit;font-size:14px;width:100%}
.go-filas{flex:1;overflow-y:auto}
.go-vacio-l{padding:20px 14px;color:var(--muted)}
.go-fila{display:flex;flex-direction:column;gap:3px;padding:10px 14px;border:0;border-bottom:1px solid var(--line);border-left:3px solid transparent;cursor:pointer;background:transparent;width:100%;text-align:left;font:inherit;color:inherit}
.go-fila[aria-current="true"]{background:var(--brand-soft);border-left-color:var(--c-chat)}
.go-fila.go-nueva b{font-weight:700}
.go-l1{display:flex;gap:6px;align-items:baseline}
.go-l1 b{flex:1;min-width:0;font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.go-l1 span{font:400 11px var(--mono);color:var(--muted)}
.go-fila small{color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:13px}
.go-l3{display:flex;gap:5px;flex-wrap:wrap}
.go-pas{font:600 11px var(--sans);border-radius:999px;padding:1px 8px;white-space:nowrap}
.go-rojo{background:var(--gc-crit-soft);color:var(--gc-crit)}
.go-ambar{background:var(--warn-soft);color:var(--warn)}
.go-verde{background:var(--ok-soft);color:var(--ok)}
.go-gris{background:var(--idle-soft);color:var(--idle)}
.go-azul{background:var(--t-chat);color:var(--c-chat)}
.go-vacio-c{margin:auto;color:var(--muted)}
.go-conv{flex:1;min-height:0;display:flex;flex-direction:column}
.go-cab-conv{flex-direction:row;align-items:center;gap:10px}
.go-txt{flex:1;min-width:0}
.go-txt b,.go-txt small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.go-txt small{color:var(--muted)}
.go-atras{display:none;border:0;background:transparent;color:var(--ink);font-size:26px;cursor:pointer;padding:0 4px}
.go-sel,.go-bt{font:600 13px var(--sans);border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:8px;padding:6px 10px;cursor:pointer;min-height:34px;display:inline-flex;align-items:center}
.go-chat .gc-yo,.go-chat .go-nuestro{align-self:flex-end}
.go-chat .go-nuestro{border-bottom-left-radius:14px;border-bottom-right-radius:4px}
.go-redactar{flex:none;border-top:1px solid var(--line);padding:10px 12px;display:flex;flex-direction:column;gap:8px;background:var(--surface)}
.go-pista{margin-left:auto;font-size:12.5px;color:var(--muted)}
.go-redactar textarea{width:100%;min-height:64px;resize:vertical;border:1px solid var(--line);background:var(--bg);color:var(--ink);border-radius:8px;padding:8px 10px;font:inherit;font-size:14.5px}
.go-redactar.go-interna textarea{background:var(--gc-nota);border-color:var(--gc-nota-borde)}
.go-acc{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.go-esp{flex:1}
.go-bloque{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:12px 13px;display:flex;flex-direction:column;gap:7px}
.go-bloque h3{font:600 11.5px var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.go-gesa h3{color:var(--c-chat)}
.go-dato{display:flex;justify-content:space-between;gap:8px;font-size:13.5px}
.go-dato span{color:var(--muted)}
.go-dato b{font-weight:600;text-align:right}
@media (max-width:1100px){.go-app{grid-template-columns:300px minmax(0,1fr)}.go-der{display:none}}
@media (max-width:760px){
  .go-app{grid-template-columns:minmax(0,1fr)}
  .go-centro{display:none}
  .go-abierta .go-izq{display:none}
  .go-abierta .go-centro{display:flex}
  .go-atras{display:block}
}

/* Solicitar acceso (20/10/2026): la página pública que se enlaza desde www.gesadem.com. */
.tarjeta-ancha{width:560px}
.sol-form{display:flex;flex-direction:column;gap:12px}
.sol-trampa{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.sol-dos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.sol-error{color:var(--pdf);font-size:12.5px}
.sol-acepto{display:flex;gap:10px;align-items:flex-start;font-size:13.5px}
.sol-acepto input{margin-top:3px;width:18px;height:18px;flex:none}
.campo input[aria-invalid="true"]{border-color:var(--pdf)}
@media (max-width:560px){.sol-dos{grid-template-columns:minmax(0,1fr)}}

.entrar-pedir{border-top:1px solid var(--line);padding-top:14px;display:flex;flex-direction:column;gap:10px;font-size:14px}
.entrar-pedir .btn{justify-content:center}

/* El logotipo de Gesadem (20/10/2026): el completo en las tarjetas de entrada (el de color sobre claro,
   el blanco en modo oscuro) y el símbolo blanco en la barra. */
.logo-tarjeta{width:200px;height:auto;align-self:center;margin-bottom:4px}
.logo-oscuro{display:none}
@media (prefers-color-scheme:dark){:root:not([data-modo="claro"]) .logo-claro{display:none}:root:not([data-modo="claro"]) .logo-oscuro{display:block}}
:root[data-modo="oscuro"] .logo-claro{display:none}
:root[data-modo="oscuro"] .logo-oscuro{display:block}
.logo-simbolo{width:32px;height:32px;flex:none}

/* El visor de GesaChat (21/10/2026): Volver y Compartir arriba, el documento debajo página a página. */
body.gc-ver-cuerpo{background:#2b3440}
.gc-ver-cab{position:sticky;top:0;z-index:2}
.gc-ver-cab .marca{min-width:0;flex:1;overflow:hidden}
.gc-ver-cab .marca{white-space:nowrap;text-overflow:ellipsis}
.gc-ver-cab .btn-cab{white-space:nowrap;text-decoration:none}
.gc-ver{display:flex;flex-direction:column;align-items:center;gap:10px;padding:12px max(10px,env(safe-area-inset-right,0px)) max(16px,env(safe-area-inset-bottom,0px)) max(10px,env(safe-area-inset-left,0px))}
.gc-ver-pag{width:100%;max-width:900px;height:auto;background:#fff;box-shadow:0 4px 18px rgba(0,0,0,.35)}
.gc-ver .gc-vacio{color:#fff}
@media (max-width:520px){.gc-ver-cab .marca small{display:none}}

/* Las apps del móvil en la entrada (21/10/2026). */
.entrar-apps{border-top:1px solid var(--line);padding-top:14px;display:flex;flex-direction:column;gap:6px;font-size:14px}
.entrar-apps .mut{font-size:12.5px;margin:0}
.entrar-apps-fila{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:4px}
.entrar-apps-fila a{display:flex;gap:9px;align-items:center;border:1px solid var(--line);border-radius:10px;padding:8px;text-decoration:none;color:var(--ink);min-width:0}
.entrar-apps-fila a:hover{border-color:var(--brand)}
.entrar-apps-fila img{width:40px;height:40px;border-radius:9px;flex:none}
.entrar-apps-fila span{min-width:0;display:flex;flex-direction:column;line-height:1.25}
.entrar-apps-fila small{color:var(--muted);font-size:12px}

/* Facturas, rehecha el 21/10/2026: tres botones, «Cómo va» y Ventas / Compras y gastos (fx-). */
.fx-arriba{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:16px;align-items:start}
@media (max-width:900px){.fx-arriba{grid-template-columns:1fr}}
.fx-tarjeta{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:18px;display:flex;flex-direction:column;gap:12px;min-width:0}
.fx-paso{font-size:18px;font-weight:600;display:flex;align-items:center;gap:10px;margin:0}
.fx-num{width:30px;height:30px;border-radius:50%;background:var(--sunken);display:inline-grid;place-items:center;font-size:15px;flex:none;color:var(--ink)}
.fx-num.ok{background:var(--ok);color:var(--surface)}
.fx-num svg{width:16px;height:16px}
.fx-acciones{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.fx-acciones>.prin:first-child:nth-last-child(2){grid-column:auto}
.fx-acciones>.prin:first-child:not(:nth-last-child(2)){grid-column:1/-1}
@media (max-width:560px){.fx-acciones{grid-template-columns:1fr}}
.fx-accion{font:inherit;text-align:left;cursor:pointer;display:flex;align-items:center;gap:12px;padding:14px;border:2px solid var(--line);border-radius:14px;background:var(--surface);color:var(--ink);text-decoration:none;min-width:0}
.fx-accion:hover{border-color:var(--c-fact)}
.fx-accion svg{width:26px;height:26px;color:var(--c-fact);flex:none}
.fx-accion span{display:flex;flex-direction:column;min-width:0;line-height:1.3}
.fx-accion b{font-size:16px;font-weight:600}
.fx-accion small{color:var(--muted);font-size:12.5px}
.fx-accion.prin{background:var(--c-fact);border-color:var(--c-fact);color:var(--surface)}
.fx-accion.prin svg,.fx-accion.prin small{color:var(--surface)}
.fx-accion.prin small{opacity:.9}
.fx-accion:focus-visible{outline:3px solid var(--link);outline-offset:2px}
.fx-enlaces{font-size:13.5px;color:var(--muted);margin:0}
.fx-frases{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.fx-frases li{display:flex;gap:10px;align-items:flex-start;padding:9px 0;border-bottom:1px solid var(--line);font-size:14.5px}
.fx-frases li:last-child{border-bottom:0}
.fx-frases a{font-weight:600;font-size:13.5px;white-space:nowrap;color:var(--c-fact)}
.fx-txt{flex:1;min-width:0}
.fx-txt small{display:block;color:var(--muted);font-size:12.5px}
.fx-punto{width:9px;height:9px;border-radius:50%;margin-top:7px;flex:none}
.fx-punto.p-ok{background:var(--ok)}.fx-punto.p-warn{background:var(--warn)}.fx-punto.p-idle{background:var(--idle)}
.fx-lista{padding:0 18px 10px;gap:0}
.fx-pestanas{display:flex;gap:4px;border-bottom:1px solid var(--line);margin:0 -18px;padding:0 18px}
.fx-pestanas a{padding:13px 12px 11px;font-weight:600;font-size:15px;color:var(--muted);text-decoration:none;border-bottom:3px solid transparent;margin-bottom:-1px}
.fx-pestanas a span{font-weight:500;font-size:12.5px;margin-left:4px}
.fx-pestanas a[aria-current]{color:var(--ink);border-bottom-color:var(--c-fact)}
.fx-barra{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:12px 0 2px}
.fx-crece{flex:1}
.fx-chips{display:flex;gap:6px;flex-wrap:wrap}
.fx-chips a{font-size:13px;padding:4px 11px;border-radius:999px;border:1px solid var(--line);color:var(--ink);text-decoration:none}
.fx-chips a[aria-current]{background:var(--ink);color:var(--surface);border-color:var(--ink)}
.fx-mes{font-size:12px;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);font-weight:600;margin:16px 0 2px}
.fx-fila{display:grid;grid-template-columns:44px minmax(0,1fr) auto auto;gap:12px;align-items:center;padding:10px 0;border-top:1px solid var(--line);color:var(--ink);text-decoration:none}
.fx-fila:hover .fx-que b{text-decoration:underline}
.fx-dia{font:600 16px/1.1 var(--cond);text-align:center}
.fx-dia small{display:block;font:500 11px var(--sans);color:var(--muted);text-transform:uppercase}
.fx-que{min-width:0;display:flex;flex-direction:column}
.fx-que b{font-size:14.5px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fx-que small{color:var(--muted);font-size:12.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fx-imp{font:600 14.5px var(--cond);text-align:right;white-space:nowrap}
@media (max-width:560px){.fx-fila{grid-template-columns:40px minmax(0,1fr) auto}.fx-fila .pastilla{grid-column:2/-1;justify-self:start}}
.fx-soltar{background:var(--t-fact)}
.fx-nota{font-size:13px;color:var(--muted);margin:0}
/* «Mis facturas» con el mismo estilo (21/10/2026). */
.fx-sub{font-size:13px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:600;margin:6px 0 0}
.fx-sub span{text-transform:none;letter-spacing:0;font-weight:400;margin-left:6px}
.fx-quien{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.fx-quien li{display:flex;align-items:center;gap:10px;padding:9px 0;border-top:1px solid var(--line)}
.fx-quien li:first-child{border-top:0}
.fx-quien li[hidden]{display:none}
.fx-ini{width:34px;height:34px;border-radius:50%;background:var(--t-fact);color:var(--c-fact);display:grid;place-items:center;font-weight:600;flex:none}
.fx-quien .fx-txt b{display:block;font-size:14.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fx-mini{font:600 13px var(--sans);padding:6px 11px;border-radius:9px;border:1.5px solid var(--line);background:var(--surface);color:var(--ink);text-decoration:none;white-space:nowrap;cursor:pointer}
.fx-mini:hover{border-color:var(--c-fact)}
.fx-mini.prin{background:var(--c-fact);border-color:var(--c-fact);color:var(--surface)}
.fx-mas{font:600 13.5px var(--sans);background:none;border:0;color:var(--link);cursor:pointer;padding:0;align-self:flex-start}
.fx-mut{color:var(--muted);font-size:13px}
.fx-barra-cab{padding-top:16px}
.fx-barra-cab .fx-paso{font-size:17px}
.fx-fila-v{grid-template-columns:24px 44px minmax(0,1fr) auto auto 72px}
.fx-fila-v .fx-que{color:var(--ink);text-decoration:none}
.fx-fila-v .fx-que:hover b{text-decoration:underline}
.fx-marca input{width:17px;height:17px}
.fx-iconos{display:flex;gap:4px;justify-content:flex-end}
.fx-anulada .fx-que b,.fx-anulada .fx-imp{text-decoration:line-through;color:var(--muted)}
@media (max-width:560px){
  .fx-quien li{flex-wrap:wrap}.fx-quien .fx-txt{flex:1 1 60%}
  .fx-fila-v{grid-template-columns:22px 38px minmax(0,1fr) auto}
  .fx-fila-v .pastilla{grid-column:3/4}.fx-fila-v .fx-iconos{grid-column:4/5}
}
/* «Ver su portal» (21/10/2026): la franja de la vista de la asesoría y los botones apagados. */
.vista-franja{position:sticky;top:0;z-index:50;display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:10px max(16px,env(safe-area-inset-left,0px));background:#FFF4D6;border-bottom:2px solid #E0A82E;color:#5C4204;font-size:13.5px}
.vista-franja svg{width:20px;height:20px;flex:none}
.vista-txt{flex:1;min-width:220px}
.vista-franja form{margin:0}
.vista-salir{font:600 13px var(--sans);padding:7px 12px;border-radius:9px;border:0;background:#5C4204;color:#fff;cursor:pointer}
body:has(.vista-franja) main form[method="post"] button,body:has(.vista-franja) main form[method="post"] [type="submit"],
body:has(.vista-franja) .gc-escribe,body:has(.vista-franja) .gc-avisos,body:has(.vista-franja) .fx-accion,
body:has(.vista-franja) .fx-mini.prin,body:has(.vista-franja) .cap-gran,body:has(.vista-franja) .vf-ico-btn{opacity:.45;pointer-events:none;filter:grayscale(.6)}
.vista-pagina{display:grid;place-items:center;min-height:100vh;padding:24px}
.vista-caja{max-width:520px;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:24px;display:flex;flex-direction:column;gap:10px}
.vista-caja h1{font-size:21px}
.vista-caja p{color:var(--muted)}
