:root{--bg-color:#fff}@media (prefers-color-scheme:dark){:root{--bg-color:#1c1c1c}}html,body{background:var(--bg-color);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overscroll-behavior:none;-webkit-overflow-scrolling:auto;margin:0;padding:0;font-family:system-ui,Segoe UI,Roboto,sans-serif;overflow:hidden}body{transform:translate(calc(-1 * env(safe-area-inset-left,0px)), calc(-1 * env(safe-area-inset-top,0px)));transform-origin:0 0}#root{position:absolute;top:0;left:0}canvas.metro-map-canvas{touch-action:none;display:block;position:absolute;top:0;left:0}.station-panel{top:max(16px, env(safe-area-inset-top,0px));left:max(16px, env(safe-area-inset-left,0px));width:min(380px,100vw - 32px);max-height:calc(100vh - max(32px, env(safe-area-inset-top,0px)) - max(32px, env(safe-area-inset-bottom,0px)));background:var(--bg-color);z-index:100;box-sizing:border-box;border-radius:24px;padding:20px 20px 24px;position:fixed;overflow-y:auto;box-shadow:0 8px 32px #0000002e}@media (prefers-color-scheme:dark){.station-panel{box-shadow:0 8px 32px #0000008c}}.station-panel__header{grid-template-columns:auto 1fr auto auto;align-items:center;gap:12px;display:grid}.station-panel__line-dot{border:4px solid;border-radius:50%;flex:none;width:40px;height:40px}.station-panel__header-text{min-width:0}.station-panel__title{text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:20px;font-weight:700;line-height:1.2;overflow:hidden}.station-panel__subtitle{opacity:.65;margin:2px 0 0;font-size:14px;font-weight:500}.station-panel__zone-badge{background:#00000012;border-radius:999px;align-items:center;padding:4px 10px;font-size:12px;font-weight:600;display:inline-flex}@media (prefers-color-scheme:dark){.station-panel__zone-badge{background:#ffffff1a}}.station-panel__close{appearance:none;color:inherit;cursor:pointer;background:#0000000f;border:none;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;font-size:20px;line-height:1;display:inline-flex}.station-panel__close:hover{background:#0000001f}@media (prefers-color-scheme:dark){.station-panel__close{background:#ffffff14}.station-panel__close:hover{background:#ffffff29}}.station-panel__line-tabs{margin-top:20px}.station-panel__section-label{opacity:.55;text-transform:uppercase;letter-spacing:.06em;margin:0 0 8px;font-size:12px;font-weight:600}.station-panel__line-list{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.station-panel__line-chip{appearance:none;color:inherit;cursor:pointer;background:0 0;border:1px solid #0000001f;border-radius:999px;padding:6px 12px;font-size:13px;font-weight:500}.station-panel__line-chip:hover{background:#0000000a}@media (prefers-color-scheme:dark){.station-panel__line-chip{border-color:#ffffff2e}.station-panel__line-chip:hover{background:#ffffff0f}}.station-panel--error{border-left:3px solid #d33;padding:16px 20px}.staging-banner{color:#000;text-align:center;letter-spacing:.02em;z-index:9999;pointer-events:none;-webkit-user-select:none;user-select:none;background:#f59e0b;height:24px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:12px;line-height:24px;position:fixed;top:0;left:0;right:0}.loader-overlay{top:env(safe-area-inset-top,0px);left:env(safe-area-inset-left,0px);right:env(safe-area-inset-right,0px);pointer-events:none;z-index:10;justify-content:center;align-items:center;height:100dvh;display:flex;position:fixed}.loader-spinner{border:4px solid #0000001a;border-top-color:#0009;border-radius:50%;width:48px;height:48px;animation:1s linear infinite loader-spinner-rotate}@media (prefers-color-scheme:dark){.loader-spinner{border-color:#fff9 #ffffff1a #ffffff1a}}@keyframes loader-spinner-rotate{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.loader-spinner{animation:none}}
