.election-map{color:#18334e;background:#f5f8fc;border:1px solid #dce5ef;border-radius:16px;padding:24px;margin:28px 0;font-family:var(--sans,Arial,sans-serif)}
.election-map .election-map-heading>span{font-size:9px;letter-spacing:.18em;color:#557498}.election-map .election-map-heading>p{font:28px/1.2 var(--serif,Georgia,serif);margin:12px 0}
.election-map .election-map-help,.election-map [data-election-explanation]{font-size:13px;line-height:1.7;margin:12px 0}
.election-map .election-map-select{display:block;font-size:12px;line-height:1.8}.election-map select{width:100%;padding:12px;border:1px solid #aec3da;border-radius:7px;background:white;color:#18334e;font:inherit;margin-top:6px;box-sizing:border-box}
.election-map .election-map-canvas svg{display:block;width:100%;height:auto;overflow:visible}.election-map [data-province]{stroke:#fff;stroke-width:1;vector-effect:non-scaling-stroke;cursor:pointer;fill:#b8cde4}.election-map .gains{fill:#68b8a0;background:#68b8a0}.election-map .loses{fill:#db9b8a;background:#db9b8a}.election-map .stable{fill:#b8cde4;background:#b8cde4}.election-map [data-province]:hover,.election-map [data-province][aria-pressed=true]{fill:#234d79;stroke:#15344e;stroke-width:2}.election-map [data-province]:focus-visible{outline:none;stroke:#132e49;stroke-width:4;fill:#8baad0}.election-map select:focus-visible{outline:2px solid #234d79;outline-offset:3px}.election-map svg text{font:16px Arial;fill:#59738c;pointer-events:none}.election-map svg .map-note{font-size:12px}.election-map .inset-rule{fill:none;stroke:#a8bfd6;stroke-dasharray:4 4}
.election-map .election-legend{display:flex;flex-wrap:wrap;gap:16px;font-size:11px;margin:12px 0 24px}.election-map .election-legend span{display:flex;align-items:center;gap:6px}.election-map .election-legend i{width:9px;height:9px;border-radius:50%}
.election-map .election-detail{padding:22px;background:#fff;border:1px solid #dce5ef;border-radius:12px}.election-map [data-election-name]{font:26px/1.2 var(--serif,Georgia,serif);margin:0 0 22px}.election-map .election-counts{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.election-map .election-counts span{display:block;font-size:9px;letter-spacing:.1em;color:#667e96}.election-map .election-counts strong{display:block;font:36px/1.4 var(--serif,Georgia,serif)}
.election-map .election-table{margin-top:26px;font-size:12px}.election-map summary{cursor:pointer;padding:14px 0;font-weight:600}.election-map .election-table-scroll{overflow-x:auto}.election-map table{border-collapse:collapse;width:100%;min-width:300px;font-size:12px}.election-map th,.election-map td{padding:9px 6px;border-bottom:1px solid #dce5ef;text-align:right;background:transparent}.election-map th:first-child{text-align:left}.election-map tbody th{font-weight:400}.election-map caption{text-align:left;font-size:11px;color:#667e96;padding:12px 0}.election-map .election-credit{font-size:10px;line-height:1.7;color:#617990;margin-top:24px}
@media(max-width:500px){.election-map{padding:14px;margin-inline:-6px}.election-map .election-detail{padding:16px}.election-map .election-map-heading>p{font-size:24px}.election-map .election-counts strong{font-size:30px}}
.election-map .election-parties{margin-top:24px;padding:22px;background:#fff;border:1px solid #dce5ef;border-radius:12px}.election-map .election-parties[hidden],.election-map [data-election-party-panel][hidden]{display:none}.election-map .election-parties-title{font:23px/1.3 var(--serif,Georgia,serif);margin:0 0 8px}.election-map .election-parties-note{font-size:11px;line-height:1.7;color:#627a91;margin:0 0 20px}.election-map .election-party-bar{display:block;width:100%;height:12px;border-radius:6px;overflow:hidden;margin:16px 0}.election-map .election-party-list{list-style:none;padding:0;margin:0}.election-map .election-party-list li{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid #edf1f6;font-size:13px}.election-map .election-party-list li>span{display:flex;align-items:center;gap:9px}.election-map .election-party-list strong{white-space:nowrap;font-size:17px}.election-map .election-party-list strong span{font-size:11px;font-weight:400;color:#617990}.election-map .election-results-source{display:block;font-size:10px;line-height:1.7;margin-top:18px;color:#315e89}.election-map .election-table-parties{min-width:180px;text-align:left;font-size:11px;line-height:1.8}.election-map .election-table table{min-width:520px}@media(max-width:500px){.election-map .election-parties{padding:16px}.election-map .election-parties-title{font-size:21px}}
