/* Portal Electoral · portada y páginas estáticas · tokens del manual de estilo */
:root{--bg:#F7F8F9;--surface:#FFFFFF;--fg:#1F2327;--muted:#5B636B;--line:#D5D9DD;--soft:#EEF0F2;--accent:#3D6B8E;--accent-d:#2F5572;--brand:#1F2327;--on-brand:#FFFFFF;--hd1:#1F2327;--hd2:#2F353B;--hd3:#5B636B;--ok:#1d7a3c;--err:#c0262d;
  --psoe:#e30613;--pp:#1d6fd0;--vox:#4fa82b;--sumar:#e4007c;--up:#6e3a8c;--aa:#0f9d8a;--cs:#eb6a0a;
  --f-display:"Inter Tight","Inter",system-ui,-apple-system,"Segoe UI",Arial,sans-serif;--f-body:"Inter",system-ui,-apple-system,"Segoe UI",Arial,sans-serif;--shadow:0 1px 2px rgba(31,35,39,.04),0 6px 18px rgba(31,35,39,.05)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--bg:#141618;--surface:#1C1F23;--fg:#ECEEF0;--muted:#A3A9B0;--line:#2E3338;--soft:#23272C;--accent:#7FA3C0;--accent-d:#A9C3D8;--brand:#ECEEF0;--on-brand:#1F2327;--hd1:#0F1113;--hd2:#1C1F23;--hd3:#2F353B;color-scheme:dark}}
:root[data-theme="dark"]{--bg:#141618;--surface:#1C1F23;--fg:#ECEEF0;--muted:#A3A9B0;--line:#2E3338;--soft:#23272C;--accent:#7FA3C0;--accent-d:#A9C3D8;--brand:#ECEEF0;--on-brand:#1F2327;--hd1:#0F1113;--hd2:#1C1F23;--hd3:#2F353B;color-scheme:dark}
*{box-sizing:border-box} html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--f-body);font-size:15px;line-height:1.5;padding:12px max(16px,env(safe-area-inset-right)) 32px max(16px,env(safe-area-inset-left))}
.wrap{max-width:1280px;margin:0 auto;display:flex;flex-direction:column;gap:18px}
a{color:var(--fg)} h1,h2,h3,h4{font-family:var(--f-display);font-weight:500;letter-spacing:-.01em;margin:0;line-height:1.15}
h1{font-size:clamp(28px,4vw,40px);letter-spacing:-.02em} h2{font-size:22px} h3{font-size:17px}
p{margin:0} .muted{color:var(--muted)} .sub{color:var(--muted);font-size:13.5px}
.kicker{font-family:var(--f-display);text-transform:uppercase;letter-spacing:.9px;font-size:12px;color:var(--muted);font-weight:500}
/* cabecera mínima */
header.hdr{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:56px;border-bottom:1px solid var(--line);padding-bottom:10px}
.brand{display:flex;align-items:center;gap:10px;color:var(--fg);text-decoration:none;font-family:var(--f-display);font-size:21px;font-weight:300;letter-spacing:-.01em;white-space:nowrap;min-height:44px}
.brand b{font-weight:500} .brand .pe-m{width:30px;height:30px;flex:none}
.hd-side{display:flex;align-items:center;gap:8px}
.hbtn{font:inherit;font-size:13.5px;font-weight:500;display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line);background:var(--surface);color:var(--fg);border-radius:8px;padding:7px 12px;cursor:pointer;min-height:36px;white-space:nowrap;text-decoration:none}
.hbtn:hover{background:var(--soft)} .hbtn.hb-in{background:var(--brand);color:var(--on-brand);border-color:var(--brand)}
.sessbar{display:flex;align-items:center;gap:6px 8px;font-size:13px;color:var(--muted);flex-wrap:wrap} .sessbar b{color:var(--fg)}
.btn2{font:inherit;font-weight:500;border:1px solid var(--line);border-radius:8px;padding:8px 14px;background:transparent;color:var(--fg);cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;gap:6px}
.btn{font:inherit;font-weight:500;border:0;border-radius:8px;padding:9px 16px;background:var(--brand);color:var(--on-brand);cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;gap:6px}
.btn:hover{background:var(--hd2)} .sbtn{padding:6px 10px;font-size:13.5px}
.nav{display:flex;gap:4px;overflow-x:auto;padding:2px;scrollbar-width:thin}
.nav a{font-family:var(--f-display);font-size:15.5px;font-weight:500;border-radius:999px;color:var(--muted);padding:7px 13px;text-decoration:none;white-space:nowrap;display:inline-flex;align-items:center;gap:6px}
.nav a:hover{background:var(--soft);color:var(--fg)} .nav a[aria-current="page"]{background:var(--brand);color:var(--on-brand)}
.lk{width:13px;height:13px;opacity:.7;display:inline-block;vertical-align:-2px}
/* tarjetas y rejillas */
.card{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:16px 18px;display:flex;flex-direction:column;gap:10px}
.grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(300px,1fr);gap:18px;align-items:start}
@media (max-width:900px){.grid{grid-template-columns:minmax(0,1fr)}}
.evento{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 24px}
.evento .cd{display:flex;align-items:baseline;gap:10px} .evento .cd b{font-family:var(--f-display);font-size:44px;font-weight:300;line-height:1;letter-spacing:-.03em} .evento .cd span{font-size:13px;color:var(--muted);text-transform:uppercase;letter-spacing:.8px;max-width:9ch;line-height:1.15}
.metrics{display:flex;flex-wrap:wrap;gap:10px}
.metric{background:var(--soft);border-radius:8px;padding:10px 14px;min-width:150px;display:flex;flex-direction:column;gap:2px}
.metric b{font-family:var(--f-display);font-size:24px;font-weight:500;font-variant-numeric:tabular-nums;line-height:1.1} .metric span{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.6px}
.pbar{display:flex;height:10px;border-radius:5px;overflow:hidden;background:var(--line)} .pbar i{display:block;height:100%}
.pleg{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:13px;color:var(--muted)} .pleg i{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:5px;vertical-align:0}
.feat{display:flex;flex-direction:column;gap:12px} .feat h2{font-size:26px;line-height:1.15} .feat .lead{font-size:16px;color:var(--muted);max-width:60ch}
.feat .thumb{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:8px;border:1px solid var(--line);background:var(--soft)}
.inf-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}
.inf{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:14px 16px;display:flex;flex-direction:column;gap:6px;text-decoration:none;color:var(--fg);min-height:150px}
.inf:hover{border-color:var(--muted)} .inf .k{display:flex;justify-content:space-between;gap:8px;align-items:center;font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.6px}
.inf h3{font-size:16.5px;line-height:1.25} .inf p{font-size:13.5px;color:var(--muted);flex:1} .inf .d{font-size:12.5px;color:var(--muted)}
.inf .lvl{display:inline-flex;align-items:center;gap:4px;border:1px solid var(--line);border-radius:999px;padding:1px 8px;font-size:11px;letter-spacing:.3px}
.series{display:flex;flex-direction:column;gap:10px} .serie{display:flex;gap:12px;align-items:flex-start;padding:10px 0;border-top:1px solid var(--line)} .serie:first-of-type{border-top:0;padding-top:0}
.serie b{font-family:var(--f-display);font-weight:500;font-size:16px} .serie p{font-size:13.5px;color:var(--muted)} .serie .n{flex:none;width:28px;height:28px;border-radius:50%;background:var(--brand);color:var(--on-brand);display:grid;place-items:center;font-family:var(--f-display);font-weight:500;font-size:13px}
.autor{display:flex;gap:14px;align-items:center} .autor img{width:72px;height:72px;border-radius:50%;object-fit:cover;filter:grayscale(1);border:1px solid var(--line)}
.autor .t{display:flex;flex-direction:column;gap:2px} .autor .t b{font-family:var(--f-display);font-size:18px;font-weight:500} .autor .t span{font-size:13px;color:var(--muted);line-height:1.35}
.soc{display:flex;gap:6px} .soc a{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;color:var(--fg);background:var(--soft);border:1px solid var(--line)} .soc a:hover{background:var(--brand);color:var(--on-brand);border-color:var(--brand)} .soc svg{width:16px;height:16px}
.posts{display:flex;flex-direction:column;gap:0} .post{padding:10px 0;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:4px;font-size:13.5px}
.post .m{display:flex;justify-content:space-between;gap:8px;font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.5px} .post a{color:var(--fg);text-decoration:none} .post a:hover{text-decoration:underline}
.tools{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
.tool{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:14px 16px;text-decoration:none;color:var(--fg);display:flex;flex-direction:column;gap:6px} .tool:hover{border-color:var(--muted)}
.tool b{font-family:var(--f-display);font-weight:500;font-size:17px;display:flex;align-items:center;gap:8px;justify-content:space-between} .tool span{font-size:13.5px;color:var(--muted)} .tool .cta{font-size:12.5px;color:var(--accent);margin-top:auto}
.sitefoot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 20px;padding:18px 0 4px;border-top:1px solid var(--line);margin-top:8px}
.sf-l{display:flex;flex-direction:column;gap:4px} .pe-w{width:200px;height:auto;display:block} .sf-u{font-size:12.5px;color:var(--muted)}
.legal{font-size:12.5px;color:var(--muted);display:flex;flex-wrap:wrap;gap:6px 16px} .legal a{color:inherit}
.ficha{display:grid;grid-template-columns:minmax(260px,320px) minmax(0,1fr);gap:28px;align-items:start} @media (max-width:800px){.ficha{grid-template-columns:minmax(0,1fr)}}
.ficha img{width:100%;border-radius:12px;filter:grayscale(1);border:1px solid var(--line)}
.bio{display:flex;flex-direction:column;gap:14px;font-size:16px;line-height:1.6;max-width:68ch} .bio h1{margin-bottom:-4px} .bio .rol{font-size:16px;color:var(--muted)}
.dl{display:grid;grid-template-columns:max-content 1fr;gap:6px 16px;font-size:14px} .dl dt{color:var(--muted)} .dl dd{margin:0}
/* diálogo de acceso (igual que en la app) */
.dlg{position:fixed;inset:0;background:rgba(10,14,20,.45);display:flex;align-items:center;justify-content:center;padding:16px;z-index:50}
.dlgbox{background:var(--surface);color:var(--fg);border:1px solid var(--line);border-radius:12px;max-width:470px;width:100%;max-height:calc(100vh - 32px);overflow:auto;padding:20px;display:flex;flex-direction:column;gap:14px}
.dlgbox h2{font-size:24px} .dlgact{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap;align-items:center}
.acf{display:flex;flex-direction:column;gap:10px;margin:0} .acf .l{font-family:var(--f-display);text-transform:uppercase;letter-spacing:.8px;font-size:12px;color:var(--muted);font-weight:500;margin-bottom:-4px}
.acf input[type=password],.acf input[type=text],.acf input[type=email]{font:inherit;font-size:16px;color:var(--fg);background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:10px 12px;width:100%}
.acf .chk{display:flex;gap:8px;align-items:flex-start;font-size:13.5px;color:var(--muted);cursor:pointer}.acf .chk input{margin-top:3px}
.msg{font-size:14px;min-height:1.2em}.msg.err{color:var(--err)}.msg.ok,.ok{color:var(--ok)} .gtxt{font-size:16px;line-height:1.5}
body.gated .wrap{filter:blur(2px)}
[hidden]{display:none!important}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
@media (max-width:700px){.hbtn span{display:none}.hbtn{padding:7px 9px}.sitefoot{flex-direction:column;align-items:flex-start}.evento .cd b{font-size:36px}}
/* tarjeta de autoría (misma que en la app) */
.author{display:flex;align-items:center;gap:10px;background:var(--soft);border:1px solid var(--line);border-radius:10px;padding:6px 8px 6px 12px}
.au-m{width:36px;height:36px;flex:none;color:var(--fg)} .au-t{display:flex;flex-direction:column;line-height:1.1} .au-k{font-size:10px;text-transform:uppercase;letter-spacing:1px;color:var(--muted);font-weight:500;white-space:nowrap} .au-t b{font-family:var(--f-display);font-size:16px;font-weight:500;white-space:nowrap}
.au-i{display:flex;gap:6px} .au-i a{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;color:var(--fg);background:var(--surface);border:1px solid var(--line)} .au-i a:hover{background:var(--brand);color:var(--on-brand);border-color:var(--brand)} .au-i svg{width:16px;height:16px}
.evento .cd span{max-width:18ch}

/* portada mínima e informes */
.hero{padding:26px 0 6px;display:flex;flex-direction:column;gap:10px;max-width:760px} .hero h1{font-family:var(--f-display);font-size:clamp(28px,4.2vw,40px);font-weight:600;letter-spacing:-.02em;line-height:1.08}
.hero .lead{font-size:16.5px;color:var(--muted);line-height:1.5} .hero-a{display:flex;gap:10px;flex-wrap:wrap;margin-top:6px} .hero-s{padding-bottom:0}
.inf-home{display:flex;flex-direction:column;gap:12px;margin-top:18px} .inf-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap} .inf-more{display:flex;justify-content:flex-end}
.inf .thumb{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:6px;border:1px solid var(--line);margin:2px 0 4px}
.inf-year{display:flex;flex-direction:column;gap:12px;margin-top:22px} .inf-year h2 small{font-size:13px;color:var(--muted);font-weight:400;margin-left:8px}
