/* Driver web app. Palette of the driver pieces: forest, mint, paper; yellow only for the road. */
:root {
  --forest: #0F2A1E;
  --forest-2: #163828;
  --mint: #8FDCAE;
  --paper: #F6F5F0;
  --asphalt: #15171A;
  --yellow: #FFC72C;
  --red: #E5484D;
  --muted: #A9C7B6;
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
}
* { box-sizing: border-box; margin: 0; }
[hidden] { display: none !important; }
html, body { background: var(--forest); color: var(--paper); min-height: 100%; }
body { padding: env(safe-area-inset-top) 16px calc(24px + env(safe-area-inset-bottom)); max-width: 560px; margin: 0 auto; }

.top { display: flex; align-items: center; gap: 12px; padding: 16px 0; }
.mark { width: 52px; height: auto; }
.who { flex: 1; min-width: 0; }
.hello { font-size: 20px; font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pill { display: inline-block; margin-top: 4px; padding: 3px 10px; border-radius: 99px; font-size: 14px; font-weight: 700; background: var(--forest-2); color: var(--muted); }
.pill:empty { display: none; }
.pill.available { background: var(--mint); color: var(--forest); }
.pill.busy { background: var(--yellow); color: var(--asphalt); }
.pill.offered { background: var(--paper); color: var(--forest); }
.lang { background: none; border: 1px solid var(--muted); color: var(--muted); border-radius: 8px; padding: 6px 10px; font-weight: 700; font-size: 14px; }

.banner { background: var(--yellow); color: var(--asphalt); border-radius: 12px; padding: 10px 14px; font-weight: 600; margin-bottom: 12px; }
.banner.error { background: var(--red); color: #fff; }

.card { background: var(--forest-2); border-radius: 20px; padding: 20px; margin-bottom: 14px; }
.card.center { text-align: center; }
.card h1 { font-size: 22px; margin-bottom: 8px; }
.big { font-size: 20px; font-weight: 600; margin-bottom: 18px; line-height: 1.35; }
.label { color: var(--mint); font-weight: 800; letter-spacing: .08em; text-transform: uppercase; font-size: 13px; margin-bottom: 14px; }
.stop { display: flex; gap: 12px; align-items: flex-start; margin-bottom: 14px; }
.dot { flex: none; width: 14px; height: 14px; border-radius: 50%; margin-top: 6px; }
.dot.pickup { background: var(--mint); }
.dot.dest { background: var(--yellow); }
.small { color: var(--muted); font-size: 13px; font-weight: 600; }
.addr { font-size: 19px; font-weight: 700; line-height: 1.3; }
.details { list-style: none; padding: 0; margin: 4px 0 16px; display: flex; flex-wrap: wrap; gap: 8px; }
.details li { background: var(--forest); border-radius: 99px; padding: 6px 12px; font-size: 15px; font-weight: 600; }
.details li.note { border-radius: 12px; flex-basis: 100%; }

.btn { display: block; width: 100%; text-align: center; text-decoration: none; border: 0; border-radius: 16px; padding: 18px; font-size: 19px; font-weight: 800; margin-top: 10px; cursor: pointer; font-family: inherit; }
.btn:disabled { opacity: .5; }
.btn.go, .btn.maps { background: var(--mint); color: var(--forest); }
.btn.outline { background: transparent; color: var(--paper); border: 2px solid var(--muted); }
.btn.finish { background: var(--paper); color: var(--forest); margin-top: 18px; }
.note { color: var(--muted); font-size: 14px; text-align: center; line-height: 1.4; padding: 0 8px; }

dialog { border: 0; border-radius: 20px; padding: 22px; background: var(--paper); color: var(--asphalt); max-width: 360px; width: calc(100% - 32px); }
dialog::backdrop { background: rgba(0, 0, 0, .6); }
dialog p { font-size: 19px; font-weight: 700; margin-bottom: 8px; text-align: center; }
dialog .row { display: flex; gap: 10px; }
dialog .btn.outline { color: var(--asphalt); border-color: var(--asphalt); }
dialog .btn.finish { background: var(--forest); color: var(--paper); margin-top: 10px; }
