@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Libre+Franklin:wght@400;500;600;700;800;900&display=swap');
:root{font-family:'DM Sans',sans-serif;color:#e9edf4;background:#101925;color-scheme:dark;--blue:#438df2;--red:#ed5b62;--gold:#d1aa63;--muted:#9aa9bb;--line:#2b3747;--calcite-font-family:'DM Sans',sans-serif;--calcite-color-brand:#8db8f6;--calcite-color-brand-hover:#b0d0ff;--calcite-color-brand-press:#76a3df;--calcite-color-background:#111b28;--calcite-color-foreground-1:#182330;--calcite-color-foreground-2:#1d2a3a;--calcite-color-foreground-3:#263548;--calcite-color-text-1:#edf2f9;--calcite-color-text-2:#a8b7c9;--calcite-color-border-1:#3c4a5c;--calcite-color-border-2:#2b3747}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;height:100%}body{font-size:14px}a{color:#b7d4ff;text-decoration:none}a:hover{text-decoration:underline}button,a,calcite-button{touch-action:manipulation}calcite-shell{position:relative;min-height:100dvh}h1,h2,p{margin:0}h1,h2{font-family:'Libre Franklin',sans-serif}.eyebrow{display:block;font-size:10px;letter-spacing:1.8px;font-weight:700;color:#a1b1c4}.masthead{height:102px;display:flex;align-items:center;padding:0 34px;gap:29px;background:#111b28;border-bottom:1px solid var(--line)}.collection{font-family:'Libre Franklin',sans-serif;font-size:9px;letter-spacing:1px;line-height:1.5;color:#aab8c9;font-weight:800;border-right:1px solid #3a4655;padding-right:27px}.collection:first-line{font-size:25px;color:#fff;letter-spacing:-1px}.collection span{font-weight:400;font-size:15px}.masthead-title h1{font-size:29px;letter-spacing:-1px;margin-top:6px;font-weight:800}.title-dot{color:var(--gold)}.edition{margin-left:auto;text-align:right;line-height:1.8}.edition strong{font-size:13px;font-weight:500}.masthead>calcite-button{margin-left:6px}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 376px;flex:1;min-height:calc(100dvh - 102px)}.map-workspace{min-width:0;display:flex;flex-direction:column;padding:25px 32px 15px;background:radial-gradient(ellipse at 45% 50%,#192637,#101925 75%)}.race-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px}.race-toolbar calcite-segmented-control{width:345px;max-width:100%}.connection{font-size:10px;color:#a9b7c8;display:flex;align-items:center;gap:7px;max-width:195px}.connection-dot{width:6px;height:6px;border-radius:50%;background:var(--gold);flex:none}.connection-dot.connected{background:#83c5a4}.connection-dot.error{background:#ed9b68}.map-heading{display:flex;align-items:end;justify-content:space-between;gap:12px;margin-top:32px}.map-heading h2{font-size:26px;font-weight:700;letter-spacing:-.8px;margin-top:9px}.race-count{font-size:11px;color:var(--muted);white-space:nowrap;border:1px solid #3a4658;padding:7px 10px;border-radius:3px}.scoreboard{display:flex;gap:25px;align-items:center;margin-top:24px}.score{display:flex;align-items:baseline;gap:9px;flex-wrap:wrap;width:130px}.score>span{font-size:10px;letter-spacing:1.2px;font-weight:700;flex-basis:100%}.score strong{font-family:'Libre Franklin',sans-serif;font-size:40px;font-weight:700;letter-spacing:-2px}.score small{color:var(--muted);font-size:10px}.democratic{color:var(--blue)}.republican{color:var(--red);text-align:right;justify-content:flex-end}.score-center{flex:1;text-align:center;min-width:80px}.score-center>span{font-size:22px;font-weight:600}.score-center>small{display:block;color:var(--muted);font-size:10px;margin-top:3px}.seat-track{height:6px;background:#3f4d60;border-radius:2px;display:flex;margin-top:13px;overflow:hidden}.seat-track span{height:100%;display:block}.score-note{color:#8fa0b5;text-align:center;font-size:10px;margin:11px 0 6px;line-height:1.6}.map-frame{position:relative;flex:1;min-height:330px;margin-top:6px}arcgis-map{display:block;width:100%;height:100%;min-height:330px;position:absolute;inset:0}.map-loading{position:absolute;top:42%;left:50%;transform:translateX(-50%);color:#b4c1d1;font-size:13px;padding:15px;background:#142030e8;max-width:80%;z-index:1}.map-geography{position:absolute;top:12px;right:4px;display:flex;gap:6px}.map-hover{position:absolute;bottom:37px;left:50%;transform:translateX(-50%);font-size:11px;color:#bfccda;pointer-events:none;max-width:85%;text-align:center;background:#111b28df;padding:8px 12px;border:1px solid #2b3747;border-radius:3px}.map-caption{position:absolute;bottom:6px;left:4px;right:4px;display:flex;justify-content:space-between;pointer-events:none;color:#8394a9;font-size:8px;letter-spacing:.5px}.legend{display:flex;gap:13px;flex-wrap:wrap;justify-content:center;margin:18px 0 10px;font-size:10px;color:#bcc8d7}.legend>span{display:flex;gap:6px;align-items:center}.swatch{display:inline-block;width:9px;height:9px;border-radius:1px}.dem{background:var(--blue)}.gop{background:var(--red)}.other{background:var(--gold)}.tie{background:#a88adb}.awaiting{background:#52627a}.no-race{background:#202d3d;border:1px solid #6c7b8e}.map-note{text-align:center;font-size:10px;color:#9aabbf;line-height:1.6;max-width:740px;align-self:center}.map-footer{margin-top:19px;display:flex;justify-content:space-between;gap:10px;font-size:9px;color:#8798ae;line-height:1.5}.results-workspace{display:flex;flex-direction:column;min-height:0;max-height:calc(100dvh - 102px);background:#172230;border-left:1px solid var(--line)}.results-heading{padding:29px 25px 22px}.results-heading h2{font-size:21px;letter-spacing:-.7px;margin:10px 0}.results-heading p{font-size:12px;color:#a8b6c7}.filters{display:grid;gap:10px;padding:0 25px 16px}.results-meta{padding:7px 25px 10px;display:flex;align-items:center;justify-content:space-between;color:#a5b4c6;font-size:11px;border-bottom:1px solid var(--line)}.results-list{overflow:auto;flex:1;padding:0 25px;min-height:130px;scrollbar-width:thin;scrollbar-color:#52627a #172230}.race-card{border-bottom:1px solid #334052;padding:19px 0}.race-card-head{display:flex;gap:8px;align-items:start;justify-content:space-between;margin-bottom:8px}.race-link{color:#f1f5fb;font-size:14px;font-weight:700;line-height:1.5}.race-card-sub{display:flex;align-items:center;gap:6px;color:#9aaabe;font-size:10px;margin-bottom:13px;line-height:1.6}.race-badge{padding:3px 6px;font-size:9px;line-height:1.4;border:1px solid #607187;color:#c4d1e1;border-radius:2px;white-space:nowrap}.race-badge.called{border-color:#8ac5a6;color:#a0d4b9}.race-badge.close{color:#e6c68e;border-color:#89744e}.candidate{margin:11px 0}.candidate-row{display:flex;align-items:baseline;gap:6px;justify-content:space-between;font-size:12px}.candidate-name{line-height:1.5}.candidate-name .party{font-size:9px;letter-spacing:.3px;font-weight:700;margin-left:4px}.candidate-number{white-space:nowrap;font-variant-numeric:tabular-nums;font-size:12px;font-weight:600}.vote-track{height:4px;background:#2e3b4d;margin-top:6px;border-radius:1px;overflow:hidden}.vote-track>span{display:block;height:100%}.votes{color:#8f9fb4;font-size:9px;margin-top:4px;text-align:right}.candidate-more{font-size:10px;color:#9fb0c5;margin:13px 0 4px}.race-card-foot{display:flex;justify-content:space-between;align-items:center;font-size:9px;color:#9aaabe;margin-top:13px;gap:8px}.race-card-foot a{color:#a9bfdc}.reporting{font-size:10px;color:#aebdd0}.feed-alert{margin:0 25px 10px;padding:10px;border-left:2px solid #d1aa63;background:#d1aa6311;color:#e2c99d;line-height:1.6;font-size:11px}.empty{font-size:12px;color:#acbacd;line-height:1.8;padding:28px 0}.refresh-bar{padding:15px 25px 6px;display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);gap:9px}.refresh-bar calcite-label{font-size:11px;margin:0;--calcite-label-margin-bottom:0}.fetch-time{padding:3px 25px 14px;font-size:9px;color:#8d9fb5}.about-content{padding:8px 4px 12px;max-width:680px;line-height:1.8;color:#c0ccda;font-size:13px}.about-content h2{font-size:28px;line-height:1.3;margin:15px 0}.about-content p{margin:17px 0}[hidden]{display:none!important}a:focus-visible{outline:2px solid #bdd6fc;outline-offset:4px}
@media(min-width:1500px){.map-workspace{padding:29px 50px 18px}.workspace{grid-template-columns:minmax(0,1fr) 410px}.map-heading h2{font-size:32px}.map-frame{min-height:440px}}
@media(max-width:1100px){.workspace{grid-template-columns:minmax(0,1fr) 330px}.masthead{padding:0 24px;gap:21px}.map-workspace{padding:22px 22px 15px}.connection{max-width:110px;font-size:9px}.race-toolbar calcite-segmented-control{width:285px}.scoreboard{gap:12px}.score{width:110px}.score strong{font-size:34px}.score>span{font-size:9px}.map-heading h2{font-size:23px}.edition{display:none}.masthead>calcite-button{margin-left:auto}.map-footer{flex-wrap:wrap}.results-heading,.filters,.results-meta,.results-list,.refresh-bar{padding-left:20px;padding-right:20px}}
@media(max-width:780px){.masthead{height:85px;padding:0 18px;gap:15px}.masthead-title h1{font-size:22px}.masthead-title .eyebrow{font-size:8px}.collection{font-size:7px;padding-right:15px}.collection:first-line{font-size:20px}.workspace{display:flex;flex-direction:column;min-height:calc(100dvh - 85px)}.map-workspace{padding:20px 18px 16px}.race-toolbar{gap:12px}.race-toolbar calcite-segmented-control{width:300px}.connection{max-width:120px}.map-heading{margin-top:25px}.map-heading h2{font-size:23px}.map-heading .eyebrow{font-size:8px}.map-frame{flex:none;height:390px;min-height:300px}.results-workspace{max-height:none;border-left:0;border-top:1px solid var(--line)}.results-list{max-height:620px;min-height:180px}.filters{grid-template-columns:1fr 1fr}.filters #search{grid-column:1/-1;grid-row:1}.map-geography{top:8px}.map-caption{font-size:7px}.scoreboard{gap:16px}.score{width:120px}.legend{gap:10px;font-size:9px}}
@media(max-width:440px){.masthead-title h1{font-size:19px}.masthead{gap:10px;padding:0 12px}.collection{padding-right:10px}.masthead>calcite-button{max-width:65px}.map-frame{height:320px}.map-heading h2{font-size:21px}.connection{max-width:83px}.race-toolbar calcite-segmented-control{width:240px}.score{width:100px}.score>span{font-size:8px}.map-geography{right:0;gap:3px}.map-caption{flex-direction:column;gap:3px}.map-hover{bottom:42px;font-size:10px}.race-count{font-size:10px;padding:5px 6px}}
.map-caption{bottom:26px}.map-hover{bottom:58px}
.boundary-notice{font-size:10px;line-height:1.6;color:#d5bc8e;text-align:center;margin:6px 0 0}.boundary-notice a{color:#dfc896}
@media(max-width:780px){.race-toolbar{flex-wrap:wrap;gap:10px}.race-toolbar calcite-segmented-control{width:100%;flex-basis:100%}.connection{max-width:none;margin-left:auto}.masthead-title{flex:1;min-width:0}.masthead>calcite-button{flex-shrink:0;max-width:none}.map-hover{bottom:66px}}
