:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0c0c0d;--surface:#1a1a1c;--line:#242426;--text:#ededed;--muted:#8a8a8e;--dim:#3d3d40;--accent:#ef9f27;--accent-bg:#2a1f0c;--danger:#c4372f}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);-webkit-tap-highlight-color:transparent;margin:0;font-family:system-ui,-apple-system,PingFang HK,Noto Sans HK,sans-serif;font-size:16px}.app{max-width:520px;height:100dvh;padding:12px 16px calc(12px + env(safe-area-inset-bottom));flex-direction:column;gap:12px;margin:0 auto;display:flex;overflow:hidden}.app-bar{justify-content:space-between;align-items:center;display:flex}.app-name{font-size:15px}.muted{color:var(--muted)}.error{color:#f09595}button{font:inherit;color:inherit;background:var(--surface);cursor:pointer;border:0;border-radius:8px;padding:8px 12px}button:disabled{color:var(--dim);cursor:default}.lang{color:var(--muted);background:0 0;padding:4px 0}.row{justify-content:space-between;align-items:center;gap:12px;display:flex}.row-actions{align-items:center;gap:8px;display:flex}.walk-to-stop{background:var(--surface);min-width:44px;min-height:44px;color:var(--accent);border-radius:8px;justify-content:center;align-items:center;display:inline-flex}.stop-actions{flex-wrap:wrap}.list{flex-direction:column;display:flex}.list-item{border-top:.5px solid var(--line);text-align:left;background:0 0;border-radius:0;justify-content:space-between;align-items:center;gap:12px;width:100%;padding:12px 0;display:flex}.route-code{min-width:64px;font-size:22px}.route-title{flex:1}.tag{color:var(--muted);border:.5px solid #3a3a3c;border-radius:4px;padding:1px 5px;font-size:12px}.accent{color:var(--accent)}.home{flex-direction:column;flex:1;gap:8px;min-height:0;display:flex}.typed-row{align-items:baseline;gap:12px;min-height:48px;display:flex}.typed{letter-spacing:1px;font-size:40px}.scroll{flex:1;min-height:0;overflow-y:auto}.recent-heading{justify-content:space-between;align-items:center;gap:12px;display:flex}.history-action{color:var(--muted);text-underline-offset:3px;background:0 0;border-radius:0;padding:4px 0;text-decoration:underline}.history-action:hover{color:var(--text)}.route-ends{overflow-wrap:anywhere;flex-direction:column;flex:1;min-width:0;display:flex}.small{font-size:13px}.tags{gap:6px;display:flex}.keypad{grid-template-columns:3fr 1.6fr;gap:8px;display:grid}.digits{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.letters{grid-template-columns:repeat(3,1fr);align-content:start;gap:6px;display:grid}.key{height:52px;font-size:20px}.letters .key{height:30px;padding:0;font-size:14px}.key-wide{font-size:15px}.route-screen,.arrivals-screen{flex-direction:column;flex:1;gap:10px;min-height:0;display:flex}.filter{background:var(--surface);color:var(--text);font:inherit;border:0;border-radius:8px;flex:1;padding:10px 12px}.filter::placeholder{color:var(--muted)}.seq{min-width:24px}.stop-name{overflow-wrap:anywhere;flex:1;min-width:0}.list-item.near{background:var(--accent-bg)}.fare{flex-shrink:0}.day-tabs{flex-wrap:wrap;flex-shrink:0;gap:6px;display:flex}.day-tabs button{padding:6px 10px;font-size:14px}.timetable{flex-direction:column;gap:16px;display:flex}.timetable-heading{align-items:center;gap:8px;margin:0 0 6px;font-size:16px;font-weight:600;display:flex}.timetable-row{font-variant-numeric:tabular-nums;border-radius:6px;justify-content:space-between;gap:12px;margin:0 -8px;padding:4px 8px;display:flex}.timetable-row.current{background:var(--accent-bg);color:var(--accent)}.minutes{font-size:32px}.right{flex-direction:column;align-items:flex-end;gap:4px;display:flex}.right .tags{flex-wrap:wrap;justify-content:flex-end}.notice{color:var(--muted);background:var(--surface);border-radius:8px;margin:0;padding:8px 10px;font-size:13px}.small-code{min-width:44px;font-size:17px}.status-parts span+span:before{content:" · "}.warn{color:var(--accent)}.row>span,.filter,.right{min-width:0}.row-actions,.row>button,.seq{flex-shrink:0}.tag,.right,.row>span{overflow-wrap:anywhere}.app-bar,.keypad{flex-shrink:0}.arrivals-screen{overflow-y:auto}.arrivals-screen>*{flex-shrink:0}.arrivals-screen .scroll{flex:none;overflow:visible}button:focus-visible,input:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.route-split{flex:1;grid-template-rows:minmax(0,1fr) minmax(0,1fr);gap:10px;min-height:0;display:grid}.route-map-region{border-radius:10px;min-width:0;min-height:0;position:relative;overflow:hidden}.route-stop-region{flex-direction:column;gap:8px;min-width:0;min-height:0;display:flex}.route-stop-region>.day-tabs,.route-stop-region>.row,.route-stop-region>p{flex-shrink:0;margin:0}.route-stop-list{overscroll-behavior:contain;flex:1;min-height:0;margin:0;padding:0;list-style:none;overflow-y:auto}.route-stop{border-top:.5px solid var(--line)}.route-stop .list-item{border-top:0}.route-stop-header{width:100%;min-height:44px;padding-inline:8px}.route-stop-selected{border-inline-start:3px solid var(--accent);background:var(--accent-bg)}.route-stop-selected .route-stop-header .stop-name{font-weight:600}.route-stop-details{flex-direction:column;gap:6px;padding:0 10px 12px;display:flex}.route-stop-details .minutes{font-size:24px}.route-stop-details .list-item{padding:6px 0}.full-stop{align-self:flex-start;min-height:44px}.journey-list{overscroll-behavior:contain;flex:1;min-height:0;margin:0;padding:0;list-style:none;overflow-y:auto}.journey-stop{position:relative}.journey-stop:before{content:"";inset-inline-start:19px;border-inline-start:1px solid var(--dim);position:absolute;top:0;bottom:0}.journey-stop:first-child:before{top:50%}.journey-stop:last-child:before{bottom:50%}.journey-row{text-align:start;width:100%;min-height:56px;color:var(--text);background:0 0;border:0;border-radius:0;align-items:center;gap:14px;padding:8px;display:flex}.journey-dot{box-sizing:border-box;background:var(--text);border-radius:50%;flex-shrink:0;width:22px;height:22px;position:relative}.journey-text{flex-direction:column;gap:2px;display:flex}.journey-before .journey-row{color:var(--muted)}.journey-before .journey-dot{background:var(--bg);border:4px solid var(--muted)}.journey-start .stop-name{font-weight:600}.journey-minutes{font-size:20px;font-weight:600}.route-map-loading,.route-map-failed{background:var(--surface);text-align:center;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:12px;display:flex;position:absolute;inset:0}.route-map-failed p{margin:0}.route-map-failed button{min-height:44px}.fav-row{border-top:.5px solid var(--line);touch-action:pan-y;position:relative;overflow:hidden}.fav-row .list-item{border-top:0;flex:1;min-width:0}.fav-underlay{background:var(--danger);justify-content:flex-end;display:flex;position:absolute;inset:0}.fav-delete{color:#fff;background:0 0;border-radius:0;width:88px;font-size:15px}.fav-delete:focus-visible{outline-offset:-4px;outline-color:#fff}.fav-content{background:var(--bg);align-items:center;transition:transform .18s;display:flex;position:relative}.fav-content.swiping{transition:none}.fav-handle{min-width:44px;min-height:44px;color:var(--muted);touch-action:none;cursor:grab;background:0 0;justify-content:center;align-items:center;padding:0;display:inline-flex}.fav-row.dragging{z-index:1;-webkit-user-select:none;user-select:none;overflow:visible}.fav-row.dragging .fav-underlay{visibility:hidden}.fav-row.dragging .fav-content{background:var(--surface);border-radius:8px;box-shadow:0 6px 18px #00000073}.fav-row.dragging .fav-handle{cursor:grabbing;color:var(--accent)}@media (prefers-reduced-motion:reduce){.fav-content{transition:none}}
