:root {
  --ink: #16221d;
  --ink-soft: #52615a;
  --paper: #f3f1e9;
  --paper-deep: #e7e3d7;
  --surface: #fbfaf5;
  --line: #c9c9be;
  --moss: #365b46;
  --moss-dark: #1c382c;
  --lichen: #b8c58f;
  --ochre: #c88a4a;
  --clay: #a8563a;
  --night: #17231e;
  --mono: "DM Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  --sans: "Manrope", system-ui, sans-serif;
}

* { box-sizing: border-box; }
html { min-width: 0; background: var(--night); }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: var(--sans); -webkit-font-smoothing: antialiased; }
button, input { font: inherit; }
button:focus-visible, input:focus-visible, a:focus-visible { outline: 2px solid var(--ochre); outline-offset: 2px; }
.skip-link { position: fixed; z-index: 3000; top: 10px; left: 10px; padding: 10px 14px; color: var(--ink); background: #fff; transform: translateY(-180%); }
.skip-link:focus { transform: translateY(0); }
.education-atlas { min-height: calc(100vh - 88px); }
.atlas-titlebar { position: relative; z-index: 20; display: grid; grid-template-columns: minmax(300px, 1fr) minmax(300px, 540px); align-items: center; gap: 20px; padding: 11px clamp(18px, 3vw, 48px); border-bottom: 1px solid var(--line); background: var(--surface); }
.atlas-titlebar h1 { margin: 2px 0 1px; font-size: clamp(22px, 2.1vw, 30px); letter-spacing: -.035em; }
.atlas-titlebar p { max-width: 660px; margin: 0; color: var(--ink-soft); font-size: 12px; line-height: 1.55; }
.eyebrow, .breadcrumbs, .panel-label { color: var(--clay); font: 500 8px/1.4 var(--mono); letter-spacing: .1em; text-transform: uppercase; }
.eyebrow { margin-top: 3px !important; }
.breadcrumbs { display: flex; gap: 7px; color: var(--ink-soft); }
.breadcrumbs a { color: inherit; text-decoration: none; }
.breadcrumbs strong { color: var(--ink); font-weight: 500; }
.atlas-search { position: relative; }
.atlas-search label { display: block; margin-bottom: 6px; color: var(--ink-soft); font: 500 8px var(--mono); letter-spacing: .08em; text-transform: uppercase; }
.atlas-search input { width: 100%; height: 39px; padding: 0 13px; border: 1px solid #adb2a8; color: var(--ink); background: #fff; font-size: 12px; }
.atlas-search > .search-results { position: absolute; z-index: 1000; top: 100%; right: 0; left: 0; max-height: 280px; margin: 4px 0 0; padding: 0; overflow: auto; border: 1px solid var(--line); background: #fff; box-shadow: 0 12px 25px rgba(22,34,29,.18); list-style: none; }
.atlas-search > .search-results button { width: 100%; display: grid; gap: 2px; padding: 10px 12px; border: 0; border-bottom: 1px solid #e2e1d9; text-align: left; background: #fff; cursor: pointer; }
.atlas-search > .search-results button:hover { background: var(--paper); }
.atlas-search > .search-results small { color: var(--clay); font: 7px var(--mono); letter-spacing: .08em; text-transform: uppercase; }

.atlas-workspace { width: 100%; max-width: 1680px; margin: 0 auto; border-inline: 1px solid var(--line); background: var(--paper); }
.map-section, .context-panel { min-width: 0; border-bottom: 1px solid var(--line); }
.section-topline { min-height: 46px; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 0 clamp(18px, 3vw, 48px); border-bottom: 1px solid var(--line); color: var(--ink-soft); background: var(--paper-deep); font: 500 8px/1.4 var(--mono); letter-spacing: .1em; text-transform: uppercase; }
.section-topline h2 { margin: 0; color: var(--ink); font: inherit; }
.section-topline h2 span { color: var(--clay); }
.map-column { position: relative; height: clamp(440px, 56vh, 580px); min-height: 420px; overflow: hidden; background: #e7e9df; }
.map-column > .map-toolbar { position: absolute; z-index: 800; top: 12px; right: 12px; left: 12px; display: flex; align-items: center; justify-content: space-between; gap: 12px; pointer-events: none; }
.layer-controls { display: flex; flex-wrap: wrap; gap: 5px; pointer-events: auto; }
.layer-controls button { min-height: 35px; display: inline-flex; align-items: center; gap: 7px; padding: 0 10px; border: 1px solid var(--line); color: var(--ink-soft); background: rgba(251,250,245,.95); box-shadow: 0 3px 10px rgba(22,34,29,.1); font: 500 8px var(--mono); text-transform: uppercase; cursor: pointer; }
.layer-controls button[aria-pressed="false"] { opacity: .55; text-decoration: line-through; }
.layer-dot { width: 8px; height: 8px; border: 2px solid var(--surface); border-radius: 50%; background: var(--ochre); box-shadow: 0 0 0 1px var(--ochre); }
.layer-line { width: 14px; height: 0; border-top: 2px solid var(--moss); }
.layer-swatch { width: 12px; height: 9px; border: 1px solid #526f5d; background: rgba(120,150,111,.45); }
.map-status { max-width: 265px; padding: 8px 10px; color: var(--ink-soft); background: rgba(251,250,245,.93); box-shadow: 0 3px 10px rgba(22,34,29,.1); font: 7px/1.45 var(--mono); pointer-events: auto; }
.atlas-map { width: 100%; height: 100%; background: #e5e8de; }
.atlas-map.map-unavailable { display: grid; place-content: center; padding: 30px; color: var(--ink-soft); text-align: center; font-size: 12px; }
.map-mode-control { display: none; }
.map-legend { position: absolute; z-index: 800; right: 12px; bottom: 12px; left: 12px; min-height: 35px; display: flex; align-items: center; flex-wrap: wrap; gap: 13px; padding: 8px 11px; color: var(--ink-soft); background: rgba(251,250,245,.94); box-shadow: 0 3px 12px rgba(22,34,29,.12); font: 7px var(--mono); text-transform: uppercase; }
.map-legend span { display: inline-flex; align-items: center; gap: 6px; }
.map-legend i { width: 14px; height: 8px; display: inline-block; }
.legend-institution { width: 8px !important; border-radius: 50%; background: var(--ochre); }
.legend-selected-location { width: 9px !important; height: 9px !important; border: 2px solid var(--surface); border-radius: 50%; background: var(--clay); box-shadow: 0 0 0 1px var(--clay); }
.legend-sibling-location { width: 8px !important; height: 8px !important; border: 1px solid var(--moss); border-radius: 50%; background: #6f806f; }
.legend-system-line { height: 0 !important; border-top: 1px dashed var(--moss); }
.legend-facility { width: 8px !important; height: 8px !important; border: 1px solid var(--moss-dark); border-radius: 50%; background: var(--lichen); }
.legend-needs-review { width: 9px !important; height: 9px !important; border: 2px dashed var(--ochre); border-radius: 50%; }
.map-column:not([data-atlas-context="system"]) .legend-system-only { display: none; }
.map-column[data-atlas-context="system"] .legend-local-location { display: none; }
.legend-county { height: 0 !important; border-top: 2px solid var(--moss); }
.legend-land { border: 1px solid #526f5d; background: rgba(120,150,111,.45); }
.map-legend strong { margin-left: auto; color: var(--clay); font-weight: 500; }
.leaflet-container { font-family: var(--sans); }
.leaflet-tooltip { border: 1px solid var(--line); border-radius: 0; color: var(--ink); background: var(--surface); box-shadow: 0 4px 14px rgba(22,34,29,.16); font-size: 10px; }
.leaflet-tooltip.education-map-callout { padding: 5px 7px; border-left: 3px solid var(--moss); font: 8px/1.35 var(--mono); }
.leaflet-tooltip.education-map-callout.is-selected { z-index: 900; border-color: var(--clay); color: var(--paper); background: var(--moss-dark); box-shadow: 0 5px 18px rgba(22,34,29,.28); }
.leaflet-tooltip.education-map-callout.is-resource { border-left-color: var(--ochre); background: #fff8e6; }
.leaflet-tooltip.education-map-callout.is-facility { border-left-color: var(--lichen); }
.leaflet-tooltip.education-map-callout.is-facility .identity-badge { margin-right: 5px; }

.institution-panel { background: var(--surface); }
.county-panel { background: #ebe9df; }
.panel-content { padding: clamp(24px, 3vw, 44px) clamp(18px, 4vw, 64px) clamp(34px, 5vw, 72px); }
.context-title { margin-bottom: 22px; }
.context-title h2 { margin: 4px 0; font-size: clamp(24px, 2.3vw, 34px); letter-spacing: -.035em; }
.context-title p { margin: 0; color: var(--ink-soft); font-size: 11px; }
.status-chip { display: inline-block; margin-top: 9px; padding: 4px 7px; border: 1px solid #aab6a6; color: var(--moss); background: #eef1e6; font: 500 7px var(--mono); letter-spacing: .05em; text-transform: uppercase; }
.atlas-context-switch { width: min(100%, 390px); display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0 0 12px; padding: 3px; border: 1px solid var(--line); background: var(--paper-deep); }
.atlas-context-switch button { min-height: 38px; padding: 7px 10px; border: 0; color: var(--ink-soft); background: transparent; font: 500 8px/1.3 var(--mono); text-transform: uppercase; cursor: pointer; }
.atlas-context-switch button[aria-selected="true"] { color: var(--paper); background: var(--moss-dark); }
.county-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin: 0; }
.county-metrics div { padding: 12px 14px; border: 1px solid var(--line); background: rgba(255,255,255,.5); }
.county-metrics dt { color: var(--ink-soft); font: 7px var(--mono); letter-spacing: .06em; text-transform: uppercase; }
.county-metrics dd { margin: 3px 0 0; color: var(--moss-dark); font-size: 21px; font-weight: 700; }
.context-section { margin-top: 23px; padding-top: 18px; border-top: 1px solid var(--line); }
.context-section h3 { display: flex; justify-content: space-between; gap: 8px; margin: 0 0 12px; color: var(--ink-soft); font: 500 8px var(--mono); letter-spacing: .08em; text-transform: uppercase; }
.context-section h3 span { color: var(--clay); }
.county-panel .panel-content { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 0 26px; }
.county-panel .context-title { grid-column: span 4; }
.county-panel .county-metrics { grid-column: span 8; align-self: start; }
.county-panel .context-section { grid-column: span 4; }
.county-panel .context-section:nth-last-child(-n + 2) { grid-column: span 6; }
.context-list, .course-list { display: grid; gap: 7px; margin: 0; padding: 0; list-style: none; }
.context-list button { width: 100%; display: grid; grid-template-columns: 9px 1fr; gap: 9px; padding: 8px 0; border: 0; text-align: left; background: transparent; cursor: pointer; }
.context-list button::before { width: 8px; height: 8px; margin-top: 3px; border-radius: 50%; background: var(--ochre); content: ""; }
.context-list strong, .context-list small { display: block; }
.context-list strong { font-size: 11px; }
.context-list small { margin-top: 2px; color: var(--ink-soft); font-size: 9px; line-height: 1.4; }
.plain-list { margin: 0; padding-left: 16px; color: var(--ink-soft); font-size: 10px; line-height: 1.7; }
.plain-list small { color: var(--ink-soft); }
.relationship-summary { display: grid; gap: 7px; margin: 0 0 10px; padding: 0; color: var(--ink-soft); font-size: 9px; list-style: none; }
.relationship-summary li { display: flex; align-items: center; gap: 8px; }
.relationship-swatch { width: 22px; border-top: 2px solid var(--moss); }
.relationship-swatch.is-geographic { border-top-color: var(--ochre); border-top-style: dashed; }
.empty-state, .loading-state, .data-note { margin: 0; color: var(--ink-soft); font-size: 10px; line-height: 1.65; }
.data-note { padding: 10px; border-left: 2px solid var(--lichen); background: rgba(255,255,255,.48); }
.system-summary { display: grid; gap: 7px; padding: 18px; border: 1px solid var(--line); background: var(--paper); }
.system-summary h3, .system-summary p { margin: 0; }
.system-summary h3 { font-size: 20px; }
.system-summary > p:not(.panel-label, .data-note) { color: var(--ink-soft); font-size: 10px; }
.system-location-grid, .system-program-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 230px), 1fr)); gap: 8px; }
.system-location-card, .system-program-card { min-width: 0; min-height: 86px; display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: start; gap: 10px; padding: 13px; border: 1px solid var(--line); color: var(--ink); text-align: left; background: var(--paper); cursor: pointer; }
.system-location-card:hover, .system-program-card:hover, .location-group-card > button:hover { background: #eef1e6; }
.system-location-card.is-selected, .system-program-card.is-selected { border-color: var(--moss); box-shadow: inset 3px 0 0 var(--moss); background: #eef1e6; }
.system-location-card strong, .system-location-card small, .system-location-card em, .system-program-card strong, .system-program-card span, .system-program-card small { display: block; overflow-wrap: anywhere; }
.system-location-card strong, .system-program-card strong { font-size: 11px; }
.system-location-card small, .system-program-card span, .system-program-card small { margin-top: 4px; color: var(--ink-soft); font-size: 8px; line-height: 1.45; }
.system-location-card em { margin-top: 6px; color: var(--clay); font: normal 7px/1.4 var(--mono); text-transform: uppercase; }
.location-marker-symbol { color: var(--clay); font-size: 17px; line-height: 1; }
.system-program-card { grid-template-columns: 1fr; min-height: 74px; }
.system-program-card small { color: var(--clay); }
.location-group-list { display: grid; gap: 9px; }
.location-group-card { border: 1px solid var(--line); background: var(--paper); }
.location-group-card.is-selected { border-color: var(--ochre); }
.location-group-card > button { width: 100%; display: grid; gap: 5px; padding: 13px; border: 0; color: var(--ink); text-align: left; background: transparent; cursor: pointer; }
.location-group-card > button strong { font-size: 12px; }
.location-group-card > button small { color: var(--ink-soft); font-size: 8px; }
.location-group-card ul { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; padding: 0 13px 13px; list-style: none; }
.location-group-card li button { min-height: 31px; padding: 5px 9px; border: 1px solid var(--line); color: var(--moss-dark); background: var(--surface); font-size: 8px; cursor: pointer; }
.identity-badge { display: inline-block; width: fit-content; padding: 3px 6px; border: 1px solid #aab6a6; color: var(--moss); background: #eef1e6; font: 500 6px var(--mono); letter-spacing: .04em; text-transform: uppercase; }
.facility-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 250px), 1fr)); gap: 8px; margin: 0; padding: 0; list-style: none; }
.facility-list li { display: grid; gap: 5px; padding: 13px; border: 1px solid var(--line); background: var(--paper); }
.facility-list strong { font-size: 11px; }
.facility-list small, .facility-list p { margin: 0; color: var(--ink-soft); font-size: 8px; line-height: 1.5; }
.facility-toggle { min-height: 36px; margin: 0 0 10px; padding: 7px 11px; border: 1px solid var(--moss); color: var(--moss); background: transparent; font: 500 8px var(--mono); text-transform: uppercase; cursor: pointer; }
.facility-toggle[aria-pressed="true"] { color: var(--paper); background: var(--moss); }
.program-availability h4 { margin: 0 0 10px; font-size: 15px; }
.program-availability ul { display: grid; gap: 6px; margin: 0; padding: 0; list-style: none; }
.program-availability li button { width: 100%; min-height: 42px; display: grid; grid-template-columns: 18px minmax(0, 1fr); gap: 7px; padding: 8px 10px; border: 1px solid var(--line); color: var(--ink); text-align: left; background: var(--paper); cursor: pointer; }
.program-availability li strong, .program-availability li small { display: block; }
.program-availability li small { margin-top: 2px; color: var(--ink-soft); font-size: 8px; }
.program-availability li.is-current button { border-color: var(--moss); background: #eef1e6; }
.program-availability li.is-needs-review button, .context-list li.is-needs-review button { border-left: 3px dashed var(--ochre); }
.program-availability li.is-needs-review small, .context-list li.is-needs-review small { color: var(--clay); }
.online-availability { display: grid; grid-template-columns: auto 1fr; gap: 3px 9px; align-items: center; margin-top: 8px; padding: 10px; border: 1px dashed var(--moss); background: #eef1e6; }
.online-availability .identity-badge { grid-row: span 2; }
.online-availability strong, .online-availability small { display: block; }
.online-availability small { color: var(--ink-soft); font-size: 8px; }
.tab-list { display: flex; margin: 0 0 22px; padding: 0; border-bottom: 1px solid var(--line); }
.tab-list button { min-height: 43px; padding: 0 clamp(10px, 2vw, 18px); border: 0; border-bottom: 2px solid transparent; color: var(--ink-soft); background: transparent; font: 500 8px var(--mono); cursor: pointer; }
.tab-list button[aria-selected="true"] { color: var(--moss); border-bottom-color: var(--moss); }
.institution-meta { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin: 13px 0 0; }
.institution-meta div { padding: 12px; border: 1px solid var(--line); }
.institution-meta dt { color: var(--ink-soft); font: 7px var(--mono); text-transform: uppercase; }
.institution-meta dd { margin: 4px 0 0; font-size: 10px; line-height: 1.4; }
.course-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.course-card { border: 1px solid var(--line); background: var(--paper); }
.course-card > button { width: 100%; height: 100%; padding: 14px; border: 0; text-align: left; background: transparent; cursor: pointer; }
.course-card > button:hover { background: rgba(184,197,143,.16); }
.course-card > button > span { display: inline-block; margin-top: 9px; color: var(--moss); font: 7px var(--mono); text-transform: uppercase; }
.course-card h4 { margin: 0 0 5px; font-size: 11px; }
.course-card p { margin: 0; color: var(--ink-soft); font-size: 9px; line-height: 1.55; }
.course-card .course-meta { margin-bottom: 6px; color: var(--clay); font: 7px var(--mono); text-transform: uppercase; }
.relationship-kind { margin: 10px 0 4px; color: var(--moss); font: 500 8px var(--mono); text-transform: uppercase; }
.relationship-copy { margin: 0; max-width: 980px; color: var(--ink-soft); font-size: 10px; line-height: 1.65; }
.source-link { display: inline-flex; margin-top: 13px; color: var(--moss); font: 500 8px var(--mono); text-transform: uppercase; }

.relationship-network > h3 { margin: 0 0 8px; color: var(--ink); font: 600 18px/1.3 var(--sans); letter-spacing: -.01em; }
.relationship-map-root { position: relative; margin: 18px 0 0; border: 1px solid var(--line); background: #f7f5ef; }
.relationship-map-root .embedded-map-app { display: block; height: auto; min-height: 0; overflow: hidden; border-bottom: 0; }
.relationship-map-root .map-workspace { position: relative; height: clamp(520px, 48vw, 620px); min-height: 0; overflow: hidden; }
.relationship-map-root .map-toolbar { position: relative; inset: auto; min-height: 48px; flex-direction: row; align-items: center; pointer-events: auto; }
.relationship-map-root .map-toolbar p { max-width: min(60vw, 620px); overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.relationship-map-root .map-canvas { overflow: auto; overscroll-behavior: contain; contain: layout paint; }
.relationship-map-root .embedded-graph-tools { height: clamp(280px, 28vw, 360px); display: grid; grid-template-columns: minmax(0, 2fr) minmax(290px, .8fr); overflow: hidden; border-top: 1px solid var(--line); }
.relationship-map-root .map-controls, .relationship-map-root .map-details { position: static; width: auto; height: 100%; min-width: 0; overflow-y: auto; overscroll-behavior: contain; border: 0; box-shadow: none; transform: none; }
.relationship-map-root .map-controls { display: grid; grid-template-columns: minmax(240px, .8fr) minmax(360px, 1.2fr); border-right: 1px solid var(--line); }
.relationship-map-root .search-wrap { grid-column: 1; padding: 16px 15px 0; border-bottom: 0; }
.relationship-map-root .filters { grid-column: 2; grid-row: 1 / span 2; grid-template-columns: repeat(2, minmax(0, 1fr)); align-content: start; padding: 15px; border-bottom: 0; }
.relationship-map-root .filters legend { grid-column: 1 / -1; }
.relationship-map-root .filters label { min-height: 28px; font-size: 9px; }
.relationship-map-root .legend { grid-column: 1; padding: 15px; }
.relationship-map-root .detail-content { padding: 17px 15px 24px; }
.relationship-map-root .detail-content h2 { font-size: 20px; }
.relationship-map-root .panel-scrim { display: none !important; }

@media (max-width: 1000px) {
  .atlas-titlebar { grid-template-columns: minmax(260px, 1fr) minmax(280px, 420px); }
  .county-panel .context-title, .county-panel .county-metrics { grid-column: 1 / -1; }
  .county-panel .context-section, .county-panel .context-section:nth-last-child(-n + 2) { grid-column: span 6; }
  .relationship-map-root .embedded-graph-tools { height: auto; grid-template-columns: 1fr; overflow: visible; }
  .relationship-map-root .map-controls, .relationship-map-root .map-details { height: auto; max-height: 340px; }
  .relationship-map-root .map-controls { border-right: 0; border-bottom: 1px solid var(--line); }
}

@media (max-width: 900px), (pointer: coarse) {
  .map-mode-control { position: absolute; z-index: 950; right: 10px; bottom: 78px; left: 10px; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 8px 8px 8px 12px; color: var(--paper); background: rgba(28,56,44,.95); box-shadow: 0 4px 14px rgba(22,34,29,.25); }
  .map-mode-control p { margin: 0; font: 8px/1.45 var(--mono); }
  .map-mode-control button { min-width: 112px; min-height: 44px; flex: 0 0 auto; border: 1px solid var(--lichen); color: var(--paper); background: var(--moss); font: 500 9px var(--mono); text-transform: uppercase; cursor: pointer; }
  .map-mode-control button[aria-pressed="true"] { color: var(--ink); background: var(--lichen); }
  .map-column[data-map-mode="preview"] .atlas-map,
  .map-column[data-map-mode="preview"] .leaflet-container { touch-action: pan-y !important; }
  .map-column[data-map-mode="interactive"] .atlas-map,
  .map-column[data-map-mode="interactive"] .leaflet-container { touch-action: none; }
}

@media (max-width: 760px) {
  .atlas-titlebar { grid-template-columns: 1fr; gap: 14px; }
  .section-topline { align-items: flex-start; flex-direction: column; justify-content: center; gap: 2px; padding-block: 10px; }
  .map-column { height: clamp(330px, 50vh, 420px); min-height: 330px; }
  .map-column > .map-toolbar { right: 8px; left: 8px; align-items: flex-end; flex-direction: column; }
  .layer-controls { justify-content: flex-end; }
  .map-status { display: none; }
  .map-legend { right: 8px; bottom: 8px; left: 8px; gap: 8px; }
  .map-legend strong { width: 100%; margin: 0; }
  .map-mode-control { bottom: 78px; }
  .county-panel .panel-content { display: block; }
  .county-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .institution-meta { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .course-list { grid-template-columns: 1fr; }
  .system-location-grid, .system-program-grid, .facility-list { grid-template-columns: 1fr; }
  .relationship-map-root .map-workspace { height: clamp(430px, 62vh, 520px); }
  .relationship-map-root .map-controls { grid-template-columns: 1fr; }
  .relationship-map-root .search-wrap, .relationship-map-root .filters, .relationship-map-root .legend { grid-column: 1; grid-row: auto; }
  .relationship-map-root .filters { border-top: 1px solid var(--line); }
  .relationship-map-root .legend { border-top: 1px solid var(--line); }
}

@media (max-width: 480px) {
  .atlas-titlebar { padding: 14px 16px; }
  .atlas-titlebar h1 { font-size: 26px; }
  .panel-content { padding-inline: 16px; }
  .atlas-context-switch { width: 100%; }
  .atlas-context-switch button { min-width: 0; padding-inline: 5px; font-size: 7px; }
  .system-summary, .system-location-card, .system-program-card, .facility-list li { padding: 11px; }
  .system-location-card { grid-template-columns: 18px minmax(0, 1fr); }
  .layer-controls { max-width: calc(100vw - 16px); gap: 3px; }
  .layer-controls button { min-height: 34px; padding-inline: 7px; font-size: 7px; }
  .map-mode-control { align-items: stretch; flex-direction: column; gap: 7px; bottom: 91px; padding: 9px; }
  .map-mode-control button { width: 100%; }
  .map-legend span { font-size: 6px; }
  .tab-list { overflow-x: auto; overscroll-behavior-inline: contain; }
  .tab-list button { flex: 1 0 auto; min-height: 46px; }
  .map-column { height: clamp(300px, 48vh, 360px); min-height: 300px; }
  .relationship-map-root .map-workspace { height: clamp(380px, 58vh, 460px); }
  .relationship-map-root .embedded-graph-tools { grid-template-columns: minmax(0, 1fr); }
  .relationship-map-root .map-controls, .relationship-map-root .map-details { max-height: 300px; }
  .relationship-map-root .filters { grid-template-columns: 1fr; }
  .relationship-map-root .filters legend { grid-column: 1; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}
