:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--background:#0b0f14;--surface:#151b22;--surface-strong:#1c242d;--surface-muted:#29323b;--text-primary:#e8edf2;--text-secondary:#8c98a4;--text-subtle:#65717d;--warning:#f5c542;--line-color:#00a84d}*{box-sizing:border-box}html,body{background:var(--background);min-height:100%;color:var(--text-primary);margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button,select{font:inherit}button{border:0}.app-shell{width:min(100%,460px);min-height:100vh;margin:0 auto;padding:22px 20px 36px}.top-bar{justify-content:space-between;align-items:flex-start;gap:18px;padding-top:8px;display:flex}.eyebrow{color:var(--text-secondary);letter-spacing:0;margin:0 0 8px;font-size:12px;font-weight:800}h1{color:var(--text-primary);margin:0;font-size:32px;font-weight:900;line-height:36px}.icon-button{background:var(--surface);width:42px;height:42px;color:var(--text-primary);cursor:pointer;border:1px solid #ffffff14;border-radius:999px;justify-content:center;align-items:center;display:inline-flex}.station-hero{grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;padding:28px 0 18px;display:grid}.station-neighbor{min-height:20px;color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.station-neighbor:first-child{text-align:right}.station-current{flex-direction:column;align-items:center;gap:10px;display:flex}.station-current strong{max-width:180px;color:var(--text-primary);text-align:center;text-overflow:ellipsis;white-space:nowrap;font-size:34px;font-weight:900;line-height:38px;overflow:hidden}.station-current span{background:var(--line-color);color:#fff;border-radius:999px;justify-content:center;align-items:center;min-width:34px;height:30px;padding:0 11px;font-size:14px;font-weight:900;display:inline-flex}.toolbar{flex-direction:column;gap:12px;margin-bottom:10px;display:flex}.line-picker{background:var(--surface);border:1px solid #ffffff14;border-radius:16px;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.line-picker span{color:var(--text-secondary);font-size:13px;font-weight:800}.line-picker select{min-width:0;color:var(--text-primary);text-align:right;background:0 0;border:0;outline:0;flex:1;font-weight:800}.segmented-control{background:var(--surface);border:1px solid #ffffff14;border-radius:16px;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;padding:4px;display:grid}.segmented-control button{height:42px;color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:12px;font-size:14px;font-weight:800}.segmented-control button.selected{background:var(--line-color);color:#fff}.map-panel,.arrival-panel,.state-panel{background:var(--surface);border:1px solid #ffffff14;border-radius:18px;margin-top:18px}.map-panel{padding:18px 0 16px;overflow:hidden}.panel-heading{justify-content:space-between;align-items:center;gap:16px;padding:0 16px;display:flex}.panel-heading strong{color:var(--text-primary);font-size:16px;font-weight:900;line-height:20px}.panel-heading span{min-width:0;color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:700;overflow:hidden}.map-scroll{scrollbar-width:thin;margin-top:18px;padding:0 24px;overflow-x:auto}.map-canvas{min-width:100%;position:relative}.rail-line{background:color-mix(in srgb, var(--line-color) 40%, transparent);transform-origin:0;border-radius:999px;height:8px;position:absolute}.main-stations,.branch-stations{display:flex;position:absolute;top:0;left:0}.branch-stations{top:70px}.station-node{width:64px;min-height:54px;color:var(--text-secondary);cursor:pointer;background:0 0;flex-direction:column;flex:0 0 64px;align-items:center;gap:6px;padding:0;display:flex}.station-dot{border-radius:999px;width:28px;height:28px;display:block;position:relative}.station-dot:before{content:"";background:var(--surface-muted);border:3px solid var(--surface);border-radius:999px;position:absolute;inset:6px}.station-node.selected{color:var(--text-primary)}.station-node.selected .station-dot:before{background:var(--line-color);border:4px solid var(--text-primary);inset:0}.station-node.selected .station-dot:after{content:"";background:#fff;border-radius:999px;position:absolute;inset:9px}.station-name{color:currentColor;text-align:center;text-overflow:ellipsis;white-space:nowrap;width:100%;font-size:11px;font-weight:700;line-height:15px;overflow:hidden}.station-node.selected .station-name{font-size:12px;font-weight:900}.train-car{z-index:3;width:48px;height:24px;color:var(--line-color);filter:drop-shadow(0 6px 14px #0006);position:absolute}.train-car svg{width:100%;height:100%;display:block}.train-car svg.flip{transform:scaleX(-1)}.train-car.special{color:var(--warning)}.train-badge{z-index:4;background:var(--warning);color:var(--background);white-space:nowrap;border-radius:6px;padding:0 4px;font-size:9px;font-weight:900;line-height:14px;position:absolute;top:-11px;left:50%;transform:translate(-50%)}.arrival-panel{padding:18px 16px}.arrival-list{flex-direction:column;gap:10px;margin-top:14px;display:flex}.arrival-card{background:var(--surface-strong);border-radius:14px;justify-content:space-between;align-items:center;gap:14px;padding:14px;display:flex}.arrival-card div{flex-direction:column;gap:4px;min-width:0;display:flex}.arrival-card strong{color:var(--text-primary);font-size:16px}.arrival-card span,.arrival-card p,.empty-text{color:var(--text-secondary);margin:0;font-size:13px}.arrival-card p{text-align:right;text-overflow:ellipsis;white-space:nowrap;flex:none;max-width:44%;overflow:hidden}.empty-text{margin-top:14px}.state-panel{min-height:160px;color:var(--text-secondary);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:14px;padding:22px;display:flex}.state-panel button{background:var(--line-color);color:#fff;cursor:pointer;border-radius:999px;min-width:88px;height:38px;font-weight:900}.loader{border:3px solid #ffffff29;border-top-color:var(--line-color);border-radius:999px;width:30px;height:30px;animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (min-width:820px){.app-shell{width:min(100%,920px);padding-top:42px}.toolbar{grid-template-columns:1fr 1fr;display:grid}.map-panel,.arrival-panel,.state-panel{border-radius:20px}}
