:root{font-family:'DM Sans',sans-serif;color:#16243a;background:#f5f6f2;font-synthesis:none}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0}button,input{font:inherit}button{cursor:pointer}a{color:inherit}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.topline{height:30px;background:#12334c;color:#e9f5f4;display:flex;justify-content:space-between;align-items:center;padding:0 max(4.4vw,24px);font-size:10px;font-weight:800;letter-spacing:.18em}.site-header{height:74px;border-bottom:1px solid #e0e5e3;display:flex;align-items:center;justify-content:space-between;padding:0 max(4.4vw,24px);background:#fff}.brand{display:flex;align-items:center;gap:12px;font-family:Manrope,sans-serif;font-size:18px;font-weight:800;letter-spacing:-.05em}.brand-mark{width:35px;height:35px;border-radius:9px;background:#14536d;color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:12px;letter-spacing:-.13em}.brand-mark span{width:5px;height:5px;background:#f4c56c;border-radius:50%;align-self:flex-end;margin:0 2px 9px}.site-header nav{display:flex;gap:38px}.site-header nav a{font-size:13px;font-weight:700;text-decoration:none;color:#677382}.site-header nav a:first-child{color:#153d56}.header-right{display:flex;align-items:center;gap:24px}.source-indicator{font-size:11px;font-weight:800;letter-spacing:.07em;color:#2e645e}.source-indicator i{display:inline-block;width:7px;height:7px;border-radius:50%;background:#5ab68a;margin-right:5px}.share-button{border:1px solid #d6deda;background:#fff;border-radius:8px;padding:10px 14px;font-size:12px;font-weight:800;color:#173b50}.share-button span{font-size:16px;margin-left:7px}main{max-width:1600px;margin:auto}.hero{padding:61px max(4.4vw,24px) 54px;display:flex;align-items:flex-end;justify-content:space-between}.eyebrow,.section-kicker{font-size:10px;font-weight:800;letter-spacing:.18em;color:#2c7880}.eyebrow{display:flex;align-items:center;gap:10px}.eyebrow-line{width:28px;height:2px;background:#d5905b}.hero h1{font:800 clamp(38px,4vw,65px)/1.08 Manrope,sans-serif;letter-spacing:-.065em;margin:15px 0}.hero h1 em{font-style:normal;color:#2c7880}.hero p{max-width:585px;color:#687987;font-size:15px;line-height:1.65;margin:0}.hero-date{text-align:right;min-width:170px;border-left:1px solid #dce4df;padding-left:30px}.hero-date>span,.hero-date small{display:block;font-size:10px;font-weight:800;letter-spacing:.14em;color:#687987}.hero-date strong{font:800 52px/1 Manrope,sans-serif;letter-spacing:-.08em;display:block;margin:7px 0}.hero-date strong span{font-size:29px;color:#7199a2}.app-shell{margin:0 max(4.4vw,24px);border:1px solid #dce4e0;border-radius:17px;background:white;box-shadow:0 12px 40px rgba(16,49,68,.035);overflow:hidden}.app-toolbar{min-height:65px;padding:12px 20px;border-bottom:1px solid #e5eae7;display:flex;justify-content:space-between;align-items:center;gap:20px}.scope-tabs{background:#f0f3f1;border-radius:9px;padding:4px;display:flex;gap:2px}.scope-tabs button{border:0;background:transparent;border-radius:6px;padding:10px 16px;color:#71808a;font-size:12px;font-weight:800}.scope-tabs button.active{background:white;color:#1d4f66;box-shadow:0 1px 4px #d9e2dd}.toolbar-actions{display:flex;gap:9px}.search-wrap{position:relative;width:244px}.search-wrap>span{position:absolute;left:12px;top:7px;color:#58707c;font-size:23px}.search-wrap input{width:100%;border:1px solid #dce5e2;background:#fafbf9;border-radius:8px;padding:10px 12px 10px 35px;outline:none;font-size:12px}.search-wrap input:focus{border-color:#267d83;box-shadow:0 0 0 3px #d6eeee}.search-results{position:absolute;top:42px;right:0;width:min(370px,90vw);max-height:300px;overflow:auto;background:white;border:1px solid #dce5e2;border-radius:10px;box-shadow:0 12px 30px #173b5030;z-index:10}.search-results button{display:block;width:100%;text-align:left;border:0;background:white;padding:11px 14px;border-bottom:1px solid #edf1ee;color:#223b4c;font-size:13px}.search-results button:hover,.search-results button:focus{background:#eff7f5}.search-results small{display:block;color:#7a8b92;margin-top:2px}.icon-button{border:1px solid #dce5e2;background:#fff;border-radius:8px;width:39px;color:#26556d;font-size:19px}.content-grid{display:grid;grid-template-columns:minmax(280px,30%) minmax(340px,1fr) minmax(250px,23%);min-height:530px}.main-panel{padding:28px;border-right:1px solid #e7ece9}.panel-heading{display:flex;justify-content:space-between;gap:10px}.breadcrumb{font-size:11px;color:#558090;font-weight:800}.breadcrumb button{border:0;background:none;color:inherit;padding:0}.breadcrumb button:hover{text-decoration:underline}.breadcrumb span{color:#8c9da2}.panel-heading h2,.map-heading h2{font:800 21px/1.2 Manrope,sans-serif;letter-spacing:-.045em;margin:12px 0 4px}.panel-subtitle{font-size:11px;color:#91a0a3;margin:0}.status-pill{white-space:nowrap;height:26px;border-radius:20px;background:#f4f4e7;color:#777449;padding:7px 9px;font-size:10px;font-weight:800}.status-pill span{display:inline-block;width:6px;height:6px;border-radius:50%;background:#c9ad52;margin-right:4px}.status-pill.live{background:#e4f5eb;color:#247149}.status-pill.live span{background:#3eaa6e}.result-empty{text-align:center;padding:58px 14px 49px}.empty-icon{font-size:42px;color:#71989c}.result-empty h3{font:800 20px Manrope,sans-serif;letter-spacing:-.04em;margin:12px 0}.result-empty p{font-size:13px;color:#7b8d95;line-height:1.6;margin:0 auto 16px;max-width:300px}.result-empty a,.source-card a{font-size:12px;font-weight:800;color:#28717e;text-decoration:none}.info-note{display:flex;gap:10px;border-top:1px solid #e9eeeb;padding-top:20px}.note-icon{flex:none;width:18px;height:18px;border:1.5px solid #64a5aa;border-radius:50%;color:#4b8b94;text-align:center;font-weight:800;font-size:12px}.info-note p{font-size:11px;line-height:1.55;color:#7b8d95;margin:0}.info-note strong{color:#355c69}.counted-line{display:flex;justify-content:space-between;margin:31px 0 8px;font-size:12px;color:#697d86}.counted-line strong{color:#21495c}.progress-track{height:7px;border-radius:99px;background:#ecf1ee;overflow:hidden}.progress-track span{display:block;height:100%;width:0;background:#39a995;border-radius:99px}.candidates{margin-top:28px}.candidate{padding:14px 0;border-top:1px solid #ebefec}.candidate:first-child{border-top:0}.candidate-head{display:flex;justify-content:space-between;align-items:center;gap:10px}.candidate-name{font-weight:800;font-size:15px}.candidate-name small{color:#8c9a9e;font-size:11px;font-weight:600;margin-left:4px}.candidate-percent{font:800 23px Manrope,sans-serif;letter-spacing:-.05em}.candidate-votes{display:flex;justify-content:space-between;font-size:11px;color:#85949b;margin-top:3px}.candidate-bar{height:7px;background:#edf1ef;border-radius:99px;margin-top:11px;overflow:hidden}.candidate-bar span{display:block;height:100%;border-radius:99px}.candidate:nth-child(1) .candidate-percent{color:#287e89}.candidate:nth-child(1) .candidate-bar span{background:#3199a4}.candidate:nth-child(2) .candidate-percent{color:#da7c6b}.candidate:nth-child(2) .candidate-bar span{background:#de8a77}.vote-totals{border-top:1px solid #e9efec;padding:16px 0 22px;font-size:11px;color:#768991;line-height:1.8}.map-panel{padding:25px 22px 20px;min-width:0}.map-heading{display:flex;align-items:flex-end;justify-content:space-between}.map-heading h2{margin:7px 0 0}.map-legend{font-size:10px;color:#8b9b9f}.legend-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#81bdb7}.map-stage{height:365px;position:relative;display:flex;align-items:center;justify-content:center}#map{display:block;width:100%;height:100%}.map-fallback{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#f9fbf9;color:#6d8189;font-size:13px;text-align:center;padding:20px}.map-fallback[hidden]{display:none}.map-hint{position:absolute;left:50%;bottom:4px;transform:translateX(-50%);font-size:10px;color:#91a3a5;white-space:nowrap}.region-nav{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));gap:5px;margin-top:16px}.region-nav button{border:1px solid #dde7e3;background:#f8faf8;color:#537481;border-radius:5px;height:28px;font-size:10px;font-weight:800}.region-nav button:hover,.region-nav button.active{background:#2e7180;border-color:#2e7180;color:white}.side-panel{background:#fafbf9;border-left:1px solid #e7ece9;padding:20px;display:flex;flex-direction:column;gap:15px}.source-card,.local-card{background:#fff;border:1px solid #e3eae6;border-radius:12px;padding:20px}.source-card-top{display:flex;align-items:center;justify-content:space-between;color:#7d999c;font-size:9px;font-weight:800;letter-spacing:.13em}.source-logo{background:#113b56;color:white;padding:7px 8px;border-radius:5px;font-size:11px;letter-spacing:0}.side-panel h3{font:800 17px/1.3 Manrope,sans-serif;letter-spacing:-.035em;margin:22px 0 8px}.side-panel p{font-size:12px;color:#84949b;line-height:1.55;margin:0 0 18px}.source-meta{border-top:1px solid #edf1ee;padding:10px 0;display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:10px}.source-meta span{color:#8a999d}.source-meta strong{font-size:10px;color:#496775;text-align:right}.source-card a{display:block;border-top:1px solid #edf1ee;padding-top:15px;margin-top:2px}.local-card .section-kicker{font-size:9px}.local-card h3{margin-top:10px}.local-card p{margin-bottom:13px}#municipality-ui span{color:#829498;font-size:11px}#municipality-ui select{width:100%;border:1px solid #d8e5e0;background:#fff;padding:10px;border-radius:7px;color:#234e61;font-size:12px}.explain{padding:85px max(4.4vw,24px) 90px}.explain h2{font:800 35px/1.15 Manrope,sans-serif;letter-spacing:-.055em;max-width:500px;margin:12px 0 30px}.explain-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:35px}.explain-grid article{border-top:1px solid #cfdcd5;padding-top:18px}.explain-grid article span{font-size:11px;color:#31858b;font-weight:800}.explain-grid article h3{font:800 16px Manrope,sans-serif;margin:16px 0 6px}.explain-grid article p{font-size:12px;color:#7c8e93;line-height:1.6;max-width:280px;margin:0}footer{background:#12334c;color:#fff;padding:34px max(4.4vw,24px);display:flex;gap:40px;align-items:center;justify-content:space-between}footer .brand{flex:none}footer p{color:#b6cbd0;font-size:11px;line-height:1.5;max-width:450px}footer a{color:#d5e9e8;font-size:12px;font-weight:700;white-space:nowrap}.toast{position:fixed;bottom:20px;right:20px;background:#143e53;color:#fff;padding:12px 17px;border-radius:8px;box-shadow:0 12px 30px #102e3e33;font-size:12px;opacity:0;pointer-events:none;transition:opacity .2s}.toast.show{opacity:1}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #5cb8b5;outline-offset:2px}@media(max-width:1150px){.content-grid{grid-template-columns:minmax(270px,37%) 1fr}.side-panel{grid-column:1/-1;border-left:0;border-top:1px solid #e7ece9;display:grid;grid-template-columns:1fr 1fr}.map-stage{height:410px}}@media(max-width:740px){.site-header{height:64px}.site-header nav,.source-indicator,.hero-date{display:none}.hero{padding:45px 20px 35px}.hero h1{font-size:42px}.hero p{font-size:13px}.app-shell{margin:0 12px}.app-toolbar{display:block;padding:12px}.toolbar-actions{margin-top:10px}.search-wrap{width:100%}.content-grid{display:flex;flex-direction:column}.main-panel{border-right:0;border-bottom:1px solid #e7ece9;padding:20px}.map-panel{padding:20px 12px}.map-stage{height:330px}.region-nav{grid-template-columns:repeat(7,1fr)}.side-panel{display:flex;padding:12px}.explain{padding:60px 25px}.explain-grid{grid-template-columns:1fr;gap:25px}footer{display:block}footer p{margin:20px 0}.header-right{gap:0}}@media(max-width:420px){.hero h1{font-size:35px}.brand{font-size:16px}.share-button{padding:8px;font-size:11px}.map-heading{display:block}.map-legend{margin-top:8px}.region-nav{grid-template-columns:repeat(6,1fr)}}
.macro-regions{display:flex;gap:5px;flex-wrap:wrap;margin-top:17px}.macro-regions button{border:1px solid #dce8e3;background:#f7faf8;color:#557a83;border-radius:16px;padding:6px 9px;font-size:10px;font-weight:800}.macro-regions button:hover,.macro-regions button.active{background:#2e7180;color:white;border-color:#2e7180}
.toolbar-left{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.round-tabs{display:flex;gap:2px;padding:4px;border-radius:9px;background:#f0f3f1}.round-tabs button{border:0;background:transparent;border-radius:6px;padding:10px 12px;color:#71808a;font-size:11px;font-weight:800;white-space:nowrap}.round-tabs button.active{background:#fff;color:#1d4f66;box-shadow:0 1px 4px #d9e2dd}@media(max-width:740px){.toolbar-left{justify-content:space-between;gap:7px}.round-tabs button{padding:9px 8px;font-size:10px}}
.candidate{display:flex;align-items:center;gap:11px}.candidate-portrait{flex:none;width:56px;height:56px;border-radius:50%;overflow:hidden;background:#edf3f0;border:1px solid #e3ebe7;display:flex;align-items:center;justify-content:center}.candidate-portrait img{width:100%;height:100%;object-fit:cover}.candidate-avatar-fallback{font:800 14px Manrope,sans-serif;color:#407782}.candidate-details{min-width:0;flex:1}.candidate-head{align-items:flex-start}.candidate-name{line-height:1.4}.candidate-name small{display:block;margin:2px 0 0}.candidate-percent{white-space:nowrap}.candidate-details .candidate-bar{margin-top:8px}#municipality-ui{position:relative}#municipality-ui input{width:100%;border:1px solid #d8e5e0;background:#fff;padding:10px 30px 10px 10px;border-radius:7px;color:#234e61;font-size:12px}#municipality-ui input:focus{outline:3px solid #cce8e4;border-color:#408e8a}.municipality-results{position:absolute;top:44px;left:0;right:0;z-index:12;max-height:260px;overflow:auto;border:1px solid #d8e5e0;border-radius:8px;background:white;box-shadow:0 12px 26px #173b5020;padding:4px}.municipality-results[hidden]{display:none}.municipality-results button{display:block;width:100%;text-align:left;padding:9px 10px;border:0;border-radius:5px;background:#fff;color:#234e61;font-size:12px}.municipality-results button:hover,.municipality-results button:focus,.municipality-results button.active{background:#eff7f5}.municipality-results>span{display:block;padding:9px;color:#829498;font-size:11px}
/* Eleicao ao vivo: aproximacao visual as referencias fornecidas. */
:root{color-scheme:dark;--night:#10100f;--line:#302e2b;--muted:#aaa6a0;--blue:#4b6fff;--red:#f3323b;font-family:'DM Sans',sans-serif;color:#f4f2ef;background:var(--night)}
body{background:radial-gradient(ellipse at 63% 45%,#1b1917 0,#11100f 48%,#10100f 100%);color:#f4f2ef}
.topline{height:32px;justify-content:center;background:#1a1917;color:#d1cec9;padding:0 16px;letter-spacing:.035em;font-size:11px;border-bottom:1px solid #302e2b}
.site-header{height:72px;background:#11100f;border-bottom:1px solid var(--line);padding:0 24px;gap:25px}
.brand{color:#f5f3f0}.brand-mark{background:#252d50;color:#e9ecff;border:1px solid #3e4e92;border-radius:50%;font-size:11px}
.site-header nav{gap:7px;padding:5px;background:#1a1917;border:1px solid #302e2b;border-radius:30px}.site-header nav a{padding:9px 16px;color:#aaa6a0;border-radius:22px;font-size:13px}.site-header nav a:first-child{background:#343331;color:#fff;box-shadow:inset 0 0 0 1px #4a4845}
.header-right{gap:10px}.source-indicator{color:#d4d1cd;letter-spacing:0}.source-indicator i{background:#e7e4df;box-shadow:0 0 10px #ffffff44}.share-button,.icon-button{background:#1a1917;color:#f1efec;border-color:#393734;border-radius:22px}.share-button:hover,.icon-button:hover{background:#282725;border-color:#55514d}
main{max-width:none}.hero{display:none}
.app-shell{margin:14px 18px 0;border:1px solid #302e2b;border-radius:18px;background:#11100f;box-shadow:0 22px 70px #0006}
.app-toolbar{min-height:58px;padding:10px 17px;background:#121110;border-bottom-color:#2a2826}.toolbar-left{gap:8px}.scope-tabs,.round-tabs{background:#1b1a18;border:1px solid #302e2b;border-radius:28px;padding:3px}.scope-tabs button,.round-tabs button{padding:8px 14px;border-radius:22px;color:#aaa6a0;font-size:12px}.scope-tabs button.active,.round-tabs button.active{background:#393836;color:#fff;box-shadow:inset 0 0 0 1px #4b4946}
.search-wrap input{background:#1a1917;color:#f4f2ef;border-color:#393734;border-radius:22px}.search-wrap>span{color:#aaa6a0}.search-wrap input::placeholder{color:#aaa6a0}.search-wrap input:focus{border-color:#687ce2;box-shadow:0 0 0 3px #4b6fff33}.search-results{background:#1b1a18;border-color:#3a3835;box-shadow:0 12px 30px #0009}.search-results button{background:#1b1a18;border-color:#302e2b;color:#f2f0ed}.search-results button:hover,.search-results button:focus{background:#292825}.icon-button{border-radius:50%}
.content-grid{grid-template-columns:minmax(300px,25%) minmax(450px,1fr) minmax(270px,23%);min-height:min(730px,calc(100vh - 190px));background:#11100f}
.main-panel{padding:22px 20px;border-right-color:#2d2b29;background:#141311}.breadcrumb{color:#9f9a93}.breadcrumb span{color:#77736e}.panel-heading h2,.map-heading h2,.side-panel h3,.explain h2,.explain-grid article h3{color:#f5f2ed}.panel-heading h2,.map-heading h2{font-size:19px}.panel-subtitle{color:#9f9a93}.status-pill{background:#28251b;color:#e2c874}.status-pill span{background:#e4bd4c}.status-pill.live{background:#1a3025;color:#91d7a9}.status-pill.live span{background:#55c47c}
.result-empty{padding:56px 10px 38px}.empty-icon{color:#9daaf5}.result-empty h3{color:#f4f1ed}.result-empty p,.info-note p{color:#a39e97}.result-empty a,.source-card a{color:#9cafff}.info-note{border-top-color:#302e2b}.note-icon{border-color:#788be9;color:#acb8ff}.info-note strong{color:#dedbd5}
.counted-line{color:#aaa6a0}.counted-line strong{color:#f4f2ef}.progress-track{background:#34312d}.progress-track span{background:linear-gradient(90deg,var(--red),var(--blue))}.candidates{margin-top:21px}.candidate{border-color:#302e2b}.candidate-portrait{background:#242321;border-color:#42403c}.candidate-avatar-fallback{color:#bec8ff}.candidate-name{color:#f6f3ef}.candidate-name small{color:#aaa6a0}.candidate:nth-child(1) .candidate-percent{color:var(--red)}.candidate:nth-child(2) .candidate-percent{color:var(--blue)}.candidate-votes{color:#aaa6a0}.candidate-bar{background:#35322f}.candidate:nth-child(1) .candidate-bar span{background:var(--red)}.candidate:nth-child(2) .candidate-bar span{background:var(--blue)}.vote-totals{border-color:#302e2b;color:#a7a29b}
.map-panel{padding:20px 16px 16px;display:flex;flex-direction:column;min-height:0}.map-heading{align-items:center}.map-heading .section-kicker,.section-kicker,.eyebrow{color:#9d9a94}.map-heading h2{font:500 15px 'DM Sans',sans-serif;letter-spacing:0}.map-legend{color:#c5c1bb}.legend-dot{background:#687fff}.macro-regions{margin-top:12px}.macro-regions button,.region-nav button{background:#1a1917;border-color:#363431;color:#b7b2ac}.macro-regions button:hover,.macro-regions button.active,.region-nav button:hover,.region-nav button.active{background:#3c58ce;border-color:#536ef0;color:#fff}.map-stage{height:clamp(350px,calc(100vh - 330px),650px);min-height:350px;flex:1}.map-hint{color:#938e87}.region-nav{margin-top:10px}.map-fallback{background:#171614;color:#aaa6a0}
.side-panel{background:#141311;border-left-color:#2d2b29;padding:15px;gap:12px}.source-card,.local-card{background:#191816;border-color:#34322f;border-radius:14px;padding:16px}.source-card-top{color:#aaa6a0}.source-logo{background:#29345f;color:#e2e7ff}.side-panel p{color:#a7a29b}.source-meta{border-color:#302e2b}.source-meta span{color:#99948d}.source-meta strong{color:#e0ddd8}.source-card a{border-color:#302e2b}.local-card h3{color:#f4f1ed}#municipality-ui span{color:#aaa6a0}#municipality-ui input,#municipality-ui select{background:#201f1d;border-color:#403d39;color:#f4f1ed}#municipality-ui input:focus{outline-color:#343f79;border-color:#788be9}.municipality-results{background:#201f1d;border-color:#403d39;box-shadow:0 12px 26px #0009}.municipality-results button{background:#201f1d;color:#eee}.municipality-results button:hover,.municipality-results button:focus,.municipality-results button.active{background:#302e2b}.municipality-results>span{color:#aaa6a0}
#city-card-placeholder{display:none!important}
.map-mode{display:flex;align-self:flex-start;gap:3px;padding:3px;margin-top:12px;width:max-content;border:1px solid #302e2b;border-radius:24px;background:#1a1917}.map-mode button{border:0;background:transparent;border-radius:18px;padding:7px 13px;color:#aaa6a0;font-size:11px;font-weight:700}.map-mode button.active{background:#393836;color:#fff;box-shadow:inset 0 0 0 1px #4b4946}.map-mode button:disabled{opacity:.45;cursor:not-allowed}.macro-regions[hidden],.region-nav[hidden]{display:none}
.explain{padding-top:65px}.explain-grid article{border-color:#383531}.explain-grid article p{color:#aaa6a0}.explain-grid article span{color:#8496ff}footer{background:#191816;border-top:1px solid #302e2b;color:#f4f2ef}footer p{color:#aaa6a0}footer a{color:#bcc6ff}.toast{background:#27252b;color:#fff;border:1px solid #46414b}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline-color:#91a3ff}
@media(min-width:1500px){.content-grid{grid-template-columns:minmax(320px,23%) minmax(600px,1fr) minmax(290px,20%)}.main-panel{padding:27px 25px}.map-panel{padding:24px 21px}.side-panel{padding:19px}}
@media(max-width:1150px){.content-grid{grid-template-columns:minmax(270px,37%) 1fr;min-height:0}.side-panel{background:#141311;border-left:0;border-top-color:#2d2b29}.map-stage{height:410px;min-height:410px}.map-panel{min-height:500px}}
@media(max-width:740px){.topline{height:28px;font-size:9px}.site-header{height:62px;padding:0 15px}.site-header nav{display:none}.header-right{margin-left:auto}.source-indicator{display:none}.hero{display:none}.app-shell{margin:8px 8px 0;border-radius:14px}.app-toolbar{padding:10px}.toolbar-left{justify-content:flex-start}.scope-tabs button,.round-tabs button{padding:8px 10px;font-size:10px}.toolbar-actions{margin-top:9px}.search-wrap{width:100%}.content-grid{display:flex;flex-direction:column}.main-panel{border-right:0;border-bottom:1px solid #2d2b29;padding:19px}.map-panel{padding:18px 12px;min-height:440px}.map-stage{height:350px;min-height:350px}.region-nav button{height:30px}.side-panel{display:flex;padding:11px}.explain{padding:48px 23px}.explain-grid article{border-color:#383531}footer{display:block;padding:27px 22px}footer p{margin:17px 0}.share-button{padding:8px 12px;font-size:11px}}
 .brand-logo{display:block;width:156px;height:auto;max-height:48px;object-fit:contain;object-position:left center}.site-header .brand-logo{width:150px}.site-header .brand{height:52px}.site-header .brand-mark,footer .brand-mark{display:none}footer .brand-logo{width:156px}

/* Editorial light surface for the live scoreboard. */
:root,body{color:#182b36;background:#f7f8f6;color-scheme:light}.site-header{background:#fff}.site-header nav a,.site-header nav a:first-child{color:#52656d}.app-shell{background:#fff;border-color:#dfe5e2;box-shadow:0 3px 14px #182b3608}.app-toolbar,.main-panel,.map-panel{background:#fff;border-color:#e5eae7}.scope-tabs,.round-tabs{background:#f0f3f1}.scope-tabs button,.round-tabs button{color:#63757b}.scope-tabs button.active,.round-tabs button.active{background:#fff;color:#174c4b;box-shadow:0 1px 4px #172b3614}.panel-heading h2,.map-heading h2,.candidate-name,.side-panel h3,.local-card h3{color:#1a3038}.panel-subtitle,.candidate-votes,.vote-totals,.map-hint,.side-panel p,.info-note p{color:#718189}.breadcrumb{color:#317d78}.status-pill{background:#eef3e4;color:#6c7348}.status-pill.live{background:#e8f4ec;color:#267247}.counted-line{color:#607079}.counted-line strong{color:#18534e}.progress-track,.candidate-bar{background:#edf0ee}.progress-track span{background:#4c9f89}.candidate{border-color:#e8ece9}.candidate-portrait{background:#edf3f1;border-color:#dce7e2}.candidate-avatar-fallback{color:#315d5a}.candidate-name small{color:#718189}.candidate:nth-child(1) .candidate-percent{color:#177b73}.candidate:nth-child(1) .candidate-bar span{background:#2f9484}.candidate:nth-child(2) .candidate-percent{color:#bc654f}.candidate:nth-child(2) .candidate-bar span{background:#d47a62}.map-legend{color:#728188}.map-mode{background:#f1f4f2;border-color:#e0e7e3}.map-mode button{color:#64767b}.map-mode button.active{background:#fff;color:#185c57;box-shadow:0 1px 4px #1c303414}.macro-regions button,.region-nav button{background:#f8faf9;border-color:#dfe7e3;color:#486b6c}.macro-regions button:hover,.macro-regions button.active,.region-nav button:hover,.region-nav button.active{background:#277d77;border-color:#277d77;color:#fff}.map-fallback{background:#f8faf9;color:#697b80}.side-panel{background:#f7f9f7;border-color:#e4eae6}.source-card,.local-card{background:#fff;border-color:#e2e9e5;box-shadow:none}.source-card-top{color:#788d8f}.source-logo{background:#1f5356;color:#fff}.source-meta,.source-card a{border-color:#e7ece9}.source-meta span{color:#728187}.source-meta strong{color:#415a61}.source-card a{color:#25766f}.local-card .section-kicker,.section-kicker,.eyebrow{color:#317d78}.explain-grid article,.explain-grid article p{border-color:#dfe6e2;color:#64767b}footer{background:#183b42;color:#fff}footer p{color:#d1dfdc}footer a{color:#d9ebe7}.toast{background:#203d40;color:#fff;border:1px solid #31585a;box-shadow:0 8px 22px #203d4022}.search-wrap input,#municipality-ui input,#municipality-ui select{background:#fff;border-color:#d8e2de;color:#20383e}.search-results,.municipality-results{background:#fff;border-color:#dce5e1;box-shadow:0 8px 22px #1c303416}.search-results button,.municipality-results button{background:#fff;color:#243e44}.search-results button:hover,.municipality-results button:hover,.municipality-results button:focus,.municipality-results button.active{background:#f0f6f3}.quick-facts{display:grid;gap:6px;margin:19px 0 4px;padding:12px 13px;border-left:2px solid #64a397;background:#f7faf8;color:#3c5156;font-size:11px;line-height:1.5}.quick-facts span:first-child{font-weight:800;color:#203e42}.timeline{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid #e6ece8;padding-top:15px;margin-top:2px}.timeline h3{font-size:12px;color:#33494e;margin:0 0 3px}.timeline p{font-size:10px;color:#87959a;line-height:1.4;margin:0}.timeline svg{width:45%;height:64px;overflow:visible}.timeline svg[hidden]{display:none}
@media(max-width:740px){.quick-facts{font-size:10px}.timeline{align-items:flex-start}.timeline svg{width:42%;margin-top:2px}.app-toolbar,.main-panel,.map-panel,.side-panel{background:#fff}.side-panel{background:#f7f9f7}}
.map-legend{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}.map-legend>span{display:inline-flex;align-items:center;gap:5px}.map-mode{display:flex;width:max-content;max-width:100%;gap:3px;margin-top:15px;padding:4px;border:1px solid #e0e7e3;border-radius:8px;background:#f1f4f2}.map-mode button{padding:7px 11px;border:0;border-radius:5px;background:transparent;color:#64767b;font-size:10px;font-weight:800}.map-mode button.active{background:#fff;color:#185c57;box-shadow:0 1px 4px #1c303414}.map-mode button:disabled{opacity:.6;cursor:not-allowed}.territory-table{margin-top:18px;border:1px solid #e3e9e6;border-radius:10px;overflow:hidden;background:#fff}.territory-table-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;border-bottom:1px solid #e7ece9}.territory-table-head>div{display:grid;gap:3px}.territory-table-head strong{font-size:12px;color:#263f43}.territory-table-head span{font-size:10px;color:#7a898c}.territory-table-head button{width:30px;height:30px;border:1px solid #dde5e0;border-radius:7px;background:#fff;color:#2a6e68;font-size:18px}.territory-rows{max-height:450px;overflow:auto}.territory-row{display:grid;width:100%;grid-template-columns:9px 64px minmax(130px,1fr) minmax(120px,.8fr) 105px;align-items:center;gap:10px;padding:10px 13px;border:0;border-bottom:1px solid #edf0ee;background:#fff;text-align:left;color:#30464b}.territory-row:hover,.territory-row.selected{background:#f3f8f6}.territory-row>i{width:8px;height:8px;border-radius:50%}.territory-state,.territory-leader{display:grid;gap:3px}.territory-state strong{font-size:11px}.territory-state small,.territory-leader small{font-size:9px;color:#7a898c}.territory-leader strong{font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.territory-margin{font-size:9px;color:#5b6c70}.territory-progress{font-size:9px;color:#667b79;text-align:right}.territory-empty{padding:14px;font-size:11px;color:#77868a}@media(max-width:740px){.map-mode{margin-top:12px}.map-mode button{padding:7px 8px}.territory-row{grid-template-columns:8px 43px minmax(115px,1fr) minmax(85px,.8fr);gap:7px;padding:9px 8px}.territory-margin{display:none}.territory-progress{text-align:right;font-size:8px}.territory-leader strong{font-size:9px}.territory-leader small{font-size:8px}.territory-state small{font-size:8px}.map-legend{justify-content:flex-start}}
.shared-history{padding:13px 14px;border-top:1px solid #e7ece9;background:#fafcfb}.shared-history strong{font-size:11px;color:#344d50}.shared-history p{margin:4px 0;color:#78888b;font-size:9px;line-height:1.45}.shared-history svg{display:block;width:100%;height:78px;margin-top:8px}.shared-history svg[hidden]{display:none}

/* Dashboard compacto: mantém a apuração inteira no primeiro quadro em desktop. */
@media (min-width: 1151px) {
  html, body { height: 100%; overflow: hidden; }
  body { display: flex; flex-direction: column; }
  .topline { flex: 0 0 32px; }
  .site-header { flex: 0 0 72px; }
  main { flex: 1 1 0; height: 0; min-height: 0; overflow: hidden; display: flex; flex-direction: column; }
  .app-shell { flex: 1 1 0; height: auto; min-height: 0; display: flex; flex-direction: column; margin: 12px 18px 14px; }
  .app-toolbar { flex: 0 0 auto; }
  .content-grid { flex: 1 1 0; height: 0; min-height: 0; overflow: hidden; }
  .main-panel, .side-panel { min-height: 0; overflow-y: auto; overscroll-behavior: contain; }
  .map-panel { min-height: 0; overflow: hidden; }
  .map-stage { height: auto; min-height: 220px; flex: 1 1 0; }
  .explain, footer { display: none; }
}



/* Native hidden state must win over component display rules in every view. */
[hidden]{display:none!important}

/* Painel eleitoral de tela cheia inspirado nas referências fornecidas. */
@media (min-width: 1151px) {
  :root, body { background:#0e0e0f; color:#f2f2f3; color-scheme:dark }
  .topline { display:none }
  .site-header { height:58px; flex-basis:58px; padding:0 20px; background:#0e0e0f; border-color:#29292a }
  .site-header nav { gap:0; background:#19191a; border:1px solid #303031; border-radius:24px; padding:4px }
  .site-header nav a,.site-header nav a:first-child { color:#aaa; padding:9px 15px; border-radius:20px; font-size:12px }
  .site-header nav a:first-child { color:#fff; background:#363637 }
  .share-button { color:#fff; background:#19191a; border-color:#303031; border-radius:24px }
  .app-shell { margin:8px 12px; border-radius:10px; border-color:#29292a; background:#0e0e0f; box-shadow:none }
  .app-toolbar { min-height:48px; padding:7px 14px; border-color:#29292a; background:#0e0e0f }
  .scope-tabs,.round-tabs { background:#19191a; border:1px solid #303031; border-radius:24px; padding:3px }
  .scope-tabs button,.round-tabs button { padding:8px 12px; border-radius:18px; color:#aaa }
  .scope-tabs button.active,.round-tabs button.active { background:#39393a; color:#fff; box-shadow:none }
  .search-wrap input { color:#eee; background:#19191a; border-color:#303031 }
  .content-grid { grid-template-columns:minmax(270px,22%) minmax(480px,1fr) minmax(260px,22%) }
  .main-panel,.map-panel,.side-panel { background:#0e0e0f; border-color:#29292a }
  .main-panel { padding:16px; scrollbar-width:thin; scrollbar-color:#414142 transparent }
  .panel-heading { align-items:flex-start; gap:8px }
  .panel-heading h2 { margin:9px 0 4px }
  .panel-subtitle { font-size:11px; line-height:1.4 }
  .counted-line { margin-top:15px; font-size:11px }
  .candidates { display:grid; grid-template-columns:1fr 1fr; column-gap:12px; margin-top:14px }
  .candidate { min-width:0; gap:7px; padding:8px 0 }
  .candidate-portrait { width:34px; height:34px }
  .candidate-name { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:11px }
  .candidate-name small { font-size:9px }
  .candidate-percent { font-size:16px }
  .candidate-votes { display:block; font-size:9px; line-height:1.35 }
  .candidate-bar { height:4px; margin-top:5px }
  .vote-totals { font-size:10px; line-height:1.5 }
  .quick-facts { margin:12px 0 4px; padding:9px 10px; font-size:10px }
  .panel-heading h2,.map-heading h2,.candidate-name,.side-panel h3 { color:#f2f2f3 }
  .panel-subtitle,.candidate-votes,.vote-totals,.map-hint,.side-panel p,.info-note p { color:#aaa }
  .candidate { border-color:#29292a }
  .candidate-portrait { background:#222; border-color:#454545 }
  .progress-track,.candidate-bar { background:#29292a }
  .progress-track span { background:#4169e1 }
  .candidate:nth-child(1) .candidate-percent { color:#5279ff }
  .candidate:nth-child(1) .candidate-bar span { background:#4169e1 }
  .candidate:nth-child(2) .candidate-percent { color:#ef4444 }
  .candidate:nth-child(2) .candidate-bar span { background:#ef4444 }
  .quick-facts { background:#171718; color:#ddd; border-color:#5279ff }
  .quick-facts span:first-child,.timeline h3 { color:#fff }
  .timeline { border-color:#29292a }
  .timeline p { color:#999 }
  .map-panel { padding:16px 14px; position:relative }
  .map-mode { background:#19191a; border-color:#303031 }
  .map-mode button { color:#aaa }
  .map-mode button.active { background:#3a3a3b; color:#fff; box-shadow:none }
  .macro-regions button,.region-nav button { color:#ccc; background:#19191a; border-color:#303031 }
  .macro-regions button:hover,.macro-regions button.active,.region-nav button:hover,.region-nav button.active { color:#fff; background:#344fba; border-color:#4968de }
  .map-stage { min-height:180px; height:auto; flex:1 }
  .map-mode { margin-top:8px }
  .macro-regions { margin-top:8px }
  .macro-regions button { padding:5px 8px }
  .region-nav { grid-template-columns:repeat(9,minmax(24px,1fr)); gap:4px }
  .region-nav button { height:27px; padding:3px }
  .side-panel { padding:12px; gap:10px; overflow-y:auto; scrollbar-width:thin; scrollbar-color:#414142 transparent }
  .source-card,.local-card,.territory-table { background:#171718; border-color:#303031; box-shadow:none }
  .regional-card { padding:13px 14px; border:1px solid #303031; border-radius:13px; background:#171718 }
  .regional-heading { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:7px }
  .regional-heading h3 { margin:0; font-size:13px }
  .regional-heading span { color:#999; font-size:9px }
  #regional-rows { display:grid; gap:2px }
  #regional-rows>p { color:#aaa; font-size:10px; line-height:1.45 }
  .regional-row { display:grid; grid-template-columns:minmax(72px,.7fr) minmax(0,1fr); gap:4px 9px; width:100%; padding:8px 0; text-align:left; color:#eee; background:transparent; border:0; border-bottom:1px solid #2b2b2c }
  .regional-row:last-child { border-bottom:0 }
  .regional-row strong { font-size:10px }
  .regional-row span { overflow:hidden; color:#c5c5c5; font-size:9px; text-align:right; text-overflow:ellipsis; white-space:nowrap }
  .regional-row i { grid-column:1/-1; height:3px; border-radius:5px; background:linear-gradient(90deg,var(--leader-color) var(--share),#303031 var(--share)) }
  .source-card-top,.source-meta span,.territory-table-head span { color:#aaa }
  .source-logo { background:#314eb7; color:#fff }
  .source-meta,.source-card a,.territory-table-head { border-color:#303031 }
  .source-meta strong,.territory-table-head strong,.territory-state strong,.territory-leader strong { color:#eee }
  .source-card a { color:#91a9ff }
  .territory-rows { max-height:36vh; scrollbar-width:thin }
  .territory-row { color:#eee; background:#171718; border-color:#2a2a2b }
  .territory-row:hover,.territory-row.selected { background:#242426 }
  .territory-margin,.territory-progress,.territory-state small,.territory-leader small { color:#aaa }
  .shared-history { background:#171718; border-color:#303031 }
  .shared-history strong { color:#eee }
  .shared-history p { color:#aaa }
}
@media (max-width: 1150px) {
  :root,body { background:#0e0e0f; color:#f2f2f3; color-scheme:dark }
  .topline,.site-header,.app-shell,.app-toolbar,.main-panel,.map-panel,.side-panel { background:#0e0e0f; color:#f2f2f3; border-color:#29292a }
  .site-header nav a,.site-header nav a:first-child { color:#bbb }
  .app-shell { border-color:#29292a }
  .scope-tabs,.round-tabs,.map-mode { background:#19191a; border-color:#303031 }
  .scope-tabs button,.round-tabs button,.map-mode button { color:#aaa }
  .scope-tabs button.active,.round-tabs button.active,.map-mode button.active { background:#39393a; color:#fff; box-shadow:none }
  .panel-heading h2,.map-heading h2,.candidate-name,.side-panel h3,.regional-row { color:#f2f2f3 }
  .panel-subtitle,.candidate-votes,.vote-totals,.map-hint,.side-panel p { color:#aaa }
  .candidate,.timeline,.source-meta,.source-card a { border-color:#29292a }
  .candidate-portrait { background:#222; border-color:#454545 }
  .progress-track,.candidate-bar { background:#29292a }
  .source-card,.local-card,.regional-card { background:#171718; border-color:#303031 }
  .regional-card { padding:13px; border:1px solid #303031; border-radius:13px }
  .regional-heading { display:flex; justify-content:space-between; gap:8px; margin-bottom:7px }
  .regional-heading h3 { margin:0; font-size:13px }
  .regional-heading span,#regional-rows>p { color:#999; font-size:10px }
  #regional-rows { display:grid; gap:2px }
  .regional-row { display:grid; grid-template-columns:minmax(72px,.7fr) minmax(0,1fr); gap:4px 9px; padding:8px 0; text-align:left; background:transparent; border:0; border-bottom:1px solid #2b2b2c }
  .regional-row strong { font-size:10px }
  .regional-row span { color:#c5c5c5; font-size:9px; text-align:right }
  .regional-row i { grid-column:1/-1; height:3px; border-radius:5px; background:linear-gradient(90deg,var(--leader-color) var(--share),#303031 var(--share)) }
  #municipality-ui input { color:#eee; background:#202020; border-color:#444 }
}
/* Permite consultar o guia e as fontes pelos atalhos do cabeçalho. */
@media (min-width: 1151px) {
  .content-grid, .main-panel, .map-panel, .side-panel { overflow-x: hidden; }
  body:has(#como-ler:target), body:has(#fontes:target) { display: block; height: auto; min-height: 100%; overflow: auto; }
  body:has(#como-ler:target) main, body:has(#fontes:target) main { display: block; height: auto; overflow: visible; }
  body:has(#como-ler:target) .app-shell, body:has(#fontes:target) .app-shell { display: block; height: auto; min-height: 0; }
  body:has(#como-ler:target) .content-grid, body:has(#fontes:target) .content-grid { display: grid; height: auto; min-height: 0; overflow: visible; }
  body:has(#como-ler:target) .main-panel, body:has(#como-ler:target) .side-panel, body:has(#como-ler:target) .map-panel,
  body:has(#fontes:target) .main-panel, body:has(#fontes:target) .side-panel, body:has(#fontes:target) .map-panel { overflow: visible; }
  body:has(#como-ler:target) .explain, body:has(#fontes:target) .explain { display: block; }
  body:has(#fontes:target) footer { display: flex; }
}
/* Mapa interativo: zoom restrito ao quadro, com controles acessíveis. */
.map-stage{position:relative;overflow:hidden}
#map{touch-action:none;transform-origin:center center;cursor:grab}
#map:active{cursor:grabbing}
.map-zoom{position:absolute;left:12px;bottom:38px;z-index:3;display:grid;border:1px solid #3b3b3b;border-radius:13px;overflow:hidden;background:#171717}
.map-zoom button{width:36px;height:36px;border:0;border-bottom:1px solid #333;background:#171717;color:#fff;font-size:19px}
.map-zoom button:last-child{border-bottom:0}
.map-zoom button:hover,.map-zoom button:focus-visible{background:#333;outline:2px solid #7294ff;outline-offset:-2px}
.history-controls{display:grid;grid-template-columns:1fr auto;gap:5px 10px;width:100%;margin-top:12px;color:#c9c9c9;font-size:11px}
.history-controls[hidden]{display:none}
.history-controls label{grid-column:1/-1}
.history-controls input{width:100%;accent-color:#5e7cff}
.history-controls output{grid-column:1/-1;line-height:1.45}
.history-controls button{grid-column:2;grid-row:2;border:1px solid #424242;border-radius:12px;background:#222;color:#fff;padding:3px 9px}
.map-metric{display:flex;gap:4px;margin:8px 0 0}
.map-metric[hidden]{display:none}
.map-metric button{border:1px solid #343434;background:#181818;color:#aaa;border-radius:18px;padding:5px 10px;font-size:11px}
.map-metric button.active,.map-metric button:hover{background:#343b56;color:#fff;border-color:#5369b4}
.toolbar-left{min-width:0}.scope-tabs{max-width:100%;overflow-x:auto;scrollbar-width:none;flex-wrap:nowrap}.scope-tabs button{white-space:nowrap;flex:none}
@media(max-width:740px){.toolbar-left{width:100%;overflow-x:auto}.scope-tabs{width:100%}.map-metric{overflow-x:auto}.map-metric button{white-space:nowrap}}
.zone-panel{border-top:1px solid #303030;margin-top:12px;padding-top:10px}
.zone-panel[hidden]{display:none}
.zone-panel h4{margin:0 0 4px;font-size:12px;color:#eee}
.zone-panel #zone-note{font-size:10px;color:#aaa}
.zone-panel details{border-top:1px solid #303030;padding:7px 0;font-size:11px;color:#d5d5d5}
.zone-panel summary{cursor:pointer;font-weight:700}
.zone-panel details p{margin:5px 0 0;color:#aaa}
.participation-card,.updates-card{border:1px solid #303030;border-radius:15px;background:#151515;padding:14px;margin-bottom:12px;color:#eee}
.participation-card[hidden]{display:none}
.participation-card,.updates-card,.regional-card{margin:0;padding:15px;border:1px solid #2d2c2b;border-radius:16px;background:linear-gradient(145deg,#171615,#121212);box-shadow:0 8px 22px #0002;color:#eee}
.participation-card h3,.updates-card h3,.regional-heading h3{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:13px;margin:0 0 10px;color:#f2f0ed}
.participation-card h3 span{color:#96928b;font-size:9px;font-weight:500}
#participation-rows>div{display:flex;justify-content:space-between;gap:12px;border-top:1px solid #2b2927;padding:8px 0;font-size:11px}
#participation-rows span{color:#aaa59d}#participation-rows strong{color:#fff;font-variant-numeric:tabular-nums}
.regional-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 0 8px}.regional-heading h3{margin:0}.regional-heading>span{color:#a09b93;font-size:9px;white-space:nowrap}
#regional-rows{display:grid;gap:0}#regional-rows>p,#updates-rows>p{margin:0;color:#aaa;font-size:11px;line-height:1.5}
.regional-row{display:grid;grid-template-columns:minmax(0,1fr);gap:7px;width:100%;padding:12px 0;text-align:left;color:#eee;background:transparent;border:0;border-bottom:1px solid #2b2927;cursor:pointer}.regional-row:last-child{border-bottom:0;padding-bottom:2px}.regional-row:hover .regional-row-heading strong{color:#c7d2ff}.regional-row-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0}.regional-row-heading strong{font-size:12px}.regional-row-heading b{font-size:14px;color:#f1efeb;font-variant-numeric:tabular-nums}.regional-row-detail{display:flex;align-items:center;gap:9px;min-width:0}.regional-row-detail>span:not(.regional-avatar){overflow:hidden;color:#c7c3bc;font-size:10px;font-weight:650;text-overflow:ellipsis;white-space:nowrap}.regional-row-detail small{margin-left:auto;color:#c1bcb3;font-size:9px;font-variant-numeric:tabular-nums;white-space:nowrap}.regional-avatar{display:grid;place-items:center;flex:none;width:34px;height:34px;overflow:hidden;border:2px solid var(--leader-color);border-radius:50%;color:#fff;font-size:9px;font-weight:800}.regional-avatar img{width:100%;height:100%;object-fit:cover}.regional-progress{height:5px;overflow:hidden;border-radius:5px;background:#302e2b}.regional-progress i{display:block;width:var(--share);height:100%;border-radius:inherit;background:var(--leader-color)}.regional-counted{color:#88837b;font-size:9px;line-height:1}
.updates-live{flex:none;padding:4px 7px;border:1px solid #334237;border-radius:10px;background:#172019;color:#a4d0ad;font-size:8px;letter-spacing:.06em;white-space:nowrap}
#updates-rows{display:grid}.official-update{display:grid;grid-template-columns:43px 9px minmax(0,1fr);align-items:center;gap:8px;padding:10px 0;border-top:1px solid #2b2927}.official-update time{color:#928d85;font-size:9px;font-variant-numeric:tabular-nums}.update-marker{width:7px;height:7px;border:2px solid #a9a49c;border-radius:50%;background:#171615;box-shadow:0 0 0 2px #33312e}.update-copy{min-width:0;color:#e0ddd8;font-size:10px;line-height:1.45}

#map{width:100%;height:100%;display:block}


@media (min-width:1151px){.content-grid{grid-template-columns:minmax(350px,26%) minmax(430px,1fr) minmax(235px,20%)}.candidates{display:block}.candidate{padding:9px 0}.candidate-portrait{width:40px;height:40px}.candidate-name{overflow:visible;text-overflow:clip;white-space:normal;font-size:12px}.candidate-name small{font-size:10px}.candidate-percent{font-size:20px}.candidate-votes{font-size:10px}.panel-heading h2{font-size:19px}.status-pill{font-size:9px;padding:7px 8px}}
#map{position:absolute;inset:0;width:100%;height:100%;min-height:100%;flex:none}
.more-candidates{display:none}
@media (max-width:740px){#candidates:not(.expanded) .candidate:nth-child(n+3){display:none}.more-candidates:not([hidden]){display:block;width:100%;margin:10px 0 16px;padding:11px;border:1px solid #353538;border-radius:10px;background:#1d1d20;color:#e8e8e8;font-size:12px;font-weight:700}.map-stage{height:390px}.map-hint{white-space:normal;text-align:center;width:calc(100% - 100px)}}


@media (max-width:1150px){.quick-facts{background:#171718;color:#d8d8da;border-color:#5279ff}.quick-facts span:first-child{color:#fff}.quick-facts span{color:#d8d8da}.timeline{border-color:#303031}.timeline h3{color:#f2f2f3}.timeline p{color:#aaa}.vote-totals{color:#aaa}.map-legend{color:#aaa}}
@media (max-width:740px){.topline{display:none}.site-header{height:58px}.map-stage{height:390px}.map-legend{font-size:10px;justify-content:flex-start}.info-note{padding-top:12px}.timeline{display:none}.main-panel{padding-bottom:12px}.candidate-name{font-size:13px}.candidate-percent{font-size:22px}}

.compare-open{white-space:nowrap;border:1px solid #465b9e;border-radius:20px;background:#26366d;color:#fff;padding:10px 13px;font-size:11px;font-weight:800}
.compare-open:hover,.compare-open:focus-visible{background:#3852a2;outline:2px solid #7797ff}
.comparison-dialog{width:min(920px,calc(100vw - 24px));max-height:min(85vh,860px);padding:24px;background:#161618;color:#f5f5f6;border:1px solid #414144;border-radius:17px;box-shadow:0 28px 90px #0009;overflow:auto}
.comparison-dialog:not([open]){display:none}

/* Header and result hierarchy aligned with the reference dashboard. */
.topline{display:none!important}
.site-header{height:58px;flex-basis:58px;padding:0 20px;gap:18px;background:#0e0e0f;border-color:#29292a;color:#f2f2f3}
.site-header nav{display:none}
.site-header .brand{gap:9px;min-width:220px;height:48px;letter-spacing:0}
.site-header .brand-logo{width:40px;height:38px;object-fit:contain}
.brand-title{display:flex;align-items:baseline;gap:8px;white-space:nowrap}
.brand-title strong{font:700 18px Georgia,serif;letter-spacing:-.04em;color:#f5f4f1}
.brand-title small{font:400 11px Georgia,serif;color:#aaa8a3}
.header-center{display:flex;align-items:center;justify-content:center;gap:18px;min-width:0;flex:1}
.header-center .scope-tabs{flex:none;max-width:56vw;overflow:auto;scrollbar-width:none;background:#19191a;border:1px solid #303031;border-radius:24px;padding:3px}
.header-center .scope-tabs button{padding:8px 13px;border-radius:20px;color:#aaa;font-size:11px}
.header-center .scope-tabs button.active{background:#39393a;color:#fff;box-shadow:none}
.header-center .search-wrap{width:150px;flex:none}
.header-center .search-wrap>span{top:2px;color:#aaa}
.header-center .search-wrap input{padding:8px 9px 8px 33px;border-color:#303031;border-radius:22px;background:#19191a;color:#eee;font-size:11px}
.header-center .search-wrap input::placeholder{color:#aaa}
.header-right{gap:9px;margin-left:auto;white-space:nowrap}
.source-indicator{font-size:10px;letter-spacing:0;color:#d3d3d4}
.source-indicator i{background:#e5e5e5}
.header-utility,.share-button{height:36px;min-width:38px;padding:0 10px;border:1px solid #303031;border-radius:20px;background:#19191a;color:#eee;font-size:11px;font-weight:700}
.header-utility span{margin-left:4px}
.share-button{font-size:18px}
.share-button span{display:none}
.app-toolbar{min-height:46px;padding:6px 14px;background:#0e0e0f;border-color:#29292a}
.toolbar-left{display:flex;align-items:center;gap:10px}
.round-tabs{padding:3px;border:1px solid #303031;border-radius:22px;background:#19191a}
.round-tabs button{padding:7px 12px;border-radius:18px;font-size:11px}
.round-tabs button.active{background:#39393a;color:#fff}
.toolbar-actions{align-items:center}
.main-panel,.map-panel,.side-panel{background:#0e0e0f;border-color:#29292a}
.candidate{--candidate-color:#7786a8}
.candidate .candidate-percent{color:var(--candidate-color)!important}
.candidate .candidate-bar span{background:var(--candidate-color)!important}
.runoff-preview[hidden]{display:none}
.runoff-card{margin-top:15px;padding:16px 15px;border:1px solid #29292a;border-radius:15px;background:#141312;color:#f2f0ec}
.runoff-top{display:flex;align-items:center;justify-content:space-between;gap:7px;color:#aaa69e;font-size:10px}
.runoff-top strong{max-width:60%;padding:5px 8px;border-radius:7px;background:#252422;color:#ece9e3;font-size:9px;text-align:center}
.runoff-card h3{margin:12px 0 13px;font:800 18px/1.18 Manrope,Arial,sans-serif;letter-spacing:-.035em;color:#f2f0ec}
.runoff-person{display:grid;grid-template-columns:50px minmax(0,1fr);align-items:center;gap:9px;min-width:0}
.runoff-portrait{width:50px;height:50px;overflow:hidden;display:grid;place-items:center;border:2px solid var(--candidate-color);border-radius:12px;background:#242321;color:#eee;font-size:13px;font-weight:800}
.runoff-portrait img{width:100%;height:100%;object-fit:cover}
.runoff-person-details{display:grid;gap:2px;min-width:0}
.runoff-person-details strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:800}
.runoff-person-details small{color:var(--candidate-color);font-size:10px}
.runoff-person-details b{margin-top:4px;color:var(--candidate-color);font:800 24px/1 Manrope,Arial,sans-serif;letter-spacing:-.04em}
.runoff-person-details span{color:#aaa69e;font-size:9px}
.runoff-pair{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.runoff-split{position:relative;display:flex;height:7px;overflow:visible;margin:13px 0;border-radius:9px;background:#292827}
.runoff-midpoint{position:absolute;z-index:1;left:50%;top:50%;width:2px;height:15px;border-radius:2px;background:#f2f0ec;box-shadow:0 0 0 1px #141312;transform:translate(-50%,-50%)}
.live-bar{position:fixed;z-index:40;left:50%;bottom:10px;transform:translateX(-50%);display:grid;grid-template-columns:auto minmax(160px,1fr) auto auto;align-items:center;gap:14px;width:min(1600px,calc(100vw - 48px));min-height:36px;padding:3px 14px;border:1px solid #2b2b2c;border-radius:22px;background:#141415ed;box-shadow:0 6px 20px #0008;color:#e9e9ea;backdrop-filter:blur(12px)}
.live-bar time{min-width:68px;font-size:11px;font-variant-numeric:tabular-nums;font-weight:800}.live-scrubber{display:grid;min-width:0;gap:0}.live-scrubber input{width:100%;height:10px;margin:0;accent-color:#f3f3f4;cursor:pointer}.live-scrubber input:disabled{cursor:default;opacity:.45}.live-ticks{display:flex;justify-content:space-between;gap:5px;overflow:hidden;color:#88888c;font-size:7px;line-height:1;white-space:nowrap}.live-viewers{display:flex;align-items:center;gap:6px;min-width:115px;color:#b9b9bb;font-size:10px;white-space:nowrap}.live-viewers>span{color:#d5d5d7;font-size:12px}.live-viewers strong{font-weight:700}.live-now{display:flex;align-items:center;gap:6px;padding:5px 8px;border:0;border-radius:18px;background:transparent;color:#cfcfd0;font-size:10px;font-weight:800;white-space:nowrap}.live-now i{width:6px;height:6px;border-radius:50%;background:#68686a}.live-now[aria-pressed=true] i{background:#fff;box-shadow:0 0 8px #ffffff80}
body{padding-bottom:50px}
@media(max-width:740px){.live-bar{grid-template-columns:auto minmax(0,1fr) auto;gap:6px;width:calc(100vw - 16px);min-height:40px;padding:4px 8px}.live-bar time{min-width:auto;font-size:9px}.live-viewers{grid-column:2;grid-row:1;min-width:0;justify-content:center;font-size:8px}.live-scrubber{grid-column:1/4;grid-row:2}.live-ticks{font-size:6px}.live-now{grid-column:3;grid-row:1;font-size:9px;padding:4px 5px}.live-viewers>span{display:none}body{padding-bottom:58px}}
.runoff-facts{display:grid;gap:5px;padding:10px 0;border-top:1px solid #302e2b;border-bottom:1px solid #302e2b;color:#b1ada6;font-size:10px}
.runoff-facts strong{color:#f2f0ec}
.runoff-section-count{color:#e6e3dc;font-weight:700;font-variant-numeric:tabular-nums}.runoff-section-note{color:#969189;font-size:9px;line-height:1.45}
.runoff-others{display:grid;gap:5px;margin-top:9px}
.runoff-others>div{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:7px;padding:5px 0}
.runoff-others span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px;font-weight:700}
.runoff-others small{color:#aaa69e;font-size:9px}
.runoff-others strong{font-size:11px}
.runoff-card>p{margin:1px 0 9px;color:#aaa69e;font-size:9px}
.runoff-source{display:block;margin-top:9px;color:#96928b;font-size:9px;line-height:1.5}
.main-panel.runoff-mode .info-note{display:none}
.runoff-all-link{margin-top:10px;padding:0;border:0;border-bottom:1px solid #5a5751;background:transparent;color:#e2dfd9;font-size:10px;font-weight:700}
.shade-key{color:#aaa!important;font-size:9px}
.map-legend .legend-dot{flex:none}
/* Floating, unified controls and card-only column layout. */
.app-shell{overflow:visible;border:0;border-radius:0;background:transparent;box-shadow:none}
.site-header{position:relative;z-index:20;width:min(1600px,calc(100vw - 48px));max-width:none;min-height:52px;height:auto;flex:0 0 auto;margin:10px auto 8px;padding:6px 18px;border:1px solid #303031;border-radius:28px;background:#141415;box-shadow:0 10px 28px #0006;gap:14px}
.site-header .header-center{flex:0 1 auto;gap:12px}
.site-header .header-right{margin-left:0;min-width:0;display:flex;align-items:center;gap:7px}
.site-header .round-tabs{flex:none}
.site-header .compare-open{padding:8px 11px}
.app-toolbar{position:fixed;z-index:19;top:10px;left:50%;transform:translateX(-50%);width:max-content;max-width:calc(100% - 28px);min-height:52px;padding:6px 10px;border:1px solid #303031;border-radius:28px;background:#141415;box-shadow:0 10px 28px #0006;gap:10px}
.round-tabs{white-space:nowrap}
.content-grid{gap:12px;padding:0 12px 12px;background:transparent}
.main-panel,.map-panel,.side-panel{min-width:0;border:1px solid #29292a;border-radius:16px;background:#0e0e0f}
.main-panel{padding:16px;}
.map-panel{padding:16px 14px}
.side-panel{padding:12px;gap:10px}
.region-nav{display:none!important}
.governor-state-grid{display:none}
.governor-overview{gap:12px}
.governor-overview>h3{display:none}
.governor-contests-heading{border:0;padding-top:0}
@media(min-width:1151px){.app-shell{padding-top:68px}.content-grid{grid-template-columns:minmax(270px,24%) minmax(430px,1fr) minmax(245px,22%)}.site-header{position:fixed;top:10px;left:50%;transform:translateX(-50%);margin:0}.site-header .header-center{flex:0 0 auto}.site-header .header-right{flex:0 0 auto}.main-panel{border-right:1px solid #29292a}.map-stage{height:calc(100vh - 220px);min-height:300px}.map-panel{display:flex;flex-direction:column}.map-panel .map-stage{flex:1;min-height:300px}.governor-state-grid{display:none!important}}
@media(max-width:1150px){.site-header{position:relative;top:auto;left:auto;transform:none;width:calc(100% - 32px);max-width:none;margin:8px auto}.site-header .header-center{flex:0 1 auto;justify-content:flex-start}.site-header .header-right{flex:0 1 auto}.content-grid{gap:10px}.main-panel{border-right:1px solid #29292a}.side-panel{border-top:1px solid #29292a}}
@media(max-width:740px){.site-header{display:flex;flex-wrap:wrap;justify-content:center;width:calc(100% - 16px);max-width:none;margin:8px auto 7px;padding:6px}.site-header .header-center{display:flex;flex-wrap:wrap;justify-content:center;width:100%;gap:6px}.site-header .header-center .scope-tabs{width:auto;max-width:100%}.site-header .header-center .search-wrap{width:min(100%,320px)}.site-header .header-right{display:flex;flex-wrap:wrap;justify-content:center;width:100%}.site-header .header-right .source-indicator{display:none}.site-header .fullscreen-button span{display:none}.site-header .compare-open{font-size:9px;padding:7px}.site-header .round-tabs button{padding:6px 8px;font-size:9px}.content-grid{padding:0 8px 8px;gap:9px}.main-panel,.map-panel,.side-panel{border:1px solid #29292a;border-radius:14px}.main-panel{border-bottom:1px solid #29292a}.side-panel{display:flex;padding:10px}.map-panel{padding:14px 10px}}
@media(min-width:1151px){.site-header{padding:0 20px}.header-center{flex:0 1 auto}.header-right{min-width:330px;justify-content:flex-end}.site-header .brand{min-width:235px}.header-center .scope-tabs{max-width:36vw}.main-panel{overflow-y:auto}.runoff-card{padding:17px}.runoff-person-details b{font-size:31px}}
@media(max-width:1150px){.site-header{height:auto;min-height:58px;flex-basis:auto;flex-wrap:wrap;gap:5px 12px;padding:7px 14px}.site-header .brand{min-width:0;height:38px}.site-header .brand-logo{width:34px;height:34px}.brand-title strong{font-size:15px}.header-center{flex:1;justify-content:flex-end;gap:10px}.header-center .scope-tabs{max-width:min(52vw,500px)}.header-center .scope-tabs button{padding:7px 9px;font-size:10px}.header-center .search-wrap{width:130px}.header-right{gap:5px}.source-indicator{display:none}.header-utility,.share-button{height:32px;min-width:33px;padding:0 7px}.fullscreen-button span{display:none}.runoff-card h3{font-size:20px}}
.header-center{justify-content:flex-start}.updates-card h3{display:flex;align-items:center;justify-content:space-between;gap:8px}.updates-live{flex:none;padding:3px 6px;border:1px solid #334237;border-radius:10px;background:#172019;color:#a4d0ad;font-size:8px;letter-spacing:.06em;white-space:nowrap}@media(max-width:1150px){.header-center{justify-content:flex-start}}
.governor-overview{display:grid;gap:13px;padding-bottom:8px}.governor-overview[hidden]{display:none}.governor-overview-head,.governor-contests-heading{display:flex;align-items:center;justify-content:space-between;gap:8px}.governor-overview-head h2{margin:0;color:#f2f1ef;font-size:18px}.governor-source,.governor-contests-heading small{color:#aaa8a5;font-size:9px}.governor-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.governor-stats>div{display:grid;gap:3px;padding:9px 8px;border:1px solid #2e2e30;border-radius:9px;background:#161617}.governor-stats strong{font-size:18px;color:#f3f3f4}.governor-stats span{font-size:9px;color:#aaa}.governor-overview h3{margin:1px 0 0;color:#e8e8e9;font-size:12px}.governor-state-grid{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));gap:5px}.governor-state-chip{height:30px;border:1px solid #38383a;border-radius:6px;background:#202124;color:#eee;font-size:10px;font-weight:800;cursor:pointer}.governor-state-chip:not(.pending){border-color:color-mix(in srgb,var(--state-color) 70%,#303033);background:color-mix(in srgb,var(--state-color) 72%,#141416)}.governor-state-chip.final:not(.pending){box-shadow:inset 0 -2px #ffffff55}.governor-state-chip.pending{color:#777;background:#1b1b1d}.governor-state-chip:hover,.governor-state-chip:focus-visible{outline:2px solid #eee;outline-offset:1px}.governor-contests-heading{border-top:1px solid #303033;padding-top:10px}.governor-contests{display:grid;gap:6px}.governor-contest{display:grid;grid-template-columns:32px minmax(0,1fr);align-items:center;gap:3px 8px;width:100%;padding:7px;border:1px solid #303033;border-radius:8px;background:#171719;color:#eee;text-align:left;cursor:pointer}.governor-contest:hover{background:#222225}.governor-contest-meta{grid-row:1/3;display:grid;justify-items:center;gap:2px}.governor-contest-meta strong{font-size:10px;color:#fff}.governor-contest-meta small{font-size:8px;color:#aaa;white-space:nowrap}.governor-contest-person{display:grid;grid-template-columns:22px minmax(0,1fr) auto;align-items:center;gap:6px;min-width:0}.governor-mini-photo{display:grid;place-items:center;width:22px;height:22px;overflow:hidden;border:1px solid #48484b;border-radius:50%;background:#252529;color:#ddd;font-size:8px;font-weight:800}.governor-mini-photo img{width:100%;height:100%;object-fit:cover}.governor-contest-person b{overflow:hidden;color:#bbb;font-size:9px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.governor-contest-person strong{font-size:10px;color:#eee;white-space:nowrap}.governor-empty{margin:0;padding:10px;border:1px dashed #38383a;border-radius:8px;color:#aaa;font-size:10px;line-height:1.45}
@media(max-width:740px){.site-header{display:grid;grid-template-columns:1fr auto;grid-template-areas:"brand right" "center center";gap:6px 8px;padding:7px 10px}.site-header .brand{grid-area:brand}.header-center{grid-area:center;display:grid;grid-template-columns:minmax(0,1fr);justify-content:stretch;gap:6px}.header-center .scope-tabs{width:100%;max-width:100%;justify-content:flex-start}.header-center .scope-tabs button{padding:7px 10px}.header-center .search-wrap{width:100%}.header-center .search-wrap input{padding-top:8px;padding-bottom:8px}.header-right{grid-area:right}.header-utility span{display:none}.fullscreen-button{display:none}.app-toolbar{padding:7px 9px}.round-tabs button{padding:7px 9px;font-size:10px}.toolbar-actions{gap:5px}.compare-open{font-size:10px;padding:8px}.runoff-card{margin-top:12px;padding:13px 12px}.runoff-card h3{font-size:20px}.runoff-pair{gap:8px}.runoff-person{grid-template-columns:40px minmax(0,1fr);gap:6px}.runoff-portrait{width:40px;height:40px;border-radius:10px}.runoff-person-details strong{font-size:10px}.runoff-person-details b{font-size:23px}.runoff-person-details span{font-size:8px}.runoff-top strong{font-size:8px}.map-legend{justify-content:flex-start}.map-hint{font-size:9px}}
.comparison-dialog::backdrop{background:#000b}
#governor-overview .governor-state-grid{display:none!important}
#governor-overview>h3{display:none!important}
.legislative-overview{gap:10px!important}.legislative-overview .governor-state-grid{display:grid!important}.legislative-overview .governor-stats{gap:6px}.legislative-overview .governor-stats>div{padding:7px 8px}.legislative-overview .governor-stats strong{font-size:17px}.legislative-composition{display:grid;grid-template-columns:112px minmax(0,1fr);align-items:center;gap:11px;padding:9px 0;border-block:1px solid #2c2c2e}.legislative-ring{display:grid;place-items:center;width:106px;height:106px;border-radius:50%;position:relative}.legislative-ring:before{content:"";position:absolute;inset:12px;border-radius:50%;background:#111112}.legislative-ring-center{position:relative;display:grid;justify-items:center;line-height:1.1;text-align:center}.legislative-ring-center strong{font-size:25px;font-weight:800}.legislative-ring-center span{font-size:9px;color:#aaa}.legislative-party-list{display:grid;grid-template-columns:1fr 1fr;gap:4px 9px}.legislative-party-list>div{display:grid;grid-template-columns:8px minmax(0,1fr) auto;align-items:center;gap:5px;font-size:10px;color:#c7c7c9}.legislative-party-list i{width:8px;height:8px;border-radius:2px}.legislative-party-list strong{color:#fff}.legislative-state-grid{grid-template-columns:repeat(9,minmax(0,1fr))!important}.legislative-state-chip:not(.pending){background:color-mix(in srgb,var(--state-color) 78%,#141416)!important}.legislative-candidates{display:grid;gap:1px}.legislative-candidate{display:grid;grid-template-columns:26px 24px minmax(0,1fr) auto;align-items:center;gap:2px 6px;padding:5px 2px;border-bottom:1px solid #29292b}.legislative-candidate>span:first-child{grid-row:1/3;color:#aaa;font-size:10px;font-weight:800}.legislative-portrait{grid-column:2;grid-row:1/3;display:grid;place-items:center;width:23px;height:23px;overflow:hidden;border:1px solid #49494d;border-radius:50%;background:#222;color:#ddd;font-size:8px}.legislative-portrait img{width:100%;height:100%;object-fit:cover}.legislative-candidate b{overflow:hidden;color:#eee;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.legislative-candidate small{color:#929296;font-size:9px}.legislative-candidate strong{grid-column:4;grid-row:1/3;color:#eee;font-size:10px}.legislative-switcher{display:flex;gap:4px;padding:3px;border:1px solid #303033;border-radius:9px;background:#171719;width:max-content}.legislative-switcher button{padding:6px 10px;border:0;border-radius:7px;background:transparent;color:#a6a6aa;font-size:10px;font-weight:700;cursor:pointer}.legislative-switcher button.active{background:#343437;color:#fff}.legislative-legend-item{display:inline-flex;align-items:center;gap:4px;margin:0 5px 4px 0!important;color:#ccc;font-size:9px;white-space:nowrap}.legislative-legend-item i{width:8px;height:8px;border-radius:2px}.legislative-legend-item b{font-weight:600}
@media(max-width:740px){.legislative-composition{grid-template-columns:94px minmax(0,1fr)}.legislative-ring{width:88px;height:88px}.legislative-ring:before{inset:10px}.legislative-ring-center strong{font-size:21px}.legislative-party-list{gap:4px 6px}.legislative-state-grid{grid-template-columns:repeat(6,minmax(0,1fr))!important}}
.local-card[hidden],#regional-card[hidden],#territory-table[hidden]{display:none!important}
.map-candidate-markers{position:absolute;inset:0;z-index:2;overflow:hidden;pointer-events:none;transform-origin:50% 50%}.map-candidate-markers[hidden]{display:none}.map-candidate-pair{position:absolute;display:flex;align-items:center;justify-content:center;transform:translate(-50%,-50%)}.map-candidate-face{display:grid;place-items:center;width:25px;height:25px;margin-left:-4px;overflow:hidden;border:2px solid #f1f1f1;border-radius:50%;background:#25252a;color:#fff;font-size:7px;font-weight:800;box-shadow:0 1px 5px #000b}.map-candidate-face:first-child{margin-left:0}.map-candidate-face img{width:100%;height:100%;object-fit:cover}.map-candidate-face{outline:1px solid var(--party-color)}
.map-candidate-connectors{position:absolute;inset:0;overflow:visible;pointer-events:none}.map-candidate-connectors line{stroke:#aaa;stroke-width:1;opacity:.65;vector-effect:non-scaling-stroke}.map-candidate-callout{gap:4px;padding:2px 5px 2px 2px;border:1px solid #4a4a4c;border-radius:14px;background:#171719;box-shadow:0 2px 8px #0009}.map-candidate-callout .map-candidate-face{width:23px;height:23px;margin-left:-7px}.map-candidate-callout .map-candidate-face:first-child{margin-left:0}.map-candidate-callout b{display:grid;place-items:center;min-width:23px;height:20px;padding:0 4px;border-radius:5px;background:var(--party-color,#435ab2);color:#fff;font:800 9px/1 Manrope,Arial,sans-serif}
.map-state-callout{position:absolute;display:grid;place-items:center;min-width:31px;height:22px;padding:0 4px;transform:translate(-50%,-50%);border:1px solid #777;border-radius:5px;background:#202124;color:#fff;font:800 10px/1 Manrope,Arial,sans-serif;text-shadow:0 1px 2px #000;box-shadow:0 2px 7px #0009;pointer-events:auto;cursor:pointer}.map-candidate-callout{pointer-events:auto;cursor:pointer}
.map-history-context{color:#aeb8d2;font-size:10px;font-weight:700}
.comparison-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}
.comparison-head h2{font:800 25px/1.15 Manrope,sans-serif;margin:8px 0}
.comparison-head button{border:1px solid #555;border-radius:9px;background:#222;color:#fff;width:36px;height:36px;font-size:25px;line-height:1}
.comparison-intro,.comparison-method{color:#b9b9bb;font-size:12px;line-height:1.5}
.comparison-search-label{display:block;margin:20px 0 6px;font-size:11px;font-weight:800;color:#e8e8e9}
#comparison-search{width:100%;padding:11px 13px;border:1px solid #45454b;border-radius:9px;background:#202023;color:#fff;outline:none}
#comparison-search:focus{border-color:#7892fb}
.comparison-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:20px 0;padding-bottom:18px;border-bottom:1px solid #333}
.comparison-group h3{margin:0 0 7px;font-size:12px;color:#fff}
.comparison-group button{display:block;width:100%;padding:8px 9px;border:0;border-radius:7px;background:transparent;color:#bbb;text-align:left;font-size:12px}
.comparison-group button:hover,.comparison-group button.selected{background:#303853;color:#fff}
.comparison-result-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.comparison-result-head h3{margin:0;font-size:18px}
.comparison-result-head a{color:#a9bbff;font-size:11px;text-decoration:none}
.comparison-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:14px 0}
.comparison-quartile{border:1px solid #37373a;border-radius:13px;padding:16px;background:#1d1d20}
.comparison-eyebrow{font-size:10px;font-weight:800;color:#a9bbff;text-transform:uppercase;letter-spacing:.08em}
.comparison-quartile h3{font-size:20px;margin:8px 0 3px}
.comparison-quartile p{color:#a9a9ac;font-size:11px;line-height:1.4}
.comparison-leader{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 0;border-top:1px solid #343438;font-size:11px}
.comparison-leader strong{white-space:nowrap;font-size:11px}
.comparison-map-button,.comparison-clear{border:1px solid #5c70c5;border-radius:8px;background:#273875;color:white;padding:10px 12px;font-size:11px;font-weight:800;cursor:pointer}
.comparison-map-button{width:100%;margin-top:8px}.comparison-clear{background:transparent;border-color:#555;color:#bbb}
.comparison-empty{font-size:12px;color:#bbb}
.comparison-coverage{padding:9px 11px;border-left:3px solid #687fe8;border-radius:0 8px 8px 0;background:#202331;color:#e1e5f7;font-size:11px;line-height:1.45}
.comparison-historical-note{padding:9px 11px;border-left:3px solid #d8a83b;border-radius:0 8px 8px 0;background:#2a251a;color:#f3dfad;font-size:11px;line-height:1.45}
.comparison-updated{color:#8f8f96;font-size:10px}
.comparison-other{margin:2px 0;color:#c3c3c8!important}
.comparison-quartile{min-width:0}
.comparison-leader span{max-width:48%;overflow-wrap:anywhere}
.comparison-leader strong{white-space:normal;text-align:right}
.comparison-dialog button:focus-visible,.comparison-dialog a:focus-visible,#comparison-search:focus-visible{outline:2px solid #8ba0ff;outline-offset:2px}
@media(max-width:740px){.compare-open{padding:9px;font-size:10px}.toolbar-actions{flex-wrap:wrap}.comparison-dialog{padding:17px;max-height:90vh}.comparison-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.comparison-cards{grid-template-columns:1fr}.comparison-result-head{display:block}.comparison-result-head a{display:block;margin-top:6px}}
@media(min-width:900px){.comparison-dialog{width:min(1060px,calc(100vw - 24px));height:min(670px,calc(100vh - 24px));max-height:none;display:grid;grid-template-columns:minmax(0,46%) minmax(0,54%);grid-template-rows:auto auto auto auto minmax(0,1fr);column-gap:20px;overflow:hidden}.comparison-head,.comparison-intro,.comparison-search-label,#comparison-search{grid-column:1/-1}.comparison-options{grid-column:1;grid-row:5;grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;overflow:auto;margin:10px 0 0;padding:0 12px 0 0;border-bottom:0;border-right:1px solid #333}.comparison-results{grid-column:2;grid-row:5;overflow:auto;padding:9px 4px 0 0}.comparison-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.comparison-quartile{padding:11px}.comparison-quartile h3{font-size:16px;margin:4px 0}.comparison-quartile p{margin:3px 0 6px}.comparison-map-button{margin-top:3px;padding:7px}.comparison-leader{padding:5px 0}}
.map-tooltip{position:absolute;z-index:4;width:228px;max-width:calc(100% - 16px);padding:11px 12px;border:1px solid #414147;border-radius:11px;background:rgba(21,21,24,.97);box-shadow:0 12px 32px #0009;color:#f4f4f5;pointer-events:none;font:11px/1.35 'DM Sans',sans-serif;backdrop-filter:blur(8px)}
.map-tooltip[hidden]{display:none}
.map-tooltip-title{display:block;font-size:13px;line-height:1.25}
.map-tooltip-source{display:block;color:#aeb0bd;margin:3px 0 7px;font-size:10px}
.map-tooltip-candidate{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:0 8px;margin-top:5px;padding-left:9px;border-left:3px solid var(--candidate-color)}
.map-tooltip-candidate span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:700}
.map-tooltip-candidate strong{color:var(--candidate-color);font-size:13px}
.map-tooltip-candidate small{grid-column:1/-1;color:#aeb0bd;font-size:10px}
.map-tooltip-counted{display:block;border-top:1px solid #38383c;margin-top:9px;padding-top:6px;color:#aeb0bd;font-size:10px}
@media(max-width:1150px){.regional-row{grid-template-columns:minmax(0,1fr) auto;gap:5px 9px;padding:9px 0;background:transparent;border:0;border-bottom:1px solid #2b2927}.regional-row-detail{grid-column:1/-1}.regional-row-detail>span{text-align:left}.regional-progress{grid-column:1/-1;height:4px}.regional-counted{grid-column:1/-1}.official-update{grid-template-columns:43px 9px minmax(0,1fr)}.participation-card,.updates-card,.regional-card{margin:0}.side-panel{gap:10px}}
@media(max-width:740px){
  body{padding-bottom:calc(76px + env(safe-area-inset-bottom))}
  .site-header{display:flex;flex-direction:column;align-items:stretch;gap:8px;width:calc(100% - 16px);margin:7px auto;padding:8px;border-radius:18px}
  .site-header .header-center{order:1;display:grid;width:100%;grid-template-columns:minmax(0,1fr);gap:7px}
  .header-center .scope-tabs{width:100%;max-width:100%;justify-content:flex-start;overflow-x:auto;scrollbar-width:none;scroll-snap-type:x proximity}
  .header-center .scope-tabs::-webkit-scrollbar,.header-right::-webkit-scrollbar{display:none}
  .header-center .scope-tabs button{flex:0 0 auto;padding:8px 11px;scroll-snap-align:start}
  .header-center .search-wrap{width:100%;min-width:0}
  .header-center .search-wrap input{min-height:38px;padding:9px 12px 9px 35px}
  .site-header .header-right{order:2;display:flex;flex-wrap:nowrap;justify-content:flex-start;gap:6px;width:100%;min-width:0;margin:0;padding:1px 0 2px;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none}
  .header-right>*{flex:0 0 auto}
  .round-tabs{padding:2px}
  .round-tabs button{padding:7px 10px;font-size:10px}
  .site-header .compare-open{flex:0 0 auto;padding:8px 10px;font-size:10px}
  .header-utility,.share-button,.site-header .icon-button{width:auto;min-width:34px;height:34px;padding:0 9px}
  .header-utility span{display:none}
  .fullscreen-button{display:none}
  .source-indicator{display:none}
  .content-grid{display:flex;flex-direction:column;gap:9px;padding:0 8px 8px}
  .main-panel,.map-panel,.side-panel{width:100%;min-width:0;border:1px solid #29292a;border-radius:15px}
  .main-panel{padding:15px 14px;border-bottom:1px solid #29292a}
  .panel-heading{align-items:flex-start;gap:8px}
  .panel-heading h2{margin:7px 0 3px;font-size:18px;line-height:1.18}
  .panel-subtitle{font-size:10px;line-height:1.4}
  .status-pill{flex:none;height:auto;padding:7px 8px;font-size:9px}
  .counted-line{margin:20px 0 7px;font-size:10px}
  .quick-facts{gap:4px;margin:13px 0 2px;padding:9px 10px;font-size:10px}
  .candidates{margin-top:13px}
  .candidate{gap:7px;padding:10px 0}
  .candidate-portrait{width:38px;height:38px}
  .candidate-name{font-size:12px;line-height:1.25}
  .candidate-name small{display:block;margin:2px 0 0;font-size:9px}
  .candidate-percent{font-size:20px;white-space:nowrap}
  .candidate-votes{font-size:9px;line-height:1.35}
  .candidate-bar{height:4px;margin-top:5px}
  .more-candidates:not([hidden]){min-height:40px;margin:9px 0 12px;padding:9px}
  .vote-totals{font-size:9px;line-height:1.45}
  .timeline{gap:8px;padding-top:11px}
  .timeline h3{font-size:11px}
  .timeline p{font-size:9px}
  .timeline svg{min-width:115px}
  .map-panel{min-height:0;padding:14px 11px 11px}
  .map-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:8px}
  .map-heading h2{margin:5px 0 0;font-size:16px}
  .map-heading .section-kicker{font-size:8px}
  .map-legend{max-width:48%;font-size:9px;line-height:1.3;text-align:right}
  .map-mode,.map-metric{display:flex;width:100%;max-width:100%;gap:4px;margin-top:9px;padding:3px;overflow-x:auto;scrollbar-width:none;overscroll-behavior-x:contain}
  .map-mode::-webkit-scrollbar,.map-metric::-webkit-scrollbar{display:none}
  .map-mode button,.map-metric button{flex:0 0 auto;min-height:32px;padding:7px 10px;font-size:9px;white-space:nowrap}
  .macro-regions{display:flex;gap:5px;margin-top:7px;overflow-x:auto;scrollbar-width:none}
  .macro-regions button{flex:0 0 auto;padding:6px 9px;font-size:9px;white-space:nowrap}
  .map-stage{height:min(56svh,460px);min-height:310px;margin-top:7px}
  .map-zoom{left:7px;bottom:30px}
  .map-zoom button{width:35px;height:35px}
  .map-hint{right:7px;bottom:7px;left:48px;max-width:none;padding:5px 7px;font-size:8px;text-align:center}
  .side-panel{display:flex;gap:9px;padding:9px;background:transparent}
  .participation-card,.regional-card,.updates-card,.source-card,.local-card{width:100%;padding:13px;border-radius:14px}
  .participation-card h3,.updates-card h3,.regional-heading h3{font-size:12px}
  .regional-row{padding:8px 0}
  .regional-row-heading strong,.regional-row-heading b{font-size:10px}
  .regional-row-detail>span,.regional-row-detail small{font-size:9px}
  .official-update{grid-template-columns:40px 8px minmax(0,1fr);gap:7px;padding:9px 0}
  .update-copy{font-size:10px}
  .source-card h3,.local-card h3{font-size:15px}
  .live-bar{bottom:calc(7px + env(safe-area-inset-bottom));grid-template-columns:auto minmax(0,1fr) auto;gap:5px;width:calc(100vw - 16px);min-height:39px;padding:4px 7px}
}
.leftbar-toggle{position:absolute;z-index:6;top:10px;left:10px;max-width:calc(100% - 20px);padding:6px 10px;border:1px solid #3a4250;border-radius:8px;background:#1b2029;color:#e8ecf5;font-size:11px;font-weight:700;line-height:1.25;white-space:nowrap}
.content-grid{position:relative}
.content-grid>.main-panel{padding-top:48px!important}
@media(min-width:741px){.content-grid.leftbar-collapsed{grid-template-columns:110px minmax(0,1fr)!important}.content-grid.leftbar-collapsed>.main-panel{overflow:hidden!important;visibility:hidden}.content-grid.leftbar-collapsed>.leftbar-toggle{width:90px;text-align:center}}
@media(max-width:740px){.content-grid>.leftbar-toggle{position:relative;top:auto;left:auto;align-self:start;margin:0 0 4px 2px}.content-grid.leftbar-collapsed>.main-panel{display:none!important}}
#map.map-reveal{animation:none!important}
/* Give the map the remaining 1600×900 canvas when the result rail is folded. */
@media(min-width:1201px){
 .content-grid.leftbar-collapsed{grid-template-columns:94px minmax(0,1fr)!important;gap:6px}
 .content-grid.leftbar-collapsed>.leftbar-toggle{left:2px;width:88px}
 .content-grid.leftbar-collapsed>.map-panel{padding:10px 12px 4px;border-color:#25282e;background:#101113}
 .content-grid.leftbar-collapsed .map-heading{gap:6px}
 .content-grid.leftbar-collapsed .map-mode,.content-grid.leftbar-collapsed .map-metric{margin-top:4px}
 .content-grid.leftbar-collapsed .map-stage{height:auto!important;min-height:0!important;flex:1 1 0}
}
@media(max-width:380px){
  .header-center .scope-tabs button{padding:7px 9px;font-size:9px}
  .site-header .header-right{gap:4px}
  .round-tabs button{padding:7px 8px;font-size:9px}
  .site-header .compare-open{padding:7px 8px;font-size:9px}
  .map-heading .map-legend{font-size:8px}
  .map-stage{min-height:285px}
  .map-zoom button{width:32px;height:32px}
}
.live-bar{grid-template-columns:auto minmax(0,1fr) auto auto;grid-template-rows:auto;align-items:center;gap:2px 13px;min-height:48px;padding:5px 13px}
#live-clock{grid-column:1;grid-row:1;align-self:center}
.live-election{grid-column:2;grid-row:1;display:grid;min-width:0;gap:3px}
.live-election-head{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0}
.live-election-head span{overflow:hidden;color:#bbb8b2;font-size:9px;text-overflow:ellipsis;white-space:nowrap}
.live-election-head strong{flex:none;color:#f2f0ec;font-size:9px;font-variant-numeric:tabular-nums;white-space:nowrap}
.live-election-track{position:relative;height:5px;overflow:visible;border:1px solid #3a3937;border-radius:8px;background:#252423}
.live-election-track>i{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,#647fff,#d6a957)}
.live-election-track>b{position:absolute;top:50%;left:0;width:9px;height:9px;border:2px solid #f3f2ed;border-radius:50%;background:#293a77;box-shadow:0 0 0 2px #151515;transform:translate(-50%,-50%)}
.live-election-dates{display:flex;justify-content:space-between;gap:8px;color:#96928b;font-size:7px;line-height:1;white-space:nowrap}
.live-viewers{grid-column:3;grid-row:1/3}
.live-now{grid-column:4;grid-row:1/3}
@media(max-width:740px){
  body{padding-bottom:calc(104px + env(safe-area-inset-bottom))}
  .live-bar{grid-template-columns:auto minmax(0,1fr) auto;grid-template-rows:auto auto;gap:4px 7px;min-height:62px;padding:7px 9px;border-radius:17px}
  #live-clock{grid-column:1;grid-row:1;font-size:10px}
  .live-election{grid-column:1/-1;grid-row:2;gap:4px}
  .live-election-head span,.live-election-head strong{font-size:9px}
  .live-election-track{height:5px}
  .live-election-dates{font-size:7px}
  .live-viewers{grid-column:2;grid-row:2;justify-content:center;font-size:8px}
  .live-now{grid-column:3;grid-row:2;font-size:9px}
  .live-ticks{font-size:6px}
}
@media(max-width:380px){.live-election-head span,.live-election-head strong{font-size:8px}.live-election-dates{font-size:6px}.live-bar{gap:4px 5px;padding:7px}.live-viewers{font-size:7px}}

@media(max-width:740px){
  .live-bar{position:sticky;left:auto;bottom:8px;transform:none;margin:10px auto 0;width:calc(100% - 16px)}
  body{padding-bottom:12px}
}

/* Keep the right rail as a layout column; cards provide the visible surfaces. */
.side-panel{align-self:stretch;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#414142 transparent;padding:0!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important}
.updates-card{width:100%;padding:17px 16px;border-color:#36332f;background:linear-gradient(150deg,#191816,#131210);box-shadow:0 10px 26px #0003}
.updates-card h3{margin-bottom:13px;font-size:14px;letter-spacing:-.02em}
.updates-live{padding:4px 8px;font-size:9px}
#updates-rows{gap:0}
.official-update{grid-template-columns:48px 10px minmax(0,1fr);gap:10px;min-width:0;padding:12px 0;border-top:1px solid #302e2b}
.official-update time{align-self:start;padding-top:2px;color:#aaa39a;font-size:10px;font-weight:650}
.update-marker{align-self:start;margin-top:5px;border-color:var(--update-party,#aaa49c);background:var(--update-party,#171615);box-shadow:0 0 0 3px color-mix(in srgb,var(--update-party,#aaa49c) 16%,transparent)}
.update-copy{display:grid;gap:4px;min-width:0;color:#e8e4de;font-size:11px;line-height:1.35}
.update-meta{color:#a49e95;font-size:10px;line-height:1.3}
.update-result{display:flex;align-items:baseline;justify-content:space-between;gap:8px;min-width:0}
.update-result strong{overflow:hidden;color:#f2efeb;font-size:11px;font-weight:700;text-overflow:ellipsis}
.update-result b{flex:none;color:var(--update-party,#e7e2d9);font-size:12px;font-variant-numeric:tabular-nums}
#updates-rows>p{padding:4px 0 2px;font-size:11px;line-height:1.55}
@media(max-width:740px){
  .content-grid{min-height:0}
  .side-panel{display:flex;align-self:stretch;gap:9px;padding:0!important}
  .updates-card{padding:15px 14px;border-radius:16px}
  .updates-card h3{font-size:13px}
  .official-update{grid-template-columns:49px 9px minmax(0,1fr);gap:9px;padding:11px 0}
  .update-copy{font-size:11px}
  .update-meta{font-size:10px}
  .update-result strong{font-size:11px}
  .update-result b{font-size:12px}
}
.legislative-coverage-note{margin:0 0 10px;padding:9px 10px;border:1px solid #51462b;border-radius:9px;background:#221f18;color:#e6d09b;font-size:10px;line-height:1.45}
@media(min-width:1151px){
  main{width:100%;max-width:none;margin:0}
  .app-shell{width:auto;margin:14px 18px 0}
  .content-grid{width:100%;grid-template-columns:minmax(270px,24%) minmax(430px,1fr) minmax(245px,22%)}
}


.map-state-callout.has-percent{height:30px;gap:2px;line-height:1}.map-state-callout.has-percent small{font:600 7px/1 Manrope,Arial,sans-serif;color:#d3d7e6;text-shadow:0 1px 2px #000}

@media(max-width:740px){body{padding-bottom:12px}}

.data-provenance{margin:8px 0 13px;padding:8px 10px;border:1px solid #353536;border-radius:9px;background:#19191a;color:#bdbdc0;font-size:10px;line-height:1.45;font-variant-numeric:tabular-nums}
.data-provenance[data-state="stale"]{border-color:#75623c;color:#f2dba8}
.data-provenance[data-state="final"]{border-color:#315b43;color:#b2dec0}
.search-results button small{display:block;color:#aeb7c8;font-size:10px}
.candidate.search-highlight{outline:2px solid #f4df83;outline-offset:3px;border-radius:8px}
@media(max-width:740px){.data-provenance{margin:7px 0 10px}.search-results{max-height:min(45vh,300px);overflow-y:auto}}

.updates-source-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 12px;margin:0 0 5px;padding:9px 0 11px;border-bottom:1px solid #302e2b}
.updates-source-meta>div{display:grid;align-content:start;gap:3px;min-width:0}
.updates-source-meta>div>span{color:#9d978e;font-size:9px;line-height:1.2}
.updates-source-meta strong,.updates-source-meta a{min-width:0;color:#e8e4de;font-size:10px;font-weight:700;line-height:1.3;overflow-wrap:anywhere;text-decoration:none}

/* Em telas estreitas, a página inteira rola; nenhum painel prende a navegação. */
@media(max-width:740px){
  html,body{height:auto;min-height:100%;overflow-x:hidden;overflow-y:auto!important}
  body{display:block}
  main{height:auto;min-height:0;overflow:visible;display:block}
  .app-shell{height:auto;min-height:0;overflow:visible}
  .content-grid{height:auto;min-height:0;overflow:visible}
  .main-panel,.map-panel,.side-panel{height:auto;max-height:none;min-height:0;overflow:visible;overscroll-behavior:auto}
}
.updates-source-meta a{color:#b7c8ff}
.runoff-source a{display:inline-block;margin-top:4px;color:#b7c8ff;text-decoration:underline;text-underline-offset:2px}
@media(max-width:740px){
  .map-heading{display:grid;grid-template-columns:minmax(0,1fr);align-items:start;gap:0}
  .map-legend{display:flex;width:100%;max-width:100%;margin-top:7px;gap:6px;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none;text-align:left;white-space:nowrap}
  .map-legend::-webkit-scrollbar{display:none}
  .map-legend>span{flex:0 0 auto}
  .updates-source-meta{gap:8px 10px;padding:8px 0 10px}
  .updates-source-meta>div>span{font-size:8px}
  .updates-source-meta strong,.updates-source-meta a{font-size:9px}
}
.candidate-votes{justify-content:flex-start;gap:4px}.candidate-vote-count{font-variant-numeric:tabular-nums}
.candidate-vote-destination{color:#f1c66a!important;font-weight:700}.vote-totals{display:flex;flex-wrap:wrap;gap:5px 12px}.vote-totals span{white-space:nowrap}

.candidate-name{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-width:0}.candidate-name small{display:block;margin:0}.candidate-vote-count{white-space:nowrap}
.turn-comparison{margin:18px 0;padding:14px;border:1px solid #353535;border-radius:12px;background:#19191a}
.turn-comparison[hidden]{display:none}
.turn-comparison h3{margin:0 0 4px;font-size:14px}
.turn-comparison p{margin:0 0 10px;color:#b7b7ba;font-size:10px;line-height:1.45}
.turn-comparison-row{display:grid;gap:4px;padding:9px 0;border-top:1px solid #333;font-size:11px;line-height:1.4}
.turn-comparison-row span{color:#b7b7ba;font-variant-numeric:tabular-nums}
.compare-places{background:#22252d;border-color:#4b5060}
#download-result-card{display:block;width:100%;margin:12px 0 5px;padding:9px 12px;border:1px solid #4d5774;border-radius:9px;background:#202637;color:#d9e2ff;font:700 11px Manrope,Arial,sans-serif;cursor:pointer}
#download-result-card:hover{background:#2b3552}
.places-dialog{width:min(840px,calc(100vw - 28px));max-height:min(780px,90vh);padding:22px;border:1px solid #48484c;border-radius:18px;background:#151518;color:#f5f5f6;box-shadow:0 20px 70px #000a}
.places-dialog::backdrop{background:#000b}
.places-head{display:flex;align-items:start;justify-content:space-between;gap:18px}
.places-head h2{margin:7px 0;font:800 23px Manrope,Arial,sans-serif}
.places-close{width:34px;height:34px;border:1px solid #555;border-radius:8px;background:#29292d;color:#fff;font-size:24px;cursor:pointer}
.places-intro,.places-source{color:#bcbcc0;font-size:11px;line-height:1.5}
.places-fields,.places-results{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.places-fields{margin:18px 0}.places-field{position:relative;min-width:0}.places-field label{display:block;margin:0 0 6px;font-size:11px;font-weight:750}.places-field input{width:100%;padding:10px 11px;border:1px solid #555;border-radius:8px;background:#222328;color:#fff;outline:none}.places-field input:focus{border-color:#91a7ff}
.places-suggestions{position:absolute;z-index:8;top:100%;left:0;right:0;max-height:230px;overflow:auto;border:1px solid #555;border-radius:0 0 9px 9px;background:#24252a;box-shadow:0 12px 24px #0008}.places-suggestions[hidden]{display:none}.places-suggestions button,.places-suggestions span{display:block;width:100%;padding:9px 10px;border:0;background:transparent;color:#fff;text-align:left;font-size:11px;cursor:pointer}.places-suggestions button:hover{background:#384466}
.places-result{min-width:0;padding:14px;border:1px solid #37383d;border-radius:12px;background:#1c1d21}.places-result h3{margin:0 0 7px;font-size:15px}.places-result p{margin:0 0 12px;color:#aeb0b9;font-size:10px;line-height:1.4}.places-candidate{display:grid;gap:4px;padding:9px 0 9px 9px;border-top:1px solid #393a40;border-left:3px solid var(--place-color);font-size:11px}.places-candidate span{color:var(--place-color);font-variant-numeric:tabular-nums}
@media(max-width:740px){.compare-places{font-size:9px;padding:7px}.places-dialog{padding:16px}.places-fields,.places-results{grid-template-columns:1fr}.places-fields{gap:10px}.places-result{padding:11px}}

.update-event{color:#c9c2b7;font-size:10px;font-weight:700}
.city-brief{margin:18px 0;padding:18px;border:1px solid #343742;border-radius:18px;background:#17191e;color:#f6f7fb}
.city-brief h3{font-size:1.08rem;line-height:1.3;margin:0 0 14px}
.city-brief-row{display:grid;grid-template-columns:minmax(0,1fr);gap:3px;padding:11px 0;border-top:1px solid #30333c}
.city-brief-row strong{font-size:.85rem}.city-brief-row b{font-size:.9rem;text-align:left;overflow-wrap:anywhere}.city-brief-row small{color:#adb4c5;line-height:1.45}
.city-brief-comparison{border-top:1px solid #30333c;padding-top:10px;font-size:.85rem;line-height:1.5}
.city-brief-comparison p{margin:5px 0}.city-brief-source{font-size:.76rem;line-height:1.55;color:#aeb6c9}
.city-brief-actions{display:flex;gap:8px;flex-wrap:wrap}.city-brief-actions button{border:1px solid #5669ad;background:#222c52;color:#fff;border-radius:10px;padding:9px 12px;cursor:pointer}
.map-text{margin-top:12px;border-top:1px solid #30333c;padding:12px 0;color:#e8eaf3;font-size:.85rem}
.map-text summary{cursor:pointer;font-weight:700}.map-text p{color:#abb4c6;line-height:1.45}
.map-text-row{display:block;width:100%;text-align:left;background:transparent;color:#e8eaf3;border:0;border-top:1px solid #30333c;padding:10px 2px;cursor:pointer;line-height:1.4}
.map-text-row:hover,.map-text-row:focus-visible{background:#222a45;outline:2px solid #748cff;outline-offset:1px}
@media(max-width:720px){.city-brief{margin:12px 0;padding:14px}.city-brief-row{grid-template-columns:1fr}.city-brief-row b{text-align:left}.site-header .header-right{scrollbar-width:thin}.scope-tabs button{min-width:0}}
.city-image-dialog{width:min(680px,calc(100vw - 24px));max-height:92vh;padding:14px;border:1px solid #484b58;border-radius:16px;background:#181a20;color:#fff;box-shadow:0 22px 70px #000a}
.city-image-dialog::backdrop{background:#000c}.city-image-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}
.city-image-head button{border:1px solid #4b5060;border-radius:8px;background:#242833;color:#fff;font-size:24px;line-height:1;padding:4px 10px}
.city-image-dialog img{display:block;width:100%;height:auto;border-radius:8px}.city-image-dialog a{display:block;width:100%;margin-top:12px;padding:11px;text-align:center;text-decoration:none;border-radius:9px;background:#344aa6;color:#fff;font-weight:700}
.places-meta{color:#aeb6c6;font-size:12px;line-height:1.45}.places-fact{border-top:1px solid #34353c;margin:10px 0 0;padding-top:9px;font-size:12px;line-height:1.45}
.places-difference{margin:12px 0;border:1px solid #4b5790;border-radius:10px;background:#202846;padding:11px 13px;line-height:1.5;font-size:13px}
.places-actions{display:flex;justify-content:flex-end;margin:12px 0}.places-actions button{border:1px solid #6177c9;border-radius:9px;background:#27376d;color:#fff;padding:9px 13px;font-weight:700}.places-actions button:disabled{opacity:.5;cursor:not-allowed}

/* Editorial data references: color follows the official party, while neutral space remains unassigned. */
.city-brief{background:#14161b;border-color:#343944;padding:0;overflow:hidden}
.city-brief h3{padding:18px 18px 0;margin:0 0 15px;font-size:14px;letter-spacing:-.02em}
.city-brief-hero{display:grid;grid-template-columns:52px minmax(0,1fr) auto;gap:10px;align-items:center;margin:0 18px;padding:13px;border:1px solid color-mix(in srgb,var(--brief-color) 48%,#353944);border-radius:12px;background:color-mix(in srgb,var(--brief-color) 12%,#17191e);min-width:0}
.city-brief-portrait{width:52px;height:52px;display:grid;place-items:center;border:2px solid var(--brief-color);border-radius:50%;background:#242b38;color:#fff;font-size:22px;font-weight:800;overflow:hidden}.city-brief-portrait img{width:100%;height:100%;object-fit:cover}
.city-brief-hero-detail{display:grid;gap:3px;min-width:0}.city-brief-hero-detail span:first-child{font-size:9px;color:#aeb7c8;font-weight:800;letter-spacing:.07em}.city-brief-hero-detail strong{font-size:12px;line-height:1.25;overflow-wrap:anywhere}.city-brief-hero-detail span:last-child{font-size:10px;color:#c4cada;line-height:1.3}.city-brief-hero>b{font-size:20px;color:var(--brief-color);font-variant-numeric:tabular-nums}
.city-brief-vote-split{display:flex;gap:2px;height:8px;margin:13px 18px 4px;border-radius:5px;background:#383c45;overflow:hidden}.city-brief-vote-split span{height:100%;flex:none}.city-brief-legend{display:block;margin:0 18px 10px;color:#aab1be;font-size:9px;line-height:1.35}
.city-brief-turnout{height:5px;margin:0 18px 12px;border-radius:4px;background:#363b44;overflow:hidden}.city-brief-turnout span{display:block;height:100%;border-radius:4px;background:#55a99b}
.city-brief-row,.city-brief-comparison,.city-brief-source,.city-brief-actions{margin-left:18px;margin-right:18px}.city-brief-row{grid-template-columns:minmax(0,1fr) auto;gap:3px 8px}.city-brief-row strong{font-size:11px}.city-brief-row b{font-size:12px;text-align:right}.city-brief-row small{grid-column:1/-1;font-size:10px}.city-brief-comparison{padding-top:11px}.city-brief-comparison p{font-size:11px}.city-brief-source{padding-top:10px;border-top:1px solid #30333c}.city-brief-actions{margin-bottom:18px}.city-brief-actions button{flex:1 1 130px;font-size:10px;line-height:1.3;background:#232a3c;border-color:#465475}
.explain-grid article{position:relative;min-width:0}.guide-figure{height:66px;margin:14px 0 12px;padding:12px;border:1px solid #343944;border-radius:10px;background:#1b202a;color:#e9edf8;display:flex;align-items:center;gap:8px;font-variant-numeric:tabular-nums}.guide-figure-coverage i{width:42%;height:7px;border-radius:6px;background:#566ec9;box-shadow:42px 0 0 #383d48}.guide-figure-coverage b{margin-left:auto;font-size:17px}.guide-figure-coverage small{font-size:8px;color:#b4bed0}.guide-figure-scope{justify-content:center}.guide-figure-scope b{font-size:11px;padding:6px 7px;border:1px solid #46516d;border-radius:6px}.guide-figure-scope i{width:16px;height:1px;background:#8093ba}.guide-figure-source{justify-content:space-between}.guide-figure-source b{padding:7px;border-radius:5px;background:#344aa6;font-size:11px}.guide-figure-source i{flex:1;height:1px;background:#68768d}.guide-figure-source span{font-size:9px;color:#bcc8d7}
@media(max-width:740px){.city-brief-hero{grid-template-columns:46px minmax(0,1fr) auto;margin:0 14px;padding:10px}.city-brief-portrait{width:46px;height:46px}.city-brief-hero>b{font-size:17px}.city-brief-row,.city-brief-comparison,.city-brief-source,.city-brief-actions{margin-left:14px;margin-right:14px}.city-brief-row{grid-template-columns:minmax(0,1fr) auto}.city-brief-row b{text-align:right}.city-brief-vote-split,.city-brief-turnout{margin-left:14px;margin-right:14px}.city-brief-legend{margin-left:14px;margin-right:14px}}

.retry-query{margin:3px 0;padding:10px 15px;border:1px solid #6478c7;border-radius:9px;background:#27366d;color:#fff;font-size:12px;font-weight:750}
.explore-results{max-width:1360px;margin:14px auto 22px;border:1px solid #33383f;border-radius:16px;background:#131519;color:#f5f6f8;overflow:hidden}
.explore-results>summary{display:flex;justify-content:space-between;align-items:center;gap:15px;min-height:68px;padding:13px 18px;list-style:none;cursor:pointer}
.explore-results>summary::-webkit-details-marker{display:none}.explore-results>summary>span{display:grid;gap:4px}.explore-results>summary strong{font:800 15px Manrope,Arial,sans-serif}.explore-results>summary small{font-size:11px;color:#a5adba}.explore-results>summary>i{display:grid;place-items:center;width:30px;height:30px;border:1px solid #414754;border-radius:50%;font-style:normal;font-size:18px;color:#c5cee1}.explore-results[open]>summary>i{transform:rotate(45deg)}
.explore-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:0 18px 13px}.explore-actions:empty{display:none}.explore-actions #map-export,.explore-actions #fullscreen,.explore-actions #exterior,.explore-actions #open-comparison,.explore-actions #open-places{min-height:36px}
.explore-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(250px,320px);align-items:start;gap:12px;padding:0 12px 12px}.explore-grid .map-panel{min-height:630px;border:1px solid #30343b;border-radius:13px}.explore-grid .side-panel{min-width:0;max-height:none;overflow:visible;align-self:start;display:flex;flex-direction:column;padding:0!important;border:0!important;background:transparent!important}
.explore-results:not([open]) .explore-actions,.explore-results:not([open]) .explore-grid{display:none}
@media(min-width:741px){
 html,body{height:auto;min-height:100%;overflow-x:hidden;overflow-y:auto!important}
 body{display:block;padding-bottom:86px}
 .topline{height:27px}
 .site-header{position:sticky;top:0;z-index:30;height:auto;min-height:60px;padding:7px clamp(14px,3vw,42px);gap:10px;backdrop-filter:blur(14px)}
 .header-center{min-width:0;flex:1 1 auto;display:flex;justify-content:flex-start;gap:10px}
 .header-center .scope-tabs{flex:0 0 auto;max-width:none}
 .header-center .scope-tabs button{padding:8px 11px;font-size:11px}
 .header-center .search-wrap{flex:0 1 290px;width:auto;min-width:150px}
 .header-right{flex:0 1 auto;min-width:0;gap:6px;justify-content:flex-end}
 .header-right #open-comparison,.header-right #map-export,.header-right #exterior,.header-right #fullscreen{display:none}
 .header-right .round-tabs button{padding:7px 10px;font-size:10px}
 .header-right .icon-button,.header-right .share-button{min-width:34px;height:34px;padding:0 9px}
 main{height:auto;min-height:0;overflow:visible;display:block}
 .app-shell{height:auto;min-height:0;display:block;overflow:visible;margin:12px clamp(10px,2vw,28px) 0}
 .content-grid{display:block;height:auto;min-height:0;overflow:visible;padding:0}
 .main-panel{width:min(calc(100% - 32px),1050px);max-width:1050px;min-height:0;max-height:none;overflow:visible;margin:12px auto;padding:clamp(20px,3vw,38px);border:1px solid #30343b;border-radius:16px}
 .panel-heading h2{font-size:clamp(24px,2.2vw,34px)}
 .counted-line{font-size:14px}.progress-track{height:9px}
 .candidates{margin-top:15px}.candidate{padding:16px 0}.candidate-percent{font-size:clamp(24px,2.1vw,34px)}
 #candidates:not(.expanded) .candidate:nth-child(n+3){display:none}
 .more-candidates:not([hidden]){display:block;width:100%;min-height:42px;margin:8px 0 13px;padding:10px;border:1px solid #3b4250;border-radius:9px;background:#202532;color:#f4f6fb;font-size:12px;font-weight:750}
 .info-note{margin-top:14px}
 .explore-results{width:calc(100% - clamp(20px,4vw,56px));max-width:1360px}
 .explore-grid .map-panel{min-height:640px;max-height:none;overflow:visible}
 .map-stage{height:clamp(420px,55vw,680px);min-height:400px}
 .explain{display:block}.app-shell footer{display:flex}
 .live-bar{position:static;left:auto;bottom:auto;transform:none;width:min(calc(100% - clamp(20px,4vw,56px)),1360px);margin:12px auto 18px}
 .explore-history{margin:0 12px 12px;padding:14px;border:1px solid #30343b;border-radius:13px}
}
@media(max-width:740px){
 html,body{height:auto;min-height:100%;overflow-x:hidden;overflow-y:auto!important}
 body{display:block;padding-bottom:12px}
 .app-shell{height:auto;min-height:0;overflow:visible}
 .live-bar{position:static;left:auto;bottom:auto;transform:none;width:calc(100% - 16px);margin:10px auto 14px}
 .explore-results{width:calc(100% - 16px);margin:10px auto;border-radius:13px}
 .explore-results>summary{min-height:58px;padding:11px 13px}.explore-results>summary strong{font-size:13px}.explore-results>summary small{font-size:10px}
 .explore-actions{padding:0 12px 11px;gap:6px}.explore-grid{grid-template-columns:minmax(0,1fr);padding:0 8px 8px;gap:9px}
 .explore-grid .map-panel{min-height:0}.explore-grid .side-panel{max-height:none;overflow:visible}
 .main-panel{max-height:none;overflow:visible}
 .explore-history{margin:0 8px 8px;padding:10px}
}

/* Keep the official scoreboard above optional context and make focus visible. */
.hero{padding:16px clamp(12px,3vw,40px) 14px;align-items:center}.hero h1{font-size:clamp(22px,2.6vw,34px);margin:5px 0}.hero p{display:none}.hero-date{padding-left:16px}.hero-date strong{font-size:30px;margin:2px 0}.hero-date strong span{font-size:17px}.hero-date>span,.hero-date small{font-size:8px}
:focus-visible{outline:3px solid #86a8ff!important;outline-offset:2px!important}
/* The map is a primary view: keep it in the main layout, never behind a disclosure. */
@media(min-width:1001px){
 .app-shell{max-width:1760px;margin:12px auto 0;padding:0 18px}
 .content-grid{display:grid!important;grid-template-columns:minmax(330px,.78fr) minmax(0,1.55fr)!important;align-items:stretch;gap:14px;padding:0!important;overflow:visible!important;height:auto!important;min-height:0}
 .main-panel{width:auto!important;max-width:none!important;min-height:0;max-height:none!important;overflow:visible!important;margin:0!important;padding:clamp(18px,2vw,30px)!important}
 .map-panel{display:flex!important;flex-direction:column;min-width:0;min-height:620px;margin:0;padding:18px!important;border:1px solid #30343b;border-radius:16px;background:#0e0e0f}
 .map-panel .map-stage{flex:1;height:clamp(520px,calc(100vh - 210px),820px);min-height:480px}
 .map-panel .map-heading{gap:18px}.map-panel .map-mode,.map-panel .map-metric,.map-panel .macro-regions{margin-top:10px}
 .explore-results{width:calc(100% - 36px);max-width:1724px;margin:14px auto 22px}
 .explore-grid{grid-template-columns:minmax(0,1fr);padding:0 14px 14px}
 .explore-grid .side-panel{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
}
@media(min-width:741px) and (max-width:1000px){
 .content-grid{display:flex!important;flex-direction:column;overflow:visible!important;height:auto!important;min-height:0}
 .main-panel{width:100%!important;max-width:none!important;max-height:none!important;overflow:visible!important;margin:0 0 10px!important}
 .map-panel{display:flex!important;flex-direction:column;min-height:0;margin:0 0 10px;padding:16px;border:1px solid #30343b;border-radius:16px}
 .map-panel .map-stage{height:clamp(380px,62vw,600px);min-height:360px}
 .explore-results{width:100%;margin:0 auto 18px}
}
@media(max-width:740px){
 .content-grid{display:flex!important;flex-direction:column;gap:10px;padding:0 8px!important;overflow:visible!important;height:auto!important;min-height:0}
 .main-panel{width:100%!important;max-width:none!important;max-height:none!important;overflow:visible!important;margin:0!important;padding:16px 14px!important}
 .map-panel{display:flex!important;flex-direction:column;width:100%;min-width:0;min-height:0;margin:0;padding:14px 11px 10px;border:1px solid #30343b;border-radius:15px;background:#0e0e0f}
 .map-panel .map-heading{align-items:flex-start;gap:8px}.map-panel .map-heading h2{font-size:17px}.map-panel .map-legend{max-width:48%;text-align:right}
 .map-panel .map-mode{max-width:100%;overflow-x:auto}.map-panel .macro-regions{max-width:100%;overflow-x:auto;flex-wrap:nowrap;padding-bottom:2px}
 .map-panel .map-stage{height:clamp(300px,100vw,430px);min-height:290px}
 .explore-results{width:calc(100% - 16px);margin:10px auto 14px}
 .explore-grid{grid-template-columns:minmax(0,1fr)}.explore-grid .side-panel{display:flex;max-height:none;overflow:visible}
}

/* Shared alignment and viewport guardrails for every section. */
html,body{max-width:100%;overflow-x:clip}
body{min-width:320px}
main{width:min(100%,1760px);margin-inline:auto}
.site-header{width:min(calc(100% - 32px),1724px);margin-inline:auto;padding-inline:clamp(10px,2vw,28px)}
@media(min-width:1001px){.site-header{position:sticky;top:0;left:auto;transform:none}.app-shell{padding-top:0}}
@media(min-width:1400px) and (min-height:760px){
 .site-header{min-height:54px;margin-top:7px;margin-bottom:7px;padding-block:5px}
 .app-shell{margin-top:8px}
 .main-panel{padding:12px 17px!important}
 .panel-heading h2{font-size:clamp(22px,1.55vw,26px);margin-top:5px}
 .data-provenance{margin:4px 0 7px;padding:5px 8px;font-size:8px;line-height:1.3}
 .counted-line{font-size:11px}
 .quick-facts{gap:3px;margin:10px 0 3px;padding:8px 10px;font-size:10px}
 .candidate{padding:7px 0}
 .candidate-bar{height:5px;margin-top:6px}
 .more-candidates:not([hidden]){min-height:34px;margin:4px 0 7px;padding:7px;font-size:10px}
 .vote-totals{padding:5px 0 7px;font-size:8px;line-height:1.35}
 .info-note{display:none}
 .map-panel{min-height:550px}
 .map-panel .map-stage{height:clamp(350px,calc(100vh - 485px),420px);min-height:330px}
 .explore-results{margin-top:4px;margin-bottom:4px}
 .explore-results>summary{min-height:44px;padding:6px 12px}
 .explore-results>summary>i{width:25px;height:25px}
 .live-bar{min-height:42px;padding:3px 10px;gap:8px;margin-top:4px;margin-bottom:4px}
}
.app-shell{width:min(calc(100% - 32px),1760px);margin-inline:auto}
.content-grid{width:100%;min-width:0;margin-inline:auto}
.main-panel,.map-panel,.explore-results,.explain,.live-bar{min-width:0;max-width:100%}
.map-panel .map-stage,#map{max-width:100%;min-width:0}
.panel-heading>div,.candidate,.candidate-name,.candidate-votes,.candidate-details,.map-heading>div{min-width:0}
.panel-heading h2,.panel-subtitle,.candidate-name,.candidate-votes,.data-provenance,.map-hint{overflow-wrap:anywhere}
.status-pill{flex:0 1 auto;max-width:46%;white-space:normal;text-align:center;line-height:1.2}

/* Candidate-first election view inspired by the supplied map-and-scoreboard reference. */
@media(min-width:1201px){
 .topline{display:none}
 .site-header{position:sticky!important;top:0;left:auto;transform:none;width:min(calc(100% - 40px),1760px);min-height:54px;margin:10px auto 12px;padding:6px 12px;border:1px solid #303238;border-radius:13px;background:#121315;box-shadow:none;backdrop-filter:none;z-index:40}
 .site-header .header-center{flex:0 1 auto;min-width:0;gap:10px}
 .site-header .header-right{flex:1 1 auto;min-width:0;justify-content:flex-end;gap:7px}
 .site-header .scope-tabs{flex:0 0 auto}
 .site-header .search-wrap{width:clamp(190px,18vw,280px)}
 .site-header .round-tabs{margin-left:auto}
 .hero{display:none}
 .app-shell{width:min(calc(100% - 40px),1760px);max-width:1760px;margin:0 auto;padding:0}
 .results-layout{grid-template-columns:minmax(0,1fr) 58px;gap:12px}
 .results-layout.rightbar-collapsed{grid-template-columns:minmax(0,1fr) 58px}
 .results-layout:not(.rightbar-collapsed){grid-template-columns:minmax(0,1fr) 320px}
 .content-grid{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:12px;align-items:start;padding:0!important}
 .main-panel{width:100%!important;margin:0!important;padding:20px 24px!important;border:1px solid #303238;border-radius:16px;background:linear-gradient(115deg,#151619,#101113 60%,#141518);}
 .panel-heading{display:flex;align-items:center;justify-content:space-between;gap:20px}
 .panel-heading h2{font-size:clamp(22px,1.8vw,29px);margin:4px 0}
 .panel-subtitle{font-size:12px}
 .status-pill{max-width:none;flex:0 0 auto}
 .data-provenance{margin:5px 0 8px;padding:0;border:0;background:transparent;font-size:10px}
 #result-data{display:flex;flex-direction:column}
 #result-data[hidden]{display:none}
 #candidates{order:1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:10px 0 0}
 #candidates .candidate{grid-template-columns:clamp(62px,5vw,82px) minmax(0,1fr);min-height:126px;align-items:center;gap:16px;padding:15px 18px;border:1px solid color-mix(in srgb,var(--candidate-color) 34%,#34363b);border-left:4px solid var(--candidate-color);border-radius:14px;background:color-mix(in srgb,var(--candidate-color) 7%,#151619);transition:border-color .2s ease,background-color .2s ease,transform .2s ease}
 #candidates .candidate:hover{transform:translateY(-2px);background:color-mix(in srgb,var(--candidate-color) 11%,#151619)}
 #candidates .candidate-portrait{width:clamp(62px,5vw,82px);height:clamp(62px,5vw,82px);border-radius:50%}
 #candidates .candidate-name{font-size:clamp(14px,1.08vw,18px);line-height:1.25}
 #candidates .candidate-name small{display:block;margin-top:4px;font-size:12px}
 #candidates .candidate-head{align-items:center;gap:12px}
 #candidates .candidate-percent{font-size:clamp(28px,2.6vw,42px);line-height:1;font-variant-numeric:tabular-nums}
 #candidates .candidate-votes{margin-top:7px;font-size:13px;line-height:1.3;gap:5px}
 #candidates .candidate-bar{height:7px;margin-top:12px;border-radius:10px}
 #candidates .candidate-bar span{transition:width .75s cubic-bezier(.2,.75,.25,1)}
 .vote-race{order:2;display:grid;gap:7px;margin:12px 1px 3px}
 .vote-race[hidden]{display:none}
 .vote-race-caption{display:flex;align-items:center;justify-content:space-between;gap:10px;color:#9da4b1;font-size:10px}
 .vote-race-caption strong{color:#e7e9ed;font-size:10px;font-weight:700}
 .vote-race-track{position:relative;display:flex;height:9px;overflow:visible;border-radius:10px;background:#27292d}
 .vote-race-segment,.vote-race-others{height:100%;transition:width .75s cubic-bezier(.2,.75,.25,1)}
 .vote-race-segment:first-child{border-radius:10px 0 0 10px}
 .vote-race-others{border-radius:0 10px 10px 0;background:#33353a}
 .vote-race-marker{position:absolute;top:-4px;bottom:-4px;left:50%;width:2px;border-radius:2px;background:#f4f3ee;box-shadow:0 0 0 2px #101113}
 .counted-line{order:3;margin-top:10px;font-size:11px}
 .progress-track{order:4;height:7px}
 .quick-facts{order:5;margin:9px 0 4px;padding:9px 12px;font-size:11px}
 #more-candidates{order:6}
 .vote-totals{order:7}
 .timeline{order:8}
 .runoff-card{display:grid;grid-template-columns:minmax(220px,.55fr) minmax(0,1fr);align-items:center;column-gap:24px;margin:10px 0 0;padding:16px 18px;border:1px solid #303238;border-radius:14px;background:#101113}
 .runoff-top{grid-column:1;grid-row:1;padding:0;border:0;font-size:12px}
 .runoff-card h3{grid-column:1;grid-row:2;margin:7px 0;font:700 clamp(22px,2vw,30px)/1.12 Manrope, sans-serif;letter-spacing:-.045em}
 .runoff-pair{grid-column:2;grid-row:1 / span 3;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
 .runoff-person{grid-template-columns:64px minmax(0,1fr);justify-items:stretch;gap:12px;min-height:112px;padding:13px;border:1px solid color-mix(in srgb,var(--candidate-color) 42%,#30333a);border-radius:13px;background:color-mix(in srgb,var(--candidate-color) 8%,#14161a);text-align:left}
 .runoff-portrait{width:64px;height:64px;border-radius:50%}
 .runoff-person-details{width:auto;justify-items:stretch;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"name percent" "party votes";align-items:center;gap:4px 8px;text-align:left}
 .runoff-person-details strong{grid-area:name;max-width:none;font-size:14px;line-height:1.2}
 .runoff-person-details small{grid-area:party;font-size:11px}
 .runoff-person-details b{grid-area:percent;font-size:clamp(24px,2vw,34px);line-height:1;font-variant-numeric:tabular-nums}
 .runoff-person-details span{grid-area:votes;font-size:10px;text-align:right}
 .runoff-split{grid-column:2;grid-row:4;position:relative;height:8px;margin:4px 0 10px;background:#292a2d}
 .runoff-midpoint{top:-4px;bottom:-4px;width:2px;border-radius:2px;background:#f4f3ee;box-shadow:0 0 0 2px #101113}
 .runoff-facts,.runoff-all-link,.runoff-source-details{grid-column:1;grid-row:auto}
 .runoff-facts{padding:8px 0;border:0;font-size:11px}
 .runoff-all-link{margin-top:3px;font-size:11px}
 .runoff-source-details{margin-top:8px;padding-top:8px}
 .map-panel{min-height:540px}
 .map-panel .map-stage{height:clamp(360px,calc(100vh - 520px),520px);min-height:320px}
}
@media(min-width:1201px) and (prefers-reduced-motion:reduce){
 #candidates .candidate-bar span,.vote-race-segment,.vote-race-others{transition:none!important}
}
.live-bar{width:min(calc(100% - 36px),1724px);margin-inline:auto}
.explore-results{width:min(calc(100% - 36px),1724px);margin-inline:auto}
.explain{width:100%;max-width:1760px;margin-inline:auto;padding-inline:clamp(16px,4vw,56px)}
footer{width:100%;max-width:1760px;margin-inline:auto;padding-inline:clamp(16px,4vw,56px)}
@media(max-width:1000px){
 .site-header{width:calc(100% - 20px)}
 .app-shell{width:calc(100% - 20px)}
 .live-bar,.explore-results{width:calc(100% - 20px)}
}
@media(max-width:740px){
 .site-header{width:calc(100% - 16px);padding-inline:8px}
 .app-shell{width:calc(100% - 16px)}
 .content-grid{padding-inline:8px!important}
 .main-panel{padding-inline:14px!important}
 .map-panel{padding-inline:11px!important}
 .live-bar,.explore-results{width:calc(100% - 16px)}
 .panel-heading{align-items:flex-start}
 .status-pill{max-width:42%;font-size:9px;padding:6px 7px}
 .candidate-votes{flex-wrap:wrap;gap:4px 8px}
 .map-hint{left:50%;width:calc(100% - 32px);max-width:calc(100% - 32px);white-space:normal;text-align:center;transform:translateX(-50%)}
 .explain-grid{grid-template-columns:minmax(0,1fr)}
}

@media(min-width:1001px){.explore-grid>#territory-table{grid-column:1/-1;min-width:0}}

/* Right-side data drawer: keep the scoreboard and map as the primary canvas. */
.results-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;align-items:start;width:100%;min-width:0}
.rightbar{width:100%;min-width:0;max-width:100%;margin:0;border:1px solid #30343b;border-radius:15px;background:#111112;color:#f4f4f4;overflow:hidden}
.rightbar>summary{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:58px;padding:12px 15px;cursor:pointer;list-style:none}
.rightbar>summary::-webkit-details-marker{display:none}
.rightbar>summary>span{display:grid;gap:4px;min-width:0}
.rightbar>summary strong{font-size:13px;line-height:1.25}
.rightbar>summary small{color:#9a9a9e;font-size:10px;line-height:1.35}
.rightbar>summary>i{display:grid;place-items:center;width:28px;height:28px;flex:none;border:1px solid #37373a;border-radius:50%;font-style:normal;color:#d8d8dc}
.rightbar[open]>summary>i{transform:rotate(180deg)}
.rightbar .explore-actions{display:flex;flex-wrap:wrap;gap:7px;padding:0 12px 12px}
.rightbar .explore-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;padding:0 10px 10px}
.rightbar .side-panel{display:flex;flex-direction:column;gap:10px;min-width:0;max-height:none;overflow:visible;padding:0;border:0;background:transparent}
.rightbar .side-panel>*{min-width:0}
.rightbar .territory-table{margin:0}
.rightbar .explore-history{margin:0 10px 10px;padding:12px;border:1px solid #30343b;border-radius:12px}
@media(min-width:1001px){
 .results-layout{grid-template-columns:minmax(0,1fr) minmax(280px,330px);gap:12px}
 .content-grid{grid-template-columns:minmax(300px,.78fr) minmax(0,1.55fr)!important}
 .map-panel{min-height:550px}
 .map-panel .map-stage{height:clamp(350px,calc(100vh - 485px),420px);min-height:330px}
 .rightbar{max-height:calc(100vh - 150px);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#45454a transparent}
 .rightbar .side-panel{display:flex}
 .rightbar .explore-grid{padding:0 10px 10px}
 .app-shell>.live-bar{margin-top:8px}
}
@media(min-width:741px) and (max-width:1000px){
 .results-layout{grid-template-columns:minmax(0,1fr)}
 .rightbar{width:100%}
 .rightbar .side-panel{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
}
@media(max-width:740px){
 .results-layout{display:flex;flex-direction:column;gap:10px}
 .rightbar{width:100%;border-radius:13px}
 .rightbar>summary{min-height:54px;padding:10px 12px}
 .rightbar .explore-actions{padding:0 10px 10px}
 .rightbar .explore-grid{padding:0 8px 8px}
 .rightbar .side-panel{display:flex;max-height:none;overflow:visible}
}

/* Compact right rail tuned for the 1600x900 desktop canvas. */
@media(min-width:1001px){
 .results-layout{grid-template-columns:minmax(0,1fr) 270px;gap:10px}
 .content-grid{grid-template-columns:minmax(290px,.72fr) minmax(0,1.55fr)!important;gap:10px}
 .map-panel{min-height:500px;padding:14px!important}
 .map-panel .map-stage{height:clamp(300px,calc(100vh - 555px),385px);min-height:300px}
 .rightbar{max-height:min(660px,calc(100vh - 190px));border-radius:13px}
 .rightbar>summary{min-height:45px;padding:8px 10px}
 .rightbar>summary strong{font-size:12px}
 .rightbar>summary small{font-size:9px}
 .rightbar>summary>i{width:23px;height:23px}
 .rightbar .explore-actions{gap:5px;padding:0 8px 8px}
 .rightbar .explore-actions button{min-height:29px;padding:6px 8px;font-size:9px}
 .rightbar .explore-grid{gap:7px;padding:0 7px 7px}
 .rightbar .side-panel{gap:7px}
 .rightbar .participation-card,.rightbar .updates-card,.rightbar .regional-card{padding:10px;border-radius:12px;box-shadow:none}
 .rightbar .participation-card h3,.rightbar .updates-card h3,.rightbar .regional-heading h3{margin-bottom:7px;font-size:11px}
 .rightbar .regional-row{padding:7px 0;gap:5px}
 .rightbar .regional-row-heading strong{font-size:10px}
 .rightbar .regional-row-heading b{font-size:11px}
 .rightbar .regional-row-detail{gap:6px}
 .rightbar .regional-avatar{width:25px;height:25px}
 .rightbar .regional-row-detail>span:not(.regional-avatar){font-size:9px}
 .rightbar .regional-row-detail small,.rightbar .regional-counted{font-size:8px}
 .rightbar .regional-progress{height:4px}
 .rightbar .participation-card>div>div{padding:6px 0;font-size:10px}
 .rightbar .territory-table{max-height:220px;overflow:auto}
 .rightbar .explore-history{margin:0 7px 7px;padding:9px}
}

/* Tall icon rail that expands into the data drawer on desktop. */
@media(min-width:1001px){
 .results-layout{grid-template-columns:minmax(0,1fr) 270px;transition:grid-template-columns .22s ease}
 .results-layout.rightbar-collapsed{grid-template-columns:minmax(0,1fr) 58px}
 .rightbar{height:min(660px,calc(100vh - 190px));max-height:min(660px,calc(100vh - 190px));transition:width .22s ease}
 .rightbar>summary{min-height:45px;gap:6px}
 .rightbar-title{flex:1;min-width:0}
 .rightbar-title strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
 .rightbar-title small{display:none}
 .rightbar-icons{display:flex;align-items:center;gap:2px;flex:none}
 .rightbar-icons i{display:grid;place-items:center;width:19px;height:22px;color:#aeb8cc;font-size:13px;font-style:normal}
 .rightbar-toggle{display:grid;place-items:center;width:22px;height:22px;flex:none;border:1px solid #37373b;border-radius:50%;color:#e5e7eb;font-size:18px;font-style:normal;line-height:1;transition:transform .2s ease}
 .rightbar[open]>.rightbar-summary .rightbar-toggle{transform:rotate(0deg)}
 .rightbar:not([open]){height:min(660px,calc(100vh - 190px));min-height:420px;overflow:hidden}
 .rightbar:not([open])>summary{height:100%;max-height:660px;min-height:420px;padding:12px 8px;flex-direction:column;justify-content:flex-start;gap:18px}
 .rightbar:not([open]) .rightbar-title{flex:0 0 auto;writing-mode:vertical-rl;transform:rotate(180deg);text-align:left}
 .rightbar:not([open]) .rightbar-title strong{overflow:visible;font-size:11px;letter-spacing:.01em}
 .rightbar:not([open]) .rightbar-icons{flex-direction:column;gap:10px}
 .rightbar:not([open]) .rightbar-icons i{width:30px;height:30px;border:1px solid #30333b;border-radius:9px;background:#17191d;font-size:16px}
 .rightbar:not([open]) .rightbar-toggle{margin-top:auto;transform:rotate(180deg);width:30px;height:30px}
}
@media(max-width:1000px){
 .rightbar-icons{display:none}
 .rightbar-toggle{transform:rotate(0deg)}
 .rightbar[open] .rightbar-toggle{transform:rotate(-90deg)}
}

/* Cleaner hierarchy for the left result panel on desktop. */
@media(min-width:1001px){
 .content-grid{grid-template-columns:minmax(330px,.76fr) minmax(0,1.55fr)!important}
 .main-panel{padding:16px 17px!important;border:1px solid #2a2d34!important;border-radius:15px;background:linear-gradient(165deg,#121419,#0f1013)!important;box-shadow:0 12px 30px #0002}
 .panel-heading{align-items:flex-start;gap:10px}
 .panel-heading>div{display:grid;align-content:start;gap:5px}
 .breadcrumb{display:flex;align-items:center;min-height:22px}
 .breadcrumb button{padding:3px 8px;border:1px solid #243b3d;border-radius:20px;background:#142022;color:#8bd2c6;font-size:10px}
 .panel-heading h2{max-width:250px;margin:3px 0 0;font-size:clamp(21px,1.42vw,24px);line-height:1.12;letter-spacing:-.045em}
 .panel-subtitle{margin:2px 0 0;color:#a9b0bc;font-size:10px;line-height:1.45}
 .status-pill{flex:0 0 auto;width:max-content;max-width:116px;min-height:25px;padding:5px 8px;border:1px solid #36383d;border-radius:999px;background:#1a1c20;color:#e8e8ea;font-size:9px;line-height:1.2;text-wrap:balance}
 .data-provenance{margin:10px 0 12px;padding:8px 10px;border:1px solid #292e39;border-left:3px solid #5d7cff;border-radius:9px;background:#14171e;color:#bbc4d3;font-size:9px;line-height:1.45}
 .governor-overview{gap:10px;padding:0 0 2px}
 .governor-overview-head{align-items:baseline;padding-top:10px;border-top:1px solid #292d34}
 .governor-overview-head h2{font-size:16px;letter-spacing:-.025em}
 .governor-source,.governor-contests-heading small{font-size:9px;line-height:1.4}
 .governor-stats{gap:7px}
 .governor-stats>div{min-height:72px;align-content:start;gap:5px;padding:10px 9px;border-color:#2d3038;border-radius:10px;background:#15171c}
 .governor-stats strong{font-size:20px;line-height:1;font-variant-numeric:tabular-nums}
 .governor-stats span{font-size:9px;line-height:1.3;color:#a9afba}
 .governor-contests-heading{display:grid;justify-content:stretch;align-items:start;gap:4px;padding-top:10px}
 .governor-contests-heading h3{font-size:11px}
 .governor-empty{padding:10px 11px;border:1px solid #2a2d34;border-radius:9px;background:#14161a;color:#b8bec9;font-size:9px;line-height:1.5}
 .info-note{display:flex;align-items:flex-start;gap:8px;margin-top:10px;padding:10px 0 0;border-top:1px solid #292d34;color:#aeb6c5}
 .info-note .note-icon{display:grid;place-items:center;flex:0 0 20px;width:20px;height:20px;border:1px solid #3c4e83;border-radius:50%;color:#9eb3ff;font-size:11px}
 .info-note p{margin:1px 0 0;font-size:9px;line-height:1.5}
 .info-note p strong{color:#e7eaf2}
}

/* Expanded data drawer: dedicate the extra width to readable content. */
@media(min-width:1001px){
 .results-layout{grid-template-columns:minmax(0,1fr) 350px}
 .rightbar{width:350px;max-width:350px}
 .rightbar[open]{overflow-y:auto}
 .rightbar[open]>summary{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"title toggle";align-items:center;min-height:62px;padding:11px 13px}
 .rightbar[open]>summary>.rightbar-title{grid-area:title}
 .rightbar[open] .rightbar-title strong{font-size:14px;white-space:normal}
 .rightbar[open] .rightbar-title small{display:block;margin-top:2px;font-size:10px}
 .rightbar[open] .rightbar-icons{display:none}
 .rightbar[open] .rightbar-toggle{grid-area:toggle;transform:none;width:30px;height:30px;font-size:19px}
 .rightbar .explore-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) 38px;gap:7px;padding:0 11px 11px}
 .rightbar .explore-actions button{width:100%;min-width:0;min-height:34px;justify-content:center;white-space:normal;line-height:1.2}
 .rightbar .explore-actions #map-export{width:38px;min-height:34px;padding:5px;justify-self:center}
 .rightbar .explore-grid{padding:0 10px 10px}
 .rightbar .updates-source-meta{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:8px 12px}
 .rightbar .updates-source-meta>div>span{font-size:9px}
 .rightbar .updates-source-meta strong,.rightbar .updates-source-meta a{font-size:10px;line-height:1.35}
 .rightbar .official-update{grid-template-columns:48px 10px minmax(0,1fr);gap:9px;padding:11px 0}
 .rightbar:not([open]){width:100%;max-width:100%}
}

/* Result-first hierarchy: candidate comparison, map, then optional tools. */
@media(min-width:1001px){
 .hero{padding:12px 18px 10px;align-items:center}
 .hero h1{font-size:clamp(23px,2.1vw,32px);margin:5px 0}
 .hero .eyebrow{font-size:9px}
 .hero-date{min-width:135px;padding-left:18px}
 .hero-date strong{font-size:29px;margin:2px 0}
 .hero-date strong span{font-size:17px}
 .hero-date>span,.hero-date small{font-size:8px}
 .results-layout{grid-template-columns:minmax(0,1fr) 320px}
 .results-layout.rightbar-collapsed{grid-template-columns:minmax(0,1fr) 58px}
 .rightbar{width:320px;max-width:320px}
 .content-grid{grid-template-columns:minmax(370px,.88fr) minmax(0,1.5fr)!important;gap:14px}
 .main-panel{padding:20px 22px!important}
 .panel-heading{display:grid;grid-template-columns:minmax(0,1fr);gap:10px}
 .panel-heading h2{max-width:none;font-size:24px}
 .panel-subtitle{font-size:12px}
 .status-pill{width:max-content;max-width:none;min-height:28px;padding:7px 11px;font-size:11px}
 .status-pill:not(.live){border-color:#665432;background:#292418;color:#f2d48b}
 .status-pill:not(.live) span{background:#e7bf55}
 .data-provenance{font-size:10px}
 .candidates{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:15px}
 .candidate{grid-template-columns:44px minmax(0,1fr);align-items:center;gap:9px;padding:12px 10px;border:1px solid #30333a;border-left:3px solid var(--candidate-color);border-radius:12px;background:#15171b}
 .candidate-portrait{width:44px;height:44px;border-radius:50%}
 .candidate-details{min-width:0}
 .candidate-name{font-size:11px;line-height:1.25}
 .candidate-name small{font-size:9px}
 .candidate-percent{font-size:clamp(19px,1.5vw,25px)}
 .candidate-votes{font-size:9px;gap:3px}
 .candidate-bar{height:5px;margin-top:7px}
 #candidates:not(.expanded) .candidate:nth-child(n+3){display:none}
 .runoff-card{margin-top:8px;padding:0;border:0;background:transparent}
 .runoff-card h3{margin:10px 0 15px;font:700 clamp(23px,1.9vw,30px)/1.12 Georgia,serif;letter-spacing:-.04em}
 .runoff-top{padding-bottom:10px;border-bottom:1px solid #292d34;color:#aeb5c2;font-size:11px}
 .runoff-pair{gap:12px}
 .runoff-person{grid-template-columns:minmax(0,1fr);justify-items:center;gap:8px;min-height:132px;padding:12px 9px;border:1px solid color-mix(in srgb,var(--candidate-color) 38%,#30333a);border-radius:14px;background:color-mix(in srgb,var(--candidate-color) 9%,#14161a);text-align:center}
 .runoff-portrait{width:66px;height:66px;border-radius:14px}
 .runoff-person-details{gap:4px}
 .runoff-person-details{width:100%;justify-items:center}
 .runoff-card .runoff-person-details>strong{max-width:100%;overflow:visible!important;text-overflow:clip!important;white-space:normal!important;overflow-wrap:break-word;font-size:12px;line-height:1.2}
 .runoff-person-details small{font-size:11px}
 .runoff-person-details b{font-size:29px}
 .runoff-person-details span{font-size:10px}
 .runoff-split{height:8px;margin:17px 0}
 .runoff-facts{padding:10px 0;border-top:1px solid #292d34;border-bottom:0;font-size:11px}
 .runoff-all-link{margin-top:8px;font-size:11px}
 .runoff-source-details{margin-top:12px;border-top:1px solid #292d34;padding-top:10px}
 .runoff-source-details summary{color:#b8c6ff;font-size:10px;font-weight:700;cursor:pointer}
 .runoff-source{margin-top:7px;font-size:10px}
 .runoff-source a{margin-left:4px}
 .explore-actions{display:grid;gap:8px}
 .explore-actions-primary,.explore-actions-secondary{display:flex;align-items:center;gap:7px;min-width:0}
 .explore-actions-primary{padding-bottom:8px;border-bottom:1px solid #292d34}
 .rightbar .explore-actions-primary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
 .rightbar .explore-actions-primary button{width:auto;min-width:0;min-height:34px;padding:6px 8px;border-radius:9px;font-size:10px}
 .rightbar .explore-actions-secondary{display:grid;grid-template-columns:34px repeat(2,minmax(0,1fr))}
 .rightbar .explore-actions-secondary button{width:auto;min-width:0;min-height:31px;padding:5px 7px;border-radius:9px;font-size:9px}
 .rightbar .explore-actions-secondary #map-export{width:34px;padding:4px}
 .map-panel{min-height:600px}
 .map-panel .map-stage{height:clamp(400px,calc(100vh - 390px),600px);min-height:370px}
}
@media(max-width:1000px){
 .explore-actions{display:grid;gap:8px}
 .explore-actions-primary,.explore-actions-secondary{display:flex;flex-wrap:wrap;gap:7px}
 .explore-actions-primary{padding-bottom:8px;border-bottom:1px solid #292d34}
 .runoff-source-details{margin-top:12px;padding-top:10px;border-top:1px solid #292d34}
 .runoff-source-details summary{color:#b8c6ff;font-size:10px;font-weight:700;cursor:pointer}
}

/* Final desktop overrides: a wide candidate scoreboard sits above the map. */
@media(min-width:1001px){
 .topline{display:none}
 .site-header{position:sticky!important;top:0;left:auto;transform:none;width:min(calc(100% - 40px),1760px);min-height:54px;margin:10px auto 12px;padding:6px 12px;border:1px solid #303238;border-radius:13px;background:#121315;box-shadow:none;backdrop-filter:none;z-index:40}
 .site-header .header-center{flex:0 1 auto;min-width:0;gap:10px}
 .site-header .header-right{flex:1 1 auto;min-width:0;justify-content:flex-end;gap:7px}
 .site-header .scope-tabs{flex:0 0 auto}
 .site-header .search-wrap{width:clamp(190px,18vw,280px)}
 .site-header .round-tabs{margin-left:auto}
 .hero{display:none}
 .app-shell{width:min(calc(100% - 40px),1760px);max-width:1760px;margin:0 auto;padding:0}
 .results-layout{grid-template-columns:minmax(0,1fr) 58px;gap:12px}
 .results-layout.rightbar-collapsed{grid-template-columns:minmax(0,1fr) 58px}
 .results-layout:not(.rightbar-collapsed){grid-template-columns:minmax(0,1fr) 320px}
 .content-grid{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:12px;align-items:start;padding:0!important}
 .main-panel{width:100%!important;margin:0!important;padding:15px 20px!important;border:1px solid #303238;border-radius:16px;background:linear-gradient(115deg,#151619,#101113 60%,#141518)}
 .panel-heading{display:flex;align-items:center;justify-content:space-between;gap:20px}
 .panel-heading h2{font-size:clamp(22px,1.8vw,29px);margin:4px 0}
 .panel-subtitle{font-size:12px}
 .status-pill{max-width:none;flex:0 0 auto}
 .data-provenance{margin:5px 0 8px;padding:0;border:0;background:transparent;font-size:10px}
 #result-data{display:flex;flex-direction:column}
 #result-data[hidden]{display:none}
 #candidates{order:1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:10px 0 0}
 #candidates .candidate{grid-template-columns:clamp(62px,5vw,82px) minmax(0,1fr);min-height:106px;align-items:center;gap:16px;padding:12px 16px;border:1px solid color-mix(in srgb,var(--candidate-color) 34%,#34363b);border-left:4px solid var(--candidate-color);border-radius:14px;background:color-mix(in srgb,var(--candidate-color) 7%,#151619);transition:border-color .2s ease,background-color .2s ease,transform .2s ease}
 #candidates .candidate:hover{transform:translateY(-2px);background:color-mix(in srgb,var(--candidate-color) 11%,#151619)}
 #candidates .candidate-portrait{width:clamp(62px,5vw,82px);height:clamp(62px,5vw,82px);border-radius:50%}
 #candidates .candidate-name{font-size:clamp(14px,1.08vw,18px);line-height:1.25}
 #candidates .candidate-name small{display:block;margin-top:4px;font-size:12px}
 #candidates .candidate-head{align-items:center;gap:12px}
 #candidates .candidate-percent{font-size:clamp(28px,2.6vw,42px);line-height:1;font-variant-numeric:tabular-nums}
 #candidates .candidate-votes{margin-top:7px;font-size:13px;line-height:1.3;gap:5px}
 #candidates .candidate-bar{height:7px;margin-top:12px}
 #candidates .candidate-bar span{transition:width .75s cubic-bezier(.2,.75,.25,1)}
 .vote-race{order:2;display:grid;gap:7px;margin:12px 1px 3px}
 .vote-race[hidden]{display:none}
 .vote-race-caption{display:flex;align-items:center;justify-content:space-between;gap:10px;color:#9da4b1;font-size:10px}
 .vote-race-caption strong{color:#e7e9ed;font-size:10px;font-weight:700}
 .vote-race-track{position:relative;display:flex;height:9px;overflow:visible;border-radius:10px;background:#27292d}
 .vote-race-segment,.vote-race-others{height:100%;transition:width .75s cubic-bezier(.2,.75,.25,1)}
 .vote-race-segment:first-child{border-radius:10px 0 0 10px}
 .vote-race-others{border-radius:0 10px 10px 0;background:#33353a}
 .vote-race-marker{position:absolute;top:-4px;bottom:-4px;left:50%;width:2px;border-radius:2px;background:#f4f3ee;box-shadow:0 0 0 2px #101113}
 .counted-line{order:3;margin-top:10px;font-size:11px}
 .progress-track{order:4;height:7px}
 .quick-facts{order:5;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:5px 14px;margin:7px 0 3px;padding:7px 10px;font-size:10px}
 .info-note{display:none}
 #download-result-card{order:2;align-self:flex-start;width:auto;min-height:32px;margin:3px 0;padding:6px 12px}
 #more-candidates{order:6}.vote-totals{order:7}.timeline{order:8}
 .runoff-card{display:grid;grid-template-columns:minmax(250px,.55fr) minmax(0,1fr);align-items:center;column-gap:24px;margin:10px 0 0;padding:18px 20px;border:1px solid #303238;border-radius:14px;background:#101113}
 .runoff-top{grid-column:1;grid-row:1;padding:0;border:0;font-size:12px}
 .runoff-card h3{grid-column:1;grid-row:2;margin:7px 0;font:700 clamp(22px,2vw,30px)/1.12 Manrope,sans-serif;letter-spacing:-.045em}
 .runoff-pair{grid-column:2;grid-row:1/span 3;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
 .runoff-person{grid-template-columns:64px minmax(0,1fr);justify-items:stretch;gap:12px;min-height:112px;padding:13px;border:1px solid color-mix(in srgb,var(--candidate-color) 42%,#30333a);border-radius:13px;background:color-mix(in srgb,var(--candidate-color) 8%,#14161a);text-align:left}
 .runoff-portrait{width:64px;height:64px;border-radius:50%}
 .runoff-person-details{width:auto;justify-items:stretch;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"name percent" "party votes";align-items:center;gap:4px 8px;text-align:left}
 .runoff-person-details strong{grid-area:name;max-width:none;font-size:14px;line-height:1.2}
 .runoff-person-details small{grid-area:party;font-size:11px}
 .runoff-person-details b{grid-area:percent;font-size:clamp(24px,2vw,34px);line-height:1;font-variant-numeric:tabular-nums}
 .runoff-person-details span{grid-area:votes;font-size:10px;text-align:right}
 .runoff-split{grid-column:2;grid-row:4;position:relative;height:8px;margin:12px 0 10px;background:#292a2d}
 .runoff-split::before{content:"50%";position:absolute;left:50%;top:-17px;transform:translateX(-50%);color:#d0d2d7;font-size:9px;font-weight:700}
 .runoff-midpoint{top:-4px;bottom:-4px;width:2px;border-radius:2px;background:#f4f3ee;box-shadow:0 0 0 2px #101113}
 .runoff-facts{grid-column:1;grid-row:3;padding:8px 0;border:0;font-size:11px}
 .runoff-all-link{grid-column:1;grid-row:4;margin-top:3px;font-size:11px}
 .runoff-source-details{grid-column:1;grid-row:5;margin-top:8px;padding-top:8px}
 .map-panel{min-height:540px}
 .map-panel .map-stage{height:clamp(320px,calc(100vh - 600px),480px);min-height:300px}
}
@media(prefers-reduced-motion:reduce){#candidates .candidate-bar span,.vote-race-segment,.vote-race-others{transition:none!important}}

/* Runoff: remove the enclosing frame and give each candidate exactly half. */
#runoff-preview.runoff-card{border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;padding:12px 0!important}
#runoff-preview .runoff-top{border:0!important;padding:0!important;margin-bottom:4px}
#runoff-preview .runoff-card h3,#runoff-preview h3{margin:6px 0 12px}
#runoff-preview .runoff-pair{position:relative;display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:0!important;width:100%;align-items:stretch}
#runoff-preview .runoff-person{box-sizing:border-box;min-width:0;min-height:118px;margin:0 4px;padding:12px 8px!important;border:0!important;border-radius:12px!important;background:color-mix(in srgb,var(--candidate-color) 9%,#121315)!important;text-align:center!important;justify-items:center!important;grid-template-columns:minmax(0,1fr)!important;gap:7px!important}
#runoff-preview .runoff-person-details{box-sizing:border-box;width:100%!important;min-width:0;justify-items:center!important;text-align:center!important;grid-template-columns:minmax(0,1fr)!important;grid-template-areas:none!important;gap:3px!important}
#runoff-preview .runoff-person-details strong{grid-area:auto;max-width:100%;font-size:clamp(11px,2.8vw,14px);line-height:1.2;overflow-wrap:anywhere}
#runoff-preview .runoff-person-details small{grid-area:auto;font-size:10px}
#runoff-preview .runoff-person-details b{grid-area:auto;margin:2px 0 0;font-size:clamp(24px,6vw,32px);line-height:1;font-variant-numeric:tabular-nums}
#runoff-preview .runoff-person-details span{grid-area:auto;font-size:10px;text-align:center}
#runoff-preview .runoff-portrait{width:52px!important;height:52px!important;border:2px solid var(--candidate-color);border-radius:50%!important}
#runoff-preview .runoff-pair::after{content:"";position:absolute;top:10px;bottom:10px;left:50%;width:1px;background:#37383d;pointer-events:none}
#runoff-preview .runoff-split{height:7px!important;margin:18px 0 15px!important;border-radius:8px;background:#292a2d!important}
#runoff-preview .runoff-split::before{content:"50%";position:absolute;left:50%;top:-17px;transform:translateX(-50%);padding:0 5px;color:#c4c7ce;font-size:9px;font-weight:700}
#runoff-preview .runoff-midpoint{top:-4px;bottom:-4px;width:2px;background:#f4f3ee;box-shadow:0 0 0 2px #101113}
#runoff-preview .runoff-facts{border:0!important;padding:3px 0 8px!important;text-align:center;font-size:11px}
#runoff-preview .runoff-all-link{display:block;width:max-content;max-width:100%;min-height:0;margin:5px auto 0!important;padding:4px 0!important;border:0!important;background:transparent!important;text-align:center;font-size:11px}
#runoff-preview .runoff-source-details{margin-top:8px!important;padding-top:7px!important;border-top:1px solid #292d34!important}
@media(max-width:740px){
 #runoff-preview.runoff-card{margin:8px 0 0!important;padding:8px 0!important}
 #runoff-preview .runoff-top{font-size:11px}
 #runoff-preview h3{margin:5px 0 9px!important;font-size:20px!important}
 #runoff-preview .runoff-person{min-height:0;padding:10px 5px!important;margin:0 3px}
 #runoff-preview .runoff-portrait{width:48px!important;height:48px!important}
 #runoff-preview .runoff-person-details strong{font-size:11px}
 #runoff-preview .runoff-person-details b{font-size:25px}
 #runoff-preview .runoff-facts{font-size:10px}
 #runoff-preview .runoff-source-details summary{font-size:10px}
}

/* Wide, balanced runoff scoreboard inspired by the supplied election reference. */
@media(min-width:1001px){
 .main-panel.runoff-mode{padding:18px 28px 16px!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important}
 .main-panel.runoff-mode .panel-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:0 0 10px;border-bottom:1px solid #292d34}
 .main-panel.runoff-mode .panel-heading h2{margin:2px 0;font-size:clamp(18px,1.5vw,24px)}
 .main-panel.runoff-mode .panel-heading .panel-subtitle{font-size:11px}
 .main-panel.runoff-mode .status-pill{max-width:240px}
 #runoff-preview.runoff-card{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto auto auto auto auto;margin:0!important;padding:12px 0 4px!important;border:0!important;background:transparent!important}
 #runoff-preview .runoff-top{display:flex;align-items:center;justify-content:space-between;grid-column:1;grid-row:1;margin:0;padding:0;border:0;color:#aeb5c2;font-size:11px}
 #runoff-preview h3{grid-column:1;grid-row:2;margin:10px 0 8px!important;text-align:center;font:700 14px/1.25 Manrope,Arial,sans-serif;letter-spacing:0;color:#d5d8de}
 #runoff-preview .runoff-pair{grid-column:1;grid-row:3;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:0!important;align-items:center}
 #runoff-preview .runoff-pair::after{display:none!important}
 #runoff-preview .runoff-person{display:grid;grid-template-columns:72px minmax(0,1fr)!important;grid-template-rows:auto;align-items:center;justify-items:stretch!important;gap:14px;min-height:120px;margin:0;padding:10px 14px!important;border:0!important;border-radius:0!important;background:transparent!important;text-align:left!important}
 #runoff-preview .runoff-person:first-child{padding-left:0!important}
 #runoff-preview .runoff-person:last-child{grid-template-columns:minmax(0,1fr) 72px!important;padding-right:0!important;text-align:right!important}
 #runoff-preview .runoff-portrait{grid-column:1;grid-row:1;width:68px!important;height:68px!important;border:2px solid var(--candidate-color);border-radius:50%!important}
 #runoff-preview .runoff-person:last-child .runoff-portrait{grid-column:2}
 #runoff-preview .runoff-person-details{display:grid;grid-template-columns:minmax(0,1fr) auto!important;grid-template-areas:"name percent" "party votes"!important;align-items:center;justify-items:stretch!important;gap:3px 12px;width:100%!important;text-align:left!important}
 #runoff-preview .runoff-person:last-child .runoff-person-details{grid-template-columns:auto minmax(0,1fr)!important;grid-template-areas:"percent name" "votes party"!important;text-align:right!important}
 #runoff-preview .runoff-person-details strong{grid-area:name;max-width:none;font-size:clamp(15px,1.35vw,20px);line-height:1.2;overflow-wrap:anywhere}
 #runoff-preview .runoff-person-details small{grid-area:party;font-size:12px;color:var(--candidate-color)}
 #runoff-preview .runoff-person-details b{grid-area:percent;margin:0;font-size:clamp(34px,3.4vw,52px);line-height:1;font-weight:800;letter-spacing:-.05em;font-variant-numeric:tabular-nums;color:var(--candidate-color)}
 #runoff-preview .runoff-person-details span{grid-area:votes;font-size:11px;line-height:1.35;text-align:inherit;color:#aeb5c2}
 #runoff-preview .runoff-split{grid-column:1;grid-row:4;height:8px!important;margin:8px 0 11px!important;border-radius:0!important;background:#292a2d!important}
 #runoff-preview .runoff-split::before{top:-16px;font-size:9px}
 #runoff-preview .runoff-midpoint{top:-4px;bottom:-4px;width:3px;background:#f4f3ee;box-shadow:0 0 0 2px #101113}
 #runoff-preview .runoff-facts{grid-column:1;grid-row:5;margin:0;padding:7px 0!important;border-top:1px solid #292d34!important;text-align:left!important;font-size:11px}
 #runoff-preview .runoff-all-link{grid-column:1;grid-row:6;justify-self:start;margin:5px 0!important;padding:3px 0!important;text-align:left;font-size:11px}
 #runoff-preview .runoff-source-details{grid-column:1;grid-row:7;margin-top:4px!important;padding-top:8px!important}
}
@media(max-width:1000px){
 .main-panel.runoff-mode{padding-bottom:14px}
}

/* Runoff overview: compact scoreboard first, full Brazil map with readable values immediately below. */
@media(min-width:1001px) and (min-height:760px){
 .main-panel.runoff-mode{padding:8px 20px 10px!important}
 .main-panel.runoff-mode .panel-heading{padding-bottom:6px;border-bottom:0}
 .main-panel.runoff-mode .panel-heading h2{font-size:20px;margin:0}
 .main-panel.runoff-mode .panel-heading .panel-subtitle{font-size:11px}
 .main-panel.runoff-mode .data-provenance{display:none}
 #runoff-preview.runoff-card{padding:2px 0 0!important}
 #runoff-preview .runoff-top{font-size:10px}
 #runoff-preview h3{margin:2px 0 3px!important;font-size:14px!important}
 #runoff-preview .runoff-person{min-height:88px;padding:5px 14px!important;gap:11px}
 #runoff-preview .runoff-portrait{width:58px!important;height:58px!important}
 #runoff-preview .runoff-person-details strong{font-size:clamp(14px,1.2vw,18px)}
 #runoff-preview .runoff-person-details b{font-size:clamp(28px,2.6vw,40px)}
 #runoff-preview .runoff-split{height:7px!important;margin:7px 0 7px!important}
 #runoff-preview .runoff-facts{padding:5px 0!important;font-size:10px}
 #runoff-preview .runoff-all-link{margin:2px 0!important;font-size:10px}
 #runoff-preview .runoff-source-details{margin-top:2px!important;padding-top:4px!important}
 #runoff-preview .runoff-source-details summary{font-size:10px}
 .map-panel{min-height:0!important;padding:12px 16px 8px!important}
 .map-panel .map-heading{align-items:center}
 .map-panel .map-heading h2{font-size:18px;margin:3px 0}
 .map-panel .map-stage{height:clamp(360px,46vh,440px)!important;min-height:340px}
 .map-panel .map-hint{font-size:10px}
 .map-state-callout{min-width:38px;height:29px;padding:3px 5px;font-size:11px}
 .map-state-callout small{display:block;color:#d5d9e4;font:700 9px/1.1 'DM Sans',sans-serif;white-space:nowrap}
}

/* Restore the familiar left results rail with the Brazil map beside it. */
@media (min-width: 1201px) {
  .content-grid {
    grid-template-columns: minmax(310px, 25%) minmax(0, 1fr) !important;
    align-items: stretch;
  }

  .main-panel,
  .main-panel.runoff-mode {
    width: auto !important;
    min-width: 0;
    min-height: min(720px, calc(100vh - 150px));
    max-height: calc(100vh - 150px);
    overflow-y: auto !important;
    padding: 18px !important;
    border: 1px solid #303238 !important;
    border-radius: 16px !important;
    background: #111214 !important;
    box-shadow: none !important;
  }

  #runoff-preview.runoff-card {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: auto auto auto auto auto auto auto;
    gap: 0;
    margin: 12px 0 0 !important;
    padding: 14px !important;
    border: 1px solid #303238 !important;
    border-radius: 13px !important;
    background: #151516 !important;
  }

  #runoff-preview .runoff-top,
  #runoff-preview h3,
  #runoff-preview .runoff-pair,
  #runoff-preview .runoff-split,
  #runoff-preview .runoff-facts,
  #runoff-preview .runoff-all-link,
  #runoff-preview .runoff-source-details {
    grid-column: 1;
  }

  #runoff-preview .runoff-top { grid-row: 1; }
  #runoff-preview h3 { grid-row: 2; text-align: left; }
  #runoff-preview .runoff-zero-note { grid-row: 3; }
  #runoff-preview .runoff-pair {
    grid-row: 4;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 4px !important;
  }

  #runoff-preview .runoff-person,
  #runoff-preview .runoff-person:last-child {
    grid-template-columns: 48px minmax(0, 1fr) !important;
    min-height: 70px;
    gap: 10px;
    padding: 7px 0 !important;
    border: 0 !important;
    border-top: 1px solid #2a2b2e !important;
    border-radius: 0 !important;
    background: transparent !important;
    text-align: left !important;
  }

  #runoff-preview .runoff-person:last-child .runoff-portrait {
    grid-column: 1;
    grid-row: 1;
  }

  #runoff-preview .runoff-portrait {
    width: 46px !important;
    height: 46px !important;
  }

  #runoff-preview .runoff-person-details,
  #runoff-preview .runoff-person:last-child .runoff-person-details {
    grid-template-columns: minmax(0, 1fr) auto !important;
    grid-template-areas: "name percent" "party votes" !important;
    justify-items: stretch !important;
    gap: 3px 6px;
    text-align: left !important;
  }

  #runoff-preview .runoff-person-details strong { font-size: 12px; }
  #runoff-preview .runoff-person-details small { font-size: 10px; }
  #runoff-preview .runoff-person-details b { font-size: 23px; }
  #runoff-preview .runoff-person-details span { font-size: 9px; text-align: right; }
  #runoff-preview .runoff-pair::after { display: none !important; }
  #runoff-preview .runoff-split { grid-row: 5; margin: 8px 0 !important; }
  #runoff-preview .runoff-facts { grid-row: 6; }
  #runoff-preview .runoff-all-link { grid-row: 7; }
  #runoff-preview .runoff-source-details { grid-row: 8; }

  .map-panel { min-width: 0; min-height: min(720px, calc(100vh - 150px)); }
  .map-panel .map-stage { height: clamp(440px, calc(100vh - 365px), 620px) !important; }

  #candidates { grid-template-columns: minmax(0, 1fr) !important; gap: 8px; }
  #candidates .candidate {
    grid-template-columns: 54px minmax(0, 1fr) !important;
    min-height: 82px;
    gap: 10px;
    padding: 9px 10px;
  }
  #candidates .candidate-portrait { width: 50px; height: 50px; }
  #candidates .candidate-name {
    min-width: 0;
    font-size: 13px;
    line-height: 1.25;
    overflow-wrap: normal;
    word-break: normal;
  }
  #candidates .candidate-name small { font-size: 10px; }
  #candidates .candidate-head { align-items: center; gap: 8px; }
  #candidates .candidate-percent { font-size: clamp(22px, 1.8vw, 29px); }
  #candidates .candidate-votes { margin-top: 4px; font-size: 10px; }
  #candidates .candidate-bar { height: 5px; margin-top: 7px; }
}

/* Keep the map explanation clear of labels at the bottom of Brazil. */
.map-stage { --map-hint-clearance: 26px; }
.map-stage > canvas#map {
  bottom: var(--map-hint-clearance) !important;
  height: calc(100% - var(--map-hint-clearance)) !important;
}
.map-stage > canvas#map-hover {
  position:absolute;
  inset:0;
  bottom:var(--map-hint-clearance);
  width:100%;
  height:calc(100% - var(--map-hint-clearance));
  min-height:100%;
  pointer-events:none;
  z-index:2;
}
.map-stage > .map-candidate-markers {
  bottom: var(--map-hint-clearance) !important;
  height: auto !important;
}
.map-stage .map-hint {
  z-index: 3;
  max-width: calc(100% - 58px);
  padding: 2px 5px;
  border-radius: 4px;
  background: #10100fee;
  line-height: 1.2;
}
.map-stage .map-zoom { bottom: calc(var(--map-hint-clearance) + 8px) !important; }
.vote-race-caption { column-gap: 14px !important; }
.vote-race-caption strong { margin-left: auto; padding-left: 10px; text-align: right; white-space: nowrap; }

/* Reference-led results layout: compact candidate matchup, map, and optional data rail. */
.header-brand{display:flex;align-items:center;flex:0 0 auto;margin-right:16px;text-decoration:none}
.header-brand img{display:block;width:126px;max-height:34px;object-fit:contain;object-position:left center}
.header-brand span{color:#f2f3f5;font:800 16px/1 Manrope,sans-serif;letter-spacing:-.055em}
.view-first-round{margin-top:12px;padding:9px 12px;border:1px solid #3b414d;border-radius:8px;background:#1b1d22;color:#eef0f5;font-size:11px;font-weight:700}
.view-first-round:hover{border-color:#667fe8;background:#202431}
.matchup-panel{width:min(calc(100% - 40px),1840px);margin:0 auto 10px;padding:12px 18px 10px;border:1px solid #2d2f35;border-radius:15px;background:#121315;color:#f3f4f7;display:grid;grid-template-columns:minmax(145px,190px) minmax(0,1fr);gap:7px 18px;align-items:center}
.matchup-panel[hidden]{display:none!important}
.matchup-context{grid-column:1/-1;display:flex;align-items:baseline;justify-content:space-between;gap:12px;min-width:0}
.matchup-context strong{font-size:13px;line-height:1.2}
.matchup-context span{color:#a8acb6;font-size:10px;text-align:right}
.matchup-candidates{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(16px,4vw,64px);align-items:center}
.matchup-person{display:grid;grid-template-columns:52px minmax(0,1fr) auto;grid-template-areas:"photo info percent";align-items:center;gap:10px;min-width:0}
.matchup-person-b{direction:rtl}.matchup-person-b>*{direction:ltr}
.matchup-photo{grid-area:photo;display:grid;place-items:center;width:50px;height:50px;overflow:hidden;border:2px solid var(--candidate-color,#67738b);border-radius:50%;background:#202126;color:#f4f4f5;font-size:13px;font-weight:800}
.matchup-photo img{width:100%;height:100%;object-fit:cover}
.matchup-person-info{grid-area:info;display:grid;gap:2px;min-width:0}
.matchup-person-info strong{overflow:hidden;color:#f4f4f5;font-size:clamp(13px,1vw,17px);line-height:1.2;text-overflow:ellipsis;white-space:nowrap}
.matchup-person-info small,.matchup-person-info>span{overflow:hidden;color:#a9aeba;font-size:10px;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}
.matchup-person-info small{color:var(--candidate-color,#a9aeba)}
.matchup-percent{grid-area:percent;color:var(--candidate-color,#e6e7eb);font:800 clamp(22px,2.2vw,34px)/1 Manrope,sans-serif;letter-spacing:-.045em;font-variant-numeric:tabular-nums;white-space:nowrap}
.matchup-middle{grid-column:1/-1;display:grid;gap:5px;margin:0 2px}
.matchup-bar{display:flex;height:8px;overflow:hidden;border-radius:99px;background:#33353a}
.matchup-bar span{display:block;height:100%;transition:width .7s cubic-bezier(.2,.75,.25,1)}
.matchup-bar span:first-child{border-radius:99px 0 0 99px}.matchup-bar span:nth-child(2){margin-left:2px;border-radius:0 99px 99px 0}
.matchup-center-meta{display:flex;justify-content:space-between;gap:12px;color:#9ca1ad;font-size:9px;line-height:1.3}
.matchup-center-meta span:last-child{text-align:right}
.main-panel.runoff-mode #runoff-preview{display:none!important}
.matchup-panel[hidden]{visibility:hidden}
@media(min-width:1201px){
  .topline{display:none}
  #painel{width:100%;max-width:none}
  .hero{display:none!important}
  .site-header{width:min(calc(100% - 40px),1840px);min-height:58px;margin:8px auto 10px;padding:6px 14px;gap:14px}
  .site-header .scope-tabs button{padding:7px 9px;font-size:10px}
  .site-header .search-wrap{width:clamp(155px,14vw,220px)}
  .site-header .header-right{gap:6px}
  .site-header .compare-open{padding:7px 9px;font-size:10px}
  .site-header .header-utility,.site-header .share-button{padding-inline:8px;font-size:10px}
  .site-header .source-indicator{font-size:9px;white-space:nowrap}
  .site-header .header-center{flex:1 1 auto;min-width:0}
  .site-header .header-right{flex:0 0 auto}
  .app-shell{width:min(calc(100% - 40px),1840px);max-width:none;margin:0 auto}
  .matchup-panel{min-height:126px}
  .results-layout{grid-template-columns:minmax(0,1fr) 330px!important;gap:12px;align-items:stretch}
  .results-layout.rightbar-collapsed{grid-template-columns:minmax(0,1fr) 58px!important}
  .results-layout:not(.rightbar-collapsed){grid-template-columns:minmax(0,1fr) 330px!important}
  .content-grid{grid-template-columns:minmax(300px,28%) minmax(0,1fr)!important;gap:12px;align-items:stretch}
  .main-panel,.main-panel.runoff-mode{height:min(650px,calc(100vh - 275px));min-height:520px;max-height:calc(100vh - 275px);overflow:auto;padding:16px!important;scrollbar-width:thin;scrollbar-color:#45454a transparent}
  .main-panel .panel-heading{gap:12px;padding-bottom:10px}
  .main-panel .panel-heading{position:relative;display:block!important}
  .main-panel .panel-heading>div{display:block;width:100%;min-width:0}
  .main-panel .panel-heading .status-pill{position:absolute;top:0;right:0;max-width:46%;z-index:1}
  .main-panel .panel-heading h2{display:block;width:100%;max-width:100%;margin:9px 0 4px!important;overflow-wrap:normal;word-break:normal}
  .main-panel .panel-heading h2{font-size:clamp(18px,1.45vw,23px);line-height:1.15}
  .main-panel .panel-subtitle{font-size:11px;line-height:1.35}
  .main-panel .data-provenance{font-size:9px;line-height:1.4}
  .main-panel .counted-line{margin:10px 0 6px;font-size:10px}
  #candidates[data-headline="true"] .candidate:nth-child(-n+2){display:none}
  #candidates{margin-top:10px}
  #candidates .candidate{grid-template-columns:52px minmax(0,1fr);gap:10px;padding:9px 0}
  #candidates .candidate-portrait{width:48px;height:48px}
  #candidates .candidate-name{font-size:13px;line-height:1.25;overflow-wrap:normal;word-break:normal}
  #candidates .candidate-percent{font-size:clamp(22px,1.6vw,28px)}
  #candidates .candidate-votes{flex-wrap:wrap;justify-content:flex-start;gap:4px;font-size:10px;line-height:1.35}
  #candidates .candidate-bar{height:5px;margin-top:7px}
  .map-panel{height:min(650px,calc(100vh - 275px));min-height:520px;padding:16px!important;overflow:hidden}
  .map-panel .map-heading h2{font-size:18px;margin-top:4px}
  .map-panel .map-stage{height:clamp(360px,calc(100vh - 485px),490px)!important;min-height:350px}
  .map-panel .map-mode,.map-panel .macro-regions{margin-top:8px}
  .map-panel .macro-regions button{min-height:27px;padding:4px 9px;font-size:10px}
  .rightbar{height:min(650px,calc(100vh - 275px));max-height:calc(100vh - 275px);border-radius:15px}
  .rightbar>summary{min-height:48px;padding:9px 12px}
  .rightbar>summary strong{font-size:13px}
  .rightbar[open] .rightbar-icons{display:none}
  .rightbar[open] .rightbar-title small{display:block}
  .rightbar .side-panel{gap:9px}
  .rightbar .updates-card,.rightbar .regional-card,.rightbar .participation-card{padding:12px;border-radius:13px}
  .rightbar .updates-card h3,.rightbar .regional-heading h3,.rightbar .participation-card h3{font-size:12px}
  .rightbar .regional-row{padding:7px 0}
  .rightbar .regional-row-heading strong{font-size:11px}
  .rightbar .regional-row-heading b{font-size:12px}
  .rightbar .regional-row-detail>span:not(.regional-avatar){font-size:9px}
  .rightbar .territory-table{max-height:190px;overflow:auto}
  .rightbar .explore-actions{padding-inline:10px}
  .rightbar .explore-grid{padding:0 10px 10px}
  .app-shell>.live-bar{margin-top:8px}
}
@media(min-width:741px) and (max-width:1200px){
  .topline{display:none}
  .hero{display:none!important}
  .header-brand{display:none}
  .matchup-panel{width:calc(100% - 24px);margin:8px auto}
  .results-layout{grid-template-columns:minmax(0,1fr)!important}
  .content-grid{grid-template-columns:minmax(280px,.75fr) minmax(0,1.25fr)!important}
  .rightbar{height:auto;max-height:440px}
}
@media(max-width:740px){
  #painel{display:flex;flex-direction:column}
  #painel>.app-shell{order:1}
  #painel>.matchup-panel{order:2}
  #painel>.hero{order:3}
  .hero{display:none!important}
  .header-brand{display:none}
  .matchup-panel{width:calc(100% - 16px);margin:7px auto;padding:10px;border-radius:12px;grid-template-columns:minmax(0,1fr);gap:7px}
  .matchup-context{grid-column:1;align-items:center}
  .matchup-context strong{font-size:12px}
  .matchup-context span{font-size:9px}
  .matchup-candidates{grid-column:1;gap:12px}
  .matchup-person,.matchup-person-b{direction:ltr;grid-template-columns:38px minmax(0,1fr);grid-template-areas:"photo info" "photo percent";gap:3px 7px;align-content:center}
  .matchup-person-b{justify-self:end}
  .matchup-photo{width:36px;height:36px;font-size:10px}
  .matchup-person-info{gap:1px}
  .matchup-person-info strong{font-size:10px;white-space:normal;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
  .matchup-person-info small{font-size:8px}
  .matchup-person-info>span{font-size:8px}
  .matchup-percent{font-size:21px}
  .matchup-middle{gap:4px}
  .matchup-bar{height:6px}
  .matchup-center-meta{font-size:8px;gap:6px}
  .site-header{margin-top:5px!important;margin-bottom:6px!important}
  .content-grid{display:flex!important;flex-direction:column;gap:9px!important}
  .content-grid>.map-panel{order:0!important;min-height:0!important}
  .content-grid>.main-panel{order:1!important}
  .results-layout{gap:8px!important}
  .map-panel .map-stage{height:clamp(330px,62vh,520px)!important;min-height:310px}
  .rightbar{order:3}
  #candidates[data-headline="true"] .candidate:nth-child(-n+2){display:none}
}
@media(prefers-reduced-motion:reduce){.matchup-bar span{transition:none}}

/* Desktop responsivo: o painel ocupa a janela sem limitar o zoom a 1600 x 900. */
@media(min-width:1201px){
  html,body{min-height:100%;overflow-x:hidden!important;overflow-y:auto!important}
  html{display:block;width:100%;height:auto}
  body{position:relative;width:100%;height:auto;max-width:none;max-height:none;display:block;padding:6px 0 0}
  .site-header{width:calc(100% - 40px);max-width:none;height:52px;min-height:52px;margin:0 auto;padding:5px 12px}
  #painel{position:relative;inset:auto;display:grid;grid-template-rows:max-content minmax(0,1fr);width:100%;height:calc(100dvh - 58px);min-height:620px;max-width:none;margin:0 auto!important;overflow:visible}
  .matchup-panel{width:calc(100% - 40px);min-height:112px;margin:4px auto 8px;padding:9px 16px 8px;gap:5px 14px}
  .matchup-photo{width:44px;height:44px}
  .matchup-person{grid-template-columns:46px minmax(0,1fr) auto;gap:8px}
  .matchup-candidates{gap:clamp(16px,3vw,48px)}
  .matchup-percent{font-size:clamp(22px,2vw,31px)}
  .app-shell{display:grid;grid-template-rows:minmax(0,1fr) auto;width:calc(100% - 40px);height:100%;min-height:0;margin:0 auto!important;overflow:hidden;border:0;border-radius:0;background:transparent;box-shadow:none}
  .results-layout{height:100%;min-height:0;grid-template-columns:minmax(0,1fr) 320px!important;grid-template-rows:minmax(0,1fr);gap:10px;align-items:stretch}
  .results-layout.rightbar-collapsed{grid-template-columns:minmax(0,1fr) 50px!important}
  .results-layout:not(.rightbar-collapsed){grid-template-columns:minmax(0,1fr) 320px!important}
  .content-grid{height:100%;min-height:0;grid-template-columns:minmax(280px,27%) minmax(0,1fr)!important;grid-template-rows:minmax(0,1fr);gap:10px;align-items:stretch}
  .main-panel,.main-panel.runoff-mode{width:auto!important;height:100%;min-height:0;max-height:none;overflow:auto;padding:13px!important;border-radius:14px}
  .main-panel .panel-heading{padding-bottom:6px}
  .main-panel .panel-heading h2{font-size:clamp(17px,1.3vw,21px);margin:7px 0 3px!important}
  .main-panel .data-provenance{margin:5px 0;font-size:8px;line-height:1.3}
  .main-panel .counted-line{margin:7px 0 5px;font-size:9px}
  .main-panel .quick-facts{gap:4px;padding:8px 9px}
  #candidates{margin-top:6px;gap:4px}
  #candidates .candidate{min-height:64px;padding:6px 7px;gap:7px}
  #candidates .candidate-portrait{width:40px;height:40px}
  #candidates .candidate-name{font-size:11px;line-height:1.2}
  #candidates .candidate-percent{font-size:21px}
  #candidates .candidate-votes{font-size:9px;line-height:1.2}
  #candidates .candidate-bar{height:4px;margin-top:4px}
  .main-panel .info-note{margin-top:7px;padding-top:7px}
  .main-panel .vote-totals{padding:7px 0 8px;font-size:9px;line-height:1.45}
  .map-panel{display:flex;flex-direction:column;height:100%;min-height:0;padding:13px!important;overflow:hidden}
  .map-panel .map-heading{flex:0 0 auto}
  .map-panel .map-heading h2{font-size:17px}
  .map-panel .map-mode,.map-panel .map-metric,.map-panel .macro-regions{flex:0 0 auto;margin-top:6px}
  .map-panel .macro-regions button{min-height:24px;padding:3px 8px;font-size:9px}
  .map-panel .map-stage{flex:1 1 0;height:auto!important;min-height:0!important;max-height:none;margin-top:5px}
  .map-panel .map-text{flex:0 0 auto}
  .rightbar{height:100%;min-height:0;max-height:none;overflow:auto;border-radius:14px}
  .rightbar:not([open])>summary{min-height:0;height:100%;max-height:none}
  .rightbar[open]>summary{min-height:42px;padding:7px 10px}
  .rightbar .explore-actions{gap:5px;padding-bottom:7px}
  .rightbar .explore-actions-primary button,.rightbar .explore-actions-secondary button{min-height:28px;padding:4px 6px;font-size:9px}
  .rightbar .explore-actions{display:grid;grid-template-columns:minmax(0,1fr);align-content:start}
  .rightbar .explore-actions-primary,.rightbar .explore-actions-secondary{width:100%;min-width:0}
  .rightbar .explore-actions button{min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .rightbar .side-panel{gap:6px}
  .rightbar .updates-card,.rightbar .regional-card,.rightbar .participation-card{padding:9px;border-radius:10px}
  .rightbar .official-update{padding:7px 0}
  .rightbar .regional-row{padding:5px 0}
  .app-shell>.live-bar{min-height:40px;height:40px;margin-top:5px;padding:5px 12px;gap:10px}
  .app-shell>.live-bar .live-election{min-width:0}
  footer{display:none!important}
}

/* Each desktop sidebar owns one vertical scroll area. Nested scrolling trapped
   the wheel above the cards, while the fixed 1600 x 900 canvas hid the rest. */
@media (min-width:1201px){
  #painel>.matchup-panel{grid-row:1}
  #painel>.app-shell{grid-row:2;min-height:0;max-height:100%}
  .main-panel,.main-panel.runoff-mode,.rightbar[open]{overflow-x:hidden!important;overflow-y:scroll!important;overscroll-behavior-y:contain;scrollbar-width:auto;scrollbar-color:#61646f #171719}
  .rightbar[open] .side-panel{height:auto;min-height:0;max-height:none;overflow:visible!important;overscroll-behavior:auto}
  .main-panel::-webkit-scrollbar,.rightbar[open]::-webkit-scrollbar{width:11px}
  .main-panel::-webkit-scrollbar-thumb,.rightbar[open]::-webkit-scrollbar-thumb{background:#61646f;border:3px solid #171719;border-radius:10px}
  .main-panel::-webkit-scrollbar-track,.rightbar[open]::-webkit-scrollbar-track{background:#171719}
}
#runoff-preview[hidden]{display:none!important}

/* The election clock card was removed; the result and map use its space. */
@media (min-width:1201px){.app-shell{grid-template-rows:minmax(0,1fr)}}
@media (max-width:740px){body{padding-bottom:0}}

/* A candidate owns each edge of the vote track; unassigned votes stay centered. */
.matchup-bar,.vote-race-track{position:relative;display:block;background:#33353a}
.matchup-bar span,.vote-race-segment{position:absolute;top:0;height:100%;margin:0!important}
.matchup-bar span:first-child,.vote-race-segment-1{left:0;border-radius:99px 0 0 99px}
.matchup-bar span:nth-child(2),.vote-race-segment-2{right:0;border-radius:0 99px 99px 0}
.vote-race-others{display:none}
.matchup-bar{overflow:visible}
.matchup-bar::after{content:"";position:absolute;z-index:2;top:-4px;bottom:-4px;left:50%;width:2px;border-radius:2px;background:#f4f3ee;box-shadow:0 0 0 2px #101113;transform:translateX(-50%)}
.matchup-person-b{direction:ltr;grid-template-columns:auto minmax(0,1fr) 46px;grid-template-areas:"percent info photo"}
.matchup-person-b .matchup-person-info{text-align:right;justify-self:end}
.matchup-person-b .matchup-percent{justify-self:start}
.matchup-person-reveal .matchup-percent,.matchup-person-reveal .matchup-person-info>span{animation:matchup-number-in .55s ease-out both}
#map.map-reveal{animation:map-reveal .55s ease-out both}
@keyframes matchup-number-in{from{opacity:.2;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
@keyframes map-reveal{from{opacity:.25;filter:saturate(.65)}to{opacity:1;filter:saturate(1)}}
.map-loading{position:absolute;inset:0;z-index:3;display:grid;place-content:center;justify-items:center;gap:12px;background:#0e0f12a8;color:#d8dbe3;backdrop-filter:blur(2px);font-size:13px;pointer-events:none}
.map-loading[hidden]{display:none}
.map-loading span{width:28px;height:28px;border:3px solid #ffffff25;border-top-color:#8da0ff;border-radius:50%;animation:map-loading-spin .75s linear infinite}
@keyframes map-loading-spin{to{transform:rotate(360deg)}}
.map-panel.is-changing,.main-panel.is-changing{animation:scope-view-enter .18s ease-out both}
@keyframes scope-view-enter{from{opacity:.68;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:740px){.matchup-person-b{grid-template-columns:minmax(0,1fr) 38px;grid-template-areas:"info photo" "percent photo"}.matchup-person-b .matchup-percent{justify-self:end}}
@media(prefers-reduced-motion:reduce){.matchup-person-reveal .matchup-percent,.matchup-person-reveal .matchup-person-info>span,#map.map-reveal,.map-loading span,.map-panel.is-changing,.main-panel.is-changing{animation:none!important}}

/* Preserve the compact matchup header and make the next two candidates visible. */
#breadcrumb:has(>button[data-uf="br"]:only-child){display:none!important}
.main-panel .panel-heading>.status-pill{display:none!important}
#candidates:not(.expanded) .candidate:nth-child(n+3){display:none!important}
#candidates[data-headline="true"] .candidate:nth-child(-n+2){display:grid!important}
#more-candidates:not([hidden]){display:block;width:100%;margin:8px 0 12px;padding:10px 12px;border:1px solid #353943;border-radius:9px;background:#1b1e25;color:#e9edf4;font-size:12px;font-weight:700;cursor:pointer}
#more-candidates:not([hidden]):hover{border-color:#536fd4;background:#202533}
.candidate[data-rank] .candidate-name small{color:#a8b3c7}
.map-panel .map-stage{flex:1 1 0;min-height:0}
@media(min-width:1400px) and (min-height:760px){.map-panel .map-stage{height:clamp(390px,52vh,480px)!important;min-height:370px}}

/* Mobile portrait: protect the score/map hierarchy and make map gestures usable. */
@media(max-width:740px){
  html,body{min-width:320px;width:100%;overflow-x:hidden}
  body{padding:env(safe-area-inset-top) 0 calc(82px + env(safe-area-inset-bottom));}
  .site-header{position:sticky;top:env(safe-area-inset-top);z-index:20;width:calc(100% - 12px);margin:5px auto 7px;padding:7px;border-radius:14px;gap:6px;background:#151517f5;backdrop-filter:blur(14px)}
  .site-header .header-center{gap:5px}
  .header-center .scope-tabs{gap:2px}
  .header-center .scope-tabs button{min-height:36px;padding:8px 10px;font-size:11px}
  .header-center .search-wrap input{min-height:40px;font-size:14px}
  .site-header .header-right{gap:7px;scroll-snap-type:x proximity}
  .round-tabs button,.site-header .compare-open,.header-utility,.share-button,.site-header .icon-button{min-height:40px}
  .site-header .header-right>*{scroll-snap-align:start}
  .matchup-panel{width:calc(100% - 12px);margin:0 auto 8px;padding:11px;border-radius:14px;gap:9px}
  .matchup-context strong{font-size:13px}
  .matchup-context span{font-size:10px}
  .matchup-candidates{gap:6px}
  .matchup-person,.matchup-person-b{min-width:0;justify-self:stretch;grid-template-columns:40px minmax(0,1fr);gap:3px 8px}
  .matchup-person-b{grid-template-columns:minmax(0,1fr) 40px;grid-template-areas:"info photo" "percent photo"}
  .matchup-photo{width:38px;height:38px}
  .matchup-person-info strong{font-size:11px;line-height:1.25}
  .matchup-person-info small,.matchup-person-info>span{font-size:9px}
  .matchup-percent{font-size:clamp(20px,6vw,26px);line-height:1}
  .matchup-middle{grid-column:1;gap:5px}
  .matchup-bar{height:8px}
  .matchup-center-meta{font-size:9px;line-height:1.3}
  .content-grid{gap:8px;padding:0 6px 8px}
  .map-panel{padding:13px 10px 10px;border-radius:14px}
  .map-heading{display:grid;grid-template-columns:minmax(0,1fr);align-items:start;gap:3px}
  .map-heading h2{font-size:17px;line-height:1.2}
  .map-heading .map-legend{display:flex;width:100%;max-width:100%;justify-content:flex-start;gap:9px;overflow-x:auto;scrollbar-width:none;text-align:left;white-space:nowrap;padding:2px 0 3px;font-size:10px}
  .map-heading .map-legend::-webkit-scrollbar{display:none}
  .map-mode,.map-metric{margin-top:7px}
  .map-mode button,.map-metric button,.macro-regions button{min-height:40px;padding:8px 12px;font-size:11px}
  .map-panel .map-stage{flex:0 0 auto;height:clamp(320px,48svh,460px)!important;min-height:300px!important;max-height:none;margin-top:6px;touch-action:pan-y;overscroll-behavior:contain}
  .map-stage canvas#map{touch-action:pan-y;user-select:none;-webkit-user-select:none}
  .map-zoom{left:8px;bottom:40px}
  .map-zoom button{width:42px;height:42px;font-size:18px}
  .map-hint{left:58px;right:8px;bottom:8px;font-size:9px;line-height:1.3}
  .main-panel{padding:16px 13px;border-radius:14px}
  .panel-heading h2{font-size:20px}
  .panel-subtitle{font-size:12px}
  .counted-line,.quick-facts,.vote-totals{font-size:11px}
  .candidate{min-height:58px;padding:11px 0}
  .candidate-name{font-size:13px}
  .candidate-percent{font-size:22px}
  .candidate-votes{font-size:10px}
  .rightbar{width:100%;max-width:100%;border-radius:14px}
  .rightbar>summary{min-height:54px}
  .rightbar[open] .side-panel{display:flex;flex-direction:column;gap:9px}
  .participation-card,.regional-card,.updates-card,.source-card,.local-card{padding:14px}
  .live-bar{bottom:calc(5px + env(safe-area-inset-bottom));width:calc(100vw - 12px);min-height:44px;padding:6px 8px}
}
@media(max-width:390px){
  .header-center .scope-tabs button{padding-inline:8px;font-size:10px}
  .site-header .header-right{gap:5px}
  .matchup-panel{padding:9px}
  .matchup-candidates{gap:3px}
  .matchup-person,.matchup-person-b{grid-template-columns:35px minmax(0,1fr)}
  .matchup-person-b{grid-template-columns:minmax(0,1fr) 35px}
  .matchup-photo{width:34px;height:34px}
  .matchup-person-info strong{font-size:10px}
  .map-panel .map-stage{height:44svh!important;min-height:285px!important}
}
@media(prefers-reduced-motion:reduce){.site-header,.matchup-panel,.map-panel,.main-panel{scroll-behavior:auto;transition:none!important}}
.official-outcome{display:inline-flex;align-items:center;justify-self:start;width:max-content;max-width:100%;min-height:18px;margin-top:2px;padding:2px 7px;border:1px solid currentColor;border-radius:4px;font-size:9px;font-weight:800;line-height:1.2;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap}
.official-outcome::before{content:'✓';margin-right:5px;font-size:10px}
.matchup-person-info>.official-outcome-elected,.candidate-details>.official-outcome-elected{min-height:22px;padding:4px 8px;border:0;border-radius:3px;background:#236b45;color:#fff;font-size:11px;font-weight:800;line-height:1.2;letter-spacing:0;text-transform:none;text-overflow:clip;white-space:nowrap}
.matchup-person.is-officially-elected{padding:2px 8px;border:1px solid #80b997;border-radius:4px;background:#fff;box-shadow:none}
.matchup-person.is-officially-elected .matchup-person-info strong{color:#1b2420}
.matchup-person.is-officially-elected .matchup-person-info small{color:color-mix(in srgb,var(--candidate-color) 65%,#17221c)}
.matchup-person.is-officially-elected .matchup-person-info>span:not(.official-outcome){color:#46524a}
.matchup-person.is-officially-elected .matchup-percent{color:color-mix(in srgb,var(--candidate-color) 76%,#17221c)}
#candidates .candidate.is-officially-elected{padding-inline:9px;border:1px solid #80b997;background:#fff}
#candidates .candidate.is-officially-elected .candidate-name{color:#1b2420}
#candidates .candidate.is-officially-elected .candidate-name small,#candidates .candidate.is-officially-elected .candidate-votes{color:#46524a}
#candidates .candidate.is-officially-elected .candidate-percent{color:color-mix(in srgb,var(--candidate-color) 76%,#17221c)!important}
#candidates .candidate.is-officially-elected .candidate-bar{background:#e7ece8}
.official-outcome-runoff{color:#a9baff;background:#a9baff13;border-color:#a9baff55}
.official-outcome-runoff::before{content:'→'}
.matchup-person-b .official-outcome{justify-self:end}
.candidate-details>.official-outcome{margin-top:6px}
@keyframes official-outcome-appear{0%{opacity:0;transform:translateY(6px)}100%{opacity:1;transform:translateY(0)}}
.official-outcome-arriving{animation:official-outcome-appear .48s cubic-bezier(.2,.8,.2,1) both}
.matchup-person-reveal .matchup-person-info>.official-outcome-arriving{animation:official-outcome-appear .48s cubic-bezier(.2,.8,.2,1) both}
@media(prefers-reduced-motion:reduce){.official-outcome-arriving,.matchup-person-reveal .matchup-person-info>.official-outcome-arriving{animation:none}}
@media(max-width:420px){.matchup-person-info>.official-outcome-elected{padding:3px 5px;font-size:9px}}
.state-summary{margin:0 0 16px;padding:0 0 12px;border-bottom:1px solid #363a3f;color:#eef0f2}
.main-panel>#result-data+.state-summary{margin-top:16px;padding-top:16px;border-top:1px solid #363a3f}
.state-summary[hidden]{display:none!important}
.state-summary-header{display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:10px;padding-bottom:13px;border-bottom:1px solid #34383d}
.state-summary-uf{position:relative;display:grid;place-items:center;width:38px;height:38px;overflow:hidden;border:1px solid #73828a;border-radius:50%;background:#23333a;color:#f3f6f4;font-size:12px;font-weight:800;letter-spacing:.04em}
.state-summary-uf img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover}
.state-summary-uf.has-flag{font-size:0}
.state-summary-header h3{margin:0;font-size:19px;line-height:1.1;letter-spacing:-.03em}
.state-summary-header p{margin:3px 0 0;color:#a5adb3;font-size:10px}
.state-summary-controls{display:flex;gap:2px}
.state-summary-controls button{width:25px;height:28px;border:0;border-radius:5px;background:transparent;color:#d9dedf;font-size:18px;line-height:1}
.state-summary-controls button:hover,.state-summary-controls button:focus-visible{background:#292f33}
.state-summary-section{padding:13px 0;border-bottom:1px solid #30343a}
.state-summary-section:last-child{border-bottom:0}
.state-summary-section-heading{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:9px}
.state-summary-section-heading h4{margin:0;color:#f0f1f2;font-size:12px;font-weight:800}
.state-summary-section-heading small{color:#9ea6ad;font-size:10px;white-space:nowrap}
.state-summary-candidate{display:grid;grid-template-columns:32px minmax(0,1fr) auto;align-items:center;gap:9px;min-height:39px;margin:5px 0}
.state-summary-portrait{display:grid;place-items:center;width:31px;height:31px;overflow:hidden;border:2px solid var(--summary-color);border-radius:50%;background:#30343a;color:#fff;font-size:11px;font-weight:800}
.state-summary-portrait img{width:100%;height:100%;object-fit:cover}
.state-summary-identity{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 6px;min-width:0}
.state-summary-identity strong{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;line-height:1.2}
.state-summary-identity small{color:#aab1bb;font-size:10px}
.state-summary-identity em{font-size:9px;font-style:normal;font-weight:800;color:#9fe6bd}
.state-summary-identity em.runoff{color:#acbaff}
.state-summary-score{color:var(--summary-color);font-size:13px;font-weight:800;font-variant-numeric:tabular-nums;white-space:nowrap}
.state-summary-source,.state-summary-message{margin:8px 0 0;color:#9ea6ad;font-size:10px;line-height:1.35}

/* Consistent controls and readable mobile results. */
.map-retry{position:absolute;z-index:5;left:50%;top:50%;transform:translate(-50%,-50%);padding:12px 18px;border:1px solid #7184df;border-radius:10px;background:#252f50;color:#fff;font-weight:700}
.map-retry[hidden]{display:none}
button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid #a9b6ff;outline-offset:3px}
footer{background:#14161a;color:#b9c0ce;border-top:1px solid #30343b}
@media(max-width:740px){
 #painel>.matchup-panel{order:0}
 #painel>.app-shell{order:1}
 .site-header{position:relative;top:auto}
 .matchup-person-info strong{display:block;overflow:visible;-webkit-line-clamp:unset}
 .matchup-person-info>span{font-size:10px;white-space:normal;overflow-wrap:normal}
 .matchup-center-meta{display:flex;flex-wrap:wrap;gap:4px 10px;line-height:1.4}
 .map-stage{--map-hint-clearance:42px}
 .map-stage .map-hint{left:8px!important;right:8px!important;bottom:4px!important;width:auto!important;max-width:none!important;transform:none!important;white-space:normal;text-align:center;font-size:10px;line-height:1.35}
 .rightbar:not([open]) .rightbar-icons{display:none}
 .rightbar>summary{min-height:60px;padding:12px;grid-template-columns:minmax(0,1fr) auto}
 .vote-race-caption{display:flex;flex-wrap:wrap;gap:4px!important;font-size:11px}
 .vote-race-caption strong{padding-left:0}
 #candidates .candidate{display:grid;grid-template-columns:44px minmax(0,1fr) auto;column-gap:10px}
 #candidates .candidate-portrait{grid-column:1;grid-row:1 / 4;width:40px;height:40px}
 #candidates .candidate-name{grid-column:2;grid-row:1;font-size:12px;overflow-wrap:normal}
 #candidates .candidate-percent{grid-column:3;grid-row:1;font-size:21px}
 #candidates .candidate-votes{grid-column:2 / 4;grid-row:2;font-size:11px}
 #candidates .candidate-bar{grid-column:2 / 4;grid-row:3}
}

/* O mapa integra o painel sem moldura de card. */
.content-grid>.map-panel{padding:8px 8px 0!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important}

/* Leitura editorial compacta para os dados complementares. */
.rightbar[open]{border-color:transparent;background:transparent;box-shadow:none}
.rightbar[open] .side-panel{gap:10px}
.rightbar[open] .regional-card,.rightbar[open] .updates-card,.rightbar[open] .participation-card{padding:14px!important;border:1px solid #303033;border-radius:16px;background:#141414;box-shadow:none}
.rightbar[open] .regional-heading,.rightbar[open] .updates-card h3{margin:0 0 10px}
.rightbar[open] .regional-heading h3,.rightbar[open] .updates-card h3{font-size:13px;line-height:1.3;letter-spacing:-.02em}
.rightbar[open] .regional-heading>span{max-width:56%;overflow:hidden;color:#999;text-align:right;text-overflow:ellipsis;white-space:nowrap;font-size:9px}
.rightbar[open] .updates-live{padding:0;border:0;border-radius:0;background:none;color:#999;font-size:9px;font-weight:600;letter-spacing:0}
.rightbar[open] .regional-row{display:grid;grid-template-columns:minmax(91px,1fr) 26px 22px 52px 31px;grid-template-rows:24px 16px;align-items:center;column-gap:4px;row-gap:0;min-height:52px;padding:6px 0;border-bottom:1px solid #2c2c2e}
.rightbar[open] .regional-row:last-child{padding-bottom:3px;border-bottom:0}
.rightbar[open] .regional-row-heading,.rightbar[open] .regional-row-detail{display:contents}
.rightbar[open] .regional-row-heading strong{grid-column:1;grid-row:1;overflow:hidden;color:#eee;font-size:11px;text-overflow:ellipsis;white-space:nowrap}
.rightbar[open] .regional-row-heading b{grid-column:4;grid-row:1;color:#f1f1f1;text-align:right;font-size:12px}
.rightbar[open] .regional-avatar{grid-column:2;grid-row:1/3;width:25px;height:25px;border-width:1px}
.rightbar[open] .regional-row-detail>span:not(.regional-avatar){grid-column:3;grid-row:1;overflow:visible;color:var(--leader-color);font-size:10px;font-weight:800}
.rightbar[open] .regional-row-detail small{grid-column:5;grid-row:1;margin:0;color:#aaa;text-align:right;font-size:9px}
.rightbar[open] .regional-counted{grid-column:1;grid-row:2;color:#999;font-size:9px}
.rightbar[open] .regional-progress{grid-column:3/6;grid-row:2;height:3px;border-radius:0;background:#333}
.rightbar[open] .regional-progress i{border-radius:0}
.rightbar[open] .official-update{grid-template-columns:43px 26px minmax(0,1fr);gap:7px;padding:11px 0;border-top:1px solid #2c2c2e}
.rightbar[open] .official-update:first-child{border-top:0}
.rightbar[open] .official-update time{align-self:center;padding:0;color:#aaa;font-size:10px;font-weight:500}
.rightbar[open] .update-marker{align-self:center;width:21px;height:21px;margin:0;border:2px solid var(--update-party,#a8a8a8);background:transparent;box-shadow:none}
.rightbar[open] .update-marker.has-photo{overflow:hidden;border-width:1px;background:#242424}
.rightbar[open] .update-marker img{display:block;width:100%;height:100%;object-fit:cover}
.rightbar[open] .update-copy{gap:3px;font-size:11px}
.rightbar[open] .update-meta{color:#999;font-size:9px}
.rightbar[open] .update-result strong{color:#eee;font-size:11px;line-height:1.3}
.rightbar[open] .update-result b{font-size:11px}
.rightbar[open] .update-event{color:#aaa;font-size:9px;font-weight:600}
.updates-source-details{margin-top:10px;border-top:1px solid #2c2c2e}
.updates-source-details>summary{padding:10px 0 0;color:#aeb2b7;font-size:10px;cursor:pointer;list-style:none}
.updates-source-details>summary::before{content:'▸';display:inline-block;margin-right:6px}
.updates-source-details[open]>summary::before{content:'▾'}
.updates-source-details .updates-source-meta{margin:7px 0 0;padding:0;border:0}
@media(max-width:360px){.rightbar[open] .regional-row{grid-template-columns:minmax(80px,1fr) 24px 20px 49px 29px;column-gap:3px}}

/* Depois do confronto principal, os demais nomes formam uma lista curta. */
#result-data:has(#candidates[data-headline="true"]){display:flex;flex-direction:column}
#result-data:has(#candidates[data-headline="true"]) .vote-race{display:none!important}
#result-data:has(#candidates[data-headline="true"]) .quick-facts{order:1;display:grid;gap:3px;margin:4px 0 8px;padding:9px 0;border:0;border-top:1px solid #303033;border-bottom:1px solid #303033;background:transparent;color:#c2c3c5;font-size:10px;line-height:1.4}
#result-data:has(#candidates[data-headline="true"]) #lead-summary{display:none}
#result-data:has(#candidates[data-headline="true"]) #margin-summary{color:#e8e8e9;font-size:11px;font-weight:750}
#result-data:has(#candidates[data-headline="true"]) #math-summary{color:#9ea1a5;font-size:10px}
#candidates[data-headline="true"]{order:2;display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:0!important;margin:0!important}
#candidates[data-headline="true"]:not(.expanded) .candidate:nth-child(3){display:grid!important}
#candidates[data-headline="true"]:not(.expanded) .candidate:nth-child(n+4){display:none!important}
#candidates[data-headline="true"] .candidate:not(.is-officially-elected){grid-template-columns:34px minmax(0,1fr)!important;gap:8px;min-height:53px;padding:6px 0!important;border:0;border-bottom:1px solid #282a2d;border-radius:0;background:transparent;box-shadow:none;transform:none}
#candidates[data-headline="true"] .candidate:not(.is-officially-elected):hover{background:transparent;transform:none}
#candidates[data-headline="true"] .candidate:not(.is-officially-elected) .candidate-portrait{width:32px;height:32px}
#candidates[data-headline="true"] .candidate:not(.is-officially-elected) .candidate-name{font-size:11px;line-height:1.2}
#candidates[data-headline="true"] .candidate:not(.is-officially-elected) .candidate-name small{margin-top:2px;font-size:9px;color:var(--candidate-color)}
#candidates[data-headline="true"] .candidate:not(.is-officially-elected) .candidate-percent{font-size:14px;white-space:nowrap}
#candidates[data-headline="true"] .candidate:not(.is-officially-elected) .candidate-votes{margin-top:2px;font-size:9px;color:#a9aaad}
#candidates[data-headline="true"] .candidate:not(.is-officially-elected) .candidate-bar{display:none}
#result-data:has(#candidates[data-headline="true"]) #more-candidates{order:3;width:max-content;max-width:100%;margin:8px 0 10px;padding:0 0 3px;border:0;border-bottom:1px solid #a5a8ae;border-radius:0;background:none;color:#d8d9dc;text-align:left;font-size:11px}
#result-data:has(#candidates[data-headline="true"]) .counted-line{order:4}
#result-data:has(#candidates[data-headline="true"]) .progress-track{order:5}
#result-data:has(#candidates[data-headline="true"]) .vote-totals{order:6}
#result-data .timeline{order:7;display:grid!important;grid-template-columns:minmax(0,1fr);gap:8px;margin:12px 0 2px;padding:13px;border:1px solid #303033;border-radius:14px;background:#141414}
#result-data .timeline h3{margin:0 0 4px;color:#f0f0f0;font-size:12px}
#result-data .timeline p{color:#a2a4a8;font-size:9px}
#result-data .timeline svg{width:100%;height:72px;margin:0}
.timeline-legend{display:flex;flex-wrap:wrap;gap:5px 11px;margin:6px 0}
.timeline-legend span{display:inline-flex;align-items:center;gap:5px;color:#c6c7c9;font-size:9px}
.timeline-legend span::before{content:'';display:block;width:12px;height:2px;background:var(--line-color)}
@media(max-width:740px){#result-data .timeline{display:grid!important}}
.timeline[hidden],#result-data .timeline[hidden]{display:none!important}

/* Uma leitura principal por tela; fonte e detalhamento permanecem acessíveis. */
.content-grid>.main-panel,.content-grid>.main-panel.runoff-mode{border:0!important;border-right:1px solid #292b2f!important;border-radius:0!important;background:transparent!important;box-shadow:none!important}
.main-panel .panel-heading{border-bottom:0!important;padding-bottom:2px!important}
.main-panel .panel-heading h2{letter-spacing:-.035em}
.main-panel .panel-subtitle{color:#a9adb5}
.main-panel .data-provenance{margin:7px 0 13px!important;color:#a1acae;font-size:10px!important;line-height:1.35}
.main-panel:has(#result-empty:not([hidden])) #data-provenance[data-state="waiting"]{display:none!important}
.main-panel:has(#data-provenance[data-state="final"])>.info-note{display:none!important}
.main-panel .vote-totals{display:none!important}
.map-panel .section-kicker{display:none}
.map-panel .map-heading{align-items:start}
.map-panel .map-heading h2{letter-spacing:-.035em}
.rightbar[open] .rightbar-title small{display:none}
.rightbar[open] .regional-card,.rightbar[open] .updates-card,.rightbar[open] .participation-card{border-color:#292b2e;background:#131416}

/* O placar superior já informa diferença e seções nos cargos majoritários. */
#result-data:has(#candidates[data-headline="true"]) .counted-line,
#result-data:has(#candidates[data-headline="true"]) .progress-track{display:none!important}
#result-data:has(#candidates[data-headline="true"]):has(~ .info-note) .quick-facts{border-top:0}
.main-panel:has(#data-provenance[data-state="final"]) #result-data:has(#candidates[data-headline="true"]) .quick-facts{display:none!important}
#result-data:has(#candidates[data-headline="true"]) #download-result-card{order:9;align-self:flex-start;margin-top:10px;padding:5px 0;border:0;border-bottom:1px solid #575d69;border-radius:0;background:transparent;color:#b9c7e9;font-size:10px;font-weight:700}
#result-data:has(#candidates[data-headline="true"]) #download-result-card:hover{color:#fff;border-color:#fff}

/* Candidatos e indicadores fora do confronto principal sem caixas em cascata. */
#candidates:not([data-headline="true"]) .candidate:not(.is-officially-elected){border:0;border-bottom:1px solid #2a2d31;border-radius:0;background:transparent;box-shadow:none}
.legislative-overview .governor-stats>div{border:0;border-right:1px solid #30343a;border-radius:0;background:transparent;padding:5px 8px!important}
.legislative-overview .governor-stats>div:last-child{border-right:0}
.legislative-overview .legislative-composition{border-block-color:#292d31}
.legislative-overview .legislative-candidate{border-bottom-color:#292d31}

@media(max-width:740px){
  .content-grid>.main-panel,.content-grid>.main-panel.runoff-mode{border-right:0!important;border-top:1px solid #292b2f!important;border-radius:0!important;padding-inline:4px!important}
  .map-panel .map-heading{gap:10px}
  .main-panel .data-provenance{font-size:10px!important}
  .legislative-overview .governor-stats>div{padding:5px!important}
}

/* Um único card reúne os nomes fora do confronto superior. */
.other-candidates-title{display:none}
#result-data:has(#candidates[data-headline="true"] .candidate){margin-top:14px;padding:15px 16px!important;border:1px solid #30343c;border-radius:13px;background:#16191e;box-shadow:none}
#result-data:has(#candidates[data-headline="true"] .candidate) .other-candidates-title{display:block;order:0;margin:0 0 8px;color:#f1f2f4;font-size:13px;font-weight:800;letter-spacing:-.015em}
#result-data:has(#candidates[data-headline="true"] .candidate) #more-candidates{margin-top:11px}
#result-data:has(#candidates[data-headline="true"] .candidate) #download-result-card{margin-top:3px}
@media(max-width:740px){#result-data:has(#candidates[data-headline="true"] .candidate){padding:14px!important}}

/* O resultado lateral é um card único; conteúdos longos ampliam a página. */
.content-grid>.main-panel,.content-grid>.main-panel.runoff-mode{
  border:1px solid #30343b!important;
  border-radius:15px!important;
  background:#15171b!important;
  box-shadow:none!important;
  padding:47px 16px 18px!important;
  height:auto!important;
  max-height:none!important;
  overflow:visible!important;
}
.content-grid>.leftbar-toggle{
  top:12px!important;
  left:13px!important;
  width:27px!important;
  min-width:27px!important;
  max-width:27px!important;
  height:27px!important;
  min-height:27px!important;
  padding:0!important;
  display:grid!important;
  place-items:center;
  border:1px solid #3e4550;
  border-radius:8px;
  background:#20242c;
  color:#f0f1f3;
  font-size:21px;
  font-weight:500;
  line-height:1;
  text-align:center;
}
.content-grid>.leftbar-toggle:hover{background:#303742;border-color:#677282}
.content-grid>.leftbar-toggle:focus-visible{outline:2px solid #9ab5ff;outline-offset:2px}
#result-data:has(#candidates[data-headline="true"] .candidate){
  margin-top:9px;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
}
@media(min-width:741px){
  .content-grid>.main-panel{grid-column:1;grid-row:1}
  .content-grid>.map-panel{grid-column:2;grid-row:1}
  .content-grid.leftbar-collapsed{grid-template-columns:44px minmax(0,1fr)!important;gap:10px!important}
  .content-grid.leftbar-collapsed>.main-panel{display:none!important}
  .content-grid.leftbar-collapsed>.leftbar-toggle{left:8px!important}
  .content-grid.leftbar-collapsed>.map-panel{grid-column:2!important;grid-row:1!important;min-width:0}
}
@media(min-width:1201px){
  #painel{height:auto!important;min-height:calc(100dvh - 58px)!important;grid-template-rows:max-content minmax(0,1fr)}
  #painel>.app-shell{height:auto!important;min-height:calc(100dvh - 208px)!important;max-height:none!important;overflow:visible!important}
  .results-layout,.content-grid{height:auto!important;min-height:calc(100dvh - 208px)!important;overflow:visible!important;align-items:stretch}
  .content-grid>.main-panel,.content-grid>.main-panel.runoff-mode{min-height:calc(100dvh - 208px)!important;align-self:stretch}
  .content-grid>.map-panel,.results-layout>.rightbar{height:calc(100dvh - 208px)!important;min-height:520px!important;align-self:start}
}
@media(max-width:740px){
  .content-grid>.leftbar-toggle{position:relative!important;top:auto!important;left:auto!important;right:13px!important;align-self:flex-end;order:1;margin:10px 0 -37px!important}
  .content-grid>.main-panel,.content-grid>.main-panel.runoff-mode{order:2!important;padding:48px 16px 18px!important}
  .content-grid.leftbar-collapsed>.leftbar-toggle{right:auto!important;align-self:flex-start;margin:0 0 3px!important}
}

/* Ao ampliar o navegador, a faixa intermediária volta a rolar normalmente. */
@media(min-width:741px) and (max-width:1200px){
  html,body{height:auto!important;min-height:100%;overflow-x:hidden!important;overflow-y:auto!important}
  body{display:block!important;padding-bottom:12px}
  main#painel{display:block!important;width:100%;height:auto!important;min-height:0!important;max-width:none!important;overflow:visible!important}
  #painel>.app-shell{display:block!important;width:calc(100% - 24px);height:auto!important;min-height:0!important;max-height:none!important;overflow:visible!important;margin:0 auto!important}
  .results-layout,.content-grid{height:auto!important;min-height:0!important;overflow:visible!important}
  .main-panel,.main-panel.runoff-mode,.map-panel,.rightbar{height:auto!important;max-height:none!important}
  .map-panel{min-height:500px!important;overflow:visible!important}
  .map-panel .map-stage{height:clamp(380px,50dvh,600px)!important;min-height:380px!important;flex:none!important}
}

/* Busca e resumo da UF com a mesma hierarquia concisa do placar. */
#search-results{padding:5px;max-height:min(420px,70dvh);overflow-y:auto}
#search-results .search-result{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 10px;align-items:center;padding:9px 10px;border:0;border-radius:7px;background:transparent;text-align:left}
#search-results .search-result+.search-result{border-top:1px solid #30343b;border-radius:0}
#search-results .search-result:hover,#search-results .search-result:focus-visible{background:#252a33}
#search-results .search-result-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#f0f1f3;font-size:12px;font-weight:750}
#search-results .search-result-type{padding:3px 6px;border:1px solid #3a424e;border-radius:5px;color:#cbd4e4;font-size:9px;font-weight:700;line-height:1}
#search-results .search-result small{grid-column:1/-1;margin:0;color:#a6afbc;font-size:10px}
#search-results .search-no-results{margin:0;padding:14px 10px;color:#bbc2cc;font-size:11px}
.state-summary-section-heading{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 8px;align-items:center;margin-bottom:7px}
.state-summary-section-heading h4{grid-column:1;grid-row:1;font-size:12px}
.state-summary-section-heading small{grid-column:1;grid-row:2}
.state-summary-open{grid-column:2;grid-row:1/3;align-self:center;padding:4px 0;border:0;border-bottom:1px solid #788390;border-radius:0;background:transparent;color:#cbd5e6;font-size:10px;font-weight:700;white-space:nowrap}
.state-summary-open:hover,.state-summary-open:focus-visible{border-color:#fff;color:#fff}
.state-summary-section{padding:11px 0}
.state-summary-candidate{min-height:35px;margin:3px 0}

/* Recortes locais têm conteúdo mais longo: a coluna esquerda rola sozinha. */
@media(min-width:1201px){
  .content-grid>.main-panel.local-scope,.content-grid>.main-panel.local-scope.runoff-mode{
    height:calc(100dvh - 208px)!important;
    min-height:520px!important;
    max-height:calc(100dvh - 208px)!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
    overscroll-behavior-y:contain;
    scrollbar-width:thin;
    scrollbar-color:#626a78 #15171b;
  }
  .content-grid>.main-panel.local-scope::-webkit-scrollbar{width:9px}
  .content-grid>.main-panel.local-scope::-webkit-scrollbar-thumb{border:2px solid #15171b;border-radius:8px;background:#626a78}
  .content-grid>.main-panel.local-scope::-webkit-scrollbar-track{background:#15171b}
}

/* No Brasil, antes de sair a apuração presidencial do 2º turno, o mapa ocupa
   o espaço do painel lateral repetido. O painel retorna com votos oficiais. */
.content-grid.runoff-awaiting-map-only>.main-panel,
.content-grid.runoff-awaiting-map-only>.leftbar-toggle{display:none!important}
@media(min-width:741px){
  .content-grid.runoff-awaiting-map-only{grid-template-columns:minmax(0,1fr)!important}
  .content-grid.runoff-awaiting-map-only>.map-panel{grid-column:1!important;grid-row:1!important}
}

/* Apuração e ferramentas em dois cards independentes na coluna esquerda. */
.content-grid>.explore-actions{display:grid;gap:8px;min-width:0;padding:15px 16px;border:1px solid #30343b;border-radius:15px;background:#15171b}
.content-grid>.explore-actions .left-tools-title{margin:0 0 2px;color:#f0f1f3;font-size:14px;line-height:1.3}
.content-grid>.explore-actions .explore-actions-primary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:0 0 8px}
.content-grid>.explore-actions .explore-actions-secondary{display:grid;grid-template-columns:38px repeat(2,minmax(0,1fr));gap:8px}
.content-grid>.explore-actions button{width:100%;min-width:0;min-height:36px;padding:6px 7px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px}
.content-grid>.explore-actions .explore-actions-secondary #map-export{width:38px}
@media(min-width:1201px){
  .content-grid:not(.runoff-awaiting-map-only){grid-template-rows:min-content auto!important;align-content:start!important}
  .content-grid:not(.runoff-awaiting-map-only)>.main-panel,.content-grid:not(.runoff-awaiting-map-only)>.main-panel.local-scope{grid-column:1;grid-row:1;height:auto!important;min-height:0!important;max-height:calc(100dvh - 370px)!important;align-self:start;overflow-x:hidden!important;overflow-y:auto!important;overscroll-behavior-y:contain}
  .content-grid>.explore-actions{grid-column:1;grid-row:2;align-self:start}
  .content-grid:not(.runoff-awaiting-map-only)>.map-panel{grid-column:2;grid-row:1/3}
  .content-grid.leftbar-collapsed>.explore-actions{display:none!important}
}
@media(min-width:741px) and (max-width:1200px){
  .content-grid>.explore-actions{grid-column:1;grid-row:2}
  .content-grid>.map-panel{grid-row:1/3}
  .content-grid.leftbar-collapsed>.explore-actions{display:none!important}
}
@media(max-width:740px){.content-grid>.explore-actions{order:3!important;margin-top:0}.content-grid.leftbar-collapsed>.explore-actions{display:none!important}}
@media(max-width:360px){.content-grid>.explore-actions .explore-actions-secondary{grid-template-columns:34px repeat(2,minmax(0,1fr));gap:5px}.content-grid>.explore-actions button{font-size:9px}}

/* Na visão por estados, os controles flutuam sobre a própria área do mapa. */
@media(min-width:1201px){
  .content-grid>.map-panel:has(#map-mode-states.active){position:relative;isolation:isolate;overflow:hidden}
  .content-grid>.map-panel:has(#map-mode-states.active) .map-stage{position:absolute!important;inset:0!important;z-index:1;width:100%!important;height:100%!important;min-height:0!important;max-height:none!important;margin:0!important}
  .content-grid>.map-panel:has(#map-mode-states.active) .map-heading,
  .content-grid>.map-panel:has(#map-mode-states.active) .map-mode,
  .content-grid>.map-panel:has(#map-mode-states.active) .macro-regions{position:relative;z-index:3}
  .content-grid>.map-panel:has(#map-mode-states.active) .map-heading{pointer-events:none}
  .content-grid>.map-panel:has(#map-mode-states.active) .map-mode,
  .content-grid>.map-panel:has(#map-mode-states.active) .macro-regions{width:max-content;max-width:100%}
}

/* Mobile: two compact header rows, a short map key, and readable detail cards. */
.legend-mobile{display:none}
@media(max-width:740px){
  body{padding-bottom:calc(16px + env(safe-area-inset-bottom))!important}
  .site-header{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto;
    grid-template-rows:38px 36px;
    align-items:center;
    gap:6px;
    height:auto!important;
    min-height:0!important;
    padding:7px 8px!important;
  }
  .site-header .header-center{display:contents}
  .header-center .scope-tabs{grid-column:1/-1;grid-row:1;width:100%;min-width:0;height:38px;overflow-x:auto;overflow-y:hidden;scrollbar-width:none}
  .header-center .scope-tabs::-webkit-scrollbar{display:none}
  .header-center .scope-tabs button{min-height:32px;padding:6px 10px;font-size:11px;white-space:nowrap}
  .header-center .search-wrap{grid-column:1;grid-row:2;width:100%!important;min-width:0;margin:0}
  .header-center .search-wrap input{min-height:36px!important;height:36px;padding-right:8px;font-size:12px}
  .site-header .header-right{grid-column:2;grid-row:2;width:auto;min-width:0;margin:0;gap:4px;overflow:visible}
  .site-header .round-tabs{height:36px;padding:2px}
  .site-header .round-tabs button{min-height:30px!important;padding:5px 6px!important;font-size:10px}
  .site-header #refresh,.site-header #share{display:grid;place-items:center;width:32px;min-width:32px;height:34px;min-height:34px!important;padding:0!important;font-size:17px}
  .matchup-panel{gap:6px;padding:10px!important}
  .matchup-candidates{gap:4px}
  .matchup-person-info strong{font-size:12px;line-height:1.2}
  .matchup-person-info>span:not(.official-outcome){font-size:9px}
  .matchup-middle{gap:4px}
  .map-panel .map-heading{gap:5px!important}
  .map-heading .map-legend{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:3px 7px!important;
    height:auto;
    margin-top:4px;
    overflow:visible!important;
    white-space:normal!important;
    font-size:10px;
    line-height:1.25;
  }
  .map-heading .map-legend>span{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
  .map-heading .map-legend>span:only-child{grid-column:1/-1}
  .map-heading .map-legend>span.shade-key{grid-column:1/-1;color:#aeb5bf}
  .map-heading .map-legend>span.municipal-legend-status{grid-column:1/-1;color:#8996a9}
  .map-heading .map-legend .legend-full{display:none}
  .map-heading .map-legend .legend-mobile{display:inline}
  body:not(:has(#tab-president[aria-selected="true"])) .map-heading .map-legend{
    display:flex!important;
    flex-wrap:nowrap;
    gap:10px!important;
    overflow-x:auto!important;
    white-space:nowrap!important;
    scrollbar-width:thin;
  }
  body:not(:has(#tab-president[aria-selected="true"])) .map-heading .map-legend>span{flex:0 0 auto}
  .map-mode{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));width:100%!important;margin-top:8px!important}
  .map-mode button{min-width:0;min-height:36px!important;padding:6px 5px!important}
  .map-metric{display:flex;flex-wrap:nowrap;gap:5px;margin-top:6px!important}
  .map-metric button{min-height:34px!important;padding:6px 10px!important;white-space:nowrap}
  .content-grid>.main-panel,.content-grid>.main-panel.runoff-mode{padding:19px 14px 15px!important}
  .content-grid>.main-panel .panel-heading{padding-right:30px}
  .content-grid>.leftbar-toggle{z-index:2;margin:10px 0 -37px!important}
  .content-grid>.explore-actions{padding:13px 14px;gap:7px}
  .content-grid>.explore-actions .header-utility span{display:inline}
  .content-grid>.explore-actions #fullscreen{display:block}
  .matchup-panel.matchup-awaiting .matchup-person-info>span:not(.official-outcome){display:none}
  .rightbar[open] .regional-card,.rightbar[open] .updates-card,.rightbar[open] .participation-card{padding:13px!important}
  .rightbar .regional-row-heading strong,.rightbar .updates-card h3,.rightbar .participation-card h3{font-size:12px}
  .rightbar .regional-row-detail>span:not(.regional-avatar),.rightbar .official-update,.rightbar .participation-card>div>div{font-size:11px}
  footer{padding:18px 20px 24px}
  footer p{margin:0 0 8px;font-size:10px;line-height:1.5}
}
@media(max-width:360px){
  .header-center .scope-tabs button{padding-inline:7px;font-size:10px}
  .site-header .header-right{gap:2px}
  .site-header .round-tabs button{padding-inline:4px!important}
  .site-header #refresh,.site-header #share{width:29px;min-width:29px}
  .map-metric button{padding-inline:8px!important;font-size:10px}
}

/* O mapa ocupa toda a tela disponível em qualquer cargo e camada. Títulos e
   filtros ficam sobre o mapa, sem reservar uma faixa vertical separada. */
@media(min-width:1201px){
  #painel:has(>.matchup-panel[hidden]) .content-grid>.map-panel,
  #painel:has(>.matchup-panel[hidden]) .results-layout>.rightbar{
    height:calc(100dvh - 70px)!important;
    min-height:520px!important;
  }
  #painel:has(>.matchup-panel[hidden]) .content-grid:not(.runoff-awaiting-map-only)>.main-panel,
  #painel:has(>.matchup-panel[hidden]) .content-grid:not(.runoff-awaiting-map-only)>.main-panel.local-scope{
    max-height:calc(100dvh - 230px)!important;
  }
  .content-grid>.map-panel{position:relative;isolation:isolate;overflow:hidden}
  .content-grid>.map-panel .map-stage{
    position:absolute!important;
    inset:0!important;
    z-index:1;
    width:100%!important;
    height:100%!important;
    min-height:0!important;
    max-height:none!important;
    margin:0!important;
  }
  .content-grid>.map-panel .map-heading,
  .content-grid>.map-panel .map-mode,
  .content-grid>.map-panel .map-metric,
  .content-grid>.map-panel .macro-regions,
  .content-grid>.map-panel .region-nav{position:relative;z-index:3}
  .content-grid>.map-panel .map-heading{pointer-events:none}
  .content-grid>.map-panel .map-mode,
  .content-grid>.map-panel .map-metric,
  .content-grid>.map-panel .macro-regions{width:max-content;max-width:100%}
}

/* Give the municipal map its own drawing area below its labels and filters. */
@media(min-width:1201px){
  .content-grid>.map-panel:has(#map-mode-cities.active){
    display:grid!important;
    grid-template-columns:max-content minmax(0,1fr);
    grid-template-rows:auto auto auto minmax(0,1fr);
    column-gap:12px;
    align-content:stretch;
  }
  .content-grid>.map-panel:has(#map-mode-cities.active) .map-heading{grid-column:1/-1;grid-row:1;align-items:center;gap:12px}
  .content-grid>.map-panel:has(#map-mode-cities.active) .map-heading h2{white-space:nowrap;font-size:17px}
  .content-grid>.map-panel:has(#map-mode-cities.active) .map-legend{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:3px 12px;min-width:0;font-size:10px;line-height:1.3}
  .content-grid>.map-panel:has(#map-mode-cities.active) .map-legend .municipal-legend-status{display:none}
  .content-grid>.map-panel:has(#map-mode-cities.active) .map-mode{grid-column:1;grid-row:2;margin-top:5px}
  .content-grid>.map-panel:has(#map-mode-cities.active) .map-metric{grid-column:1/-1;grid-row:3;justify-self:start;align-self:center;margin-top:4px}
  .content-grid>.map-panel:has(#map-mode-cities.active) .map-stage{
    grid-column:1/-1;
    grid-row:4;
    position:relative!important;
    inset:auto!important;
    width:100%!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    margin-top:5px!important;
  }
  .content-grid>.map-panel.national-municipal-map:has(#map-mode-cities.active) .map-stage{
    grid-column:1/-1;
    grid-row:1/-1;
    position:absolute!important;
    inset:0!important;
    height:100%!important;
    margin:0!important;
  }
}

.site-header .support-button{display:inline-flex;align-items:center;justify-content:center;flex:none;min-height:35px;padding:0 15px;border:2px solid transparent;border-radius:22px;background:linear-gradient(#f4f4f4,#f4f4f4) padding-box,linear-gradient(110deg,#4d76ee 0%,#16aa99 52%,#ef4766 100%) border-box;color:#17181b;font-size:11px;font-weight:800;line-height:1;text-decoration:none;white-space:nowrap}
.site-header .support-button:hover,.site-header .support-button:focus-visible{background:linear-gradient(#fff,#fff) padding-box,linear-gradient(110deg,#4d76ee 0%,#16aa99 52%,#ef4766 100%) border-box;box-shadow:0 0 0 3px #ffffff26}
.map-online{position:absolute;right:10px;bottom:20px;z-index:8;display:inline-flex;align-items:center;gap:7px;padding:6px 9px;border:1px solid #41454d;border-radius:20px;background:#17191dd9;color:#d6d9de;font-size:10px;font-weight:600;line-height:1.2;white-space:nowrap;pointer-events:none}
.map-online[hidden]{display:none!important}.map-online-dot{width:6px;height:6px;flex:none;border-radius:50%;background:#56c18f}
.map-stage .map-hint{right:155px!important;width:auto!important;max-width:none!important}
@media(max-width:740px){.map-online{right:8px;bottom:19px}.map-stage .map-hint{right:8px!important;bottom:49px!important}}

.map-heading.is-changing{animation:scope-view-enter .24s ease-out both}
.map-mode button,.map-metric button,.macro-regions button,.region-nav button{transition:background-color .18s ease,border-color .18s ease,color .18s ease,transform .18s ease}
@media(hover:hover) and (prefers-reduced-motion:no-preference){.map-mode button:hover,.map-metric button:hover,.macro-regions button:hover,.region-nav button:hover{transform:translateY(-1px)}}
@media(prefers-reduced-motion:reduce){.map-heading.is-changing,.map-mode button,.map-metric button,.macro-regions button,.region-nav button{animation:none!important;transition:none!important}}
.map-state-callout.map-state-callout-flat{display:flex;align-items:center;justify-content:space-between;gap:4px;min-width:34px;width:84px;height:20px;padding:2px 6px;border:0;border-radius:4px;background:var(--callout-color,#30364c);color:#fff;font:800 10px/1 Manrope,Arial,sans-serif;text-shadow:0 1px 2px #0008;white-space:nowrap}
.map-state-callout-flat small{color:#eef1fa;font:700 9px/1 Manrope,Arial,sans-serif}
#map.map-camera-preview{animation:none!important;transform-origin:center center;will-change:transform}
.map-candidate-markers:has(.map-state-callout-flat) .map-candidate-connectors line{stroke:#a2a4aa;stroke-width:1.2;opacity:.9}
.zone-panel{display:block;margin-top:15px;padding:15px 0 0;border-top:1px solid #353942}
.zone-panel[hidden]{display:none!important}
.zone-heading{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:8px}
.zone-heading h3{margin:0;color:#f4f5f7;font-size:14px;line-height:1.3}
.zone-heading #zone-note{font-size:10px;color:#aeb5bf;text-align:right}
.zone-panel .zone-empty{margin:10px 0;color:#aeb5bf;font-size:11px;line-height:1.4}
.zone-panel .zone-item{margin:0;padding:0;border-top:1px solid #31343b}
.zone-panel .zone-item summary{display:flex;align-items:center;gap:9px;min-height:54px;padding:8px 0;list-style:none;cursor:pointer}
.zone-panel .zone-item summary::-webkit-details-marker{display:none}
.zone-panel .zone-item summary:hover .zone-summary-copy strong{color:#fff}
.zone-number{display:grid;place-items:center;flex:none;min-width:38px;height:28px;padding:0 6px;border-radius:5px;background:#365cc5;color:#fff;font-size:11px;font-weight:800;font-variant-numeric:tabular-nums}
.zone-summary-copy{display:grid;gap:3px;min-width:0;flex:1}
.zone-summary-copy strong{overflow:hidden;color:#e8eaed;font-size:11px;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}
.zone-summary-copy small{color:#aeb5bf;font-size:9px;line-height:1.2}
.zone-leader-percent{flex:none;font-size:13px;font-variant-numeric:tabular-nums}
.zone-candidates{display:grid;gap:0;padding:2px 0 8px 47px}
.zone-candidate{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 8px;padding:5px 0;border-top:1px solid #2b2e34;font-size:10px}
.zone-candidate span{overflow:hidden;color:#e7e9eb;text-overflow:ellipsis;white-space:nowrap}
.zone-candidate b{text-align:right;font-variant-numeric:tabular-nums}
.zone-candidate small{grid-column:1/-1;color:#aeb5bf;font-size:9px}
@media(max-width:740px){
  .site-header .support-button{height:34px;min-height:34px;padding:0 10px;font-size:10px}
  .site-header #refresh{display:none!important}
}
@media(max-width:360px){
  .site-header #share{display:none!important}
  .site-header .support-button{padding:0 8px}
}
