:root{
  --yellow:#ffc93c; --yellow-dark:#e5ac14;
  --ink:#15181d; --ink-soft:#4b5260;
  --good:#1fa05a; --bad:#d9453a; --blue:#2f7fd1;
}
*{box-sizing:border-box; margin:0; padding:0;}
html,body{height:100%;}
body{font-family:system-ui,-apple-system,'Segoe UI',Roboto,sans-serif; background:#ece7da; overscroll-behavior:none;}
#app{position:fixed; inset:0; display:flex; flex-direction:column;}

header{
  position:absolute; top:0; left:0; right:0; z-index:20;
  display:flex; align-items:center; gap:10px;
  padding:calc(10px + env(safe-area-inset-top)) 16px 22px;
  background:linear-gradient(180deg, rgba(21,24,29,.92) 0%, rgba(21,24,29,.7) 60%, rgba(21,24,29,0) 100%);
  pointer-events:none;
}
.logo{width:38px;height:38px;border-radius:12px;background:var(--yellow);display:grid;place-items:center;font-size:20px;box-shadow:0 4px 12px rgba(0,0,0,.35);}
.brand{line-height:1.15;}
.brand b{font-size:17px;letter-spacing:.04em;color:#fff;}
.brand span{display:flex;align-items:center;gap:5px;font-size:11px;color:#b9c2d4;font-weight:600;}
.dot{width:7px;height:7px;border-radius:50%;background:var(--good);box-shadow:0 0 6px var(--good);}
.dot.off{background:var(--bad);box-shadow:0 0 6px var(--bad);}

#map{position:absolute; inset:0;}
#mapless[hidden]{display:none !important;}
#mapless{position:absolute; inset:0; display:grid; place-items:center; background:#ece7da;}
.mapless-inner{max-width:300px; text-align:center; color:#8a8370; font-weight:600; font-size:14px; line-height:1.5;}

/* markery */
.pin{width:0;height:0;position:relative;}
.pin i{
  position:absolute; left:-13px; top:-34px; width:26px; height:26px; border-radius:50% 50% 50% 0;
  transform:rotate(-45deg); border:3px solid #fff; box-shadow:0 2px 8px rgba(0,0,0,.35);
}
.pin.from i{background:var(--ink); outline:3px solid var(--yellow);}
.pin.to i{background:var(--good);}
.car{
  width:36px;height:36px;border-radius:50%;background:var(--yellow);
  border:3px solid var(--ink); display:grid;place-items:center;font-size:18px;
  box-shadow:0 3px 10px rgba(0,0,0,.4);
}

.sheet{
  position:absolute; left:10px; right:10px; bottom:calc(10px + env(safe-area-inset-bottom)); z-index:30;
  background:#fff; color:var(--ink);
  border-radius:22px; padding:14px 16px 13px;
  box-shadow:0 -4px 30px rgba(0,0,0,.28);
  max-height:62%; overflow-y:auto;
}
.sheet .grab{width:42px;height:4px;border-radius:2px;background:#dadfe8;margin:0 auto 10px;}
.sheet h2{font-size:17px;font-weight:800;margin-bottom:4px;}
.sheet p{font-size:13px;color:var(--ink-soft);line-height:1.45;}

.field{display:flex;align-items:center;gap:9px;border:2px solid #e3e6ec;border-radius:13px;padding:8px 11px;margin-top:8px;cursor:text;transition:border-color .15s;}
.field.active{border-color:var(--yellow);}
.fdot{width:11px;height:11px;border-radius:50%;flex:none;}
.fdot.from{background:var(--ink);outline:3px solid var(--yellow);}
.fdot.to{background:var(--good);}
.field label{font-weight:800;font-size:11px;color:#9aa1b0;width:48px;flex:none;}
.field input{border:0;outline:0;flex:1;font-weight:600;font-size:14px;color:var(--ink);background:transparent;min-width:0;}
.field input::placeholder{color:#b6bcc9;}
.free{font-weight:800;font-size:11px;color:var(--good);flex:none;}
.sugg{border:1px solid #e3e6ec;border-radius:12px;margin-top:6px;overflow:hidden;box-shadow:0 8px 20px rgba(0,0,0,.08);}
.sugg button{display:flex;width:100%;text-align:left;gap:8px;align-items:center;border:0;background:#fff;cursor:pointer;font-weight:600;font-size:13px;color:var(--ink);padding:11px 12px;border-bottom:1px solid #f0f2f6;}
.sugg button:last-child{border-bottom:0;}
.hintline{margin-top:8px;font-size:11.5px;color:#9aa1b0;text-align:center;font-weight:600;line-height:1.5;}

.routeRow{display:flex;align-items:center;gap:10px;border:2px solid #e3e6ec;border-radius:13px;padding:9px 11px;}
.rrIc{display:flex;flex-direction:column;align-items:center;gap:2px;flex:none;}
.rrLine{width:2px;height:10px;background:#d4d9e2;border-radius:1px;}
.rrTxt{flex:1;min-width:0;}
.rrL{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:700;font-size:12.5px;}
.rrL.to{color:var(--good);margin-top:3px;}
.rrEdit{flex:none;border:0;background:#f1f3f7;border-radius:9px;width:32px;height:32px;cursor:pointer;font-size:14px;}

.sum{margin-top:11px;background:#f6f7fa;border-radius:14px;padding:11px 13px;font-size:13px;}
.sum .r{display:flex;justify-content:space-between;gap:10px;padding:2.5px 0;color:var(--ink-soft);font-weight:600;}
.sum .r b{color:var(--ink);font-weight:800;text-align:right;}
.sum .tot{border-top:1.5px dashed #dde1ea;margin-top:6px;padding-top:7px;font-size:15px;}
.profRow{display:flex;align-items:center;gap:6px;margin-top:9px;font-weight:600;font-size:12px;color:var(--ink-soft);}
.linkbtn{border:0;background:none;color:var(--blue);font-weight:700;font-size:12px;cursor:pointer;text-decoration:underline;padding:0;}

.btn{width:100%;margin-top:11px;border:0;cursor:pointer;background:var(--yellow);color:var(--ink);font-weight:800;font-size:15px;padding:14px;border-radius:14px;box-shadow:0 4px 0 var(--yellow-dark);}
.btn:active{transform:translateY(2px);box-shadow:0 2px 0 var(--yellow-dark);}
.btn:disabled{opacity:.55;}
.btn.ghost{background:#f1f3f7;color:#7b8294;box-shadow:none;font-weight:700;padding:11px;margin-top:8px;font-size:13px;}
.btn.green{background:var(--good);color:#fff;box-shadow:0 4px 0 #157a43;}
.btn.outline{background:#fff;color:var(--ink);border:2px solid var(--ink);box-shadow:0 4px 0 #c9cdd6;padding:12px;}

.driver{display:flex;align-items:center;gap:12px;}
.avatar{width:48px;height:48px;border-radius:50%;flex:none;background:linear-gradient(135deg,#ffd76a,#ff9d3c);display:grid;place-items:center;font-size:24px;}
.driver .nm{font-weight:800;font-size:15px;}
.driver .car-t{font-size:12.5px;color:var(--ink-soft);}
.spz{margin-left:auto;font-weight:800;font-size:13px;font-family:ui-monospace,monospace;letter-spacing:.06em;background:#fff;border:2px solid var(--ink);border-radius:6px;padding:4px 7px;}
.callbtn{display:inline-flex;align-items:center;gap:6px;margin-top:10px;background:#eaf6ef;border:1.5px solid #bfe7cf;color:#157a43;font-weight:800;font-size:12.5px;padding:8px 13px;border-radius:999px;text-decoration:none;}
.eta{margin-top:12px;display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;background:#f6f7fa;border-radius:14px;padding:11px 14px;}
.eta .big{font-size:22px;font-weight:800;}
.eta .sub{font-size:12.5px;color:var(--ink-soft);font-weight:600;}
.paidtag{display:inline-flex;align-items:center;gap:6px;margin-top:10px;font-weight:800;font-size:11.5px;color:var(--good);background:#e8f7ee;border:1px solid #bfe7cf;border-radius:999px;padding:5px 11px;}
.paidtag.cash{color:#8a6d1a;background:#fff7dd;border-color:#f2e3ad;}
.live{display:flex;align-items:center;gap:7px;margin-top:9px;font-size:12px;color:var(--ink-soft);font-weight:600;}
.live .dot2{width:8px;height:8px;border-radius:50%;background:var(--good);animation:blink 1s steps(2) infinite;}
@keyframes blink{50%{opacity:.25;}}
.ok{text-align:center;padding:2px 0;}
.ok .big{font-size:32px;}
.ok h2{margin-top:4px;}
.bubble{margin-top:11px;background:#f6f7fa;border-radius:14px 14px 14px 4px;padding:11px 13px;font-size:13px;color:var(--ink);line-height:1.5;}
.bubble b{display:block;font-size:11.5px;color:#8a92a3;margin-bottom:3px;}
.paylead{margin-top:13px;font-weight:800;font-size:14.5px;color:var(--ink);text-align:center;}
.paylead-sub{font-size:12px;color:var(--ink-soft);text-align:center;margin-top:3px;}
.consent{display:flex;align-items:flex-start;gap:9px;margin-top:12px;font-weight:600;font-size:11.5px;color:var(--ink-soft);cursor:pointer;line-height:1.5;}
.consent input{margin-top:2px;width:16px;height:16px;accent-color:var(--good);flex:none;}
.consent a{color:var(--blue);}
.perr{display:none;margin-top:7px;font-weight:700;font-size:11.5px;color:var(--bad);}
.perr.show{display:block;}

.toast{
  position:absolute; top:calc(74px + env(safe-area-inset-top)); left:50%;
  transform:translateX(-50%) translateY(-8px);
  z-index:60; background:rgba(21,24,29,.93); color:#fff;
  font-weight:700; font-size:12.5px; padding:9px 14px; border-radius:999px;
  opacity:0; pointer-events:none; transition:.25s; max-width:92%; text-align:center;
}
.toast.show{opacity:1; transform:translateX(-50%) translateY(0);}

.modal{position:absolute;inset:0;z-index:55;background:rgba(14,16,20,.45);display:none;align-items:center;justify-content:center;padding:20px;}
.modal.show{display:flex;}
.modalCard{background:#fff;border-radius:18px;padding:18px 16px 14px;width:100%;max-width:340px;color:var(--ink);box-shadow:0 20px 50px rgba(0,0,0,.35);}
.modalCard h2{font-size:16px;font-weight:800;}
.modalCard p{font-size:12px;color:var(--ink-soft);margin-top:4px;line-height:1.45;}
.pf{margin-top:9px;}
.pf label{font-weight:800;font-size:11px;color:#8a92a3;}
.pf input{width:100%;margin-top:4px;border:2px solid #e3e6ec;border-radius:10px;padding:10px 11px;font-weight:600;font-size:14px;color:var(--ink);outline:0;background:#fbfcfe;}
.pf input.err{border-color:var(--bad);background:#fff5f4;}
