/* Map workspace: filters, result gauges, map, and scoped report feed. */
.masthead {height:76px;padding-inline:28px}
.date {display:none}
main {max-width:2100px;padding:18px 28px 0}
.workspace {grid-template-columns:minmax(0,1fr) 340px;gap:20px;align-items:start}
.map-panel {min-height:0;overflow:hidden}
.map-panel .controls {display:grid;grid-template-columns:112px minmax(0,1.2fr) minmax(0,1.3fr) minmax(0,1.1fr);gap:12px;padding:16px 20px;background:#10232f;border-bottom:1px solid #38505e}
.map-panel .controls label,.map-panel .controls .year-control {min-width:0;max-width:none;gap:5px}
.map-panel .controls label>span {font-size:11px;font-weight:600;letter-spacing:.6px;color:#bdcdd6}
.map-panel .controls select {width:100%;min-height:44px;font-size:16px;padding:8px 24px 8px 10px;border:1px solid #4c6472;border-radius:6px;background:#0b1b27}
.map-panel .controls select:hover {border-color:#b6d2de}
.map-panel .elections {grid-column:1/3;grid-row:2;justify-self:start;margin:0;gap:4px}
.map-panel .elections button {min-height:44px;padding:9px 19px;font-size:16px}
.map-panel .map-navigation {grid-column:3/5;grid-row:2;display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.map-button {min-height:44px;font-size:14px;padding:10px 13px;align-self:auto;white-space:nowrap}
.map-navigation .leaflet-control {float:none;margin:0}
.map-navigation .leaflet-control-zoom {display:flex;overflow:hidden;border-radius:6px}
.map-navigation .leaflet-bar a {width:48px;height:44px;line-height:44px;font-size:25px;border:0;border-radius:0}
.map-navigation .leaflet-bar a+a {border-left:1px solid #536e7e}
.map-navigation .leaflet-bar a:hover {background:#294756!important}
.map-navigation .leaflet-bar a.leaflet-disabled {opacity:.4}
.result-overview {display:grid;grid-template-columns:minmax(0,1fr) minmax(340px,1.15fr);gap:18px;align-items:center;padding:15px 24px 10px;background:linear-gradient(120deg,#132c36,#0c202c);border-bottom:1px solid #304854}
.overview-heading {min-width:0}
.overview-heading h1 {font-size:clamp(22px,2.1vw,30px);line-height:1.15;letter-spacing:-.6px;overflow-wrap:anywhere}
.overview-heading .eyebrow {font-size:11px;letter-spacing:1px;margin:0 0 8px}
#party-name {font-size:16px;margin:10px 0 3px;color:#c2d6df}
.overview-votes {font-size:13px;margin:0;color:#9db3c0}
.overview-heading .text-button {min-height:36px;font-size:12px}
.gauge-pair {display:grid;grid-template-columns:1fr 1fr;gap:12px;min-width:0}
.gauge {min-width:0;width:100%;max-width:230px;margin:auto;text-align:center}
.gauge-label {font-size:14px;font-weight:600;color:#c7d8e1;min-height:21px}
.gauge svg {display:block;width:100%;max-height:128px;overflow:visible;margin-top:5px}
.gauge-value {font:600 35px system,system-ui,sans-serif;text-anchor:middle;letter-spacing:-1px;font-variant-numeric:tabular-nums}
.gauge-tick {font:11px system,system-ui,sans-serif;fill:#a4bdca;text-anchor:middle}
.gauge-zero {stroke:#d4e5ec;stroke-width:2}
.gauge-caption {font-size:11px;line-height:1.35;min-height:15px;color:#a9bdc9}
.gauge.is-missing .gauge-value {font-size:30px}
.map-panel .map-top {position:relative;inset:auto;display:flex;align-items:center;gap:12px;padding:11px 20px;background:#0d202d;pointer-events:auto;z-index:700}
.map-panel .map-top>div {max-width:none;flex-direction:row;align-items:center;gap:16px;min-width:0}
.map-top .eyebrow {font-size:10px;letter-spacing:.6px}
.map-mode-label select {min-height:38px;padding:7px 10px;font-size:14px;max-width:240px}
.map-subtitle {font-size:13px;color:#a9c0cd;margin-top:3px}
.map-stage {position:relative;--map-height:clamp(500px,64vh,780px);background:#0d202d;border-top:1px solid #263e4c;overflow:hidden}
.map-stage #map {height:var(--map-height);min-height:0!important}
#map .leaflet-overlay-pane svg {overflow:visible}
.map-labels.is-moving .map-name {pointer-events:none;will-change:transform}
.map-labels.is-zoom-animating .map-name {transition:transform .25s cubic-bezier(0,0,.25,1)}
.map-labels {position:absolute;inset:0;z-index:620;pointer-events:none}
.map-name {position:absolute;left:0;top:0;pointer-events:auto;width:max-content;max-width:200px;min-height:30px;padding:5px 9px;border:1px solid #68818f;border-radius:5px;background:#112633f5;color:#f4f8fb;font:500 14px/1.3 system,ui-sans-serif,system-ui,sans-serif;text-align:left;white-space:normal;overflow-wrap:anywhere;box-shadow:0 1px 5px #06101955;cursor:pointer}
.map-name[aria-pressed=true],.map-name.is-highlighted {border-color:#fff;background:#355262;color:#fff;z-index:1;outline:2px solid #c4e2f1;outline-offset:1px}
.map-name:focus-visible {outline:3px solid #fff;outline-offset:3px}
.map-popup {position:fixed;z-index:10000;pointer-events:none;width:350px;max-width:calc(100vw - 20px);padding:15px 16px 12px;border:1px solid #89a9bb;border-radius:12px;background:#091b29;box-shadow:0 10px 40px #0009;color:#fff;isolation:isolate}
.popup-name {display:block;font-size:17px;line-height:1.3;margin-bottom:14px;overflow-wrap:anywhere}
.map-popup .gauge-pair {gap:12px}
.map-popup .gauge-label {font-size:12px;min-height:32px;display:flex;justify-content:center;align-items:center;line-height:1.25}
.map-popup .gauge-value {font-size:37px}
.map-popup .gauge-caption {font-size:11px}
.map-panel .map-footer {display:grid;grid-template-columns:1fr 210px;gap:10px 20px;padding:12px 20px;background:#10232f;border-top:1px solid #38505e}
#map-help {font-size:12px;color:#afc2ce;margin:0;grid-column:1}
.map-panel .map-note {position:static;max-width:none;font-size:12px;grid-column:1}
.map-panel .map-legend {position:static;width:100%;font-size:12px;grid-column:2;grid-row:1/3;align-self:center}
.map-panel .ticks {font-size:11px}
.map-panel .sea-label {display:none}
.details {position:sticky;top:16px;display:flex;flex-direction:column;max-height:none;height:auto;overflow:hidden;background:#0d202b}
.area-detail {padding:19px 20px 10px}
.area-detail h2 {font-size:24px;line-height:1.2;margin:6px 0 10px;overflow-wrap:anywhere}
.area-detail .eyebrow {font-size:10px;margin-bottom:5px}
.area-detail .detail-tag {font-size:12px}
#report-progress {font-size:13px;color:#abc2ce;margin:12px 0 6px}
.area-detail .progress {margin:9px 0 13px;max-width:none}
.area-detail .source-link {font-size:12px;padding:10px 0;margin-top:10px}
.details .incoming {padding:17px 16px;min-height:0;order:0;flex-shrink:0;border-top:1px solid #304854;border-left:0}
.incoming .section-heading h2 {font-size:17px;font-weight:600}
.feed-scope {font-size:13px;margin:5px 0 0;color:#b7cbd6}
.feed-time-note {font-size:11px;color:#90aaba;margin:6px 0 14px}
.events-scroll {max-height:560px;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;padding-right:4px}
#events {list-style:none;padding:0;margin:0}
#events-status {font-size:13px;line-height:1.6;color:#a5bdca;margin:0 0 10px}
#events-status:empty {display:none}
.report-event {display:grid;grid-template-columns:46px minmax(0,1fr);gap:5px 9px;position:relative;width:100%;text-align:left;padding:13px 5px 13px 2px;border:0;border-top:1px solid #29404d;background:transparent;color:#e8f0f4}
.report-event time {font-size:14px;color:#a8c5d6;font-variant-numeric:tabular-nums;grid-row:1}
.report-event strong {font-size:14px;line-height:1.35;font-weight:600;overflow-wrap:anywhere}
.report-description {font-size:12px;line-height:1.5;color:#a9c0ce;grid-column:2}
.report-event small {grid-column:1;grid-row:2;font-size:10px;color:#819dac}
.report-event:hover {background:#183341;border-radius:5px}
.report-event.corrected .report-description,.report-event.withdrawn .report-description {color:#e9bd90}
.new-reports {width:100%;background:#1d5140;border:1px solid #5b9f83;border-radius:6px;min-height:40px;color:#d7f4e5;margin-bottom:10px;font-size:14px}
#events-more {width:100%;margin:12px 0 0;font-size:13px}
.method-details {border-top:1px solid #304854;font-size:13px}
.method-details>summary {padding:15px 20px;cursor:pointer;color:#b8cdd8;min-height:48px}
.source-details {padding:0 20px 14px}
.source-details dl {margin:8px 0 12px}
.method-details .comparison-detail {padding:17px 20px}
.method-details .detail-note,.method-details .comparison-detail>p {font-size:12px}
.area-list {margin:22px 0 0;border:1px solid #2b414f;border-radius:8px;padding:0 16px 14px}
.area-list:not([open]) {padding-bottom:0}
.area-list>summary {cursor:pointer;padding:14px 0;font-size:15px;min-height:48px}
.area-button {min-height:60px}
.area-button strong {font-size:15px}
.masthead .button {min-height:44px;font-size:14px}
.bigscreen main {height:auto;display:block;padding-bottom:16px}
.bigscreen .workspace {min-height:0}
.bigscreen .map-panel {height:auto;min-height:0!important}
.bigscreen .map-stage #map {height:var(--map-height);min-height:0!important}
.bigscreen .details {height:auto;max-height:none}
.bigscreen .details>.incoming {order:0;padding:17px 16px}
.bigscreen .map-name {font-size:16px;max-width:220px}
.bigscreen .gauge svg {max-height:136px}
.bigscreen .events-scroll {max-height:430px}
@media(min-width:1600px) {.workspace {grid-template-columns:minmax(0,1fr) 380px}.map-name {font-size:15px;max-width:215px}.map-panel .controls {grid-template-columns:112px 1.2fr 1.3fr 1.1fr}.result-overview {grid-template-columns:1fr 1fr}.gauge {max-width:220px}}
@media(max-width:1200px) {.map-panel .elections button {padding:9px 12px}.result-overview {grid-template-columns:minmax(0,1fr) minmax(300px,1.15fr);padding-inline:18px}.gauge-label {font-size:12px}.gauge-pair {gap:8px}}
@media(max-width:1100px) {.workspace {grid-template-columns:1fr}.details {position:static;max-height:none}.events-scroll {max-height:420px}.result-overview {grid-template-columns:1fr 1fr}}
@media(max-width:700px) {
  main {padding:12px 12px 0}.masthead {height:74px;padding-inline:16px}.masthead .live-status {display:none}
  .map-panel .controls {grid-template-columns:1fr 1fr;padding:14px;gap:12px}
  .map-panel .elections {grid-column:1/-1;grid-row:3;justify-self:stretch;width:100%}.map-panel .elections button {flex:1;padding:9px 12px}
  .map-panel .map-navigation {grid-column:1/-1;grid-row:4;justify-content:flex-start}
  .result-overview {grid-template-columns:1fr;gap:12px;padding:17px 16px 12px}
  .overview-heading {position:relative;padding-right:0}.overview-heading h1 {font-size:24px}.overview-heading .text-button {display:none}
  .overview-heading .eyebrow {font-size:10px}#party-name {font-size:14px;margin-top:7px}.overview-votes {font-size:12px}
  .gauge-pair {gap:12px}.gauge-label {font-size:12px}.gauge svg {max-height:119px}
  .map-panel .map-top {padding:10px 14px;align-items:flex-start}.map-panel .map-top>div {flex-direction:column;align-items:flex-start;gap:4px}
  .map-mode-label select {max-width:200px}.map-subtitle {font-size:12px}.map-stage {--map-height:510px}
  .map-panel .map-footer {padding:12px 14px;grid-template-columns:1fr}
  .map-panel .map-legend {grid-column:1;grid-row:auto;max-width:300px}.map-panel .map-note {grid-column:1}
  .area-detail {padding:18px}.details .incoming {padding:17px 16px}.report-event {padding-block:15px}
}

.report-event {text-decoration:none}
.report-link {grid-column:2;color:#a0dfc7;font-size:13px;text-decoration:underline;text-underline-offset:3px}
.report-event:focus-visible {outline:2px solid #a0dfc7;outline-offset:2px}
.election-badge {display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 5px;margin-left:6px;border-radius:12px;background:#82d8b7;color:#09251c;font-size:12px;font-weight:700}
