:root{--app-font: "DM Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--heading-font: "Manrope", "DM Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--success: #16a34a;--warning: #f59e0b;--danger: #dc2626;--inactive: #6b7280;--shadow: 0 15px 45px rgba(0,0,0,.35)}html[data-theme=dark]{--primary: #a78bfa;--primary-dark: #6d28d9;--background: #07090e;--surface: #0f1322;--surface-accent: #171d34;--border: #242c4c;--grid-line: #3a4673;--text: #f3f4f6;--text-strong: #ffffff;--muted: #9ca3af;--fids-amber: #f59e0b;--time-color: #e5e7eb;--next-departure-accent: #fbbf24;--next-departure-bg: #29210e}html[data-theme=light]{--primary: #2563eb;--primary-dark: #1e40af;--background: #d9e0e8;--surface: #f5f7fa;--surface-accent: #e8edf3;--border: #c8d0da;--grid-line: #c3ccd8;--text: #334155;--text-strong: #172033;--muted: #64748b;--fids-amber: #8a5a12;--time-color: #243247;--next-departure-accent: #9a3412;--next-departure-bg: #ffedd5;--shadow: 0 10px 24px rgba(41, 55, 78, .11)}html[data-theme=light] #header,html[data-theme=light] .footer-bar-container,html[data-theme=light] .single-fids-board,html[data-theme=light] .routes-card-box,html[data-theme=light] .schedule-workspace-board{box-shadow:0 10px 24px #29374e17}html[data-theme=light] .nav-btn.active{background:#fff;box-shadow:none}html[data-theme=light] .theme-btn,html[data-theme=light] #nextDepartureCard,html[data-theme=light] .fids-cycle-indicator-tag{background:#eef2f7}*{box-sizing:border-box;margin:0;padding:0;font-family:var(--app-font)}h1,h2,h3,h4,h5,h6,.header-title,.content-title,.service-title,.section-head-title,.name,#companyName,#selectedRoute,.single-fids-header h2,.workspace-meta-details h2,.workspace-meta-details h3,.empty-title,.schedule-status-popup-title,.sound-permission-title,.ticker-title,.route-label-pill{font-family:var(--heading-font)}body{background:var(--background);color:var(--text);height:100vh;overflow:hidden;font-size:14px;line-height:1.5}#app{height:100vh;display:flex;flex-direction:column;overflow:hidden;padding-bottom:64px}.main-viewport-body{padding-bottom:64px}body.react-home-mode{min-height:100vh;height:auto;color:#f5f7fb;background:#080a10;display:flex;flex-direction:column;overflow-x:hidden;overflow-y:auto}body.react-home-mode:before{content:"";position:fixed;inset:0;pointer-events:none;background:linear-gradient(135deg,rgba(125,211,252,.11),transparent 30%),linear-gradient(180deg,rgba(255,255,255,.035),transparent 42%)}.react-home{--home-panel: #101624;--home-panel-soft: #151c2d;--home-panel-lift: #1b2437;--home-border: #273149;--home-border-strong: #394765;--home-muted: #9ca7b8;--home-muted-strong: #c6ceda;--home-primary: #7dd3fc;--home-success: #22c55e;--home-shadow: 0 22px 60px rgba(0, 0, 0, .34);min-height:100vh;display:flex;flex-direction:column;color:#f5f7fb}.react-home .header{position:relative;z-index:1;min-height:76px;padding:16px 28px;display:flex;align-items:center;justify-content:space-between;gap:18px;background:#101624eb;border-bottom:1px solid var(--home-border);backdrop-filter:blur(12px)}.react-home .brand-lockup{display:flex;align-items:center;gap:12px;min-width:0}.react-home .header-title{font-size:24px;font-weight:800;line-height:1;color:#fff;letter-spacing:-.45px}.react-home .header-kicker{margin-top:4px;color:var(--home-muted);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.75px;margin-bottom:0}.react-home .header-clock{min-width:0;display:flex;align-items:center;justify-content:flex-end;gap:10px;white-space:nowrap}.react-home .clock-time{width:11ch;color:#f8fafc;font-family:var(--heading-font);font-size:24px;font-weight:800;line-height:1;letter-spacing:0;text-align:center;text-transform:uppercase;font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1,"lnum" 1}.react-home .container{position:relative;z-index:1;flex:1;width:min(960px,100%);margin:0 auto;padding:34px 24px 28px;display:block}.react-home .overview-panel,.react-home .service-panel{border:1px solid var(--home-border);background:#101624f0;box-shadow:var(--home-shadow);border-radius:8px}.react-home .home-intro{padding:30px 28px 26px;border-bottom:1px solid var(--home-border)}.react-home .eyebrow{color:var(--home-primary);font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:1px;margin-bottom:12px}.react-home .content-title{max-width:640px;font-size:clamp(34px,5vw,56px);font-weight:900;line-height:.98;color:#fff}.react-home .content-subtitle{max-width:680px;color:var(--home-muted-strong);font-size:14px;line-height:1.65;margin-top:16px;font-weight:600}.react-home .service-panel{display:flex;flex-direction:column;overflow:hidden}.react-home .service-panel-head{padding:18px 20px;border-bottom:1px solid var(--home-border);background:var(--home-panel-soft);display:flex;align-items:center;justify-content:space-between;gap:14px}.react-home .service-title{color:#fff;font-size:15px;font-weight:900;text-transform:uppercase;letter-spacing:.55px}.react-home .service-count{color:var(--home-muted);font-size:11px;font-weight:800;white-space:nowrap}.react-home .grid{display:flex;flex-direction:column;gap:10px;padding:14px}.react-home .operator-card{position:relative;min-height:82px;background:var(--home-panel);border:1px solid var(--home-border);border-radius:8px;padding:16px 48px 16px 18px;display:flex;align-items:center;text-decoration:none;color:inherit;transition:transform .18s ease,border-color .18s ease,background .18s ease,box-shadow .18s ease}.react-home .operator-card:before{content:"";position:absolute;inset:14px auto 14px 0;width:3px;border-radius:0 999px 999px 0;background:var(--home-primary)}.react-home .operator-card:after{content:">";position:absolute;right:18px;top:50%;transform:translateY(-50%);color:var(--home-primary);font-size:26px;font-weight:700;line-height:1}.react-home .operator-card:hover,.react-home .operator-card:focus-visible{transform:translateY(-2px);border-color:var(--home-border-strong);background:var(--home-panel-lift);box-shadow:0 14px 28px #0003;outline:none}.react-home .meta{min-width:0;text-align:left}.react-home .name{color:#fff;font-size:16px;font-weight:900;line-height:1.2;overflow-wrap:anywhere}.react-home .desc{color:var(--home-muted);font-size:11px;margin-top:6px;font-weight:800;text-transform:uppercase;letter-spacing:.65px;overflow-wrap:anywhere}.react-home .empty-state{margin:14px;text-align:center;padding:48px 20px;border:1px dashed var(--home-border-strong);border-radius:8px;background:#151c2d99}.react-home .empty-title{font-size:17px;font-weight:900;color:#fff;margin-bottom:8px}.react-home .empty-text{color:var(--home-muted);font-size:13px;font-weight:600}.react-home .support-link{display:inline-block;margin-top:12px;color:var(--home-primary);text-decoration:none;font-size:12px;font-weight:800}.react-home footer{position:relative;z-index:1;background:#101624f0;border-top:1px solid var(--home-border);padding:14px 24px;text-align:center;margin-top:auto}.react-home .home-footer-inner{width:min(1180px,100%);margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:20px}.react-home .home-copyright{color:var(--home-muted);font-family:var(--app-font);font-size:12.8px;font-weight:400;letter-spacing:0}.react-home .footer-link{color:var(--home-muted);text-decoration:none;font-family:var(--app-font);font-size:12.8px;font-weight:400;text-transform:none;letter-spacing:0;transition:color .2s ease}.react-home .footer-link:hover{color:var(--home-primary)}.react-home .platform-version{color:var(--home-muted);font-weight:400}html.home-entry #loadingScreen,#homeShell{display:none}html.home-entry #homeShell{display:flex}.react-home .header{display:grid;grid-template-columns:1fr auto 1fr;padding:16px max(24px,calc((100vw - 1180px)/2))}.react-home .brand-lockup{color:inherit;text-decoration:none}.react-home .home-nav{display:flex;align-items:center;justify-content:center;gap:28px}.react-home .home-nav a{color:var(--home-muted-strong);font-family:var(--app-font);font-size:14px;font-weight:400;text-decoration:none}.react-home .home-nav a:hover,.react-home .home-nav a:focus-visible{color:var(--home-primary)}.react-home .header-clock{justify-self:end}.react-home .home-header-actions{justify-self:end;display:flex;align-items:center;gap:14px}.react-home .container{width:min(1180px,100%);display:grid;grid-template-columns:minmax(0,1.65fr) minmax(310px,.85fr);gap:26px;align-items:stretch}.react-home .home-content-column{display:flex;flex-direction:column;gap:28px;min-width:0}.react-home .home-intro{padding:26px 2px 6px;border:0}.react-home .content-title{font-size:clamp(36px,5vw,62px);max-width:720px}.react-home .service-panel{min-height:520px}.react-home .news-preview{margin-top:auto;padding:24px;border:1px solid var(--home-border);border-radius:8px;background:#101624f0;box-shadow:var(--home-shadow)}.react-home .section-label{color:var(--home-primary);font-size:10px;font-weight:900;letter-spacing:1px;text-transform:uppercase}.react-home .news-preview h2{margin:6px 0 16px;color:#fff;font-size:22px}.react-home .news-preview-card{display:flex;align-items:flex-end;justify-content:space-between;gap:22px;padding-top:16px;border-top:1px solid var(--home-border)}.react-home .news-date{color:var(--home-muted);font-size:10px;font-weight:800;text-transform:uppercase}.react-home .news-preview-card h3{margin:5px 0;color:#fff;font-size:17px}.react-home .news-preview-card p{max-width:560px;margin:0;color:var(--home-muted-strong);font-size:12px;line-height:1.55}.react-home .news-preview-card a,.react-home .view-all-news{flex:none;color:var(--home-primary);font-size:11px;font-weight:900;text-decoration:none}.react-home .view-all-news{display:inline-block;margin-top:18px}.react-home .operator-skeleton{display:block;pointer-events:none;overflow:hidden}.react-home .operator-skeleton:after{content:"";position:absolute;inset:0;transform:translate(-100%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.07),transparent);animation:home-skeleton 1.35s infinite}.react-home .skeleton-line{border-radius:4px;background:var(--home-panel-lift)}.react-home .skeleton-name{width:62%;height:16px;margin:4px 0 12px}.react-home .skeleton-desc{width:82%;height:10px}@keyframes home-skeleton{to{transform:translate(100%)}}html[data-theme=light] body.react-home-mode{color:#334155;background:#eef2f7}html[data-theme=light] body.react-home-mode:before{background:linear-gradient(135deg,rgba(37,99,235,.08),transparent 32%)}html[data-theme=light] .react-home{--home-panel:#ffffff;--home-panel-soft:#f4f7fb;--home-panel-lift:#eef3f8;--home-border:#cbd5e1;--home-border-strong:#94a3b8;--home-muted:#64748b;--home-muted-strong:#475569;--home-primary:#2563eb;--home-shadow:0 18px 48px rgba(51,65,85,.12);color:#334155}html[data-theme=light] .react-home .header,html[data-theme=light] .react-home footer{background:#fffffff0}html[data-theme=light] .react-home .header-title,html[data-theme=light] .react-home .content-title,html[data-theme=light] .react-home .service-title,html[data-theme=light] .react-home .news-preview h2,html[data-theme=light] .react-home .news-preview-card h3,html[data-theme=light] .react-home .name,html[data-theme=light] .react-home .clock-time{color:#172033}html[data-theme=light] .react-home .service-panel,html[data-theme=light] .react-home .news-preview{background:#fffffff5}#header{background:var(--surface);border-bottom:1px solid var(--border);padding:12px 24px;display:grid;gap:16px;align-items:center;position:sticky;top:0;z-index:1000;grid-template-columns:minmax(200px,1fr) auto minmax(200px,1fr);grid-template-areas:"company view-controls header-right" "announcement announcement announcement";justify-items:stretch}#header .company{grid-area:company;justify-self:start}#header .view-controls{grid-area:view-controls;justify-self:center}#header .header-right{grid-area:header-right;justify-self:end}#announcementBar{grid-area:announcement;width:100%}.company{display:flex;align-items:center;gap:14px}#companyLogo{height:60px;width:60px;object-fit:contain;border-radius:6px;background:transparent}.logo-fallback{height:40px;width:40px;border-radius:6px;background:var(--surface-accent);border:1px solid var(--border);color:var(--text-strong);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:900;flex-shrink:0}#companyName{font-size:20px;font-weight:900;color:var(--text-strong);letter-spacing:0;line-height:1.1;text-transform:none}#companyTagline{font-family:var(--app-font);font-size:14px;color:var(--muted);font-weight:400;margin-top:1px;text-transform:none;letter-spacing:0}.view-controls{display:flex;background:var(--surface-accent);padding:4px;border-radius:8px;border:1px solid var(--border);gap:4px}.nav-btn{background:transparent;border:none;padding:8px 18px;font-family:var(--app-font);font-size:14px;font-weight:400;color:var(--muted);cursor:pointer;border-radius:6px;transition:all .2s ease;text-transform:none;letter-spacing:0}.nav-btn.active{background:var(--background);color:var(--text-strong);box-shadow:0 2px 8px #00000026;border:1px solid var(--border)}.header-right{display:flex;align-items:center;gap:14px}.refresh-cycle-indicator{appearance:none;position:relative;width:36px;height:36px;flex:0 0 36px;padding:0;border-radius:50%;display:grid;place-items:center;color:var(--primary);border:3px solid var(--primary);background:transparent;font-family:inherit;font-size:13px;font-weight:900;line-height:1}.refresh-cycle-indicator.audio-control{cursor:pointer;transition:color .18s ease,background .18s ease,transform .18s ease}.refresh-cycle-indicator.audio-control:hover{background:color-mix(in srgb,var(--primary) 12%,transparent);transform:scale(1.05)}.refresh-cycle-indicator.audio-control:focus-visible{outline:2px solid var(--primary);outline-offset:3px}.refresh-cycle-indicator.audio-control:after{content:"Play";position:absolute;right:-7px;bottom:-6px;min-width:17px;height:13px;padding:0 3px;border-radius:999px;display:grid;place-items:center;color:var(--primary-contrast, #fff);background:var(--primary);border:2px solid var(--background);font-size:6px;font-weight:900;line-height:1;text-transform:uppercase}.refresh-cycle-indicator.audio-control.is-playing:after{content:"Pause"}.theme-btn{width:38px;height:38px;flex:0 0 38px;padding:0;border:1px solid var(--border);border-radius:8px;cursor:pointer;color:var(--text);background:var(--surface-accent);display:grid;place-items:center;transition:color .18s ease,background .18s ease,border-color .18s ease,transform .18s ease}.theme-btn:hover{transform:translateY(-1px);border-color:var(--primary)}.theme-btn:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.theme-icon{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}html[data-theme=dark] .theme-btn{background:#1d263d;border-color:#52617e;color:#fbbf24;box-shadow:0 0 0 1px #fbbf2414}html[data-theme=light] .theme-btn{background:#fff;border-color:#94a3b8;color:#334155;box-shadow:0 2px 7px #3341551f}html[data-theme=dark] .theme-moon,html[data-theme=light] .theme-sun{display:none}.clock-display{min-height:34px;display:flex;align-items:center;justify-content:flex-end;gap:12px;min-width:0;text-align:right;white-space:nowrap}#currentTime,#currentDate{font-family:var(--heading-font);font-size:clamp(15px,1.45vw,21px);font-weight:800;line-height:1;letter-spacing:0;white-space:nowrap;font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1,"lnum" 1}#currentTime{width:11ch;color:var(--text-strong);text-align:right}#currentDate{width:14ch;color:var(--muted);text-align:left;text-transform:uppercase;margin-top:0}#announcementBar{background:var(--marquee-bg, var(--primary));color:var(--marquee-text, #ffffff);height:32px;display:flex;align-items:center;overflow:hidden;position:relative;border-bottom:1px solid rgba(0,0,0,.1);flex-shrink:0}.ticker-title{background:var(--marquee-label-bg, rgba(0, 0, 0, .25));color:var(--marquee-label-text, #ffffff);padding:0 16px;height:100%;display:flex;align-items:center;font-size:11px;font-weight:900;letter-spacing:1px;text-transform:uppercase;z-index:10;box-shadow:5px 0 15px #00000026}.ticker-wrap{flex:1;overflow:hidden;display:flex;align-items:center}#ticker{display:inline-block;white-space:nowrap;font-size:13px;font-weight:600;letter-spacing:.15px;color:inherit;padding-left:100%;text-transform:none;animation:marquee var(--ticker-duration, 45s) linear infinite}.ticker-item{display:inline-block}.ticker-gap{display:inline-block;width:clamp(80px,14vw,220px)}@keyframes marquee{0%{transform:translateZ(0)}to{transform:translate3d(-100%,0,0)}}.main-viewport-body{flex:1;padding:20px;overflow:hidden;background:var(--background);position:relative}body.selection-mode .main-viewport-body{overflow-y:auto}.view-panel{width:100%;display:flex;flex-direction:column}#dashboardView{height:100%;overflow:hidden!important}#selectionView{overflow:visible!important;height:auto!important;max-height:none!important}.view-panel.hidden{display:none!important}.single-fids-board{background:var(--surface);border:1px solid var(--grid-line);border-radius:8px;height:100%;display:flex;flex-direction:column;overflow:hidden;box-shadow:var(--shadow);container-type:inline-size;container-name:board;width:100%}.single-fids-header{background:var(--surface-accent);border-bottom:2px solid var(--grid-line);padding:14px 24px;display:flex;align-items:center;justify-content:space-between;flex-shrink:0;gap:18px}.fids-main-title-info{display:flex;align-items:center;gap:14px;min-width:0}.route-label-pill{color:#fff;padding:4px 10px;border-radius:6px;font-size:10px;font-weight:900;letter-spacing:.5px;text-transform:uppercase}.fids-route-title-stack{min-width:0;display:grid;gap:4px}.single-fids-header h2{font-size:22px;font-weight:900;color:var(--text-strong);letter-spacing:0;line-height:1.08;overflow-wrap:anywhere}.fids-route-title-stack p{color:var(--muted);font-size:12px;font-weight:700;line-height:1.25;overflow-wrap:anywhere}.fids-header-meta{display:flex;align-items:stretch;justify-content:flex-end;gap:8px;flex-shrink:0}.fids-fare-tag{min-width:148px;display:grid;align-content:center;gap:4px;color:#fff;background:var(--primary);padding:8px 14px;border-radius:8px;border:1px solid var(--primary);white-space:nowrap;box-shadow:inset 0 -1px #0000002e}.fids-fare-link{text-decoration:none;cursor:pointer;transition:filter .15s ease,transform .15s ease}.fids-fare-link:hover,.fids-fare-link:focus-visible{filter:brightness(1.08);transform:translateY(-1px);outline:none}.fids-fare-label{font-size:9px;font-weight:900;letter-spacing:.5px;text-transform:uppercase;opacity:.82;line-height:1;text-align:left}.fids-fare-value-main{font-size:22px;font-weight:900;color:#fff;line-height:1}.fids-fare-tag-mobile{display:none}.fids-cycle-indicator-tag{font-size:11px;font-weight:700;color:var(--muted);background:var(--background);padding:4px 10px;border-radius:6px;border:1px solid var(--border)}.fids-single-column,.column-block{flex:1;display:flex;flex-direction:column;overflow:hidden}.fids-columns-grid{flex:1;display:grid;grid-template-columns:1fr 1fr!important;gap:0;overflow:hidden;width:100%}.fids-columns-grid .column-block{width:100%}.fids-columns-grid .column-block:first-child{border-right:1px solid var(--border)}.dashboard-cards-grid{position:relative;flex:1;min-height:0;display:grid;grid-template-columns:repeat(var(--dashboard-card-count, 1),minmax(0,1fr));gap:0;overflow:hidden;width:100%}.dashboard-card-block{min-width:0;border-right:2px solid var(--grid-line)}.dashboard-card-block:last-child{border-right:0}.operator-qr-prompt{--qr-target-size: clamp(48px, calc(32px + var(--qr-row-span) * 24px), 152px);--qr-target-width: clamp(250px, calc(220px + var(--qr-row-span) * 34px), 390px);position:fixed;right:18px;bottom:46px;z-index:100;width:235px;min-height:58px;padding:9px 11px;display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:14px;overflow:hidden;border:1px solid var(--primary);border-radius:12px;background:color-mix(in srgb,var(--surface) 97%,transparent);box-shadow:0 14px 36px #00000061;opacity:0;visibility:hidden;transform:translateY(34px) scale(.9);transform-origin:bottom right;transition:width .55s cubic-bezier(.2,.8,.2,1),min-height .55s cubic-bezier(.2,.8,.2,1),opacity .22s ease,transform .55s cubic-bezier(.2,.8,.2,1),visibility .22s;pointer-events:none}.operator-qr-prompt.is-visible{width:min(var(--qr-target-width),calc(100% - 24px));min-height:calc(var(--qr-target-size) + 20px);opacity:1;visibility:visible;transform:translateY(0) scale(1)}.operator-qr-prompt strong{flex:1;min-width:0;color:var(--text-strong);font-family:var(--heading-font);font-size:clamp(12px,calc(10px + var(--qr-row-span) * 1.1px),17px);line-height:1.15;text-align:left}.operator-qr-prompt img{flex:0 0 auto;display:block;width:38px;height:38px;padding:4px;border-radius:7px;background:#fff;object-fit:contain;transition:width .55s cubic-bezier(.2,.8,.2,1),height .55s cubic-bezier(.2,.8,.2,1)}.operator-qr-prompt.is-visible img{width:var(--qr-target-size);height:var(--qr-target-size)}.single-fids-table-headings,.single-fids-row,.timeline-title,.schedule-row{display:grid!important;padding:10px var(--schedule-row-padding-x, 18px);gap:var(--schedule-row-gap, 12px);width:100%;align-items:center;justify-content:stretch}.single-fids-table-headings:has(>:first-child:last-child),.single-fids-row:has(>:first-child:last-child),.timeline-title:has(>:first-child:last-child),.schedule-row:has(>:first-child:last-child),.schedule-columns-1{grid-template-columns:1fr!important}.single-fids-table-headings:has(>:nth-child(2):last-child),.single-fids-row:has(>:nth-child(2):last-child),.timeline-title:has(>:nth-child(2):last-child),.schedule-row:has(>:nth-child(2):last-child),.schedule-columns-2{grid-template-columns:9fr 11fr!important}.single-fids-table-headings:has(>:nth-child(3):last-child),.single-fids-row:has(>:nth-child(3):last-child),.timeline-title:has(>:nth-child(3):last-child),.schedule-row:has(>:nth-child(3):last-child),.schedule-columns-3{grid-template-columns:3fr 3fr 4fr!important}.single-fids-table-headings:has(>:nth-child(4):last-child),.single-fids-row:has(>:nth-child(4):last-child),.timeline-title:has(>:nth-child(4):last-child),.schedule-row:has(>:nth-child(4):last-child),.schedule-columns-4{grid-template-columns:5fr 4fr 4fr 7fr!important}.single-fids-table-headings:has(>:nth-child(5):last-child),.single-fids-row:has(>:nth-child(5):last-child),.timeline-title:has(>:nth-child(5):last-child),.schedule-row:has(>:nth-child(5):last-child),.schedule-columns-5{grid-template-columns:1.25fr 1fr 1fr 1fr 1.75fr!important}.single-fids-table-headings{background:var(--surface-accent);border-bottom:2px solid var(--grid-line);flex-shrink:0}.single-fids-table-headings span{font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.3px;min-width:0;line-height:1.12;text-align:left}.fids-adaptive-flow-container{flex:1;min-height:0;overflow:hidden;width:100%;display:grid;grid-template-rows:repeat(var(--dashboard-row-count, 10),1fr)!important}.single-fids-row{min-height:0!important;height:100%!important;padding:var(--schedule-row-padding-y, 4px) var(--schedule-row-padding-x, 18px);border-bottom:1px solid var(--grid-line);transition:background .15s ease}.single-fids-row:nth-child(2n):not(.single-fids-row-empty),.schedule-row:nth-child(2n){background:color-mix(in srgb,var(--surface-accent) 58%,transparent)}.single-fids-row.is-next-departure{background:var(--next-departure-bg)!important;box-shadow:inset 5px 0 0 var(--next-departure-accent)}.single-fids-row:hover,.schedule-row:hover{background:var(--surface-accent)}.single-fids-row:last-child{border-bottom:none}.single-fids-row-empty{pointer-events:none;opacity:.75}.single-fids-row span,.single-fids-row strong,.timeline-title span,.schedule-row>div{font-family:var(--app-font);font-weight:700!important;min-width:0;width:100%;line-height:1.15;text-align:left;white-space:normal!important;overflow:visible!important;text-overflow:unset!important;word-break:break-word}.single-fids-row strong{font-weight:900!important;letter-spacing:.03em}.next-departure-status-cycle{position:relative;display:grid;align-items:center;min-height:1.15em}.next-departure-status-cycle strong{grid-area:1 / 1;white-space:nowrap!important;animation-duration:10s;animation-timing-function:step-end;animation-iteration-count:infinite}.next-departure-status-available{animation-name:show-available-status}.next-departure-status-label{color:var(--next-departure-accent)!important;animation-name:show-next-departure-status}@keyframes show-available-status{0%,49.999%{visibility:visible}50%,to{visibility:hidden}}@keyframes show-next-departure-status{0%,49.999%{visibility:hidden}50%,to{visibility:visible}}@keyframes mobile-next-departure-marquee{0%,49.999%{transform:translate(0)}50%{transform:translate(100%)}95%,to{transform:translate(-100%)}}.single-fids-row .time-col{color:var(--time-color)!important;font-weight:700!important;white-space:nowrap!important;text-align:left}.single-fids-row .time-col,.schedule-row .time-col,.time-col{display:inline-block;width:9ch;max-width:100%;font-family:ui-monospace,SFMono-Regular,Consolas,Liberation Mono,monospace;font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1,"lnum" 1;letter-spacing:0}.single-fids-row .text-col{color:var(--text-strong)!important;text-align:left}.fids-text-schedule-panel{flex:1;min-height:0;display:flex;align-items:stretch;justify-content:stretch;padding:0;text-align:center;background:var(--surface)}.fids-text-schedule-message{flex:1;display:flex;align-items:center;justify-content:center;padding:clamp(24px,4vw,56px);color:var(--time-color);font-size:clamp(28px,2.5vw,44px);font-weight:900;line-height:1.2;letter-spacing:0;background:transparent;text-transform:uppercase}.selection-grid-layout{display:grid;grid-template-columns:minmax(280px,320px) minmax(0,1fr);gap:20px;align-items:start;min-height:100%;width:100%;max-width:none;overflow:visible}.sidebar-panel-wrapper{display:flex;flex-direction:column;gap:20px;height:auto;min-height:100%;min-width:0;width:100%;max-width:none}.routes-card-box{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:18px;display:flex;flex-direction:column;overflow:visible;box-shadow:var(--shadow);min-width:0;width:100%;max-width:none}.sidebar-panel-wrapper .routes-card-box:first-child{flex:0 0 auto}.sidebar-panel-wrapper .routes-card-box:last-child{height:auto;flex-shrink:0}.section-head-title{font-size:11px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.75px;margin-bottom:12px;display:flex;align-items:center;gap:8px;flex-shrink:0}.scroll-chips-track{flex:1;overflow:visible;display:flex;flex-direction:column;gap:6px;padding-right:0}.route-chip{background:var(--surface-accent);border:1px solid var(--border);padding:12px 16px;border-radius:8px;cursor:pointer;text-align:left;transition:all .2s ease;width:100%;color:var(--text-strong);font-weight:600}.route-chip:hover{border-color:var(--primary);background:var(--surface)}.route-chip.active{background:var(--primary);border-color:var(--primary);color:#fff!important;font-weight:700}.inactive-route-chip{background:var(--background);border:1px solid var(--border);padding:10px 14px;border-radius:8px;font-size:12px;font-weight:600;color:var(--muted);display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px;cursor:pointer;width:100%;text-align:left}.inactive-route-chip:last-child{margin-bottom:0}.inactive-route-chip:hover{border-color:var(--danger);background:var(--surface);color:var(--text)}.inactive-route-chip.active{border-color:var(--danger);background:#dc26261f;color:var(--text-strong)}.inactive-route-chip strong{color:var(--danger);font-size:10px;text-transform:uppercase;letter-spacing:.4px;flex-shrink:0}.inactive-route-chip-static{cursor:default;justify-content:flex-start}.schedule-workspace-board{background:var(--surface);border:1px solid var(--border);border-radius:8px;display:flex;flex-direction:column;overflow:visible;box-shadow:var(--shadow);height:auto;flex:1;min-width:0;width:100%;max-width:none;container-type:inline-size;container-name:board}.schedule-workspace-board.route-inactive{position:relative;border-color:#dc26268c}.schedule-workspace-board.route-inactive:after{content:attr(data-route-status);position:absolute;inset:72px 0 0;display:flex;align-items:center;justify-content:center;color:#dc26261a;font-size:clamp(56px,10vw,140px);font-weight:900;letter-spacing:0;pointer-events:none;z-index:0}.schedule-workspace-board.route-inactive .workspace-header-hero,.schedule-workspace-board.route-inactive .timeline-title,.schedule-workspace-board.route-inactive .scrollable-content{position:relative;z-index:1}.inactive-route-notice{margin:0;padding:10px 24px;background:#dc26261a;border-bottom:1px solid rgba(220,38,38,.35);color:var(--danger);font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.5px}.workspace-header-hero{background:var(--surface-accent);border-bottom:1px solid var(--border);padding:20px 24px;display:flex;justify-content:space-between;align-items:flex-start;flex-shrink:0;gap:20px}.workspace-meta-details{flex:1;background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:18px 20px;box-shadow:0 12px 32px #00000014}.workspace-meta-details h3{font-size:10px;font-weight:900;color:var(--primary);letter-spacing:.5px;text-transform:uppercase;margin-bottom:8px}.workspace-meta-details h2{font-size:clamp(18px,3vw,24px);font-weight:900;color:var(--text-strong);letter-spacing:0;margin-bottom:2px;word-break:break-word}.workspace-header-actions{display:flex;align-items:stretch;justify-content:flex-end;gap:10px;flex-shrink:0}.route-fare-card{background:var(--background);border:1px solid var(--border);padding:12px 16px;border-radius:10px;text-align:right;min-width:92px;flex-shrink:0}.route-fare-card .label{font-size:9px;font-weight:800;color:var(--muted);letter-spacing:.5px;margin-bottom:2px}.route-fare-value{font-size:20px;font-weight:900;color:var(--time-color);line-height:1.1;white-space:nowrap}#nextDepartureCard{background:var(--background);border:1px solid var(--border);padding:12px 20px;border-radius:10px;text-align:right;min-width:auto;flex-shrink:0}#nextDepartureCard .label{font-size:9px;font-weight:800;color:var(--muted);letter-spacing:.5px;margin-bottom:2px}#nextDepartureTime{font-family:ui-monospace,SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:22px;font-weight:900;color:var(--time-color);line-height:1.1;font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1,"lnum" 1}#nextDepartureStatus{font-size:10px;font-weight:800;letter-spacing:.5px;margin-top:2px;text-transform:uppercase}.timeline-title{background:var(--background);padding:12px var(--schedule-row-padding-x, 24px);font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.3px;border-bottom:1px solid var(--border);flex-shrink:0;text-align:left}.timeline-title span{min-width:0;overflow:hidden;text-overflow:clip;white-space:normal;overflow-wrap:anywhere;line-height:1.12;text-align:left}.scrollable-content{flex:1;overflow:visible;padding:0;width:100%}.schedule-list{display:flex;flex-direction:column;gap:0;width:100%}.schedule-row{background:transparent;border:0;border-bottom:1px solid var(--border);border-radius:0;padding:var(--schedule-row-padding-y, 12px) var(--schedule-row-padding-x, 24px);min-height:var(--schedule-row-min-height, 54px);transition:background .15s ease;box-sizing:border-box;width:100%;text-align:left}.schedule-row div{font-weight:600!important;min-width:0;overflow:hidden;text-overflow:clip;white-space:normal;overflow-wrap:anywhere;text-align:left}.schedule-row span,.schedule-row strong{font-family:var(--app-font);overflow:visible!important;text-overflow:unset!important;white-space:normal!important;overflow-wrap:anywhere;word-break:break-word;max-width:100%;display:inline-block;line-height:1.15;text-align:left}.schedule-row .time-col,.schedule-row strong{white-space:nowrap!important;text-align:left}.details-btn{color:var(--muted);cursor:pointer;font-size:16px;display:inline-block;line-height:1;transition:color .15s ease;width:24px;text-align:center}.details-btn:hover{color:var(--primary)}@container board (min-width: 1px){.single-fids-row span,.single-fids-row strong,.schedule-row div,.schedule-row span,.schedule-row strong{font-size:clamp(12px,1.65cqw,18px)!important}.single-fids-table-headings span,.timeline-title span{font-size:clamp(10px,1.25cqw,13px)!important}}.on-time{color:var(--success)!important}.delayed{color:var(--warning)!important}.cancelled{color:var(--danger)!important}.departed{color:var(--inactive)!important}.footer-bar-container{position:fixed;left:0;right:0;bottom:0;z-index:90;background:var(--surface);border-top:1px solid var(--border);padding:12px 24px;min-height:56px;display:flex;align-items:center;flex-shrink:0}.footer-bar-inner{display:flex;justify-content:space-between;align-items:center;gap:18px;width:100%;font-family:var(--app-font);font-size:12.8px;color:var(--muted);font-weight:400;min-width:0}.footer-sync,.footer-operator-text,.footer-platform{flex:1;min-width:0}.footer-sync{text-align:left}.footer-sync span{color:var(--text-strong);font-weight:400}.footer-operator-text{text-align:center;text-transform:none;font-weight:400;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.footer-details-button{appearance:none;border:0;background:transparent;font:inherit;cursor:pointer;padding:0}.footer-details-button:hover,.footer-details-button:focus-visible{color:var(--primary);text-decoration:underline;outline:none}.footer-platform{text-align:right}.footer-platform a,.footer-inline-link{color:var(--primary);text-decoration:none;font-weight:400}.footer-platform a:hover,.footer-inline-link:hover{text-decoration:underline}.schedule-status-popup-overlay{position:fixed;inset:0;z-index:120;display:flex;align-items:center;justify-content:center;padding:24px;background:#03050ab8;backdrop-filter:blur(4px);animation:popup-fade-in .18s ease-out}.schedule-status-popup{width:min(620px,100%);max-height:min(680px,calc(100vh - 48px));overflow:hidden;background:var(--surface);border:1px solid var(--primary);border-top:6px solid var(--primary);border-radius:12px;box-shadow:var(--shadow);padding:24px;color:var(--text);animation:popup-enter .2s ease-out;display:flex;flex-direction:column}.schedule-status-popup-title{font-size:clamp(22px,3vw,34px);font-weight:900;color:var(--text-strong);text-align:center;line-height:1.05;margin-bottom:6px}.schedule-status-popup-subtitle{color:var(--primary);font-size:12px;font-weight:900;text-transform:uppercase;text-align:center;letter-spacing:.7px;margin-bottom:18px}.schedule-status-popup-list{display:flex;flex-direction:column;gap:10px;overflow-y:auto;padding-right:2px}.schedule-status-popup-item{background:var(--background);border:1px solid var(--border);border-radius:10px;padding:14px 16px}.schedule-status-popup-route{color:var(--text-strong);font-size:clamp(15px,2vw,20px);font-weight:900;line-height:1.15;margin-bottom:10px}.schedule-status-popup-details{display:flex;align-items:center;justify-content:space-between;gap:12px}.schedule-status-popup-details span{color:var(--time-color);font-size:clamp(22px,3vw,34px);font-weight:900;line-height:1}.schedule-status-popup-details strong{font-size:clamp(16px,2vw,24px);font-weight:900;text-transform:uppercase;letter-spacing:.4px;text-align:right}.schedule-status-popup-remarks{margin-top:8px;color:var(--muted);font-size:13px;font-weight:700;line-height:1.35}.sound-permission-overlay{position:fixed;inset:0;z-index:130;display:flex;align-items:center;justify-content:center;padding:24px;background:#03050a94;backdrop-filter:blur(3px);animation:popup-fade-in .18s ease-out}.sound-permission-card{width:min(420px,100%);background:var(--surface);border:1px solid var(--primary);border-top:5px solid var(--primary);border-radius:12px;box-shadow:var(--shadow);padding:24px;color:var(--text);text-align:center;animation:popup-enter .2s ease-out}.sound-permission-title{color:var(--text-strong);font-size:clamp(22px,3vw,30px);font-weight:900;line-height:1.08;margin-bottom:8px}.sound-permission-copy{color:var(--muted);font-size:14px;font-weight:700;line-height:1.35;margin-bottom:18px}.sound-permission-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.sound-permission-actions button{border:1px solid var(--border);border-radius:8px;padding:12px 14px;font-family:var(--app-font);font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.4px;cursor:pointer}.sound-permission-primary{background:var(--primary);border-color:var(--primary)!important;color:#fff}.sound-permission-secondary{background:var(--background);color:var(--text-strong)}@keyframes popup-fade-in{0%{opacity:0}to{opacity:1}}@keyframes popup-enter{0%{opacity:0;transform:scale(.96) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}#modalOverlay{position:fixed;inset:0;background:#03050ad9;backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;z-index:2000;transition:all .2s ease}#modalOverlay.hidden{opacity:0;pointer-events:none}.modalBox{background:var(--surface);border:1px solid var(--border);width:min(560px,calc(100% - 32px));max-height:min(720px,calc(100vh - 48px));border-radius:14px;overflow:hidden;box-shadow:var(--shadow);display:flex;flex-direction:column}.modalHeader{display:flex;justify-content:space-between;align-items:center;padding:12px 18px;background:var(--surface-accent);border-bottom:1px solid var(--border)}.modalHeader h2{font-size:11px;font-weight:800;text-transform:uppercase;color:var(--text-strong)}#closeModal{background:transparent;border:none;font-size:16px;color:var(--muted);cursor:pointer;font-weight:700}#modalContent{padding:18px;overflow-y:auto}.modal-detail-stack{display:grid;gap:10px}.modal-share-panel{display:grid;gap:11px;padding:14px;border:1px solid var(--primary);border-radius:8px;background:color-mix(in srgb,var(--primary) 7%,var(--background))}.modal-share-copy{display:grid;gap:3px}.modal-share-copy strong{color:var(--text-strong);font-family:var(--heading-font);font-size:14px;line-height:1.2}.modal-share-copy span{color:var(--muted);font-size:12px;font-weight:600;line-height:1.35}.modal-share-actions{display:flex;flex-wrap:wrap;gap:7px}.modal-share-actions button,.modal-share-actions a{width:38px;height:38px;padding:8px;border:1px solid var(--border);border-radius:7px;background:var(--surface);color:var(--text-strong);display:inline-flex;align-items:center;justify-content:center;text-decoration:none;cursor:pointer}.modal-share-actions svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.modal-share-actions .modal-share-brand{padding:6px}.modal-share-actions .modal-share-brand svg{width:25px;height:25px;fill:initial;stroke:none}.modal-share-actions button:first-child{border-color:var(--primary);background:var(--primary);color:#fff}.modal-share-actions button:hover,.modal-share-actions a:hover{border-color:var(--primary)}.modal-share-status{min-height:1em;color:var(--primary);font-size:11px;font-weight:800;line-height:1.2}.modal-detail-intro{color:var(--text);font-size:13px;font-weight:600;line-height:1.45;padding:14px;border:1px solid var(--border);border-radius:8px;background:var(--background)}.modal-detail-row{display:grid;grid-template-columns:minmax(112px,.34fr) minmax(0,1fr);gap:12px;align-items:start;padding:12px 14px;border:1px solid var(--border);border-radius:8px;background:var(--background)}.modal-detail-label{color:var(--muted);font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.5px;line-height:1.25}.modal-detail-value{min-width:0;color:var(--text-strong);font-size:13px;font-weight:700;line-height:1.35;overflow-wrap:anywhere}.modal-detail-link{color:var(--primary);text-decoration:none;font-weight:800}.modal-detail-link:hover{text-decoration:underline}.modal-detail-empty{color:var(--muted);text-align:center;font-size:13px;font-weight:700;padding:24px}#modalOverlay.contact-details-modal .modalBox{background:#f8fafc;border-color:#cbd5e1;color:#172033}#modalOverlay.contact-details-modal .modalHeader{background:#e9eef5;border-color:#cbd5e1}#modalOverlay.contact-details-modal .modalHeader h2{color:#172033}#modalOverlay.contact-details-modal #closeModal{color:#475569}#modalOverlay.contact-details-modal .modal-share-panel{border-color:#7c3aed;background:#f3efff}#modalOverlay.contact-details-modal .modal-share-copy strong,#modalOverlay.contact-details-modal .modal-detail-value{color:#172033}#modalOverlay.contact-details-modal .modal-share-copy span,#modalOverlay.contact-details-modal .modal-detail-label,#modalOverlay.contact-details-modal .modal-detail-empty{color:#5b6678}#modalOverlay.contact-details-modal .modal-share-actions button,#modalOverlay.contact-details-modal .modal-share-actions a{border-color:#cbd5e1;background:#fff;color:#172033}#modalOverlay.contact-details-modal .modal-share-actions button:first-child{border-color:#6d28d9;background:#6d28d9;color:#fff}#modalOverlay.contact-details-modal .modal-share-status,#modalOverlay.contact-details-modal .modal-detail-link,#modalOverlay.contact-details-modal .footer-inline-link{color:#6d28d9}#modalOverlay.contact-details-modal .modal-detail-intro,#modalOverlay.contact-details-modal .modal-detail-row{border-color:#cbd5e1;background:#fff;color:#263247}#loadingScreen{position:fixed;inset:0;background:#07090e;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:9999}#loadingScreen h1{font-size:32px;font-weight:900;color:#fff;margin-bottom:4px;letter-spacing:0}#loadingScreen p{font-size:12px;color:#6b7280;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.startup-message-panel{width:min(620px,calc(100% - 36px));display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:clamp(34px,8vw,74px) 20px}.startup-message-panel h1{margin:0;font-size:32px!important;line-height:1.05}.startup-message-panel p{max-width:520px;margin:clamp(28px,4vw,42px) 0 0;color:#aeb7c6!important;font-size:12px!important;font-weight:800!important;line-height:1.45!important;letter-spacing:0!important;text-transform:none!important}.startup-message-panel a{display:inline-block;margin-top:clamp(26px,4vw,38px);color:#7dd3fc;font-size:13px;font-weight:900;line-height:1.2;text-decoration:none}.startup-message-panel a:hover{text-decoration:underline}.startup-retry-button{margin-top:26px;padding:10px 18px;border:1px solid #7dd3fc;border-radius:8px;color:#071019;background:#7dd3fc;font:800 13px var(--app-font);cursor:pointer}.startup-retry-button:hover{filter:brightness(1.08)}.support-link{display:inline-flex;margin-top:12px;color:var(--primary, #7dd3fc);font-size:13px;font-weight:800;text-decoration:none;text-transform:none;letter-spacing:0}.support-link:hover{text-decoration:underline}.platform-version{color:var(--muted);font-weight:700;white-space:nowrap}.loader{border:3px solid #171d34;border-top:3px solid #a78bfa;border-radius:50%;width:32px;height:32px;animation:spin .8s linear infinite;margin-bottom:18px}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.hidden{display:none!important}.fids-empty-msg{flex:1;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;padding:40px}@media(max-width:1024px){#header{grid-template-columns:1fr auto;grid-template-areas:"company company" "view-controls header-right" "announcement announcement"}.view-controls{justify-self:start}.header-right{justify-self:end}}@media(min-width:1025px){html{height:100%}body:not(.selection-mode){height:100vh;overflow:hidden}body:not(.selection-mode) #app,body:not(.selection-mode) #dashboardView,body:not(.selection-mode) .single-fids-board{height:100%;overflow:hidden}body:not(.selection-mode) .main-viewport-body{padding:clamp(6px,.65vw,12px)}body.selection-mode,body.selection-mode #app{height:auto;min-height:100vh;overflow-y:auto;overflow-x:hidden}body.selection-mode .main-viewport-body{overflow:visible}body.selection-mode .selection-grid-layout{height:auto;min-height:100%}body.selection-mode .sidebar-panel-wrapper,body.selection-mode .schedule-workspace-board{min-height:0;max-height:none}body.selection-mode .schedule-workspace-board{overflow:visible}body.selection-mode .scrollable-content{overflow:visible;min-height:0}}@media(max-width:1024px){body{min-height:100vh;height:auto;overflow-y:auto;-webkit-overflow-scrolling:touch}#app{min-height:100vh;height:auto;display:flex;flex-direction:column;overflow:visible;padding-bottom:84px}#header{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"company company" "view-controls header-right" "announcement announcement";gap:10px 12px;align-items:center;justify-items:stretch;padding:10px 12px;text-align:center;position:sticky;top:0;z-index:1000;height:auto}#header .company{grid-area:company;width:100%;justify-content:center;gap:10px;min-width:0;text-align:center}#companyLogo,.logo-fallback{width:34px;height:34px;flex:0 0 34px}.company>div:last-child{min-width:0}#companyName{font-size:clamp(15px,4.4vw,18px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#companyTagline{display:none}.view-controls{grid-area:view-controls;width:100%;min-width:0;display:flex;flex-wrap:nowrap;justify-content:flex-start;gap:4px}.nav-btn{flex:none;padding:8px 10px;font-size:12.8px;font-weight:400}.header-right{grid-area:header-right;width:auto;min-width:0;display:flex;justify-content:flex-end;align-items:center;flex-wrap:nowrap;gap:8px}#announcementBar{grid-area:announcement;height:28px;width:100%}.single-fids-row .next-departure-status-label{display:block;overflow:hidden!important;white-space:nowrap!important}.single-fids-row .next-departure-status-label-text{display:inline-block;width:max-content;min-width:max-content;white-space:nowrap!important;overflow:visible!important;animation:mobile-next-departure-marquee 10s linear infinite}.refresh-cycle-indicator{width:34px;height:34px;flex-basis:34px;border-width:2px;font-size:11px}.theme-btn{width:34px;height:34px;flex-basis:34px;padding:0}.clock-display{display:none}#announcementBar{height:28px}.ticker-title{padding:0 10px;font-size:10px}#ticker{font-size:12px}.main-viewport-body{flex:1;display:flex;flex-direction:column;padding:8px;overflow-y:auto!important;-webkit-overflow-scrolling:touch;min-height:0}#dashboardView,.single-fids-board{height:100%;overflow:hidden;display:flex;flex-direction:column}.fids-columns-grid{grid-template-columns:1fr!important;height:100%;overflow:hidden}.fids-single-column,.column-block{height:100%;display:flex;flex-direction:column;overflow:hidden}.single-fids-header{padding:10px 12px;justify-content:center;text-align:center}.fids-main-title-info{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:14px 18px;width:100%;max-width:100%;justify-content:center;min-height:88px;display:grid;align-items:center}body:not(.selection-mode) .single-fids-header{padding:7px 10px;display:grid;grid-template-columns:1fr;gap:8px}.fids-main-title-info{width:100%;justify-content:center;min-width:0;display:flex}.route-label-pill,.fids-fare-tag-desktop,.fids-cycle-indicator-tag{display:none}.fids-header-meta{display:flex;flex-direction:column;width:100%;gap:8px}.fids-route-title-stack{width:100%;justify-items:center;gap:6px}.fids-fare-tag-mobile{display:inline-flex;width:fit-content;max-width:100%;white-space:normal;justify-content:center}body:not(.selection-mode) .fids-route-title-stack{gap:4px}body:not(.selection-mode) .fids-fare-tag-mobile{padding:3px 8px;gap:6px}body:not(.selection-mode) .fids-fare-tag-mobile .fids-fare-label{font-size:8px}body:not(.selection-mode) .fids-fare-tag-mobile .fids-fare-value-main{font-size:clamp(12px,3.6vw,15px)}.single-fids-header h2{font-size:clamp(17px,5vw,22px);line-height:1.18;text-align:center;overflow-wrap:anywhere}.fids-route-title-stack p{font-size:clamp(10px,3vw,12px);line-height:1.2;text-align:center}body:not(.selection-mode) .single-fids-header h2{font-size:clamp(10px,calc((100vw - 32px) / var(--route-title-chars, 28) * 1.65),20px);line-height:1.08;max-width:100%;overflow:hidden;text-overflow:clip;white-space:nowrap}body:not(.selection-mode) .fids-fare-tag{min-width:0;width:100%;padding:8px 10px;justify-content:center;text-align:center;display:grid}body:not(.selection-mode) .fids-fare-label{text-align:center;font-size:8px}body:not(.selection-mode) .fids-fare-value-main{font-size:clamp(15px,4.2vw,18px)}.dashboard-cards-grid{grid-template-columns:1fr!important;flex:1;overflow:hidden}.dashboard-card-block{border-right:0;border-bottom:0;height:100%;overflow:hidden;display:flex;flex-direction:column}.dashboard-card-block:not(:first-child){display:none}body:not(.selection-mode) .fids-adaptive-flow-container{display:grid!important;grid-template-rows:none!important;grid-auto-rows:auto!important;flex:1;height:auto;overflow:visible}body:not(.selection-mode) .single-fids-row{height:auto!important;padding:6.3px var(--schedule-row-padding-x, 12px)!important;min-height:0!important}.schedule-row{height:auto!important;min-height:0!important;grid-auto-rows:auto!important}body.selection-mode{overflow-y:auto;height:auto}body.selection-mode #app{height:auto;overflow:visible;padding-bottom:78px}body.selection-mode .main-viewport-body{overflow:visible;height:auto}.selection-grid-layout{display:flex;flex-direction:column;gap:12px;min-height:0;width:100%;max-width:none;align-items:stretch;overflow:visible}.sidebar-panel-wrapper{display:contents}.sidebar-panel-wrapper .routes-card-box:first-child{order:1;height:auto;width:100%;max-width:none}.schedule-workspace-board{order:2;height:auto;width:100%;max-width:none}.workspace-header-hero{flex-direction:column;align-items:stretch;gap:8px;padding:10px 12px;text-align:center}.workspace-meta-details{width:100%}.workspace-meta-details h3{font-size:9px;margin-bottom:3px}.workspace-meta-details h2{font-size:clamp(16px,4.4vw,20px);line-height:1.15;overflow-wrap:anywhere}.workspace-header-actions{width:100%;display:grid;grid-template-columns:1fr;gap:6px;align-items:stretch}.route-fare-card,#nextDepartureCard{min-width:0;text-align:center;padding:6px 8px;border-radius:8px}.route-fare-card{width:100%;min-width:0}#nextDepartureCard{width:100%}.route-fare-card:only-child,#nextDepartureCard:only-child{grid-column:1 / -1}.route-fare-card .label,#nextDepartureCard .label{font-size:8px;margin-bottom:1px}.route-fare-value,#nextDepartureTime{font-size:clamp(13px,3.7vw,17px)}#nextDepartureStatus{font-size:8px;margin-top:1px}.sidebar-panel-wrapper .routes-card-box:last-child{order:3;width:100%;max-width:none}.routes-card-box,.scroll-chips-track,.scrollable-content{overflow:visible}body:not(.selection-mode) .single-fids-table-headings{padding:9px var(--schedule-row-padding-x, 12px)}body:not(.selection-mode) .single-fids-table-headings span{font-size:var(--schedule-heading-font-size, clamp(8.5px, 2.45vw, 10px))!important;letter-spacing:.3px;text-align:left}body:not(.selection-mode) .single-fids-row span,body:not(.selection-mode) .single-fids-row .time-col,body:not(.selection-mode) .single-fids-row strong{font-size:var(--schedule-cell-font-size, clamp(11px, 3.25vw, 15px))!important;line-height:1.14;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;text-align:left}.schedule-status-popup{width:100%;max-height:calc(100svh - 32px);padding:18px 14px}.schedule-status-popup-route{font-size:14px;margin-bottom:7px}.schedule-status-popup-details span{font-size:20px}.schedule-status-popup-details strong{font-size:14px}.sound-permission-card{padding:20px 16px}.sound-permission-actions{grid-template-columns:1fr}.schedule-workspace-board,.scrollable-content,.schedule-list,.timeline-title,.schedule-row{width:100%;max-width:100%}.timeline-title,.schedule-row{padding-left:var(--schedule-row-padding-x, 10px);padding-right:var(--schedule-row-padding-x, 10px);gap:6px!important;text-align:left;justify-content:stretch!important;align-items:stretch!important;grid-auto-columns:minmax(0,1fr);grid-template-columns:repeat(auto-fit,minmax(0,1fr))!important}.timeline-title{padding-top:9px;padding-bottom:9px;font-size:var(--schedule-heading-font-size, clamp(7px, 1.7vw, 9px))!important;letter-spacing:0;text-align:left}.timeline-title span{display:inline-block;min-width:0;max-width:100%;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.1}.schedule-row{padding-top:var(--schedule-row-padding-y, 9px);padding-bottom:var(--schedule-row-padding-y, 9px);text-align:left;min-height:48.6px}.schedule-row>div{min-width:0;display:inline-block;width:auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.schedule-row div{font-size:var(--schedule-cell-font-size, clamp(8.5px, 1.8vw, 10px))!important;line-height:1.05;text-align:left}.schedule-row span,.schedule-row strong{font-size:var(--schedule-cell-font-size, clamp(8px, 1.7vw, 9px))!important;line-height:1.05;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.schedule-row .time-col{font-size:var(--schedule-cell-font-size, clamp(8px, 1.7vw, 9px))!important;text-align:left;white-space:nowrap}.footer-bar-container{height:auto;min-height:0;padding:8px 12px}.footer-bar-inner{flex-direction:column;gap:3px;font-size:12.8px!important;font-weight:400;line-height:1.25}.footer-sync,.footer-operator-text,.footer-platform{flex:none!important;width:100%;text-align:center!important}.footer-operator-text{overflow:visible;white-space:normal;overflow-wrap:anywhere}}@media(max-width:900px){.react-home .container{grid-template-columns:1fr;padding-top:22px}.react-home .home-content-column{display:contents}.react-home .home-intro{order:0}.react-home .service-panel{min-height:auto}.react-home .service-panel{order:1}.react-home .news-preview{order:2;margin-top:0}}@media(max-width:768px){.operator-qr-prompt{display:none!important}}@media(max-width:620px){.react-home .header{padding:12px 14px;align-items:stretch;flex-direction:column}.react-home .header{display:grid;grid-template-columns:minmax(0,1fr) auto auto;row-gap:13px}.react-home .brand-lockup{grid-column:1;grid-row:1;justify-content:flex-start}.react-home .home-nav{grid-column:2;grid-row:1;justify-content:flex-end;gap:18px;padding:0;border:0}.react-home .home-header-actions{display:contents}.react-home .home-header-actions .theme-btn{grid-column:3;grid-row:1;justify-self:end}.react-home .header-clock{grid-column:1 / -1;grid-row:2;width:100%;justify-content:center;text-align:center}.react-home .clock-time{font-size:24px}.react-home .container{padding:14px 10px 18px;gap:12px}.react-home .home-intro{padding:22px 18px}.react-home .content-title{font-size:32px}.react-home .content-subtitle{font-size:13px}.react-home .news-preview-card{align-items:flex-start;flex-direction:column}.react-home .service-panel-head{align-items:flex-start;flex-direction:column;gap:4px}.react-home .grid{padding:10px}.react-home .operator-card{min-height:78px;padding:14px 44px 14px 18px}.react-home .name{font-size:15px}.react-home .desc{font-size:10px}.react-home .service-panel{min-height:auto;overflow:visible}.react-home .grid{max-height:none;overflow:visible}.react-home .service-panel-head{width:100%}.react-home footer{padding:12px 16px}.react-home .home-footer-inner{align-items:flex-start;flex-direction:column;gap:7px;text-align:left}.footer-bar-container{position:fixed;left:0;right:0;bottom:0;padding:12px 16px;min-height:auto}.footer-bar-inner{flex-direction:column;gap:8px;align-items:stretch}.footer-sync,.footer-operator-text,.footer-platform{width:100%;text-align:center!important}.footer-operator-text{overflow:visible;white-space:normal;overflow-wrap:anywhere}}#public-announcement-popup{width:min(480px,calc(100vw - 40px));box-sizing:border-box;max-height:80vh;overflow:auto;border:1px solid #dfe5eb;border-radius:10px;padding:24px;background:#fff;color:#173247;font:14px Arial,Helvetica,sans-serif}#public-announcement-popup::backdrop{background:#0008}#public-announcement-popup p{white-space:pre-wrap;line-height:1.5}#public-announcement-popup button{padding:8px 16px;border:0;border-radius:5px;background:#2c5e8c;color:#fff;cursor:pointer}#public-announcement-popup{position:fixed;inset:0;margin:auto;height:fit-content;max-height:calc(100dvh - 40px)}.fids-fare-link{perspective:700px;overflow:hidden;position:relative}.fare-flip{display:grid;transform-style:preserve-3d;animation:fare-ticket-flip 6s cubic-bezier(.45,0,.2,1) infinite}.fare-face{grid-area:1/1;display:grid;gap:5px;align-content:center;backface-visibility:hidden}.fare-ticket-face{transform:rotateX(180deg)}.fare-ticket-text{font-size:15px;font-weight:800;line-height:1.2}.fids-fare-link:after{content:"";position:absolute;inset:-50%;background:linear-gradient(110deg,transparent 35%,#ffffff35 50%,transparent 65%);transform:translate(-100%);animation:fare-ticket-shine 6s ease infinite;pointer-events:none}@keyframes fare-ticket-flip{0%,30%{transform:rotateX(0)}42%,80%{transform:rotateX(180deg)}92%,to{transform:rotateX(360deg)}}@keyframes fare-ticket-shine{0%,45%{transform:translate(-100%)}65%,to{transform:translate(100%)}}.fids-fare-link:hover .fare-flip,.fids-fare-link:focus-visible .fare-flip{animation-play-state:paused}@media(prefers-reduced-motion:reduce){.fare-flip,.fids-fare-link:after{animation:none}.fare-ticket-face{display:none}}.schedule-status-popup-group{padding:4px 0 12px}.schedule-status-popup-group+.schedule-status-popup-group{border-top:1px solid var(--border);padding-top:14px}.schedule-status-change-table{width:100%;border-collapse:collapse;table-layout:fixed;text-align:left}.schedule-status-change-table th{padding:7px 8px;color:var(--muted);font-size:12px;font-weight:700}.schedule-status-change-table td{padding:10px 8px;border-top:1px solid var(--border);font-size:clamp(13px,2vw,18px);font-weight:700;overflow-wrap:anywhere}.schedule-status-change-table td:first-child{color:var(--time-color);white-space:nowrap}.schedule-status-change-table .previous-status{color:var(--muted);font-weight:400}.schedule-status-popup{border-top-width:4px;padding:24px}.schedule-status-popup-route{text-align:center;margin:8px 0 16px;line-height:1.35}.schedule-status-change-table th,.schedule-status-change-table td{text-align:center;vertical-align:middle}.schedule-status-change-table thead{background:color-mix(in srgb,var(--primary) 8%,transparent)}.schedule-status-change-table th{padding:10px 8px}.schedule-status-change-table td{padding:14px 8px}.schedule-status-change-table td:last-child{background:color-mix(in srgb,var(--primary) 5%,transparent)}.route-chip[href]{display:block;text-decoration:none}.route-share-row{display:flex;align-items:stretch;gap:8px;margin-bottom:6px}.route-share-row .route-chip{flex:1;min-width:0;margin:0}.route-share-button{flex:0 0 auto;align-self:center;border:1px solid var(--border);border-radius:8px;padding:10px 12px;background:var(--surface);color:var(--text);font:inherit;font-size:12px;cursor:pointer}.route-share-button:hover{border-color:var(--primary);color:var(--primary)}.route-share-button:focus-visible{outline:2px solid var(--primary);outline-offset:2px}@media(max-width:480px){.route-share-button{padding:10px 8px;font-size:11px}}.route-share-row{position:relative;display:block;margin-bottom:8px}.route-share-row .route-chip{box-sizing:border-box;width:100%;padding-right:54px}.route-share-row .route-share-button{position:absolute;top:50%;right:10px;transform:translateY(-50%);display:grid;place-items:center;width:34px;height:34px;padding:7px;margin:0;border:0;background:transparent;color:var(--text-strong);border-radius:6px}.route-share-button svg{width:20px;height:20px}.route-share-row:has(.route-chip.active) .route-share-button{color:#fff}.route-share-row .route-share-button:hover{background:color-mix(in srgb,currentColor 12%,transparent)}.route-share-row .route-share-button.is-copied{background:color-mix(in srgb,currentColor 18%,transparent)}.workspace-header-actions.has-fare{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}.workspace-header-actions .selection-fare{display:flex;min-width:0}.workspace-header-actions .selection-fare .fids-fare-tag{box-sizing:border-box;width:100%;min-width:0;text-align:center;justify-content:center}.workspace-header-actions .selection-fare .fids-fare-label{text-align:center}.workspace-header-actions .selection-fare .fare-flip{width:100%}.workspace-header-actions.has-fare #nextDepartureCard{width:auto}@media(max-width:480px){.workspace-header-actions .selection-fare .fids-fare-value-main{font-size:18px}.workspace-header-actions .selection-fare .fare-ticket-text{font-size:13px}}.workspace-header-actions #nextDepartureCard{display:grid;grid-template-columns:minmax(0,1fr) auto;align-content:center;align-items:center;gap:4px 8px;text-align:left}.workspace-header-actions #nextDepartureCard .label{grid-column:1;margin:0}.workspace-header-actions #nextDepartureStatus{grid-column:2;grid-row:1;margin:0;text-align:right}.workspace-header-actions #nextDepartureTime{grid-column:1 / -1;text-align:center}@media(max-width:480px){.workspace-header-actions #nextDepartureCard{gap:3px 6px}}.workspace-header-hero{align-items:stretch}.workspace-meta-details{box-sizing:border-box;display:flex;flex-direction:column;justify-content:center;padding:10px 16px;border-radius:10px}.workspace-meta-details h3{margin:0 0 4px}.workspace-meta-details h2{margin:0;line-height:1.2}.workspace-header-actions{align-self:stretch}.workspace-header-actions #nextDepartureCard,.workspace-header-actions .selection-fare .fids-fare-tag{box-sizing:border-box;height:100%;padding:10px 14px;border-radius:10px}.workspace-meta-details{padding:18px 20px;border-radius:16px}.workspace-meta-details h3{margin:0 0 8px}.workspace-meta-details h2{margin:0 0 2px}@media(max-width:700px){.workspace-meta-details h3{margin-bottom:3px}}#header{grid-template-areas:"company view-controls header-right"}#app>#announcementBar{grid-area:auto;width:100%;margin:0}@media(max-width:900px){#header{grid-template-areas:"company company" "view-controls header-right"}}.footer-sync.is-online .sync-dot,.footer-sync.is-online .sync-label{color:#169b50}.footer-sync.is-offline .sync-dot,.footer-sync.is-offline .sync-label{color:#88929f}.footer-sync .sync-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:currentColor;margin-right:6px}.footer-sync .sync-state{font-size:.85em}.schedule-workspace-board{scroll-margin-top:16px}.schedule-workspace-board.route-inactive{border-color:var(--border)}.schedule-workspace-board.route-inactive:after{content:none}.schedule-workspace-board>.inactive-route-notice{padding:8px 16px;border-bottom:0;border-top:1px solid rgba(220,38,38,.15);background:#dc26260f;font-size:11px;font-weight:600;text-transform:none;letter-spacing:0;text-align:center}.home-visit-count{color:var(--muted);font-size:12px;white-space:nowrap}.react-home .news-preview{padding:22px 24px}.react-home .news-preview-card{align-items:center}.react-home .news-preview-card h3{font-size:20px;line-height:1.35;margin:8px 0}.react-home .news-preview-card p{font-size:14px;line-height:1.65}.react-home .news-preview-card a,.react-home .view-all-news{font-size:12px;font-weight:600}.react-home .news-preview{padding:18px 24px}.react-home .news-preview h2{font-size:20px;margin:5px 0 12px}.react-home .news-preview-card.compact-news-row{display:grid;grid-template-columns:120px minmax(0,1fr) auto;align-items:center;gap:16px;padding:13px 0}.react-home .compact-news-row .news-date{font-size:10px;line-height:1.4}.react-home .compact-news-row h3{margin:0;font-size:15px;line-height:1.4}.react-home .compact-news-row h3 a{color:inherit;font-size:inherit;font-weight:600}.react-home .compact-news-row h3 a:hover{color:var(--home-primary)}.react-home .compact-news-row .news-row-action{font-size:11px;white-space:nowrap}@media(max-width:600px){.react-home .news-preview-card.compact-news-row{grid-template-columns:82px minmax(0,1fr) auto;gap:10px}.react-home .compact-news-row h3{font-size:13px}.react-home .compact-news-row .news-row-action{font-size:0}.react-home .compact-news-row .news-row-action span{font-size:18px}}.react-home .home-visit-showcase{display:inline-flex;align-items:center;gap:16px;margin-top:24px;padding:12px 20px;border-left:3px solid var(--home-primary);background:var(--home-panel,rgba(125,211,252,.05));border-radius:0 8px 8px 0}.react-home .home-visit-showcase .home-visit-count{color:var(--home-primary);font-size:30px;font-weight:800;line-height:1.1;font-variant-numeric:tabular-nums}.react-home .home-visit-showcase>span{color:var(--home-muted-strong);font-size:13px}.react-home .operator-card{padding-right:92px}.react-home .operator-card:after{right:28px;top:40%}.react-home .operator-visit-count{position:absolute;right:16px;top:65%;font-size:10px;color:var(--home-muted-strong);font-weight:400;white-space:nowrap}@media(max-width:768px){.footer-bar-container .footer-sync,.footer-bar-container .footer-platform{display:none!important}.footer-bar-container .footer-bar-inner{justify-content:center}}.footer-details-button{text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px;animation:contact-invite 4s ease-in-out infinite;transition:color .2s ease,transform .2s ease}.footer-details-button:hover{animation:none;transform:translateY(-2px);text-decoration-thickness:2px}.footer-details-button:focus-visible{animation:none;outline:2px solid var(--primary);outline-offset:5px;border-radius:4px}@keyframes contact-invite{0%,70%,to{opacity:1;transform:translateY(0)}80%{opacity:.7;transform:translateY(-2px)}90%{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.footer-details-button{animation:none;transition:none}.footer-details-button:hover{transform:none}}
