#mapExplorer{position:fixed;inset:0;z-index:100;display:none;overflow:hidden;background:#0b1720;color:#f8fafc;touch-action:none;user-select:none;-webkit-user-select:none}
#mapExplorer.open{display:block}
#mapExplorer.mode3d{background:transparent}
#mapExplorer2D{position:absolute;inset:0;width:100%;height:100%;display:block;background:#10251c}
#mapExplorer.mode3d #mapExplorer2D{display:none}
#mapExplorerStructures2D{position:absolute;inset:0;z-index:2;width:100%;height:100%;display:block;pointer-events:none}
#mapExplorer.mode3d #mapExplorerStructures2D{display:none}
#mapExplorerGesture{position:absolute;inset:0;z-index:1;touch-action:none;cursor:grab}
#mapExplorerGesture:active{cursor:grabbing}
#mapExplorerToolbar{position:absolute;z-index:4;top:calc(10px + env(safe-area-inset-top));left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:7px;max-width:calc(100vw - 20px);padding:7px;border:1px solid #ffffff2e;border-radius:18px;background:#07111de8;box-shadow:0 8px 26px #0009;backdrop-filter:blur(12px)}
#mapExplorerToolbar button{min-height:42px;padding:0 13px;border:1px solid #ffffff31;border-radius:12px;background:#1f2937e8;color:#e5e7eb;font:800 13px system-ui;white-space:nowrap}
#mapExplorerToolbar button.active{background:#0ea5e9;border-color:#7dd3fc;color:#fff;box-shadow:0 0 0 2px #38bdf833 inset}
#mapExplorerToolbar #mapExplorerLocate{background:#5f4c10e8;border-color:#fde04788;color:#fff7b2}
#mapExplorerToolbar #mapExplorerLocate:active{background:#8a6f13}
#mapExplorerToolbar .mapClose{font-size:20px;line-height:1;padding:0 14px;background:#7f1d1dd9;border-color:#fca5a566}
#mapExplorerHint{position:absolute;z-index:4;left:50%;bottom:calc(14px + env(safe-area-inset-bottom));transform:translateX(-50%);max-width:min(92vw,760px);padding:8px 13px;border-radius:13px;background:#07111dcf;color:#dbeafe;font:700 11px/1.35 system-ui;text-align:center;box-shadow:0 5px 20px #0007;pointer-events:none}
#mapExplorerTitle{padding:0 5px;font:900 14px system-ui;white-space:nowrap}
#mapExplorerRouteLegend{position:absolute;z-index:4;top:calc(70px + env(safe-area-inset-top));left:50%;transform:translateX(-50%);display:none;align-items:center;gap:7px;max-width:calc(100vw - 24px);padding:7px 11px;border:1px solid #ffffff24;border-radius:999px;background:#07111dcc;color:#f8fafc;font:800 11px system-ui;white-space:nowrap;box-shadow:0 5px 18px #0007;pointer-events:none}
#mapExplorerRouteLegend.visible{display:flex}
#mapExplorerStructureStats{position:absolute;z-index:4;top:calc(70px + env(safe-area-inset-top));right:max(14px,env(safe-area-inset-right));padding:7px 10px;border:1px solid #93c5fd55;border-radius:999px;background:#0b1730dc;color:#dbeafe;font:800 10px system-ui;box-shadow:0 5px 18px #0007;pointer-events:none;white-space:nowrap}
#mapExplorer.mode3d #mapExplorerStructureStats{background:#111827dc}
.routeLegendLine{display:inline-block;width:28px;height:6px;border-radius:999px;background:#19ff74;box-shadow:0 0 9px #5bffa4}
.routeLegendDot{display:inline-block;width:11px;height:11px;margin-left:6px;border-radius:50%;background:#ffdf35;box-shadow:0 0 10px #ffef86}
body.mapExplorerOpen #controls,body.mapExplorerOpen #hud,body.mapExplorerOpen #versionBadge,body.mapExplorerOpen #updatePanel,body.mapExplorerOpen #cityMiniMap{visibility:hidden!important;pointer-events:none!important}
body.mapExplorerOpen #settingsButton{visibility:visible!important;pointer-events:auto!important;z-index:120!important}
body.mapExplorerOpen #settingsPanel{z-index:130!important}
@media(max-width:520px){#mapExplorerToolbar{top:calc(7px + env(safe-area-inset-top));gap:4px;padding:5px;border-radius:15px}#mapExplorerTitle{display:none}#mapExplorerToolbar button{min-height:40px;padding:0 9px;font-size:11px}#mapExplorerToolbar .mapClose{padding:0 11px}#mapExplorerRouteLegend{top:calc(60px + env(safe-area-inset-top));font-size:10px;padding:6px 9px;gap:5px}.routeLegendLine{width:22px}#mapExplorerStructureStats{top:calc(58px + env(safe-area-inset-top));right:8px;font-size:9px;padding:5px 7px}#mapExplorerHint{font-size:10px;bottom:calc(8px + env(safe-area-inset-bottom));padding:7px 10px}}
