:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--panel:#0d121ce0;--border:#ffffff24;--text:#f5f7fb;--muted:#aab3c2;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html,body{background:#0a0d13;width:100%;height:100%;margin:0;overflow:hidden}button{font:inherit}.shell{width:100vw;height:100vh;color:var(--text);position:relative}.map{position:absolute;inset:0}.glass{background:var(--panel);border:1px solid var(--border);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 16px 50px #00000047}.topbar{pointer-events:none;border-radius:16px;justify-content:space-between;align-items:center;min-height:68px;padding:13px 16px;display:flex;position:absolute;top:18px;left:18px;right:18px}.brand{letter-spacing:.13em;font-size:19px;font-weight:900}.subtitle{color:var(--muted);margin-top:3px;font-size:12px}.status{letter-spacing:.1em;align-items:center;gap:8px;font-size:12px;font-weight:800;display:flex}.status-dot{background:#ffb84d;border-radius:50%;width:9px;height:9px;box-shadow:0 0 16px}.status--live .status-dot{background:#56e39f}.stats{border-radius:14px;grid-template-columns:auto 1fr;align-items:baseline;gap:3px 8px;width:min(300px,100vw - 36px);padding:12px 14px;display:grid;position:absolute;top:104px;left:18px}.stats span{color:var(--muted)}.stats small{color:#d7dce5;grid-column:1/-1;margin-top:3px}.stats .error{color:#ff8f8f}.train-card{border-radius:18px;width:min(360px,100vw - 36px);padding:20px;position:absolute;bottom:72px;left:18px}.train-card h1{margin:3px 0 8px;font-size:27px}.eyebrow{color:var(--muted);text-transform:uppercase;letter-spacing:.12em;font-size:11px;font-weight:800}.source-pill{border:1px solid var(--border);letter-spacing:.09em;border-radius:999px;padding:4px 8px;font-size:10px;font-weight:900;display:inline-flex}.close{color:#fff;cursor:pointer;background:0 0;border:0;font-size:25px;position:absolute;top:10px;right:12px}dl{grid-template-columns:1fr 1fr;gap:12px;margin:18px 0;display:grid}dl div{border-top:1px solid var(--border);min-width:0;padding-top:9px}dt{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-size:11px}dd{text-overflow:ellipsis;white-space:nowrap;margin:3px 0 0;font-weight:750;overflow:hidden}.confidence{color:var(--muted);font-size:12px}.legend{color:var(--muted);border-radius:13px;gap:12px;padding:10px 12px;font-size:11px;display:flex;position:absolute;bottom:18px;left:18px}.legend span{align-items:center;gap:6px;display:flex}.dot{border-radius:50%;width:7px;height:7px;display:inline-block}.dot--live{background:#56e39f}.dot--gps-fix{background:#fff;box-shadow:0 0 0 2px #56e39f}.dot--operator{background:#66a7ff}.dot--detected{background:#4db8ff}.dot--estimated{background:#ffb84d}.dot--stale{background:#98a1af}.train-marker-anchor{pointer-events:auto;place-items:center;width:78px;height:32px;display:grid}.train-marker{color:#56e39f;cursor:pointer;background:0 0;border:0;place-items:center;width:78px;height:32px;padding:0;display:grid}.train-marker-visual{width:78px;height:26px;transform:rotate(var(--train-marker-rotation,0deg)) scale(var(--train-marker-scale,.86));transform-origin:50%;filter:drop-shadow(0 3px 4px #000000b8)drop-shadow(0 0 4px #56e39f59);transition:filter .14s,opacity .14s;display:block}.train-marker:hover .train-marker-visual{transform:rotate(var(--train-marker-rotation,0deg)) scale(calc(var(--train-marker-scale,.86) * 1.1))}.train-marker svg{width:100%;height:100%;transform:scaleX(var(--train-marker-flip,1));transform-origin:50%;display:block;overflow:visible}.train-car,.train-engine{fill:currentColor;stroke:#fffffff0;stroke-width:1.25px;vector-effect:non-scaling-stroke}.train-stripe{fill:none;stroke:var(--train-route-color,#172033e0);stroke-width:1.5px;stroke-linecap:round}.train-window{fill:#172033;opacity:.92}.train-wheel{fill:#0a0d13;stroke:#ffffffb8;stroke-width:.7px}.train-marker--live{color:#56e39f}.train-marker--estimated{color:#ffb84d}.train-marker--operator{color:#66a7ff}.train-marker--stale{color:#98a1af;opacity:.74}.train-marker--demo{color:#4db8ff}.train-marker--selected .train-marker-visual{filter:drop-shadow(0 3px 5px #000000c7)drop-shadow(0 0 7px #fffffff5)drop-shadow(0 0 12px)}.maplibregl-ctrl-attrib{font-size:10px}@media (max-width:640px){.topbar{top:10px;left:10px;right:10px}.stats{width:calc(100vw - 20px);top:90px;left:10px}.train-card{width:calc(100vw - 20px);bottom:72px;left:10px}.legend{justify-content:center;bottom:10px;left:10px;right:10px}}.gtfs-ok{color:#85efbc!important}.gtfs-warn{color:#ffc36a!important}.route-name{color:#d9e2ef;margin:-3px 0 4px;font-size:14px;font-weight:750}.destination{color:var(--muted);margin:0 0 10px;font-size:13px}.position-note{color:#d8deea;margin:2px 0 7px;font-size:11px;line-height:1.45}.rail-debug{color:#9be9ca;margin:0 0 7px;font-size:11px;line-height:1.4}.layers{border-radius:14px;gap:9px;width:258px;max-height:calc(100vh - 128px);padding:12px 14px;display:grid;position:absolute;top:104px;right:18px;overflow-y:auto}.layers-title{color:var(--muted);text-transform:uppercase;letter-spacing:.09em;margin-bottom:1px;font-size:10px;font-weight:850}.layers label{color:#e4e9f1;cursor:pointer;align-items:center;gap:9px;font-size:12px;display:flex}.layers input{accent-color:#60e7b1;width:15px;height:15px;margin:0}.layers details{border-top:1px solid #ffffff14;padding-top:7px}.layers summary{cursor:pointer;color:#dfe7f1;-webkit-user-select:none;user-select:none;font-size:11px;font-weight:850}.layer-group{gap:7px;margin-top:8px;padding-left:4px;display:grid}.line-swatch{border-radius:999px;flex:none;width:16px;height:4px;box-shadow:0 0 0 1px #ffffff47}.layers input:disabled+.line-swatch,.layers input:disabled~span{opacity:.4}.freshness{color:#b9d9ff!important}@media (max-width:640px){.layers{width:min(260px,100vw - 20px);max-height:calc(100vh - 238px);top:218px;right:10px}}.train-card-actions{justify-content:space-between;align-items:center;gap:8px;display:flex}.follow-button{border:1px solid var(--border);color:#dfe7f1;cursor:pointer;background:#ffffff0d;border-radius:999px;padding:5px 9px;font-size:10px;font-weight:800}.follow-button--active{color:#9be9ca;background:#60e7b117;border-color:#60e7b1a6}.trip-note{color:#b9d9ff;margin:2px 0 8px;font-size:11px;line-height:1.45}.source-pill--arrived{color:#9be9ca;background:#60e7b11a;border-color:#60e7b1bf}.source-pill--stopped{color:#d6e8ff;background:#b9d9ff12;border-color:#b9d9ff8c}.source-pill--moving{color:#9be9ca;border-color:#56e39f8c}.source-pill--stale{color:#ffc36a;background:#ffb84d14;border-color:#ffb84db3}.arrival-note,.estimate-note,.stale-note{border-radius:9px;margin:2px 0 8px;padding:8px 9px;font-size:11px;line-height:1.4}.arrival-note{color:#9be9ca;background:#60e7b117;border:1px solid #60e7b140}.estimate-note{color:#ffd18a;background:#ffb84d14;border:1px solid #ffb84d3d}.stale-note{color:#ffc36a;background:#ff8f8f12;border:1px solid #ffb84d47}.layer-action{border:1px solid var(--border);color:#dfe7f1;cursor:pointer;text-align:center;background:#ffffff0d;border-radius:9px;padding:7px 9px;font-size:11px;font-weight:800}.layer-action:hover{color:#9be9ca;background:#60e7b114;border-color:#60e7b18c}.layer-subtitle{color:#c6cfdb;letter-spacing:.08em;text-transform:uppercase;margin:8px 0 4px;font-size:10px;font-weight:800}.data-note{color:#9db0c8;margin-top:8px;font-size:10px}.train-card{max-height:calc(100vh - 165px);overflow-y:auto}.amtrak-status-note,.amtrak-alerts{border-radius:10px;margin:8px 0;padding:9px 10px;font-size:11px;line-height:1.45}.amtrak-status-note{color:#d6e8ff;background:#56ccf212;border:1px solid #56ccf240}.amtrak-alerts{color:#ffd18a;background:#ffb84d12;border:1px solid #ffb84d47}.amtrak-alerts strong{margin-bottom:4px;display:block}.amtrak-trip-progress{border-top:1px solid var(--border);border-bottom:1px solid var(--border);margin:9px 0;padding:8px 0}.amtrak-trip-progress summary{cursor:pointer;color:#dfe7f1;font-size:11px;font-weight:850}.trip-stop-list{gap:6px;margin-top:8px;display:grid}.trip-stop{background:#ffffff09;border-left:3px solid #ffffff2e;border-radius:0 8px 8px 0;padding:7px 8px}.trip-stop--departed{opacity:.72;border-left-color:#60e7b173}.trip-stop--current{background:#56e39f12;border-left-color:#56e39f}.trip-stop--upcoming{border-left-color:#b9d9ffa6}.trip-stop-heading,.trip-stop-meta,.trip-stop-times{justify-content:space-between;align-items:center;gap:8px;display:flex}.trip-stop-heading strong{font-size:11px}.trip-stop-heading span,.trip-stop-meta,.trip-stop-times{color:var(--muted);font-size:10px}.trip-stop-meta,.trip-stop-times{flex-wrap:wrap;justify-content:flex-start;margin-top:3px}html,body{overscroll-behavior:none;-webkit-text-size-adjust:100%;height:100dvh}.shell{width:100vw;height:100dvh;min-height:100vh}.topbar,.stats,.layers,.map-toolbar,.train-card,.legend{z-index:10}.topbar{pointer-events:auto;border-radius:15px;width:min(470px,100vw - 28px);min-height:58px;padding:10px 14px;top:14px;left:14px;right:auto}.brand{font-size:17px}.subtitle{white-space:nowrap;text-overflow:ellipsis;max-width:350px;overflow:hidden}.status{flex:none}.map-toolbar{z-index:14;border-radius:14px;align-items:stretch;gap:4px;padding:5px;display:flex;position:absolute;top:14px;right:14px}.toolbar-button{color:#dce4ef;cursor:pointer;touch-action:manipulation;background:0 0;border:1px solid #0000;border-radius:10px;justify-content:center;align-items:center;gap:6px;min-width:74px;min-height:46px;padding:7px 10px;font-size:11px;font-weight:800;display:flex}.toolbar-button b{min-width:18px;height:18px;color:var(--muted);background:#ffffff14;border-radius:999px;place-items:center;padding:0 5px;font-size:9px;display:inline-grid}.toolbar-icon{color:#8ff0c3;font-size:14px;line-height:1}.toolbar-button--active{color:#a9f5d1;background:#60e7b117;border-color:#60e7b159}@media (hover:hover){.toolbar-button:hover,.layer-action:hover,.follow-button:hover{background:#60e7b114;border-color:#60e7b18c}}.stats{z-index:15;width:min(340px,100vw - 28px);max-height:calc(100dvh - 100px);padding:14px 16px 15px;top:82px;left:14px;overflow-y:auto}.stats strong{font-size:22px}.stats small{line-height:1.4}.layers{z-index:15;width:292px;max-height:calc(100dvh - 100px);padding:14px 14px 16px;top:82px;right:14px}.layers-title{padding-right:36px}.layers label{border-radius:8px;min-height:32px}.layers input{flex:none;width:18px;height:18px}.layer-action{touch-action:manipulation;min-height:40px}.panel-close{color:#dfe7f1;cursor:pointer;touch-action:manipulation;background:0 0;border:0;border-radius:10px;width:36px;height:36px;font-size:23px;line-height:1;position:absolute;top:6px;right:7px}.panel-close:hover{background:#ffffff12}.train-card{z-index:20;scrollbar-width:thin;border-radius:18px;width:min(390px,100vw - 28px);max-height:calc(100dvh - 160px);padding:18px;bottom:66px;left:14px}.train-card h1{margin-bottom:6px;font-size:25px}.train-card-grabber{display:none}.close{touch-action:manipulation;border-radius:10px;place-items:center;width:40px;height:40px;display:grid;top:6px;right:7px}.close:hover{background:#ffffff12}.follow-button{touch-action:manipulation;min-height:38px;padding:8px 11px}.train-primary-metrics{gap:9px;margin:14px 0 10px}.train-primary-metrics div{background:#ffffff06;border:1px solid #ffffff17;border-radius:10px;padding:9px 10px}.train-primary-metrics dt{font-size:10px}.train-primary-metrics dd{font-size:13px}.metric-late{color:#ffc36a}.train-more-details{border-top:1px solid var(--border);border-bottom:1px solid var(--border);margin:7px 0 9px;padding:8px 0}.train-more-details summary{color:#dfe7f1;cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;min-height:34px;font-size:11px;font-weight:850;display:flex}.train-secondary-metrics{gap:9px;margin:4px 0 8px}.train-secondary-metrics dd{white-space:normal;font-size:11px;line-height:1.3}.legend{background:#0d121cc7;padding:8px 10px;bottom:14px;left:14px}.maplibregl-ctrl-bottom-right{bottom:8px;right:8px}.maplibregl-ctrl-group button{width:36px;height:36px}@media (max-width:980px) and (min-width:721px){.topbar{width:min(390px,100vw - 390px)}.subtitle{max-width:255px}.toolbar-button{min-width:66px;padding-inline:7px}}@media (max-width:720px){:root{--panel:#0a0f18f0}.topbar{top:calc(8px + env(safe-area-inset-top));border-radius:14px;width:auto;min-height:52px;padding:8px 11px;left:8px;right:8px}.brand{letter-spacing:.11em;font-size:15px}.subtitle{max-width:min(64vw,270px);font-size:10px}.status{gap:6px;font-size:10px}.status-dot{width:8px;height:8px}.map-toolbar{top:calc(68px + env(safe-area-inset-top));border-radius:13px;grid-template-columns:repeat(4,1fr);gap:4px;padding:4px;display:grid;left:8px;right:8px}.toolbar-button{flex-direction:column;gap:4px;min-width:0;min-height:46px;padding:5px 4px;font-size:9px}.toolbar-button b{min-width:17px;height:17px;margin:-20px 0 0 29px;position:absolute}.toolbar-icon{font-size:15px}.stats,.layers{top:calc(124px + env(safe-area-inset-top));width:auto;max-height:calc(100dvh - 140px - env(safe-area-inset-top) - env(safe-area-inset-bottom));z-index:18;border-radius:16px;left:8px;right:8px}.stats{padding:14px 14px 16px}.layers{padding:14px 12px 18px}.layers label{min-height:44px;padding:5px 4px;font-size:13px}.layers input{width:21px;height:21px}.layers summary{align-items:center;min-height:42px;font-size:12px;display:flex}.layer-group{gap:2px}.layer-action{min-height:46px;font-size:12px}.panel-close{width:42px;height:42px;top:4px;right:4px}.train-card{left:8px;right:8px;bottom:calc(8px + env(safe-area-inset-bottom));width:auto;max-height:min(68dvh,660px);padding:17px 14px calc(16px + env(safe-area-inset-bottom));overscroll-behavior:contain;border-radius:21px;box-shadow:0 -8px 40px #0000006b}.train-card-grabber{background:#ffffff47;border-radius:999px;width:42px;height:4px;margin:-7px auto 9px;display:block}.train-card h1{margin-right:38px;font-size:22px}.route-name{font-size:13px}.destination{font-size:12px}.close{width:44px;height:44px;top:8px;right:8px}.follow-button{min-height:44px;font-size:11px}.source-pill{align-items:center;min-height:32px}.train-primary-metrics{grid-template-columns:1fr 1fr;gap:7px;margin-top:12px}.train-primary-metrics div{padding:8px}.train-primary-metrics dd{white-space:normal;font-size:12px;line-height:1.25}.train-more-details summary,.amtrak-trip-progress summary{min-height:44px}.train-secondary-metrics{grid-template-columns:1fr 1fr}.trip-stop{padding:9px}.trip-stop-heading strong{font-size:12px}.legend,.shell--selected .maplibregl-ctrl-bottom-right .maplibregl-ctrl-group{display:none}.maplibregl-ctrl-bottom-right{bottom:calc(8px + env(safe-area-inset-bottom));right:8px}.maplibregl-ctrl-attrib{max-width:72vw;font-size:8px}.train-marker-anchor{width:88px;height:44px}.train-marker{width:84px;height:40px}.train-marker-visual{width:80px}}@media (max-width:390px){.subtitle{display:none}.topbar{min-height:48px}.map-toolbar{top:calc(64px + env(safe-area-inset-top))}.stats,.layers{top:calc(120px + env(safe-area-inset-top))}.train-primary-metrics,.train-secondary-metrics{grid-template-columns:1fr 1fr}}.toolbar-button{position:relative}.topbar-actions{align-items:center;gap:10px;display:flex}.mobile-menu-button,.mobile-menu{display:none}.train-detail-body{display:block}@media (max-width:720px){.topbar{top:calc(7px + env(safe-area-inset-top));z-index:24;border-radius:15px;min-height:50px;padding:7px 9px 7px 12px;left:7px;right:7px}.brand{font-size:16px}.subtitle{display:none}.topbar-actions{gap:7px}.status{letter-spacing:.08em;font-size:10px}.mobile-menu-button{color:#e9f0f7;cursor:pointer;touch-action:manipulation;background:#ffffff0a;border:1px solid #ffffff1a;border-radius:12px;place-items:center;width:42px;height:42px;font-size:20px;line-height:1;display:grid}.mobile-menu-button--active{color:#9ef1c9;background:#60e7b11a;border-color:#60e7b173}.map-toolbar{display:none}.mobile-menu{top:calc(64px + env(safe-area-inset-top));z-index:25;border-radius:16px;grid-template-columns:1fr 1fr;gap:5px;width:min(250px,100vw - 14px);padding:6px;display:grid;position:absolute;right:7px}.mobile-menu button{color:#e8eef6;text-align:left;cursor:pointer;touch-action:manipulation;background:#ffffff06;border:1px solid #ffffff12;border-radius:12px;grid-template-rows:auto auto;grid-template-columns:auto 1fr;align-items:center;column-gap:8px;min-height:64px;padding:8px 9px;display:grid}.mobile-menu button>span{color:#84edbd;grid-row:1/3;font-size:17px}.mobile-menu button>strong{font-size:12px}.mobile-menu button>small{color:var(--muted);font-size:9px}.stats,.layers{top:calc(64px + env(safe-area-inset-top));max-height:calc(100dvh - 76px - env(safe-area-inset-top) - env(safe-area-inset-bottom));z-index:26}.train-card{left:7px;right:7px;bottom:calc(7px + env(safe-area-inset-bottom));width:auto;padding:9px 12px calc(11px + env(safe-area-inset-bottom));border-radius:21px;transition:max-height .2s,padding .2s,transform .2s;overflow:hidden}.train-card--peek{max-height:min(245px,31dvh)}.train-card--expanded{max-height:min(78dvh,760px);padding-top:10px;overflow-y:auto}.train-card-grabber{cursor:ns-resize;touch-action:none;background:0 0;border:0;place-items:center;width:72px;height:22px;margin:-3px auto 1px;padding:0;display:grid}.train-card-grabber>span{background:#ffffff4d;border-radius:999px;width:42px;height:4px}.train-card h1{margin:0 46px 2px 0;font-size:20px;line-height:1.05}.train-card .eyebrow{font-size:9px}.train-card .route-name{white-space:nowrap;text-overflow:ellipsis;max-width:calc(100% - 44px);font-size:12px;overflow:hidden}.train-card .destination{white-space:nowrap;text-overflow:ellipsis;max-width:calc(100% - 44px);margin-bottom:6px;font-size:11px;overflow:hidden}.train-card .close{top:19px;right:7px}.train-card-actions{gap:6px}.source-pill{min-height:30px;padding:4px 9px}.follow-button{min-height:36px;padding:6px 10px}.train-primary-metrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;margin:8px 0 0}.train-primary-metrics div{border-radius:9px;min-width:0;padding:7px 6px}.train-primary-metrics dt{letter-spacing:.04em;font-size:8px}.train-primary-metrics dd{white-space:normal;margin-top:2px;font-size:11px;line-height:1.15}.train-card--peek .train-primary-metrics>div:nth-child(3),.train-card--peek .train-primary-metrics>div:nth-child(6){display:none}.train-card--peek .train-primary-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.train-card--peek .train-detail-body{display:none}.train-card--expanded .train-primary-metrics{grid-template-columns:1fr 1fr;margin-bottom:8px}.train-card--expanded .train-primary-metrics>div:nth-child(3),.train-card--expanded .train-primary-metrics>div:nth-child(6),.train-card--expanded .train-detail-body{display:block}.shell--selected:not(.shell--sheet-expanded) .maplibregl-ctrl-bottom-right{bottom:calc(255px + env(safe-area-inset-bottom));transition:bottom .2s}.shell--selected:not(.shell--sheet-expanded) .maplibregl-ctrl-bottom-right .maplibregl-ctrl-group{display:block}.shell--sheet-expanded .maplibregl-ctrl-bottom-right .maplibregl-ctrl-group,.shell--sheet-expanded .maplibregl-ctrl-attrib{display:none}.maplibregl-ctrl-bottom-left{bottom:calc(8px + env(safe-area-inset-bottom))}.shell--selected:not(.shell--sheet-expanded) .maplibregl-ctrl-bottom-left{bottom:calc(255px + env(safe-area-inset-bottom))}.shell--sheet-expanded .maplibregl-ctrl-bottom-left{display:none}}@media (max-width:430px) and (orientation:landscape){.topbar{max-width:330px;right:auto}.mobile-menu{left:7px;right:auto}.train-card--peek{width:min(390px,48vw);max-height:calc(100dvh - 18px - env(safe-area-inset-top) - env(safe-area-inset-bottom));right:auto}}.train-list-panel{z-index:18;border-radius:16px;flex-direction:column;width:min(390px,100vw - 28px);max-height:calc(100dvh - 100px);display:flex;position:absolute;top:82px;right:14px;overflow:hidden}.train-list-header{border-bottom:1px solid #ffffff14;min-height:62px;padding:13px 52px 10px 14px;position:relative}.train-list-title{color:#f2f6fb;letter-spacing:.08em;text-transform:uppercase;font-size:13px;font-weight:900}.train-list-subtitle{color:var(--muted);margin-top:4px;font-size:10px}.train-list-scroll{overscroll-behavior:contain;scrollbar-width:thin;min-height:0;padding:7px;overflow-y:auto}.train-list-empty{color:var(--muted);text-align:center;padding:22px 14px;font-size:12px;line-height:1.5}.train-list-row{color:#e8eef6;text-align:left;cursor:pointer;touch-action:manipulation;background:0 0;border:1px solid #0000;border-radius:12px;align-items:center;width:100%;min-height:76px;margin:0;padding:9px 32px 9px 20px;display:flex;position:relative}.train-list-row+.train-list-row{margin-top:3px}.train-list-row:hover,.train-list-row--selected{background:#60e7b111;border-color:#60e7b142}.train-list-service{border-radius:999px;width:4px;position:absolute;top:12px;bottom:12px;left:7px}.train-list-state{border-radius:50%;width:7px;height:7px;position:absolute;top:8px;left:11px;box-shadow:0 0 8px}.train-list-state--live{color:#56e39f;background:currentColor}.train-list-state--estimated{color:#ffb84d;background:currentColor}.train-list-state--operator{color:#66a7ff;background:currentColor}.train-list-state--stale{color:#98a1af;background:currentColor}.train-list-state--demo{color:#4db8ff;background:currentColor}.train-list-copy{gap:3px;width:100%;min-width:0;display:grid}.train-list-name{align-items:center;gap:8px;min-width:0;display:flex}.train-list-name strong{white-space:nowrap;font-size:12px;line-height:1.2}.train-list-name em{color:#9be9ca;letter-spacing:.05em;margin-left:auto;font-size:8px;font-style:normal;font-weight:850}.train-list-route{color:#cbd5e2;white-space:nowrap;text-overflow:ellipsis;min-width:0;font-size:10px;line-height:1.25;overflow:hidden}.train-list-meta{color:var(--muted);flex-wrap:wrap;gap:3px 9px;font-size:9px;line-height:1.25;display:flex}.train-list-meta b{color:#eaf0f7;font-weight:800}.train-list-go{color:#86edbf;font-size:24px;font-weight:300;position:absolute;top:50%;right:10px;transform:translateY(-50%)}@media (max-width:720px){.mobile-menu-trains{grid-column:1/-1;min-height:54px!important}.train-list-panel{top:calc(64px + env(safe-area-inset-top));width:auto;max-height:calc(100dvh - 76px - env(safe-area-inset-top) - env(safe-area-inset-bottom));z-index:27;border-radius:18px;left:7px;right:7px}.train-list-header{min-height:60px;padding:12px 52px 9px 13px}.train-list-title{font-size:12px}.train-list-subtitle{font-size:9px}.train-list-scroll{padding:6px}.train-list-row{border-radius:13px;min-height:82px;padding:10px 34px 10px 21px}.train-list-name strong{font-size:13px}.train-list-name em{font-size:8px}.train-list-route{font-size:11px}.train-list-meta{gap:4px 10px;font-size:10px}}.search-panel{border-radius:16px;flex-direction:column;width:min(430px,100vw - 36px);max-height:calc(100vh - 142px);display:flex;position:absolute;top:104px;left:18px;overflow:hidden}.search-header{border-bottom:1px solid var(--border);min-height:64px;padding:13px 54px 10px 14px;position:relative}.search-box{border:1px solid var(--border);min-height:42px;color:var(--muted);background:#0003;border-radius:12px;align-items:center;gap:9px;margin:10px 12px 8px;padding:0 12px;display:flex}.search-box input{width:100%;min-width:0;color:var(--text);font:inherit;background:0 0;border:0;outline:0;font-size:13px}.search-box input::placeholder{color:#7f8998}.search-results{padding:2px 8px 10px;overflow-y:auto}.search-section-title{color:var(--muted);letter-spacing:.11em;text-transform:uppercase;padding:9px 7px 5px;font-size:9px;font-weight:900}.search-section-title b{color:#dce3ed;margin-left:4px}.search-empty{color:var(--muted);padding:10px 8px;font-size:11px}.search-result{width:100%;min-height:57px;color:var(--text);cursor:pointer;text-align:left;background:0 0;border:0;border-radius:10px;grid-template-columns:7px minmax(0,1fr) auto;align-items:center;gap:10px;padding:8px 9px;display:grid}.search-result:hover{background:#fff1}.search-result>span{gap:3px;min-width:0;display:grid}.search-result strong{text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.search-result small{text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:10px;overflow:hidden}.search-result em{color:#7f8998;letter-spacing:.1em;font-size:8px;font-style:normal;font-weight:900}.search-station-dot{background:#f5f7fb;border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 1px #172033}.search-station-dot--amtrak{background:#1f4e79;box-shadow:0 0 0 1px #fff}.search-station-dot--la-metro{background:#111827;box-shadow:0 0 0 1px #fdb913}.station-card{border-radius:18px;width:min(360px,100vw - 36px);padding:20px;position:absolute;bottom:72px;left:18px}.station-card h1{margin:5px 34px 7px 0;font-size:24px;line-height:1.08}.station-code{color:var(--muted);margin:14px 0 10px;font-size:11px}.station-code strong{color:var(--text);margin-left:5px}.station-share{border:1px solid var(--border);color:var(--text);cursor:pointer;background:#ffffff0e;border-radius:9px;padding:8px 10px;font-size:11px;font-weight:800}.station-share:hover{background:#ffffff17}@media (max-width:720px){.search-panel{top:calc(64px + env(safe-area-inset-top));width:calc(100vw - 20px);max-height:calc(100vh - 84px - env(safe-area-inset-top));border-radius:14px;left:10px}.search-header{min-height:58px;padding:11px 52px 8px 12px}.search-box{min-height:46px;margin-inline:8px}.search-result{min-height:62px}.station-card{width:calc(100vw - 20px);bottom:72px;left:10px}}.share-button{border:1px solid var(--border);color:var(--text);cursor:pointer;background:#ffffff0a;border-radius:999px;padding:6px 10px;font-size:10px;font-weight:800}.share-button:hover{background:#ffffff16}.station-card{width:min(520px,100vw - 36px);max-height:min(72dvh,720px);overflow-y:auto}.station-actions{justify-content:space-between;align-items:center;gap:10px;margin:12px 0 14px;display:flex}.station-actions .station-code{margin:0}.station-board-header{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding-top:12px;display:flex}.station-board-header>div{gap:2px;min-width:0;display:grid}.station-board-header strong{font-size:12px}.station-board-header small{color:var(--muted);font-size:9px}.station-board-live{color:#8ef1be;letter-spacing:.04em;text-transform:uppercase;background:#56e39f17;border:1px solid #56e39f59;border-radius:999px;flex:none;padding:5px 7px;font-size:8px;font-weight:900}.station-board{gap:5px;margin-top:9px;display:grid}.station-board-row{width:100%;min-height:76px;color:var(--text);cursor:pointer;text-align:left;background:#00000021;border:1px solid #ffffff12;border-left:3px solid #b9d9ff73;border-radius:11px;grid-template-rows:auto auto;grid-template-columns:72px minmax(0,1fr) auto;align-items:center;gap:3px 10px;padding:9px 29px 9px 10px;display:grid;position:relative}.station-board-row:hover{background:#ffffff0e;border-color:#ffffff1f}.station-board-row--station{background:#56e39f0e;border-left-color:#56e39f}.station-board-row--approaching{border-left-color:#83c9ff}.station-board-state{color:#9ca8b8;letter-spacing:.07em;text-transform:uppercase;grid-row:1/3;align-self:center;font-size:8px;font-weight:900}.station-board-row--station .station-board-state{color:#83edb9}.station-board-row--approaching .station-board-state{color:#9bd5ff}.station-board-train{gap:3px;min-width:0;display:grid}.station-board-train strong{text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.station-board-train small{text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:9px;overflow:hidden}.station-board-times{justify-items:end;gap:2px;min-width:88px;display:grid}.station-board-times strong{font-size:12px}.station-board-times small{color:var(--muted);font-size:8px}.station-board-times em{color:#8ef1be;letter-spacing:.06em;text-transform:uppercase;font-size:7px;font-style:normal;font-weight:900}.station-board-meta{color:var(--muted);flex-wrap:wrap;grid-column:2/4;align-items:center;gap:5px 9px;font-size:8px;display:flex}.station-board-meta b{color:#dce5ef;font-weight:800}.station-delay{color:#ffd28c;font-style:normal;font-weight:900}.station-delay--ok{color:#84e9b6}.station-board-arrow{color:#778394;font-size:20px;font-weight:300;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.station-board-empty{color:var(--muted);background:#0000001f;border:1px dashed #ffffff1a;border-radius:10px;margin:10px 0 0;padding:12px;font-size:10px;line-height:1.45}@media (max-width:720px){.station-card{top:calc(64px + env(safe-area-inset-top));bottom:calc(7px + env(safe-area-inset-bottom));width:calc(100vw - 20px);max-height:none;padding:16px 14px calc(16px + env(safe-area-inset-bottom))}.station-card h1{font-size:21px}.station-actions{align-items:flex-start}.station-board-row{grid-template-columns:62px minmax(0,1fr) auto;column-gap:7px;min-height:88px;padding-left:8px}.station-board-times{min-width:76px}.station-board-train small{white-space:normal;line-height:1.25}}.train-marker--metro.train-marker--live{color:var(--train-route-color,#8aa4b8)}.train-marker--metro.train-marker--stale{color:var(--train-route-color,#8aa4b8);opacity:.5}.train-marker--metro .train-marker-visual{width:58px;filter:drop-shadow(0 3px 4px #000000b3) drop-shadow(0 0 3px color-mix(in srgb, currentColor 55%, transparent))}.train-marker--metro.train-marker--selected .train-marker-visual{filter:drop-shadow(0 3px 5px #000000c7)drop-shadow(0 0 7px #fffffff5)drop-shadow(0 0 12px);width:68px}.train-marker--metrolink,.train-marker--amtrak,.train-marker--metro{color:var(--train-route-color,#8aa4b8)}.train-marker--metrolink.train-marker--stale,.train-marker--amtrak.train-marker--stale,.train-marker--metro.train-marker--stale{opacity:.52}.train-marker--estimated .train-marker-visual{opacity:.92}.train-marker--demo .train-marker-visual{opacity:.9}.train-state-dot{stroke:#0a0d13;stroke-width:.85px;vector-effect:non-scaling-stroke}.train-marker--live .train-state-dot{fill:#56e39f}.train-marker--estimated .train-state-dot{fill:#ffb84d}.train-marker--operator .train-state-dot{fill:#66a7ff}.train-marker--stale .train-state-dot{fill:#98a1af}.train-marker--demo .train-state-dot{fill:#4db8ff}.train-window-row{fill:none;stroke:#172033;stroke-width:1.45px;stroke-linecap:round;vector-effect:non-scaling-stroke}.train-window-row--lower{opacity:.82}.train-car--intercity{rx:3px}.train-engine--intercity{stroke-linejoin:round}.metro-car{fill:currentColor;stroke:#fffffff2;stroke-width:1.2px;vector-effect:non-scaling-stroke}.metro-window{fill:#172033;opacity:.94}.metro-door{fill:none;stroke:#172033d1;stroke-width:1px;vector-effect:non-scaling-stroke}.train-marker--mode-metro .train-marker-visual{width:50px;height:25px}.train-marker--mode-commuter-rail .train-marker-visual{width:78px;height:28px}.train-marker--mode-intercity .train-marker-visual{width:86px;height:28px}.train-marker--mode-metro.train-marker--selected .train-marker-visual{width:58px}.train-marker--mode-commuter-rail.train-marker--selected .train-marker-visual{width:84px}.train-marker--mode-intercity.train-marker--selected .train-marker-visual{width:92px}.search-result{grid-template-columns:5px minmax(0,1fr) auto;align-items:center;gap:11px;min-height:68px;padding:9px 10px;position:relative}.search-result-accent{width:4px;height:44px;box-shadow:0 0 8px color-mix(in srgb, currentColor 18%, transparent);background:#8aa4b8;border-radius:999px}.search-result-accent--station{background:linear-gradient(#f5f7fb,#8090a5);height:34px}.search-result-copy{min-width:0;gap:4px!important;display:grid!important}.search-result-title-row{align-items:center;gap:7px;min-width:0;display:flex}.search-result-title-row>strong{flex:auto;min-width:0}.search-provider-badge{text-overflow:ellipsis;white-space:nowrap;letter-spacing:.03em;border:1px solid;border-radius:999px;flex:0 auto;max-width:46%;padding:2px 6px;font-size:7px;font-weight:900;overflow:hidden}.search-result-meta{text-overflow:ellipsis;white-space:nowrap;color:#9ca8b8;font-size:9px;overflow:hidden}.search-result--station{min-height:72px}.station-provider-badges{flex-wrap:wrap;align-items:center;gap:6px;margin:7px 0 2px;display:flex}.station-provider-badges--compact{gap:4px;margin:1px 0 0}.station-provider-badge{color:#dce5ef;white-space:nowrap;background:#ffffff09;border:1px solid #ffffff29;border-radius:999px;align-items:center;gap:5px;width:fit-content;padding:3px 7px;font-size:8px;font-weight:850;line-height:1;display:inline-flex}.station-provider-badge i{border-radius:50%;width:6px;height:6px}.station-provider-badges--compact .station-provider-badge{padding:2px 5px;font-size:7px}.station-provider-badges--compact .station-provider-badge i{width:5px;height:5px}.station-codes{min-width:0;color:var(--muted);flex-wrap:wrap;gap:4px 10px;font-size:9px;display:flex}.station-codes strong{color:var(--text)}.station-actions{align-items:center}.board-provider-chip{color:#dce5ef;vertical-align:1px;background:#ffffff14;border-radius:999px;margin-right:3px;padding:2px 5px;font-size:7px;font-weight:900;display:inline-block}.station-board-row{border-left-width:3px}@media (max-width:720px){.search-result{grid-template-columns:5px minmax(0,1fr);min-height:74px;padding-right:9px}.search-result>em{display:none}.search-provider-badge{max-width:42%}.station-actions{flex-direction:column;align-items:flex-start}.station-share{width:100%}}.train-primary-metrics--public dd{overflow-wrap:anywhere}.train-alerts-clean{margin:8px 0}.train-alerts-clean summary,.train-history summary,.train-equipment summary{cursor:pointer;font-weight:700}.train-alerts-clean>div{color:#f7d98a;margin-top:7px;font-size:11px;line-height:1.45}.train-history,.train-equipment{border-top:1px solid #ffffff17;margin:9px 0;padding-top:8px}.history-controls{flex-wrap:wrap;gap:6px;margin:8px 0;display:flex}.history-button{color:#d9e6ec;font:inherit;cursor:pointer;background:#ffffff0b;border:1px solid #93ffd938;border-radius:999px;padding:5px 9px;font-size:10px}.history-button:hover,.history-button--active{color:#8ff5ce;background:#2fb8891f;border-color:#5af0bea6}.history-button:disabled{opacity:.35;cursor:default}.layers-advanced{border-top:1px solid #ffffff14;margin-top:10px;padding-top:8px}.layers-advanced small{color:#8ea0aa;padding:0 2px 5px 31px;line-height:1.35;display:block}.history-speed-control{flex-wrap:wrap;align-items:center;gap:6px;margin:4px 0 8px;display:flex}.history-speed-control>span{color:#91a4ad;letter-spacing:.08em;text-transform:uppercase;margin-right:2px;font-size:10px}.history-run-summary{background:#ffffff06;border:1px solid #93ffd91f;border-radius:9px;gap:2px;margin-top:8px;padding:8px 9px;display:grid}.history-run-summary strong{color:#e8f4f7;font-size:11px}.history-run-summary span{color:#91a4ad;font-size:10px}.history-replay-marker{background:var(--history-replay-color,#71e5bd);pointer-events:none;will-change:transform;border:2px solid #fffffff2;border-radius:50%;width:14px;height:14px;box-shadow:0 0 0 3px #080f1459}.pwa-update{z-index:1200;left:50%;bottom:max(18px, env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);color:#f5f7fb;background:#0a0d13f0;border:1px solid #ffffff24;border-radius:12px;align-items:center;gap:10px;max-width:min(92vw,520px);padding:10px 12px;font-size:13px;display:flex;position:fixed;transform:translate(-50%);box-shadow:0 8px 30px #00000047}.pwa-update button{cursor:pointer}.pwa-update>button:not(.pwa-update-dismiss){color:#0a0d13;background:#f5f7fb;border:0;border-radius:8px;padding:7px 10px;font-weight:700}.pwa-update-dismiss{color:inherit;background:0 0;border:0;font-size:20px;line-height:1}.train-marker--mode-light-rail .train-marker-visual,.train-marker--mode-people-mover .train-marker-visual{width:50px;height:25px}.train-marker--mode-regional .train-marker-visual{width:72px;height:28px}.train-marker--mode-heritage .train-marker-visual{width:52px;height:28px}.train-marker--mode-light-rail.train-marker--selected .train-marker-visual,.train-marker--mode-people-mover.train-marker--selected .train-marker-visual{width:58px}.train-marker--mode-regional.train-marker--selected .train-marker-visual{width:80px}.train-marker--mode-heritage.train-marker--selected .train-marker-visual{width:60px}.about-link{color:#b9c8d4;letter-spacing:.04em;white-space:nowrap;font-size:10px;font-weight:800;text-decoration:none}.about-link:hover{color:#8ff5ce}.legend-legal{color:#a9b8c0;font-weight:800;text-decoration:none}.legend-legal:hover{color:#8ff5ce}.legal-shell{overscroll-behavior-y:contain;color:#edf4f7;background:radial-gradient(circle at 18% 0,#3ed6a01f,#0000 34rem),radial-gradient(circle at 88% 18%,#4b84d41c,#0000 30rem),#080d13;width:100%;height:100dvh;padding:0 18px 72px;overflow:hidden auto}.legal-header{border-bottom:1px solid #ffffff17;justify-content:space-between;align-items:center;gap:16px;width:min(980px,100%);min-height:66px;margin:0 auto;display:flex}.legal-brand{color:#f2f8fa;letter-spacing:.13em;align-items:center;gap:9px;font-weight:900;text-decoration:none;display:inline-flex}.legal-brand img{border-radius:9px;width:34px;height:34px}.legal-map-link{color:#92e6c5;font-size:12px;font-weight:800;text-decoration:none}.legal-document{width:min(880px,100%);margin:0 auto}.legal-hero{grid-template-columns:minmax(0,1fr) minmax(220px,310px);align-items:center;gap:28px;padding:54px 0 34px;display:grid}.legal-hero-copy{min-width:0}.legal-hero h1{letter-spacing:-.04em;max-width:760px;margin:8px 0 14px;font-size:clamp(38px,7vw,68px);line-height:1.02}.legal-hero-copy>p{color:#c6d2d9;max-width:690px;font-size:clamp(16px,2.4vw,21px);line-height:1.55}.legal-hero .legal-updated{color:#7f929d;letter-spacing:.04em;margin-top:18px;font-size:11px}.legal-hero-logo{border-radius:22px;width:100%;height:auto;box-shadow:0 24px 70px #00000052}.legal-summary{grid-template-columns:repeat(3,1fr);gap:10px;margin:0 0 28px;display:grid}.legal-summary>div{background:#ffffff07;border:1px solid #ffffff17;border-radius:13px;padding:16px}.legal-summary strong,.legal-summary span{display:block}.legal-summary strong{color:#edf6f8;margin-bottom:7px;font-size:12px}.legal-summary span{color:#91a5af;font-size:11px;line-height:1.55}.legal-index{flex-wrap:wrap;gap:8px;margin-bottom:22px;display:flex}.legal-index a{color:#aeeed6;background:#8ff5ce0b;border:1px solid #8ff5ce2e;border-radius:999px;padding:8px 11px;font-size:11px;font-weight:800;text-decoration:none}.legal-document section{border-top:1px solid #ffffff17;padding:34px 0;scroll-margin-top:18px}.legal-document h2{letter-spacing:-.025em;margin:0 0 15px;font-size:clamp(23px,4vw,34px)}.legal-document h3{color:#dbe8ed;margin:24px 0 7px;font-size:14px}.section-kicker{color:#72d8b0;letter-spacing:.12em;text-transform:uppercase;margin-bottom:7px;font-size:10px;font-weight:900}.legal-document p,.legal-document li{color:#aebdc5;font-size:14px;line-height:1.7}.legal-document p a,.legal-notes a{color:#92e6c5;text-underline-offset:3px}.legal-document code{color:#b7f3dc;background:#8ff5ce0e;border:1px solid #8ff5ce24;border-radius:5px;padding:2px 5px;font:600 .9em/1.4 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.legal-document ul{margin:14px 0;padding-left:22px}.legal-document li+li{margin-top:7px}.legal-grid{grid-template-columns:1fr 1fr;gap:10px;margin:18px 0;display:grid}.legal-grid>div{background:#ffffff07;border:1px solid #ffffff17;border-radius:13px;align-content:start;gap:8px;min-height:115px;padding:16px;display:grid}.legal-grid strong{color:#eef7f8;align-items:center;gap:8px;font-size:13px;display:flex}.legal-grid span{color:#9eb0b9;font-size:12px;line-height:1.55}.fidelity-dot{border-radius:50%;flex:none;width:8px;height:8px;box-shadow:0 0 10px}.fidelity-dot--gps{color:#66e6b3;background:currentColor}.fidelity-dot--reported{color:#83b8ff;background:currentColor}.fidelity-dot--estimated{color:#f0b85a;background:currentColor}.fidelity-dot--last{color:#7f929d;background:currentColor}.legal-contact,.legal-callout{background:#3dbd8c13;border:1px solid #5ee8b340;border-radius:11px;margin-top:18px;padding:13px 15px;font-weight:800;text-decoration:none;display:block;color:#a9efd3!important;font-size:12px!important}.source-table{border:1px solid #ffffff17;border-radius:13px;margin:18px 0;overflow:hidden}.source-table>div{background:#ffffff06;grid-template-columns:minmax(145px,.42fr) 1fr;gap:16px;padding:13px 15px;display:grid}.source-table>div+div{border-top:1px solid #ffffff13}.source-table strong{color:#e5eff2;font-size:12px}.source-table span{color:#98aab4;font-size:12px;line-height:1.5}.legal-notes{grid-template-columns:1fr 1fr;gap:10px;margin:16px 0;display:grid}.legal-notes p{color:#91a4ae;background:#ffffff06;border-radius:11px;margin:0;padding:14px;font-size:12px;line-height:1.55}.legal-plain-grid,.legal-terms-grid{grid-template-columns:1fr 1fr;gap:10px;margin:18px 0;display:grid}.legal-plain-grid>div,.legal-terms-grid>div{background:#ffffff06;border:1px solid #ffffff16;border-radius:12px;padding:16px}.legal-plain-grid strong{color:#dce9ed;font-size:13px}.legal-plain-grid p,.legal-terms-grid p{margin:7px 0 0;font-size:12px;line-height:1.6}.legal-terms-grid h3{margin:0}.legal-disclaimer{color:#cbb990;background:#ffb84d12;border-radius:12px;margin-top:22px;padding:16px;font-size:11px;line-height:1.6}@media (max-width:720px){.about-link{display:none}.mobile-menu button,.mobile-menu a{color:#e8eef6;text-align:left;cursor:pointer;touch-action:manipulation;background:#ffffff06;border:1px solid #ffffff12;border-radius:12px;grid-template-rows:auto auto;grid-template-columns:auto 1fr;align-items:center;column-gap:8px;min-height:64px;padding:8px 9px;text-decoration:none;display:grid}.mobile-menu a>span{color:#84edbd;grid-row:1/3;font-size:17px}.mobile-menu a>strong{font-size:12px}.mobile-menu a>small{color:var(--muted);font-size:9px}.mobile-menu-about,.mobile-menu-discord{grid-column:1/-1}.legal-shell{padding-inline:14px}.legal-hero{grid-template-columns:1fr;gap:20px;padding-top:34px}.legal-hero-logo{grid-row:1;justify-self:center;width:min(280px,78vw)}.legal-hero-copy{grid-row:2}.legal-summary,.legal-grid,.legal-notes,.legal-plain-grid,.legal-terms-grid{grid-template-columns:1fr}.source-table>div{grid-template-columns:1fr;gap:5px}}.topbar{gap:18px;width:min(650px,100vw - 28px)}.topbar-branding{flex:auto;align-items:center;gap:10px;min-width:0;display:flex}.brand-mark{object-fit:cover;border-radius:11px;flex:none;width:42px;height:42px;box-shadow:0 6px 18px #0000003d}.topbar-brand-copy{min-width:0}.topbar-brand-copy .subtitle{white-space:nowrap;align-items:center;gap:5px;min-width:0;display:flex}.topbar-brand-copy .subtitle span{text-overflow:ellipsis;min-width:0;overflow:hidden}.topbar-brand-copy .subtitle b{color:#cbd6df;flex:none;font-size:.92em}.topbar-actions{flex:none;gap:9px}.about-link{color:#c7d2dc;border-radius:9px;padding:7px 9px}.about-link:hover{background:#ffffff0f}.discord-link{color:#a9efd3}.legal-discord{width:fit-content;padding-inline:18px}.status{letter-spacing:.045em;text-transform:uppercase;white-space:nowrap;background:#ffffff09;border:1px solid #ffffff14;border-radius:999px;min-height:30px;padding:0 9px}.layer-regions{gap:7px;margin-top:8px;display:grid}.layers .region-layer-group,.layers .provider-layer-group{background:#ffffff05;border:1px solid #ffffff13;border-radius:10px;margin:0;padding:0;overflow:hidden}.layers .region-layer-group>summary,.layers .provider-layer-group>summary{justify-content:space-between;align-items:center;gap:8px;min-height:36px;padding:7px 9px;list-style-position:inside;display:flex}.layers .region-layer-group>summary{background:#ffffff06}.layers .region-layer-group>summary span,.layers .provider-layer-group>summary span{flex:auto}.layers .region-layer-group>summary small,.layers .provider-layer-group>summary small{color:#8695a5;letter-spacing:.02em;flex:none;font-size:8px;font-weight:750}.layers .provider-layer-group{background:#00000017;border-color:#ffffff0f;margin:0 7px 7px}.layers .provider-layer-group:first-of-type{margin-top:7px}.layers .provider-layer-group .layer-group{margin:0;padding:2px 8px 7px}.layer-regions--stations{gap:9px}.layer-region{border:1px solid #ffffff12;border-radius:10px;min-width:0;margin:0;padding:7px 8px 5px}.layer-region legend{color:#8695a5;letter-spacing:.08em;text-transform:uppercase;padding:0 5px;font-size:8px;font-weight:850}.stats{padding:15px;display:block}.status-heading{color:#eaf1f7;letter-spacing:.08em;text-transform:uppercase;padding-right:38px;font-size:12px;font-weight:900}.status-summary{grid-template-columns:1fr 1fr;gap:8px;margin-top:12px;display:grid}.status-summary>div{background:#ffffff06;border:1px solid #ffffff13;border-radius:11px;gap:2px;min-width:0;padding:10px;display:grid}.status-summary strong{color:#f3f7fb;font-size:22px;line-height:1}.status-summary span{color:#93a1af;font-size:9px}.status-stream-line{color:#c5d0da;align-items:center;gap:7px;min-height:34px;margin:8px 0 10px;padding:0 3px;font-size:9px;display:flex}.status-stream-line time{color:#7f8d9b;white-space:nowrap;margin-left:auto}.status-mini-dot{background:#ffb84d;border-radius:50%;flex:none;width:7px;height:7px;box-shadow:0 0 9px}.status-mini-dot--live{color:#56e39f;background:currentColor}.status-mini-dot--connecting{color:#83c9ff;background:currentColor}.status-mini-dot--delayed{color:#ffb84d;background:currentColor}.provider-status-list{gap:6px;display:grid}.status-region{border:1px solid #ffffff12;border-radius:10px;overflow:hidden}.status-region summary{cursor:pointer;color:#dfe7ef;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;min-height:38px;padding:8px 10px;font-size:10px;font-weight:850;display:flex}.status-region summary span{flex:auto}.status-region summary b{color:#8796a5;font-size:8px;font-weight:800}.status-region[open] summary{background:#ffffff06;border-bottom:1px solid #fff1}.provider-status-row{grid-template-columns:7px minmax(0,1fr) auto;align-items:center;gap:8px;min-height:48px;padding:7px 9px;display:grid}.provider-status-row+.provider-status-row{border-top:1px solid #ffffff0d}.provider-status-row>i{border-radius:999px;width:7px;height:28px}.provider-status-row>span{gap:2px;min-width:0;display:grid}.provider-status-row strong{text-overflow:ellipsis;white-space:nowrap;color:#e5edf5;font-size:10px;overflow:hidden}.provider-status-row small{text-overflow:ellipsis;white-space:nowrap;color:#83919f;font-size:8px;overflow:hidden}.provider-state{color:#aab6c1;text-align:center;background:#ffffff0f;border-radius:999px;min-width:28px;padding:4px 6px;font-size:8px}.provider-state--live{color:#80e9b5;background:#56e39f1c}.provider-state--delayed{color:#ffc36a;background:#ffb84d1c}.provider-state--offline{color:#ff9b9b;background:#ff70701a}.provider-state--connecting{color:#9bd5ff;background:#83c9ff1a}.provider-state--static{color:#9aa7b3;background:#ffffff0e}.status-notice{color:#97a5b2;margin-top:10px;font-size:9px;line-height:1.45;display:block}.train-list-group+.train-list-group{margin-top:5px}.train-list-group-heading{z-index:2;color:#8e9ca9;letter-spacing:.09em;text-transform:uppercase;background:#0d121cf7;justify-content:space-between;align-items:center;min-height:30px;padding:7px 9px 6px;font-size:8px;font-weight:900;display:flex;position:sticky;top:0}.train-list-group-heading b{color:#b7c2cc;background:#ffffff0f;border-radius:999px;padding:2px 6px;font-size:8px}@media (max-width:980px) and (min-width:721px){.topbar{width:min(410px,100vw - 390px)}.topbar .subtitle{max-width:190px}.about-link{display:none}}@media (max-width:720px){.topbar{gap:8px;width:auto}.topbar-branding{gap:7px}.brand-mark{border-radius:9px;width:34px;height:34px}.topbar-actions{gap:6px}.status{min-height:28px;padding-inline:8px}.layers .region-layer-group>summary,.layers .provider-layer-group>summary{min-height:44px;padding:8px 9px}.layers .provider-layer-group .layer-group{padding-bottom:5px}.layer-region{padding-block:8px 4px}.status-region summary{min-height:44px}.provider-status-row{min-height:54px}}@media (max-width:370px){.brand-mark{width:30px;height:30px}.status{padding-inline:7px;font-size:9px}.status-dot{width:7px;height:7px}}.account-shell{height:100dvh;min-height:100dvh;overflow-y:auto}.account-document{background:#101720eb;border:1px solid #ffffff17;border-radius:20px;width:min(720px,100%);margin:58px auto 100px;padding:28px;box-shadow:0 24px 80px #00000047}.account-document--wide{width:min(980px,100%)}.account-document>h1{color:#f4f8fb;margin:6px 0 8px;font-size:clamp(28px,5vw,44px)}.account-document>p{color:#9eabb7;line-height:1.6}.account-stack,.labs-stack,.alerts-stack{gap:14px;margin-top:24px;display:grid}.account-loading,.account-callout,.account-error{color:#aebbc6;background:#ffffff06;border:1px solid #ffffff17;border-radius:13px;padding:16px}.account-callout{gap:7px;display:grid}.account-callout strong{color:#eef5fa}.account-callout span{line-height:1.5}.account-error{color:#ffb1b1;background:#ff707012;border-color:#ff707047}.account-primary,.account-secondary{color:#b6f6dc;min-height:46px;font:inherit;cursor:pointer;background:#54e8b01f;border:1px solid #54e8b059;border-radius:12px;justify-content:center;align-items:center;padding:0 17px;font-weight:850;text-decoration:none;display:inline-flex}.account-secondary{color:#abb8c3;background:0 0;border-color:#ffffff1a}.account-profile{background:#ffffff06;border:1px solid #ffffff17;border-radius:14px;align-items:center;gap:12px;padding:18px;display:flex}.account-profile>div{gap:2px;display:grid}.account-profile strong{color:#f4f8fb;font-size:18px}.account-profile small{color:#8392a0}.account-access{color:#aeb9c3;letter-spacing:.08em;text-transform:uppercase;background:#ffffff12;border-radius:999px;padding:7px 10px;font-size:9px;font-weight:900}.account-access--beta{color:#b6bdff;background:#5865f22b}.account-access--developer{color:#92efc8;background:#54e8b024}.account-role-grid,.labs-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.account-role,.labs-summary>div{background:#ffffff05;border:1px solid #ffffff14;border-radius:12px;gap:4px;padding:14px;display:grid}.account-role strong,.labs-summary strong{color:#dce5ec}.account-role span,.labs-summary span{color:#7f8d99;font-size:11px}.account-role--active{background:#54e8b00f;border-color:#54e8b047}.account-role--active span{color:#7fe8b9}.legal-header-links{align-items:center;gap:16px;display:flex}.legal-header-links a{color:#b5c1ca;font-size:12px;font-weight:800;text-decoration:none}.labs-summary{grid-template-columns:repeat(3,minmax(0,1fr))}.labs-summary strong{font-size:24px}.labs-section{background:#ffffff05;border:1px solid #ffffff14;border-radius:14px;padding:18px}.labs-section h2{color:#eaf1f7;margin:5px 0 14px}.labs-table{display:grid}.labs-table>div{border-top:1px solid #ffffff0f;justify-content:space-between;gap:15px;min-height:38px;padding:8px 0;display:flex}.labs-table strong{color:#d5dfe7}.labs-table span{color:#8d9aa6}.labs-pills{flex-wrap:wrap;gap:8px;display:flex}.labs-pills span{color:#9bdaba;background:#54e8b014;border-radius:999px;padding:8px 10px}.labs-developer{border-color:#5865f23d}.labs-developer details{margin-top:14px}.labs-developer summary{cursor:pointer;color:#bec5ff}.labs-developer pre{color:#a9b7c3;background:#090e14;border-radius:10px;max-height:420px;padding:13px;font-size:10px;overflow:auto}.labs-note{color:#7f8d99;font-size:11px;line-height:1.55}.alerts-controls{flex-wrap:wrap;gap:7px;display:flex}.alerts-controls button{color:#9eabb7;text-transform:capitalize;cursor:pointer;background:#ffffff06;border:1px solid #ffffff17;border-radius:999px;padding:7px 11px}.alerts-controls button.active{color:#aef0d2;background:#54e8b01a;border-color:#54e8b059}.service-alert-card{background:#ffffff06;border:1px solid #ffffff17;border-left:4px solid #5865f2;border-radius:14px;padding:18px;scroll-margin-top:80px}.service-alert-card--minor{border-left-color:#f0b232}.service-alert-card--major{border-left-color:#f47b20}.service-alert-card--critical{border-left-color:#ed4245}.service-alert-card header{color:#98a5b0;text-transform:uppercase;letter-spacing:.06em;justify-content:space-between;font-size:10px;font-weight:850;display:flex}.service-alert-card header b{color:inherit}.service-alert-card h2{color:#edf3f7;margin:10px 0 8px;font-size:18px}.service-alert-card p{color:#bac5ce;line-height:1.55}.service-alert-card small{color:#efcf8a;margin-top:10px;display:block}.service-alert-card footer{color:#74828e;margin-top:13px;font-size:9px}@media (max-width:720px){.account-document{margin-top:25px;padding:20px 15px}.account-role-grid,.labs-summary{grid-template-columns:1fr}.labs-table>div{flex-direction:column;align-items:flex-start;gap:3px}}
