
:root{
  /* Paleta Claude Design (2026-06-27): negro un toque más suave/azulado + bordes BLANCO-ALPHA (no azules
     sólidos: matan el "brillo de borde" que cansaba) + rampa de texto que separa título/cuerpo/secundario. */
  --bg:#070b12;--panel:#0c1018;--panel2:#0a0f18;--bd:rgba(255,255,255,.08);--bd2:rgba(255,255,255,.13);
  /* texto: --tx near-white SOLO para títulos/énfasis; --tx2 (cuerpo, gris-perla) reduce fatiga en texto
     largo sobre dark; --mut/--dim escalonan la jerarquía. (Reemplaza la rampa brillante 2026-06-21.) */
  --tx:#e7ebf2;--tx2:#cdd5e1;--mut:#9aa3b2;--dim:#8a93a4;--ink:#070b12;
  /* === accent celeste (bandera argentina) — reemplaza el ámbar (decisión usuario 2026-06-21) ===
     TODO el celeste del sitio sale de acá: cambiar el tono = editar estos tokens, nada hardcodeado.
     (El generar_html.py tiene su propia copia para JS/SVG/mapa: constantes ACCENT* en Python.) */
  --ac:#7cc0ff;            /* acento principal sobre dark (texto, iconos, bordes) — celeste Claude Design */
  --on-ac:#070b12;         /* texto SOBRE el acento (botones): oscuro sobre el azul claro de esta piel */
  --ac-rgb:124,192,255;    /* el mismo celeste para tints: rgba(var(--ac-rgb),a) */
  --ac-lo:#A9D0F0;         /* celeste claro: acentos GRANDES sobre dark (cifras stat, readtags) */
  --ac-hi:#2E7BC4;         /* celeste profundo: texto/cifras sobre el hero claro */
  --ac-mid:#2E6FA8;        /* arranque de gradiente (barras de stat) */
  --ac-dk:#12354E;         /* arranque de gradiente muy oscuro (swatch del legend) */
  /* hero como tarjeta CLARA (antes bloque ámbar): superficie + textos sobre claro */
  --hero-bg1:#F6FAFE;--hero-bg2:#E7F1FB;--hero-bd:#CFE0EF;--hero-card:#FBFDFF;
  --hero-tx:#17222E;--hero-sub:#39556A;--hero-mut:#5A7184;
  --cy:#27D3C4;
  --ok:#3FDFA0;--warn:#E5C15C;--bad:#FF7070;
  --ver:#4ADE9C;--pro:#E5C15C;--est:#B79BFF;--tes:#7AB0FF;
  --mono:"IBM Plex Mono",ui-monospace,"SFMono-Regular",Consolas,monospace;
  --sans:"IBM Plex Sans","Segoe UI",system-ui,sans-serif;
}
/* paleta del CIERRE en esta piel (OSCURA). La estructura vive en cierre.css; mapea los nombres que el
   cierre espera (--card/--ink/--acink/...) a la paleta dark. --on-ac = texto sobre el acento claro. */
.cierre-zone{--paper:#070b12;--card:#0c1018;--soft:#0a0f18;--bd:rgba(255,255,255,.08);--bd2:rgba(255,255,255,.13);
  --ink:#e7ebf2;--sec:#cdd5e1;--dim:#8a93a4;--ac:#7cc0ff;--acink:#aed4f5;--ac-soft:rgba(124,192,255,.12);
  --ver:#4ADE9C;--pro:#E5C15C;--bad:#FF7070;--on-ac:#070b12}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;background:radial-gradient(1000px 540px at 72% -8%,rgba(var(--ac-rgb),.05),transparent 60%),var(--bg);
  color:var(--tx2);font:14.5px/1.62 var(--sans);-webkit-font-smoothing:antialiased}
.num,.mono{font-family:var(--mono);font-variant-numeric:tabular-nums lining-nums}

/* header — MEDIDAS en tokens.css (chrome compartido entre skins); acá SOLO el color de esta piel */
header{background:linear-gradient(180deg,rgba(10,14,21,.97),rgba(5,7,11,.93))}
.brand{color:var(--tx)}
.brand-tag{color:var(--dim)}
.chip{color:var(--mut)}
.chip.cy{color:var(--cy);border-color:rgba(39,211,196,.35);background:rgba(39,211,196,.07);display:inline-flex;gap:6px;align-items:center}
.chip .dot{width:5px;height:5px;border-radius:50%;background:var(--cy);box-shadow:0 0 8px var(--cy);animation:pulse 1.6s infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.25}}
.langsw b{background:var(--ac);color:var(--ink)}
.langsw a{color:var(--mut)}
.langsw a:hover{color:var(--tx)}
.coords{color:var(--mut)}
.swn-d summary{color:var(--mut);background:var(--panel2)}
.swn-d summary:hover{border-color:rgba(var(--ac-rgb),.5);color:var(--ac)}
.swn-m{background:var(--panel);box-shadow:0 14px 34px rgba(0,0,0,.5)}
.swn-g{color:var(--ac)}
.swn-i{color:var(--tx2)}
.swn-i:hover{background:rgba(var(--ac-rgb),.08);color:var(--ac)}
.swn-i.cur{color:var(--ac);background:rgba(var(--ac-rgb),.08)}
.swn-hub{color:var(--cy);background:var(--panel2)}
.swn-hub:hover{border-color:var(--cy);background:rgba(39,211,196,.08)}

