/* ============================================================
   HUB huge.x · PORTADA
   Sistema DealTunnel (brand/DESIGN.md v1.3). Hereda tokens,
   tipografia y geometria de audit/audit.css y expediente/expediente.css.
   Radio 0, hairline 1px, sin sombras, grain 3%, un solo acento.
   ============================================================ */

/* --- 1. FUENTES AUTOALOJADAS ---------------------------------- */
@font-face{font-family:Geist;src:url(fonts/geist-latin.woff2) format("woff2");font-weight:100 900;font-display:swap;
 unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215}
@font-face{font-family:Geist;src:url(fonts/geist-latin-ext.woff2) format("woff2");font-weight:100 900;font-display:swap;
 unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Geist Mono";src:url(fonts/geist-mono-latin.woff2) format("woff2");font-weight:100 900;font-display:swap;
 unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+2000-206F,U+2074,U+20AC,U+2122,U+2212}
@font-face{font-family:"Geist Mono";src:url(fonts/geist-mono-latin-ext.woff2) format("woff2");font-weight:100 900;font-display:swap;
 unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+2113,U+2C60-2C7F}

/* --- 2. TOKENS ------------------------------------------------ */
:root{
  --canvas:#FFFFFF;
  --surface:#F6F7F5;
  --text:#101112;
  --grey:#6B6F6B;
  --hairline:rgba(16,17,18,.14);
  --hairline-soft:rgba(16,17,18,.07);
  --acc-text:#067647;   /* solo texto en claro */
  --acc-fill:#05DF72;   /* solo fill */
  --hl-bg:#05DF72;
  --hl-text:#101112;
  --dot-off:#E1E4E1;
  --sans:Geist,-apple-system,"Helvetica Neue",Arial,sans-serif;
  --mono:"Geist Mono","SF Mono",ui-monospace,Menlo,monospace;

  /* rampa tipografica: siete valores, base 16, razon 1.25 */
  --f-d1:clamp(30px,5vw,49px);
  --f-h1:25px; --f-n1:25px; --f-h2:20px;
  --f-b1:16px; --lh-b1:24px; --f-m1:13px; --f-l1:10px;

  /* escala de espacio: siete valores y ninguno mas */
  --e1:8px; --e2:16px; --e3:24px; --e4:32px; --e5:48px; --e6:64px; --e7:96px;

  /* grid y chrome */
  --grid:1120px; --gutter:24px; --margen:48px; --chrome:48px;
  --prosa-tope:720px;
}
html[data-theme="dark"]{
  --canvas:#0C0C0E;
  --surface:#131316;
  --text:#E8E4DC;
  --grey:#9A9690;
  --hairline:rgba(232,228,220,.14);
  --hairline-soft:rgba(232,228,220,.08);
  --acc-text:#05DF72;   /* en noche el electrico hace texto y fill */
  --hl-bg:transparent;
  --hl-text:#05DF72;
  --dot-off:#222228;
}
@media (min-width:1600px){
  :root{--f-d1:clamp(38px,5vw,61px);--f-h1:31px;--f-n1:31px;--f-h2:25px;
        --f-b1:20px;--lh-b1:32px;--f-m1:16px;--f-l1:12px}
}

