/* Full-viewport map, with independent floating controls and panels. */
.map-explore-tools,#closeMapList{display:none}
body.map-view{height:100dvh;overflow:hidden;overscroll-behavior:none}
.map-view>header{position:fixed;z-index:1100;left:16px;right:16px;top:max(12px,env(safe-area-inset-top));height:62px;min-height:0;padding:8px 18px;gap:16px;border:1px solid #dce3d7;border-radius:18px;background:#faf9f4f5;backdrop-filter:blur(14px);box-shadow:0 4px 24px #26392e15;flex-wrap:nowrap}
.map-view .guide-context,.map-view .intro{display:none}
.map-view>main{position:fixed;inset:0;display:block;height:100dvh;min-height:0;border:0;isolation:isolate}
.map-view .mapwrap{position:absolute;inset:0;height:100%;min-height:0;width:100%}
.map-view #map{height:100%;width:100%}
.map-view main>aside{display:none;position:absolute;z-index:1000;top:150px;left:20px;bottom:24px;width:340px;height:auto;min-height:0;max-height:none;padding:18px;border:1px solid #dce3d7;border-radius:20px;background:#faf9f5f5;box-shadow:0 10px 40px #26392e22;backdrop-filter:blur(12px)}
.map-view.map-list-open main>aside{display:flex}
.map-view #closeMapList{display:block;align-self:flex-end;min-height:36px;margin:0 0 10px;border:0;background:none;color:#47613b}
.map-view .mapbar{left:auto;right:20px;top:92px;max-width:calc(100% - 200px);border:1px solid #dce3d7;border-radius:12px;overflow:auto;white-space:nowrap}
.map-view .map-explore-tools{position:absolute;left:20px;top:92px;z-index:750;display:flex;gap:8px}
.map-explore-tools button{border:1px solid #d1dbc6;border-radius:12px;min-height:44px;padding:10px 14px;background:#faf9f5f5;color:#294e3b;box-shadow:0 3px 12px #26392e12;font-size:12px}
.map-explore-tools #mapStopCount{margin-left:5px;color:#7b8b69}
.map-view .live-controls{top:auto;right:20px;bottom:52px;z-index:750;max-width:260px}
.map-view .mapcaption{bottom:24px;left:20px;pointer-events:none}
.map-view .leaflet-top{top:152px}
.map-view .leaflet-left{left:10px}
.map-view.map-list-open .leaflet-left{left:364px}
.map-view .leaflet-control-attribution{font-size:9px;max-width:70vw}
#mapPlaceDetails{display:none}
.map-view #mapPlaceDetails:not([hidden]){position:absolute;display:flex;flex-direction:column;z-index:1000;right:20px;top:152px;width:340px;max-height:calc(100dvh - 260px);background:#faf9f5;border:1px solid #dce3d7;border-radius:20px;box-shadow:0 10px 45px #26392e25;overflow:hidden}
.map-detail-head{display:flex;align-items:start;gap:12px;padding:20px 20px 10px;flex:none}.map-detail-head>div{flex:1;min-width:0}.map-detail-head small{font-size:10px;color:#70815f;text-transform:uppercase;letter-spacing:.5px}.map-detail-head h2{font:27px/1.15 Georgia,serif;margin:6px 0}.map-detail-head button{border:0;border-radius:50%;background:#eaf0e2;color:#46613c;font-size:23px;min-width:40px;height:40px}
.map-detail-body{padding:0 20px 12px;overflow:auto;overscroll-behavior:contain;min-height:0;flex:1}.map-detail-body p{font-size:13px;line-height:1.65;color:#5f7156}.map-detail-body .map-detail-address{font-size:11px;margin-top:0;color:#7b876f}.map-detail-accuracy{font-size:9px;color:#7b876f}
.map-detail-actions{display:flex;flex-wrap:wrap;gap:7px;padding:12px 16px;border-top:1px solid #e0e7d7;flex:none;background:#faf9f5}.map-detail-actions>a,.map-detail-actions>button{display:flex;align-items:center;justify-content:center;min-height:44px;padding:10px 12px;border:1px solid #cdd8c0;background:#edf2e6;color:#3f6034;border-radius:10px;font-size:11px;text-decoration:none;margin:0;flex:1}.map-detail-actions>a{background:#294e3b;color:#fff;border-color:#294e3b}
.map-detail-footer{display:flex;justify-content:space-between;align-items:center;padding:0 16px 12px;gap:8px;flex:none}.map-detail-footer button,.map-detail-footer a{border:0;background:none;color:#617c50;font-size:10px;padding:8px 0;text-decoration:none;min-height:36px}
.map-view #toast{z-index:2000;bottom:18px;max-width:90vw}
@media(max-width:750px){
 .map-view>header{top:max(8px,env(safe-area-inset-top));left:8px;right:8px;height:58px;padding:7px 10px;gap:8px;border-radius:15px}
 .map-view .header-note,.map-view #locate{display:none}
 .map-view .brand{font-size:10px;letter-spacing:1px;white-space:nowrap}.map-view .brand .spark{margin-right:4px;font-size:20px}
 .map-view .viewnav{order:0;width:auto;flex:1;padding:3px;gap:2px}.map-view .viewnav a{font-size:12px;padding:8px 7px}
 .map-view #shareCurrentRealm{min-width:36px;padding:7px;font-size:10px}
 .map-view .map-explore-tools{top:calc(max(8px,env(safe-area-inset-top)) + 70px);left:12px}
 .map-view .mapbar{top:calc(max(8px,env(safe-area-inset-top)) + 124px);left:12px;right:auto;max-width:calc(100% - 80px);padding:4px}
 .map-view .mapbar button{min-height:34px;font-size:11px;padding:7px 10px}
 .map-view .leaflet-top{top:calc(max(8px,env(safe-area-inset-top)) + 74px)}.map-view .leaflet-left,.map-view.map-list-open .leaflet-left{left:auto;right:12px}
 .map-view main>aside{top:auto;left:8px;right:8px;bottom:max(8px,env(safe-area-inset-bottom));width:auto;max-height:58dvh;height:58dvh;padding:15px;border-radius:22px;min-height:0}
 .map-view #mapPlaceDetails:not([hidden]){top:auto;left:8px;right:8px;bottom:max(8px,env(safe-area-inset-bottom));width:auto;max-height:40dvh;border-radius:22px}
 .map-detail-head{padding:14px 16px 4px}.map-detail-head h2{font-size:24px}.map-detail-head small{font-size:9px}.map-detail-body{padding:0 16px 8px}.map-detail-body p{font-size:12px;margin:7px 0}.map-detail-body .saved-note{font-size:11px!important}.map-detail-actions{padding:9px 12px;gap:6px}.map-detail-actions>a,.map-detail-actions>button{font-size:11px;padding:9px 8px}.map-detail-footer{padding:0 14px 5px}
 .map-view .live-controls{right:12px;bottom:62px;max-width:200px}.map-view.map-detail-open .live-controls,.map-view.map-list-open .live-controls{display:none}
 .map-view .mapcaption{left:12px;bottom:30px;font-size:10px;max-width:calc(100vw - 24px)}.map-view.map-detail-open .mapcaption,.map-view.map-list-open .mapcaption{display:none}
 .map-view #toast{bottom:auto;top:190px}
}
@media(max-height:500px) and (orientation:landscape){.map-view #mapPlaceDetails:not([hidden]){left:auto;right:12px;top:80px;bottom:16px;width:320px;max-height:calc(100dvh - 96px)}.map-view main>aside{left:12px;top:140px;bottom:16px;width:300px;height:auto;max-height:none}}
