.metro-shell{--metro-panel:#ffffff0b;--metro-panel-line:#f3f0e81a;--metro-panel-line-strong:#f3f0e833;--metro-text:#f3f0e8;--metro-dim:#a5a096;--metro-faint:#767169;--metro-accent:#ffc247;--metro-good:#4fc08d;--metro-bad:#ff6a52;height:100%;min-height:0;color:var(--metro-text);background:radial-gradient(120% 80% at 12% 0,#ffc24712,#0000 60%),radial-gradient(100% 70% at 90% 100%,#58b8ff12,#0000 62%),#0e0e0c;overflow:hidden}.metro-stage{grid-template-columns:minmax(206px,250px) minmax(560px,1fr) minmax(224px,272px);gap:clamp(12px,1.5vw,24px);width:min(1720px,100%);height:100%;min-height:0;margin:0 auto;padding:clamp(10px,1.6vh,20px) clamp(12px,2vw,32px);display:grid}.metro-side{align-content:start;gap:10px;min-height:0;display:grid;overflow:hidden}.metro-side-left,.metro-side-right{padding-top:clamp(64px,8.5vh,88px)}.metro-panel,.metro-kpis{border:1px solid var(--metro-panel-line);background:var(--metro-panel);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:14px}.metro-panel{padding:15px 16px}.metro-panel>span,.metro-kpis span,.metro-panel-head span{color:var(--metro-faint);font:500 .68rem/1 var(--font-mono);letter-spacing:.13em}.metro-panel-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;display:flex}.metro-panel-head b{font:.8rem var(--font-mono)}.metro-panel-meta{justify-content:space-between;gap:6px;margin-top:9px;display:flex}.metro-panel-meta span{color:var(--metro-faint);font:.62rem var(--font-mono);letter-spacing:.06em}.metro-track{background:#ffffff17;border-radius:99px;height:7px;margin-top:13px;overflow:hidden}.metro-track.is-thin{height:5px;margin-top:0}.metro-track i{background:linear-gradient(90deg, #ffb01f, var(--metro-accent));border-radius:99px;height:100%;transition:width .3s;display:block}.metro-track.is-thin i{background:#58b8ff}.metro-track.is-good i{background:linear-gradient(90deg, #3aa87a, var(--metro-good))}.metro-mission h2{font-family:var(--font-display);letter-spacing:-.05em;margin:16px 0 8px;font-size:clamp(1.9rem,2.5vw,2.5rem);line-height:.86}.metro-mission h2 small{color:var(--metro-faint);font:.8rem var(--font-mono);letter-spacing:0}.metro-mission p{color:var(--metro-dim);margin:0;font-size:.78rem;line-height:1.55}.metro-clock{gap:9px;display:grid}.metro-clock small{color:var(--metro-faint);font-size:.68rem;line-height:1.4}.metro-clock.is-rush{background:#ff6a521a;border-color:#ff6a5266}.metro-clock.is-rush .metro-panel-head span,.metro-clock.is-rush small{color:#ffb3a2}.metro-clock.is-rush .metro-track.is-thin i{background:var(--metro-bad)}.metro-legend-grid{grid-template-columns:1fr 1fr;gap:9px 6px;margin:12px 0 10px;display:grid}.metro-legend-grid>div{align-items:center;gap:7px;display:flex}.metro-legend small{color:var(--metro-dim);font-size:.72rem}.metro-legend p{border-top:1px solid var(--metro-panel-line);color:var(--metro-faint);margin:0;padding-top:10px;font-size:.7rem;line-height:1.5}.metro-glyph{fill:#f4f1e8;stroke:#f4f1e8;stroke-width:1.6px;flex:none;width:15px;height:15px}.metro-help{gap:8px;display:grid}.metro-help>div{align-items:center;gap:5px;display:flex}.metro-help small{color:var(--metro-faint);margin-left:auto;font-size:.68rem}.metro-help kbd,.metro-development kbd{border:1px solid var(--metro-panel-line-strong);min-width:17px;color:var(--metro-dim);font:.64rem/1.2 var(--font-mono);text-align:center;border-radius:5px;padding:2px 5px}.metro-center{flex-direction:column;min-width:0;height:100%;min-height:0;display:flex}.metro-board{border:1px solid var(--metro-panel-line);background:#ffffff09;border-radius:20px;flex-direction:column;flex:auto;gap:10px;min-height:0;padding:12px;display:flex;position:relative;box-shadow:0 30px 80px #00000073}.metro-toolbar{flex:none;justify-content:space-between;align-items:center;gap:8px;display:flex}.metro-lines{gap:6px;display:flex}.metro-lines button{border:1px solid var(--metro-panel-line);min-width:138px;height:38px;color:var(--metro-dim);cursor:pointer;font:.68rem var(--font-mono);background:#ffffff08;border-radius:11px;grid-template-columns:auto auto 1fr;align-items:center;gap:8px;padding:0 12px;transition:border-color .2s,background .2s,color .2s;display:grid}.metro-lines button i{background:var(--line-color);border-radius:99px;width:14px;height:4px;display:block}.metro-lines button b{color:var(--metro-text);font-size:.78rem}.metro-lines button span{color:var(--metro-faint);white-space:nowrap;justify-self:end;font-size:.6rem}.metro-lines button:hover{border-color:var(--metro-panel-line-strong);color:var(--metro-text)}.metro-lines button.is-active{border-color:color-mix(in srgb, var(--line-color) 55%, transparent);background:color-mix(in srgb, var(--line-color) 14%, transparent);color:var(--metro-text)}.metro-undo{border:1px solid var(--metro-panel-line);height:38px;color:var(--metro-dim);cursor:pointer;font:.68rem var(--font-mono);letter-spacing:.06em;background:0 0;border-radius:11px;padding:0 14px;transition:border-color .2s,color .2s}.metro-undo:hover:not(:disabled){border-color:var(--metro-panel-line-strong);color:var(--metro-text)}.metro-undo:disabled{opacity:.3;cursor:not-allowed}.metro-route-strip{flex:none;align-items:center;gap:10px;min-width:0;display:flex}.metro-route-strip>b{font:.72rem var(--font-mono);letter-spacing:.06em;flex:none}.metro-route-strip ol{scrollbar-width:none;flex:1;align-items:center;min-width:0;margin:0;padding:0;list-style:none;display:flex;overflow-x:auto}.metro-route-strip ol::-webkit-scrollbar{display:none}.metro-route-strip li{align-items:center;display:flex}.metro-strip-stop{border:1px solid var(--metro-panel-line);color:var(--metro-dim);font:.68rem var(--font-mono);white-space:nowrap;background:#ffffff09;border-radius:8px;padding:4px 9px}.metro-strip-gap{border:1px dashed var(--metro-panel-line-strong);width:20px;height:20px;color:var(--metro-faint);cursor:pointer;font:.74rem var(--font-mono);background:0 0;border-radius:50%;flex:none;place-items:center;margin:0 2px;line-height:1;transition:color .2s,border-color .2s,background .2s,transform .2s;display:grid}.metro-strip-gap:hover:not(:disabled){color:var(--metro-text);border-color:var(--metro-accent);transform:scale(1.12)}.metro-strip-gap.is-active{color:#16180f;border-style:solid;border-color:var(--metro-accent);background:var(--metro-accent)}.metro-strip-gap:disabled{opacity:.3;cursor:not-allowed}.metro-map-frame{background:#f0ebdd;border-radius:14px;flex:auto;min-height:0;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #20241f2e}.metro-map{touch-action:none;cursor:crosshair;width:100%;height:100%;display:block}.metro-map-streets line{stroke:#4e4c421a;stroke-width:1.4px}.metro-map-river{fill:none;stroke-width:34px;stroke-linecap:round}.metro-map-river-edge{fill:none;stroke:#ffffff80;stroke-width:40px;stroke-linecap:round;opacity:.35}.metro-map-district{fill:#3438304d;font:600 10px var(--font-mono);letter-spacing:2.4px}.metro-route-casing{fill:none;stroke:#fbf8f0;stroke-width:11.5px;stroke-linecap:round;stroke-linejoin:round}.metro-route-line{fill:none;stroke-width:6px;stroke-linecap:round;stroke-linejoin:round}.metro-map-routes .is-selected .metro-route-casing{stroke-width:13.5px}.metro-map-routes .is-selected .metro-route-line{stroke-width:7.5px}.metro-map-preview path{fill:none;stroke-width:4px;stroke-dasharray:9 8;stroke-linecap:round;opacity:.75;animation:1s linear infinite metro-dash}.metro-preview-badge{fill:#23271f}.metro-preview-cost{fill:#f6f2e6;font:600 10px var(--font-mono);letter-spacing:.5px}@keyframes metro-dash{to{stroke-dashoffset:-17px}}.metro-map-splice circle{fill:#faf7eeeb;stroke:#33372f;stroke-width:2px}.metro-map-splice path{stroke:#33372f;stroke-width:2.2px;stroke-linecap:round}.metro-map-splice{pointer-events:none;animation:.18s ease-out both metro-splice}@keyframes metro-splice{0%{opacity:0;transform-box:fill-box}to{opacity:1}}.metro-station{cursor:pointer}.metro-station-hit{fill:#0000}.metro-station-marker{fill:#fbf8f0;stroke:#7c7a70;stroke-width:3px;transition:stroke-width .15s}.metro-station.is-served .metro-station-marker{stroke-width:3.6px}.metro-station.is-hovered .metro-station-marker,.metro-station.is-anchor .metro-station-marker{stroke-width:4.6px}.metro-station-interchange{fill:none;stroke:#20241f73;stroke-width:1.6px}.metro-station-alarm{fill:none;stroke:#d8452f;stroke-width:3px;opacity:.8;animation:1.1s ease-in-out infinite metro-alarm}@keyframes metro-alarm{0%,to{opacity:.75;transform:scale(1)}50%{opacity:.3;transform:scale(1.14)}}.metro-station-queue{fill:#3b3f38;stroke:#3b3f38;stroke-width:.8px}.metro-station-overflow{fill:#b7302a;font:700 10px var(--font-mono)}.metro-station-name{fill:#33372f;font:600 10.5px var(--font-archivo), sans-serif;letter-spacing:.2px;paint-order:stroke;stroke:#f6f1e5eb;stroke-width:3.4px;stroke-linejoin:round;pointer-events:none}.metro-station.is-hovered .metro-station-name{fill:#14170f}.metro-train{transition:transform linear}.metro-train-front{fill:#ffffffd9}.metro-train-load{fill:#ffffffe6}.metro-callout{z-index:8;color:#f7f3e9;font-family:var(--font-display);letter-spacing:-.02em;pointer-events:none;background:#1c201af0;border-radius:12px;padding:12px 20px;font-size:clamp(1.1rem,1.9vw,1.7rem);animation:1.05s both metro-callout;position:absolute;top:46%;left:50%;transform:translate(-50%,-50%)}.metro-callout.is-overload{background:#c54a3ff2}.metro-callout.is-goal{background:#40966cf2}@keyframes metro-callout{0%{opacity:0;transform:translate(-50%,-32%)scale(.86)}17%,74%{opacity:1;transform:translate(-50%,-50%)scale(1)}to{opacity:0;transform:translate(-50%,-68%)scale(.95)}}.metro-overlay{z-index:7;text-align:center;color:#f4f1e8;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);background:#0e0f0cd1;flex-direction:column;justify-content:center;align-items:center;padding:clamp(20px,4vh,40px);display:flex;position:absolute;inset:0}.metro-overlay>span{color:var(--metro-accent);font:.68rem var(--font-mono);letter-spacing:.18em}.metro-overlay h2{font-family:var(--font-display);letter-spacing:-.06em;margin:14px 0 10px;font-size:clamp(2.1rem,4vw,4rem);line-height:.84}.metro-overlay p{color:#c6c4bb;max-width:460px;margin:0;font-size:.78rem;line-height:1.6}.metro-overlay button{color:#1a1d17;background:var(--metro-accent);cursor:pointer;text-transform:uppercase;letter-spacing:.04em;border:0;border-radius:12px;justify-content:space-between;align-items:center;width:min(290px,100%);margin-top:20px;padding:15px 18px;font-size:.72rem;font-weight:800;transition:transform .2s,box-shadow .2s;display:flex}.metro-overlay button:hover{transform:translateY(-2px);box-shadow:0 14px 30px #ffc24740}.metro-onboarding{grid-template-columns:repeat(3,1fr);gap:8px;width:min(620px,100%);margin-top:18px;display:grid}.metro-onboarding div{text-align:left;border:1px solid #ffffff24;border-radius:12px;gap:9px;padding:12px;display:flex}.metro-onboarding b{color:var(--metro-accent);font:.78rem var(--font-mono)}.metro-onboarding span{color:#d2d0c7;font-size:.68rem;line-height:1.45}.metro-notice{color:var(--metro-dim);font:.68rem var(--font-mono);letter-spacing:.02em;flex:none;align-items:center;gap:9px;display:flex}.metro-notice i{border-radius:99px;flex:none;width:18px;height:4px}.metro-notice span{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.metro-notice b{color:var(--metro-text);white-space:nowrap;font-size:.64rem}.metro-a11y-list{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.metro-score{gap:6px;display:grid}.metro-score strong{font:1.6rem var(--font-mono);letter-spacing:.03em}.metro-score small{color:var(--metro-faint);font:.66rem var(--font-mono)}.metro-kpis{grid-template-columns:1fr 1fr;display:grid;overflow:hidden}.metro-kpis div{align-content:space-between;gap:6px;min-height:56px;padding:11px 13px;display:grid}.metro-kpis div:nth-child(odd){border-right:1px solid var(--metro-panel-line)}.metro-kpis div:nth-child(-n+2){border-bottom:1px solid var(--metro-panel-line)}.metro-kpis strong{font:1rem var(--font-mono)}.metro-kpis strong small{color:var(--metro-faint);font-size:.62rem}.metro-development{gap:8px;display:grid}.metro-development p{color:var(--metro-faint);margin:0 0 2px;font-size:.68rem}.metro-development button{border:1px solid var(--metro-panel-line);min-height:36px;color:var(--metro-dim);cursor:pointer;font:.64rem var(--font-mono);background:#ffffff09;border-radius:10px;justify-content:space-between;align-items:center;padding:0 11px;transition:border-color .2s,color .2s,background .2s;display:flex}.metro-development button:hover:not(:disabled){border-color:var(--metro-panel-line-strong);color:var(--metro-text);background:#ffffff12}.metro-development button b{color:var(--metro-text)}.metro-development button:disabled{opacity:.32;cursor:not-allowed}.metro-satisfaction{gap:10px;display:grid}.metro-satisfaction small{color:var(--metro-faint);font-size:.68rem;line-height:1.4}.metro-speed{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.metro-speed button,.metro-actions button{border:1px solid var(--metro-panel-line);min-height:38px;color:var(--metro-dim);cursor:pointer;font:.66rem var(--font-mono);background:#ffffff09;border-radius:10px;transition:border-color .2s,color .2s,background .2s}.metro-speed button:hover,.metro-actions button:hover:not(:disabled){color:var(--metro-text);border-color:var(--metro-panel-line-strong)}.metro-speed button.is-active{color:#16180f;border-color:var(--metro-accent);background:var(--metro-accent)}.metro-actions{grid-template-columns:1fr 1fr;gap:6px;display:grid}.metro-actions button:disabled{opacity:.32;cursor:not-allowed}@media (max-width:1180px){.metro-stage{grid-template-columns:minmax(520px,1fr) minmax(210px,254px)}.metro-side-left{display:none}}@media (max-width:820px){.metro-stage{padding:8px 10px 10px;display:block}.metro-center{width:100%;height:100%}.metro-side-right{display:none}.metro-board{border-radius:16px;padding:8px}.metro-lines{flex:1}.metro-lines button{flex:1;grid-template-columns:auto auto;min-width:0;height:34px;padding:0 9px}.metro-lines button span{display:none}.metro-undo{height:34px;padding:0 10px;font-size:0}.metro-undo:after{content:"↶";font-size:.9rem}.metro-onboarding{grid-template-columns:1fr}.metro-route-strip>b{display:none}.metro-strip-stop{padding:3px 7px;font-size:.6rem}.metro-notice b{display:none}.metro-station-name{font-size:13px}}@media (max-height:660px){.metro-side-left,.metro-side-right{padding-top:46px}.metro-panel{padding:12px}.metro-mission p,.metro-development p,.metro-legend p{display:none}}@media (prefers-reduced-motion:reduce){.metro-callout,.metro-station-alarm,.metro-map-preview path,.metro-map-splice{animation:none}.metro-train{transition:none}}
