  :root {
    color-scheme: light dark;
    --bg:#f6f6f7; --card:#fff; --text:#18181b; --muted:#71717a; --line:#e4e4e7;
    --accent:#e5007d; --ok:#15803d; --warn:#b45309;
  }
  @media (prefers-color-scheme: dark) {
    :root { --bg:#09090b; --card:#18181b; --text:#fafafa; --muted:#a1a1aa;
            --line:#27272a; --accent:#ff4fa3; --ok:#4ade80; --warn:#fbbf24; }
  }
  * { box-sizing:border-box; }
  body { margin:0; padding:16px; background:var(--bg); color:var(--text);
         font:15px/1.45 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif; }
  main { max-width:34rem; margin:0 auto; }
  h1 { font-size:1.05rem; margin:0 0 2px; }
  .muted { color:var(--muted); font-size:.82rem; margin:0; }
  .sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px;
             overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
  .verdict { background:var(--card); border:1px solid var(--line); border-left:5px solid var(--accent);
             border-radius:12px; padding:14px 16px; margin:14px 0; }
  .verdict h2 { font-size:1.35rem; margin:0 0 4px; line-height:1.2; }
  .verdict p { margin:0; color:var(--muted); }
  .go { display:inline-block; margin-top:10px; padding:9px 12px; border-radius:9px;
        background:var(--accent); color:#fff; font-weight:600; text-decoration:none; }
  .verdict.wait { border-left-color:var(--warn); }
  .verdict.ok { border-left-color:var(--ok); }
  .controls { display:flex; gap:14px; align-items:center; flex-wrap:wrap; margin:0 0 10px; }
  #map { height:280px; border:1px solid var(--line); border-radius:12px; margin:0 0 12px; }
  .station-marker { display:grid; place-items:center; color:#fff; font:700 .8rem system-ui;
                    background:var(--accent); border:2px solid #fff; border-radius:50%; }
  .controls label { display:flex; gap:5px; align-items:center; font-size:.86rem; color:var(--muted); }
  ol { list-style:none; margin:0; padding:0; display:grid; gap:8px; }
  li { background:var(--card); border:1px solid var(--line); border-radius:10px; padding:10px 12px; }
  li.best { border-color:var(--accent); }
  li.selected, li:focus-visible { outline:3px solid var(--accent); outline-offset:2px; }
  .row { display:flex; justify-content:space-between; gap:10px; align-items:baseline; }
  .name { font-weight:600; }
  .dist { color:var(--muted); font-size:.82rem; white-space:nowrap; }
  .meta { color:var(--muted); font-size:.82rem; margin-top:3px; }
  .meta b { color:var(--text); font-weight:600; }
  .picker { display:flex; gap:8px; margin-top:14px; flex-wrap:wrap; }
  input, button { font:inherit; color:var(--text); background:var(--card);
                  border:1px solid var(--line); border-radius:9px; padding:8px 10px; min-height:44px; }
  input { flex:1 1 12rem; min-width:0; }
  button { cursor:pointer; }
  footer { color:var(--muted); font-size:.78rem; margin:18px 0 0; }
  .err { color:var(--warn); }
