:root{color-scheme:dark;--bg:#0a101a;--panel:#121c2b;--line:#29374a;--muted:#9aaabd;--text:#f0f3f7;--blue:#5990ff;--red:#f16e70;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-size:15px}header,footer{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:19px max(4vw,24px);border-bottom:1px solid var(--line);background:#0c1522}.brand{display:flex;align-items:center;gap:14px;font-size:13px;letter-spacing:.07em}.brand small{display:block;color:#8f9eb1;font-weight:500;letter-spacing:.12em;font-size:10px;margin-top:4px}.mark{display:grid;place-items:center;width:37px;height:37px;border:1px solid #607692;border-radius:4px;color:#c7d5e7;font-size:17px}.unofficial{padding:8px 11px;border:1px solid #5e4f36;border-radius:3px;color:#e8c68f;font-size:10px;font-weight:700;letter-spacing:.1em}main{max-width:1520px;margin:auto;padding:46px max(4vw,24px) 72px}.hero{display:flex;justify-content:space-between;gap:24px;align-items:end;margin-bottom:33px}.eyebrow{font-size:10px;font-weight:750;letter-spacing:.15em;color:#9eacbd}.hero h1{font-size:clamp(38px,4.7vw,65px);line-height:1.03;letter-spacing:-.045em;margin:13px 0 11px;font-weight:650}.hero h1 span{color:#87a9df}.hero p,.muted{color:var(--muted);margin:0}.live{min-width:230px;border-left:1px solid #45546a;padding-left:18px;color:#a4b2c4;font-size:10px;letter-spacing:.1em}.live strong{display:block;font-size:17px;color:#e5c693;letter-spacing:0;margin:8px 0 3px}.live small{font-size:11px;letter-spacing:0}.dot{display:inline-block;background:#d1a65d;border-radius:50%;height:7px;width:7px;margin-right:5px}.alert{display:flex;gap:16px;align-items:baseline;border-left:3px solid #c49d5d;background:#211f1d;padding:14px 18px;color:#d2c1a8;font-size:12px;line-height:1.5}.alert strong{color:#efd4aa;letter-spacing:.08em;font-size:10px;white-space:nowrap}.sectionhead{display:flex;align-items:end;justify-content:space-between;gap:16px;margin:48px 0 16px}.sectionhead>span{font-size:10px;color:#8999ad;letter-spacing:.1em}.sectionhead h2,.method h2{font-size:24px;letter-spacing:-.025em;font-weight:650;margin:8px 0 0}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.card{background:var(--panel);border:1px solid var(--line);border-radius:5px;padding:23px 24px;min-height:180px}.cardhead{display:flex;justify-content:space-between;align-items:baseline}.cardhead span{font-size:10px;color:#9baabe;letter-spacing:.08em}.card h3{font-size:17px;font-weight:650;margin:0}.card>.muted{font-size:12px;margin-top:8px}.empty{margin:34px 0 21px;color:#b1becc;font-size:14px}.bar{height:7px;background:#334254;border-radius:1px}.labels{display:flex;justify-content:space-between;gap:8px;margin-top:14px;color:#9baabe;font-size:10px;font-weight:700;letter-spacing:.02em}.dem{color:var(--blue)}.rep{color:var(--red)}.unavailable{margin-top:20px;color:#bdcad8;font-size:13px}.unavailable section{padding:15px 0;border-top:1px solid #29374a}.unavailable h4{font-size:14px;color:#f1f4f8;font-weight:650;margin:0 0 7px}.unavailable p{font-size:12px;line-height:1.5;color:#aab8c9;margin:6px 0;overflow-wrap:anywhere}.method{margin-top:55px;padding-top:25px;border-top:1px solid var(--line);max-width:900px;color:#aab8c9;line-height:1.65;font-size:13px}.method h2{color:#eaf0fa;font-size:19px}.method a{color:#a6c4fa}footer{border-top:1px solid var(--line);border-bottom:0;font-size:10px;letter-spacing:.08em;color:#91a1b5}button{font:inherit;cursor:pointer}footer button{border:0;background:none;color:#bed0eb;text-decoration:underline}dialog{max-width:610px;border:1px solid #45566c;border-radius:5px;background:#121c2b;color:#eaf0fa;padding:32px;line-height:1.65;box-shadow:0 25px 100px #000}dialog::backdrop{background:rgba(2,6,12,.88)}dialog button{border:1px solid #b2c7e5;border-radius:3px;background:#d8e6fa;color:#102039;font-weight:700;padding:12px 17px}dialog h2{margin:12px 0 20px;font-size:24px}@media(max-width:720px){header,footer,.hero{align-items:start;flex-direction:column}.grid{grid-template-columns:1fr}.alert{flex-direction:column;gap:5px}.hero .live{margin-top:10px}.labels{font-size:9px}}
.filter{display:block;color:#aab8c9;font-size:12px;margin-top:20px}.filter input{display:block;width:min(100%,360px);margin-top:7px;background:#0a121e;border:1px solid #42536a;border-radius:3px;color:#eef3f8;padding:10px 12px;font:inherit}.filter input:focus{outline:2px solid #9dbdf0;outline-offset:2px}

.local-contests .card{min-height:155px}.local-contests .local-status{color:#d1bd9b;font-size:12px;margin:22px 0 10px}.local-contests a{color:#a6c4fa;font-size:12px}.local-contests span{color:#8f9eb1}

.national-card{background:linear-gradient(135deg,#172438,#101b2a)}
.national-title{display:flex;align-items:start;justify-content:space-between;gap:16px}
.national-title .muted{font-size:12px;margin-top:7px}
.source-status{color:#b4c5d9;font-size:11px;margin:2px 0 0;white-space:nowrap}
.aggregate-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:22px;color:#bdcad8;font-size:13px}
.aggregate{min-width:0;padding:20px;background:#0c1624;border:1px solid #314157;border-radius:5px}
.aggregate-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}
.aggregate h4{margin:0;color:#f3f6fa;font-size:17px;letter-spacing:-.02em}
.aggregate-badge{flex:none;color:#d7c49e;font-size:9px;font-weight:750;letter-spacing:.09em;border:1px solid #645b48;border-radius:3px;padding:5px 7px}
.aggregate-meta{color:#aabbd0;font-size:11px;line-height:1.5;margin:8px 0 20px}
.vote-row{margin:15px 0}
.vote-labels{display:flex;justify-content:space-between;align-items:baseline;gap:12px;font-size:13px}
.vote-name{color:#e9eff7;font-weight:650;overflow-wrap:anywhere}
.vote-value{color:#dbe5f1;font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:600}
.vote-track{height:7px;border-radius:9px;background:#2a394c;overflow:hidden;margin-top:8px}
.vote-bar{display:block;height:100%;border-radius:9px}.vote-bar.democratic{background:#6c9eff}.vote-bar.republican{background:#f07b7d}.vote-bar.other{background:#b2a5ce}
.other-parties{margin-top:17px}.other-parties summary{cursor:pointer;color:#a9c7f7;font-size:12px;font-weight:600}.other-parties summary:focus-visible{outline:2px solid #9dbdf0;outline-offset:4px}
.aggregate-note,.aggregate-empty{color:#9eafc3;font-size:11px;line-height:1.5;margin:20px 0 0}
@media(max-width:720px){.aggregate-grid{grid-template-columns:1fr}.national-title{flex-direction:column;gap:10px}.aggregate{padding:17px}.vote-labels{font-size:12px}}

.tally-card{margin-top:14px}
.balance-meta{font-size:11px;color:#aabbd0;line-height:1.5;margin:19px 0 16px}.seat-bar{display:flex;height:9px;background:#334254;border-radius:4px;overflow:hidden}.seat-bar .democratic{background:#6c9eff}.seat-bar .republican{background:#f07b7d}.seat-bar .other{background:#b2a5ce}.seat-bar .unknown{background:#43536a}.seat-labels{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:17px}.seat-labels strong,.seat-labels span{display:block}.seat-labels strong{font-size:22px;font-variant-numeric:tabular-nums}.seat-labels span{color:#aabbd0;font-size:10px;line-height:1.4;margin-top:4px}.balance-note{color:#9eafc3;font-size:11px;line-height:1.5;margin:12px 0 0}@media(max-width:420px){.seat-labels{grid-template-columns:repeat(2,minmax(0,1fr))}}
.regional-court{border-top:1px solid var(--line);margin-top:20px;padding-top:18px}.regional-court h4{font-size:14px;margin:0;color:#f1f4f8}.regional-court p,.regional-court .local-status{font-size:12px;line-height:1.5;color:#aab8c9}.regional-court .local-status{margin:16px 0 10px}.regional-court a{color:#a6c4fa;font-size:12px}.regional-court span{color:#8f9eb1}
.result-list{display:grid;gap:14px;margin:18px 0 12px}.result-labels{display:flex;justify-content:space-between;align-items:baseline;gap:14px}.result-labels .result-name{color:#edf3fb;font-size:14px;font-weight:650;line-height:1.35;overflow-wrap:anywhere}.result-labels .result-party{display:block;color:#9caec3;font-size:11px;font-weight:400;margin-top:3px}.result-labels .result-votes{color:#e5edf7;font-size:14px;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}.result-track{height:6px;margin-top:7px;border-radius:8px;background:#2a394c;overflow:hidden}.result-track span{display:block;height:100%;background:#8eb5e9;border-radius:8px}.local-status .result-note,.unavailable .result-note{color:#9eafc3;font-size:11px;line-height:1.4;margin:12px 0}.source-status{white-space:normal;overflow-wrap:anywhere;line-height:1.5}.sectionhead>span{line-height:1.5;overflow-wrap:anywhere}@media(max-width:720px){.sectionhead{align-items:start;flex-direction:column}.result-labels .result-name,.result-labels .result-votes{font-size:13px}}
.sectionhead>span,.source-status{min-width:0;max-width:100%;white-space:normal;overflow-wrap:anywhere;word-break:normal}
@media(max-width:720px){.sectionhead>span,.source-status{display:block;width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:4px;background:#0c1522;font-size:11px;line-height:1.6;letter-spacing:.03em}.national-title{min-width:0;width:100%}.national-title>div{min-width:0}.sectionhead{gap:12px}}
.legislature{margin-top:14px;min-height:0}.legislature .local-status{margin:18px 0 10px;color:#aab8c9;font-size:12px}.legislature a{color:#a6c4fa;font-size:12px}
.statewide-card{align-self:start}

.court-result-group{margin-top:18px;padding:16px;border:1px solid #34465d;border-radius:4px;background:#0c1624}.court-result-group h5{margin:0;color:#edf4ff;font-size:14px}.court-result-group p{margin:8px 0;color:#aab8c9}.court-result-group .source-status{margin-top:12px}.court-result-group .local-status{margin:14px 0}.court-result-group a{color:#a6c4fa}

.court-card{margin-top:14px}.court-card>p,.court-card .court-result-group p{font-size:12px;line-height:1.5;color:#aab8c9}.court-card .local-status{font-size:12px;line-height:1.5;color:#aab8c9}.court-card a{color:#a6c4fa;font-size:12px}
.tally-filters{display:grid;grid-template-columns:minmax(180px,2fr) repeat(2,minmax(120px,1fr));gap:12px;margin-top:20px}.tally-filters label{display:block;color:#aab8c9;font-size:12px}.tally-filters input,.tally-filters select{display:block;width:100%;margin-top:7px;background:#0a121e;border:1px solid #42536a;border-radius:3px;color:#eef3f8;padding:10px 12px;font:inherit}.tally-filters input:focus,.tally-filters select:focus{outline:2px solid #9dbdf0;outline-offset:2px}.tally-count{color:#aab8c9;font-size:12px;margin:16px 0 0}.tally-card #national-results{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px}.tally-card #national-results section{min-width:0}.tally-more{border:1px solid #6e88ab;border-radius:4px;background:#213650;color:#edf4ff;padding:10px 16px;font-weight:650}.tally-more[hidden]{display:none}@media(max-width:720px){.tally-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.tally-filters label:first-child{grid-column:1/-1}.tally-card #national-results{grid-template-columns:1fr}}
.race-group-heading{font-size:17px;margin:26px 0 14px;color:#e7eef8}.race-grid{align-items:start}.race-grid .card{min-width:0;min-height:0}.race-grid .race-results,.race-grid .local-status{margin:18px 0 0;font-size:12px;line-height:1.5;color:#aab8c9}.race-grid .race-results p,.race-grid .local-status p{font-size:12px;line-height:1.5;color:#aab8c9;margin:6px 0;overflow-wrap:anywhere}.race-grid .race-results .result-note,.race-grid .local-status .result-note{font-size:11px;color:#9eafc3;margin:12px 0}.race-grid .race-results .result-labels .result-name,.race-grid .local-status .result-labels .result-name{color:#edf3fb}.race-grid .race-results .result-labels .result-votes,.race-grid .local-status .result-labels .result-votes{color:#e5edf7}
/* Color supplements the visible party labels; ambiguous and write-in lines stay gray. */
.result-track .party-democratic,.vote-track .party-democratic{background:#6c9eff}.result-track .party-republican,.vote-track .party-republican{background:#f07b7d}.result-track .party-independent,.vote-track .party-independent{background:#d0c4a4}.result-track .party-libertarian,.vote-track .party-libertarian{background:#e7be5e}.result-track .party-green,.vote-track .party-green{background:#74cda4}.result-track .party-working-families,.vote-track .party-working-families{background:#c394ea}.result-track .party-conservative,.vote-track .party-conservative{background:#e89b73}.result-track .party-new-voices,.vote-track .party-new-voices{background:#75c9d1}.result-track .party-unknown,.vote-track .party-unknown{background:#aab6c5}
.health-badge{display:inline-block;padding:3px 7px;margin:2px 4px 3px 0;border:1px solid currentColor;border-radius:4px;font-size:10px;font-weight:700;letter-spacing:0;white-space:nowrap}.health-good{color:#a3e6bb}.health-warn{color:#f0d095}.health-bad{color:#ffaaaa}.health-neutral{color:#c3d0df}.health-detail{display:block;color:#aabbd0;font-size:11px;line-height:1.5;letter-spacing:0;margin-top:3px;overflow-wrap:anywhere}.overview-card{margin-top:14px;min-height:0}.overview-card>.muted{font-size:12px;margin-top:8px}.overview-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-top:20px}.overview-section{min-width:0}.overview-section h4{font-size:14px;margin:0 0 8px}.overview-section p,.overview-note,.coverage-details{font-size:12px;line-height:1.55;color:#b8c7d8}.overview-race{padding:12px 0;border-top:1px solid var(--line);font-size:12px;line-height:1.5;color:#e1e9f2}.overview-race strong,.overview-race small{display:block}.overview-race small{color:#aabbd0;margin-top:4px}.coverage-details{margin-top:16px;border-top:1px solid var(--line);padding-top:14px}.coverage-details summary{cursor:pointer;color:#b9d4ff;font-weight:650}.coverage-details p{overflow-wrap:anywhere}.coverage-details summary:focus-visible{outline:2px solid #9dbdf0;outline-offset:4px}@media(max-width:720px){.overview-grid{grid-template-columns:1fr;gap:18px}}
/* Compact source status: one primary label, with keyboard-accessible diagnostics. */
.sectionhead>.source-status{font-size:11px;color:#8999ad;letter-spacing:.03em;max-width:100%;min-width:0}.health-disclosure{margin-top:4px;color:#b7c6d8;font-size:11px;line-height:1.45}.health-disclosure summary{cursor:pointer;color:#b9d4ff;display:inline-block}.health-disclosure summary:focus-visible{outline:2px solid #9dbdf0;outline-offset:3px}.health-diagnostics{display:block;overflow-wrap:anywhere;margin-top:5px}.vote-share-labels{display:flex;flex-wrap:wrap;gap:12px 20px;margin-top:16px}.vote-share-label{min-width:80px;flex:1 1 100px}.vote-share-label strong,.vote-share-label span{display:block}.vote-share-label strong{font-size:20px;font-variant-numeric:tabular-nums}.vote-share-label span{color:#b9c9da;font-size:11px;line-height:1.4;margin-top:3px}.seat-bar .party-democratic{background:#6c9eff}.seat-bar .party-republican{background:#f07b7d}.seat-bar .party-independent{background:#d0c4a4}.seat-bar .party-libertarian{background:#e7be5e}.seat-bar .party-green{background:#74cda4}.seat-bar .party-working-families{background:#c394ea}.seat-bar .party-conservative{background:#e89b73}.seat-bar .party-new-voices{background:#75c9d1}.seat-bar .party-unknown{background:#aab6c5}@media(max-width:720px){.sectionhead>.source-status{display:block;width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:4px;background:#0c1522}.vote-share-label strong{font-size:18px}}
.vote-share-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:12px}.vote-share-summary .vote-share-label{min-width:0}.vote-share-summary .vote-share-label strong{font-size:17px}.vote-share-summary .vote-share-label span{overflow-wrap:anywhere}.party-details-toggle{margin-top:12px;padding:6px 0;border:0;background:transparent;color:#b9d4ff;font:inherit;font-size:12px;text-align:left;cursor:pointer}.party-details-toggle:hover{text-decoration:underline}.party-details-toggle:focus-visible{outline:2px solid #9dbdf0;outline-offset:3px}.vote-share-details{padding-top:10px;border-top:1px solid var(--line);gap:10px 16px}.vote-share-details .vote-share-label{min-width:0;flex:1 1 145px}.party-label-democratic strong{color:#8eb3ff}.party-label-republican strong{color:#ff9698}.party-label-independent strong{color:#e0d4b7}.party-label-libertarian strong{color:#efca73}.party-label-green strong{color:#8cdbb4}.party-label-working-families strong{color:#d1a9f0}.party-label-conservative strong{color:#f0ab86}.party-label-new-voices strong{color:#88d8df}.party-label-unknown strong{color:#c3ccd7}.party-label-other strong{color:#c3ccd7}.seat-bar .party-other{background:#8998aa}@media(max-width:720px){.vote-share-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 10px}.vote-share-summary .vote-share-label strong{font-size:18px}.vote-share-details .vote-share-label{flex-basis:120px}}
.vote-share-details[hidden]{display:none}
