:root{--bg:#f6f3ee;--card:#fff;--ink:#22252a;--mute:#6b6f76;--line:#e4dfd6;--acc:#b5302a;--acc2:#2f5d62;--warn:#a8650c;--warnbg:#fbefd9;--ok:#2e6b3d;--okbg:#e2f0e4;color-scheme:light dark}
@media (prefers-color-scheme:dark){:root{--bg:#16181c;--card:#202329;--ink:#ebe8e2;--mute:#9a9ea6;--line:#30343b;--acc:#e0675f;--acc2:#7fb3b8;--warn:#f0b55e;--warnbg:#3a2e1a;--ok:#8fd19e;--okbg:#1f3324}}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:17px/1.6 -apple-system,"PingFang TC","Noto Sans TC","Hiragino Sans",system-ui,sans-serif;padding-bottom:calc(76px + env(safe-area-inset-bottom))}
main{max-width:720px;margin:0 auto;padding:12px 16px}
a{color:var(--acc2)}h1,h2,h3{line-height:1.3;margin:.2em 0}h1{font-size:1.5rem}h2{font-size:1.25rem;margin-top:1.4em}h3{font-size:1.08rem}
.kicker{color:var(--acc);font-size:.85rem;letter-spacing:.12em;margin:8px 0 4px}
.status{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:14px 16px;margin:8px 0 4px}.status .big{font-size:2.4rem;font-weight:700;color:var(--acc)}
.hero{height:170px;border-radius:16px;background:center/cover;margin:10px 0}
.tabs{display:flex;gap:6px;overflow-x:auto;scroll-snap-type:x mandatory;padding:4px 0 8px;position:sticky;top:0;background:var(--bg);z-index:2;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}
.tabs a{flex:0 0 auto;scroll-snap-align:center;text-decoration:none;color:var(--mute);border:1px solid var(--line);border-radius:12px;padding:6px 10px;text-align:center;min-width:56px;line-height:1.2}.tabs a b{display:block;font-size:1.05rem}.tabs a small{font-size:.72rem}
.tabs a.on{background:var(--acc);border-color:var(--acc);color:#fff}
.stops{display:flex;flex-direction:column;gap:10px;margin-top:10px}
.stop{display:flex;gap:12px;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:12px 14px}.stop.tbc{border-left:4px solid var(--warn)}
.time{flex:0 0 3.2em;font-weight:700;font-variant-numeric:tabular-nums;color:var(--acc);padding-top:1px}.body{flex:1;min-width:0}
.meta{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0}.tag{font-size:.75rem;padding:1px 8px;border-radius:99px;background:var(--line);color:var(--mute);white-space:nowrap}.tag.warn{background:var(--warnbg);color:var(--warn)}.tag.ok{background:var(--okbg);color:var(--ok)}
.note{color:var(--mute);font-size:.92rem;margin:6px 0;overflow-wrap:anywhere}.warnnote{background:var(--warnbg);color:var(--warn);border-radius:10px;padding:6px 10px;font-size:.9rem;margin:6px 0}
.place{border-top:1px dashed var(--line);margin-top:8px;padding-top:8px}.pname{font-weight:600}.pname small{font-weight:400;color:var(--mute)}.addr{font-size:.88rem;color:var(--mute)}
.btns{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:8px}.btn{min-height:46px;display:flex;align-items:center;justify-content:center;border-radius:12px;border:1px solid var(--line);text-decoration:none;color:var(--ink);font-weight:600;background:var(--bg)}.btn.pri{background:var(--acc2);color:#fff;border-color:var(--acc2)}
@media (prefers-color-scheme:dark){.btn.pri{color:#111}}
.bk{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px;font-size:.9rem}
.code{font:600 1rem ui-monospace,Menlo,monospace;border:1px solid var(--line);background:var(--bg);color:var(--ink);border-radius:10px;padding:8px 12px;min-height:44px;cursor:pointer}.code span{font:.72rem sans-serif;color:var(--mute);margin-left:8px}
.mini{font-size:.75rem;border:1px solid var(--line);background:none;color:var(--mute);border-radius:8px;padding:2px 8px}
details{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:8px 14px;margin:8px 0}summary{font-weight:600;min-height:32px}
.pager{display:flex;justify-content:space-between;margin:18px 0}.pager a{padding:12px 16px;border:1px solid var(--line);border-radius:12px;text-decoration:none;color:var(--ink)}
.cards{display:grid;gap:12px}@media(min-width:620px){.cards{grid-template-columns:1fr 1fr}}
.card{background:var(--card);border:1px solid var(--line);border-radius:16px;overflow:hidden}.card img{width:100%;height:140px;object-fit:cover;display:block}.cbody{padding:12px 14px}.card p{margin:6px 0}
.kv{display:flex;align-items:center;gap:10px;margin:8px 0}.kv>span{color:var(--mute);font-size:.85rem}.blank{color:var(--mute)}
.jump{display:flex;gap:6px;overflow-x:auto;position:sticky;top:0;background:var(--bg);padding:6px 0;z-index:2}.jump a{flex:0 0 auto;padding:8px 14px;border-radius:99px;border:1px solid var(--line);text-decoration:none;color:var(--ink)}
.plist .place{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:12px 14px;margin:8px 0}
.todo{padding-left:1.1em}.todo li{margin:6px 0}.foot{color:var(--mute);font-size:.8rem;margin:24px 0}
.bar{position:fixed;left:0;right:0;bottom:0;display:flex;background:var(--card);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom);z-index:5}.bar a{flex:1;text-align:center;padding:16px 0;text-decoration:none;color:var(--mute);font-weight:600}.bar a.on{color:var(--acc)}
#toast{position:fixed;left:50%;bottom:90px;transform:translateX(-50%);background:var(--ink);color:var(--bg);padding:8px 16px;border-radius:99px;opacity:0;transition:.2s;pointer-events:none}#toast.show{opacity:1}
.day[hidden]{display:none}

.btns{grid-template-columns:1fr 1fr;gap:8px}.btns .btn{min-height:52px;font-size:16px}.btns.sub{margin-top:8px}.btns.sub .btn{min-height:48px;font-size:15px}.btns.sub.n3{grid-template-columns:repeat(3,1fr)}.btns.sub.n1,.btns.one{grid-template-columns:1fr}
.btn.pri2{border-color:var(--acc2);color:var(--acc2)}
.anote{display:block;font-size:12px;opacity:.65;margin-top:2px}
.from{display:flex;align-items:center;gap:8px;margin-top:10px;padding-top:8px;border-top:1px dashed var(--line);font-size:14px}.from span{font-size:12px;opacity:.6}.from b{flex:1;font-weight:500}.from .mini{text-decoration:none}
#htabs{margin:4px 0 12px}
.sos{display:grid;gap:8px}.call{display:flex;align-items:center;gap:12px;min-height:52px;padding:8px 14px;border:1px solid var(--line);border-radius:12px;text-decoration:none;color:var(--ink);background:var(--card,var(--bg))}.call b{font-size:18px;font-variant-numeric:tabular-nums;min-width:4.5em}.call span{font-size:13px;opacity:.75}
#offline{position:fixed;left:12px;right:12px;bottom:calc(72px + env(safe-area-inset-bottom));padding:8px 12px;border-radius:10px;background:#5a4a2a;color:#fff;font-size:13px;text-align:center;z-index:30}
