/* Projeção 2º turno — design.md v2.0. Só fontes do sistema; tokens claro/escuro; sem CDN. */
:root{color-scheme:light;
--bg:#F4F3EF;--surface:#FFFFFF;--surface-2:#F0EFEB;--ink:#17191C;--ink-2:#4B515A;--line:#D5D7DB;--line-2:#8A9099;
--cand-1:#33383F;--cand-2:#86704F;--stripe-2:#D8CCB8;--estimate:#5A5F68;
--uf-0:#ECEEF1;--uf-1:#CDD2D9;--uf-2:#A3ABB6;--uf-3:#5E6875;--uf-4:#3A414B;--uf-ink-lo:#17191C;--uf-ink-hi:#FFFFFF;
--warn-bg:#F3EBDD;--warn-ink:#5C4520;--warn-line:#D9C9AC;--err:#7A2E2E;--inv-bg:#17191C;--inv-ink:#FFFFFF;--focus:#17191C;
--shadow:0 1px 2px rgba(20,22,26,.06),0 4px 16px rgba(20,22,26,.05);
--s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:24px;--s6:32px;--r:16px;--r-s:8px;--dur:300ms;--ease:cubic-bezier(.2,.7,.2,1);
--font:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif}
@media (prefers-color-scheme:dark){:root:not([data-tema=claro]){color-scheme:dark;
--bg:#111316;--surface:#1A1D21;--surface-2:#22262B;--ink:#ECEDEF;--ink-2:#A9AFB8;--line:#30363D;--line-2:#5A626B;
--cand-1:#BFC4CB;--cand-2:#C2A57A;--stripe-2:#4A4032;--estimate:#8E949C;
--uf-0:#2A2F35;--uf-1:#3E454D;--uf-2:#5A636D;--uf-3:#8C95A0;--uf-4:#C3C9D0;--uf-ink-lo:#ECEDEF;--uf-ink-hi:#111316;
--warn-bg:#3A3020;--warn-ink:#E9D3A8;--warn-line:#6B5836;--err:#E8A5A5;--inv-bg:#ECEDEF;--inv-ink:#111316;--focus:#ECEDEF;
--shadow:0 1px 2px rgba(0,0,0,.4)}}
:root[data-tema=escuro]{color-scheme:dark;
--bg:#111316;--surface:#1A1D21;--surface-2:#22262B;--ink:#ECEDEF;--ink-2:#A9AFB8;--line:#30363D;--line-2:#5A626B;
--cand-1:#BFC4CB;--cand-2:#C2A57A;--stripe-2:#4A4032;--estimate:#8E949C;
--uf-0:#2A2F35;--uf-1:#3E454D;--uf-2:#5A636D;--uf-3:#8C95A0;--uf-4:#C3C9D0;--uf-ink-lo:#ECEDEF;--uf-ink-hi:#111316;
--warn-bg:#3A3020;--warn-ink:#E9D3A8;--warn-line:#6B5836;--err:#E8A5A5;--inv-bg:#ECEDEF;--inv-ink:#111316;--focus:#ECEDEF;
--shadow:0 1px 2px rgba(0,0,0,.4)}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:400 16px/24px var(--font);font-variant-numeric:tabular-nums;padding-bottom:96px;transition:background-color var(--dur),color var(--dur)}
a{color:inherit}
:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.sample{background:repeating-linear-gradient(-45deg,var(--surface-2) 0 8px,var(--bg) 8px 16px);color:var(--ink);text-align:center;font:700 13px/18px var(--font);padding:6px;letter-spacing:.06em;border-bottom:1px solid var(--line)}
/* cabeçalho */
header{position:sticky;top:0;z-index:5;background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);padding:var(--s3) var(--s3) var(--s3);border-bottom:1px solid var(--line);display:flex;flex-wrap:wrap;align-items:center;gap:var(--s2) var(--s3)}
.marca{flex:1 1 100%;min-width:0}
.kicker{display:block;font-size:12px;line-height:16px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2)}
h1{font-size:20px;line-height:26px;font-weight:800;letter-spacing:-.01em;margin:0}
.stamp{display:inline-flex;align-items:center;gap:8px;min-height:36px;padding:6px 12px;border-radius:999px;background:var(--surface);border:1px solid var(--line);font-size:13px;line-height:18px;font-weight:600}
.stamp::before{content:"";flex:none;width:8px;height:8px;border-radius:50%;background:var(--ink-2)}
.stamp.stale{background:var(--warn-bg);color:var(--warn-ink);border-color:var(--warn-line)}.stamp.stale::before{content:"⚠";width:auto;height:auto;background:none}
.tema{margin-left:auto;display:inline-flex;align-items:center;gap:6px}
.tema svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2}
/* grade */
main{padding:var(--s3);display:grid;gap:var(--s3);max-width:1360px;margin:0 auto}
.card{background:var(--surface);border-radius:var(--r);padding:var(--s4) var(--s3);box-shadow:var(--shadow);min-width:0}
.official{border:3px solid var(--ink)}
.estimate{border:2px dashed var(--estimate)}
.card h2{font-size:13px;line-height:18px;font-weight:800;margin:0;letter-spacing:.08em;text-transform:uppercase;display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;align-items:center;color:var(--ink)}
.tag{font-size:11px;line-height:16px;font-weight:800;padding:3px 8px;border-radius:4px;letter-spacing:.08em}
.official .tag{background:var(--ink);color:var(--bg)}
.estimate .tag,.tag-est{border:1.5px dashed var(--estimate);color:var(--ink)}
.sub{color:var(--ink-2);font-size:13px;line-height:18px;margin:6px 0 var(--s3)}
/* candidatos */
.cand{display:grid;grid-template-columns:1fr auto;gap:4px var(--s3);margin-top:var(--s4);align-items:end}
.name{font-weight:700;font-size:17px;line-height:24px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.key{flex:none;width:14px;height:14px;border-radius:3px;display:inline-block}
.k1{background:var(--cand-1);border-radius:50%}
.k2{background:repeating-linear-gradient(-45deg,var(--cand-2) 0 3px,var(--surface) 3px 5px);border:1.5px solid var(--cand-2)}
.pct{font-size:44px;line-height:44px;font-weight:800;letter-spacing:-.02em;text-align:right}
.estimate .pct{font-size:36px;line-height:40px}
.votes{grid-column:1/-1;color:var(--ink-2);font-size:13px;line-height:18px}
.bar{grid-column:1/-1;height:12px;background:var(--uf-0);border-radius:6px;overflow:hidden}
.bar i{display:block;height:100%;transition:width var(--dur) var(--ease)}
.f1{background:var(--cand-1)}.f2{background:repeating-linear-gradient(-45deg,var(--cand-2) 0 4px,var(--stripe-2) 4px 7px)}
.prog{margin-top:var(--s4);padding-top:var(--s3);border-top:1px solid var(--line);font-size:13px;line-height:18px;color:var(--ink-2)}
.prog b{color:var(--ink);font-size:15px}
.prog .bar{margin-top:6px;height:6px}.prog .bar i{background:var(--ink-2)}
.range{grid-column:1/-1;position:relative;height:24px;margin:2px 0}
.range .axis{position:absolute;top:11px;left:0;right:0;height:2px;background:var(--line)}
.range .iv{position:absolute;top:4px;height:16px;border-radius:4px;opacity:.35;transition:left var(--dur) var(--ease),width var(--dur) var(--ease)}
.range .pt{position:absolute;top:1px;width:4px;height:22px;margin-left:-2px;border-radius:2px;transition:left var(--dur) var(--ease)}
.r1 .iv,.r1 .pt{background:var(--cand-1)}
.r2 .iv{background:repeating-linear-gradient(-45deg,var(--cand-2) 0 4px,transparent 4px 7px);opacity:.8;border:1.5px solid var(--cand-2)}
.r2 .pt{background:var(--cand-2)}
.between{grid-column:1/-1;font-size:13px;line-height:18px;color:var(--ink-2)}
/* chance */
.win{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:var(--s1) var(--s3);margin-top:var(--s4);font-size:24px;line-height:30px;font-weight:800;letter-spacing:-.01em;color:var(--ink)}
.win span{display:flex;align-items:center;gap:8px;white-space:nowrap}.win span:last-child{margin-left:auto}
.split{display:flex;height:18px;border-radius:9px;overflow:hidden;margin-top:var(--s3);background:var(--uf-0)}
.split i{display:block;height:100%;transition:width var(--dur) var(--ease)}.split .f1{border-right:2px solid var(--surface)}
.win-msg{margin-top:var(--s2)}
/* mapa de UF (SVG tile-map) */
.mapa-box{margin-top:var(--s2)}
.mapa{display:block;width:100%;max-width:400px;height:auto;margin:0 auto;overflow:visible}
.tile{cursor:pointer;outline:none}
.tile .v0{fill:var(--uf-0);stroke:var(--line-2);stroke-width:.75;transition:fill var(--dur)}
.tile text{fill:var(--uf-ink-lo);font:700 13px var(--font);text-anchor:middle;pointer-events:none}
.tile text.v{font-size:11px;font-weight:600}
.tile.u1 .v0{fill:var(--uf-1)}.tile.u2 .v0{fill:var(--uf-2)}.tile.u3 .v0{fill:var(--uf-3)}.tile.u4 .v0{fill:var(--uf-4)}
.tile.u3 text,.tile.u4 text{fill:var(--uf-ink-hi)}
.tile.u1 .v0,.tile.u2 .v0,.tile.u3 .v0,.tile.u4 .v0{stroke:none}
.tile.nodata .v0{fill:var(--surface);stroke:var(--line-2);stroke-width:1.5;stroke-dasharray:4 3}
.tile.err .v0{fill:var(--surface);stroke:var(--err);stroke-width:2}
.tile.err text{fill:var(--err)}
.tile .hit{fill:transparent;stroke:none}
.tile:hover .v0,.tile:focus-visible .v0{stroke:var(--focus);stroke-width:3;stroke-dasharray:none}
.tile[aria-pressed=true] .v0{stroke:var(--focus);stroke-width:3;stroke-dasharray:none}
.legend{display:flex;align-items:center;gap:4px;font-size:12px;line-height:16px;color:var(--ink-2);margin-top:var(--s3);justify-content:center;flex-wrap:wrap}
.legend i{width:22px;height:12px;border-radius:3px;display:inline-block}
.legend .nodata{background:var(--surface);border:1.5px dashed var(--line-2)}
.detail{margin-top:var(--s3);border-top:1px solid var(--line);padding-top:var(--s3)}
.detail[hidden]{display:none}
.detail h3{margin:0;font-size:17px;display:flex;justify-content:space-between;align-items:center;gap:8px}
.btn{min-width:44px;min-height:44px;border:1px solid var(--line);background:var(--surface);border-radius:var(--r-s);font:600 14px var(--font);cursor:pointer;padding:0 14px;color:var(--ink)}
.btn:hover{border-color:var(--line-2)}
/* gráfico */
.chart svg{width:100%;height:auto;display:block;margin-top:var(--s2)}
.chart text{font:500 12px var(--font);fill:var(--ink-2)}
.chart text.lab{font-weight:800;font-size:13px;fill:var(--ink)}
.g{stroke:var(--line);stroke-width:1}.g50{stroke:var(--line-2);stroke-width:1;stroke-dasharray:3 3}
.b1{fill:var(--cand-1);opacity:.16}.b2{fill:var(--cand-2);opacity:.24}
.l1{fill:none;stroke:var(--cand-1);stroke-width:2.5;stroke-linejoin:round}.l2{fill:none;stroke:var(--cand-2);stroke-width:2.5;stroke-dasharray:6 4;stroke-linejoin:round}
.m1{fill:var(--cand-1)}.m2{fill:var(--cand-2)}
.lg{display:flex;gap:var(--s4);font-size:13px;line-height:18px;flex-wrap:wrap;margin-top:var(--s3);color:var(--ink-2)}
.lg span{display:flex;align-items:center;gap:6px;color:var(--ink)}
details{margin-top:var(--s2);font-size:14px}summary{min-height:44px;display:flex;align-items:center;cursor:pointer;font-weight:600}
table{border-collapse:collapse;width:100%;font-size:13px}td,th{padding:6px 4px;text-align:right;border-bottom:1px solid var(--line)}td:first-child,th:first-child{text-align:left}th{color:var(--ink-2);font-weight:600}
.skel{height:12px;border-radius:6px;background:linear-gradient(90deg,var(--uf-0),var(--uf-1),var(--uf-0));margin-top:10px;animation:pulse 1.2s ease-in-out infinite}
@keyframes pulse{50%{opacity:.5}}
.err{color:var(--err)}
.elected{display:inline-flex;gap:4px;align-items:center;border:1.5px solid var(--ink);border-radius:4px;padding:0 6px;font-weight:800;font-size:12px}
.notice{position:fixed;left:0;right:0;bottom:0;z-index:10;background:var(--inv-bg);color:var(--inv-ink);padding:var(--s3) var(--s4);font-size:14px;line-height:20px;padding-bottom:max(var(--s3),env(safe-area-inset-bottom))}
.notice a{color:inherit;font-weight:800;display:inline-flex;align-items:center;min-height:24px;text-decoration:underline;text-underline-offset:3px}
footer{padding:var(--s2) var(--s4) var(--s5);font-size:13px;line-height:20px;color:var(--ink-2);max-width:1360px;margin:0 auto}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.dim{opacity:.5}
.errbox{margin-top:var(--s2);font-size:13px;line-height:18px;color:var(--err)}
.errbox ul{margin:4px 0 0;padding-left:18px}
.fontes{font-size:13px;line-height:18px}.fontes li{margin:2px 0}
@media (min-width:600px){main{padding:var(--s4);gap:var(--s4)}.card{padding:var(--s5)}header{padding:var(--s3) var(--s4)}.marca{flex:1 1 auto}}
@media (min-width:960px){
 body{padding-bottom:0}
 .notice{position:sticky;top:0;bottom:auto;min-height:44px;display:flex;align-items:center;justify-content:center;padding:var(--s2) var(--s5)}
 header{top:44px;padding:var(--s4) var(--s5)}h1{font-size:28px;line-height:34px}
 main{grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-flow:row dense;gap:var(--s5);padding:var(--s5)}
 .official{grid-column:1/7;grid-row:span 2}.estimate{grid-column:7/13}.wincard{grid-column:7/13}
 .chart{grid-column:1/9}.ufcard{grid-column:9/13}
 .official .pct{font-size:64px;line-height:64px}.estimate .pct{font-size:44px;line-height:48px}
 .name{font-size:20px}.bar{height:16px;border-radius:8px}
 .win{font-size:32px;line-height:38px}
}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
