.map-screen{height:calc(100dvh - var(--header-height));flex-direction:column;display:flex}.map-page{flex:1;width:100%;min-height:0;display:flex;position:relative;overflow:hidden}.map-topbar{background:#fff;border-bottom:1px solid #dee2e6;flex-direction:column;flex-shrink:0;gap:14px;padding:16px;display:flex}.map-topbar-row1{align-items:center;gap:14px;display:flex}.map-loc-pill{color:#495057;white-space:nowrap;cursor:pointer;background:#fff;border:1px solid #e9ecef;border-radius:30px;align-items:center;gap:8px;min-width:300px;height:52px;padding:0 18px 0 22px;font-family:inherit;font-size:15px;font-weight:500;transition:border-color .2s,background-color .2s;display:inline-flex}.map-loc-pill:hover{background:#f8f9fa;border-color:#ced4da}.map-search{flex:1}.map-search input{background-color:#fff;border:1px solid #e9ecef;height:52px;font-size:16px;transition:border-color .2s,background-color .2s}.map-search input:hover{background-color:#f8f9fa;border-color:#ced4da}.map-search input:focus{background-color:#fff;border-color:#228be6;box-shadow:0 0 0 3px #228be61a}.map-search input::placeholder{color:#868e96;font-size:15px}.map-topbar-chips{flex-wrap:wrap;gap:10px;display:flex}.map-chip{color:#495057;cursor:pointer;white-space:nowrap;background:#fff;border:1.5px solid #dee2e6;border-radius:22px;align-items:center;gap:6px;height:42px;padding:0 12px;font-size:14px;font-weight:500;transition:border-color .2s,background .2s,color .2s;display:inline-flex}.map-chip:hover{border-color:#adb5bd}.map-chip[data-active=true]{color:#1971c2;background:#e7f5ff;border-color:#228be6}.map-opennow-dot{background:#adb5bd;border-radius:50%;width:8px;height:8px}.map-opennow-dot[data-active=true]{background:#2f9e44}.map-draw-btn{z-index:1000;color:#333;cursor:pointer;text-align:center;background:#fff;border:1px solid #dee2e6;border-radius:8px;min-width:92px;padding:10px 20px;font-size:14px;font-weight:600;transition:box-shadow .2s,transform .15s;position:absolute;top:20px;right:20px;box-shadow:0 2px 8px #00000026}.map-draw-btn[data-active]{color:#fff;background:#228be6;border-color:#228be6}.map-screen[data-drawing] .map-marker-pin,.map-screen[data-drawing] .map-marker-cluster,.map-screen[data-drawing] .maplibregl-popup,.map-screen[data-drawing] .map-ctrl-group,.map-screen[data-drawing] .map-type-selector-pos{pointer-events:none}.map-canvas-wrap{flex:1;min-width:0;position:relative}.map-sidebar{background:#f8f9fa;border-left:1px solid #dee2e6;flex-shrink:0;width:400px;height:100%;overflow-y:auto}.map-sidebar-header{z-index:2;color:#6b7280;background:#f8f9fa;padding:12px 16px 8px;font-size:12px;font-weight:500;position:sticky;top:0}.map-sidebar-list{flex-direction:column;gap:14px;padding:14px 16px;display:flex}.map-type-selector-pos{z-index:400;position:absolute;top:20px;left:50%;transform:translate(-50%)}.map-ctrl-group{bottom:calc(30px + env(safe-area-inset-bottom,0px));z-index:1000;flex-direction:column;align-items:center;gap:8px;display:flex;position:absolute;right:20px}.map-ctrl-btn{color:#495057;cursor:pointer;background:#fff;border:none;border-radius:50%;outline:none;justify-content:center;align-items:center;width:44px;height:44px;padding:0;transition:box-shadow .2s,transform .15s;display:flex;box-shadow:0 2px 8px #00000026}.map-ctrl-btn:hover,.map-draw-btn:hover{transform:scale(1.05)}.map-ctrl-btn:active,.map-draw-btn:active{transition:transform 60ms;transform:scale(.9);box-shadow:0 1px 3px #00000026}.map-ctrl-zoom{color:#333;font-size:20px;font-weight:500;line-height:1}.map-ctrl-locate[data-status=active]{color:#228be6;box-shadow:0 2px 8px #228be659}.map-ctrl-locate[data-status=active] svg{fill:#228be626}.map-ctrl-locate[data-status=error]{color:#e03131}.map-ctrl-spin{border:2.5px solid #dee2e6;border-top-color:#228be6;border-radius:50%;width:16px;height:16px;animation:.7s linear infinite mapctrlspin}@keyframes mapctrlspin{to{transform:rotate(360deg)}}.map-user-marker{background:0 0;border:none}.map-user-dot{background:#1a73e8;border:3px solid #fff;border-radius:50%;width:18px;height:18px;position:relative;box-shadow:0 0 0 1px #00000026}.map-user-pulse{background:#1a73e859;border-radius:50%;width:18px;height:18px;animation:2.8s ease-out infinite mapuserpulse;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@keyframes mapuserpulse{0%{opacity:.6;transform:translate(-50%,-50%)scale(1)}to{opacity:0;transform:translate(-50%,-50%)scale(3.8)}}.map-type-selector{background:#fff;border-radius:24px;padding:8px 12px;box-shadow:0 2px 8px #00000026}.map-marker-pin img{display:block}.map-marker-pin:hover{filter:drop-shadow(0 4px 8px #0003);z-index:1000}.map-marker-cluster{transform-origin:50%;transition:transform .2s;position:relative}.map-marker-cluster:hover{transform:scale(1.1);box-shadow:0 4px 16px #0006!important}.map-marker-pin.clicked,.map-marker-cluster.clicked{z-index:1200}.map-marker-pin.clicked:after,.map-marker-cluster.clicked:after{content:"";pointer-events:none;border:4px solid #228be6e6;border-radius:50%;width:100%;height:100%;animation:.5s ease-out forwards markerClickRing;position:absolute;top:50%;left:50%;box-shadow:0 0 0 2px #228be640}@keyframes markerClickRing{0%{opacity:.95;transform:translate(-50%,-50%)scale(.55)}to{opacity:0;transform:translate(-50%,-50%)scale(2.6)}}.map-marker-pin.clicked img{transform-origin:bottom;animation:.38s cubic-bezier(.34,1.56,.64,1) markerClickPop}.map-marker-cluster.clicked{transform-origin:50%;animation:.38s cubic-bezier(.34,1.56,.64,1) markerClickPop}@keyframes markerClickPop{0%{transform:scale(1)}45%{transform:scale(1.3)}to{transform:scale(1)}}.map-marker-pin.pin-enter{transform-origin:bottom;animation:.28s ease-out backwards markerFadeIn}.map-marker-pin.pin-exit{transform-origin:bottom;animation:.3s ease-in forwards markerFadeOut}.map-marker-cluster.cluster-enter{transform-origin:50%;animation:.28s ease-out backwards markerFadeIn}@keyframes markerFadeIn{0%{opacity:0;transform:scale(.7)}to{opacity:1;transform:scale(1)}}@keyframes markerFadeOut{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.7)}}.map-marker-pin.highlighted{z-index:1300}.map-marker-pin.highlighted:before{content:"";pointer-events:none;border:3px solid #228be6e6;border-radius:50%;width:100%;height:100%;animation:1.4s ease-in-out infinite markerHighlightPulse;position:absolute;top:50%;left:50%}@keyframes markerHighlightPulse{0%,to{opacity:.9;transform:translate(-50%,-50%)scale(.85)}50%{opacity:.2;transform:translate(-50%,-50%)scale(1.6)}}.map-pin-popup{z-index:1500}.map-pin-popup .maplibregl-popup-content{width:380px;box-shadow:none;background:0 0;border-radius:12px;padding:0;overflow:visible}.map-pin-popup:not(.map-pin-carousel) .maplibregl-popup-content>div{border-radius:12px;overflow:hidden;box-shadow:0 6px 24px #0000002e}.map-pin-popup .maplibregl-popup-tip{display:none}.map-pin-popup .maplibregl-popup-close-button{z-index:10;color:#555;background:#fffffff2;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;padding:0;font-size:18px;line-height:1;transition:transform .1s,background-color .1s,box-shadow .1s;display:flex;top:-12px;right:-12px;box-shadow:0 2px 6px #00000026}.map-pin-popup .maplibregl-popup-close-button:hover{color:#333;background:#fff;transform:scale(1.08);box-shadow:0 3px 8px #0003}.map-pin-popup .maplibregl-popup-close-button:active{transition:transform 50ms;transform:scale(.95);box-shadow:0 1px 3px #00000026}@media (max-width:768px){.map-pin-popup .maplibregl-popup-content{width:min(340px,100vw - 24px)}}.overlap-popup .leaflet-popup-content-wrapper{border-radius:12px;padding:0;overflow:visible}.overlap-popup .leaflet-popup-content{margin:0;width:auto!important}.overlap-counter{z-index:1000;-webkit-backdrop-filter:blur(8px);color:#fff;-webkit-user-select:none;user-select:none;background:#228be6eb;border-radius:12px;padding:4px 12px;font-size:14px;font-weight:600;position:absolute;top:8px;left:50%;transform:translate(-50%);box-shadow:0 2px 8px #00000040}.overlap-arrow{z-index:1000;cursor:pointer;background:#228be6;border:2px solid #fff;border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;padding:0;transition:background .2s,transform .2s;display:flex;position:absolute;top:50%;transform:translateY(-50%);box-shadow:0 3px 10px #0006}.overlap-arrow:hover{background:#1c7ed6;transform:translateY(-50%)scale(1.15)}.overlap-arrow-left{left:-55px}.overlap-arrow-right{right:-55px}.overlap-viewport{border-radius:12px;position:relative;overflow:hidden;box-shadow:0 6px 24px #0000002e}.overlap-track{display:flex}.overlap-slide{flex-shrink:0}.overlap-dots{background:#fffffff2;border-radius:20px;justify-content:center;align-items:center;gap:8px;width:fit-content;margin:8px auto 0;padding:6px 14px;display:flex;box-shadow:0 1px 4px #00000026}.overlap-swipe-label{color:#495057;letter-spacing:.2px;-webkit-user-select:none;user-select:none;white-space:nowrap;font-size:11px;font-weight:600}.overlap-dot{cursor:pointer;border-radius:4px;flex-shrink:0;height:8px;transition:background .2s,width .2s}@media (max-width:768px){.map-topbar,.map-sidebar,.map-ctrl-zoom{display:none}.map-ctrl-group{bottom:calc(10px + env(safe-area-inset-bottom,0px));z-index:1001;right:16px}.map-ctrl-locate{border:2px solid #dee2e6;border-radius:32px;width:auto;height:auto;padding:12px 20px;box-shadow:0 4px 12px #0000001f}.map-ctrl-locate[data-status=active]{border-color:#228be6;box-shadow:0 4px 12px #228be64d}.map-ctrl-locate[data-status=error]{border-color:#e03131}.map-type-selector-pos{display:none}.map-draw-btn{min-height:48px;padding:12px 16px;font-size:15px;top:12px;right:12px}}.map-mobile-sheet-list{flex-direction:column;gap:14px;padding:14px 16px;display:flex}
