.map-page{gap:1rem;display:grid}.mapbox-user-dot{background:#2f7cf6;border:3px solid #fff;border-radius:50%;width:18px;height:18px;box-shadow:0 0 0 3px #2f7cf64d,0 1px 4px #0000004d}.map-view__user-dot{background:#2f7cf6;border:3px solid #fff;border-radius:50%;width:18px;height:18px;position:absolute;transform:translate(-50%,-50%);box-shadow:0 0 0 3px #2f7cf64d,0 1px 4px #0000004d}.map-page--full{--map-zoom-btn:2rem}.map-page--full .mapboxgl-ctrl-top-right,.map-page--full .maplibregl-ctrl-top-right{top:50%;right:1.125rem;transform:translateY(-50%)}.map-page--full .mapboxgl-ctrl-top-right .mapboxgl-ctrl,.map-page--full .maplibregl-ctrl-top-right .maplibregl-ctrl{margin:0}.map-page--full .mapboxgl-ctrl-group,.map-page--full .maplibregl-ctrl-group{background:var(--color-surface);border-radius:var(--radius-md);box-shadow:var(--shadow-card);border:none;overflow:hidden}.map-page--full .mapboxgl-ctrl-group button,.map-page--full .maplibregl-ctrl-group button{width:var(--map-zoom-btn);height:var(--map-zoom-btn);cursor:pointer;background:0 0;border:none;padding:0}.map-page--full .mapboxgl-ctrl-group button+button,.map-page--full .maplibregl-ctrl-group button+button{border-top:1px solid var(--color-border)}.map-page--full .mapboxgl-ctrl-group button>span,.map-page--full .maplibregl-ctrl-group button>span{display:none}.map-page--full .mapboxgl-ctrl-zoom-in:after,.map-page--full .mapboxgl-ctrl-zoom-out:after,.map-page--full .maplibregl-ctrl-zoom-in:after,.map-page--full .maplibregl-ctrl-zoom-out:after{color:var(--color-text);font-size:1rem;font-weight:500;line-height:1;display:block}.map-page--full .mapboxgl-ctrl-zoom-in:after,.map-page--full .maplibregl-ctrl-zoom-in:after{content:"+"}.map-page--full .mapboxgl-ctrl-zoom-out:after,.map-page--full .maplibregl-ctrl-zoom-out:after{content:"−"}.map-sheet{z-index:7;max-width:var(--container);background:var(--color-surface);border-top:1px solid var(--color-border);border-radius:var(--radius-lg) var(--radius-lg) 0 0;margin:0 auto;display:grid;position:absolute;bottom:0;left:0;right:0;box-shadow:0 -4px 20px #0000001f}.map-sheet__head{grid-template-columns:1fr auto 1fr;align-items:center;padding:.25rem .75rem;display:grid}.map-sheet__toggle{min-width:0;font:inherit;color:inherit;cursor:pointer;background:0 0;border:none;grid-area:1/1/auto/-1;justify-items:center;gap:.3rem;padding:.5rem;display:grid}.map-sheet__grab{background:var(--color-border);border-radius:999px;width:2.5rem;height:4px}.map-sheet__title{white-space:nowrap;text-overflow:ellipsis;font-size:1.05rem;font-weight:700;overflow:hidden}.map-sheet__title-icon{vertical-align:-2px;color:var(--color-forest);display:inline-flex}:root[data-theme=dark] .map-sheet__title-icon{color:var(--color-cream)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]):not([data-theme=dark]) .map-sheet__title-icon{color:var(--color-cream)}}.map-sheet__title-icon svg{width:1rem;height:1rem}.map-sheet__all{white-space:nowrap;grid-area:1/3;justify-self:end;font-size:.9rem;font-weight:600}.map-sheet__list{gap:.5rem;max-height:30dvh;margin:0;padding:.25rem .75rem .75rem;list-style:none;display:grid;overflow-y:auto}.map-sheet__row{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);color:inherit;align-items:stretch;gap:.5rem;padding:.6rem;display:flex}.map-sheet__row--selected{border-color:var(--color-olive);box-shadow:var(--shadow-card)}.map-sheet__select{min-width:0;font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:none;flex:1;align-items:center;gap:.75rem;padding:0;display:flex}.map-sheet__thumb{border-radius:var(--radius-sm);background:linear-gradient(140deg,#4f7038,#87a069);flex:none;align-self:stretch;width:3.5rem;min-height:3.5rem;overflow:hidden}.map-sheet__img{object-fit:cover;object-position:center;opacity:0;width:100%;height:100%;transition:opacity .3s;display:block}.map-sheet__img.is-loaded{opacity:1}.map-sheet__body{flex:1;align-content:center;gap:.1rem;min-width:0;display:grid}.map-sheet__name{white-space:nowrap;text-overflow:ellipsis;font-weight:700;overflow:hidden}.map-sheet__meta{color:var(--color-text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:.85rem;overflow:hidden}.map-sheet__go{border-radius:var(--radius-sm);background:color-mix(in srgb, var(--color-sage) 18%, var(--color-surface));width:3rem;color:var(--color-forest);flex:none;justify-content:center;align-self:stretch;align-items:center;text-decoration:none;display:inline-flex}.map-sheet__go:hover{background:color-mix(in srgb, var(--color-sage) 32%, var(--color-surface))}.map-sheet__go svg{width:1.4rem;height:1.4rem}:root[data-theme=dark] .map-sheet__go{color:var(--color-cream)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]):not([data-theme=dark]) .map-sheet__go{color:var(--color-cream)}}.map-sheet__note{color:var(--color-text-muted);margin:0;padding:.25rem 1rem 1rem;font-size:.95rem}.map-sheet__empty-title{color:var(--color-text);margin:0 0 .25rem;font-weight:700}.map-sheet__note-action{text-align:center}.map-sheet__track-error{color:#b3261e;margin:0;padding:.25rem 1rem .75rem;font-size:.88rem}.map-sheet__track-retry{color:var(--color-olive);font:inherit;cursor:pointer;background:0 0;border:0;margin-top:.25rem;padding:.5rem 0;font-weight:700;text-decoration:underline;display:inline-block}@media (width>=1024px){.map-sheet{border:1px solid var(--color-border);border-radius:0 var(--radius-lg) var(--radius-lg) 0;border-top:none;border-bottom:none;border-left:none;flex-direction:column;width:23rem;max-width:100%;max-height:none;margin:0;display:flex;inset:0 auto 0 0;box-shadow:4px 0 20px #0000001a}.map-page--full .mapboxgl-ctrl-bottom-left,.map-page--full .maplibregl-ctrl-bottom-left{left:24rem}.map-sheet__list{flex:1;align-content:start;gap:.375rem;min-height:0;max-height:none}.map-sheet__name,.map-sheet__meta{white-space:normal;text-overflow:clip;overflow:visible}.map-sheet__spots{display:block}.map-sheet__spots .map-sheet__sep{display:none}.map-sheet__go{align-self:center;min-height:4.5rem}.map-sheet__row{padding:.5rem}.map-sheet__grab{display:none}.map-sheet__toggle{pointer-events:none;cursor:default}}.mapbox-pin svg{filter:drop-shadow(1px 0 #fff)drop-shadow(-1px 0 #fff)drop-shadow(0 1px #fff)drop-shadow(0 -1px #fff)drop-shadow(0 2px 2px #0000004d);width:32px;height:40px;display:block}.mapbox-pin--selected svg{width:38px;height:50px}.map-view__pin--selected{color:var(--color-forest-dark)}.map-view__pin--selected svg{width:2.8rem;height:2.8rem}:root[data-theme=dark] .map-view__pin--selected{color:var(--color-cream)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]):not([data-theme=dark]) .map-view__pin--selected{color:var(--color-cream)}}.map-page--full .visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.map-page h1{margin:0;font-size:1.5rem}.map-view{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:color-mix(in srgb, var(--color-sage) 14%, var(--color-surface));min-height:22rem;color:color-mix(in srgb, var(--color-olive) 45%, transparent);box-shadow:var(--shadow-card);position:relative;overflow:hidden}.map-view__grid{width:100%;height:100%;position:absolute;inset:0}.map-view__pin{color:var(--color-forest);font:inherit;cursor:pointer;background:0 0;border:none;flex-direction:column;align-items:center;gap:2px;padding:0;display:flex;position:absolute;transform:translate(-50%,-100%)}:root[data-theme=dark] .map-view__pin{color:var(--color-cream)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]):not([data-theme=dark]) .map-view__pin{color:var(--color-cream)}}.map-view__pin svg{filter:drop-shadow(1px 0 #fff)drop-shadow(-1px 0 #fff)drop-shadow(0 1px #fff)drop-shadow(0 -1px #fff)drop-shadow(0 2px 2px #0000004d);width:2.2rem;height:2.2rem}.map-view__pin--challenge{color:var(--color-forest)}:root[data-theme=dark] .map-view__pin--challenge{color:var(--color-cream)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]):not([data-theme=dark]) .map-view__pin--challenge{color:var(--color-cream)}}.map-view__pin-label{background:var(--color-surface);border:1px solid var(--color-border);max-width:7rem;color:var(--color-text);white-space:nowrap;text-overflow:ellipsis;border-radius:999px;padding:.1rem .5rem;font-size:.72rem;font-weight:600;overflow:hidden}
