:root{--bg:#0c0d10;--panel:#121419;--panel2:#191c22;--line:#282c35;--text:#f5f6f9;--muted:#9096a5;--gold:#a5b7ff;--green:#57deb1;--red:#ff5368;--blue:#388bff;color-scheme:dark}body{background:var(--bg);font-family:Inter,ui-sans-serif,system-ui,-apple-system,sans-serif}.wrap{max-width:1820px;padding:0 30px 30px}header{height:96px;margin:0;border-bottom:1px solid var(--line)}.brand-mark{border-radius:50%;background:#f0f3fa;color:#141820;box-shadow:none;width:43px;height:43px;font-size:18px}.brand h1{font-size:23px;letter-spacing:-1px}.eyebrow{font-size:10px;letter-spacing:.14em;color:#98a9dd}.brand .eyebrow{color:#9ca4b6}.live{font-size:11px}.live i{width:6px;height:6px;box-shadow:none}.live.stale i{background:#f0b65b}.refresh{background:#1b1e25;border-color:#343946;border-radius:7px}.banner{padding:17px 0;margin:0;background:none;border:0;border-bottom:1px solid var(--line);border-radius:0;gap:12px}.banner>div{flex:1}.banner strong{font-size:13px}.banner p{font-size:11px}.state-select{background:#16191f;border:1px solid #343946;font-size:11px;min-width:170px;border-radius:7px}.region-tabs{padding:15px 0;gap:6px;margin:0}.region-tab{background:transparent;border:1px solid transparent;border-radius:6px;color:#aeb4c3;font-size:11px;padding:7px 13px}.region-tab:hover{background:#20232b}.region-tab.active{background:#252c42;color:#dae3ff;border-color:#3c496e}.stats{gap:0;border:1px solid var(--line);border-radius:10px;overflow:hidden;margin:0 0 24px}.stat{border:0;border-right:1px solid var(--line);border-radius:0;min-height:95px;padding:16px 20px;background:#121419}.stat:last-child{border:0}.stat .label{font-size:9px;letter-spacing:.1em}.stat .value{font-size:26px;font-variant-numeric:tabular-nums}.stat.winner .value{font-size:18px;color:#e5eaff}.main-grid{grid-template-columns:minmax(235px,.8fr) minmax(0,2.2fr) minmax(240px,.9fr);gap:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);align-items:stretch}.panel{border:0;border-radius:0;background:transparent;padding:22px}.main-grid>.panel:first-child{border-right:1px solid var(--line);padding-left:0}.main-grid>.panel:last-child{border-left:1px solid var(--line);padding-right:0}.panel h2{font-size:15px}.panel-head{margin-bottom:10px}.race-title{font-size:29px!important;line-height:1.1;letter-spacing:-1.3px;margin:11px 0!important}.race-card{padding:22px 0 17px;border-bottom:1px solid var(--line)}.race-person{display:flex;align-items:center;gap:9px}.race-person strong{font-size:12px;display:block}.race-person small{font-size:10px;color:var(--muted);display:block;margin-top:3px}.avatar{width:34px;height:34px;border:1px solid var(--candidate);background:color-mix(in srgb,var(--candidate) 18%,#121419);border-radius:50%;display:grid;place-items:center;font-size:10px;font-weight:800;color:var(--candidate)}.race-percent{font-size:43px;letter-spacing:-2px;font-weight:800;line-height:1.2;margin-top:14px;color:var(--candidate);font-variant-numeric:tabular-nums}.race-votes{font-size:11px;color:#a5adbd;margin:3px 0 12px}.race-track{height:4px;background:#272a33;border-radius:10px;overflow:hidden}.race-track span{display:block;height:100%;background:var(--candidate)}.race-gap{font-size:11px;text-align:center;margin:16px 0 25px;color:#cad0de}.map-area.vector-map,.map-area.municipal{height:610px;min-height:0;border-radius:0;background:radial-gradient(ellipse,#1b202e66,transparent 70%);margin:0;max-width:100%}.map-toolbar{margin:10px 0;font-size:10px}.map-load{font-size:10px}.map-key{font-size:9px}.muni-shape{stroke:#0c0d10}.legend{gap:15px;padding-top:17px}.legend-item{font-size:10px}.detail-top{display:block}.state-name{font-size:23px;line-height:1.2;letter-spacing:-.8px;margin:8px 0 14px}.state-win{display:inline-block;background:#202b26;border:1px solid #344b40;color:#8ed9b5;border-radius:5px;font-size:9px;max-width:100%}.detail-progress{margin:25px 0}.track{height:5px;background:#272c36}.track span{background:#99acd8;border-radius:0}.candidate-row{grid-template-columns:1fr auto;gap:6px;padding:12px 0;border-bottom:1px solid var(--line)}.cand-name{font-size:11px;grid-column:1}.cand-pct{grid-column:2;grid-row:1;font-size:13px}.cand-bar{grid-column:1/-1;grid-row:2;height:4px}.small-muted{font-size:10px}.forecast{background:#171b25;border:1px solid #303b54;border-radius:10px;padding:16px}.forecast h2{margin:7px 0 16px}.forecast-caption{font-size:10px;line-height:1.5;color:#a7b0c7}.forecast-row{display:flex;justify-content:space-between;align-items:center;margin:12px 0;font-size:11px}.forecast-row b{font-size:21px}.forecast-split{height:5px;display:flex;overflow:hidden;border-radius:6px;margin:14px 0}.forecast-projected{font-size:10px;line-height:1.8;border-top:1px solid #30384b;padding-top:12px;color:#bdc8df}.model-note{font-size:9px;line-height:1.5;color:#b7a98e}.scenario-label{font-size:9px;display:block;color:#aab5cc;margin-top:14px}.scenario-label select{width:100%;background:#202737;border:1px solid #394562;border-radius:6px;margin:7px 0 10px;padding:8px;font-size:10px}details{color:#9da9c2;font-size:10px}summary{cursor:pointer;font-weight:700}details p{line-height:1.6}.forecast-end{font-size:19px;font-weight:800;color:#c9d9ff}.region-summary{padding:25px 0}.region-summary h2{font-size:21px;margin-top:7px}.region-summary .panel-head{align-items:center;margin-bottom:20px}#region-cards{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}.region-card{padding:17px;text-align:left;background:#14171d;border:1px solid #2a303c;border-radius:9px;transition:background .15s,transform .15s}.region-card:hover{background:#1d2330;transform:translateY(-2px)}.region-card>span{display:block;font-size:12px;font-weight:700}.region-card>span b{float:right;color:#6f7f9f}.region-card>strong{display:block;font-size:27px;letter-spacing:-1px;margin-top:15px}.region-card small{display:block;font-size:10px;color:#9ba5b9;margin-top:4px}.region-card .track{margin-top:16px}.table-panel{padding:24px;background:#13161c;border:1px solid var(--line);border-radius:10px;margin-top:20px}th{font-size:9px;padding:13px 10px}td{font-size:11px;padding:13px 10px;border-color:#272d38}.uf-chip{background:#222936;border:0;border-radius:5px}.candidate-chip{font-size:11px}.progress-cell .track{width:80px}.footer{padding-top:15px;border-top:1px solid var(--line);font-size:9px}.status-message{margin:15px 0 0;border-radius:7px}.no-data{font-size:12px;color:#919eb6}button:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid #b4c5ff;outline-offset:3px}[hidden]{display:none!important}
@media(min-width:1550px){.map-area.vector-map{height:690px}.race-percent{font-size:49px}}
@media(max-width:1150px){.wrap{padding:0 20px 25px}.main-grid{grid-template-columns:240px minmax(0,1fr)}.main-grid>.panel:last-child{grid-column:1/-1;border-left:0;border-top:1px solid var(--line);padding:23px 0;display:grid;grid-template-columns:1fr 1fr;gap:0 30px}.candidate-list{grid-column:2;grid-row:1/4;margin:0}.main-grid>.panel:last-child>.small-muted{display:none}.map-area.vector-map{height:570px}#region-cards{gap:8px}.region-card{padding:12px}}
@media(max-width:700px){header{height:auto;min-height:90px;gap:10px;padding:17px 0}.brand h1{font-size:20px}.brand-mark{width:34px;height:34px;font-size:14px}.header-right{align-items:flex-end;flex-direction:column;gap:7px}.live{font-size:9px;max-width:170px;text-align:right}.refresh{font-size:10px;padding:6px 9px}.banner{flex-wrap:wrap;padding:15px 0}.banner>div{flex-basis:100%}.banner select{flex:1;min-width:0;width:48%;font-size:10px;padding:9px 5px}.region-tabs{margin:0 -16px;padding:13px 16px}.stats{grid-template-columns:1fr 1fr;margin-bottom:17px}.stat{padding:13px;border-bottom:1px solid var(--line)}.stat:nth-child(2){border-right:0}.stat:nth-child(n+3){border-bottom:0}.stat .value{font-size:23px}.stat .note{font-size:9px}.main-grid{display:flex;flex-direction:column;border:0}.main-grid>.panel:first-child{border:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:0 18px}.national-panel>.eyebrow{grid-column:1/-1}.race-title{font-size:25px!important;grid-column:1/-1;margin:8px 0!important}.race-title br{display:none}.national-panel>.sub{grid-column:1/-1}#race-candidates{display:contents}.race-card{padding:16px 0}.race-person strong{font-size:11px}.race-person .avatar{width:28px;height:28px;flex-shrink:0}.race-percent{font-size:39px}.race-gap{grid-column:1/-1;margin:13px 0 18px}.forecast{grid-column:1/-1;margin:0 0 20px}.forecast-row{display:inline-flex;width:48%;padding-right:10px}.forecast-row b{font-size:23px}.main-grid>.panel:nth-child(2){border:1px solid var(--line);border-radius:10px;padding:17px 10px;background:#11141b}.map-area.vector-map,.map-area.municipal{height:430px;min-height:0}.map-key{display:block;font-size:8px}.map-toolbar{margin:5px 0}.map-load{font-size:9px}.legend{padding:12px 5px}.main-grid>.panel:last-child{display:block;background:#13161c;border:1px solid var(--line);border-radius:10px;padding:18px;margin-top:18px}.state-name{font-size:21px}.main-grid>.panel:last-child>.small-muted{display:block}.candidate-list{margin-top:10px}.region-summary{padding:25px 0 0}.region-summary .panel-head{display:block}.region-summary h2{font-size:19px}#region-cards{grid-template-columns:repeat(2,1fr);gap:9px}.region-card:last-child{grid-column:1/-1}.region-card{padding:15px}.region-card>strong{font-size:26px}.table-panel{padding:17px 12px}.wrap{padding:0 16px 25px}.footer{font-size:9px;line-height:1.7}.stat.winner .value{font-size:16px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

.race-gap,.vote-gap{padding:14px;background:#181e2a;border:1px solid #303b51;border-radius:8px;text-align:left}.race-gap small,.vote-gap small{display:block;font-size:9px;letter-spacing:.04em;color:#a6b1c8}.race-gap strong,.vote-gap strong{display:block;font-size:23px;line-height:1.3;letter-spacing:-.6px;margin:6px 0;font-variant-numeric:tabular-nums}.race-gap span,.vote-gap span{display:block;font-size:10px;color:#c3cbda}.projected-gap{margin:15px 0;background:#1b2230}.projected-gap strong{font-size:20px}.detail-gap{margin-top:15px}.candidate-list>.detail-gap{grid-column:1/-1}@media(max-width:700px){.race-gap{grid-column:1/-1}.race-gap strong{font-size:26px}}
