:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--ink:#06111d;--ink-2:#0a1928;--panel:#091a2aeb;--panel-strong:#0b2032;--line:#274156;--line-soft:#4b718e4d;--text:#f7f5ef;--muted:#9fb2c3;--red:#ff514a;--red-soft:#ff7b75;--cyan:#35baf2;--cyan-soft:#9bdfff;--green:#56d39b;--amber:#ffc857;--danger:#ff746e;--shadow:0 18px 60px #0000004d}*{box-sizing:border-box}html{background:var(--ink)}body{min-height:100vh;color:var(--text);font-variant-numeric:tabular-nums;background:radial-gradient(circle at 72% -20%,#35baf21a,#0000 33rem),linear-gradient(#06111d 0%,#071522 48%,#05101a 100%);margin:0;font-family:Arial Narrow,Roboto Condensed,Helvetica Neue,Arial,sans-serif}button,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent}:is(button:focus-visible,input:focus-visible,a:focus-visible){outline:2px solid var(--cyan);outline-offset:3px}a{color:inherit}.app-shell{width:min(1800px,100%);margin:0 auto;padding:18px 20px 12px}.topbar{border-bottom:1px solid var(--line);grid-template-columns:minmax(310px,1fr) auto auto;align-items:center;gap:22px;min-height:64px;padding-bottom:14px;display:grid}.brand{letter-spacing:-.03em;text-transform:uppercase;margin:0;font-size:clamp(1.75rem,3vw,2.75rem);font-weight:900;line-height:1}.brand span{color:var(--red)}.status-cluster,.top-actions,.live-state,.reporting-summary{align-items:center;display:flex}.status-cluster{gap:22px}.live-state{letter-spacing:.04em;text-transform:uppercase;gap:9px;font-weight:800}.live-dot{background:var(--red);border-radius:50%;width:10px;height:10px;box-shadow:0 0 0 5px #ff514a1f}.live-dot.pre{background:var(--amber);box-shadow:0 0 0 5px #ffc8571f}.live-dot.final{background:var(--green);box-shadow:0 0 0 5px #56d39b1f}.updated{color:var(--muted);white-space:nowrap;font-size:.88rem}.reporting-summary{gap:10px;min-width:225px}.reporting-summary strong{letter-spacing:.04em;white-space:nowrap;font-size:.87rem}.progress-track{background:#253647;flex:1;min-width:120px;height:8px;overflow:hidden}.progress-fill{background:var(--cyan);height:100%;transition:width .5s}.top-actions{gap:10px}.control-button{-webkit-appearance:none;appearance:none;color:var(--text);cursor:pointer;background:#071522b8;border:1px solid #496176;justify-content:center;align-items:center;gap:8px;min-height:42px;padding:0 14px;transition:border-color .16s,background .16s,transform .16s;display:inline-flex}.control-button:hover{border-color:var(--cyan);background:#122f46d9}.control-button:active{transform:translateY(1px)}.control-button:disabled{cursor:wait;opacity:.62}.icon{font-size:1.1rem;line-height:1}.notice-bar{color:#ffe4a8;background:#ffc85712;border:1px solid #ffc85752;justify-content:space-between;gap:16px;margin:12px 0;padding:9px 12px;font-size:.84rem;display:flex}.notice-bar.stale{color:#ffc1bd;background:#ff514a14;border-color:#ff746e6b}.race-grid{grid-template-columns:1fr 1fr;gap:14px;display:grid}.lower-grid{grid-template-columns:1.15fr .84fr 1fr;gap:14px;margin-top:14px;display:grid}.panel{border:1px solid var(--line);min-width:0;box-shadow:var(--shadow);background:linear-gradient(#0f273bbf,#06131fcc),repeating-linear-gradient(90deg,#0000 0 79px,#6fa4c806 80px)}.panel-header{border-bottom:1px solid var(--line-soft);justify-content:space-between;align-items:baseline;gap:14px;min-height:54px;padding:13px 16px 10px;display:flex}.panel-title{letter-spacing:.035em;text-transform:uppercase;margin:0;font-size:clamp(1.05rem,1.7vw,1.45rem);font-weight:900}.panel-kicker{color:var(--red);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;font-size:.78rem;font-weight:900}.panel-body{padding:0 16px 14px}.candidate-head,.candidate-row{grid-template-columns:minmax(160px,1.35fr) minmax(100px,1fr) 105px 78px;align-items:center;gap:14px;display:grid}.candidate-head{height:42px;color:var(--muted);letter-spacing:.09em;text-transform:uppercase;font-size:.72rem;font-weight:800}.candidate-list{scrollbar-color:var(--line) transparent;max-height:300px;overflow:auto}.candidate-row{border-top:1px solid var(--line-soft);min-height:59px}.candidate-name{align-items:center;gap:10px;min-width:0;font-size:1rem;font-weight:800;display:flex}.candidate-name span:last-child{text-overflow:ellipsis;overflow:hidden}.leader-tag{background:var(--red);color:#fff;letter-spacing:.06em;text-transform:uppercase;flex:none;padding:4px 6px 3px;font-size:.63rem;font-weight:900}.fine-row .candidate-name{font-size:1.18rem}.result-bar{background:#24384a;height:10px;overflow:hidden}.result-bar>span{background:linear-gradient(90deg, var(--red), #f77771);height:100%;transition:width .5s;display:block}.fine-row .result-bar>span{background:linear-gradient(90deg, var(--red), #ff6c65)}.vote-number,.percent-number{text-align:right;font-size:1.02rem;font-weight:800}.percent-number{color:var(--red-soft)}.race-footer{border-top:1px solid var(--line-soft);color:var(--muted);justify-content:space-between;gap:16px;margin-top:8px;padding-top:12px;font-size:.78rem;display:flex}.race-footer strong{color:var(--text)}.subhead{letter-spacing:.05em;text-transform:uppercase;margin:0;font-size:1.1rem;font-weight:900}.county-empty{text-align:center;color:var(--muted);padding:35px 12px}.county-map-body{grid-template-columns:minmax(0,1.45fr) minmax(145px,.75fr);min-height:300px;display:grid}.map-stage{border-right:1px solid var(--line-soft);grid-template-rows:minmax(0,1fr) auto;min-width:0;padding:8px 5px 7px 10px;display:grid}.florida-map{width:100%;height:248px;overflow:visible}.county-shape{stroke:#6f91aa;stroke-width:.8px;vector-effect:non-scaling-stroke;cursor:pointer;transition:fill .14s,stroke .14s}.county-shape:hover,.county-shape:focus{fill:var(--cyan);stroke:#e5f6ff;outline:none}.county-shape.selected{stroke:#fff;stroke-width:2.2px}.map-loading{min-height:248px;color:var(--muted);text-align:center;place-items:center;font-size:.78rem;display:grid}.map-legend{color:var(--muted);text-transform:uppercase;flex-wrap:wrap;justify-content:center;gap:8px 12px;font-size:.65rem;display:flex}.map-legend span{align-items:center;gap:5px;display:inline-flex}.map-legend i{width:8px;height:8px;display:inline-block}.county-detail{background:#03101b61;min-width:0;padding:12px}.county-select-label{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;margin-bottom:5px;font-size:.62rem;font-weight:900;display:block}.county-select{border:1px solid var(--line);width:100%;height:31px;color:var(--text);background:#071725;padding:0 6px;font-size:.72rem}.county-detail h3{text-transform:uppercase;margin:12px 0 3px;font-size:.92rem}.county-reporting{color:var(--muted);margin:0 0 13px;font-size:.67rem;line-height:1.35}.county-candidate-list{gap:11px;display:grid}.county-candidate>div:first-child{justify-content:space-between;gap:8px;font-size:.7rem;display:flex}.county-candidate strong{color:var(--text);white-space:nowrap;font-size:.68rem}.mini-track{background:#24384a;height:5px;margin-top:4px;overflow:hidden}.mini-track span{height:100%;transition:width .4s;display:block}.county-source{color:#70889b;margin:14px 0 0;font-size:.58rem;line-height:1.35}.empty-state{text-align:center;align-content:center;justify-items:center;min-height:300px;padding:34px 18px;display:grid}.empty-icon{border:1px solid var(--cyan);width:52px;height:52px;color:var(--cyan);border-radius:50%;place-items:center;font-size:1.4rem;display:grid}.empty-state h3{text-transform:uppercase;letter-spacing:.04em;margin:16px 0 7px;font-size:1rem}.empty-state p{max-width:330px;color:var(--muted);margin:0;font-size:.82rem;line-height:1.55}.adapter-note{color:var(--cyan-soft);letter-spacing:.06em;text-transform:uppercase;margin-top:18px;font-size:.7rem}.headline-list{height:300px;margin:0;padding:0;list-style:none;overflow:auto}.headline-item{border-bottom:1px solid var(--line-soft)}.headline-link{grid-template-columns:64px 1fr;gap:10px;padding:11px 14px;text-decoration:none;display:grid}.headline-link:hover{background:#35baf20f}.headline-time{color:var(--red-soft);font-size:.72rem;font-weight:900}.headline-title{font-size:.86rem;font-weight:800;line-height:1.28;display:block}.headline-source{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin-top:4px;font-size:.7rem;display:block}.site-footer{border-top:1px solid var(--line);color:var(--muted);justify-content:space-between;gap:18px;margin-top:14px;padding:11px 3px 2px;font-size:.72rem;display:flex}.site-footer a{color:var(--cyan-soft);text-decoration:none}.skeleton{background:#152b3d;position:relative;overflow:hidden;color:#0000!important}.skeleton:after{content:"";background:linear-gradient(90deg,#0000,#ffffff14,#0000);animation:1.4s infinite shimmer;position:absolute;inset:0;transform:translate(-100%)}@keyframes shimmer{to{transform:translate(100%)}}.login-page{place-items:center;min-height:100vh;padding:24px;display:grid;position:relative;overflow:hidden}.login-page:before{content:"";border:1px solid #35baf221;border-radius:50%;width:680px;height:680px;position:absolute;box-shadow:0 0 0 110px #35baf206,0 0 0 220px #ff514a05}.login-card{border:1px solid var(--line);width:min(440px,100%);box-shadow:var(--shadow);background:#071725f0;padding:34px;position:relative}.login-eyebrow{color:var(--cyan);letter-spacing:.13em;text-transform:uppercase;margin:0 0 8px;font-size:.72rem;font-weight:900}.login-card h1{text-transform:uppercase;letter-spacing:-.025em;margin:0;font-size:2.15rem;line-height:1}.login-card h1 span{color:var(--red)}.login-copy{color:var(--muted);margin:15px 0 26px;font-size:.9rem;line-height:1.55}.login-label{color:var(--text);letter-spacing:.08em;text-transform:uppercase;margin-bottom:8px;font-size:.74rem;font-weight:900;display:block}.code-input{width:100%;height:54px;color:var(--text);letter-spacing:.18em;background:#04101b;border:1px solid #496176;padding:0 14px;font-size:1.15rem}.login-button{background:var(--red);color:#fff;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;border:0;width:100%;height:50px;margin-top:12px;font-weight:900}.login-button:hover{background:#ff655e}.login-button:disabled{opacity:.62;cursor:wait}.login-error{color:#ffaaa5;min-height:21px;margin:10px 0 0;font-size:.8rem}.login-foot{border-top:1px solid var(--line-soft);color:var(--muted);align-items:center;gap:8px;margin-top:22px;padding-top:17px;font-size:.7rem;display:flex}@media (max-width:1120px){.topbar{grid-template-columns:1fr auto}.status-cluster{grid-area:2/1/auto/-1;justify-content:space-between}.lower-grid{grid-template-columns:1fr 1fr}.county-map-panel{order:1}.headlines-panel{order:2;grid-column:auto}.exit-panel{order:3;grid-column:1/-1}.county-map-body{grid-template-columns:1fr}.map-stage{border-right:0;border-bottom:1px solid var(--line-soft)}}@media (max-width:820px){.app-shell{padding:14px 12px 10px}.topbar{gap:13px}.top-actions .button-label{display:none}.control-button{min-width:42px;padding:0 10px}.race-grid,.lower-grid{grid-template-columns:1fr}.headlines-panel{grid-column:auto}.county-map-panel{order:1}.headlines-panel{order:2}.exit-panel{order:3;grid-column:auto}.candidate-head,.candidate-row{grid-template-columns:minmax(140px,1.1fr) minmax(80px,1fr) 84px 65px;gap:8px}.notice-bar{flex-direction:column}}@media (max-width:540px){.brand{font-size:1.72rem}.status-cluster{flex-wrap:wrap;gap:12px}.reporting-summary{width:100%;min-width:0}.updated{font-size:.76rem}.candidate-head{display:none}.candidate-row{grid-template-columns:1fr auto;gap:8px 12px;padding:12px 0}.candidate-name{grid-area:1/1}.vote-number{grid-area:1/2}.result-bar{grid-area:2/1}.percent-number{grid-area:2/2}.panel-header{align-items:flex-start}.site-footer{flex-direction:column}.login-card{padding:28px 22px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
