:root{--bg:#1d1d1b;--fg:#fff;--brand:#3de8ca;--brand-deep:#00a88e;--brand-light:#9dffef;--brand-tint:#effffc;--line-growth:#3bf;--line-growth-300:#7bd3ff;--line-growth-100:#bee9ff;--line-perf:#a87cff;--fg-2:#ffffffc7;--fg-3:#ffffff9e;--fg-4:#ffffff80;--fg-5:#fff6;--line-adjacent:#ffffff59;--line-rare:#ffffff40;--ring-adjacent:#fff9;--ring-rare:#ffffff73;--surface:#ffffff0a;--surface-border:#ffffff14;--border:#ffffff47;--fill-muted:#ffffff24;--card-bg:#fff;--card-fg:#1d1d1b;--card-fg-2:#6f6f6d;--card-fg-3:#4a4a48;--card-border:#dadad8;--card-shadow:0 16px 40px #00000073;--font:"Kaspersky Sans Display", "Manrope", "Segoe UI", system-ui, sans-serif;--w-track-change:14;--w-vertical:10;--w-branch:8;--w-adjacent:4;--w-rare:3;--grid:10}*{box-sizing:border-box}html,body{height:100%;margin:0}body{font-family:var(--font);color:var(--fg);background:var(--bg);-webkit-font-smoothing:antialiased;font-size:13px;line-height:1.35}a{color:var(--brand);text-decoration:none}a:hover{color:var(--brand-light)}p{margin:0}h1,h2,h3{letter-spacing:-.02em;margin:0;font-weight:800;line-height:1.1}h1{font-size:30px}h2{letter-spacing:-.01em;font-size:20px}h3{letter-spacing:0;font-size:15px}#app{flex-direction:column;min-height:100%;display:flex}.brand-strip{background:var(--brand);flex:none;height:6px}.eyebrow{letter-spacing:.12em;text-transform:uppercase;color:var(--brand);font-size:12px;font-weight:800}.section-title{letter-spacing:.1em;text-transform:uppercase;color:var(--fg-4);margin:0;font-size:11px;font-weight:800}.muted{color:var(--fg-3)}.muted-2{color:var(--fg-2)}.btn{vertical-align:top;height:34px;font:inherit;color:var(--fg);border:1px solid var(--border);cursor:pointer;white-space:nowrap;background:0 0;border-radius:6px;justify-content:center;align-items:center;gap:8px;margin:0;padding:0 14px;font-size:12px;font-weight:700;display:inline-flex}.btn:hover{border-color:var(--fg-2);color:var(--fg)}.btn.primary{background:var(--brand);border-color:var(--brand);color:var(--bg)}.btn.primary:hover{background:var(--brand-light);border-color:var(--brand-light);color:var(--bg)}.btn.small{height:28px;padding:0 10px;font-size:11px}.btn svg{width:16px;height:16px}.chip{height:26px;color:var(--brand-light);background:#3de8ca24;border:1px solid #3de8ca4d;border-radius:6px;align-items:center;padding:0 10px;font-size:12px;font-weight:600;display:inline-flex}.chip.cyan{color:var(--line-growth-100);background:#33bbff24;border-color:#33bbff59}.chip.muted{background:var(--fill-muted);color:var(--fg-2);border-color:#0000}.lv{align-items:center;gap:4px;font-size:11px;font-weight:800;display:inline-flex}.lv i{text-align:center;border-radius:4px;width:18px;height:18px;font-style:normal;line-height:18px;display:inline-block}.lv .now{background:var(--fill-muted);color:var(--fg)}.lv .to{background:var(--brand);color:var(--bg)}.lv .arrow{color:var(--fg-5)}.lv .draft{outline:1px dashed var(--fg-5);outline-offset:1px}.page{flex-direction:column;gap:28px;width:min(1440px,100%);margin:0 auto;padding:36px 48px 64px;display:flex}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:24px;display:flex}.page-header .titles{flex-direction:column;flex:480px;gap:4px;min-width:0;display:flex}.page-header .actions{flex-wrap:wrap;flex:none;gap:8px;display:flex}.back{align-items:center;gap:8px;display:inline-flex}.back svg{width:16px;height:16px}.cols{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 40px;display:grid}.cols.flow{columns:2;column-gap:40px;display:block}.cols.flow .block{break-inside:avoid;margin-bottom:28px}@media (width<=900px){.cols{grid-template-columns:1fr}.cols.flow{columns:1}.page{padding:24px 16px 48px}}.block{flex-direction:column;gap:10px;display:flex}.list{color:var(--fg-2);flex-direction:column;gap:6px;margin:0;padding-left:18px;font-size:13px;display:flex}table.data{border-collapse:collapse;width:100%;font-size:12px}table.data th{text-align:left;letter-spacing:.06em;text-transform:uppercase;color:var(--fg-4);border-bottom:1px solid var(--surface-border);padding:6px 10px;font-size:11px;font-weight:800}table.data td{border-bottom:1px solid var(--surface-border);vertical-align:top;color:var(--fg-2);padding:7px 10px}table.data td.name{color:var(--fg);font-weight:700}table.data td.num{font-variant-numeric:tabular-nums;white-space:nowrap}table.data .pct{white-space:nowrap;font-variant-numeric:tabular-nums}table.data tr.gap td{background:#3de8ca0f}table.data tr.gap td.name{color:var(--brand-light)}.error{border:1px solid var(--border);max-width:900px;color:var(--fg-2);white-space:pre-wrap;border-radius:10px;margin:48px auto;padding:20px 24px;font-size:13px;line-height:1.5}.error b{color:var(--fg);margin-bottom:8px;font-size:15px;display:block}.error code{font-family:Consolas,monospace;font-size:12px}.error p{margin-top:12px}.map-screen{flex-direction:column;height:calc(100vh - 6px);min-height:480px;display:flex;position:relative}.map-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px 24px;padding:28px 48px 0;display:flex}.map-header .titles{flex:480px;min-width:0}.map-header .actions{flex:none;align-items:flex-start}@media (width<=1100px){h1{font-size:26px}}@media (height<=800px){.map-header{padding-top:18px}.map-header h1{font-size:24px}.map-legend{gap:6px 20px;padding:6px 48px 12px}}.map-stage{flex:1;min-height:240px;position:relative;overflow:hidden}.map-stage svg{cursor:grab;-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;inset:0}.map-stage svg.dragging{cursor:grabbing}.map-legend{flex-wrap:wrap;flex:none;gap:8px 28px;padding:8px 48px 18px;display:flex}.map-legend .line{color:var(--fg-2);white-space:nowrap;align-items:center;gap:10px;font-size:12px;font-weight:600;display:flex}.map-legend .line i{border-radius:3px;width:28px;height:6px;display:block}.station{cursor:pointer;outline:none}.station:hover .ring{filter:brightness(1.15)}.station:focus-visible .ring,.station.selected .ring{filter:drop-shadow(0 0 5px #ffffffb3)}.station.selected .t{fill:var(--fg)}.station text{font-family:var(--font);fill:var(--fg)}.station .t{letter-spacing:-.01em;font-size:14px;font-weight:800}.station .t.big{font-size:18px}.station .s{fill:var(--fg-3);font-size:11px;font-weight:500}.station.dim .t,.station.stub .t{fill:var(--fg-2);font-weight:700}.station .badge-bg{fill:var(--brand)}.station .badge-t{fill:var(--bg);letter-spacing:.02em;font-size:11px;font-weight:800}.popover{background:var(--card-bg);width:312px;color:var(--card-fg);box-shadow:var(--card-shadow);border-radius:10px;flex-direction:column;gap:12px;padding:18px 20px;display:flex;position:absolute;top:24px;right:48px}.popover .eyebrow{color:var(--brand-deep);letter-spacing:.1em;font-size:11px}.popover h2{font-size:20px}.popover .meta{color:var(--card-fg-2);font-size:12px}.popover .section-title{color:var(--card-fg-2)}.popover .items{flex-direction:column;gap:3px;font-size:12px;display:flex}.popover .text{color:var(--card-fg-3);font-size:12px}.popover .actions{gap:8px;display:flex}.popover .btn{color:var(--card-fg);border-color:var(--card-border)}.popover .btn.dark{background:var(--card-fg);border-color:var(--card-fg);color:var(--fg)}.popover .close{width:24px;height:24px;color:var(--card-fg-2);cursor:pointer;background:0 0;border:0;font-size:16px;position:absolute;top:12px;right:12px}.route-stage{margin:0 -8px;padding:0 8px;position:relative;overflow:auto hidden}.route-stage svg{width:100%;min-width:1180px;height:auto;display:block}.route-stage text{font-family:var(--font);fill:var(--fg)}.route-stage .zone{fill:var(--surface);stroke:var(--surface-border)}.route-stage .zone-t{letter-spacing:.1em;text-transform:uppercase;fill:var(--fg-4);font-size:11px;font-weight:800}.route-stage .stop-t{font-size:13px;font-weight:800}.route-stage .stop-s{fill:var(--fg-3);font-size:11px;font-weight:500}.route-stage .end-t{font-size:15px;font-weight:800}.route-stage .end-s{fill:var(--fg-3);font-size:11px}.route-stage .lv-now{fill:var(--fill-muted)}.route-stage .lv-to{fill:var(--brand)}.route-stage .lv-t{fill:var(--fg);font-size:11px;font-weight:800}.route-stage .lv-t.dark{fill:var(--bg)}.route-stage .lv-arrow{fill:var(--fg-5);font-size:11px}.route-stage .lv-draft{fill:none;stroke:var(--fg-5);stroke-dasharray:2 2}.route-legend{color:var(--fg-3);flex-wrap:wrap;align-items:center;gap:14px;font-size:11px;display:flex}.baggage{flex-direction:column;gap:10px;display:flex}.baggage .line{background:var(--line-growth);opacity:.8;border-radius:3px;height:6px}.baggage .chips{flex-wrap:wrap;gap:8px;display:flex}.route-bottom{grid-template-columns:minmax(0,1fr) 364px;gap:40px;display:grid}@media (width<=900px){.route-bottom{grid-template-columns:1fr}}
