/* Same projected geographic shapes and raised-map treatment as the presidential studio. */
html:has([data-c3d-app]),body:has([data-c3d-app]){overflow-x:clip}
.gtw-map-stage,#c3d-map-stage{--map-tilt:24deg;--map-turn:0deg;perspective:1100px;background:radial-gradient(ellipse at 45% 35%,#255779,#0d263d 80%);border-radius:16px;overflow:hidden;padding:12px;min-width:0}
.gtw-map-stage svg,#c3d-map-svg{display:block;width:100%;height:auto;aspect-ratio:900/550;overflow:hidden;transform:rotateX(var(--map-tilt)) rotateZ(var(--map-turn));transform-origin:50% 50%;filter:drop-shadow(0 18px 12px #06172680);transition:transform .25s ease}
#c3d-map-tilt{transform:none!important;width:100%;height:auto;position:static}
#c3d-map-stage .c3d-map-viewport{height:auto;min-height:0;overflow:visible;perspective:none;display:block;position:static;inset:auto}
#c3d-map-stage{min-height:0;height:auto}
.gtw-state,.gtw-district{cursor:pointer;transition:fill-opacity .15s}
.gtw-state:hover,.gtw-district:hover{fill-opacity:1;stroke:#fff;stroke-width:2;vector-effect:non-scaling-stroke}
.gtw-state.is-selected,.gtw-district.is-selected{stroke:#ffdc7a;stroke-width:3;vector-effect:non-scaling-stroke}
.gtw-state-label,.gtw-state-value{fill:#fff;font-family:system-ui,sans-serif;font-size:12px;font-weight:750;paint-order:stroke;stroke:#17344a;stroke-width:2.5px;pointer-events:none}
.gtw-state-value{font-size:11px}.gtw-group-outline{pointer-events:none}
.gtw-camera{display:flex;flex-wrap:wrap;gap:7px;align-items:center;margin:12px 0}
.gtw-camera button{font:inherit;font-size:13px;background:#163a54;color:#fff;border:1px solid #6d93ac;border-radius:8px;padding:9px 12px;cursor:pointer;min-height:40px}
.gtw-camera button:hover,.gtw-camera button[aria-pressed=true]{background:#2b6385}
.c3d-toolbar{display:flex!important;flex-wrap:wrap}.c3d-toolbar label{min-width:0;max-width:100%}.c3d-toolbar select{max-width:100%;font-size:16px!important}
.c3d-map-layout{grid-template-columns:minmax(0,1fr) 260px!important;align-items:start}
.c3d-map-side{min-width:0}.c3d-map-side p{overflow-wrap:anywhere}.c3d-map-side h3{font-size:1.15rem}
#c3d-map-status{color:#b4d6e9;font-size:14px;margin:0 0 7px}.c3d-map-caption{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;font-size:13px;color:#dbeaf3;margin-top:8px}
#c3d-zone-list{display:flex;flex-wrap:wrap;gap:6px}.c3d-zone-button{display:inline-flex!important;min-height:40px;padding:8px!important;font-size:13px!important;width:auto!important;white-space:normal;overflow-wrap:normal}
.c3d-seat-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))!important}.c3d-method{overflow-wrap:anywhere}
.state-tile-map-wrap{max-width:none!important}.us-seat-map svg{max-height:none!important}.state-map-legend{font-size:13px!important}
@media(max-width:900px){.c3d-map-layout{grid-template-columns:1fr!important}.c3d-map-side{padding-top:12px}.gtw-map-stage svg,#c3d-map-svg{transform:rotateX(12deg) rotateZ(var(--map-turn))}.c3d-map-side h3{margin-top:0}.gtw-camera button{min-height:44px}}
@media(max-width:600px){.gtw-state-label,.gtw-state-value{display:none}}
@media(prefers-reduced-motion:reduce){.gtw-map-stage svg,#c3d-map-svg,.gtw-state,.gtw-district{transition:none}}

#c3d-current-info{padding:12px 0;border-bottom:1px solid #557082;margin-bottom:12px}#c3d-current-info h4{margin:0 0 10px;font-size:16px;color:white}#c3d-current-info dl{margin:0}#c3d-current-info dt{color:#aac9dc;font-size:12px;margin-top:8px}#c3d-current-info dd{margin:2px 0;color:white;font-size:14px;overflow-wrap:anywhere}.c3d-source-note,#c3d-recommendation{font-size:12px!important;line-height:1.5;color:#bdd6e5!important}#c3d-current-info a{color:#8addeb;font-size:13px}
.c3d-live-geography{padding:16px;margin:12px 0 20px;background:#14384f;border-radius:12px}.c3d-live-geography h4{color:white;font-size:16px;margin:0 0 12px}.c3d-live-map{display:block;width:100%;height:260px;overflow:hidden;filter:drop-shadow(0 8px 5px #081b2d);max-width:100%}.c3d-map-candidate-legend{display:flex;flex-wrap:wrap;gap:8px 14px;margin-top:12px}.c3d-map-candidate-legend span{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:white}.c3d-map-candidate-legend i{width:12px;height:12px;border:1px solid white;border-radius:50%;flex-shrink:0}.c3d-live-map-note{font-size:13px;line-height:1.5;color:#c4dce9;margin-bottom:0}.gtw-live-section{filter:brightness(1.15);transition:fill .2s ease}
@media(prefers-reduced-motion:reduce){.gtw-live-section{transition:none}}

#c3d-current-info[hidden],#c3d-reform-info[hidden]{display:none!important}.c3d-info-toggle{gap:6px;margin:8px 0}.c3d-info-toggle button{font-size:12px;padding:8px;flex:1}

/* Keep hit testing on native SVG geometry; avoid CSS 3D transforms on interactive paths. */
.gtw-map-stage svg,#c3d-map-svg{transform:rotate(var(--map-turn))!important;position:relative;z-index:1;pointer-events:auto}
#c3d-map-stage::before{pointer-events:none}.gtw-map-surface{pointer-events:auto}.gtw-district,[data-local-section]{pointer-events:visiblePainted;cursor:pointer}
.is-top-view svg{filter:none!important}.gtw-area-label{fill:white;stroke:#10283e;stroke-width:3px;paint-order:stroke;stroke-linejoin:round;font-family:system-ui,sans-serif;font-weight:750;pointer-events:none}
#c3d-area-legend{grid-column:1/-1;padding:14px 18px;background:#102d43;color:#e9f2f8;display:flex;flex-wrap:wrap;gap:8px}#c3d-area-legend>p{width:100%;margin:0 0 6px;font-size:14px;line-height:1.5}.gtw-area-key{font:inherit;font-size:13px;color:#fff;background:#1b3f56;border:1px solid #5c8097;border-left:6px solid var(--area-color);border-radius:7px;padding:10px;text-align:left;flex:1 1 260px;cursor:pointer;overflow-wrap:anywhere;min-height:44px}.gtw-home-focus{stroke:var(--home-color,#ffde78)!important;stroke-width:5!important;vector-effect:non-scaling-stroke;filter:drop-shadow(0 0 4px #fff)}.c3d-slate-location{grid-column:1/-1;font-size:14px;line-height:1.6;color:#d3e7f3;margin:0 0 8px}
/* Interactive map surfaces must not move under the pointer during reveal. */
.c3d-console.reveal,.us-seat-map.reveal{opacity:1!important;transform:none!important;transition:none!important}
.is-top-view .gtw-map-surface>g[aria-hidden="true"]{display:none}
/* Large off-screen SVG filter layers can retain stale clipped paint after zoom. */
.gtw-map-stage svg,#c3d-map-svg,.gtw-live-section,.gtw-home-focus{filter:none!important}

.gtw-area-key{display:flex!important;align-items:center;gap:14px;border-left:6px solid var(--area-color)!important;min-height:108px}.gtw-area-key svg{width:100px;height:90px;flex:0 0 100px;overflow:visible}.gtw-area-key span{flex:1;text-align:left}.gtw-local-area{cursor:pointer}.gtw-live-section{transition:fill .25s,stroke .25s;fill-opacity:1!important}.gtw-home-focus{stroke-width:5px!important}@media(max-width:480px){.gtw-area-key svg{width:70px;flex-basis:70px;height:80px}}

.c3d-live-map{filter:none!important}

.c3d-map-side{backdrop-filter:none!important}
.gtw-area-callout{pointer-events:none}

.c3d-area-slate{grid-column:1/-1;margin:18px 0 2px;font-size:17px;color:white}.c3d-map-layout{scroll-margin-top:125px}.has-live-count .c3d-map-layout{grid-template-columns:minmax(0,1fr) 360px!important}.has-live-count .c3d-map-side>:not(#c3d-map-count){display:none!important}#c3d-map-count[hidden]{display:none!important}#c3d-map-count{color:white}#c3d-map-count p{font-size:13px;line-height:1.5;margin:8px 0}#c3d-map-count progress{width:100%;accent-color:#26d2bc}#c3d-map-count select{width:100%;font-size:14px;background:#173f56;color:white;padding:8px;border:1px solid #7297ad;border-radius:6px}.gtw-count-rows{max-height:310px;overflow:auto;margin:12px 0}.gtw-count-row{display:grid;grid-template-columns:10px 1fr auto;align-items:center;gap:8px;border-bottom:1px solid #ffffff20;padding:8px 0;font-size:12px}.gtw-count-row i{width:9px;height:30px;background:var(--candidate-color);border-radius:3px}.gtw-count-row small{display:block;font-size:10px;color:#bdd4e4}.gtw-count-row b{text-align:right}.gtw-count-actions{display:flex;flex-wrap:wrap;gap:6px}.gtw-count-actions button{font:inherit;font-size:12px;color:white;background:#235e75;border:1px solid #7297ad;border-radius:6px;padding:9px;cursor:pointer}.c3d-map-candidate-legend{max-height:100px;overflow:auto}#c3d-map-count .gtw-count-event{min-height:38px;color:#8bf1df}@media(max-width:900px){.has-live-count .c3d-map-layout{grid-template-columns:1fr!important}.gtw-count-rows{max-height:240px}}

.gtw-count-focus{stroke:#fff!important;stroke-width:5px!important;vector-effect:non-scaling-stroke}

.gtw-seat-controls{padding:16px;background:#163a50;border-radius:10px;margin-bottom:18px;color:white}.gtw-seat-controls p{font-size:14px;line-height:1.6}.gtw-seat-controls select,.gtw-numbered-candidate select{font:inherit;background:#173f56;color:white;border:1px solid #7d9aad;border-radius:6px;padding:7px;max-width:100%}#c3d-seat-ballot-tabs{display:flex;flex-wrap:wrap;gap:8px}#c3d-seat-ballot-tabs button{font:inherit;padding:9px 14px;background:#234e64;color:white;border:1px solid #809cac;border-radius:6px;cursor:pointer}#c3d-seat-ballot-tabs button[aria-pressed=true]{background:#168f81}.gtw-numbered-candidate{cursor:default}.gtw-numbered-candidate select{min-width:90px}.seat-races-mode .c3d-rank-list{max-height:500px;overflow:auto}

/* Explicit rank controls and whole-district Book seat overview. */
.gtw-book-rank-select{width:100%;padding:.5rem;border:1px solid #7294a8;border-radius:6px;background:#102e43;color:#fff;font:inherit;cursor:pointer}
#gtw-book-live-seats{padding:12px;background:#102d42;border-radius:10px;color:#edf5fa;margin:10px 0}
#gtw-book-live-seats[hidden]{display:none}
#gtw-book-live-seats h4{margin:0 0 8px}
.gtw-book-seat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px}
.gtw-book-seat-status{border-left:5px solid var(--candidate-color);background:#173c53;padding:8px;border-radius:5px;min-width:0}
.gtw-book-seat-status small,.gtw-book-seat-status strong,.gtw-book-seat-status span{display:block}
.gtw-book-seat-status small{font-size:.72rem}.gtw-book-seat-status strong{font-size:.83rem;margin:4px 0}.gtw-book-seat-status span{font-size:.75rem}
#gtw-book-live-seats p{font-size:.76rem;margin:8px 0 0}

.gtw-separate-seat-status{color:#edf5fa;text-align:left;font:inherit;cursor:pointer}.gtw-separate-seat-status:hover{background:#23576e}
