/* 21CEE Early Vote Model: uses the site's own tokens (navy ink, lavender measures, lime emphasis, fixed party colors). */
.evm{--evm-on-accent:#fff;--evm-sheen:#ffffff10;--evm-reported:var(--lime);--evm-reported-ink:#10192d;--evm-model:var(--purple);--evm-model-ink:#10192d;--evm-seg-inperson:#2d3b5e;--evm-seg-mail:var(--viz-accent)}
html[data-theme=dark] .evm{--evm-on-accent:#10192d;--evm-seg-inperson:#8fa3c9}
.evm-head{display:flex;justify-content:space-between;align-items:end;gap:22px;margin:32px 0 22px;flex-wrap:wrap}
.evm-head .eyebrow{margin-bottom:12px;color:#8967b0}
.evm-head h2{font-size:clamp(30px,3.2vw,46px);font-weight:700;letter-spacing:-.04em;margin:0}
.evm-head h2 em{font-family:var(--serif);font-style:italic;font-weight:400;color:var(--viz-accent);letter-spacing:-.02em}
.evm-asof{display:flex;align-items:center;gap:10px;margin:0;font-size:12px;color:var(--muted);letter-spacing:.02em}
.evm-live{width:9px;height:9px;border-radius:50%;background:var(--lime);box-shadow:0 0 0 3px #d6f38840;animation:evm-pulse 2.4s ease-in-out infinite}
@keyframes evm-pulse{50%{box-shadow:0 0 0 7px #d6f38800}}
.evm-banner{margin:0 0 18px;padding:12px 16px;border-radius:12px;background:var(--viz-canvas);box-shadow:inset 0 0 0 1px var(--viz-edge);font-size:13px;line-height:1.55;color:var(--muted)}
.evm-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(215px,1fr));gap:16px;margin-bottom:16px}
.evm-tile{position:relative;display:flex;flex-direction:column;gap:6px;padding:20px 22px 22px;background:var(--surface);border:1px solid var(--viz-edge);border-radius:var(--viz-radius);box-shadow:var(--viz-shadow);overflow:hidden;min-width:0}
.evm-tile::before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:var(--viz-accent);opacity:.8}
.evm-tile-accent::before{background:linear-gradient(90deg,var(--blue),var(--viz-accent),var(--red));opacity:1}
.evm-tile .evm-pill{align-self:flex-start;margin-bottom:6px}
.evm-tile-k{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.evm-tile strong{font-size:clamp(30px,3.4vw,44px);line-height:1.04;letter-spacing:-.045em;font-variant-numeric:tabular-nums;font-weight:750}
.evm-tile small{font-size:12.5px;line-height:1.45;color:var(--muted)}
.evm-pill{display:inline-block;font-size:9.5px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;padding:4px 9px;border-radius:30px;white-space:nowrap}
.evm-pill-reported{background:var(--evm-reported);color:var(--evm-reported-ink)}
.evm-pill-model{background:var(--evm-model);color:var(--evm-model-ink)}
.evm-grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:16px}
.evm-block{background:var(--surface);border:1px solid var(--viz-edge);border-radius:var(--viz-radius);box-shadow:var(--viz-shadow);padding:26px 28px;min-width:0;margin-bottom:16px}
.evm-grid2 .evm-block{margin-bottom:0}
.evm-block-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:6px}
.evm-block h3{margin:0;font-size:21px;letter-spacing:-.03em}
.evm-sub{margin:4px 0 16px;font-size:13px;line-height:1.55;color:var(--muted)}
.evm-sub-tight{margin:20px 0 8px;font-size:12px;font-weight:650;letter-spacing:.04em;text-transform:uppercase}
.evm-note{margin:12px 0 0;font-size:12.5px;line-height:1.6;color:var(--muted);max-width:78ch}
.evm-note b,.evm-note a{color:var(--ink)}
.evm-note a{text-decoration:underline;text-underline-offset:3px}
.evm-bigcount{display:grid;gap:4px;padding:18px 0 4px}.evm-bigcount strong{font-size:44px;letter-spacing:-.045em;font-variant-numeric:tabular-nums;color:var(--viz-accent)}.evm-bigcount span{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.evm svg{display:block;width:100%;height:auto;overflow:visible}
.evm svg text{font:11px var(--sans);font-variant-numeric:tabular-nums;fill:var(--muted)}
.evm-bar{height:auto;border-radius:10px}.evm-bar-muted{opacity:.55}
.evm-seg-d{fill:var(--blue)}.evm-seg-r{fill:var(--red)}.evm-seg-u{fill:var(--party-independent)}
.evm-seg-inperson{fill:var(--evm-seg-inperson)}.evm-seg-mail{fill:var(--evm-seg-mail)}
.evm svg text.evm-seg-label{font:700 13px var(--sans);fill:#fff}.evm svg text.evm-seg-label.evm-on-u{fill:#10192d}
.evm-legend{display:flex;flex-wrap:wrap;gap:8px 22px;list-style:none;margin:12px 0 0;padding:0;font-size:12.5px;color:var(--muted)}
.evm-legend li{display:flex;align-items:center;gap:7px}.evm-legend b{color:var(--ink);font-variant-numeric:tabular-nums;font-weight:650}
.evm-legend i,.evm-legend-row i{display:inline-block;width:11px;height:11px;border-radius:4px;flex:none}
.evm-sw-d{background:var(--blue)}.evm-sw-r{background:var(--red)}.evm-sw-u{background:var(--party-independent)}.evm-sw-inperson{background:var(--evm-seg-inperson)}.evm-sw-mail{background:var(--evm-seg-mail)}
.evm-legend-row{display:flex;flex-wrap:wrap;gap:8px 22px;margin:14px 0 6px;font-size:12px;color:var(--muted)}
.evm-legend-row span{display:flex;align-items:center;gap:7px}
.evm-sw-banked{background:var(--viz-accent)}.evm-sw-band{background:var(--viz-accent);opacity:.35}.evm-sw-central{width:3px!important;height:13px!important;border-radius:2px!important;background:var(--ink)}.evm-sw-tick{width:3px!important;height:13px!important;border-radius:2px!important;background:var(--muted)}
.evm-sw-forecast{background:var(--lime);box-shadow:inset 0 0 0 2px #10192d}.evm-sw-ev{background:linear-gradient(90deg,var(--blue),var(--red))}.evm-sw-ed{background:transparent;box-shadow:inset 0 0 0 2px var(--viz-accent)}
.evm-track{fill:var(--viz-canvas);stroke:var(--viz-edge)}
.evm-banked{fill:var(--viz-accent)}
.evm-proj-band{fill:var(--viz-accent);opacity:.28}
.evm-central{stroke:var(--ink);stroke-width:2.5;stroke-linecap:round}
.evm-tick{stroke:var(--muted);stroke-width:1.4;stroke-dasharray:2 4;opacity:.8}
.evm svg text.evm-tick-label{font-size:11px}.evm svg text.evm-tick-value{font:700 12px var(--sans);fill:var(--ink)}
.evm svg text.evm-bar-value{font:700 13px var(--sans);fill:var(--evm-on-accent)}
.evm-ref-pin{fill:var(--ink)}
.evm-grid{stroke:var(--chart-grid);stroke-dasharray:3 6}
.evm svg text.evm-axis{font-size:10.5px}
.evm-area{fill:var(--viz-accent);opacity:.13}.evm-line{fill:none;stroke:var(--viz-accent);stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
.evm-line-proj{stroke-dasharray:3 7;stroke:var(--ink);stroke-width:2}.evm-fan{fill:var(--viz-accent);opacity:.2}
.evm-dot{fill:var(--viz-accent);stroke:var(--surface);stroke-width:2.5}.evm-dot-proj{fill:var(--surface);stroke:var(--ink);stroke-width:2.5}
.evm-pace{margin-top:22px}
.evm-axis-line{stroke:var(--chart-grid);stroke-width:4;stroke-linecap:round}.evm-tick-minor{stroke:var(--chart-muted);stroke-width:1.5}.evm-zero{stroke:var(--muted);stroke-width:1.5;stroke-dasharray:4 5}
.evm-ev-band{opacity:.34}.evm-ed-band{fill:none;stroke:var(--viz-accent);stroke-width:2;stroke-dasharray:1 5;stroke-linecap:round}
.evm-d{color:var(--blue);fill:var(--blue)}.evm-r{color:var(--red);fill:var(--red)}.evm-i{color:var(--independent-ink);fill:var(--party-independent)}
.evm-dot-ev{stroke:var(--surface);stroke-width:3}.evm-dot-forecast{fill:var(--lime);stroke:#10192d;stroke-width:3}.evm-dot-ed{fill:var(--surface);stroke:var(--viz-accent);stroke-width:3.5}
.evm-story{margin:12px 0 4px;font-size:clamp(17px,1.7vw,21px);line-height:1.55;max-width:70ch;letter-spacing:-.01em}.evm-story strong{font-variant-numeric:tabular-nums}
.evm-backtest{padding:12px 16px;border-radius:12px;background:var(--viz-canvas);box-shadow:inset 0 0 0 1px var(--viz-edge)}
.evm-gauge{height:12px;border-radius:30px;background:var(--viz-canvas);box-shadow:inset 0 0 0 1px var(--viz-edge);overflow:hidden}
.evm-gauge-fill{height:100%;width:0;border-radius:30px;background:linear-gradient(90deg,var(--viz-accent),var(--lime));transition:width 1.1s cubic-bezier(.2,.8,.2,1)}
.evm-gauge-fill.evm-in{width:var(--w,0)}
.evm-table-wrap{overflow-x:auto;margin-top:18px}
.evm-table{border-collapse:collapse;width:100%;min-width:420px;font-size:13px;font-variant-numeric:tabular-nums}
.evm-table caption{text-align:left;font-size:12px;font-weight:650;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);padding-bottom:10px}
.evm-table :is(th,td){padding:11px 10px;border-bottom:1px solid var(--line);text-align:left}.evm-table td{text-align:right;font-weight:650}.evm-table thead th{font-size:11px;color:var(--muted);font-weight:700;letter-spacing:.06em;text-transform:uppercase}.evm-table thead th:not(:first-child){text-align:right}
.evm-table tbody th{font-weight:500}
.evm-method{margin-top:6px;border:1px solid var(--viz-edge);border-radius:var(--viz-radius);background:var(--surface)}
.evm-method>summary{cursor:pointer;padding:18px 24px;font-size:14px;font-weight:650;color:var(--viz-accent);list-style:none}
.evm-method>summary::-webkit-details-marker{display:none}.evm-method>summary::after{content:"+";float:right;font-size:20px;line-height:1}.evm-method[open]>summary::after{content:"–"}
.evm-method-body{padding:0 24px 24px;font-size:13.5px;line-height:1.65;color:var(--muted)}
.evm-method-body h4{margin:20px 0 8px;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink)}
.evm-method-body ul{margin:0;padding-left:20px;display:grid;gap:7px}.evm-method-body a{color:var(--viz-accent);text-decoration:underline;text-underline-offset:3px}
.evm-sources span{display:block;font-size:12px;opacity:.85}.evm-method-body code{font-size:11.5px;word-break:break-all}
@media(max-width:820px){.evm-grid2{grid-template-columns:1fr}.evm-block{padding:22px 18px}.evm-head{margin-top:20px}.evm-method>summary,.evm-method-body{padding-left:18px;padding-right:18px}}
@media(max-width:480px){.evm-tiles{grid-template-columns:1fr 1fr;gap:10px}.evm-tile{padding:16px 14px}.evm-tile strong{font-size:27px}.evm svg text{font-size:10px}}
@media(prefers-reduced-motion:reduce){.evm-live{animation:none}.evm-gauge-fill{transition:none}}
@media print{.evm-live{display:none}.evm-block,.evm-tile{box-shadow:none}}
