.map-sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.map-header{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px 40px;padding:34px 0 22px;border-bottom:2px solid var(--rule-strong)}
.map-header h1{margin:0;font-size:clamp(34px,5vw,56px);line-height:1;font-weight:800;letter-spacing:-.03em}
.map-subtitle{margin:10px 0 0;font-size:18px;font-weight:500}
.map-stats{margin:0;display:flex;flex-wrap:wrap;gap:4px 28px;font-family:var(--font-mono)}
.map-stats dt{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.map-stats dd{margin:0;font-size:31px;font-weight:700}

.map-view-input{position:absolute;opacity:0;pointer-events:none}
.map-tablist{display:flex;flex-wrap:wrap;border-bottom:2px solid var(--rule-strong);margin-top:22px;font-family:var(--font-mono);font-size:13px;letter-spacing:.1em;text-transform:uppercase;font-weight:600}
.map-tablist label{padding:12px 18px 10px 0;margin-right:18px;cursor:pointer;color:var(--ink);box-shadow:inset 0 -4px 0 transparent}
#map-view-table:checked~.map-tablist label[for="map-view-table"],
#map-view-graph:checked~.map-tablist label[for="map-view-graph"],
#map-view-river:checked~.map-tablist label[for="map-view-river"]{box-shadow:inset 0 -4px 0 var(--brand);font-weight:800}
#map-view-table:focus-visible~.map-tablist label[for="map-view-table"],
#map-view-graph:focus-visible~.map-tablist label[for="map-view-graph"],
#map-view-river:focus-visible~.map-tablist label[for="map-view-river"]{outline:2px solid var(--papyrus-focus);outline-offset:2px}
.map-tab-intro{margin:14px 0 0;font-family:var(--font-mono);font-size:12px;color:var(--muted)}
.map-panel{display:none;padding-top:26px}
#map-view-table:checked~.map-panels .map-panel-table,
#map-view-graph:checked~.map-panels .map-panel-graph,
#map-view-river:checked~.map-panels .map-panel-river{display:block}
.map-panel-dek{margin:12px 0 18px;max-width:64ch;font-size:16px}
.map-empty{margin:18px 0;padding:18px;border:1.5px dashed var(--rule-strong);color:var(--ink)}

.map-table-scroll{overflow-x:auto;padding-bottom:6px}
.map-table-scroll:focus-visible{outline:2px solid var(--papyrus-focus);outline-offset:2px}
.map-table{border-collapse:separate;border-spacing:6px;width:100%;min-width:1240px;table-layout:fixed}
.map-corner{width:118px;background:var(--paper)}
.map-group-head:nth-child(2){width:25%}
.map-group-head,.map-row-head,.map-cell{color:var(--ink)}
.map-group-head{position:sticky;top:0;z-index:3;text-align:left;vertical-align:top;font-weight:400;padding:8px 8px 10px;border-top:4px solid var(--ink);background:var(--paper-raised)}
.map-group-head b{display:block;font-family:var(--font-title);font-stretch:125%;font-size:17px;font-weight:800;letter-spacing:-.01em;line-height:1.1}
.map-group-definition{display:block;font-size:12px;line-height:1.3;margin-top:4px}
.map-group-count{display:block;margin-top:4px;font-family:var(--font-mono);font-size:11px;color:var(--muted)}
.map-row-head{position:sticky;left:0;z-index:2;text-align:left;vertical-align:middle;font-weight:400;padding:6px 10px;border-left:4px solid var(--ink);background:var(--paper-raised)}
.map-row-head b{display:block;font-family:var(--font-mono);font-size:15px;font-weight:700}
.map-row-note{display:block;font-family:var(--font-mono);font-size:10.5px;color:var(--muted)}
.map-cell{vertical-align:top;padding:6px;background:var(--paper-raised);border:1px solid var(--rule);height:1px}
.map-hosted .map-cell{border-style:dashed}
.map-hosted .map-row-head{border-left-style:double;border-left-width:6px}
.map-cell-tiles{display:flex;flex-wrap:wrap;gap:6px;align-content:flex-start}
.map-gap{display:flex;align-items:center;justify-content:center;min-height:72px;text-align:center;font-family:var(--font-mono);font-size:11px;color:var(--muted);border:1.5px dashed var(--muted);padding:6px}

.map-tile{box-sizing:border-box;width:88px;height:116px;display:flex;flex-direction:column;gap:2px;padding:4px 6px;background:var(--paper);color:var(--ink);text-decoration:none;overflow:hidden}
.map-tile:hover{background:var(--brand-tint);color:var(--ink)}
.map-tile:focus-visible{outline:3px solid var(--papyrus-focus);outline-offset:2px}
.map-licence-open{border:3px solid var(--ink)}
.map-licence-restricted{border:3px dashed var(--ink)}
.map-licence-unstated{border:1px solid var(--rule-strong)}
.map-tile-top{display:flex;justify-content:space-between;align-items:center;font-family:var(--font-mono);font-size:10px;line-height:1.1}
.map-tile-status{width:11px;height:11px;flex:none}
.map-tile-symbol{font-family:var(--font-title);font-stretch:125%;font-size:28px;font-weight:800;line-height:1;letter-spacing:-.03em}
.map-tile-name{font-size:10.5px;line-height:1.15;font-weight:600;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.map-tile-mass{font-family:var(--font-mono);font-size:10px;font-weight:700;line-height:1.15}
.map-tile-foot{margin-top:auto;font-family:var(--font-mono);font-size:9.5px;line-height:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--muted)}
.map-more{flex:0 0 auto}
.map-more[open]{flex-basis:100%}
.map-more-summary{box-sizing:border-box;width:88px;height:116px;display:flex;align-items:center;justify-content:center;text-align:center;cursor:pointer;list-style:none;border:1.5px solid var(--ink);font-family:var(--font-mono);font-size:12px;font-weight:700;background:var(--brand-fill);color:var(--brand-on)}
.map-more-summary::-webkit-details-marker{display:none}
.map-more-summary:focus-visible{outline:3px solid var(--papyrus-focus);outline-offset:2px}
.map-more-open{display:none}
.map-more[open]>.map-more-summary{width:auto;height:auto;padding:6px 10px;justify-content:flex-start;margin-bottom:6px;display:inline-flex}
.map-more[open] .map-more-closed{display:none}
.map-more[open] .map-more-open{display:inline}
.map-more-tiles{display:flex;flex-wrap:wrap;gap:6px}

.map-legend{padding-top:34px}
.map-legend h2,.map-why h2{margin:0 0 12px;font-size:22px;font-weight:800}
.map-legend ul{list-style:none;margin:0;padding:0}
.map-legend-list{display:grid;gap:10px}
.map-legend-list li{display:grid;grid-template-columns:52px minmax(0,1fr);gap:14px;align-items:center;font-size:14px}
.map-legend-tile{display:block;width:52px;height:60px;box-sizing:border-box;background:var(--paper)}
.map-legend-status-list{display:flex;flex-wrap:wrap;gap:8px 22px;margin-top:14px!important;font-size:14px}
.map-legend-status-list li{display:inline-flex;align-items:center;gap:8px}
.map-legend-status{width:16px;height:16px}
.map-legend-rules{margin-top:14px!important;font-size:14px;display:grid;gap:4px}
.map-why{padding:44px 0 24px;max-width:80ch}
.map-why p{margin:0;font-size:15px}
.map-edited{margin:14px 0 0!important}
.map-group-definitions{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr));gap:10px 28px;margin:10px 0 0}
.map-group-definitions div{border-top:4px solid var(--brand-fill);padding-top:8px}
.map-group-definitions dt{font-family:var(--font-title);font-stretch:125%;font-weight:800}
.map-group-definitions dd{margin:2px 0 0;font-size:14px}

