/* =========================================================================
   N1 Central — estilo "vidrio de medianoche"
   Lienzo casi negro con retícula de plano, superficies de vidrio esmerilado
   (bordes interiores en vez de líneas sólidas), texto frío luminoso y un solo
   acento violeta para la acción principal.
   ========================================================================= */

/* ---------- tokens ---------- */
:root{
  /* superficies */
  --canvas:#05060f;
  --steel:#2f343e;
  --glass:rgba(186,214,247,.03);
  --glass-2:rgba(186,214,247,.06);
  --glass-3:rgba(186,214,247,.12);
  --deep-glass:rgba(5,6,15,.97);
  --field:rgba(199,211,234,.06);

  /* texto: de título a ayuda */
  --ice:#d8ecf8;
  --frost:#d1e4fa;
  --mist:#c7d3ea;
  --fog:#9da7ba;
  --white:#ffffff;
  --skywash:linear-gradient(0deg,#98c0ef 0%,#d8ecf8 100%);

  /* líneas: borde interior esmerilado */
  --edge:rgba(186,215,247,.12);
  --edge-soft:rgba(186,215,247,.06);
  --edge-strong:rgba(186,214,247,.24);
  --ring:inset 0 0 0 1px var(--edge);
  --ring-strong:inset 0 0 0 1px var(--edge-strong);

  /* acento único */
  --violet:#663af3;
  --violet-hi:#7852f5;

  /* estados (acentos secundarios de la paleta) */
  --ok:#3fbfa9;   --ok-wash:rgba(38,150,132,.16);
  --warn:#e3b35f; --warn-wash:rgba(227,179,95,.12);
  --bad:#f08a6c;  --bad-wash:rgba(228,109,76,.14);
  --focus:#b6d9fc;

  /* elevación: vidrio iluminado desde atrás */
  --elev-card:inset 0 1px 1px rgba(199,211,234,.12), inset 0 24px 48px rgba(199,211,234,.05), 0 24px 32px rgba(6,6,14,.7);
  --elev-modal:inset 0 1px 1px rgba(216,236,248,.2), inset 0 24px 48px rgba(168,216,245,.06), 0 16px 32px rgba(0,0,0,.3), inset 0 0 0 1px rgba(199,211,234,.08);
  --elev-badge:inset 0 1px 1px rgba(216,236,248,.12);

  /* tipografía */
  --f-ui:Inter,"Untitled Sans",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
  --f-display:"Space Grotesk","aeonikPro",Inter,ui-sans-serif,system-ui,sans-serif;
  --f-dot:"JetBrains Mono","dotDigital",ui-monospace,Menlo,Consolas,monospace;
  --t-xs:.75rem; --t-sm:.875rem; --t-base:1rem; --t-sub:1.125rem; --t-h-sm:1.5rem; --t-h:1.75rem; --t-h-lg:2.75rem;
  --track-dot:.1em;

  /* espaciado (base 4) */
  --s1:4px; --s2:8px; --s3:12px; --s4:16px; --s5:20px; --s6:24px; --s8:32px; --s9:36px; --s10:40px; --s12:48px; --s14:56px;

  /* radios: píldora en lo interactivo, 16 en tarjetas, 6 en campos y etiquetas */
  --r-pill:999px; --r-card:16px; --r-sm:6px;

  /* movimiento */
  --ease:cubic-bezier(.2,.7,.2,1);
  --t-fast:140ms; --t-med:220ms;

  --z-nav:10; --z-dialog:100;
  --page-max:1200px;
  color-scheme:dark;
}
@media (prefers-reduced-motion: reduce){ :root{ --t-fast:0ms; --t-med:0ms; } }

/* ---------- base + atmósfera (retícula y halo) ---------- */
*{box-sizing:border-box}
html,body{margin:0}
body{
  min-height:100vh;color:var(--mist);font:400 var(--t-base)/1.5 var(--f-ui);letter-spacing:-.01em;-webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums;
  background:
    conic-gradient(from 180deg at 50% -8%, transparent 45%, rgba(124,145,182,.22) 49%, rgba(124,145,182,.34) 50%, rgba(124,145,182,.22) 51%, transparent 55%) top center / 100% 520px no-repeat,
    linear-gradient(var(--edge-soft) 1px, transparent 1px) 0 0 / 88px 88px,
    linear-gradient(90deg, var(--edge-soft) 1px, transparent 1px) 0 0 / 88px 88px,
    var(--canvas);
  background-attachment:scroll,fixed,fixed,fixed;
}
a{color:var(--frost);text-underline-offset:3px;text-decoration-color:var(--edge-strong)}
a:hover{color:var(--white);text-decoration-color:var(--frost)}
h1,h2,h3{margin:0;font-weight:500;color:var(--ice);text-wrap:balance}
p{margin:0}
strong{font-weight:500;color:var(--frost)}
.num{font-variant-numeric:tabular-nums}
.mono{font-family:var(--f-dot);font-size:.86em;letter-spacing:0;font-feature-settings:"tnum"}
.muted{color:var(--mist)}
.faint{color:var(--fog)}
:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:var(--r-sm)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
::selection{background:var(--violet);color:var(--white)}

/* etiqueta "dot" en mayúsculas */
.eyebrow,.crumbs,.section-head h2,.total-label,.field > span:first-child,.field-label,.kv dt,.rail-block h2,.ledger th,.bars-axis,.bars-scale,.pager,.fgroup-head h2{
  font-family:var(--f-dot);font-weight:400;letter-spacing:var(--track-dot);text-transform:uppercase;font-feature-settings:"tnum"}

/* ---------- encabezado del sitio ---------- */
.masthead{max-width:var(--page-max);margin:0 auto;min-height:72px;padding:0 var(--s6);display:flex;align-items:center;gap:var(--s6);position:relative;z-index:var(--z-nav)}
.brand{display:flex;align-items:center;gap:var(--s3);color:var(--frost);text-decoration:none;flex:none}
.brand-mark{width:32px;height:32px;display:grid;place-items:center;border-radius:var(--r-pill);background:var(--glass-2);box-shadow:var(--ring),0 0 12px rgba(186,207,247,.18);font:600 .72rem/1 var(--f-ui);letter-spacing:.04em;color:var(--ice)}
.brand-name{font:500 var(--t-base)/1 var(--f-ui);color:var(--frost)}
.masthead-meta{margin-left:auto;flex:none;font:400 var(--t-xs)/1 var(--f-dot);letter-spacing:var(--track-dot);text-transform:uppercase;color:var(--fog);display:flex;align-items:center;gap:var(--s2)}
.masthead-meta i{width:6px;height:6px;border-radius:50%;background:var(--ok);box-shadow:0 0 6px rgba(63,191,169,.7);display:inline-block}

/* navegación: control segmentado de vidrio */
.tabs{display:flex;gap:2px;padding:4px;border-radius:var(--r-pill);background:var(--glass);box-shadow:var(--ring);overflow-x:auto;scrollbar-width:none;min-width:0}
.tabs::-webkit-scrollbar{display:none}
.tab{flex:none;display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 14px;border-radius:var(--r-pill);color:var(--mist);text-decoration:none;font:500 var(--t-sm)/1 var(--f-ui);transition:background var(--t-fast) var(--ease),color var(--t-fast) var(--ease)}
.tab:hover{color:var(--white);background:var(--glass-2)}
.tab[aria-current="page"]{color:var(--white);background:var(--glass-3);box-shadow:var(--elev-badge),var(--ring)}
.tab-idx{font:400 .6875rem/1 var(--f-dot);color:var(--fog)}
.tab.is-soon{color:var(--fog);opacity:.6;cursor:default}
.tab.is-soon:hover{background:none;color:var(--fog)}
.tab.is-soon small{font:400 .5625rem/1 var(--f-dot);letter-spacing:var(--track-dot);text-transform:uppercase}

/* ---------- lienzo ---------- */
.sheet{display:block;max-width:var(--page-max);margin:0 auto;padding:0 var(--s6)}
.sheet-inner{padding:var(--s12) 0 var(--s14);display:grid;gap:var(--s10)}

/* ---------- encabezado de página ---------- */
.ph{display:grid;grid-template-columns:1fr auto;gap:var(--s4) var(--s8);align-items:end}
.crumbs{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:var(--s2);font-size:var(--t-xs);color:var(--fog)}
.crumbs::after{content:"";flex:1;min-width:40px;height:1px;margin-left:var(--s3);background:linear-gradient(90deg,var(--edge),transparent)}
.crumbs a{color:var(--mist);text-decoration:none}
.crumbs a:hover{color:var(--white)}
.crumbs span[aria-hidden]{color:var(--steel)}
.crumbs [aria-current]{color:var(--frost)}
.ph h1{font:500 clamp(2rem,1.3rem + 2vw,3rem)/1.16 var(--f-display);background:var(--skywash);-webkit-background-clip:text;background-clip:text;color:transparent;padding-bottom:2px}
.ph-desc{color:var(--mist);margin-top:var(--s3);max-width:640px;font-size:var(--t-base)}
.ph-actions{display:flex;gap:var(--s2);flex-wrap:wrap;justify-content:end}
.eyebrow{font-size:var(--t-xs);color:var(--mist)}

/* ---------- botones ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:var(--s2);min-height:36px;padding:0 16px;
  background:var(--glass-2);color:var(--white);border:0;box-shadow:var(--ring);border-radius:var(--r-pill);
  font:500 var(--t-sm)/1 var(--f-ui);text-decoration:none;cursor:pointer;white-space:nowrap;
  transition:background var(--t-fast) var(--ease),box-shadow var(--t-fast) var(--ease),color var(--t-fast) var(--ease),transform var(--t-fast) var(--ease)}
.btn:hover{background:var(--glass-3);color:var(--white);box-shadow:var(--ring-strong)}
.btn:active{transform:translateY(1px)}
.btn[disabled],.btn[aria-busy="true"]{opacity:.55;cursor:progress;transform:none}
/* acción principal: el único violeta */
.btn--primary{background:var(--violet);box-shadow:inset 0 1px 0 rgba(255,255,255,.18),0 0 0 1px rgba(102,58,243,.6),0 6px 20px rgba(102,58,243,.28)}
.btn--primary:hover{background:var(--violet-hi);box-shadow:inset 0 1px 0 rgba(255,255,255,.22),0 0 0 1px rgba(120,82,245,.8),0 8px 24px rgba(102,58,243,.36)}
.btn--quiet{background:transparent;box-shadow:none;color:var(--frost)}
.btn--quiet:hover{background:var(--glass-2);box-shadow:none}
.btn--danger{background:transparent;color:var(--bad);box-shadow:inset 0 0 0 1px rgba(240,138,108,.32)}
.btn--danger:hover{background:var(--bad-wash);color:var(--bad);box-shadow:inset 0 0 0 1px rgba(240,138,108,.6)}
.btn--danger-solid{background:#e46d4c;color:var(--white);box-shadow:none}
.btn--danger-solid:hover{background:#ec7f60;box-shadow:none}
.btn--sm{min-height:30px;padding:0 12px;font-size:var(--t-xs)}
.btn--block{width:100%}

/* ---------- campos ---------- */
.field{display:grid;gap:var(--s2);align-content:start}
.field > span:first-child,.field-label{font-size:.6875rem;color:var(--mist)}
.field small{font-size:var(--t-xs);color:var(--fog)}
.field input:not([type=checkbox]):not([type=file]),.field select,.field textarea{
  width:100%;min-height:40px;padding:9px 10px;background:var(--field);color:var(--white);
  border:0;box-shadow:var(--ring);border-radius:var(--r-sm);font:400 var(--t-sm)/1.43 var(--f-ui);
  transition:box-shadow var(--t-fast) var(--ease),background var(--t-fast) var(--ease)}
.field input::placeholder,.field textarea::placeholder{color:rgba(199,211,234,.6)}
.field input:hover,.field select:hover,.field textarea:hover{box-shadow:inset 0 0 0 1px rgba(186,215,247,.18)}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;box-shadow:var(--ring-strong),0 0 0 3px rgba(182,217,252,.10)}
.field input[type=file]{font:400 var(--t-sm)/1.4 var(--f-ui);color:var(--mist)}
.field input[type=file]::file-selector-button,.dz input[type=file]::file-selector-button{margin-right:var(--s3);padding:8px 14px;border:0;border-radius:var(--r-pill);background:var(--glass-2);box-shadow:var(--ring);color:var(--white);font:500 var(--t-xs)/1 var(--f-ui);cursor:pointer}
.field.has-error input,.field.has-error select{box-shadow:inset 0 0 0 1px var(--bad)}
select option{background:#0c0e1a;color:var(--frost)}
.check{display:flex;gap:var(--s3);align-items:flex-start;cursor:pointer;color:var(--frost)}
.check input{width:18px;height:18px;margin:2px 0 0;accent-color:var(--violet)}

/* ---------- formularios ---------- */
.form{display:grid;gap:var(--s4);max-width:920px}
.fgroup{display:grid;grid-template-columns:210px 1fr;gap:var(--s8);padding:var(--s6);background:var(--glass);border-radius:var(--r-card);box-shadow:var(--elev-card),var(--ring)}
.fgroup-head h2{font-size:var(--t-xs);color:var(--mist)}
.fgroup-head p{font-size:var(--t-sm);color:var(--fog);margin-top:var(--s2)}
.fgroup-body{display:grid;gap:var(--s5)}
.frow{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:var(--s4)}
.form-actions{display:flex;gap:var(--s2);padding-top:var(--s2);justify-content:end}

/* ---------- avisos ---------- */
.notice{display:flex;gap:var(--s3);align-items:flex-start;padding:var(--s3) var(--s4);border-radius:var(--r-sm);font-size:var(--t-sm)}
.notice--bad{color:var(--bad);background:var(--bad-wash);box-shadow:inset 0 0 0 1px rgba(240,138,108,.28)}
.notice--warn{color:var(--warn);background:var(--warn-wash);box-shadow:inset 0 0 0 1px rgba(227,179,95,.24)}
.notice--ok{color:var(--ok);background:var(--ok-wash);box-shadow:inset 0 0 0 1px rgba(63,191,169,.24)}
.notice strong{color:inherit}

/* ---------- tarjetas de vidrio ---------- */
.totals,.card,.cols > .section,
.sheet-inner > .section:has(> .table-wrap),.sheet-inner > .section:has(> .toolbar),.sheet-inner > .table-wrap,
.doc > .section:not(.stack-lg),.doc > .stack-lg > .section,.doc > .stack-lg > .totals,.rail,.empty,.dz{
  background:var(--glass);border-radius:var(--r-card);box-shadow:var(--elev-card),var(--ring)}
.cols > .section,.card,.sheet-inner > .section:has(> .table-wrap),.sheet-inner > .section:has(> .toolbar),.sheet-inner > .table-wrap,
.doc > .section:not(.stack-lg),.doc > .stack-lg > .section{padding:var(--s6)}

/* ---------- cifras ---------- */
.totals{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));padding:var(--s5) 0}
.total{padding:var(--s1) var(--s6);display:flex;flex-direction:column;gap:6px;box-shadow:-1px 0 0 var(--edge)}
.total:first-child{box-shadow:none}
.total-label{font-size:.6875rem;color:var(--fog)}
.total-value{font:500 var(--t-h-sm)/1.17 var(--f-display);color:var(--frost);letter-spacing:-.01em}
.total-note{font-size:var(--t-xs);color:var(--fog)}
.total--key .total-value{background:var(--skywash);-webkit-background-clip:text;background-clip:text;color:transparent;font-size:var(--t-h)}
.total--bad .total-value{color:var(--bad);background:none;-webkit-text-fill-color:currentColor}
.total--bad .total-label{color:var(--bad)}

/* ---------- secciones ---------- */
.section{display:grid;gap:var(--s4);align-content:start;min-width:0}
.section-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s3)}
.section-head h2{font-size:var(--t-xs);color:var(--mist);display:flex;align-items:center;gap:var(--s2)}
.section-head .count{font:500 var(--t-xs)/1 var(--f-ui);letter-spacing:0;color:var(--frost);background:var(--glass-3);border-radius:var(--r-sm);padding:3px 7px;box-shadow:var(--elev-badge)}
.cols{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:var(--s4);align-items:start}
.cols--even{grid-template-columns:repeat(2,minmax(0,1fr))}
.stack-lg{gap:var(--s4)}

