:root{--deep:#123D3B;--green:#1F6762;--line:#DDE9E6;--muted:#6C7E7A;--bg:#F5F9F8;--good:#16765D;--watch:#9B680F;--bad:#B74E4E}
.transit-shell{max-width:1460px}.transit-overview{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(420px,.8fr);gap:14px;margin:14px 0}.overview-copy,.overview-metrics{border:1px solid var(--line);border-radius:22px;background:#fff}.overview-copy{padding:24px}.overview-copy .eyebrow,.info-kicker,.info-head span,.section-kicker{font-size:10px;font-weight:900;letter-spacing:.12em;color:var(--green)}.overview-copy h2{margin:7px 0 8px;font-size:36px;line-height:1;letter-spacing:-.045em;color:var(--deep)}.overview-copy p{margin:0;max-width:760px;font-size:14px;line-height:1.55;color:var(--muted)}.overview-metrics{display:grid;grid-template-columns:repeat(3,1fr);padding:8px}.overview-metrics article{padding:16px;border-right:1px solid var(--line)}.overview-metrics article:last-child{border-right:0}.overview-metrics span,.overview-metrics strong,.overview-metrics small{display:block}.overview-metrics span{font-size:10px;font-weight:900;letter-spacing:.08em;color:var(--muted)}.overview-metrics strong{margin:6px 0 3px;font-size:27px;letter-spacing:-.04em;color:var(--deep)}.overview-metrics small{font-size:11px;color:var(--muted);line-height:1.35}
.transit-controls{display:grid;grid-template-columns:180px minmax(170px,1fr) minmax(160px,.85fr) minmax(210px,1.25fr);gap:8px;align-items:end;margin:14px 0}.transit-controls label{display:block}.transit-controls label>span{display:block;margin:0 0 5px 3px;font-size:10px;font-weight:850;color:var(--muted)}.transit-controls input,.transit-controls select{width:100%;height:44px;border:1px solid var(--line);border-radius:12px;background:#fff;padding:0 12px;color:var(--deep);font-size:13px;font-weight:700}.mode-tabs{grid-column:1/-1;display:flex;gap:7px;overflow:auto}.mode-tabs button{border:1px solid var(--line);border-radius:999px;background:#fff;padding:9px 14px;color:var(--deep);font-size:12px;font-weight:800;white-space:nowrap}.mode-tabs button.active{background:var(--deep);border-color:var(--deep);color:#fff}
.board-panel{padding:0;overflow:hidden}.board-panel>.panel-head{padding:18px 18px 12px;margin:0}.board-meta{text-align:right}.board-meta strong,.board-meta small{display:block}.board-meta strong{font-size:13px;color:var(--deep)}.board-meta small{margin-top:4px;font-size:11px;color:var(--muted)}.board-notice{margin:0 14px 12px;padding:11px 13px;border:1px solid #F0D99D;border-radius:12px;background:#FFF9EA;color:#7B5A17;font-size:12px;line-height:1.45}.hidden{display:none!important}
.desktop-board{border-top:1px solid var(--line)}.transit-columns,.transit-row{display:grid;grid-template-columns:92px 1.35fr 1.15fr .82fr 1.08fr .9fr 100px;gap:0}.transit-columns{background:var(--deep);color:#EAF6F4}.transit-columns span{padding:10px 12px;font-size:9px;font-weight:900;letter-spacing:.08em}.transit-row{align-items:stretch;border-top:1px solid #EAF0EE;background:#fff}.transit-row:nth-child(even){background:#FAFCFB}.transit-row .cell{min-width:0;padding:13px 12px;border-right:1px solid #EDF3F1}.transit-row .cell:last-child{border-right:0}.transit-row strong,.fare-main{display:block;color:var(--deep);font-size:13px;line-height:1.3}.transit-row small,.fare-note{display:block;margin-top:4px;color:var(--muted);font-size:10px;line-height:1.35}.time-cell strong{font-size:18px}.mode-label{font-size:10px;font-weight:850;color:var(--green)}
.status-chip{display:inline-flex;align-items:center;padding:6px 8px;border-radius:999px;font-size:10px;font-weight:900;line-height:1;white-space:nowrap}.status-chip.good{background:#E8F8EE;color:var(--good)}.status-chip.watch{background:#FFF2CC;color:var(--watch)}.status-chip.bad{background:#FDE8EB;color:var(--bad)}.status-chip.neutral{background:#EEF4F3;color:#59706C}.ticket-btn{border:1px solid #BFDAD5;border-radius:10px;background:#F1FAF7;padding:8px 9px;color:var(--deep);font-size:11px;font-weight:900;cursor:pointer}.empty-state{padding:30px 18px;text-align:center;color:var(--muted);font-size:13px}.mobile-board{display:none}
.transit-info-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:14px;margin-top:14px}.info-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.info-head h3{margin-top:4px}.source-list{margin-top:12px}.source-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 0;border-top:1px solid #EAF0EE}.source-item:first-child{border-top:0}.source-item strong,.source-item small{display:block}.source-item strong{font-size:13px;color:var(--deep)}.source-item small{margin-top:3px;font-size:10px;color:var(--muted)}.source-item a{font-size:11px;font-weight:850;color:var(--green)}.status-examples{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}.status-examples span{padding:6px 8px;border-radius:999px;background:#EEF5F3;color:#526D68;font-size:10px;font-weight:800}
.ticket-backdrop{position:fixed;inset:0;z-index:70;background:rgba(10,32,31,.35);backdrop-filter:blur(2px)}.ticket-drawer{position:fixed;z-index:80;right:0;top:0;width:min(460px,100%);height:100%;padding:34px 24px;background:#fff;box-shadow:-18px 0 50px rgba(18,61,59,.15);overflow:auto}.ticket-close{position:absolute;right:16px;top:14px;width:36px;height:36px;border:1px solid var(--line);border-radius:50%;background:#fff;font-size:24px;color:var(--deep)}.drawer-grab{display:none}.ticket-kicker{font-size:10px;font-weight:900;letter-spacing:.12em;color:var(--green)}.ticket-drawer h2{margin:9px 0 3px;font-size:36px;color:var(--deep)}.ticket-route{font-size:14px;color:var(--muted)}.ticket-result{margin-top:22px;padding:16px;border:1px solid var(--line);border-radius:17px;background:#F8FBFA}.ticket-result strong{display:block;margin-top:12px;font-size:16px;color:var(--deep)}.ticket-result p{font-size:12px;line-height:1.5;color:var(--muted)}.ticket-actions{display:flex;gap:8px;margin-top:16px}.ticket-actions a,.ticket-actions button{flex:1;border:1px solid var(--line);border-radius:12px;padding:11px 12px;background:#fff;color:var(--deep);font-size:12px;font-weight:900;text-align:center}.ticket-actions a{background:var(--deep);color:#fff}.ticket-meta{margin-top:12px;font-size:10px;color:var(--muted)}
@media(max-width:980px){.transit-overview{grid-template-columns:1fr}.transit-controls{grid-template-columns:repeat(2,1fr)}.search{grid-column:1/-1}.transit-info-grid{grid-template-columns:1fr}.transit-columns,.transit-row{grid-template-columns:78px 1.3fr 1fr .8fr 1fr .85fr 90px}.transit-columns span,.transit-row .cell{padding-left:8px;padding-right:8px}}
@media(max-width:720px){.module-actions .home-btn{display:none}.transit-overview{margin-top:10px}.overview-copy{padding:17px 15px;border-radius:17px}.overview-copy h2{font-size:29px}.overview-copy p{font-size:13px}.overview-metrics{border-radius:17px;overflow:auto;grid-template-columns:repeat(3,minmax(112px,1fr))}.overview-metrics article{padding:13px 11px}.overview-metrics strong{font-size:22px}.transit-controls{grid-template-columns:1fr 1fr}.transit-controls .search{grid-column:1/-1}.transit-controls input,.transit-controls select{height:42px;font-size:12px}.mode-tabs{grid-column:1/-1}.board-panel{border-radius:17px}.board-panel>.panel-head{padding:15px 13px}.board-meta{text-align:left}.desktop-board{display:none}.mobile-board{display:block;border-top:1px solid var(--line)}.mobile-trip{padding:14px;border-top:1px solid #E8F0EE;background:#fff}.mobile-trip:first-child{border-top:0}.mobile-trip-head{display:flex;justify-content:space-between;gap:10px}.mobile-time{font-size:24px;font-weight:900;color:var(--deep);letter-spacing:-.04em}.mobile-route{margin-top:2px;font-size:14px;font-weight:850;color:var(--deep)}.mobile-service{margin-top:4px;font-size:11px;color:var(--muted)}.mobile-trip-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:12px}.mobile-kv{padding:10px;border-radius:12px;background:#F5F9F8}.mobile-kv span,.mobile-kv strong{display:block}.mobile-kv span{font-size:9px;font-weight:900;color:var(--muted);letter-spacing:.08em}.mobile-kv strong{margin-top:4px;font-size:12px;color:var(--deep)}.mobile-actions{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:10px}.ticket-drawer{top:auto;bottom:0;height:auto;max-height:84vh;width:100%;border-radius:22px 22px 0 0;padding:30px 18px 22px}.drawer-grab{display:block;position:absolute;top:8px;left:50%;width:44px;height:4px;border-radius:99px;background:#CCD9D6;transform:translateX(-50%)}.ticket-close{top:12px}.transit-info-grid{gap:10px}}


/* 24/09/2026: Transit-only readable schedules. No route, price or source changes. */
.transit-shell{--transit-text:#183e3a;--transit-muted:#526b66}
.transit-shell .board-panel>.panel-head{align-items:center}
.transit-shell .board-meta strong{font-size:15px}
.transit-shell .board-meta small{font-size:12px}
.transit-shell .transit-row strong,.transit-shell .fare-main{font-size:14px}
.transit-shell .transit-row small,.transit-shell .fare-note{font-size:12px}
.transit-shell .transit-columns span{font-size:11px}
.transit-shell .ticket-btn{font-size:13px;min-height:40px}
.transit-shell .status-chip{font-size:11px;line-height:1.25;white-space:normal}
.transit-shell .desktop-board{overflow-x:auto}
.transit-shell .transit-columns,.transit-shell .transit-row{min-width:1040px}
.transit-shell .source-strip small{font-size:12px}

@media(max-width:720px){
  .transit-shell{width:calc(100% - 24px)}
  .module-main:has(.transit-shell){padding-top:12px}
  .transit-shell .source-strip{padding:8px 10px;gap:8px;flex-wrap:wrap;margin-bottom:10px}
  .transit-shell .source-strip small{margin-left:0;flex-basis:100%;font-size:12px}
  .transit-shell .transit-overview{gap:8px;margin:10px 0}
  .transit-shell .overview-copy{padding:14px 16px}
  .transit-shell .overview-copy h2{font-size:24px;line-height:1.12}
  .transit-shell .overview-copy p{font-size:13px;line-height:1.4}
  .transit-shell .overview-metrics{grid-template-columns:repeat(3,minmax(0,1fr));padding:0}
  .transit-shell .overview-metrics article{min-width:0;padding:10px 8px}
  .transit-shell .overview-metrics span{font-size:9px;letter-spacing:.025em}
  .transit-shell .overview-metrics strong{font-size:21px}
  .transit-shell .overview-metrics small{font-size:10px;overflow-wrap:anywhere}
  .transit-shell .transit-controls{margin:10px 0 12px;gap:8px}
  .transit-shell .transit-controls label>span{font-size:12px}
  .transit-shell .transit-controls input,.transit-shell .transit-controls select{height:46px;font-size:14px}
  .transit-shell .mode-tabs{gap:8px;padding:2px 0 5px;scroll-snap-type:x proximity}
  .transit-shell .mode-tabs button{min-height:43px;padding:10px 15px;font-size:13px;scroll-snap-align:start}
  .transit-shell .board-panel{border-radius:17px}
  .transit-shell .board-panel>.panel-head{display:flex;align-items:flex-start;gap:8px;padding:14px}
  .transit-shell .board-heading{min-width:0;flex:1}
  .transit-shell .section-kicker{font-size:10px;letter-spacing:.07em}
  .transit-shell .board-panel h3{font-size:21px;line-height:1.15;margin-top:5px}
  .transit-shell #boardSubtitle{display:none}
  .transit-shell .board-meta{min-width:102px;max-width:126px;text-align:right}
  .transit-shell .board-meta strong{font-size:13px;line-height:1.35}
  .transit-shell .board-meta small{font-size:11px}
  .transit-shell .mobile-board{background:#fff}
  .transit-shell .mobile-trip{padding:15px 14px;border-top:1px solid #dce7e4;background:#fff}
  .transit-shell .mobile-trip:first-child{border-top:0}
  .transit-shell .mobile-trip-main{display:grid;grid-template-columns:75px minmax(0,1fr);gap:13px}
  .transit-shell .mobile-trip-time{border-right:1px solid #e0e9e6;padding-top:1px;padding-right:10px}
  .transit-shell .mobile-trip-time strong{display:block;font-size:23px;line-height:1.05;letter-spacing:-.05em;color:var(--deep);font-variant-numeric:tabular-nums;white-space:nowrap}
  .transit-shell .mobile-trip-time small{display:block;margin-top:6px;font-size:11px;line-height:1.25;color:#506d67;font-weight:750}
  .transit-shell .mobile-trip-content{min-width:0}
  .transit-shell .mobile-route{display:block;font-size:16px;font-weight:850;line-height:1.35;color:var(--deep);overflow-wrap:anywhere}
  .transit-shell .mobile-service{margin:4px 0 7px;font-size:12px;line-height:1.4;color:#516b65;overflow-wrap:anywhere}
  .transit-shell .mobile-status{display:inline-flex;padding:4px 9px;border-radius:6px;font-size:11px;line-height:1.25;font-weight:750;max-width:100%;overflow-wrap:anywhere}
  .transit-shell .mobile-status.neutral{background:#edf3f1;color:#4c6660}
  .transit-shell .mobile-trip-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px;padding-top:10px;border-top:1px dashed #e2ebe8}
  .transit-shell .mobile-fare{min-width:0;flex:1}
  .transit-shell .mobile-fare span{display:block;font-size:11px;line-height:1.3;color:#57716b}
  .transit-shell .mobile-fare strong{display:block;margin-top:2px;font-size:19px;line-height:1.3;font-variant-numeric:tabular-nums;color:var(--deep);overflow-wrap:anywhere}
  .transit-shell .mobile-ticket-btn{flex:0 0 auto;min-height:42px;border-color:#bdd8d1;border-radius:12px;background:#f2faf7;color:var(--deep);font-size:13px;padding:8px 12px}
  .transit-shell .mobile-vehicle{display:flex;gap:10px;align-items:baseline;margin-top:9px;font-size:12px;line-height:1.4}
  .transit-shell .mobile-vehicle span{flex:0 0 58px;color:#58716b}
  .transit-shell .mobile-vehicle strong{font-size:12px;line-height:1.5;font-weight:700;color:var(--deep);overflow-wrap:anywhere}
  .transit-shell .mobile-bus-note{font-size:12px;color:#526f67}
  .transit-shell .transit-info-grid{margin-top:10px}
  .transit-shell .side-card p{font-size:13px}
}
@media(max-width:360px){
  .transit-shell .mobile-trip{padding:13px 11px}
  .transit-shell .mobile-trip-main{grid-template-columns:69px minmax(0,1fr);gap:10px}
  .transit-shell .mobile-trip-time strong{font-size:21px}
  .transit-shell .mobile-route{font-size:15px}
  .transit-shell .mobile-ticket-btn{padding:8px 10px;font-size:12px}
}
