*{box-sizing:border-box}html,body,#map{width:100%;height:100%;margin:0}body{font-family:system-ui,'Noto Sans Devanagari',Arial,sans-serif;background:#eadfc8;color:#23160d}.topbar{position:absolute;z-index:900;top:14px;left:14px;right:14px;display:flex;gap:10px;align-items:flex-start;justify-content:space-between;pointer-events:none}.panel{pointer-events:auto;background:#fff8e8;border:1px solid #ead8bc;border-radius:18px;box-shadow:0 12px 30px #0002;padding:10px 12px;max-width:650px}.title{font-size:16px;font-weight:950;margin:0}.sub{font-size:12px;color:#6f5b44;font-weight:850;margin-top:2px}.filter-title{font-size:11px;color:#8b6b47;font-weight:950;margin:9px 0 4px;letter-spacing:.04em}.chips{display:flex;gap:7px;flex-wrap:wrap}.chip{border:1px solid #ead8bc;background:white;border-radius:999px;padding:7px 10px;font-weight:950;font-size:12px;color:#4b3b2b;cursor:pointer}.chip.active{background:#23160d;color:white}.loc-chip{background:#fff3e5;color:#a44900;border-color:#ffd8a8}.legend{pointer-events:auto;display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.legend span{background:#fff8e8;border:1px solid #ead8bc;border-radius:999px;padding:7px 10px;font-size:12px;font-weight:950;box-shadow:0 10px 20px #0001}.pin{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;color:white;border:2px solid white;box-shadow:0 2px 9px #0005;font-size:16px}.pin.ambulance{background:#e52920}.pin.health{background:#159653}.pin.halt{background:#9b5b00}.pin.water{background:#2f8fcf}.pin.toilet{background:#7c3aed}.pin.other{background:#2f6fd6}.userpin{width:24px;height:24px;border-radius:50%;background:#111827;border:3px solid white;box-shadow:0 0 0 8px #2f6fd640}.accuracy{border:2px solid #2f6fd6;border-radius:50%;background:#2f6fd622}.leaflet-popup-content{font-family:system-ui,'Noto Sans Devanagari',Arial,sans-serif;font-size:13px;line-height:1.35}.leaflet-popup-content b{font-weight:950}.leaflet-popup-content a{font-weight:950;color:#0b67c2;text-decoration:none}@media(max-width:700px){.topbar{display:block}.legend{margin-top:8px;justify-content:flex-start}.panel{max-width:none}.chips{overflow-x:auto;flex-wrap:nowrap}.chip{white-space:nowrap}}

