:root{color-scheme:light;--background:#f4f6f8;--surface:#ffffff;--surface-alt:#eef3f6;--text:#172026;--muted:#65727c;--border:#d8e0e6;--accent:#0f766e;--accent-strong:#0b5e58;--accent-soft:#d9f3ee;--blue:#2563eb;--amber:#b7791f;--danger:#b42318;--shadow:0 18px 42px rgba(23,32,38,0.08)}*{box-sizing:border-box}body,html{margin:0;min-height:100%}body{background:var(--background);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.58}.transport-shell{display:grid;min-height:100vh;grid-template-rows:auto 1fr;grid-gap:18px;gap:18px;padding:22px}.app-header{display:flex;align-items:center;justify-content:space-between;gap:18px}.app-header h1{margin:0;font-size:1.35rem;font-weight:760;line-height:1.2}.app-header p{margin:5px 0 0;color:var(--muted);font-size:.94rem}.service-scope{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.service-scope span{border:1px solid var(--border);border-radius:999px;background:var(--surface);padding:7px 10px;color:#34434b;font-size:.82rem;font-weight:700}.workspace{display:grid;min-height:0;grid-template-columns:minmax(280px,340px) minmax(420px,1fr) minmax(300px,380px);grid-gap:16px;gap:16px}.map-panel,.planner-panel,.results-panel{min-width:0;border:1px solid var(--border);border-radius:8px;background:var(--surface);box-shadow:var(--shadow)}.planner-panel,.results-panel{display:flex;min-height:0;flex-direction:column;gap:16px;padding:16px}.mode-switch,.radius-control{display:grid;grid-gap:6px;gap:6px;border:1px solid var(--border);border-radius:8px;background:var(--surface-alt);padding:4px}.mode-switch{grid-template-columns:repeat(2,minmax(0,1fr))}.radius-control{grid-template-columns:repeat(3,minmax(0,1fr))}.fare-mode-switch button,.mode-switch button,.radius-control button{min-height:38px;border:0;border-radius:6px;background:transparent;color:var(--muted);font-size:.9rem;font-weight:760}.fare-mode-switch button.active,.mode-switch button.active,.radius-control button.active{background:var(--surface);color:var(--accent-strong);box-shadow:0 1px 4px rgba(23,32,38,.1)}.fallback-mode{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:10px;gap:10px;align-items:center;border:1px solid var(--border);border-radius:8px;background:#fbfcfd;padding:10px}.fallback-mode.active{border-color:rgba(183,121,31,.28);background:#fff9e8}.fallback-mode span{color:var(--muted);font-size:.8rem;line-height:1.45}.field-grid,.planner-form{display:grid;grid-gap:12px;gap:12px}.field-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}label{display:grid;grid-gap:7px;gap:7px;color:#34434b;font-size:.82rem;font-weight:760}input,select,textarea{width:100%;border:1px solid var(--border);border-radius:7px;background:#fbfcfd;color:var(--text);padding:0 11px;font-size:.94rem;outline:none}input,select{min-height:42px}textarea{min-height:92px;padding:10px 11px;line-height:1.45;resize:vertical}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(15,118,110,.14)}.form-actions{display:flex;align-items:center;justify-content:space-between;gap:10px}.form-actions button,.secondary-button{min-height:42px;border:0;border-radius:7px;background:var(--accent);color:#ffffff;padding:0 14px;font-size:.92rem;font-weight:800}.secondary-button{border:1px solid var(--border);background:#ffffff;color:#34434b}.secondary-button.compact{min-height:36px;padding:0 11px;font-size:.82rem}.fare-row,.notice,.station-count{border-radius:7px;padding:10px 11px;font-size:.86rem}.station-count{color:var(--muted);font-weight:700}.fare-row{display:grid;grid-gap:10px;gap:10px;border:1px solid #e8d7aa;background:#fff7df;color:#61440c}.fare-row.active{border-color:rgba(15,118,110,.34);background:#f0faf7;color:#26433d}.fare-row strong{font-size:.84rem}.fare-toggle{justify-content:space-between;gap:10px}.fare-toggle,.toggle-field{display:flex;align-items:center}.toggle-field{min-width:0;grid-template-columns:none;gap:8px;color:inherit;font-size:.86rem;font-weight:820}.toggle-field input{width:17px;min-height:17px;accent-color:var(--accent)}.fare-counts{display:grid;grid-template-columns:repeat(3,minmax(64px,1fr));grid-gap:8px;gap:8px}.fare-counts label{gap:5px;color:#40544f;font-size:.74rem}.fare-counts input{min-height:34px;border-color:rgba(15,118,110,.24);background:#ffffff;padding:0 8px;font-size:.86rem}.fare-mode-switch{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:4px;gap:4px;border-radius:7px;background:rgba(15,118,110,.08);padding:4px}.fare-mode-switch button{min-height:34px;font-size:.82rem}.passenger-list{display:grid;grid-gap:8px;gap:8px}.passenger-row{display:grid;grid-template-columns:minmax(88px,1fr) minmax(94px,1fr) auto;grid-gap:8px;gap:8px;align-items:end}.passenger-row label{gap:5px;color:#40544f;font-size:.74rem}.passenger-row input,.passenger-row select{min-height:34px;border-color:rgba(15,118,110,.24);background:#ffffff;padding:0 8px;font-size:.86rem}.passenger-actions{display:flex;align-items:center;justify-content:space-between;gap:10px}.passenger-actions small{color:#52635e;font-size:.74rem;line-height:1.45}.notice{border:1px solid #f2c3bc;background:#fff0ee;color:var(--danger);line-height:1.5}.liveboard-panel,.location-panel,.transit-warning-list{display:grid;grid-gap:8px;gap:8px;border:1px solid rgba(15,118,110,.18);border-radius:8px;background:#f8fcfb;padding:11px}.location-panel{grid-template-columns:minmax(0,1fr) auto;align-items:center}.location-panel>div{display:grid;min-width:0;grid-gap:3px;gap:3px}.liveboard-panel strong,.location-panel strong{font-size:.86rem}.liveboard-panel p,.location-panel small,.location-panel span,.transit-warning-list p{margin:0;color:var(--muted);font-size:.78rem;line-height:1.45}.location-panel.ready{border-color:rgba(15,118,110,.26);background:#f0faf7}.location-panel.notice,.location-panel.warning{border-color:#e8d7aa;background:#fff9e8}.location-panel.blocked{border-color:#f2c3bc;background:#fff0ee}.location-panel.blocked small,.location-panel.blocked span{color:var(--danger)}.liveboard-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.liveboard-heading span{color:var(--accent-strong);font-size:.76rem;font-weight:820}.liveboard-panel ul{display:grid;grid-gap:6px;gap:6px;margin:0;padding:0;list-style:none}.liveboard-panel li{display:grid;grid-template-columns:minmax(44px,auto) auto minmax(0,1fr);grid-gap:7px;gap:7px;align-items:center;border-top:1px solid rgba(15,118,110,.12);padding-top:6px;font-size:.78rem}.liveboard-panel li small,.liveboard-panel li span{overflow:hidden;color:var(--muted);text-overflow:ellipsis;white-space:nowrap}.liveboard-panel li strong{color:var(--accent-strong);font-size:.78rem}.transit-warning-list{border-color:#e8d7aa;background:#fff9e8}.transit-warning-list p{color:#61440c}.transit-result-mode{display:grid;grid-template-columns:1fr 1fr;grid-gap:8px;gap:8px}.transit-result-mode button{border:1px solid var(--border);border-radius:8px;background:#ffffff;padding:9px 10px;color:var(--text);font-weight:780}.transit-result-mode button.active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-strong)}.transit-result-mode button:disabled{cursor:not-allowed;opacity:.62}.nearby-bus-panel{display:grid;grid-gap:9px;gap:9px;border:1px solid rgba(15,118,110,.22);border-radius:8px;background:#f6fcfa;padding:11px}.nearby-bus-heading,.nearby-bus-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.nearby-bus-heading strong{font-size:.86rem}.nearby-bus-heading span{color:var(--accent-strong);font-size:.76rem;font-weight:820}.nearby-bus-list{display:grid;grid-gap:8px;gap:8px}.nearby-route-card{display:grid;grid-template-columns:minmax(72px,.55fr) minmax(0,1fr) auto;grid-gap:9px;gap:9px;align-items:center;border:1px solid rgba(15,118,110,.16);border-radius:8px;background:#ffffff;padding:10px}.nearby-route-card.active{border-color:var(--accent);background:var(--accent-soft)}.nearby-route-card>div:first-child{display:grid;grid-gap:3px;gap:3px;min-width:0}.nearby-route-card strong{overflow:hidden;color:var(--text);font-size:.92rem;text-overflow:ellipsis;white-space:nowrap}.nearby-bus-more,.nearby-route-card small,.nearby-route-meta span{color:var(--muted);font-size:.75rem;line-height:1.35}.nearby-route-meta{display:grid;grid-gap:3px;gap:3px;min-width:0}.nearby-route-meta span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nearby-route-card button{min-height:34px;border:1px solid rgba(15,118,110,.2);border-radius:7px;background:#ffffff;color:var(--accent-strong);padding:0 10px;font-size:.78rem;font-weight:820}.nearby-route-card.active button{border-color:var(--accent);background:var(--accent);color:#ffffff}.nearby-bus-row{min-width:0;border-top:1px solid rgba(15,118,110,.14);padding-top:8px}.nearby-bus-row>div:first-child{display:grid;min-width:0;grid-gap:3px;gap:3px}.nearby-bus-row strong{overflow:hidden;font-size:.84rem;text-overflow:ellipsis;white-space:nowrap}.nearby-bus-empty,.nearby-bus-row small{color:var(--muted);font-size:.76rem;line-height:1.4}.nearby-bus-routes{display:flex;max-width:46%;flex-wrap:wrap;justify-content:flex-end;gap:5px}.nearby-bus-routes button,.nearby-bus-routes span{border-radius:999px;background:var(--accent-soft);color:var(--accent-strong);padding:4px 7px;font-size:.72rem;font-weight:850}.nearby-bus-routes button{min-height:24px;border:1px solid transparent}.nearby-bus-routes button.active{border-color:var(--accent);background:var(--accent);color:#ffffff}.nearby-bus-routes button:disabled{cursor:not-allowed}.nearby-realtime-summary{display:grid;grid-gap:5px;gap:5px;border:1px solid rgba(15,118,110,.22);border-radius:8px;background:#f6fcfa;padding:12px}.nearby-realtime-summary small,.nearby-realtime-summary span{color:var(--muted);font-size:.78rem}.nearby-realtime-summary strong{overflow-wrap:anywhere;color:var(--accent-strong);font-size:.94rem}.nearby-realtime-summary p{margin:0;color:var(--muted);font-size:.78rem;line-height:1.45}.realtime-data-gap{grid-column:1/-1;border:1px solid #e8d7aa;border-radius:7px;background:#fff7df;color:#61440c;padding:8px 10px;font-size:.78rem;font-weight:760;line-height:1.45}.realtime-data-gap.muted{border-color:var(--border);background:#fbfcfd;color:var(--muted)}.nearby-route-summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:8px;gap:8px}.nearby-route-summary-grid span{display:grid;grid-gap:3px;gap:3px;border:1px solid rgba(15,118,110,.16);border-radius:7px;background:#ffffff;padding:9px}.nearby-route-summary-grid span small{color:var(--muted);font-size:.72rem;font-weight:760}.nearby-route-summary-grid span strong{color:var(--text);font-size:.86rem}.candidate-list{display:grid;grid-gap:8px;gap:8px}.candidate-list button{display:grid;grid-gap:3px;gap:3px;border:1px solid var(--border);border-radius:7px;background:#ffffff;padding:10px;text-align:left}.candidate-list span{font-weight:760}.candidate-list small{color:var(--muted);line-height:1.35}.map-panel{display:grid;min-height:560px;grid-template-rows:auto 1fr;overflow:hidden}.map-toolbar,.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--border);padding:14px 16px}.map-toolbar>div:first-child{display:grid;grid-gap:3px;gap:3px}.map-toolbar h2,.panel-heading h2{margin:0;font-size:.96rem}.map-toolbar span,.panel-heading span{color:var(--muted);font-size:.84rem;font-weight:760}.map-mode-toggle{display:inline-grid;grid-template-columns:repeat(2,minmax(78px,1fr));overflow:hidden;border:1px solid var(--border);border-radius:8px;background:#eef4f5}.map-mode-toggle button{min-height:36px;border:0;border-radius:0;background:transparent;color:var(--muted);padding:0 12px;font-size:.82rem;font-weight:820}.map-mode-toggle button.active{background:#ffffff;color:var(--accent-strong);box-shadow:0 1px 4px rgba(23,32,38,.12)}.map-canvas{position:relative;min-height:480px;overflow:hidden;background:linear-gradient(90deg,rgba(216,224,230,.55) 1px,transparent 0),linear-gradient(0deg,rgba(216,224,230,.55) 1px,transparent 0),linear-gradient(135deg,#e8f1f4,#f6f8fa);background-size:52px 52px,52px 52px,auto}.map-canvas.real-map-enabled{background:#dbe8e3;cursor:-webkit-grab;cursor:grab;touch-action:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.map-canvas.real-map-enabled.dragging{cursor:-webkit-grabbing;cursor:grabbing}.map-tile-layer{inset:0;z-index:0;overflow:hidden;background:#dce8e4}.map-tile-layer,.map-tile-layer img{position:absolute;pointer-events:none}.map-tile-layer img{max-width:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-user-drag:none}.map-zoom-controls{position:absolute;top:12px;left:12px;z-index:5;display:inline-grid;grid-template-columns:38px 38px auto;overflow:hidden;border:1px solid rgba(24,40,48,.18);border-radius:8px;background:rgba(255,255,255,.92);box-shadow:0 8px 20px rgba(23,32,38,.14)}.map-zoom-controls button{min-width:38px;min-height:38px;border:0;border-radius:0;border-right:1px solid rgba(24,40,48,.12);background:transparent;color:var(--text);padding:0 10px;font-size:.86rem;font-weight:860}.map-zoom-controls button:last-child{border-right:0}.map-zoom-controls button:disabled{color:#9aa8ae;cursor:not-allowed}.map-attribution{position:absolute;right:10px;bottom:8px;z-index:4;border-radius:6px;background:rgba(255,255,255,.88);color:#43515a;padding:4px 7px;font-size:.7rem;font-weight:760;pointer-events:none}.map-grid{position:absolute;inset:13%;border:1px solid rgba(23,32,38,.1);border-radius:8px}.map-route-line{position:absolute;inset:0;z-index:1;width:100%;height:100%;pointer-events:none}.map-route-line polyline{fill:none;stroke:var(--blue);stroke-linecap:round;stroke-linejoin:round;stroke-opacity:.72;stroke-width:4;filter:drop-shadow(0 4px 10px rgba(37,99,235,.2))}.real-map-route-line{z-index:2}.real-map-route-line polyline{stroke-opacity:.92;stroke-width:5;filter:drop-shadow(0 2px 4px rgba(255,255,255,.9)) drop-shadow(0 4px 12px rgba(37,99,235,.26))}.map-marker{position:absolute;z-index:3;display:grid;width:34px;height:34px;place-items:center;border:2px solid #ffffff;border-radius:999px;background:var(--blue);color:#ffffff;font-size:.78rem;font-weight:850;pointer-events:none;box-shadow:0 10px 20px rgba(23,32,38,.18);transform:translate(-50%,-50%)}.map-marker.stop{background:var(--accent)}.map-marker.boarding_stop{background:var(--blue)}.map-marker.alighting_stop{background:var(--danger)}.map-marker.metro_station{background:var(--accent-strong)}.map-marker.nearby_bus{background:#2f855a}.map-marker.vehicle{width:42px;height:30px;border-radius:8px;background:var(--amber)}.map-empty{top:50%;left:50%;width:min(260px,80%);border:1px solid var(--border);border-radius:8px;background:rgba(255,255,255,.86);padding:16px;color:var(--muted);text-align:center;transform:translate(-50%,-50%)}.map-empty,.map-layer-notice{position:absolute;pointer-events:none}.map-layer-notice{left:12px;bottom:12px;z-index:5;max-width:min(320px,calc(100% - 24px));border:1px solid #e8d7aa;border-radius:7px;background:rgba(255,247,223,.94);color:#61440c;padding:8px 10px;font-size:.78rem;font-weight:760}.results-panel{overflow:auto}.panel-heading{margin:-16px -16px 0}.panel-heading.compact{margin:0;border:0;padding:0}.route-list{display:grid;grid-gap:9px;gap:9px}.route-card{display:grid;grid-template-columns:1fr auto;grid-gap:12px;gap:12px;align-items:center;border:1px solid var(--border);border-radius:8px;background:#ffffff;padding:12px;color:var(--text);text-align:left}.route-card.active{border-color:var(--accent);background:var(--accent-soft)}.route-card-main{display:grid;min-width:0;grid-gap:4px;gap:4px}.route-card-main>span{overflow:hidden;font-size:.92rem;font-weight:780;text-overflow:ellipsis;white-space:nowrap}.route-card-main small{color:var(--accent-strong);font-size:.76rem;font-weight:780}.route-card-meta{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:7px;gap:7px;overflow:visible!important;text-overflow:clip!important;white-space:normal!important}.route-card-meta>span{display:grid;grid-gap:2px;gap:2px;min-width:0;border:1px solid rgba(15,118,110,.14);border-radius:7px;background:rgba(255,255,255,.72);padding:7px}.route-card-meta em,.route-card-meta small{color:var(--muted);font-size:.7rem;font-style:normal;font-weight:760}.route-card-meta strong{overflow:hidden;color:var(--text);font-size:.82rem;text-overflow:ellipsis;white-space:nowrap}.route-card-meta .route-card-alert{grid-column:1/-1;border-color:#e8d7aa;background:#fff9e8}.route-card-meta .route-card-alternatives{grid-column:1/-1;border-color:rgba(18,86,136,.16);background:#f4f8fb}.route-card-meta .route-card-alternatives strong{white-space:normal}.route-card-reasons{display:flex!important;grid-column:1/-1;flex-wrap:wrap;gap:5px;border:0!important;background:transparent!important;padding:0!important}.route-card-reasons em{border-radius:999px;background:#eef3f6;color:#40505a;padding:3px 7px}.route-duration{color:var(--accent-strong);font-size:.9rem}.fare-summary{display:grid;grid-gap:11px;gap:11px;border:1px solid rgba(15,118,110,.25);border-radius:8px;background:#f6fcfa;padding:12px}.fare-summary.partial{border-color:#e8d7aa;background:#fffaf0}.fare-summary.unavailable{border-color:var(--border);background:#fbfcfd}.fare-summary-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.fare-summary-heading div{display:grid;grid-gap:3px;gap:3px}.fare-summary-heading small{color:var(--muted);font-size:.75rem;font-weight:760}.fare-summary-heading strong{color:var(--text);font-size:1.18rem}.fare-summary-heading>span{border-radius:999px;background:rgba(15,118,110,.1);color:var(--accent-strong);padding:5px 8px;font-size:.76rem;font-weight:820}.fare-summary.partial .fare-summary-heading>span{background:#fff0c8;color:#61440c}.fare-breakdown{display:grid;grid-gap:7px;gap:7px}.fare-breakdown span{display:flex;justify-content:space-between;gap:10px;color:var(--muted);font-size:.82rem}.fare-breakdown strong{color:var(--text)}.fare-summary p{margin:0;color:#7a5a17;font-size:.8rem;line-height:1.45}.segment-list{display:grid;grid-gap:10px;gap:10px}.segment-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-gap:10px;gap:10px;align-items:center;border-bottom:1px solid var(--border);padding-bottom:10px}.segment-row>div:nth-child(2){display:grid;min-width:0;grid-gap:3px;gap:3px}.segment-row strong{font-size:.9rem}.segment-row span{overflow:hidden;color:var(--muted);font-size:.82rem;text-overflow:ellipsis;white-space:nowrap}.segment-data-gap{color:#7a5a17;font-size:.76rem;font-style:normal;font-weight:760;line-height:1.35}.mode-dot{width:12px;height:12px;border-radius:999px;background:var(--blue)}.mode-dot.bus{background:var(--amber)}.mode-dot.light_rail,.mode-dot.metro{background:var(--accent)}.mode-dot.walk{background:var(--muted)}.mini-button{min-width:54px;min-height:32px;border:1px solid var(--border);border-radius:7px;background:#ffffff;color:#34434b;font-size:.78rem;font-weight:800}.mini-button.active{border-color:var(--amber);background:#fff7df;color:#61440c}.segment-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}.feedback-panel,.realtime-panel{display:grid;grid-gap:12px;gap:12px;border-top:1px solid var(--border);padding-top:14px}.feedback-form{display:grid;grid-gap:10px;gap:10px}.feedback-actions{display:flex;align-items:center;justify-content:space-between;gap:10px}.feedback-actions span{color:var(--muted);font-size:.78rem;font-weight:760}.feedback-actions button{min-height:38px;border:0;border-radius:7px;background:var(--accent);color:#ffffff;padding:0 12px;font-size:.86rem;font-weight:820}.feedback-notice{border-radius:7px;padding:10px 11px;font-size:.82rem;line-height:1.45}.feedback-notice.success{border:1px solid rgba(15,118,110,.24);background:#f0faf7;color:var(--accent-strong)}.feedback-notice.error{border:1px solid #f2c3bc;background:#fff0ee;color:var(--danger)}.feedback-history{display:grid;grid-gap:9px;gap:9px}.feedback-history-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.feedback-history-heading strong{color:var(--text);font-size:.9rem}.feedback-history-heading button{min-height:30px;border:1px solid var(--border);border-radius:7px;background:#ffffff;color:var(--accent-strong);padding:0 10px;font-size:.78rem;font-weight:820}.feedback-history-list{display:grid;grid-gap:8px;gap:8px;margin:0;padding:0;list-style:none}.feedback-history-list li{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:6px 10px;gap:6px 10px;border:1px solid var(--border);border-radius:8px;background:#fbfcfd;padding:10px}.feedback-history-list li>div{display:flex;align-items:center;gap:8px;min-width:0}.feedback-history-list strong{color:var(--text);font-size:.86rem}.feedback-history-list small{color:var(--muted);font-size:.76rem;font-weight:760}.feedback-history-list p{grid-column:1/-1;margin:0;color:var(--muted);font-size:.8rem;line-height:1.45;overflow-wrap:anywhere}.realtime-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:9px;gap:9px}.realtime-grid>div{display:grid;grid-gap:4px;gap:4px;border:1px solid var(--border);border-radius:8px;background:#fbfcfd;padding:10px}.realtime-grid small{color:var(--muted);font-size:.75rem;font-weight:750}.realtime-grid strong{font-size:1.05rem}.trip-watch-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.trip-watch-grid strong{overflow-wrap:anywhere}.trip-watch-note{grid-column:1/-1;margin:0;color:#475569;font-size:.82rem;font-weight:650}.eta-list{display:grid;grid-column:1/-1;grid-gap:7px;gap:7px;margin:0;padding:0;list-style:none}.full-route-stop-list{max-height:280px;overflow:auto;padding-right:4px}.eta-list li{display:flex;justify-content:space-between;gap:10px;border-bottom:1px solid var(--border);padding:6px 0;color:var(--muted);font-size:.84rem}.eta-list strong{color:var(--text);font-size:.84rem}.vehicle-position-list{display:grid;grid-column:1/-1;grid-gap:8px;gap:8px;border:1px solid var(--border);border-radius:8px;background:#fbfcfd;padding:10px}.vehicle-position-list ul{display:grid;max-height:220px;overflow:auto;grid-gap:8px;gap:8px;margin:0;padding:0;list-style:none}.vehicle-position-list li{display:grid;grid-gap:3px;gap:3px}.vehicle-position-list li strong{font-size:.86rem}.vehicle-position-empty,.vehicle-position-list li span{color:var(--muted);font-size:.8rem;line-height:1.35;overflow-wrap:anywhere}.empty-state{display:grid;min-height:180px;place-items:center;border:1px dashed var(--border);border-radius:8px;color:var(--muted);text-align:center}.empty-state.small{min-height:96px;font-size:.86rem}.route-empty-state{place-items:start;padding:18px;text-align:left}.route-empty-state>div{display:grid;grid-gap:8px;gap:8px}.route-empty-state strong{color:var(--text);font-size:1rem}.route-empty-state p{margin:0;color:var(--muted);font-size:.86rem;line-height:1.5}.empty-state-notes{display:grid;grid-gap:6px;gap:6px}.empty-state-notes span{border-radius:7px;background:#fff7df;color:#61440c;padding:7px 9px;font-size:.8rem;line-height:1.45}.admin-shell{gap:20px}.admin-header{border-bottom:1px solid var(--border);padding-bottom:14px}.admin-account{display:flex;align-items:center;gap:10px}.admin-account span{color:#34434b;font-size:.9rem;font-weight:760}.admin-auth-panel{display:grid;width:min(440px,100%);grid-gap:12px;gap:12px;justify-self:center}.admin-feedback-panel,.admin-login-form,.admin-settings-panel,.admin-table-panel{display:grid;grid-gap:16px;gap:16px;border:1px solid var(--border);border-radius:8px;background:var(--surface);box-shadow:var(--shadow)}.admin-login-form{padding:16px}.admin-login-form .panel-heading{margin:-16px -16px 0}.admin-login-form>button,.danger-button.solid{min-height:42px;border:0;border-radius:7px;background:var(--accent);color:#ffffff;padding:0 14px;font-size:.92rem;font-weight:800}.admin-workspace{display:grid;grid-gap:16px;gap:16px}.admin-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:12px;gap:12px}.metric-card{display:grid;grid-gap:7px;gap:7px;border:1px solid var(--border);border-radius:8px;background:var(--surface);padding:14px;box-shadow:var(--shadow)}.metric-card span{color:var(--muted);font-size:.78rem;font-weight:780}.metric-card strong{font-size:1.28rem}.admin-feedback-panel,.admin-settings-panel,.admin-table-panel{overflow:hidden}.admin-status-panel{display:grid;grid-gap:14px;gap:14px;overflow:hidden;border:1px solid var(--border);border-radius:8px;background:var(--surface);box-shadow:var(--shadow)}.admin-setting-body{display:grid;grid-template-columns:minmax(220px,1fr) minmax(280px,1.3fr);grid-gap:14px;gap:14px;padding:0 16px 16px}.admin-setting-body>div:first-child{display:grid;grid-gap:5px;gap:5px;border:1px solid var(--border);border-radius:8px;background:#fbfcfd;padding:14px}.admin-setting-body span{color:var(--muted);font-size:.78rem;font-weight:820}.admin-setting-body strong{color:var(--text);font-size:1.25rem}.admin-setting-body p{margin:0;color:var(--muted);font-size:.82rem}.admin-setting-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:8px;gap:8px}.admin-setting-options button{min-height:54px;border:1px solid var(--border);border-radius:8px;background:#ffffff;color:#40505a;font-size:.9rem;font-weight:850}.admin-setting-options button.active{border-color:rgba(15,118,110,.34);background:var(--accent-soft);color:var(--accent-strong)}.admin-status-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:12px;gap:12px;padding:0 16px 16px}.admin-status-card{display:grid;min-height:148px;align-content:start;grid-gap:10px;gap:10px;border:1px solid var(--border);border-radius:8px;background:#fbfcfd;padding:14px}.admin-status-card div{display:grid;grid-gap:4px;gap:4px}.admin-status-card div span{color:var(--muted);font-size:.75rem;font-weight:820}.admin-status-card strong{color:var(--text);font-size:.98rem}.admin-status-card p{margin:0;color:var(--muted);font-size:.8rem;line-height:1.45}.danger-text{color:var(--danger)!important}.admin-filter-tabs{display:flex;flex-wrap:wrap;gap:8px;padding:0 16px}.admin-filter-tabs button{display:inline-flex;min-height:36px;align-items:center;gap:8px;border:1px solid var(--border);border-radius:999px;background:#ffffff;color:#40505a;padding:0 12px;font-size:.82rem;font-weight:820}.admin-filter-tabs button.active{border-color:rgba(15,118,110,.26);background:var(--accent-soft);color:var(--accent-strong)}.admin-filter-tabs button span{display:inline-grid;min-width:22px;min-height:22px;place-items:center;border-radius:999px;background:#eef3f6;color:#40505a;font-size:.72rem}.admin-filter-tabs button.active span{background:#ffffff;color:var(--accent-strong)}.admin-feedback-list{display:grid;grid-gap:10px;gap:10px;padding:0 16px}.admin-feedback-card{display:grid;grid-template-columns:minmax(0,1fr) 170px;grid-gap:14px;gap:14px;border:1px solid var(--border);border-radius:8px;background:#fbfcfd;padding:14px}.admin-feedback-content{display:grid;grid-gap:10px;gap:10px;min-width:0}.admin-feedback-title{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.admin-feedback-title div{display:grid;min-width:0;grid-gap:3px;gap:3px}.admin-feedback-title span:not(.status-pill){color:var(--muted);font-size:.75rem;font-weight:820}.admin-feedback-title h3{margin:0;color:var(--text);font-size:.98rem}.admin-feedback-card p{margin:0;color:#34434b;font-size:.9rem;line-height:1.55}.admin-feedback-meta{display:flex;flex-wrap:wrap;gap:8px 14px;color:var(--muted);font-size:.78rem}.admin-status-select{align-content:start;min-width:0}.admin-table-footer,.admin-table-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px}.admin-table-toolbar{border-bottom:1px solid var(--border)}.admin-table-toolbar h2{margin:0;font-size:1rem}.admin-table-footer span,.admin-table-toolbar p{margin:5px 0 0;color:var(--muted);font-size:.84rem}.admin-toolbar-actions{display:flex;align-items:center;gap:8px}.admin-table-panel .notice{margin:0 16px}.admin-table-scroll{overflow-x:auto}.admin-table{width:100%;min-width:900px;border-collapse:collapse}.admin-table td,.admin-table th{border-bottom:1px solid var(--border);padding:12px 14px;text-align:left;vertical-align:middle}.admin-table th{background:#fbfcfd;color:#40505a;font-size:.76rem;font-weight:820}.admin-table td{color:#34434b;font-size:.86rem}.admin-table td span,.admin-table td strong{display:block}.admin-table td strong{color:var(--text);font-size:.88rem}.admin-table td span{margin-top:3px;color:var(--muted);font-size:.76rem}.status-pill{display:inline-flex;width:-moz-fit-content;width:fit-content;border-radius:999px;background:#eef3f6;padding:5px 8px;color:#40505a;font-size:.76rem;font-weight:820}.status-pill.enabled{background:var(--accent-soft);color:var(--accent-strong)}.status-pill.ok{background:#e9f7ef;color:#1f7a45}.status-pill.degraded{background:#fff4d8;color:#8a5b00}.status-pill.down{background:#fff4f2;color:var(--danger)}.status-pill.not-checked{background:#eef3f6;color:#64737c}.status-pill.open{background:#fff4d8;color:#8a5b00}.status-pill.reviewing{background:var(--accent-soft);color:var(--accent-strong)}.status-pill.resolved{background:#e9f7ef;color:#1f7a45}.status-pill.dismissed{background:#eef3f6;color:#64737c}.danger-button{min-height:34px;border:1px solid #f0b8b1;border-radius:7px;background:#fff4f2;color:var(--danger);padding:0 11px;font-size:.82rem;font-weight:820}.danger-button.solid{background:var(--danger);color:#ffffff}.admin-modal-backdrop{position:fixed;inset:0;z-index:10;display:grid;place-items:center;background:rgba(23,32,38,.42);padding:18px}.admin-modal{display:grid;width:min(460px,100%);grid-gap:12px;gap:12px;border:1px solid var(--border);border-radius:8px;background:var(--surface);padding:18px;box-shadow:0 22px 64px rgba(23,32,38,.22)}.admin-modal h2,.admin-modal p{margin:0}.admin-modal h2{font-size:1.05rem}.admin-modal p{color:var(--muted);font-size:.9rem;line-height:1.55}.admin-modal-actions{display:flex;justify-content:flex-end;gap:10px}@media (max-width:1120px){.workspace{grid-template-columns:minmax(300px,380px) minmax(420px,1fr)}.results-panel{grid-column:1/-1}}@media (max-width:760px){.transport-shell{padding:14px}.app-header{align-items:flex-start;flex-direction:column}.service-scope{justify-content:flex-start}.field-grid.two,.workspace{grid-template-columns:1fr}.map-panel{min-height:420px}.map-canvas{min-height:340px}.form-actions{align-items:stretch;flex-direction:column}.fallback-mode,.nearby-route-card{grid-template-columns:1fr}.feedback-actions{align-items:stretch;flex-direction:column}.feedback-actions button,.form-actions button,.secondary-button{width:100%}.nearby-bus-row{align-items:flex-start;flex-direction:column}.nearby-bus-routes{max-width:100%;justify-content:flex-start}.nearby-route-card button{width:100%}.route-card{grid-template-columns:1fr}.route-duration{justify-self:start}.passenger-row{grid-template-columns:1fr}.admin-account,.admin-modal-actions,.admin-table-footer,.admin-table-toolbar,.admin-toolbar-actions,.passenger-actions{align-items:stretch;flex-direction:column}.admin-status-grid,.admin-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-feedback-card,.admin-setting-body,.admin-setting-options{grid-template-columns:1fr}.admin-filter-tabs{align-items:stretch;flex-direction:column}.admin-filter-tabs button{justify-content:space-between;width:100%}}@media (max-width:520px){.admin-status-grid,.admin-summary,.nearby-route-summary-grid,.route-card-meta{grid-template-columns:1fr}}