/* Public transport: phone-first, scan-friendly, explicit data provenance. */
#transitHub{--transit-ink:#173950;--transit-line:#c5d5e2}
#transitHub .transit-intro{margin:4px 0 9px;font-size:12px}
.transit-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;margin:7px 0}
.transit-summary>div{min-width:0;display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 3px;border:1px solid #c5d7e4;border-radius:8px;background:#f4f9fe}
.transit-summary strong{font-size:20px;line-height:1.2;font-variant-numeric:tabular-nums;color:#133f67}
.transit-summary small{font-size:11px;line-height:1.2;color:#516b7c;text-align:center}
#transitHub .transit-toolbar{display:grid;grid-template-columns:minmax(0,2fr) minmax(112px,1fr);align-items:end;gap:6px;margin:6px 0}
#transitHub .transit-settings{grid-template-columns:minmax(0,2fr) minmax(110px,1fr)}
#transitHub .transit-toolbar>*{min-width:0}
#transitHub .transit-toolbar label{display:grid;gap:3px;font-size:12px;font-weight:700;margin:0}
#transitHub select,#transitHub input{box-sizing:border-box;width:100%;min-width:0;height:40px;min-height:40px;margin:0;padding:5px 6px;background:#eef6ff;border:1px solid #aac4d7;border-radius:7px;font-size:13px;color:#193954}
#transitHub button{width:auto;min-height:40px;margin:0;padding:7px;font-size:13px;line-height:1.25}
#transitHub #transitRefresh{width:100%;min-width:0;font-size:12px}
#transitHub :is(#transitScheduleStatus,#transitSourceStatus){border-radius:6px;margin:4px 0;padding:5px 7px;background:#f1f6fa;font-size:12px;color:#304d62}
#transitHub #transitSourceStatus[data-error="true"]{border-left:3px solid #a94619;background:#fff6e9}
#transitHub .transit-disaster{padding:5px 9px;margin:6px 0}
#transitHub .transit-disaster summary{min-height:34px;padding:6px 0;font-size:13px}
.transit-disaster-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;margin-top:5px}
.transit-disaster-fields #transitDisasterAt{grid-column:1 / -1}
#transitHub .transit-disaster-fields button{min-height:38px;font-size:12px}
#transitHub .transit-disaster-fields #transitSetDisasterNow{grid-column:1/-1}
#transitHub .transit-caution{padding:8px 9px;margin:8px 0 0;border-left:3px solid #a86c2d;background:#fff8e9;font-size:12px}
.transit-list{display:grid;gap:5px}
.transit-line-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:5px;padding:7px 8px;border:1px solid #c8d9e6;border-radius:9px;background:#fcfdff}
.transit-line-row[data-priority="true"]{border-left:3px solid #1b76a3}
.transit-line-main{min-width:0;display:flex;flex-direction:column;gap:2px}
.transit-line-name{display:block;overflow-wrap:anywhere;font-weight:700;font-size:13px;line-height:1.35;color:#173e5a}
.transit-line-sub{color:#536d80;font-size:10px;line-height:1.35}
.transit-line-time{display:block;line-height:1.35;font-size:11px;font-weight:700;color:#24567c}
.transit-line-time[data-stale="true"]{color:#9b4c15;background:#fff5e6;padding:2px 4px;border-radius:4px}
.transit-line-actions{display:flex;align-items:center;justify-content:end;gap:4px;flex-wrap:wrap}
#transitHub .transit-line-actions button,#transitHub .transit-line-actions a{display:inline-flex;align-items:center;justify-content:center;min-height:35px;width:auto;min-width:40px;padding:5px 6px;margin:0;border:1px solid #b2cbdc;border-radius:7px;background:#fff;color:#13537c;font-size:11px;font-weight:700;text-decoration:none;white-space:nowrap}
.transit-state{display:inline-flex;justify-content:center;align-items:center;padding:3px 6px;min-height:25px;font-size:11px;font-weight:700;border:1px solid #bccad4;border-radius:6px;background:#eff2f5;color:#455565;white-space:nowrap}
.transit-state[data-status="normal"]{color:#165c39;border-color:#a4c9b2;background:#e8f7ec}
.transit-state[data-status="delay"],.transit-state[data-status="restricted"]{color:#825100;border-color:#e8c57b;background:#fff4d8}
.transit-state[data-status="suspended"]{color:#ad2d2b;border-color:#dfb1ad;background:#ffeded}
.transit-state[data-status="ended"]{color:#566080;border-color:#bcc2d7;background:#f1f0f8}
.transit-state[data-stale="true"]{color:#5a6875!important;background:#f0f1f3!important;border-style:dashed!important}
#transitStatusEditor{box-sizing:border-box;width:min(95vw,430px);max-height:86dvh;overflow:auto;border:2px solid #6f9dbd;border-radius:12px;padding:14px}
#transitStatusEditor::backdrop{background:#172f4888}
#transitStatusEditor h2{font-size:17px;margin:0 0 8px}
#transitStatusEditor form{display:grid;gap:6px}
#transitStatusEditor label{display:grid;gap:4px;margin:2px 0;font-size:13px}
#transitStatusEditor input,#transitStatusEditor select{box-sizing:border-box;width:100%;min-height:40px;background:#eef6ff;border:1px solid #afc5d9;border-radius:7px;font-size:15px;padding:6px}
.transit-dialog-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}
#transitStatusEditor button{width:100%;min-width:0;min-height:40px;margin:0;font-size:13px;padding:6px}
#transitStatusDelete{grid-column:1/-1;color:#9b2828;border-color:#dda6a6}
@media(max-width:350px){
 .transit-line-row{padding:5px;gap:3px}
 .transit-line-name{font-size:12px}
 .transit-line-actions{gap:2px}
 #transitHub .transit-line-actions button,#transitHub .transit-line-actions a{padding:4px;min-width:36px;font-size:10px}
 .transit-state{font-size:10px;min-height:24px;padding:2px 4px}
 #transitHub .transit-toolbar,#transitHub .transit-settings{grid-template-columns:minmax(0,1fr) auto}
 #transitHub #transitRefresh{min-width:75px}
}
@media print{#transitHub .transit-toolbar,#transitDisasterOptions,.transit-line-actions{display:none!important}}
