/* Elecciones 29N · Entiende lo que votas — estilos compartidos */
:root{
  --bg:#F7F7F5; --card:#FFFFFF; --ink:#15171A; --ink2:#454B53; --muted:#6B7178;
  --line:#E4E4E0; --line2:#EFEFEB; --soft:#F0F0EC; --shadow:0 1px 2px rgba(0,0,0,.05),0 4px 14px rgba(0,0,0,.06);
  --accent:#2F5BD3; --accent-soft:#E8EEFC;
  --ok:#1E9E5A; --mid:#E0A100; --no:#D7263D; --na:#9AA0A6;
  --psoe:#E30613; --pp:#1D84C4; --vox:#63BE21; --sumar:#E5007D; --podemos:#6B2D7B; --iu:#C0392B;
  --erc:#FFB232; --junts:#00C3B2; --pnv:#008C45; --bildu:#B5CF18; --bng:#76B8E6; --cc:#FFD700;
  --upn:#1F3A93; --salf:#111111; --cs:#EB6109; --masmadrid:#00B6A1; --compromis:#F08C00;
  --r:14px; --gut:16px; --maxw:1100px;
  --font:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  color-scheme:light;
}
@media (prefers-color-scheme: dark) and (min-width: 99999px){
  :root{
    --bg:#121416; --card:#1C1F23; --ink:#ECEDEE; --ink2:#BFC4CA; --muted:#949AA1;
    --line:#2E3238; --line2:#262A2F; --soft:#23272C; --shadow:0 1px 2px rgba(0,0,0,.4),0 4px 14px rgba(0,0,0,.35);
    --accent:#7FA2F5; --accent-soft:#1E2A47; --salf:#E8E8E8;
    color-scheme:dark;
  }
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.5 var(--font);}
img{max-width:100%}
a{color:var(--accent)}
h1,h2,h3,h4{line-height:1.2;margin:0 0 .4em;letter-spacing:-.01em}
h1{font-size:clamp(1.6rem,5vw,2.4rem)}
h2{font-size:clamp(1.3rem,3.6vw,1.7rem);margin-top:0}
h3{font-size:1.1rem}
p{margin:.3em 0 .7em}
.wrap{max-width:var(--maxw);margin:0 auto;padding-inline:var(--gut)}
main{padding-block:16px 40px}
section.blk{margin:28px 0}
.sub{color:var(--muted);font-size:.92rem}
.small{font-size:.85rem}
.muted{color:var(--muted)}
/* ---------- iconos SVG en línea (sustituyen a los emojis) ---------- */
.ic{flex:none;width:19px;height:19px;vertical-align:-4px;margin-right:5px}
h2 .ic,h3 .ic{margin-right:7px;vertical-align:-3px}
.prof button .ic,.chips .chip .ic,[data-piso] .ic{margin-right:6px;vertical-align:-4px}
.card h3 .ic{vertical-align:-4px}
.lio .ic,.bad .ic,.warn .ic{color:var(--no);margin-right:4px;vertical-align:-3px}
.own .ic{margin-right:4px;vertical-align:-3px}
.center{text-align:center}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
[hidden]{display:none!important}

/* ---------- Barra superior ---------- */
.top{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--card) 92%,transparent);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-bottom:1px solid var(--line);padding-top:env(safe-area-inset-top,0px)}
.top .wrap{display:flex;align-items:center;gap:10px;min-height:54px}
.brand{font-weight:800;text-decoration:none;color:var(--ink);display:flex;align-items:center;gap:8px;white-space:nowrap}
.brand .urna{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:8px;background:var(--ink);color:var(--card);font-size:15px}
.brand small{font-weight:600;color:var(--muted)}
.menu-btn{margin-left:auto;display:none;border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:10px;padding:8px 12px;font-size:1.05rem;cursor:pointer}
nav.main{margin-left:auto}
nav.main ul{list-style:none;display:flex;gap:2px;margin:0;padding:0;flex-wrap:wrap}
nav.main a{display:block;padding:8px 10px;border-radius:9px;text-decoration:none;color:var(--ink2);font-weight:600;font-size:.92rem}
nav.main a:hover{background:var(--soft);color:var(--ink)}
nav.main a[aria-current="page"]{background:var(--ink);color:var(--card)}
@media (max-width:900px){
  .menu-btn{display:block}
  nav.main{position:absolute;left:0;right:0;top:100%;background:var(--card);border-bottom:1px solid var(--line);box-shadow:var(--shadow);display:none;margin:0}
  nav.main.open{display:block}
  nav.main ul{flex-direction:column;padding:8px var(--gut) 14px}
  nav.main a{padding:12px 10px;font-size:1rem}
}