/* --- 3. BASE -------------------------------------------------- */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{
  background:var(--canvas);color:var(--text);
  font-family:var(--sans);font-size:var(--f-b1);line-height:var(--lh-b1);font-weight:400;
  -webkit-font-smoothing:antialiased;
  display:flex;flex-direction:column;min-height:100vh;
}
/* grain 3% */
body::after{
  content:'';position:fixed;inset:0;pointer-events:none;z-index:999;opacity:.03;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E");
}
::selection{background:var(--acc-fill);color:#101112}
:focus-visible{outline:2px solid var(--acc-text);outline-offset:2px}
main{flex:1}

/* --- 4. TIPOGRAFIA -------------------------------------------- */
.l1{font-family:var(--mono);font-size:var(--f-l1);font-weight:500;line-height:16px;
    text-transform:uppercase;letter-spacing:.15em;color:var(--grey)}
.m1{font-family:var(--mono);font-size:var(--f-m1);font-weight:400;line-height:20px;
    font-variant-numeric:tabular-nums}
.b1{font-size:var(--f-b1);line-height:var(--lh-b1)}
.h2{font-size:var(--f-h2);font-weight:600;line-height:28px;letter-spacing:-.02em}
.h1{font-size:var(--f-h1);font-weight:600;line-height:32px;letter-spacing:-.02em}
.n1{font-family:var(--mono);font-size:var(--f-n1);font-weight:500;line-height:32px;
    font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.d1{font-size:var(--f-d1);font-weight:600;line-height:1.08;letter-spacing:-.03em}
.hl{background:var(--hl-bg);color:var(--hl-text);padding:0 .16em}
.dim{color:var(--grey)}
a{color:var(--acc-text);text-decoration:none}
a:hover{text-decoration:underline}

/* --- 5. GRID -------------------------------------------------- */
.wrap{width:100%;max-width:calc(var(--grid) + var(--margen)*2);
      margin-inline:auto;padding-inline:var(--margen)}
.prosa{max-width:var(--prosa-tope)}

/* --- 6. CHROME ------------------------------------------------ */
.chrome{
  position:sticky;top:0;z-index:40;height:var(--chrome);
  background:var(--canvas);border-bottom:1px solid var(--hairline);
}
.chrome .wrap{height:100%;display:flex;align-items:center;gap:var(--e3);min-width:0}
.chrome-id{flex:0 1 auto;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chrome-id b{font-weight:500;color:var(--text)}
.chrome-pos{flex:1 1 auto;text-align:center;min-width:0;white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis}
.chrome-ctrl{flex:0 0 auto;display:flex;align-items:center;gap:var(--e1)}
.ctrl{
  background:none;border:1px solid var(--hairline);border-radius:0;
  height:24px;padding:0 var(--e1);cursor:pointer;
  font-family:var(--mono);font-size:var(--f-l1);font-weight:500;
  text-transform:uppercase;letter-spacing:.12em;color:var(--grey);
}
.ctrl:hover{color:var(--text);border-color:var(--text)}
.ctrl[aria-pressed="true"]{color:var(--acc-text);border-color:var(--acc-text)}

/* --- 7. PORTADA ----------------------------------------------- */
.portada{padding-block:var(--e4)}
.portada .l1{display:block;margin-bottom:var(--e2)}
.portada .d1{margin-bottom:var(--e3)}
.portada .b1{color:var(--text)}

/* --- 8. PUERTA PRIMARIA (panel a sangre sobre niebla) --------- */
/* Toda la superficie es el enlace: un solo destino, un solo objetivo de clic. */
.puerta{
  display:block;color:var(--text);text-decoration:none;
  background:var(--surface);
  border-top:1px solid var(--hairline);border-bottom:1px solid var(--hairline);
  padding-block:var(--e4);
}
.puerta:hover{text-decoration:none}
.puerta .wrap{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,4fr);
  gap:var(--e4) var(--e6);align-items:start}
.p-cab{grid-column:1;grid-row:1}
.p-cta{grid-column:1;grid-row:2}
.puerta .ficha{grid-column:2;grid-row:1 / span 2;align-self:start}
.puerta .l1{display:block;margin-bottom:var(--e2)}
.puerta .h1{display:block;margin-bottom:var(--e2)}
.puerta .b1{display:block;max-width:var(--prosa-tope)}
.btn{
  display:inline-flex;align-items:center;height:56px;padding:0 var(--e4);
  background:var(--acc-fill);color:#101112;border-radius:0;
  font-size:var(--f-h2);font-weight:600;letter-spacing:-.02em;
}
.puerta:hover .btn{box-shadow:inset 0 0 0 2px #101112}
.btn-nota{display:block;margin-top:var(--e1);color:var(--grey);
  text-transform:uppercase;letter-spacing:.04em}

/* ficha de registro: el dictamen en cinco campos */
.ficha{border:1px solid var(--hairline);background:var(--canvas);padding:var(--e3)}
.ficha-cab{display:block;padding-bottom:var(--e2);border-bottom:1px solid var(--hairline);
  margin-bottom:var(--e1)}
.ficha-campo{display:flex;align-items:baseline;gap:var(--e1);padding-block:var(--e1)}
.ficha-campo + .ficha-campo{border-top:1px dashed var(--hairline-soft)}
.ficha-k{flex:0 0 96px;color:var(--grey);text-transform:uppercase;letter-spacing:.04em;
  font-family:var(--mono);font-size:var(--f-m1);line-height:20px}
.ficha-v{font-family:var(--mono);font-size:var(--f-m1);line-height:20px;color:var(--text);
  font-variant-numeric:tabular-nums;min-width:0}
.ficha-v[data-clave]{color:var(--acc-text)}

/* --- 9. PUERTA SECUNDARIA (fila de registro) ------------------ */
.sec{padding-block:var(--e4) var(--e5)}
.sec > .wrap > .l1{display:block;margin-bottom:var(--e2)}
.fila{
  display:grid;grid-template-columns:1fr 160px;align-items:center;gap:var(--e3);
  min-height:72px;padding:var(--e2) var(--e3);color:var(--text);text-decoration:none;
  border:1px solid var(--hairline);
}
.fila:hover{text-decoration:none;border-color:var(--text)}
.fila-t{display:block;font-size:var(--f-b1);font-weight:600;line-height:24px}
.fila-p{display:block;margin-top:4px;color:var(--grey)}
.fila-m{font-family:var(--mono);font-size:var(--f-m1);line-height:20px;color:var(--grey);
  text-transform:uppercase;letter-spacing:.04em}

/* --- 10. CIFRAS TRAZADAS -------------------------------------- */
/* El verde no es del numero: es de la fuente que lo respalda (DESIGN 8B.9). */
.cifras-sec{padding-block:var(--e5) var(--e6);border-top:1px solid var(--hairline)}
.cifras-sec > .wrap > .l1{display:block;margin-bottom:var(--e3)}
.cifras{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gutter)}
.cifra{border-top:1px solid var(--hairline);padding-top:var(--e2);min-width:0}
.cifra-n{display:block;color:var(--text)}
.cifra-q{display:block;margin-top:var(--e1);color:var(--text)}
.cifra-f{display:block;margin-top:var(--e1);color:var(--acc-text);
  text-transform:uppercase;letter-spacing:.04em;overflow-wrap:anywhere}
.nota-core{margin-top:var(--e5);color:var(--grey);max-width:var(--prosa-tope)}

/* --- 11. PIE DE EMISION --------------------------------------- */
.emision{border-top:1px solid var(--hairline);padding-block:var(--e5)}
.emision .wrap{display:flex;align-items:baseline;justify-content:space-between;
  gap:var(--e3);flex-wrap:wrap}
.lockup{font-size:var(--f-h2);font-weight:600;letter-spacing:-.02em;color:var(--text)}
.lockup span{color:var(--acc-text)}
.emision-reg{display:block;margin-top:var(--e1);color:var(--grey)}
.emision-links{display:flex;gap:var(--e3);flex-wrap:wrap;
  font-family:var(--mono);font-size:var(--f-m1);line-height:20px;
  text-transform:uppercase;letter-spacing:.04em}

/* --- 12. RESPONSIVE ------------------------------------------- */
@media (max-width:959px){
  :root{--margen:32px}
  .puerta .wrap{grid-template-columns:1fr;gap:var(--e3)}
  .p-cab,.p-cta,.puerta .ficha{grid-column:1;grid-row:auto}
  .puerta{padding-block:var(--e4)}
  .cifras{grid-template-columns:repeat(2,minmax(0,1fr))}
  .chrome-pos{display:none}
}
@media (max-width:639px){
  :root{--margen:20px}
  .cifras{grid-template-columns:1fr}
  .fila{grid-template-columns:1fr;row-gap:var(--e1)}
  .btn{width:100%;justify-content:center;padding-inline:var(--e2)}
  .ficha-k{flex-basis:88px}
}
@media (max-width:479px){
  :root{--margen:16px}
  .chrome .wrap{gap:var(--e1)}
  .ficha-campo{flex-direction:column;gap:0}
  .ficha-k{flex:0 0 auto}
}

/* --- 13. MOTION ----------------------------------------------- */
/* Fade o nada. Ningun elemento rebota, ningun elemento se desplaza. */
@media (prefers-reduced-motion:no-preference){
  .portada,.puerta,.sec,.cifras-sec{animation:aparece .35s ease-out both}
  .fila,.ctrl,.btn{transition:border-color .15s linear,color .15s linear}
}
@keyframes aparece{from{opacity:0}to{opacity:1}}
@media (prefers-reduced-motion:reduce){
  *{animation:none !important;transition:none !important}
}

/* --- 14. IMPRESION -------------------------------------------- */
@media print{
  :root{
    --canvas:#FFFFFF;--surface:#FFFFFF;--text:#000000;--grey:#444444;
    --hairline:rgba(0,0,0,.3);--hairline-soft:rgba(0,0,0,.18);
    --acc-text:#0A5C38;--dot-off:#FFFFFF;--margen:0;
  }
  html[data-theme="dark"]{color-scheme:light}
  body::after{display:none}
  .chrome{position:static}
  .ctrl,.btn{display:none}
  .hl{background:transparent;box-shadow:inset 0 -.5em 0 rgba(0,0,0,.12)}
  .puerta,.fila,.cifra,.ficha{break-inside:avoid;page-break-inside:avoid}
  a[href^="/"]::after,a[href^="http"]::after{content:' (' attr(href) ')';font-family:var(--mono);font-size:11px;color:#444}
}

/* --- 10B. AVANCE DEL CORE (ventanita de tracking) -------------- */
/* Lee ops.dealtunnel.io/api/core-steps. Client-facing: se dice 16
   pasos, nunca se imprime un denominador de 18 (CLAUDE.md). El verde
   marca lo cerrado; lo pendiente es hairline, no rojo: no hay falla. */
.core-sec{padding-block:var(--e5);border-top:1px solid var(--hairline)}
.core-sec > .wrap > .l1{display:block;margin-bottom:var(--e2)}
.core-cab{display:flex;align-items:baseline;justify-content:space-between;
  gap:var(--e3);flex-wrap:wrap;padding-bottom:var(--e2);
  border-bottom:1px solid var(--hairline);margin-bottom:var(--e3)}
.core-nom{font-size:var(--f-h2);font-weight:600;letter-spacing:-.02em;min-width:0}
.core-est{font-family:var(--mono);font-size:var(--f-m1);line-height:20px;color:var(--acc-text);
  text-transform:uppercase;letter-spacing:.04em}
.core-mods{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gutter)}
.core-mod{border-top:1px solid var(--hairline);padding-top:var(--e2);min-width:0}
.core-mod-cab{display:flex;align-items:baseline;justify-content:space-between;
  gap:var(--e1);margin-bottom:var(--e2)}
.core-mod-n{font-family:var(--mono);font-size:var(--f-l1);font-weight:500;line-height:16px;
  text-transform:uppercase;letter-spacing:.15em;color:var(--text)}
.core-mod-e{font-family:var(--mono);font-size:var(--f-l1);line-height:16px;
  text-transform:uppercase;letter-spacing:.1em;color:var(--grey)}
.core-mod[data-est="done"] .core-mod-e{color:var(--acc-text)}
.core-paso{display:grid;grid-template-columns:8px 24px 1fr auto;align-items:baseline;
  gap:var(--e1);padding-block:6px}
.core-paso + .core-paso{border-top:1px dashed var(--hairline-soft)}
.core-dot{width:8px;height:8px;background:var(--dot-off);align-self:center}
.core-paso[data-st="done"] .core-dot{background:var(--acc-fill)}
.core-paso[data-st="prog"] .core-dot{background:transparent;box-shadow:inset 0 0 0 2px var(--acc-text)}
.core-paso[data-st="na"] .core-dot{background:transparent;box-shadow:inset 0 0 0 1px var(--hairline)}
.core-ix{font-family:var(--mono);font-size:var(--f-l1);line-height:20px;color:var(--grey);
  font-variant-numeric:tabular-nums}
.core-t{font-size:var(--f-m1);line-height:20px;color:var(--text);min-width:0;
  overflow-wrap:anywhere}
.core-paso[data-st="pend"] .core-t,.core-paso[data-st="na"] .core-t{color:var(--grey)}
.core-st{font-family:var(--mono);font-size:var(--f-l1);line-height:20px;color:var(--grey);
  text-transform:uppercase;letter-spacing:.08em;white-space:nowrap}
.core-paso[data-st="done"] .core-st{color:var(--acc-text)}
.core-pie{margin-top:var(--e3);color:var(--grey);max-width:var(--prosa-tope)}
.core-err{color:var(--grey);border:1px solid var(--hairline);padding:var(--e3)}
@media (max-width:959px){.core-mods{grid-template-columns:1fr;gap:var(--e3)}}
@media (max-width:639px){.core-paso{grid-template-columns:8px 24px 1fr;row-gap:0}
  .core-st{grid-column:3;font-size:var(--f-l1)}}
@media (prefers-reduced-motion:no-preference){.core-sec{animation:aparece .35s ease-out both}}
@media print{.core-sec{break-inside:avoid}}

/* ============================================================
   15. CUERPO DE DOCUMENTO · pre-Revenue Audit
   Extension de la clase de superficie de expediente (DESIGN 8B)
   para un dictamen de una sola pagina. Mismos atomos, mismo grid.
   ============================================================ */

/* --- 15.1 Panel de veredicto (a sangre sobre niebla) ---------- */
.panel{background:var(--surface);border-block:1px solid var(--hairline);
  padding-block:var(--e5)}
.panel .wrap{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,4fr);
  gap:var(--e4) var(--e6);align-items:start}
.panel-cab{grid-column:1}
.panel .ficha{grid-column:2;grid-row:1 / span 2;align-self:start}
.panel .l1{display:block;margin-bottom:var(--e2)}
.panel .d1{display:block;margin-bottom:var(--e3)}
.panel .b1{display:block;max-width:var(--prosa-tope)}
.panel .b1 + .b1{margin-top:var(--e2)}

/* --- 15.2 Indice de lectura ----------------------------------- */
.toc{padding-block:var(--e5);border-bottom:1px solid var(--hairline)}
.toc > .wrap > .l1{display:block;margin-bottom:var(--e3)}
.toc-lista{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
  gap:0 var(--e6)}
.toc-i{display:grid;grid-template-columns:32px 1fr;align-items:baseline;
  gap:var(--e2);padding-block:var(--e2);color:var(--text);
  border-top:1px dashed var(--hairline-soft);text-decoration:none}
.toc-i:hover{text-decoration:none;color:var(--acc-text)}
.toc-ix{font-family:var(--mono);font-size:var(--f-m1);line-height:24px;
  color:var(--acc-text);font-variant-numeric:tabular-nums}
.toc-t{font-size:var(--f-m1);line-height:24px;min-width:0}

/* --- 15.3 Seccion de cuerpo ----------------------------------- */
.bloque{padding-block:var(--e6);border-top:1px solid var(--hairline);
  scroll-margin-top:var(--chrome)}
.bloque:first-of-type{border-top:none}
.bloque-cab{display:grid;grid-template-columns:32px 1fr;gap:var(--e2);
  margin-bottom:var(--e4)}
.bloque-ix{font-family:var(--mono);font-size:var(--f-m1);line-height:32px;
  color:var(--acc-text);font-variant-numeric:tabular-nums}
.bloque-cab .l1{display:block;margin-bottom:var(--e1)}
.bloque p{max-width:var(--prosa-tope)}
.bloque p + p{margin-top:var(--e2)}
.bloque .h2{display:block;margin-top:var(--e4);margin-bottom:var(--e2)}
.bloque .h2:first-child{margin-top:0}
.sangria{padding-left:calc(32px + var(--e2))}
@media (max-width:639px){.sangria{padding-left:0}}

/* --- 15.4 Cita de fuente inline ------------------------------- */
.sig{font-family:var(--mono);font-size:var(--f-l1);font-weight:500;
  text-transform:uppercase;letter-spacing:.1em;color:var(--acc-text);
  white-space:nowrap;vertical-align:.15em}
a.sig:hover{text-decoration:underline}
/* referencia interna: hereda color, no gasta acento (DESIGN 8B.3) */
a.ref-bloq{color:inherit;text-decoration:none;
  border-bottom:1px solid var(--hairline);font-family:var(--mono);font-size:.9em}
a.ref-bloq:hover{border-bottom-color:var(--text);text-decoration:none}
.dato{font-family:var(--mono);font-variant-numeric:tabular-nums;
  font-size:.94em;letter-spacing:-.01em}

/* --- 15.5 Tabla de registro ----------------------------------- */
.reg-caja{overflow-x:auto;border:1px solid var(--hairline);margin-top:var(--e3)}
table.reg{width:100%;border-collapse:collapse;min-width:560px}
table.reg th{font-family:var(--mono);font-size:var(--f-l1);font-weight:500;
  line-height:16px;text-transform:uppercase;letter-spacing:.12em;color:var(--grey);
  text-align:left;padding:var(--e2);border-bottom:1px solid var(--hairline);
  background:var(--canvas);white-space:nowrap}
table.reg td{font-family:var(--mono);font-size:var(--f-m1);line-height:20px;
  padding:var(--e2);border-bottom:1px dashed var(--hairline-soft);
  font-variant-numeric:tabular-nums;vertical-align:top}
table.reg tr:last-child td{border-bottom:none}
table.reg td[data-num]{text-align:right;white-space:nowrap}
table.reg td[data-t]{font-family:var(--sans);font-size:var(--f-b1);line-height:24px;
  font-weight:600}
table.reg tr[data-lead] td{color:var(--text)}
table.reg tr[data-lead] td[data-t]{color:var(--acc-text)}
.reg-pie{margin-top:var(--e2);color:var(--grey);max-width:var(--prosa-tope)}

/* --- 15.6 Fila de decision (registro accionable) -------------- */
.decisiones{margin-top:var(--e3);border-top:1px solid var(--hairline)}
.dec{display:grid;grid-template-columns:32px 1fr 200px;align-items:start;
  gap:var(--e2) var(--e3);min-height:var(--e6);padding-block:var(--e3);
  border-bottom:1px solid var(--hairline)}
.dec-ix{font-family:var(--mono);font-size:var(--f-m1);line-height:24px;
  color:var(--acc-text);font-variant-numeric:tabular-nums}
.dec-t{display:block;font-size:var(--f-b1);font-weight:600;line-height:24px}
.dec-p{display:block;margin-top:var(--e1);color:var(--grey);
  font-family:var(--mono);font-size:var(--f-m1);line-height:20px}
.dec-m{font-family:var(--mono);font-size:var(--f-m1);line-height:24px;
  color:var(--grey);text-transform:uppercase;letter-spacing:.04em}
.dec[data-clave] .dec-m{color:var(--acc-text)}
@media (max-width:639px){.dec{grid-template-columns:32px 1fr}
  .dec-m{grid-column:2}}

/* --- 15.7 Nota de encuadre (lo que cambio y por que) ---------- */
.nota{border:1px solid var(--hairline);background:var(--surface);
  padding:var(--e3);margin-top:var(--e3);max-width:var(--prosa-tope)}
.nota .l1{display:block;margin-bottom:var(--e2)}
.nota p{max-width:none}

/* --- 15.8 Cifras: variante de dos columnas -------------------- */
.cifras[data-cols="2"]{grid-template-columns:repeat(2,minmax(0,1fr))}
.cifras[data-cols="4"]{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:959px){.cifras[data-cols="4"]{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:639px){.cifras[data-cols="2"],.cifras[data-cols="4"]{grid-template-columns:1fr}}

/* --- 15.9 Indice de fuentes ----------------------------------- */
.fuentes{padding-block:var(--e6);border-top:1px solid var(--hairline);
  scroll-margin-top:var(--chrome)}
.fuentes > .wrap > .l1{display:block;margin-bottom:var(--e3)}
.f-fila{display:grid;grid-template-columns:120px 1fr;gap:var(--e2) var(--e3);
  padding-block:var(--e2);border-top:1px dashed var(--hairline-soft);
  scroll-margin-top:var(--chrome)}
.f-sig{font-family:var(--mono);font-size:var(--f-l1);font-weight:500;line-height:20px;
  text-transform:uppercase;letter-spacing:.1em;color:var(--acc-text)}
.f-d{font-family:var(--mono);font-size:var(--f-m1);line-height:20px;color:var(--text);
  min-width:0;overflow-wrap:anywhere}
.f-d span{display:block;color:var(--grey)}
@media (max-width:639px){.f-fila{grid-template-columns:1fr;gap:0}}

/* --- 15.10 Impresion del cuerpo ------------------------------- */
@media print{
  .toc{display:none}
  .bloque,.panel,.dec,.reg-caja,.nota{break-inside:avoid;page-break-inside:avoid}
  .reg-caja{overflow:visible}
  table.reg{min-width:0}
}
