
:root { color-scheme: light dark; --bg:#fff; --fg:#1a1a1a; --muted:#666; --accent:#BD202E; --border:#ddd; --now-bg: #fff3cd; --now-fg:#7a5b00; --arrival-bg: rgba(128,128,128,.08); }
@media (prefers-color-scheme: dark) { :root { --bg:#14161a; --fg:#eee; --muted:#999; --border:#333; --now-bg:#4a3b00; --now-fg:#ffe083; } }
* { box-sizing: border-box; }
body { margin:0; background:var(--bg); color:var(--fg); font-family:-apple-system,Segoe UI,Roboto,sans-serif; line-height:1.5; }
header { padding: 1rem 1.5rem; border-bottom:1px solid var(--border); }
.home-link { font-weight:700; text-decoration:none; color:var(--accent); }
main { max-width: 760px; margin: 0 auto; padding: 1.5rem; }
footer { max-width: 760px; margin: 2rem auto; padding: 1rem 1.5rem; color:var(--muted); font-size:.85rem; border-top:1px solid var(--border); }
a { color: var(--accent); }
h1 { margin-top:0; }
.code { color: var(--muted); font-weight:400; font-size:.8em; }
.native-name { color: var(--muted); margin-top:-0.75rem; }
.breadcrumb { margin-bottom: .25rem; font-size: .9rem; }
.also-served { color: var(--muted); font-size: .9rem; }
.muted { color: var(--muted); }
ul.stop-list, ol.stop-list, ul.line-list { list-style:none; padding:0; }
ul.stop-list li, ol.stop-list li, ul.line-list li { padding:.35rem 0; border-bottom:1px solid var(--border); }
.badge { background:var(--accent); color:#fff; border-radius:4px; padding:.1rem .4rem; font-size:.75rem; }
.stop-actions { display:flex; align-items:center; gap:1rem; flex-wrap:wrap; }
.fav-btn { border:1px solid var(--accent); background:transparent; color:var(--accent); border-radius:6px; padding:.4rem .8rem; font-size:.9rem; cursor:pointer; }
.fav-btn.is-fav { background:var(--accent); color:#fff; }
.remove-fav { border:none; background:none; color:var(--muted); text-decoration:underline; font-size:.8rem; cursor:pointer; padding:0 0 0 .5rem; }
.geo-banner { background:var(--now-bg); color:var(--now-fg); padding:.6rem .9rem; border-radius:6px; margin-bottom:.5rem; }
.geo-cancel { border:none; background:none; color:var(--muted); text-decoration:underline; font-size:.85rem; cursor:pointer; margin-bottom:1rem; padding:0; }
.nearest-btn { display:inline-flex; align-items:center; gap:.5rem; border:none; background:var(--accent); color:#fff; border-radius:8px; padding:.7rem 1.1rem; font-size:1rem; cursor:pointer; margin: .5rem 0 1.5rem; }
.nearest-status { color: var(--muted); font-size:.9rem; margin: .25rem 0 1rem; }
.search-box { width:100%; padding:.6rem .8rem; font-size:1rem; border:1px solid var(--border); border-radius:6px; background:var(--bg); color:var(--fg); }
.search-results { list-style:none; padding:0; margin-top:.5rem; }
.search-results li { padding:.35rem 0; border-bottom:1px solid var(--border); }
.line-block { margin: 1.5rem 0; padding-top: 1rem; border-top: 1px solid var(--border); }
.line-block h2 { display:flex; align-items:center; gap:.5rem; font-size:1.1rem; }
.kind-badge { font-size:.65rem; font-weight:700; text-transform:uppercase; letter-spacing:.03em; border-radius:3px; padding:.15rem .4rem; }
.kind-badge.departure { background:var(--accent); color:#fff; }
.kind-badge.arrival { background:var(--arrival-bg); color:var(--muted); }
table.timetable { border-collapse:collapse; width:100%; margin:.5rem 0 1rem; font-size: 1.05rem; }
table.timetable tr { border-bottom: 1px solid var(--border); }
table.timetable th { text-align:left; padding:.4rem .75rem .4rem 0; vertical-align:top; color:var(--muted); font-weight:600; white-space:nowrap; width:5rem; }
table.timetable td { padding:.4rem 0; font-variant-numeric: tabular-nums; letter-spacing: .02em; }
tr.current-hour { background: var(--now-bg); }
tr.current-hour th { color: var(--now-fg); }
.now-badge { display:inline-block; background:var(--accent); color:#fff; font-size:.65rem; font-weight:700; text-transform:uppercase; letter-spacing:.03em; border-radius:3px; padding:.1rem .35rem; margin-left:.4rem; vertical-align:middle; }
.live-block { background: rgba(189,32,46,.06); border-radius:8px; padding:1rem; border-top:none; }
.live-entry { margin:.3rem 0; }
.line-toggle { display:inline-block; margin:.2rem .3rem .2rem 0; padding:.25rem .6rem; border:1px solid var(--border); border-radius:999px; background:transparent; color:var(--fg); font-size:.85rem; cursor:pointer; }
.line-toggle.open { border-color:var(--accent); color:var(--accent); }
.line-schedule { margin-top:.5rem; }
