/* National early-vote view (21CEE). Scoped under .evn. Works in the site's dark and light themes. */
.evn{--q0:#ece6f8;--q1:#d3c6ee;--q2:#b7a2e0;--q3:#9779cf;--q4:#7650b5;--q5:#4f2d86;--nd:#c9ccd3;--nd-t:#5d6370;--lbl:#1d1636;--lbl-on:#fff;--dm:#2f6bd0;--rp:#d0484f;--ot:#9aa3b2;--ip:#e0a53a;--ml:#6a8be0;
 --d-2:#c4693a;--d-1:#e3a77c;--d0:#d9dbe0;--d1:#9fd3c3;--d2:#52b09a;--d3:#1f8a78}
[data-theme=dark] .evn{--q0:#2a2748;--q1:#3a3468;--q2:#52469a;--q3:#7766c4;--q4:#a28ee6;--q5:#d3c6ff;--nd:#2a3447;--nd-t:#8f9bb0;--lbl:#f2eeff;--lbl-on:#10192d;--dm:#6aa0ff;--rp:#ff7c82;--ot:#8f9bb0;--ip:#f0b955;--ml:#8fa8ff;
 --d-2:#d9784a;--d-1:#a6693f;--d0:#3a455a;--d1:#2f7f70;--d2:#3fb094;--d3:#6fe0c3}
.evn *{box-sizing:border-box}
.evn-preview{padding:10px 20px;background:#f7c948;color:#2b2100;font:600 13px/1.5 var(--sans);text-align:center;border-bottom:2px solid #c99a10}
.evn-wrap{max-width:1240px;margin:auto;padding:28px max(4vw,16px) 8px}
.evn-eyebrow{font:700 12px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--ev-accent,#724c9e);margin:0 0 14px}
[data-theme=dark] .evn-eyebrow{color:#c4b0ee}
/* hero */
.evn-hero{background:linear-gradient(135deg,var(--surface) 0%,var(--surface-soft) 100%);border:1px solid var(--line);border-radius:22px;padding:clamp(22px,4vw,48px);position:relative;overflow:hidden}
.evn-hero:before{content:"";position:absolute;right:-90px;top:-90px;width:320px;height:320px;border-radius:50%;background:radial-gradient(circle,#7650b5 0,#7650b500 70%);opacity:.28;pointer-events:none}
.evn-hero h1{font-size:clamp(20px,2.6vw,28px);letter-spacing:-.02em;line-height:1.2;margin:0 0 6px;font-weight:600}
.evn-big{font:800 clamp(52px,12.5vw,150px)/.95 var(--sans);letter-spacing:-.05em;margin:8px 0 6px;font-variant-numeric:tabular-nums;color:var(--ink);word-break:break-all}
.evn-lede{font-size:clamp(15px,1.7vw,19px);line-height:1.5;max-width:760px;margin:6px 0 4px}
.evn-asof{font-size:13px;color:var(--muted);line-height:1.6;margin:10px 0 0}
.evn-asof b{color:var(--ink)}
.evn-chips{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:24px 0 8px}
.evn-chip{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:14px 16px;display:grid;gap:2px}
.evn-chip span{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-weight:600}
.evn-chip strong{font-size:clamp(26px,4vw,38px);letter-spacing:-.03em;line-height:1.1;color:var(--ink)}
.evn-chip small{font-size:12px;color:var(--muted)}
.evn-chip-mid{border-color:#7650b5;box-shadow:inset 0 0 0 1px #7650b555}
.evn-bar{display:flex;height:16px;border-radius:99px;overflow:hidden;background:var(--line);margin:18px 0 10px}
.evn-bar.sm{height:10px;margin:10px 0 6px}.evn-bar.lg{height:22px;margin:14px 0}
.evn-bar i{display:block;height:100%}
i.evn-ip,.evn-bar .evn-ip{background:var(--ip)}i.evn-ml,.evn-bar .evn-ml{background:var(--ml)}
i.evn-dem{background:var(--dm)}i.evn-rep{background:var(--rp)}i.evn-oth{background:var(--ot)}
.evn-sm i,.evn-split-k i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:-1px}
.evn-split-k{display:flex;flex-wrap:wrap;gap:6px 26px;font-size:14px}.evn-split-k em{color:var(--muted);font-style:normal}
.evn-basis{font-size:13px;color:var(--muted);margin:14px 0 0;line-height:1.55}
/* sections */
.evn-sec{margin:26px 0;background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:clamp(18px,3vw,34px)}
.evn-sec h2{font-size:clamp(24px,3.4vw,38px);letter-spacing:-.035em;line-height:1.1;margin:0 0 8px}
.evn-sec>p.evn-sub{font-size:15px;line-height:1.55;color:var(--muted);max-width:760px;margin:0 0 18px}
.evn-sm{font-size:13px;line-height:1.55;margin:6px 0}.evn-muted{color:var(--muted)}
/* trend */
.evn-trend-svg{width:100%;height:auto;display:block;max-width:900px;margin:auto}
.evn-grid{stroke:var(--line);stroke-width:1}
.evn-bar-g rect{fill:var(--ot);opacity:.55;transition:opacity .2s}
.evn-bar-g.is-mid rect{fill:#8a63d2;opacity:1}
[data-theme=dark] .evn-bar-g.is-mid rect{fill:#a28ee6}
.evn-bar-g.is-live rect{fill:#3fb094;stroke:var(--ink);stroke-width:2;stroke-dasharray:6 4}
.evn-bar-g:hover rect,.evn-bar-g:focus rect{opacity:1;outline:none}
.evn-bv{font:800 22px var(--sans);fill:var(--ink)}.evn-by{font:700 20px var(--sans);fill:var(--ink)}.evn-bk{font:500 14px var(--sans);fill:var(--muted)}
.evn-key{display:flex;gap:18px;flex-wrap:wrap;font-size:13px;color:var(--muted);margin:6px 0 0}
.evn-key i{display:inline-block;width:12px;height:12px;border-radius:4px;margin-right:6px;vertical-align:-1px}
.evn-tn{font-size:12px;color:var(--muted);list-style:none;padding:0;margin:14px 0 0;display:grid;gap:3px}
/* map */
.evn-tools{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin:0 0 14px}
.evn-seg{display:inline-flex;background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:3px}
.evn-seg button{font:600 14px var(--sans);min-height:44px;padding:0 16px;border:0;border-radius:9px;background:transparent;color:var(--ink);cursor:pointer}
.evn-seg button[aria-pressed=true]{background:#7650b5;color:#fff}
.evn-maplayout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:22px;align-items:start}
#evn-map{min-width:0}
.evn-map-svg{width:100%;height:auto;display:block}
.evn-st{stroke:var(--surface);stroke-width:1.6;cursor:pointer;transition:filter .15s,stroke .15s}
.evn-st:hover,.evn-st:focus{filter:brightness(1.12);stroke:var(--ink);stroke-width:2.4;outline:none}
.evn-st.is-sel,.evn-tile.is-sel .evn-st-r{stroke:var(--ink);stroke-width:4}
.evn-q0{fill:var(--q0);background:var(--q0)}.evn-q1{fill:var(--q1);background:var(--q1)}.evn-q2{fill:var(--q2);background:var(--q2)}.evn-q3{fill:var(--q3);background:var(--q3)}.evn-q4{fill:var(--q4);background:var(--q4)}.evn-q5{fill:var(--q5);background:var(--q5)}
.evn-nd{fill:url(#evn-hatch);background:var(--nd)}
.evn-d-2{fill:var(--d-2);background:var(--d-2)}.evn-d-1{fill:var(--d-1);background:var(--d-1)}.evn-d0{fill:var(--d0);background:var(--d0)}.evn-d1{fill:var(--d1);background:var(--d1)}.evn-d2{fill:var(--d2);background:var(--d2)}.evn-d3{fill:var(--d3);background:var(--d3)}
.evn-st-r{stroke:transparent;stroke-width:2;cursor:pointer}
.evn-tile{cursor:pointer;outline:none}.evn-tile:hover .evn-st-r,.evn-tile:focus .evn-st-r{stroke:var(--ink);stroke-width:3}
.evn-tile.evn-nd .evn-st-r{fill:var(--nd)}
.evn-tile.evn-q0 .evn-st-r{fill:var(--q0)}.evn-tile.evn-q1 .evn-st-r{fill:var(--q1)}.evn-tile.evn-q2 .evn-st-r{fill:var(--q2)}.evn-tile.evn-q3 .evn-st-r{fill:var(--q3)}.evn-tile.evn-q4 .evn-st-r{fill:var(--q4)}.evn-tile.evn-q5 .evn-st-r{fill:var(--q5)}
.evn-tile.evn-d-2 .evn-st-r{fill:var(--d-2)}.evn-tile.evn-d-1 .evn-st-r{fill:var(--d-1)}.evn-tile.evn-d0 .evn-st-r{fill:var(--d0)}.evn-tile.evn-d1 .evn-st-r{fill:var(--d1)}.evn-tile.evn-d2 .evn-st-r{fill:var(--d2)}.evn-tile.evn-d3 .evn-st-r{fill:var(--d3)}
.evn-tile path,.evn-tile text,.evn-lbl{pointer-events:none}
.evn-lbl{font-family:var(--sans);font-weight:800;fill:var(--lbl)}.evn-lbl-v{font-weight:600}
.evn-legend{display:flex;flex-wrap:wrap;gap:8px 16px;font-size:12px;color:var(--muted);margin:14px 0 0}
.evn-legend i{display:inline-block;width:20px;height:12px;border-radius:3px;margin-right:6px;vertical-align:-1px;border:1px solid #0002}
.evn-legend i.evn-nd{background:repeating-linear-gradient(45deg,var(--nd),var(--nd) 3px,#0000 3px,#0000 6px),var(--surface)}
.evn-maphint{font-size:13px;color:var(--muted);margin:10px 0 0}
/* detail card */
.evn-detail{background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:20px;position:sticky;top:14px;min-height:120px}
.evn-detail.is-empty:before{content:"Tap or click any state to see its count, how it splits, party registration where reported, and how it compares with past years.";font-size:14px;line-height:1.55;color:var(--muted)}
.evn-dh h3{font-size:22px;margin:0 0 4px;letter-spacing:-.02em}.evn-dh strong{display:block;font-size:clamp(34px,5vw,46px);letter-spacing:-.04em;line-height:1.05}.evn-dh span{font-size:13px;color:var(--muted)}
.evn-nodata{font-size:14px;color:var(--muted);line-height:1.5}
.evn-dchips{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}
.evn-chip-s{font-size:12px;font-weight:600;padding:6px 10px;border-radius:99px;background:var(--surface-soft);border:1px solid var(--line)}
.evn-hg{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:14px 0}
.evn-hc{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:8px 10px;display:grid;gap:2px;min-width:0}
.evn-hc span{font-size:11px;color:var(--muted);font-weight:600}.evn-hc span em{font-style:normal;color:#8a63d2;text-transform:uppercase;font-size:10px;letter-spacing:.05em}
.evn-hc b{font-size:17px;letter-spacing:-.02em}
.evn-hc.is-mid{border-color:#8a63d2;background:linear-gradient(0deg,#8a63d214,#8a63d214),var(--surface)}
.evn-hc.is-now{box-shadow:inset 0 0 0 2px #3fb094}
.evn-na{font-size:12px;font-style:italic;color:var(--muted);font-weight:500}
sup{color:#d08a1c;font-size:11px}
.evn-notes summary{cursor:pointer;font-size:13px;min-height:32px}
.evn-party-big{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:10px 0}
.evn-party-n{display:grid;gap:2px;text-align:center;padding:14px 8px;border-radius:14px;background:var(--paper);border:1px solid var(--line)}
.evn-party-n strong{font-size:clamp(28px,5vw,48px);letter-spacing:-.04em;line-height:1}.evn-party-n span{font-size:13px;font-weight:600}.evn-party-n small{color:var(--muted);font-size:12px}
.evn-dem-t strong{color:var(--dm)}.evn-rep-t strong{color:var(--rp)}
/* state table */
.evn-tabletools{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin:0 0 14px}
.evn-tabletools input{font:inherit;font-size:16px;min-height:44px;padding:0 14px;border:1px solid var(--line);border-radius:12px;background:var(--paper);color:var(--ink);flex:1;min-width:160px;max-width:320px}
.evn-colhead,.evn-row summary{display:grid;grid-template-columns:130px 112px minmax(50px,1fr) 100px 140px repeat(6,58px);gap:8px;align-items:center}
.evn-colhead{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-weight:700;padding:0 14px 8px;border-bottom:1px solid var(--line)}
.evn-colhead .is-mid{color:#8a63d2}
.evn-row{border-bottom:1px solid var(--line)}
.evn-row summary{list-style:none;cursor:pointer;padding:10px 14px;min-height:56px;border-radius:10px}
.evn-row summary::-webkit-details-marker{display:none}
.evn-row summary:hover{background:var(--surface-soft)}
.evn-row[open] summary{background:var(--surface-soft)}
.evn-rn{font-weight:700;font-size:15px}.evn-rv b{font-size:16px;font-variant-numeric:tabular-nums}
.evn-rb{height:10px;background:var(--line);border-radius:99px;overflow:hidden}.evn-rb i{display:block;height:100%;background:linear-gradient(90deg,#7650b5,#a28ee6);border-radius:99px}
.evn-rd{font-weight:700;font-size:14px}.evn-rd small{font-weight:500;color:var(--muted);font-size:11px}.evn-rd.up{color:#1f8a78}.evn-rd.dn{color:#c4693a}
[data-theme=dark] .evn-rd.up{color:#6fe0c3}[data-theme=dark] .evn-rd.dn{color:#f0a278}
.evn-ry{display:contents}.evn-ry>span{font-size:13px;font-variant-numeric:tabular-nums;text-align:right}.evn-ry .is-mid{background:#8a63d218;border-radius:6px;padding:4px 4px}
.evn-ry b{font-weight:700}
.evn-rx{padding:6px 18px 22px;max-width:640px}
.evn-rx .evn-hg{grid-template-columns:repeat(6,1fr)}
.evn-spark{width:150px;height:44px;display:block}
.evn-sp-l{fill:none;stroke:var(--muted);stroke-width:1.8;stroke-linejoin:round}
.evn-sp-d{fill:var(--muted)}.evn-sp-d.is-mid{fill:#8a63d2}.evn-sp-d.is-now{fill:#3fb094;stroke:var(--ink);stroke-width:1.5}
.evn-sp-x{font:700 12px var(--sans);fill:var(--muted)}
.evn-row.is-nd{opacity:.9}
.evn-src{font-size:13px;line-height:1.6}.evn-src ul{padding-left:18px;margin:8px 0}
.evn-src a{word-break:break-word}
.evn-legacy-h{margin:44px 0 0}.evn-legacy-h h2{font-size:clamp(22px,3vw,32px);letter-spacing:-.03em}
/* mobile */
@media(max-width:1000px){.evn-maplayout{grid-template-columns:1fr}.evn-detail{position:static}}
@media(max-width:1100px){
 .evn-colhead{display:none}
 .evn-row summary{grid-template-columns:1fr auto;grid-template-areas:"n v" "b b" "d s" "y y";gap:8px 12px;padding:14px 12px}
 .evn-rn{grid-area:n;font-size:17px}.evn-rv{grid-area:v;text-align:right}.evn-rv b{font-size:20px}.evn-rb{grid-area:b}.evn-rd{grid-area:d}.evn-rs{grid-area:s;justify-self:end}
 .evn-ry{display:grid;grid-area:y;grid-template-columns:repeat(6,minmax(0,1fr));gap:4px}.evn-ry>span{text-align:center;padding:6px 2px;background:var(--paper);border-radius:8px;font-size:12px}
 .evn-ry>span:before{content:attr(data-y);display:block;font-size:9px;color:var(--muted)}
 .evn-ry .is-mid{background:#8a63d230}
}
@media(max-width:700px){
 .evn-wrap{padding:16px 12px 4px}.evn-chips{grid-template-columns:1fr}.evn-chip{grid-template-columns:1fr auto;align-items:center}.evn-chip small{grid-column:1/3}
 .evn-chip span{grid-column:1}.evn-chip strong{grid-column:2;grid-row:1/3;font-size:30px}
 .evn-hg,.evn-rx .evn-hg{grid-template-columns:repeat(3,1fr)}
 .evn-seg button{padding:0 12px}.evn-party-big{gap:6px}
 .evn-sec{border-radius:16px;margin:18px 0}
}
@media(prefers-reduced-motion:reduce){.evn *{transition:none!important}}

/* label colours chosen per fill so numbers stay readable in both themes */
.evn-l-q0,.evn-l-q1,.evn-l-q2,.evn-l-d-1,.evn-l-d0,.evn-l-d1,.evn-l-nd{fill:#1d1636}
.evn-l-q3,.evn-l-q4,.evn-l-q5,.evn-l-d-2,.evn-l-d2,.evn-l-d3{fill:#fff}
[data-theme=dark] .evn-l-q0,[data-theme=dark] .evn-l-q1,[data-theme=dark] .evn-l-q2,[data-theme=dark] .evn-l-q3,[data-theme=dark] .evn-l-d-2,[data-theme=dark] .evn-l-d-1,[data-theme=dark] .evn-l-d0,[data-theme=dark] .evn-l-d1{fill:#fff}
[data-theme=dark] .evn-l-q4,[data-theme=dark] .evn-l-q5,[data-theme=dark] .evn-l-d2,[data-theme=dark] .evn-l-d3{fill:#10192d}
[data-theme=dark] .evn-l-nd{fill:#cbd5e6}
.evn-ry .evn-na{white-space:nowrap;font-size:10px;display:inline;padding:0;background:none}
@media(max-width:1100px){.evn-ry .evn-na{font-size:10px}.evn-ry>span{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:42px}}
