.lvp-link{cursor:pointer;border:1px solid;border-radius:8px;align-items:center;gap:4px;padding:4px 8px;font-size:13px;font-weight:600;line-height:1.4;text-decoration:none;display:inline-flex}.lvp-link--idle{background:var(--chakra-colors-surface);border-color:var(--chakra-colors-border);color:var(--vehicle-text-color)}.lvp-link--idle:hover{background:var(--chakra-colors-accentSurface);border-color:var(--chakra-colors-accent)}.lvp-link--live{background:var(--chakra-colors-successSurface);border-color:var(--chakra-colors-successBorder);color:var(--vehicle-text-color)}.lvp-link--live:hover{background:var(--chakra-colors-successSurfaceHover);border-color:var(--chakra-colors-successBorderHover)}.lvp-link--replaced{text-decoration:line-through}.lvp-dead{color:var(--vehicle-text-color);padding:4px 8px;font-size:13px}.lvp-dot{background:var(--chakra-colors-success);border-radius:9999px;flex-shrink:0;width:6px;height:6px}.lvp-list{flex-wrap:wrap;gap:4px;padding:0 8px 8px;display:flex}.lvp-chain,.lvp-meta{align-items:center;gap:4px;display:flex}.lvp-arrow{color:var(--vehicle-text-color);font-size:13px}.lvp-card{border:1px solid var(--chakra-colors-border);border-radius:10px;margin-bottom:8px;overflow:hidden}.lvp-head{cursor:pointer;text-align:left;background:0 0;border:0;align-items:center;gap:8px;width:100%;padding:8px;display:flex}.lvp-head:hover{background:var(--chakra-colors-surfaceMuted)}.lvp-meta{flex-shrink:0;gap:8px;margin-left:auto}.lvp-livecount{color:var(--chakra-colors-successFg);font-size:11px;font-weight:600}.lvp-sep,.lvp-total,.lvp-caret{color:var(--vehicle-text-color);font-size:11px}.lvp-typehead{background:var(--lvp-type-background);cursor:pointer;border:0;border-radius:6px;align-items:center;gap:8px;width:100%;margin:12px 0 8px;padding:8px;display:flex}.lvp-typehead--first{margin-top:4px}.lvp-typelabel{color:var(--vehicle-text-color);text-align:left;font-size:16px;font-weight:700}.lvp-typecaret{color:var(--vehicle-text-color);margin-left:auto;font-size:14px}.lvp-models{border:1px solid var(--chakra-colors-border);border-radius:10px;overflow:hidden auto}.lvp-model{cursor:pointer;align-items:center;gap:8px;padding:6px 8px;display:flex}.lvp-model+.lvp-model{border-top:1px solid var(--chakra-colors-borderSubtle)}.lvp-model:hover{background:var(--chakra-colors-surfaceMuted)}.lvp-model input{accent-color:var(--chakra-colors-accent);flex-shrink:0}.lvp-model-label{color:var(--vehicle-text-color);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.lvp-model-count{color:var(--chakra-colors-fgSubtle);flex-shrink:0;margin-left:auto;font-size:11px}.lvp-favwrap{display:inline-flex;position:relative}.lvp-fav{background:var(--chakra-colors-surface);border:1px solid var(--chakra-colors-border);color:var(--chakra-colors-fgSubtle);cursor:pointer;opacity:0;border-radius:9999px;justify-content:center;align-items:center;width:16px;height:16px;padding:0;font-size:10px;line-height:1;transition:opacity .12s;display:inline-flex;position:absolute;top:-7px;right:-7px;box-shadow:0 1px 2px #0000002e}.lvp-favwrap:hover .lvp-fav,.lvp-fav--on{opacity:1}.lvp-fav--on{color:#f6c343}@media (hover:none){.lvp-fav{opacity:.5}.lvp-fav--on{opacity:1}}.vehicle-timeline{--timeline-color:var(--color-text-primary);--night-bus-glow:none}.timeline-stop{--marker-size:8px;--marker-bg:var(--timeline-color);--marker-border:0;--top-line:var(--timeline-color);--bottom-line:var(--timeline-color);--name-weight:500;padding:0 5px;position:relative}.timeline-stop--past{--marker-bg:var(--color-background-primary);--marker-border:2px solid var(--color-border-secondary);--top-line:var(--color-border-secondary);--bottom-line:var(--color-border-secondary)}.timeline-stop--current{--marker-size:14px;--marker-bg:var(--color-background-primary);--marker-border:2px solid var(--timeline-color);--top-line:var(--color-border-secondary);--name-weight:700;background:color-mix(in srgb, var(--timeline-color) 7%, transparent);border-radius:8px}.timeline-stop--next{--marker-bg:var(--timeline-color)}.timeline-stop--is-passed{--top-line:var(--color-border-secondary);--bottom-line:var(--color-border-secondary)}.timeline-stop--before-current{--bottom-line:var(--color-border-secondary)}.timeline-stop--next.timeline-stop--is-unserved{--marker-bg:var(--color-border-secondary)}.timeline-stop__track{position:relative}.timeline-stop__line{z-index:0;width:2px;position:absolute;left:50%;transform:translate(-50%)}.timeline-stop__line--top{background:var(--top-line);top:-8px;bottom:50%}.timeline-stop__line--bottom{background:var(--bottom-line);top:50%;bottom:-8px}.timeline-stop--current .timeline-stop__line--bottom,.timeline-stop--next .timeline-stop__line,.timeline-stop--final .timeline-stop__line--top{filter:var(--night-bus-glow)}.timeline-stop--past .timeline-stop__line,.timeline-stop--is-passed .timeline-stop__line,.timeline-stop--before-current .timeline-stop__line--bottom,.timeline-stop--current .timeline-stop__line--top{filter:none}.timeline-stop__line--dashed{border-left:2px dashed var(--color-border-secondary);background:0 0;width:0;filter:none!important}.timeline-stop__marker{width:var(--marker-size);height:var(--marker-size);background:var(--marker-bg);border:var(--marker-border);box-sizing:border-box;box-shadow:0 0 0 2px var(--color-background-primary);z-index:2;border-radius:50%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.timeline-stop--current .timeline-stop__marker,.timeline-stop--next .timeline-stop__marker{filter:var(--night-bus-glow)}.timeline-stop--next.timeline-stop--is-unserved .timeline-stop__marker{filter:none}.timeline-stop--final{--marker-size:16px;--marker-bg:var(--color-background-primary);--marker-border:2px solid var(--timeline-color);--name-weight:700}.timeline-stop--final .timeline-stop__marker{box-shadow:0 0 0 2px var(--color-background-primary);filter:var(--night-bus-glow)}.timeline-stop--final .timeline-stop__marker:after{content:"";background:var(--timeline-color);border-radius:50%;width:8px;height:8px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.timeline-stop--final.timeline-stop--is-unserved{--marker-border:2px solid var(--color-border-secondary)}.timeline-stop--final.timeline-stop--is-unserved .timeline-stop__marker:after{background:var(--color-border-secondary);filter:none}.timeline-stop__expansion{border:1px solid var(--color-border-tertiary);background:var(--color-background-primary);cursor:pointer;z-index:3;border-radius:999px;justify-content:center;align-items:center;gap:2px;width:28px;height:18px;padding:0;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.timeline-stop__expansion-dot{background:var(--color-border-secondary);border-radius:50%;flex-shrink:0;width:4px;height:4px}.timeline-stop__content{min-width:0}.timeline-stop--past .timeline-stop__name,.timeline-stop--past .timeline-stop__scheduled-time,.timeline-stop--past .timeline-stop__predicted-time,.timeline-stop--past .timeline-stop__prediction-arrow,.timeline-stop--past .timeline-stop__deviation,.timeline-stop--past .timeline-stop__eta{color:var(--color-text-tertiary);font-weight:400}.timeline-stop__name{font-size:13px;font-weight:var(--name-weight);color:var(--vehicle-text-color);text-align:left}.timeline-stop__number{color:var(--color-text-tertiary);font-weight:400}.timeline-stop__prediction{justify-content:flex-start;align-items:baseline;gap:3px;display:flex}.timeline-stop__scheduled-time,.timeline-stop__predicted-time{text-align:left;font-size:10px}.timeline-stop__scheduled-time,.timeline-stop__prediction-arrow{color:var(--vehicle-text-color)}.timeline-stop__prediction-arrow,.timeline-stop__deviation{font-size:9px}.timeline-stop__deviation{text-align:left;font-weight:600}.timeline-stop__eta-container{flex-shrink:0}.timeline-stop__eta{font-size:12px}.timeline-stop--current .timeline-stop__eta{font-size:13px;font-weight:700}.timeline-stop__eta--clock,.timeline-stop__eta--empty{color:var(--vehicle-text-color);font-size:12px}.timeline-stop__eta--clock{font-weight:600}.timeline-stop__eta--empty{font-weight:400}#root{text-align:center;min-width:100%;min-height:100dvh;min-height:var(--app-h,100dvh);--section-info-accent:#64b4f6;--section-info-background:#e4f2fd;--section-warning-accent:#ffb64d;--section-warning-background:#fef3e1;--section-attention-accent:#e33e3f;--section-attention-background:#fed8d7;--section-success-accent:#80c783;--section-success-background:#e8f6e9;--tooltip-bg:#ffffffd1;--tooltip-border:#ffffff57;--tooltip-arrow:#ffffffd1;--tooltip-gradient-1:#ffffff57;--tooltip-gradient-2:#ffffff26;--tooltip-gradient-blue:#78b4ff24;--tooltip-layer-1:#ffffff40;--tooltip-layer-2:#ffffff1f;--tooltip-layer-3:#ffffff14;--tooltip-layer-4:#ffffff2e;background:url(/assets/noise-dots-30l1AlK_.png);margin:0 auto;font-family:Sofia Sans,sans-serif!important;overflow-x:hidden!important}html[data-theme=dark] #root,body[data-theme=dark] #root,.chakra-ui-dark #root{--section-info-accent:#63b3ed;--section-info-background:#1c3a52;--section-warning-accent:#f6ad55;--section-warning-background:#4a3520;--section-attention-accent:#fc8181;--section-attention-background:#4d2626;--section-success-accent:#9ae6b4;--section-success-background:#22452a;--tooltip-bg:#171923d1;--tooltip-border:#ffffff4d;--tooltip-arrow:#171923d1;--tooltip-gradient-1:#ffffff1a;--tooltip-gradient-2:#ffffff09;--tooltip-gradient-blue:#63b3ed1a;--tooltip-layer-1:#ffffff14;--tooltip-layer-2:#ffffff06;--tooltip-layer-3:#ffffff04;--tooltip-layer-4:#ffffff0e;background:#171923}.vehicle-tooltip{z-index:25;background-color:var(--tooltip-bg);border:1px solid var(--tooltip-border);-webkit-backdrop-filter:blur(11px)saturate(175%)contrast(105%)brightness(106%);background-image:radial-gradient(ellipse at 12% 5%, var(--tooltip-gradient-1) 0%, var(--tooltip-gradient-2) 25%, transparent 48%), radial-gradient(ellipse at 88% 92%, var(--tooltip-gradient-blue) 0%, transparent 46%), linear-gradient(135deg, var(--tooltip-layer-1) 0%, var(--tooltip-layer-2) 35%, var(--tooltip-layer-3) 62%, var(--tooltip-layer-4) 100%);text-align:left;pointer-events:auto;will-change:transform;isolation:isolate;border-radius:16px;min-width:138px;max-width:240px;padding:9px 11px;display:none;position:absolute;top:0;left:0;box-shadow:inset 0 1.5px 1px #ffffff6b,inset 1px 0 1px #ffffff3d,inset 0 -1px 1px #ffffff24,0 2px 4px #0000000f,0 8px 24px #00000024,0 18px 45px #0000001a}.vehicle-tooltip:before{content:"";z-index:2;pointer-events:none;border:1px solid var(--tooltip-border);-webkit-mask-composite:xor;opacity:.9;background:linear-gradient(145deg,#ffffff61 0%,#ffffff1a 12%,#0000 35% 70%,#a0cdff14 88%,#ffffff29 100%);border-radius:15px;padding:1px;position:absolute;inset:1px;-webkit-mask-image:linear-gradient(#000,#000),linear-gradient(#000,#000);mask-image:linear-gradient(#000,#000),linear-gradient(#000,#000);-webkit-mask-clip:content-box,border-box;mask-clip:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude}.vehicle-tooltip-arrow{z-index:1;clip-path:polygon(0 0,100% 0,50% 100%);background:var(--tooltip-border);pointer-events:none;width:20px;height:11px;position:absolute;bottom:-11px;left:50%;transform:translate(-50%)}.vehicle-tooltip-arrow:after{content:"";clip-path:polygon(0 0,100% 0,50% 100%);background:linear-gradient(135deg, #ffffff1f, transparent), var(--tooltip-arrow);content:"";background:linear-gradient(135deg,#ffffff29,#ffffff0a);width:14px;height:8px;position:absolute;top:0;left:2px}.vehicle-tooltip[data-tooltip-below="1"] .vehicle-tooltip-arrow{clip-path:polygon(50% 0,0 100%,100% 100%);top:-11px;bottom:auto}.vehicle-tooltip[data-tooltip-below="1"] .vehicle-tooltip-arrow:after{clip-path:polygon(50% 0,0 100%,100% 100%);top:auto;bottom:0}@media (width<=991px){.vehicle-tooltip{max-width:210px}}body{font-family:Sofia Sans,sans-serif!important}.route-error{color:red;padding:32px}.svg-icon>svg{width:100%;height:100%;display:block}.route-schedule-option{white-space:normal}.stops-list__line-tag{transform-origin:0 0;zoom:.7}.stop-panel__car-toggle .chakra-checkbox__label{color:var(--color-text-secondary);font-size:12px}.bottom-sheet{will-change:height;transition:height .225s cubic-bezier(0,0,.2,1)}.bottom-sheet--dragging{transition:none}.bottom-sheet__handle{cursor:ns-resize;touch-action:none;-webkit-user-select:none;user-select:none}.bottom-sheet__content{overscroll-behavior:contain;touch-action:auto}.bottom-sheet__content--locked{touch-action:none}.live-toggle:before{background:var(--chakra-colors-fgSubtle);content:"";border-radius:9999px;width:9px;height:9px;margin-right:8px}.live-toggle--active:before{background:var(--chakra-colors-red-400);animation:1.5s ease-out infinite live-pulse}@keyframes live-pulse{0%{box-shadow:0 0 #ff0000a6}70%,to{box-shadow:0 0 0 8px #f000}}@media (width<=61.99em){.gtfs-ctrl-zoom{display:none}}
