@font-face{font-family:Inter;src:url('Inter.woff2') format('woff2');font-weight:100 900;font-display:swap}
@font-face{font-family:Poppins;src:url('Poppins-SemiBold.woff2') format('woff2');font-weight:600;font-display:swap}
@font-face{font-family:'JetBrains Mono';src:url('JetBrainsMono.woff2') format('woff2');font-weight:100 800;font-display:swap}
:root{--bg:#0d0c0e;--surface:#1a181c;--surface2:#242228;--line:#2c292f;--text:#ffffff;--muted:#a3a1a6;--subtle:#7e7b83;--blue:#4da1f8;--red:#ef6071;--purple:#6a30fd;--lime:#e6ff00;--amber:#e6ba65;color-scheme:dark}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:var(--bg);color:var(--text);font:14px Inter,Arial,sans-serif;line-height:1.5}button,input,select{font:inherit}button,a,input,select{ -webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}a{color:inherit;text-decoration:none}button{color:inherit;background:none;border:0}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,[role=button]:focus-visible{outline:2px solid var(--lime);outline-offset:5px}a:hover,button:hover{color:#fff}button:disabled{opacity:.4;cursor:default}header{height:77px;border-bottom:1px solid var(--line);background:#101113f5;position:sticky;top:0;z-index:20;backdrop-filter:blur(12px)}.header-inner{max-width:1400px;height:100%;margin:auto;padding:0 40px;display:flex;align-items:center;gap:24px}.brand img{width:86px;height:auto;filter:brightness(0) invert(1);display:block}.brand-divider{height:26px;border-left:1px solid #44464d}.edition{font-size:12px;letter-spacing:1.5px;font-weight:600}.edition b{color:var(--lime);margin-left:5px}nav{display:flex;gap:28px;margin-left:45px;align-items:center;height:100%;font-size:13px;color:var(--muted)}nav>a,nav>button{height:100%;display:flex;align-items:center;position:relative}nav>a.active{color:white}nav>a.active:after{content:'';position:absolute;bottom:0;height:2px;left:0;right:0;background:var(--lime)}#watch-count{font-size:10px;border:1px solid #45464f;margin-left:7px;border-radius:4px;padding:0 5px}.open-rolr{margin-left:auto;padding:10px 17px;background:var(--purple);border-radius:7px;font-size:13px;font-weight:600}.open-rolr span{margin-left:15px}.snapshot-strip{background:#151618;border-bottom:1px solid #24252a}.snapshot-strip>div{max-width:1400px;margin:auto;padding:11px 40px;display:flex;align-items:center;gap:8px;color:#a6a9b3;font-size:11px}.source-dot{height:6px;width:6px;background:var(--lime);border-radius:100%}.snapshot-strip .text-link{margin-left:12px;font-size:11px}.demo-stamp{margin-left:auto;color:#999ba3;font-size:9px;letter-spacing:1.1px;border:1px solid #383a42;border-radius:3px;padding:2px 6px}main{max-width:1400px;margin:auto;padding:0 40px}.intro{display:flex;align-items:center;justify-content:space-between;padding:42px 0 27px;gap:20px}.eyebrow{font-size:10px;font-weight:650;letter-spacing:1.8px;color:var(--muted)}.eyebrow span{margin:0 10px;color:#53555f}h1{font-size:46px;line-height:1.12;letter-spacing:-2px;font-weight:550;margin:10px 0 12px}p{color:var(--muted)}.intro p{font-size:14px;margin:0}.view-controls{display:flex;gap:9px;align-items:center}.mode-switch{display:flex;border:1px solid var(--line);padding:4px;border-radius:8px;background:#17181c}.mode-switch button{padding:9px 12px;font-size:12px;color:var(--muted);border-radius:4px}.mode-switch button.selected{background:#30313a;color:#fff;box-shadow:0 1px 4px #0003}.mode-switch span{font-size:8px;margin-left:4px;color:#bfa9ff}.icon-button{font-size:23px;border:1px solid var(--line);border-radius:8px;line-height:1;padding:11px}.chambers{display:grid;grid-template-columns:1fr 1fr;gap:20px}.chamber-card{border:1px solid var(--line);border-radius:12px;background:linear-gradient(125deg,#1c1e24,#17181c);overflow:hidden}.card-heading{padding:20px 24px 0;display:flex;justify-content:space-between;align-items:center}.card-heading h2{font-size:19px;font-weight:550;margin:0;letter-spacing:-.35px}.source-badge{font-size:9px;letter-spacing:.7px;color:#b0b4c0;border:1px solid #383b46;border-radius:4px;padding:3px 6px}.source-badge.demo{border-color:#785b32;color:var(--amber)}.gauge{width:100%;display:block;overflow:visible}.gauge text{font-family:Inter,sans-serif}.needle-group{transition:none}.blue{color:var(--blue)}.red{color:var(--red)}.purple{color:#b4a2fa}.duel{display:flex;justify-content:space-between;padding:0 10px;font-size:11px;font-weight:550}.duel b{font-variant-numeric:tabular-nums}.chamber-footer{border-top:1px solid var(--line);padding:13px 22px;display:flex;align-items:center;gap:13px;background:#17181b}.mini-gauge{width:82px;flex-shrink:0}.seats-label{font-size:9px;letter-spacing:1px;color:var(--muted);text-transform:uppercase}.seat-numbers{font-size:16px;letter-spacing:-.3px;font-weight:600}.seat-numbers span+span{margin-left:14px}.seat-numbers em{font-size:10px;font-style:normal;font-weight:400;color:var(--muted);margin-left:3px}.seat-meta{font-size:9px;color:var(--subtle);margin-top:2px}.chamber-footer>a{margin-left:auto;color:#c3b2ff;font-size:11px;white-space:nowrap}.needle-footnote{display:flex;justify-content:space-between;font-size:10px;color:var(--subtle);padding:12px 2px 31px}.text-link{font-size:12px;color:#b0b3bf;padding:0}.text-link:hover{color:var(--lime)}h2{font-size:25px;line-height:1.2;letter-spacing:-.75px;font-weight:500;margin:8px 0 0}.section-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px;gap:20px}.tab-group{display:flex;gap:4px;background:#1a1b20;border:1px solid var(--line);border-radius:7px;padding:4px}.tab-group button{font-size:12px;color:#999ca7;padding:7px 20px;border-radius:4px}.tab-group button.selected{background:#35313f;color:#e6dfff}.map-section{border-top:1px solid var(--line);padding-top:29px}.map-layout{display:grid;grid-template-columns:minmax(0,1fr) 310px;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#15161a}.map-canvas{padding:20px 26px 15px;min-width:0;position:relative;background:radial-gradient(ellipse at center,#1a1c22 0,#15161a 70%)}.map-caption{display:flex;justify-content:space-between;gap:12px;color:var(--muted);font-size:11px}.map-caption #map-count{color:#737885;text-align:right}.map-wrap{position:relative;max-width:760px;margin:8px auto 0}#us-map{width:100%;display:block;height:auto;max-height:405px}.state{stroke:#15161a;stroke-width:2;vector-effect:non-scaling-stroke;transition:fill .4s,stroke .15s;cursor:pointer;outline:none}.state:hover,.state:focus,.state.selected{stroke:#f0f4b4;stroke-width:2.5;filter:brightness(1.14)}.state-label{fill:#f2f5ff;font-size:14px;pointer-events:none;text-anchor:middle;dominant-baseline:middle;font-weight:550;text-shadow:0 1px 4px #1118}.map-legend{display:flex;justify-content:center;align-items:center;gap:5px;font-size:8px;letter-spacing:.6px;color:#afb3bf;margin-top:8px}.map-legend i{display:inline-block;width:26px;height:7px;background:var(--c);border-radius:2px}.map-legend>span:first-child{margin-right:6px}.map-legend>span:nth-last-child(2){margin-left:6px}.no-data{margin-left:14px;display:flex;align-items:center;gap:6px}.no-data i{width:10px;height:10px}.map-note{font-size:9px;text-align:center;margin:12px 0 0;color:#737886}#state-panel{border-left:1px solid var(--line);background:#1b1c21;padding:24px;display:flex;flex-direction:column;min-height:455px}.state-panel-top{display:flex;justify-content:space-between;align-items:center}.state-code{width:43px;height:43px;background:#283249;color:#8db4f9;display:grid;place-items:center;font-family:Inter,Arial,sans-serif;font-size:23px;font-weight:600;border-radius:8px}#state-panel h3{font-size:27px;letter-spacing:-.75px;font-weight:500;margin:15px 0 0}.state-race-label{color:var(--muted);font-size:12px;margin:1px 0 18px}.state-race-selector{width:100%;margin-top:15px;background:#25262d;border:1px solid #3f414d;padding:7px;color:#fff;border-radius:4px;font-size:11px}.state-party-row{display:flex;align-items:center;gap:9px;margin:15px 0 7px;font-size:12px}.party-dot{width:7px;height:7px;border-radius:50%;display:inline-block;background:currentColor}.state-party-row strong{font-size:25px;font-family:Inter,Arial,sans-serif;margin-left:auto}.party-bar{height:4px;background:#2d2f38;border-radius:2px}.party-bar span{display:block;height:100%;border-radius:2px;background:currentColor}.panel-note{font-size:10px;color:var(--muted);line-height:1.7;margin:15px 0}.panel-action{padding:12px;background:var(--purple);border-radius:6px;font-weight:600;font-size:12px;text-align:center;margin-top:auto}.panel-action:hover{background:#966cff}.panel-details{font-size:10px;text-align:center;color:#b9accf;margin-top:11px}.watch-button{font-size:23px;color:var(--muted);line-height:1}.watch-button.saved{color:var(--lime)}#map-tooltip{position:absolute;pointer-events:none;top:8px;left:15px;z-index:4;padding:9px 12px;border-radius:6px;background:#0d0e11ec;border:1px solid #555867;box-shadow:0 5px 15px #0005;font-size:11px}.battleground{padding:36px 0}.focus-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.focus-card{border:1px solid var(--line);padding:18px 19px;border-radius:10px;background:#191a1f;position:relative;cursor:pointer;text-align:left;min-width:0;transition:transform .2s,border-color .2s}.focus-card:hover{transform:translateY(-3px);border-color:#64606e}.focus-top{display:flex;justify-content:space-between;color:var(--muted);font-size:9px;letter-spacing:1px}.focus-card h3{font-size:18px;font-weight:550;letter-spacing:-.5px;margin:18px 0 9px}.focus-value{font-family:Inter,Arial,sans-serif;font-size:40px;line-height:1}.focus-value small{font-family:Inter,sans-serif;font-size:11px;color:var(--muted);margin-left:8px}.focus-bar{height:4px;display:flex;gap:3px;margin:16px 0 12px}.focus-bar span{height:100%;border-radius:2px}.focus-bottom{display:flex;justify-content:space-between;font-size:9px;color:var(--subtle)}.market-section{border-top:1px solid var(--line);padding-top:33px;scroll-margin-top:95px}#market-total{color:var(--subtle);font-size:15px;margin-left:8px}.search{display:flex;align-items:center;gap:10px;padding:10px 13px;border:1px solid var(--line);border-radius:7px;background:#18191d;width:310px;color:var(--muted)}.search>span{font-size:22px;line-height:1}.search input{border:0;background:transparent;width:100%;font-size:11px;color:white;outline:0}.search kbd{font-size:11px;border:1px solid #363841;padding:0px 5px;border-radius:3px}.market-toolbar{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);gap:15px}.filter-tabs{display:flex;gap:23px}.filter-tabs button{font-size:12px;color:var(--muted);padding:12px 0 16px;position:relative;white-space:nowrap}.filter-tabs button.selected{color:var(--lime)}.filter-tabs button.selected:after{content:'';position:absolute;bottom:-1px;height:2px;left:0;right:0;background:var(--lime)}.sort-label{font-size:10px;color:var(--subtle)}.sort-label select{background:none;color:#c1c4cf;border:0;font-size:11px;margin-left:3px;max-width:145px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;text-align:left;white-space:nowrap}th{font-size:9px;letter-spacing:.8px;font-weight:500;color:var(--subtle);padding:17px 10px}td{padding:16px 10px;border-top:1px solid #25272e;font-size:12px}tr:hover td{background:#18191e}.star-col{width:30px}td .watch-button{font-size:20px}.market-title{display:block;white-space:normal;max-width:400px;font-weight:550}.market-title:hover{color:#c5b0ff}.market-type{display:block;font-size:10px;color:var(--subtle);margin-top:3px}.leading{display:flex;align-items:center;gap:8px;font-size:11px}.raw-price{font-size:18px;font-family:Inter,Arial,sans-serif;font-weight:600}.small-tag{font-size:9px;color:var(--muted);border:1px solid #333640;padding:3px 6px;border-radius:4px}.table-trade{font-size:11px;color:#baa7f7;white-space:nowrap}.tiny-info{font-size:11px;color:var(--muted);padding:0}.load-more{display:block;margin:20px auto 10px;border:1px solid #41434d;padding:10px 25px;border-radius:5px;font-size:11px}.results-count{text-align:center;font-size:10px;color:var(--subtle);margin-bottom:34px}.closing{background:linear-gradient(110deg,#221c37 0%,#1c1729 60%,#262035 100%);padding:30px 35px;display:flex;justify-content:space-between;align-items:center;border:1px solid #393044;border-radius:12px;margin-top:5px}.closing .eyebrow{font-size:8px;color:#b9a4dd}.closing h2{font-size:25px;margin-top:8px}.closing p{font-size:12px;color:#a99cba;margin:8px 0 0}.primary-button{padding:12px 20px;background:#ede5ff;color:#291e3c;font-size:12px;font-weight:650;border-radius:6px}.primary-button:hover{background:white;color:#291e3c}footer{padding:35px 0}.footer-top{display:flex;align-items:center;gap:20px;margin-bottom:20px}.footer-top img{width:62px;filter:brightness(0) invert(1);opacity:.7}.footer-top>span{font-size:9px;letter-spacing:1.4px;color:#777b88}.footer-top>button{margin-left:auto;font-size:10px}footer p{font-size:9px;line-height:1.8;color:#696d7a;margin:5px 0;max-width:1000px}dialog{color:var(--text);border:1px solid #494252;border-radius:15px;background:#1a1b21;padding:36px;max-width:640px;width:calc(100% - 30px);max-height:85vh;box-shadow:0 20px 80px #0008}dialog::backdrop{background:#05050abd;backdrop-filter:blur(6px)}.dialog-close{position:absolute;right:16px;top:12px;font-size:29px;color:#9b9da8}dialog h2{font-size:27px;margin:10px 0 18px}dialog h3{font-size:15px;font-weight:600;margin:23px 0 8px}dialog p{font-size:12px;line-height:1.8;color:#b1b3bf}dialog code{font-size:11px;color:#dacaff;background:#2a2436;padding:3px 6px;border-radius:3px}dialog .primary-button{display:block;text-align:center;margin-top:24px;background:var(--purple);color:white}dialog .detail-quote{display:flex;align-items:center;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--line)}.detail-quote small{color:var(--muted);font-size:10px}.detail-quote strong{font-family:Inter,Arial,sans-serif;font-size:25px}.detail-quote a{font-size:10px;color:#baa7f7;margin-left:15px}.detail-quote div{display:flex;align-items:center;gap:10px}.toast{position:fixed;bottom:25px;left:50%;transform:translate(-50%,15px);background:#ece6f8;color:#262031;border-radius:7px;padding:12px 18px;font-size:12px;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;z-index:60}.toast.show{opacity:1;transform:translate(-50%,0)}#empty-state{text-align:center;padding:40px;color:var(--muted)}#night-panel{border:1px solid #675335;background:#282116;border-radius:8px;padding:13px 18px;margin:0 0 18px;color:var(--amber);display:flex;align-items:center;justify-content:space-between;gap:20px}#night-panel[hidden]{display:none}#night-panel>div{display:flex;align-items:center;gap:8px;font-size:10px}#night-panel strong{font-size:12px}#night-panel>div>span:last-child{color:#b6a786;font-size:10px}.amber-dot{width:7px;height:7px;border-radius:50%;background:var(--amber)}.replay-controls input{accent-color:#d4ad67;width:150px}.replay-controls button{border:1px solid #705e3f;border-radius:4px;padding:4px 9px;color:#e6c990;font-size:11px}.replay-controls output{font-size:11px;font-variant-numeric:tabular-nums;min-width:80px}body.night-mode header{box-shadow:0 1px 0 #917043}.loading-card{padding:60px;color:var(--muted)}.skip{position:absolute;top:-100px;z-index:100;background:white;color:black;padding:10px}.skip:focus{top:10px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}[hidden]{display:none!important}
@media(min-width:1600px){main,.header-inner,.snapshot-strip>div{max-width:1500px}.intro{padding-top:48px}.map-wrap{max-width:850px}#us-map{max-height:450px}}
@media(max-width:1100px){nav{margin-left:12px;gap:18px}.header-inner{gap:18px}.map-layout{grid-template-columns:minmax(0,1fr) 280px}.map-canvas{padding:18px}.chamber-footer{padding:12px 16px;gap:8px}.mini-gauge{width:65px}.seat-numbers{font-size:14px}.chamber-footer>a{font-size:10px}.view-controls{flex-shrink:0}h1{font-size:41px}.mode-switch button{font-size:11px;padding:8px}.no-data{margin-left:7px}.map-legend i{width:19px}}
@media(max-width:850px){main{padding:0 22px}.header-inner{padding:0 22px}.snapshot-strip>div{padding:10px 22px}.edition{font-size:10px}nav{display:none}.intro{align-items:flex-start}.view-controls{padding-top:19px}.icon-button{display:none}h1{font-size:36px}.intro p{font-size:12px}.gauge{padding-bottom:35px}.duel{padding:0 20px}.chamber-footer{flex-wrap:wrap}.chamber-footer>a{width:100%;border-top:1px solid var(--line);padding-top:8px;margin-top:3px;text-align:center}.map-layout{grid-template-columns:1fr 250px}.map-canvas{padding:16px 10px}.map-caption{padding:0 8px;font-size:10px}.map-legend{flex-wrap:wrap;font-size:7px}.map-legend i{width:15px}.map-note{padding:0 8px}.state-label{font-size:17px}#state-panel{padding:18px;min-height:390px}.focus-cards{grid-template-columns:repeat(2,1fr)}.search{width:260px}.filter-tabs{gap:16px}.market-toolbar{gap:6px}.closing{padding:25px}.closing h2{font-size:22px}.closing .primary-button{padding:10px;font-size:10px}#night-panel{flex-wrap:wrap;gap:10px}.needle-footnote{font-size:9px}.needle-footnote button{font-size:9px}}
@media(max-width:620px){header{height:65px}.brand img{width:73px}.header-inner{gap:15px;padding:0 17px}.edition{font-size:9px;letter-spacing:.8px}.brand-divider{height:20px}.open-rolr{font-size:11px;padding:8px 12px}.open-rolr span{margin-left:5px}.snapshot-strip>div{padding:9px 17px;font-size:9px;gap:6px}.snapshot-strip .text-link{font-size:9px;margin-left:auto}.demo-stamp{display:none}main{padding:0 17px}.intro{display:block;padding:28px 0 20px}.intro h1{font-size:37px;letter-spacing:-1.4px}.intro p{font-size:12px}.view-controls{padding-top:20px}.mode-switch{width:100%}.mode-switch button{flex:1;padding:9px;font-size:12px}.chambers{gap:12px;grid-template-columns:1fr}.gauge{padding-bottom:0}.chamber-footer{flex-wrap:nowrap;padding:12px 18px;gap:10px}.chamber-footer>a{width:auto;border:0;padding:0;margin-left:auto;text-align:left;font-size:10px}.mini-gauge{width:66px}.card-heading{padding:17px 20px 0}.card-heading h2{font-size:18px}.needle-footnote{display:block;text-align:center;padding:14px 0 25px;line-height:2}.needle-footnote button{display:block;margin:auto}.section-top{align-items:flex-start;gap:15px;margin-bottom:16px}.map-section>.section-top{display:block}h2{font-size:23px}.tab-group{margin-top:18px}.tab-group button{flex:1}.map-layout{display:flex;flex-direction:column}.map-caption{font-size:9px;gap:5px}.map-canvas{padding:15px 8px}#us-map{min-height:235px}.state-label{font-size:18px}.map-note{font-size:8px}.map-legend i{width:20px}.map-legend{font-size:7px}#state-panel{border-left:0;border-top:1px solid var(--line);min-height:0;padding:20px;display:block;position:relative}.state-panel-top{float:right}.state-code{display:none}#state-panel h3{font-size:23px;margin:0}.state-race-label{margin-bottom:18px}.panel-action{display:block;margin-top:15px}.panel-note{margin:12px 0}.panel-details{display:block;margin:10px auto 0}.state-party-row{margin:10px 0 5px}.state-party-row strong{font-size:24px}.battleground{padding:28px 0}.battleground .section-top>a{font-size:10px;margin-top:25px;white-space:nowrap}.focus-cards{gap:10px}.focus-card{padding:14px}.focus-card h3{font-size:17px}.focus-value{font-size:35px}.focus-value small{font-size:9px;display:block;margin:4px 0 0}.focus-top{font-size:8px}.focus-bottom{font-size:8px}.market-section>.section-top{display:block}.search{width:100%;margin-top:20px;padding:10px 12px}.search input{font-size:12px}.filter-tabs{gap:18px;overflow:auto;flex-shrink:0;width:100%}.filter-tabs button{font-size:11px}.market-toolbar{flex-wrap:wrap}.sort-label{margin:8px 0 10px auto}.market-title{max-width:210px;min-width:170px}th{font-size:8px;padding:12px 7px}td{padding:14px 7px}td:nth-child(6){padding-right:12px}td .table-trade{font-size:10px}.closing{display:block;padding:25px 22px}.closing h2{font-size:24px}.closing p{font-size:11px}.closing .primary-button{display:inline-block;margin-top:22px;font-size:11px;padding:11px 16px}.footer-top{gap:12px;flex-wrap:wrap}.footer-top>span{font-size:7px}.footer-top>button{font-size:9px}.footer-top img{width:54px}footer{padding:28px 0}dialog{padding:26px 22px}.detail-quote{font-size:12px}.detail-quote div{gap:6px}.detail-quote a{margin-left:5px}.replay-controls{width:100%}.replay-controls input{flex:1}#night-panel>div:first-child{flex-wrap:wrap}#night-panel>div:first-child>span:last-child{display:block;width:100%}.toast{max-width:90%;width:max-content;text-align:center;font-size:11px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}

/* ROLR brand: Poppins display, Inter body, JetBrains Mono metadata. */
header{background:#0d0c0ef5}.header-inner{gap:22px}.brand img{width:85px}
h1,h2,h3,.card-heading h2,.focus-card h3,#state-panel h3{font-family:Poppins,Inter,sans-serif;font-weight:600;letter-spacing:-.5px}
h1{font-size:42px;letter-spacing:-1.2px}.intro{padding-top:42px}.intro p{font-size:14px}
nav{font-weight:600;font-size:13px}.open-rolr,.panel-action{font-weight:700;background:var(--purple);border-radius:8px}.open-rolr:hover,.panel-action:hover{background:#7d49ff}
.eyebrow,.edition,.seats-label,.map-caption,.focus-top,.focus-bottom,th,.footer-top>span,.seat-meta{font-family:'JetBrains Mono',monospace}
.eyebrow{font-size:10px;letter-spacing:.3px}.edition{letter-spacing:.3px}
.chamber-card{background:var(--surface);border-color:#242127;border-radius:24px}.card-heading{padding-top:22px}.card-heading h2{font-size:20px}.chamber-footer{background:#1a181c;border-top-color:#29262d}

.seat-numbers{font-family:Inter,sans-serif;font-size:16px;font-weight:700}.seat-meta{font-size:8px}.duel{font-weight:600}.chamber-footer>a,.table-trade{color:#bba1ff;font-weight:600}
.mode-switch,.tab-group{background:#19171c;border-color:#2b282f;border-radius:10px}.mode-switch button.selected,.tab-group button.selected{background:#302d35;color:white}.tab-group button,.mode-switch button{font-weight:600}
.map-layout{background:#151317;border-color:#242127;border-radius:24px}.map-canvas{background:#151317}.state{stroke:#151317}.state:hover,.state.selected,.state:focus{stroke:var(--lime)}#state-panel{background:#1a181c;border-color:#2b282f}.state-code{background:#2d2246;color:#c5afff;font-family:'JetBrains Mono',monospace}
.focus-card{background:var(--surface);border-color:#242127;border-radius:20px}.focus-card h3{font-size:18px}.focus-value{font-family:Inter,sans-serif;font-size:33px;font-weight:700;letter-spacing:-1px}.focus-value small{font-weight:400;letter-spacing:0}.focus-top{font-size:9px}.focus-bottom{font-size:9px}.focus-card:hover{border-color:#5a466e}
.search{background:#19171c;border-radius:22px;border-color:#2c2931}.filter-tabs button{font-weight:600}.filter-tabs button.selected{color:#fff}.filter-tabs button.selected:after{background:var(--lime)}
.market-title{font-weight:600;text-align:left;padding:0}.market-title:hover{color:#cbb9ff}.leading{display:block;font-size:12px;font-weight:600}.raw-price{font-family:Inter,sans-serif;font-weight:700;font-size:16px}th{font-size:9px;font-weight:600;letter-spacing:.2px}td{border-color:#26232a}tr:hover td{background:#19171c}.market-type{font-size:10px;margin-top:5px}
.sparkline-button{display:block;padding:0;width:124px;height:38px;color:inherit}.sparkline-button:hover{filter:brightness(1.2)}.sparkline{width:124px;height:38px;display:block;overflow:visible}.spark-unavailable{font-size:10px;color:var(--subtle);display:inline-block;width:124px}.history-detail{background:#141216;border:1px solid #2e2935;border-radius:12px;padding:16px;margin:18px 0}.history-detail .chart-heading{display:flex;justify-content:space-between;font-family:'JetBrains Mono',monospace;font-size:10px;color:#aaa5b1}.history-detail svg{display:block;width:100%;height:155px;margin:12px 0 6px}.history-detail .chart-caption{font-size:10px;color:#9d97a7;margin:9px 0 0}.history-detail .chart-times{display:flex;justify-content:space-between;font:9px 'JetBrains Mono',monospace;color:#918a9a}
.closing{border-color:#38254e;background:linear-gradient(110deg,#341671,#1a1129);border-radius:24px}.closing .primary-button{background:var(--purple);color:white;font-weight:700;border-radius:8px}.closing .primary-button:hover{background:#7b43ff}.closing h2{font-size:25px}.closing .eyebrow{color:#b99bfa}.closing p{color:#bca9d5}.footer-top>span{letter-spacing:.3px}
dialog{background:#1a181c;border-color:#3f354a;border-radius:20px}dialog h2{font-size:24px}.detail-quote strong{font-family:Inter,sans-serif;font-size:21px;font-weight:700}
@media(max-width:1100px){.chamber-footer{gap:7px}.seat-numbers{font-size:14px}.seat-numbers span+span{margin-left:8px}.seat-meta{font-size:7px}.chamber-footer>a{font-size:9px}}
@media(min-width:621px) and (max-width:850px){.chamber-footer>a{font-size:10px}.mini-gauge{width:62px}}
@media(max-width:620px){h1{font-size:34px;letter-spacing:-1px}.intro{padding-top:28px}.intro p{font-size:12px}.brand img{width:73px}.edition{font-size:9px}.header-inner{gap:14px}.chamber-card{border-radius:20px}.chamber-footer>a{font-size:9px}.seat-meta{font-size:7px}.focus-card{border-radius:16px}.focus-card h3{font-size:16px}.focus-value{font-size:29px}.focus-top,.focus-bottom{font-size:8px}.sparkline-button,.sparkline{width:100px}.spark-unavailable{width:100px}.closing h2{font-size:23px}}

/* Keep the percentage and verdict in normal flow, entirely outside the dial. */
.chamber-body{display:flex;flex-direction:column;align-items:center;gap:14px;padding:18px 24px 20px}
.chamber-stat{position:static;order:0;display:flex;align-items:center;justify-content:center;gap:15px;min-height:70px;width:100%;padding:0;text-align:left}
.control-number{font-family:Inter,Arial,sans-serif;font-size:49px;line-height:1;font-weight:700;letter-spacing:-2px;flex-shrink:0;font-variant-numeric:tabular-nums}
.control-number small{font-family:Inter,sans-serif;font-size:23px;font-weight:600;margin-left:2px;letter-spacing:-.5px}
.control-number.neutral{color:#cbc5d5}.control-caption{max-width:205px}.control-text{font-size:14px;font-weight:600;line-height:1.45;margin:0}.control-sub{display:block;font-size:10px;color:var(--muted);margin-top:5px}
.gauge-area{order:1;width:100%;max-width:330px}.gauge-area>.gauge{padding:0;width:100%}.gauge-area .duel{padding:0 8px;font-size:11px;margin-top:3px}
.needle-footnote{justify-content:flex-end;padding:12px 2px 26px}.map-wrap{margin-top:0}
.sparkline-button.has-change{height:54px}.trend-change{display:block;font-family:'JetBrains Mono',monospace;font-size:10px;line-height:14px;text-align:right;color:#c4bccd}
@media(max-width:850px){.chamber-body{padding:15px 18px 20px;gap:10px}.chamber-stat{gap:11px;min-height:75px}.control-number{font-size:42px}.control-number small{font-size:20px}.control-text{font-size:12px}.control-sub{font-size:9px}.control-caption{max-width:170px}.gauge-area{max-width:300px}}
@media(max-width:620px){.chamber-body{padding:15px 22px 20px;gap:12px}.chamber-stat{gap:16px;min-height:65px}.control-number{font-size:48px}.control-number small{font-size:23px}.control-text{font-size:13px}.control-sub{font-size:9px}.control-caption{max-width:190px}.gauge-area{max-width:330px}.needle-footnote{text-align:right}.needle-footnote button{margin:0 0 0 auto}}

.intro p.refresh-status{font-size:10px;color:var(--muted);margin-top:10px;min-height:15px}.intro p.refresh-status.stale{color:var(--amber)}

.intro p.refresh-status.live::before{content:"";display:inline-block;width:5px;height:5px;border-radius:50%;background:#97c6a6;margin-right:6px;vertical-align:1px}
.intro{padding:30px 0 24px}.intro h1{font-size:clamp(22px,2.35vw,32px);line-height:1.3;letter-spacing:-.7px;margin:0;max-width:1000px}.intro .view-controls{padding-top:0}.intro p.refresh-status{font-variant-numeric:tabular-nums}

/* Keep the ROLR identity while giving prices, context and actions room to read. */
:root{--subtle:#a3a1a6}
.mobile-nav{display:none}.intro p.refresh-status{font-size:12px}
.card-heading{padding:20px 24px 0}.card-heading>.tiny-info{margin-left:auto}
.tiny-info{font:14px Inter,sans-serif;min-width:28px;min-height:28px;padding:3px;color:var(--muted);vertical-align:middle}
.chamber-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(170px,1.18fr);gap:12px;padding:20px 24px 18px;min-height:200px}
.chamber-stat{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:9px;min-height:0;text-align:left}
.control-number{font-size:50px}.control-text{font-size:14px;line-height:1.5}.control-caption{max-width:195px}
.gauge-area{order:0;align-self:center;max-width:300px}.gauge-area .gauge{padding:0}.gauge text{font-size:10px}
.hour-move{display:inline-block;font-size:12px;line-height:1.4;font-weight:600;border-radius:6px;padding:5px 8px;background:#28374966;white-space:nowrap;font-variant-numeric:tabular-nums}
.hour-move.red{background:#512d3566}.hour-move.unavailable{color:var(--muted);background:#28252d}
.needle-sweep,.needle-sweep-fill{animation:none!important;transition:none!important}
.chamber-footer{padding:14px 20px;gap:10px;min-height:98px;flex-wrap:nowrap}
.mini-gauge{width:68px;min-width:56px;padding:0}.mini-gauge .gauge{padding:0}.mini-summary{min-width:0}
.seats-label{font-family:Inter,sans-serif;font-size:12px;letter-spacing:0;text-transform:none;font-weight:500;line-height:1.4}
.seats-label .tiny-info{font-size:12px;min-width:24px;min-height:24px;padding:0}
.seat-meta{font:11px Inter,sans-serif;color:var(--muted)}.seat-numbers{font-size:18px;line-height:1.5;white-space:nowrap}.seat-numbers em{font-size:11px}.seat-numbers span+span{margin-left:12px}
.chamber-footer>a{width:auto;border:0;margin:0 0 0 auto;padding:8px 0 8px 8px;font-size:12px;font-weight:700;letter-spacing:.2px}
.needle-footnote button{font-size:12px}.needle-footnote{padding-bottom:24px}
.state-picker{display:flex;align-items:center;gap:12px;margin:0 0 14px;font-size:12px;color:var(--muted)}
.state-picker select,.chart-outcome-label select{background:#242228;border:1px solid #403a48;border-radius:7px;color:white;padding:9px 12px;font-size:13px;max-width:100%}
.state-label{paint-order:stroke;stroke:#17131b;stroke-width:3px;stroke-linejoin:round;text-shadow:none}
.map-legend{font-size:10px;letter-spacing:0;flex-wrap:wrap;row-gap:8px}.map-note{font-size:12px;color:var(--muted)}.map-legend .no-data{margin-left:9px}.coverage-key{color:#c5afff}
.panel-note,.panel-details,.state-race-selector{font-size:12px}.panel-action{font-size:13px}.state-race-label{font-size:13px}
.focus-top,.focus-bottom{font:11px Inter,sans-serif;letter-spacing:0}.focus-value small{font-size:12px}.battleground .eyebrow{font-size:10px}
.market-toolbar{flex-wrap:wrap}.filter-tabs{flex:1}.market-utilities{display:flex;align-items:center;gap:15px}.market-utilities button{font-size:12px;min-height:38px;color:var(--muted)}
th{font-size:11px}.market-type{font-size:11px}.leading{font-size:13px}.raw-price{font-size:19px}.table-trade{font-size:12px!important;white-space:nowrap}
.watch-button{min-width:44px;min-height:44px}.mobile-price-info{display:none}.sparkline-button.has-change{height:58px}.trend-change{font:11px Inter,sans-serif;line-height:18px;color:var(--muted)}.spark-unavailable{font-size:12px}
.detail-summary{display:flex;gap:12px;align-items:center;color:var(--muted);font-size:13px;margin:12px 0 20px}.detail-summary>.tiny-info{flex-shrink:0;margin-left:auto}
.detail-quote{gap:15px}.detail-quote small{font-size:11px;line-height:1.8;color:var(--muted)}.detail-quote a{font-size:12px;font-weight:700;white-space:nowrap;color:#bba1ff}.detail-quote strong{font-size:23px;white-space:nowrap}
.detail-quote>div{display:flex;align-items:center;gap:22px}.normalized-summary{font-size:13px}.normalized-summary b{margin:0 5px}
.chart-outcome-label{display:flex;align-items:center;gap:12px;font-size:12px;color:var(--muted)}.chart-outcome-label select{flex:1;min-width:0}
.history-detail .chart-caption,.history-detail .chart-times{font:12px/1.6 Inter,sans-serif}.price-explanation{border-top:1px solid var(--line);padding-top:18px;margin-top:20px}.price-explanation summary{cursor:pointer;font-size:13px}.price-explanation p,dialog p{font-size:13px;line-height:1.8}
.margin-detail-value{font-size:34px;font-weight:700;margin:15px 0}.margin-buckets{margin:18px 0}.margin-buckets>div{display:flex;justify-content:space-between;gap:16px;padding:9px 0;border-bottom:1px solid var(--line);font-size:13px}
footer p{font-size:11px;color:var(--muted)}.footer-top>button{font-size:12px}
@media(min-width:621px) and (max-width:1050px){.chamber-body{grid-template-columns:1fr;min-height:0}.chamber-stat{align-items:center;text-align:center}.control-caption{max-width:none}.gauge-area{width:230px;margin:auto}.chamber-footer{flex-wrap:wrap}.chamber-footer>a{margin-left:auto}.seats-label{font-size:11px}}
@media(max-width:850px){.mobile-nav{display:flex;margin:0 0 20px;padding:0;height:auto;gap:26px;border-bottom:1px solid var(--line);font-size:13px}.mobile-nav a,.mobile-nav button{padding:10px 0;min-height:44px}.mobile-nav a:first-child{border-bottom:2px solid var(--lime)}.market-utilities{order:2}.sort-label{order:3}.filter-tabs{flex-basis:100%;width:100%}}
@media(max-width:620px){
 .chambers{gap:14px}.intro{padding:24px 0 10px}.view-controls{display:none}.mobile-nav{margin-bottom:18px;gap:24px}.card-heading{padding:16px 18px 0}.card-heading h2{font-size:18px}
 .chamber-body{grid-template-columns:minmax(0,1fr) minmax(140px,1.05fr);padding:12px 18px 14px;gap:10px;min-height:148px}
 .chamber-stat{align-items:flex-start;text-align:left;gap:7px}.control-number{font-size:40px;letter-spacing:-1.5px}.control-number small{font-size:20px}.control-text{font-size:12px;line-height:1.5}.control-caption{max-width:150px}.hour-move{font-size:10px;padding:4px 6px}.gauge-area{max-width:180px;width:100%;margin:0}.gauge text{font-size:11px}
 .chamber-footer{padding:10px 16px;gap:9px;min-height:89px;flex-wrap:nowrap}.mini-gauge{width:56px;min-width:46px}.seats-label{font-size:11px}.seat-meta{font-size:10px}.seat-numbers{font-size:17px}.seat-numbers span+span{margin-left:8px}.seat-numbers em{font-size:10px}.chamber-footer>a{font-size:11px}.seats-label .tiny-info{min-height:28px;min-width:25px}
 .tab-group button{padding:8px 10px}.map-legend{font-size:9px}.map-note{font-size:12px}.state-picker select{flex:1}.battleground .section-top{align-items:center}.battleground .eyebrow{font-size:9px;max-width:220px}.focus-top,.focus-bottom{font-size:11px}.focus-value small{font-size:11px}.focus-card h3{font-size:16px}.market-utilities{order:2;gap:18px}.sort-label{order:3;font-size:12px;margin:4px 0 4px auto}.sort-label select{font-size:12px}.filter-tabs{gap:20px}.filter-tabs button{font-size:12px;min-height:44px}
 .table-wrap{overflow:visible}table,tbody{display:block;width:100%}thead{display:none}tr{display:grid;grid-template-columns:minmax(0,1fr) 126px 42px;grid-template-areas:'name name watch' 'outcome trend trend' 'price trend trend' 'action action action';gap:2px 8px;border:1px solid var(--line);border-radius:16px;background:var(--surface);padding:14px;margin:12px 0}td{display:block;padding:0!important;border:0;white-space:normal}tr:hover td{background:none}
 .market-name{grid-area:name;align-self:center}.market-watch{grid-area:watch}.market-outcome{grid-area:outcome;padding-top:12px!important}.market-price{grid-area:price;display:flex;align-items:center;gap:4px}.market-trend{grid-area:trend;align-self:center;justify-self:end;padding-top:8px!important}.market-destination{grid-area:action;border-top:1px solid var(--line);margin-top:10px;padding-top:10px!important;text-align:right}
 .market-title{min-width:0;max-width:none;white-space:normal;font-size:14px;line-height:1.5}.market-type{font-size:11px;margin-top:3px}.leading{font-size:12px;line-height:1.5}.raw-price{font-size:26px}.mobile-price-info{display:inline-block;min-width:32px;min-height:36px}.market-watch .watch-button{width:42px;height:44px}.market-destination a{display:inline-block;min-height:36px;padding:8px 0 5px 18px;font-size:12px!important}.sparkline-button,.sparkline{width:126px}.trend-change{font-size:11px}.spark-unavailable{width:126px;text-align:right}
 .detail-quote>div{gap:9px;flex-direction:column;align-items:flex-end}.detail-quote a{margin:0}.detail-quote strong{font-size:24px}.detail-quote small{font-size:11px}.history-detail{padding:12px}.history-detail .chart-times{font-size:10px}.footer-top>button{font-size:12px}
}
@media(max-width:360px){.chamber-body{padding-left:14px;padding-right:14px;grid-template-columns:minmax(0,1fr) 130px}.control-number{font-size:36px}.hour-move{font-size:9px}.chamber-footer{padding:10px 12px;gap:6px}.mini-gauge{width:46px}.seats-label{font-size:10px}.seat-meta{font-size:9px}.chamber-footer>a{font-size:10px}}

/* Solid probability shares; a three-hour movement arrow meets at their boundary. */
.focus-bar{position:relative;display:flex;gap:0;height:7px;margin:18px 0 15px;border-radius:5px;background:none}
.focus-bar.unavailable{background:#36323d}
.focus-bar .focus-blue,.focus-bar .focus-red{display:block;height:100%;border-radius:0}
.focus-bar .focus-blue{background:var(--blue);border-radius:5px 0 0 5px}
.focus-bar .focus-red{background:var(--red);border-radius:0 5px 5px 0}
.focus-move{position:absolute;top:50%;transform:translate(-50%,-50%) scale(1.12);overflow:visible;filter:drop-shadow(0 1px 2px #17131bb3);pointer-events:none;transition:left .5s ease}
.focus-move.favor-D{color:#91cfff}
.focus-move.favor-R{color:#ff9c92}
.focus-move path{fill:currentColor;stroke:currentColor;stroke-width:.8;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.focus-move .move-outline{fill:#211b27;stroke:#211b27;stroke-width:3.25}
#us-map .state{stroke:#151317;stroke-width:.8;stroke-linejoin:round;filter:none;outline:none}
#us-map .state:hover{stroke:#b9b1c6;stroke-width:1.05;filter:brightness(1.04)}
#us-map .state.selected{stroke:#d2c8e0;stroke-width:1.15;filter:drop-shadow(0 0 2px #bca6db40)}
#us-map .state:focus-visible{stroke:#efe7c4;stroke-width:1.7;filter:drop-shadow(0 0 3px #dbce9240);outline:none}
.battleground>.section-top{align-items:center}

/* Size flags to the card's available space, including wide two-column layouts. */
.state-flag{object-fit:contain;display:block;width:36px;height:25px;flex:none;filter:drop-shadow(0 1px 2px #0005)}
.focus-card{container-type:inline-size;container-name:race-tile}
.focus-top{align-items:center;min-height:25px;gap:8px}
.focus-top>span{min-width:0}
@container race-tile (min-width:180px){.focus-heading .state-flag{width:48px;height:33px}}
@container race-tile (min-width:260px){.focus-heading .state-flag{width:56px;height:39px}}
#state-panel .state-flag{width:56px;height:39px}
@media(max-width:620px){.focus-top{gap:6px}#state-panel .state-flag{width:44px;height:30px}.state-panel-top{gap:14px}}

/* Group race identity and its flag; keep odds and movement aligned across cards. */
.focus-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:44px}
.focus-identity{min-width:0}
.focus-chamber{display:block;color:var(--muted);font-size:10px;font-weight:500;line-height:1.4;letter-spacing:1px;text-transform:uppercase}
.focus-card .focus-title{font-size:19px;line-height:1.3;letter-spacing:-.4px;margin:6px 0 0}
.focus-value{display:flex;align-items:baseline;flex-wrap:wrap;gap:3px 9px;font-size:36px;line-height:1;margin-top:17px;font-variant-numeric:tabular-nums}
.focus-percent{font-size:.65em;letter-spacing:-.5px;margin-left:1px}
.focus-value small{display:inline;margin:0;font-size:11px;line-height:1.3;white-space:nowrap}
.focus-bar{margin:18px 0 14px}
.focus-bottom{font-size:10px;line-height:1.4}
@container race-tile (max-width:179px){.focus-heading{gap:8px}.focus-chamber{font-size:9px;letter-spacing:.7px}.focus-card .focus-title{font-size:17px}.focus-value{font-size:31px;gap:3px 7px;margin-top:14px}.focus-value small{font-size:10px}.focus-bottom{font-size:9px}}

/* Vector info icons stay smooth and consistent at small display sizes. */
.tiny-info,#quotes-help{display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;line-height:1;color:var(--muted);border-radius:50%;transition:color .15s,background-color .15s}
.info-icon{display:block;width:16px;height:16px;flex:none;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}
.info-icon .info-dot{fill:currentColor;stroke:none}
.tiny-info:hover,#quotes-help:hover{color:var(--text);background:color-mix(in srgb,var(--text) 6%,transparent)}
#quotes-help{min-width:24px;min-height:24px;padding:3px;margin-left:3px}
.mobile-price-info{display:none}
@media(max-width:620px){.mobile-price-info{display:inline-flex}}

/* Second-round polish: stable comparison rows and screen-sized dial references. */
.chamber-card .card-heading{gap:12px;align-items:center}
.card-heading h2{min-width:0}
.chamber-actions{display:flex;align-items:center;gap:8px;flex:none}
.chamber-trade{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 5px;color:#bba1ff;font-size:11px;font-weight:700;white-space:nowrap;border-radius:7px}
.chamber-actions .tiny-info{min-width:32px;min-height:36px}
.control-caption{min-height:42px}
.dial-frame{position:relative;width:100%;line-height:1}
.dial-frame>.gauge{padding:0;width:100%;height:auto}
.dial-reference{position:absolute;font-family:Inter,sans-serif;font-size:10px;font-weight:500;line-height:1.1;white-space:nowrap;pointer-events:none}
.dial-center{top:-1px;left:50%;transform:translateX(-50%);color:var(--muted)}
.dial-dem{bottom:0;left:0;color:#7da6d5}
.dial-rep{bottom:0;right:0;color:#d28594}
.mini-dial{padding-top:8px}
.mini-dial .dial-center{top:0;font-size:9px}
.mini-dial:before{content:'';position:absolute;top:12px;left:50%;height:3px;border-left:1px solid var(--muted);opacity:.65}
.mini-gauge{min-height:44px}
.control-number,.seat-numbers,.raw-price,.state-party-row strong,.trend-change,.detail-quote strong,.margin-detail-value{font-variant-numeric:tabular-nums}

/* The modal title and exit remain mounted and visible as quotes update or scroll. */
#detail-dialog{padding:0;scroll-padding-top:94px}
.dialog-header{position:sticky;top:0;z-index:4;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 24px 14px;background:var(--surface);border-bottom:1px solid var(--line)}
.dialog-header h2{font-size:24px;line-height:1.3;margin:0;min-width:0}
.dialog-header .dialog-close{position:static;display:inline-flex;align-items:center;justify-content:center;flex:none;min-width:44px;min-height:44px;padding:0;border-radius:10px;font-size:27px;line-height:1;color:var(--muted)}
.dialog-close:hover{background:var(--surface2);color:var(--text)}
#dialog-content{padding:16px 26px 26px}
.detail-quote a{display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:64px;padding:0 8px;border-radius:7px}
.detail-quote a:hover,.chamber-trade:hover{background:color-mix(in srgb,var(--purple) 10%,transparent)}
.price-explanation summary{scroll-margin-top:100px}
@media(max-width:620px){
 .chamber-card .card-heading{gap:6px;padding-top:10px}
 .card-heading h2{font-size:17px}
 .chamber-actions{gap:3px}
 .chamber-actions .tiny-info{min-width:36px;min-height:44px}
 .chamber-trade{font-size:10px;padding:0 4px}
 .control-caption{min-height:36px}
 .dial-reference{font-size:10px}
 .dialog-header{padding:12px 16px;gap:10px}
 .dialog-header h2{font-size:21px}
 #dialog-content{padding:14px 20px 22px}
 #chart-outcome{font-size:16px;min-height:44px}
 .detail-quote>div{gap:1px}
}
@media(max-width:360px){
 .control-caption{min-height:54px}
 .card-heading h2{font-size:16px}
 .chamber-card .card-heading{padding-left:14px;padding-right:10px}
}
