:root{color-scheme:light;--surface:#fffdf8;--surface-soft:#eeece4;--chart-grid:#d5d9de;--chart-muted:#aab0ba}
.skip-link{position:fixed;top:12px;left:16px;z-index:20000;padding:12px 18px;background:var(--lime);color:var(--navy);font-weight:750;transform:translateY(-200%)}
.skip-link:focus{transform:translateY(0)}
:is(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:3px solid var(--purple);outline-offset:4px}
.policy-links{display:flex;gap:18px;flex-wrap:wrap;flex-basis:100%;font-size:13px}
.policy-links a{text-decoration:underline;text-underline-offset:3px}
.policy-hero{background:var(--navy);color:#f8f7ef;padding:54px max(5vw,24px)}
.policy-hero h1{font-size:clamp(38px,6vw,76px);line-height:1.05;letter-spacing:-.055em;max-width:900px;margin:18px 0 24px}
.policy-hero>p:not(.eyebrow){font-size:19px;max-width:760px;line-height:1.6;color:#d5dceb}
.policy-hero>span{display:block;font-size:13px;margin-top:24px;color:#d5dceb}
.policy-body{max-width:1100px;padding:24px max(5vw,24px) 56px;margin:auto}
.policy-body section{border-bottom:1px solid var(--line);padding:30px 0}
.policy-body h2{font-size:27px;letter-spacing:-.035em;margin:0 0 16px}
.policy-body p,.policy-body li{font-size:17px;line-height:1.8;max-width:820px}
.policy-body p+p{margin-top:16px}.policy-body li+li{margin-top:10px}
.policy-body a{color:var(--viz-accent);text-decoration:underline;text-underline-offset:3px}
.policy-table{overflow-x:auto}.policy-table table{min-width:520px;border-collapse:collapse;width:100%;font-size:15px}
.policy-table :is(th,td){padding:16px 12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.policy-table caption{font-weight:700;text-align:left;padding-bottom:12px}
.county-source-notes caption{font-size:13px;text-align:left;padding:12px 0;color:var(--muted)}
@media(max-width:480px){.state-finance-types{grid-template-columns:1fr}.state-finance-types>div{min-width:0}.dossier-page footer>span{white-space:normal}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
footer:has(>.contact-links){flex-wrap:wrap}
.contact-links{display:flex;flex-wrap:wrap;flex-basis:100%;gap:20px 48px;padding-top:20px;border-top:1px solid var(--line);font-size:14px;text-align:left}
.contact-links a{display:grid;gap:4px;color:inherit;text-decoration:none}
.contact-links span{color:var(--muted);font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase}
.contact-links strong{font-size:16px;font-weight:650;letter-spacing:0}
.contact-links a:hover strong{text-decoration:underline;text-underline-offset:4px}
.contact-links a:focus-visible{outline:2px solid var(--purple);outline-offset:6px;border-radius:3px}
.report-footer .contact-links a{margin-left:0}
.report-footer .contact-links span,.references-footer .contact-links span{color:inherit;opacity:.8}
/* 21CEE visual language: ink canvases, lavender measures, lime emphasis, fixed party identities. */
:root{--blue:#2867d8;--red:#c84450;--viz-accent:#8062af;--viz-canvas:#eef1f7;--viz-edge:#dce1eb;--viz-shadow:0 12px 32px #17223808;--viz-radius:18px;--viz-positive:#3e806e}
html[data-theme=dark]{--viz-accent:#c4b0ee;--viz-canvas:#141e30;--viz-edge:#344158;--viz-shadow:0 14px 34px #00000020;--viz-positive:#91cbb7}
:is(.home-race,.race-card,.report-race,.dossier-panel,.dossier-call,.map-panel,.context-grid>article,.historical-chart,.reference-card,.reader-poll-card){border-radius:var(--viz-radius);box-shadow:var(--viz-shadow)}
:is(.balance-numbers,.dossier-call>strong,.quote-number,.market-headline strong,.finance-row b,.state-finance-heading>strong,.state-finance-types b,.state-map-seat-counts strong,.history-chart-label strong,.report-margin){font-variant-numeric:tabular-nums;font-feature-settings:"tnum";letter-spacing:-.045em}
:is(.map-panel,.historical-chart,.dossier-panel){border-color:var(--viz-edge)}
:is(.county-map,.delegation-map,.state-map-canvas,.balance-card .state-map-preview,.report-chamber-map){background:var(--viz-canvas);border-radius:14px;box-shadow:inset 0 0 0 1px var(--viz-edge)}
.county-map{padding:16px}.county-map path{stroke:var(--viz-canvas)}
.dossier-portraits .candidate-portrait{max-width:none;width:min(var(--portrait-size,160px),100%);height:auto;aspect-ratio:1}
.county-map path:hover{stroke:var(--ink);filter:brightness(1.08)}
.map-blue{--state-fill:var(--blue)}.map-red{--state-fill:var(--red)}.map-beige{--state-fill:var(--party-independent)}
.report-page{--report-blue:var(--blue);--report-red:var(--red);--report-yellow:var(--independent-ink)}
.party-d,.report-seat-dots .seat-d{background:var(--blue)}.party-r,.report-seat-dots .seat-r{background:var(--red)}.party-i,.report-seat-dots .seat-i{background:var(--party-independent)}
.seat-mosaic .seat-d{fill:var(--blue)}.seat-mosaic .seat-r{fill:var(--red)}.seat-mosaic .seat-i{fill:var(--party-independent)}
.state-map-count-d,.market-party-D .market-headline strong{color:var(--blue)}.state-map-count-r,.market-party-R .market-headline strong{color:var(--red)}.state-map-count-i{color:var(--independent-ink)}
.state-map-state>path,.state-map-callout{stroke:var(--viz-canvas);stroke-width:1.6}
.state-map-state:hover>path,.state-map-state:focus-visible>path{stroke:var(--ink)}
.historical-chart{padding:26px}.history-chart-label{align-items:start;font-size:14px;line-height:1.5;margin-bottom:22px}.history-chart-label strong{font-size:32px;color:var(--viz-accent)}
.historical-chart svg text{fill:var(--muted);font:12px var(--sans);font-variant-numeric:tabular-nums}.historical-chart .history-grid{stroke:var(--chart-grid);stroke-dasharray:3 6}.historical-chart .history-area{fill:var(--viz-accent);opacity:.1}.historical-chart .history-line{stroke:var(--viz-accent);stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.historical-chart .history-point{fill:var(--viz-accent);stroke:var(--surface);stroke-width:2}.historical-chart .history-point-latest{fill:var(--lime);stroke:var(--ink);stroke-width:2;r:6}
.lever-trend-chart polyline{stroke-linecap:round;stroke-linejoin:round}.lever-trend-chart svg{border-radius:10px}
:is(.finance-track,.issue-track,.market-track,.approval-bar,.context-bar,.stress-bar){border-radius:30px;background:var(--viz-canvas);box-shadow:inset 0 0 0 1px var(--viz-edge)}
:is(.finance-track i,.issue-track i,.market-track i,.approval-bar span,.approval-bar i){border-radius:30px}
.finance-track{height:16px}.issue-track,.market-track{height:10px}.issue-row b{font-size:20px;color:var(--viz-accent)}.issue-track i{background:var(--viz-accent)}
.approval-reading>strong{color:var(--viz-positive)}.approval-bar span,.approval-key i{background:var(--viz-positive)}.approval-bar i,.approval-key>span+span i{background:var(--viz-accent)}
.range-track{stroke:var(--chart-grid);stroke-linecap:round}.margin-dot-chart{background:var(--viz-canvas);border-radius:14px;padding:12px}.margin-dot-chart .range-track{stroke-width:4}.margin-dot-chart .margin-zero{stroke:var(--muted);stroke-width:1.5;stroke-dasharray:3 4}.margin-direction{stroke-width:8;stroke-linecap:round}.margin-dot-chart circle{stroke:var(--surface);stroke-width:4}.margin-dot-chart text{font-size:14px;font-weight:550}.margin-chart-label strong{font-size:34px}
.viz-scale-note{font-size:10px!important;color:var(--muted);margin-top:-5px!important}.quote-range{display:block;width:100%;max-width:260px;height:auto;aspect-ratio:200/36;margin-top:10px}.quote-range text{fill:var(--muted);font-size:10px;font-variant-numeric:tabular-nums}.quote-range line{stroke-linecap:round}.quote-range circle{stroke:var(--surface);stroke-width:2}
.state-finance-types>div,.dossier-facts>div{border-radius:10px}.state-finance-types b{font-size:30px}.market-average{background:var(--viz-canvas)}.market-odds-table thead th{color:var(--muted);font-size:12px}.market-odds-table td,.market-odds-table th{border-color:var(--viz-edge)}
.market-party-I .market-headline strong{color:var(--independent-ink)}.market-party-D .market-track i{background:var(--blue)}.market-party-R .market-track i{background:var(--red)}.market-party-I .market-track i{background:var(--party-independent)}
@media(max-width:680px){.historical-chart{padding:18px 12px}.history-chart-label{font-size:12px;gap:16px}.history-chart-label strong{font-size:26px}.county-map{padding:10px}.margin-chart-label strong{font-size:29px}}
@media print{:root{--viz-shadow:none;--viz-canvas:white;--viz-edge:#ddd}.history-area{opacity:.05}}
.theme-toggle{font:inherit;font-size:12px;padding:8px 12px;border:1px solid #ffffff40;border-radius:40px;background:transparent;color:#f7f4eb;cursor:pointer;white-space:nowrap}.site-header nav{flex-wrap:wrap}.site-header{height:auto;min-height:108px;padding-top:18px;padding-bottom:18px}.theme-toggle:hover{background:#ffffff13}
.race-page-link{display:flex;justify-content:space-between;margin-top:20px;border-top:1px solid var(--line);padding-top:16px;font-size:12px;color:#8967b0;font-weight:650}
.home-race{position:relative}.home-race-link::after{content:"";position:absolute;inset:0}.home-race:focus-within{outline:3px solid #9763db;outline-offset:4px}.home-race:hover{border-color:#9274b7}
html[data-theme=dark]{color-scheme:dark;--paper:#101725;--ink:#edf0f6;--muted:#a7b2c3;--line:#344054;--surface:#192333;--surface-soft:#202d41;--blue:#77a9ff;--red:#ff8990;--chart-grid:#38465c;--chart-muted:#7f8b9e}
html[data-theme=dark] body{background:var(--paper);color:var(--ink)}
html[data-theme=dark] :is(.race-card,.balance-card,.report-race,.search,.report-briefing,.report-summary-table,.report-movement-table,.report-watchlist,.report-ledger,.report-evidence,.market-comparison,.dossier-panel,.dossier-compare,.map-panel,.report-masthead,.report-contents,.state-map-board,.engine-panel,.race-expanded,.race-details-body,.portrait-fallback,.report-filters button,.report-search input,.report-search select){background:var(--surface);color:var(--ink);border-color:var(--line)}
html[data-theme=dark] :is(.race-card h3,.report-race h3,.candidate-name,.race-pick strong,.report-race-call strong,.market-headline,.report-section-heading,.report-masthead h1,.market-source,.report-filters,.report-search,.state-map-board h3){color:var(--ink)}
html[data-theme=dark] :is(.race-data,.race-footnote,.report-summary-note,.report-race-details,.market-details p,.market-source>small,.market-bar-labels,.market-topline,.market-headline>span small,.report-section-heading p,.report-model-note,.report-credit-note){color:var(--muted)}
html[data-theme=dark] :is(.report-results,.report-watchlist,.report-ledger,.report-evidence,.balance-section,.race-section,.method-section,.follow-section,.report-footer,footer){background:var(--paper);color:var(--ink)}
html[data-theme=dark] :is(.report-source-status,.report-status,.state-map-empty,.delegation-map,.report-map-notes,.balance-details,.race-quality){background:var(--surface-soft);color:var(--ink)}
html[data-theme=dark] a{color:inherit}html[data-theme=dark] .market-details>summary{color:var(--purple)}html[data-theme=dark] .market-disagrees{background:#49311f;color:#ffcc96}html[data-theme=dark] .market-verdict{color:#c4d9b8}html[data-theme=dark] .market-party-R .market-headline strong{color:var(--red)}html[data-theme=dark] .market-party-D .market-headline strong{color:var(--blue)}
html[data-theme=dark]{--independent-ink:#ffd85c}
html[data-theme=dark] :is(.home-race,.reference-card,.ref-table-wrap,.photo-credit,.reader-poll-card,.reader-poll-select,.historical-chart,.history-choice select,.context-grid>article){background:var(--surface);color:var(--ink);border-color:var(--line)}
html[data-theme=dark] :is(.references-jump,.ref-table-wrap thead,.project-credit,.method-warning,.signup-pending,.reader-poll-note,.reader-profile-panel,.reader-service-message,.reader-newsletter,.reader-delete-confirm,.reader-poll-your-answer,.reader-poll-choice:has(input:checked),.state-map-canvas,.balance-card .state-map-preview,.stress-panel,.state-map-office-controls,.state-map-bars,.reader-result-track,.release-freshness){background:var(--surface-soft);color:var(--ink);border-color:var(--line)}
/* These two presentation rules counter existing light-mode !important declarations. */
html[data-theme=dark] :is(.state-map-board,.state-map-sidebar){background:var(--surface)!important;color:var(--ink);border-color:var(--line)}
html[data-theme=dark] :is(.method-copy>p,.signup-pending p,.reader-profile-panel>p,.reader-profile-explanation,.reader-service-message p,.reader-delete-confirm p,.state-map-seat-total,.state-map-percentages,.state-map-race-label,.state-map-races li>span:last-child,.state-map-method,.state-map-inset-note,.state-map-legend>span,.state-map-legend small,.stress-label,.stress-warning,.stress-results small,.race-change,.total-comparisons){color:var(--muted)}
html[data-theme=dark] :is(.reader-poll-note strong,.reader-poll-button.secondary,.reader-newsletter-about,.total-comparisons b,.state-map-preview>span,.state-map-office-controls button,.state-map-picker-label){color:var(--ink)}
html[data-theme=dark] :is(.home-race-top>span,.home-race-link,.eyebrow.ink,.pending-label,.disabled-cta,.reader-poll-kicker,.reader-newsletter .eyebrow,.reader-newsletter .reader-newsletter-pending,.context-details,.history-chart-label strong,.stress-choices button){color:var(--purple)}
html[data-theme=dark] :is(#state-map-picker,.release-freshness button){background:var(--surface-soft);color:var(--ink);border-color:var(--line)}
html[data-theme=dark] .state-map-office-controls button[aria-pressed=true]{background:var(--lime);color:var(--navy)}
html[data-theme=dark] .state-map-live-tag{background:#31422e;color:#d6efb5}
html[data-theme=dark] .reader-poll-button.danger{background:#422b30;color:#ffb5b5;border-color:#9d626c}
html[data-theme=dark] .reader-poll-status{color:var(--muted)}html[data-theme=dark] .reader-poll-status[data-tone=error]{color:#ffb5b5}html[data-theme=dark] .reader-poll-status[data-tone=warning]{color:#ffd394}
html[data-theme=dark] .references-page main a:not(.button):not(.text-link){color:var(--blue)}
html[data-theme=dark] .references-page .references-jump a{color:var(--ink)}
html[data-theme=dark] .button-lime{color:var(--navy)}
html[data-theme=dark] :is(.candidate-portrait,.photo-credit img){background:var(--surface-soft)}
html[data-theme=dark] .report-ledger .all-calls-table tbody tr:nth-child(even){background:var(--surface-soft)}
html[data-theme=dark] .report-race-call.party-D :is(strong,.report-margin){color:var(--blue)}html[data-theme=dark] .report-race-call.party-R :is(strong,.report-margin){color:var(--red)}html[data-theme=dark] .report-race-call.party-I :is(strong,.report-margin){color:var(--independent-ink)}
html[data-theme=dark] .stress-choices button[aria-pressed=true]{background:var(--lime);color:var(--navy);border-color:var(--lime)}
@media(max-width:680px){.site-header nav .theme-toggle{display:inline-block;font-size:11px;padding:6px 10px}.site-header nav{gap:14px!important}}
@media(max-width:760px){:root .site-header nav{min-width:0;width:100%;max-width:100%;flex-wrap:nowrap;overflow-x:auto;justify-content:flex-start;gap:20px!important;scrollbar-width:thin}.site-header nav a,.site-header nav button{flex-shrink:0}.site-header nav .theme-toggle{position:sticky;right:0;background:var(--navy);box-shadow:-12px 0 12px var(--navy)}}
@media print{.theme-toggle{display:none}html[data-theme=dark]{--paper:white;--ink:#172238;--surface:white;--surface-soft:#f3f3f3;--muted:#656a74;--line:#ddd;--viz-canvas:white;--viz-edge:#ddd;--viz-shadow:none;--viz-accent:#8062af;color-scheme:light}}
