.map-page{max-width:1480px;margin:0 auto;padding:48px 24px 72px}
.map-toolbar{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr)) auto auto;align-items:end;gap:10px;margin:22px 0}
.map-toolbar label{display:grid;gap:6px;font-weight:700;min-width:0}.map-toolbar select{border:1px solid var(--line);border-radius:10px;padding:11px;background:#fff;font:inherit}.map-toolbar>button{white-space:nowrap}.map-toolbar [data-near-me]{background:var(--green-dark);box-shadow:0 5px 14px rgba(17,62,49,.18)}
.map-shell{position:relative;border:1px solid var(--line);border-radius:20px;overflow:hidden;background:#edf3ee;box-shadow:0 18px 45px rgba(20,50,39,.08)}.map-canvas{height:min(72vh,760px);min-height:420px}.map-status{position:absolute;z-index:500;left:12px;bottom:12px;padding:8px 11px;background:rgba(255,255,255,.94);border:1px solid var(--line);border-radius:9px;font-weight:700;font-size:.88rem;box-shadow:0 4px 15px rgba(10,40,26,.12)}
.map-view-toggle{position:absolute;z-index:600;right:12px;top:12px;display:flex;width:250px;box-sizing:border-box;padding:3px;background:#fff;border-radius:10px}.map-view-toggle button{flex:1;min-height:40px;padding:7px 11px;border:0;background:transparent;color:#174b39}.map-view-toggle button[aria-pressed=true]{background:#176447;color:#fff}.map-list{height:min(72vh,760px);min-height:420px;overflow:auto;padding:65px 18px 50px;box-sizing:border-box}.map-list-card{background:#fff;border:1px solid var(--line);padding:14px;border-radius:12px;margin-bottom:10px}.map-list-card p{margin:.4rem 0}.map-canvas[hidden],.map-list[hidden]{display:none!important}
.map-color-filter{position:absolute;z-index:590;right:12px;top:92px;width:250px;max-width:calc(100% - 24px);box-sizing:border-box;padding:12px 14px;background:rgba(255,255,255,.97);border:1px solid var(--line);border-radius:12px;box-shadow:0 5px 18px rgba(10,40,26,.12)}.map-color-filter summary{cursor:pointer;font-weight:800;color:var(--green-dark)}.map-color-options{display:grid;gap:5px;margin:11px 0 0;padding:0;border:0}.map-color-options label{display:grid;grid-template-columns:18px 14px 1fr;align-items:center;gap:8px;padding:7px 8px;border-radius:8px;color:var(--ink);font-size:.84rem;font-weight:700;cursor:pointer}.map-color-options label:hover,.map-color-options label:focus-within{background:var(--green-soft)}.map-color-options input{width:17px;height:17px;margin:0;accent-color:var(--green)}.map-color-swatch{width:13px;height:13px;border-radius:50%;background:var(--map-color)}
.map-category-marker{background:none;border:0}.map-category-marker span{display:grid;place-items:center;width:34px;height:34px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:var(--marker-color);color:#fff;border:2px solid #fff;box-shadow:0 2px 7px #0005;font-weight:800;transition:transform .15s ease}.map-category-marker b{transform:rotate(45deg);font:inherit}.map-category-marker:hover span{transform:rotate(-45deg) scale(1.08)}.map-cluster-marker span{width:40px;height:40px;border-radius:50%;transform:none;border:3px solid #fff;box-shadow:0 0 0 3px rgba(23,100,71,.22),0 5px 14px rgba(9,48,35,.3)}.map-cluster-marker b{transform:none}.map-cluster-marker:hover span{transform:scale(1.06)}
.district-label{border:1px solid #0f766e;background:rgba(255,255,255,.9);color:#064e3b;font-weight:800;box-shadow:none}.leaflet-popup-content{max-height:300px;overflow:auto}.leaflet-popup-content p{margin:.45rem 0}.leaflet-popup-content a{color:var(--green-dark);font-weight:800}.leaflet-control-zoom{margin-top:12px!important}
@media(max-width:1100px){.map-toolbar{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.map-page{padding:32px 14px 54px}.map-toolbar{grid-template-columns:1fr 1fr;align-items:end}.map-toolbar label{grid-column:span 2;width:100%}.map-toolbar button{min-height:46px}.map-canvas{height:58vh;min-height:340px}.map-view-toggle{left:auto;right:12px;top:12px;bottom:auto;width:220px}.map-view-toggle button{min-height:44px;padding:8px}.map-color-filter{right:12px;top:88px;width:220px}.leaflet-control-zoom a{width:44px!important;height:44px!important;line-height:44px!important}}
