.metro-root{-webkit-user-select:none;user-select:none;background:#fff;font-family:Plus Jakarta Sans,Noto Sans Kannada,-apple-system,BlinkMacSystemFont,sans-serif;transition:background .6s;position:fixed;inset:0;overflow:hidden}.metro-root.night{background:#0a0e1a}#nm-map{cursor:grab;touch-action:none;width:100%;height:100%;display:block}#nm-map:active{cursor:grabbing}.bg-rect{fill:#fff;transition:fill .6s}.night .bg-rect{fill:#0a0e1a}.grid-dot{fill:#e0e0e0;transition:fill .6s}.night .grid-dot{fill:#1a1f2e}.line-path{cursor:pointer;transition:opacity .4s cubic-bezier(.23,1,.32,1)}.line-hit{cursor:pointer}.night .line-path{opacity:.45}.line-glow{opacity:0;pointer-events:none;transition:opacity .6s}.night .line-glow{opacity:.06}.line-grp.dimmed .line-path,.line-grp.dimmed .track-rail,.line-grp.dimmed .track-sleeper,.line-grp.dimmed .line-glow{opacity:.1!important}.track-sleeper{opacity:.32;pointer-events:none;transition:opacity .4s}.night .track-sleeper{opacity:.5}.track-rail{opacity:.55;pointer-events:none;transition:opacity .4s}.night .track-rail{opacity:.28}.train-car{pointer-events:none;transition:filter .5s cubic-bezier(.23,1,.32,1)}.train-car.dimmed{filter:opacity(.07)}.train-glow{opacity:.14;transition:opacity .6s}.night .train-glow{opacity:.2}.train-window{fill:#fff;opacity:.45;transition:fill .6s,opacity .6s}.night .train-window{fill:#fff4d6;opacity:.85;animation:3s ease-in-out infinite nmWinFlicker}@keyframes nmWinFlicker{0%,to{opacity:.85}50%{opacity:.95}}.train-headlamp{opacity:0;transition:opacity .6s}.night .train-headlamp{opacity:.35}.coach-body{fill:#eceef2;stroke:#5a64788c;stroke-width:.4px;transition:fill .6s,stroke .6s}.night .coach-body{fill:#8b94a6;stroke:#fff3}.coach-stripe{transition:opacity .6s}.coach-roof{fill:#00000038;transition:fill .6s}.night .coach-roof{fill:#0000006b}.coach-ac{fill:#ffffff8c;transition:fill .6s}.night .coach-ac{fill:#d2dceb47}.coach-windshield{fill:#0c162a80;transition:fill .6s}.night .coach-windshield{fill:#fff4d680}.twilight-overlay{pointer-events:none;z-index:4;opacity:0;background:linear-gradient(#0000,#ffc3910f 25%,#ffaa6e38 55%,#ff8a4c99);transition:opacity 2s;position:fixed;inset:0}.tunnel-grp{pointer-events:none;transition:opacity .4s cubic-bezier(.23,1,.32,1)}.tunnel-grp.dimmed{opacity:.1}.tunnel-overlay{stroke:#fff;opacity:.55;transition:stroke .6s}.night .tunnel-overlay{stroke:#0a0e1a;opacity:.6}.tunnel-portal{opacity:.55}.station-group{cursor:pointer;transition:opacity .4s cubic-bezier(.23,1,.32,1)}.station-group.dimmed{opacity:.12}.station-mask{fill:#fff;transition:fill .6s}.night .station-mask{fill:#0a0e1a}.stn-canopy{fill:#d6dbe380;stroke:#3c465a47;stroke-width:.35px;pointer-events:none;transition:fill .6s,stroke .6s}.night .stn-canopy{fill:#3a48666b;stroke:#ffffff1f}.station-group:hover .stn-canopy{fill:#e0e6f0b8}.night .station-group:hover .stn-canopy{fill:#4a5c8099}.stn-platform{fill:#efece6;stroke-width:.6px;transition:fill .6s}.night .stn-platform{fill:#263149}.stn-bridge{fill:#e2ddd4;opacity:.9;stroke:#0000001f;stroke-width:.4px;transition:fill .6s,opacity .6s}.night .stn-bridge{fill:#1b2333;opacity:.78;stroke:#ffffff1a}.is-ug .stn-platform,.is-ug .stn-bridge{opacity:.5}.station-group:hover .stn-platform{fill:#fff}.night .station-group:hover .stn-platform{fill:#32405c}.station-marker{fill:#fff;transition:fill .6s,stroke .6s,opacity .6s}.night .station-marker{fill:#0a0e1a;opacity:.85}.pill-bg{stroke:#333}.night .pill-bg{stroke:#888}.station-group:hover .station-marker{stroke:#222}.night .station-group:hover .station-marker{stroke:#ddd}.station-warm{opacity:0;pointer-events:none;transition:opacity .6s}.night .station-warm{opacity:.2}.night .is-xch .station-warm{opacity:.12}.station-ambient{opacity:0;pointer-events:none;transition:opacity .6s}.night .station-ambient{opacity:.04}.night .station-ambient.is-xch{opacity:.06}.end-cap{pointer-events:none;transition:opacity .4s cubic-bezier(.23,1,.32,1)}.night .end-cap{opacity:.7}.night .is-terminus .station-marker{stroke:#0a0e1a;opacity:1}.is-terminus .label-en{font-weight:800}.station-label{opacity:.75;pointer-events:none;transition:opacity .15s}.is-local .station-label{opacity:0}.station-group:hover .station-label{opacity:1}.station-label text{paint-order:stroke;stroke:#fff;stroke-linejoin:round;stroke-linecap:round;font-family:Plus Jakarta Sans,Noto Sans Kannada,sans-serif;transition:fill .6s,stroke .6s}.night .station-label text{stroke:#0a0e1a}.label-en{letter-spacing:.01em;fill:#444;stroke-width:3px;font-size:11px;font-weight:600}.night .label-en{fill:#c8c4be}.label-kn{fill:#aaa;stroke-width:2px;font-family:Noto Sans Kannada,sans-serif;font-size:8.5px;font-weight:300}.night .label-kn{fill:#5a574f}.lm-layer{transition:opacity .35s cubic-bezier(.23,1,.32,1)}.lm-layer.lm-hidden{opacity:0;pointer-events:none}.lm-connector{stroke:#b09a72;stroke-width:1.2px;opacity:.4;transition:stroke .6s}.night .lm-connector{stroke:#6b5c3e}.lm-group{cursor:pointer}.lm-mask{fill:#fff;transition:fill .6s}.night .lm-mask{fill:#0a0e1a}.lm-marker{fill:#fff;stroke:#a8823f;stroke-width:1.6px;transition:fill .6s,stroke .6s}.night .lm-marker{fill:#151b2b;stroke:#8a7448}.lm-group:hover .lm-marker{stroke:#4a3320}.night .lm-group:hover .lm-marker{stroke:#d8c08a}.lm-group.is-selected .lm-marker{stroke-width:2.4px}.lm-icon{pointer-events:none}.lm-label{pointer-events:none;opacity:.85;transition:opacity .15s}.lm-group:hover .lm-label{opacity:1}.lm-label text{paint-order:stroke;stroke:#fff;stroke-linejoin:round;font-family:Plus Jakarta Sans,Noto Sans Kannada,sans-serif;transition:fill .6s,stroke .6s}.night .lm-label text{stroke:#0a0e1a}.lm-name{fill:#7a6233;stroke-width:2.5px;font-size:9.5px;font-weight:600}.night .lm-name{fill:#cdb783}.lm-meta{fill:#b3a482;stroke-width:2px;font-size:7px;font-weight:400}.night .lm-meta{fill:#7c6f52}#nm-landmark-info{-webkit-backdrop-filter:blur(12px);z-index:12;opacity:0;pointer-events:none;background:#fffffff2;border:1px solid #eaeae4;border-radius:10px;min-width:250px;max-width:300px;padding:18px 22px;transition:background .6s,border-color .6s,opacity .28s cubic-bezier(.23,1,.32,1),transform .28s cubic-bezier(.23,1,.32,1);position:fixed;bottom:24px;left:24px;transform:translateY(8px)scale(.98);box-shadow:0 4px 20px #0000000f}#nm-landmark-info.visible{opacity:1;pointer-events:auto;transform:translateY(0)scale(1)}.night #nm-landmark-info{background:#0a0e1af2;border-color:#ffffff14}.lm-info-header{align-items:center;gap:10px;margin-bottom:10px;display:flex}.lm-info-icon{font-size:22px}.lm-info-name{color:#222;font-size:15px;font-weight:700;transition:color .6s}.night .lm-info-name{color:#eee}.lm-info-kn{color:#aaa;font-family:Noto Sans Kannada,sans-serif;font-size:11px;font-weight:300;transition:color .6s}.night .lm-info-kn{color:#777}.lm-info-station{background:#f8f7f5;border-radius:7px;align-items:center;gap:8px;padding:8px 10px;transition:background .6s;display:flex}.night .lm-info-station{background:#ffffff0f}.lm-info-stn-name{color:#444;font-size:12px;font-weight:600;transition:color .6s}.night .lm-info-stn-name{color:#ccc}.lm-info-walk{color:#aaa;margin-left:auto;font-size:10px}.lm-info-desc{color:#777;border-top:1px solid #f0f0f0;margin-top:10px;padding-top:10px;font-size:11px;line-height:1.55;transition:color .6s,border-color .6s}.night .lm-info-desc{color:#999;border-top-color:#ffffff0f}#nm-toolbar button.tb-active{color:#a8823f;background:#a8823f24;border-color:#a8823f66}.night #nm-toolbar button.tb-active{color:#cdb783;background:#cdb7831f;border-color:#cdb78359}#nm-legend,#nm-info,#nm-line-info{-webkit-backdrop-filter:blur(12px);background:#ffffffed;border:1px solid #eaeae4;border-radius:10px;padding:18px 22px;transition:background .6s,border-color .6s,box-shadow .6s,opacity .28s cubic-bezier(.23,1,.32,1),transform .28s cubic-bezier(.23,1,.32,1);position:fixed;bottom:24px;left:24px;box-shadow:0 4px 20px #0000000d}.night #nm-legend,.night #nm-info,.night #nm-line-info{background:#0a0e1aed;border-color:#ffffff14;box-shadow:0 4px 20px #00000073}#nm-legend{z-index:10;min-width:210px}#nm-legend.hidden-panel{opacity:0;pointer-events:none}.legend-title{color:#333;font-size:16px;font-weight:700;line-height:1;transition:color .6s}.night .legend-title{color:#ddd}.legend-subtitle{color:#aaa;margin:3px 0 14px;font-size:11px;font-weight:300;transition:color .6s}.night .legend-subtitle{color:#777}.legend-row{align-items:center;gap:8px;margin-bottom:6px;display:flex}.legend-bar{border-radius:1.5px;flex-shrink:0;width:20px;height:5px;-webkit-mask:linear-gradient(#000 0 1.5px,#0000 1.5px 3.5px,#000 3.5px 5px);mask:linear-gradient(#000 0 1.5px,#0000 1.5px 3.5px,#000 3.5px 5px)}.legend-name{color:#666;flex:1;font-size:11px;font-weight:500;transition:color .6s}.night .legend-name{color:#aaa}.legend-count{color:#333;font-size:11px;font-weight:600;transition:color .6s}.night .legend-count{color:#ddd}.legend-service{color:#999;align-items:center;gap:6px;margin-top:10px;font-size:10px;font-weight:500;transition:color .6s;display:flex}.night .legend-service{color:#888}.svc-dot{border-radius:50%;flex-shrink:0;width:6px;height:6px}.svc-dot.on{background:#22c55e;box-shadow:0 0 4px #22c55e99}.svc-dot.off{background:#bbb}.night .svc-dot.off{background:#555}.legend-footer{color:#bbb;border-top:1px solid #f0f0f0;margin-top:12px;padding-top:10px;font-size:10px;line-height:1.6;transition:color .6s,border-color .6s}.night .legend-footer{color:#555;border-top-color:#ffffff0f}#nm-info{z-index:12;opacity:0;pointer-events:none;min-width:220px;transform:translateY(8px)scale(.98)}#nm-info.visible{opacity:1;pointer-events:auto;transform:translateY(0)scale(1)}#nm-line-info{z-index:12;opacity:0;pointer-events:none;min-width:240px;max-width:280px;transform:translateY(8px)scale(.98)}#nm-line-info.visible{opacity:1;pointer-events:auto;transform:translateY(0)scale(1)}.info-close{cursor:pointer;color:#ccc;background:0 0;border:none;padding:6px;font-size:14px;line-height:1;position:absolute;top:10px;right:12px}.info-close:hover{color:#666}.night .info-close{color:#555}.night .info-close:hover{color:#aaa}.station-en{color:#222;padding-right:24px;font-size:17px;font-weight:700;transition:color .6s}.night .station-en{color:#eee}.station-kn{color:#aaa;margin-top:2px;font-family:Noto Sans Kannada,sans-serif;font-size:13px;font-weight:300;transition:color .6s}.night .station-kn{color:#777}.line-badges{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.badge{color:#666;background:#f5f4f2;border-radius:5px;align-items:center;gap:6px;padding:4px 10px;font-size:11px;font-weight:500;transition:color .6s,background .6s;display:inline-flex}.night .badge{color:#bbb;background:#ffffff0f}.badge-sq{border-radius:2px;flex-shrink:0;width:8px;height:8px}.line-info-header{align-items:center;gap:10px;margin-bottom:12px;display:flex}.line-info-bar{border-radius:3px;flex-shrink:0;width:28px;height:6px}.line-info-en{color:#222;font-size:17px;font-weight:700;transition:color .6s}.night .line-info-en{color:#eee}.line-info-kn{color:#aaa;margin-top:1px;font-family:Noto Sans Kannada,sans-serif;font-size:12px;font-weight:300;transition:color .6s}.night .line-info-kn{color:#777}.line-info-stats{color:#bbb;border-bottom:1px solid #f0f0f0;margin-bottom:10px;padding-bottom:10px;font-size:10px;transition:color .6s,border-color .6s}.night .line-info-stats{color:#666;border-bottom-color:#ffffff0f}.station-list{max-height:320px;padding-right:4px;overflow-y:auto}.station-list::-webkit-scrollbar{width:3px}.station-list::-webkit-scrollbar-thumb{background:#ddd;border-radius:2px}.night .station-list::-webkit-scrollbar-thumb{background:#333}.stn-row{opacity:0;align-items:center;gap:8px;padding:4px 0;animation:.25s cubic-bezier(.23,1,.32,1) forwards nmStnFadeIn;display:flex;position:relative}@keyframes nmStnFadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.stn-dot{background:#fff;border:1.5px solid;border-radius:1.5px;flex-shrink:0;width:8px;height:8px}.night .stn-dot{background:#0a0e1a}.stn-connector{z-index:-1;width:1.5px;height:100%;position:absolute;top:-4px;left:3.5px}.stn-name{color:#555;font-size:11px;font-weight:500;transition:color .6s}.night .stn-name{color:#bbb}.stn-name-kn{color:#bbb;font-family:Noto Sans Kannada,sans-serif;font-size:9px;font-weight:300;transition:color .6s}.night .stn-name-kn{color:#666}.stn-xch{color:#aaa;text-align:right;max-width:80px;font-size:8px;font-weight:400}#nm-toolbar{z-index:10;align-items:center;gap:4px;display:flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}#nm-toolbar button{color:#888;cursor:pointer;appearance:none;background:#fff;border:1px solid #e4e2de;border-radius:7px;justify-content:center;align-items:center;width:34px;height:34px;padding:0;line-height:0;transition:background .12s cubic-bezier(.23,1,.32,1),transform .1s cubic-bezier(.23,1,.32,1),color .12s,border-color .6s;display:inline-flex;box-shadow:0 2px 8px #0000000a}#nm-toolbar button:hover{color:#555;background:#0000000d}#nm-toolbar button:active{transform:scale(.93)}.night #nm-toolbar button{color:#aaa;background:#0a0e1aeb;border-color:#ffffff1f;box-shadow:0 2px 8px #0000004d}.night #nm-toolbar button:hover{color:#ddd;background:#ffffff0f}#nm-toolbar button svg{flex-shrink:0;display:block}.info-close svg{display:block}.dp-arrows button svg,.dp-orient button svg{margin:0 auto;display:block}#nm-toolbar .tb-3d{color:#888;letter-spacing:.04em;background:#fff;border:1px solid #e4e2de;border-radius:7px;align-items:center;gap:5px;height:34px;padding:0 12px;font-size:11px;font-weight:700;text-decoration:none;transition:background .12s cubic-bezier(.23,1,.32,1),color .12s,border-color .6s;display:inline-flex;box-shadow:0 2px 8px #0000000a}#nm-toolbar .tb-3d:hover{color:#555;background:#0000000d}.night #nm-toolbar .tb-3d{color:#aaa;background:#0a0e1aeb;border-color:#ffffff1f}.night #nm-toolbar .tb-3d:hover{color:#ddd;background:#ffffff0f}#nm-dev-panel{color:#ddd;z-index:100;-webkit-backdrop-filter:blur(12px);background:#141419f2;border:1px solid #333;border-radius:10px;width:280px;padding:16px;font-size:12px;position:fixed;top:16px;right:16px;box-shadow:0 8px 32px #0006}.dp-title{color:#fff;justify-content:space-between;align-items:center;margin-bottom:12px;font-size:13px;font-weight:700;display:flex}.dp-title span{opacity:.4;font-size:10px;font-weight:400}.dp-section{border-bottom:1px solid #333;margin-bottom:12px;padding-bottom:10px}.dp-label{color:#888;text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px;font-size:10px}.dp-station-name{color:#fff;font-size:15px;font-weight:600}.dp-station-kn{color:#666;margin-top:1px;font-family:Noto Sans Kannada,sans-serif;font-size:11px}.dp-coords{color:#888;align-items:center;gap:12px;margin-top:6px;font-size:11px;display:flex}.dp-coord{color:#7df;font-variant-numeric:tabular-nums;font-size:13px;font-weight:600}.dp-arrows{grid-template-rows:32px 32px 32px;grid-template-columns:32px 32px 32px;justify-content:center;gap:2px;margin:8px 0;display:grid}.dp-arrows button{color:#ccc;cursor:pointer;background:#2a2a30;border:1px solid #444;border-radius:5px;justify-content:center;align-items:center;font-size:14px;transition:background 80ms,transform 80ms;display:flex}.dp-arrows button:hover{color:#fff;background:#3a3a44}.dp-arrows button:active{background:#4a4a55;transform:scale(.9)}.dp-dot{color:#555;justify-content:center;align-items:center;display:flex}.dp-step{align-items:center;gap:8px;margin-top:8px;display:flex}.dp-step label{color:#888;flex-shrink:0;font-size:10px}.dp-step input{color:#7df;text-align:center;background:#2a2a30;border:1px solid #444;border-radius:4px;width:50px;padding:3px 6px;font-family:inherit;font-size:12px}.dp-orient{gap:4px;margin-top:6px;display:flex}.dp-orient button{color:#aaa;cursor:pointer;background:#2a2a30;border:1px solid #444;border-radius:5px;flex:1;padding:6px;font-size:11px;font-weight:600;transition:all 80ms}.dp-orient button.sel{color:#7df;background:#335;border-color:#57a}.dp-orient button:hover{background:#3a3a44}.dp-name-input{color:#ddd;background:#2a2a30;border:1px solid #444;border-radius:4px;width:100%;margin-bottom:4px;padding:5px 8px;font-family:inherit;font-size:12px}.dp-name-kn{color:#888;font-family:Noto Sans Kannada,sans-serif}.dp-changes{color:#888;margin:4px 0 0;font-size:10px}.dp-actions{gap:6px;margin-top:10px;display:flex}.dp-actions button{cursor:pointer;border:none;border-radius:6px;flex:1;padding:7px;font-family:inherit;font-size:11px;font-weight:600;transition:all 80ms}.dp-actions button:active{transform:scale(.96)}.dp-btn-reset{color:#aaa;background:#333}.dp-btn-reset:hover{color:#fff;background:#444}.dp-btn-save{color:#fff;background:#2563eb}.dp-btn-save:hover{background:#3b82f6}.dp-btn-prompt{color:#fff;background:#7c3aed}.dp-btn-prompt:hover{background:#8b5cf6}.dp-msg{text-align:center;margin-top:6px;font-size:10px}.dp-msg-save{color:#4ade80}.dp-msg-copy{color:#a78bfa}.dev-selected .station-marker{stroke:#0f8!important;stroke-width:2.5px!important}.preview-mode #nm-toolbar,.preview-mode #nm-legend,.preview-mode #nm-info,.preview-mode #nm-line-info,.preview-mode #nm-dev-panel{display:none!important}.preview-mode #nm-map{cursor:default;pointer-events:none!important}@media (max-width:640px){#nm-legend,#nm-info,#nm-line-info{min-width:180px;padding:14px 16px;bottom:76px;left:16px}#nm-toolbar{bottom:20px}.station-list{max-height:220px}#nm-dev-panel{width:calc(100vw - 32px)}}
