:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--ink:#182b39;--muted:#5f7180;--line:#dfe7eb;--paper:#f5f7f8;--surface:#fff;--navy:#1d2f43;--teal:#0f6d7b;--green:#1d795f;--green-bg:#eaf7f2;--amber:#a36a22;--amber-bg:#fff1d9;--blue:#2d5d87;--blue-bg:#edf4fb;--purple:#675ad2;--purple-bg:#f1ecff;--gray:#5f6d7d;--gray-bg:#edf2f5;--red:#8d4b58;font-synthesis:none;text-rendering:optimizelegibility;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}body.tv-mode{--paper:#0e1720;--surface:#152634;--ink:#eaf3ff;--muted:#aac2d6;--line:#ccdceb2e;background:linear-gradient(#0a1520,#0e1f2d)}body.tv-mode .site-header{background:linear-gradient(90deg,#0d1a24,#132a38)}*{box-sizing:border-box}html{background:var(--paper);scroll-behavior:smooth;min-width:320px}body{color:var(--ink);background:var(--paper);margin:0;font-size:15px;line-height:1.45}button,select{font:inherit}button,a,select{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,select:focus-visible{outline-offset:2px;outline:3px solid #31a4a2}[hidden]{display:none!important}.site-header{z-index:20;color:#fff;background:var(--navy);grid-template-rows:minmax(52px,auto) auto;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:2px 16px;min-height:94px;padding:5px max(20px,50vw - 725px);display:grid;position:sticky;top:0;box-shadow:0 5px 18px #1426361f}.brand{color:inherit;grid-area:1/1;align-items:center;gap:12px;text-decoration:none;display:inline-flex}.brand-mark{border:1px solid #ffffff8c;border-radius:9px 9px 9px 3px;align-items:end;gap:3px;width:31px;height:31px;padding:5px;display:flex;transform:rotate(-4deg)}.brand-mark span{background:#8bd0c9;border-radius:2px 2px 1px 1px;flex:1}.brand-mark span:first-child{opacity:.8;height:45%}.brand-mark span:nth-child(2){height:72%}.brand-mark span:nth-child(3){background:#f4c76e;height:100%}.brand-copy{letter-spacing:.1em;line-height:1.08;display:grid}.brand-copy strong{font-size:12px;font-weight:800}.brand-copy>span{color:#b9cbd7;letter-spacing:.19em;margin-top:4px;font-size:9px;font-weight:700}.header-actions{grid-area:1/3;align-items:center;gap:8px;display:flex}.fullscreen-toggle,.tv-toggle{color:#fff;cursor:pointer;background:#ffffff12;border:1px solid #ffffff59;border-radius:8px;place-items:center;width:40px;height:40px;padding:0;display:grid}.fullscreen-toggle{font-size:22px}.fullscreen-toggle:hover,.fullscreen-toggle[aria-pressed=true]{color:var(--navy);background:#fff}.theme-icon{font-size:20px;line-height:1}.tv-toggle:hover,.tv-toggle[aria-pressed=true]{color:var(--navy);background:#fff}.zoom-toggle{color:#fff;cursor:pointer;background:#ffffff12;border:1px solid #ffffff59;border-radius:8px;place-items:center;width:40px;height:40px;padding:0;font-size:20px;line-height:1;display:grid}.zoom-toggle:hover,.zoom-toggle[aria-pressed=true]{color:var(--navy);background:#fff}.header-election{color:#fff;border-left:2px solid #0000;grid-area:1/2;align-items:center;gap:12px;min-width:0;padding:0 14px;display:flex}.header-election.status-elected{border-left-color:#4caf7e}.header-election.status-progress{border-left-color:#d4a93f}.header-election.status-runoff{border-left-color:#d3a15f}.header-election.status-waiting{border-left-color:#8391a0}.president-kicker{color:#c4d4dc;letter-spacing:.1em;flex-wrap:wrap;align-items:center;gap:7px;min-width:165px;font-size:9px;font-weight:800;display:flex}.live-dot{background:#4fc89d;border-radius:50%;width:9px;height:9px;display:inline-block}.round-chip{color:#fff;letter-spacing:.1em;border:1px solid #ffffff38;border-radius:999px;padding:4px 7px;font-size:9px}.president-summary{text-align:right;flex:1;justify-content:flex-end;align-items:center;gap:8px;min-width:0;margin:0;font-size:13px;font-weight:750;display:flex}.banner-figure{justify-content:flex-end;align-items:center;gap:7px;min-width:0;display:flex}.banner-candidate{background:#ffffff0f;border:1px solid #ffffff1f;border-radius:7px;align-items:center;gap:7px;min-width:0;padding:4px 7px;display:flex}.banner-candidate.is-leading{background:#ffffff14;border-color:#ffffff38}.mini-portrait{border:2px solid var(--party-color,#fff);background:linear-gradient(135deg,#ffffff2e,#ffffff0f);border-radius:50%;flex:none;place-items:center;width:34px;height:34px;display:grid;overflow:hidden}.mini-portrait img{object-fit:cover;width:100%;height:100%}.mini-portrait span{font-size:11px;font-weight:900}.mini-copy{min-width:0;display:grid}.mini-copy strong{color:#fff;font-size:11px;line-height:1.1}.mini-copy small{letter-spacing:.08em;text-transform:uppercase;color:#ffffffb3;font-size:8px}.mini-percent{text-align:right;color:#fff;min-width:48px;font-size:11px;font-weight:800}.banner-text{max-width:700px;display:inline-block}.header-tse-update{color:#b9cbd4;flex-wrap:wrap;grid-area:2/1/auto/-1;justify-content:center;justify-self:center;align-items:baseline;gap:3px 7px;font-size:9px;line-height:1.2;display:flex}.header-tse-update>span{color:#96aeb9;text-transform:uppercase;font-size:8px;font-weight:800}.header-tse-update>strong{color:#f1f5f6;font-variant-numeric:tabular-nums;font-size:10px}.header-tse-update>small{color:#e2c271;font-size:7px;font-weight:850}.page-shell{width:min(100% - 40px,1450px);margin:0 auto;padding:24px 0 34px}.intro-row{justify-content:space-between;align-items:end;gap:20px;margin:0 0 18px;display:flex}.live-badge{color:#0b5c66;letter-spacing:.18em;text-transform:uppercase;background:linear-gradient(135deg,#e8faf7,#f8f4ff);border:1px solid #13676238;border-radius:999px;align-items:center;gap:8px;margin:0 0 10px;padding:8px 12px;font-size:10px;font-weight:900;display:inline-flex;box-shadow:0 8px 20px #196f9d1f}.live-badge:before{content:"";background:#19b26a;border-radius:50%;width:8px;height:8px;box-shadow:0 0 0 5px #19b26a24}.eyebrow{color:var(--teal);letter-spacing:.16em;margin:0 0 6px;font-size:9px;font-weight:850}h1,h2,h3,p{margin-top:0}h1{letter-spacing:-.055em;margin-bottom:5px;font-size:clamp(27px,3vw,38px);line-height:1.08}.intro-copy{color:var(--muted);margin:0;font-size:13px}.share-link{color:var(--teal);flex:none;padding:9px 0;font-size:12px;font-weight:750;text-decoration:none}.share-link:hover{text-decoration:underline}.share-link span{margin-left:5px}.panel{border:1px solid var(--line);background:var(--surface);border-radius:16px;box-shadow:0 8px 30px #1f36480a}.filter-bar{align-items:end;gap:14px;margin-bottom:18px;padding:12px 15px;display:flex}.filter-control{gap:5px;min-width:150px;display:grid}.filter-control>span{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-size:10px;font-weight:800}.choice-grid{grid-template-columns:repeat(2,minmax(105px,1fr));gap:7px;display:grid}.choice-card{color:#314653;text-align:left;cursor:pointer;background:#fff;border:1px solid #d3dfe3;border-radius:7px;align-content:center;gap:1px;min-height:49px;padding:6px 10px;transition:border-color .16s,background-color .16s,transform .16s;display:grid}.choice-card strong{font-size:12px;line-height:1.15}.choice-card small{color:#6c7d87;font-size:9px}.choice-card:hover{border-color:var(--teal);transform:translateY(-1px)}.choice-card[aria-pressed=true]{color:#fff;background:#287a75;border-color:#287a75;box-shadow:0 3px 9px #287a752e}.choice-card[aria-pressed=true] small{color:#ffffffd1}.filter-message{min-height:17px;color:var(--amber);flex:1;padding:8px 4px;font-size:12px;font-weight:700}.state-ticker{background:#fff;border:1px solid #dce5e8;border-radius:9px;margin:0 0 18px;overflow:hidden}.state-ticker-heading{justify-content:space-between;align-items:center;gap:12px;padding:10px 14px 8px;display:flex}.state-ticker-heading .eyebrow{margin-bottom:2px}.state-ticker-heading h2{margin:0;font-size:16px}.state-ticker-count{color:#275f4b;white-space:nowrap;background:#e5f1e9;border-radius:99px;padding:4px 8px;font-size:10px;font-weight:800}.state-ticker-window{padding:0 0 9px;overflow:hidden}.state-ticker-track,.state-ticker-group{width:max-content;display:flex}.state-ticker:hover .state-ticker-track{animation-play-state:paused}.state-ticker-group{gap:8px;padding-right:8px}.state-ticker-card{background:#fbfcfc;border:1px solid #e1e8eb;border-radius:7px;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:8px;width:214px;min-height:64px;padding:8px;display:grid}.state-ticker-card>img{object-fit:contain;background:#fff;border:1px solid #e0e6e8;width:38px;height:26px;display:block}.state-ticker-copy,.state-ticker-meta{gap:2px;min-width:0;display:grid}.state-ticker-copy strong{color:#314653;text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.state-ticker-copy span{color:#71818a;text-overflow:ellipsis;white-space:nowrap;font-size:9px;overflow:hidden}.state-ticker-meta{text-align:right}.state-ticker-meta strong{color:#344d58;font-size:11px}.state-ticker-meta span{color:#71818a;max-width:72px;font-size:8px;line-height:1.1}.state-ticker-credit{color:#7b8990;margin:0;padding:0 14px 8px;font-size:8px}.state-ticker-credit a,.site-footer a{color:inherit}.dashboard-layout{grid-template-columns:minmax(440px,.85fr) minmax(0,1.45fr);align-items:start;gap:18px;display:grid}.map-panel,.result-panel{min-width:0;padding:18px}.section-heading,.result-heading,.candidate-heading{justify-content:space-between;align-items:center;gap:12px;display:flex}.section-heading h2,.result-heading h2{letter-spacing:-.035em;margin:0;font-size:22px}.map-turn-label{color:var(--blue);background:var(--blue-bg);letter-spacing:.11em;white-space:nowrap;border-radius:999px;padding:6px 8px;font-size:9px;font-weight:850}.map-caption{color:var(--muted);margin:7px 0 11px;font-size:11px}.governor-counts{color:var(--ink);background:#f0f5f6;border-radius:10px;margin:0 0 12px;padding:10px 12px;font-size:12px;font-weight:750}.governor-counts.party-counts{background:#f7f8f8;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:7px;display:grid}.party-count-heading{color:#62737c;text-transform:uppercase;grid-column:1/-1;font-size:9px;font-weight:850}.party-count{color:#3b4b55;background:#fff;border:1px solid #e1e7e9;border-radius:6px;align-items:center;gap:7px;min-width:0;padding:7px;display:flex}.party-count-copy{flex:1;gap:2px;min-width:0;display:grid}.party-count-copy strong{color:#293f4a;text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.party-count-copy small{color:#718089;font-size:8px}.party-count-number{color:#1d2f3a;font-variant-numeric:tabular-nums;white-space:nowrap;flex:none;font-size:16px}.party-count-number small{font-size:8px;font-weight:650}.party-count i,.legend-pt i,.legend-pl i,.legend-tie i{border-radius:50%;width:10px;height:10px;display:inline-block}.party-count-pt i,.legend-pt i{background:#aa2438}.party-count-pl i,.legend-pl i{background:#20578c}.party-count-tie i,.legend-tie i{background:#aeb8be}.party-count-missing{color:#718089;font-size:10px}@media (width<=520px){.governor-counts.party-counts{grid-template-columns:minmax(0,1fr)}.party-count-heading{grid-column:auto}}.president-state-summary{background:#fbfcfc;border:1px solid #e2e8eb;border-radius:8px;margin:0 0 13px;padding:10px}.president-state-summary-heading{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}.president-state-summary-heading .eyebrow{margin:0}.president-state-summary-heading h3{margin:1px 0 0;font-size:15px}.president-state-summary-heading>span{color:#6c7d87;font-size:9px;font-weight:800}.president-state-candidates{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;display:grid}.president-state-candidate{border:1px solid #e0e7e9;border-left:3px solid var(--candidate-color,#74828a);background:#fff;border-radius:6px;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:8px;min-width:0;padding:8px;display:grid}.president-state-portrait{color:#50636e;background:#e6edef;border-radius:4px;place-items:center;width:38px;height:46px;font-size:10px;font-weight:900;display:grid;position:relative;overflow:hidden}.president-state-portrait img{object-fit:cover;object-position:center 24%;width:100%;height:100%;position:absolute;inset:0}.president-state-copy{gap:2px;min-width:0;display:grid}.president-state-copy small{color:#7a8991;font-size:7px;font-weight:850}.president-state-copy strong{color:#293f4a;text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.president-state-copy span{color:var(--candidate-color,#667883);font-size:9px;font-weight:800}.president-state-metrics{text-align:right;gap:1px;display:grid}.president-state-metrics strong{color:#2d424d;font-variant-numeric:tabular-nums;white-space:nowrap;font-size:12px}.president-state-metrics span,.president-state-metrics small{color:#74838b;white-space:nowrap;font-size:8px}.president-state-metrics small{color:var(--candidate-color,#667883);font-weight:750}.president-trend{border-top:1px solid #e1e8eb;margin-top:14px;padding-top:12px}.president-trend-heading{flex-wrap:wrap;justify-content:space-between;align-items:end;gap:8px;margin-bottom:8px;display:flex}.president-trend-heading .eyebrow{margin-bottom:2px}.president-trend-heading h3{margin:0;font-size:15px}.president-trend-legend{flex-wrap:wrap;gap:6px 12px;display:flex}.president-trend-key{color:#435660;align-items:center;gap:5px;font-size:9px;font-weight:750;display:inline-flex}.president-trend-key i{background:var(--series-color);border-radius:99px;width:16px;height:3px}.president-trend-chart{width:100%;height:auto;display:block;overflow:visible}#president-trend-chart .president-trend-grid line{stroke:#e3e9eb;stroke-width:1px}#president-trend-chart .president-trend-grid text,#president-trend-chart .president-trend-uf{fill:#6d7c84;font-family:inherit;font-size:10px}#president-trend-chart .president-trend-uf{font-size:9px}#president-trend-chart .president-trend-series path{fill:none;stroke:var(--series-color);stroke-width:3px;stroke-linecap:round;stroke-linejoin:round}#president-trend-chart .president-trend-series circle{fill:#fff;stroke:var(--series-color);stroke-width:2px}.header-actions{gap:8px}.special-scopes{gap:7px;margin-bottom:9px;display:flex}.scope-button{color:#405369;cursor:pointer;background:#fff;border:1px solid #cbd6dc;border-radius:999px;min-height:31px;padding:5px 11px;font-size:11px;font-weight:750}.scope-button:hover{border-color:var(--teal)}.scope-button[aria-pressed=true]{border-color:var(--navy);color:#fff;background:var(--navy)}.uf-map{aspect-ratio:800/691;width:100%;max-width:680px;height:auto;margin:0 auto;scroll-margin-top:190px;position:relative}.uf-map .svg-container{width:100%;height:100%;overflow:visible;position:relative!important;inset:auto!important}.uf-map svg{min-height:0;display:block;width:100%!important;height:100%!important}.state-shape{cursor:pointer;stroke:#11273ab3;stroke-width:1.25px;transform-origin:50%;transition:transform .16s,filter .16s,opacity .16s}.state-shape:hover{filter:brightness(1.04)}.state-shape[aria-pressed=true]{stroke:#102c52;stroke-width:2.2px;filter:drop-shadow(0 0 0 2px #102c521f)}.state-shape.status-elected{fill:#78ad84}.state-shape.status-math{fill:#70aaa2}.state-shape.status-progress{fill:#e3c36d}.state-shape.status-runoff{fill:#d3a15f}.state-shape.status-waiting{fill:#d0d8dc}.state-shape.status-unknown{fill:#e5e9eb}.state-label{fill:#203544;letter-spacing:.08em;pointer-events:none;-webkit-user-select:none;user-select:none;text-anchor:middle;paint-order:stroke;stroke:#ffffffe0;stroke-linejoin:round;stroke-width:4px;font-family:inherit;font-size:18px;font-weight:900}.state-label-status{font-size:13px;font-weight:750}.map-tooltip{z-index:40;color:#233744;pointer-events:none;background:#fff;border:1px solid #c7d3d8;border-radius:8px;width:min(310px,100vw - 24px);padding:12px;position:fixed;box-shadow:0 12px 32px #12293838}.map-tooltip-heading{border-bottom:1px solid #e2e8eb;justify-content:space-between;align-items:flex-start;gap:10px;padding-bottom:9px;display:flex}.map-tooltip-heading>div{grid-template-columns:32px 1fr;align-items:center;gap:0 8px;display:grid}.map-tooltip-heading>div>img{object-fit:contain;background:#fff;border:1px solid #e0e6e8;grid-row:span 2;width:32px;height:20px}.map-tooltip-heading>div>strong{font-size:14px;line-height:1.1}.map-tooltip-status{color:#253b46;text-align:right;background:#e8edef;border-radius:4px;max-width:135px;padding:4px 6px;font-size:9px;font-weight:800}.map-tooltip[data-kind=elected] .map-tooltip-status{color:#285b39;background:#e6f1e8}.map-tooltip[data-kind=runoff] .map-tooltip-status{color:#76501f;background:#f4ead9}.map-tooltip-lean{color:#3d5665;margin:8px 0 2px;font-size:10px;font-weight:800}.map-tooltip-lean[data-side=PT]{color:#a32639}.map-tooltip-lean[data-side=PL]{color:#225d91}.map-tooltip-candidates{gap:1px;display:grid}.map-tooltip-candidate{border-bottom:1px solid #edf0f1;justify-content:space-between;gap:8px;padding:9px 0;display:flex}.map-tooltip-candidate:last-child{border-bottom:0}.map-tooltip-person{align-items:center;gap:8px;min-width:0;display:flex}.map-tooltip-portrait{color:#425c68;background:#e4ecee;border-radius:5px;flex:none;place-items:center;width:36px;height:42px;font-size:10px;font-weight:850;display:grid;position:relative;overflow:hidden}.map-tooltip-portrait img{object-fit:cover;object-position:center 24%;width:100%;height:100%;position:absolute;inset:0}.map-tooltip-candidate-info,.map-tooltip-candidate-votes{gap:2px;min-width:0;display:grid}.map-tooltip-candidate-info small{color:#75838c;letter-spacing:.08em;font-size:8px;font-weight:850}.map-tooltip-candidate-info strong{overflow-wrap:anywhere;font-size:12px;line-height:1.15}.map-tooltip-candidate-info span,.map-tooltip-candidate-votes span{color:#687883;font-size:9px}.map-tooltip-candidate-votes{text-align:right;flex:none;align-content:center}.map-tooltip-candidate-votes strong{font-variant-numeric:tabular-nums;font-size:14px}.map-tooltip-candidate.is-empty strong{color:#697a85;font-size:11px}.map-tooltip-sections{color:#647580;margin:8px 0 0;font-size:9px}.map-legend{background:#fffffff5;border:1px solid #e1e7ea;border-radius:10px;flex-wrap:wrap;gap:6px;margin-top:12px;padding:8px;display:flex;box-shadow:0 4px 12px #1e344614}.legend-item{white-space:nowrap;border-radius:999px;align-items:center;gap:4px;padding:4px 6px;font-size:9px;font-weight:750;display:inline-flex}.legend-item>span{font-weight:950}.legend-elected{color:#203a27;background:#78ad84}.legend-math{color:#1e3e3b;background:#70aaa2}.legend-progress{color:#433919;background:#e3c36d}.legend-runoff{color:#49371e;background:#d3a15f}.legend-waiting{color:#36454d;background:#d0d8dc}.map-legend-items{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.party-legend .legend-item{color:#fff}.party-legend .legend-pt{background:#aa2438}.party-legend .legend-pl{background:#20578c}.party-legend .legend-tie{color:#34444d;background:#e2e7ea}.party-legend-caption{color:#677781;font-size:9px}.map-source-note{color:#788594;margin:8px 0 0;font-size:9px}body.presidential-fullscreen{background:#091722;min-height:100vh}body.presidential-fullscreen .site-header{z-index:50;min-height:94px}body.presidential-fullscreen .page-shell{width:100%;max-width:none;margin:0;padding:8px 20px 14px}body.presidential-fullscreen .intro-row,body.presidential-fullscreen .filter-bar,body.presidential-fullscreen .state-ticker,body.presidential-fullscreen .result-panel,body.presidential-fullscreen .site-footer,body.presidential-fullscreen .map-caption,body.presidential-fullscreen .special-scopes,body.presidential-fullscreen #map-source-note,body.presidential-fullscreen #map-status-legend,body.presidential-fullscreen .president-state-summary{display:none!important}body.presidential-fullscreen .dashboard-layout{width:100%;margin:0;display:block}body.presidential-fullscreen .map-panel{box-shadow:none;background:0 0;border:0;border-radius:0;grid-template:"heading heading""counts counts""map chart"minmax(0,1fr)"legend chart"/minmax(0,1.05fr) minmax(420px,.95fr);align-items:start;gap:8px 20px;padding:12px 18px;display:grid}body.presidential-fullscreen .section-heading{grid-area:heading}body.presidential-fullscreen .section-heading h2{font-size:22px}body.presidential-fullscreen .governor-counts{grid-area:counts;margin:0;padding:7px 10px}body.presidential-fullscreen .uf-map{grid-area:map;align-self:center;width:100%;max-width:760px}body.presidential-fullscreen .map-legend{grid-area:legend;margin:0;padding:5px}body.presidential-fullscreen #president-trend{border:0;grid-area:chart;align-self:center;width:100%;margin:0;padding:0}body.presidential-fullscreen .president-trend-heading{flex-direction:column;align-items:flex-start}body.presidential-fullscreen .president-trend-chart{max-height:calc(100vh - 210px)}body.presidential-fullscreen .map-tooltip{z-index:60}body.presidential-fullscreen .site-header{position:sticky}body.presidential-fullscreen .map-panel{min-height:calc(100vh - 110px)}body.presidential-fullscreen .dashboard-layout{scroll-margin-top:100px}.result-heading{border-bottom:1px solid #edf0f2;padding-bottom:14px}.round-seal{color:#34495c;letter-spacing:.13em;background:#e9eef1;border-radius:999px;flex:none;padding:7px 10px;font-size:10px;font-weight:900}.round-seal.is-final{color:var(--green);background:var(--green-bg)}.round-seal.is-partial{color:var(--amber);background:var(--amber-bg)}.notice{border-radius:10px;margin:13px 0 0;padding:11px 12px;font-size:12px;font-weight:700}.notice-neutral{color:#684a09;background:#fff4db}.notice-error{color:#8d302a;background:#fff0ef}.notice-stale{color:#7a4e00;background:#fff1d5}.governor-overview-heading{justify-content:space-between;align-items:center;gap:12px;margin:14px 0 10px;display:flex}.governor-overview-heading .eyebrow{margin-bottom:2px}.governor-overview-heading h3{margin:0;font-size:17px}.governor-overview-totals{flex-wrap:wrap;justify-content:flex-end;gap:5px;display:flex}.governor-overview-totals span{color:#345346;white-space:nowrap;background:#e7f1e9;border-radius:5px;padding:5px 7px;font-size:9px;font-weight:800}.governor-overview-totals span:last-child{color:#74511f;background:#f4ead8}.governor-overview-grid{grid-template-columns:repeat(auto-fit,minmax(235px,1fr));gap:8px;display:grid}.governor-overview-card{background:#fff;border:1px solid #e1e7e9;border-left:3px solid #3f8a5a;border-radius:7px;min-width:0;padding:9px}.governor-overview-card.is-runoff{border-left-color:#d1a15e}.governor-overview-card>header{justify-content:space-between;align-items:center;gap:8px;margin-bottom:7px;display:flex}.governor-overview-card>header>div{align-items:center;gap:7px;min-width:0;display:flex}.governor-overview-card>header img{object-fit:contain;background:#fff;border:1px solid #e0e6e8;flex:none;width:30px;height:20px}.governor-overview-card>header strong{color:#304550;text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.governor-overview-card>header>span{color:#3c714e;text-align:right;font-size:8px;font-weight:900}.governor-overview-card.is-runoff>header>span{color:#88612c}.governor-overview-candidates{grid-template-columns:repeat(auto-fit,minmax(0,1fr));gap:7px;display:grid}.governor-overview-candidate{background:#f5f7f7;border-radius:5px;justify-content:space-between;align-items:center;gap:5px;min-width:0;padding:6px;display:flex}.governor-overview-candidate>div{gap:2px;min-width:0;display:grid}.governor-overview-candidate small{color:#77858c;font-size:7px;font-weight:850}.governor-overview-candidate>div>strong{overflow-wrap:anywhere;color:#2d424d;font-size:10px;line-height:1.15}.governor-overview-candidate>div>span{color:#687a83;font-size:8px}.governor-overview-candidate>.governor-overview-percent{color:#314954;font-variant-numeric:tabular-nums;flex:none;font-size:12px}.governor-overview-candidate.is-empty{justify-content:flex-start}.loading-state,.empty-state{color:#516174;margin:20px 0;font-size:13px}.empty-state{background:#f2f5f6;border-radius:12px;padding:15px}.spinner{vertical-align:-2px;border:2px solid #cad6dc;border-top-color:var(--teal);border-radius:50%;width:14px;height:14px;margin-right:5px;display:inline-block}.stats-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;padding:13px 0 10px;display:grid}.stat-card{background:#fbfcfc;border:1px solid #e5eaed;border-radius:10px;flex-direction:column;justify-content:center;min-width:0;min-height:74px;padding:9px 8px;display:flex}.stat-major{background:#eff8f7;border-color:#bddbd8}.stat-label{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:9px;font-weight:750;display:block;overflow:hidden}.stat-value{color:var(--ink);letter-spacing:-.02em;margin-top:3px;font-size:15px;font-weight:850;display:block}.stat-detail{color:#718091;white-space:nowrap;margin-top:2px;font-size:9px;display:block}.generated-line{color:#526174;margin:5px 0 12px;font-size:10px}.percent-note{color:var(--muted);margin:0 0 9px;font-size:10px;font-style:italic}.candidate-heading{padding-top:5px}.candidate-heading h3{letter-spacing:-.03em;margin:0;font-size:19px}.candidate-total{color:var(--muted);font-size:10px}.candidate-list{gap:9px;margin-top:10px;display:grid}.candidate-list.is-head-to-head{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch}.candidate-list.is-head-to-head .candidate-card{grid-template-rows:minmax(90px,auto);grid-template-columns:58px minmax(0,1fr);align-items:center;gap:8px;min-height:106px}.candidate-list.is-head-to-head .candidate-portrait{align-self:stretch;min-height:90px}.candidate-list.is-head-to-head .candidate-portrait img{object-fit:contain;object-position:center;background:#e8eef0}.candidate-list.is-head-to-head .candidate-name,.candidate-list.is-head-to-head .candidate-votes{font-size:13px}.candidate-list.is-head-to-head .candidate-percent{font-size:11px}.candidate-card{background:#fff;border:1px solid #e1e7ea;border-radius:13px;grid-template-columns:118px minmax(0,1fr);gap:13px;min-height:142px;padding:10px;transition:border-color .16s,opacity .16s,box-shadow .16s;display:grid;position:relative}.candidate-card.is-leading{box-shadow:inset 3px 0 0 var(--teal);border-color:#b7d8d2}.candidate-card.is-winner{box-shadow:inset 4px 0 0 var(--green);background:#f8fcf9;border-color:#9fceb2}.candidate-card.is-dimmed{opacity:.56}.candidate-portrait{background:hsl(var(--avatar-hue,190) 32% 88%);border-radius:9px;place-items:center;min-height:120px;display:grid;position:relative;overflow:hidden}.candidate-portrait img{object-fit:cover;object-position:center 24%;width:100%;height:100%;position:absolute;inset:0}.candidate-initials{color:hsl(var(--avatar-hue,190) 42% 29%);letter-spacing:-.06em;font-size:28px;font-weight:900}.candidate-info{flex-direction:column;justify-content:center;min-width:0;display:flex}.candidate-name-row{justify-content:space-between;align-items:start;gap:8px;display:flex}.candidate-name{letter-spacing:-.025em;margin:0;font-size:16px;font-weight:850;line-height:1.18}.candidate-party{color:var(--muted);margin:4px 0 7px;font-size:10px;font-weight:700}.candidate-vote-row{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.candidate-votes{font-variant-numeric:tabular-nums;letter-spacing:-.03em;font-size:17px;font-weight:900}.candidate-percent{color:#31465a;font-variant-numeric:tabular-nums;font-size:13px;font-weight:850}.candidate-meta{color:#728092;justify-content:space-between;gap:8px;margin-top:1px;font-size:9px;display:flex}.vote-bar{background:#e9eef0;border-radius:99px;height:6px;margin-top:8px;overflow:hidden}.vote-bar>span{border-radius:inherit;background:linear-gradient(90deg,#0d777d,#49a693);height:100%;transition:width .25s;display:block}.candidate-card.is-winner .vote-bar>span{background:linear-gradient(90deg,#267b53,#66b781)}.candidate-badge{color:#fff;background:var(--navy);letter-spacing:.08em;white-space:nowrap;border-radius:999px;flex:none;padding:5px 7px;font-size:8px;font-weight:900}.candidate-badge.badge-winner{background:var(--green)}.candidate-badge.badge-runoff{color:var(--purple);background:var(--purple-bg)}.candidate-badge.badge-lost{color:#fff;background:#657783}.site-footer{color:#637284;border-top:1px solid #dbe2e6;margin:16px 0 0;padding:12px 3px 0;font-size:10px}.site-footer p{margin:0 0 4px}@media (width<=900px){.site-header{grid-template-rows:auto auto auto;grid-template-columns:minmax(0,1fr) auto;gap:7px 12px;height:auto;min-height:76px;padding:8px 14px;display:grid}.brand{grid-area:1/1}.header-actions{grid-area:1/2}.header-tse-update{grid-area:2/1/auto/-1}.header-election{grid-area:3/1/auto/-1;width:100%;padding:0}.president-summary{justify-content:flex-start}.banner-figure{flex:1}.banner-candidate{flex:1 1 0}}@media (width<=1050px){body.presidential-fullscreen .map-panel{grid-template:"heading""counts""map""legend""chart"/minmax(0,1fr)}body.presidential-fullscreen .uf-map{max-width:min(760px,100%)}body.presidential-fullscreen .president-trend-chart{max-height:none}.dashboard-layout{grid-template-columns:minmax(0,1fr)}.result-panel{order:1}.map-panel{order:2}.uf-map{max-width:690px}}@media (width<=600px){body{font-size:14px}.site-header{min-height:0;padding:8px 14px}.brand-mark{width:28px;height:28px}.brand-copy strong{font-size:11px}.tv-toggle,.fullscreen-toggle{width:40px;height:40px}.fullscreen-toggle{font-size:21px}.header-election{gap:7px}.president-kicker{gap:6px;min-width:0;font-size:8px}.president-summary{text-align:left;width:100%;font-size:12px;display:block}.banner-figure{grid-template-columns:minmax(0,1fr);gap:6px;width:100%;display:grid}.banner-candidate{gap:8px;width:100%;min-height:48px;padding:5px 8px}.mini-portrait{width:38px;height:38px}.mini-copy strong{font-size:12px}.mini-copy small{font-size:9px}.mini-percent{min-width:64px;font-size:12px}.page-shell{width:min(100% - 22px,560px);padding-top:17px}.intro-row{flex-direction:column;align-items:start;gap:5px;margin-bottom:12px}h1{font-size:28px}.intro-copy{font-size:11px}.share-link{padding:3px 0;font-size:11px}.filter-bar{grid-template-columns:1fr 1fr;gap:9px;margin-bottom:12px;padding:11px;display:grid}.filter-control{min-width:0}.choice-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}.choice-card{min-height:45px;padding:5px 6px}.choice-card strong{font-size:10px}.choice-card small{font-size:8px}.filter-message{grid-column:1/-1;min-height:0;padding:0 2px;font-size:11px}.dashboard-layout{gap:12px}.map-panel,.result-panel{border-radius:13px;padding:13px}.president-state-candidates{grid-template-columns:minmax(0,1fr)}.president-state-candidate{min-height:60px}.president-state-metrics strong{font-size:13px}.section-heading h2,.result-heading h2{font-size:19px}.map-caption{font-size:10px}.uf-map{height:auto}.map-legend{gap:4px;padding:6px;bottom:5px}.legend-item{padding:4px 5px;font-size:8px}.map-source-note{font-size:8px}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding-top:10px}.stat-card{min-height:66px;padding:8px}.stat-major{grid-column:1/-1}.stat-label{font-size:9px}.stat-value{font-size:14px}.stat-detail{font-size:9px}.generated-line{font-size:9px;line-height:1.4}.candidate-card{grid-template-columns:88px minmax(0,1fr);gap:9px;min-height:117px;padding:8px}.candidate-list.is-head-to-head .candidate-card{grid-template-rows:minmax(78px,auto);grid-template-columns:48px minmax(0,1fr);gap:6px;min-height:92px;padding:6px}.candidate-list.is-head-to-head .candidate-portrait{min-height:78px}.candidate-portrait{min-height:100px}.candidate-initials{font-size:24px}.candidate-name{font-size:14px}.candidate-party{margin:3px 0 6px;font-size:9px}.candidate-votes{font-size:15px}.candidate-percent{font-size:11px}.candidate-meta{font-size:8px}.candidate-badge{padding:4px 5px;font-size:7px}}@media (width<=420px){.header-election{grid-template-columns:1fr;gap:5px;display:grid}.president-kicker{justify-content:space-between}.president-summary{width:100%}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}