/* Redesigned collapsible control panel — keep the map maximally visible */
.panel{max-width:300px;padding:0;overflow:hidden}
.phead{display:flex;align-items:center;gap:10px;justify-content:space-between;padding:10px 12px}
.pinfo{min-width:0}
.ptoggle{flex:none;border:1px solid #ffd8a8;background:#fff3e5;color:#a44900;border-radius:999px;padding:7px 12px;font-weight:950;font-size:12px;cursor:pointer;white-space:nowrap}
.ptoggle:hover{background:#ffe8d0}
.panel-body{padding:0 12px 12px}
.panel.collapsed .panel-body{display:none}
.pin.hirkani{background:#e5399b}
@media(max-width:700px){.panel{max-width:none}}
.pop-thumb{width:100%;max-width:230px;border-radius:9px;display:block;margin:6px 0 4px}
.docsub{margin-top:7px;padding:7px 9px;background:#eef8f0;border:1px solid #cfe9d6;border-radius:12px;align-items:center}
.docsub-label{font-weight:900;font-size:12px;color:#2b6b45;margin-right:2px}
.docsub .chip{white-space:normal;line-height:1.2;text-align:left;max-width:100%}
.chip:disabled,.chip.disabled{opacity:.42;cursor:not-allowed;filter:grayscale(.2)}
.legend-btn{background:#fff8e8;border:1px solid #ead8bc;border-radius:999px;padding:7px 11px;font-size:12px;font-weight:950;box-shadow:0 10px 20px #0001;cursor:pointer;color:#4b3b2b}
.legend-btn.active{background:#23160d;color:#fff;border-color:#23160d}
.legend-btn.loc-btn{background:#fff3e5;color:#a44900;border-color:#ffd8a8}
.pin.has-live{position:relative}
.pin.has-live::after{content:"";position:absolute;top:-1px;right:-1px;width:9px;height:9px;border-radius:50%;background:#e50914;border:2px solid #fff}
/* compact popup + multi-service pin highlight */
.pop{font-size:13px;line-height:1.35}
.pop .ptitle{font-weight:700;font-size:14px;margin-bottom:1px}
.pop .psub{color:#667085;font-size:11px;margin-bottom:5px}
.pchips{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:5px}
.pchip{background:#f0f2f5;border:1px solid #dfe3e8;border-radius:10px;padding:1px 7px;font-size:11px;white-space:nowrap}
.pdet{color:#333;font-size:12px;margin:4px 0}
.pop-thumb{max-width:100%;border-radius:6px;margin:4px 0;display:block}
.pact{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.pbtn{display:inline-block;padding:4px 10px;border-radius:8px;background:#eef1f4;color:#111;text-decoration:none;font-size:12px;font-weight:600}
.pbtn.call{background:#0a7d2c;color:#fff}
.pin.multi{box-shadow:0 0 0 2px #fff,0 0 0 4px #f27405}

/* officials contact directory (desktop panel) */
.officials-box{margin-top:8px;border-top:1px solid #eee;padding-top:6px}
.officials-box summary{cursor:pointer;font-weight:700;font-size:13px;padding:4px 0;color:#7A1E1E}
#officials-body{max-height:240px;overflow-y:auto;margin-top:4px;padding-right:4px}
.hgrp{font-weight:700;font-size:11px;color:#7A1E1E;background:#FFF2E8;padding:4px 8px;margin:6px 0 3px;border-radius:5px}
.hrow{display:flex;justify-content:space-between;gap:8px;padding:4px 2px;border-bottom:1px solid #f0f0f0;font-size:12px}
.hname{flex:1;min-width:0}.hname b{font-size:12px}
.hname small{display:block;color:#667085;font-size:11px}
.hnum{display:flex;flex-direction:column;gap:2px;text-align:right;white-space:nowrap}
.hnum a{color:#0a7d2c;font-weight:600;text-decoration:none;font-size:12px}

.pin.approx{opacity:.55;border-style:dashed}

.pin.police{background:#1a2f6e;border-color:#0f1d47}

/* palkhi colors: तुकाराम = भगवा, ज्ञानेश्वर = निळा, दोन्ही = अर्धा-अर्धा */
.pin.pal-tukaram{background:#f4711f!important;border-color:#c1560e!important}
.pin.pal-dnyaneshwar{background:#1d5fc4!important;border-color:#123f85!important}
.pin.pal-both{background:linear-gradient(90deg,#1d5fc4 50%,#f4711f 50%)!important;border-color:#6b4a1f!important}
.pin.charanseva{background:#b45309!important;border-color:#7c2d12!important}

.leaflet-popup-content-wrapper{border-radius:18px!important;padding:0!important;overflow:hidden;box-shadow:0 18px 44px #2b16094a!important;border:1px solid #f1dec3}
.leaflet-popup-content{margin:0!important;min-width:245px;max-width:292px;font-family:system-ui,'Noto Sans Devanagari',Arial,sans-serif!important}
.leaflet-popup-tip{background:#fff8e8!important}
.pop{--accent:#2f6fd6;--soft:#eef5ff;--deep:#1f2a44;font-size:13px;line-height:1.35;background:#fffdf8;color:#2b2117;max-height:min(70vh,560px);overflow:auto}
.pop-ambulance{--accent:#e52920;--soft:#fff1ec;--deep:#6f1712}.pop-health{--accent:#159653;--soft:#eefaf3;--deep:#0e5c35}.pop-halt{--accent:#9b5b00;--soft:#fff4dc;--deep:#5e3500}.pop-water{--accent:#2f8fcf;--soft:#eaf7ff;--deep:#164d71}.pop-toilet{--accent:#7c3aed;--soft:#f4efff;--deep:#4c1d95}.pop-hirkani{--accent:#e5399b;--soft:#fff0f7;--deep:#8a1254}.pop-police{--accent:#1a2f6e;--soft:#eef2ff;--deep:#0f1d47}.pop-charanseva{--accent:#b45309;--soft:#fff7e5;--deep:#7c2d12}
.pop .phead{display:grid;grid-template-columns:42px minmax(0,1fr);gap:10px;align-items:center;padding:12px 13px;background:linear-gradient(135deg,var(--accent),var(--deep));color:#fff}
.picon{width:42px;height:42px;border-radius:14px;background:#ffffff24;display:grid;place-items:center;font-size:22px;border:1px solid #ffffff45}
.pop .ptitle{font-weight:950;font-size:14px;line-height:1.22;margin:0;color:#fff}
.pop .psub{font-size:11px;font-weight:850;line-height:1.25;margin-top:4px;color:#fff7}
.pbody{padding:11px 13px 12px;background:linear-gradient(180deg,#fffdf8,var(--soft))}
.pchips{display:flex;flex-wrap:wrap;gap:5px;margin:0 0 8px}.pchip{background:#fff;border:1px solid #eadfce;border-radius:999px;padding:3px 8px;font-size:11px;font-weight:900;color:#4b3b2b;white-space:normal}
.pdet{color:#34261a;font-size:12px;font-weight:750;margin:8px 0;padding:9px 10px;border-radius:12px;background:#fff;border:1px solid #efe1ca}
.pcontacts{margin-top:8px}.pctitle{font-size:11px;font-weight:950;color:var(--deep);margin-bottom:5px}.pcalls{display:flex;flex-direction:column;gap:6px}.pcall{display:block;background:#0a7d2c;color:#fff!important;text-decoration:none!important;border-radius:12px;padding:8px 9px;font-size:12px;font-weight:850;line-height:1.25;box-shadow:0 7px 14px #0a7d2c22;overflow-wrap:anywhere}.pcall b{font-weight:950}
.pact{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}.pbtn{display:flex;align-items:center;justify-content:center;border-radius:12px;padding:10px 8px;text-decoration:none!important;font-size:13px;font-weight:950;background:#fff;color:#25170c!important;border:1px solid #eadfce}.pbtn.call{background:#0a7d2c;color:#fff!important;border-color:#0a7d2c}.pbtn.dirbtn{background:var(--accent);color:#fff!important;border-color:var(--accent)}
