.geo { position:relative; isolation:isolate; background:#fff; border:1px solid var(--line); border-radius:8px; padding:12px; margin:12px 0; overflow-wrap:anywhere; }
.geo h2 { font-size:18px; margin:0 0 10px; }
.geo h3 { font-size:15px; margin-bottom:6px; }
.geo a { color:var(--c); }
.map-wrap { position:relative; border-radius:14px; overflow:hidden; box-shadow:0 1px 0 var(--line), 0 6px 20px rgba(1,49,108,.08); margin-bottom:10px; }
#property-map { height:300px; width:100%; z-index:0; }
.hazard-buttons { position:absolute; left:0; right:0; bottom:0; z-index:500; display:flex; gap:6px; padding:28px 10px 10px; overflow-x:auto; scrollbar-width:none; -webkit-overflow-scrolling:touch; background:linear-gradient(to top, rgba(255,255,255,.92), rgba(255,255,255,0)); pointer-events:none; }
.hazard-buttons::-webkit-scrollbar { display:none; }
.hazard-buttons button { pointer-events:auto; flex:0 0 auto; display:inline-flex; align-items:center; gap:6px; min-height:40px; padding:0 14px 0 11px; border:1px solid rgba(1,49,108,.14); border-radius:999px; background:rgba(255,255,255,.88); -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px); color:#1d2b3a; font:inherit; font-size:13px; font-weight:600; letter-spacing:.02em; box-shadow:0 2px 8px rgba(0,0,0,.10); cursor:pointer; transition:background .18s, color .18s, transform .12s, box-shadow .18s; }
.hazard-buttons button svg { width:18px; height:18px; flex:none; color:var(--c); transition:color .18s; }
.hazard-buttons button:active { transform:scale(.96); }
.hazard-buttons button:focus-visible { outline:2px solid var(--c); outline-offset:2px; }
.hazard-buttons button[aria-pressed=true] { background:var(--c); border-color:var(--c); color:#fff; box-shadow:0 4px 14px rgba(1,49,108,.35); }
.hazard-buttons button[aria-pressed=true] svg { color:#fff; }
.geo-position,.geo-status,.geo-small { font-size:12px; line-height:1.7; color:var(--mut); margin:8px 0; }
.geo-source { font-size:11px; line-height:1.7; color:var(--mut); }
.geo-legend { font-size:13px; margin:12px 0; }
.geo-legend summary { cursor:pointer; color:var(--c); padding:6px 0; }
.geo-legend img { width:170px; max-width:100%; }

.poi-chips { display:flex; gap:6px; overflow-x:auto; scrollbar-width:none; padding:2px 0 10px; margin:0 -2px; }
.poi-chips::-webkit-scrollbar { display:none; }
.poi-chips button { flex:0 0 auto; display:inline-flex; align-items:center; gap:6px; min-height:40px; padding:0 14px 0 10px; border:1px solid var(--line); border-radius:999px; background:#fff; color:#1d2b3a; font:inherit; font-size:13px; font-weight:600; cursor:pointer; transition:background .18s, color .18s, box-shadow .18s, transform .12s; }
.poi-chips button svg { width:18px; height:18px; color:var(--pc); }
.poi-chips button:active { transform:scale(.96); }
.poi-chips button[aria-pressed=true] { background:var(--pc); border-color:var(--pc); color:#fff; box-shadow:0 4px 12px color-mix(in srgb, var(--pc) 35%, transparent); }
.poi-chips button[aria-pressed=true] svg { color:#fff; }
.poi-list { padding:0; margin:0 0 6px; list-style:none; font-size:13px; }
.poi-list li { display:flex; align-items:center; gap:10px; border-bottom:1px solid var(--line); padding:9px 0; }
.poi-list b { display:block; font-weight:600; }
.poi-list small { color:var(--mut); font-size:12px; }
.poi-dot { flex:none; width:30px; height:30px; border-radius:50%; display:grid; place-items:center; background:color-mix(in srgb, var(--pc) 12%, #fff); color:var(--pc); }
.poi-dot svg { width:17px; height:17px; }
.poi-pin { background:none; border:0; }
.poi-pin span { width:30px; height:30px; border-radius:50%; display:grid; place-items:center; color:#fff; border:2px solid #fff; box-shadow:0 2px 6px rgba(0,0,0,.3); box-sizing:border-box; }
.poi-pin svg { width:16px; height:16px; }
.poi-pop { font-size:13px; line-height:1.5; }
.leaflet-control-attribution { font-size:11px !important; white-space:normal !important; max-width:100%; }
.leaflet-bottom.leaflet-right { max-width:100%; }
.map-wrap .leaflet-bottom { bottom:60px; }
.geo-open { display:flex; align-items:center; justify-content:center; min-height:44px; margin:4px 0 12px; border-radius:999px; background:var(--c); color:#fff !important; font-size:14px; font-weight:600; text-decoration:none; box-shadow:0 4px 14px rgba(1,49,108,.25); }
.geo-open:active { transform:scale(.98); }
.map-all { position:absolute; top:10px; right:10px; z-index:600; min-height:36px; padding:0 14px; border:0; border-radius:999px; background:rgba(255,255,255,.92); -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px); color:var(--c); font:inherit; font-size:12px; font-weight:700; box-shadow:0 2px 8px rgba(0,0,0,.15); cursor:pointer; }
.opin { background:none; border:0; }
.opin span { display:inline-block; transform:translate(-50%,-50%); white-space:nowrap; background:rgba(255,255,255,.9); color:#5b6575; font-size:11px; font-weight:600; padding:3px 7px; border-radius:999px; border:1px solid #c9d1dc; }
