/* Historical election filters and factual result/illustrative map views */
.vs23-top-filter{display:flex;gap:8px;align-items:end;flex-wrap:wrap;min-width:0}
.vs23-top-filter label{font-size:11px;line-height:1.4;color:#516071;font-weight:750;display:flex;flex-direction:column;gap:2px}
.vs23-top-filter select{min-width:90px;max-width:160px;background:#fff;border:1px solid #d5deeb;border-radius:9px;padding:7px 8px;color:#264257;font-weight:750;font:inherit}
.vs23-top-filter .vs23-view-btn{background:#f47a24;color:white;border:1px solid #ed7521;border-radius:9px;padding:7px 10px;font-weight:800;white-space:nowrap;cursor:pointer}
.vs23-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin:16px 0}
.vs23-summary>div{background:#fff;border:1px solid #e1e7ef;border-radius:12px;padding:13px;min-width:0;display:flex;flex-direction:column;gap:5px}
.vs23-summary small{font-size:12px;color:#566478}.vs23-summary strong{font-size:19px;color:#183c57}
.vs23-summary-diff{margin-block:16px}.vs23-summary-diff .vs23-summary>div{background:#fcfdff}
.vs23-scroll{overflow-x:auto;margin-top:12px}.vs23-table{width:100%;border-collapse:collapse;min-width:650px;text-align:left}
.vs23-table th,.vs23-table td{padding:10px 12px;border-bottom:1px solid #e5ebf1;font-size:13px;vertical-align:top}
.vs23-table th{font-weight:800;background:#f2f6fb;color:#25445c;position:sticky;top:0}
.vs23-table td small{display:block;color:#758397;margin-top:3px}
.vs23-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0 18px}
.vs23-tabs a{color:#2e536d;background:#f8fafc;border:1px solid #dce6ef;padding:9px 13px;border-radius:9px;text-decoration:none;font-weight:750}
.vs23-tabs a.active{background:#f17d27;color:#fff;border-color:#f17d27}
.vs23-search{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.vs23-search input{min-width:190px;max-width:360px;flex:1}
.vs23-pagination{display:flex;gap:15px;align-items:center;flex-wrap:wrap;font-weight:650;margin:12px 0 2px}
.vs23-map-stage{position:relative;isolation:isolate;min-height:365px}.vs23-map-stage #assembly-map{height:540px}
.vs23-map-controls{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:5px 0 10px}
.vs23-map-controls button{padding:7px 10px;border:1px solid #d4e0ec;border-radius:9px;background:#fff;color:#26506a;font:inherit;font-weight:700;cursor:pointer}
.vs23-map-controls button:disabled{cursor:not-allowed;opacity:.4}
.vs23-map-controls #vs23ToggleDemo{background:#17456c;color:white;border-color:#17456c}
.vs23-map-controls #vs23DemoStatus{font-size:12px;color:#48596d;flex:1 1 230px;line-height:1.55}
.vs23-map-markers{position:absolute;inset:0 0 40px 0;z-index:7;pointer-events:none;background:repeating-linear-gradient(135deg,rgba(255,255,255,.12),rgba(255,255,255,.12) 14px,rgba(255,249,235,.19) 14px,rgba(255,249,235,.19) 30px);border-radius:12px}
.vs23-map-markers[hidden],.vs23-map-warning[hidden]{display:none!important}
.vs23-map-warning{position:absolute;top:10px;left:10px;right:10px;z-index:9;pointer-events:none;background:#fff3cc;border:1px solid #e6bf66;color:#623c00;border-radius:9px;padding:7px 10px;font-size:12px;font-weight:750;text-align:center}
.vs23-marker-wrap{position:absolute;pointer-events:auto;transform:translate(-50%,-50%);z-index:10}
.vs23-marker{display:flex;align-items:center;justify-content:center;min-width:31px;height:31px;border:2px solid white;box-shadow:0 3px 9px #152d4e70;color:white;border-radius:50%;font-size:12px;font-weight:800;cursor:pointer;padding:0 6px}
.vs23-pin-village .vs23-marker{background:#147f60}.vs23-pin-booth .vs23-marker{background:#ee7621}.vs23-marker:hover,.vs23-marker:focus-visible{outline:3px solid #f6c149;transform:scale(1.14)}
.vs23-pin-tooltip{display:none;position:absolute;bottom:calc(100% + 9px);left:50%;transform:translateX(-50%);background:#152c48;color:white;border:1px solid #8192ac;border-radius:10px;padding:10px 12px;width:225px;max-width:65vw;box-shadow:0 9px 25px #1c304777;z-index:100;line-height:1.55;font-size:12px;pointer-events:none}
.vs23-pin-tooltip strong,.vs23-pin-tooltip span,.vs23-pin-tooltip small{display:block;overflow-wrap:anywhere}
.vs23-pin-tooltip strong{font-size:13px;margin-bottom:5px}.vs23-pin-tooltip small{font-size:10px;color:#f8d79b;margin-top:5px}
.vs23-marker-wrap:hover,.vs23-marker-wrap:focus-within{z-index:100}.vs23-marker-wrap:hover .vs23-pin-tooltip,.vs23-marker-wrap:focus-within .vs23-pin-tooltip{display:block}
.vs23-map-stage .vs8-map-preview-frame{pointer-events:auto}
@media(max-width:1250px){.vs23-top-filter{order:2;width:100%}.topbar{flex-wrap:wrap!important}.vs23-top-filter select{max-width:none}}
@media(max-width:700px){.vs23-map-stage #assembly-map{height:410px}.vs23-map-markers{inset:0 0 60px 0}.vs23-map-warning{font-size:10px}.vs23-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.vs23-summary strong{font-size:17px}.vs23-marker{min-width:26px;height:26px;font-size:10px}.vs23-map-controls button{flex:1 1 140px}}
/* Make room for the header's year/type controls without clipping on fixed-height legacy topbars. */
.topbar:has(.vs23-top-filter){height:auto;min-height:79px;padding-top:8px;padding-bottom:8px}
@media(max-width:900px){.topbar:has(.vs23-top-filter){min-height:72px}}