.map-graph-layout{display:flex;flex-wrap:wrap;gap:36px}
.map-graph-main{flex:999 1 560px;min-width:0}
.map-centre-picker{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.map-centre-input{position:absolute;opacity:0;pointer-events:none}
.map-centre-labels{display:flex;flex-wrap:wrap;gap:6px}
.map-centre-labels label{font-family:var(--font-mono);font-size:12px;min-height:36px;box-sizing:border-box;padding:8px 10px;border:1.5px solid var(--ink);cursor:pointer}
.map-centre-panels{flex:1 1 100%;margin-top:8px}
.map-centre-panel{display:none}
#map-centre-0:checked~.map-centre-panels [data-centre="map-centre-0"],
#map-centre-1:checked~.map-centre-panels [data-centre="map-centre-1"],
#map-centre-2:checked~.map-centre-panels [data-centre="map-centre-2"],
#map-centre-3:checked~.map-centre-panels [data-centre="map-centre-3"],
#map-centre-4:checked~.map-centre-panels [data-centre="map-centre-4"]{display:block}
#map-centre-0:checked~.map-centre-labels label[for="map-centre-0"],
#map-centre-1:checked~.map-centre-labels label[for="map-centre-1"],
#map-centre-2:checked~.map-centre-labels label[for="map-centre-2"],
#map-centre-3:checked~.map-centre-labels label[for="map-centre-3"],
#map-centre-4:checked~.map-centre-labels label[for="map-centre-4"]{background:var(--brand-fill);color:var(--brand-on);border-color:var(--brand-on);font-weight:700}
.map-centre-input:focus-visible+*,.map-centre-input:focus-visible~.map-centre-labels{outline:2px solid var(--papyrus-focus);outline-offset:2px}
.map-centre-card{border-top:4px solid var(--brand);padding-top:12px;margin:10px 0 18px}
.map-centre-card h3{margin:4px 0 6px;font-size:26px}
.map-centre-count{margin:0 0 8px;font-size:14px}
.map-open-concept{font-weight:700;font-size:14px;color:var(--ink)}
.map-neighbours{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(280px,100%),1fr));gap:24px}
.map-neighbour-column h4{display:flex;align-items:center;gap:10px;margin:0 0 8px;font-family:var(--font-mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;font-weight:700}
.map-line-glyph{flex:none;color:var(--ink)}
.map-neighbour-column ul{list-style:none;margin:0;padding:0}
.map-neighbour-column li{display:grid;grid-template-columns:minmax(0,1fr) 48px 28px;gap:8px;align-items:center;padding:6px 0;border-top:1px solid var(--rule)}
.map-chip{display:inline-flex;gap:6px;align-items:baseline;font-family:var(--font-mono);font-size:12px;color:var(--ink);text-decoration:none;min-width:0}
a.map-chip:hover{color:var(--brand-text);text-decoration:underline}
.map-chip i{font-style:normal;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.map-weight{display:block;height:8px;border:1px solid var(--ink)}
.map-weight span{display:block;height:100%;background:var(--ink)}
.map-weight-number{font-family:var(--font-mono);font-size:12px;text-align:right}
.map-neighbour-more{margin:6px 0 0;font-family:var(--font-mono);font-size:11px;color:var(--muted)}
.map-lines{display:flex;flex-wrap:wrap;gap:8px 22px;align-items:center;margin-top:20px;font-family:var(--font-mono);font-size:12px}
.map-lines ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px 22px}
.map-lines li{display:inline-flex;align-items:center;gap:8px}
.map-lines-note{margin:0;color:var(--muted)}
.map-new{flex:1 1 300px;min-width:0;border-top:4px solid var(--brand);padding-top:12px;align-self:flex-start}
.map-new h2{margin:0;font-size:25px;font-weight:800;letter-spacing:-.02em}
.map-new-count{margin:6px 0 10px!important}
.map-new ul{list-style:none;margin:0;padding:0}
.map-new li{display:grid;grid-template-columns:16px minmax(0,1fr) auto;gap:10px;align-items:center;padding:9px 0;border-bottom:1px solid var(--rule)}
.map-new li a,.map-new li span:not(.kicker){font-weight:700;font-size:15px;color:var(--ink)}
.map-new-link{display:inline-block;margin-top:10px;font-family:var(--font-mono);font-size:12px;font-weight:700;color:var(--ink)}

.map-pattern-defs{position:absolute;width:0;height:0}
.map-pattern-ground{fill:var(--paper-raised)}
.map-pattern-ink{fill:var(--ink)}
.map-pattern-brand{fill:var(--brand)}
.map-pattern-line{fill:none;stroke:var(--ink);stroke-width:1.2}
.map-now{padding-bottom:12px}
.map-cluster-list{list-style:none;margin:16px 0;padding:0}
.map-cluster-list li{display:grid;grid-template-columns:minmax(0,240px) 240px auto auto;gap:6px 16px;align-items:center;padding:9px 0;border-bottom:1px dotted var(--rule)}
.map-cluster-name{font-weight:700;font-size:15px}
.map-cluster-name a{color:var(--ink)}
.map-cluster-bar{max-width:100%;height:14px;color:var(--ink)}
.map-cluster-count,.map-cluster-state{font-family:var(--font-mono);font-size:12px}
.map-cold-start{border:1.5px dashed var(--rule-strong);padding:18px 20px;margin-top:8px}
.map-cold-start b{font-family:var(--font-title);font-stretch:125%;font-size:20px;font-weight:800}
.map-cold-start p{margin:6px 0 0;max-width:62ch}
.map-river-sample{margin-top:52px}
.map-river-note{margin:14px 0;max-width:64ch;font-size:15px}
.map-river-figure{display:flex;gap:16px;align-items:flex-end}
.map-river-chart{flex:1 1 auto;min-width:0;height:auto;color:var(--ink);border-bottom:2px solid var(--ink)}
.map-river-labels{flex:0 0 170px;list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:700}
.map-river-labels li{display:flex;gap:8px;align-items:center}
.map-river-axis{display:flex;justify-content:space-between;margin-top:4px;max-width:calc(100% - 186px)}
.map-river-legend{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px 22px;font-family:var(--font-mono);font-size:12px}
.map-river-legend li{display:inline-flex;gap:6px;align-items:center}

@media (max-width:720px){
  .map-header{padding-top:20px}
  .map-table-scroll{max-height:75vh;overflow:auto}
  .map-tablist label{margin-right:14px}
  .map-cluster-list li{grid-template-columns:1fr auto}
  .map-cluster-bar{grid-column:1/-1;order:3}
  .map-river-figure{flex-direction:column;align-items:stretch}
  .map-river-labels{flex:none}
  .map-river-axis{max-width:100%}
  .map-neighbour-column li{grid-template-columns:minmax(0,1fr) 36px 24px}
}