/* ---------- barra de filtros ---------- */
.toolbar{display:flex;flex-wrap:wrap;gap:var(--s3);align-items:end;padding-bottom:var(--s4);box-shadow:0 1px 0 var(--edge)}
.toolbar .field{min-width:140px}
.toolbar .field--grow{flex:1;min-width:220px}
.toolbar-end{margin-left:auto;display:flex;gap:var(--s2);align-items:end}

/* ---------- tablas ---------- */
.table-wrap{overflow-x:auto;min-width:0}
.ledger{width:100%;border-collapse:collapse;font-size:var(--t-sm);color:var(--mist)}
.ledger th{text-align:left;padding:0 12px 12px;font-size:.6875rem;color:var(--fog);border-bottom:1px solid var(--edge);white-space:nowrap}
.ledger td{padding:13px 12px;border-bottom:1px solid var(--edge-soft);vertical-align:top}
.ledger th:first-child,.ledger td:first-child{padding-left:0}
.ledger th:last-child,.ledger td:last-child{padding-right:0}
.ledger tbody tr{transition:background var(--t-fast) var(--ease)}
.ledger tbody tr:hover{background:var(--glass-2)}
.ledger .r{text-align:right;white-space:nowrap}
.ledger td.r{color:var(--frost);font-variant-numeric:tabular-nums}
.ledger .row-link{color:var(--white);text-decoration:none;font-weight:500}
.ledger .row-link:hover{text-decoration:underline;text-decoration-color:var(--frost)}
.ledger .sub{display:block;font-size:var(--t-xs);color:var(--fog);margin-top:3px}
.ledger .clip{max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--frost)}
.ledger tfoot td{border-bottom:0;border-top:1px solid var(--edge);padding-top:14px;font:400 .6875rem/1.3 var(--f-dot);letter-spacing:var(--track-dot);text-transform:uppercase;color:var(--mist)}
.ledger tfoot td.r{font:500 var(--t-sub)/1 var(--f-display);letter-spacing:0;text-transform:none;color:var(--ice)}
.ledger .empty-row td{color:var(--fog);padding:var(--s8) 0;text-align:center}
.ledger--compact td{padding-top:10px;padding-bottom:10px}
.pager{display:flex;align-items:center;justify-content:space-between;gap:var(--s3);padding-top:var(--s4);font-size:var(--t-xs);color:var(--fog)}

