.ew-map-stage { display: grid; grid-template-columns: 9rem minmax(0, 1fr); gap: var(--space-3); margin-top: var(--space-3); }
.ew-map-canvas { min-width: 0; }
.ew-map-canvas .leaflet-control-zoom a { width: 44px; height: 44px; line-height: 44px; }
.ew-office-tabs { display: grid; align-content: start; gap: var(--space-1); margin: 0; }
.ew-office-tabs a { display: flex; align-items: center; min-height: 44px; padding: var(--space-2) var(--space-3); border: 1px solid var(--colour-border); border-radius: var(--radius-sm); font-size: var(--text-sm); text-decoration: none; }
.ew-office-tabs a[aria-current] { background: var(--colour-primary); color: var(--colour-bg); }
.ew-place h3 { margin-top: var(--space-3); }
.ew-place summary, .ep-population summary { min-height: 44px; padding-block: var(--space-3); cursor: pointer; }
.ew-place-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 12rem), 1fr)); gap: var(--space-2); }
.ew-place-list a { display: flex; justify-content: space-between; gap: var(--space-2); align-items: center; min-height: 44px; padding: var(--space-2); background: var(--colour-bg-subtle); font-size: var(--text-sm); }
.ew-result-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr)); gap: var(--space-2); max-height: 25rem; overflow-y: auto; }
.ew-winner { display: flex; flex-direction: column; margin: 0; padding: var(--space-3); border-left: 3px solid var(--colour-primary); background: var(--colour-bg-subtle); font-size: var(--text-sm); }
.ew-winner a { min-height: 44px; display: flex; align-items: center; }
.ew-map-tooltip { font-size: var(--text-sm); padding: var(--space-3); max-width: min(48rem, calc(100vw - 2rem)); white-space: normal; }
.ew-map-tooltip__office { display: grid; grid-template-columns: 11rem auto; gap: var(--space-2); margin-top: var(--space-2); white-space: nowrap; }
.ep-population { min-width: 0; }
.ep-population h3 { margin-bottom: var(--space-3); }
.ep-comparison { margin: 0; }
.ep-measure { display: grid; grid-template-columns: 1fr auto; gap: var(--space-1) var(--space-3); margin-bottom: var(--space-4); font-size: var(--text-sm); }
.ep-measure strong { font-variant-numeric: tabular-nums; }
.ep-measure__track { grid-column: 1 / -1; height: .8rem; background: var(--colour-bg-subtle); border-radius: var(--radius-sm); }
.ep-measure__track i { display: block; height: 100%; width: var(--w); background: var(--colour-text-muted); border-radius: inherit; }
.ep-measure--adults i { background: var(--colour-secondary); }
.ep-measure--voters i { background: var(--colour-primary); }
.ep-comparison figcaption { font-size: var(--text-xs); color: var(--colour-text-muted); }
.ep-pairs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-3); margin-block: var(--space-3); }
.ep-pairs div { display: flex; flex-direction: column; padding: var(--space-3); background: var(--colour-bg-subtle); }
.ep-pairs strong { font-size: var(--text-xl); }
.ep-pairs span { font-size: var(--text-xs); }
.ep-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-4); align-items: start; }
.ep-grid > * { min-width: 0; }
.page-elections-hub.has-brand-hero .page-band .elections-hero__lead a { color: inherit; text-decoration: underline; }
.ep-result-coverage > summary { min-height: 44px; padding-block: var(--space-3); cursor: pointer; font-weight: 650; }
.ep-contrast-heading { font-size: var(--text-xs); font-weight: 750; margin-block: var(--space-3) var(--space-1); }
@media (max-width: 52rem) {
  .ep-grid { grid-template-columns: 1fr; }
  .ew-map-stage { grid-template-columns: 1fr; }
  .ew-office-tabs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ew-map-tooltip__office { grid-template-columns: 1fr; white-space: normal; gap: 0; }
}
