:root {
  --bg: #f6f7f9;
  --card: #ffffff;
  --ink: #1c2530;
  --muted: #6b7684;
  --line: #e2e6ea;
  --accent: #f5a623;
  --accent-ink: #7a4e00;
  --error: #c0392b;
}
* { box-sizing: border-box; }
body {
  margin: 0;
  font: 15px/1.5 -apple-system, system-ui, Segoe UI, Roboto, sans-serif;
  color: var(--ink);
  background: var(--bg);
}
header {
  display: flex; align-items: center; justify-content: space-between;
  padding: 12px 16px; background: var(--card); border-bottom: 1px solid var(--line);
}
h1 { font-size: 18px; margin: 0; }
h2 { font-size: 16px; }
section { max-width: 860px; margin: 0 auto; padding: 16px; }
.card {
  background: var(--card); border: 1px solid var(--line);
  border-radius: 10px; padding: 16px; margin-bottom: 12px;
}
label { display: block; margin: 8px 0; font-size: 13px; color: var(--muted); }
input[type=email], input[type=password], input[type=text] {
  width: 100%; padding: 9px 10px; margin-top: 4px;
  border: 1px solid var(--line); border-radius: 8px; font-size: 15px;
}
input[type=checkbox] { margin-right: 6px; }
button {
  background: var(--accent); color: var(--accent-ink); border: 0;
  padding: 9px 16px; border-radius: 8px; font-size: 14px; font-weight: 600;
  cursor: pointer;
}
button:hover { filter: brightness(0.97); }
button.link {
  background: none; color: var(--muted); font-weight: 400;
  text-decoration: underline; padding: 9px 4px;
}
.muted { color: var(--muted); font-size: 13px; }
.error { color: var(--error); font-weight: 600; }
.chips { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 12px; }
.chips button {
  background: var(--card); color: var(--ink); border: 1px solid var(--line);
  font-weight: 500;
}
.chips button.active { background: var(--accent); color: var(--accent-ink);
  border-color: var(--accent); }
#map {
  height: 420px; border-radius: 10px; border: 1px solid var(--line);
  margin-bottom: 12px; background: #dfe3e7;
}
.row { display: flex; align-items: center; gap: 14px; margin-bottom: 12px; }
#raw {
  background: #0f1720; color: #cbd5e1; padding: 12px; border-radius: 8px;
  overflow: auto; max-height: 320px; font-size: 12px;
}
#stops { list-style: none; padding: 0; }
#stops li {
  background: var(--card); border: 1px solid var(--line); border-radius: 8px;
  padding: 10px 12px; margin-bottom: 6px; display: flex; justify-content: space-between;
}
#stops li.current { border-color: var(--accent); border-width: 2px; }
.bus-badge { font-size: 12px; color: var(--accent-ink); background: #fff3dd;
  border-radius: 6px; padding: 1px 6px; }
