.transport-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0 0 22px}.transport-tabs a{display:flex;align-items:center;justify-content:center;min-height:48px;border:1px solid #dfe8f3;background:#fff;border-radius:13px;color:#526780;font-size:13px;font-weight:800;white-space:nowrap;padding:7px 2px}.transport-tabs a[aria-current="page"]{color:#1766d7;border-color:#8cbcff;background:#eaf3ff;box-shadow:0 4px 12px #2168e811}.bus-header-caption{font-size:11px;font-weight:800;color:#7a8ea4}.bus-content{padding-top:22px}.bus-hero{display:flex;align-items:center;gap:16px;margin:0 0 22px}.bus-hero-icon{display:grid;place-items:center;width:72px;height:72px;flex:none;border-radius:18px;background:#e6f3ff;font-size:38px}.bus-hero .eyebrow{font-size:10px}.bus-hero h1{font-size:clamp(23px,4vw,30px);letter-spacing:-.8px;margin:8px 0 4px}.bus-hero p{font-size:12px;line-height:1.6;color:#74879d;margin:0}.bus-date-warning{color:#995d1c;background:#fff6e8;font-size:11px;line-height:1.6;border-radius:9px;margin:10px 0 0;padding:10px}.bus-ride-card{border:1px solid #e1e9f3;background:#fff;border-radius:15px;padding:17px 16px;margin:0 0 11px;box-shadow:0 4px 17px #1931460c}.bus-result-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:13px}.bus-grade{background:#e9f3ff;color:#2163be;font-size:11px;font-weight:800;border-radius:8px;padding:5px 9px}.bus-result-head small{font-size:11px;color:#7890a5}.bus-schedule{display:grid;grid-template-columns:minmax(0,1fr) 90px minmax(0,1fr);gap:7px;align-items:center}.bus-schedule .bus-clock{font-size:23px;color:#142f4d;font-weight:900}.bus-schedule .bus-terminal{font-size:11px;color:#8192a6;margin-top:6px;overflow-wrap:anywhere}.bus-schedule .arrive{text-align:right}.bus-duration{text-align:center;font-size:11px;color:#8498ab}.bus-line{height:2px;background:#8dc4fa;position:relative;margin:10px 0}.bus-line::after{content:'›';position:absolute;right:0;top:-15px;font-size:21px;color:#4792e4}.bus-card-foot{display:flex;align-items:center;justify-content:space-between;border-top:1px dashed #e8edf4;margin-top:15px;padding-top:13px;gap:10px}.bus-fare{font-size:15px;font-weight:850;color:#1d425b}.bus-booking{background:#eaf3ff;color:#1760bc;padding:9px 12px;border-radius:9px;font-size:12px;font-weight:800;white-space:nowrap}.bus-info-note{font-size:11px;color:#7e8b9a;line-height:1.5;margin-top:10px}.bus-empty{border:1px solid #e7edf4;background:#fff;border-radius:13px;text-align:center;padding:27px 15px;color:#72839a;font-size:13px;line-height:1.65}.bus-empty strong{display:block;color:#234461;margin-bottom:5px}.bus-search-status{font-size:11px;color:#60798d;margin-top:8px}@media(max-width:430px){.transport-tabs{gap:6px;margin-bottom:18px}.transport-tabs a{font-size:12px;min-height:43px}.bus-hero{gap:11px;margin-bottom:18px}.bus-hero-icon{height:57px;width:57px;font-size:30px}.bus-hero h1{font-size:23px}.bus-schedule{grid-template-columns:minmax(0,1fr) 64px minmax(0,1fr)}.bus-schedule .bus-clock{font-size:20px}.bus-content{padding-top:16px}}@media(max-width:350px){.transport-tabs a{font-size:11px}.bus-hero h1{font-size:21px}.bus-schedule .bus-clock{font-size:19px}}

/* Mobile terminal discovery: all API terminals are searchable and scrollable. */
.bus-content,.bus-content .search-card,.bus-content form,.bus-content .station-fields,.bus-content .station-box,.bus-content .date-block,.bus-content .date-row{min-width:0;max-width:100%}
.bus-content .station-fields{width:100%;grid-template-columns:minmax(0,1fr) 36px minmax(0,1fr)}
.bus-content .station-box{width:100%;min-width:0}
.bus-content .station-box input{width:100%;min-width:0;font-size:16px;overflow:hidden;text-overflow:ellipsis}
.bus-content .date-row input{min-width:0;font-size:16px}
.bus-content .suggestions{max-width:100%;max-height:min(42dvh,390px);overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.bus-content .suggestions button{min-width:0;gap:8px}
.bus-content .suggestions strong{min-width:0;overflow-wrap:anywhere}
.bus-content .suggestions small{flex:none;white-space:nowrap}
.terminal-list-hint{position:sticky;top:0;z-index:2;padding:10px 13px;background:#edf5ff;border-bottom:1px solid #d6e6fb;color:#345d8b;font-size:12px;font-weight:750;line-height:1.5}
@media(max-width:480px){
 .bus-content{width:calc(100% - 28px);overflow-x:clip}
 .bus-content .station-fields{grid-template-columns:minmax(0,1fr) 30px minmax(0,1fr);gap:5px}
 .bus-content .station-box{padding:10px 7px}
 .bus-content .station-box input{font-size:16px}
 .bus-content .swap-button{width:29px;height:35px}
 .bus-content .date-row{grid-template-columns:minmax(0,1fr) auto}
 .bus-content .date-buttons button{min-width:45px}
}
@media(max-width:355px){
 .bus-content .station-fields{grid-template-columns:minmax(0,1fr);gap:3px}
 .bus-content .swap-button{justify-self:center;transform:rotate(90deg);margin:-7px 0;position:relative;z-index:1}
 .bus-content .station-box{padding:9px 12px}
 .bus-content .date-row{grid-template-columns:minmax(0,1fr)}
 .bus-content .date-buttons{justify-content:flex-end}
}

/* v6: place-first picker. Same-name official codes are queried on the server. */
.bus-content .terminal-choice{min-height:54px}
.bus-content .terminal-choice small{color:#617c9a;font-weight:700}
/* Clarify zero API results without implying the route has been discontinued. */
.empty-verify-links{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin:12px 0 0}
.empty-verify-links a{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:10px 14px;background:#eaf3ff;border:1px solid #bcd7fa;color:#165fba;border-radius:10px;font-size:12px;font-weight:800;text-align:center}
