.map-page [hidden]{display:none!important}
.map-page .map-page__main{display:grid;box-sizing:border-box;min-width:0;width:min(100%,var(--container-max));max-width:100%;gap:var(--space-5);margin-inline:auto;padding:var(--space-5) var(--container-padding-mobile) var(--space-12)}
.map-page .map-page__header,.map-page .map-controls,.map-page .map-search,.map-page .map-search__field,.map-page .map-filter,.map-page .map-filter__chips,.map-page .map-workspace,.map-page .map-results{min-width:0;max-width:100%}
.map-page .map-page__header{display:flex;align-items:end;justify-content:space-between;gap:var(--space-4)}
.map-page .map-page__header h1,.map-page .map-page__header p{margin-block:0 var(--space-2)}
.map-page .map-demo-notice{min-width:0;max-width:100%;margin:0;padding:var(--space-3) var(--space-4);overflow-wrap:anywhere;border:1px solid var(--color-warning-border);border-radius:var(--radius-md);background:var(--color-warning-bg);color:#704700;font-weight:var(--font-weight-semibold)}
.map-page .map-controls{display:grid;gap:var(--space-4);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-soft)}
.map-page .map-search{display:grid;gap:var(--space-2)}.map-page .map-search label,.map-page .map-filter legend{font-weight:var(--font-weight-bold)}
.map-page .map-search__field{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--space-2)}
.map-page .map-search input{width:100%;min-height:48px;padding:var(--space-3) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);font:inherit}
.map-page .map-filter{min-width:0;margin:0;padding:0;border:0}.map-page .map-filter legend{margin-bottom:var(--space-2)}
.map-page .map-filter__chips{display:flex;flex-wrap:wrap;gap:var(--space-2);padding:2px;overflow-x:visible}.map-page .map-filter__chips .chip{flex:0 0 auto}.map-page .map-filter__chips .chip.is-active::before{content:"✓";font-weight:900}
.map-page .map-secondary-notices{display:grid;gap:var(--space-2)}.map-page .map-secondary-notices .alert{margin:0}
.map-page .map-primary-state{display:grid;min-height:16rem;place-items:center;align-content:center;gap:var(--space-3);padding:var(--space-6);border:1px dashed var(--color-border);border-radius:var(--radius-lg);background:rgba(255,255,255,.82);text-align:center}
.map-page .map-primary-state h2,.map-page .map-primary-state p{margin:0}
.map-page .map-workspace{position:relative;display:grid;gap:var(--space-4)}
.map-page .map-visual{position:relative;min-width:0}.map-page .map-canvas{height:clamp(30rem,65svh,48rem);border:1px solid var(--color-border);border-radius:var(--radius-xl);background:#dff3ef;box-shadow:var(--shadow-floating)}
.map-page .map-canvas:focus-visible,.map-page button:focus-visible,.map-page a:focus-visible,.map-page input:focus-visible,.map-page .map-marker:focus-visible{outline:3px solid var(--color-focus);outline-offset:3px}
.map-page .map-legend{position:absolute;z-index:500;top:3.5rem;right:var(--space-3);max-width:min(14rem,55%);padding:var(--space-3);border:1px solid rgba(255,255,255,.9);border-radius:var(--radius-md);background:rgba(255,255,255,.95);box-shadow:var(--shadow-soft);backdrop-filter:blur(8px)}
.map-page .map-legend h2{margin:0 0 var(--space-2);font-size:var(--font-size-sm)}.map-page .map-legend ul{display:grid;gap:var(--space-1);margin:0;padding:0;list-style:none}.map-page .map-legend li{display:flex;align-items:center;gap:var(--space-2);font-size:.78rem}.map-page .map-legend__symbol{display:grid;width:1.55rem;height:1.55rem;place-items:center;border-radius:50%;background:var(--color-primary);color:#fff}
.map-page .map-marker{display:grid!important;width:42px!important;height:42px!important;place-items:center;border:3px solid #fff;border-radius:50% 50% 50% 8px;background:#64748b;color:#fff;box-shadow:0 6px 16px rgba(3,45,40,.28);transform:rotate(-45deg);transition:transform .16s ease,filter .16s ease}.map-page .map-marker__symbol{transform:rotate(45deg);font-size:1.15rem;font-weight:900}.map-page .map-marker--nature{background:#22c55e}.map-page .map-marker--community_tourism{background:#18b7b5}.map-page .map-marker--viewpoint{background:#d68b00}.map-page .map-marker--food_cafe{background:#f97316}.map-page .map-marker--activity{background:#8b45d6}.map-page .map-marker.is-selected{z-index:1000!important;filter:drop-shadow(0 0 8px #fdba2d);transform:rotate(-45deg) scale(1.18)}
.map-page .leaflet-control-attribution{max-width:75%;background:rgba(255,255,255,.94)!important;font-size:10px!important}.map-page .leaflet-bottom.leaflet-right{top:var(--space-2);bottom:auto}
.map-page .map-preview{position:fixed;z-index:160;right:.65rem;bottom:calc(76px + env(safe-area-inset-bottom));left:.65rem;display:flex;box-sizing:border-box;min-width:0;max-width:calc(100% - 1.3rem);max-height:min(72dvh,calc(100dvh - var(--header-height) - 104px - env(safe-area-inset-bottom)));flex-direction:column;padding:var(--space-4);overflow:hidden;overscroll-behavior:contain;border:1px solid var(--color-border);border-radius:var(--radius-xl);background:var(--color-surface);box-shadow:0 -12px 42px rgba(3,45,40,.28)}
.map-page .map-preview__body{min-width:0;min-height:0;overflow-y:auto;overscroll-behavior:contain;scroll-padding-block:var(--space-3);overflow-wrap:anywhere}
.map-page .map-preview__media{display:grid;min-height:8rem;place-items:center;overflow:hidden;border-radius:var(--radius-md);background:linear-gradient(145deg,#dff6ef,#b7e3d2);color:var(--color-muted)}.map-page .map-preview__media img{width:100%;height:10rem;object-fit:cover}
.map-page .map-preview__header{position:sticky;z-index:3;top:0;display:flex;min-width:0;flex-shrink:0;align-items:start;justify-content:space-between;gap:var(--space-3);margin:calc(var(--space-4) * -1) calc(var(--space-4) * -1) var(--space-3);padding:1.4rem var(--space-4) var(--space-3);border-bottom:1px solid var(--color-border);background:var(--color-surface)}.map-page .map-preview__header::before{position:absolute;top:.45rem;left:50%;width:2.75rem;height:.25rem;border-radius:var(--radius-pill);background:var(--color-border);content:"";transform:translateX(-50%)}.map-page .map-preview__header h2{min-width:0;margin:0;overflow-wrap:anywhere;font-size:var(--font-size-xl)}
.map-page .map-preview__close{display:grid;width:44px;height:44px;place-items:center;flex:0 0 auto;border:1px solid var(--color-border);border-radius:50%;background:#fff;font:inherit;font-size:1.6rem;cursor:pointer}.map-page .map-preview__meta,.map-page .map-preview__coordinate{color:var(--color-muted)}.map-page .map-preview__coordinate{padding:var(--space-2);border-radius:var(--radius-sm);background:var(--color-warning-bg);color:#704700;font-weight:700}
.map-page .map-preview__actions,.map-page .map-list-card__actions{display:flex;flex-wrap:wrap;gap:var(--space-2)}.map-page .map-preview__actions{position:sticky;z-index:2;bottom:0;margin:var(--space-3) calc(var(--space-4) * -1) calc(var(--space-4) * -1);padding:var(--space-3) var(--space-4);padding-bottom:calc(var(--space-3) + env(safe-area-inset-bottom));border-top:1px solid var(--color-border);background:var(--color-surface)}.map-page .map-preview__actions .button,.map-page .map-list-card__actions .button{flex:1 1 8rem}.map-page .map-preview__favorite,.map-page .map-list-card__favorite{display:grid;min-width:46px;min-height:46px;place-items:center;border:1px solid var(--color-border);border-radius:50%;background:#fff;color:#b34158;font:inherit;font-size:1.35rem;cursor:pointer}.map-page .map-preview__favorite.is-active,.map-page .map-list-card__favorite.is-active{background:#fff0d4}
.map-page .map-preview__actions{min-width:0;flex-shrink:0}
.map-page .map-results{display:grid;gap:var(--space-4)}.map-page .map-results__header{display:flex;align-items:end;justify-content:space-between;gap:var(--space-3)}.map-page .map-results__header h2,.map-page .map-results__header p{margin:0}.map-page .map-results__header p{color:var(--color-muted)}
.map-page .map-fallback-list{display:grid;gap:var(--space-3)}.map-page .map-list-card{padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-soft)}.map-page .map-list-card h3{margin:0}.map-page .map-list-card__body{display:grid;gap:var(--space-2)}.map-page .map-list-card__meta,.map-page .map-list-card__coordinate{margin:0;color:var(--color-muted)}
.map-page .toast-container{bottom:calc(86px + env(safe-area-inset-bottom))}
.map-page .map-location-control{display:grid;min-width:0;grid-column:1/-1;gap:var(--space-3);align-items:start;padding:var(--space-3) max(var(--space-3),env(safe-area-inset-right)) var(--space-3) max(var(--space-3),env(safe-area-inset-left));border:1px solid #b9d8f5;border-radius:var(--radius-md);background:#f2f8ff}
.map-page .map-location-button{display:inline-flex;min-height:44px;align-items:center;justify-content:center;gap:var(--space-2);align-self:start}.map-page .map-location-button__symbol{font-size:1.25rem;font-weight:900}.map-page .map-location-button[disabled]{cursor:not-allowed;opacity:.68}
.map-page .map-location-control__copy{display:grid;min-width:0;gap:var(--space-1)}.map-page .map-location-privacy,.map-page .map-location-status{margin:0;overflow-wrap:anywhere}.map-page .map-location-privacy{color:var(--color-muted);font-size:var(--font-size-sm)}.map-page .map-location-status{padding:var(--space-2);border-left:4px solid #2369b3;border-radius:var(--radius-sm);background:#e8f2ff;color:#173c66;font-weight:var(--font-weight-semibold)}
.map-page .map-distance-sort-notice{margin:0;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);background:#eef8f3;color:#245f4b;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold)}
.map-page .map-preview__distance,.map-page .map-list-card__distance{margin:0;padding:var(--space-2) var(--space-3);border-left:4px solid #2369b3;border-radius:var(--radius-sm);background:#eef6ff;color:#173c66;font-weight:var(--font-weight-semibold)}
.map-page .map-user-location-marker{display:grid!important;width:36px!important;height:36px!important;place-items:center;border:0;background:transparent}.map-page .map-user-location-marker__halo{position:absolute;width:34px;height:34px;border:2px solid #fff;border-radius:50%;background:rgba(35,105,179,.26);box-shadow:0 0 0 5px rgba(35,105,179,.18)}.map-page .map-user-location-marker__symbol{position:relative;display:grid;width:20px;height:20px;place-items:center;border:3px solid #fff;border-radius:50%;background:#2369b3;color:#fff;font-size:.9rem;font-weight:900;box-shadow:0 3px 10px rgba(23,60,102,.35)}
@media (min-width:640px){.map-page .map-location-control{grid-template-columns:auto minmax(0,1fr)}}
@media (min-width:768px){.map-page .map-page__main{padding-inline:var(--container-padding-desktop)}.map-page .map-fallback-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1024px){.map-page .map-controls{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr) minmax(0,1fr)}.map-page .map-workspace{grid-template-columns:minmax(0,1fr) minmax(18rem,22rem)}.map-page .map-preview{position:sticky;z-index:auto;top:calc(var(--header-height) + var(--space-4));right:auto;bottom:auto;left:auto;max-height:calc(100svh - var(--header-height) - 2rem);border-radius:var(--radius-xl)}.map-page .map-preview__header{position:static;margin:0 0 var(--space-3);padding:0 0 var(--space-3)}.map-page .map-preview__header::before{display:none}.map-page .map-preview__actions{position:static;margin:var(--space-3) 0 0;padding:var(--space-3) 0 0}.map-page .map-fallback-list{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:599px){.map-page .map-page__header{align-items:start;flex-direction:column}.map-page .map-page__header .button{width:100%}.map-page .map-search__field{grid-template-columns:1fr}.map-page .map-legend{max-width:62%}.map-page .map-preview__actions,.map-page .map-list-card__actions{display:grid;grid-template-columns:1fr}.map-page .map-preview__actions .button,.map-page .map-list-card__actions .button{width:100%}}
@media (prefers-reduced-motion:reduce){.map-page .map-marker{transition:none}.map-page *{scroll-behavior:auto}}
@media (max-width:899px){.map-page .map-filter__chips{flex-wrap:nowrap;margin-inline:0;padding-inline:2px;overflow-x:auto;scrollbar-width:thin}.map-page .map-preview{display:flex;flex-direction:column}.map-page .map-preview__media{min-height:6rem}.map-page .map-preview__media img{height:7.5rem}}
@media (min-width:900px){.map-page .map-filter__chips{flex-wrap:wrap;overflow-x:visible;scrollbar-width:none}.map-page .toast-container{bottom:var(--space-5)}}
@media (min-width:900px) and (max-width:1199px){.map-page .site-header__inner{min-width:0;gap:.45rem}.map-page .brand{min-width:0;gap:.45rem}.map-page .brand__text{min-width:0}.map-page .brand__text small{display:none}.map-page .site-nav{min-width:0;gap:0}.map-page .site-nav a{padding:.65rem .5rem;font-size:.78rem;white-space:nowrap}.map-page .site-header__cta{display:none}.map-page .header-language-switcher{flex:0 0 auto}}
@media (min-width:1200px){.map-page .site-header__inner{min-width:0}.map-page .site-nav{min-width:0}}
