.map-root{height:100vh;height:100dvh;width:100%;position:relative}.station-list{position:absolute;top:10px;left:10px;z-index:1100;background:#fff;border-radius:8px;padding:10px;width:120px;box-shadow:0 2px 6px #0003}.station-list ul{list-style:none;margin:0;padding:0}.station-list li{padding:4px 6px;cursor:pointer;border-radius:4px}.station-list li:hover{background:#f0f0f0}.draw-buttons{position:absolute;bottom:10px;left:10px;display:flex;flex-direction:column;gap:5px;z-index:1100}.draw-buttons button{padding:6px 12px;border-radius:8px;border:1px solid rgba(255,255,255,.65);background:#ffffffd1;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);box-shadow:0 2px 10px #0000001f;cursor:pointer;font-size:13px}.draw-buttons button.active{background:#2563eb;color:#fff;border-color:#2563eb}.toggle-map{position:absolute;right:10px;padding:6px 12px;border-radius:8px;border:1px solid rgba(255,255,255,.65);background:#ffffffd1;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);box-shadow:0 2px 10px #0000001f;cursor:pointer;z-index:1100;font-size:13px;font-weight:600}.overlay-bg{position:absolute;top:0;left:0;right:0;bottom:0;background:#00000059;display:flex;align-items:center;justify-content:center;z-index:1200;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}.overlay-content{background:#fffffff5;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);padding:28px 32px;border-radius:16px;max-width:420px;width:calc(100% - 40px);max-height:80vh;overflow-y:auto;text-align:left;box-shadow:0 8px 32px #0000002e;border:1px solid rgba(255,255,255,.7)}html.dark body{background:#111}html.dark .overlay-content{background:#161620f7;color:#e8e8f0;border-color:#ffffff1a;box-shadow:0 8px 32px #00000080}html.dark .overlay-content h2,html.dark .overlay-content h4{color:#f0f0ff}html.dark .overlay-content p,html.dark .overlay-content small{color:#b0b0c8}html.dark .overlay-content a{color:#93c5fd}html.dark .map-root:not(.satellite) .leaflet-tile-pane{filter:brightness(.8) saturate(.9)}html.dark .leaflet-control-zoom a{background:#161620eb!important;color:#e0e0f0!important;border-color:#ffffff26!important}html.dark .leaflet-control-zoom a:hover{background:#28283cf2!important}.bridge-label{pointer-events:none}.bridge-label div{display:inline-block;padding:2px 6px;border-radius:5px;border:1px solid rgba(255,255,255,.65);background:#fff3;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);box-shadow:0 1px 6px #0000002e;font-size:10px;font-weight:600;color:#1e293b;white-space:nowrap;letter-spacing:.01em}html.dark .bridge-label div{background:#0f19324d;border-color:#fff3;color:#e2e8f0}html.dark .leaflet-control-attribution{background:#0a0a14bf!important;color:#aaa!important}html.dark .leaflet-control-attribution a{color:#93c5fd!important}.ui-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);height:var(--h-control);padding:0 var(--sp-4);border-radius:var(--r-sm);border:1px solid transparent;font-family:var(--font-sans);font-size:var(--fs-md);font-weight:var(--fw-semibold);line-height:1;white-space:nowrap;cursor:pointer;transition:background .15s,border-color .15s,color .15s}.ui-btn:focus-visible{outline:2px solid var(--c-focus);outline-offset:2px}.ui-btn:disabled{cursor:default;opacity:.55}.ui-btn--sm{height:var(--h-control-sm);padding:0 var(--sp-3);font-size:var(--fs-sm)}.ui-btn--primary{background:var(--c-primary);border-color:var(--c-primary);color:#fff}.ui-btn--primary:hover:not(:disabled){background:var(--c-primary-hover);border-color:var(--c-primary-hover)}.ui-btn--secondary{background:var(--c-surface);border-color:var(--c-border-strong);color:var(--c-text)}.ui-btn--secondary:hover:not(:disabled){background:var(--c-surface-muted)}.ui-btn--danger{background:var(--c-surface);border-color:var(--c-danger-border);color:var(--c-danger-text)}.ui-btn--danger:hover:not(:disabled){background:var(--c-danger-soft)}.ui-btn--ghost{background:transparent;color:var(--c-text-muted)}.ui-btn--ghost:hover:not(:disabled){background:var(--c-surface-sunken);color:var(--c-text)}.ui-btn--icon{width:var(--h-control);padding:0}.ui-btn--sm.ui-btn--icon{width:var(--h-control-sm)}.ui-badge{display:inline-flex;align-items:center;gap:var(--sp-1);padding:2px var(--sp-2);border-radius:var(--r-sm);font-size:var(--fs-xs);font-weight:var(--fw-semibold);line-height:1.5;white-space:nowrap;background:var(--c-surface-sunken);color:var(--c-text-muted)}.ui-badge--success{background:var(--c-success-soft);color:var(--c-success-text)}.ui-badge--warning{background:var(--c-warning-soft);color:var(--c-warning-text)}.ui-badge--danger{background:var(--c-danger-soft);color:var(--c-danger-text)}.ui-badge--info{background:var(--c-info-soft);color:var(--c-info-text)}.ui-card{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-md);padding:var(--sp-5);box-shadow:var(--sh-1)}.ui-card+.ui-card{margin-top:var(--sp-4)}.ui-card__head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);margin-bottom:var(--sp-4)}.ui-card__title{margin:0;font-size:var(--fs-base);font-weight:var(--fw-bold);color:var(--c-text)}.ui-tabs{display:flex;gap:var(--sp-1);flex-wrap:wrap;border-bottom:1px solid var(--c-border);margin-bottom:var(--sp-5)}.ui-tab{padding:var(--sp-2) var(--sp-3);margin-bottom:-1px;border:none;border-bottom:2px solid transparent;background:none;cursor:pointer;font-family:var(--font-sans);font-size:var(--fs-md);font-weight:var(--fw-semibold);color:var(--c-text-muted)}.ui-tab:hover{color:var(--c-text)}.ui-tab[aria-selected=true]{color:var(--c-primary);border-bottom-color:var(--c-primary)}.ui-tab:focus-visible{outline:2px solid var(--c-focus);outline-offset:-2px;border-radius:var(--r-sm)}.ui-table-wrap{overflow-x:auto}.ui-table{width:100%;border-collapse:collapse;font-size:var(--fs-md)}.ui-table th{text-align:left;padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--c-border);font-size:var(--fs-xs);font-weight:var(--fw-semibold);color:var(--c-text-muted);text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}.ui-table td{padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--c-surface-sunken);color:var(--c-text);vertical-align:middle}.ui-table tbody tr:hover td{background:var(--c-surface-muted)}.ui-table__empty{text-align:center;color:var(--c-text-muted);padding:var(--sp-5)!important}.ui-field{display:flex;flex-direction:column;gap:var(--sp-1);min-width:0}.ui-field__label{font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--c-text)}.ui-field__hint{font-size:var(--fs-xs);color:var(--c-text-muted)}.ui-field__error{font-size:var(--fs-xs);color:var(--c-danger-text)}.ui-input,.ui-select,.ui-textarea{height:var(--h-control);padding:0 var(--sp-3);box-sizing:border-box;width:100%;border:1px solid var(--c-border-strong);border-radius:var(--r-sm);background:var(--c-surface);font-family:var(--font-sans);font-size:var(--fs-base);color:var(--c-text)}.ui-textarea{height:auto;min-height:80px;padding:var(--sp-2) var(--sp-3);resize:vertical}.ui-input::placeholder,.ui-textarea::placeholder{color:var(--c-text-subtle)}.ui-input:focus,.ui-select:focus,.ui-textarea:focus{outline:2px solid var(--c-focus);outline-offset:-1px;border-color:var(--c-link)}.ui-input[aria-invalid=true]{border-color:var(--c-danger)}.ui-file{display:inline-flex;align-items:center;gap:var(--sp-3)}.ui-file input[type=file]{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.ui-file__name{font-size:var(--fs-md);color:var(--c-text-muted)}.ui-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-modal);background:#0f172a73;display:flex;align-items:center;justify-content:center;padding:var(--sp-4);animation:ui-fade .12s ease-out}.ui-modal{width:100%;max-width:440px;max-height:calc(100dvh - 32px);overflow-y:auto;background:var(--c-surface);border-radius:var(--r-md);box-shadow:var(--sh-2);font-family:var(--font-sans);animation:ui-pop .16s ease-out}.ui-modal--wide{max-width:640px}.ui-modal__head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);padding:var(--sp-4) var(--sp-5) 0}.ui-modal__title{margin:0;font-size:var(--fs-lg);font-weight:var(--fw-bold);color:var(--c-text)}.ui-modal__body{padding:var(--sp-3) var(--sp-5) var(--sp-4);font-size:var(--fs-base);color:var(--c-text);line-height:1.5}.ui-modal__foot{display:flex;justify-content:flex-end;gap:var(--sp-2);padding:0 var(--sp-5) var(--sp-5)}@keyframes ui-fade{0%{opacity:0}}@keyframes ui-pop{0%{opacity:0;transform:scale(.97)}}.ui-toast-stack{height:auto!important;position:fixed;z-index:var(--z-toast);bottom:var(--sp-5);left:50%;transform:translate(-50%);display:flex;flex-direction:column;gap:var(--sp-2);align-items:center;pointer-events:none;width:min(440px,calc(100vw - 32px))}.ui-toast{pointer-events:auto;width:100%;box-sizing:border-box;display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-radius:var(--r-md);box-shadow:var(--sh-2);background:var(--c-brand-800);color:#fff;font-family:var(--font-sans);font-size:var(--fs-md);border-left:4px solid var(--c-info);animation:ui-pop .16s ease-out}.ui-toast--success{border-left-color:var(--c-success)}.ui-toast--warning{border-left-color:var(--c-warning)}.ui-toast--danger{border-left-color:var(--c-danger)}.ui-toast__close{margin-left:auto;background:none;border:none;color:#cbd5e1;cursor:pointer;font-size:var(--fs-base)}.ui-page{min-height:100dvh;height:auto!important;box-sizing:border-box;padding:var(--sp-6) var(--sp-4);background:var(--c-brand-gradient);font-family:var(--font-sans)}.ui-page__card{margin:0 auto;max-width:1100px;background:var(--c-surface);border-radius:var(--r-lg);box-shadow:var(--sh-2);padding:var(--sp-5) var(--sp-5) var(--sp-6)}.ui-page__card--narrow{max-width:760px}.ui-page__card--wide{max-width:1300px}.ui-page__top{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--sp-3) var(--sp-4);margin-bottom:var(--sp-4)}.ui-page__back{display:inline-flex;align-items:center;gap:var(--sp-1);padding:var(--sp-1) 0;background:none;border:none;cursor:pointer;font-family:var(--font-sans);font-size:var(--fs-md);font-weight:var(--fw-semibold);color:var(--c-text-muted)}.ui-page__back:hover{color:var(--c-text)}.ui-page__back:focus-visible{outline:2px solid var(--c-focus);outline-offset:2px;border-radius:var(--r-sm)}.ui-page__actions{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap;justify-content:flex-end;margin-left:auto}.ui-page__title{margin:0;font-size:var(--fs-2xl);font-weight:var(--fw-bold);color:var(--c-text)}.ui-page__desc{margin:var(--sp-1) 0 0;font-size:var(--fs-base);color:var(--c-text-muted);line-height:1.5}.ui-page__head{margin-bottom:var(--sp-5)}@media (max-width: 600px){.ui-page{padding:var(--sp-3) var(--sp-2)}.ui-page__card{padding:var(--sp-4) var(--sp-3) var(--sp-5);border-radius:var(--r-md)}.ui-page__title{font-size:var(--fs-xl)}}@media (prefers-reduced-motion: reduce){.ui-modal,.ui-modal-backdrop,.ui-toast{animation:none}}.lucide{vertical-align:-.15em}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-cyrillic-ext-400-normal-g30qAdWV.woff2) format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-400-normal-Dsrv2Tcn.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-cyrillic-400-normal-DZqxrq2p.woff2) format("woff2"),url(/assets/ibm-plex-sans-cyrillic-400-normal-BTotfTJu.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-greek-400-normal-_efipK4i.woff2) format("woff2"),url(/assets/ibm-plex-sans-greek-400-normal-D9ESIMu3.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-vietnamese-400-normal-DG4YqDda.woff2) format("woff2"),url(/assets/ibm-plex-sans-vietnamese-400-normal-fK1oJ5dG.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-latin-ext-400-normal-C5H60-Va.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-ext-400-normal-RBey6euL.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-latin-400-normal-CDDApCn2.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-400-normal-CYLoc0-x.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-cyrillic-ext-500-normal-Cs5J6C77.woff2) format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-500-normal-DB5PtV2g.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-cyrillic-500-normal-CocWQlwt.woff2) format("woff2"),url(/assets/ibm-plex-sans-cyrillic-500-normal-ByOcLdNv.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-greek-500-normal-JMMifIXV.woff2) format("woff2"),url(/assets/ibm-plex-sans-greek-500-normal-CuWXN6rf.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-vietnamese-500-normal-e4dixQRQ.woff2) format("woff2"),url(/assets/ibm-plex-sans-vietnamese-500-normal-BEb3_waV.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-latin-ext-500-normal-DakdToA3.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-ext-500-normal-D0aIdm-b.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-latin-500-normal-6ng42L7E.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-500-normal-BgVn5rGT.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-cyrillic-ext-600-normal-DUMzJB7m.woff2) format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-600-normal-Bz0x94Yp.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-cyrillic-600-normal-71GNu3SW.woff2) format("woff2"),url(/assets/ibm-plex-sans-cyrillic-600-normal-BGq0mW3O.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-greek-600-normal-DzTrcv_p.woff2) format("woff2"),url(/assets/ibm-plex-sans-greek-600-normal-D-CqTdkO.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-vietnamese-600-normal-DpPYBSTl.woff2) format("woff2"),url(/assets/ibm-plex-sans-vietnamese-600-normal-DgdngZtN.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-latin-ext-600-normal-DOrvGEcy.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-ext-600-normal-DIrixKbi.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-latin-600-normal-CuJfVYMP.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-600-normal-Cu4Hd6ag.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-sans-cyrillic-ext-700-normal-BmRLXWpJ.woff2) format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-700-normal-DCQwxkRk.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-sans-cyrillic-700-normal-D_uavGvn.woff2) format("woff2"),url(/assets/ibm-plex-sans-cyrillic-700-normal-RFb1v-CK.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-sans-greek-700-normal-wyJ6jzdA.woff2) format("woff2"),url(/assets/ibm-plex-sans-greek-700-normal-CkZN0sRy.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-sans-vietnamese-700-normal-CkEo6LDy.woff2) format("woff2"),url(/assets/ibm-plex-sans-vietnamese-700-normal-BV5B8Are.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-sans-latin-ext-700-normal-aMgXseD4.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-ext-700-normal-DZH6Xh-4.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-sans-latin-700-normal-Bxkt5Cjx.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-700-normal-Bth3BMcD.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-xuaO2J-f.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-DMdlQ8Kv.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-400-normal-BSMlKf0J.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-400-normal-CEL4l2ZJ.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-vietnamese-400-normal-BulugwFq.woff2) format("woff2"),url(/assets/ibm-plex-mono-vietnamese-400-normal-DDuiU_S-.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-ext-400-normal-BmRBH3aV.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-ext-400-normal-D3D2R8hC.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-mono-cyrillic-ext-700-normal-BDQ-w_bc.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-700-normal-CtgKGIh5.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-mono-cyrillic-700-normal-Bp80XfeI.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-700-normal-O_YjL27c.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-mono-vietnamese-700-normal-apsD3J7v.woff2) format("woff2"),url(/assets/ibm-plex-mono-vietnamese-700-normal-Bs14ezHR.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-mono-latin-ext-700-normal-Dhimjc7-.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-ext-700-normal-Cwsjk1Jb.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-mono-latin-700-normal-7sUh57Bg.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-700-normal-CNHXzs6v.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--c-brand-900: #0a1628;--c-brand-800: #0d1f3c;--c-brand-700: #1e3a5f;--c-brand-gradient: linear-gradient(180deg, #0a1628 0%, #0d1f3c 40%, #111827 100%);--c-primary: var(--c-brand-800);--c-primary-hover: var(--c-brand-700);--c-link: #2563eb;--c-link-hover: #1d4ed8;--c-focus: #60a5fa;--c-success: #12a150;--c-success-soft: #e3f4ea;--c-success-text: #0d743a;--c-success-border: #a5dbbd;--c-warning: #e8a317;--c-warning-soft: #fcf4e3;--c-warning-text: #875f0d;--c-warning-border: #f6dca7;--c-danger: #d7263d;--c-danger-soft: #fae5e8;--c-danger-text: #bd2136;--c-danger-border: #f0adb5;--c-info: #2463d6;--c-info-soft: #e5ecfa;--c-info-text: #225dc9;--c-info-border: #acc4ef;--c-text: #1e293b;--c-text-muted: #64748b;--c-text-subtle: #94a3b8;--c-border: #e2e8f0;--c-border-strong: #cbd5e1;--c-surface: #ffffff;--c-surface-muted: #f8fafc;--c-surface-sunken: #f1f5f9;--font-sans: "IBM Plex Sans", system-ui, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, monospace;--fs-xs: 11px;--fs-sm: 12px;--fs-md: 13px;--fs-base: 14px;--fs-lg: 16px;--fs-xl: 20px;--fs-2xl: 24px;--fw-normal: 400;--fw-medium: 500;--fw-semibold: 600;--fw-bold: 700;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 24px;--sp-6: 32px;--r-sm: 6px;--r-md: 10px;--r-lg: 16px;--r-pill: 999px;--sh-1: 0 1px 3px rgba(15, 23, 42, .08);--sh-2: 0 20px 60px rgba(0, 0, 0, .35);--h-control: 36px;--h-control-sm: 30px;--z-map-controls: 1000;--z-map-panels: 1100;--z-overlay: 1300;--z-modal: 3100;--z-toast: 3200}:root{--mobile-stack-row: calc(58px + env(safe-area-inset-bottom)) ;--mobile-stack-tools: calc(103px + env(safe-area-inset-bottom)) ;--mobile-stack-attrib: calc(148px + env(safe-area-inset-bottom)) ;--mobile-stack-panel: calc(174px + env(safe-area-inset-bottom)) }html,body,#root{height:100%;margin:0;padding:0;font-family:IBM Plex Sans,system-ui,sans-serif}#root>div{height:100%}.leaflet-container{height:100%;width:100%}.tram-active-tooltip{background:#ea580c!important;border:1.5px solid #fb923c!important;color:#fff!important;font-weight:700;box-shadow:0 2px 8px #ea580c80}.tram-active-tooltip:before{border-top-color:#ea580c!important}@keyframes alert-pulse{0%{box-shadow:0 0 #dc2626b3;background:#dc2626}50%{box-shadow:0 0 0 8px #dc262600;background:#b91c1c}to{box-shadow:0 0 #dc262600;background:#dc2626}}.alert-pulse{animation:alert-pulse 1s ease-in-out infinite!important;color:#fff!important;border-color:#dc2626!important}.tram-stop-popup .leaflet-popup-content-wrapper{background:#ffffff80;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.tram-stop-popup .leaflet-popup-tip{background:#ffffff80}@media (max-width: 767px){.leaflet-control-zoom a{width:40px!important;height:40px!important;line-height:40px!important;font-size:20px!important}.leaflet-control-zoom{margin-bottom:130px!important}.leaflet-bar a:first-child{border-radius:8px 8px 0 0!important}.leaflet-bar a:last-child{border-radius:0 0 8px 8px!important}}
