:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0d1b2a;--card:#16283c;--text:#f4f7fa;--dim:#8fa3b8;--accent:#ffd23f;--kmb:#e60012;--ctb:#f6a800;font-family:PingFang HK,Microsoft JhengHei,Noto Sans TC,system-ui,sans-serif}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);margin:0;font-size:20px}.app{flex-direction:column;height:100dvh;padding:6px 14px 14px;display:flex}.topbar{flex:none;align-items:center;gap:10px;display:flex}.tabs{gap:6px;display:flex}.tabs button{background:var(--card);color:var(--dim);border:none;border-radius:8px;padding:6px 14px;font-size:.95rem}.tabs button.active{background:var(--accent);color:#1a1a1a;font-weight:700}.clock{font-variant-numeric:tabular-nums;color:var(--accent);margin-left:auto;font-size:clamp(1.4rem,4vmin,2.4rem)}.page{flex:1;width:100%;max-width:900px;min-height:0;margin:0 auto;overflow-y:auto}.board{flex-direction:column;flex:1;gap:1.5vmin;min-height:0;padding-top:1vmin;display:flex}.board-card{background:var(--card);border-radius:2vmin;flex:1;align-items:center;gap:2.5vmin;min-height:0;padding:1vmin 3vmin;display:flex}.board-route{color:var(--accent);font-variant-numeric:tabular-nums;min-width:5ch;font-size:clamp(3rem,14vmin,9rem);font-weight:800}.board-info{flex:1;min-width:0}.board-dest{font-size:clamp(1.5rem,5.5vmin,3.5rem);font-weight:600}.board-stop{color:var(--dim);margin-top:.5vmin;font-size:clamp(1rem,2.5vmin,1.6rem)}.board-etas{text-align:right}.unpin{color:var(--dim);background:0 0;border:none;padding:8px;font-size:clamp(1rem,2.5vmin,1.5rem)}.eta-times{gap:1.2vmin;display:inline-flex}.eta-chip{text-align:center;font-variant-numeric:tabular-nums;background:#23405f;border-radius:1vmin;font-weight:700;display:inline-block}.board-etas .eta-chip{min-width:3.4em;padding:.5vmin 1.5vmin;font-size:clamp(2rem,8vmin,5rem)}.board-etas .eta-none{font-size:clamp(1.4rem,5vmin,3rem)}.route-row .eta-chip{min-width:72px;padding:6px 10px;font-size:1.3rem}.eta-chip.eta-soon{color:#fff;background:#2e7d32;animation:1.2s ease-in-out infinite pulse}.eta-none{color:var(--dim);font-size:1.2rem}@keyframes pulse{50%{opacity:.55}}.settings-bar{align-items:center;gap:14px;margin:10px 0 14px;font-size:1.05rem;display:flex}.settings-bar .gps{border:1px solid var(--dim);color:var(--text);background:0 0;border-radius:10px;padding:8px 14px;font-size:1rem}.settings-bar select{background:var(--card);color:var(--text);border:1px solid var(--dim);border-radius:8px;margin-left:8px;padding:6px 10px;font-size:1rem}.nearby{flex-direction:column;gap:14px;display:flex}.stop-card{background:var(--card);border-radius:14px;padding:14px 18px}.stop-head{justify-content:space-between;align-items:baseline;margin-bottom:8px;display:flex}.stop-name{font-size:1.25rem;font-weight:700}.stop-dist{color:var(--dim);font-size:.95rem}.route-row{border-top:1px solid #23405f;align-items:center;gap:12px;padding:8px 0;display:flex}.route-chip{text-align:center;color:#fff;background:#33475e;border-radius:8px;min-width:76px;padding:4px 8px;font-size:1.2rem;font-weight:800}.route-chip.co-kmb{background:var(--kmb)}.route-chip.co-ctb{background:var(--ctb);color:#1a1a1a}.route-chip.co-gmb{background:#1a8a4a}.route-dest{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.star{color:var(--dim);background:0 0;border:none;padding:4px 8px;font-size:1.5rem}.star.starred{color:var(--accent)}.search-input{border:1px solid var(--dim);background:var(--card);width:100%;color:var(--text);border-radius:12px;margin:10px 0 16px;padding:14px 18px;font-size:1.4rem}.search-card{background:var(--card);border-radius:14px;margin-bottom:12px;overflow:hidden}.search-head{width:100%;color:var(--text);text-align:left;background:0 0;border:none;align-items:center;gap:14px;padding:14px 18px;font-size:1.2rem;display:flex}.search-od{flex:1;min-width:0}.search-stops{padding:0 18px 10px}.search-stops .seq{text-align:right;font-variant-numeric:tabular-nums;min-width:2.2ch}.stale{opacity:.55}.dim{color:var(--dim)}.empty-state{text-align:center;padding:60px 20px;font-size:1.3rem}.error{background:#5c1a1a;border-radius:10px;margin:10px 0;padding:12px 16px;font-size:1rem}button{cursor:pointer;touch-action:manipulation}