/* COMPARTIR — fila bajo el hero (molde, todas las páginas; estructura compartida, cada piel pone color) */
.share{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:8px;margin:2px 0 20px}
.share-l{font-family:var(--mono);font-size:var(--fs-micro);letter-spacing:.06em;text-transform:uppercase;color:var(--dim);margin-right:2px}
.share-b{display:inline-grid;place-items:center;width:34px;height:34px;padding:0;border-radius:9px;border:1px solid var(--bd2);background:var(--panel2);color:var(--mut);cursor:pointer;text-decoration:none;transition:.13s;position:relative}
.share-b:hover{color:var(--ac);border-color:rgba(var(--ac-rgb),.5);background:rgba(var(--ac-rgb),.08)}
.share-b.wa:hover{color:#1FAE54;border-color:rgba(37,211,102,.55);background:rgba(37,211,102,.1)}
.share-b.li:hover{color:#0A66C2;border-color:rgba(10,102,194,.55);background:rgba(10,102,194,.1)}
.share-b.cp.ok{color:var(--ver);border-color:rgba(74,222,156,.55)}
.share-b.cp.ok::after{content:"\00a1copiado!";position:absolute;bottom:calc(100% + 6px);right:0;white-space:nowrap;font-family:var(--mono);font-size:var(--fs-micro);color:var(--ver);background:var(--panel2);border:1px solid var(--bd2);border-radius:6px;padding:3px 8px;z-index:5}

/* ticker (tamano minimo subido — decision 4, 2026-06-10) */
.tw{overflow:hidden;border-bottom:1px solid var(--bd);background:#070A10;height:36px}
.tk{display:flex;gap:42px;white-space:nowrap;padding:9px 0;animation:roll 50s linear infinite;font-family:var(--mono);font-size:var(--fs-body)}
.tw:hover .tk{animation-play-state:paused}.tk s{text-decoration:none;color:var(--mut)}.tk b{color:var(--tx);font-weight:500}.tk .a{color:var(--ac)}.tk .c{color:var(--cy)}
@keyframes roll{to{transform:translateX(-50%)}}
.page{max-width:1320px;margin:0 auto;padding:16px 18px 60px}

/* hero: tarjeta BLANCA (decisión usuario 2026-06-21, ref Gemini) — antes bloque ámbar invertido.
   Título celeste, prosa slate, sobre superficie clara = máxima legibilidad ("más blanco"). */
.hero-despegue{display:flex;gap:24px;align-items:center;background:linear-gradient(180deg,var(--hero-bg1),var(--hero-bg2));color:var(--hero-tx);border:1px solid var(--hero-bd);border-radius:12px;padding:24px 26px;margin-bottom:14px}
.hero-despegue h1{margin:0 0 9px;font-size:29px;line-height:1.05;font-weight:800;font-stretch:125%;text-transform:uppercase;letter-spacing:.02em;color:var(--ac-hi)}
.hero-despegue p{margin:0;font-size:var(--fs-body-lg);line-height:1.6;color:var(--hero-sub);max-width:640px}
.hd-firma{margin-left:auto;flex:0 0 320px;display:flex;gap:12px;align-items:center;border:1px solid var(--hero-bd);border-radius:10px;padding:12px 14px;background:var(--hero-card)}
/* avatar del autor (Claude Design): disco con degradé + iniciales (o foto). Funciona sobre claro y oscuro. */
.firma-av{flex:0 0 auto;width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-weight:700;font-size:15px;letter-spacing:-.01em;color:#aed4f5;background:linear-gradient(140deg,#1c3a5c,#0f2236);border:1px solid rgba(124,192,255,.3);overflow:hidden}
img.firma-av{object-fit:cover}
.firma-rol{font-family:var(--mono);font-size:var(--fs-label);font-weight:500;letter-spacing:.05em;text-transform:uppercase;color:var(--ac-hi)}
.hd-nombre{font-weight:700;font-size:var(--fs-body-lg)}
.hd-nombre a{color:inherit;text-decoration:none;border-bottom:1px dotted var(--hero-mut)}
.hd-nombre a:hover{border-bottom-style:solid}
.hd-creds{font-size:var(--fs-micro);line-height:1.45;color:var(--hero-sub);margin-top:2px}

/* KPIs */
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:14px}
.kpi{background:linear-gradient(180deg,#0E131B,#0A0D13);border:1px solid var(--bd);border-radius:11px;padding:15px 16px;transition:.13s}
.kpi:hover{border-color:rgba(var(--ac-rgb),.55)}
.kpi .k{font-family:var(--mono);font-size:var(--fs-label);font-weight:500;letter-spacing:.13em;text-transform:uppercase;color:var(--mut)}
.kpi .v{font-family:var(--mono);font-size:28px;font-weight:600;margin-top:6px;letter-spacing:-.02em}
.kpi .v .kpre{font-size:.62em;color:var(--mut);font-weight:500;margin-right:1px}
.kpi .u{font-family:var(--mono);font-size:var(--fs-micro);color:var(--mut);margin-top:4px}
.kpi.acc .v{color:var(--ac)}
.dot{width:7px;height:7px;border-radius:50%;flex:none;display:inline-block}
.dot.ver{background:var(--ver)}.dot.pro{background:var(--pro)}.dot.sin{background:#8A6BD8}.dot.est{background:var(--est)}.dot.tes{background:var(--tes)}.dot.neutral{background:var(--dim)}

/* ===== DOSSIER de provincia (ancho completo, decision usuario 2026-06-14; mockup Claude Design
   adaptado a la paleta ambar) ===== */
.dossier{position:relative;margin:0 0 14px;border:1px solid var(--bd2);border-radius:9px;overflow:hidden;
  background:linear-gradient(162deg,#0E1422,#0A0F1A 58%,#0B1019);box-shadow:0 24px 70px -34px rgba(0,0,0,.8)}
.dsr-strip{height:2px;background:linear-gradient(90deg,var(--ac),rgba(var(--ac-rgb),0))}
/* hero */
.dsr-hero{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;padding:26px 30px 22px;border-bottom:1px solid var(--bd)}
.dsr-hk{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-bottom:12px;font-family:var(--mono)}
.dsr-region{padding:4px 10px;border:1px solid rgba(39,211,196,.3);border-radius:var(--r-sm);background:rgba(39,211,196,.07);font-size:var(--fs-micro);font-weight:600;letter-spacing:.15em;color:var(--cy)}
.dsr-pid{font-size:var(--fs-label);letter-spacing:.04em;color:var(--mut)}
.dsr-doss{font-size:var(--fs-label);letter-spacing:.14em;color:var(--dim)}
/* sin degrade vertical (2026-06-21, pedido usuario): titulo en color solido, alto contraste */
.dsr-name{margin:0;font-family:var(--sans);font-weight:800;font-stretch:125%;text-transform:uppercase;
  font-size:clamp(36px,5.5vw,62px);line-height:.9;letter-spacing:.01em;color:var(--tx)}
.dsr-sub{margin-top:11px;font-family:var(--mono);font-size:var(--fs-body-sm);letter-spacing:.02em;color:var(--mut)}
.dsr-medalwrap{flex-shrink:0;display:flex;flex-direction:column;align-items:center;gap:10px}
/* caja agrandada + padding + min-height auto: el contenido (etiqueta + numero + etiqueta) no entraba
   en los 94px fijos y "PROVINCIAL" se salia por abajo (fix 2026-06-21, reporte usuario) */
.dsr-medal{width:120px;min-height:120px;border-radius:16px;border:1px solid rgba(var(--ac-rgb),.4);
  background:linear-gradient(160deg,rgba(var(--ac-rgb),.13),rgba(var(--ac-rgb),.03));display:grid;place-items:center;padding:14px 10px}
.dsr-medal-in{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;width:100%;gap:4px}
/* etiquetas en UNA linea, centradas; menos tracking para que entren en la caja sin clip */
.dsr-rank-k{font-family:var(--mono);font-size:var(--fs-label);letter-spacing:.05em;text-align:center;line-height:1.2;white-space:nowrap;color:var(--ac-lo)}
.dsr-rank{font-family:var(--sans);font-weight:800;font-size:42px;line-height:1;text-align:center;color:var(--ac)}
.dsr-delta{display:inline-flex;align-items:center;padding:4px 10px;border:1px solid rgba(74,222,156,.32);border-radius:20px;
  background:rgba(74,222,156,.08);font-family:var(--mono);font-size:var(--fs-label);font-weight:600;color:var(--ver)}
/* leader */
.dsr-leader{display:flex;align-items:center;gap:16px;padding:17px 30px;border-bottom:1px solid var(--bd);background:rgba(255,255,255,.012)}
.dsr-ava{flex-shrink:0;width:52px;height:52px;border-radius:50%;border:1px solid var(--bd2);
  background:linear-gradient(160deg,#16202f,#0e1622);display:grid;place-items:center;font-family:var(--sans);font-weight:800;font-size:16px;color:var(--cy);overflow:hidden}
.dsr-ava img{width:100%;height:100%;object-fit:cover;display:block}
a.dsr-ava{text-decoration:none;transition:.13s}
a.dsr-ava:hover{border-color:var(--cy)}
.dsr-lk{font-family:var(--mono);font-size:var(--fs-label);letter-spacing:.17em;color:var(--cy);margin-bottom:5px}
.dsr-lrow{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.dsr-lname{font-family:var(--sans);font-weight:700;font-size:19px;color:var(--tx)}
.dsr-since{padding:3px 8px;border:1px solid var(--bd2);border-radius:var(--r-sm);font-family:var(--mono);font-size:var(--fs-label);color:var(--mut)}
.dsr-lrow2{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:8px}
.dsr-party{font-size:var(--fs-body-lg);color:var(--mut)}
.dsr-lore{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border:1px solid rgba(var(--ac-rgb),.28);border-radius:20px;
  background:rgba(var(--ac-rgb),.07);font-family:var(--mono);font-size:var(--fs-micro);color:var(--ac-lo)}
/* stat grid */
/* minmax(0,1fr) + flex-wrap: el sello con fecha (2026-07-05) ensancha el min-content del tile;
   sin esto la grilla revienta a 390px (blowout clipeado, invisible al lector) */
.dsr-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--bd);border-bottom:1px solid var(--bd)}
.dsr-stat{background:var(--panel2);padding:16px 18px;min-width:0}
.dst-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:11px;flex-wrap:wrap;row-gap:3px}
.dst-k{font-family:var(--mono);font-size:var(--fs-label);letter-spacing:.12em;color:var(--mut)}
.dst-v{font-family:var(--sans);font-weight:800;font-size:29px;line-height:1;color:var(--tx)}
.dst-v.am{color:var(--ac-lo)}.dst-v .up{font-family:var(--mono);font-size:var(--fs-body);color:var(--ver)}
.dst-bar{margin-top:10px;height:6px;border-radius:var(--r-sm);background:rgba(147,162,182,.14);overflow:hidden}
.dst-bar.am{background:rgba(var(--ac-rgb),.13)}
.dst-bar i{display:block;height:100%;border-radius:var(--r-sm);background:linear-gradient(90deg,var(--ac-mid),var(--ac))}
.dst-sub{margin-top:8px;font-family:var(--mono);font-size:var(--fs-label);color:var(--mut);overflow-wrap:anywhere} /* "c/industrialización" no entraba en el tile a 360px y se clipeaba (L189) */
.dst-flags{display:inline-flex;align-items:center;gap:5px}
/* secciones (meter / fiscal / mods) */
.dsr-sec{padding:21px 30px;border-bottom:1px solid var(--bd)}
.dsr-sec:last-child{border-bottom:0}
.dsr-sech{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:15px}
.dsr-sect{font-family:var(--sans);font-weight:700;font-size:14px;letter-spacing:.08em;text-transform:uppercase;color:#c7d3e2}
.dsr-secx{font-family:var(--mono);font-size:var(--fs-label);letter-spacing:.12em;color:var(--dim)}
.dsr-prose{margin:14px 0 0;font-size:var(--fs-body-lg);line-height:1.55;color:#C8D2DF;max-width:880px}
/* alineacion = nuestra lectura (sin medidor con aguja: esa "posicion" era inventada) */
.dsr-align{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.dsr-readtag{font-family:var(--sans);font-weight:700;font-size:16px;color:var(--ac-lo);padding:5px 13px;border:1px solid rgba(var(--ac-rgb),.3);border-radius:6px;background:rgba(var(--ac-rgb),.06)}
.dsr-readnote{font-family:var(--mono);font-size:var(--fs-micro);color:var(--dim)}
/* caption del regimen fiscal (matiz exento/sobretasa, tono calmo) */
.dsr-cap{margin:13px 0 0;font-size:var(--fs-body-sm);line-height:1.55;color:var(--mut);max-width:920px}
.dsr-cap b{color:var(--tx);font-weight:600}
@media(max-width:760px){
  .dsr-hero{flex-direction:column-reverse;align-items:flex-start;gap:16px;padding:18px}
  .dsr-leader,.dsr-sec{padding:16px 18px}
  .dsr-stats{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
}

/* mapa */
.hero{margin-bottom:14px}
.mapcard{position:relative;border:1px solid var(--bd);border-radius:12px;overflow:hidden;height:560px;background:#070B12}
#map{position:absolute;inset:0}
.maplibregl-ctrl-attrib{font-size:10.5px!important;background:rgba(5,7,11,.6)!important}.maplibregl-ctrl-attrib a{color:#6F8197!important}
.maptop{position:absolute;top:0;left:0;right:0;z-index:3;display:flex;gap:10px;align-items:center;padding:11px 13px;font-family:var(--mono);font-size:var(--fs-micro);color:var(--mut);pointer-events:none;background:linear-gradient(180deg,rgba(5,7,11,.85),transparent)}
.maptop .t{letter-spacing:.14em;color:var(--tx)}
.frame{position:absolute;width:16px;height:16px;border:1px solid var(--bd2);z-index:4;pointer-events:none}
.frame.tl{top:9px;left:9px;border-right:0;border-bottom:0}.frame.tr{top:9px;right:9px;border-left:0;border-bottom:0}
.frame.bl{bottom:9px;left:9px;border-right:0;border-top:0}.frame.br{bottom:9px;right:9px;border-left:0;border-top:0}
.maplegend{position:absolute;left:13px;bottom:12px;z-index:3;font-family:var(--mono);font-size:var(--fs-label);color:var(--mut);background:rgba(5,7,11,.7);padding:8px 10px;border-radius:7px;border:1px solid var(--bd)}
.maplegend div{display:flex;align-items:center;gap:7px;margin-top:4px}
.maplegend .sw{width:10px;height:10px;border-radius:2px;background:linear-gradient(90deg,var(--ac-dk),var(--ac))}
.maplegend .sw.click{background:var(--cy)}
.maplegend .sw.noadh{background:#561A12;border:2px solid #E2543A}
.maperr{position:absolute;inset:0;z-index:5;display:none;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:var(--mut);font-family:var(--mono);font-size:var(--fs-sub);padding:30px;background:#070B12}
.maperr b{color:var(--ac)}

/* titulares de seccion (injerto B: bloque ambar) */
/* Encabezado de sección (Claude Design): tick de color + rótulo mono, sobre transparente — liviano y
   escaneable (reemplaza la píldora azul rellena). El tick toma el acento; se puede teñir por sección. */
.sec-h{display:flex;width:fit-content;align-items:center;gap:11px;color:var(--tx);
  font-family:var(--mono);font-weight:600;text-transform:uppercase;letter-spacing:.1em;font-size:12.5px;margin:36px 0 16px}
.sec-h::before{content:"";flex:0 0 auto;width:22px;height:2px;border-radius:2px;background:var(--ac)}
.sec-h span[style]{color:var(--mut)!important;opacity:.9;font-weight:500}

/* paneles (overflow-x: una tabla ancha scrollea DENTRO del panel, no panea la pagina — fix mobile 2026-06-11) */
.panel{background:var(--panel);border:1px solid var(--bd);border-radius:14px;padding:22px 24px;overflow-x:auto;margin-bottom:22px}
/* si un encabezado de seccion sigue a un panel, su margin-top ya da el aire: no duplicar */
.panel+.sec-h{margin-top:10px}
.cols>*,.cols2>*,.hero-prov>*,.scorewrap>*,.kpis>*{min-width:0}
.ph{display:flex;align-items:center;gap:8px;margin-bottom:11px}
.ph h3{font-family:var(--mono);font-size:var(--fs-body);font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--tx);margin:0;display:flex;align-items:center;gap:9px}
.ph h3::before{content:"";width:4px;height:15px;border-radius:2px;background:var(--ac);flex:0 0 auto;box-shadow:0 0 8px -1px var(--ac)}
.ph .tag{margin-left:auto;font-family:var(--mono);font-size:var(--fs-label);color:var(--mut);border:1px solid var(--bd2);padding:2px 7px;border-radius:var(--r-sm)}
.prosa{font-size:var(--fs-body-lg);color:#CBD5E2;margin:0;line-height:1.62}

/* tablas */
table{width:100%;border-collapse:collapse;font-size:var(--fs-body)}
th{font-family:var(--mono);font-size:var(--fs-label);font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--dim);text-align:left;padding:var(--pad-th);border-bottom:1px solid var(--bd2)}
td{padding:var(--pad-td);border-bottom:1px solid #101722;vertical-align:top}tr:hover td{background:#0D131C}
td.r,th.r{text-align:right}.ent{color:var(--tx);font-weight:600}.sub{color:var(--dim);font-size:var(--fs-label)}
td.mono{word-break:break-all}
.u{color:var(--dim);font-size:var(--fs-label)}.nota{color:var(--dim);font-size:var(--fs-label);font-style:italic;margin-top:2px}
.vacio{color:var(--dim);font-style:italic;font-size:var(--fs-body)}
.src{color:var(--ac);text-decoration:none;font-family:var(--mono);font-size:var(--fs-sub);opacity:.85}.src:hover{opacity:1}

/* sello de frescura "dato al MM-AAAA" (decision 7, 2026-06-10) */
.fch{font-family:var(--mono);font-size:var(--fs-label);letter-spacing:.04em;color:var(--dim);border:1px solid var(--bd);border-radius:var(--r-sm);padding:1px 5px;white-space:nowrap;vertical-align:middle}

/* ===== sello de procedencia PLANO (decision usuario 2026-06-21): un solo bloque tenue, SIN cajas,
   y TODO clickeable a la fuente (no solo la flechita). Reemplaza el combo badge+↗+fch boxed.
   Forma: <punto+palabra de confianza> · <fecha corta> ↗ . Pesa la mitad. ===== */
.sello{display:inline-flex;align-items:center;gap:6px;font-family:var(--mono);font-size:var(--fs-label);
  color:var(--dim);text-decoration:none;vertical-align:middle;white-space:nowrap;line-height:1.3;
  border-radius:var(--r-sm);padding:1px 4px;margin-left:3px;transition:background .12s,color .12s}
a.sello:hover{background:rgba(255,255,255,.05)}
.se-c{display:inline-flex;align-items:center;gap:4px;letter-spacing:.04em;text-transform:uppercase}
.se-c::before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor;flex:0 0 auto}
.se-c.ver{color:var(--ver)}.se-c.pro{color:var(--pro)}.se-c.sin{color:#FF8A8A}.se-c.est{color:var(--est)}.se-c.tes{color:var(--tes)}.se-c.neutral{color:var(--dim)}
.se-c.neutral::before{display:none}
.se-sep{color:var(--bd2)}
.se-f{color:var(--dim)}
.se-go{color:var(--ac);font-size:var(--fs-sub);line-height:1}
a.sello:hover .se-f{color:var(--mut)}

/* leyenda de los sellos de confianza (decision 1, 2026-06-10); #sellos es ancla de metodo de
   portada+provincias (2026-07-05) -> scroll-margin compensa el header sticky */
.leyenda{font-family:var(--mono);font-size:var(--fs-label);color:var(--mut);line-height:2.1;margin:0 0 10px}
.leyenda.sellos{scroll-margin-top:70px}

/* catalogo de fuentes colapsado en portada (H3, 2026-06-11) */
.fuentes-det summary{cursor:pointer;font-size:var(--fs-body-lg);color:#C8D2DF;line-height:1.6}
.fuentes-det summary b{color:var(--tx)}
.fuentes-det summary::marker{color:var(--ac)}
.fuentes-det summary:hover .fd-cta{background:rgba(var(--ac-rgb),.14)}
.fd-cta{font-family:var(--mono);font-size:var(--fs-micro);letter-spacing:.08em;text-transform:uppercase;color:var(--ac);border:1px solid rgba(var(--ac-rgb),.4);border-radius:5px;padding:3px 9px;margin-left:10px;white-space:nowrap}
/* la etiqueta la pone el CSS segun el estado: "abrir" cerrado / "cerrar" abierto */
.fuentes-det:not([open]) .fd-cta::after{content:"abrir el cat\00E1logo"}
.fuentes-det[open] .fd-cta::after{content:"cerrar el cat\00E1logo"}
.fuentes-det[open] summary{margin-bottom:11px;padding-bottom:11px;border-bottom:1px solid var(--bd)}

/* cartera RIGI: tamano minimo subido (decision 4, 2026-06-10) */
.panel.metodo{margin-bottom:18px}
.metodo-pasos{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:4px}
.mp{display:flex;gap:11px;align-items:flex-start}
.mp-n{flex:0 0 auto;width:25px;height:25px;border-radius:50%;display:grid;place-items:center;font:700 var(--fs-sub) var(--mono);color:var(--ac);border:1px solid rgba(var(--ac-rgb),.45);background:rgba(var(--ac-rgb),.08)}
.mp h4{margin:0 0 3px;font-size:var(--fs-sub);letter-spacing:.05em;text-transform:uppercase;color:var(--tx)}
.mp p{margin:0;font-size:var(--fs-body);line-height:1.55;color:var(--mut)}
.metodo-cierre{margin:16px 0 0;font-size:var(--fs-body-lg);line-height:1.6;color:var(--tx);border-top:1px solid var(--bd);padding-top:13px}
.metodo-iso{display:inline-block;margin-left:8px;font-family:var(--mono);font-size:var(--fs-label);letter-spacing:.1em;text-transform:uppercase;color:var(--dim);white-space:nowrap}
/* track record: barra + leyenda en humano (rediseno 2026-06-13, el conteo crudo no se entendia) */
.panel.tr{margin-bottom:14px}
.tr-lead{margin:0 0 14px;font-size:var(--fs-body-lg);line-height:1.6;color:var(--tx);max-width:760px}
.tr-punch{color:var(--ver)}
.tr-bar{display:flex;height:13px;border-radius:7px;overflow:hidden;gap:2px;background:var(--panel2);border:1px solid var(--bd)}
.tr-seg{display:block}
.tr-seg.ver{background:var(--ver)}.tr-seg.pro{background:var(--pro)}.tr-seg.mat{background:var(--tes)}.tr-seg.bad{background:var(--bad)}.tr-seg.dim{background:var(--dim)}
.tr-legend{display:flex;flex-wrap:wrap;gap:8px 22px;margin-top:12px}
.tr-li{display:flex;align-items:center;gap:8px;font-size:var(--fs-body-sm);color:var(--mut)}
.tr-li b{color:var(--tx);font-size:15px;font-weight:800;font-family:var(--mono)}
.tr-dot{width:11px;height:11px;border-radius:50%;flex:0 0 auto}
.tr-dot.ver{background:var(--ver)}.tr-dot.pro{background:var(--pro)}.tr-dot.mat{background:var(--tes)}.tr-dot.bad{background:var(--bad)}.tr-dot.dim{background:var(--dim)}
.tr-ej{margin:15px 0 0;font-size:var(--fs-body-sm);line-height:1.6;color:var(--mut);border-top:1px solid var(--bd);padding-top:13px;max-width:760px}
/* desktop: leyenda (izq) + explicador (der) lado a lado; la frase y la barra siguen full-width */
@media(min-width:780px){
  .tr-cols{display:grid;grid-template-columns:minmax(220px,270px) 1fr;column-gap:40px;align-items:start;margin-top:16px}
  .tr-legend{flex-direction:column;gap:9px;margin-top:0}
  .tr-ej{margin-top:0;border-top:0;border-left:2px solid var(--bd);padding:1px 0 1px 16px;max-width:none}
}
.tr-ej b{color:var(--tx)}
.panel.cartera table{font-size:var(--fs-body)}
.panel.cartera .num{font-size:var(--fs-body-lg)}
.panel.cartera .sub{font-size:var(--fs-micro)}
/* caveat de la cifra (cola de `unidad`) en la celda USD: ancho minimo para que no se envuelva en
   una columna de 1-2 palabras y estire la fila (la tabla ya scrollea horizontal en movil) */
.panel.cartera td.num .sub{min-width:200px;white-space:normal;line-height:1.45}

/* SISTEMA DE TOKENS (regla del molde, 2026-06-25): caja = se puede TOCAR (CTAs/filtros) · PLANO = se LEE
   (sello + estado + fase). El color de semáforo + el punto cargan el significado; la caja queda RESERVADA
   a lo clickeable para que su affordance signifique algo (y el hover la ilumina, ver más abajo). Por eso
   TODO .b va plano: la CALIDAD del dato (verificado/probable/estimación/sin) y el ESTADO de ciclo
   (aprobado/presentado/anunciado) se distinguen por color, no por caja. */
.b{display:inline-flex;align-items:center;gap:5px;font-family:var(--mono);font-size:var(--fs-label);font-weight:500;letter-spacing:.08em;
  border:0;background:none;padding:0;text-transform:uppercase;white-space:nowrap;vertical-align:middle}
.b::before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor;flex:0 0 auto}
.b.ver,.b.ap{color:var(--ver)}
.b.pro,.b.pr{color:var(--pro)}
.b.est,.b.an{color:var(--est)}
.b.tes{color:var(--tes);letter-spacing:.06em}
.b.sin{color:#FF8A8A}
.b.neutral{color:#9AA6B6}
.b.neutral::before{display:none}

/* tablero (injerto B: banda de estado completa) */
.scorewrap{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:14px}
.score{background:linear-gradient(180deg,#0B1018,#080B11);border:1px solid var(--bd);border-radius:10px;overflow:hidden;transition:border-color .14s}
/* la tarjeta responde al hover (señala que hay algo que abrir) y resalta su affordance pill */
.score:hover{border-color:rgba(var(--ac-rgb),.4)}
.score:hover .score-det>summary{border-color:rgba(var(--ac-rgb),.5);color:var(--ac)}
.score-top{display:flex;align-items:center;gap:9px;padding:8px 14px;border-bottom:1px solid var(--bd);margin-bottom:0}
.score.s-ok .score-top{background:rgba(63,223,160,.09);border-bottom-color:rgba(63,223,160,.3)}
.score.s-warn .score-top{background:rgba(229,193,92,.09);border-bottom-color:rgba(229,193,92,.3)}
.score.s-bad .score-top{background:rgba(255,112,112,.10);border-bottom-color:rgba(255,112,112,.32)}
.score .eje{font-family:var(--sans);font-size:var(--fs-body-lg);font-weight:650;color:var(--tx);margin-right:auto}
.score-top .b{border:none;background:transparent;padding:0;font-weight:700;letter-spacing:.14em;font-size:var(--fs-label)}
.b.prog-ok{color:var(--ok)}.b.prog-warn{color:var(--warn)}.b.prog-bad{color:var(--bad)}
.tend{font-size:var(--fs-sub);line-height:1}.tend.up{color:var(--cy)}.tend.flat{color:var(--mut)}.tend.down{color:var(--bad)}
/* chip de regla del marco (R1..R7): UNA sola forma, liviana SIN caja (antes .preg y .regla divergian:
   dos cajas casi iguales para lo mismo). Queda solo color --tes + mono -> consistente en todo el sitio. */
.preg,.regla{font-family:var(--mono);font-size:var(--fs-label);color:var(--tes);white-space:nowrap}
/* chip de regla cliqueable al metodo (#sellos) cuando hay ancla — mismo look que el span, hover avisa */
a.regla{text-decoration:none}a.regla:hover{text-decoration:underline dotted}
/* dato grande protagonista; promesa/watchlist colapsadas (decision 4, 2026-06-10) */
.score .val{font-size:15.5px;font-weight:500;color:#EDF3FA;line-height:1.6;margin:12px 14px 10px}
.score .val .b,.score .val .fch{vertical-align:2px}
/* tarjeta-stat del tablero (redisenio 2026-06-12): LA CIFRA protagonista + serie oficial */
.score-cifra{font-family:var(--mono);font-size:28px;font-weight:650;color:#FFF;letter-spacing:-.01em;line-height:1.15;margin:13px 14px 3px;display:flex;align-items:baseline;gap:9px;flex-wrap:wrap}
.score-cifra .tend{font-size:var(--fs-body);flex:0 0 auto}
.score-sub{font-size:var(--fs-micro);color:var(--mut);line-height:1.55;margin:0 14px 6px}
.score-sub .b,.score-sub .fch{vertical-align:1px}
/* svg SIEMPRE a ancho completo + caption SIEMPRE debajo (no al lado): toda tarjeta del tablero
   con el grafico igual de ancho y la fecha/unidad abajo — consistencia (pedido usuario 2026-06-21) */
.spark{display:flex;flex-direction:column;align-items:stretch;gap:3px;margin:6px 14px 11px}
.spark svg{width:100%;height:auto;display:block;font-family:var(--mono)}
/* caption del grafico = sello plano unificado (clase 'sello spark-cap'): no se estira a todo el ancho
   de la columna y queda al ras del svg (la flecha .se-go va en acento, todo el bloque clickeable) */
.spark-cap{font-family:var(--mono);font-size:var(--fs-label);letter-spacing:.06em;text-transform:uppercase;color:var(--dim);align-self:flex-start;margin-left:0}
@media(min-width:1280px){.scorewrap{grid-template-columns:repeat(3,1fr)}}
.score .prom{font-size:var(--fs-sub);color:var(--mut);line-height:1.55;margin:9px 0 0}.score .prom b{color:#A6B6CA}
.score .wl{font-size:var(--fs-micro);color:var(--mut);line-height:1.55;font-style:italic;margin:8px 0 0}
.score .qh{font-size:var(--fs-sub);color:var(--mut);line-height:1.55;margin:9px 0 0}.score .qh b{color:var(--tes)}
.score .qh-item{margin:5px 0 0;padding-left:15px;position:relative}
.score .qh-item:before{content:"\2192";position:absolute;left:0;color:var(--tes)}
.score .wl b{color:#A6B6CA;font-style:normal}
.score-det{margin:0 14px 12px;border-top:1px dashed var(--bd);padding-top:8px}
/* el summary usa el affordance pill compartido (pill + chevron que rota). Acá solo el margin. */
.score-det>summary{margin-top:2px}

/* reformas / feed */
/* === Catálogo de reformas: fila densa colapsable + cuerpo de 2 columnas (rediseño Claude Design
   2026-06-25, importado vía DesignSync). Colapsada = una fila escaneable; abierta = contenido con
   MEDIDA DE LECTURA ACOTADA (.rf-main ~620px, grid etiqueta→valor) + RIEL de metadatos (.rf-rail). */
.rf{border-bottom:1px solid #101722}.rf:last-child{border-bottom:0}
.rf>summary{cursor:pointer;list-style:none}.rf>summary::-webkit-details-marker{display:none}
/* FILA = grid de columnas fijas: estado, ámbito y fecha alinean parejo en TODAS las filas (el "orden
   cuadrado"); el título toma el espacio que sobra y solo trunca si hace falta. Los wrappers
   .rf-row-l/.rf-row-r usan display:contents para que sus hijos caigan directo en las columnas del grid. */
.rf-row{display:grid;grid-template-columns:15px minmax(0,1fr) minmax(0,186px) 116px 86px 74px;align-items:center;column-gap:15px;padding:12px 2px}
.rf-row-l,.rf-row-r{display:contents}
.rf-car{color:#5B6477;font-size:10px;transition:transform .15s;justify-self:center}
.rf[open] .rf-car{transform:rotate(90deg)}
.rf>summary:hover .rf-title{color:var(--ac)}
.rf-title{font-size:15px;font-weight:600;color:var(--tx);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3;min-width:0}
.rf-src{font-family:var(--mono);font-size:var(--fs-micro);color:var(--mut);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.rf-est0{display:inline-block}
/* fecha: columna derecha alineada -> todas las filas terminan en el mismo borde. */
.rf-date{font-family:var(--mono);font-size:11px;letter-spacing:.02em;color:var(--mut);text-align:right;justify-self:end}
/* ABIERTA: el titular crece a todo el ancho; el meta denso (norma/estado/ámbito/fecha) se oculta del
   encabezado y pasa al riel del cuerpo (rf-rail), como una ficha (estructura del diseño). */
.rf[open] .rf-row{grid-template-columns:15px 1fr}
.rf[open] .rf-title{font-size:18px;font-weight:700;letter-spacing:-.01em;color:#F2F5F9;white-space:normal;overflow:visible;grid-column:2}
.rf[open] .rf-src,.rf[open] .rf-row-r .b,.rf[open] .rf-est0,.rf[open] .rf-date{display:none}
.rf-body{display:flex;justify-content:flex-start;align-items:flex-start;gap:44px;padding:2px 2px 18px 21px}
.rf-main{flex:0 1 620px;min-width:0}
.rf-grid{display:grid;grid-template-columns:104px 1fr;gap:12px 16px;max-width:600px;margin-bottom:4px}
.rf-k{font-family:var(--mono);font-size:10.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--dim);padding-top:3px}
.rf-v{font-size:var(--fs-body);line-height:1.62;color:#C2CAD6}.rf-v b{color:var(--tx)}
.rf-rail{flex:0 0 178px;display:flex;flex-direction:column;gap:8px;align-items:flex-end;text-align:right}
@media(max-width:680px){
  /* el grid de 6 columnas no entra en un teléfono -> la fila pasa a 2 líneas: título (envuelve, sin
     truncar) arriba; estado/ámbito/fecha abajo. Se anula display:contents de los wrappers. */
  .rf-row{display:flex;flex-wrap:wrap;align-items:center;column-gap:10px;row-gap:5px}
  .rf-row-l{display:flex;flex:1 1 100%;min-width:0;align-items:baseline;gap:9px}
  .rf-row-r{display:flex;flex:1 1 100%;align-items:center;gap:11px}
  .rf-title{white-space:normal;overflow:visible}
  .rf-src{flex:0 0 auto;white-space:normal}
  .rf-date{margin-left:auto;justify-self:auto}
  .rf[open] .rf-row{display:flex}
  /* cuerpo abierto en mobile: la grilla etiqueta|valor se apila (etiqueta arriba, texto a todo el ancho)
     en vez de quedar en dos columnas angostas que se ven mal en el teléfono. */
  .rf-grid{grid-template-columns:1fr;gap:3px 0;max-width:none}
  .rf-k{padding-top:0;margin-bottom:1px}
  .rf-body{flex-direction:column;gap:12px;padding-left:14px}.rf-rail{align-items:flex-start;text-align:left}}
.ref-lectura{font-size:var(--fs-body);color:#CDD6E2;line-height:1.6;max-width:88ch;margin:7px 0;padding:7px 9px;border-radius:7px;background:#0C1119;border-left:3px solid var(--tes)}
.ref-lectura b{color:var(--tes)}
/* tesis de convergencia: inferencia de 2do orden (varias piezas = una historia). Sello tesis siempre,
   semaforo derivado del estado de las piezas. Lenguaje visual hermano de .ref + acento --tes. */
/* div.tes (cualificado): la fila de tesis comparte el nombre 'tes' con el badge <span class="b tes">;
   sin cualificar, su padding 14px 0 + border-bottom se filtraban al badge y lo hacian alto/sin ancho
   (colision de clases, fix 2026-06-21, reporte usuario) */
div.tes{padding:14px 0;border-bottom:1px solid #101722}div.tes:last-child{border:0}
.tes-h{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-bottom:6px}
.tes-n{font-size:16px;color:var(--tx);font-weight:680;margin-right:auto;max-width:62ch}
.tes-punch{font-size:var(--fs-body);color:#D6DEEA;line-height:1.6;max-width:90ch;padding:10px 16px;border-radius:7px;background:#0C1119;border-left:3px solid var(--tes)}
/* palancas core de la tesis (la cuantificacion del moat) fuera del expander: chips escaneables */
.tes-palancas{display:flex;flex-wrap:wrap;gap:6px;margin:9px 0 2px;max-width:96ch}
.tes-pal{font-family:var(--mono);font-size:var(--fs-label);line-height:1.45;color:var(--tx2);border:1px solid var(--bd2);border-radius:6px;padding:4px 9px;background:rgba(255,255,255,.014)}
.tes-det{margin-top:8px}
.tes-q{font-size:var(--fs-body);color:#C8D2DF;margin:7px 0;line-height:1.6;max-width:90ch}.tes-q b{color:var(--tx)}
.tes-piezas{display:flex;flex-direction:column;gap:6px;margin:8px 0 4px;padding:11px 16px;border-radius:8px;background:#080C13;border:1px solid var(--bd)}
.tes-pieza{font-size:var(--fs-sub);color:#C8D2DF;line-height:1.5;display:flex;align-items:baseline;gap:6px;flex-wrap:wrap}
.tes-pieza>b,.tes-pieza>a{color:var(--tx);font-weight:640}
.tes-rol{color:var(--mut);flex:1 1 60%;min-width:240px}
.tes-rompe{margin-top:9px;font-size:var(--fs-sub);line-height:1.55;color:#C8D2DF}
.tes-rompe>b{color:var(--pro)}
.tes-rompe ul{margin:6px 0 0;padding-left:18px}.tes-rompe li{margin:3px 0}
/* lectura tesis del panel de indicadores: por que son los indicadores clave (mismo lenguaje .ref-lectura) */
.ind-lectura{margin:2px 0 12px;padding:9px 12px;border-radius:8px;background:#0C1119;border-left:3px solid var(--tes)}
.il-h{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:6px}
.il-t{font-family:var(--mono);font-size:var(--fs-label);letter-spacing:.1em;text-transform:uppercase;color:var(--mut)}
.il-p{margin:0;font-size:var(--fs-body);line-height:1.6;color:#CDD6E2}
.ind-rompe{margin-top:8px;font-size:var(--fs-sub);line-height:1.55;color:var(--mut)}
.ind-rompe .ir-k{font-family:var(--mono);font-size:var(--fs-label);letter-spacing:.09em;text-transform:uppercase;color:var(--pro);margin-right:7px}
/* dos columnas en desktop con filas alineadas (grid, mismo criterio que .claims) */
@media(min-width:780px){
  .sigs{display:grid;grid-template-columns:1fr 1fr;column-gap:38px;row-gap:6px;align-items:start}
  .sig{border-bottom:0}
}
.sig{padding:12px 0;border-bottom:1px solid #101722}.sig:last-child{border:0}
.sig .m{display:flex;gap:7px;align-items:baseline;flex-wrap:wrap;font-family:var(--mono);font-size:var(--fs-label);color:var(--mut)}.sig .who{color:var(--ac)}
.sig .cargo{color:var(--mut);font-size:var(--fs-label);border:1px solid var(--bd);border-radius:var(--r-sm);padding:1px 6px;letter-spacing:.03em}
.sig .tx{font-size:var(--fs-body-lg);margin:5px 0;color:var(--tx);line-height:1.6;max-width:88ch}
/* titular curado de la senal (campo `tema`): el tweet crudo no se auto-titula */
.sig .sig-tema{margin-top:5px;font-weight:700;font-size:var(--fs-body);color:var(--tx2);letter-spacing:.01em;max-width:88ch}
/* pie "fuente que cita": el dataset que ELLOS citan y nosotros observamos directo (pilar del metodo) */
.sig .sig-fc{margin-top:6px;font-family:var(--mono);font-size:var(--fs-label);color:var(--dim);letter-spacing:.02em}
.sig .sig-fc .lbl{color:var(--mut);text-transform:uppercase;letter-spacing:.08em;margin-right:4px}
/* nuestra lectura del tweet = inferencia (tesis): etiquetada y con acento azul fino, mismo
   lenguaje que "La semana del programa" y la lectura de las reformas (voz propia diferenciada) */
.sig .inf{margin-top:7px;padding-left:13px;border-left:2px solid rgba(122,176,255,.5);font-size:var(--fs-sub);color:var(--mut);line-height:1.55;max-width:88ch}
.sig .inf .lbl{color:var(--tes);font-weight:700}
.sig .sig-lista{margin:5px 0 6px;padding-left:17px;font-size:var(--fs-body);color:var(--tx);line-height:1.55;max-width:86ch}
.sig .sig-lista li{margin:3px 0}.sig .sig-lista li::marker{color:var(--ac)}
.sig .m a.src{color:var(--mut);text-decoration:none}.sig .m a.src:hover{color:var(--ac)}
/* WATCHLIST (pagina inversor: 'lo que esta por salir') — acento ambar = pendiente/upside, sin alarma */
.sig.wl{padding-left:14px;border-left:2px solid rgba(var(--ac-rgb),.35)}
.sig.wl .m .chip.ev{color:var(--ac);border-color:rgba(var(--ac-rgb),.4);background:rgba(var(--ac-rgb),.08);letter-spacing:.08em;font-weight:700}
/* chip de regla glosada (R5 · mejor netback exportador): jerga decodificada, color tesis */
/* .regla unificada con .preg (chip de regla sin caja, definido arriba). white-space:nowrap evita que
   el chip glosado se parta en alto: migra entero al renglon siguiente. */

/* la semana del programa: anuncio oficial vs nuestro veredicto.
   Formato COLUMNA COMPACTA (decision usuario 2026-06-21, sobre el handoff Claude Design "La Semana
   del Programa"): adoptamos la idea de etiquetar "Nuestra lectura" como voz propia, pero sin la caja
   pesada -> para 8 afirmaciones seguidas la tarjeta cansaba. Apilado: veredicto + afirmacion +
   lectura con acento fino del color del veredicto. Densidad del sem-item viejo + la lectura separada.
   Los colores salen de nuestros tokens de veredicto (no de la paleta del mockup). */
.sem-origen{margin:14px 0 0;max-width:760px;font-size:var(--fs-body-lg);line-height:1.62;color:var(--mut)}
.sem-origen b{color:var(--tx);font-weight:700}
.sem-origen .src{opacity:1}
.sem-tally{display:flex;align-items:center;gap:6px 18px;flex-wrap:wrap;margin:18px 0 0;padding-bottom:15px;
  border-bottom:1px solid var(--bd);font-family:var(--mono);font-size:var(--fs-sub);color:var(--dim)}
.sem-tally .t0{color:var(--tx);font-weight:600}
.sem-tally b{font-weight:700}

.claims{margin-top:16px}
/* dos columnas en desktop con FILAS reales (grid, no column-count): asi fila N izquierda y fila N
   derecha arrancan a la misma altura (column-count son flujos sueltos que se desfasan -> caos).
   align-items:start = cada celda pega arriba de su fila; la altura de la fila la marca la mas alta.
   Sin border separador (en grid quedaba dentado): la etiqueta de veredicto + el aire separan. */
@media(min-width:780px){
  .claims{display:grid;grid-template-columns:1fr 1fr;column-gap:38px;row-gap:6px;align-items:start}
  .vc{border-bottom:0}
}
.vc{padding:14px 0;border-bottom:1px solid #101722}
.vc:last-child{border-bottom:0}
.vc-v{display:inline-flex;align-items:center;gap:7px;font-family:var(--mono);font-size:var(--fs-label);
  font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--vc)}
.vc-v .d{width:7px;height:7px;border-radius:50%;background:var(--vc);flex:0 0 auto}
.vc-claim{margin:6px 0 0;font-size:var(--fs-body-lg);line-height:1.55;font-weight:600;color:var(--tx);max-width:90ch}
.vc-claim .src{margin-left:2px}
.vc-read{margin:8px 0 0;padding:1px 0 1px 13px;border-left:2px solid var(--vc-bd);
  font-size:var(--fs-body);line-height:1.6;color:var(--mut);max-width:90ch}
.vc-read .lbl{color:var(--vc);font-weight:700}
/* color del veredicto (sin color-mix, igual que el resto del sitio) */
.vc.v-ver{--vc:var(--ver);--vc-bd:rgba(74,222,156,.5)}
.vc.v-pro{--vc:var(--pro);--vc-bd:rgba(229,193,92,.5)}
.vc.v-tes{--vc:var(--tes);--vc-bd:rgba(122,176,255,.55)}
.vc.v-bad{--vc:var(--bad);--vc-bd:rgba(255,112,112,.5)}
.vc.v-dim{--vc:var(--dim);--vc-bd:rgba(166,179,198,.45)}
@media(max-width:600px){ .sem-tally{gap:5px 14px} }

/* provincias / puertas */
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:13px;margin-bottom:6px}
.card{background:linear-gradient(180deg,#0D131C,#090C12);border:1px solid var(--bd);border-radius:12px;padding:14px 15px;transition:border-color .15s}
.card:hover{border-color:var(--bd2)}
.card-top{display:flex;align-items:center;justify-content:space-between}
.card-n{font-size:16px;color:var(--tx);font-weight:650}
.card-sub{font-size:var(--fs-micro);color:var(--mut);margin:2px 0 11px}
.card-stats{display:flex;flex-wrap:wrap;gap:10px 16px;margin-bottom:12px}
.cs{display:flex;flex-direction:column}.cs-v{font-family:var(--mono);font-size:17px;font-weight:600;color:var(--ac)}
.cs-k{font-family:var(--mono);font-size:var(--fs-label);letter-spacing:.08em;text-transform:uppercase;color:var(--dim);margin-top:2px}
.card-doors{display:flex;flex-direction:column;gap:7px;border-top:1px dashed var(--bd);padding-top:11px}
.door{display:block;text-align:center;text-decoration:none;font-family:var(--mono);font-size:var(--fs-sub);padding:9px 10px;border-radius:7px;border:1px solid;transition:.13s}
.door-inv{color:var(--ac);border-color:rgba(var(--ac-rgb),.4);background:rgba(var(--ac-rgb),.07)}
.door-inv:hover{background:rgba(var(--ac-rgb),.13);border-color:var(--ac)}
.door-gen{color:var(--cy);border-color:rgba(39,211,196,.4);background:rgba(39,211,196,.06)}
.door-gen:hover{background:rgba(39,211,196,.12);border-color:var(--cy)}


/* disclaimer / footer */
.disc{background:var(--panel2);border:1px solid var(--bd);border-radius:8px;padding:10px 14px;font-size:var(--fs-sub);color:var(--mut);margin:14px 0;line-height:1.6}
/* lectura rapida: la negrita de skim resalta sobre el gris del parrafo (antes era bold mismo gris -> no saltaba) */
.disc b{color:var(--tx);font-weight:600}
/* dos puertas (portada): la promesa central del producto -> callout con peso, no nota al pie gris */
.puertas-intro{margin:14px 0;padding:15px 17px;border:1px solid var(--bd2);border-radius:12px;
  background:linear-gradient(180deg,rgba(var(--ac-rgb),.05),rgba(39,211,196,.03))}
.pi-lead{font-size:16px;line-height:1.5;color:var(--tx);margin-bottom:12px}
.pi-lead b{color:var(--tx);font-weight:700}
.pi-doors{display:flex;gap:11px;flex-wrap:wrap}
.pi-door{flex:1 1 240px;display:flex;flex-direction:column;gap:2px;padding:11px 14px;border-radius:9px;
  border:1px solid var(--bd);background:var(--panel2);font-size:var(--fs-body-lg);color:var(--tx)}
.pi-door b{font-weight:650}
.pi-inv{border-left:3px solid var(--ac)}.pi-inv b{color:var(--ac-lo)}
.pi-gen{border-left:3px solid var(--cy)}.pi-gen b{color:var(--cy)}
.pi-sub{font-size:var(--fs-sub);color:var(--dim)}
@media(max-width:560px){.pi-doors{flex-direction:column}}
.foot{font-family:var(--mono);font-size:var(--fs-micro);color:var(--dim);text-align:center;margin-top:22px;padding-top:14px;border-top:1px solid var(--bd)}

@media(max-width:1000px){
  .hero-prov,.cols,.cols2,.scorewrap{grid-template-columns:1fr}.mapcard{height:400px}
  .kpis{grid-template-columns:repeat(2,1fr)}
  .metodo-pasos{grid-template-columns:1fr;gap:13px}
  .hero-despegue{flex-direction:column;align-items:flex-start;gap:16px}
  .hd-firma{margin-left:0;flex:none;width:100%}
  .capture{grid-template-columns:1fr}
  .cap-k{flex:0 0 100%}
}
@media(max-width:760px){.page{padding:12px 12px 50px}.kpi .v{font-size:24px}}

/* ---- inversor: navegacion (medidas de .back en tokens.css) ---- */
.back{color:var(--cy)}
.back:hover{border-color:var(--cy);background:rgba(39,211,196,.08)}
.back.alt{color:var(--ac)}
.back.alt:hover{border-color:var(--ac);background:rgba(var(--ac-rgb),.08)}
.chip.am{color:var(--ac);border-color:rgba(var(--ac-rgb),.4);background:rgba(var(--ac-rgb),.08)}
/* ---- ficha provincial ---- */
.rail{display:flex;flex-direction:column;gap:14px}
.hero-prov{display:grid;grid-template-columns:1.55fr 1fr;gap:14px;margin-bottom:14px}
.entname{font-size:22px;font-weight:650;color:var(--tx);letter-spacing:-.01em}
.entsub{font-family:var(--mono);font-size:var(--fs-micro);letter-spacing:.06em;color:var(--dim);margin:3px 0 12px}
.kvs{margin-bottom:8px}
.kv{display:flex;justify-content:space-between;gap:8px;padding:8px 0;border-bottom:1px dashed var(--bd);font-size:var(--fs-body-sm)}
.kv .k{color:var(--mut)}.kv .v{font-family:var(--mono);color:var(--tx);text-align:right}
.mini-h{font-family:var(--mono);font-size:var(--fs-label);letter-spacing:.12em;text-transform:uppercase;color:var(--dim);margin:12px 0 6px}
.li{font-size:var(--fs-body-sm);color:#C8D2DF;padding:8px 0;border-bottom:1px solid #101722;line-height:1.6}.li:last-child{border:0}
.cols{display:grid;grid-template-columns:1.45fr 1fr;gap:14px;margin-bottom:14px}
.cols2{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px}
/* ---- hero slim de provincia ---- */
.hero-slim{padding:18px 22px}
.hero-slim h1{font-size:23px;margin-bottom:6px}
@media(max-width:760px){.chip.am{display:none}}

/* ---- agregados de implementacion (no venian en el handoff) ---- */
.ref-imp{font-size:var(--fs-sub);color:#CDD6E2;line-height:1.55;margin-top:7px;padding:7px 9px;border-radius:7px;background:#0C1119;border-left:3px solid var(--dim)}
.ref-imp b{color:var(--ac)}.ref-imp.i-ok{border-left-color:var(--ok)}.ref-imp.i-bad{border-left-color:var(--bad)}.ref-imp.i-warn{border-left-color:var(--warn)}
/* panel de reformas agrupado (74 normas): banda de anclas + secciones colapsables por categoria + filtro */
.ref-ancla{margin:2px 0 16px;padding:13px 15px;border:1px solid rgba(var(--ac-rgb),.30);border-radius:9px;background:rgba(var(--ac-rgb),.05)}
.ref-ancla-l{font-family:var(--mono);font-size:var(--fs-label);letter-spacing:.08em;text-transform:uppercase;color:var(--ac);font-weight:700;margin-bottom:9px}
.ref-ancla-rows{display:grid;grid-template-columns:repeat(2,1fr);gap:2px 26px}
.ref-ancla-row{display:flex;align-items:center;gap:8px;padding:7px 0;border-bottom:1px solid #101722;text-decoration:none}
.ref-ancla-n{font-size:var(--fs-body);color:var(--tx);font-weight:600;margin-right:auto;line-height:1.3}
.ref-ancla-row:hover .ref-ancla-n{color:var(--ac)}
@media(max-width:640px){.ref-ancla-rows{grid-template-columns:1fr}}
.ref-cat{border-top:1px solid var(--bd)}
.ref-cat>summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:10px;padding:12px 2px;font-family:var(--mono);font-size:var(--fs-label);letter-spacing:.12em;text-transform:uppercase;color:var(--tx);font-weight:700}
.ref-cat>summary::-webkit-details-marker{display:none}
.ref-cat>summary::before{content:"\25B8";font-size:11px;color:var(--ac);transition:transform .15s}
.ref-cat[open]>summary::before{transform:rotate(90deg)}
.ref-cat>summary:hover{color:var(--ac)}
.ref-cat-n{font-family:var(--mono);font-size:var(--fs-micro);color:var(--mut);background:var(--panel2);border:1px solid var(--bd2);border-radius:20px;padding:1px 9px;font-weight:600}
.ref-cat-body{padding:0 0 8px 4px}
.ref-cat-body .rf:last-child{border-bottom:0}
.rf-kids{margin:2px 0 12px 21px;padding-left:16px;border-left:2px solid var(--bd2)}
.rf-kids-l{font-family:var(--mono);font-size:var(--fs-micro);letter-spacing:.08em;text-transform:uppercase;color:var(--dim);margin:6px 0 0}
.rf-kids .rf-title{font-size:var(--fs-body)}.rf-kids .rf[open] .rf-title{font-size:16px}

/* ---- tarjetas-stat y redisenio de la pagina inversor (2026-06-11, pedido usuario) ---- */
/* espejo dark de las .mh de la capa gente: misma estructura, paleta Despegue dark */
.mh-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(214px,1fr));gap:10px}
.mh-grid>*{min-width:0}
.mh{display:flex;flex-direction:column;gap:4px;min-width:0;background:linear-gradient(180deg,#0E131B,#0A0D13);border:1px solid var(--bd);border-radius:11px;padding:15px 16px;transition:.13s}
.mh:hover{border-color:rgba(var(--ac-rgb),.55)}
.mh-cifra{font-family:var(--mono);font-variant-numeric:tabular-nums lining-nums;font-size:26px;font-weight:600;letter-spacing:-.02em;line-height:1.08;color:var(--ac);overflow-wrap:break-word}
.mh-titulo{font-size:var(--fs-body-sm);font-weight:600;color:var(--tx);line-height:1.45}
.mh-meta{display:flex;flex-wrap:wrap;align-items:center;gap:5px;margin-top:auto;padding-top:6px}
.mh-det .mh-full{font-size:var(--fs-body-sm);color:#C8D2DF;line-height:1.6;padding:6px 0 2px}
/* .mh.adv = tarjeta de ADVERTENCIA: ámbar semántico (no brand). La cifra base es celeste (--ac);
   acá se devuelve a dorado para que la tarjeta de alerta quede coherente */
.mh.adv{background:linear-gradient(180deg,#16110A,#0F0B06);border-color:#5C4A1A}
.mh.adv .mh-cifra{color:var(--warn)}

/* mapa de oportunidades como fichas de nicho (FILA LARGA: 1 por renglon, expansion a lo ancho) */
.op-cards{display:flex;flex-direction:column;gap:8px}
.op-card{position:relative;min-width:0;background:linear-gradient(180deg,#0E131B,#0A0D13);border:1px solid var(--bd);border-radius:10px;padding:13px 16px;transition:.13s;cursor:pointer}
.op-card:hover{border-color:rgba(var(--ac-rgb),.55);background:linear-gradient(180deg,#121925,#0C1018)}
.of-head{display:flex;justify-content:space-between;align-items:baseline;gap:6px 16px;flex-wrap:wrap}
.of-hl{flex:1 1 280px;min-width:0;display:flex;flex-direction:column;gap:2px}
.of-hr{display:flex;flex-direction:column;align-items:flex-end;gap:3px;flex-shrink:0}
.of-hr-r{display:flex;align-items:center;gap:10px}
.oc-n{font-size:var(--fs-body-lg);font-weight:700;color:var(--tx);line-height:1.3;min-width:0;overflow-wrap:break-word}
.oc-cat{font-family:var(--mono);font-size:var(--fs-label);letter-spacing:.08em;text-transform:uppercase;color:var(--mut)}
.oc-tam{font-family:var(--mono);font-size:16px;font-weight:600;color:var(--ac);letter-spacing:-.01em;white-space:nowrap}
.oc-cuna{font-size:var(--fs-label);line-height:1.35;color:var(--mut);text-align:right;max-width:340px}
.oc-cuna-k{font-family:var(--mono);font-size:var(--fs-micro);letter-spacing:.09em;text-transform:uppercase;color:var(--dim);margin-right:4px}
.oc-cuna-v{font-family:var(--mono);font-weight:600;color:var(--tx)}

/* fichas de cartera (proyecto RIGI expandible, FILA LARGA: 1 por renglon) + link motor<->entrada */
.ff-grid{display:flex;flex-direction:column;gap:8px}
.ff{min-width:0;background:linear-gradient(180deg,#0E131B,#0A0D13);border:1px solid var(--bd);border-radius:10px;padding:13px 16px;transition:.13s}
.ff:hover{border-color:rgba(var(--ac-rgb),.55)}
.ff-head{display:flex;align-items:baseline;gap:6px 14px;flex-wrap:wrap}
.ff-name{flex:1 1 220px;font-size:var(--fs-body-lg);font-weight:700;color:var(--tx);line-height:1.3;min-width:0;overflow-wrap:break-word}
.ff-sub{display:block;font-size:var(--fs-micro);font-weight:400;color:var(--mut);line-height:1.35;margin-top:3px}
.ff-meta{display:inline-flex;flex-wrap:wrap;align-items:center;gap:5px;font-family:var(--mono);font-size:var(--fs-label);color:var(--mut)}
.ff-usd{margin-left:auto;flex:0 0 auto;font-family:var(--mono);font-size:16px;font-weight:600;color:var(--ac);white-space:nowrap}
.ff-um{font-size:.62em;color:var(--mut)}
/* caveat de la cifra (cola de `unidad`: computable RIGI vs total, plazos): sub-linea full-width
   alineada a la derecha, bajo el numero — el numero "pelado" hacia parecer errada una cifra que
   es mas rigurosa que el titular de prensa */
.ff-uni{grid-column:1/-1;display:block;font-family:var(--mono);font-size:var(--fs-micro);font-weight:400;color:var(--mut);text-align:right;line-height:1.4;white-space:normal}
@media(max-width:720px){.ff-uni{flex:1 1 100%;text-align:left}}
/* ---- variante TABLA de la cartera (.ff-tab): fichas con columnas que cuadran fila a fila,
   sin perder el desplegable. Columnas FIJAS (no content-based) para que cada ficha — que es su
   propio grid — calcule el mismo ancho y alinee con el encabezado (2026-06-21, pedido usuario). ---- */
.ff-tab{gap:6px}
/* Proyecto y Sector con fr (fluido): como todas las fichas son del mismo ancho, el fr resuelve
   igual fila a fila y las columnas cuadran. Estado y USD fijos. Reparto: el nombre manda, pero
   Sector deja de apretarse a 3 lineas (2026-06-21, redistribucion pedida por usuario). */
.ff-tabhead,.ff-tab .ff-head{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr) 196px 108px;column-gap:20px}
.ff-tabhead{padding:0 16px 8px;font-family:var(--mono);font-size:var(--fs-label);font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--mut);border-bottom:1px solid var(--bd);margin-bottom:2px}
.ff-tabhead .r{text-align:right}
.ff-tab .ff-head{align-items:baseline;row-gap:3px}
/* nombre de proyecto un punto mas grande que el body (pedido usuario): es el dato que se escanea */
.ff-tab .ff-name{flex:none;align-self:baseline;font-size:15px}
.ff-tab .ff-c{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 7px;min-width:0;font-family:var(--mono);font-size:var(--fs-sub);color:var(--mut);line-height:1.4}
.ff-tab .ff-usd{margin-left:0;justify-self:end;text-align:right}
@media(max-width:720px){
  .ff-tabhead{display:none}
  .ff-tab .ff-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:5px 12px}
  .ff-tab .ff-name{flex:1 1 100%}
  .ff-tab .ff-usd{margin-left:auto}
}
.ff-det>summary,.of-det>summary,.ref-det>summary,.mh-det>summary,.tes-det>summary,.score-det>summary{cursor:pointer;display:inline-flex;align-items:center;gap:6px;width:fit-content;list-style:none;font-family:var(--mono);font-size:var(--fs-label);letter-spacing:.06em;text-transform:uppercase;color:var(--ac);margin-top:8px;border:1px solid var(--bd2);border-radius:6px;padding:4px 11px;transition:.13s}
.ff-det>summary::-webkit-details-marker,.of-det>summary::-webkit-details-marker,.ref-det>summary::-webkit-details-marker,.mh-det>summary::-webkit-details-marker,.tes-det>summary::-webkit-details-marker,.score-det>summary::-webkit-details-marker{display:none}
.ff-det>summary::before,.of-det>summary::before,.ref-det>summary::before,.mh-det>summary::before,.tes-det>summary::before,.score-det>summary::before{content:"\25B8";font-size:10.5px;line-height:1;transition:transform .15s}
.ff-det[open]>summary::before,.of-det[open]>summary::before,.ref-det[open]>summary::before,.mh-det[open]>summary::before,.tes-det[open]>summary::before,.score-det[open]>summary::before{transform:rotate(90deg)}
.ff-det>summary:hover,.of-det>summary:hover,.ref-det>summary:hover,.mh-det>summary:hover,.tes-det>summary:hover,.score-det>summary:hover{background:rgba(var(--ac-rgb),.1);border-color:var(--ac)}
/* hover en TODA la card de empresa ilumina su botón "Ver ficha" (affordance dinámica, gemela de
   .op-card:hover .oc-go): si algo es tocable, pasar el mouse por la card lo confirma. */
.ff:hover .ff-det>summary{background:rgba(var(--ac-rgb),.1);border-color:var(--ac)}
/* hover en TODA la card ilumina su botón de abrir, en todas las cards con desplegable (consistencia con
   .ff y .score): mini-indicador (.mh, "el dato completo") y tarjeta de tesis (.tes). OJO: el botón
   .tes-det es HERMANO de .tes-punch (ambos hijos de .tes), no su descendiente -> el hover va en .tes,
   no en .tes-punch (si no, la regla nunca matchea y solo ilumina al pasar justo por el botón). */
.mh:hover .mh-det>summary,.tes:hover .tes-det>summary{background:rgba(var(--ac-rgb),.1);border-color:var(--ac)}
.ff-det[open]>summary,.of-det[open]>summary,.ref-det[open]>summary,.mh-det[open]>summary,.tes-det[open]>summary,.score-det[open]>summary{background:rgba(var(--ac-rgb),.07);border-color:rgba(var(--ac-rgb),.4)}
.ff-full{padding:7px 0 2px;display:flex;flex-direction:column;gap:8px}
.ff-desc{margin:0;font-size:var(--fs-body-sm);line-height:1.55;color:#C8D2DF}
.ff-row{font-size:var(--fs-sub);line-height:1.5;color:#C8D2DF}
.ff-k{display:block;font-family:var(--mono);font-size:var(--fs-label);letter-spacing:.1em;text-transform:uppercase;color:var(--dim);margin-bottom:3px}
.ff-chips{display:flex;flex-wrap:wrap;gap:8px}
/* "Demanda que arrastra" AGRUPADA por familia (Opción A) + INTENSIDAD por fila (Opción C) — Demanda
   Ideas / Claude Design. Cada familia = label coloreado (--fc, inline por cluster) + borde + conteo;
   dentro, cada vertical en su fila con 3 puntos = tier de TAM. Se escanea por familia (color) y por peso. */
.dm-leg{display:flex;flex-wrap:wrap;align-items:center;gap:5px 14px;margin:5px 0 9px;font-family:var(--mono);font-size:9.5px;color:var(--dim)}
.dm-leg>span{display:inline-flex;align-items:center;gap:4px}
.dm-leg-n{color:#46556e;font-style:italic}
.dm-leg .dm-d.on{background:var(--ac)}
.dm-fams{display:flex;flex-direction:column;gap:13px;margin-top:2px}
.dm-fam{--fc:var(--ac);border-left:2px solid color-mix(in srgb,var(--fc) 45%,transparent);padding-left:12px}
.dm-fam-h{display:flex;align-items:baseline;gap:8px;margin-bottom:4px}
.dm-fam-l{font-family:var(--mono);font-size:10px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--fc)}
.dm-fam-n{font-family:var(--mono);font-size:10px;color:var(--dim)}
.dm-row{display:flex;align-items:center;gap:11px;padding:4px 6px;border-radius:6px;text-decoration:none;transition:.12s}
.dm-row:hover{background:color-mix(in srgb,var(--fc) 9%,transparent)}
.dm-int{display:inline-flex;gap:2px;flex:0 0 auto}
.dm-d{width:5px;height:5px;border-radius:50%;background:#2a3242}
.dm-d.on{background:var(--fc,var(--ac))}
.dm-nm{font-size:var(--fs-sub);line-height:1.35;color:#C8D2DF}
.dm-row:hover .dm-nm{color:var(--tx)}
.op-link{font-family:var(--mono);font-size:var(--fs-micro);line-height:1.35;color:var(--ac);text-decoration:none;border:1px solid rgba(var(--ac-rgb),.45);background:rgba(var(--ac-rgb),.07);border-radius:6px;padding:6px 11px;transition:.12s}
.op-link:hover{background:rgba(var(--ac-rgb),.16);border-color:var(--ac)}
.cf-bridge{margin:0 0 14px;font-size:var(--fs-body-sm);line-height:1.6;color:var(--mut);border-bottom:1px dashed var(--bd2);padding-bottom:12px}
.cf-bridge b{color:var(--ac)}
/* ficha de nicho (oportunidad): tipo de proveedor + expansion con mapa competitivo */
.oc-tipo{font-family:var(--mono);font-size:var(--fs-label);color:var(--cy);margin-top:1px}
.of-full{padding:8px 0 2px;display:flex;flex-direction:column;gap:11px}
.of-sec{font-size:var(--fs-sub);line-height:1.55;color:#C8D2DF}
.of-sec p{margin:0}
/* ---- vista de oportunidades por categoria + arco temporal (fase) ---- */
.op-vista{display:flex;flex-direction:column;gap:2px}
.op-fam-h{display:flex;align-items:center;gap:12px;margin:18px 0 2px}
.op-fam-l{font-family:var(--mono);font-size:var(--fs-label);font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--mut)}
.op-fam-r{flex:1;height:1px;background:linear-gradient(90deg,var(--bd2),transparent)}
.op-cat{display:grid;grid-template-columns:210px 1fr;gap:20px;padding:14px 0;border-top:1px solid var(--bd)}
.op-cat-rail{border-left:3px solid var(--cc);padding-left:14px;align-self:start}
.op-cat-n{display:flex;align-items:center;gap:8px;font-size:15.5px;font-weight:750;color:var(--tx);line-height:1.2}
.op-cat-chip{width:10px;height:10px;border-radius:3px;background:var(--cc);box-shadow:0 0 8px -1px var(--cc);flex:0 0 auto}
.op-cat-d{font-family:var(--mono);font-size:var(--fs-label);letter-spacing:.03em;color:var(--dim);margin:7px 0 9px;line-height:1.5}
.op-cat-agg{font-family:var(--mono);font-size:var(--fs-micro);color:var(--mut)}
.op-cat-agg b{color:var(--cc)}
.op-cat-cards{min-width:0}
.op-fase-leg{display:flex;flex-wrap:wrap;gap:8px 16px;margin:0 0 14px;padding:9px 12px;border:1px solid var(--bd);border-radius:8px;background:rgba(255,255,255,.012)}
.op-fase{display:inline-flex;align-items:center;gap:7px;font-family:var(--mono);font-size:var(--fs-label);letter-spacing:.02em;color:var(--mut);margin-top:7px;line-height:1.3}
.op-fase-leg .op-fase{margin-top:0}
.op-fase::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--dim);flex:0 0 auto}
.op-fase.urgente::before{background:#FF8A8A;box-shadow:0 0 6px rgba(255,138,138,.55)}
.op-fase.emergente::before{background:var(--cy);box-shadow:0 0 6px rgba(39,211,196,.55)}
.op-fase.sostenida::before{background:var(--ac);box-shadow:0 0 6px rgba(var(--ac-rgb),.55)}
/* señal competitiva de la card (1ra clausula de `concentracion`): moat vs campo abierto de un
   vistazo entre los 21 nichos, sin abrir cada pagina */
.op-comp{margin-top:6px;font-size:var(--fs-sub);line-height:1.45;color:var(--mut)}
.op-comp-k{font-family:var(--mono);font-size:var(--fs-micro);letter-spacing:.09em;text-transform:uppercase;color:var(--dim);margin-right:4px}
@media(max-width:720px){.op-cat{grid-template-columns:1fr;gap:10px}.op-cat-rail{border-left:0;border-top:3px solid var(--cc);padding-left:0;padding-top:10px}}
/* lead confiado de la seccion */
.op-lead{font-size:var(--fs-body-lg);line-height:1.6;color:var(--tx);margin:0 0 16px;max-width:66ch}
/* matriz categoria x arco */
.op-mx-wrap{overflow-x:auto;margin:2px 0 20px;padding-bottom:2px}
.op-mx{display:grid;grid-template-columns:182px repeat(3,1fr);gap:9px}
.op-mx-ch{position:relative;display:flex;flex-wrap:wrap;align-items:center;gap:5px;padding:10px 13px;border:1px solid var(--bd);border-top:2px solid var(--fc);border-radius:9px;background:var(--panel)}
.op-mx-ch b{font-family:var(--mono);font-size:var(--fs-sub);font-weight:600;text-transform:uppercase;letter-spacing:.07em;color:var(--fc)}
.op-mx-sub{flex-basis:100%;font-family:var(--mono);font-size:var(--fs-label);color:var(--dim);letter-spacing:.02em}
.op-mx-cnt{position:absolute;top:9px;right:12px;font-family:var(--mono);font-size:var(--fs-body);font-weight:600;color:var(--fc)}
.op-mx-rh{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;align-content:center;padding:10px 12px;border-left:3px solid var(--cc)}
.op-mx-rn{font-weight:700;font-size:var(--fs-body-sm);line-height:1.18;color:var(--tx)}
.op-mx-fam{flex-basis:100%;font-family:var(--mono);font-size:var(--fs-label);letter-spacing:.08em;text-transform:uppercase;color:var(--dim)}
.op-mx-note{font-family:var(--mono);font-size:var(--fs-micro);color:var(--dim);margin-top:8px}
/* affordance de scroll de la matriz: solo cuando scrollea (movil) */
.op-mx-swipe{display:none;font-family:var(--mono);font-size:var(--fs-label);letter-spacing:.06em;text-transform:uppercase;color:var(--dim);margin:0 0 7px;text-align:right}
/* mencion de nicho en prosa de senales (humanizar_ops): link discreto al ancla de su tarjeta */
.op-ref{color:var(--ac);text-decoration:none;border-bottom:1px dotted rgba(var(--ac-rgb),.5)}
.op-ref:hover{border-bottom-style:solid}
.op-mx-cell{display:flex;flex-direction:column;gap:6px;padding:8px;border:1px solid var(--bd);border-radius:9px;background:var(--panel2);min-height:54px}
.op-mx-cell.empty{background:repeating-linear-gradient(45deg,#090d14,#090d14 7px,#0c111a 7px,#0c111a 14px);border-style:dashed}
.op-mx-chip{display:flex;flex-direction:column;gap:2px;text-decoration:none;border-left:3px solid var(--cc);background:#0D131C;border-radius:6px;padding:7px 9px;transition:.12s}
.op-mx-chip:hover{background:#121b27;transform:translateX(2px)}
.op-mx-ct{font-size:var(--fs-micro);font-weight:600;line-height:1.25;color:var(--tx)}
.op-mx-cm{font-family:var(--mono);font-size:var(--fs-label);font-weight:500;color:var(--ac)}
/* filtros */
.op-filt{display:flex;flex-wrap:wrap;gap:10px 22px;align-items:center;margin:0 0 14px;padding-bottom:14px;border-bottom:1px solid var(--bd)}
.op-filt-grp{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.op-filt-l{font-family:var(--mono);font-size:var(--fs-label);letter-spacing:.14em;text-transform:uppercase;color:var(--dim)}
.op-chip{display:inline-flex;align-items:center;gap:6px;font-family:var(--mono);font-size:var(--fs-micro);padding:6px 12px;border-radius:7px;border:1px solid var(--bd2);background:var(--panel);color:var(--mut);cursor:pointer;transition:.12s}
.op-chip:hover{color:var(--tx);border-color:var(--dim)}
.op-chip.on{color:var(--ink);background:var(--ac);border-color:var(--ac);font-weight:600}
.op-chip-dot{width:7px;height:7px;border-radius:50%;flex:0 0 auto}
@media(max-width:720px){
 .op-mx{min-width:580px;gap:7px}
 .op-mx-swipe{display:block}
 .of-head{flex-direction:column;align-items:flex-start;gap:7px}
 .of-hl{flex:0 0 auto;width:100%}
 .of-hr{width:100%;align-items:flex-start;flex-shrink:1}
 .of-hr-r{width:100%;justify-content:space-between}
 .oc-tam{white-space:normal}
 .oc-cuna{text-align:left;max-width:none}
 .cap-hint{padding-left:0}
}
/* ===== fase color helpers ===== */
.fz-urgente{--fc:#FF8A8A}.fz-sostenida{--fc:var(--ac)}.fz-emergente{--fc:var(--cy)}
/* ===== cara compacta: footer + boton 'ver el nicho' ===== */
.of-cardfoot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px;flex-wrap:wrap}
.oc-go{display:inline-flex;align-items:center;gap:6px;font-family:var(--mono);font-size:var(--fs-micro);letter-spacing:.03em;color:var(--cy);text-decoration:none;border:1px solid rgba(39,211,196,.34);background:rgba(39,211,196,.06);border-radius:7px;padding:6px 13px;transition:.13s;white-space:nowrap}
.oc-go:hover{background:rgba(39,211,196,.14);border-color:var(--cy)}
.oc-go span{font-size:var(--fs-body)}
/* stretched-link: toda la cara abre el modal; el boton se sigue resaltando como guia visual.
   El ::after se ancla en .op-card (relative) porque .oc-go es static. */
.op-card .oc-go::after{content:"";position:absolute;inset:0;z-index:1}
.op-card:hover .oc-go{background:rgba(39,211,196,.14);border-color:var(--cy)}
/* el ↗ de fuente debe seguir clickeable por encima del overlay */
.op-card .src{position:relative;z-index:2}
/* ===== modal epico del nicho (:target, CSS-only) ===== */
/* al abrir un modal, congelar el scroll del fondo (CSS-only via :has, baseline 2023) para que el
   gesto de scroll mueva SIEMPRE la tarjeta y no el fondo difuminado, este el cursor donde este. */
html:has(.op-modal:target){overflow:hidden}
.op-modal{position:fixed;inset:0;z-index:60;display:none;align-items:flex-start;justify-content:center;padding:42px 18px;overflow-y:auto;overscroll-behavior:contain}
.op-modal:target{display:flex;animation:opmf .18s ease}
@keyframes opmf{from{opacity:0}to{opacity:1}}
.op-modal-bg{position:fixed;inset:0;background:rgba(3,5,9,.8);backdrop-filter:blur(4px)}
.op-modal-card{position:relative;z-index:1;width:min(880px,100%);margin:auto 0;background:linear-gradient(180deg,#0E141E,#0A0D13);border:1px solid var(--bd2);border-radius:16px;padding:26px 30px 28px;box-shadow:0 40px 130px -28px rgba(0,0,0,.92)}
.op-modal-x{position:absolute;top:14px;right:16px;width:34px;height:34px;display:grid;place-items:center;border:1px solid var(--bd2);border-radius:8px;color:var(--mut);text-decoration:none;font-size:15px;background:var(--panel);transition:.13s}
.op-modal-x:hover{color:var(--tx);border-color:var(--dim)}
.om-hero{display:flex;justify-content:space-between;align-items:flex-start;gap:22px;padding:0 38px 18px 0;border-bottom:1px solid var(--bd);margin-bottom:18px}
.om-cat{font-family:var(--mono);font-size:var(--fs-label);letter-spacing:.1em;text-transform:uppercase;color:var(--dim);margin-bottom:8px}
.om-title{margin:0;font-size:23px;line-height:1.18;font-weight:750;letter-spacing:-.01em;color:var(--tx)}
.om-h-r{flex:0 0 auto;display:flex;flex-direction:column;align-items:flex-end;gap:5px;text-align:right}
.om-tam{font-family:var(--mono);font-size:24px;font-weight:600;color:var(--ac);letter-spacing:-.01em;white-space:nowrap}
.om-tam-k{font-family:var(--mono);font-size:var(--fs-label);letter-spacing:.05em;text-transform:uppercase;color:var(--dim)}
.om-arco{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 9px;margin-top:12px;padding:9px 12px;border:1px solid var(--bd);border-left:3px solid var(--fc);border-radius:8px;background:rgba(255,255,255,.013)}
.om-arco-k{font-family:var(--mono);font-size:var(--fs-label);font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--fc)}
.om-arco-t{font-size:var(--fs-body-sm);color:var(--mut);line-height:1.5}
/* ===== contenido rico (KPIs, mapa competitivo, hueco) ===== */
.of-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:18px}
.of-kpi{background:var(--panel2);border:1px solid var(--bd);border-radius:10px;padding:12px 14px;display:flex;flex-direction:column;gap:3px}
.of-kpi .ok{font-family:var(--mono);font-size:16px;font-weight:600;color:var(--ac);letter-spacing:-.01em;line-height:1.2}
.of-kpi.fz-urgente .ok,.of-kpi.fz-sostenida .ok,.of-kpi.fz-emergente .ok{color:var(--fc);text-transform:capitalize}
.of-kpi .ku{font-family:var(--mono);font-size:var(--fs-label);letter-spacing:.04em;text-transform:uppercase;color:var(--dim)}
.of-sec{margin-bottom:16px}
.of-callout{background:linear-gradient(180deg,rgba(var(--ac-rgb),.08),rgba(var(--ac-rgb),.02));border:1px solid rgba(var(--ac-rgb),.3);border-left:3px solid var(--ac);border-radius:10px;padding:14px 16px;margin-bottom:16px}
.of-callout .of-k{color:var(--ac)}
.of-callout p{margin:0;font-size:var(--fs-body);line-height:1.62;color:var(--tx)}
/* ---- las 4 preguntas de control (METODOLOGIA §7): embudo + killers + cara B ---- */
.of-embudo{margin-bottom:16px;display:flex;flex-direction:column;gap:6px}
.emb-row{display:flex;gap:12px;align-items:baseline;padding:9px 12px;border-radius:8px;background:rgba(255,255,255,.02);border:1px solid var(--bd);font-size:var(--fs-sub);line-height:1.5;color:#C8D2DF}
.emb-row.mid{background:rgba(122,176,255,.06);border-color:rgba(122,176,255,.25)}
.emb-row.hot{background:linear-gradient(180deg,rgba(var(--ac-rgb),.1),rgba(var(--ac-rgb),.03));border-color:rgba(var(--ac-rgb),.4);color:var(--tx)}
.emb-l{flex:none;width:104px;font-family:var(--mono);font-size:var(--fs-label);letter-spacing:.05em;text-transform:uppercase;color:var(--mut)}
.emb-row.hot .emb-l{color:var(--ac)}
.emb-v{flex:1;min-width:0}
.of-kill{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:6px;font-size:var(--fs-sub);line-height:1.5;color:#C8D2DF}
.of-kill li{padding-left:15px;position:relative}
.of-kill li:before{content:"\25B8";position:absolute;left:0;color:var(--ac)}
.of-kill b{color:var(--tx)}
.of-ext{border-left:3px solid #4ADE9C;padding-left:12px}
.of-ext .of-k{color:#4ADE9C}
@media(max-width:720px){.emb-row{flex-direction:column;gap:3px}.emb-l{width:auto}}
.qbar{display:flex;height:30px;border-radius:7px;overflow:hidden;margin:10px 0 14px;border:1px solid var(--bd)}
.qbar-seg{display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:var(--fs-label);font-weight:600;color:#1a1206;min-width:0;overflow:hidden;white-space:nowrap}
.qbar-seg.gap{background:repeating-linear-gradient(45deg,#0d1420,#0d1420 6px,#111a28 6px,#111a28 12px)!important;color:var(--cy);font-weight:500}
.qi-list{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:12px}
.qi{display:flex;gap:10px;align-items:flex-start}
.qi-dot{width:10px;height:10px;border-radius:3px;flex:0 0 auto;margin-top:4px}
.qi-b{min-width:0}
.qi-h{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 9px}
.qi-nm{font-weight:650;font-size:var(--fs-body);color:var(--tx)}
.qi-s{font-family:var(--mono);font-size:var(--fs-label);color:var(--ac)}
.qi-n{font-size:var(--fs-sub);line-height:1.55;color:var(--mut);margin-top:3px}
.of-foot-row{display:flex;flex-wrap:wrap;gap:16px 32px;padding-top:14px;border-top:1px solid var(--bd);margin-bottom:0}
.of-foot-row .of-sec{margin-bottom:0;flex:1;min-width:220px}
@media(max-width:720px){
 .op-modal{padding:0;align-items:stretch}
 .op-modal-card{width:100%;min-height:100%;border-radius:0;border:0;padding:20px 15px 44px}
 .om-hero{flex-direction:column;gap:12px;padding-right:34px}
 .om-h-r{align-items:flex-start;text-align:left}
 .of-kpis{grid-template-columns:1fr 1fr;gap:8px}
 .of-foot-row{flex-direction:column;gap:14px}
}
.of-k{display:block;font-family:var(--mono);font-size:var(--fs-label);letter-spacing:.1em;text-transform:uppercase;color:var(--ac);margin-bottom:4px}
.of-conc{margin-top:5px!important;color:var(--mut)}
.of-conc b{color:#C8D2DF}
.inc-list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:7px}
.inc-list li{padding-left:10px;border-left:2px solid var(--bd2)}
.inc-n{font-weight:600;color:var(--tx)}
.inc-s{font-family:var(--mono);font-size:var(--fs-micro);color:var(--ac);margin-left:6px}
.inc-note{font-size:var(--fs-micro);color:var(--mut);line-height:1.5;margin-top:2px}

/* ===== Empresas del ecosistema (I9): FILA densa clickeable -> ficha (rediseño Empresas Ecosistema +
   Ficha Empresa, Claude Design via DesignSync 2026-06-25). Misma lengua visual que el catálogo de
   reformas: fila colapsada escaneable -> ficha rica (stat-strip + definition-list + 'enchufa a'). ===== */
.emp-grp{display:flex;align-items:baseline;gap:11px;margin:26px 0 2px}
.emp-grp:first-of-type{margin-top:4px}
.eg-t{font-family:var(--mono);font-size:13px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--ac)}
.eg-s{font-size:var(--fs-micro);color:var(--mut);flex:1;min-width:0}
.eg-n{font-family:var(--mono);font-size:12px;color:var(--mut)}
.emp-list{display:flex;flex-direction:column}
.emp{border-top:1px solid #101722}.emp:last-child{border-bottom:1px solid #101722}
/* las tarjetas que reciben un ancla (#proy-/#emp-) dejan aire arriba para no quedar tapadas por el
   header sticky (54px, tokens.css) al saltar; el JS de anclas afina el scroll con la altura real del header. */
.ff,.emp{scroll-margin-top:66px}
.emp>summary{cursor:pointer;list-style:none}.emp>summary::-webkit-details-marker{display:none}
.emp-row{display:grid;grid-template-columns:26px minmax(0,1fr) 186px 132px 18px;align-items:center;column-gap:18px;padding:14px 6px}
.emp-row.emp-srv{grid-template-columns:minmax(0,1fr) 186px 132px 18px}
.emp-row:hover{background:rgba(var(--ac-rgb),.05)}
.emp-rank{font-family:var(--mono);font-size:12px;color:var(--dim);text-align:center}
.emp-nm{min-width:0}
.emp-nm-t{font-size:15.5px;font-weight:600;color:var(--tx);letter-spacing:-.01em;line-height:1.25}
.emp>summary:hover .emp-nm-t{color:var(--ac)}
.emp-nm-d{font-size:var(--fs-micro);color:var(--mut);margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* sin ellipsis: el ticker corto ("YPF (NYSE, ADR)") se truncaba feo incluso en desktop
   (hallazgo 2026-07-03) — wrapea a 2 lineas y se lee entero */
.emp-tk{font-family:var(--mono);font-size:11px;color:var(--dim);text-align:right;line-height:1.4;min-width:0}
.emp-noq{color:#586272}
.emp-metr{min-width:0}
.emp-metr-top{display:flex;align-items:baseline;justify-content:flex-end;gap:4px;margin-bottom:5px}
.emp-pct{font-family:var(--mono);font-size:18px;font-weight:600;color:var(--tx)}
.emp-pct-u{font-family:var(--mono);font-size:10px;color:var(--mut)}
.emp-bar{height:4px;background:rgba(255,255,255,.07);border-radius:3px;overflow:hidden}
.emp-bar-f{height:100%;background:rgba(var(--ac-rgb),.5);border-radius:3px}
.emp-bar-f.lead{background:var(--ac)}
.emp-tag{font-family:var(--mono);font-size:10px;letter-spacing:.04em;text-transform:uppercase;color:var(--mut);border:1px solid var(--bd2);border-radius:5px;padding:3px 9px;justify-self:end;white-space:nowrap}
.emp-chev{font-family:var(--mono);font-size:15px;color:#46556e;text-align:center;transition:transform .15s}
.emp[open] .emp-chev{transform:rotate(90deg)}
.emp[open] .emp-row{background:rgba(var(--ac-rgb),.04)}
/* ---- ficha (cuerpo expandible) ---- */
.emp-ficha{padding:2px 6px 22px}
.emp-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--bd);border:1px solid var(--bd);border-radius:10px;overflow:hidden;margin:10px 0 16px}
.emp-kpi{background:var(--panel);padding:14px 16px}
.emp-kpi-l{display:flex;align-items:center;gap:7px;font-family:var(--mono);font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--dim);margin-bottom:8px}
.emp-kpi-v{font-size:24px;font-weight:700;color:#F2F5F9;letter-spacing:-.01em;display:flex;align-items:baseline;gap:6px}
.emp-kpi-u{font-family:var(--mono);font-size:11px;font-weight:400;color:var(--mut)}
.emp-kpi-s{font-family:var(--mono);font-size:11px;color:var(--mut);margin-top:5px}
.emp-dl{display:grid;grid-template-columns:170px 1fr;gap:18px;padding:15px 0;border-top:1px solid var(--bd)}
.emp-dl-k{font-family:var(--mono);font-size:10.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--dim);padding-top:2px}
.emp-dl-c{min-width:0;max-width:680px}
.emp-dl-v{font-size:var(--fs-body-lg);line-height:1.6;color:#CCD5E1}.emp-dl-v b{color:var(--tx)}
.emp-dl-m{margin-top:8px}
.emp-nota{display:flex;gap:8px;margin-top:10px;padding:9px 12px;background:rgba(229,193,92,.05);border-left:2px solid rgba(229,193,92,.45);border-radius:0 6px 6px 0}
.emp-nota-k{font-family:var(--mono);font-size:10px;font-weight:600;color:var(--warn);letter-spacing:.04em;flex:0 0 auto;padding-top:1px}
.emp-nota span:last-child{font-size:var(--fs-micro);line-height:1.55;color:var(--mut);font-style:italic}
.emp-dl-rel{align-items:start}
.emp-rel{display:flex;flex-wrap:wrap;gap:9px}
.emp-link{display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);font-size:12px;color:var(--ac);background:rgba(var(--ac-rgb),.08);border:1px solid rgba(var(--ac-rgb),.3);border-radius:8px;padding:7px 13px;text-decoration:none;transition:.12s}
.emp-link:hover{background:rgba(var(--ac-rgb),.16);border-color:var(--ac)}
.emp-link span{color:var(--ac)}
.emp-foot{display:flex;align-items:center;gap:8px;margin-top:16px;font-family:var(--mono);font-size:10.5px;color:var(--dim);line-height:1.5}
.emp-foot-bar{display:inline-block;width:22px;height:4px;background:var(--ac);border-radius:3px;flex:0 0 auto}
@media(max-width:680px){
  .emp-row,.emp-row.emp-srv{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;padding:13px 4px}
  .emp-rank,.emp-chev{display:none}
  .emp-nm{flex:1 1 100%}
  .emp-tk{flex:1 1 auto;text-align:left}
  .emp-metr{flex:0 0 auto;margin-left:auto;min-width:118px}
  .emp-tag{margin-left:auto}
  .emp-strip{grid-template-columns:1fr}
  .emp-dl{grid-template-columns:1fr;gap:4px 0}
  .emp-dl-k{padding-top:0}
}

/* mapa-datos.html (pagina interna de procedencia: de donde sale cada variable y cuando cambia) */
.via{display:inline-flex;font-family:var(--mono);font-size:var(--fs-label);font-weight:600;letter-spacing:.08em;padding:2px 7px;border-radius:var(--r-sm);border:1px solid var(--bd2);color:var(--mut);white-space:nowrap}
.via.auto{color:var(--ok);border-color:rgba(63,223,160,.4);background:rgba(63,223,160,.06)}
.via.semi{color:var(--cy);border-color:rgba(39,211,196,.4);background:rgba(39,211,196,.06)}
.via.cal{color:var(--warn);border-color:rgba(229,193,92,.4);background:rgba(229,193,92,.06)}
.via.evento{color:var(--mut)}
.via.deriv{color:var(--est);border-color:rgba(183,155,255,.4);background:rgba(183,155,255,.06)}
.md-cmd{font-family:var(--mono);font-size:var(--fs-label);color:var(--cy)}
.md-intro{background:linear-gradient(180deg,#16110A,#0F0B06);border:1px solid #5C4A1A;border-radius:10px;padding:13px 16px;font-size:var(--fs-body);color:var(--tx);line-height:1.7;margin:14px 0}
.md-intro b{color:var(--ac)}

/* hero epico de la pagina inversor: la cartera ES el numero de la pagina */
.hero-epic{padding:26px 28px}
.hero-epic .hd-k{font-family:var(--mono);font-size:var(--fs-label);letter-spacing:.16em;text-transform:uppercase;color:var(--hero-mut);margin-bottom:7px}
.hero-epic h1{font-size:clamp(25px,3.2vw,33px);margin-bottom:2px}
.hd-num{display:flex;align-items:baseline;flex-wrap:wrap;gap:9px;margin:8px 0 10px}
.hd-cur{font-family:var(--mono);font-size:clamp(16px,2vw,22px);font-weight:700;color:var(--hero-sub)}
.hd-num .num{font-size:clamp(38px,5.6vw,56px);font-weight:700;letter-spacing:-.03em;line-height:1;color:var(--ac-hi)}
.hd-num-u{font-family:var(--mono);font-size:var(--fs-micro);color:var(--hero-sub);font-weight:600;flex-basis:100%}
/* linea de contexto nacional bajo el numero del hero (encuadre 2026-07-10): el numero gordo es la
   cartera auditable; el pais entero se declara al lado. Sello re-coloreado para el hero CLARO
   (los --ver/--dim de la piel oscura no contrastan sobre #F6FAFE; verde de la piel clara gente). */
.hd-pais{margin:0 0 10px;font-size:var(--fs-sub);color:var(--hero-sub);line-height:1.55}
.hd-pais b{color:var(--hero-tx)}
.hero-despegue .sello{color:var(--hero-mut)}
.hero-despegue a.sello:hover{background:rgba(23,34,46,.08)}
.hero-despegue .se-c.ver{color:#1B7A4E}
.hd-split{display:flex;flex-wrap:wrap;gap:7px;margin:0 0 12px}
.hd-split span{font-family:var(--mono);font-size:var(--fs-label);font-weight:700;padding:3px 9px;border-radius:999px;line-height:1.3}
.hd-split .ok{background:#1C5B2E;color:#EAF7EE}
.hd-split .ev{background:rgba(23,34,46,.14);color:var(--hero-sub);border:1px solid rgba(23,34,46,.28)}
.kpis.k3{grid-template-columns:repeat(3,1fr)}

/* clima de inversion: tratamiento editorial (prosa, no tarjetas) */
.panel-clima .prosa-lead{font-size:16px;line-height:1.62;color:var(--tx);font-weight:600;margin:0 0 11px}
.panel-clima .prosa{margin:0 0 10px;line-height:1.7}
.panel-clima .prosa:last-child{margin-bottom:0}
/* watchlist del clima: el riesgo de la apuesta (amber-caution, distinto del azul-tesis) */
.clima-watch{margin-top:14px;padding:10px 13px;border-radius:8px;background:#100B05;border-left:3px solid var(--pro)}
.cw-h{font-family:var(--mono);font-size:var(--fs-label);font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--pro);margin-bottom:4px}
.cw-sub{margin:0 0 7px;font-size:var(--fs-sub);color:var(--mut);line-height:1.5}
.cw-list{margin:0;padding-left:16px}
.cw-list li{font-size:var(--fs-body-sm);line-height:1.55;color:#CDD6E2;margin-bottom:6px}
.cw-list li:last-child{margin-bottom:0}

/* fix de orden de cascada (2026-06-11): .cols/.cols2/.hero-prov se re-declaran DESPUES del bloque
   responsive de arriba, asi que aquel media query quedaba pisado en mobile (bug preexistente,
   visible recien con las tarjetas). Este bloque va al FINAL del archivo para ganar la cascada. */
@media(max-width:1000px){
  .hero-prov,.cols,.cols2{grid-template-columns:1fr}
  .kpis.k3{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:760px){
  .kpis.k3{grid-template-columns:1fr 1fr}
  .hd-num .num{font-size:34px}
}

/* card de provincia: la cartera como cifra protagonista (redisenio portada 2026-06-12) */
.card-stats .cs:first-child .cs-v{font-size:24px;color:var(--ac);font-weight:700}

.b.warn{color:var(--warn)}
