.region-picker { display:grid; gap:5px; margin-top:12px; padding-top:10px; border-top:1px solid var(--line); font-size:16px; color:#3c5e64; }
.region-picker select { min-height:44px; width:100%; min-width:0; font:inherit; background:#fffaf0; color:var(--navy); border:1px solid #cdd4c3; border-radius:8px; padding:6px; }
/* Labels appear on the selected point; the touch area stays independent of label length. */
.complete-map .pin,.complete-map .pin[data-side=left] { display:block; width:44px; height:52px; transform:translate(-22px,-100%); }
.complete-map .pin-marker { position:absolute; width:34px; height:46px; min-height:46px; left:5px; bottom:0; }
.complete-map .geographic-map .pin-marker { width:28px; height:39px; min-height:39px; left:8px; }
.complete-map .pin-label { position:absolute; left:39px; top:3px; display:none; margin:0; pointer-events:none; }
.complete-map .pin[data-side=left] .pin-label { left:auto; right:39px; margin:0; }
.complete-map .pin:is(.is-selected,:hover,:focus-visible) .pin-label { display:flex; }
.complete-map .pin.is-selected:before { left:10px; right:auto; }
.cluster-count { position:absolute; display:grid; place-items:center; width:34px; height:34px; left:5px; bottom:5px; border-radius:50%; border:3px solid #fffaf0; background:var(--navy); color:#fffaf0; font-size:18px; font-weight:700; }
.cluster-pin.is-selected .cluster-count { background:#d99d24; }
.catalog-dialog { width:min(860px,calc(100vw - 24px)); }
.catalog-dialog>.dialog-close { position:sticky; float:right; top:0; margin:-15px -15px -48px 0; z-index:3; }
.catalog-filter-note { color:#576c63; font-size:16px; line-height:1.8; }
.catalog-filters { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin:20px 0 12px; }
.catalog-filters label { display:grid; gap:6px; color:#365766; font-size:16px; }
.catalog-search { grid-column:1/-1; }
.catalog-filters input,.catalog-filters select { width:100%; min-width:0; min-height:48px; padding:8px 12px; border:1px solid #bfcdbd; border-radius:10px; color:var(--navy); background:#fffdf6; font:inherit; font-size:18px; }
.catalog-actions { display:flex; flex-wrap:wrap; align-items:center; gap:12px 22px; padding:4px 0 14px; border-bottom:1px solid var(--line); }
.catalog-actions button,.catalog-actions a { display:inline-flex; align-items:center; min-height:44px; font-size:16px; color:var(--navy); background:transparent; padding:6px 0; text-underline-offset:4px; }
.catalog-actions button { text-decoration:underline; }
.catalog-record { display:grid; width:100%; gap:5px; text-align:left; background:transparent; border-bottom:1px solid var(--line); padding:18px 6px; color:var(--navy); }
.catalog-record:hover { background:#eef2e7; }
.catalog-record time { font-size:16px; color:#85642a; }
.catalog-record strong { font-size:20px; line-height:1.65; }
.catalog-record>span,.catalog-record small { font-size:16px; line-height:1.7; color:#4d685f; }
#cluster-locations strong { font-size:20px; color:var(--navy); }
#cluster-locations span { font-size:16px; color:#53665d; }
@media(max-width:820px) {
  .complete-map .map-zoom { top:calc(190px + 105vw); }
  .complete-map .map-caption { margin-bottom:5px; }
  .catalog-filters { grid-template-columns:1fr; }
  .catalog-dialog { padding:26px 20px; }
  .catalog-dialog h2 { margin-right:35px; }
}
@media(min-width:821px) {
  .complete-map .focus-tray { padding:12px; }
  .complete-map .focus-option { min-height:44px; padding:7px 3px; }
  .complete-map .result-summary { font-size:16px; }
}
.unmapped-hero { padding:30px 22px; background:#e5ede4; color:var(--navy); border-radius:14px; margin-top:8px; }
.unmapped-hero>.icon { width:36px; height:36px; display:block; margin-bottom:12px; }
.unmapped-hero strong { font-size:28px; }
.unmapped-hero p { font-size:18px; line-height:1.8; color:#496560; }
@media(min-width:821px) and (max-width:1450px) {
  .complete-map .view-switch { left:252px; right:auto; top:96px; }
}
@media(min-width:1451px) {
  .complete-map .view-switch { left:460px; right:auto; top:112px; }
}
