/* Sistema de diseño ICE 2026 — editorial institucional (docs/mockup/DESIGN.md) */
:root{--navy:#0d2030;--navy-2:#15293d;--carbon:#19232D;--ink:#121c26;--muted:#43474c;--muted-2:#5f6368;--accent:#008EB0;--accent-text:#006F8C;--accent-2:#34B5C6;--canvas:#F8FAFC;--subtle:#F1F5F9;--white:#fff;--line:#E2E8F0;--line-strong:#CBD5E1;--green:#15803D;--red:#B91C1C;--surface:#fff;--accent-soft:var(--accent-soft);--focus:#006F8C;--map-stroke:#fff;--chart-dim:#d9e3f1;--chart-dim-text:#b0bec5;--thumb-ring:#0d2030;--backdrop:rgba(13,32,48,.5);--hint:var(--hint);--display:"Plus Jakarta Sans",Inter,Arial,sans-serif;--body:Inter,"Segoe UI",Arial,sans-serif;--mono:ui-monospace,SFMono-Regular,Menlo,monospace;--r:4px;--r-card:6px;--shadow:0 4px 12px -2px rgba(13,32,48,.08)}
*{box-sizing:border-box}[hidden]{display:none!important}html{color-scheme:light}html[data-theme=dark]{color-scheme:dark}
body{margin:0;background:var(--canvas);color:var(--ink);font-family:var(--body);font-size:15px;line-height:22px;-webkit-font-smoothing:antialiased}
a{color:var(--accent-text)}button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}select,input{font:inherit}
.wrap{max-width:1440px;margin:0 auto;padding:0 48px}
.ms{font-family:"Material Symbols Outlined";font-weight:400;font-size:18px;line-height:1;vertical-align:-4px;font-variation-settings:'FILL' 0,'wght' 400;text-transform:none;letter-spacing:0;font-feature-settings:'liga' 1;text-rendering:optimizeLegibility;white-space:nowrap;-webkit-font-feature-settings:'liga' 1}
.num,.rank-table td.num,.kpi .v,.dist .v,.chg{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}
.muted{color:var(--muted-2)}.small{font-size:13px;line-height:18px}.strong{font-weight:600}.italic{font-style:italic}.mono{font-family:var(--mono);font-size:12px}
.label-sm{font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
/* barra superior */
.topbar{background:var(--navy);color:#fff;border-bottom:1px solid rgba(255,255,255,.12)}.topbar-inner{display:flex;align-items:center;gap:14px;height:52px}.logo{height:26px;width:auto;display:block}.topbar-sep{width:1px;height:18px;background:rgba(255,255,255,.3)}.topbar-title{font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;opacity:.85}.topbar-right{margin-left:auto}.year-chip{border:1px solid rgba(255,255,255,.3);border-radius:var(--r);padding:4px 10px;font-size:12px;font-weight:600;font-family:var(--mono);white-space:nowrap}
/* cabecera */
.masthead{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;padding:28px 0 18px}.eyebrow{display:flex;align-items:center;gap:10px;font-size:12px;margin-bottom:8px}.tag{background:var(--accent-text);color:#fff;border-radius:var(--r);padding:2px 8px;font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
h1{margin:0;font-family:var(--display);font-size:40px;line-height:48px;letter-spacing:-.02em;font-weight:700}
.lead{margin:8px 0 0;max-width:760px;font-size:17px;line-height:26px;color:var(--muted)}.lead-sm{margin:0 0 14px;font-size:15px;color:var(--muted);max-width:820px}
.masthead-actions{display:flex;gap:10px;flex-shrink:0;padding-top:26px}
.btn{display:inline-flex;align-items:center;gap:6px;border-radius:var(--r);padding:9px 14px;font-weight:600;font-size:14px;line-height:18px}a.btn{text-decoration:none}.met-body .btn-row{display:flex;flex-wrap:wrap;gap:8px}.btn-primary{background:var(--navy);color:#fff}.btn-primary:hover{background:var(--navy-2)}.btn-secondary{background:var(--surface);color:var(--carbon);border:1px solid var(--line-strong)}.btn-secondary:hover{background:var(--subtle)}.btn-sm{padding:6px 10px;font-size:13px}
.link-btn{display:inline-flex;align-items:center;gap:4px;color:var(--accent-text);font-weight:600;font-size:13px;padding:4px 6px;border-radius:var(--r)}.link-btn:hover{background:var(--subtle)}
/* pestañas */
.tabs{display:flex;align-items:stretch;gap:8px;border-bottom:1px solid var(--line);background:var(--surface);margin:6px -48px 22px;padding:0 48px;position:sticky;top:0;z-index:30}.tablist{display:flex;gap:2px;flex:1;min-width:0;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;scroll-padding:0 24px;transition:box-shadow .2s}.tablist.more-right{box-shadow:inset -28px 0 20px -20px var(--hint)}.tablist.more-left{box-shadow:inset 28px 0 20px -20px var(--hint)}.tablist.more-left.more-right{box-shadow:inset 28px 0 20px -20px var(--hint),inset -28px 0 20px -20px var(--hint)}.tablist::-webkit-scrollbar{display:none}.tablist button{white-space:nowrap;flex-shrink:0}.tablist button{padding:14px 16px;font-weight:600;font-size:14px;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px}.tablist button:hover{color:var(--ink)}.tablist button[aria-selected=true]{color:var(--accent-text);border-bottom-color:var(--accent)}
/* botón de tema (claro/oscuro): icono SVG en línea para no ampliar el subconjunto de Material Symbols */
.theme-btn{align-self:center;flex:none;width:40px;height:40px;border-radius:var(--r);border:1px solid var(--line);color:var(--muted);display:grid;place-items:center;margin-left:auto}.theme-btn:hover{background:var(--subtle);color:var(--ink);border-color:var(--line-strong)}.theme-btn svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.theme-btn .ico-sun{display:none}html[data-theme=dark] .theme-btn .ico-sun{display:block}html[data-theme=dark] .theme-btn .ico-moon{display:none}
/* filtros */
.filter-bar{display:flex;align-items:flex-end;gap:14px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);padding:14px 18px;margin-bottom:22px;flex-wrap:wrap}.filter-bar.wrap{align-items:flex-start}.grow{flex:1}
.field{display:flex;flex-direction:column;gap:6px}.field>span{font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);display:inline-flex;align-items:center;gap:5px}.field>span>.ms{font-size:15px;vertical-align:0;color:var(--accent-text)}.field.inline{flex-direction:row;align-items:center;gap:8px}.field.inline>span{text-transform:none;letter-spacing:0;font-size:13px}
select,input[type=search]{border:1px solid var(--line-strong);background:var(--surface);border-radius:var(--r);padding:8px 10px;font-size:14px;color:var(--ink);min-width:220px}select:focus,input:not([type=range]):focus{outline:2px solid var(--focus);outline-offset:1px}
.search{display:flex;align-items:center;gap:8px;border:1px solid var(--line);background:var(--subtle);border-radius:var(--r);padding:0 10px}.search input{border:0;background:transparent;flex:1;min-width:0}.search .ms{color:var(--muted-2)}
/* KPI */
.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:24px}.kpis-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.kpi{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);padding:16px 18px;display:flex;flex-direction:column;gap:6px}.kpi .k{display:flex;justify-content:space-between;align-items:center;font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.kpi .v{font-family:var(--display);font-size:24px;line-height:28px;font-weight:700}.kpi .d{font-size:13px;color:var(--muted)}.kpi .d b{color:var(--ink)}.kpi .bar{height:4px;background:var(--subtle);border-radius:2px;margin-top:6px;overflow:hidden}.kpi .bar i{display:block;height:100%;background:var(--accent)}
/* rejilla y tarjetas */
.grid-75{display:grid;grid-template-columns:7fr 5fr;gap:24px;align-items:start}.col{display:flex;flex-direction:column;gap:24px;min-width:0}.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;align-items:stretch}.card.wide{grid-column:1/-1}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);padding:18px 20px;display:flex;flex-direction:column;gap:12px;min-width:0}.card:hover{border-color:var(--line-strong)}
.card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.card-head h2{margin:0;font-family:var(--display);font-size:18px;line-height:24px;font-weight:600;display:flex;align-items:center;gap:8px}.card-head h2 .ms{color:var(--accent-text)}.sub{margin:3px 0 0;color:var(--muted);font-size:13px;line-height:18px}.card-tools{display:flex;align-items:center;gap:6px;flex-shrink:0}
.icon-btn{width:36px;height:36px;border-radius:var(--r);color:var(--muted);display:grid;place-items:center;border:1px solid transparent;font-weight:600}.icon-btn:hover{background:var(--subtle);color:var(--ink);border-color:var(--line)}.map-zoom .icon-btn{border-color:var(--line)}
.chip-lite{background:var(--subtle);border:1px solid var(--line);border-radius:var(--r);padding:4px 8px;font-size:11px;font-weight:600;color:var(--muted)}
.row-between{display:flex;justify-content:space-between;align-items:center;gap:12px}
.card-foot{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding-top:10px;margin-top:auto}
.plot{position:relative;min-height:0}.plot svg{width:100%;height:auto;display:block;font-family:var(--body)}.plot svg .grid{stroke:var(--line)}.plot svg .grid-soft{stroke:var(--subtle)}.plot svg .t-ink{fill:var(--ink)}.plot svg .t-muted{fill:var(--muted-2)}.plot svg .t-dim{fill:var(--chart-dim-text)}.plot svg .guide-line{stroke:var(--ink)}.plot svg .guide-box{fill:var(--navy)}.plot svg .guide-dot{fill:var(--surface)}
.year-range{display:flex;align-items:center;gap:12px;padding-top:4px}.year-range .track{position:relative;flex:1;height:24px}.year-range .track input{position:absolute;left:0;top:10px;width:100%;margin:0;pointer-events:none;background:transparent;-webkit-appearance:none;appearance:none;height:4px}.year-range .track::before{content:'';position:absolute;left:0;right:0;top:10px;height:4px;border-radius:2px;background:var(--line-strong)}.year-range .track input::-webkit-slider-runnable-track{background:transparent}.year-range .track input::-moz-range-track{background:transparent}.year-range .track input::-webkit-slider-thumb{-webkit-appearance:none;pointer-events:auto;width:20px;height:20px;border-radius:50%;background:var(--navy);border:3px solid var(--surface);box-shadow:0 0 0 1px var(--navy);margin-top:-8px;cursor:pointer}.year-range .track input::-moz-range-thumb{pointer-events:auto;width:10px;height:10px;border-radius:50%;background:var(--navy);border:2px solid #fff;cursor:pointer}
.year-badge{background:var(--subtle);border:1px solid var(--line);border-radius:var(--r);padding:4px 10px;font-family:var(--mono);font-weight:700;font-size:15px}
/* tablas */
.table-wrap{overflow:auto;position:relative;border:1px solid var(--line);border-radius:var(--r);transition:box-shadow .2s}.table-wrap.more-right{box-shadow:inset -24px 0 18px -18px var(--hint)}.table-wrap.more-left{box-shadow:inset 24px 0 18px -18px var(--hint)}.table-wrap.more-left.more-right{box-shadow:inset 24px 0 18px -18px var(--hint),inset -24px 0 18px -18px var(--hint)}.table-wrap.tall{max-height:520px}.rank-table{width:100%;border-collapse:collapse;font-size:13px}.rank-table th{position:sticky;top:0;background:var(--subtle);color:var(--muted);font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;text-align:left;padding:8px 12px;border-bottom:1px solid var(--line);white-space:nowrap;z-index:1}.rank-table th button{color:inherit;font:inherit;padding:0;display:inline-flex;gap:4px;align-items:center;text-transform:inherit;letter-spacing:inherit}.rank-table td{padding:8px 12px;border-bottom:1px solid var(--line);vertical-align:middle}.rank-table tbody tr:nth-child(even) td{background:var(--canvas)}.rank-table tr:hover td{background:var(--subtle)}.rank-table td.num{text-align:right}.rank-table .name{font-weight:500}.rank-table .score{font-family:var(--mono);font-weight:600;font-size:13px}.rank-table td.center,.rank-table th.center{text-align:center}.rank-table td.center .lvl{margin:0 auto}.rank-table tr.hl td{background:var(--accent-soft)}.rank-table tr.hl .name{color:var(--accent-text);font-weight:600}
.lvl{display:inline-flex;align-items:center;gap:6px;border-radius:var(--r);padding:2px 8px;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;border:1px solid var(--lvl);background:color-mix(in srgb,var(--lvl) 15%,transparent);color:var(--ink)!important;white-space:nowrap}.lvl::before{content:'';width:8px;height:8px;border-radius:2px;background:var(--lvl)}
.chg{display:inline-flex;align-items:center;gap:2px;font-size:12px;font-weight:700}.chg.up{color:var(--green)}.chg.down{color:var(--red)}.chg.same{color:var(--muted-2)}.chg-box{border:1px solid var(--line);border-radius:var(--r);padding:2px 8px;font-size:11px;background:var(--surface)}
/* mapa */
.map-plot{position:relative;background:var(--canvas);border:1px solid var(--line);border-radius:var(--r);min-height:400px;overflow:hidden}.map-plot svg{width:100%;height:100%;display:block;cursor:grab}.map-plot path{stroke:var(--map-stroke);stroke-width:1;transition:opacity .15s}.map-plot path:hover,.map-plot path.active{stroke:var(--ink);stroke-width:1.4}.map-plot path.dim{opacity:.3}
.map-tooltip{position:absolute;pointer-events:none;background:var(--surface);color:var(--ink);border:1px solid var(--line-strong);border-radius:var(--r);padding:10px 12px;font-size:13px;z-index:3;max-width:260px;box-shadow:var(--shadow)}.map-tooltip strong{display:block;font-family:var(--display);font-size:14px;margin-bottom:2px}.map-tooltip small{color:var(--muted)}
.legend-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.legend{display:flex;flex-wrap:wrap;gap:6px}.legend span{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--ink);border:1px solid var(--line);border-radius:var(--r);padding:3px 8px;background:var(--surface)}.legend i{width:10px;height:10px;border-radius:2px;display:inline-block}
.bar-plot{min-height:0}.bar-plot svg text{font-size:12px}.card.wide .bar-plot{max-width:820px}.bar-plot.plot-wide{max-width:none}
/* distribución */
.dist{display:flex;flex-direction:column;gap:10px}.dist .row{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;font-size:13px}.dist .row .v{font-family:var(--mono);font-weight:700;color:var(--accent-text)}.dist .row.low .v{color:var(--muted-2)}.dist .bar{grid-column:1/-1;height:6px;background:var(--subtle);border-radius:3px;overflow:hidden}.dist .bar i{display:block;height:100%;background:var(--accent)}.dist .row.low .bar i{background:var(--line-strong)}.dist .avg{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:8px 0;font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--accent-text)}.dist .foot{font-size:12px;color:var(--muted);margin:0}
/* subíndices */
.section{margin-top:34px}.section-head{margin-bottom:16px}.section-head .dot::before{content:'';display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--accent);margin-right:8px;vertical-align:1px}.h-lg{margin:8px 0 6px;font-family:var(--display);font-size:30px;line-height:38px;letter-spacing:-.015em;font-weight:700}.section-head .link-btn{float:right;margin-top:-30px}
.sub-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.sub-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);padding:16px 18px;display:flex;flex-direction:column;gap:8px;cursor:pointer}.sub-card:hover{border-color:var(--line-strong)}.sub-card .top{display:flex;justify-content:space-between;align-items:center}.sub-card{border-top:3px solid var(--sc,var(--navy))}.sub-card .n{width:30px;height:30px;background:var(--sc,var(--navy));color:var(--sc-ink,#fff);font-family:var(--mono);font-weight:700;font-size:12px;display:grid;place-items:center;border-radius:var(--r)}.sub-card h3{margin:2px 0 0;font-family:var(--display);font-size:17px;line-height:22px}.sub-card p{margin:0;font-size:13px;color:var(--muted);line-height:18px;flex:1}.sub-card .lead-row{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding-top:8px;font-size:13px}.sub-card .lead-row b{color:var(--ink)}.sub-card .pos{font-family:var(--mono);font-weight:700;color:var(--accent-text)}
.note{display:flex;gap:16px;background:var(--surface);border:1px solid var(--line);border-left:3px solid var(--navy);border-radius:var(--r-card);padding:20px 22px;margin:34px 0 10px}.note-ico{width:36px;height:36px;border-radius:var(--r);background:var(--navy);color:#fff;display:grid;place-items:center;flex-shrink:0}.note h3{margin:0 0 6px;font-family:var(--display);font-size:16px}.note p{margin:0 0 8px;font-size:13px;line-height:19px;color:var(--muted)}.note p b{color:var(--ink)}
/* píldoras, chips, secciones repetidas */
/* control segmentado */
.seg{display:inline-flex;background:var(--subtle);border:1px solid var(--line);border-radius:var(--r);padding:3px;gap:2px}.seg button{padding:7px 12px;min-height:36px;border-radius:3px;font-weight:600;font-size:13px;color:var(--muted);transition:background-color .15s,color .15s,box-shadow .15s;cursor:pointer;white-space:nowrap}.seg button:hover{color:var(--ink)}.seg button[aria-checked=true]{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px rgba(13,32,48,.12),0 0 0 1px var(--line)}.seg button:focus-visible{outline:2px solid var(--focus);outline-offset:1px}
/* campo de tokens con búsqueda */
.filters-ex{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px 24px;align-items:end}#sub-pills{flex-wrap:wrap}.filters-ex .field.full{grid-column:1/-1}.field .count{font-weight:500;text-transform:none;letter-spacing:0;color:var(--muted-2);margin-left:6px}
.tokens{display:flex;flex-wrap:wrap;align-items:center;gap:6px;min-height:44px;padding:5px 6px;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r);transition:box-shadow .15s,border-color .15s;cursor:text}.tokens:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px rgba(0,142,176,.15)}
.tokens .chips{display:contents}.chip{display:inline-flex;align-items:center;gap:4px;height:30px;padding:0 4px 0 10px;background:var(--subtle);border:1px solid var(--line);color:var(--ink);border-radius:var(--r);font-size:13px;font-weight:500;white-space:nowrap;transition:border-color .15s,background-color .15s}.chip:hover{border-color:var(--line-strong)}.chip.hl{background:var(--accent-soft);border-color:var(--accent)}.chip i{width:8px;height:8px;border-radius:2px;flex-shrink:0}.chip button{width:28px;height:28px;border-radius:3px;color:var(--muted-2);display:grid;place-items:center;transition:background-color .15s,color .15s;cursor:pointer}.chip button:hover{background:var(--line);color:var(--ink)}.chip button:focus-visible{outline:2px solid var(--focus);outline-offset:0}
.combo{position:relative;flex:1;min-width:220px}.combo input{width:100%;min-width:0;border:0;padding:6px 6px;min-height:32px;font-size:14px;background:transparent}.combo input:focus{outline:none}.combo input::placeholder{color:var(--muted-2)}
.combo-list{position:absolute;left:0;top:calc(100% + 6px);z-index:30;margin:0;padding:6px;list-style:none;width:min(360px,90vw);max-height:280px;overflow:auto;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-card);box-shadow:var(--shadow)}.combo-list li{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;min-height:38px;border-radius:3px;font-size:14px;cursor:pointer}.combo-list li:hover,.combo-list li[aria-selected=true]{background:var(--subtle)}.combo-list li .meta{font-size:12px;color:var(--muted-2);font-family:var(--mono)}.combo-list li.added{color:var(--muted-2)}.combo-list li.added .ms{color:var(--accent-text)}.combo-list li.none{color:var(--muted-2);cursor:default}
.field.actions .btn-row{display:flex;gap:6px}.btn-row .btn{min-height:36px}
@media(max-width:1100px){.filters-ex{grid-template-columns:minmax(0,1fr)}.seg{flex-wrap:wrap}}
@media(max-width:640px){.seg button{flex:1 1 30%}.field.actions>span{display:none}.btn-row{flex-wrap:wrap}}
.section-heading{display:flex;gap:12px;align-items:baseline;margin:26px 0 12px;border-bottom:1px solid var(--line);padding-bottom:8px}.section-heading span{font-family:var(--mono);font-size:12px;color:var(--accent-text);font-weight:700}.section-heading .sub-num{display:inline-grid;place-items:center;min-width:28px;height:22px;padding:0 6px;border-radius:var(--r);background:var(--sc,var(--navy));color:var(--sc-ink,#fff);font-size:11px}.section-heading h2{margin:0;font-family:var(--display);font-size:22px}
.empty{display:grid;place-items:center;min-height:180px;color:var(--muted);font-size:13px;text-align:center;padding:20px;background:var(--canvas);border:1px dashed var(--line-strong);border-radius:var(--r)}
.footer{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;color:var(--muted-2);font-size:12px;padding-block:22px 40px;margin-top:20px;border-top:1px solid var(--line)}.footer-right{text-align:right;line-height:18px}.footer .credit{display:inline-block;margin-top:2px}
dialog{background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-card);padding:20px 24px;width:min(1100px,94vw);max-height:92vh;box-shadow:var(--shadow);color:var(--ink);font-family:var(--body)}dialog::backdrop{background:var(--backdrop)}.dialog-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px}.dialog-head h2{margin:0;font-family:var(--display);font-size:20px}#expanded-body .card{border:0;padding:0}#expanded-body .plot{min-height:520px}#expanded-body .map-plot{min-height:560px;position:relative}#expanded-body .map-plot .map-zoom{position:absolute;right:12px;top:12px;display:flex;flex-direction:column;gap:6px;z-index:2}#expanded-body .table-wrap{max-height:70vh}.prose{font-size:14px;line-height:22px}
@media(max-width:1100px){.wrap{padding:0 32px}.tabs{margin-left:-32px;margin-right:-32px;padding-left:32px;padding-right:32px}.grid-75,.grid-2{grid-template-columns:1fr}.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.sub-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.masthead{flex-direction:column}.masthead-actions{padding-top:0}}
@media(max-width:640px){.wrap{padding:0 16px}.tabs{margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px}.tablist button{padding:12px 10px;font-size:13px}.strip{flex-wrap:wrap}h1{font-size:28px;line-height:36px}.kpis,.kpis-3,.sub-cards{grid-template-columns:1fr}.topbar-title{display:none}select,input[type=search]{min-width:0;width:100%}.field{flex:1 1 100%}.section-head .link-btn{float:none;margin:0}.footer{flex-direction:column;gap:6px;align-items:flex-start}.footer-right{text-align:left}}
@media print{.topbar,.tabs,.filter-bar,.card-foot,.map-zoom,.masthead-actions,.footer{display:none!important}.card,.kpi,.sub-card{break-inside:avoid;border-color:#999}}

/* metodología */
.met-grid{display:grid;grid-template-columns:220px minmax(0,1fr);gap:32px;align-items:start}.met-nav{position:sticky;top:16px;display:flex;flex-direction:column;gap:2px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);padding:14px 12px}.met-nav .label-sm{margin-bottom:6px}.met-nav a{color:var(--muted);text-decoration:none;font-size:13px;padding:6px 8px;border-radius:var(--r);border-left:2px solid transparent}.met-nav a:hover{background:var(--subtle);color:var(--accent);border-left-color:var(--accent)}
.met-body{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);padding:28px 32px;max-width:960px}.met-body h3{font-family:var(--display);font-size:20px;margin:30px 0 8px;padding-top:14px;border-top:1px solid var(--line)}.met-body p{color:var(--muted);line-height:24px}.met-body p b{color:var(--ink)}
.met-two{display:grid;grid-template-columns:1fr 1fr;gap:16px}.met-box{background:var(--subtle);border:1px solid var(--line);border-radius:var(--r-card);padding:14px 16px}.met-box ul{margin:8px 0 0;padding-left:18px;color:var(--muted);font-size:14px;line-height:21px}
.met-list{padding-left:22px;color:var(--muted);line-height:24px}.met-list li{margin-bottom:6px}.met-list b{color:var(--ink)}kbd{font-family:var(--mono);font-size:12px;background:var(--subtle);border:1px solid var(--line-strong);border-bottom-width:2px;border-radius:3px;padding:0 5px;color:var(--ink);white-space:nowrap}.met-box p{margin:8px 0 0;font-size:14px;line-height:21px;color:var(--muted)}.footer-links{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.footer-links .link-btn{padding:2px 4px;font-size:12px}
.met-steps{padding-left:22px;color:var(--muted);line-height:24px}.met-steps li{margin-bottom:10px}.met-steps b{color:var(--ink)}.formula{display:inline-block;font-family:var(--mono);font-size:13px;background:var(--subtle);border:1px solid var(--line);border-radius:var(--r);padding:1px 8px;color:var(--ink);margin:2px 0}
@media(max-width:1100px){.met-grid{grid-template-columns:minmax(0,1fr)}.met-nav{position:static;flex-direction:row;flex-wrap:wrap}.met-two{grid-template-columns:minmax(0,1fr)}.met-body{padding:20px;min-width:0}}

.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip{position:absolute;left:-9999px;top:8px;background:var(--navy);color:#fff;padding:8px 12px;border-radius:var(--r);z-index:100}.skip:focus{left:8px}
.load-error{margin:40px auto;max-width:640px;background:var(--surface);border:1px solid var(--line-strong);border-left:4px solid var(--red);border-radius:var(--r-card);padding:20px 24px}.load-error h2{margin:0 0 6px;font-family:var(--display);font-size:20px}.load-error p{margin:0 0 12px;color:var(--muted)}
a:focus-visible,button:focus-visible,select:focus-visible,input:focus-visible,textarea:focus-visible,[tabindex]:focus-visible,summary:focus-visible,.sub-card:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
@media(prefers-contrast:more){:root{--line:#94a3b8;--line-strong:#64748b;--muted:#1f2937;--muted-2:#374151}html[data-theme=dark]{--line:#64748b;--line-strong:#94a3b8;--muted:#e2e8f0;--muted-2:#cbd5e1}:focus-visible{outline-width:3px}.card,.kpi,.sub-card,.filter-bar{border-width:2px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;scroll-behavior:auto!important}}
@media print{.table-wrap,.table-wrap.tall{max-height:none;overflow:visible;border:0}.rank-table th{position:static}.map-plot{min-height:0}.grid-75{grid-template-columns:1fr}.skip{display:none}}

/* grapher (estilo Our World in Data) */
.grapher{gap:10px}.g-controls{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.seg.views button{display:inline-flex;align-items:center;gap:6px}.g-search{min-width:260px}
.g-view{min-height:320px}.g-view .plot{max-width:900px;margin:0 auto}.g-view .plot-wide{max-width:none}.g-view .map-plot{min-height:0;height:clamp(360px,calc(100vh - 250px),640px);position:relative}.g-view .map-plot svg{width:100%;height:100%}.grapher{scroll-margin-top:64px}.g-view .map-plot .map-zoom{position:absolute;right:12px;top:12px;display:flex;flex-direction:column;gap:6px;z-index:2}
.g-foot{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:10px}.g-actions{display:flex;gap:6px}.link-btn.inline{padding:0 2px;font-size:inherit}
.spark{display:block;width:96px;height:26px}.g-view .rank-table td.spark-cell{padding-top:4px;padding-bottom:4px}
.g-legend{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin-top:8px}
.grapher:fullscreen{padding:24px 32px;overflow:auto;background:var(--surface)}.grapher:fullscreen .g-view{min-height:60vh}.grapher:fullscreen .g-view .map-plot{height:calc(100vh - 220px)}
.g-empty{padding:40px;text-align:center;color:var(--muted)}
@media(max-width:640px){.g-search{min-width:0;width:100%}.g-actions{width:100%;justify-content:flex-start}}

/* Subíndices Total: bloques por subíndice */
.dim-nav{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 18px}.dim-nav a{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid var(--line);background:var(--surface);border-radius:var(--r);color:var(--ink);font-weight:600;font-size:13px;text-decoration:none}.dim-nav a:hover{border-color:var(--line-strong);background:var(--subtle)}.dim-nav a{border-left:3px solid var(--sc,var(--navy))}.dim-nav .n{font-family:var(--mono);font-size:11px;color:var(--accent-text)}
.dim-section{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);margin-bottom:28px;scroll-margin-top:16px;overflow:hidden}
.dim-head{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;gap:20px;align-items:center;padding:18px 22px;background:var(--subtle);border-bottom:1px solid var(--line);border-left:4px solid var(--sc,var(--navy))}
.dim-num{width:44px;height:44px;border-radius:var(--r);background:var(--sc,var(--navy));color:var(--sc-ink,#fff);font-family:var(--mono);font-weight:700;font-size:15px;display:grid;place-items:center}
.dim-title h2{margin:2px 0 4px;font-family:var(--display);font-size:22px;line-height:28px}.dim-title p{margin:0;color:var(--muted);font-size:13.5px;line-height:19px;max-width:720px}
.dim-meta{display:flex;gap:22px;margin:0}.dim-meta div{display:flex;flex-direction:column;gap:2px}.dim-meta dt{font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.dim-meta dd{margin:0;font-weight:700;font-size:15px;white-space:nowrap}
.dim-link{white-space:nowrap}
.dim-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;padding:16px;align-items:stretch}.dim-grid .card{border-top:1px solid var(--line)}.dim-grid .card h3{margin:0;font-family:var(--display);font-size:16px;line-height:22px}.dim-grid .table-wrap.tall{max-height:560px}.dim-grid .map-plot{flex:1;min-height:260px}.dim-grid .tall-plot{flex:1;min-height:0}.dim-grid .tall-plot svg{width:100%;height:100%}
@media(max-width:1100px){.dim-grid{grid-template-columns:1fr 1fr}.dim-head{grid-template-columns:auto minmax(0,1fr)}.dim-meta,.dim-link{grid-column:2}}
@media(max-width:640px){.dim-grid{grid-template-columns:1fr;padding:12px}.dim-head{padding:14px;gap:12px}.dim-meta{flex-wrap:wrap;gap:12px}.dim-num{width:36px;height:36px;font-size:13px}}

/* rango de años (dos manijas) */
.year-range{display:flex;align-items:center;gap:12px;padding:6px 0 2px}.year-range>.small{min-width:34px;text-align:center;font-variant-numeric:tabular-nums}
.year-range .track{position:relative;flex:1;height:34px}
.year-range .track .rail{position:absolute;left:0;right:0;top:15px;height:4px;border-radius:2px;background:var(--line)}
.year-range .track .fill{position:absolute;top:15px;height:4px;border-radius:2px;background:var(--accent);left:var(--lo,0%);right:calc(100% - var(--hi,100%));transition:left .08s,right .08s}
.year-range .track .ticks{position:absolute;left:0;right:0;top:12px;height:10px;pointer-events:none}.year-range .track .ticks i{position:absolute;top:0;width:1px;height:10px;background:var(--line-strong);transform:translateX(-.5px)}.year-range .track .ticks i.on{background:var(--accent)}
.year-range .track input{position:absolute;left:0;top:0;width:100%;height:34px;margin:0;padding:0;background:transparent;-webkit-appearance:none;appearance:none;pointer-events:none;outline:none}
.year-range .track input::-webkit-slider-runnable-track{background:transparent;height:34px}.year-range .track input::-moz-range-track{background:transparent;height:34px}
.year-range .track input::-webkit-slider-thumb{-webkit-appearance:none;pointer-events:auto;width:18px;height:18px;margin-top:8px;border-radius:50%;background:var(--surface);border:2px solid var(--thumb-ring);box-shadow:0 1px 3px rgba(13,32,48,.25);cursor:grab;transition:transform .12s,box-shadow .12s}
.year-range .track input::-moz-range-thumb{pointer-events:auto;width:14px;height:14px;border-radius:50%;background:var(--surface);border:2px solid var(--thumb-ring);box-shadow:0 1px 3px rgba(13,32,48,.25);cursor:grab}
.year-range .track input:hover::-webkit-slider-thumb,.year-range .track input:active::-webkit-slider-thumb{transform:scale(1.12)}.year-range .track input:active::-webkit-slider-thumb{cursor:grabbing}
.year-range .track input:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 4px rgba(0,142,176,.28),0 1px 3px rgba(13,32,48,.25)}.year-range .track input:focus-visible::-moz-range-thumb{box-shadow:0 0 0 4px rgba(0,142,176,.28)}
.year-range .track .bubble{position:absolute;top:-6px;transform:translate(-50%,-100%);background:var(--navy);color:#fff;font-size:11px;font-weight:700;font-family:var(--mono);padding:2px 6px;border-radius:3px;opacity:0;transition:opacity .12s;pointer-events:none;white-space:nowrap}.year-range .track.dragging .bubble,.year-range .track:focus-within .bubble{opacity:1}

/* panel de información del mapa (Subíndices Total) */
.map-info{border-top:1px solid var(--line);padding-top:10px;height:140px;box-sizing:border-box;overflow:hidden;font-size:13px}.mi-empty{color:var(--muted-2);padding:6px 0}
.mi{display:flex;flex-direction:column;gap:6px}.mi-name{display:flex;align-items:center;gap:8px;font-size:15px;min-height:26px}.mi-name .chip-lite{line-height:16px;padding:2px 6px}.mi-data{display:flex;flex-wrap:wrap;gap:14px 20px;margin:0}.mi-data div{display:flex;flex-direction:column;gap:2px}.mi-data dt{font-size:10.5px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.mi-data dd{margin:0;font-weight:700;font-size:14px}.mi .link-btn{align-self:flex-start;padding-left:0}

/* color de identidad por subíndice (boletas ICE 2026) */
.sdot{display:inline-block;width:10px;height:10px;border-radius:2px;background:var(--sc,var(--navy));margin-right:7px;vertical-align:-1px;flex:none}
.seg button .sdot{width:8px;height:8px;opacity:.75}.seg button[aria-checked=true] .sdot{opacity:1}
.card.sub-accent{border-top:3px solid var(--sc,var(--navy))}

/* ---- Móvil y tacto: objetivos de 44 px, sin zoom de iOS, contenido priorizado ---- */
button,a,select,input,[role=button]{touch-action:manipulation}
.only-mobile{display:none}.if-touch{display:none}
@media(hover:none){.if-hover{display:none}.if-touch{display:inline}}
.unit-inline{display:none}
.to-top{position:fixed;right:16px;bottom:16px;width:44px;height:44px;border-radius:50%;background:var(--navy);color:#fff;display:grid;place-items:center;box-shadow:0 4px 12px -2px rgba(13,32,48,.35);z-index:25;cursor:pointer}.to-top .ms{transform:rotate(-90deg)}
@media(min-width:641px){.to-top{display:none}}
@media(max-width:640px){
  .masthead{padding:16px 0 12px;gap:12px}h1{font-size:26px;line-height:32px}.lead{font-size:15px;line-height:22px;margin-top:6px}
  .masthead-actions{display:flex;gap:8px;width:100%}.masthead-actions .btn{flex:1;justify-content:center;min-height:44px}
  .tabs{margin-top:0}.tablist button{padding:12px 12px;min-height:46px}.theme-btn{width:38px;height:38px}
  .btn{min-height:44px}.btn-sm{min-height:40px;padding:6px 12px}.icon-btn{width:40px;height:40px}.link-btn:not(.inline){min-height:40px;padding:6px 8px}
  select,input[type=search],.combo input{min-height:44px;font-size:16px}.seg button{min-height:40px}.chip{height:34px}.chip button{width:32px;height:32px}
  .rank-table th button{min-height:36px}.rank-table td{padding:8px 10px;font-size:13.5px}.rank-table th{padding:8px 10px}
  .card{padding:14px}.card-head{flex-wrap:wrap}.card-head>div:first-child{flex:1 1 200px;min-width:0}.card-head h2{font-size:16px;line-height:22px}.card-tools{margin-left:auto}.card-tools>.small.muted{display:none}
  .filter-bar{padding:12px 14px;gap:10px}.export-label{display:none}.filter-bar .grow{display:none}
  .kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.kpi{padding:12px 14px;min-width:0}.kpi .v{overflow-wrap:anywhere}.kpi .k{flex-wrap:wrap;gap:6px}.kpi .v{font-size:20px;line-height:24px}.kpi:nth-child(3),.kpi:nth-child(4){grid-column:1/-1}
  .kpis-3{grid-template-columns:repeat(2,minmax(0,1fr))}.met-nav a{min-height:40px;display:inline-flex;align-items:center}.kpis-3 .kpi:nth-child(3){grid-column:1/-1}
  .map-plot{min-height:300px}.plot{min-height:0}#expanded-body .plot{min-height:300px}.g-view .map-plot{height:clamp(280px,60vh,480px)}
  .year-range .track input::-webkit-slider-thumb{width:24px;height:24px;margin-top:5px}.year-range .track input::-moz-range-thumb{width:24px;height:24px}
  .col-unidad{display:none}.unit-inline{display:block;color:var(--muted);font-size:12px;line-height:16px;margin-top:2px;font-weight:400}
  .table-wrap.collapsed tbody tr:nth-child(n+11){display:none}.only-mobile{display:inline-flex}.ver-todas{align-self:flex-start;margin-top:6px}
  .dim-grid .table-wrap.tall{max-height:none}.dim-grid .map-plot{min-height:260px}.map-info{height:auto;min-height:120px}
  dialog{width:96vw;max-height:94vh;padding:14px 14px}
  .g-foot{gap:8px}.g-actions{flex-wrap:wrap}.g-actions .btn{flex:1 1 auto;justify-content:center}
  .footer{padding-block:20px 28px}
  .sub-cards{gap:12px}.sub-card h3{font-size:16px}
}
@media(max-width:400px){.wrap{padding:0 12px}.tabs{margin-left:-12px;margin-right:-12px;padding-left:12px;padding-right:12px}.tablist button{padding:12px 10px;font-size:13px}}

/* Subíndices Total en móvil: secciones plegables para no apilar seis bloques de 2 000 px */
.dim-toggle{display:none}
@media(max-width:640px){
  .dim-head{grid-template-columns:auto minmax(0,1fr)}.dim-toggle{display:inline-flex;grid-column:2;justify-self:start}
  .dim-section.plegada .dim-grid{display:none}.dim-section.plegada .dim-meta,.dim-section.plegada .dim-link{display:none}
  .dim-section.plegada .dim-head{border-bottom:0}
}

/* icono por subíndice */
.sicon{color:var(--sc,var(--navy));font-size:18px;margin-right:6px;vertical-align:-4px}
.seg button .sicon{font-size:16px;margin-right:4px;vertical-align:-3px}
.rank-table td .sicon{font-size:16px;vertical-align:-3px}
.dim-num .ms,.sub-card .n .ms,.section-heading .sub-num .ms{color:inherit;font-size:22px;vertical-align:0}
.sub-card .n .ms{font-size:18px}.section-heading .sub-num .ms{font-size:16px;font-family:"Material Symbols Outlined"}
.card-head h2 .sicon{color:var(--sc)}

/* Dentro de un iframe (clase añadida por JS): sin cabecera ni pie propios, sin barra de scroll visible, pestañas no pegajosas */
html.in-iframe{scrollbar-width:none;-ms-overflow-style:none}html.in-iframe::-webkit-scrollbar{display:none}
html.in-iframe .topbar,html.in-iframe .footer,html.in-iframe .to-top{display:none!important}
html.in-iframe .tabs{position:static;margin-top:0}html.in-iframe .masthead{padding-top:20px}

/* guía de la gráfica de evolución */
.bump-tip{position:absolute;z-index:3;pointer-events:none;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r);box-shadow:var(--shadow);padding:8px 10px;font-size:12px;line-height:18px;min-width:170px}
.bump-tip>b{display:block;font-family:var(--display);font-size:13px;margin-bottom:4px}
.bt-row{display:flex;align-items:center;gap:6px;color:var(--muted)}.bt-row i{width:10px;height:3px;border-radius:2px;flex:none}.bt-row span{flex:1;white-space:nowrap}.bt-row b{font-family:var(--mono);font-size:12px;color:var(--ink)}
.bt-row.on{color:var(--ink);font-weight:600}.bt-row.on i{height:5px}
.bump-guide{pointer-events:none}

/* Por Entidad: vista de barras */
#panel-entidad .filter-bar .field{flex:0 1 auto}#ent-views button .ms{font-size:16px;margin-right:4px;vertical-align:-3px}

/* Por Entidad: iconos y animaciones */
#panel-entidad .kpi .k .ms{color:var(--accent-text);font-size:18px}
#panel-entidad .filter-bar{align-items:flex-end}#ent-boleta{align-self:flex-end;text-decoration:none}
#panel-entidad .bar i{transition:width .8s cubic-bezier(.2,.7,.2,1)}
@media (prefers-reduced-motion: no-preference){
  #panel-entidad .anim{animation:rise .45s cubic-bezier(.2,.7,.2,1) both;animation-delay:calc(var(--i,0) * 60ms)}
  @keyframes rise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
  #panel-entidad .bar-plot rect{transform-box:fill-box;transform-origin:left center;animation:growx .6s cubic-bezier(.2,.7,.2,1) both;animation-delay:calc(var(--i,0) * 35ms + 150ms)}
  @keyframes growx{from{transform:scaleX(0)}to{transform:scaleX(1)}}
  #panel-entidad .lvl{animation:pop .4s cubic-bezier(.2,.7,.2,1) both;animation-delay:.25s}
  @keyframes pop{from{transform:scale(.85);opacity:0}to{transform:none;opacity:1}}
}
@media(max-width:640px){#ent-boleta{width:100%;justify-content:center}}

/* ---- Tema oscuro (data-theme="dark" lo fija web/theme.js; sin elección guardada sigue prefers-color-scheme) ---- */
html[data-theme=dark]{--navy:#1c3654;--navy-2:#264766;--carbon:#dfe7ee;--ink:#e6edf3;--muted:#b3bec9;--muted-2:#93a1ad;--accent:#2fb5d6;--accent-text:#5fd0ea;--accent-2:#5fd0ea;--canvas:#0f1a24;--subtle:#1c2b38;--surface:#16232e;--line:#26364a;--line-strong:#3a4c60;--green:#4ade80;--red:#f87171;--accent-soft:#12303d;--focus:#5fd0ea;--map-stroke:#0f1a24;--chart-dim:#2c3f52;--chart-dim-text:#5f7184;--thumb-ring:#9ecbf0;--backdrop:rgba(0,0,0,.62);--hint:rgba(0,0,0,.55);--shadow:0 4px 14px -2px rgba(0,0,0,.5)}
html[data-theme=dark] .tag{color:#0f1a24}
html[data-theme=dark] .btn-primary{border:1px solid var(--line-strong)}html[data-theme=dark] .btn-secondary{background:var(--subtle)}html[data-theme=dark] .btn-secondary:hover{background:var(--line)}
html[data-theme=dark] .topbar{border-bottom-color:rgba(255,255,255,.08)}
html[data-theme=dark] .seg button[aria-checked=true]{box-shadow:0 1px 2px rgba(0,0,0,.4),0 0 0 1px var(--line-strong)}
html[data-theme=dark] .load-error{border-left-color:var(--red)}html[data-theme=dark] .card:hover{border-color:var(--line-strong)}
html[data-theme=dark] select:focus,html[data-theme=dark] input:not([type=range]):focus{outline-color:var(--focus)}