/* ---------- etiquetas de estado ---------- */
.stamp{display:inline-flex;align-items:center;gap:6px;padding:4px 8px;border-radius:var(--r-sm);background:rgba(199,211,234,.12);color:var(--frost);box-shadow:var(--elev-badge);font:500 var(--t-xs)/1.2 var(--f-ui);white-space:nowrap}
.stamp::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.9}
.stamp--ok{color:var(--ok);background:var(--ok-wash)}
.stamp--warn{color:var(--warn);background:var(--warn-wash)}
.stamp--bad{color:var(--bad);background:var(--bad-wash)}
.stamp--info::before{display:none}
.stamp-big{display:inline-flex;align-items:center;gap:var(--s3);padding:8px 16px;border-radius:var(--r-pill);font:500 var(--t-sub)/1 var(--f-display)}
.stamp-big::before{content:"";width:8px;height:8px;border-radius:50%;background:currentColor;box-shadow:0 0 10px currentColor}
.stamp-big--ok{color:var(--ok);background:var(--ok-wash);box-shadow:inset 0 0 0 1px rgba(63,191,169,.3)}
.stamp-big--bad{color:var(--bad);background:var(--bad-wash);box-shadow:inset 0 0 0 1px rgba(240,138,108,.3)}

/* ---------- gráfica mensual ---------- */
.bars{display:grid;grid-template-columns:repeat(12,1fr);gap:8px;height:170px;align-items:end;border-bottom:1px solid var(--edge);position:relative}
.bars::before{content:"";position:absolute;inset:0 0 50% 0;border-bottom:1px dashed var(--edge-soft)}
.bar{position:relative;display:flex;align-items:flex-end;height:100%;text-decoration:none;z-index:1}
.bar i{display:block;width:100%;min-height:2px;border-radius:6px 6px 0 0;background:linear-gradient(180deg,rgba(182,217,252,.55),rgba(182,217,252,.08));box-shadow:inset 0 1px 0 rgba(216,236,248,.5);transition:filter var(--t-fast) var(--ease)}
.bar:hover i{filter:brightness(1.35)}
.bar.is-on i{background:linear-gradient(180deg,#8b6bf7,rgba(102,58,243,.18));box-shadow:inset 0 1px 0 rgba(255,255,255,.5),0 0 12px rgba(102,58,243,.35)}
.bar.is-zero i{background:var(--edge);box-shadow:none}
.bar-tip{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%);background:var(--deep-glass);color:var(--frost);box-shadow:var(--elev-modal);font:500 var(--t-xs)/1 var(--f-ui);padding:6px 9px;border-radius:var(--r-sm);white-space:nowrap;opacity:0;pointer-events:none;transition:opacity var(--t-fast) var(--ease)}
.bar:hover .bar-tip,.bar:focus-visible .bar-tip{opacity:1}
.bars-axis{display:grid;grid-template-columns:repeat(12,1fr);gap:8px;font-size:.625rem;color:var(--fog);text-align:center;padding-top:10px}
.bars-axis .is-on{color:var(--white)}
.bars-scale{display:flex;justify-content:space-between;font-size:.625rem;color:var(--fog)}

/* ---------- clave / valor ---------- */
.kv{display:grid;grid-template-columns:minmax(100px,max-content) 1fr;margin:0}
.kv dt,.kv dd{padding:10px 0;border-bottom:1px solid var(--edge-soft);margin:0}
.kv dt{font-size:.6875rem;line-height:1.7;color:var(--fog);padding-right:var(--s4)}
.kv dd{font-size:var(--t-sm);color:var(--frost);min-width:0;overflow-wrap:anywhere}

/* ---------- documento: contenido + riel ---------- */
.doc{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:var(--s4);align-items:start}
.rail{display:grid;gap:var(--s5);position:sticky;top:var(--s5);padding:var(--s6);background:var(--deep-glass);box-shadow:var(--elev-modal)}
.rail-block{display:grid;gap:var(--s3)}
.rail-block + .rail-block{padding-top:var(--s5);box-shadow:0 -1px 0 var(--edge)}
.rail-block h2{font-size:.6875rem;color:var(--mist)}
.rail-block p{color:var(--frost)}
.rail-actions{display:grid;gap:var(--s2);padding-top:var(--s2)}

/* ---------- índice ---------- */
.index{list-style:none;margin:0;padding:0;display:grid}
.index li{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:var(--s4);align-items:start;padding:var(--s4) 0;border-bottom:1px solid var(--edge-soft)}
.index li:last-child{border-bottom:0}
.index .idx{width:32px;height:32px;display:grid;place-items:center;border-radius:9999px;background:var(--glass-2);box-shadow:var(--ring);font:400 .6875rem/1 var(--f-dot);color:var(--frost)}
.index a.idx-title{font:500 var(--t-sub)/1.33 var(--f-ui);color:var(--white);text-decoration:none}
.index a.idx-title:hover{text-decoration:underline;text-decoration-color:var(--frost)}
.index .idx-title--off{font:500 var(--t-sub)/1.33 var(--f-ui);color:var(--fog)}
.index p{color:var(--fog);font-size:var(--t-sm);margin-top:4px}
.today{list-style:none;margin:0;padding:0}
.today li{display:flex;justify-content:space-between;gap:var(--s4);padding:14px 0;border-bottom:1px solid var(--edge-soft);align-items:center}
.today li:last-child{border-bottom:0}
.today li a{color:var(--frost);text-decoration:none}
.today li a:hover{color:var(--white);text-decoration:underline;text-decoration-color:var(--frost)}
.today .num{font:500 var(--t-sub)/1 var(--f-display);color:var(--ice)}
.today .num.t-bad{color:var(--bad)}

/* ---------- vacíos ---------- */
.empty{display:grid;gap:var(--s4);justify-items:start;padding:var(--s12) var(--s10)}
.empty h2{font:500 var(--t-h)/1.14 var(--f-display);background:var(--skywash);-webkit-background-clip:text;background-clip:text;color:transparent}
.empty p{color:var(--mist);max-width:600px}
.empty-steps{margin:0;padding-left:1.2em;color:var(--mist);display:grid;gap:var(--s2)}
.empty-steps li::marker{color:var(--fog);font-family:var(--f-dot)}
.empty--inline{padding:var(--s2) 0 0;background:none;box-shadow:none;border-radius:0}

/* ---------- zona de carga ---------- */
.dz{display:grid;gap:var(--s3);justify-items:center;text-align:center;padding:var(--s14) var(--s6);box-shadow:var(--elev-card),inset 0 0 0 1px var(--edge),inset 0 0 0 2px transparent;outline:1px dashed rgba(186,215,247,.22);outline-offset:-10px;transition:background var(--t-fast) var(--ease),outline-color var(--t-fast) var(--ease)}
.dz.is-over{background:rgba(102,58,243,.08);outline-color:var(--violet)}
.dz strong{font:500 var(--t-h-sm)/1.17 var(--f-display);color:var(--ice)}
.dz input[type=file]{font:inherit;font-size:var(--t-sm);max-width:100%;color:var(--mist)}
.dz-files{list-style:none;margin:0;padding:0;font:400 var(--t-xs)/1.7 var(--f-dot);color:var(--mist);max-height:140px;overflow:auto;text-align:left}

/* ---------- visor ---------- */
.viewer{width:100%;height:76vh;border:0;border-radius:var(--r-sm);background:#0a0c18;box-shadow:var(--ring)}
.viewer-img{max-width:100%;border-radius:var(--r-sm);box-shadow:var(--ring)}

/* ---------- diálogo ---------- */
dialog.confirm{border:0;padding:0;border-radius:var(--r-card);background:var(--deep-glass);color:var(--mist);box-shadow:var(--elev-modal);width:min(420px,calc(100vw - 32px));z-index:var(--z-dialog)}
dialog.confirm::backdrop{background:rgba(5,6,15,.72);backdrop-filter:blur(4px)}
dialog.confirm[open]{animation:aparece var(--t-med) var(--ease)}
.confirm-body{padding:var(--s8) var(--s8) var(--s5);display:grid;gap:var(--s3)}
.confirm-body h2{font:500 var(--t-h-sm)/1.17 var(--f-display)}
.confirm-actions{display:flex;justify-content:end;gap:var(--s2);padding:var(--s4) var(--s8) var(--s8)}
@keyframes aparece{from{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}}

/* ---------- utilidades ---------- */
.t-bad{color:var(--bad)} .t-ok{color:var(--ok)} .t-warn{color:var(--warn)}
.note-sm{font-size:var(--t-sm)} .note-xs{font-size:var(--t-xs)}
.line-sub{display:block;font-size:var(--t-xs);color:var(--fog);margin-top:3px}
.only-sm{display:none}

/* ---------- responsive ---------- */
@media (max-width:1060px){
  .doc{grid-template-columns:1fr}
  .rail{position:static}
  .cols{grid-template-columns:1fr}
}
@media (max-width:760px){
  .masthead{flex-wrap:wrap;padding:var(--s4) var(--s4) 0;gap:var(--s3);min-height:0}
  .masthead-meta span{display:none}
  .tabs{order:3;width:100%}
  .tab-idx{display:none}
  .sheet{padding:0 var(--s4)}
  .sheet-inner{padding:var(--s8) 0 var(--s12);gap:var(--s6)}
  .ph{grid-template-columns:1fr}
  .ph-actions{justify-content:start}
  .totals{grid-template-columns:1fr 1fr;padding:var(--s2) 0}
  .total{padding:var(--s4) var(--s5)}
  .total:nth-child(odd){box-shadow:none}
  .total:nth-child(n+3){box-shadow:0 -1px 0 var(--edge)}
  .total:nth-child(even):nth-child(n+3){box-shadow:0 -1px 0 var(--edge),-1px 0 0 var(--edge)}
  .total:last-child:nth-child(odd){grid-column:1/-1}
  .total--key .total-value{font-size:var(--t-h-sm)}
  .cols > .section,.card,.sheet-inner > .section:has(> .table-wrap),.sheet-inner > .section:has(> .toolbar),.sheet-inner > .table-wrap,
  .doc > .section:not(.stack-lg),.doc > .stack-lg > .section{padding:var(--s5) var(--s4)}
  .rail{padding:var(--s5)}
  .cols--even{grid-template-columns:1fr}
  .fgroup{grid-template-columns:1fr;gap:var(--s4);padding:var(--s5)}
  .toolbar .field,.toolbar .field--grow{min-width:calc(50% - var(--s3));flex:1}
  .toolbar-end{margin-left:0;width:100%}
  .toolbar-end .btn{flex:1}
  .form-actions .btn{flex:1}
  .ledger td,.ledger th{padding-left:8px;padding-right:8px}
  .ledger td:first-child,.ledger th:first-child{padding-left:0}
  .ledger td:last-child,.ledger th:last-child{padding-right:0}
  .ledger .clip{max-width:150px}
  .hide-sm{display:none}
  .only-sm{display:inline}
  .empty{padding:var(--s8) var(--s5)}
  .viewer{height:60vh}
}

/* sin tarjeta dentro de tarjeta: totales y gráficas dentro de una sección ya elevada */
.section:not(.stack-lg) > .totals{background:none;box-shadow:none;border-radius:0;padding:var(--s4) 0 0}
.section:not(.stack-lg) > .totals .total:first-child{padding-left:0}

/* módulos pendientes: compactos en la navegación (el detalle va en el título) */
.tab.is-soon .tab-idx,.tab.is-soon small{display:none}

/* ---------- empresas: buscador ---------- */
.search-panel{display:grid;gap:var(--s4);padding:var(--s6);background:var(--glass);border-radius:var(--r-card);box-shadow:var(--elev-card),var(--ring)}
.search-main{display:flex;gap:var(--s2);align-items:center;padding:6px 6px 6px var(--s5);border-radius:var(--r-pill);background:var(--field);box-shadow:var(--ring);transition:box-shadow var(--t-fast) var(--ease)}
.search-main:focus-within{box-shadow:var(--ring-strong),0 0 0 4px rgba(102,58,243,.14)}
.search-main input{flex:1;min-width:0;border:0;background:none;color:var(--white);font:400 var(--t-sub)/1.4 var(--f-ui);padding:8px 0;outline:none}
.search-main input::placeholder{color:rgba(199,211,234,.55)}
.search-main input::-webkit-search-cancel-button{filter:invert(.8)}
.search-opts{display:flex;flex-wrap:wrap;gap:var(--s4);align-items:center;justify-content:space-between}
.seg{display:inline-flex;gap:2px;padding:3px;margin:0;border:0;border-radius:var(--r-pill);background:var(--glass);box-shadow:var(--ring)}
.seg label{cursor:pointer}
.seg input{position:absolute;opacity:0;pointer-events:none}
.seg span{display:inline-flex;align-items:center;height:30px;padding:0 14px;border-radius:var(--r-pill);font:500 var(--t-xs)/1 var(--f-ui);color:var(--mist);transition:background var(--t-fast) var(--ease),color var(--t-fast) var(--ease)}
.seg input:checked + span{background:var(--glass-3);color:var(--white);box-shadow:var(--elev-badge),var(--ring)}
.seg input:focus-visible + span{outline:2px solid var(--focus);outline-offset:1px}
.field--inline{display:flex;align-items:center;gap:var(--s3)}
.field--inline select{min-width:220px}
.chips-row{display:flex;flex-wrap:wrap;gap:var(--s2);align-items:center}
.chips-row .eyebrow{margin-right:var(--s2);font-size:.6875rem;color:var(--fog)}
.chip{display:inline-flex;align-items:center;height:28px;padding:0 12px;border-radius:var(--r-pill);background:var(--glass-2);box-shadow:var(--ring);color:var(--frost);font:500 var(--t-xs)/1 var(--f-ui);text-decoration:none;transition:background var(--t-fast) var(--ease)}
.chip:hover{background:var(--glass-3);color:var(--white)}

.results{list-style:none;margin:0;padding:0;display:grid}
.result{display:grid;gap:6px;padding:var(--s4) var(--s4);margin:0 calc(var(--s4) * -1);border-radius:12px;text-decoration:none;color:inherit;transition:background var(--t-fast) var(--ease)}
.results li + li .result{box-shadow:0 -1px 0 var(--edge-soft)}
.result:hover{background:var(--glass-2)}
.result-head{display:flex;flex-wrap:wrap;gap:var(--s2) var(--s4);align-items:baseline;justify-content:space-between}
.result-name{font:500 var(--t-base)/1.35 var(--f-ui);color:var(--white)}
.result:hover .result-name{text-decoration:underline;text-decoration-color:var(--frost)}
.result-giro{font-size:var(--t-sm);color:var(--mist);line-height:1.5}
.result-tags{display:flex;flex-wrap:wrap;gap:6px}
a.stamp{text-decoration:none}
a.stamp:hover{background:var(--glass-3)}
mark{background:rgba(102,58,243,.35);color:var(--white);border-radius:3px;padding:0 2px;box-shadow:0 0 0 1px rgba(139,107,247,.45)}

.cat-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:var(--s2)}
.cat-grid a{display:flex;justify-content:space-between;align-items:center;gap:var(--s3);padding:14px var(--s4);border-radius:12px;background:var(--glass);box-shadow:var(--ring);color:var(--frost);text-decoration:none;font-size:var(--t-sm);transition:background var(--t-fast) var(--ease)}
.cat-grid a:hover{background:var(--glass-3);color:var(--white)}
.cat-grid b{font:500 var(--t-sub)/1 var(--f-display);color:var(--ice)}

/* ficha */
.giro-text{color:var(--frost);font-size:var(--t-base);line-height:1.6;max-width:75ch}
.secret{font-family:var(--f-dot);font-size:.86em;color:var(--frost)}
@media (max-width:760px){
  .search-panel{padding:var(--s4)}
  .search-main{padding-left:var(--s4)}
  .search-main .btn{padding:0 14px}
  .field--inline{width:100%}
  .field--inline select{min-width:0;flex:1}
}

/* la columna de la página nunca se ensancha por el contenido (campos, tablas) */
.sheet-inner{grid-template-columns:minmax(0,1fr)}
.search-panel,.search-main{min-width:0}
.search-main input{width:100%}
.result-name{overflow-wrap:anywhere}

/* ---------- sesión: menú de usuario, login, usuarios ---------- */
.user-menu{margin-left:auto;display:flex;align-items:center;gap:var(--s2);flex:none}
.user-menu form{margin:0}
.user-name{display:inline-flex;align-items:center;gap:var(--s2);height:36px;padding:0 12px 0 4px;border-radius:var(--r-pill);color:var(--frost);text-decoration:none;font:500 var(--t-sm)/1 var(--f-ui);transition:background var(--t-fast) var(--ease)}
.user-name:hover,.user-name[aria-current="page"]{background:var(--glass-2);color:var(--white)}
.avatar{width:28px;height:28px;display:grid;place-items:center;border-radius:9999px;background:var(--glass-3);box-shadow:var(--ring);font:500 var(--t-xs)/1 var(--f-display);color:var(--ice)}
.masthead--solo .masthead-meta{margin-left:auto}

.login-wrap{min-height:62vh;display:grid;place-items:center}
.login-card{width:min(400px,100%);display:grid;gap:var(--s4);padding:var(--s8);border-radius:var(--r-card);background:var(--deep-glass);box-shadow:var(--elev-modal)}
.login-card h1{font:500 var(--t-h)/1.14 var(--f-display);background:var(--skywash);-webkit-background-clip:text;background-clip:text;color:transparent}
.login-card .eyebrow{font-size:.6875rem;color:var(--fog)}
.btn--lg{min-height:44px;font-size:var(--t-base)}

.row-actions{display:inline-flex;flex-wrap:wrap;gap:var(--s2);justify-content:end;align-items:center}
.inline-form{display:inline-flex;gap:6px;align-items:center;margin:0}
.input-sm{width:170px;min-height:32px;padding:6px 10px;background:var(--field);color:var(--white);border:0;box-shadow:var(--ring);border-radius:var(--r-sm);font:400 var(--t-xs)/1.3 var(--f-ui)}
.input-sm:focus{outline:none;box-shadow:var(--ring-strong)}
@media (max-width:760px){
  .user-label{display:none}
  .user-name{padding-right:4px}
  .user-menu .tab{display:none}
  .login-card{padding:var(--s6)}
  .input-sm{width:130px}
}

/* ---------- expediente de la empresa ---------- */
.exp-botones{display:flex;flex-wrap:wrap;gap:var(--s2)}
.exp-n{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 6px;border-radius:var(--r-pill);background:rgba(255,255,255,.18);font-size:var(--t-xs)}
.exp-falta{opacity:.55;cursor:default;box-shadow:inset 0 0 0 1px var(--edge);background:transparent}
.exp-falta:hover{background:transparent;box-shadow:inset 0 0 0 1px var(--edge)}
.exp-lista{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:var(--s5);padding-top:var(--s3);border-top:1px solid var(--edge-soft)}
.exp-grupo h3{font:500 var(--t-sm)/1.3 var(--f-ui);color:var(--mist);margin-bottom:var(--s2)}
.exp-grupo ul{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.exp-grupo li{display:grid;gap:1px}
.exp-grupo a{color:var(--frost);text-decoration:none;font-size:var(--t-sm);overflow-wrap:anywhere}
.exp-grupo a:hover{color:var(--white);text-decoration:underline;text-decoration-color:var(--frost)}
.exp-mini{list-style:none;margin:0;padding:0;display:grid;gap:2px;max-height:50vh;overflow:auto}
.exp-mini a{display:block;padding:6px 8px;border-radius:var(--r-sm);color:var(--mist);text-decoration:none;font-size:var(--t-sm)}
.exp-mini a:hover{background:var(--glass-2);color:var(--white)}
.exp-mini li[aria-current] a{background:var(--glass-3);color:var(--white)}
.exp-sub{padding-top:var(--s4);border-top:1px solid var(--edge-soft)}

/* ---------- verificación en dos pasos ---------- */
.pasos{margin:0;padding-left:1.3em;display:grid;gap:var(--s6)}
.pasos li{display:grid;gap:var(--s3);color:var(--mist)}
.pasos strong{color:var(--white)}
.qr{background:#fff;border-radius:12px;padding:10px;width:max-content;max-width:100%}
.qr svg{display:block;max-width:100%;height:auto}
.secreto{word-break:break-all;color:var(--white);padding:var(--s2) 0}
.form-2fa{display:flex;gap:var(--s3);align-items:end;flex-wrap:wrap}
.form-2fa .field{min-width:180px}
details summary{cursor:pointer;color:var(--frost);font-size:var(--t-sm)}
