.place-explorer { position:fixed; inset:0; width:100%; height:100dvh; max-width:none; max-height:none; margin:0; padding:0; border:0; overflow:hidden; }
.place-explorer::backdrop { background:var(--color-base-200); }
.place-explorer [hidden] { display:none; }
.place-explorer-surface { position:relative; width:100%; height:100%; }
.place-explorer .place-map { width:100%; height:100%; display:block; background:var(--color-base-200); color:var(--color-primary); touch-action:none; cursor:grab; }
.place-explorer .place-map:active { cursor:grabbing; }
.place-map-tooltip { position:absolute; top:0; left:0; width:0; height:0; pointer-events:none; z-index:1; }
.place-map-tooltip[hidden] { display:none; }
.place-map-tooltip > .tooltip-content { max-width:min(20rem,calc(100vw - 32px)); overflow-wrap:anywhere; }
.place-explorer-top { position:absolute; top:max(12px,env(safe-area-inset-top)); left:12px; right:12px; display:flex; align-items:start; justify-content:space-between; gap:8px; pointer-events:none; }
.place-explorer-top > * { pointer-events:auto; }
.place-explorer-tools,.place-explorer-zoom { position:absolute; right:max(12px,env(safe-area-inset-right)); display:flex; flex-direction:column; gap:8px; }
.place-explorer-tools { top:80px; }
.place-explorer-zoom { bottom:calc(64px + env(safe-area-inset-bottom)); }
.place-explorer-status { position:absolute; top:calc(max(12px,env(safe-area-inset-top)) + 40px); left:12px; max-width:calc(100% - 90px); }
.place-explorer-error { position:absolute; top:130px; left:12px; max-width:calc(100% - 90px); }
.place-explorer-legend { position:absolute; bottom:calc(38px + env(safe-area-inset-bottom)); left:12px; max-width:calc(100% - 84px); display:flex; flex-wrap:wrap; align-items:center; gap:4px; }
.place-explorer-attribution { position:absolute; bottom:env(safe-area-inset-bottom); right:0; max-width:100%; }
.place-explorer-drawer .modal-box { width:min(360px,90vw); }
.place-explorer-accessible { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
.place-explorer-accessible:focus-within { clip-path:none; width:min(360px,80vw); height:auto; max-height:35%; overflow:auto; bottom:90px; left:12px; background:var(--color-base-100); padding:8px; display:flex; flex-wrap:wrap; gap:4px; }
.place-difficulty-easy { color:#15803d; }
.place-difficulty-moderate { color:#a16207; }
.place-difficulty-hard { color:#b91c1c; }
.place-difficulty-unknown { color:#475569; }
.place-explorer :is(.place-explorer-tools,.place-explorer-zoom) .btn { min-height:44px; }
body:has(.place-explorer[open]) { overflow:hidden; }
@media (max-width:480px) { .place-explorer-top .join .btn { font-size:11px; padding-inline:8px; gap:4px; } .place-explorer-top .join svg { width:16px; } }

@media (max-width:360px) { .place-explorer-top .join svg { display:none; } .place-explorer-top .join .btn { font-size:10px; padding-inline:6px; } }
