/* Annexation records and the map explorer share the site's civic editorial style. */
.record-hero { padding: clamp(2.5rem, 5vw, 5rem) 0 2.5rem; background: #edf2ef; border-bottom: 1px solid #dce5df; }
.record-hero h1 { max-width: 1000px; font: 400 clamp(2.4rem, 5vw, 4.3rem)/1.08 var(--font-heading); letter-spacing: -.035em; color: #103e33; margin: .8rem 0 1.25rem; }
.record-hero__lead { max-width: 820px; font-size: clamp(1.1rem, 2vw, 1.3rem); line-height: 1.65; }
.record-hero__meta { margin-top: 1.2rem; color: #52605a; font-size: .9375rem; }
.record-hero__back { font-weight: 600; }
.record-actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1.6rem; }
.record-actions .btn--secondary, .map-download.btn--secondary { color: #185747; border-color: #a9bdb0; background: #fff; }
.record-actions .btn--secondary:hover, .map-download.btn--secondary:hover { color: #103e33; border-color: #185747; background: #e4eee7; }
.record-section a:not(.btn), .record-nav a, .record-hero__back, .map-source-note a:not(.btn), .annexation-feature__image span { color: #185747; }
.record-layout { display: grid; grid-template-columns: 210px minmax(0, 1fr); gap: clamp(2rem, 5vw, 5rem); padding-block: 3rem 5rem; }
.record-nav { align-self: start; position: sticky; top: calc(var(--header-height) + var(--total-banner-height) + 20px); }
.record-nav p { font-size: .8rem; text-transform: uppercase; letter-spacing: .1em; font-weight: 700; margin-bottom: .75rem; }
.record-nav a { display: block; padding: .65rem 0; border-bottom: 1px solid #dde5e1; font-size: .9375rem; }
.record-section { padding-bottom: 2.6rem; margin-bottom: 2.6rem; border-bottom: 1px solid #dde5e1; scroll-margin-top: calc(var(--header-height) + var(--total-banner-height) + 20px); }
.record-section:last-child { border: 0; margin-bottom: 0; padding-bottom: 0; }
.record-section h2 { font: 400 clamp(1.7rem, 3vw, 2.3rem)/1.2 var(--font-heading); letter-spacing: -.02em; margin-bottom: 1rem; }
.record-section h3 { font-size: 1.2rem; margin: 1.5rem 0 .65rem; }
.record-section p + p { margin-top: 1rem; }
.record-section ul, .record-section ol { padding-left: 1.35rem; margin-block: 1rem; }
.record-section li { padding-left: .25rem; margin-bottom: .7rem; }
.record-note { font-size: .9375rem; color: #52605a; }
.record-status { display: flex; align-items: center; flex-wrap: wrap; gap: .7rem 1rem; margin-top: 1.3rem; font-size: .9375rem; }
.record-status strong { display: inline-block; padding: .4rem .75rem; color: #103e33; background: #dce9df; border-radius: 4px; }
.record-timeline { list-style: none; padding-left: 0 !important; }
.record-timeline li { display: grid; grid-template-columns: 130px 1fr; gap: 1rem; padding: 1.2rem 0; margin: 0; border-top: 1px solid #dde5e1; }
.record-timeline time, .record-timeline__date { font-size: .9375rem; font-weight: 650; color: #185747; }
.record-timeline h3 { margin: 0 0 .5rem; font-size: 1.05rem; }
.record-timeline p { font-size: 1rem; }
.record-address { font-style: normal; padding-block: .5rem; line-height: 1.8; }
.record-disclosure { border-top: 1px solid #dde5e1; padding-block: 1.1rem; }
.record-disclosure:last-of-type { border-bottom: 1px solid #dde5e1; }
.record-disclosure summary { cursor: pointer; font-weight: 650; padding: .3rem 0; }
.record-disclosure[open] summary { margin-bottom: 1rem; }
.letter-template { font-family: inherit; white-space: pre-wrap; overflow-wrap: anywhere; background: #f4f7f6; padding: 1.3rem; border: 1px solid #dde5e1; margin-block: 1rem; font-size: 1rem; line-height: 1.7; }
.record-sources { list-style: none; padding-left: 0 !important; }
.record-sources li { padding: 1rem 0; border-top: 1px solid #dde5e1; }
.record-sources a { font-weight: 650; }
.record-sources span { display: block; color: #52605a; font-size: .9375rem; margin-top: .3rem; }
.annexation-feature { border-bottom: 1px solid #dde5e1; background: #edf2ef; padding-block: clamp(2rem, 4vw, 3.5rem); }
.annexation-feature__inner { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 2.5rem; align-items: center; }
.annexation-feature h2 { font: 400 clamp(1.9rem, 3.5vw, 2.8rem)/1.15 var(--font-heading); margin: .5rem 0 1rem; letter-spacing: -.025em; }
.annexation-feature__image { display: block; border: 1px solid #cbd8cf; }
.annexation-feature__image img { width: 100%; height: auto; display: block; }
.annexation-feature__image span { display: block; padding: .65rem .85rem; font-size: .875rem; background: #fff; }
.map-page { padding-bottom: 4rem; background: #f8faf8; }
.map-page .record-hero { padding-block: 2rem 2.2rem; background: #edf2ef; }
.map-page .record-hero .editorial-eyebrow { margin-top: 1.4rem; }
.map-page .record-hero h1 { font-size: clamp(2.3rem, 4vw, 3.6rem); margin-block: .5rem .8rem; }
.map-page .record-hero__lead { max-width: 760px; font-size: 1.1rem; }
.map-page .record-hero__meta { margin-top: 1rem; font-size: .85rem; }
.map-workspace { padding-top: 1.8rem; }
.map-button { appearance: none; font: 600 .85rem/1.3 var(--font-primary); padding: .6rem .8rem; border: 1px solid #c9d5cd; border-radius: 6px; background: #fff; color: #163d30; cursor: pointer; min-height: 44px; white-space: nowrap; }
.map-button:hover { background: #eaf1ec; border-color: #789984; }
.map-button[aria-pressed="true"] { background: #185747; border-color: #185747; color: #fff; }
.map-button:disabled { opacity: .45; cursor: default; }
.map-button:focus-visible, .map-bookmark:focus-visible, .map-detail-preview:focus-visible, .map-select:focus-visible { outline: 3px solid #b27927; outline-offset: 3px; }
.map-stage { display: grid; grid-template-columns: 285px minmax(0, 1fr); height: clamp(560px, calc(100svh - 150px), 900px); position: relative; background: #fff; border: 1px solid #cbd8ce; border-radius: 12px; box-shadow: 0 10px 35px #153a2910; overflow: hidden; scroll-margin-top: calc(var(--header-height) + var(--total-banner-height) + 15px); }
.map-sidebar { display: flex; flex-direction: column; min-width: 0; min-height: 0; padding: 1.1rem; background: #f0f4f0; border-right: 1px solid #d6e0d8; }
.map-control-label { display: block; color: #536c5d; text-transform: uppercase; font: 700 .7rem/1.4 var(--font-primary); letter-spacing: .12em; margin-bottom: .5rem; }
.map-select { display: block; width: 100%; min-height: 48px; padding: .65rem 1.8rem .65rem .65rem; border: 1px solid #9cb7a5; border-radius: 6px; color: #143e2d; background-color: white; font: 600 .85rem/1.4 var(--font-primary); cursor: pointer; }
.map-compact-bookmarks { display: none; }
.map-summary { color: #52635a; font-size: .8125rem; line-height: 1.6; margin-top: .85rem; }
.map-bookmarks { border-top: 1px solid #d4dfd6; margin-top: 1rem; padding-top: .7rem; min-height: 0; display: flex; flex-direction: column; flex: 1 1 0; }
.map-bookmark-toggle { display: flex; align-items: center; gap: .5rem; min-height: 30px; flex-shrink: 0; width: 100%; padding: .2rem 0; border: 0; background: none; text-align: left; font: 700 .8rem/1.4 var(--font-primary); color: #294c39; cursor: pointer; }
#map-bookmark-count { margin-left: auto; border: 1px solid #cbd8ce; border-radius: 20px; min-width: 1.5rem; text-align: center; color: #637b6b; font-size: .7rem; }
.map-bookmark-chevron { font-size: 1rem; transition: transform .15s; }
.map-bookmark-toggle[aria-expanded="false"] .map-bookmark-chevron { transform: rotate(-90deg); }
#map-bookmark-list { flex: 1; min-height: 0; margin: .4rem -.45rem 0; overflow-y: auto; scrollbar-width: thin; scrollbar-color: #9bb19f transparent; overscroll-behavior: contain; }
.map-bookmark { appearance: none; display: flex; align-items: flex-start; gap: .7rem; width: 100%; min-height: 48px; padding: .65rem .45rem; text-align: left; border: 1px solid transparent; border-radius: 6px; color: #2a4938; background: transparent; font: inherit; cursor: pointer; }
.map-bookmark:hover { background: #e3ece5; }
.map-bookmark[aria-current] { background: #fff; border-color: #c8d9cb; box-shadow: 0 2px 4px #143c2a07; }
.map-bookmark__number { flex: 0 0 1.2rem; color: #789080; font-size: .65rem; padding-top: .18rem; font-variant-numeric: tabular-nums; }
.map-bookmark strong { display: block; font-size: .8125rem; line-height: 1.4; font-weight: 650; }
.map-bookmark strong + span { display: block; margin-top: .15rem; color: #64786a; font-size: .7rem; line-height: 1.4; }
.map-detail-preview { display: grid; grid-template-columns: 90px minmax(0, 1fr); flex-shrink: 0; width: 100%; margin-top: .85rem; padding: 0; border: 1px solid #c2d2c7; border-radius: 7px; overflow: hidden; background: #fff; color: #244a36; text-align: left; cursor: pointer; font: inherit; }
.map-detail-preview:hover { border-color: #527f62; box-shadow: 0 3px 12px #153a2912; }
.map-detail-preview img { display: block; width: 100%; height: 100%; min-height: 100px; object-fit: cover; transition: filter .15s; }
.map-detail-preview:hover img { filter: brightness(1.04); }
.map-detail-preview > span { display: block; padding: .7rem .65rem; }
.map-detail-preview strong { display: block; font-size: .85rem; }
#map-preview-label { display: block; font-size: .75rem; margin-top: .2rem; color: #627569; }
.map-preview-link { display: block; margin-top: .5rem; font-size: .7rem; font-weight: 650; }
.map-preview-link > span { float: right; }
.map-main { display: flex; flex-direction: column; min-width: 0; min-height: 0; scroll-margin-top: calc(var(--header-height) + var(--total-banner-height) + 8px); }
.map-view-heading { display: flex; justify-content: space-between; align-items: center; gap: .8rem; padding: 1.2rem 1.25rem 1rem; }
.map-view-heading .map-control-label { margin-bottom: .3rem; }
.map-view-heading h2 { font: 400 clamp(1.2rem, 1.8vw, 1.65rem)/1.25 var(--font-heading); letter-spacing: -.02em; color: #193e2c; }
.map-view-heading > .map-button { border: 0; background: #eff4ef; }
.map-view-heading > .map-button[aria-pressed="true"] { background: #185747; color: #fff; }
.map-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: .45rem; padding: .6rem 1.25rem; background: #fafcfa; border-block: 1px solid #e0e7e1; }
.map-toolbar .map-button { font-size: .75rem; min-height: 40px; padding: .5rem .7rem; }
.map-toolbar__spacer { flex: 1; }
.map-zoom-controls { display: flex; margin-right: .2rem; }
.map-zoom-controls .map-button { border-radius: 0 5px 5px 0; }
.map-zoom-controls .map-button:first-child { border-radius: 5px 0 0 5px; border-right: 0; }
.map-toolbar__zoom { min-width: 2.5rem; font-size: 1.2rem !important; line-height: 1 !important; }
.map-view-body { flex: 1; min-height: 0; display: grid; grid-template-columns: minmax(0, 1fr) 220px; }
.map-viewport { position: relative; flex: 1; min-height: 0; display: flex; background: #d9dfd6; }
.map-canvas { flex: 1; min-width: 0; width: 100%; height: 100%; background: #d9dfd6; }
.map-canvas, .map-canvas .openseadragon-container, .map-canvas .openseadragon-canvas { touch-action: none; overscroll-behavior: contain; }
.map-canvas:focus-within { outline: 3px solid #b27927; outline-offset: -3px; }
.map-status { position: absolute; bottom: .8rem; left: .8rem; max-width: min(460px, calc(100% - 125px)); padding: .6rem .75rem; border-radius: 5px; font-size: .75rem; background: #123c2aef; color: #fff; pointer-events: none; }
.map-status:empty { display: none; }
.map-view-footer { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .4rem 1rem; padding: .8rem 1.1rem; border-top: 1px solid #d9e3da; }
.map-help, .map-view-footer a { font-size: .7rem; color: #56705e; line-height: 1.5; margin: 0; }
.map-view-footer a { text-decoration: underline; text-underline-offset: 3px; }
.map-keyboard-note { margin-top: .8rem; color: #64746a; font-size: .75rem; }
.map-stage:fullscreen, .map-stage.is-fullscreen { background: #fff; width: 100%; height: 100%; border: 0; border-radius: 0; box-shadow: none; }
.map-stage.is-fullscreen { position: fixed; inset: 0; z-index: 20000; }
.map-stage:fullscreen .map-sidebar, .map-stage.is-fullscreen .map-sidebar { overflow-y: auto; }
.map-stage:fullscreen .map-canvas, .map-stage.is-fullscreen .map-canvas { height: 100%; min-height: 0; }
.map-detail-grid { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(260px, 1fr); gap: 3rem; margin-top: 3rem; }
.map-detail-grid h2 { font: 400 1.65rem/1.2 var(--font-heading); margin-bottom: 1rem; }
.map-detail-grid h3 { font-size: 1.1rem; margin: 1.2rem 0 .5rem; }
.map-detail-grid p + p { margin-top: .85rem; }
.map-interpretation { border-left: 3px solid #c6d7cc; padding-left: 1.3rem; }
.map-legend-panel { --key-boundary: #c0392b; --key-drain: #0d5aa7; --key-enclosed: #0d5aa7; --key-parcel: #4c5257; --key-watershed: #596067; display: flex; flex-direction: column; min-width: 0; min-height: 0; border-left: 1px solid #d7e1d8; background: #fbfcf9; color: #324d3b; }
.map-legend-heading { flex-shrink: 0; padding: .9rem .9rem .6rem; border-bottom: 1px solid #e0e8df; }
.map-legend-heading h3 { color: #234a35; font: 650 .9375rem/1.3 var(--font-primary); margin: 0; }
.map-legend-heading p { margin-top: .2rem; font-size: .6875rem; line-height: 1.4; color: #6b7d70; }
.map-legend-content { min-height: 0; overflow-y: auto; padding: .6rem .9rem .9rem; overscroll-behavior: contain; scrollbar-width: thin; scrollbar-color: #acbfaf transparent; }
.map-legend-content:focus-visible { outline: 2px solid #b27927; outline-offset: -3px; }
.map-key-items { list-style: none; padding: 0; margin: 0; }
.map-key-items li { display: flex; align-items: center; gap: .6rem; min-height: 27px; padding: .25rem 0; font-size: .75rem; line-height: 1.4; }
.map-key-items li > span:last-child { min-width: 0; }
.map-symbol { position: relative; display: inline-flex; flex: 0 0 32px; width: 32px; height: 18px; align-items: center; justify-content: center; color: #1d292e; font-size: 19px; line-height: 1; }
.map-symbol::before { content: ''; position: absolute; inset: 8px 0 auto; border-top: 2px solid transparent; }
.map-symbol--boundary::before { inset: 3px 1px; border: 2px solid var(--key-boundary); border-radius: 2px; }
.map-symbol--request-parcel::before { border-top: 1px solid #c0392b; }
.map-symbol--parcel::before { border-top: 1px solid var(--key-parcel); }
.map-symbol--drain::before { border-top: 3px solid var(--key-drain); }
.map-symbol--enclosed::before { border-top: 2px dashed var(--key-enclosed); }
.map-symbol--watershed::before { border-top: 2px dotted var(--key-watershed); }
.map-symbol--contour { background: repeating-linear-gradient(170deg, transparent 0 5px, #916d55 5px 6px, transparent 6px 10px); }
.map-symbol--contour::before { border-top: 2px solid #916d55; transform: rotate(-10deg); }
.map-symbol--flood { height: 15px; border: 1px solid #87aed8; border-radius: 2px; background: repeating-linear-gradient(135deg, #c5dcf3 0 4px, #87aed8 4px 5px); }
.map-symbol--wetland { height: 15px; border: 1px solid #8caf94; border-radius: 2px; background: #cde3d1; }
.map-symbol--flow::before { border-top: 1px solid #4f95d6; }
.map-symbol--divide::before { height: 2px; border: 0; background: repeating-linear-gradient(90deg, #d35400 0 10px, transparent 10px 14px, #d35400 14px 16px, transparent 16px 20px); }
.map-symbol--depression { height: 15px; border: 1px dotted #718aa4; border-radius: 3px; background: #e5edf5; }
.map-symbol--buildings { height: 12px; width: 20px; background: #8e959b; border: 1px solid #6e757c; }
.map-symbol--section { font-size: .75rem; font-weight: 650; }
.map-symbol--plss::before { border-top: 1px dashed #8a8f94; }
.map-symbol--township::before { height: 2px; border: 0; background: repeating-linear-gradient(90deg, #343a40 0 10px, transparent 10px 13px, #343a40 13px 15px, transparent 15px 18px, #343a40 18px 20px, transparent 20px 23px); }
.map-symbol--city::before { height: 2px; border: 0; background: repeating-linear-gradient(90deg, #6c3483 0 16px, transparent 16px 20px, #6c3483 20px 22px, transparent 22px 26px); }
.map-legend-panel[data-map-theme="light"] { --key-boundary: #ac4028; --key-drain: #0a3550; --key-enclosed: #4499b7; }
.map-legend-panel[data-map-theme="dark"] { --key-boundary: #f4c76a; --key-drain: #f2feff; --key-enclosed: #61c5df; --key-watershed: #b7c1d6; }
.map-legend-panel[data-map-theme="dark"] .map-symbol { background-color: #1b2639; border-radius: 3px; }
.map-legend-panel[data-map-theme="dark"] .map-symbol--parcel::before { border-color: #91a1b8; }
.map-legend-panel[data-map-theme="perspective"] { --key-boundary: #eadecd; }
.map-legend-panel[data-map-theme="perspective"] .map-symbol--boundary { background: #162d32; border-radius: 3px; }
.map-symbol--glow { border-radius: 3px; background: radial-gradient(ellipse at center, #e7fdff 0 10%, #56d5ed 15%, #155876 45%, #142d38 80%); }
.map-symbol--building-points { border-radius: 3px; background: radial-gradient(circle at 25% 40%, #ffcf99 0 2px, transparent 3px), radial-gradient(circle at 65% 65%, #ffcf99 0 2px, transparent 3px), #162d32; }
.map-legend-scale { margin-block: .8rem .6rem; }
.map-legend-scale > p { display: flex; justify-content: space-between; gap: .5rem; margin-bottom: .4rem; color: #36523d; font-size: .6875rem; font-weight: 650; line-height: 1.4; }
.map-legend-scale > p > span { font-weight: 400; color: #6b7d70; }
.map-ramp, .map-elevation-ramp { height: 14px; border: 1px solid #b8c8b9; border-radius: 3px; }
.map-ramp { background: linear-gradient(90deg, #0b3b5c 0%, #2c7f95 22.36%, #78c0b6 35.36%, #dceccb 50%, #f2efd7 61.24%, #f5ecdb 70.71%, #efe0d0 86.60%, #e7d4c4 100%); }
[data-map-theme="dark"] .map-ramp { background: linear-gradient(90deg, #f2fefe 0%, #9ae0e9 22.36%, #3a9abc 35.36%, #275582 50%, #25345b 61.24%, #212645 70.71%, #171930 86.60%, #101124 100%); }
.map-elevation-ramp { background: linear-gradient(90deg, #b4cfc4, #c3dbc6, #d6e5c8, #e6eccb, #f1ecd0, #efdfc0, #e5ceb0, #d9bea3, #cdb19a); }
.map-ramp-ticks { position: relative; height: 20px; margin-top: .15rem; font-size: .625rem; color: #627567; font-variant-numeric: tabular-nums; }
.map-ramp-ticks > span { position: absolute; top: 0; transform: translateX(-50%); }
.map-ramp-ticks > span:first-child { transform: none; }
.map-ramp-ticks > span:last-child { left: auto !important; right: 0; transform: none; }
.map-scale-labels { display: flex; justify-content: space-between; margin-top: .15rem; font-size: .625rem; color: #627567; font-variant-numeric: tabular-nums; }
.map-legend-more { border-top: 1px solid #dce5da; margin-top: .7rem; padding-top: .25rem; }
.map-legend-more summary { min-height: 36px; padding-block: .55rem; cursor: pointer; font-size: .75rem; font-weight: 650; }
.map-legend-note { font-size: .6875rem; line-height: 1.6; color: #667c6d; margin-top: .75rem; }
.map-source-note { border-top: 1px solid #dde5e1; padding-top: 2rem; margin-top: 2.5rem; color: #52605a; font-size: .9375rem; }
.map-source-note h2 { font: 400 1.8rem/1.2 var(--font-heading); color: #193e2c; margin-bottom: .85rem; scroll-margin-top: calc(var(--header-height) + var(--total-banner-height) + 20px); }
.map-source-note > p { margin-top: 1rem; }
.map-author { color: #37523f; }
.map-catalog { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.6rem 2.5rem; margin-block: 1.6rem 2rem; }
.map-catalog article { border-top: 2px solid #d3dfd5; padding-top: 1rem; }
.map-catalog h3 { color: #234a34; font: 400 1.3rem/1.3 var(--font-heading); margin-bottom: .6rem; }
.map-catalog p { font-size: .875rem; line-height: 1.7; }
.map-catalog .map-catalog__credit { color: #6a7d6f; font-size: .75rem; margin-top: .7rem; }
.map-download { display: inline-block; margin-top: 1rem; }
.map-error { padding: 1rem; color: #8c2537; background: #fff1f2; border: 1px solid #e5b9c1; margin-bottom: 1rem; }
.map-share-url { display: block; width: 100%; padding: .7rem; border: 1px solid #b9c9bf; margin-top: .7rem; font: inherit; font-size: 16px; }
.map-caption-overlay { pointer-events: none; overflow: hidden; }
.map-caption-overlay svg { display: block; width: 100%; height: 100%; }
.map-workspace .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.map-canvas .navigator { border: 2px solid #fff !important; border-radius: 4px; box-shadow: 0 2px 8px #0004; margin: 12px !important; }
.map-no-script { padding: 2rem; background: #edf2ef; }
@media (min-width: 1300px) { .map-workspace { max-width: 1440px; width: calc(100% - 80px); } }
@media (min-width: 761px) and (max-width: 1100px) {
  .map-stage { height: auto; }
  .map-view-body { display: flex; flex-direction: column; }
  .map-canvas { height: 420px; }
  .map-legend-panel { border-left: 0; border-top: 1px solid #d7e1d8; }
  .map-legend-content { overflow: visible; }
  .map-key-items { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 1rem; }
  .map-stage:fullscreen .map-legend-panel, .map-stage.is-fullscreen .map-legend-panel { max-height: 32svh; }
  .map-stage:fullscreen .map-legend-content, .map-stage.is-fullscreen .map-legend-content { overflow-y: auto; }
  .map-stage:fullscreen .map-viewport, .map-stage.is-fullscreen .map-viewport { min-height: 140px; }
}
@media (max-width: 900px) {
  .record-layout { grid-template-columns: 1fr; gap: 2rem; }
  .record-nav { position: static; display: flex; flex-wrap: wrap; gap: .5rem 1rem; }
  .record-nav p { width: 100%; margin-bottom: 0; }
  .record-nav a { padding-block: .35rem; }
  .annexation-feature__inner { grid-template-columns: minmax(0, 1fr) 250px; gap: 1.5rem; }
  .map-stage { grid-template-columns: 235px minmax(0, 1fr); }
  .map-sidebar { padding: 1rem; }
  .map-toolbar { padding-inline: .8rem; }
}
@media (max-width: 760px) {
  .map-stage { grid-template-columns: 1fr; height: auto; }
  .map-sidebar { border-right: 0; border-bottom: 1px solid #d6e0d8; display: grid; grid-template-columns: minmax(0, 1fr) 105px; gap: 0 .85rem; }
  .map-sidebar > .map-control-label, .map-select { grid-column: 1/-1; }
  .map-select { font-size: 16px; }
  .map-summary { grid-column: 1; grid-row: 3; font-size: .75rem; margin-top: .75rem; }
  .map-bookmarks { display: block; grid-column: 1/-1; padding-top: .8rem; margin-top: .85rem; }
  #map-bookmark-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .2rem; }
  .map-bookmark { padding: .6rem .4rem; gap: .45rem; }
  .map-bookmark strong + span { display: none; }
  .map-detail-preview { display: block; grid-column: 2; grid-row: 3; align-self: start; margin-top: .75rem; }
  .map-detail-preview > span { padding: .45rem; }
  .map-detail-preview img { height: auto; min-height: 0; aspect-ratio: 5/3; }
  .map-detail-preview strong { font-size: .7rem; }
  .map-preview-link { font-size: .65rem; margin-top: .25rem; }
  #map-preview-label { display: none; }
  .map-canvas { height: 60svh; min-height: 380px; }
  .map-view-body { display: flex; flex-direction: column; }
  .map-legend-panel { border-left: 0; border-top: 1px solid #d7e1d8; }
  .map-legend-heading { padding: .85rem .9rem .65rem; }
  .map-legend-heading p { font-size: .75rem; }
  .map-legend-content { overflow: visible; padding: .6rem .9rem .9rem; }
  .map-key-items { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .25rem 1rem; }
  .map-key-items li { align-items: flex-start; font-size: .8125rem; padding-block: .3rem; gap: .5rem; }
  .map-symbol { flex-basis: 30px; width: 30px; }
  .map-legend-note { font-size: .75rem; }
  .map-legend-scale { max-width: 420px; }
  .map-legend-scale > p, .map-ramp-ticks, .map-scale-labels { font-size: .75rem; }
  .map-ramp-ticks { height: 23px; }
  .map-legend-more summary { min-height: 44px; font-size: .8rem; }
  .map-view-heading { padding: .9rem; }
  .map-view-heading .map-control-label { display: none; }
  .map-view-heading h2 { font-size: 1.25rem; }
  .map-view-heading > .map-button { padding: .5rem .6rem; font-size: .75rem; }
  .map-view-footer { padding: .7rem .8rem; }
  .map-keyboard-note { display: none; }
  .map-stage:fullscreen, .map-stage.is-fullscreen { display: flex; flex-direction: column; }
  .map-stage:fullscreen .map-sidebar, .map-stage.is-fullscreen .map-sidebar { flex: 0 0 auto; padding: .6rem .8rem; display: block; overflow: visible; }
  .map-stage:fullscreen .map-sidebar, .map-stage.is-fullscreen .map-sidebar { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: .5rem; }
  .map-stage:fullscreen .map-select, .map-stage.is-fullscreen .map-select { grid-column: auto; min-height: 44px; font-size: 16px; }
  .map-stage:fullscreen .map-sidebar > :not(.map-select), .map-stage.is-fullscreen .map-sidebar > :not(.map-select) { display: none; }
  .map-stage:fullscreen .map-compact-bookmarks, .map-stage.is-fullscreen .map-compact-bookmarks { display: block; }
  .map-stage:fullscreen .map-main, .map-stage.is-fullscreen .map-main { flex: 1; min-height: 0; }
  .map-stage:fullscreen .map-view-heading, .map-stage.is-fullscreen .map-view-heading { padding-block: .5rem; }
  .map-stage:fullscreen .map-view-footer, .map-stage.is-fullscreen .map-view-footer { display: none; }
  .map-stage:fullscreen .map-view-body, .map-stage.is-fullscreen .map-view-body { flex: 1; min-height: 0; }
  .map-stage:fullscreen .map-viewport, .map-stage.is-fullscreen .map-viewport { flex: 1 1 0; min-height: 140px; }
  .map-stage:fullscreen .map-legend-panel, .map-stage.is-fullscreen .map-legend-panel { flex: 0 1 auto; max-height: 34svh; }
  .map-stage:fullscreen .map-legend-content, .map-stage.is-fullscreen .map-legend-content { overflow-y: auto; }
  .map-stage:fullscreen .map-legend-heading, .map-stage.is-fullscreen .map-legend-heading { padding-block: .5rem; }
  .map-stage:fullscreen .map-legend-heading p, .map-stage.is-fullscreen .map-legend-heading p { display: none; }
}
@media (max-width: 650px) {
  .record-hero { padding-top: 2.2rem; }
  .record-timeline li { grid-template-columns: 1fr; gap: .5rem; }
  .record-layout { padding-block: 2rem 3rem; }
  .annexation-feature__inner, .map-detail-grid { grid-template-columns: 1fr; }
  .annexation-feature__image { max-width: 420px; }
  .map-workspace { padding-top: 1rem; }
  .map-toolbar { gap: .3rem; padding: .5rem .65rem; }
  .map-toolbar .map-button { padding-inline: .55rem; min-height: 44px; }
  .map-toolbar [data-map-action="site"] { display: none; }
  .map-toolbar__spacer { min-width: 0; }
  .map-detail-grid { gap: 2rem; }
  .map-catalog { grid-template-columns: 1fr; gap: 1.2rem; }
  .map-status { max-width: calc(100% - 1.6rem); bottom: 90px; }
}
@media (max-width: 380px) {
  .map-sidebar { grid-template-columns: minmax(0, 1fr) 90px; gap: 0 .6rem; }
  .map-select { padding-left: .4rem; }
  .map-toolbar { gap: .2rem; padding-inline: .4rem; }
  .map-toolbar .map-button { font-size: .7rem; padding-inline: .45rem; }
  .map-toolbar__zoom { min-width: 2.2rem; }
}
@media (prefers-reduced-motion: reduce) { .map-canvas * { scroll-behavior: auto !important; } }
