:root{
  --bg:#f3f5f7; --card:#fff; --ink:#14181d; --muted:#5d6874; --line:#e2e6ea;
  --accent:#0b6e99; --accent-ink:#fff; --ok:#1d8a4e; --warn:#c77700; --bad:#c62f2f;
  --soft:#eaf3f8; --radius:16px;
}
@media (prefers-color-scheme:dark){:root{
  --bg:#0f1316; --card:#181e23; --ink:#eef2f5; --muted:#98a4ae; --line:#28313a;
  --accent:#3fa8d8; --accent-ink:#071116; --ok:#4cc483; --warn:#f0a43a; --bad:#ff6b6b; --soft:#16303d;
}}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.45 Inter,system-ui,sans-serif;-webkit-font-smoothing:antialiased}
main{max-width:560px;margin:0 auto;padding:20px 16px 48px}
h1{font-size:22px;margin:4px 0 16px;letter-spacing:-.02em;display:flex;align-items:center;gap:10px}
h1 .dot{width:28px;height:28px;border-radius:8px;background:var(--accent);display:grid;place-items:center;color:var(--accent-ink);font-size:15px}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px;margin-bottom:14px}
label{display:block;font-size:13px;font-weight:600;color:var(--muted);margin:0 0 6px}
.row{display:grid;grid-template-columns:110px 1fr;gap:10px}
input{width:100%;font:inherit;font-size:18px;padding:12px 12px;border:1.5px solid var(--line);border-radius:12px;background:var(--bg);color:var(--ink);outline:none}
input:focus{border-color:var(--accent)}
#line{font-weight:800;text-transform:uppercase}
.chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.chip{border:1.5px solid var(--line);background:var(--card);color:var(--ink);border-radius:999px;padding:6px 12px;font:inherit;font-size:14px;cursor:pointer}
.chip.on{border-color:var(--accent);background:var(--soft);color:var(--accent);font-weight:600}
.btn{width:100%;margin-top:14px;border:0;border-radius:12px;padding:14px;font:inherit;font-size:17px;font-weight:700;background:var(--accent);color:var(--accent-ink);cursor:pointer}
.btn:disabled{opacity:.55;cursor:default}
.link{background:none;border:0;color:var(--accent);font:inherit;font-size:14px;padding:0;cursor:pointer;text-decoration:underline}
.status{color:var(--muted);font-size:14px;margin:10px 2px}
.status.err{color:var(--bad)}
.manual{display:none;margin-top:12px}
.stop-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.stop-name{font-size:20px;font-weight:700;letter-spacing:-.01em}
.sub{color:var(--muted);font-size:14px}
.badge{display:inline-block;font-weight:800;background:var(--accent);color:var(--accent-ink);border-radius:8px;padding:2px 8px;font-size:15px}
.walk{text-align:right;white-space:nowrap}
.walk b{font-size:18px}
.hero{margin-top:14px;padding:16px;border-radius:14px;background:var(--soft)}
.hero .big{font-size:44px;font-weight:800;letter-spacing:-.03em;line-height:1}
.hero .lbl{font-size:13px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.hero-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}
.hero-grid .v{font-size:20px;font-weight:700}
.delay{font-weight:700}
.d-ok{color:var(--ok)} .d-warn{color:var(--warn)} .d-bad{color:var(--bad)} .d-na{color:var(--muted)}
.deps{list-style:none;margin:12px 0 0;padding:0}
.deps li{display:grid;grid-template-columns:62px 1fr auto;gap:10px;align-items:center;padding:10px 0;border-top:1px solid var(--line)}
.deps li.miss{opacity:.45}
.deps .t{font-size:18px;font-weight:700}
.deps .t s{display:block;font-size:12px;font-weight:500;color:var(--muted)}
.deps .h{font-size:14px;color:var(--muted)}
.deps .m{text-align:right;font-weight:700}
.alt{display:flex;justify-content:space-between;gap:10px;padding:10px 0;border-top:1px solid var(--line);cursor:pointer}
.alt:first-of-type{border-top:0}
.foot{display:flex;justify-content:space-between;align-items:center;margin-top:12px;font-size:13px;color:var(--muted)}
a{color:var(--accent)}
.ver{text-align:center;font-size:12px;color:var(--muted);margin-top:24px}
.cancel{color:var(--bad);font-weight:700}
/* v1.2.0 */
.hidden{display:none!important}
.center{text-align:center}
.mt6{margin-top:6px} .mt8{margin-top:8px} .mt10{margin-top:10px}
.btn-near{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;margin:0 0 14px;border:1.5px solid var(--accent);border-radius:14px;padding:14px;font:inherit;font-size:17px;font-weight:700;background:var(--card);color:var(--accent);cursor:pointer}
.btn-near:disabled{opacity:.55;cursor:default}
.btn-near svg{width:20px;height:20px;flex:none}
.or{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:13px;margin:0 0 14px}
.or::before,.or::after{content:"";flex:1;height:1px;background:var(--line)}
.deps.all li{grid-template-columns:auto 1fr auto;cursor:pointer}
.deps.all .ln{min-width:46px;text-align:center}
.deps.all .tm{font-weight:700}
.deps.all .tm s{font-weight:500;color:var(--muted);font-size:12px;margin-left:4px}
.badge.t0{background:#d32f2f;color:#fff}      /* tramvaj */
.badge.t1{background:#2e7d32;color:#fff}      /* metro */
.badge.t2{background:#6a4fb3;color:#fff}      /* vlak */
.badge.t4,.badge.t7{background:#00838f;color:#fff}
.badge.t11{background:#8d6e63;color:#fff}     /* trolejbus */
.hint{font-size:13px;color:var(--muted);margin-top:10px}
