@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--shadow-sm:0 1px 3px 0 #0000001a,0 1px 2px -1px #0000001a;--shadow-md:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.static{position:static}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.grid{display:grid}.hidden{display:none}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}}.city-dashboard{width:min(1480px,100%);margin:0 auto;padding:96px clamp(16px,3vw,44px) 64px}.city-dashboard-header{background:radial-gradient(circle at 90% 15%,var(--blue-500),transparent 38%),var(--surface);justify-content:space-between;align-items:center;gap:24px;margin-bottom:18px;padding:20px 26px;display:flex}@supports (color:color-mix(in lab, red, red)){.city-dashboard-header{background:radial-gradient(circle at 90% 15%,color-mix(in srgb,var(--blue-500)11%,transparent),transparent 38%),var(--surface)}}.city-dashboard-header{border:1px solid var(--line);box-shadow:var(--shadow-sm);border-radius:22px}.city-dashboard-identity{align-items:center;gap:16px;min-width:0;display:flex}.city-dashboard-crest{color:#fff;background:linear-gradient(140deg,#2584ff,#0d52c7);border-radius:17px;flex:none;place-items:center;width:56px;height:56px;display:grid;box-shadow:0 9px 22px #1868e340,inset 0 1px #ffffff40}.city-dashboard-heading-copy{min-width:0}.city-dashboard-kicker{flex-wrap:wrap;align-items:center;gap:9px;margin-bottom:4px;display:flex}.city-dashboard-heading-copy h1{letter-spacing:-.04em;margin:0;font-size:clamp(25px,2.6vw,34px);font-weight:800;line-height:1.08}.city-dashboard-heading-copy p{color:var(--muted);margin:4px 0 0;font-size:13.5px}.city-dashboard-heading-copy p>span{color:var(--soft);padding:0 4px}.city-dashboard-actions{flex:none;align-items:center;gap:9px;display:flex}.dashboard-stat{background:var(--surface-2);border:1px solid var(--line);border-radius:13px;flex-direction:column;align-items:center;gap:2px;min-width:74px;padding:8px 13px;display:flex}.dashboard-stat strong{font-family:var(--font-code);font-size:17px;font-weight:800;line-height:1.15}.dashboard-stat span{color:var(--muted);font-size:11px;font-weight:600}.dashboard-change-city{min-height:42px;color:var(--ink);background:var(--surface-2);border:1px solid var(--line-strong);white-space:nowrap;border-radius:12px;align-items:center;gap:6px;padding:0 14px;font-size:13px;font-weight:700;transition:border-color .18s,color .18s,background .18s;display:inline-flex}.dashboard-change-city:hover{color:var(--blue-600);background:var(--surface);border-color:var(--blue-400)}.city-function-picker{background:linear-gradient(145deg,var(--surface),var(--blue-500));margin-bottom:20px;padding:18px 20px 20px}@supports (color:color-mix(in lab, red, red)){.city-function-picker{background:linear-gradient(145deg,var(--surface),color-mix(in srgb,var(--blue-500)2.5%,var(--surface)))}}.city-function-picker{border:1px solid var(--line);box-shadow:var(--shadow-sm);border-radius:22px}.function-picker-heading{justify-content:space-between;align-items:end;gap:16px;margin:0 2px 14px;display:flex}.function-picker-overline{color:var(--blue-600);letter-spacing:.11em;text-transform:uppercase;margin-bottom:3px;font-size:11px;font-weight:800;line-height:1.35;display:block}:root[data-theme=dark] .function-picker-overline{color:#7cc0ff}.function-picker-heading h2{letter-spacing:-.025em;margin:0;font-size:19px;font-weight:800;line-height:1.2}.function-picker-count{color:var(--muted);background:var(--surface-2);border:1px solid var(--line);white-space:nowrap;border-radius:999px;padding:5px 11px;font-size:11.5px;font-weight:700}.function-tile-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;display:grid}.function-tile{--tile-from:#2584ff;--tile-to:#0d52c7;min-width:0;min-height:148px;color:var(--ink);text-align:left;background:var(--surface-2);border:1px solid var(--line);cursor:pointer;border-radius:17px;flex-direction:column;align-items:stretch;gap:11px;padding:15px 15px 12px;transition:background .2s,border-color .2s,box-shadow .2s,transform .2s;display:flex;position:relative;overflow:hidden}.function-tile:after{content:"";z-index:0;background:linear-gradient(140deg,var(--tile-from),var(--tile-to));opacity:.05;pointer-events:none;border-radius:50%;width:110px;height:110px;transition:opacity .2s,transform .25s;position:absolute;top:-48px;right:-36px}.function-tile:hover{z-index:1;background:var(--surface);border-color:var(--tile-from)}@supports (color:color-mix(in lab, red, red)){.function-tile:hover{border-color:color-mix(in srgb,var(--tile-from)52%,var(--line))}}.function-tile:hover{box-shadow:0 12px 26px var(--tile-to)}@supports (color:color-mix(in lab, red, red)){.function-tile:hover{box-shadow:0 12px 26px color-mix(in srgb,var(--tile-to)12%,transparent)}}.function-tile:hover:after{opacity:.12;transform:scale(1.3)}.function-tile.selected{background:var(--tile-from)}@supports (color:color-mix(in lab, red, red)){.function-tile.selected{background:color-mix(in srgb,var(--tile-from)6%,var(--surface))}}.function-tile.selected{border:1.5px solid var(--tile-from)}@supports (color:color-mix(in lab, red, red)){.function-tile.selected{border:1.5px solid color-mix(in srgb,var(--tile-from)72%,var(--line))}}.function-tile.selected{box-shadow:0 0 0 3px var(--tile-from),0 10px 24px var(--tile-to)}@supports (color:color-mix(in lab, red, red)){.function-tile.selected{box-shadow:0 0 0 3px color-mix(in srgb,var(--tile-from)12%,transparent),0 10px 24px color-mix(in srgb,var(--tile-to)12%,transparent)}}.function-tile-topline{z-index:1;justify-content:space-between;align-items:center;gap:7px;display:flex;position:relative}.function-tile-icon{color:#fff;background:linear-gradient(140deg,var(--tile-from),var(--tile-to));width:44px;height:44px;box-shadow:0 6px 14px var(--tile-to),inset 0 1px #ffffff4d;border-radius:13px;flex:none;place-items:center;display:grid}@supports (color:color-mix(in lab, red, red)){.function-tile-icon{box-shadow:0 6px 14px color-mix(in srgb,var(--tile-to)24%,transparent),inset 0 1px #ffffff4d}}.function-tile-number,.function-tile-count{min-height:24px;color:var(--muted);background:var(--surface);border:1px solid var(--line);font-family:var(--font-code);white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;padding:2px 8px;font-size:10px;font-weight:700;display:inline-flex}.function-tile-live-badge{color:var(--success);background:var(--success-bg);border:1px solid var(--success);align-items:center;gap:5px;padding:5px 9px;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.function-tile-live-badge{border:1px solid color-mix(in srgb,var(--success)28%,transparent)}}.function-tile-live-badge{letter-spacing:.05em;border-radius:999px;font-size:10px;font-weight:800;line-height:1}.function-tile-live-badge i{background:currentColor;border-radius:50%;width:6px;height:6px;animation:1.6s ease-in-out infinite pulse;box-shadow:0 0 7px}.function-tile-copy{z-index:1;flex-direction:column;gap:3px;min-width:0;display:flex;position:relative}.function-tile-title{letter-spacing:-.018em;text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:800;line-height:1.25;overflow:hidden}.function-tile-hint{color:var(--muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:12px;line-height:1.4;display:-webkit-box;overflow:hidden}.function-tile-bottom{z-index:1;border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:7px;margin-top:auto;padding-top:9px;display:flex;position:relative}@supports (color:color-mix(in lab, red, red)){.function-tile-bottom{border-top:1px solid color-mix(in srgb,var(--line)78%,transparent)}}.function-tile-current,.function-tile-open{color:var(--muted);align-items:center;gap:5px;font-size:11.5px;font-weight:700;line-height:1.2;display:inline-flex}.function-tile-current{color:var(--tile-to)}@supports (color:color-mix(in lab, red, red)){.function-tile-current{color:color-mix(in srgb,var(--tile-to)78%,var(--ink))}}.function-tile-selected-dot{background:var(--tile-from);width:8px;height:8px;box-shadow:0 0 8px var(--tile-from);border-radius:50%}@supports (color:color-mix(in lab, red, red)){.function-tile-selected-dot{box-shadow:0 0 8px color-mix(in srgb,var(--tile-from)55%,transparent)}}.city-content{flex-direction:column;gap:16px;width:100%;display:flex}.departure-panel-v2,.map-panel-v2,.routes-panel-v2,.planner-panel-v2,.favorites-panel-v2{background:var(--surface);border:1px solid var(--line);width:100%;max-width:none;box-shadow:var(--shadow-sm);border-radius:24px;padding:clamp(20px,2.5vw,30px)}.module-topbar{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:22px;padding-bottom:18px;display:flex}.module-topbar-title h2{letter-spacing:-.03em;margin:4px 0 0;font-size:clamp(21px,2.1vw,26px);font-weight:800}.module-topbar-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.stop-search.is-compact .search-field{border-radius:12px;height:46px}.search-selected-code{background:var(--surface-3);color:var(--muted);font-family:var(--font-code);border-radius:7px;padding:3px 8px;font-size:11.5px;font-weight:700}.search-clear-btn{background:var(--surface-3);width:28px;height:28px;color:var(--muted);border:0;border-radius:8px;place-items:center;padding:0;transition:color .15s,background .15s;display:grid}.search-clear-btn:hover{color:var(--ink);background:var(--line)}.search-results-caption{border-bottom:1px solid var(--line);color:var(--muted);justify-content:space-between;align-items:center;margin-bottom:4px;padding:6px 10px 8px;font-size:11.5px;font-weight:700;display:flex}.search-results-caption span{align-items:center;gap:5px;display:inline-flex}.search-results-caption small{font-family:var(--font-code);color:var(--soft);font-size:10.5px}.search-result-copy{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.search-result-pole{background:var(--surface-2);border:1px solid var(--line);color:var(--muted);font-family:var(--font-code);border-radius:7px;padding:3px 8px;font-size:11px;font-weight:700}.departure-search-dock{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;display:grid}.gps-action-button{background:linear-gradient(135deg,var(--blue-500),var(--blue-600));border-radius:14px;justify-content:center;align-items:center;gap:9px;height:52px;padding:0 20px;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.gps-action-button{background:linear-gradient(135deg,color-mix(in srgb,var(--blue-500)13%,var(--surface)),color-mix(in srgb,var(--blue-600)8%,var(--surface)))}}.gps-action-button{border:1px solid var(--blue-500)}@supports (color:color-mix(in lab, red, red)){.gps-action-button{border:1px solid color-mix(in srgb,var(--blue-500)34%,var(--line))}}.gps-action-button{color:var(--blue-600);white-space:nowrap;font-size:13.5px;font-weight:800;transition:transform .16s,border-color .16s,box-shadow .16s}:root[data-theme=dark] .gps-action-button{color:#7cc0ff}.gps-action-button:hover{border-color:var(--blue-500);transform:translateY(-1px);box-shadow:0 8px 20px #1868e324}.board-welcome-hero{background:radial-gradient(circle at 100% 0%,var(--blue-500),transparent 45%),var(--surface-2);margin-top:20px;padding:28px}@supports (color:color-mix(in lab, red, red)){.board-welcome-hero{background:radial-gradient(circle at 100% 0%,color-mix(in srgb,var(--blue-500)9%,transparent),transparent 45%),var(--surface-2)}}.board-welcome-hero{border:1px solid var(--line);border-radius:20px}.board-welcome-head{align-items:center;gap:18px;margin-bottom:22px;display:flex}.board-welcome-icon{background:linear-gradient(140deg,var(--blue-500),var(--blue-700));color:#fff;border-radius:16px;flex:none;place-items:center;width:54px;height:54px;display:grid;box-shadow:0 8px 20px #1868e340}.board-welcome-head h3{letter-spacing:-.025em;margin:0 0 5px;font-size:20px;font-weight:800}.board-welcome-head p{color:var(--muted);margin:0;font-size:14px;line-height:1.6}.hub-cards-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.hub-stop-card{background:var(--surface);border:1px solid var(--line);text-align:left;border-radius:14px;align-items:center;gap:11px;padding:13px 14px;transition:border-color .18s,transform .18s,box-shadow .18s;display:flex}.hub-stop-card:hover{border-color:var(--blue-500);box-shadow:var(--shadow-sm);transform:translateY(-2px)}.hub-stop-pin{background:var(--blue-500);border-radius:10px;flex:none;place-items:center;width:36px;height:36px;display:grid}@supports (color:color-mix(in lab, red, red)){.hub-stop-pin{background:color-mix(in srgb,var(--blue-500)11%,transparent)}}.hub-stop-pin{color:var(--blue-600)}.hub-stop-copy{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.hub-stop-copy strong{text-overflow:ellipsis;white-space:nowrap;font-size:13.5px;font-weight:800;overflow:hidden}.hub-stop-copy small{color:var(--muted);font-size:11.5px}.hub-stop-arrow{color:var(--soft)}.station-hero-banner{color:#fff;background:radial-gradient(circle at 92% 18%,#38bdf83d,#0000 40%),linear-gradient(130deg,#061730 0%,#0b2954 58%,#0f3f7d 100%);border:1px solid #7dd3fc38;border-radius:20px;margin-top:18px;padding:22px 24px;box-shadow:0 18px 40px #06173038}.station-hero-top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:18px;display:flex}.station-hero-identity{align-items:center;gap:16px;min-width:0;display:flex}.station-sign-badge{background:linear-gradient(#facc15 0% 32%,#1d4ed8 32% 100%);border:2px solid #ffffffd9;border-radius:12px 12px 16px 16px;flex-direction:column;flex:none;justify-content:center;align-items:center;gap:5px;width:48px;height:56px;display:flex;box-shadow:0 8px 18px #00000047}.station-sign-badge span{color:#061730;letter-spacing:.06em;font-size:9px;font-weight:900;line-height:1}.station-sign-badge i{background:#fff;border-radius:50%;width:12px;height:12px}.station-hero-text{min-width:0}.station-hero-pills{flex-wrap:wrap;align-items:center;gap:7px;margin-bottom:6px;display:flex}.station-pole-tag,.station-distance-tag,.station-plan-tag,.station-live-tag{border-radius:999px;align-items:center;gap:5px;padding:3px 9px;font-size:11.5px;font-weight:700;display:inline-flex}.station-pole-tag{color:#e0f2fe;font-family:var(--font-code);background:#ffffff24}.station-distance-tag{color:#bae6fd;background:#38bdf82e}.station-plan-tag{color:#fffc;background:#ffffff1a}.station-live-tag{color:#6ee7b7;background:#10b98138;border:1px solid #34d39966}.station-live-tag i{background:#34d399;border-radius:50%;width:6px;height:6px;animation:1.5s infinite pulse;box-shadow:0 0 8px #34d399}.station-hero-text h3{letter-spacing:-.03em;margin:0;font-size:clamp(20px,2.2vw,26px);font-weight:800}.station-serving-lines{flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px;display:flex}.station-serving-lines>span{color:#ffffffb3;font-size:12px;font-weight:600}.station-mini-badges{flex-wrap:wrap;align-items:center;gap:5px;display:flex}.station-mini-badges b{font-family:var(--font-code);color:#fff;border-radius:6px;padding:2px 7px;font-size:11.5px;font-weight:800;box-shadow:inset 0 1px #ffffff40}.station-mini-badges em{color:#ffffffb3;font-size:11.5px;font-style:normal}.station-hero-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.station-action-btn,.station-fav-btn{color:#fff;background:#ffffff1a;border:1px solid #fff3;border-radius:12px;align-items:center;gap:7px;min-height:40px;padding:0 14px;font-size:13px;font-weight:700;transition:background .18s,transform .15s,border-color .18s;display:inline-flex}.station-action-btn:hover,.station-fav-btn:hover{background:#ffffff2e;transform:translateY(-1px)}.station-fav-btn.active{color:#fecdd3;background:#f43f5e42;border-color:#fb71858c}.station-siblings-bar{border-top:1px solid #ffffff1f;flex-wrap:wrap;align-items:center;gap:10px;margin-top:16px;padding-top:14px;display:flex}.station-siblings-bar>span{color:#ffffffb3;font-size:12px;font-weight:600}.station-sibling-pills{flex-wrap:wrap;gap:6px;display:flex}.station-sibling-pills button{color:#ffffffd9;background:#ffffff14;border:1px solid #ffffff29;border-radius:999px;padding:5px 11px;font-size:12px;font-weight:700;transition:all .16s}.station-sibling-pills button:hover{background:#ffffff29}.station-sibling-pills button.active{color:#061730;background:#fff;border-color:#fff}.board-control-bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:16px;display:flex}.board-secondary-switches{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.live-only-toggle{background:var(--surface-2);border:1px solid var(--line-strong);min-height:44px;color:var(--muted);border-radius:12px;align-items:center;gap:7px;padding:0 14px;font-size:13px;font-weight:800;transition:all .18s;display:inline-flex}.live-only-toggle i{background:var(--emerald-bright);border-radius:50%;width:7px;height:7px}.live-only-toggle.active{background:var(--success-bg);border-color:var(--success)}@supports (color:color-mix(in lab, red, red)){.live-only-toggle.active{border-color:color-mix(in srgb,var(--success)45%,var(--line))}}.live-only-toggle.active{color:var(--success)}.datetime-picker-strip{background:var(--surface-2);border:1px solid var(--line);border-radius:14px;flex-wrap:wrap;gap:12px;margin-top:12px;padding:14px 16px;display:flex;overflow:hidden}.datetime-picker-strip label{color:var(--muted);flex-direction:column;gap:5px;font-size:12px;font-weight:700;display:flex}.datetime-picker-strip input{border:1px solid var(--line-strong);background:var(--surface);border-radius:10px;height:42px;padding:0 12px;font-size:14px;font-weight:600}.board-pill-filters{background:var(--surface-2);border:1px solid var(--line);border-radius:16px;flex-direction:column;gap:10px;margin-top:14px;padding:13px 15px;display:flex}.pill-filter-row{flex-wrap:wrap;align-items:center;gap:7px;display:flex}.directions-row{border-top:1px dashed var(--line-strong);padding-top:9px}.line-filter-pill,.dir-filter-pill{background:var(--surface);border:1px solid var(--line-strong);min-height:34px;color:var(--ink);border-radius:999px;align-items:center;gap:6px;padding:0 12px;font-size:12.5px;font-weight:700;transition:all .16s;display:inline-flex}.line-filter-pill:hover,.dir-filter-pill:hover{border-color:var(--blue-400)}.line-filter-pill.active{background:var(--pill-accent,var(--navy-900));border-color:var(--pill-accent,var(--navy-900));color:#fff;box-shadow:0 4px 12px #091a342e}.line-filter-pill.active .pill-color-dot{background:#fff!important}.pill-color-dot{border-radius:50%;width:8px;height:8px}.dir-filter-pill.active{background:var(--blue-600);border-color:var(--blue-600);color:#fff}.departure-list-v2{flex-direction:column;gap:9px;margin-top:16px;display:flex}.departure-row-card{background:var(--surface-2);border:1px solid var(--line);border-radius:17px;grid-template-columns:62px minmax(0,1fr) auto 36px;align-items:center;gap:16px;padding:14px 18px;transition:background .18s,border-color .18s,box-shadow .18s,transform .15s;display:grid}.departure-row-card:hover{background:var(--surface);border-color:var(--line-strong);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.departure-row-card.is-live{border-left:4px solid var(--emerald-bright);background:linear-gradient(90deg,var(--emerald-bright),var(--surface-2)28%)}@supports (color:color-mix(in lab, red, red)){.departure-row-card.is-live{background:linear-gradient(90deg,color-mix(in srgb,var(--emerald-bright)5%,var(--surface-2)),var(--surface-2)28%)}}.departure-row-main{flex-direction:column;gap:6px;min-width:0;display:flex}.departure-row-headline{align-items:center;gap:10px;min-width:0;display:flex}.departure-row-headline strong{text-overflow:ellipsis;white-space:nowrap;letter-spacing:-.02em;font-size:16.5px;font-weight:800;overflow:hidden}.next-day-chip{background:var(--blue-500);border-radius:6px;padding:2px 7px}@supports (color:color-mix(in lab, red, red)){.next-day-chip{background:color-mix(in srgb,var(--blue-500)12%,transparent)}}.next-day-chip{color:var(--blue-600);font-size:11px;font-weight:700}.departure-led-box{text-align:right;align-items:center;gap:12px;display:flex}.departure-led-times{flex-direction:column;align-items:flex-end;gap:2px;min-width:68px;display:flex}.departure-led-times strong{font-family:var(--font-code);font-variant-numeric:tabular-nums;letter-spacing:-.03em;font-size:22px;font-weight:800;line-height:1}.hourly-matrix-card{border:1px solid var(--line);background:var(--surface-2);border-radius:18px;margin-top:16px;overflow:hidden}.hourly-matrix-head{background:var(--surface);border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:14px 18px;display:flex}.hourly-matrix-head strong{font-size:15px;font-weight:800}.hourly-matrix-head span{color:var(--muted);font-size:12.5px}.hourly-matrix-rows{flex-direction:column;display:flex}.hourly-row{border-bottom:1px solid var(--line);grid-template-columns:62px 1fr;display:grid}.hourly-row:last-child{border-bottom:0}.hourly-cell-hour{background:var(--blue-500);place-items:center;display:grid}@supports (color:color-mix(in lab, red, red)){.hourly-cell-hour{background:color-mix(in srgb,var(--blue-500)8%,var(--surface))}}.hourly-cell-hour{border-right:1px solid var(--line);font-family:var(--font-code);color:var(--blue-600);font-size:16px;font-weight:800}:root[data-theme=dark] .hourly-cell-hour{color:#7cc0ff}.hourly-cell-minutes{flex-wrap:wrap;gap:6px;padding:10px 14px;display:flex}.matrix-minute-chip{background:var(--surface);border:1px solid var(--line);font-family:var(--font-code);border-radius:8px;align-items:baseline;gap:4px;padding:5px 9px;transition:border-color .15s,transform .15s;display:inline-flex}.matrix-minute-chip:hover{border-color:var(--blue-500);transform:translateY(-1px)}.matrix-minute-chip.is-live{border-color:var(--emerald-bright)}@supports (color:color-mix(in lab, red, red)){.matrix-minute-chip.is-live{border-color:color-mix(in srgb,var(--emerald-bright)55%,var(--line))}}.matrix-minute-chip.is-live{background:var(--success-bg)}.matrix-minute-chip strong{font-size:14px;font-weight:800}.matrix-minute-chip small{font-size:10.5px;font-weight:800}.map-command-bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;margin-bottom:16px;display:flex}.map-quick-stop-search{flex-wrap:wrap;flex:1;align-items:center;gap:10px;min-width:280px;display:flex}.map-open-stop-btn{white-space:nowrap;height:46px}.map-telemetry-pills{flex-wrap:wrap;align-items:center;gap:9px;display:flex}.telemetry-kpi{background:var(--surface-2);border:1px solid var(--line);border-radius:13px;align-items:center;gap:9px;padding:7px 13px;display:flex}.telemetry-kpi div{align-items:baseline;gap:5px;display:flex}.telemetry-kpi strong{font-family:var(--font-code);font-size:16px;font-weight:800}.telemetry-kpi span{color:var(--muted);font-size:12px;font-weight:600}.kpi-icon-live{color:var(--emerald-bright)}.kpi-icon-ok{color:var(--blue-500)}.kpi-icon-warn{color:var(--danger)}.map-workspace-v2{grid-template-columns:minmax(0,1fr) 360px;gap:16px;height:670px;display:grid}.map-legend-pill{z-index:500;background:var(--surface);align-items:center;gap:12px;padding:6px 12px;display:flex;position:absolute;bottom:10px;right:12px}@supports (color:color-mix(in lab, red, red)){.map-legend-pill{background:color-mix(in srgb,var(--surface)92%,transparent)}}.map-legend-pill{border:1px solid var(--line);box-shadow:var(--shadow-sm);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:var(--ink);border-radius:999px;font-size:11.5px;font-weight:700}.map-legend-pill span{align-items:center;gap:5px;display:inline-flex}.legend-dot{border-radius:50%;width:9px;height:9px;display:inline-block}.legend-dot.stop{background:#1870ea;border:1.5px solid #fff}.legend-dot.vehicle-ok{background:#10b981}.legend-dot.vehicle-late{background:#ef4444}.vehicle-inspector-card{z-index:650;color:#fff;width:min(490px,100% - 32px);box-shadow:var(--shadow-lg);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:linear-gradient(145deg,#061730f5,#0c2a54f5);border:1px solid #7dd3fc47;border-radius:20px;padding:20px;position:absolute;bottom:42px;left:16px}.inspector-head{align-items:center;gap:14px;display:flex}.inspector-title{flex:1;min-width:0}.inspector-title h3{letter-spacing:-.02em;margin:4px 0 0;font-size:18px;font-weight:800}.inspector-next-stop{color:#ffffffe6;background:#ffffff14;border-radius:11px;align-items:center;gap:8px;margin-top:12px;padding:10px 12px;font-size:13px;display:flex}.inspector-actions{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.inspector-btn{color:#fff;background:#ffffff1a;border:1px solid #fff3;border-radius:10px;flex:1;justify-content:center;align-items:center;gap:7px;min-height:38px;padding:0 13px;font-size:12.5px;font-weight:700;transition:background .16s;display:inline-flex}.inspector-btn:hover{background:#ffffff2e}.inspector-btn.primary{background:#2584ff;border-color:#2584ff}.inspector-btn.primary:hover{background:#1868e3}.live-sidebar-v2{background:var(--surface-2);border:1px solid var(--line);border-radius:18px;flex-direction:column;min-width:0;display:flex;overflow:hidden}.reset-mini-btn{border:1px solid var(--line-strong);background:var(--surface);color:var(--blue-600);border-radius:8px;padding:4px 9px;font-size:11px;font-weight:700}.fleet-filter-controls{border-bottom:1px solid var(--line);flex-direction:column;gap:9px;padding:12px;display:flex}.fleet-search-box{background:var(--surface);border:1px solid var(--line-strong);border-radius:10px;align-items:center;gap:8px;height:38px;padding:0 11px;display:flex}.fleet-search-box svg{color:var(--muted)}.fleet-search-box input{background:0 0;border:0;outline:0;flex:1;min-width:0;font-size:13px}.fleet-search-box button{color:var(--muted);background:0 0;border:0;padding:2px}.fleet-line-pills{scrollbar-width:thin;gap:5px;padding-bottom:3px;display:flex;overflow-x:auto}.fleet-line-pills button{background:var(--surface);border:1px solid var(--line);color:var(--muted);white-space:nowrap;border-radius:999px;align-items:center;gap:5px;padding:5px 10px;font-size:11.5px;font-weight:700;display:inline-flex}.fleet-line-pills button i{border-radius:50%;width:7px;height:7px}.fleet-line-pills button.active{background:var(--navy-900);border-color:var(--navy-900);color:#fff}:root[data-theme=dark] .fleet-line-pills button.active{background:var(--blue-600);border-color:var(--blue-600)}.fleet-line-pills button.delayed-pill.active{background:var(--danger);border-color:var(--danger);color:#fff}.vehicle-list-v2{flex-direction:column;flex:1;gap:6px;padding:8px;display:flex;overflow-y:auto}.vehicle-card-row{text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:12px;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:10px;width:100%;padding:10px;transition:border-color .16s,transform .14s,box-shadow .16s;display:grid}.vehicle-card-row:hover{border-color:var(--blue-400);transform:translate(2px)}.vehicle-card-row.active{border-color:var(--blue-500);background:var(--blue-500)}@supports (color:color-mix(in lab, red, red)){.vehicle-card-row.active{background:color-mix(in srgb,var(--blue-500)7%,var(--surface))}}.vehicle-card-row.active{box-shadow:0 0 0 2px var(--blue-500)}@supports (color:color-mix(in lab, red, red)){.vehicle-card-row.active{box-shadow:0 0 0 2px color-mix(in srgb,var(--blue-500)16%,transparent)}}.live-updated{background:var(--surface);border-top:1px solid var(--line);color:var(--muted);justify-content:space-between;align-items:center;padding:10px 14px;font-size:11.5px;display:flex}.live-updated strong{font-family:var(--font-code);color:var(--ink)}.route-explorer-grid{grid-template-columns:390px minmax(0,1fr);align-items:start;gap:24px;display:grid}.route-catalog-pane{background:var(--surface-2);border:1px solid var(--line);border-radius:20px;flex-direction:column;gap:12px;padding:16px;display:flex}.catalog-search-box{background:var(--surface);border:1px solid var(--line-strong);border-radius:12px;align-items:center;gap:10px;height:46px;padding:0 13px;display:flex}.catalog-search-box svg{color:var(--muted)}.catalog-search-box input{background:0 0;border:0;outline:0;flex:1;min-width:0;font-size:14px}.mode-pills-bar{flex-wrap:wrap;gap:6px;display:flex}.mode-pills-bar button{background:var(--surface);border:1px solid var(--line);color:var(--muted);border-radius:10px;align-items:center;gap:6px;padding:6px 11px;font-size:12px;font-weight:700;transition:all .16s;display:inline-flex}.mode-pills-bar button b{background:var(--surface-2);font-family:var(--font-code);border-radius:999px;padding:1px 6px;font-size:10.5px}.mode-pills-bar button.active{background:var(--navy-900);border-color:var(--navy-900);color:#fff}:root[data-theme=dark] .mode-pills-bar button.active{background:var(--blue-600);border-color:var(--blue-600)}.mode-pills-bar button.active b{color:#fff;background:#ffffff2e}.route-cards-scroll{grid-template-columns:1fr;gap:8px;max-height:560px;padding-right:4px;display:grid;overflow-y:auto}.route-catalog-card{background:var(--surface);border:1px solid var(--line);border-radius:14px;align-items:center;transition:border-color .18s,box-shadow .18s,transform .15s;display:flex;position:relative}.route-catalog-card:hover{border-color:var(--route-accent,var(--blue-500))}@supports (color:color-mix(in lab, red, red)){.route-catalog-card:hover{border-color:color-mix(in srgb,var(--route-accent,var(--blue-500))55%,var(--line))}}.route-catalog-card:hover{transform:translate(2px)}.route-catalog-card.selected{border-color:var(--route-accent,var(--blue-500));box-shadow:0 0 0 3px var(--route-accent,var(--blue-500))}@supports (color:color-mix(in lab, red, red)){.route-catalog-card.selected{box-shadow:0 0 0 3px color-mix(in srgb,var(--route-accent,var(--blue-500))15%,transparent)}}.route-catalog-select{text-align:left;background:0 0;border:0;flex:1;align-items:center;gap:12px;min-width:0;padding:11px 12px;display:flex}.route-catalog-meta{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.route-catalog-meta strong{text-overflow:ellipsis;white-space:nowrap;font-size:13.5px;font-weight:800;overflow:hidden}.route-catalog-meta small{color:var(--muted);align-items:center;gap:5px;font-size:11.5px;font-weight:600;display:inline-flex}.route-fav-toggle{width:36px;height:36px;color:var(--soft);background:0 0;border:0;border-radius:10px;place-items:center;margin-right:6px;transition:color .15s,background .15s;display:grid}.route-fav-toggle:hover{background:var(--surface-2);color:var(--danger)}.route-fav-toggle.active{color:var(--danger)}.route-detail-pane{min-width:0}.route-welcome-card{background:var(--surface-2);border:1px dashed var(--line-strong);text-align:center;border-radius:22px;flex-direction:column;justify-content:center;align-items:center;min-height:520px;padding:40px 28px;display:flex}.route-welcome-card h3{margin:0 0 8px;font-size:21px;font-weight:800}.route-welcome-card p{max-width:480px;color:var(--muted);font-size:14.5px;line-height:1.65}.quick-route-badges{flex-direction:column;align-items:center;gap:10px;margin-top:24px;display:flex}.quick-route-badges>span{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-size:12px;font-weight:700}.quick-route-badges>div{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.quick-route-badges button{transition:transform .16s}.quick-route-badges button:hover{transform:translateY(-2px)scale(1.05)}.route-hero-banner{background:radial-gradient(circle at 95% 15%,var(--route-accent,var(--blue-500)),transparent 45%),var(--surface-2);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:20px 22px;display:flex}@supports (color:color-mix(in lab, red, red)){.route-hero-banner{background:radial-gradient(circle at 95% 15%,color-mix(in srgb,var(--route-accent,var(--blue-500))16%,transparent),transparent 45%),var(--surface-2)}}.route-hero-banner{border:1px solid var(--line);border-radius:20px}.route-hero-main{align-items:center;gap:16px;min-width:0;display:flex}.route-hero-copy{min-width:0}.route-hero-tags{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:5px;display:flex}.route-duration-pill,.route-stops-pill{background:var(--surface);border:1px solid var(--line);color:var(--muted);border-radius:999px;align-items:center;gap:5px;padding:3px 9px;font-size:11.5px;font-weight:700;display:inline-flex}.route-hero-copy h3{letter-spacing:-.025em;margin:0;font-size:clamp(19px,2vw,24px);font-weight:800}.route-hero-copy p{color:var(--muted);margin:4px 0 0;font-size:13px}.route-hero-actions{flex-wrap:wrap;gap:9px;display:flex}.active-fav-btn{color:var(--danger)!important;border-color:var(--danger)!important}@supports (color:color-mix(in lab, red, red)){.active-fav-btn{border-color:color-mix(in srgb,var(--danger)40%,var(--line))!important}}.active-fav-btn{background:var(--danger-bg)!important}.variant-picker-block{margin-top:18px}.variant-cards-row{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px;display:grid}.variant-card-btn{text-align:left;background:var(--surface-2);border:1px solid var(--line);border-radius:14px;flex-direction:column;gap:4px;padding:12px 14px;transition:all .16s;display:flex}.variant-card-btn:hover{border-color:var(--blue-400);background:var(--surface)}.variant-card-btn.active{background:var(--route-accent,var(--blue-500))}@supports (color:color-mix(in lab, red, red)){.variant-card-btn.active{background:color-mix(in srgb,var(--route-accent,var(--blue-500))8%,var(--surface))}}.variant-card-btn.active{border-color:var(--route-accent,var(--blue-500));box-shadow:0 0 0 2px var(--route-accent,var(--blue-500))}@supports (color:color-mix(in lab, red, red)){.variant-card-btn.active{box-shadow:0 0 0 2px color-mix(in srgb,var(--route-accent,var(--blue-500))16%,transparent)}}.variant-dir-head{align-items:center;gap:7px;min-width:0;display:flex}.variant-dir-head svg{color:var(--route-accent,var(--blue-600))}.variant-dir-head strong{text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:800;overflow:hidden}.variant-card-btn small{color:var(--muted);padding-left:20px;font-size:12px}.beads-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin:22px 0 12px;display:flex}.beads-toolbar strong{font-size:15px;font-weight:800;display:block}.beads-toolbar span{color:var(--muted);font-size:12.5px}.beads-filter-input{background:var(--surface-2);border:1px solid var(--line-strong);border-radius:10px;align-items:center;gap:7px;height:38px;padding:0 11px;display:flex}.beads-filter-input input{background:0 0;border:0;outline:0;width:170px;font-size:13px}.beads-filter-input button{color:var(--muted);background:0 0;border:0;padding:2px}.beads-timeline{background:var(--surface-2);border:1px solid var(--line);border-radius:18px;max-height:460px;margin:0;padding:12px 14px;list-style:none;overflow-y:auto}.bead-item{grid-template-columns:62px 28px minmax(0,1fr);align-items:stretch;display:grid;position:relative}.bead-time-col{font-family:var(--font-code);color:var(--muted);justify-content:flex-end;align-items:center;padding-right:10px;font-size:11.5px;font-weight:700;display:flex}.bead-rail-col{justify-content:center;align-items:center;display:flex;position:relative}.bead-item:not(:last-child) .bead-rail-col:after{content:"";background:var(--route-accent,var(--blue-500));width:3px;position:absolute;top:50%;bottom:-50%}@supports (color:color-mix(in lab, red, red)){.bead-item:not(:last-child) .bead-rail-col:after{background:color-mix(in srgb,var(--route-accent,var(--blue-500))55%,var(--line-strong))}}.bead-dot{z-index:2;background:var(--surface);border:3px solid var(--route-accent,var(--blue-500));border-radius:50%;width:12px;height:12px;position:relative}.bead-item.is-start .bead-dot,.bead-item.is-end .bead-dot{background:var(--route-accent,var(--blue-500));width:16px;height:16px;box-shadow:0 0 0 4px var(--route-accent,var(--blue-500))}@supports (color:color-mix(in lab, red, red)){.bead-item.is-start .bead-dot,.bead-item.is-end .bead-dot{box-shadow:0 0 0 4px color-mix(in srgb,var(--route-accent,var(--blue-500))22%,transparent)}}.bead-stop-btn{text-align:left;background:0 0;border:1px solid #0000;border-radius:12px;justify-content:space-between;align-items:center;gap:12px;margin:3px 0;padding:10px 14px;transition:background .15s,border-color .15s;display:flex}.bead-stop-btn:hover{background:var(--surface);border-color:var(--line)}.bead-stop-copy{flex-direction:column;gap:3px;min-width:0;display:flex}.bead-stop-copy strong{font-size:14.5px;font-weight:700}.bead-stop-tags{color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px;font-size:11.5px;display:flex}.terminal-tag{background:var(--blue-500);border-radius:6px;padding:1px 7px;font-size:10.5px;font-weight:800}@supports (color:color-mix(in lab, red, red)){.terminal-tag{background:color-mix(in srgb,var(--blue-500)12%,transparent)}}.terminal-tag{color:var(--blue-600)}.nz-tag{color:var(--warning);background:#f59e0b26;border-radius:6px;padding:1px 7px;font-size:10.5px;font-weight:800}.bead-open-action{color:var(--blue-600);opacity:0;align-items:center;gap:4px;font-size:12px;font-weight:800;transition:opacity .15s,transform .15s;display:inline-flex}.bead-stop-btn:hover .bead-open-action{opacity:1;transform:translate(2px)}.planner-layout-v2{grid-template-columns:440px minmax(0,1fr);align-items:start;gap:24px;display:grid}.planner-builder-card{background:var(--surface-2);border:1px solid var(--line);border-radius:20px;flex-direction:column;gap:18px;padding:22px;display:flex}.planner-route-box{background:var(--surface);border:1px solid var(--line);border-radius:16px;flex-direction:column;gap:8px;padding:16px;display:flex}.planner-point-row{grid-template-columns:18px minmax(0,1fr);align-items:center;gap:12px;display:grid}.origin-marker-dot{background:var(--emerald-bright);border:3px solid var(--emerald-bright);border-radius:50%;width:14px;height:14px}@supports (color:color-mix(in lab, red, red)){.origin-marker-dot{border:3px solid color-mix(in srgb,var(--emerald-bright)28%,var(--surface))}}.origin-marker-dot{box-shadow:0 0 0 2px var(--emerald-bright)}.dest-marker-dot{background:var(--blue-600);width:14px;height:14px;box-shadow:0 0 0 3px var(--blue-500);border-radius:4px}@supports (color:color-mix(in lab, red, red)){.dest-marker-dot{box-shadow:0 0 0 3px color-mix(in srgb,var(--blue-500)22%,transparent)}}.planner-point-input{min-width:0}.planner-point-label-row{color:var(--muted);justify-content:space-between;align-items:center;margin-bottom:5px;font-size:12px;font-weight:700;display:flex}.use-gps-inline{border:1px solid var(--blue-500);border-radius:999px;align-items:center;gap:4px;padding:2px 8px;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.use-gps-inline{border:1px solid color-mix(in srgb,var(--blue-500)30%,var(--line))}}.use-gps-inline{background:var(--blue-500)}@supports (color:color-mix(in lab, red, red)){.use-gps-inline{background:color-mix(in srgb,var(--blue-500)9%,transparent)}}.use-gps-inline{color:var(--blue-600);font-size:11px;font-weight:800}:root[data-theme=dark] .use-gps-inline{color:#7cc0ff}.planner-swap-divider{align-items:center;gap:12px;padding-left:6px;display:flex}.planner-connector-line{border-left:2px dashed var(--line-strong);width:2px;height:22px}.planner-swap-btn{background:var(--surface-2);border:1px solid var(--line-strong);color:var(--muted);border-radius:999px;align-items:center;gap:6px;padding:5px 12px;font-size:11.5px;font-weight:700;transition:all .16s;display:inline-flex}.planner-swap-btn:hover{border-color:var(--blue-500);color:var(--blue-600);background:var(--surface)}.planner-Section-block{flex-direction:column;gap:8px;display:flex}.planner-sub-label,.planner-presets-head>span{color:var(--muted);font-size:12.5px;font-weight:700}.planner-presets-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.time-preset-chips{flex-wrap:wrap;gap:5px;display:flex}.time-preset-chips button{background:var(--surface);border:1px solid var(--line-strong);color:var(--ink);border-radius:8px;padding:4px 9px;font-size:11.5px;font-weight:700;transition:border-color .15s,color .15s}.time-preset-chips button:hover{border-color:var(--blue-500);color:var(--blue-600)}.planner-datetime-grid{grid-template-columns:1.15fr .85fr;gap:10px;display:grid}.planner-datetime-grid input{border:1px solid var(--line-strong);background:var(--surface);border-radius:11px;height:44px;padding:0 12px;font-size:14px;font-weight:600}.transfer-pills-group{grid-template-columns:repeat(4,1fr);gap:7px;display:grid}.transfer-pills-group button{background:var(--surface);border:1px solid var(--line-strong);min-height:38px;color:var(--muted);border-radius:10px;font-size:12.5px;font-weight:700;transition:all .16s}.transfer-pills-group button.active{background:var(--navy-900);border-color:var(--navy-900);color:#fff}:root[data-theme=dark] .transfer-pills-group button.active{background:var(--blue-600);border-color:var(--blue-600)}.walk-slider-head{color:var(--muted);justify-content:space-between;align-items:center;font-size:12.5px;font-weight:700;display:flex}.walk-slider-head span{align-items:center;gap:6px;display:inline-flex}.walk-slider-head strong{font-family:var(--font-code);color:var(--blue-600)}.modern-range{width:100%;accent-color:var(--blue-600)}.preference-cards-row{grid-template-columns:repeat(3,1fr);gap:7px;display:grid}.preference-cards-row button{background:var(--surface);border:1px solid var(--line-strong);color:var(--muted);border-radius:12px;flex-direction:column;align-items:center;gap:5px;padding:10px 6px;font-size:11.5px;font-weight:700;transition:all .16s;display:flex}.preference-cards-row button.active{border-color:var(--blue-500);background:var(--blue-500)}@supports (color:color-mix(in lab, red, red)){.preference-cards-row button.active{background:color-mix(in srgb,var(--blue-500)10%,var(--surface))}}.preference-cards-row button.active{color:var(--blue-600)}:root[data-theme=dark] .preference-cards-row button.active{color:#7cc0ff}.planner-submit-btn{border-radius:14px;width:100%;min-height:50px;font-size:15px}.planner-results-pane{min-width:0}.planner-empty-card{background:var(--surface-2);border:1px dashed var(--line-strong);text-align:center;border-radius:22px;flex-direction:column;justify-content:center;align-items:center;gap:12px;min-height:460px;padding:40px 28px;display:flex}.planner-empty-card h3{margin:4px 0 0;font-size:20px;font-weight:800}.planner-empty-card p{max-width:460px;color:var(--muted);margin:0;font-size:14.5px;line-height:1.65}.journey-card-v2{background:var(--surface-2);border:1px solid var(--line);border-radius:20px;margin-bottom:16px;padding:22px;transition:border-color .2s,box-shadow .2s}.journey-card-v2:hover{border-color:var(--line-strong);box-shadow:var(--shadow-sm)}.journey-card-v2.featured{background:linear-gradient(160deg,var(--blue-500),var(--surface-2))}@supports (color:color-mix(in lab, red, red)){.journey-card-v2.featured{background:linear-gradient(160deg,color-mix(in srgb,var(--blue-500)5%,var(--surface)),var(--surface-2))}}.journey-card-v2.featured{border-color:var(--blue-500)}@supports (color:color-mix(in lab, red, red)){.journey-card-v2.featured{border-color:color-mix(in srgb,var(--blue-500)48%,var(--line))}}.journey-card-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;display:flex}.journey-tags-top{flex-wrap:wrap;align-items:center;gap:7px;margin-bottom:8px;display:flex}.recommended-pill{background:var(--blue-500);border-radius:999px;align-items:center;gap:5px;padding:3px 10px;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.recommended-pill{background:color-mix(in srgb,var(--blue-500)14%,transparent)}}.recommended-pill{color:var(--blue-600);font-size:11.5px;font-weight:800}:root[data-theme=dark] .recommended-pill{color:#7cc0ff}.transfer-count-pill,.walk-distance-pill{background:var(--surface);border:1px solid var(--line);color:var(--muted);border-radius:999px;align-items:center;gap:5px;padding:3px 9px;font-size:11.5px;font-weight:700;display:inline-flex}.transfer-count-pill.direct{background:var(--success-bg);color:var(--success);border-color:var(--success)}@supports (color:color-mix(in lab, red, red)){.transfer-count-pill.direct{border-color:color-mix(in srgb,var(--success)30%,transparent)}}.journey-clock-span{font-family:var(--font-code);letter-spacing:-.03em;align-items:center;gap:10px;font-size:24px;font-weight:800;display:flex}.journey-clock-span svg{color:var(--muted)}.journey-duration-box{background:var(--surface);border:1px solid var(--line);text-align:right;border-radius:14px;flex-direction:column;padding:10px 16px;display:flex}.journey-duration-box strong{font-family:var(--font-code);color:var(--blue-600);font-size:19px;font-weight:800}:root[data-theme=dark] .journey-duration-box strong{color:#7cc0ff}.journey-duration-box span{color:var(--muted);font-size:11px;font-weight:600}.journey-visual-bar{align-items:stretch;gap:5px;height:30px;margin:16px 0;display:flex}.visual-bar-segment{color:#fff;min-width:34px;font-family:var(--font-code);border-radius:8px;justify-content:center;align-items:center;font-size:12px;font-weight:800;display:flex;overflow:hidden}.visual-bar-segment.walk{background:repeating-linear-gradient(45deg,var(--surface-3),var(--surface-3)6px,var(--surface)6px,var(--surface)12px);border:1px solid var(--line-strong);color:var(--muted)}.journey-steps-timeline{background:var(--surface);border:1px solid var(--line);border-radius:15px;flex-direction:column;gap:12px;margin:0;padding:12px 14px;list-style:none;display:flex}.journey-step{grid-template-columns:54px 44px minmax(0,1fr);align-items:start;gap:10px;display:grid}.step-time-col{font-family:var(--font-code);flex-direction:column;align-items:flex-end;line-height:1.25;display:flex}.step-time-col strong{font-size:13px;font-weight:800}.step-time-col small{color:var(--muted);font-size:11px}.step-rail-col{justify-content:center;display:flex}.step-badge{background:var(--surface-2);border:1px solid var(--line);min-width:38px;height:28px;color:var(--muted);font-family:var(--font-code);border-radius:8px;place-items:center;padding:0 6px;font-size:12px;font-weight:800;display:inline-grid}.journey-step.ride .step-badge{color:#fff;border:0}.step-body-col{min-width:0}.step-body-col strong{font-size:14px;font-weight:800;display:block}.step-body-col p{color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px;margin:3px 0;font-size:13px;display:flex}.step-body-col small{color:var(--soft);font-size:11.5px}.journey-card-footer{flex-wrap:wrap;align-items:center;gap:9px;margin-top:16px;display:flex}.journey-map-btn{margin-right:auto}.favorites-kpi-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px;display:grid}.fav-kpi-card{background:var(--surface-2);border:1px solid var(--line);border-radius:16px;align-items:center;gap:13px;padding:15px 18px;display:flex}.fav-kpi-icon{color:#fff;border-radius:12px;place-items:center;width:42px;height:42px;display:grid}.fav-kpi-icon.blue{background:linear-gradient(135deg,#3b93ff,#0d52c7)}.fav-kpi-icon.indigo{background:linear-gradient(135deg,#818cf8,#4f46e5)}.fav-kpi-icon.amber{background:linear-gradient(135deg,#fbbf24,#d97706)}.fav-kpi-icon.slate{background:linear-gradient(135deg,#64748b,#334155)}.fav-kpi-card div{flex-direction:column;line-height:1.2;display:flex}.fav-kpi-card strong{font-family:var(--font-code);font-size:22px;font-weight:800}.fav-kpi-card span{color:var(--muted);margin-top:2px;font-size:12px;font-weight:600}.fav-quick-adder{background:var(--surface-2);border:1px solid var(--line);border-radius:18px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;padding:16px 20px;display:flex}.fav-quick-adder-copy{flex-direction:column;gap:2px;display:flex}.fav-quick-adder-copy strong{font-size:15px;font-weight:800}.fav-quick-adder-copy span{color:var(--muted);font-size:13px}.fav-quick-adder-controls{flex:1;min-width:280px;max-width:520px}.fav-starter-showcase{background:var(--surface-2);border:1px solid var(--line);border-radius:22px;padding:28px}.fav-starter-head{text-align:center;flex-direction:column;align-items:center;margin-bottom:26px;display:flex}.fav-starter-head h3{margin:0 0 8px;font-size:21px;font-weight:800}.fav-starter-head p{max-width:560px;color:var(--muted);margin:0;font-size:14.5px;line-height:1.65}.fav-starter-columns{grid-template-columns:1fr 1fr;gap:18px;display:grid}.fav-starter-box{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:18px}.fav-starter-box h4{align-items:center;gap:8px;margin:0 0 14px;font-size:14.5px;font-weight:800;display:flex}.fav-starter-box h4 svg{color:var(--blue-600)}.fav-starter-list{flex-direction:column;gap:8px;display:flex}.fav-starter-row{background:var(--surface-2);border:1px solid var(--line);border-radius:12px;justify-content:space-between;align-items:center;gap:10px;padding:9px 11px;display:flex}.fav-starter-open{text-align:left;background:0 0;border:0;flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.fav-starter-open strong{text-overflow:ellipsis;white-space:nowrap;font-size:13.5px;font-weight:700;overflow:hidden}.fav-starter-open small{color:var(--muted);font-size:11.5px}.fav-pin-btn{min-height:34px;padding:0 11px;font-size:12px}.fav-starter-routes{grid-template-columns:1fr 1fr;gap:8px;display:grid}.fav-starter-route-chip{background:var(--surface-2);border:1px solid var(--line);text-align:left;border-radius:12px;align-items:center;gap:9px;padding:8px 10px;transition:border-color .16s,background .16s;display:flex}.fav-starter-route-chip:hover{border-color:var(--blue-500);background:var(--surface)}.fav-starter-route-chip .line-badge{min-width:38px;height:32px;font-size:13px}.fav-starter-route-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:12.5px;font-weight:700;overflow:hidden}.fav-starter-route-chip svg{color:var(--blue-600)}.favorites-sections-stack{flex-direction:column;gap:28px;display:flex}.fav-group-header{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.fav-group-header>div{color:var(--blue-600);align-items:center;gap:9px;display:flex}.fav-group-header h3{color:var(--ink);margin:0;font-size:17px;font-weight:800}.fav-group-header>span{background:var(--surface-2);border:1px solid var(--line);color:var(--muted);border-radius:999px;padding:3px 10px;font-size:12px;font-weight:700}.fav-stops-live-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.fav-stop-live-card{background:var(--surface-2);border:1px solid var(--line);border-radius:18px;flex-direction:column;transition:border-color .18s,box-shadow .18s;display:flex;overflow:hidden}.fav-stop-live-card:hover{border-color:var(--blue-400);box-shadow:var(--shadow-sm)}.fav-stop-card-top{background:var(--surface);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:10px;padding:14px 16px;display:flex}.fav-stop-title-btn{text-align:left;background:0 0;border:0;flex:1;align-items:center;gap:11px;min-width:0;padding:0;display:flex}.fav-stop-title-btn>span:last-child{flex-direction:column;gap:2px;min-width:0;display:flex}.fav-stop-title-btn strong{text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:800;overflow:hidden}.fav-stop-title-btn small{color:var(--muted);font-size:12px}.fav-delete-btn:hover{color:var(--danger)!important}.fav-stop-mini-board{flex-direction:column;gap:8px;padding:12px 16px;display:flex}.fav-mini-dep{background:var(--surface);border:1px solid var(--line);border-radius:10px;align-items:center;gap:9px;padding:7px 10px;display:flex}.fav-mini-headsign{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:13px;font-weight:700;overflow:hidden}.fav-mini-live-dot{background:var(--emerald-bright);width:7px;height:7px;box-shadow:0 0 7px var(--emerald-bright);border-radius:50%}.fav-mini-dep strong{font-family:var(--font-code);font-size:13.5px;font-weight:800}.fav-mini-empty{color:var(--muted);margin:4px 0;font-size:12.5px}.fav-card-open-footer{border:0;border-top:1px solid var(--line);color:var(--blue-600);background:0 0;justify-content:space-between;align-items:center;padding:11px 16px;font-size:12.5px;font-weight:800;display:flex}:root[data-theme=dark] .fav-card-open-footer{color:#7cc0ff}.fav-card-open-footer:hover{background:var(--blue-500)}@supports (color:color-mix(in lab, red, red)){.fav-card-open-footer:hover{background:color-mix(in srgb,var(--blue-500)8%,transparent)}}.fav-routes-cards-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.fav-route-card-v2{background:var(--surface-2);border:1px solid var(--line);border-radius:16px;align-items:center;padding-right:8px;transition:border-color .16s,box-shadow .16s;display:flex}.fav-route-card-v2:hover{border-color:var(--blue-400);box-shadow:var(--shadow-sm)}.fav-route-main-btn{text-align:left;background:0 0;border:0;flex:1;align-items:center;gap:12px;min-width:0;padding:13px 14px;display:flex}.fav-route-copy{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.fav-route-copy strong{text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:800;overflow:hidden}.fav-route-copy small{color:var(--muted);font-size:12px}.fav-journeys-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.fav-journey-card{background:var(--surface-2);border:1px solid var(--line);border-radius:16px;justify-content:space-between;align-items:center;gap:14px;padding:16px 18px;display:flex}.fav-journey-times{align-items:baseline;gap:10px;display:flex}.fav-journey-times strong{font-family:var(--font-code);font-size:16px;font-weight:800}.fav-journey-times span{color:var(--blue-600);font-size:12.5px;font-weight:800}.fav-journey-main p{color:var(--muted);margin:4px 0 8px;font-size:13px}.fav-journey-badges{flex-wrap:wrap;gap:5px;display:flex}.fav-journey-actions{align-items:center;gap:6px;display:flex}.recent-stops-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.recent-stop-card{background:var(--surface-2);border:1px solid var(--line);border-radius:14px;justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;display:flex}.recent-stop-open{text-align:left;background:0 0;border:0;flex:1;align-items:center;gap:9px;min-width:0;padding:0;display:flex}.recent-stop-open svg{color:var(--blue-600)}.recent-stop-open span{flex-direction:column;min-width:0;display:flex}.recent-stop-open strong{text-overflow:ellipsis;white-space:nowrap;font-size:13.5px;font-weight:700;overflow:hidden}.recent-stop-open small{color:var(--muted);font-size:11px}.recent-pin-btn{background:var(--surface);border:1px solid var(--line-strong);color:var(--muted);border-radius:999px;align-items:center;gap:5px;padding:6px 10px;font-size:11.5px;font-weight:700;transition:all .15s;display:inline-flex}.recent-pin-btn:hover{border-color:var(--danger);color:var(--danger)}@media (max-width:1200px){.city-dashboard{padding-top:88px}.function-tile-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.hub-cards-grid,.fav-routes-cards-grid,.recent-stops-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:1020px){.map-workspace-v2,.route-explorer-grid,.planner-layout-v2{grid-template-columns:1fr;height:auto}.map-canvas-wrap{height:540px}.live-sidebar-v2{max-height:400px}.route-cards-scroll{grid-template-columns:repeat(2,minmax(0,1fr));max-height:300px}.favorites-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.fav-starter-columns,.fav-stops-live-grid,.fav-journeys-grid{grid-template-columns:1fr}}@media (max-width:720px){.city-dashboard{padding:76px 12px 42px}.city-dashboard-header{flex-direction:column;align-items:flex-start;gap:14px;padding:16px}.city-dashboard-actions{flex-wrap:wrap;gap:7px;width:100%}.dashboard-stat{flex:1}.dashboard-change-city{flex:1;justify-content:center}.function-tile-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.function-tile{min-height:136px;padding:12px 12px 10px}.function-tile:last-child{grid-column:1/-1;min-height:118px}.departure-search-dock{grid-template-columns:1fr}.gps-action-button{width:100%;height:46px}.hub-cards-grid,.route-cards-scroll,.fav-starter-routes,.fav-routes-cards-grid,.recent-stops-grid{grid-template-columns:1fr}.station-hero-banner{padding:16px}.station-hero-actions{width:100%}.station-action-btn,.station-fav-btn{flex:1;justify-content:center;padding:0 10px;font-size:12px}.departure-row-card{grid-template-columns:52px minmax(0,1fr) auto;gap:11px;padding:12px 13px}.departure-route-trigger{display:none}.departure-led-box{flex-direction:column;align-items:flex-end;gap:4px}.departure-led-times strong{font-size:19px}.vehicle-inspector-card{border-radius:0;width:100%;position:relative;bottom:auto;left:auto}.map-legend-pill{display:none}.bead-item{grid-template-columns:50px 24px minmax(0,1fr)}.bead-open-action{display:none}.transfer-pills-group{grid-template-columns:repeat(2,1fr)}.journey-step{grid-template-columns:48px 38px minmax(0,1fr)}}@media (max-width:400px){.function-tile-grid{grid-template-columns:1fr}.function-tile:last-child{grid-column:auto}.favorites-kpi-grid{grid-template-columns:1fr}}.transit-map.is-map-locked{cursor:default!important}.map-lock-shield{z-index:540;touch-action:pan-y;-webkit-user-select:none;user-select:none;cursor:pointer;background:radial-gradient(circle,#06142a0a,#06142a29);justify-content:center;align-items:flex-end;padding:20px 16px 46px;transition:background .2s;display:flex;position:absolute;inset:0}.map-lock-shield:hover{background:radial-gradient(circle,#06142a14,#06142a3d)}.map-lock-badge{color:#fff;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#071832eb;border:1px solid #7dd3fc61;border-radius:999px;align-items:center;gap:10px;padding:12px 20px;font-size:14px;font-weight:600;transition:transform .2s,box-shadow .2s,border-color .2s;display:inline-flex;box-shadow:0 12px 32px #040f2359}.map-lock-badge svg{color:#38bdf8}.map-lock-badge strong{color:#7dd3fc;font-weight:800}.map-lock-shield.nudge .map-lock-badge{border-color:#38bdf8;transform:scale(1.06);box-shadow:0 0 0 5px #38bdf840,0 14px 36px #040f2373}.map-floating-relock-btn{z-index:560;color:#fff;background:linear-gradient(135deg,#059669,#047857);border:1px solid #ffffff4d;border-radius:999px;align-items:center;gap:8px;min-height:40px;padding:0 16px;font-size:13.5px;font-weight:800;transition:transform .16s,box-shadow .16s;display:inline-flex;position:absolute;top:12px;right:14px;box-shadow:0 8px 22px #05966959}.map-floating-relock-btn:hover{transform:translateY(-1px);box-shadow:0 12px 26px #05966973}.map-lock-header-btn.unlocked{border-color:var(--emerald-bright);color:var(--success);background:var(--success-bg)}.map-layer-controls.no-zoom-offset{left:14px}.function-tile-title{font-size:16.5px}.function-tile-hint{font-size:13px}.departure-line-btn{border-radius:13px;min-width:62px;height:50px;font-size:19px}.departure-row-headline strong{font-size:18.5px}.departure-mode-text,.delay-chip,.vehicle-fleet-chip{font-size:13px}.countdown-pill{padding:6px 13px;font-size:14px}.departure-led-times strong{font-size:25px}.scheduled-time{font-size:13.5px}.line-filter-pill,.dir-filter-pill{min-height:38px;padding:0 15px;font-size:14px}.matrix-minute-chip{padding:7px 12px}.matrix-minute-chip strong{font-size:16px}.matrix-minute-chip small{font-size:12px}.routes-panel-v3{background:var(--surface);border:1px solid var(--line);width:100%;max-width:none;box-shadow:var(--shadow-sm);border-radius:24px;padding:clamp(22px,2.6vw,32px)}.back-to-lines-btn{min-height:44px;padding:0 18px;font-size:14.5px;font-weight:800}.routes-catalog-Controls{flex-direction:column;gap:14px;margin-bottom:22px;display:flex}.catalog-search-box.large{border-radius:14px;height:54px;padding:0 16px}.catalog-search-box.large input{font-size:16px;font-weight:500}.mode-pills-bar.large button{border-radius:12px;padding:9px 15px;font-size:14px}.mode-pills-bar.large button b{padding:2px 8px;font-size:12px}.routes-big-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.route-big-tile{background:var(--surface-2);border:1.5px solid var(--line);border-radius:18px;align-items:center;padding-right:10px;transition:transform .18s,border-color .18s,box-shadow .18s,background .18s;display:flex}.route-big-tile:hover{background:var(--surface);border-color:var(--route-accent,var(--blue-500))}@supports (color:color-mix(in lab, red, red)){.route-big-tile:hover{border-color:color-mix(in srgb,var(--route-accent,var(--blue-500))65%,var(--line))}}.route-big-tile:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.route-big-tile-main{text-align:left;background:0 0;border:0;flex:1;align-items:center;gap:15px;min-width:0;padding:16px 14px 16px 16px;display:flex}.route-tile-badge{border-radius:13px;min-width:62px;height:50px;font-size:20px}.route-big-tile-copy{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.route-big-tile-copy strong{letter-spacing:-.02em;font-size:16.5px;font-weight:800;line-height:1.25}.route-big-tile-copy small{color:var(--muted);align-items:center;gap:6px;font-size:13px;font-weight:600;display:inline-flex}.route-big-tile-arrow{color:var(--soft);transition:transform .16s,color .16s}.route-big-tile:hover .route-big-tile-arrow{color:var(--blue-600);transform:translate(3px)}.quick-lines-ribbon{background:var(--surface-2);border:1px solid var(--line);border-radius:16px;flex-wrap:wrap;gap:8px;margin-bottom:20px;padding:12px 14px;display:flex}.ribbon-line-pill{background:var(--surface);border:1.5px solid var(--line-strong);min-width:48px;height:38px;font-family:var(--font-code);color:var(--ink);border-radius:10px;padding:0 11px;font-size:15px;font-weight:800;transition:transform .15s,border-color .15s,box-shadow .15s}.ribbon-line-pill:hover{border-color:var(--pill-color,var(--blue-500));transform:translateY(-1px)}.ribbon-line-pill.active{color:#fff;transform:scale(1.06);box-shadow:0 6px 16px #091a3438}.route-loading.enlarged{min-height:360px;font-size:16px;font-weight:600}.line-badge.xl{border-radius:16px;min-width:74px;height:62px;font-size:26px}.route-hero-banner.enlarged{border-radius:22px;padding:24px 28px}.route-hero-banner.enlarged h3{font-size:clamp(22px,2.5vw,30px)}.route-relation-sub{color:var(--muted);margin:6px 0 0!important;font-size:15px!important}.route-relation-sub strong{color:var(--ink)}.direction-selector-section{margin-top:22px}.direction-section-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:12px;display:flex}.direction-section-head h4{margin:0;font-size:18px;font-weight:800}.direction-section-head span{color:var(--muted);font-size:13.5px}.direction-cards-grid{grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:14px;display:grid}.direction-big-card{background:var(--surface-2);border:2px solid var(--line);text-align:left;border-radius:18px;flex-direction:column;align-items:flex-start;gap:8px;padding:18px 22px;transition:border-color .2s,background .2s,box-shadow .2s,transform .2s;display:flex}.direction-big-card:hover{background:var(--surface);border-color:var(--route-accent,var(--blue-500))}@supports (color:color-mix(in lab, red, red)){.direction-big-card:hover{border-color:color-mix(in srgb,var(--route-accent,var(--blue-500))55%,var(--line))}}.direction-big-card.active{background:var(--route-accent,var(--blue-500))}@supports (color:color-mix(in lab, red, red)){.direction-big-card.active{background:color-mix(in srgb,var(--route-accent,var(--blue-500))8%,var(--surface))}}.direction-big-card.active{border-color:var(--route-accent,var(--blue-500));box-shadow:0 0 0 4px var(--route-accent,var(--blue-500)),0 12px 28px #091a341a}@supports (color:color-mix(in lab, red, red)){.direction-big-card.active{box-shadow:0 0 0 4px color-mix(in srgb,var(--route-accent,var(--blue-500))14%,transparent),0 12px 28px #091a341a}}.direction-big-card.active{transform:scale(1.012)}.direction-card-top{justify-content:space-between;align-items:center;gap:8px;width:100%;display:flex}.direction-number-pill{background:var(--surface);border:1px solid var(--line);color:var(--muted);text-transform:uppercase;letter-spacing:.05em;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:800}.direction-active-badge{background:var(--route-accent,var(--blue-600));color:#fff;border-radius:999px;align-items:center;gap:5px;padding:4px 10px;font-size:12px;font-weight:800;display:inline-flex}.direction-card-title{letter-spacing:-.02em;align-items:center;gap:9px;font-size:19px;font-weight:800;line-height:1.25;display:flex}.direction-card-title svg{color:var(--route-accent,var(--blue-600))}.direction-card-stops{color:var(--muted);margin:0;font-size:14px;font-weight:600}.direction-card-meta{color:var(--soft);align-items:center;gap:8px;margin-top:2px;font-size:13px;font-weight:700;display:flex}.line-courses-box{background:radial-gradient(circle at 100% 0%,var(--blue-500),transparent 45%),var(--surface-2);margin-top:22px;padding:22px 24px}@supports (color:color-mix(in lab, red, red)){.line-courses-box{background:radial-gradient(circle at 100% 0%,color-mix(in srgb,var(--blue-500)8%,transparent),transparent 45%),var(--surface-2)}}.line-courses-box{border:1px solid var(--line);border-radius:20px}.line-courses-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;margin-bottom:16px;display:flex}.line-courses-head h4{margin:4px 0 0;font-size:18.5px;font-weight:800}.line-courses-head h4 strong{color:var(--blue-600)}:root[data-theme=dark] .line-courses-head h4 strong{color:#7cc0ff}.line-courses-pills{flex-wrap:wrap;gap:10px;display:flex}.course-time-tile{background:var(--surface);border:1.5px solid var(--line-strong);min-width:78px;font-family:var(--font-code);color:var(--ink);border-radius:13px;flex-direction:column;justify-content:center;align-items:center;padding:10px 15px;font-size:18px;font-weight:800;display:inline-flex;box-shadow:0 2px 6px #091a340a}.course-time-tile.past-course{opacity:.55}.course-time-tile.next-course{background:linear-gradient(135deg,var(--emerald),#047857);border-color:var(--emerald-bright);color:#fff;transform:scale(1.05);box-shadow:0 8px 20px #05966947}.course-time-tile small{font-family:var(--font-ui);text-transform:uppercase;letter-spacing:.05em;margin-top:2px;font-size:10.5px;font-weight:800}.enlarged-beads-section{margin-top:24px}.beads-toolbar.enlarged h4{margin:0 0 3px;font-size:19px;font-weight:800}.beads-toolbar.enlarged span{font-size:14px}.beads-filter-input.large{border-radius:12px;height:44px;padding:0 14px}.beads-filter-input.large input{width:220px;font-size:14.5px}.beads-timeline.enlarged{border-radius:22px;max-height:none;padding:18px 20px}.bead-item.enlarged{grid-template-columns:82px 36px minmax(0,1fr)}.bead-offset-pill{background:var(--surface);border:1px solid var(--line);font-family:var(--font-code);color:var(--ink);border-radius:999px;padding:4px 10px;font-size:13px;font-weight:800}.bead-item.enlarged .bead-dot{border-width:3.5px;width:15px;height:15px}.bead-item.enlarged.is-start .bead-dot,.bead-item.enlarged.is-end .bead-dot,.bead-item.enlarged.is-focused .bead-dot{width:20px;height:20px}.bead-stop-row-card{background:var(--surface);border:1.5px solid var(--line);border-radius:15px;justify-content:space-between;align-items:center;gap:14px;margin:5px 0;padding:12px 16px;transition:border-color .16s,box-shadow .16s,transform .15s;display:flex}.bead-stop-row-card:hover{border-color:var(--route-accent,var(--blue-500))}@supports (color:color-mix(in lab, red, red)){.bead-stop-row-card:hover{border-color:color-mix(in srgb,var(--route-accent,var(--blue-500))55%,var(--line))}}.bead-stop-row-card:hover{box-shadow:var(--shadow-sm)}.bead-item.enlarged.is-focused .bead-stop-row-card{border-color:var(--route-accent,var(--blue-500));background:var(--route-accent,var(--blue-500))}@supports (color:color-mix(in lab, red, red)){.bead-item.enlarged.is-focused .bead-stop-row-card{background:color-mix(in srgb,var(--route-accent,var(--blue-500))6%,var(--surface))}}.bead-stop-focus-btn{text-align:left;background:0 0;border:0;flex:1;align-items:center;gap:12px;min-width:0;padding:0;display:flex}.bead-seq-num{min-width:28px;font-family:var(--font-code);color:var(--soft);font-size:14px;font-weight:800}.bead-item.enlarged .bead-stop-copy strong{letter-spacing:-.015em;font-size:17.5px;font-weight:800}.bead-item.enlarged .bead-stop-tags{margin-top:2px;font-size:12.5px}.focused-stop-tag{background:var(--blue-500);border-radius:6px;padding:2px 8px}@supports (color:color-mix(in lab, red, red)){.focused-stop-tag{background:color-mix(in srgb,var(--blue-500)14%,transparent)}}.focused-stop-tag{color:var(--blue-600);font-size:11.5px;font-weight:800}:root[data-theme=dark] .focused-stop-tag{color:#7cc0ff}.bead-open-board-btn{background:var(--surface-2);border:1px solid var(--line-strong);min-height:38px;color:var(--blue-600);white-space:nowrap;border-radius:10px;align-items:center;gap:7px;padding:0 14px;font-size:13px;font-weight:800;transition:background .16s,border-color .16s,color .16s;display:inline-flex}:root[data-theme=dark] .bead-open-board-btn{color:#7cc0ff}.bead-open-board-btn:hover{background:var(--blue-600);border-color:var(--blue-600);color:#fff}@media (max-width:1100px){.routes-big-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:720px){.routes-big-grid{grid-template-columns:1fr}.map-lock-badge{text-align:center;padding:10px 14px;font-size:12.5px}.bead-item.enlarged{grid-template-columns:62px 26px minmax(0,1fr)}.bead-stop-row-card{flex-direction:column;align-items:stretch;gap:10px}.bead-open-board-btn{justify-content:center}.course-time-tile{min-width:68px;padding:8px 12px;font-size:16.5px}}.city-dashboard{width:min(940px,100%);margin:0 auto;padding:88px clamp(14px,2.5vw,28px) 56px;transition:width .22s}.city-dashboard.is-map-view{width:min(1080px,100%)}.city-dashboard-header.compact{border-radius:18px;gap:16px;margin-bottom:12px;padding:14px 20px}.city-dashboard-header.compact .city-dashboard-crest{border-radius:13px;width:44px;height:44px}.city-title-inline{flex-wrap:wrap;align-items:center;gap:9px;display:flex}.city-dashboard-header.compact h1{font-size:clamp(21px,2.2vw,26px);line-height:1.1}.city-dashboard-header.compact p{margin:2px 0 0;font-size:13px}.city-function-picker.compact{z-index:420;background:var(--surface);border-radius:18px;margin-bottom:16px;padding:8px;position:sticky;top:78px}@supports (color:color-mix(in lab, red, red)){.city-function-picker.compact{background:color-mix(in srgb,var(--surface)92%,transparent)}}.city-function-picker.compact{-webkit-backdrop-filter:blur(16px)saturate(150%);backdrop-filter:blur(16px)saturate(150%);box-shadow:0 8px 26px #091a3412}.function-tile-grid.compact{grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;display:grid}.function-tile.compact{background:var(--surface-2);border:1.5px solid #0000;border-radius:13px;flex-direction:row;align-items:center;gap:11px;min-height:62px;padding:10px 12px}.function-tile.compact:after{display:none}.function-tile.compact:hover{background:var(--surface);border-color:var(--tile-from);transform:translateY(-1px)}@supports (color:color-mix(in lab, red, red)){.function-tile.compact:hover{border-color:color-mix(in srgb,var(--tile-from)45%,var(--line))}}.function-tile.compact:hover{box-shadow:0 6px 16px #091a340f}.function-tile.compact.selected{background:var(--tile-from)}@supports (color:color-mix(in lab, red, red)){.function-tile.compact.selected{background:color-mix(in srgb,var(--tile-from)9%,var(--surface))}}.function-tile.compact.selected{border-color:var(--tile-from);box-shadow:0 6px 18px var(--tile-to)}@supports (color:color-mix(in lab, red, red)){.function-tile.compact.selected{box-shadow:0 6px 18px color-mix(in srgb,var(--tile-to)14%,transparent)}}.function-tile-icon.compact{border-radius:11px;flex:none;width:38px;height:38px;position:relative}.tile-mini-live-dot{border:2px solid var(--surface);background:#10b981;border-radius:50%;width:10px;height:10px;position:absolute;top:-3px;right:-3px;box-shadow:0 0 6px #10b981}.function-tile-copy.compact{gap:1px}.function-tile.compact .function-tile-title{font-size:14.5px;line-height:1.2}.function-tile-sub{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:11.5px;font-weight:600;overflow:hidden}.departure-panel-v2,.map-panel-v2,.routes-panel-v3,.planner-panel-v2,.favorites-panel-v2{border-radius:20px;padding:clamp(18px,2.2vw,24px)}.module-topbar{margin-bottom:16px;padding-bottom:14px}.module-topbar-title h2{font-size:clamp(20px,2vw,24px)}.hub-cards-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.station-hero-banner{padding:18px 20px}.departure-row-card{grid-template-columns:62px minmax(0,1fr) auto 32px;gap:14px;min-height:82px;padding:13px 16px}.routes-big-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.route-big-tile-main{gap:13px;padding:13px 12px 13px 14px}.route-tile-badge{min-width:56px;height:46px;font-size:18.5px}.route-hero-banner.enlarged{padding:20px 22px}.line-badge.xl{min-width:64px;height:54px;font-size:22px}.map-workspace-v2{grid-template-columns:minmax(0,1fr) 310px;gap:14px;height:580px}.compact-planner{max-width:760px;margin:0 auto}.planner-compact-form{background:var(--surface-2);border:1px solid var(--line);border-radius:18px;flex-direction:column;gap:12px;padding:18px;display:flex}.planner-compact-bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.planner-datetime-inline{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.planner-datetime-inline input{border:1px solid var(--line-strong);background:var(--surface);border-radius:10px;height:40px;padding:0 11px;font-size:13.5px;font-weight:600}.planner-options-toggle{background:var(--surface);border:1px solid var(--line-strong);min-height:40px;color:var(--ink);border-radius:10px;align-items:center;gap:7px;padding:0 13px;font-size:13px;font-weight:700;display:inline-flex}.planner-options-toggle svg:last-child{transition:transform .2s}.planner-options-toggle.open svg:last-child{transform:rotate(180deg)}.planner-collapsible-options{overflow:hidden}.planner-options-grid{background:var(--surface);border:1px solid var(--line);border-radius:14px;grid-template-columns:1fr 1.3fr;gap:14px;padding:14px;display:grid}.planner-Section-block.full-span{grid-column:1/-1}.planner-results-stack{margin-top:20px}.planner-empty-compact{background:var(--surface-2);border:1px dashed var(--line-strong);text-align:center;color:var(--muted);border-radius:16px;flex-direction:column;align-items:center;gap:8px;padding:28px 20px;display:flex}.planner-empty-compact strong{color:var(--ink);font-size:16px}.planner-empty-compact p{margin:0;font-size:14px}.fav-routes-cards-grid,.recent-stops-grid{grid-template-columns:repeat(2,minmax(0,1fr))}@media (max-width:900px){.city-function-picker.compact{position:static}.function-tile-grid.compact{grid-template-columns:repeat(3,minmax(0,1fr))}.map-workspace-v2{grid-template-columns:1fr;height:auto}}@media (max-width:680px){.function-tile-grid.compact{grid-template-columns:repeat(2,minmax(0,1fr))}.function-tile.compact:last-child{grid-column:1/-1}.routes-big-grid,.hub-cards-grid,.planner-options-grid,.fav-routes-cards-grid,.recent-stops-grid{grid-template-columns:1fr}.departure-row-card{grid-template-columns:54px minmax(0,1fr) auto}}:root{--navy-950:#051124;--navy-900:#081b38;--navy-800:#0f2952;--blue-700:#0d52c7;--blue-600:#1868e3;--blue-500:#2584ff;--blue-400:#56a3ff;--cyan:#38bdf8;--emerald:#059669;--emerald-bright:#10b981;--ink:#091a34;--muted:#52637a;--soft:#75869e;--page:#eff4fb;--surface:#fff;--surface-2:#f6f9fd;--surface-3:#eaf0f8;--line:#dbe4f0;--line-strong:#c5d3e6;--success:#059669;--success-bg:#e6f9f1;--danger:#dc2626;--danger-bg:#fef2f2;--warning:#b45309;--shadow-sm:0 2px 10px #091a340d,0 1px 2px #091a340a;--shadow-md:0 16px 44px #091a3417,0 4px 12px #091a340a;--shadow-lg:0 32px 84px #040f2338;--font-ui:var(--font-sans),"Plus Jakarta Sans",Inter,system-ui,-apple-system,sans-serif;--font-code:var(--font-mono),"JetBrains Mono",ui-monospace,SFMono-Regular,monospace;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--ink:#f0f6ff;--muted:#9eb0c9;--soft:#7b90ad;--page:#06101f;--surface:#0c1b31;--surface-2:#11233d;--surface-3:#172d4d;--line:#1e3557;--line-strong:#2c4973;--success:#34d399;--success-bg:#10b98126;--danger:#f87171;--danger-bg:#ef444426;--warning:#fbbf24;--shadow-sm:0 4px 16px #00000040;--shadow-md:0 20px 56px #00000061;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:88px}body{background:var(--page);color:var(--ink);font-family:var(--font-ui);-webkit-font-smoothing:antialiased;margin:0;font-size:15px;line-height:1.5}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{color:inherit}a{color:inherit;text-decoration:none}button:not(:disabled),select:not(:disabled){cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}input,select{color:var(--ink)}::selection{color:#051124;background:#60a5fa}:focus-visible{outline-offset:2px;outline:3px solid #2584ff73}h1,h2,h3,p{margin-top:0}svg{flex-shrink:0}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.eyebrow{color:var(--blue-600);letter-spacing:.12em;text-transform:uppercase;font-size:12px;font-weight:800;line-height:1.3;display:inline-block}:root[data-theme=dark] .eyebrow{color:var(--cyan)}.badge-live-mini,.badge-plan-mini{letter-spacing:.04em;white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:3px 9px;font-size:11px;font-weight:800;line-height:1.2;display:inline-flex}.badge-live-mini{color:var(--success);background:var(--success-bg);border:1px solid var(--success)}@supports (color:color-mix(in lab, red, red)){.badge-live-mini{border:1px solid color-mix(in srgb,var(--success)28%,transparent)}}.badge-live-mini i{background:currentColor;border-radius:50%;width:6px;height:6px;animation:1.6s ease-in-out infinite pulse;box-shadow:0 0 8px}.badge-plan-mini{color:var(--muted);background:var(--surface-3);border:1px solid var(--line)}.badge-live-pill,.badge-plan-pill{border-radius:999px;align-items:center;gap:7px;padding:6px 12px;font-size:12.5px;font-weight:700;display:inline-flex}.badge-live-pill{color:var(--success);background:var(--success-bg);border:1px solid var(--success)}@supports (color:color-mix(in lab, red, red)){.badge-live-pill{border:1px solid color-mix(in srgb,var(--success)30%,transparent)}}.badge-plan-pill{color:var(--muted);background:var(--surface-3);border:1px solid var(--line)}.app-header{z-index:1000;height:74px;color:var(--ink);background:var(--surface);align-items:center;gap:20px;padding:0 clamp(16px,3.8vw,56px);display:flex;position:fixed;inset:0 0 auto}@supports (color:color-mix(in lab, red, red)){.app-header{background:color-mix(in srgb,var(--surface)88%,transparent)}}.app-header{border-bottom:1px solid var(--line)}@supports (color:color-mix(in lab, red, red)){.app-header{border-bottom:1px solid color-mix(in srgb,var(--line)85%,transparent)}}.app-header{-webkit-backdrop-filter:blur(20px)saturate(160%);backdrop-filter:blur(20px)saturate(160%)}.home-page .app-header{color:#fff;background:#051124c2;border-color:#ffffff1a}.brand-link{display:inline-flex}.brand{align-items:center;gap:11px;display:inline-flex}.brand-mark{place-items:center;width:38px;height:38px;display:grid}.brand-mark svg{filter:drop-shadow(0 4px 12px #1868e347);width:100%;height:100%}.brand-type{flex-direction:column;line-height:1.05;display:flex}.brand-type strong{letter-spacing:-.04em;font-size:19px;font-weight:800}.brand-type small{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;margin-top:3px;font-size:10.5px;font-weight:700}.home-page .brand-type small{color:#ffffffa6}.header-context{flex:1;justify-content:center;display:flex}.header-quick-links{align-items:center;gap:8px;display:flex}.cities-link{color:inherit;border-radius:999px;align-items:center;gap:6px;padding:7px 13px;font-size:13.5px;font-weight:700;transition:background .2s;display:inline-flex}.cities-link:hover{background:#ffffff1a}.live-pill-link{color:#6ee7b7;background:#10b98124;border:1px solid #34d39947}.live-pill-link:hover{background:#10b9813d}.city-switch-button{background:var(--surface-2);border:1px solid var(--line-strong);box-shadow:var(--shadow-sm);border-radius:14px;align-items:center;gap:12px;padding:7px 14px 7px 16px;transition:border-color .2s,transform .15s;display:flex}.city-switch-button:hover{border-color:var(--blue-500);transform:translateY(-1px)}.city-switch-meta{flex-direction:column;align-items:flex-start;line-height:1.15;display:flex}.city-switch-meta small{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:10.5px;font-weight:700}.city-switch-meta strong{align-items:center;gap:6px;font-size:15px;font-weight:800;display:inline-flex}.header-live-dot{background:var(--emerald-bright);width:8px;height:8px;box-shadow:0 0 8px var(--emerald-bright);border-radius:50%}.operator-tag{color:var(--blue-600);background:var(--blue-500);padding:4px 10px}@supports (color:color-mix(in lab, red, red)){.operator-tag{background:color-mix(in srgb,var(--blue-500)12%,transparent)}}.operator-tag{border-radius:8px;font-size:12px;font-weight:700}:root[data-theme=dark] .operator-tag{color:#7cc0ff}.header-actions{align-items:center;gap:8px;display:flex}.header-action{min-height:40px;color:inherit;border:1px solid var(--line);background:0 0;border-radius:12px;justify-content:center;align-items:center;gap:7px;padding:0 14px;font-size:13px;font-weight:700;transition:background .2s,border-color .2s,transform .15s;display:inline-flex}.home-page .header-action{background:#ffffff0a;border-color:#ffffff2e}.header-action:hover{background:var(--blue-500)}@supports (color:color-mix(in lab, red, red)){.header-action:hover{background:color-mix(in srgb,var(--blue-500)12%,transparent)}}.header-action:hover{border-color:var(--blue-400);transform:translateY(-1px)}.header-action.icon-only{width:40px;padding:0}.icon-button{width:42px;height:42px;color:var(--muted);background:var(--surface-2);border:1px solid var(--line);border-radius:12px;flex:none;place-items:center;padding:0;transition:color .2s,background .2s,border-color .2s,transform .15s;display:inline-grid}.icon-button:hover{color:var(--blue-600);background:var(--surface-3);border-color:var(--line-strong);transform:translateY(-1px)}.icon-button.compact{background:0 0;border:0;width:32px;height:32px}.primary-button,.secondary-button{border:1px solid #0000;border-radius:12px;justify-content:center;align-items:center;gap:8px;min-height:44px;padding:0 18px;font-size:13.5px;font-weight:700;transition:transform .18s,box-shadow .18s,background .18s,border-color .18s;display:inline-flex}.primary-button{color:#fff;background:linear-gradient(135deg,var(--blue-500),var(--blue-700));box-shadow:0 8px 22px #1868e342}.primary-button:hover{transform:translateY(-1px);box-shadow:0 12px 28px #1868e357}.secondary-button{color:var(--ink);background:var(--surface);border-color:var(--line-strong)}.secondary-button:hover{border-color:var(--blue-500);color:var(--blue-600);background:var(--surface-2)}.text-button{color:var(--blue-600);background:0 0;border:0;padding:0;font-size:13.5px;font-weight:700}.text-button:hover{text-decoration:underline}.count-pill{color:var(--muted);background:var(--surface-2);border:1px solid var(--line);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:6px 12px;font-size:12.5px;font-weight:700;display:inline-flex}.button-pill{cursor:pointer}.button-pill:hover{border-color:var(--blue-400);color:var(--ink)}.spin{animation:1s linear infinite spin}.pulse{animation:1.4s ease-in-out infinite pulse}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}.loader-ring{border:3px solid var(--blue-500);width:30px;height:30px;display:inline-block}@supports (color:color-mix(in lab, red, red)){.loader-ring{border:3px solid color-mix(in srgb,var(--blue-500)22%,transparent)}}.loader-ring{border-top-color:var(--blue-500);border-radius:50%;animation:.8s linear infinite spin}.loader-ring.large{border-width:4px;width:46px;height:46px}.modal-backdrop{z-index:2000;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#040e1eb8;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.city-modal{background:var(--surface);border:1px solid var(--line);width:min(820px,100%);max-height:min(820px,90vh);box-shadow:var(--shadow-lg);border-radius:26px;padding:28px;overflow:auto}.modal-heading{justify-content:space-between;align-items:flex-start;margin-bottom:18px;display:flex}.modal-heading h2{letter-spacing:-.03em;margin:5px 0 0;font-size:26px;font-weight:800}.modal-search{margin-bottom:16px}.modal-loader{grid-column:1/-1;place-items:center;padding:30px;display:grid}.city-modal-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.city-modal-grid>a{background:var(--surface-2);border:1px solid var(--line);border-radius:16px;align-items:center;gap:14px;padding:16px;transition:border-color .2s,transform .2s,box-shadow .2s;display:flex}.city-modal-grid>a:hover,.city-modal-grid>a.current{border-color:var(--blue-500);background:var(--surface);box-shadow:var(--shadow-sm);transform:translateY(-2px)}.city-modal-icon{width:44px;height:44px;color:var(--blue-600);background:var(--blue-500);place-items:center;display:grid}@supports (color:color-mix(in lab, red, red)){.city-modal-icon{background:color-mix(in srgb,var(--blue-500)12%,transparent)}}.city-modal-icon{border-radius:12px}.city-modal-copy{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.city-modal-title-row{justify-content:space-between;align-items:center;gap:8px;display:flex}.city-modal-copy strong{font-size:16px;font-weight:800}.city-modal-copy small{color:var(--muted);font-size:12.5px}.city-modal-copy em{color:var(--soft);font-size:12px;font-style:normal;font-family:var(--font-code)}.city-modal-grid>a>svg{color:var(--blue-600)}.modal-footnote{color:var(--muted);margin:20px 0 0;font-size:13px;line-height:1.6}.toast-notice{z-index:3000;color:#fff;width:max-content;max-width:min(580px,100vw - 32px);box-shadow:var(--shadow-lg);background:#0b2548;border:1px solid #7dd3fc40;border-radius:16px;align-items:center;gap:12px;padding:14px 18px;font-size:13.5px;line-height:1.45;display:flex;position:fixed;bottom:26px;left:50%;transform:translate(-50%)}.toast-notice button{color:#fff;background:0 0;border:0;margin-left:auto;padding:2px 6px;font-size:18px}.home-page{background:var(--surface)}.home-hero{color:#fff;background:radial-gradient(circle at 78% 22%,#2584ff47 0,#0000 44%),radial-gradient(circle at 16% 82%,#10b98124 0,#0000 42%),linear-gradient(160deg,#040d1d 0%,#071936 55%,#0a2349 100%);grid-template-columns:minmax(0,1.08fr) minmax(380px,.92fr);align-items:center;gap:clamp(32px,5vw,80px);min-height:100svh;padding:124px clamp(20px,5vw,88px) 84px;display:grid;position:relative;overflow:hidden}.home-hero:before{content:"";opacity:.14;background-image:linear-gradient(#ffffff17 1px,#0000 1px),linear-gradient(90deg,#ffffff17 1px,#0000 1px);background-size:64px 64px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(circle,#000 35%,#0000 85%);mask-image:radial-gradient(circle,#000 35%,#0000 85%)}.hero-ambient i{pointer-events:none;border:1px solid #56a3ff24;border-radius:50%;position:absolute}.hero-ambient i:first-child{width:680px;height:680px;top:-240px;right:-180px}.hero-ambient i:nth-child(2){width:440px;height:440px;bottom:-160px;left:-180px}.hero-ambient i:nth-child(3){background:var(--cyan);width:10px;height:10px;box-shadow:0 0 28px var(--cyan);border:0;animation:3s infinite pulse;top:18%;left:48%}.hero-copy{z-index:2;max-width:680px;position:relative}.hero-kicker{color:#ffffffb8;letter-spacing:.06em;text-transform:uppercase;flex-wrap:wrap;align-items:center;gap:14px;margin-bottom:24px;font-size:12.5px;font-weight:700;display:flex}.hero-kicker-pill{color:#a7f3d0;background:#10b98129;border:1px solid #34d39959;border-radius:999px;align-items:center;gap:8px;padding:6px 13px;display:inline-flex}.hero-kicker-pill i{background:#34d399;border-radius:50%;width:7px;height:7px;box-shadow:0 0 10px #34d399}.hero-copy h1{letter-spacing:-.055em;margin:0;font-size:clamp(46px,5.8vw,88px);font-weight:800;line-height:.98}.headline-mask{padding:0 .04em .08em 0;display:block;overflow:hidden}.headline-mask>span{display:block}.headline-mask.accent{color:#0000;background:linear-gradient(90deg,#60a5fa,#38bdf8,#6ee7b7);-webkit-background-clip:text}.hero-copy>p{color:#e2eeffd1;max-width:590px;margin:22px 0 0;font-size:clamp(16px,1.25vw,18.5px);line-height:1.65}.hero-actions{flex-wrap:wrap;align-items:center;gap:14px;margin-top:32px;display:flex}.hero-primary,.hero-secondary{border-radius:15px;align-items:center;gap:14px;min-height:54px;padding:0 24px;font-size:15px;font-weight:800;transition:transform .2s,box-shadow .2s,background .2s;display:inline-flex}.hero-primary{color:#05142b;background:#fff;box-shadow:0 16px 38px #00000047}.hero-primary:hover{background:#e0f2fe;transform:translateY(-2px)}.hero-secondary{color:#fff;background:#ffffff0f;border:1px solid #ffffff38}.hero-secondary:hover{background:#ffffff1f;transform:translateY(-2px)}.hero-quick-cities{flex-wrap:wrap;align-items:center;gap:10px;margin-top:26px;display:flex}.quick-cities-label{color:#ffffff9e;font-size:13px;font-weight:600}.quick-cities-Row{flex-wrap:wrap;gap:8px;display:flex}.quick-city-chip{color:#e0f2fe;background:#0f2952c7;border:1px solid #7dd3fc3d;border-radius:999px;align-items:center;gap:7px;padding:6px 13px;font-size:13px;font-weight:700;transition:background .2s,border-color .2s,transform .15s;display:inline-flex}.quick-city-chip:hover{background:#2584ff59;border-color:#38bdf8;transform:translateY(-1px)}.quick-city-chip i{background:#34d399;border-radius:50%;width:6px;height:6px;box-shadow:0 0 8px #34d399}.hero-proof{color:#ffffffa3;flex-wrap:wrap;gap:20px;margin-top:28px;font-size:13px;font-weight:600;display:flex}.hero-proof span{align-items:center;gap:7px;display:inline-flex}.hero-visual{z-index:2;position:relative}.hero-map-card{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:linear-gradient(155deg,#102c54e0,#07162ef0);border:1px solid #7dd3fc3d;border-radius:28px;padding:20px;position:relative;overflow:hidden;box-shadow:0 40px 100px #0000006b,inset 0 1px #ffffff1a}.map-card-top{color:#ffffffd1;text-transform:uppercase;letter-spacing:.08em;justify-content:space-between;align-items:center;padding:0 4px 14px;font-size:12px;font-weight:700;display:flex}.map-card-top>span:first-child{align-items:center;gap:8px;display:inline-flex}.live-pill-hero{color:#6ee7b7;background:#10b9812e;border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:11px;font-weight:800;display:inline-flex}.live-pill-hero i{background:currentColor;border-radius:50%;width:6px;height:6px;animation:1.6s infinite pulse;box-shadow:0 0 8px}.network-map{aspect-ratio:1.08;background:radial-gradient(circle,#2584ff24,#05112480 72%);border:1px solid #ffffff14;border-radius:20px;position:relative;overflow:hidden}.poland-outline{width:92%;height:92%;position:absolute;inset:4%;overflow:visible}.radar-ring{fill:none;stroke:#7dd3fc1a;stroke-width:.35px;stroke-dasharray:1.5 1.5}.poland-border{fill:#2584ff17;stroke:#7dd3fc57;stroke-width:.6px;stroke-linejoin:round}.network-route{fill:none;stroke:#38bdf852;stroke-width:.5px;stroke-dasharray:2 2;animation:14s linear infinite dash}.network-route.route-b{stroke:#34d39947;animation-direction:reverse}@keyframes dash{to{stroke-dashoffset:-32px}}.map-city-anchor{z-index:3;position:absolute;transform:translate(-50%,-50%)}.map-city-point{background:#06142ad9;border:1px solid #94a3b847;border-radius:999px;align-items:center;gap:6px;padding:4px 9px 4px 7px;transition:transform .18s,border-color .18s,background .18s;display:inline-flex}.map-city-point:hover{background:#0f2d5cf2;border-color:#38bdf8;transform:scale(1.08)}.map-city-point i{background:#94a3b8;border-radius:50%;width:8px;height:8px}.map-city-point.live i{background:#34d399;box-shadow:0 0 10px #34d399}.map-city-point span{color:#f8fafc;white-space:nowrap;font-size:11.5px;font-weight:700}.map-scan-line{pointer-events:none;background:linear-gradient(90deg,#0000,#38bdf88c,#0000);height:1px;animation:7s ease-in-out infinite scan;position:absolute;inset:0 0 auto;box-shadow:0 0 16px #38bdf8}@keyframes scan{0%,to{opacity:0;top:8%}20%,80%{opacity:1}50%{top:90%}}.map-card-bottom{grid-template-columns:repeat(3,1fr);gap:12px;padding:16px 4px 2px;display:grid}.map-card-bottom div{border-left:2px solid #38bdf840;flex-direction:column;gap:3px;padding-left:12px;display:flex}.map-card-bottom span{color:#fff9;font-size:11.5px;font-weight:600}.map-card-bottom strong{font-size:22px;font-weight:800;font-family:var(--font-code);letter-spacing:-.03em}.floating-live-preview{color:var(--ink);background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-lg);border-radius:18px;align-items:center;gap:13px;margin-top:14px;padding:14px 18px;transition:transform .2s,border-color .2s;display:flex}.floating-live-preview:hover{border-color:var(--blue-400);transform:translateY(-2px)}.preview-line-badge{color:#fff;background:#c10009;border-radius:10px;place-items:center;min-width:44px;height:36px;font-size:15px;font-weight:800;display:grid}.preview-copy{flex-direction:column;flex:1;gap:2px;display:flex}.preview-copy strong{font-size:14px;font-weight:800}.preview-copy span{color:var(--muted);font-size:12.5px}.cities-section,.sources-section{background:var(--page);padding:104px clamp(20px,5.5vw,92px)}.section-heading{grid-template-columns:1fr minmax(300px,.65fr);align-items:end;gap:40px;max-width:1380px;margin:0 auto 40px;display:grid}.section-heading h2,.section-copy h2{letter-spacing:-.045em;margin:8px 0 0;font-size:clamp(34px,3.8vw,56px);font-weight:800;line-height:1.06}.section-heading>p,.section-copy>p{color:var(--muted);margin:0;font-size:15.5px;line-height:1.7}.city-toolbar{flex-wrap:wrap;align-items:center;gap:12px;max-width:1380px;margin:0 auto 24px;display:flex}.city-catalog-search{background:var(--surface);border:1px solid var(--line-strong);min-width:280px;box-shadow:var(--shadow-sm);border-radius:14px;flex:1;align-items:center;gap:12px;padding:0 18px;display:flex}.city-catalog-search svg{color:var(--muted)}.city-catalog-search input{background:0 0;border:0;outline:0;flex:1;height:50px;font-size:14.5px}.city-catalog-search span{color:var(--soft);white-space:nowrap;font-size:12.5px;font-weight:600}.city-filter-pills{gap:8px;display:flex}.city-filter-pills button{background:var(--surface);border:1px solid var(--line-strong);min-height:50px;color:var(--muted);border-radius:14px;align-items:center;gap:7px;padding:0 16px;font-size:13.5px;font-weight:700;transition:all .2s;display:inline-flex}.city-filter-pills button.active{background:var(--navy-900);color:#fff;border-color:var(--navy-900)}.city-filter-pills button.active.live{background:var(--emerald);border-color:var(--emerald);color:#fff}.city-card-grid{grid-template-columns:repeat(4,1fr);gap:18px;max-width:1380px;margin:auto;display:grid}.city-card{background:var(--surface);border:1px solid var(--line);height:100%;min-height:270px;box-shadow:var(--shadow-sm);border-radius:22px;flex-direction:column;padding:22px;transition:transform .25s,box-shadow .25s,border-color .25s;display:flex;position:relative}.city-card:hover{border-color:var(--blue-400);box-shadow:var(--shadow-md);transform:translateY(-5px)}.city-card.has-live:hover{border-color:var(--emerald-bright)}.city-card-top{justify-content:space-between;align-items:center;gap:8px;display:flex}.city-data-status{color:var(--muted);align-items:center;gap:6px;font-size:12px;font-weight:700;display:inline-flex}.city-data-status i{background:#94a3b8;border-radius:50%;width:7px;height:7px}.city-data-status.ready{color:var(--success)}.city-data-status.ready i{background:var(--success)}.city-card-header{align-items:center;gap:14px;margin-top:22px;display:flex}.city-card-icon{width:48px;height:48px;color:var(--blue-600);background:var(--blue-500);place-items:center;display:grid}@supports (color:color-mix(in lab, red, red)){.city-card-icon{background:color-mix(in srgb,var(--blue-500)11%,transparent)}}.city-card-icon{border-radius:14px}.city-card h3{letter-spacing:-.035em;margin:0 0 3px;font-size:24px;font-weight:800}.city-card-header p{color:var(--muted);margin:0;font-size:13px}.city-card-stats{grid-template-columns:1fr 1fr;gap:10px;margin-top:auto;padding:18px 0;display:grid}.city-card-stats>div{background:var(--surface-2);border-radius:12px;flex-direction:column;gap:2px;padding:10px 12px;display:flex}.city-card-stats span{color:var(--muted);font-size:11.5px;font-weight:600}.city-card-stats strong{color:var(--ink);font-size:16px;font-weight:800;font-family:var(--font-code)}.city-card-link{color:var(--blue-600);border-top:1px solid var(--line);justify-content:space-between;align-items:center;padding-top:14px;font-size:13.5px;font-weight:800;display:flex}:root[data-theme=dark] .city-card-link{color:#60a5fa}.passenger-features{background:var(--surface);grid-template-columns:.85fr 1.15fr;gap:clamp(44px,7vw,110px);max-width:1480px;margin:0 auto;padding:110px clamp(20px,5.5vw,92px);display:grid}.section-copy{align-self:start}.section-copy>p{max-width:500px;margin-top:20px}.section-copy.centered{text-align:center;max-width:760px;margin:auto}.section-copy.centered>p{margin-inline:auto}.feature-list{border-top:1px solid var(--line)}.feature-list article{border-bottom:1px solid var(--line);grid-template-columns:32px 46px 1fr;align-items:start;gap:16px;padding:26px 0;display:grid}.feature-num{color:var(--soft);font-family:var(--font-code);padding-top:4px;font-size:12.5px;font-weight:700}.feature-icon-box{background:var(--blue-500);border-radius:12px;place-items:center;width:44px;height:44px;display:grid}@supports (color:color-mix(in lab, red, red)){.feature-icon-box{background:color-mix(in srgb,var(--blue-500)11%,transparent)}}.feature-icon-box{color:var(--blue-600)}.feature-list h3{letter-spacing:-.02em;margin:0 0 6px;font-size:18px;font-weight:800}.feature-list p{color:var(--muted);margin:0;font-size:14.5px;line-height:1.65}.pipeline-section{color:#fff;background:radial-gradient(circle at 50% 60%,#103766,transparent 50%),var(--navy-950);padding:104px 24px;overflow:hidden}.pipeline-section .eyebrow{color:#7dd3fc}.pipeline-section .section-copy>p{color:#ffffffb8}.pipeline-scene{max-width:1020px;height:500px;margin:36px auto 0;position:relative}.pipeline-core{z-index:3;background:linear-gradient(145deg,#103362,#081e3f);border:1px solid #7dd3fc61;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;gap:8px;width:210px;height:210px;display:flex;position:absolute;top:48%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 80px #2584ff4d}.pipeline-core>svg{color:#7dd3fc}.pipeline-core strong{font-size:19px;font-weight:800}.pipeline-core small{color:#ffffffa6;font-size:12px}.core-rings i{border:1px solid #7dd3fc24;border-radius:50%;position:absolute;inset:-24px}.core-rings i:nth-child(2){inset:-52px}.core-rings i:nth-child(3){inset:-84px}.pipeline-inputs{position:absolute;inset:0}.pipeline-file{color:#e0f2fe;font-family:var(--font-code);background:#0f2d56db;border:1px solid #7dd3fc40;border-radius:12px;align-items:center;gap:9px;padding:12px 16px;font-size:13px;display:flex;position:absolute}.pipeline-file:first-child{top:15%;left:18%}.pipeline-file:nth-child(2){top:15%;right:18%}.pipeline-file:nth-child(3){bottom:20%;left:18%}.pipeline-file:nth-child(4){bottom:20%;right:18%}.pipeline-outputs{flex-wrap:wrap;justify-content:center;gap:10px;display:flex;position:absolute;bottom:0;left:50%;transform:translate(-50%)}.pipeline-outputs span{color:#e0f2fe;white-space:nowrap;background:#1868e347;border:1px solid #7dd3fc42;border-radius:999px;align-items:center;gap:8px;padding:10px 16px;font-size:13px;font-weight:700;display:inline-flex}.sources-section{background:var(--surface)}.source-accordion{border-top:1px solid var(--line);max-width:1380px;margin:auto}.source-accordion>article{border-bottom:1px solid var(--line)}.source-accordion>article>button{text-align:left;background:0 0;border:0;grid-template-columns:1.1fr 1fr auto 28px;align-items:center;gap:20px;width:100%;padding:20px 8px;display:grid}.source-city-name{align-items:baseline;gap:12px;display:flex}.source-city-name strong{letter-spacing:-.02em;font-size:19px;font-weight:800}.source-city-name small,.source-type{color:var(--muted);font-size:13.5px}.source-accordion article>button>svg{transition:transform .25s}.source-accordion article.open>button>svg{transform:rotate(180deg)}.source-details{overflow:hidden}.source-details>div{grid-template-columns:1fr 1fr;gap:10px;padding:0 0 16px;display:grid}.source-details a{background:var(--surface-2);border:1px solid var(--line);border-radius:12px;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex}.source-details a span{flex-direction:column;gap:4px;display:flex}.source-details a strong{font-size:14px;font-weight:700}.source-details a small{color:var(--muted);font-size:12.5px;line-height:1.45}.source-details>a{width:max-content;color:var(--blue-600);background:0 0;border:0;margin:0 0 22px auto;padding:0;font-size:14px;font-weight:800}.faq-section{background:var(--page);grid-template-columns:.75fr 1.25fr;gap:72px;padding:104px clamp(20px,6vw,110px);display:grid}.faq-list{border-top:1px solid var(--line-strong)}.faq-list article{border-bottom:1px solid var(--line-strong)}.faq-list button{text-align:left;background:0 0;border:0;grid-template-columns:36px 1fr 24px;align-items:center;gap:14px;width:100%;padding:22px 0;display:grid}.faq-list button>span{color:var(--soft);font-family:var(--font-code);font-size:12.5px;font-weight:700}.faq-list button strong{font-size:16.5px;font-weight:700}.faq-list button svg{transition:transform .2s}.faq-list article.open button svg{transform:rotate(180deg)}.faq-list article>p{color:var(--muted);margin:0;padding:0 28px 24px 50px;font-size:14.5px;line-height:1.75;overflow:hidden}.home-cta{color:#fff;text-align:center;background:linear-gradient(135deg,#082046,#0d52c7 58%,#0284c7);padding:110px 24px;position:relative;overflow:hidden}.home-cta>:not(.cta-orbit){z-index:2;position:relative}.home-cta .eyebrow{color:#bae6fd;margin-top:14px}.home-cta h2{letter-spacing:-.05em;margin:12px 0 16px;font-size:clamp(40px,5.5vw,72px);font-weight:800;line-height:1.02}.home-cta p{color:#ffffffd1;max-width:520px;margin:0 auto 30px;font-size:16px;line-height:1.65}.cta-buttons{flex-wrap:wrap;justify-content:center;gap:14px;display:flex}.cta-primary,.cta-secondary{border-radius:14px;align-items:center;gap:12px;padding:16px 24px;font-size:15px;font-weight:800;transition:transform .2s;display:inline-flex}.cta-primary{color:#061836;background:#fff;box-shadow:0 14px 32px #00000038}.cta-secondary{color:#fff;background:#ffffff1f;border:1px solid #ffffff42}.cta-primary:hover,.cta-secondary:hover{transform:translateY(-2px)}.cta-orbit i{border:1px solid #ffffff1a;border-radius:50%;width:540px;height:540px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.cta-orbit i:nth-child(2){width:780px;height:780px}.cta-orbit i:nth-child(3){width:1020px;height:1020px}.home-footer{color:#fff;background:var(--navy-950);grid-template-columns:auto 1fr auto;align-items:center;gap:28px;padding:40px clamp(20px,5vw,80px);display:grid}.home-footer>p{color:#ffffffa6;margin:0;font-size:13.5px}.home-footer>div{color:#ffffffd1;gap:20px;font-size:13.5px;font-weight:600;display:flex}.home-footer>small{color:#ffffff7a;grid-column:1/-1;font-size:12px}.home-footer .brand-type small{color:#ffffff8c}.city-app{min-height:100vh}.city-shell{grid-template-columns:302px minmax(0,1fr);align-items:start;gap:22px;max-width:1560px;margin:auto;padding:90px clamp(14px,2.6vw,36px) 44px;display:grid}.city-rail{background:var(--surface);border:1px solid var(--line);max-height:calc(100vh - 108px);box-shadow:var(--shadow-sm);scrollbar-width:thin;border-radius:26px;flex-direction:column;gap:16px;padding:20px 18px;display:flex;position:sticky;top:86px;overflow-y:auto}.city-rail-head{align-items:flex-start;gap:12px;display:flex}.rail-city-crest{background:linear-gradient(140deg,var(--blue-500),var(--blue-700));color:#fff;letter-spacing:-.02em;border-radius:15px;flex:none;place-items:center;width:46px;height:46px;font-size:21px;font-weight:800;display:grid;box-shadow:0 8px 20px #1868e34d,inset 0 1px #ffffff40}.rail-city-copy{min-width:0}.rail-eyebrow{color:var(--blue-600);letter-spacing:.12em;text-transform:uppercase;font-size:10.5px;font-weight:800;display:block}:root[data-theme=dark] .rail-eyebrow{color:var(--cyan)}.rail-city-copy h2{letter-spacing:-.035em;margin:3px 0;font-size:22px;font-weight:800;line-height:1.1}.rail-city-copy p{color:var(--muted);margin:0;font-size:12.5px;line-height:1.4}.rail-change-city{width:100%;min-height:42px;color:var(--blue-600);background:var(--blue-500);align-items:center;gap:10px;padding:0 13px;display:flex}@supports (color:color-mix(in lab, red, red)){.rail-change-city{background:color-mix(in srgb,var(--blue-500)9%,transparent)}}.rail-change-city{border:1px solid var(--blue-500)}@supports (color:color-mix(in lab, red, red)){.rail-change-city{border:1px solid color-mix(in srgb,var(--blue-500)24%,transparent)}}.rail-change-city{border-radius:13px;font-size:13px;font-weight:700;transition:background .2s,transform .15s,border-color .2s}.rail-change-city:hover{background:var(--blue-500)}@supports (color:color-mix(in lab, red, red)){.rail-change-city:hover{background:color-mix(in srgb,var(--blue-500)16%,transparent)}}.rail-change-city:hover{border-color:var(--blue-400);transform:translateY(-1px)}.rail-change-city span{text-align:left;flex:1}:root[data-theme=dark] .rail-change-city{color:#7cc0ff}.rail-functions{flex-direction:column;gap:7px;display:flex}.rail-section-label{color:var(--soft);letter-spacing:.13em;text-transform:uppercase;margin-bottom:2px;font-size:10.5px;font-weight:800}.rail-function{text-align:left;background:var(--surface-2);border:1px solid #0000;border-radius:16px;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:12px;width:100%;padding:10px 12px;transition:background .2s,border-color .2s,transform .15s,box-shadow .2s;display:grid;position:relative}.rail-function:hover{background:var(--surface-3);transform:translate(2px)}.rail-function.active{background:var(--surface);border-color:var(--fn-from)}@supports (color:color-mix(in lab, red, red)){.rail-function.active{border-color:color-mix(in srgb,var(--fn-from)45%,var(--line))}}.rail-function.active{box-shadow:0 8px 22px var(--fn-to)}@supports (color:color-mix(in lab, red, red)){.rail-function.active{box-shadow:0 8px 22px color-mix(in srgb,var(--fn-to)16%,transparent)}}.rail-function.active:before{content:"";background:linear-gradient(180deg,var(--fn-from),var(--fn-to));border-radius:0 3px 3px 0;width:3px;height:30px;position:absolute;top:50%;left:-1px;transform:translateY(-50%)}.rail-function-icon{color:#fff;background:linear-gradient(140deg,var(--fn-from),var(--fn-to));width:44px;height:44px;box-shadow:0 6px 14px var(--fn-to),inset 0 1px 0 #ffffff38;border-radius:14px;place-items:center;display:grid;position:relative}@supports (color:color-mix(in lab, red, red)){.rail-function-icon{box-shadow:0 6px 14px color-mix(in srgb,var(--fn-to)28%,transparent),inset 0 1px 0 #ffffff38}}.rail-function-icon{transition:transform .2s}.rail-function:hover .rail-function-icon{transform:scale(1.05)}.rail-function.active .rail-function-icon{box-shadow:0 0 0 3px var(--fn-from),0 8px 18px var(--fn-to)}@supports (color:color-mix(in lab, red, red)){.rail-function.active .rail-function-icon{box-shadow:0 0 0 3px color-mix(in srgb,var(--fn-from)22%,transparent),0 8px 18px color-mix(in srgb,var(--fn-to)32%,transparent)}}.rail-icon-live-dot{border:2px solid var(--surface);background:#10b981;border-radius:50%;width:11px;height:11px;position:absolute;top:-2px;right:-2px;box-shadow:0 0 8px #10b981cc}.rail-function-copy{flex-direction:column;gap:2px;min-width:0;display:flex}.rail-function-title{letter-spacing:-.015em;align-items:center;gap:7px;font-size:14.5px;font-weight:800;display:flex}.rail-function-hint{color:var(--muted);font-size:11.5px;line-height:1.35}.rail-function-badge{min-width:26px;height:24px;color:var(--muted);background:var(--surface-3);font-family:var(--font-code);border-radius:8px;place-items:center;padding:0 7px;font-size:11px;font-weight:700;display:grid}.rail-function-badge.live{color:var(--success);background:var(--success-bg)}.rail-stats{background:var(--surface-2);border-radius:15px;grid-template-columns:repeat(3,1fr);gap:7px;padding:14px 12px;display:grid}.rail-stats>div{flex-direction:column;align-items:center;gap:1px;display:flex}.rail-stats strong{font-size:16px;font-weight:800;font-family:var(--font-code);letter-spacing:-.02em}.rail-stats span{color:var(--muted);font-size:10.5px;font-weight:600}.rail-foot{flex-direction:column;gap:8px;display:flex}.rail-foot p{color:var(--soft);margin:0;font-size:11px;line-height:1.45}.rail-foot a{color:var(--muted);align-items:center;gap:6px;font-size:11.5px;font-weight:700;transition:color .2s;display:inline-flex}.rail-foot a:hover{color:var(--blue-600)}.city-content{flex-direction:column;gap:16px;min-width:0;display:flex}.city-context-strip{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-sm);border-radius:16px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:11px 16px;display:flex}.context-breadcrumb{color:var(--muted);align-items:center;gap:6px;font-size:12.5px;font-weight:600;display:flex}.context-breadcrumb a:hover{color:var(--blue-600)}.context-breadcrumb svg{color:var(--soft);opacity:.6}.context-breadcrumb strong{color:var(--ink);font-weight:800}.context-meta{align-items:center;gap:12px;display:flex}.context-stat{color:var(--muted);font-size:12px;font-weight:600}.context-stat strong{color:var(--ink);font-family:var(--font-code);font-weight:800}.city-dock{display:none}@media (max-width:1180px){.city-shell{grid-template-columns:1fr;padding-top:84px;padding-bottom:118px}.city-rail{display:none}.city-dock{z-index:940;background:var(--surface);gap:4px;padding:7px;display:flex;position:fixed;bottom:12px;left:12px;right:12px}@supports (color:color-mix(in lab, red, red)){.city-dock{background:color-mix(in srgb,var(--surface)90%,transparent)}}.city-dock{border:1px solid var(--line-strong);-webkit-backdrop-filter:blur(22px)saturate(170%);backdrop-filter:blur(22px)saturate(170%);border-radius:22px;box-shadow:0 16px 44px #040f2342}.city-dock-item{min-width:0;color:var(--muted);background:0 0;border:0;border-radius:16px;flex-direction:column;flex:1;align-items:center;gap:4px;padding:7px 2px 6px;font-size:10.5px;font-weight:700;transition:color .2s,background .2s;display:flex;position:relative}.city-dock-item:hover{color:var(--ink);background:var(--surface-2)}.city-dock-item.active{color:var(--ink);background:var(--surface-3)}.dock-icon{background:var(--surface-3);width:36px;height:36px;color:var(--muted);border-radius:12px;place-items:center;transition:all .22s cubic-bezier(.34,1.56,.64,1);display:grid;position:relative}.city-dock-item.active .dock-icon{color:#fff;background:linear-gradient(140deg,var(--fn-from),var(--fn-to));box-shadow:0 7px 16px var(--fn-to)}@supports (color:color-mix(in lab, red, red)){.city-dock-item.active .dock-icon{box-shadow:0 7px 16px color-mix(in srgb,var(--fn-to)34%,transparent)}}.city-dock-item.active .dock-icon{transform:translateY(-2px)scale(1.04)}.dock-live-dot{border:2px solid var(--surface);background:#10b981;border-radius:50%;width:10px;height:10px;position:absolute;top:-1px;right:-1px;box-shadow:0 0 7px #10b981bf}.dock-label{white-space:nowrap;text-overflow:ellipsis;max-width:100%;overflow:hidden}.dock-badge{color:#fff;background:var(--blue-600);min-width:16px;height:16px;font-family:var(--font-code);border-radius:999px;place-items:center;padding:0 4px;font-size:9px;font-weight:800;display:grid;position:absolute;top:2px;right:2px}}.workspace-panel{background:var(--surface);border:1px solid var(--line);min-height:600px;box-shadow:var(--shadow-sm);border-radius:24px;padding:clamp(18px,2.4vw,30px)}.panel-heading{justify-content:space-between;align-items:center;gap:16px;margin-bottom:22px;display:flex}.panel-heading h2{letter-spacing:-.03em;margin:4px 0 0;font-size:24px;font-weight:800}.panel-heading-actions{align-items:center;gap:8px;display:flex}.live-shortcut-btn{color:var(--success);border-color:var(--success)}@supports (color:color-mix(in lab, red, red)){.live-shortcut-btn{border-color:color-mix(in srgb,var(--success)32%,var(--line))}}.live-shortcut-btn{background:var(--success-bg)}.tab-scene{min-height:600px}.city-data-footer{color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:16px;padding:22px 6px 0;font-size:12.5px;line-height:1.6;display:flex}.city-data-footer>div{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.city-data-footer a{background:var(--surface);border:1px solid var(--line);color:var(--blue-600);border-radius:8px;align-items:center;gap:5px;padding:4px 10px;font-weight:600;display:inline-flex}:root[data-theme=dark] .city-data-footer a{color:#7cc0ff}.activation-screen{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:100svh;padding:120px 22px 60px;display:flex}.activation-screen>h1{letter-spacing:-.03em;margin:22px 0 8px;font-size:28px;font-weight:800}.activation-screen>p{color:var(--muted);font-size:15px}.activation-screen.error>svg{color:var(--danger)}.activation-card{background:var(--surface);border:1px solid var(--line);width:min(600px,100%);box-shadow:var(--shadow-md);border-radius:26px;padding:40px}.activation-icon{width:64px;height:64px;color:var(--blue-600);background:var(--blue-500);place-items:center;margin:0 auto 20px;display:grid}@supports (color:color-mix(in lab, red, red)){.activation-icon{background:color-mix(in srgb,var(--blue-500)12%,transparent)}}.activation-icon{border-radius:20px}.activation-card h1{letter-spacing:-.04em;margin:10px 0 14px;font-size:30px;font-weight:800;line-height:1.15}.activation-card>p{color:var(--muted);font-size:15px;line-height:1.7}.activation-card>.primary-button{margin-top:12px}.indeterminate-progress{background:var(--surface-3);border-radius:99px;height:6px;margin:26px 0 18px;overflow:hidden}.indeterminate-progress span{background:var(--blue-500);border-radius:inherit;width:35%;height:100%;animation:1.4s ease-in-out infinite indeterminate;display:block}@keyframes indeterminate{0%{transform:translate(-110%)}to{transform:translate(400%)}}.activation-facts{color:var(--muted);justify-content:center;gap:20px;margin-top:22px;font-size:13px;font-weight:600;display:flex}.activation-facts span{align-items:center;gap:6px;display:inline-flex}.activation-sources{border-top:1px solid var(--line);flex-direction:column;gap:8px;margin-top:22px;padding-top:18px;display:flex}.activation-sources a{color:var(--blue-600);justify-content:center;align-items:center;gap:6px;font-size:13px;font-weight:600;display:inline-flex}.activation-error{color:var(--danger);background:var(--danger-bg);text-align:left;border-radius:12px;align-items:flex-start;gap:10px;margin-top:16px;padding:14px;font-size:13.5px;display:flex}.stop-search{flex:1;min-width:0;position:relative}.field-label{color:var(--muted);margin-bottom:7px;font-size:12.5px;font-weight:700;display:block}.search-field{background:var(--surface-2);border:1px solid var(--line-strong);border-radius:14px;align-items:center;gap:11px;height:52px;padding:0 15px;transition:border-color .2s,box-shadow .2s,background .2s;display:flex}.search-field:focus-within{background:var(--surface);border-color:var(--blue-500);box-shadow:0 0 0 4px var(--blue-500)}@supports (color:color-mix(in lab, red, red)){.search-field:focus-within{box-shadow:0 0 0 4px color-mix(in srgb,var(--blue-500)14%,transparent)}}.search-field>svg{color:var(--muted)}.search-field input{background:0 0;border:0;outline:0;flex:1;min-width:0;height:100%;font-size:15px;font-weight:500}.search-results{z-index:100;background:var(--surface);border:1px solid var(--line-strong);box-shadow:var(--shadow-md);border-radius:16px;padding:7px;position:absolute;top:calc(100% + 8px);left:0;right:0;overflow:hidden}.search-result{text-align:left;background:0 0;border:0;border-radius:11px;align-items:center;gap:12px;width:100%;padding:11px 12px;display:flex}.search-result.active,.search-result:hover{background:var(--surface-3)}.result-pin{width:34px;height:34px;color:var(--blue-600);background:var(--blue-500);flex:none;place-items:center;display:grid}@supports (color:color-mix(in lab, red, red)){.result-pin{background:color-mix(in srgb,var(--blue-500)12%,transparent)}}.result-pin{border-radius:10px}.search-result>span:last-child{flex-direction:column;gap:2px;display:flex}.search-result strong{font-size:14.5px;font-weight:700}.search-result small{color:var(--muted);font-size:12.5px}.search-empty{color:var(--muted);text-align:center;margin:0;padding:20px;font-size:14px}.simple-search{background:var(--surface-2);border:1px solid var(--line-strong);border-radius:12px;align-items:center;gap:10px;height:46px;padding:0 14px;display:flex}.simple-search svg{color:var(--muted)}.simple-search input{background:0 0;border:0;outline:0;flex:1;min-width:0;font-size:14px}.departure-panel{max-width:1080px;margin:auto}.stop-tools{gap:10px;display:flex}.location-button{min-width:138px;color:var(--blue-600);background:var(--blue-500);justify-content:center;align-items:center;gap:8px;padding:0 16px;display:flex}@supports (color:color-mix(in lab, red, red)){.location-button{background:color-mix(in srgb,var(--blue-500)10%,transparent)}}.location-button{border:1px solid var(--blue-500)}@supports (color:color-mix(in lab, red, red)){.location-button{border:1px solid color-mix(in srgb,var(--blue-500)28%,transparent)}}.location-button{border-radius:14px;font-size:13.5px;font-weight:700;transition:background .2s,transform .15s}:root[data-theme=dark] .location-button{color:#7cc0ff}.location-button:hover{background:var(--blue-500)}@supports (color:color-mix(in lab, red, red)){.location-button:hover{background:color-mix(in srgb,var(--blue-500)18%,transparent)}}.location-button:hover{transform:translateY(-1px)}.suggested-stops-grid{flex-wrap:wrap;justify-content:center;gap:9px;max-width:720px;margin-top:22px;display:flex}.suggested-stop-chip{background:var(--surface-2);border:1px solid var(--line-strong);color:var(--ink);border-radius:999px;align-items:center;gap:7px;padding:9px 15px;font-size:13.5px;font-weight:700;transition:border-color .2s,background .2s,transform .15s;display:inline-flex}.suggested-stop-chip svg{color:var(--blue-600)}.suggested-stop-chip:hover{border-color:var(--blue-500);background:var(--surface);transform:translateY(-1px)}.selected-stop-card{color:#fff;background:linear-gradient(125deg,#071b38,#0f3d7a);border-radius:18px;justify-content:space-between;align-items:center;gap:14px;margin-top:18px;padding:20px 22px;display:flex;box-shadow:0 14px 32px #071b3833}.selected-stop-main{align-items:center;gap:15px;display:flex}.selected-stop-main h3{letter-spacing:-.025em;margin:0 0 4px;font-size:20px;font-weight:800}.selected-stop-main p{color:#ffffffc2;margin:0;font-size:13px}.stop-symbol{background:#38bdf81f;border:2px solid #7dd3fc;border-radius:9px 9px 13px 13px;place-items:center;width:38px;height:44px;display:grid}.stop-symbol span{background:#7dd3fc;border-radius:50%;width:10px;height:10px}.favorite-button{color:#fff;background:#ffffff1a;border-color:#fff3}.favorite-button.active{color:#fda4af;background:#f43f5e33;border-color:#fb718566}.controls-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-top:16px;display:flex}.segmented-control{background:var(--surface-3);border:1px solid var(--line);border-radius:12px;padding:4px;display:inline-flex}.segmented-control button{min-height:36px;color:var(--muted);background:0 0;border:0;border-radius:9px;justify-content:center;align-items:center;gap:7px;padding:0 14px;font-size:13px;font-weight:700;transition:all .15s;display:inline-flex}.segmented-control button.active{color:var(--ink);background:var(--surface);box-shadow:0 2px 8px #091a3417}.datetime-inputs{gap:10px;margin-top:12px;display:flex;overflow:hidden}.datetime-inputs input,.planner-settings input,.planner-settings select{background:var(--surface-2);border:1px solid var(--line-strong);border-radius:11px;height:44px;padding:0 13px;font-size:14px}.departure-filters{gap:10px;margin-top:14px;display:flex}.departure-filters select{background:var(--surface-2);border:1px solid var(--line-strong);border-radius:11px;flex:1;min-width:0;height:42px;padding:0 13px;font-size:13.5px;font-weight:600}.departure-list{flex-direction:column;gap:9px;margin-top:16px;display:flex}.departure-card{background:var(--surface-2);border:1px solid var(--line);border-radius:16px;grid-template-columns:60px 1fr auto 32px;align-items:center;gap:15px;min-height:82px;padding:13px 16px;transition:border-color .2s,background .2s,transform .15s,box-shadow .2s;display:grid;position:relative}.departure-card:hover{background:var(--surface);border-color:var(--line-strong);box-shadow:var(--shadow-sm)}.departure-card.is-live{border-left:4px solid var(--emerald-bright)}.departure-card.cancelled{opacity:.6}.line-badge{color:#fff;background:var(--blue-600);min-width:48px;height:40px;font-size:15.5px;font-weight:800;font-family:var(--font-code);letter-spacing:-.02em;text-shadow:0 1px 2px #00000047;white-space:nowrap;border:0;border-radius:11px;place-items:center;padding:0 9px;display:inline-grid;box-shadow:0 4px 10px #0000001f,inset 0 1px #fff3}.line-badge.large{border-radius:13px;min-width:58px;height:50px;font-size:20px}.departure-direction{justify-content:space-between;align-items:center;gap:12px;min-width:0;display:flex}.departure-main-info{flex-direction:column;gap:6px;min-width:0;display:flex}.departure-main-info strong{letter-spacing:-.015em;text-overflow:ellipsis;white-space:nowrap;font-size:16px;font-weight:800;overflow:hidden}.departure-badges-row{flex-wrap:wrap;align-items:center;gap:7px;display:flex}.departure-mode-text{color:var(--muted);font-size:12.5px;font-weight:600}.vehicle-fleet-chip{background:var(--surface-3);color:var(--ink);font-family:var(--font-code);border-radius:6px;padding:2px 7px;font-size:11.5px;font-weight:700}.delay-chip{font-size:11.5px;font-weight:700;font-family:var(--font-code);border-radius:6px;padding:2px 8px}.delay-chip.ontime{color:var(--success);background:var(--success-bg)}.delay-chip.late{color:var(--danger);background:var(--danger-bg)}.delay-chip.early{color:var(--warning);background:#f59e0b24}.accessibility-icons{color:var(--muted);gap:6px;display:flex}.departure-time{text-align:right;flex-direction:column;align-items:flex-end;gap:3px;display:flex}.departure-clock-row{align-items:center;gap:10px;display:flex}.departure-clock-row>strong{font-size:21px;font-weight:800;font-family:var(--font-code);font-variant-numeric:tabular-nums;letter-spacing:-.03em;line-height:1}.countdown-pill{background:var(--blue-500);border-radius:999px;padding:4px 10px}@supports (color:color-mix(in lab, red, red)){.countdown-pill{background:color-mix(in srgb,var(--blue-500)12%,transparent)}}.countdown-pill{color:var(--blue-600);white-space:nowrap;font-size:12.5px;font-weight:800}:root[data-theme=dark] .countdown-pill{color:#7cc0ff}.countdown-pill.imminent{background:var(--success-bg);color:var(--success)}.scheduled-time{color:var(--muted);font-size:12px;font-family:var(--font-code);text-decoration:line-through}.next-day-label{color:var(--blue-600);font-size:11.5px;font-weight:700}.cancelled-text{color:var(--danger);font-weight:800;font-size:15px!important}.departure-route-trigger{width:32px;height:32px;color:var(--soft);background:0 0;border:0;border-radius:8px;place-items:center;display:grid}.departure-route-trigger:hover{background:var(--surface-3);color:var(--blue-600)}.load-more-departures{width:100%;margin-top:12px}.board-meta{border-top:1px solid var(--line);color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:12px;margin-top:18px;padding-top:14px;font-size:12.5px;display:flex}.inline-error{color:var(--danger);background:var(--danger-bg);border-radius:12px;align-items:center;gap:10px;margin-top:15px;padding:13px 15px;font-size:13.5px;display:flex}.inline-error button{color:inherit;background:0 0;border:0;margin-left:auto;font-weight:800}.departure-skeletons{flex-direction:column;gap:9px;margin-top:16px;display:flex}.departure-skeletons span{background:linear-gradient(90deg,var(--surface-2),var(--surface-3),var(--surface-2));background-size:200%;border-radius:16px;height:82px;animation:1.4s linear infinite skeleton}@keyframes skeleton{to{background-position:-200% 0}}.empty-state{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:280px;padding:36px 20px;display:flex}.empty-icon{width:56px;height:56px;color:var(--blue-600);background:var(--blue-500);place-items:center;margin-bottom:16px;display:grid}@supports (color:color-mix(in lab, red, red)){.empty-icon{background:color-mix(in srgb,var(--blue-500)11%,transparent)}}.empty-icon{border-radius:18px}.empty-state h3{letter-spacing:-.025em;margin:0 0 8px;font-size:20px;font-weight:800}.empty-state p{max-width:480px;color:var(--muted);margin:0;font-size:14.5px;line-height:1.65}.route-layout{grid-template-columns:minmax(340px,.78fr) minmax(420px,1.22fr);gap:26px;display:grid}.route-catalog{min-width:0}.filter-chips{gap:7px;margin:12px 0;display:flex;overflow-x:auto}.filter-chips button{color:var(--muted);background:var(--surface-2);border:1px solid var(--line);white-space:nowrap;border-radius:10px;padding:8px 13px;font-size:13px;font-weight:700}.filter-chips button.active{color:#fff;background:var(--navy-900);border-color:var(--navy-900)}:root[data-theme=dark] .filter-chips button.active{background:var(--blue-600);border-color:var(--blue-600)}.route-grid{grid-template-columns:1fr 1fr;gap:8px;max-height:520px;padding-right:4px;display:grid;overflow-y:auto}.route-grid-item{background:var(--surface-2);border:1px solid var(--line);border-radius:13px;min-width:0;transition:border-color .2s,background .2s;position:relative}.route-grid-item:hover{background:var(--surface);border-color:var(--line-strong)}.route-grid-item.selected{background:var(--surface);border-color:var(--blue-500);box-shadow:0 0 0 3px var(--blue-500)}@supports (color:color-mix(in lab, red, red)){.route-grid-item.selected{box-shadow:0 0 0 3px color-mix(in srgb,var(--blue-500)14%,transparent)}}.route-select{text-align:left;background:0 0;border:0;align-items:center;gap:10px;width:100%;min-width:0;padding:10px 30px 10px 10px;display:flex}.route-select .line-badge{min-width:42px;height:34px;font-size:13.5px}.route-select>span:last-child{flex-direction:column;gap:2px;min-width:0;display:flex}.route-select strong{text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:700;overflow:hidden}.route-select small{color:var(--muted);font-size:11.5px}.route-favorite{color:var(--soft);background:0 0;border:0;padding:6px;position:absolute;top:5px;right:5px}.route-favorite.active{color:var(--danger)}.catalog-empty{color:var(--muted);text-align:center;padding:25px;font-size:14px}.route-detail{border-left:1px solid var(--line);min-width:0;padding-left:26px}.route-placeholder{min-height:480px}.route-loading{min-height:450px;color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:15px;font-size:14px;display:flex}.route-title-card{border-bottom:1px solid var(--line);align-items:center;gap:14px;padding-bottom:18px;display:flex}.route-title-card>div{flex:1;min-width:0}.route-title-card h3{letter-spacing:-.025em;margin:4px 0 0;font-size:20px;font-weight:800}.map-route-button{min-height:40px}.variant-section{margin-top:18px}.variant-list{gap:8px;padding-bottom:6px;display:flex;overflow-x:auto}.variant-list button{text-align:left;background:var(--surface-2);border:1px solid var(--line);border-radius:12px;flex-direction:column;gap:4px;min-width:175px;padding:11px 13px;display:flex}.variant-list button.active{border-color:var(--blue-500);background:var(--blue-500)}@supports (color:color-mix(in lab, red, red)){.variant-list button.active{background:color-mix(in srgb,var(--blue-500)9%,var(--surface))}}.variant-list span{text-overflow:ellipsis;white-space:nowrap;max-width:220px;font-size:13.5px;font-weight:700;overflow:hidden}.variant-list small{color:var(--muted);font-size:12px}.route-stops-heading{color:var(--muted);justify-content:space-between;margin:20px 0 10px;font-size:13px;display:flex}.route-stops-heading>span{color:var(--ink);font-weight:800}.route-stop-list{max-height:380px;margin:0;padding:0;list-style:none;overflow-y:auto}.route-stop-list li{grid-template-columns:44px 1fr;align-items:center;min-height:54px;display:grid;position:relative}.route-stop-list li:not(:last-child):before{content:"";background:var(--line-strong);width:2px;position:absolute;top:32px;bottom:-8px;left:11px}.stop-sequence{z-index:1;color:var(--soft);font-family:var(--font-code);align-items:center;gap:7px;font-size:11.5px;display:flex;position:relative}.stop-sequence i{border:2px solid var(--surface);width:10px;height:10px;box-shadow:0 0 0 1px var(--line-strong);border-radius:50%}.route-stop-list li>button{text-align:left;background:0 0;border:0;border-radius:10px;align-items:center;gap:10px;padding:9px 11px;display:flex}.route-stop-list li>button:hover{background:var(--surface-2)}.route-stop-list li>button>svg{color:var(--blue-600)}.route-stop-list li>button>span{flex-direction:column;gap:2px;display:flex}.route-stop-list strong{font-size:14px;font-weight:700}.route-stop-list small{color:var(--muted);font-size:12px}.planner-panel{max-width:1080px;margin:auto}.planner-form{background:var(--surface-2);border:1px solid var(--line);border-radius:18px;padding:22px}.planner-points{grid-template-columns:1fr 1fr;gap:16px;display:grid;position:relative}.planner-points .stop-search{z-index:2}.point-line{display:none}.swap-button{z-index:4;width:34px;height:34px;color:var(--blue-600);background:var(--surface);border:1px solid var(--line-strong);box-shadow:var(--shadow-sm);border-radius:50%;place-items:center;display:grid;position:absolute;top:38px;left:50%;transform:translate(-50%)rotate(-90deg)}.planner-settings{grid-template-columns:1fr 1fr 1fr;gap:12px;margin-top:16px;display:grid}.planner-settings label{color:var(--muted);flex-direction:column;gap:6px;font-size:12.5px;font-weight:700;display:flex}.walk-setting{margin-top:18px}.walk-setting>div{color:var(--muted);justify-content:space-between;font-size:13.5px;font-weight:600;display:flex}.walk-setting>div>span{align-items:center;gap:7px;display:flex}.walk-setting strong{color:var(--blue-600);font-family:var(--font-code)}.walk-setting input{width:100%;accent-color:var(--blue-600);margin-top:10px}.planner-preference{width:100%;margin-top:16px}.planner-preference button{flex:1}.plan-button{width:100%;min-height:48px;margin-top:16px;font-size:15px}.form-error,.form-notice{border-radius:12px;margin:14px 0 0;padding:13px 15px;font-size:14px;font-weight:600}.form-error{color:var(--danger);background:var(--danger-bg)}.form-notice{color:var(--success);background:var(--success-bg)}.journey-results{margin-top:24px}.results-heading{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.results-heading h3{margin:0;font-size:18px;font-weight:800}.results-heading>span{color:var(--muted);font-size:13px}.results-heading button{color:var(--danger);background:0 0;border:0;align-items:center;gap:6px;font-size:13px;font-weight:700;display:inline-flex}.journey-card{background:var(--surface-2);border:1px solid var(--line);border-radius:18px;margin-bottom:14px;padding:20px}.journey-summary{justify-content:space-between;gap:15px;display:flex}.journey-summary>div:first-child{align-items:baseline;gap:14px;display:flex}.journey-summary>div:first-child strong{font-size:21px;font-family:var(--font-code);letter-spacing:-.03em;align-items:center;gap:8px;display:flex}.journey-summary>div:first-child>span{color:var(--blue-600);font-size:14px;font-weight:800}.journey-metrics{color:var(--muted);align-items:center;gap:12px;font-size:13px;font-weight:600;display:flex}.journey-metrics span{align-items:center;gap:5px;display:inline-flex}.journey-lines{gap:6px;margin-top:14px;display:flex}.journey-lines .line-badge{border-radius:8px;min-width:38px;height:30px;font-size:13px}.journey-leg-list{margin:16px 0 0;padding:0;list-style:none}.journey-leg-list li{border-top:1px solid var(--line);gap:12px;padding:12px 0;display:flex}.leg-icon{width:42px;color:var(--muted);justify-content:center;padding-top:2px;display:flex}.mini-line{color:#fff;text-align:center;min-width:36px;font-size:12px;font-family:var(--font-code);border-radius:7px;padding:4px 6px;font-weight:800}.journey-leg-list li>div{min-width:0}.journey-leg-list strong{font-size:14.5px;font-weight:700}.journey-leg-list p{color:var(--muted);align-items:center;gap:6px;margin:4px 0;font-size:13.5px;display:flex}.journey-leg-list small{color:var(--soft);font-size:12px;font-family:var(--font-code)}.journey-actions{align-items:center;gap:8px;margin-top:14px;display:flex}.journey-actions .secondary-button{min-height:40px;margin-right:auto}.active-favorite{color:var(--danger)}.map-panel{padding:22px;position:relative}.map-panel-heading{margin-bottom:16px}.map-heading-actions{gap:8px;display:flex}.map-workspace{grid-template-columns:minmax(0,1fr) 330px;gap:16px;height:660px;display:grid}.map-canvas-wrap{border:1px solid var(--line);background:#dbe5f0;border-radius:18px;min-width:0;position:relative;overflow:hidden}.transit-map{z-index:1;width:100%;height:100%;font-family:inherit}.map-loading{color:#475569;flex-direction:column;justify-content:center;align-items:center;gap:12px;height:100%;font-size:14px;font-weight:600;display:flex}.map-layer-controls{z-index:500;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff0;border:1px solid #091a341f;border-radius:12px;gap:6px;padding:5px;display:flex;position:absolute;top:12px;left:54px;box-shadow:0 6px 20px #091a3424}:root[data-theme=dark] .map-layer-controls{background:#0c1b31eb;border-color:#ffffff24}.map-layer-controls button{min-height:34px;color:var(--muted);background:0 0;border:0;border-radius:9px;align-items:center;gap:6px;padding:0 12px;font-size:12.5px;font-weight:700;display:inline-flex}.map-layer-controls button.active{color:#0d52c7;background:#e0f2fe}.map-layer-controls button.live.active{color:#047857;background:#d1fae5}.map-attribution-note{z-index:500;color:#1e293b;background:#ffffffe0;border-radius:8px;padding:5px 10px;font-size:11px;font-weight:600;position:absolute;bottom:10px;left:12px}.live-sidebar{background:var(--surface-2);border:1px solid var(--line);border-radius:18px;flex-direction:column;min-width:0;display:flex;overflow:hidden}.live-sidebar-heading{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:16px;display:flex}.live-status-dot{background:var(--soft);border-radius:50%;width:9px;height:9px}.live-status-dot.online{background:var(--emerald-bright);box-shadow:0 0 0 5px var(--emerald-bright)}@supports (color:color-mix(in lab, red, red)){.live-status-dot.online{box-shadow:0 0 0 5px color-mix(in srgb,var(--emerald-bright)18%,transparent)}}.live-sidebar-heading>div{flex-direction:column;flex:1;gap:2px;display:flex}.live-sidebar-heading strong{font-size:14.5px;font-weight:800}.live-sidebar-heading small{color:var(--muted);font-size:12px}.live-line-filter{background:var(--surface);border:1px solid var(--line-strong);border-radius:10px;height:40px;margin:10px 12px;padding:0 11px;font-size:13px;font-weight:600}.live-unavailable{color:var(--muted);text-align:center;padding:32px 20px}.live-unavailable>svg{color:var(--blue-500);margin:0 auto}.live-unavailable h3{color:var(--ink);margin:12px 0 8px;font-size:16px;font-weight:800}.live-unavailable p{margin:0;font-size:13px;line-height:1.6}.live-warning{color:var(--warning);background:#f59e0b1f;border-radius:10px;align-items:flex-start;gap:8px;margin:10px 12px;padding:11px;font-size:12.5px;line-height:1.45;display:flex}.vehicle-list{flex:1;padding:0 8px 8px;overflow-y:auto}.vehicle-list>button{text-align:left;border:0;border-bottom:1px solid var(--line);background:0 0;border-radius:10px;grid-template-columns:44px 1fr auto;align-items:center;gap:10px;width:100%;padding:10px 8px;transition:background .15s;display:grid}.vehicle-list>button:hover,.vehicle-list>button.active{background:var(--surface-3)}.vehicle-list .line-badge{min-width:40px;height:32px;padding:0 6px;font-size:13px}.vehicle-row-body{flex-direction:column;gap:2px;min-width:0;display:flex}.vehicle-row-body strong{text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:6px;font-size:13.5px;font-weight:700;display:flex;overflow:hidden}.vehicle-row-body strong em{font-style:normal;font-family:var(--font-code);color:var(--muted);font-size:11px;font-weight:600}.vehicle-row-body small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.vehicle-row-meta{color:var(--soft);align-items:center;display:flex}.vehicle-row-meta b{font-size:11.5px;font-family:var(--font-code);border-radius:6px;padding:2px 7px;font-weight:700}.vehicle-row-meta b.ok{color:var(--success);background:var(--success-bg)}.vehicle-row-meta b.late{color:var(--danger);background:var(--danger-bg)}.live-updated{color:var(--muted);border-top:1px solid var(--line);text-align:center;font-size:12px;font-family:var(--font-code);margin:0;padding:10px}.vehicle-detail-card{z-index:600;color:#fff;width:min(560px,100% - 390px);box-shadow:var(--shadow-lg);background:linear-gradient(145deg,#071b38,#0d2b56);border:1px solid #7dd3fc40;border-radius:20px;align-items:flex-start;gap:16px;padding:20px;display:flex;position:absolute;bottom:36px;left:36px}.vehicle-detail-close{color:#fff;position:absolute;top:10px;right:10px}.vehicle-detail-body{flex:1;min-width:0}.vehicle-detail-tags{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px;padding-right:28px;display:flex}.vehicle-fleet-dark{font-family:var(--font-code);background:#ffffff1f;border-radius:999px;padding:3px 8px;font-size:11.5px;font-weight:700}.vehicle-status-tag{color:#ffffffb8;font-size:12px;font-weight:600}.vehicle-detail-card h3{margin:0 0 5px;font-size:18px;font-weight:800}.vehicle-detail-card p{color:#fffc;margin:0;font-size:13.5px}.vehicle-facts{background:#ffffff0f;border-radius:12px;flex-wrap:wrap;gap:18px;margin:14px 0;padding:12px 14px;display:flex}.vehicle-facts span{color:#fff9;flex-direction:column;gap:2px;font-size:11.5px;display:flex}.vehicle-facts strong{color:#fff;font-size:13px;font-family:var(--font-code)}.vehicle-detail-actions{flex-wrap:wrap;gap:16px;display:flex}.vehicle-detail-card .text-button{color:#7dd3fc;font-size:13px}.vehicle-marker-wrap{background:0 0!important;border:0!important}.vehicle-marker{color:#fff;background:var(--vehicle-color,#1868e3);width:40px;height:30px;font-size:12.5px;font-family:var(--font-code);border:2.5px solid #fff;border-radius:10px;place-items:center;font-weight:800;transition:transform .2s;display:grid;position:relative;box-shadow:0 4px 14px #04142c61}.vehicle-marker b{z-index:2;position:relative}.vehicle-marker.selected{transform:scale(1.16);box-shadow:0 0 0 5px #38bdf873,0 8px 20px #04142c80}.vehicle-bearing{pointer-events:none;width:44px;height:44px;position:absolute;top:50%;left:50%}.vehicle-bearing:before{content:"";border-bottom:7px solid #06162e;border-left:5px solid #0000;border-right:5px solid #0000;position:absolute;top:-5px;left:50%;transform:translate(-50%)}.user-location-icon{background:0 0!important;border:0!important}.user-location-icon span{background:#2584ff;border:3.5px solid #fff;border-radius:50%;width:18px;height:18px;display:block;box-shadow:0 0 0 8px #2584ff3d}.leaflet-popup-content-wrapper,.leaflet-popup-tip{color:var(--ink);background:var(--surface);border-radius:14px}.leaflet-popup-content{font-family:var(--font-ui);margin:12px 14px;font-size:13px}.map-popup-box{flex-direction:column;gap:4px;min-width:170px;display:flex}.map-popup-box strong{font-size:14px;font-weight:800}.map-popup-box span{color:var(--muted);font-size:12.5px}.popup-delay-ok{font-weight:700;color:var(--success)!important}.popup-delay-late{font-weight:700;color:var(--danger)!important}.popup-action-btn{background:var(--blue-600);color:#fff;text-align:center;border:0;border-radius:8px;margin-top:6px;padding:6px 10px;font-size:12px;font-weight:700}:root[data-theme=dark] .leaflet-tile-pane{filter:brightness(.76)contrast(1.08)saturate(.75)}.favorites-panel{max-width:1080px;margin:auto}.favorites-content{flex-direction:column;gap:28px;display:flex}.favorite-section-heading{color:var(--blue-600);align-items:center;gap:9px;margin-bottom:12px;display:flex}.favorite-section-heading h3{color:var(--ink);margin:0;font-size:16px;font-weight:800}.favorite-list{grid-template-columns:1fr 1fr;gap:10px;display:grid}.favorite-list article{background:var(--surface-2);border:1px solid var(--line);border-radius:14px;align-items:center;padding:8px 10px;display:flex}.favorite-main{text-align:left;background:0 0;border:0;flex:1;align-items:center;gap:11px;min-width:0;padding:6px;display:flex}.favorite-main>span:nth-child(2){flex-direction:column;flex:1;gap:2px;display:flex}.favorite-main strong{font-size:14.5px;font-weight:700}.favorite-main small{color:var(--muted);font-size:12.5px}.favorite-main>svg{color:var(--soft)}.favorite-route-grid{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.favorite-route-grid article{background:var(--surface-2);border:1px solid var(--line);border-radius:14px;align-items:center;display:flex}.favorite-route-grid article>button:first-child{text-align:left;background:0 0;border:0;flex:1;align-items:center;gap:10px;min-width:0;padding:11px;display:flex}.favorite-route-grid article>button:first-child>span:nth-child(2){flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.favorite-route-grid strong{text-overflow:ellipsis;white-space:nowrap;font-size:13.5px;font-weight:700;overflow:hidden}.favorite-route-grid small{color:var(--muted);font-size:12px}.favorite-route-grid article>button:last-child{color:var(--soft);background:0 0;border:0;padding:10px}.recent-stop-chips{flex-wrap:wrap;gap:8px;display:flex}.recent-stop-chips button{color:var(--ink);background:var(--surface-2);border:1px solid var(--line);border-radius:999px;align-items:center;gap:7px;padding:9px 14px;font-size:13px;font-weight:600;display:inline-flex}.recent-stop-chips button:hover{border-color:var(--blue-400)}.admin-main{max-width:1480px;margin:auto;padding:106px clamp(18px,3vw,44px) 60px}.admin-heading{justify-content:space-between;align-items:flex-end;gap:28px;display:flex}.admin-heading h1{letter-spacing:-.04em;margin:8px 0;font-size:clamp(32px,3.6vw,48px);font-weight:800;line-height:1.05}.admin-heading p{color:var(--muted);margin:0;font-size:15px}.admin-heading-actions{gap:10px;display:flex}.token-bar{background:var(--surface);border:1px solid var(--line);border-radius:14px;align-items:center;gap:10px;margin-top:18px;padding:14px;display:flex;overflow:hidden}.token-bar>svg{color:var(--blue-600)}.token-bar input{background:var(--surface-2);border:1px solid var(--line-strong);border-radius:10px;flex:1;height:42px;padding:0 12px;font-size:14px}.admin-alert{border-radius:12px;align-items:center;gap:10px;margin-top:16px;padding:13px 16px;font-size:14px;font-weight:600;display:flex}.admin-alert.error{color:var(--danger);background:var(--danger-bg)}.admin-alert.success{color:var(--success);background:var(--success-bg)}.admin-alert button{color:inherit;background:0 0;border:0;margin-left:auto;font-size:13px;font-weight:700}.admin-stat-grid{grid-template-columns:repeat(4,1fr);gap:14px;margin-top:26px;display:grid}.admin-stat-grid article{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-sm);border-radius:18px;align-items:flex-start;gap:14px;padding:20px;display:flex}.admin-stat-grid article>svg{color:var(--blue-600)}.admin-stat-grid article>span{color:var(--muted);flex-direction:column;font-size:13px;font-weight:600;display:flex}.admin-stat-grid strong{color:var(--ink);font-size:28px;font-weight:800;font-family:var(--font-code);margin:4px 0;line-height:1.1}.admin-stat-grid small{color:var(--soft);font-size:12px}.admin-tabs{border-bottom:1px solid var(--line);gap:6px;margin:24px 0 16px;display:flex}.admin-tabs button{color:var(--muted);background:0 0;border:0;align-items:center;gap:8px;padding:13px 18px;font-size:14px;font-weight:700;display:inline-flex;position:relative}.admin-tabs button:after{content:"";background:var(--blue-600);height:2.5px;transition:transform .2s;position:absolute;bottom:-1px;left:0;right:0;transform:scaleX(0)}.admin-tabs button.active{color:var(--blue-600)}.admin-tabs button.active:after{transform:scaleX(1)}.admin-section{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-sm);border-radius:20px;padding:24px}.admin-section-heading{justify-content:space-between;align-items:center;margin-bottom:18px;display:flex}.admin-section-heading h2{margin:0 0 4px;font-size:20px;font-weight:800}.admin-section-heading p{color:var(--muted);margin:0;font-size:13.5px}.admin-loading{min-height:280px;color:var(--muted);justify-content:center;align-items:center;gap:12px;font-size:14px;display:flex}.integration-list{flex-direction:column;gap:10px;display:flex}.integration-card{background:var(--surface-2);border:1px solid var(--line);border-radius:14px;overflow:hidden}.integration-main{grid-template-columns:28px minmax(140px,1.2fr) 120px 80px 95px minmax(150px,1fr) 98px 135px 42px;align-items:center;gap:12px;padding:13px 14px;display:grid}.integration-expand{width:28px;height:28px;color:var(--muted);background:0 0;border:0;place-items:center;padding:0;display:grid}.integration-expand svg{transition:transform .2s}.integration-expand svg.rotate{transform:rotate(180deg)}.integration-city{flex-direction:column;gap:2px;display:flex}.integration-city strong{font-size:15px;font-weight:800}.integration-city span{color:var(--muted);font-size:12.5px}.integration-status{color:var(--muted);align-items:center;gap:6px;font-size:12.5px;font-weight:700;display:inline-flex}.integration-status i{background:var(--soft);border-radius:50%;width:7px;height:7px}.integration-status.ready{color:var(--success)}.integration-status.ready i{background:var(--success)}.integration-status.error{color:var(--danger)}.integration-status.error i{background:var(--danger)}.integration-count{flex-direction:column;display:flex}.integration-count strong{font-size:16px;font-weight:800;font-family:var(--font-code)}.integration-count span,.integration-date span{color:var(--muted);font-size:11.5px}.integration-date{flex-direction:column;gap:2px;display:flex}.integration-date strong{font-size:12.5px;font-weight:600}.interval-select{background:var(--surface);border:1px solid var(--line-strong);border-radius:10px;height:38px;padding:0 8px;font-size:12.5px;font-weight:600}.sync-button{min-height:38px;padding:0 12px;font-size:12.5px}.integration-sources{border-top:1px solid var(--line);overflow:hidden}.admin-source{border-bottom:1px solid var(--line);grid-template-columns:56px 1fr 150px;gap:14px;padding:14px 18px 14px 46px;display:grid}.admin-source:last-child{border:0}.source-kind{width:max-content;height:24px;color:var(--blue-600);background:var(--blue-500);place-items:center;padding:0 8px;display:grid}@supports (color:color-mix(in lab, red, red)){.source-kind{background:color-mix(in srgb,var(--blue-500)12%,transparent)}}.source-kind{border-radius:6px;font-size:11px;font-weight:800}.source-kind:not(.static){color:var(--success);background:var(--success-bg)}.admin-source>div{flex-direction:column;gap:3px;min-width:0;display:flex}.admin-source strong{font-size:13.5px;font-weight:700}.admin-source a{color:var(--blue-600);text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:5px;font-size:12px;display:flex;overflow:hidden}.admin-source small,.admin-source>span:last-child{color:var(--muted);font-size:12px}.source-error{color:var(--danger);margin:4px 0 0;font-size:12px}.operator-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.operator-grid article{background:var(--surface-2);border:1px solid var(--line);border-radius:14px;align-items:flex-start;gap:14px;padding:18px;display:flex}.operator-icon{width:44px;height:44px;color:var(--blue-600);background:var(--blue-500);place-items:center;display:grid}@supports (color:color-mix(in lab, red, red)){.operator-icon{background:color-mix(in srgb,var(--blue-500)11%,transparent)}}.operator-icon{border-radius:12px}.operator-grid article>div{flex:1}.operator-grid h3{margin:0 0 4px;font-size:16px;font-weight:800}.operator-grid p{color:var(--muted);margin:0 0 8px;font-size:13px;line-height:1.5}.operator-grid a{color:var(--blue-600);align-items:center;gap:5px;font-size:13px;font-weight:700;display:inline-flex}.operator-grid article>span:last-child{color:var(--muted);font-size:12.5px;font-weight:600}.discovery-form{background:var(--surface-2);border-radius:16px;grid-template-columns:1fr 1fr;gap:14px;padding:20px;display:grid}.discovery-form label,.approval-box label{color:var(--muted);flex-direction:column;gap:6px;font-size:13px;font-weight:700;display:flex}.discovery-form input,.approval-box input{background:var(--surface);border:1px solid var(--line-strong);border-radius:10px;height:44px;padding:0 13px;font-size:14px}.discovery-url{grid-column:1/-1}.discovery-form>.primary-button{grid-column:1/-1;width:max-content}.candidate-list{flex-direction:column;gap:10px;margin-top:18px;display:flex}.candidate-list>article{background:var(--surface-2);border:1px solid var(--line);border-radius:14px;align-items:flex-start;gap:14px;padding:16px;display:flex}.candidate-icon{width:42px;height:42px;color:var(--blue-600);background:var(--blue-500);place-items:center;display:grid}@supports (color:color-mix(in lab, red, red)){.candidate-icon{background:color-mix(in srgb,var(--blue-500)11%,transparent)}}.candidate-icon{border-radius:12px}.candidate-main{flex:1;min-width:0}.candidate-main>div:first-child{align-items:center;gap:10px;display:flex}.candidate-main h3{margin:0;font-size:15px;font-weight:800}.candidate-status{color:var(--muted);background:var(--surface-3);border-radius:6px;padding:3px 8px;font-size:11.5px;font-weight:700}.candidate-status.validated{color:var(--success);background:var(--success-bg)}.candidate-main>a{color:var(--blue-600);text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:5px;margin-top:5px;font-size:12.5px;display:flex;overflow:hidden}.candidate-main>p{color:var(--muted);margin:7px 0;font-size:13px}.candidate-checks{color:var(--muted);flex-wrap:wrap;gap:12px;font-size:12.5px;display:flex}.candidate-checks span{align-items:center;gap:5px;display:inline-flex}.candidate-checks .pass{color:var(--success);font-weight:600}.approval-box{color:var(--ink);background:var(--success-bg);border:1px solid var(--success);align-items:flex-start;gap:16px;margin-top:18px;padding:22px;display:flex}@supports (color:color-mix(in lab, red, red)){.approval-box{border:1px solid color-mix(in srgb,var(--success)28%,transparent)}}.approval-box{border-radius:16px}.approval-box>svg{color:var(--success)}.approval-box>div{flex:1}.approval-box h3{margin:0 0 5px;font-size:17px;font-weight:800}.approval-box p{color:var(--muted);font-size:13.5px}.approval-box label{margin-top:10px}.approval-box>div>div{gap:10px;margin-top:14px;display:flex}.infrastructure-grid{grid-template-columns:repeat(4,1fr);gap:12px;display:grid}.infrastructure-grid article{background:var(--surface-2);border:1px solid var(--line);border-radius:14px;align-items:flex-start;gap:12px;padding:16px;display:flex}.infrastructure-grid article>svg{color:var(--blue-600)}.infrastructure-grid article>div{flex-direction:column;gap:3px;display:flex}.infrastructure-grid span{color:var(--muted);font-size:12px;font-weight:600}.infrastructure-grid strong{font-size:15px;font-weight:800}.infrastructure-grid small{color:var(--soft);font-size:12px;line-height:1.45}.logs-layout{grid-template-columns:.85fr 1.15fr;gap:24px;margin-top:24px;display:grid}.run-list,.log-stream{max-height:520px;overflow-y:auto}.run-list article{border-bottom:1px solid var(--line);align-items:flex-start;gap:10px;padding:12px 0;display:flex}.success-icon{color:var(--success)}.error-icon{color:var(--danger)}.run-list article>div{flex-direction:column;flex:1;gap:2px;display:flex}.run-list strong{font-size:13.5px;font-weight:700}.run-list span,.run-list small{color:var(--muted);font-size:12px}.run-list p{color:var(--danger);margin:4px 0 0;font-size:12px}.log-stream{color:#dbeafe;font-family:var(--font-code);background:#07162b;border-radius:14px;padding:14px}.log-stream article{border-bottom:1px solid #ffffff14;grid-template-columns:74px 76px 1fr;gap:10px;padding:8px 0;font-size:12px;display:grid}.log-stream article>span{color:#94a3b8}.log-stream article>strong{color:#38bdf8}.log-stream article>p{margin:0;line-height:1.5}.log-stream article.error>p{color:#fca5a5}@media (max-width:1200px){.city-card-grid{grid-template-columns:repeat(3,1fr)}.integration-date{display:none}.integration-main{grid-template-columns:28px minmax(120px,1.2fr) 110px 70px 85px 96px 125px 40px}}@media (max-width:980px){.operator-tag,.header-quick-links{display:none}.home-hero{grid-template-columns:1fr;min-height:auto;padding-top:112px;padding-bottom:76px}.hero-visual{width:min(600px,100%);margin:10px auto 0}.city-card-grid{grid-template-columns:repeat(2,1fr)}.section-heading,.passenger-features,.faq-section{grid-template-columns:1fr;gap:36px}.route-layout{grid-template-columns:1fr}.route-detail{border-left:0;border-top:1px solid var(--line);padding:22px 0 0}.map-workspace{grid-template-columns:1fr;height:auto}.map-canvas-wrap{height:540px}.live-sidebar{max-height:360px}.vehicle-detail-card{width:100%;margin-top:14px;position:relative;bottom:auto;left:auto}.admin-stat-grid,.infrastructure-grid{grid-template-columns:1fr 1fr}.integration-count:nth-of-type(2){display:none}.integration-main{grid-template-columns:28px 1fr 100px 70px 92px 120px 40px}.logs-layout{grid-template-columns:1fr}}@media (max-width:720px){html{scroll-padding-top:72px}.app-header{gap:10px;height:64px;padding:0 14px}.brand-type small{display:none}.brand-type strong{font-size:17px}.brand-mark{width:32px;height:32px}.header-context{justify-content:flex-end}.header-action span{display:none}.header-action{width:38px;padding:0}.city-switch-button{gap:6px;padding:6px 10px}.city-switch-meta small{display:none}.city-switch-meta strong{font-size:13.5px}.home-hero{padding:98px 18px 64px}.hero-actions{flex-direction:column;align-items:stretch}.hero-primary,.hero-secondary{justify-content:space-between}.cities-section,.sources-section,.passenger-features,.faq-section{padding:72px 18px}.city-card-grid,.city-modal-grid,.favorite-list,.favorite-route-grid,.operator-grid,.discovery-form,.source-details>div{grid-template-columns:1fr}.pipeline-scene{height:480px}.pipeline-file:first-child,.pipeline-file:nth-child(3){left:2%}.pipeline-file:nth-child(2),.pipeline-file:nth-child(4){right:2%}.source-accordion>article>button{grid-template-columns:1fr auto 22px;gap:10px}.source-type{display:none}.home-footer{grid-template-columns:1fr;gap:16px}.workspace-panel{border-radius:20px;min-height:auto;padding:16px}.tab-scene{min-height:auto}.city-context-strip{padding:10px 13px}.context-meta{gap:8px}.context-stat{display:none}.toast-notice{bottom:92px}.location-button{min-width:50px;padding:0}.location-button span{display:none}.controls-toolbar{flex-direction:column;align-items:stretch}.segmented-control{width:100%}.segmented-control button{flex:1}.departure-filters{flex-direction:column}.departure-card{grid-template-columns:50px 1fr auto;gap:11px;padding:12px}.departure-route-trigger,.accessibility-icons{display:none}.departure-clock-row{flex-direction:column-reverse;align-items:flex-end;gap:4px}.planner-points{grid-template-columns:1fr}.swap-button{top:50%;left:auto;right:14px;transform:translateY(-50%)}.planner-settings{grid-template-columns:1fr 1fr}.planner-settings label:last-child{grid-column:1/-1}.map-canvas-wrap{height:58svh;min-height:400px}.admin-stat-grid,.infrastructure-grid{grid-template-columns:1fr}.integration-status,.integration-count,.interval-select{display:none}.integration-main{grid-template-columns:24px 1fr auto 38px}}@media (max-width:400px){.dock-label{display:none}.city-dock-item{padding:8px 2px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}
