@import "https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&family=Sora:wght@600;700&display=swap";:root{--bg-page:#edf2f9;--surface-strong:#fff;--surface-muted:#f4f8ff;--ink-900:#131826;--ink-800:#1e2435;--ink-700:#323a50;--ink-600:#4d5870;--ink-500:#6f7a93;--line-soft:#d4def2;--brand-primary:#2068c0;--brand-accent:#18c070;--brand-dark:#0f223f;--control-height:2.65rem;--good:#12b76a;--warn:#ef8f24;--danger:#d93f67;--shadow-sm:0 8px 22px #0d255417;--shadow-lg:0 24px 55px #0c234f2e;color:var(--ink-900);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Plus Jakarta Sans,Avenir Next,Segoe UI,sans-serif;font-size:16px;line-height:1.45}*{box-sizing:border-box}body{background:radial-gradient(1200px 440px at 10% -12%, #2068c026, transparent 62%), radial-gradient(900px 360px at 85% -16%, #18c07029, transparent 58%), linear-gradient(180deg, #f8fbff 0%, var(--bg-page) 40%, #e9f0fb 100%);min-width:320px;margin:0}h1,h2,h3,h4,button{font-family:Sora,Plus Jakarta Sans,sans-serif}#root{min-height:100dvh}@media (height<=860px) and (width>=1024px){:root{font-size:14px}}@media (width>=1440px) and (height>=900px){:root{font-size:15px}}@media (width>=1920px) and (height>=1080px){:root{font-size:14px}}.app-shell{min-height:100dvh;color:var(--ink-900);grid-template-rows:auto auto auto 1fr;display:grid;position:relative}.brand-logo{object-fit:contain;max-width:100%;height:auto;display:block}.login-logo{width:clamp(210px,38vw,300px);filter:drop-shadow(0 10px 24px color-mix(in srgb, var(--brand-primary) 18%, transparent))}.topbar-logo{flex-shrink:0;width:clamp(170px,20vw,230px)}.brand-glow{pointer-events:none;filter:blur(42px);background:radial-gradient(45% 60% at 30% 50%, color-mix(in srgb, var(--brand-primary) 24%, transparent), transparent), radial-gradient(38% 65% at 70% 45%, color-mix(in srgb, var(--brand-accent) 20%, transparent), transparent);z-index:0;border-radius:999px;block-size:280px;position:absolute;inset:5% 8% auto}.topbar{border:1px solid var(--line-soft);background:color-mix(in srgb, var(--surface-strong) 92%, white 8%);box-shadow:var(--shadow-sm);z-index:24;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:1.15rem;flex-wrap:wrap;justify-content:space-between;gap:1rem;margin:1rem 1.1rem .7rem;padding:.2rem 1rem;display:flex;position:sticky;top:.7rem}.topbar-brand{align-items:center;gap:1rem;display:flex}.topbar h1{letter-spacing:-.015em;margin:0;font-size:clamp(1.02rem,2.1vw,1.32rem);line-height:1.1}.topbar-sub{letter-spacing:.12em;text-transform:uppercase;color:var(--ink-500);max-width:85ch;margin:.35rem 0 0;font-size:.74rem}.topbar button{white-space:nowrap;min-height:0;padding:.3rem .2rem;font-size:.7rem;transition:all .18s}.eyebrow{letter-spacing:.11em;text-transform:uppercase;color:var(--brand-dark);margin:0;font-size:.68rem;font-weight:700}.brand-strapline{letter-spacing:.11em;text-transform:uppercase;color:var(--ink-600);margin:.28rem 0 0;font-size:.7rem;line-height:1.4}.topbar-meta{flex-wrap:wrap;align-items:center;gap:.45rem;display:flex}.profile-select{border:1px solid var(--line-soft);background:color-mix(in srgb, var(--surface-muted) 85%, white 15%);border-radius:999px;align-items:center;gap:.35rem;padding:.14rem .42rem;display:inline-flex}.profile-select span{color:var(--ink-600);white-space:nowrap;font-size:.68rem}.profile-select select{border-radius:999px;min-height:1.8rem;padding:.18rem .55rem;font-size:.7rem}.toolbar{gap:.9rem;margin:0 1.1rem;padding:.95rem;display:grid}.toolbar-filters{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.6rem;display:grid}.toolbar label{color:var(--ink-600);gap:.28rem;font-size:.76rem;display:grid}.toolbar-pulse{grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:.55rem;display:grid}.mini-metric{border:1px solid var(--line-soft);background:var(--surface-muted);border-radius:.9rem;padding:.55rem .65rem}.mini-metric span{color:var(--ink-500);margin-bottom:.2rem;font-size:.69rem;display:block}.mini-metric strong{color:var(--ink-900);font-size:.83rem;font-weight:650;line-height:1.15}.tabbar{border:1px solid var(--line-soft);background:var(--surface-strong);border-radius:999px;gap:.5rem;margin:0 1.1rem .5rem;padding:.3rem;display:flex;overflow-x:auto;box-shadow:inset 0 1px #fffc}.tabbar::-webkit-scrollbar{display:none}.tabbar button{white-space:nowrap;color:var(--ink-600);background:0 0;border:1px solid #0000;border-radius:999px;padding:.52rem .92rem;font-size:.82rem;transition:all .18s}.tabbar button.active{border-color:color-mix(in srgb, var(--brand-primary) 36%, transparent);color:var(--brand-dark);background:color-mix(in srgb, var(--brand-primary) 10%, white 90%);box-shadow:0 8px 16px color-mix(in srgb, var(--brand-primary) 14%, transparent)}.content-grid{grid-template-columns:repeat(auto-fit,minmax(330px,1fr));align-content:start;gap:1rem;padding:1rem 1.1rem 1.4rem;display:grid}.content-grid.content-grid--stacked{grid-template-columns:1fr}.content-grid.content-grid--stacked>.panel:first-child{min-height:210px}.content-grid.content-grid--stacked>.panel+.panel{min-height:360px}.widget-card{background:var(--surface-strong);border:1px solid var(--line-soft);box-shadow:var(--shadow-sm);border-radius:1rem}.panel{min-height:190px;padding:1rem}.panel-head{flex-wrap:wrap;justify-content:space-between;gap:.9rem;margin-bottom:.85rem;display:flex}.panel h2{letter-spacing:-.01em;margin:0;font-size:1.01rem}.panel h3{margin:0;font-size:.9rem}.panel p{color:var(--ink-500);margin:.22rem 0}.kpi-grid{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:.55rem;display:grid}.kpi-card{border:1px solid var(--line-soft);background:linear-gradient(#ffffffb8,#ffffff85);border-radius:.86rem;min-height:88px;padding:.72rem}.kpi-label{color:var(--ink-500);margin:0;font-size:.72rem}.kpi-card strong{letter-spacing:-.015em;margin-top:.28rem;font-size:1.16rem;display:block}.tone-good{border-color:color-mix(in srgb, var(--good) 40%, transparent)}.tone-warn{border-color:color-mix(in srgb, var(--warn) 50%, transparent)}.table-wrap{border:1px solid var(--line-soft);background:#fff;border-radius:.9rem;overflow:auto}table{border-collapse:collapse;width:100%;min-width:620px}th,td{text-align:left;border-bottom:1px solid var(--line-soft);vertical-align:top;padding:.62rem .58rem;font-size:.79rem}th{color:var(--ink-500);text-transform:uppercase;letter-spacing:.04em;background:color-mix(in srgb, var(--surface-muted) 62%, white 38%);font-size:.72rem;font-weight:700}td p{margin:.1rem 0 0;font-size:.74rem}.table-actions{flex-wrap:wrap;gap:.28rem;display:flex}.table-action{border-radius:.58rem;width:auto;min-width:4.2rem;padding:.34rem .5rem;font-size:.7rem}.content-grid--stacked .panel-head>button,.content-grid--stacked .panel-head .table-actions>button,.content-grid--stacked .network-pane-head .table-actions>button,.content-grid--stacked .table-wrap .table-actions>button{width:auto;min-width:4.2rem;min-height:var(--control-height);background:color-mix(in srgb, var(--surface-muted) 70%, white 30%);color:var(--ink-800);border:1px solid var(--line-soft);box-shadow:none;border-radius:.58rem;padding:.34rem .5rem;font-size:.7rem;font-weight:620}.content-grid--stacked .panel-head>button:hover,.content-grid--stacked .panel-head .table-actions>button:hover,.content-grid--stacked .network-pane-head .table-actions>button:hover,.content-grid--stacked .table-wrap .table-actions>button:hover{border-color:color-mix(in srgb, var(--brand-primary) 38%, transparent);box-shadow:none;transform:none}.content-grid--stacked .panel-head .table-actions select,.content-grid--stacked .network-pane-head .table-actions select{width:auto;min-width:10rem;min-height:var(--control-height)}.danger-action{color:var(--danger);border-color:color-mix(in srgb, var(--danger) 36%, transparent)}tbody tr:nth-child(2n){background:color-mix(in srgb, var(--surface-muted) 36%, white 64%)}a{color:var(--brand-primary);font-weight:600;text-decoration-thickness:1.5px}.status-chip{border:1px solid var(--line-soft);background:color-mix(in srgb, var(--surface-muted) 82%, white 18%);color:var(--ink-700);text-transform:capitalize;border-radius:999px;align-items:center;gap:.25rem;padding:.16rem .56rem;font-size:.7rem;line-height:1.35;display:inline-flex}.status-chip.compact{padding-inline:.42rem}.status-scheduled,.status-boarding{border-color:color-mix(in srgb, var(--brand-primary) 30%, transparent);color:color-mix(in srgb, var(--brand-dark) 82%, black 18%)}.status-in_progress,.status-completed{border-color:color-mix(in srgb, var(--good) 44%, transparent);color:color-mix(in srgb, var(--good) 65%, black 35%)}.status-delayed,.status-diverted{border-color:color-mix(in srgb, var(--warn) 58%, transparent);color:color-mix(in srgb, var(--warn) 86%, black 14%)}.status-cancelled,.status-failed{border-color:color-mix(in srgb, var(--danger) 56%, transparent);color:color-mix(in srgb, var(--danger) 74%, black 26%)}.status-no_data,.telemetry-no_data{border-color:color-mix(in srgb, var(--danger) 64%, transparent);color:color-mix(in srgb, var(--danger) 82%, black 18%)}.telemetry-stale{border-color:color-mix(in srgb, var(--warn) 58%, transparent);color:color-mix(in srgb, var(--warn) 88%, black 12%)}.telemetry-ok{border-color:color-mix(in srgb, var(--good) 46%, transparent);color:color-mix(in srgb, var(--good) 70%, black 30%)}.severity-info{border-color:color-mix(in srgb, var(--brand-primary) 36%, transparent)}.severity-warning{border-color:color-mix(in srgb, var(--warn) 52%, transparent)}.severity-critical{border-color:color-mix(in srgb, var(--danger) 58%, transparent)}.ws-connected{border-color:color-mix(in srgb, var(--good) 48%, transparent)}.ws-disconnected,.ws-error{border-color:color-mix(in srgb, var(--danger) 56%, transparent)}.ws-connecting{border-color:color-mix(in srgb, var(--warn) 55%, transparent)}.split{grid-template-columns:repeat(auto-fit,minmax(245px,1fr));gap:.78rem;display:grid}.stack{gap:.54rem;display:grid}.inline{grid-template-columns:repeat(auto-fit,minmax(95px,1fr));gap:.5rem;display:grid}.service-toggle-row{grid-template-columns:repeat(2,minmax(0,1fr))}.inline-check{border:1px solid var(--line-soft);color:var(--ink-800);background:#fff;border-radius:.76rem;align-items:center;gap:.45rem;min-block-size:2.35rem;padding:.58rem .64rem;display:flex}.inline-check input[type=checkbox]{block-size:1rem;inline-size:1rem;flex:none;width:1rem;margin:0;padding:0}.event-feed{gap:.48rem;margin:0;padding:0;list-style:none;display:grid}.event-feed-scroll{max-height:min(42vh,360px);padding-right:.2rem;overflow:auto}.event-feed li{border:1px solid var(--line-soft);background:color-mix(in srgb, var(--surface-muted) 48%, white 52%);border-radius:.76rem;justify-content:space-between;gap:.8rem;padding:.55rem .62rem;font-size:.77rem;display:flex}.control-room-shell{gap:.72rem;padding:.66rem;display:grid}.control-room-summary{flex-wrap:wrap;align-items:center;gap:.34rem;display:flex}.control-room-layout{grid-template-columns:minmax(280px,.5fr) minmax(520px,1.25fr);gap:.68rem;display:grid}.control-room-map-wrap{border:1px solid var(--line-soft);background:color-mix(in srgb, var(--surface-muted) 52%, white 48%);border-radius:.82rem;min-block-size:340px;overflow:hidden}.control-room-map{min-block-size:340px;inline-size:100%}.control-room-queue{max-block-size:440px;overflow:auto}.control-room-selected{border:1px solid var(--line-soft);background:color-mix(in srgb, var(--surface-muted) 54%, white 46%);color:var(--ink-700);border-radius:.72rem;padding:.48rem .58rem;font-size:.76rem}.control-room-selected-row{background:color-mix(in srgb, var(--brand-primary) 8%, white 92%)}.control-room-modal-overlay{z-index:5000;background:#080e1e8f;padding:.8rem;display:grid;position:fixed;inset:0}.control-room-modal-card{z-index:5001;border:1px solid var(--line-soft);block-size:100%;inline-size:min(100%,1600px);box-shadow:var(--shadow-lg);background:#fff;border-radius:.92rem;grid-template-rows:auto 1fr;min-block-size:0;margin:0 auto;display:grid;position:relative;overflow:hidden}.control-room-modal-head{border-bottom:1px solid var(--line-soft);justify-content:space-between;align-items:center;gap:.5rem;padding:.6rem .72rem;display:flex}.control-room-modal-head h3{margin:0;font-size:.98rem}.control-room-shell-fullscreen{block-size:100%;min-block-size:0}.control-room-layout-fullscreen{grid-template-columns:minmax(380px,.5fr) minmax(620px,1fr)}.control-room-map-wrap-fullscreen,.control-room-shell-fullscreen .control-room-map{min-block-size:calc(100dvh - 220px)}.control-room-shell-fullscreen .control-room-queue{max-block-size:calc(100dvh - 220px)}.login-shell{place-items:center;min-height:100dvh;padding:1rem;display:grid;position:relative;overflow:hidden}.login-panel{border:1px solid var(--line-soft);background:color-mix(in srgb, var(--surface-strong) 95%, white 5%);width:min(100%,640px);box-shadow:var(--shadow-lg);z-index:1;border-radius:1.2rem;padding:1.2rem;position:relative}.brand-lockup{flex-wrap:wrap;align-items:flex-start;gap:1rem;margin-bottom:.35rem;display:flex}.login-panel h1{margin:.12rem 0 0;font-size:clamp(1.7rem,4.2vw,2.1rem);line-height:1.15}.lead{margin:0 0 1rem}label{color:var(--ink-600);gap:.25rem;font-size:.8rem;display:grid}input,select,textarea,button{border:1px solid var(--line-soft);width:100%;color:var(--ink-900);font:inherit;background:#fff;border-radius:.76rem;padding:.58rem .64rem}input:focus,select:focus,textarea:focus,button:focus-visible{border-color:color-mix(in srgb, var(--brand-primary) 50%, transparent);box-shadow:0 0 0 3px color-mix(in srgb, var(--brand-primary) 18%, transparent);outline:none}textarea{resize:vertical;min-height:90px}button{cursor:pointer;min-height:var(--control-height);background:linear-gradient(130deg, var(--brand-primary), var(--brand-accent));color:#fff;border-color:#0000;padding:5px;font-size:.8rem;font-weight:640;transition:transform .14s,box-shadow .18s}button:hover{box-shadow:0 9px 20px color-mix(in srgb, var(--brand-primary) 20%, transparent);transform:translateY(-1px)}button:disabled{opacity:.55;cursor:not-allowed;box-shadow:none;transform:none}.uniform-button{min-height:var(--control-height);block-size:var(--control-height);justify-content:center;align-items:center;padding-top:0;padding-bottom:0;display:inline-flex}.button-muted,.chip-button,.mobile-nav-preview button,.clear-button{background:color-mix(in srgb, var(--surface-muted) 70%, white 30%);color:var(--ink-800);border:1px solid var(--line-soft);box-shadow:none}.button-muted:hover,.chip-button:hover,.mobile-nav-preview button:hover,.clear-button:hover{border-color:color-mix(in srgb, var(--brand-primary) 38%, transparent);box-shadow:none;transform:none}.seed-users{border-top:1px dashed var(--line-soft);margin-top:.75rem;padding-top:.68rem}.seed-users p{margin:.16rem 0}.hint{color:var(--ink-500);font-size:.75rem}.sync-note{color:var(--ink-500);margin:0;font-size:.78rem}.error{color:var(--danger);margin:0;font-size:.8rem}.app-error{padding:.64rem 1.1rem 0}.chip-row{flex-wrap:wrap;gap:.4rem;display:inline-flex}.service-day-chip{justify-content:center;width:auto;min-width:3.2rem}.service-day-chip.active,.service-day-chip[aria-pressed=true]{border-color:color-mix(in srgb, var(--brand-primary) 62%, transparent);color:var(--brand-dark);background:color-mix(in srgb, var(--brand-primary) 14%, white 86%)}.service-day-chip-label{line-height:1}.pulse-grid{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:.55rem;display:grid}.pulse-card{border:1px solid var(--line-soft);background:var(--surface-muted);border-radius:.82rem;padding:.65rem}.pulse-label{text-transform:uppercase;letter-spacing:.06em;color:var(--ink-500);margin:0;font-size:.71rem}.pulse-card strong{margin:.36rem 0;font-size:1.05rem;display:block}.inline-pill{background:color-mix(in srgb, var(--surface-strong) 88%, white 12%);border:1px solid var(--line-soft);border-radius:999px;align-items:center;padding:.16rem .5rem;font-size:.67rem;display:inline-flex}.booking-widget-strip{grid-template-columns:repeat(auto-fit,minmax(138px,1fr));gap:.5rem;margin-bottom:.7rem;display:grid}.compact-widget{border:1px solid var(--line-soft);background:var(--surface-muted);border-radius:.8rem;padding:.55rem}.compact-widget p{color:var(--ink-500);margin:0;font-size:.7rem}.compact-widget strong{color:var(--ink-900);margin-top:.2rem;font-size:.9rem;line-height:1.2;display:block}.mobile-preview{border:1px solid var(--line-soft);background:linear-gradient(160deg,#fbfbff,#f4f5fc 70%,#f0f2f8);border-radius:1.4rem;width:100%;max-width:480px;padding:.8rem;box-shadow:0 26px 50px #151f441f}.passenger-preview{gap:.62rem;display:grid}.passenger-head{justify-content:space-between;align-items:center;gap:.7rem;margin-bottom:.2rem;display:flex}.passenger-profile{align-items:center;gap:.6rem;display:flex}.avatar-badge{background:linear-gradient(135deg, var(--brand-primary), var(--brand-accent));color:#fff;border-radius:999px;place-items:center;block-size:2.1rem;inline-size:2.1rem;font-weight:700;display:grid}.search-widget{border:1px solid var(--line-soft);background:var(--surface-strong);border-radius:.8rem;grid-template-columns:auto 1fr auto;align-items:center;gap:.55rem;padding:.45rem .58rem;display:grid}.search-widget input{background:0 0;border:0;padding:0;font-size:.82rem}.search-widget input:focus{box-shadow:none}.clear-button{border-radius:999px;width:auto;padding:.36rem .58rem;font-size:.72rem}.passenger-widget-grid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:.52rem;display:grid}.passenger-widget{border:1px solid var(--line-soft);background:#fff;border-radius:1rem;padding:.72rem}.feature-widget{background:radial-gradient(120% 160% at 100% 0%, color-mix(in srgb, var(--brand-primary) 20%, transparent), transparent), white}.status-widget{background:radial-gradient(120% 160% at 0% 100%, color-mix(in srgb, var(--brand-accent) 14%, transparent), transparent), white}.widget-eyebrow{color:var(--ink-500);letter-spacing:.06em;text-transform:uppercase;margin:0;font-size:.69rem}.passenger-widget h4{margin:.24rem 0;font-size:.95rem}.widget-contract{color:var(--ink-500);margin:0;font-size:.7rem}.ticket-meta{color:var(--ink-600);justify-content:space-between;margin-top:.48rem;font-size:.74rem;display:flex}.passenger-section{border:1px solid var(--line-soft);background:#fff;border-radius:.9rem;padding:.64rem}.section-row-head{justify-content:space-between;align-items:center;display:flex}.section-row-head h4{margin:0;font-size:.9rem}.section-row-head span{color:var(--ink-500);font-size:.74rem}.ride-list,.alert-stack{gap:.42rem;margin-top:.45rem;display:grid}.ride-item,.alert-item{border:1px solid var(--line-soft);background:var(--surface-muted);border-radius:.74rem;justify-content:space-between;align-items:center;gap:.52rem;padding:.46rem;display:flex}.ride-item p,.alert-item p{margin:.12rem 0;font-size:.73rem}.ride-item small{color:var(--ink-500);font-size:.7rem}.ride-symbol{color:#fff;background:linear-gradient(145deg, var(--brand-primary), var(--brand-accent));border-radius:999px;flex-shrink:0;place-items:center;block-size:1.4rem;inline-size:1.4rem;font-size:.78rem;display:grid}.chip-button{border-radius:999px;align-items:center;width:auto;padding:.34rem .56rem;font-size:.72rem;text-decoration:none;display:inline-flex}.mobile-nav-preview{background:color-mix(in srgb, white 92%, var(--surface-muted) 8%);border:1px solid var(--line-soft);border-radius:.92rem;grid-template-columns:repeat(3,1fr);gap:.4rem;padding:.4rem;display:grid}.mobile-nav-preview button{border-radius:.65rem;padding:.5rem;font-size:.95rem}.mobile-nav-preview button.active{color:var(--brand-accent);border-color:color-mix(in srgb, var(--brand-accent) 42%, transparent)}.pass-widget{border:1px solid var(--line-soft);background:var(--surface-muted);border-radius:1rem;gap:.7rem;padding:.8rem;display:grid}.pass-widget-head{justify-content:space-between;align-items:center;gap:.4rem;display:flex}.pass-widget-head p{text-transform:uppercase;letter-spacing:.06em;color:var(--ink-500);margin:0;font-size:.7rem}.pass-widget-head span{color:var(--ink-600);font-size:.75rem}.pass-widget-route strong{font-size:1rem;display:block}.pass-widget-route p{margin:.3rem 0 0;font-size:.78rem}.pass-widget-times{grid-template-columns:repeat(auto-fit,minmax(90px,1fr));gap:.46rem;display:grid}.pass-widget-times article{border:1px solid var(--line-soft);background:#fff;border-radius:.7rem;padding:.48rem}.pass-widget-times span{color:var(--ink-500);font-size:.68rem;display:block}.pass-widget-times strong{font-size:.85rem}.pass-qr{border:1px dashed color-mix(in srgb, var(--brand-primary) 48%, transparent);background:#fff;border-radius:.9rem;place-items:center;gap:.35rem;padding:.8rem;display:grid}.pass-qr>div{mix-blend-mode:multiply;background:repeating-linear-gradient(0deg,#121212 0 8px,#fff 8px 16px),repeating-linear-gradient(90deg,#121212 0 8px,#fff 8px 16px);border-radius:.62rem;block-size:116px;inline-size:116px}.pass-qr p{color:var(--ink-500);margin:0;font-size:.73rem}.network-card-grid{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:.62rem;margin-bottom:.8rem;display:grid}.network-count-card{border:1px solid var(--line-soft);text-align:left;color:var(--ink-900);box-shadow:none;background:#fff;border-radius:.9rem;padding:.7rem}.network-count-card p{color:var(--ink-600);margin:0;font-size:.74rem}.network-count-card strong{letter-spacing:-.02em;margin-top:.24rem;font-size:1.38rem;display:block}.network-count-card span{color:var(--ink-500);margin-top:.18rem;font-size:.71rem;display:block}.network-count-card.active{border-color:color-mix(in srgb, var(--brand-primary) 40%, transparent);background:radial-gradient(120% 120% at 100% 0%, color-mix(in srgb, var(--brand-primary) 14%, transparent), transparent), white}.network-editor-form{border:1px solid var(--line-soft);background:color-mix(in srgb, var(--surface-muted) 46%, white 54%);border-radius:.92rem;margin-top:.25rem;padding:.75rem}.network-editor-modal{z-index:130;max-block-size:min(88dvh,920px);inline-size:min(980px,100vw - 2rem);box-shadow:0 0 0 100vmax #080e1e85, var(--shadow-lg);position:fixed;top:50%;left:50%;overflow:auto;transform:translate(-50%,-50%)}.network-editor-modal.fullscreen{block-size:calc(100dvh - 2rem);max-block-size:calc(100dvh - 2rem);inline-size:calc(100vw - 2rem);max-inline-size:none;top:1rem;left:1rem;transform:none}.network-editor-modal-head{justify-content:space-between;align-items:center;gap:.6rem;margin-bottom:.55rem;display:flex}.network-entity-grid{gap:.72rem;display:grid}.network-pane-head{justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.45rem;display:flex}.network-pane-head h3{margin:0;font-size:.92rem}.network-list-item{border:1px solid var(--line-soft);text-align:left;box-shadow:none;color:var(--ink-900);background:#fff;border-radius:.78rem;padding:.5rem .54rem}.network-list-item strong{font-size:.79rem;line-height:1.25;display:block}.network-list-item p{color:var(--ink-600);margin:.14rem 0 0;font-size:.72rem}.network-list-item small{color:var(--ink-500);margin-top:.1rem;font-size:.69rem;display:block}.network-list-item.selected{border-color:color-mix(in srgb, var(--brand-primary) 46%, transparent);background:radial-gradient(120% 90% at 0% 0%, color-mix(in srgb, var(--brand-primary) 10%, transparent), transparent), white}.dependency-precheck{border:1px dashed var(--line-soft);background:color-mix(in srgb, var(--surface-muted) 54%, white 46%);border-radius:.72rem;margin-top:.6rem;padding:.46rem .54rem}.dependency-precheck strong{color:var(--ink-800);margin:0;font-size:.74rem;display:block}.dependency-precheck ul{gap:.2rem;margin:.32rem 0 0;padding-left:1.1rem;display:grid}.dependency-precheck li{color:color-mix(in srgb, var(--danger) 88%, black 12%);margin:0;font-size:.74rem}.dependency-precheck.clear li{color:color-mix(in srgb, var(--good) 80%, black 20%)}.timetable-manager-shell{gap:.78rem;display:grid}.timetable-manager-header{border:1px solid var(--line-soft);background:radial-gradient(140% 120% at 100% 0%, color-mix(in srgb, var(--brand-primary) 10%, transparent), transparent), color-mix(in srgb, var(--surface-muted) 60%, white 40%);border-radius:1rem;gap:.54rem;padding:.82rem;display:grid}.timetable-manager-header h3{margin:0;font-size:1.22rem}.timetable-manager-grid{grid-template-columns:minmax(240px,.95fr) minmax(0,1fr);align-items:start;gap:.72rem;display:grid}.timetable-manager-card{border:1px solid var(--line-soft);background:linear-gradient(180deg, color-mix(in srgb, var(--surface-muted) 42%, white 58%), color-mix(in srgb, var(--surface-strong) 95%, white 5%));border-radius:.95rem;padding:.74rem}.timetable-manager-card h4{margin:0;font-size:1rem}.timetable-existing-card{min-block-size:300px}.timetable-existing-list{gap:.44rem;margin-top:.65rem;display:grid}.timetable-existing-item{border:1px solid var(--line-soft);color:var(--ink-900);text-align:left;background:#fff;border-radius:.78rem;justify-content:space-between;align-items:center;gap:.5rem;padding:.54rem .56rem;display:flex}.timetable-existing-item strong{font-size:.81rem;display:block}.timetable-existing-item p{color:var(--ink-500);margin:.12rem 0 0;font-size:.73rem}.timetable-existing-item.selected{border-color:color-mix(in srgb, var(--brand-primary) 52%, transparent);background:radial-gradient(110% 100% at 100% 0%, color-mix(in srgb, var(--brand-primary) 12%, transparent), transparent), white}.timetable-setup-card{grid-column:1/-1;gap:.58rem;margin-top:0;display:grid}.trip-chip-row{flex-wrap:wrap;gap:.34rem;display:flex}.trip-chip{border:1px solid var(--line-soft);color:var(--ink-700);background:#fff;border-radius:999px;padding:.22rem .62rem;font-size:.72rem;font-weight:640}.trip-chip.active{border-color:color-mix(in srgb, var(--brand-primary) 58%, transparent);color:var(--brand-dark);background:color-mix(in srgb, var(--brand-primary) 10%, white 90%)}.timetable-setup-inline{grid-template-columns:repeat(2,minmax(0,1fr))}.timetable-setup-actions{margin-top:.1rem}.timetable-matrix-card{gap:.5rem;display:grid}.timetable-matrix-table th,.timetable-matrix-table td{white-space:nowrap}.timetable-matrix-table{table-layout:fixed;min-width:860px}.timetable-matrix-table th:first-child,.timetable-matrix-table td:first-child{text-align:left;inline-size:320px}.timetable-matrix-table th:not(:first-child),.timetable-matrix-table td:not(:first-child){text-align:center}.timetable-col-head{justify-items:center;gap:.24rem;inline-size:fit-content;margin-inline:auto;display:grid}.timetable-col-head input[type=time]{text-align:center;inline-size:90px;min-inline-size:90px;padding:.24rem .34rem;font-size:.73rem}.timetable-col-remove{padding:.18rem .46rem;font-size:.66rem}.timetable-matrix-table td strong{font-size:.8rem;display:block}.timetable-matrix-table td p{color:var(--ink-500);margin:.12rem 0 0;font-size:.71rem}.route-builder-widget{border:1px solid var(--line-soft);background:radial-gradient(140% 120% at 100% 0%, color-mix(in srgb, var(--brand-accent) 11%, transparent), transparent), color-mix(in srgb, var(--surface-muted) 64%, white 36%);border-radius:1rem;padding:.82rem}.route-builder-head{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.route-builder-path{border:1px dashed color-mix(in srgb, var(--brand-primary) 36%, transparent);background:color-mix(in srgb, white 88%, var(--surface-muted) 12%);border-radius:.9rem;gap:.52rem;min-height:130px;padding:.7rem;display:grid}.route-builder-empty{color:var(--ink-500);margin:0;font-size:.75rem}.route-node{grid-template-columns:auto 1fr;align-items:start;gap:.54rem;display:grid}.route-node-rail{flex-direction:column;align-items:center;inline-size:1.1rem;display:flex;position:relative}.route-node-pin{border:2px solid var(--brand-primary);background:#fff;border-radius:999px;block-size:.8rem;inline-size:.8rem}.route-node-pin.start{background:color-mix(in srgb, var(--brand-primary) 20%, white 80%);border-color:color-mix(in srgb, var(--brand-primary) 70%, var(--brand-dark) 30%)}.route-node-link{background:color-mix(in srgb, var(--brand-primary) 34%, var(--line-soft) 66%);border-radius:999px;min-block-size:1.8rem;inline-size:2px;margin-top:.15rem}.route-node-body{border:1px solid var(--line-soft);background:#fff;border-radius:.78rem;padding:.46rem .55rem}.route-node-body strong{font-size:.8rem;line-height:1.2;display:block}.route-node-body p{color:var(--ink-500);margin:.16rem 0 0;font-size:.72rem}.route-builder-add{color:var(--brand-dark);align-items:center;gap:.4rem;margin-top:.12rem;font-size:.79rem;font-weight:640;display:inline-flex}.route-plus{border:1px solid color-mix(in srgb, var(--brand-primary) 36%, transparent);block-size:1.1rem;inline-size:1.1rem;color:var(--brand-primary);background:color-mix(in srgb, white 78%, var(--surface-muted) 22%);border-radius:999px;place-items:center;display:grid}.route-builder-controls{grid-template-columns:minmax(0,2.2fr) minmax(120px,1fr)}.route-calling-widget{border:1px solid var(--line-soft);background:radial-gradient(130% 90% at 100% 0%, color-mix(in srgb, var(--brand-primary) 10%, transparent), transparent), color-mix(in srgb, var(--surface-muted) 48%, white 52%);border-radius:.92rem;gap:.58rem;padding:.72rem;display:grid}.route-calling-head{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.route-calling-head h4{margin:0;font-size:.9rem}.route-calling-list{gap:.56rem;display:grid}.route-calling-item{grid-template-columns:1.2rem 1fr;align-items:start;gap:.55rem;display:grid}.route-calling-rail{flex-direction:column;align-items:center;inline-size:1.2rem;display:flex}.route-calling-dot{border:2px solid var(--brand-primary);background:#fff;border-radius:999px;block-size:.82rem;inline-size:.82rem}.route-calling-dot.start{border-color:color-mix(in srgb, var(--brand-primary) 70%, var(--brand-dark) 30%);background:color-mix(in srgb, var(--brand-primary) 18%, white 82%)}.route-calling-dot.end{border-color:color-mix(in srgb, var(--danger) 64%, transparent);background:color-mix(in srgb, var(--danger) 14%, white 86%)}.route-calling-link{background:color-mix(in srgb, var(--brand-primary) 35%, var(--line-soft) 65%);border-radius:999px;min-block-size:1.9rem;inline-size:2px;margin-top:.14rem}.route-calling-body{border:1px solid var(--line-soft);background:#fff;border-radius:.78rem;gap:.42rem;padding:.52rem .56rem;display:grid}.route-calling-fields{grid-template-columns:minmax(0,1.65fr) minmax(150px,1fr);gap:.52rem;display:grid}.stops-manager-layout{grid-template-columns:1fr;align-items:start;gap:.82rem;display:grid}.stops-manager-main{grid-template-columns:minmax(0,.4fr) minmax(0,.6fr);gap:.82rem;display:grid}.stops-manager-card{border:1px solid var(--line-soft);background:linear-gradient(180deg, color-mix(in srgb, var(--surface-muted) 52%, white 48%), color-mix(in srgb, var(--surface-strong) 92%, white 8%));border-radius:1rem;padding:.8rem}.stops-manager-card h3{margin:0;font-size:.93rem}.stops-manager-card-head{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.stop-lookup-field{gap:.42rem;display:grid}.stop-lookup-control{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.5rem;display:grid}.stop-lookup-clear{white-space:nowrap}.stop-lookup-results{border:1px solid color-mix(in srgb, var(--line-soft) 84%, white 16%);background:color-mix(in srgb, white 88%, var(--surface-muted) 12%);border-radius:.86rem;gap:.42rem;max-block-size:280px;padding:.48rem;display:grid;overflow:auto}.stop-lookup-result{text-align:left;border:1px solid color-mix(in srgb, var(--line-soft) 82%, white 18%);width:100%;color:inherit;background:#fff;border-radius:.78rem;gap:.28rem;padding:.62rem .7rem;display:grid}.stop-lookup-result:hover,.stop-lookup-result:focus-visible{border-color:color-mix(in srgb, var(--brand-primary) 42%, white 58%);background:color-mix(in srgb, var(--brand-primary-soft) 22%, white 78%)}.stop-lookup-result strong,.stop-lookup-result p{margin:0}.stop-lookup-result p{color:var(--text-dim);font-size:.79rem;line-height:1.4}.stop-lookup-result-meta{flex-wrap:wrap;gap:.35rem;display:flex}.stops-map-preview{border:1px solid color-mix(in srgb, var(--line-soft) 84%, white 16%);background:#fff;border-radius:.86rem;gap:.44rem;padding:.42rem;display:grid;overflow:hidden}.stops-map-canvas{border:1px solid color-mix(in srgb, var(--line-soft) 84%, white 16%);background:#e5edf8;border-radius:.72rem;block-size:250px;overflow:hidden}.stops-map-canvas .leaflet-container{block-size:100%;inline-size:100%;font:inherit}.app-shell .leaflet-map-pane{z-index:10}.app-shell .leaflet-tile-pane{z-index:20}.app-shell .leaflet-overlay-pane{z-index:30}.app-shell .leaflet-shadow-pane{z-index:40}.app-shell .leaflet-marker-pane{z-index:50}.app-shell .leaflet-tooltip-pane{z-index:60}.app-shell .leaflet-popup-pane{z-index:70}.app-shell .leaflet-top,.app-shell .leaflet-bottom{z-index:80}.stops-map-meta{gap:.18rem;display:grid}.stops-map-meta p{color:var(--brand-dark);margin:0;font-size:.79rem;font-weight:650}.stops-map-meta small{color:var(--ink-600);margin:0;font-size:.72rem}.stops-manager-actions{border-top:1px dashed var(--line-soft);padding-top:.5rem}.form-modal-overlay{z-index:120;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#080e1e85;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.form-modal-card{border:1px solid var(--line-soft);background:var(--surface-strong);width:min(760px,100%);max-height:min(88dvh,860px);box-shadow:var(--shadow-lg);border-radius:1rem;padding:.85rem;overflow:auto}.form-modal-card.fullscreen{width:min(100%,100vw - 2rem);max-width:none;block-size:calc(100dvh - 2rem);max-height:calc(100dvh - 2rem)}.form-modal-head{justify-content:space-between;align-items:center;gap:.7rem;margin-bottom:.75rem;display:flex}.form-modal-head h3{margin:0;font-size:1rem}.global-progress-overlay{z-index:1000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#080e1e38;place-items:center;display:grid;position:fixed;inset:0}.global-progress-card{border:1px solid var(--line-soft);background:color-mix(in srgb, var(--surface-strong) 94%, white 6%);min-width:180px;box-shadow:var(--shadow-lg);color:var(--ink-900);border-radius:1rem;align-items:center;gap:.75rem;padding:.9rem 1rem;display:inline-flex}.global-progress-card strong{font-size:.92rem}.global-progress-spinner{border:2px solid color-mix(in srgb, var(--brand-primary) 22%, white 78%);border-top-color:var(--brand-primary);border-radius:50%;block-size:1.2rem;inline-size:1.2rem;animation:.75s linear infinite global-progress-spin}@keyframes global-progress-spin{to{transform:rotate(360deg)}}@media (height<=860px) and (width>=1024px){.topbar{margin:.65rem 1rem .45rem;padding:.14rem .82rem;top:.35rem}.toolbar{gap:.62rem;padding:.72rem}.tabbar{margin-top:.42rem}.content-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:.75rem;padding:.72rem 1rem 1rem}.panel{min-height:160px;padding:.82rem}}@media (width<=1024px){.app-shell{grid-template-rows:auto auto auto auto}.topbar{margin-top:.75rem;position:static}.topbar-sub{max-width:100%}.toolbar-pulse{grid-template-columns:repeat(auto-fit,minmax(130px,1fr))}.content-grid{grid-template-columns:1fr}.content-grid.content-grid--stacked>.panel:first-child,.content-grid.content-grid--stacked>.panel+.panel{min-height:0}.timetable-manager-grid,.stops-manager-layout,.stops-manager-main{grid-template-columns:1fr}.network-editor-modal{max-block-size:90dvh;inline-size:calc(100vw - 1rem)}.control-room-layout{grid-template-columns:1fr}.control-room-map-wrap,.control-room-map{min-block-size:300px}}@media (width<=640px){.topbar,.toolbar,.tabbar,.content-grid,.app-error{margin-left:.72rem;margin-right:.72rem}.content-grid{padding-left:0;padding-right:0}.panel,.mobile-preview{border-radius:.95rem}.toolbar-filters{grid-template-columns:1fr}.ride-item,.alert-item{align-items:flex-start}.chip-button{align-self:center}.network-card-grid,.route-builder-controls,.route-calling-fields,.timetable-setup-inline,.stops-manager-main{grid-template-columns:1fr}.control-room-map-wrap,.control-room-map{min-block-size:240px}}