/* ---------- Cabecera de página ---------- */
.hero{padding:22px 0 6px}
.hero .kicker{display:inline-block;font-weight:700;font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:6px}
.hero p.lead{font-size:1.08rem;color:var(--ink2);max-width:60ch}

/* ---------- Tarjetas y rejillas ---------- */
.card{background:var(--card);border-radius:var(--r);box-shadow:var(--shadow);padding:16px;border:1px solid var(--line2)}
.grid{display:grid;gap:14px}
.g2{grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr))}
.g3{grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr))}
.g4{grid-template-columns:repeat(auto-fit,minmax(min(100%,150px),1fr))}
.tile .big{font-size:2.1rem;font-weight:800;line-height:1.05}
.tile .lbl{color:var(--muted);font-size:.9rem}
.pill{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:3px 10px;font-size:.8rem;font-weight:700;background:var(--soft);color:var(--ink2);white-space:nowrap}
.warn{display:inline-block;font-size:.75rem;font-weight:700;color:#7A4B00;background:#FFF1CC;border:1px solid #F2D27A;border-radius:6px;padding:0 6px;margin-left:4px;white-space:normal}
@media (prefers-color-scheme: dark) and (min-width: 99999px){.warn{color:#FFD98A;background:#3A2C08;border-color:#6B5212}}
.note{border-left:4px solid var(--mid);background:var(--card);padding:10px 14px;border-radius:0 10px 10px 0;font-size:.92rem;color:var(--ink2)}
.navcards a{text-decoration:none;color:var(--ink);display:block;height:100%}
.navcards .card{height:100%;transition:transform .15s}
.navcards a:hover .card{transform:translateY(-2px)}
.navcards .ico{font-size:1.6rem}
.navcards .ico .ic{width:26px;height:26px;margin:0 0 6px;display:block}

/* ---------- Fuentes en línea ---------- */
a.src{font-size:.72em;font-weight:700;text-decoration:none;color:var(--accent);vertical-align:super;line-height:0;padding:0 1px;white-space:nowrap}
a.src:hover{text-decoration:underline}
.srcs{white-space:nowrap}

/* ---------- Cuenta atrás ---------- */
.count{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:10px 0 4px;max-width:420px}
.count div{background:var(--card);color:var(--ink);border-radius:12px;padding:8px 4px;text-align:center}
.count b{display:block;font-size:1.8rem;line-height:1;font-variant-numeric:tabular-nums}
.count span{font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;opacity:.8}

/* ---------- Viñetas cómo funciona ---------- */
.how .card{display:block}
.how .n{display:block;font-size:1.6rem;font-weight:800;color:var(--ink);line-height:1.1;margin-bottom:4px}
.how p{margin:0}

/* ---------- Pestañas / chips ---------- */
.chips{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0 14px}
.chip{border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:999px;padding:8px 14px;font:600 .9rem var(--font);cursor:pointer;display:inline-flex;align-items:center;gap:6px}
.chip[aria-pressed="true"],.chip[aria-selected="true"]{background:var(--ink);color:var(--card);border-color:var(--ink)}
.chip .dot{width:10px;height:10px;border-radius:50%;display:inline-block}
.subnav{position:sticky;top:55px;z-index:20;background:var(--bg);padding:8px 0;margin:0 0 6px;overflow-x:auto;white-space:nowrap;border-bottom:1px solid var(--line)}
.subnav a{display:inline-block;padding:6px 10px;margin-right:4px;border-radius:999px;background:var(--card);border:1px solid var(--line);color:var(--ink2);font-size:.85rem;font-weight:600;text-decoration:none}

/* ---------- Avatares ---------- */
.av{width:96px;height:96px;border-radius:50%;object-fit:cover;border:4px solid var(--pc,#999);background:var(--soft);flex:none;display:block}
.av.sm{width:56px;height:56px;border-width:3px}
.av.xs{width:40px;height:40px;border-width:2px}
.avtxt{display:grid;place-items:center;color:#fff;font-weight:800;font-size:1.4rem;background:var(--pc,#999)}
.av.sm.avtxt{font-size:1rem}
.logo{height:34px;width:auto;max-width:120px;object-fit:contain;display:block}
.logobox{display:flex;align-items:center;justify-content:center;height:44px;padding:4px 8px;background:#fff;border-radius:10px;border:1px solid var(--line)}
.logotxt{font-weight:900;color:var(--pc);font-size:1.15rem;letter-spacing:-.02em}

/* ---------- Partidos (tarjetas) ---------- */
.pcard{position:relative;overflow:hidden;padding-top:20px}
.pcard::before{content:"";position:absolute;inset:0 0 auto 0;height:6px;background:var(--pc)}
.pcard .head{display:flex;gap:12px;align-items:center;margin-bottom:8px}
.pcard h3{margin:0}
.seats{display:flex;align-items:baseline;gap:8px;font-weight:800;font-size:1.3rem;margin:6px 0}
.seats .arr{color:var(--muted);font-weight:400}
.seats small{font-size:.75rem;color:var(--muted);font-weight:600}
.eje{margin:10px 0 4px}
.eje .bar{position:relative;height:10px;border-radius:5px;background:linear-gradient(90deg,#d9534f33,#99999922 50%,#1D84C433);border:1px solid var(--line)}
.eje .mk{position:absolute;top:50%;width:18px;height:18px;border-radius:50%;background:var(--pc);border:3px solid var(--card);transform:translate(-50%,-50%);box-shadow:0 0 0 1px var(--line)}
.eje .ends{display:flex;justify-content:space-between;font-size:.72rem;color:var(--muted);margin-top:3px}

/* ---------- Fichas ---------- */
.ficha-top{display:flex;gap:16px;align-items:center;flex-wrap:wrap}
.ficha-top .who{flex:1;min-width:200px}
.sec{margin:26px 0}
.sec > h2{display:flex;align-items:center;gap:8px}
.sec > h2 .tag{font-size:.75rem;font-weight:700;background:var(--soft);border-radius:6px;padding:2px 7px;color:var(--muted)}
ul.clean{list-style:none;margin:0;padding:0}
ul.bul{margin:0;padding-left:1.1em}
ul.bul li{margin:.25em 0}
.prom li{display:flex;gap:10px;align-items:flex-start;padding:10px 0;border-bottom:1px solid var(--line2)}
.prom li:last-child{border-bottom:0}
.sem{flex:none;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font-size:.95rem;color:#fff;font-weight:800}
.sem.ok{background:var(--ok)} .sem.mid{background:var(--mid)} .sem.no{background:var(--no)} .sem.na{background:var(--na)}
.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:.85rem;color:var(--ink2);margin:6px 0 10px}
.legend span{display:inline-flex;align-items:center;gap:6px}
.legend i{display:inline-block;width:14px;height:14px;border-radius:4px}
.gov .card h3{display:flex;justify-content:space-between;gap:8px;align-items:baseline;flex-wrap:wrap}
.gov .who2{font-size:.85rem;color:var(--muted);font-weight:600}
.gov .dato{margin:6px 0;padding-left:10px;border-left:3px solid var(--line)}
.gov .lio{margin:6px 0;padding-left:10px;border-left:3px solid var(--no)}
.estado{display:inline-block;font-size:.72rem;font-weight:800;border-radius:6px;padding:2px 7px;color:#fff;white-space:nowrap;text-transform:uppercase;letter-spacing:.03em}
.est-firme{background:var(--no)} .est-primera{background:#B5452F} .est-juicio{background:var(--mid);color:#2a1d00} .est-instruccion{background:#6E7A8A} .est-archivado{background:var(--ok)} .est-sancion{background:#8E5BC4}
.lios .card{padding:12px 14px}
.lios h4{margin:0 0 4px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.benef{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr));gap:10px}
.benef .card{padding:12px;display:flex;gap:10px;align-items:flex-start}
.benef-ic .ic{width:26px;height:26px;margin-right:0}
.benef .v{font-size:1.25rem;margin-left:auto;flex:none}
.benef h4{margin:0;font-size:.95rem}
.benef p{margin:2px 0 0;font-size:.88rem;color:var(--ink2)}
.proscons{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media (max-width:640px){.proscons{grid-template-columns:1fr}}
.proscons h3{display:flex;gap:6px;align-items:center}
.proscons li{margin:.45em 0}
.pros h3{color:var(--ok)} .cons h3{color:var(--no)}

/* ---------- Tablas ---------- */
.tscroll{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:var(--r);border:1px solid var(--line);background:var(--card)}
table{border-collapse:collapse;width:100%;font-size:.9rem}
th,td{padding:8px 10px;text-align:left;border-bottom:1px solid var(--line2);vertical-align:top}
th{font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);background:var(--card)}
td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}
.sticky1 th:first-child,.sticky1 td:first-child{position:sticky;left:0;background:var(--card);z-index:1}
.vt td.v{white-space:nowrap;font-weight:700}

/* ---------- Matriz congreso ---------- */
.matrix{border-collapse:separate;border-spacing:0;font-size:.85rem;min-width:640px}
.matrix th{position:sticky;top:0;z-index:2;background:var(--card);text-align:center;padding:8px 4px;font-size:.72rem}
.matrix th:first-child{z-index:3;left:0;text-align:left}
.matrix td{border-bottom:1px solid var(--line2);padding:4px;text-align:center}
.matrix td.law{position:sticky;left:0;background:var(--card);z-index:1;text-align:left;min-width:150px;max-width:240px;padding:8px 10px;cursor:pointer}
.matrix td.law b{display:block;font-size:.86rem}
.matrix td.law span{font-size:.75rem;color:var(--muted)}
.matrix tr.row:hover td.law,.matrix tr.row.open td.law{background:var(--soft)}
.cell{display:grid;place-items:center;width:38px;height:30px;margin:0 auto;border-radius:7px;font-weight:800;font-size:.78rem;color:#fff}
.c-S{background:var(--ok)} .c-N{background:var(--no)} .c-A{background:var(--na)}
.c-Q{background:repeating-linear-gradient(45deg,var(--soft) 0 4px,var(--line) 4px 8px);color:var(--ink2)}
.c-P{background:repeating-linear-gradient(45deg,#1E9E5A55 0 4px,var(--soft) 4px 8px);color:var(--ink)}
.c-X{background:transparent;color:var(--muted);font-weight:600}
.c-U{background:transparent;color:var(--muted);font-weight:600;font-size:.68rem}
.matrix tr.det td{background:var(--soft);text-align:left;padding:12px 14px;font-size:.9rem}
.matrix tr.det td > div{max-width:720px}
.mx-legend .cell{width:30px;height:22px;display:inline-grid;margin:0}

/* ---------- Dijeron / votaron ---------- */
.dv .card{display:flex;flex-direction:column;gap:8px}
.dv .q{font-style:italic;color:var(--ink2)}
.dv .arrow{font-weight:800;color:var(--muted);font-size:.8rem;text-transform:uppercase;letter-spacing:.05em}
.dv .party{display:flex;align-items:center;gap:8px;font-weight:800}
.dv .party i{width:12px;height:12px;border-radius:50%;background:var(--pc)}

/* ---------- Línea de tiempo ---------- */
.tl-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;padding:6px 0 12px;scroll-snap-type:x proximity}
.tl{position:relative;height:178px;min-width:1500px}
.tl .band{position:absolute;top:70px;height:30px;border-radius:8px;display:flex;align-items:center;padding:0 10px;font-weight:800;color:#fff;font-size:.85rem;white-space:nowrap;overflow:hidden}
.tl .yr{position:absolute;top:104px;font-size:.72rem;color:var(--muted);transform:translateX(-50%)}
.tl .ev{position:absolute;width:22px;height:22px;border-radius:50%;border:3px solid var(--card);box-shadow:0 0 0 1px var(--line);cursor:pointer;transform:translate(-50%,0);padding:0;background:var(--ink)}
.tl .ev:focus-visible,.tl .ev.sel{outline:3px solid var(--accent);outline-offset:2px}
.tl-info{min-height:96px}
.tl-info h3{margin:0 0 4px}

/* ---------- Gráficos ---------- */
.chart{width:100%;height:auto;display:block;overflow:visible}
.chart text{fill:var(--ink2);font:12px var(--font)}
.chart .lbl{fill:var(--ink);font-weight:700}
.chart .axis{stroke:var(--line);stroke-width:1}
.chart .grid{stroke:var(--line2);stroke-width:1}
.chart .ref{stroke:var(--ink);stroke-width:1.5;stroke-dasharray:4 3}
.chart .hit{fill:transparent;cursor:pointer}
.chart .bar:hover,.chart .bar:focus{opacity:.8}
.chart .xh{stroke:var(--ink);stroke-width:1;opacity:.45}
.chart-card .tools{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}
details.tbl summary{cursor:pointer;color:var(--accent);font-size:.85rem;font-weight:600;margin-top:8px}
details summary{cursor:pointer}
details.more summary{color:var(--accent);font-weight:700;padding:6px 0}
.tip{position:fixed;z-index:100;pointer-events:none;background:var(--ink);color:var(--card);padding:8px 10px;border-radius:9px;font-size:.82rem;max-width:260px;box-shadow:var(--shadow);line-height:1.35}
.tip b{font-size:1rem}
.tip .k{display:inline-block;width:12px;height:3px;border-radius:2px;margin-right:6px;vertical-align:middle}

/* ---------- Bloques (escaños) ---------- */
.stack{display:flex;height:34px;border-radius:8px;overflow:hidden;gap:2px;background:var(--card)}
.stack > div{display:flex;align-items:center;justify-content:center;color:#fff;font-weight:800;font-size:.8rem;min-width:0;white-space:nowrap;overflow:hidden}
.blocks .row{margin:10px 0}
.blocks .row .t{display:flex;justify-content:space-between;font-weight:700;font-size:.9rem;margin-bottom:4px;gap:8px}

/* ---------- Calendario ---------- */
.cal{position:relative;padding-left:22px}
.cal::before{content:"";position:absolute;left:7px;top:6px;bottom:6px;width:2px;background:var(--line)}
.cal li{position:relative;margin:0 0 12px;list-style:none}
.cal li::before{content:"";position:absolute;left:-20px;top:5px;width:12px;height:12px;border-radius:50%;background:var(--card);border:3px solid var(--ink)}
.cal li.key::before{background:var(--no);border-color:var(--no)}
.cal .d{font-weight:800;margin-right:6px}

/* ---------- Pasos ---------- */
.steps{counter-reset:s;display:grid;gap:10px}
.steps .card{display:flex;gap:12px;align-items:flex-start}
.steps .card::before{counter-increment:s;content:counter(s);flex:none;width:32px;height:32px;border-radius:50%;background:var(--ink);color:var(--card);display:grid;place-items:center;font-weight:800}
.steps p{margin:0}

/* ---------- Para mí ---------- */
.prof{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,150px),1fr));gap:10px;margin:10px 0 16px}
.prof button{border:2px solid var(--line);background:var(--card);border-radius:14px;padding:12px;text-align:left;cursor:pointer;color:var(--ink);font:600 .92rem var(--font);display:flex;gap:8px;align-items:center}
.prof button span{font-size:1.5rem}
.prof button[aria-pressed="true"]{border-color:var(--ink);box-shadow:0 0 0 2px var(--ink) inset}
.give .card{border-top:6px solid var(--pc)}
.give h3{display:flex;align-items:center;gap:8px}
.give .da,.give .quita{margin:6px 0;padding-left:28px;position:relative;font-size:.92rem}
.give .da::before{content:"👍";position:absolute;left:0}
.give .quita::before{content:"👎";position:absolute;left:0}
.give .neutro{margin:6px 0;padding-left:28px;position:relative;font-size:.92rem;color:var(--ink2)}
.give .neutro::before{content:"➖";position:absolute;left:0}

/* ---------- Medios ---------- */
.lanes{display:grid;grid-template-columns:repeat(5,minmax(150px,1fr));gap:8px;min-width:820px}
.lane h4{font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:0 0 6px;text-align:center}
.lane .mc{margin-bottom:8px}
.mc{background:var(--card);border:1px solid var(--line2);border-radius:12px;padding:10px;box-shadow:var(--shadow);font-size:.85rem}
.mc b.n{display:block;font-size:.98rem;font-weight:800;margin-bottom:2px}
.mc .own{color:var(--muted);font-size:.78rem}
.mc .bad{color:var(--no);font-weight:700;font-size:.8rem;margin-top:4px}
.axis-head{display:grid;grid-template-columns:repeat(5,minmax(150px,1fr));gap:8px;min-width:820px;margin-bottom:6px}
.axis-head div{text-align:center;font-weight:800;font-size:.8rem;padding:6px;border-radius:8px;color:#fff}
.rules{counter-reset:r}
.rules .card{position:relative;padding-left:58px}
.rules .card::before{counter-increment:r;content:counter(r);position:absolute;left:16px;top:14px;width:30px;height:30px;border-radius:50%;background:var(--ok);color:#fff;display:grid;place-items:center;font-weight:800}

/* ---------- Pie ---------- */
.next{display:flex;justify-content:flex-end;margin:30px 0 10px}
.next a{display:inline-flex;align-items:center;gap:10px;background:var(--ink);color:var(--card);text-decoration:none;font-weight:800;border-radius:12px;padding:14px 18px}
footer.foot{border-top:1px solid var(--line);padding:18px 0 calc(28px + env(safe-area-inset-bottom,0px));color:var(--muted);font-size:.85rem}
.up{position:fixed;right:16px;bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:40;width:46px;height:46px;border-radius:50%;border:0;background:var(--ink);color:var(--card);font-size:1.3rem;box-shadow:var(--shadow);cursor:pointer;opacity:0;pointer-events:none;transition:opacity .2s}
.up.show{opacity:1;pointer-events:auto}
.fuentes-list li{margin:.3em 0;word-break:break-word;overflow-wrap:anywhere}
.fuentes-list a{font-size:.88rem;overflow-wrap:anywhere;word-break:break-word}
.fuentes-list .muted{overflow-wrap:anywhere;word-break:break-word}
.src-search{position:relative;display:flex;align-items:center;gap:8px;background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:10px 14px;margin-bottom:16px}
.src-search .ic{flex:none;margin-right:0;color:var(--muted)}
.src-search input{flex:1;min-width:0;border:0;background:transparent;font-size:1rem;padding:6px 0;color:var(--ink)}
.src-search input:focus{outline:none}
.src-search #src-count{margin:0;flex:none}
.src-group{background:var(--card);border:1px solid var(--line2);border-radius:var(--r);padding:4px 16px 14px;margin:12px 0}
.src-group summary{list-style:none;display:flex;align-items:center;gap:8px;padding:14px 0;font-weight:800;font-size:1.05rem;color:var(--ink)}
.src-group summary::-webkit-details-marker{display:none}
.src-group summary::before{content:'▸';display:inline-block;color:var(--muted);transition:transform .15s;flex:none}
.src-group[open] summary::before{transform:rotate(90deg)}
.src-group .tag{font-size:.75rem;font-weight:700;background:var(--soft);border-radius:6px;padding:2px 7px;color:var(--muted)}
.more-btn{border:1px solid var(--line);background:var(--soft)}
@media (max-width:480px){.src-search{padding:8px 12px}}
@media print{.top,.up,.next{display:none}}
@media (max-width:640px){
  .vt table,.vt tbody,.vt tr,.vt td{display:block}
  .vt thead{display:none}
  .vt tr{display:grid;grid-template-columns:1fr auto;column-gap:10px;row-gap:3px;padding:10px 12px;border-bottom:1px solid var(--line2)}
  .vt td{border:0;padding:0;position:static!important}
  .vt td:nth-child(1){grid-column:1;grid-row:1;color:var(--muted)}
  .vt td:nth-child(2){grid-column:1;grid-row:2}
  .vt td:nth-child(3){grid-column:2;grid-row:1 / span 2;align-self:center}
  .vt td:nth-child(4){grid-column:1 / -1;grid-row:3;font-size:.9rem}
  .vt td:nth-child(5){grid-column:1 / -1;grid-row:4;color:var(--muted)}
}
.logobox{width:110px;flex:none}
.logo{width:100%;height:34px;max-width:none}
.seats{flex-wrap:wrap}
.seats span{white-space:nowrap}
.pcard .seats small{flex-basis:100%;order:5}
img.av{color:transparent;font-size:0}
.pcard .head{flex-wrap:wrap}
.pcard .head > div:last-child{margin-left:auto}
.pcard .head > div[style*="margin-left:auto"]{margin-left:0!important;flex-basis:100%;order:-1}

/* ---------- v0.2 · Portada: cuenta atrás a pantalla completa ---------- */
.cd-hero{margin:0 0 8px}
.cd-in{min-height:calc(100vh - 54px - 32px - env(safe-area-inset-top,0px));min-height:calc(100svh - 54px - 32px - env(safe-area-inset-top,0px));display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:6px;background:var(--ink);color:var(--card);border-radius:var(--r);padding:28px 22px;box-shadow:var(--shadow)}
.cd-kicker{font-weight:700;font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;opacity:.8}
.cd-days{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;line-height:.9}
.cd-days b{font-size:clamp(6.5rem,30vw,12.5rem);font-weight:900;letter-spacing:-.04em;font-variant-numeric:tabular-nums;line-height:.9}
.cd-days span{font-size:clamp(1.4rem,5vw,2.4rem);font-weight:800;opacity:.85}
.cd-in[data-st="hoy"] .cd-days b,.cd-in[data-st="despues"] .cd-days b{font-size:clamp(5rem,22vw,10rem)}
.cd-hms{display:flex;align-items:baseline;gap:6px;font-variant-numeric:tabular-nums;margin:2px 0 6px}
.cd-hms b{font-size:clamp(1.9rem,7vw,3rem);font-weight:800}
.cd-hms i{font-style:normal;font-size:.8rem;font-weight:700;opacity:.7;margin-left:3px;text-transform:uppercase}
.cd-hms .sep{font-size:1.6rem;opacity:.5}
.cd-in h1{font-size:clamp(1.5rem,5.4vw,2.6rem);margin:8px 0 2px;max-width:22ch}
.cd-frase{font-size:1.05rem;opacity:.85;margin:0 0 14px;max-width:52ch}
.cd-btns{display:flex;flex-wrap:wrap;gap:10px;width:100%}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:50px;padding:12px 20px;border-radius:12px;font-weight:800;font-size:1.02rem;text-decoration:none;border:2px solid currentColor;color:inherit;background:transparent}
.btn.pri{background:var(--card);color:var(--ink);border-color:var(--card)}
.btn:hover{filter:brightness(1.08)}
@media (max-width:480px){.cd-btns .btn{flex:1 1 100%}.cd-in{padding:22px 18px}}

/* ---------- v0.2 · Encuesta anónima ---------- */
.enc h2{margin-bottom:4px}
.enc-ops{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,150px),1fr));gap:8px;margin-top:12px}
.enc-op{display:flex;align-items:center;gap:10px;min-height:54px;padding:8px 12px;border:2px solid var(--line);border-left:8px solid var(--pc);border-radius:12px;background:var(--card);color:var(--ink);font:700 1rem var(--font);text-align:left;cursor:pointer;transition:transform .15s,opacity .2s,box-shadow .15s}
.enc-op:hover{box-shadow:0 0 0 2px var(--pc) inset}
.enc-op:active{transform:scale(.97)}
.enc-op:disabled{cursor:default}
.enc-op.dim{opacity:.35}
.enc-op.voting{animation:encPulse .45s ease-out;box-shadow:0 0 0 3px var(--pc) inset}
@keyframes encPulse{0%{transform:scale(1)}40%{transform:scale(1.06)}100%{transform:scale(1)}}
.enc-logo{flex:none;display:flex;align-items:center;justify-content:center;width:44px;height:30px;background:#fff;border-radius:7px;padding:2px 4px}
.enc-logo img{max-height:24px;max-width:38px;object-fit:contain;display:block}
.enc-dot{display:inline-block;flex:none;width:14px;height:14px;border-radius:50%;background:var(--pc,var(--na));margin-right:6px;vertical-align:-1px}
.enc-link{background:none;border:0;padding:4px 0;color:var(--accent);font:600 .9rem var(--font);text-decoration:underline;cursor:pointer}
.enc-msg{font-weight:700;margin:4px 0 10px}
.enc-row{margin:0 0 10px}
.enc-lab{display:flex;justify-content:space-between;gap:10px;font-size:.92rem;margin-bottom:3px}
.enc-track{height:14px;background:var(--soft);border-radius:7px;overflow:hidden}
.enc-bar{height:100%;width:0;background:var(--pc);border-radius:7px;transition:width .7s cubic-bezier(.2,.8,.2,1)}
@media (prefers-reduced-motion:reduce){.enc-op.voting{animation:none}.enc-bar{transition:none}}

/* ---------- v0.2 · Calculadora "Pon tus números" ---------- */
.calc .card{border-top:5px solid var(--accent)}
.calc-in{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));gap:12px;margin:12px 0}
.calc-in label{display:flex;flex-direction:column;gap:6px;font-weight:700;font-size:.92rem}
.calc-in input[type=text]{font:600 1.15rem var(--font);padding:12px;border:2px solid var(--line);border-radius:10px;background:var(--bg);color:var(--ink);width:100%;min-height:50px}
.calc-in input[type=text]:focus{outline:none;border-color:var(--accent)}
.calc-in fieldset{border:0;padding:0;margin:0;min-width:0}
.calc-in legend{font-weight:700;font-size:.92rem;padding:0;margin-bottom:6px}
.seg{display:flex;gap:8px}
.seg label{flex:1;flex-direction:row}
.seg input{position:absolute;opacity:0;width:1px;height:1px}
.seg span{flex:1;display:flex;align-items:center;justify-content:center;min-height:50px;border:2px solid var(--line);border-radius:10px;font-size:1.1rem;cursor:pointer;background:var(--bg)}
.seg input:checked+span{background:var(--ink);color:var(--card);border-color:var(--ink)}
.seg input:focus-visible+span{outline:3px solid var(--accent);outline-offset:2px}
.calc-who{margin:4px 0 10px}
.calc-tiles .tile{background:var(--soft);border-radius:12px;padding:12px}
.calc-tiles .tile .big{font-size:1.7rem}
.calc-alq{border-left:5px solid var(--na);background:var(--soft);padding:10px 12px;border-radius:0 10px 10px 0;margin:12px 0}
.calc-alq.calc-ok{border-color:var(--ok)}.calc-alq.calc-mid{border-color:var(--mid)}.calc-alq.calc-no{border-color:var(--no)}

/* ---------- v0.2 · Pie ---------- */
.foot-note{margin:0 0 18px}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:26px 20px;margin-bottom:20px}
.foot-col h3{font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;color:var(--ink2);margin:0 0 10px;font-weight:800}
.foot-col ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px}
.foot-col a{color:var(--muted);text-decoration:none}
.foot-col a:hover,.foot-col a:focus-visible{color:var(--ink);text-decoration:underline}
.foot-brand-name{font-weight:800;color:var(--ink);font-size:1.05rem;margin:0 0 4px}
.foot-tag{font-weight:600;color:var(--ink2);margin:0 0 8px;font-size:.92rem}
.foot-bottom{border-top:1px solid var(--line2);padding-top:14px;margin:0}
.foot-bottom a{color:var(--muted);text-decoration:underline}
@media (max-width:640px){.foot-grid{grid-template-columns:1fr;gap:22px}}
.enc-sec,#como,#tus-numeros{scroll-margin-top:66px}

/* ---------- F1 · Héroe aún más suave (6-oct noche): tope de tamaños, tarjeta ligera, botón sin bloque negro ---------- */
.cd-in{min-height:0;background:var(--card);color:var(--ink);padding:20px 18px;gap:4px;border:1px solid var(--line);box-shadow:none}
.cd-days b{font-size:clamp(2.6rem,9vw,4.5rem);font-weight:800}
.cd-days span{font-size:clamp(.95rem,3vw,1.3rem);opacity:.65}
.cd-in[data-st="hoy"] .cd-days b,.cd-in[data-st="despues"] .cd-days b{font-size:clamp(2.2rem,8vw,3.8rem)}
.cd-hms{opacity:.7;margin:0 0 4px}
.cd-hms b{font-size:clamp(.95rem,3vw,1.25rem);font-weight:700}
.cd-hms i{font-size:.68rem}
.cd-hms .sep{font-size:1.05rem}
.cd-in h1{font-size:clamp(1.2rem,4vw,1.7rem)}
.cd-frase{opacity:.72}
.cd-kicker{opacity:.62}
.btn.pri{background:var(--ink2);color:#fff;border-color:var(--ink2)}
.btn.pri:hover{filter:brightness(1.15)}

/* ---------- Pie profesional (6-oct noche) ---------- */
footer.foot{margin-top:48px;border-top:1px solid var(--line);background:#EFEFEB;color:var(--muted);font-size:.9rem;padding:40px 0 calc(24px + env(safe-area-inset-bottom,0px))}
footer.foot .foot-note{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px 16px;margin:0 0 32px;color:var(--ink2);font-size:.88rem}
footer.foot .foot-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:32px 28px;margin:0 0 32px}
footer.foot .foot-brand-name{display:flex;align-items:center;gap:10px;font-weight:800;color:var(--ink);font-size:1.15rem;margin:0 0 6px}
footer.foot .foot-brand-name::before{content:"";width:26px;height:26px;border-radius:7px;background:var(--ink) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath d='M9.5 16.8 L13.6 21 L22.8 11.2' fill='none' stroke='%23fff' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/100% no-repeat;flex:none}
footer.foot .foot-tag{font-weight:700;color:var(--ink2);margin:0 0 10px;font-size:.95rem}
footer.foot .foot-brand .small{max-width:32ch;line-height:1.5}
footer.foot .foot-col h3{font-size:.74rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink);margin:4px 0 14px;font-weight:800}
footer.foot .foot-col ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
footer.foot .foot-col li{margin:0}
footer.foot .foot-col a{color:var(--ink2);text-decoration:none;font-weight:500}
footer.foot .foot-col a:hover,footer.foot .foot-col a:focus-visible{color:var(--ink);text-decoration:underline;text-underline-offset:3px}
footer.foot .foot-bottom{border-top:1px solid #DDDDD7;padding-top:18px;margin:0;font-size:.8rem;line-height:1.6;color:var(--muted)}
footer.foot .foot-bottom a{color:var(--muted)}
@media (max-width:760px){footer.foot .foot-grid{grid-template-columns:1fr 1fr;gap:28px 20px}footer.foot .foot-brand{grid-column:1/-1}}
