: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}}.railwatch-marker{color:#7ff0c3;cursor:pointer;background:#111a24;border:2px solid #ffffffe6;border-radius:50%;place-items:center;width:34px;height:34px;padding:0;display:grid;box-shadow:0 6px 18px #0006,0 0 0 4px #54e8b024}.railwatch-marker span{font-size:13px;line-height:1;transform:translate(1px)}.railwatch-marker--radio{color:#99c8ff;box-shadow:0 6px 18px #0006,0 0 0 4px #63a6ff24}.railwatch-marker--selected{background:#173629;border-color:#78f0bd;transform:scale(1.12)}.railwatch-card{z-index:18;border-radius:18px;width:min(390px,100vw - 28px);max-height:calc(100dvh - 165px);padding:18px;position:absolute;bottom:72px;left:14px;overflow-y:auto}.railwatch-card h2{color:#f2f7fa;margin:4px 38px 3px 0;font-size:24px}.railwatch-place{color:#9baab5;margin:0 0 14px;font-size:11px;line-height:1.45}.railwatch-player{aspect-ratio:16/9;background:#05080b;border:1px solid #ffffff1a;border-radius:12px;width:100%;overflow:hidden}.railwatch-player iframe{border:0;width:100%;height:100%;display:block}.railwatch-load,.railwatch-listen{color:#eaf7f2;text-align:left;cursor:pointer;background:linear-gradient(135deg,#54e8b01f,#487ad717);border:1px solid #54e8b047;border-radius:13px;grid-template-rows:auto auto;grid-template-columns:auto 1fr;align-items:center;column-gap:12px;width:100%;min-height:92px;padding:15px;text-decoration:none;display:grid}.railwatch-load>span,.railwatch-listen>span{color:#82edc2;background:#54e8b024;border-radius:50%;grid-row:1/3;place-items:center;width:42px;height:42px;font-size:18px;display:grid}.railwatch-load strong,.railwatch-listen strong{font-size:14px}.railwatch-load small,.railwatch-listen small{color:#8fa2ae;font-size:10px}.railwatch-actions{flex-wrap:wrap;gap:7px;margin-top:9px;display:flex}.railwatch-actions button,.railwatch-actions a{color:#a9dcca;cursor:pointer;background:#ffffff06;border:1px solid #ffffff17;border-radius:9px;min-height:34px;padding:7px 9px;font-size:9px;font-weight:800;text-decoration:none}.railwatch-note{color:#81919d;margin:10px 0;font-size:9px;line-height:1.5}.railwatch-credit{background:#54e8b009;border:1px solid #7edbb824;border-radius:11px;grid-template-columns:minmax(85px,auto) 1fr;gap:5px 9px;margin-top:10px;padding:10px 11px;display:grid}.railwatch-credit>span{color:#73858f;font-size:9px}.railwatch-credit>a{color:#aee8d0;font-size:10px;text-decoration:none}.railwatch-credit>a:hover{text-decoration:underline}.railwatch-credit .railwatch-support{color:#efcf8a;border-top:1px solid #ffffff0f;grid-column:1/-1;margin-top:4px;padding-top:7px;font-weight:800}.railwatch-credit>small{color:#667781;grid-column:1/-1;margin-top:3px;font-size:8px;line-height:1.45}.railwatch-services{background:#ffffff05;border:1px solid #ffffff12;border-radius:10px;gap:3px;margin-top:11px;padding:10px 11px;display:grid}.railwatch-services strong{color:#dfe8ed;font-size:10px}.railwatch-services span{color:#92a2ad;font-size:10px;line-height:1.4}.railwatch-nearby{border-top:1px solid #ffffff14;margin-top:11px;padding-top:10px}.railwatch-nearby summary{color:#dce7ec;cursor:pointer;font-size:11px;font-weight:850}.railwatch-nearby>button{width:100%;min-height:44px;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-bottom:1px solid #ffffff0e;justify-content:space-between;align-items:center;gap:10px;padding:7px 3px;display:flex}.railwatch-nearby>button span{gap:2px;min-width:0;display:grid}.railwatch-nearby>button strong{color:#e3edf1;font-size:11px}.railwatch-nearby>button small,.railwatch-nearby>small,.railwatch-nearby p{color:#82929d;font-size:9px;line-height:1.45}.railwatch-nearby>button b{color:#8fe7c1;white-space:nowrap;font-size:10px}.layers .railwatch-layers{background:#54e8b009;border-color:#54e8b02e}.layers .railwatch-layers>summary{color:#9bedc9}.layers .railwatch-layers .layer-action{justify-content:center;align-items:center;text-decoration:none;display:flex}.layers .landmark-layers{background:#ffb54709;border-color:#ffb5472e}.layers .landmark-layers>summary{color:#ffd18a}.layers .rail-heritage-layers{background:#71e5bd09;border-color:#71e5bd2e}.layers .rail-heritage-layers>summary{color:#8ff0cf}.layers .rail-heritage-layers .landmark-state>summary small{color:#83d9bd;background:#71e5bd17}.landmark-state-list{scrollbar-width:thin;gap:6px;max-height:min(52dvh,520px);margin:8px 0;padding-right:2px;display:grid;overflow-y:auto}.layers .landmark-state{background:#080c1138;border-color:#ffffff0f;margin:0}.layers .landmark-state>summary{color:#dfe7ec;align-items:center;gap:8px;display:flex}.layers .landmark-state>summary span{flex:1}.layers .landmark-state>summary small{color:#d9ac69;text-align:center;background:#ffb54717;border-radius:999px;min-width:20px;padding:2px 6px}.landmark-state-venues{gap:3px;margin:0 0 7px 29px;display:grid}.landmark-state-venues span{color:#788893;font-size:8px;line-height:1.35}.landmark-marker{color:#ffbf61;cursor:pointer;background:#241a10;border:2px solid #ffffffeb;border-radius:11px;place-items:center;width:36px;height:36px;padding:0;display:grid;box-shadow:0 6px 18px #0000006b,0 0 0 4px #ffb54724}.landmark-marker span{font-size:16px;font-weight:950;line-height:1}.landmark-marker--drag-strip{color:#ff8c69;border-radius:8px}.landmark-marker--road-course{color:#9cf0ce}.landmark-marker--short-track{color:#ffe088}.landmark-marker--speedway{color:#ffbd63}.landmark-marker--raceway-complex{color:#d6a8ff}.landmark-marker--airfield{color:#9fd6ff;background:#111d29;box-shadow:0 6px 18px #0000006b,0 0 0 4px #5badeb26}.landmark-marker--rail-heritage{color:#8ff0cf;background:#10231f;border-color:#71e5bda8;box-shadow:0 6px 18px #0000006b,0 0 0 4px #71e5bd24}.landmark-marker--rail-museum{border-radius:8px}.landmark-marker--historic-station{color:#a7d9ff}.landmark-marker--rail-landmark{color:#ffe088}.landmark-marker--selected{background:#4a3014;border-color:#fff1c8;transform:scale(1.12)}.landmark-marker--rail-heritage.landmark-marker--selected{background:#17483d;border-color:#d6fff1}.landmark-card{z-index:18;border:1px solid #ffb54733;border-radius:18px;width:min(390px,100vw - 28px);max-height:calc(100dvh - 165px);padding:18px;position:absolute;bottom:72px;left:14px;overflow-y:auto}.landmark-card h2{color:#f7f2e9;margin:4px 38px 2px 0;font-size:24px}.landmark-kind{color:#f1c783;text-transform:uppercase;letter-spacing:.04em;margin:0 0 14px;font-size:10px;font-weight:850}.landmark-details{gap:7px;margin:0;display:grid}.landmark-details>div{background:#ffffff05;border:1px solid #fff1;border-radius:10px;padding:9px 10px}.landmark-details dt{color:#748391;letter-spacing:.05em;text-transform:uppercase;margin-bottom:3px;font-size:8px;font-weight:850}.landmark-details dd{color:#dce5ea;margin:0;font-size:10px;line-height:1.4}.landmark-description{color:#aebcc5;margin:12px 0;font-size:11px;line-height:1.55}.landmark-sources{background:#ffb5470a;border:1px solid #ffb54729;border-radius:11px;gap:5px;padding:10px 11px;display:grid}.landmark-sources>span{color:#788892;text-transform:uppercase;letter-spacing:.04em;font-size:8px}.landmark-sources a{color:#ffd18a;font-size:10px;text-decoration:none}.landmark-disclosure{color:#71818b;border-top:1px solid #ffffff13;margin:12px 0 0;padding-top:11px;font-size:9px;line-height:1.55}.labs-railwatch{background:radial-gradient(circle at 100% 0,#54e8b017,#0000 18rem),#ffffff05;border-color:#54e8b038}.labs-railwatch>p{color:#98a8b3;line-height:1.55}.labs-railwatch .account-primary{margin-top:14px}@media (max-width:720px){.railwatch-card{left:7px;right:7px;bottom:calc(7px + env(safe-area-inset-bottom));width:auto;max-height:min(72dvh,650px);padding:16px 14px calc(16px + env(safe-area-inset-bottom));border-radius:19px}.railwatch-card h2{font-size:21px}.railwatch-marker{width:38px;height:38px}.landmark-card{left:7px;right:7px;bottom:calc(7px + env(safe-area-inset-bottom));width:auto;max-height:min(72dvh,650px);padding:16px 14px calc(16px + env(safe-area-inset-bottom));border-radius:19px}.landmark-card h2{font-size:21px}.landmark-marker{width:40px;height:40px}}.legal-contact-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.privacy-controls{background:#54e8b00b;border:1px solid #54e8b038;border-radius:13px;justify-content:space-between;align-items:center;gap:18px;margin:18px 0;padding:15px 16px;display:flex}.privacy-controls>div{gap:3px;display:grid}.privacy-controls strong{color:#e9f4ef}.privacy-controls span{color:#8999a5;font-size:11px}.privacy-controls button{color:#aef1d3;min-width:90px;min-height:38px;font:inherit;cursor:pointer;background:#54e8b01a;border:1px solid #54e8b04d;border-radius:10px;font-weight:850}.founding-section>p,.labs-developer>p{color:#93a2ae;line-height:1.55}.founding-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:14px;display:grid}.founding-option{cursor:pointer;background:#ffffff05;border:1px solid #ffffff14;border-radius:12px;align-items:flex-start;gap:10px;min-height:84px;padding:13px;display:flex}.founding-option--selected{background:#54e8b011;border-color:#54e8b057}.founding-option input{accent-color:#54e8b0;margin-top:3px}.founding-option span{gap:4px;display:grid}.founding-option strong{color:#e2ebf0;font-size:12px}.founding-option small{color:#84939f;font-size:10px;line-height:1.4}.founding-price{border:1px solid #ffffff14;border-radius:12px;margin:18px 0 0;padding:14px}.founding-price legend{color:#c8d3db;padding:0 7px;font-size:11px;font-weight:800}.founding-price label{color:#aebbc5;cursor:pointer;align-items:center;gap:6px;margin:5px 18px 2px 0;display:inline-flex}.founding-price input{accent-color:#54e8b0}.founding-save-row{align-items:center;gap:13px;margin-top:14px;display:flex}.founding-save-row .account-primary{width:fit-content}.founding-save-row>span{color:#76dfb3;font-size:10px}.account-primary:disabled{opacity:.45;cursor:not-allowed}.audience-signal-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:10px;display:grid}.audience-signal-grid>div{background:#5865f212;border-radius:11px;gap:3px;padding:12px;display:grid}.audience-signal-grid strong{color:#d5d9ff;font-size:20px}.audience-signal-grid span{color:#8993b7;font-size:10px}.audience-events{margin-top:14px}@media (max-width:720px){.privacy-controls{flex-direction:column;align-items:stretch}.privacy-controls button{width:100%}.founding-options,.audience-signal-grid{grid-template-columns:1fr}.founding-price label{min-height:34px;margin-right:13px}.founding-save-row{flex-direction:column;align-items:stretch}.founding-save-row .account-primary{width:100%}}.dot--seasonal{background:linear-gradient(135deg,#9bf6e8,#8e7dff);box-shadow:0 0 8px #9bf6e8bf}.dot--seasonal-christmas{background:linear-gradient(135deg,#e63946 0 48%,#f7fbff 49% 66%,#67d5ff 67%)}.seasonal-train-anchor{pointer-events:auto;place-items:center;width:94px;height:48px;display:grid}.seasonal-train{--seasonal-color:#9bf6e8;--seasonal-accent:#8e7dff;width:94px;height:48px;color:var(--seasonal-color);cursor:pointer;background:0 0;border:0;place-items:center;padding:0;display:grid}.seasonal-train-visual{z-index:2;width:90px;height:35px;transform:rotate(var(--seasonal-rotation,0deg)) scale(var(--train-marker-scale,.86));transform-origin:50%;filter:drop-shadow(0 3px 5px #000000d9) drop-shadow(0 0 7px var(--seasonal-accent));transition:filter .16s,transform .16s;display:block;position:relative}.seasonal-train:hover .seasonal-train-visual,.seasonal-train--selected .seasonal-train-visual{transform:rotate(var(--seasonal-rotation,0deg)) scale(calc(var(--train-marker-scale,.86) * 1.12));filter:drop-shadow(0 3px 6px #000000e6) drop-shadow(0 0 8px #fff) drop-shadow(0 0 15px var(--seasonal-accent))}.seasonal-train svg{width:100%;height:100%;transform:scaleX(var(--seasonal-flip,1));transform-origin:50%;display:block;overflow:visible}.seasonal-car,.seasonal-engine{fill:currentColor;stroke:#fffffffa;stroke-width:1.3px;vector-effect:non-scaling-stroke}.seasonal-stripe{fill:none;stroke:var(--seasonal-accent);stroke-width:2px;stroke-linecap:round;vector-effect:non-scaling-stroke}.seasonal-window{fill:none;stroke:#111827;stroke-width:1.7px;stroke-linecap:round;vector-effect:non-scaling-stroke}.seasonal-wheel{fill:#070a0e;stroke:#ffffffdb;stroke-width:.8px;vector-effect:non-scaling-stroke}.seasonal-symbol{fill:var(--seasonal-accent);stroke:#ffffff59;stroke-width:.25px;text-anchor:middle;font-size:12px;font-weight:900}.seasonal-train-glow{background:var(--seasonal-accent);opacity:.18;filter:blur(8px);border-radius:50%;width:56px;height:18px;animation:2.8s ease-in-out infinite seasonal-pulse;position:absolute}.seasonal-train--ghostliner{opacity:.84}.seasonal-train--ghostliner .seasonal-train-visual{animation:6s step-end infinite ghostliner-flicker}.seasonal-train--midnight .seasonal-car,.seasonal-train--midnight .seasonal-engine{fill:#171025}.seasonal-train--pumpkin .seasonal-symbol{font-size:15px}.seasonal-train--candy-cane .seasonal-stripe{stroke-dasharray:6 4}.seasonal-train--north-pole .seasonal-symbol,.seasonal-train--polar-star .seasonal-symbol{animation:1.9s ease-in-out infinite seasonal-star}@keyframes seasonal-pulse{0%,to{opacity:.13;transform:scale(.82)}50%{opacity:.32;transform:scale(1.18)}}@keyframes ghostliner-flicker{0%,91%,94%,to{opacity:1}92%{opacity:.35}93%{opacity:.76}}@keyframes seasonal-star{0%,to{opacity:.7}50%{opacity:1}}.seasonal-card{z-index:19;background:radial-gradient(circle at 92% 2%,#8e7dff33,#0000 15rem),#0b1119f0;border:1px solid #9bf6e840;border-radius:19px;width:min(400px,100vw - 28px);max-height:calc(100dvh - 165px);padding:20px;position:absolute;bottom:72px;left:14px;overflow-y:auto}.seasonal-card--christmas{background:radial-gradient(circle at 92% 2%,#e639462e,#0000 15rem),#0b1119f2;border-color:#ffd16647}.seasonal-card-kicker{color:#a7b6c3;letter-spacing:.1em;text-transform:uppercase;padding-right:38px;font-size:9px;font-weight:900}.seasonal-card h1{color:#f6fbff;margin:6px 38px 9px 0;font-size:27px}.seasonal-discovery{color:#b9fff3;background:#9bf6e80f;border:1px solid #9bf6e833;border-radius:11px;justify-content:space-between;align-items:center;gap:10px;margin:0 0 13px;padding:10px 11px;font-size:11px;font-weight:900;display:flex}.seasonal-card--christmas .seasonal-discovery{color:#ffe59b;background:#ffd1660f;border-color:#ffd16633}.seasonal-discovery span{color:#7f8f9d;font-size:8px;font-weight:750}.seasonal-story{color:#bdc8d2;margin:0 0 13px;font-size:12px;line-height:1.6}.seasonal-route{color:#e3ebf1;background:#ffffff06;border:1px solid #ffffff13;border-radius:11px;padding:11px 12px;font-size:11px;font-weight:850}.seasonal-route span{color:#7f8e9b;padding:0 5px}.seasonal-metrics{grid-template-columns:1fr 1fr;gap:8px;margin:12px 0;display:grid}.seasonal-metrics>div{background:#ffffff05;border:1px solid #fff1;border-radius:10px;min-width:0;padding:10px}.seasonal-metrics dt{color:#748391;letter-spacing:.05em;text-transform:uppercase;margin-bottom:3px;font-size:8px;font-weight:850}.seasonal-metrics dd{color:#dbe4ea;margin:0;font-size:10px;line-height:1.35}.seasonal-rare{color:#ffbb76;text-transform:uppercase;background:#ff8c2b1f;border-radius:999px;width:fit-content;margin-bottom:11px;padding:5px 8px;font-size:8px;font-weight:900}.seasonal-disclosure{border-top:1px solid #ffffff13;gap:3px;padding-top:11px;display:grid}.seasonal-disclosure strong{color:#e8eef3;font-size:10px}.seasonal-disclosure span{color:#768591;font-size:9px;line-height:1.5}@media (max-width:720px){.seasonal-card{left:7px;right:7px;bottom:calc(7px + env(safe-area-inset-bottom));width:auto;max-height:min(72dvh,650px);padding:17px 14px calc(17px + env(safe-area-inset-bottom))}.seasonal-card h1{font-size:23px}.seasonal-discovery{flex-direction:column;align-items:flex-start}}@media (prefers-reduced-motion:reduce){.seasonal-train-glow,.seasonal-train--ghostliner .seasonal-train-visual,.seasonal-train--north-pole .seasonal-symbol,.seasonal-train--polar-star .seasonal-symbol{animation:none}}
.site-notice-stack{z-index:12000;top:max(10px, env(safe-area-inset-top));pointer-events:none;gap:8px;width:min(760px,100vw - 24px);display:grid;position:fixed;left:50%;transform:translate(-50%)}.site-notice{color:#dbe9f4;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);pointer-events:auto;background:#0c141ff5;border:1px solid #7db7ff59;border-radius:13px;align-items:center;gap:13px;min-height:52px;padding:10px 48px 10px 14px;display:flex;position:relative;box-shadow:0 12px 35px #00000073}.site-notice>div,.site-notice--maintenance{gap:3px;display:grid}.site-notice strong{color:#fff;font-size:12px}.site-notice span{font-size:10px;line-height:1.45}.site-notice a{color:#9cf1cb;white-space:nowrap;margin-left:auto;font-size:10px;font-weight:800}.site-notice button{color:#b8c6ce;cursor:pointer;background:0 0;border:0;font-size:20px;position:absolute;right:13px}.site-notice--success{border-color:#54e8b073}.site-notice--warning,.site-notice--maintenance{background:#261c0df7;border-color:#ffbe5b80}.site-notice--critical{background:#290f15f7;border-color:#ff66758c}.control-shell{overscroll-behavior-y:contain;color:#dfe8ed;background:radial-gradient(circle at 50% -10%,#23635226,#0000 32rem),#070d14;width:100%;height:100dvh;overflow:hidden auto}.control-header{z-index:30;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#070d14eb;position:sticky;top:0}.control-document{gap:18px;width:min(1180px,100% - 28px);margin:0 auto;padding:42px 0 80px;display:grid}.control-gate{color:#98a8b3;text-align:center;place-content:center;justify-items:center;gap:16px;width:min(620px,100% - 28px);min-height:55dvh;margin:0 auto;display:grid}.control-gate strong{color:#eef5f7;font-size:21px}.control-hero,.control-section{background:#121922e0;border:1px solid #ffffff1a;border-radius:18px;box-shadow:0 16px 40px #0000002b}.control-hero{justify-content:space-between;align-items:end;gap:20px;padding:26px 28px;display:flex}.control-hero h1{color:#f4f8f9;margin:7px 0;font-size:clamp(29px,4vw,45px)}.control-hero p,.control-help{color:#93a4af;margin:0;line-height:1.55}.control-section{padding:23px}.control-section h2{color:#f0f5f7;margin:5px 0 18px;font-size:22px}.control-section h3{color:#cfdadf;text-transform:uppercase;letter-spacing:.08em;margin:4px 0 10px;font-size:12px}.control-section-heading{justify-content:space-between;align-items:start;gap:16px;display:flex}.control-heading-actions{gap:8px;display:flex}.control-section button,.control-refresh{color:#a7edcf;cursor:pointer;background:#41c19114;border:1px solid #6fe7b74d;border-radius:9px;min-height:36px;padding:8px 12px;font-size:10px;font-weight:850}.control-section button:hover,.control-refresh:hover{border-color:#6fe7b7a6}.control-section button:disabled{opacity:.48;cursor:wait}.control-feedback{z-index:20;color:#b7f4d9;background:#0d2e23f5;border:1px solid #54e8b059;border-radius:11px;padding:11px 14px;font-size:11px;position:sticky;top:70px}.control-feedback--error{color:#ffb8c0;background:#331218f7;border-color:#ff6c7a73}.control-metrics{grid-template-columns:repeat(auto-fit,minmax(135px,1fr));gap:10px;display:grid}.control-metrics>div{background:#ffffff06;border:1px solid #ffffff14;border-radius:12px;align-content:center;gap:5px;min-height:83px;padding:14px;display:grid}.control-metrics strong{color:#eaf2f5;font-size:21px}.control-metrics span{color:#82949f;text-transform:uppercase;letter-spacing:.05em;font-size:9px}.control-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;display:grid}.control-form-grid>label{color:#9eb0ba;gap:6px;font-size:10px;font-weight:750;display:grid}.control-form-grid input:not([type=checkbox]),.control-form-grid select,.control-form-grid textarea{color:#e5edf0;width:100%;min-height:40px;font:inherit;background:#0b1119;border:1px solid #ffffff1f;border-radius:9px;outline:none;padding:9px 11px}.control-form-grid textarea{resize:vertical}.control-form-grid input:focus,.control-form-grid select:focus,.control-form-grid textarea:focus{border-color:#54e8b08c}.control-wide{grid-column:1/-1}.control-check{cursor:pointer;background:#ffffff05;border:1px solid #ffffff14;border-radius:11px;align-items:center;min-height:58px;padding:11px;grid-template-columns:auto 1fr!important}.control-check input{accent-color:#55e8b1}.control-check span{gap:3px;display:grid}.control-check strong{color:#dfe8ec;font-size:11px}.control-check small{color:#81919c;font-size:9px;font-weight:500}.control-divider{background:#ffffff12;height:1px;margin:18px 0}.control-save{min-width:180px;margin-top:16px}.control-provider-grid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px;margin-top:15px;display:grid}.control-provider{background:#ffffff05;border:1px solid #ffffff14;border-radius:12px;gap:13px;padding:14px;display:grid}.control-provider>div{justify-content:space-between;align-items:center;gap:8px;display:flex}.control-provider>div strong{color:#e2ebee;font-size:12px}.control-provider label{color:#9badb7;align-items:center;gap:7px;font-size:9px;display:flex}.control-provider input{accent-color:#55e8b1}.control-state{color:#9eb0ba;text-transform:uppercase;background:#ffffff0f;border-radius:7px;padding:4px 6px;font-size:8px}.control-state--active,.control-state--healthy,.control-state--live{color:#83eac0;background:#54e8b01a}.control-toggle-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.control-source-list{display:grid}.control-source-list>div{border-bottom:1px solid #fff1;grid-template-columns:auto 1fr auto auto;align-items:center;gap:10px;min-height:61px;padding:9px 0;display:grid}.control-source-icon{color:#78e6b9;background:#54e8b01a;border-radius:50%;place-items:center;width:33px;height:33px;display:grid}.control-source-icon--radio{color:#8fbcff;background:#5b9eff1f}.control-source-list>div>div{gap:3px;display:grid}.control-source-list strong{color:#dce5e9;font-size:11px}.control-source-list small{color:#7f909a;font-size:9px}.control-danger{color:#ffabb4!important;background:#ff65750d!important;border-color:#ff65753d!important}.control-editor{border-color:#54e8b040}.control-split{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-top:18px;display:grid}.control-row{color:#9badb7;text-transform:capitalize;border-bottom:1px solid #ffffff0f;justify-content:space-between;align-items:center;gap:12px;min-height:35px;font-size:10px;display:flex}.control-row strong{color:#dce8ec}.control-chart{background:#0000001f;border:1px solid #ffffff12;border-radius:12px;align-items:end;gap:4px;height:170px;margin-top:18px;padding:15px 10px 4px;display:flex;overflow:hidden}.control-chart>div{flex:1;grid-template-rows:1fr 20px;align-items:end;gap:4px;min-width:8px;height:100%;display:grid}.control-chart span{background:linear-gradient(#61e7b4,#278c6c);border-radius:4px 4px 2px 2px;width:100%;min-height:5px;display:block}.control-chart small{color:#6f808a;text-align:center;white-space:nowrap;font-size:7px;overflow:hidden}.control-audit{display:grid}.control-audit>div{border-bottom:1px solid #ffffff0f;grid-template-columns:145px 120px 1fr auto;align-items:center;gap:12px;padding:11px 0;display:grid}.control-audit time,.control-audit small{color:#71828d;font-size:8px}.control-audit strong{color:#b7c8cf;font-size:10px}.control-audit span{color:#98aab4;font-size:10px}.account-primary--control{color:#bcd6ff;background:#3e73c321;border-color:#74aaff73}@media (max-width:700px){.site-notice-stack{top:max(6px,env(safe-area-inset-top));width:calc(100vw - 12px)}.site-notice{align-items:start}.control-document{width:min(100% - 14px,1180px);padding-top:16px}.control-hero{flex-direction:column;align-items:start;padding:20px 17px}.control-section{padding:17px 14px}.control-section-heading{flex-direction:column;align-items:stretch}.control-heading-actions{width:100%}.control-heading-actions button{flex:1}.control-form-grid,.control-toggle-grid,.control-split{grid-template-columns:1fr}.control-wide{grid-column:auto}.control-source-list>div{grid-template-columns:auto 1fr auto}.control-source-list .control-danger{grid-column:2/-1}.control-audit>div{grid-template-columns:1fr auto;gap:4px 10px}.control-audit span,.control-audit small{grid-column:1/-1}}
