.map-panel{padding:26px}.map-panel h2{margin:10px 0 6px}.map-wrap{position:relative;isolation:isolate;border-radius:18px;overflow:hidden;border:1px solid var(--border)}#repair-map{height:460px;width:100%;background:var(--surface2);z-index:0}
.leaflet-tile-pane{filter:var(--tile-filter)}
/* Map controls float over the map as glass chips. */
.map-float{position:absolute;z-index:640;display:flex;gap:8px;flex-wrap:wrap}.map-float.top{top:12px;right:12px;justify-content:flex-end}.map-float.bottom{left:12px;bottom:30px}.chip{background:var(--glass);color:var(--text);backdrop-filter:blur(12px) saturate(1.4);-webkit-backdrop-filter:blur(12px) saturate(1.4);box-shadow:0 0 0 1px var(--border),var(--shadow);padding:10px 15px;font-size:13px;font-weight:700}.chip:hover:not(:disabled){box-shadow:0 0 0 1px var(--border2),var(--shadow-lg)}.chip.primary{background:var(--brand);color:var(--brand-ink);box-shadow:var(--shadow-lg)}
.map-crosshair{position:absolute;top:50%;left:50%;width:28px;height:28px;transform:translate(-50%,-50%);pointer-events:none;z-index:500;color:var(--brand)}.map-crosshair:before,.map-crosshair:after{content:'';position:absolute;background:currentColor;border-radius:2px;box-shadow:0 0 0 1.5px var(--surface)}.map-crosshair:before{left:13px;top:0;width:2px;height:28px}.map-crosshair:after{top:13px;left:0;height:2px;width:28px}
.map-bottom{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;margin-top:14px;font-size:13px;color:var(--muted)}.legend{display:inline-flex;align-items:center;gap:7px}.legend i{width:12px;height:12px;border-radius:50%;display:inline-block}.legend .l-me{background:#2f7de1;box-shadow:0 0 0 2px var(--surface),0 0 0 3px #2f7de1}.legend .l-shop{background:var(--marker-bg)}.legend .l-area{border:2px dashed var(--link)}.legend .l-busy{background:#e0832a}.legend .l-out{background:#d0432c}
.shop-map-marker{border:2.5px solid var(--surface);border-radius:50%;background:var(--marker-bg);color:var(--marker-ink);box-shadow:0 4px 14px rgba(0,0,0,.3);display:grid;place-items:center;font:800 14px 'Be Vietnam Pro',system-ui;transition:transform .15s}.shop-map-marker:hover{transform:scale(1.12)}.shop-map-marker.unavailable{background:#8b948d;color:#fff}.shop-map-marker:focus{outline:3px solid #2f7de1;outline-offset:3px}
.leaflet-container{font-family:'Be Vietnam Pro',system-ui,sans-serif;background:var(--surface2)}.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:var(--surface);color:var(--text);box-shadow:var(--shadow-lg)}.leaflet-popup-content-wrapper{border-radius:16px;border:1px solid var(--border)}.leaflet-popup-content{margin:16px 18px}.leaflet-container a.leaflet-popup-close-button{color:var(--muted);top:6px;right:6px}.leaflet-tooltip{background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow);font-size:13px}
.leaflet-bar{border:0!important;border-radius:12px!important;overflow:hidden;box-shadow:0 0 0 1px var(--border),var(--shadow)!important}.leaflet-bar a,.leaflet-bar a:hover{background:var(--glass);color:var(--text);border-bottom-color:var(--border);width:36px;height:36px;line-height:36px}
.leaflet-control-attribution{font-size:10.5px;background:var(--glass)!important;color:var(--muted)!important;border-radius:8px 0 0 0}.leaflet-control-attribution a{color:var(--link)}
.map-popup strong{font-size:15px;letter-spacing:-.2px}.map-popup p{white-space:pre-line;line-height:1.7;font-size:13px;margin:6px 0 12px;color:var(--muted)}.map-popup button{font-family:inherit;font-size:13px;width:100%}.map-popup a{font-size:13px;font-weight:700;color:var(--link)}
.map-link{background:none;border:0;padding:0;margin:0;font:inherit;font-size:13px;font-weight:700;color:var(--link);cursor:pointer;box-shadow:none;border-radius:0}.map-link:hover:not(:disabled){background:none;box-shadow:none;transform:none;text-decoration:underline}
.order-location{font-size:13.5px}.order-location a{font-weight:700}
.partner-map{padding:24px}.partner-map #repair-map{height:340px}
.map-panel #map-feedback{font-size:12.5px;margin-bottom:0}.map-panel #location-status{font-size:14px;margin:4px 0 14px}.map-panel #location-status.location-error{color:var(--danger);background:var(--danger-bg);padding:12px 14px;border-radius:14px}
@media(max-width:600px){.map-panel{padding:16px}#repair-map{height:380px}.map-float.top{left:56px}.chip{padding:9px 12px;font-size:12px}.map-float.bottom{right:12px;bottom:34px}.map-float.bottom .chip{width:100%}.leaflet-control-attribution{max-width:100%;font-size:9.5px}}
