.transport-panel{padding:clamp(18px,3vw,30px)}.transport-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:22px}.transport-heading h2{margin:6px 0 0}.transport-kicker{font-size:10px;letter-spacing:.12em;font-weight:850;color:#197e9e}.transport-badge{flex:none;padding:8px 12px;background:#e8f3f9;border-radius:30px;color:#1c526c;font-weight:800;font-size:12px}.transport-controls{display:grid;grid-template-columns:2fr 1fr;gap:15px;margin-bottom:20px}.transport-controls>div{display:grid;gap:7px}.transport-controls label,.transport-search-label{font-size:12px;font-weight:800;color:#496178}.transport-controls input,.transport-controls select,.flight-search{width:100%;min-height:48px;padding:11px 14px;border:1px solid #cfdae5;border-radius:11px;background:#f7fafc;color:#15354f;font:inherit;font-size:16px}.bus-layout{display:grid;grid-template-columns:minmax(230px,1fr) minmax(0,2fr);gap:25px}.bus-routes{max-height:780px;overflow:auto;display:flex;flex-direction:column;gap:8px;align-self:start}.bus-route{display:flex;align-items:center;gap:11px;text-align:left;padding:13px 10px;border:1px solid #dfe7ef;border-radius:12px;color:#1b405b;background:#f9fbfd;cursor:pointer;font:inherit;font-size:12px}.bus-route b,.route-number{display:inline-grid;place-items:center;min-width:53px;min-height:38px;padding:6px;border-radius:9px;background:#dfedf6;color:#165373;font-size:15px}.bus-route span:nth-child(2){flex:1;font-weight:750;line-height:1.5}.bus-route[aria-pressed=true]{background:#fff0f4;border-color:#9c1945;color:#7c173a}.bus-route[aria-pressed=true] b,.route-number{background:#881d43;color:white}.bus-schedule-heading{display:flex;align-items:center;gap:12px}.bus-schedule-heading h3{font-size:19px;line-height:1.4;margin:0;color:#193850}.transport-updated{font-size:12px;color:#708599}.bus-direction{margin:20px 0}.bus-direction h4{padding:13px 15px;margin:0;background:#173c5b;color:white;border-radius:12px 12px 0 0;font-size:13px}.transport-table-scroll{overflow:auto;-webkit-overflow-scrolling:touch;border:1px solid #dfE8f0;border-radius:12px}.bus-direction .transport-table-scroll{border-radius:0 0 12px 12px}.transport-table{width:100%;border-collapse:collapse;font-size:13px;color:#304a60;text-align:left}.transport-table th{background:#edf4f8;color:#244b65;padding:14px 12px;white-space:nowrap;font-size:12px}.transport-table td{padding:13px 12px;border-top:1px solid #e5ecf2}.transport-table tbody tr:nth-child(even){background:#f8fbfd}.bus-table{text-align:center;table-layout:fixed}.bus-table td{font-weight:750}.bus-table td:empty:before{content:'—'}.transport-filter-row{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:18px}.transport-segments{display:flex;gap:5px;padding:5px;border:1px solid #d8e3ec;border-radius:13px;background:#f0f5f9}.transport-segments button{padding:11px 16px;border:0;border-radius:9px;background:transparent;color:#49647a;font:inherit;font-weight:800;font-size:13px;cursor:pointer}.transport-segments button[aria-pressed=true]{background:#881d43;color:white;box-shadow:0 3px 8px #6b123124}.flight-search{margin:8px 0 15px}.transport-meta{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;font-size:12px;color:#647e93;padding:10px 0 18px}.flight-table{min-width:780px}.flight-table td{white-space:nowrap}.flight-table small{display:block;font-size:10px;color:#74889a;margin-top:5px}.flight-status{display:inline-block;padding:7px 10px;border-radius:20px;font-size:10px;font-weight:850;background:#e5f0fc;color:#195483}.flight-status.completed{background:#e1f5e9;color:#187447}.flight-status.delayed{background:#fff0cf;color:#875b00}.flight-status.cancelled{background:#ffe4e6;color:#ae2337}.transport-notice{display:grid;gap:8px;padding:17px;margin:16px 0;border:1px solid #dfccab;border-radius:12px;background:#fff8e9;color:#73532b;font-size:13px;line-height:1.6}.transport-notice a{color:inherit;font-weight:850;text-decoration:underline}.transport-empty{padding:22px;background:#f2f6fa;border-radius:12px;color:#526c80;font-size:13px;line-height:1.6}.transport-panel button:focus-visible{outline:3px solid #269bc4;outline-offset:3px}.transport-panel button:disabled{opacity:.6;cursor:wait}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.local-service-tile.transport .local-service-symbol{background:#e9f3fa;color:#14799b}.transport-services-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.local-service-tile.transport strong{font-size:20px}
html[data-theme=dark] .transport-table{color:#dce8f4}html[data-theme=dark] .transport-table th,html[data-theme=dark] .transport-table tbody tr:nth-child(even),html[data-theme=dark] .bus-route,html[data-theme=dark] .transport-segments,html[data-theme=dark] .transport-empty{background:#1c3048;color:#dbe9f7}html[data-theme=dark] .transport-table td,html[data-theme=dark] .transport-table-scroll,html[data-theme=dark] .bus-route,html[data-theme=dark] .transport-segments{border-color:#334962}html[data-theme=dark] .bus-route[aria-pressed=true]{background:#661b3b;color:#fff;border-color:#c65a81}html[data-theme=dark] .transport-updated,html[data-theme=dark] .transport-meta,html[data-theme=dark] .transport-search-label,html[data-theme=dark] .transport-controls label{color:#a9bfd3}html[data-theme=dark] .transport-notice{background:#40321d;color:#f0d29e;border-color:#6e5631}html[data-theme=dark] .bus-schedule-heading h3{color:#e5eff8}
@media(max-width:800px){.bus-layout{grid-template-columns:1fr}.bus-routes{max-height:255px}.transport-controls{grid-template-columns:1fr}.transport-services-grid{grid-template-columns:1fr}.transport-heading{align-items:flex-start}.transport-heading h2{font-size:22px}.transport-segments{flex:1}.transport-segments button{flex:1;padding:10px}.transport-filter-row{display:grid;grid-template-columns:1fr}.transport-table td,.transport-table th{padding:12px 9px}.bus-schedule-heading h3{font-size:16px}}
.bus-view-tabs{margin-bottom:18px}.bus-view-tabs button{flex:1}.bus-live-status{display:flex;align-items:center;gap:12px;padding:16px;border:1px solid #d5e4e7;border-radius:14px;background:#eef9f7;color:#16664b;margin-bottom:16px}.bus-live-status.unavailable{background:#fff8e9;color:#775a2e;border-color:#e1d0b5}.bus-live-status>span{font-size:20px}.bus-live-status>div{flex:1}.bus-live-status strong{display:block;font-size:13px;line-height:1.5}.bus-live-status small{display:block;margin-top:4px;font-size:11px}.bus-live-status button{width:38px;height:38px;flex:none;border:1px solid #c9d9dc;border-radius:10px;background:#fff;color:#225267;font-size:24px;cursor:pointer}.bus-direction-switch{margin-bottom:16px}.stop-layout{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:16px}.stop-list-title{display:flex;justify-content:space-between;padding:12px 4px;color:#506f87;font-size:11px;letter-spacing:.08em}.stop-timeline{list-style:none;margin:0;padding:0;max-height:570px;overflow:auto}.stop-timeline li{position:relative;padding:0}.stop-timeline li+li:before{content:'';position:absolute;width:2px;background:#cadce7;height:24px;top:-12px;left:22px}.stop-timeline button{display:flex;align-items:center;gap:11px;width:100%;padding:15px 11px;border:0;border-radius:10px;background:#fff;color:#284b67;text-align:left;cursor:pointer;position:relative;font:inherit}.stop-timeline button>span:nth-child(2){flex:1}.stop-timeline strong{font-size:11px;display:block;line-height:1.6}.stop-timeline small{display:block;color:#6d8699;font-size:10px;margin-top:3px}.stop-dot{width:24px;height:24px;border:5px solid #e5f0f7;background:#5b8aa6;border-radius:50%;flex:none}.stop-timeline .selected button{background:#f8eaf0;color:#831e43}.stop-timeline .selected .stop-dot{background:#831e43;border-color:#e8ced9}.stop-order{font-size:10px;min-width:22px;text-align:center;color:#7a94a6}.stop-arrivals{align-self:start;background:#f4f8fc;border:1px solid #deE7f0;padding:20px 16px;border-radius:15px;position:sticky;top:110px}.stop-arrivals h4{margin:8px 0 15px;font-size:16px;line-height:1.5;color:#234865}.stop-arrivals p,.stop-arrivals #arrivalItems{font-size:12px;line-height:1.8;color:#577488}.stop-arrivals .local-button{font-size:11px;margin-top:15px}.stop-bus{display:block;padding:5px 7px;margin-top:7px;background:#def5e9;border-radius:8px;color:#126545;font-size:10px}.arrival-card{border:1px solid #cfdfeb;border-radius:12px;padding:14px;margin:10px 0;background:#fff}.arrival-card strong{font-size:18px;color:#862349}.arrival-card span{display:inline-block;margin-right:10px;font-size:12px}.flight-cards{display:grid;gap:11px}.flight-card{border:1px solid #dce6ee;background:#fff;border-radius:16px;overflow:hidden}.flight-card summary{display:grid;grid-template-columns:50px minmax(0,1fr) 85px auto 16px;align-items:center;gap:16px;padding:18px;cursor:pointer;list-style:none}.flight-card summary::-webkit-details-marker{display:none}.flight-airline-mark{display:grid;place-items:center;width:48px;height:48px;background:#e8f2fb;border-radius:15px;color:#154974;font-size:15px;font-weight:900}.flight-card-route strong{display:block;font-size:17px;color:#1b405d;line-height:1.3}.flight-card-route small{display:block;margin-top:6px;color:#728a9d;font-size:11px;line-height:1.4}.flight-card-time{text-align:right}.flight-card-time strong{display:block;font-size:21px;color:#133752}.flight-card-time small{display:block;font-size:10px;color:#8093a3;margin-top:5px}.flight-expand{color:#66849c;font-size:23px}.flight-card[open] .flight-expand{transform:rotate(180deg)}.flight-card[open] summary{background:#f4f8fc}.flight-card-detail{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;padding:22px;border-top:1px solid #e0e9f1}.flight-card-detail small{display:block;color:#788ca0;font-size:11px;margin-bottom:6px}.flight-card-detail strong{color:#284a65;font-size:13px}.flight-card summary:focus-visible,.stop-timeline button:focus-visible{outline:3px solid #2396c0;outline-offset:-3px}
html[data-theme=dark] .flight-card,html[data-theme=dark] .stop-timeline button,html[data-theme=dark] .arrival-card{background:#192b41;color:#dfeaf5;border-color:#385068}html[data-theme=dark] .flight-card[open] summary,html[data-theme=dark] .stop-arrivals{background:#20364d;color:#dfeaf5;border-color:#385068}html[data-theme=dark] .flight-card-route strong,html[data-theme=dark] .flight-card-time strong,html[data-theme=dark] .flight-card-detail strong,html[data-theme=dark] .stop-arrivals h4{color:#dfeaf5}html[data-theme=dark] .bus-live-status.unavailable{background:#40341f;color:#edcd97;border-color:#6c5835}html[data-theme=dark] .stop-timeline .selected button{background:#69243f;color:#fff}
@media(max-width:800px){.bus-direction-switch button{font-size:11px}.stop-layout{grid-template-columns:1fr}.stop-timeline{max-height:360px}.stop-arrivals{position:static}.flight-card summary{grid-template-columns:38px minmax(0,1fr) 64px 12px;gap:10px;padding:14px}.flight-airline-mark{width:36px;height:39px;font-size:12px;border-radius:10px}.flight-card-route strong{font-size:14px}.flight-card-route small{font-size:10px}.flight-card-time strong{font-size:19px}.flight-card summary .flight-status{grid-column:2/4;justify-self:start;margin-top:0;font-size:9px}.flight-expand{grid-column:4;grid-row:1}.flight-card-detail{grid-template-columns:repeat(2,minmax(0,1fr));padding:17px;gap:15px}.bus-view-tabs button{font-size:11px}}
