.gps-app{--g-ground:#d7e7db;--g-ink:#1c2430;--g-ink-2:#3d4850;--g-ink-3:#5c6770;--g-glass:rgba(255,255,255,0.74);--g-card:rgba(255,255,255,0.9);--g-line:rgba(28,36,48,0.1);--g-hair:rgba(28,36,48,0.14);--g-chip:rgba(20,36,44,0.08);--g-select:#14323a;--g-select-ink:#f3fbfc;--g-fade:215,231,219;--g-shadow:0 10px 28px rgba(15,23,32,0.12);--g-series:#2a78d6;--g-online:#0ca30c;--g-dark:#d03b3b;--g-parked:#c3cbd2;--g-feed:#9aa5b1;--g-none:rgba(28,36,48,0.06);--st-good:#0ca30c;--st-warning:#fab219;--st-serious:#ec835a;--st-critical:#d03b3b;--st-neutral:#8d93a0;--seq-1:#cde2fb;--seq-2:#9ec5f4;--seq-3:#6da7ec;--seq-4:#3987e5;--seq-5:#256abf;--seq-6:#184f95;position:fixed;inset:0;z-index:5;overflow:hidden;background:var(--g-ground);color:var(--g-ink);font-family:Inter,system-ui,sans-serif}.gps-app.night{--g-ground:#12151c;--g-ink:#e7eef2;--g-ink-2:#c3ccd4;--g-ink-3:#a8b3bd;--g-glass:rgba(10,14,20,0.76);--g-card:rgba(22,27,34,0.92);--g-line:rgba(215,251,255,0.1);--g-hair:rgba(215,251,255,0.16);--g-chip:rgba(231,238,242,0.1);--g-select:#d7fbff;--g-select-ink:#102026;--g-fade:18,21,28;--g-shadow:0 10px 28px rgba(0,0,0,0.4);--g-series:#3987e5;--g-parked:#4a535e;--g-feed:#6b7683;--g-none:rgba(231,238,242,0.06);--seq-1:#184f95;--seq-2:#1c5cab;--seq-3:#256abf;--seq-4:#3987e5;--seq-5:#6da7ec;--seq-6:#9ec5f4}body:has(.gps-app){overflow:hidden}.gps-app button,.gps-app input,.gps-app select{font:inherit;color:inherit}.gps-app a:focus-visible,.gps-app button:focus-visible,.gps-app input:focus-visible,.gps-app select:focus-visible,.gps-app summary:focus-visible{outline:2px solid #0e7f96;outline-offset:2px}.gps-map{position:absolute;inset:0;background:var(--g-ground)}.tone-good{--tone:var(--st-good)}.tone-warning{--tone:var(--st-warning)}.tone-serious{--tone:var(--st-serious)}.tone-critical{--tone:var(--st-critical)}.tone-neutral{--tone:var(--st-neutral)}.tone-series{--tone:var(--g-series)}.gps-app .k-online{fill:var(--g-online);background:var(--g-online)}.gps-app .k-dark{fill:var(--g-dark);background:var(--g-dark)}.gps-app .k-parked{fill:var(--g-parked);background:var(--g-parked)}.gps-app .k-feed{fill:var(--g-feed);background:repeating-linear-gradient(45deg,var(--g-feed) 0 2px,transparent 2px 5px)}.gps-app .k-none{fill:var(--g-none);background:var(--g-none)}.gps-dot-sm{display:inline-block;flex:none;width:8px;height:8px;border-radius:50%;background:var(--tone)}.gps-key-dot{display:inline-block;width:10px;height:10px;border-radius:3px;vertical-align:-1px;background:var(--tone,var(--g-feed))}.gps-hud{position:absolute;top:18px;left:22px;z-index:3;width:360px;pointer-events:none;text-shadow:0 1px 0 rgba(255,255,255,.45)}.gps-app.night .gps-hud{text-shadow:0 1px 2px rgba(0,0,0,.45)}.gps-hud:before{content:"";position:absolute;z-index:-1;inset:-18px -90px -24px -22px;background:linear-gradient(90deg,rgba(var(--g-fade),.97) 0,rgba(var(--g-fade),.92) 72%,rgba(var(--g-fade),0) 100%);pointer-events:none}.gps-hud>*{pointer-events:auto}.gps-home{color:inherit;font-size:13px;font-weight:600;text-decoration:none}.gps-home:hover{text-decoration:underline}.gps-hud h1{margin:2px 0 0;font-size:42px;font-weight:800;letter-spacing:-.045em;line-height:.95}.gps-tools{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;margin-top:14px}.gps-pills{display:flex;gap:3px;padding:3px;border-radius:999px;background:var(--g-chip);box-shadow:inset 0 1px 2px rgba(20,36,44,.14),inset 0 0 0 1px rgba(20,36,44,.16)}.gps-app.night .gps-pills{box-shadow:inset 0 0 0 1px rgba(215,251,255,.3),0 0 0 1px rgba(0,0,0,.4)}.gps-pills button{-webkit-appearance:none;-moz-appearance:none;appearance:none;flex:none;border:0;border-radius:999px;padding:6px 12px;background:rgba(255,255,255,.78);font-size:13px;font-weight:650;white-space:nowrap;cursor:pointer;text-shadow:none}.gps-app.night .gps-pills button:not([aria-pressed=true]){background:rgba(10,14,20,.62)}.gps-pills button[aria-pressed=true]{background:var(--g-select);color:var(--g-select-ink)}.gps-pills.small button{padding:5px 10px;font-size:12px}.gps-dates{max-width:100%;overflow-x:auto;scrollbar-width:none}.gps-dates::-webkit-scrollbar{display:none}.gps-feed{margin:12px 0 0;font-size:13px}.gps-feed span{display:inline-block;width:7px;height:7px;margin-right:6px;border-radius:50%;background:#1f9d55;vertical-align:middle}.gps-feed.off span{background:var(--st-neutral)}.gps-hero{margin-top:22px}.gps-hero b{display:block;font-size:56px;font-weight:800;letter-spacing:-.05em;line-height:.95}.gps-hero span{display:block;margin-top:4px;font-size:13px;font-weight:600;color:var(--g-ink-2)}.gps-stats{display:grid;grid-gap:1px;gap:1px;max-width:300px;margin:16px 0 0;font-size:13px}.gps-stats div{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:4px 0;border-bottom:1px solid var(--g-line)}.gps-stats dt{display:inline-flex;align-items:center;gap:6px;color:var(--g-ink-2)}.gps-stats dd{margin:0;font-weight:750;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.gps-panel{position:absolute;top:16px;right:16px;bottom:84px;z-index:4;display:flex;flex-direction:column;width:540px;max-width:calc(100vw - 32px);overflow:hidden;border-radius:24px;background:var(--g-glass);backdrop-filter:blur(16px) saturate(1.3);-webkit-backdrop-filter:blur(16px) saturate(1.3);box-shadow:var(--g-shadow);transition:width .26s cubic-bezier(.16,.84,.2,1)}.gps-app.night .gps-panel{box-shadow:inset 0 0 0 1px rgba(215,251,255,.14),var(--g-shadow)}.gps-panel.panel-buses,.gps-panel.panel-repeat{width:min(1100px,calc(100vw - 420px))}.gps-panel.panel-detail{width:580px}.gps-panel-head{flex:none;padding:12px 12px 10px}.gps-tabs{width:max-content;max-width:100%;overflow-x:auto}.gps-tab-count{margin-left:6px;font-size:11px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;opacity:.7}.gps-panel-body{flex:1 1;min-height:0;display:flex;flex-direction:column;gap:10px;overflow-y:auto;padding:0 12px 14px;scrollbar-width:thin}.gps-card{flex:none;padding:14px 16px 16px;border-radius:18px;background:var(--g-card);box-shadow:0 1px 2px rgba(15,23,32,.05)}.gps-card h2,.gps-detail h3{margin:0 0 10px;font-size:15px;font-weight:750;letter-spacing:-.015em}.gps-lead,.gps-note{margin:0;font-size:12.5px;line-height:1.45;color:var(--g-ink-2)}.gps-lead{margin-bottom:10px}.gps-note{margin-top:10px}.gps-note .gps-key-dot{margin-right:4px}.gps-link{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;padding:0;background:none;color:inherit;font-weight:700;text-decoration:underline;text-underline-offset:2px;cursor:pointer}.gps-empty{margin:8px 4px;padding:14px 16px;border-radius:16px;background:var(--g-card)}.gps-empty,.gps-loading{font-size:13px;color:var(--g-ink-2)}.gps-loading{display:flex;align-items:center;gap:10px;padding:18px 6px;font-weight:600}.gps-spinner{width:18px;height:18px;border:2px solid var(--g-hair);border-top-color:var(--g-select);border-radius:50%;animation:gps-spin .8s linear infinite}@keyframes gps-spin{to{transform:rotate(1turn)}}.gps-key{display:flex;flex-wrap:wrap;gap:6px 14px;margin:10px 2px 0;font-size:11.5px;font-weight:600;color:var(--g-ink-2)}.gps-key span{display:inline-flex;align-items:center;gap:6px}.gps-cats{display:grid;grid-gap:2px;gap:2px;margin:0;padding:0;list-style:none}.gps-cats button{display:grid;grid-template-columns:30px minmax(0,1fr) 90px 52px 38px;align-items:center;grid-gap:10px;gap:10px;width:100%;min-height:46px;padding:4px 8px;border:0;border-radius:14px;background:transparent;text-align:left;cursor:pointer;transition:background .16s ease}.gps-cats button:hover{background:var(--g-chip)}.gps-cat-icon{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:color-mix(in srgb,var(--tone) 18%,transparent);color:var(--tone);font-size:13px}.gps-cat-text b{display:block;font-size:13px;font-weight:700}.gps-cat-text small{display:block;overflow:hidden;font-size:11px;color:var(--g-ink-3);white-space:nowrap;text-overflow:ellipsis}.gps-cat-bar{height:8px;overflow:hidden;border-radius:4px;background:var(--g-none)}.gps-cat-bar span{display:block;height:100%;border-radius:4px;background:var(--tone)}.gps-cat-n{font-size:14px;font-weight:750;text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.gps-cat-pct{font-size:11px;text-align:right;color:var(--g-ink-3);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.gps-matrix{display:grid;grid-gap:4px;gap:4px}.gps-matrix-head,.gps-matrix-row{display:grid;grid-template-columns:80px repeat(3,minmax(0,1fr));grid-gap:4px;gap:4px;align-items:stretch}.gps-matrix-head span{padding:0 4px 2px;font-size:11px;font-weight:700;text-align:center;color:var(--g-ink-3)}.gps-matrix-head .gps-matrix-corner{text-align:left;font-weight:600}.gps-matrix-row>span{font-size:12px;font-weight:700;color:var(--g-ink-2)}.gps-cell,.gps-matrix-row>span{display:flex;align-items:center}.gps-cell{flex-direction:column;justify-content:center;min-height:54px;border:0;border-radius:10px;background:var(--g-none);cursor:pointer;transition:transform .14s ease,box-shadow .14s ease}.gps-cell:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(15,23,32,.16)}.gps-cell b{font-size:15px;font-weight:750;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.gps-cell small{font-size:10.5px;opacity:.8}.gps-cell.seq-1{background:var(--seq-1);color:#0b0b0b}.gps-cell.seq-2{background:var(--seq-2);color:#0b0b0b}.gps-cell.seq-3{background:var(--seq-3);color:#0b0b0b}.gps-cell.seq-4{background:var(--seq-4);color:#ffffff}.gps-cell.seq-5{background:var(--seq-5);color:#ffffff}.gps-cell.seq-6{background:var(--seq-6);color:#ffffff}.gps-app.night .gps-cell.seq-1,.gps-app.night .gps-cell.seq-2,.gps-app.night .gps-cell.seq-3,.gps-app.night .gps-cell.seq-4{color:#ffffff}.gps-app.night .gps-cell.seq-5,.gps-app.night .gps-cell.seq-6{color:#0b0b0b}.gps-two{display:grid;grid-template-columns:1fr 1fr;grid-gap:18px;gap:18px}.gps-issues{display:grid;grid-template-columns:1fr 1fr;grid-gap:4px;gap:4px;margin:0;padding:0;list-style:none}.gps-issues button{display:grid;grid-template-columns:22px minmax(0,1fr) auto;align-items:center;grid-gap:8px;gap:8px;width:100%;min-height:36px;padding:0 10px;border:0;border-radius:12px;background:var(--g-chip);font-size:12.5px;font-weight:600;text-align:left;cursor:pointer}.gps-issues button:hover:not(:disabled){background:var(--g-select);color:var(--g-select-ink)}.gps-issues button:disabled{opacity:.45;cursor:default}.gps-issues b{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.gps-zones{display:grid;grid-gap:4px;gap:4px;margin:10px 0 0;padding:0;list-style:none;counter-reset:zone}.gps-zones button{display:grid;grid-template-columns:22px minmax(0,1fr) auto auto;align-items:baseline;grid-gap:10px;gap:10px;width:100%;padding:7px 10px;border:0;border-radius:12px;background:var(--g-chip);font-size:12.5px;text-align:left;cursor:pointer}.gps-zones button:before{counter-increment:zone;content:counter(zone);font-weight:800;color:var(--g-ink-3)}.gps-zones span{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.gps-zones small{color:var(--g-ink-3)}.gps-method summary{font-size:15px;font-weight:750;cursor:pointer}.gps-method li,.gps-method p{margin:8px 0 0;font-size:12.5px;line-height:1.45;color:var(--g-ink-2)}.gps-method ul{margin:8px 0 0;padding-left:18px}.gps-chart{position:relative;padding-bottom:18px}.gps-chart svg{display:block;overflow:visible}.gps-grid{stroke:var(--g-line);stroke-width:1}.gps-axis{stroke:var(--g-hair);stroke-width:1}.gps-area{fill:var(--g-series);fill-opacity:.1}.gps-line{fill:none;stroke:var(--g-series);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}.gps-cross{stroke:var(--g-ink);stroke-opacity:.3;stroke-width:1}.gps-hatch-bg{fill:var(--g-feed);fill-opacity:.12}.gps-hatch-line{stroke:var(--g-feed);stroke-opacity:.7}.gps-ylabels span{position:absolute;left:0;font-size:10.5px;color:var(--g-ink-3);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.gps-xlabels{position:absolute;left:0;right:0;bottom:0;height:14px}.gps-xlabels.static{position:relative;margin-top:4px}.gps-xlabels span{position:absolute;transform:translateX(-50%);font-size:10.5px;color:var(--g-ink-3);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.gps-xlabels span:first-child{transform:none}.gps-xlabels span:last-child{transform:translateX(-100%)}.gps-tip{position:absolute;z-index:5;display:grid;grid-gap:2px;gap:2px;min-width:120px;padding:6px 9px;border-radius:8px;background:rgba(14,18,26,.92);color:#f7f9fc;font-size:12px;line-height:1.3;white-space:nowrap;pointer-events:none;transform:translate(-50%,calc(-100% - 12px));box-shadow:0 8px 18px rgba(8,12,20,.28);text-shadow:none}.gps-tip span{color:#d7e0ea}.gps-tip .gps-tip-note{color:#ffd37a}.gps-tip .gps-key-dot{width:8px;height:8px}.gps-bars{position:relative;display:flex;align-items:flex-end;gap:6px}.gps-bar-col{flex:1 1;min-width:0;display:flex;flex-direction:column;align-items:center;gap:4px}.gps-bar-value{font-size:11.5px;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.gps-bar-track{position:relative;display:flex;align-items:flex-end;justify-content:center;width:100%}.gps-bar{display:block;width:min(24px,70%);min-height:2px;border-radius:4px 4px 0 0;background:var(--tone)}.gps-bar-label{max-width:100%;overflow:hidden;font-size:10.5px;color:var(--g-ink-3);white-space:nowrap;text-overflow:ellipsis}.gps-strip{display:block;width:100%;min-width:140px;height:10px;border-radius:3px}.gps-timeline{position:relative}.gps-timeline-track{position:relative;height:26px;overflow:hidden;border-radius:8px;background:var(--g-none)}.gps-span{position:absolute;top:0;bottom:0;min-width:1px}.gps-now{position:absolute;top:-2px;bottom:-2px;width:2px;background:var(--g-ink)}.gps-hours{position:relative;display:grid;grid-template-columns:repeat(24,minmax(0,1fr));grid-gap:3px;gap:3px;height:96px;padding-bottom:16px}.gps-hour{position:relative;display:flex;align-items:flex-end}.gps-hour-stack{display:flex;flex-direction:column-reverse;gap:2px;width:100%;height:100%;justify-content:flex-start}.gps-hour-stack span{display:block;width:100%;min-height:2px}.gps-hour-stack span:last-child{border-radius:4px 4px 0 0}.gps-hour-label{position:absolute;bottom:-16px;left:0;font-size:10px;color:var(--g-ink-3)}.gps-trail{display:inline-flex;gap:3px}.gps-trail i{width:12px;height:12px;border-radius:3px;background:var(--tone)}.gps-trail i.gps-trail-none{background:var(--g-none);box-shadow:inset 0 0 0 1px var(--g-line)}.gps-history{position:relative;display:flex;align-items:flex-end;gap:4px;height:90px}.gps-history-day{flex:1 1;height:100%;display:flex;flex-direction:column;align-items:center;gap:4px;padding:0;border:0;background:none;cursor:pointer}.gps-history-day .gps-bar-track{flex:1 1}.gps-history-day .gps-bar{width:70%;max-width:22px}.gps-history-day.current .gps-bar-label{font-weight:800;color:var(--g-ink)}.gps-filters{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:10px;border-radius:18px;background:var(--g-card)}.gps-filters input[type=search],.gps-filters select{height:32px;padding:0 12px;border:0;border-radius:999px;background:var(--g-chip);font-size:12.5px;font-weight:600}.gps-filters input[type=search]{width:150px}.gps-filters select{max-width:190px;cursor:pointer}.gps-app.night .gps-filters select option{background:#161b22}.gps-slider{display:inline-flex;align-items:center;gap:8px;height:32px;padding:0 12px;border-radius:999px;background:var(--g-chip);font-size:12.5px;font-weight:600}.gps-slider input{width:90px;accent-color:var(--g-select)}.gps-slider b{min-width:30px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.gps-clear,.gps-csv,.gps-more{height:32px;padding:0 14px;border:0;border-radius:999px;background:var(--g-select);color:var(--g-select-ink)!important;font-size:12.5px;font-weight:700;cursor:pointer}.gps-clear:disabled,.gps-csv:disabled{opacity:.35;cursor:default}.gps-list-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 4px;font-size:13px}.gps-table-wrap{flex:none;overflow-x:auto;border-radius:18px;background:var(--g-card)}.gps-table{width:100%;border-collapse:collapse;font-size:12.5px}.gps-table th{position:-webkit-sticky;position:sticky;top:0;z-index:1;padding:10px 10px 8px;border-bottom:1px solid var(--g-hair);background:var(--g-card);font-size:11.5px;font-weight:700;text-align:left;color:var(--g-ink-3);white-space:nowrap}.gps-table th button{padding:0;border:0;background:none;font-weight:700;color:inherit;cursor:pointer}.gps-table th[aria-sort] button{color:var(--g-ink)}.gps-table th small{margin-left:4px;font-weight:500}.gps-table td{padding:7px 10px;border-bottom:1px solid var(--g-line);vertical-align:middle;white-space:nowrap}.gps-table tbody tr{cursor:pointer}.gps-table tbody tr:hover td{background:var(--g-chip)}.gps-table .num{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.gps-table .col-day{width:30%;min-width:150px}.gps-table .col-bus small{display:block;margin-top:1px;font-size:11px;color:var(--g-ink-3)}.gps-plate{display:inline-flex;align-items:center;gap:6px;padding:0;border:0;background:none;font-weight:750;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;letter-spacing:.01em;cursor:pointer}.gps-live-dot{width:7px;height:7px;border-radius:50%;background:var(--st-neutral);opacity:.6}.gps-live-dot.on{background:#1f9d55;opacity:1;box-shadow:0 0 0 3px rgba(31,157,85,.2)}.gps-grade{display:inline-flex;align-items:center;gap:6px;font-weight:600}.gps-grade b{font-weight:750;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--g-ink-3)}.col-issues i{margin-right:7px;color:var(--g-ink-2)}.gps-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;background:color-mix(in srgb,var(--tone) 18%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--tone) 45%,transparent);font-size:12px;font-weight:700;white-space:nowrap}.gps-badge i{color:var(--tone)}.gps-more{align-self:center;flex:none}.gps-repeat-head{display:grid;grid-gap:10px;gap:10px;padding:12px 14px;border-radius:18px;background:var(--g-card)}.gps-repeat-head .gps-pills{width:max-content}.gps-repeat-head .gps-lead{margin:0}.gps-detail{display:flex;flex-direction:column;gap:12px;height:100%;overflow-y:auto;padding:14px 16px 18px;scrollbar-width:thin}.gps-detail-head{display:grid;grid-template-columns:36px minmax(0,1fr) auto;align-items:center;grid-gap:12px;gap:12px}.gps-detail-head h2{margin:0;font-size:26px;font-weight:800;letter-spacing:-.035em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.gps-detail-head p{margin:2px 0 0;font-size:12.5px;color:var(--g-ink-2)}.gps-back{display:grid;place-items:center;width:36px;height:36px;border:0;border-radius:50%;background:var(--g-select);color:var(--g-select-ink)!important;cursor:pointer}.gps-action,.gps-detail section,.gps-detail-hero{padding:14px 16px;border-radius:18px;background:var(--g-card)}.gps-detail-hero{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;grid-gap:20px;gap:20px}.gps-detail-hero b{display:block;font-size:48px;font-weight:800;letter-spacing:-.05em;line-height:1}.gps-detail-hero span{display:block;margin-top:4px;font-size:12px;font-weight:600;color:var(--g-ink-2)}.gps-detail-hero dl{display:grid;grid-template-columns:auto auto;grid-gap:4px 14px;gap:4px 14px;margin:0;font-size:12.5px}.gps-detail-hero dt{color:var(--g-ink-3)}.gps-detail-hero dd{margin:0;font-weight:700;text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.gps-action{display:grid;grid-template-columns:22px minmax(0,1fr);grid-gap:10px;gap:10px;margin:0;font-size:13px;line-height:1.45;box-shadow:inset 4px 0 0 var(--tone)}.gps-action i{margin-top:2px;color:var(--tone)}.gps-scores{display:grid;grid-template-columns:1fr 1fr;grid-gap:18px;gap:18px}.gps-score h3{display:flex;align-items:center;justify-content:space-between;gap:8px}.gps-score ul{display:grid;grid-gap:8px;gap:8px;margin:0;padding:0;list-style:none}.gps-score li{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:4px 8px;gap:4px 8px;font-size:12.5px}.gps-score li>span:first-child{color:var(--g-ink-2)}.gps-score li.limiting>span:first-child{font-weight:750;color:var(--g-ink)}.gps-score li.limiting>span:first-child:after{content:" · holds it down";font-weight:500;color:var(--g-ink-3)}.gps-score li b{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.gps-meter{grid-column:1/-1;height:6px;overflow:hidden;border-radius:3px;background:var(--g-none)}.gps-meter span{display:block;height:100%;border-radius:3px;background:var(--tone)}.gps-findings{display:grid;grid-gap:8px;gap:8px;margin:0;padding:0;list-style:none}.gps-findings li{display:grid;grid-template-columns:20px minmax(0,1fr);grid-gap:8px;gap:8px;font-size:12.5px;line-height:1.45;color:var(--g-ink-2)}.gps-findings i{margin-top:3px;color:var(--g-ink-3)}.gps-findings b{color:var(--g-ink)}.gps-gaps td,.gps-gaps th{padding-left:0}.gps-gaps tbody tr{cursor:default}.gps-links{margin:0;padding:0 4px;font-size:13px;font-weight:700}.gps-links a{color:inherit}.gps-popup .maplibregl-popup-content{padding:7px 10px;border-radius:8px;background:rgba(14,18,26,.92);color:#f7f9fc;font:12px/1.35 Inter,system-ui,sans-serif;box-shadow:0 8px 18px rgba(8,12,20,.28)}.gps-popup-place{color:#d7e0ea}.gps-popup .maplibregl-popup-tip{border-top-color:rgba(14,18,26,.92)!important;border-bottom-color:rgba(14,18,26,.92)!important}.gps-app .maplibregl-ctrl-attrib{font-size:10px;background:rgba(255,255,255,.72)}.gps-app.night .maplibregl-ctrl-attrib{background:rgba(18,21,28,.72)}.gps-app .nav-links{display:flex;bottom:16px}@media (prefers-reduced-motion:reduce){.gps-cats button,.gps-cell,.gps-panel{transition:none}.gps-spinner{animation-duration:2.4s}}@media (max-width:1179px){.gps-app{display:flex;flex-direction:column;gap:12px;overflow-y:auto;padding:0 0 20px}.gps-hud{position:relative;top:auto;left:auto;order:0;width:auto;padding:18px 16px 0}.gps-hud:before{display:none}.gps-stats{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:18px;max-width:560px}.gps-map{position:relative;order:1;flex:none;height:300px;margin:0 12px;overflow:hidden;border-radius:20px}.gps-panel,.gps-panel.panel-buses,.gps-panel.panel-detail,.gps-panel.panel-repeat{position:relative;top:auto;right:auto;bottom:auto;order:2;flex:none;width:auto;max-width:none;margin:0 12px;overflow:visible}.gps-detail,.gps-panel-body{overflow:visible;height:auto}.gps-app .nav-links{position:static;order:3;align-self:center;flex-wrap:wrap;justify-content:center;max-width:calc(100vw - 24px);transform:none}}@media (max-width:640px){.gps-hud h1{font-size:32px}.gps-hero b{font-size:48px}.gps-issues,.gps-scores,.gps-two{grid-template-columns:1fr}.gps-cats button{grid-template-columns:30px minmax(0,1fr) 46px 34px}.gps-cat-bar{display:none}.gps-detail-hero{grid-template-columns:1fr}.gps-filters input[type=search]{flex:1 1 100%}.gps-matrix-head,.gps-matrix-row{grid-template-columns:64px repeat(3,minmax(0,1fr))}}.gps-canvas{position:absolute;inset:0}.gps-trace-key{position:absolute;z-index:2;bottom:28px;left:22px;display:grid;grid-gap:3px;gap:3px;padding:10px 14px;max-width:calc(100% - 40px);border-radius:12px;background:var(--g-card);color:var(--g-ink);box-shadow:var(--g-shadow);font-size:12px;pointer-events:none}.gps-trace-bands{display:flex;flex-wrap:wrap;gap:3px 10px}.gps-trace-bands span{white-space:nowrap}.gps-trace-bands i{display:inline-block;width:14px;margin-right:4px;border-top:4px solid;border-radius:2px;vertical-align:middle}@media (max-width:1179px){.gps-trace-key{bottom:8px;left:8px;padding:6px 10px}}.gps-replay{display:grid;grid-gap:6px;gap:6px;margin-top:4px;padding-top:7px;border-top:1px solid var(--g-line);pointer-events:auto}.gps-replay-tools{display:flex;gap:6px}.gps-replay-tools>*{background:var(--g-chip);color:var(--g-ink);font:inherit;border:0;border-radius:6px;padding:5px 8px;cursor:pointer}.gps-replay-tools button:first-child{background:var(--g-select);color:var(--g-select-ink);min-width:56px}.gps-replay-tools button:disabled{opacity:.5;cursor:default}.gps-replay label,.gps-replay-reading{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:2px 12px}.gps-replay time{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.gps-replay input{width:100%;margin:2px 0;accent-color:var(--g-select)}.gps-replay-bus{width:32px;height:32px;pointer-events:none;filter:drop-shadow(0 2px 3px #15232a80)}.gps-replay-bus svg{display:block;width:100%;height:100%;overflow:visible}.gps-replay-bus path{fill:#14323a;stroke:white;stroke-width:2.5px;stroke-linejoin:round}.gps-replay-bus.direction-unknown path{fill:#697384}.gps-timeline-seek{height:32px;cursor:crosshair;touch-action:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.gps-timeline-seek:focus-visible{outline:2px solid var(--g-select);outline-offset:3px}.gps-playhead,.gps-preview-head{position:absolute;top:0;bottom:0;width:2px;transform:translateX(-50%);pointer-events:none;background:#14323a;box-shadow:0 0 0 1px white}.gps-playhead:before{content:"";position:absolute;top:0;left:-4px;width:10px;height:7px;background:#14323a;-webkit-clip-path:polygon(0 0,100% 0,50% 100%);clip-path:polygon(0 0,100% 0,50% 100%)}.gps-preview-head{width:1px;background:white;box-shadow:0 0 0 1px #14323a}.gps-timeline-help{margin:8px 0 0;color:var(--g-ink-3);font-size:11px}.gps-timeline-reading{display:flex;flex-wrap:wrap;gap:4px 12px;margin:6px 0 0;font-size:12px}.gps-timeline-reading time{font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}@media (max-width:1179px){.gps-map:has(.gps-replay){height:auto}.gps-map:has(.gps-replay) .gps-canvas{position:relative;height:300px}.gps-map:has(.gps-replay) .gps-trace-key{position:static;max-width:none;border-radius:0;padding:10px 14px}}.gps-depot-controls{display:grid;max-height:230px;overflow:auto;grid-gap:8px;gap:8px;width:min(340px,100%);padding:10px 12px;border-radius:14px;background:var(--g-card);color:var(--g-ink);font-size:12px;pointer-events:auto}.gps-checkbox{display:flex!important;flex-direction:row!important;align-items:center;gap:7px!important;font-size:12px;cursor:pointer}.gps-checkbox input{width:auto!important;margin:0;accent-color:var(--g-select)}.gps-depot-controls .gps-note{margin:0;font-size:11px;line-height:1.4}.gps-depot-controls a{color:inherit}.gps-depot-controls details summary,.gps-idle-locations summary{cursor:pointer;font-size:12px;font-weight:650}.gps-depot-list,.gps-idle-locations ul{max-height:190px;overflow:auto;padding:0;margin:8px 0 0;list-style:none}.gps-depot-list li{border-top:1px solid var(--g-line);padding:5px 0}.gps-depot-list button{display:flex;justify-content:space-between;width:100%;padding:4px 0;border:0;color:inherit;background:none;text-align:left;cursor:pointer;font:inherit}.gps-depot-list details p{font-size:11px}.gps-operations h3{display:flex;align-items:center;justify-content:space-between;gap:10px}.gps-mock-badge{padding:3px 7px;border-radius:5px;background:#f6e9d3;color:#7c4d00;font-size:10px;white-space:nowrap}.gps-duty-fields{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px}.gps-duty-fields label,.gps-operation-controls label{display:flex;flex-direction:column;gap:4px;font-size:12px}.gps-duty-fields input,.gps-operation-controls select{width:100%;min-width:0;height:30px;padding:4px 8px;border:1px solid var(--g-line);border-radius:7px;font:inherit;color:var(--g-ink);background:var(--g-chip)}.gps-operation-controls{display:grid;grid-gap:8px;gap:8px;margin:10px 0}.gps-ops-totals{width:100%;border-collapse:collapse;font-size:12px}.gps-ops-totals th{font-weight:550;text-align:left}.gps-ops-totals td,.gps-ops-totals th{padding:5px 0;border-bottom:1px solid var(--g-line)}.gps-ops-totals td,.gps-ops-totals th:not(:first-child){text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.gps-ops-totals tfoot{font-weight:750}.gps-activity-strip{position:relative;height:12px;margin-top:10px;border-radius:4px;overflow:hidden}.gps-activity-strip span{position:absolute;top:0;bottom:0;min-width:1px}.gps-idle-flag{background:transparent;border:0;padding:0;width:22px;height:25px;font-size:22px;cursor:pointer;filter:drop-shadow(0 0 2px white) drop-shadow(0 1px 2px #14323a80)}.gps-idle-flag:focus-visible{outline:2px solid var(--g-select);border-radius:4px}.gps-idle-locations li+li{border-top:1px solid var(--g-line)}.gps-idle-locations button{display:grid;grid-gap:2px;gap:2px;width:100%;padding:8px 0;text-align:left;border:0;background:transparent;color:var(--g-ink);font:inherit;font-size:12px;cursor:pointer}.gps-idle-locations code{font-size:11px;color:var(--g-ink-3)}.gps-current-activity{font-size:12px}.gps-current-activity i{display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:5px}.gps-activity-key{display:grid;grid-template-columns:1fr}.gps-mock-path-key{color:#9458bc}.gps-app:has(.gps-activity-key) .gps-trace-key{max-width:min(390px,calc(100% - 40px))}@media (max-width:1179px){.gps-depot-controls{width:100%;max-height:none}.gps-app:has(.gps-activity-key) .gps-trace-key{max-width:none}}