:root{color-scheme:light;--ink:#142e29;--muted:#64756e;--paper:#f3f5ef;--green:#157957;--line:#dce3d8}*{box-sizing:border-box}body{margin:0;background:var(--paper);font:15px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink)}header{background:#122b26;color:#f4f7ee;padding:30px max(22px,calc((100vw - 760px)/2));padding-bottom:26px}.brand{display:flex;align-items:center;gap:9px;font-size:12px;font-weight:800;letter-spacing:2px}.mark{font-size:24px;color:#c4ef72}.pill{margin-left:auto;background:#2d463d;color:#d0eeaa;border:1px solid #516747;border-radius:20px;padding:4px 9px;font-size:10px;letter-spacing:1px}h1{font-size:30px;letter-spacing:-1.2px;line-height:1.2;margin:24px 0 8px}h1 span{color:#b6df7c}header p{margin:0;color:#aebdb4;font-size:13px}.journey{display:grid;margin-top:23px;padding-top:18px;border-top:1px solid #3a4f45;gap:2px}.journey>span{font-size:10px;letter-spacing:2px;color:#bddb98}.journey strong{font-size:15px}.journey small{color:#aebdb4;font-size:11px}main{max-width:804px;margin:auto;padding:0 22px 30px}.toolbar{display:flex;justify-content:space-between;align-items:center;padding:21px 0 14px}.toolbar strong{font-size:12px}.toolbar small{display:block;font-size:10px;color:var(--muted)}#live-dot{color:var(--green);font-size:11px}button,select,input{font:inherit}button{cursor:pointer;border:1px solid var(--line);border-radius:9px;background:white;color:var(--ink);padding:10px 12px;min-height:44px}button:disabled{opacity:.5}button:focus-visible,select:focus-visible,input:focus-visible,a:focus-visible{outline:3px solid #8db848;outline-offset:2px}#refresh{font-size:12px;background:transparent}input{width:54px;background:white;border:1px solid #ccd5c7;border-radius:6px;padding:7px 4px;text-align:center;color:var(--ink);min-height:40px}select{max-width:145px;border:1px solid #ccd5c7;border-radius:6px;background:white;padding:8px;color:var(--ink);min-height:40px}.origin-settings{font-size:12px;padding:9px 0 13px}.origin-settings small{display:block;color:var(--muted);font-size:10px;margin-top:3px}.origins{display:grid;grid-template-columns:1fr 1fr;gap:10px}.origin{background:#e5eadb;padding:14px;border-radius:12px;min-width:0}.origin-top{display:flex;align-items:center;justify-content:space-between;gap:4px}.origin strong{font-size:23px;letter-spacing:-1px}.origin .time{font-size:18px;font-weight:700}.origin p{margin:5px 0 0;font-size:11px;color:#53644f}.origin small{font-size:10px;display:block;color:#53644f}.section-title{display:flex;align-items:center;justify-content:space-between;margin-top:25px}h2{font-size:20px;letter-spacing:-.6px;margin:0}.section-title span{font-size:10px;color:var(--muted)}.hint{font-size:12px;color:var(--muted);margin:8px 0 18px}.card{background:white;border:1px solid var(--line);border-radius:15px;margin-bottom:15px;overflow:hidden}.card-head{padding:16px 16px 12px;display:flex;gap:10px;align-items:flex-start}.route-badge{background:#d52935;color:#fff;font-weight:800;font-size:14px;padding:5px 8px;border-radius:6px}.card h3{font-size:14px;margin:0;line-height:1.4}.card-head small{color:var(--muted);font-size:10px}.timing{padding:0 16px 13px;display:flex;align-items:center;flex-wrap:wrap;gap:8px;font-size:11px}.timing label{display:flex;align-items:center;gap:5px}.timing input{width:47px;font-size:12px}.timing select{font-size:11px;max-width:140px}.walk{margin-left:auto}.summary{margin:0 16px 6px;padding:10px 12px;border-radius:8px;background:#f0f3ed;font-size:12px}.summary strong{display:block;font-size:13px}.summary small{display:block;font-size:10px;margin-top:2px}.summary.comfortable{background:#e6f3e8;color:#23643a}.summary.tight{background:#fff0e6;color:#9c4122}.summary.caution{background:#fff6dd;color:#80601c}.rows{padding:0 16px}.route-row{display:grid;grid-template-columns:46px 1fr 1fr;gap:6px;border-bottom:1px solid #edf0e8;padding:12px 0;align-items:center}.route-row:last-child{border:0}.route-number{font-weight:800;font-size:18px;letter-spacing:-.5px}.route-row b{font-size:13px;display:block}.route-row small{font-size:10px;color:var(--muted);display:block}.route-row .right{text-align:right}.status-text.tight{color:#a04926}.status-text.comfortable{color:#287346}.status-text.caution{color:#88630b}.card-foot{background:#fafbf7;padding:9px 16px;display:flex;justify-content:space-between;font-size:10px;color:var(--muted);gap:10px}.card-foot a{color:#477144;text-decoration:none;min-height:30px;display:flex;align-items:center}.explain{font-size:12px;border-top:1px solid var(--line);padding:20px 0;color:var(--muted)}summary{cursor:pointer;color:var(--ink);font-weight:600;min-height:35px}footer{text-align:center;color:var(--muted);font-size:10px}footer button{font-size:12px;background:transparent}#demo-notice{background:#fff0d0;color:#79581b;border:1px solid #ead79b;border-radius:9px;padding:11px;font-size:12px;margin-bottom:12px}#demo-notice[hidden]{display:none}.empty{color:var(--muted)}@media(min-width:650px){h1{font-size:38px}.route-row{grid-template-columns:70px 1fr 1fr}.origin strong{font-size:28px}.card h3{font-size:16px}}@media(max-width:360px){main{padding:0 12px 25px}header{padding:24px 14px}h1{font-size:27px}.walk{margin-left:0}.origin .time{font-size:14px}}

/* Operator badges share the same appearance at origin and transfer stops. */
.route-number{display:inline-flex;align-items:center;justify-content:center;min-width:44px;width:fit-content;padding:5px 6px;border-radius:6px;line-height:1.4;color:#fff;white-space:nowrap}
.operator-kmb{background:#d52935;color:#fff}
.operator-ctb{background:#e4b000;color:#fff;text-shadow:0 1px 2px #806000}
.origin strong.route-badge{font-size:18px;letter-spacing:-.5px;line-height:1.4;padding:5px 7px}

.route-row b.session-label{display:inline-block;padding:5px 6px;border-radius:6px;font-size:12px;line-height:1.4;color:#fff}

.column-heads{display:grid;grid-template-columns:46px 1fr 1fr;gap:6px;margin:10px 16px 0;color:var(--muted);font-size:11px;font-weight:700}.column-heads span:last-child{text-align:right}.route-row .arrival-time{color:#c52230}.time-column .arrival-time{font-variant-numeric:tabular-nums}.route-row small.arrival-time{margin-top:4px}#last-bus-settings label{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 0;border-bottom:1px solid var(--line)}#last-bus-settings input{flex-shrink:0}@media(min-width:650px){.column-heads{grid-template-columns:70px 1fr 1fr}}

.route-row .secondary-arrivals{color:#000}.summary .connection-times{margin:5px 0 2px}.summary>div{line-height:1.6}.summary strong{line-height:1.45}

#eta-lock{background:#2d463d;color:white;border-color:#516747;font-size:11px;letter-spacing:0;padding:8px;white-space:nowrap}#eta-lock[aria-pressed=true]{background:#c4ef72;color:#122b26}#lock-note{padding:12px;background:#e5eadb;border-radius:9px;font-size:12px}.brand{gap:7px}

.route-row small.session-label{display:inline-block;color:#fff;padding:4px 6px;border-radius:6px;margin-top:4px}
