/* TowPilot onboarding — shared styles */
:root{
  --bg:#0a0a0a;
  --auth-bg:#1a1a1a;
  --surface:#15181c;
  --surface2:#1b1f24;
  --line:rgba(255,255,255,.09);
  --line-soft:rgba(255,255,255,.05);
  --text:#f2f4f5;
  --muted:#8b939b;
  --faint:#5c646c;
  --teal:#4fd6cc;
  --teal-dim:rgba(79,214,204,.16);
  --orange:#f2a33c;
  --green:#35c481;
  --red:#f26d6d;
  --purple:#8b7cf6;
  --mono:'Geist Mono',ui-monospace,Menlo,monospace;
  --sans:'Plus Jakarta Sans',system-ui,sans-serif;
}
body{background:#26282b;font-family:var(--sans);}
a{color:var(--teal);text-decoration:none;}
a:hover{color:#7fe4dc;}

.section-label{
  position:absolute;font-family:var(--mono);font-size:13px;letter-spacing:.25em;
  text-transform:uppercase;color:#9aa1a8;display:flex;align-items:center;gap:14px;
}
.section-label::after{content:"";display:block;width:120px;height:1px;background:#4a4e53;}

/* ---------- phone frame ---------- */
.phone{
  position:absolute;width:390px;height:844px;background:var(--bg);
  border-radius:28px;overflow:hidden;color:var(--text);
  display:flex;flex-direction:column;box-shadow:0 20px 60px rgba(0,0,0,.45);
}
.phone-label{
  position:absolute;font-family:var(--mono);font-size:11px;letter-spacing:.18em;
  text-transform:uppercase;color:#7d848b;
}
.statusbar{
  display:flex;justify-content:space-between;align-items:center;
  padding:18px 26px 6px;font-weight:700;font-size:15px;flex:none;
}
.statusbar .icons{display:flex;gap:6px;align-items:center;color:var(--text);}
.phone.auth{background:var(--auth-bg);}
.body{flex:1;display:flex;flex-direction:column;padding:0 24px 32px;min-height:0;}

/* ---------- brand ---------- */
.brand{display:flex;flex-direction:column;align-items:center;gap:10px;padding:60px 0 0;flex:none;}
.brand .mark{width:84px;height:45px;object-fit:contain;}
.brand .sub{font-family:var(--mono);font-size:10px;line-height:12px;letter-spacing:.215em;color:#888888;font-weight:400;}

/* ---------- type ---------- */
h1{font-size:40px;font-weight:500;line-height:42px;letter-spacing:-1.2px;margin:0 0 16px;text-align:center;color:#f4f5f8;}
h1.left{text-align:left;font-size:32px;line-height:1.1;}
.lede{font-size:15px;line-height:22px;color:#cccccc;text-align:center;margin:0 auto;max-width:300px;}
.lede.left{text-align:left;margin:0;}
.mono-label{font-family:var(--mono);font-size:10px;line-height:12px;letter-spacing:.215em;text-transform:uppercase;color:#888888;}
.footnote{font-family:var(--mono);font-size:10px;letter-spacing:.215em;text-transform:uppercase;color:#666666;text-align:center;line-height:2;}

/* ---------- buttons ---------- */
.btn{
  display:flex;align-items:center;justify-content:center;gap:10px;width:100%;
  height:56px;border-radius:28px;font-family:var(--mono);font-size:13px;
  letter-spacing:.22em;text-transform:uppercase;border:none;cursor:pointer;flex:none;
}
.btn-primary{background:#f4f5f6;color:#101215;font-weight:700;}
.btn-ghost{background:transparent;border:1px solid var(--line);color:var(--text);}
.btn-teal{background:var(--teal);color:#06302c;font-weight:700;}
.btn-link{background:none;border:none;font-family:var(--mono);font-size:11px;letter-spacing:2px;text-transform:uppercase;color:#cccccc;cursor:pointer;text-align:center;padding:16px 0;font-weight:500;}

/* ---------- inputs ---------- */
.field{margin:0 0 14px;}
.field .mono-label{display:block;margin-bottom:10px;}
.input{
  display:flex;align-items:center;gap:12px;background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.12);border-radius:14px;height:60px;padding:0 18px;
  font-size:16px;color:#f4f5f8;
}
.input.code{font-family:var(--mono);letter-spacing:3.6px;font-size:20px;}
.input .prefix{display:flex;align-items:center;gap:8px;color:var(--muted);border-right:1px solid var(--line);padding-right:12px;font-size:15px;}
.input .ph{color:var(--faint);}

/* OTP */
.otp{display:flex;gap:10px;justify-content:center;}
.otp .cell{
  width:50px;height:62px;background:var(--surface);border:1px solid var(--line);
  border-radius:12px;display:flex;align-items:center;justify-content:center;
  font-size:26px;font-weight:700;
}
.otp .cell.active{border-color:#e8eaec;}
.otp .cell.empty{color:var(--faint);}
.otp.error .cell{border-color:rgba(242,109,109,.55);}

/* divider */
.or{display:flex;align-items:center;gap:16px;margin:22px 0;}
.or::before,.or::after{content:"";flex:1;height:1px;background:var(--line-soft);}
.or span{font-family:var(--mono);font-size:11px;letter-spacing:.3em;color:var(--faint);}

/* ---------- setup chrome ---------- */
.steps{display:flex;align-items:center;gap:14px;padding:14px 0 0;flex:none;}
.steps .mono-label{letter-spacing:.2em;white-space:nowrap;}
.steps .bars{display:flex;gap:8px;flex:1;}
.steps .bar{height:3px;flex:1;border-radius:2px;background:#2a2f34;}
.steps .bar.on{background:var(--teal);}
.steps .skip{margin-left:auto;}

/* role cards */
.role{
  border:1px solid var(--line);border-radius:16px;padding:18px;margin-bottom:14px;
  background:var(--surface);display:flex;flex-direction:column;gap:10px;
}
.role.selected{border-color:var(--teal);background:rgba(79,214,204,.05);}
.role .head{display:flex;align-items:center;gap:14px;}
.role .icon{width:44px;height:44px;border-radius:12px;background:var(--surface2);display:flex;align-items:center;justify-content:center;color:var(--teal);flex:none;}
.role .name{font-size:18px;font-weight:700;}
.role .tag{font-family:var(--mono);font-size:9px;letter-spacing:.25em;color:var(--teal);text-transform:uppercase;margin-top:3px;}
.role .tag.dim{color:var(--muted);}
.role .radio{margin-left:auto;width:22px;height:22px;border-radius:50%;border:2px solid #3a4046;flex:none;}
.role .radio.on{border-color:var(--teal);display:flex;align-items:center;justify-content:center;}
.role .radio.on::after{content:"";width:10px;height:10px;border-radius:50%;background:var(--teal);}
.role p{margin:0;font-size:14.5px;line-height:1.5;color:#aab1b8;}

/* permission halo */
.halo-wrap{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;min-height:0;}
.halo{position:relative;width:260px;height:260px;display:flex;align-items:center;justify-content:center;flex:none;}
.halo .ring{position:absolute;border-radius:50%;border:1px solid;inset:0;}
.halo .ring.r2{inset:40px;}
@media (prefers-reduced-motion: no-preference){
  .halo .ring{animation:halo-breathe 3.6s ease-in-out infinite;}
  .halo .ring.r2{animation-delay:.9s;}
  @keyframes halo-breathe{
    0%,100%{opacity:.55;transform:scale(1);}
    50%{opacity:1;transform:scale(1.04);}
  }
}
.halo .core{width:96px;height:96px;border-radius:50%;display:flex;align-items:center;justify-content:center;}
.halo.teal .ring{border-color:rgba(79,214,204,.18);}
.halo.teal .core{background:var(--teal);color:#06302c;box-shadow:0 0 60px rgba(79,214,204,.35);}
.halo.orange .ring{border-color:rgba(242,163,60,.2);}
.halo.orange .core{background:var(--orange);color:#3d2503;box-shadow:0 0 60px rgba(242,163,60,.35);}
.halo.red .ring{border-color:rgba(242,109,109,.18);}
.halo.red .core{background:rgba(242,109,109,.14);color:var(--red);border:1px solid rgba(242,109,109,.4);}
.halo.green .ring{border-color:rgba(53,196,129,.2);}
.halo.green .core{background:var(--green);color:#03301c;box-shadow:0 0 60px rgba(53,196,129,.35);}

/* checklist card */
.card{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:18px;}
.check-row{display:flex;align-items:center;gap:12px;padding:11px 0;border-top:1px solid var(--line-soft);font-size:15.5px;}
.check-row:first-child{border-top:none;}
.check-row .dot{width:22px;height:22px;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;}
.check-row .dot.ok{background:var(--green);color:#03301c;}
.check-row .dot.pending{border:2px solid #3a4046;}
.check-row .dot.pending.pulse{border-color:var(--teal);}
.check-row .dot.pulse::after{content:"";width:8px;height:8px;border-radius:50%;background:var(--teal);}
.check-row .meta{margin-left:auto;font-family:var(--mono);font-size:11px;letter-spacing:.12em;color:var(--muted);text-align:right;}
.check-row .meta b{color:var(--teal);font-weight:400;}

.agent-head{display:flex;align-items:center;gap:12px;}
.agent-avatar{width:44px;height:44px;border-radius:12px;background:var(--purple);display:flex;align-items:center;justify-content:center;color:#fff;flex:none;}
.agent-name{font-size:16px;font-weight:700;}
.agent-sub{font-family:var(--mono);font-size:10px;letter-spacing:.18em;color:var(--muted);text-transform:uppercase;margin-top:3px;}
.pill{margin-left:auto;display:flex;align-items:center;gap:7px;font-family:var(--mono);font-size:10px;letter-spacing:.18em;padding:7px 12px;border-radius:20px;flex:none;}
.pill.ready{background:rgba(53,196,129,.12);color:var(--green);}
.pill.live{background:rgba(242,109,109,.12);color:var(--red);}
.pill .dot{width:7px;height:7px;border-radius:50%;background:currentColor;}

.quote{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:16px 18px;}
.quote .mono-label{display:block;margin-bottom:8px;font-size:10px;color:var(--teal);}
.quote p{margin:0;font-size:15px;line-height:1.55;color:#c9cfd4;}

/* waveform */
.wave{display:flex;align-items:center;justify-content:center;gap:5px;height:64px;}
.wave i{width:4px;border-radius:2px;background:var(--teal);display:block;}

/* summary rows */
.sum-row{display:flex;align-items:center;gap:14px;padding:14px 0;border-top:1px solid var(--line-soft);}
.sum-row:first-child{border-top:none;}
.sum-row .dot{width:26px;height:26px;border-radius:50%;background:rgba(53,196,129,.14);color:var(--green);display:flex;align-items:center;justify-content:center;flex:none;}
.sum-row .t{font-size:15.5px;font-weight:600;}
.sum-row .s{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;color:var(--muted);margin-top:3px;text-transform:uppercase;}

/* home */
.home-top{display:flex;align-items:center;gap:12px;padding-top:8px;}
.avatar{width:40px;height:40px;border-radius:50%;background:var(--surface2);border:1px solid var(--line);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;color:var(--teal);}
.status-chip{margin-left:auto;display:flex;align-items:center;gap:8px;font-family:var(--mono);font-size:10px;letter-spacing:.2em;color:var(--muted);border:1px solid var(--line);border-radius:20px;padding:8px 14px;text-transform:uppercase;}
.status-chip .dot{width:7px;height:7px;border-radius:50%;background:#4a5158;}
.status-chip.online{color:var(--green);border-color:rgba(53,196,129,.35);}
.status-chip.online .dot{background:var(--green);}
.go-btn{
  width:190px;height:190px;border-radius:50%;margin:0 auto;border:none;cursor:pointer;
  background:var(--teal);color:#06302c;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;
  font-family:var(--mono);font-size:15px;letter-spacing:.24em;font-weight:700;text-transform:uppercase;
  box-shadow:0 0 80px rgba(79,214,204,.3);
}
.coach{
  background:var(--surface);border:1px solid rgba(79,214,204,.35);border-radius:14px;
  padding:14px 16px;font-size:14px;line-height:1.5;color:#c9cfd4;position:relative;
}
.coach::before{content:"";position:absolute;top:-7px;left:50%;width:12px;height:12px;background:var(--surface);border-left:1px solid rgba(79,214,204,.35);border-top:1px solid rgba(79,214,204,.35);transform:translateX(-50%) rotate(45deg);}

.alert{background:rgba(242,109,109,.08);border:1px solid rgba(242,109,109,.3);border-radius:14px;padding:14px 16px;font-size:14px;line-height:1.5;color:#e5b2b2;}
.spacer{flex:1;min-height:0;}
.gap-hero{height:88px;flex:none;}.gap-form{height:40px;flex:none;}
.gap-lg{height:34px;flex:none;}.gap-md{height:22px;flex:none;}.gap-sm{height:12px;flex:none;}
.pad-b{padding-bottom:26px;flex:none;}

/* ---------- splash ---------- */
.phone.splash{
  background:
    radial-gradient(120% 70% at 50% 38%, rgba(79,214,204,.10), transparent 60%),
    #0a0a0a;
  justify-content:center;align-items:center;position:absolute;
}
.splash-grid{
  position:absolute;inset:0;
  background-image:
    linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px);
  background-size:52px 52px;
  -webkit-mask-image:radial-gradient(80% 55% at 50% 40%, #000 30%, transparent 75%);
  mask-image:radial-gradient(80% 55% at 50% 40%, #000 30%, transparent 75%);
}
.splash-beacon{position:absolute;top:38%;left:50%;width:0;height:0;}
.s-ring{
  position:absolute;top:0;left:0;transform:translate(-50%,-50%);
  border:1px solid rgba(79,214,204,.35);border-radius:50%;
}
.s-ring.s1{width:220px;height:220px;}
.s-ring.s2{width:360px;height:360px;border-color:rgba(79,214,204,.18);}
.s-ring.s3{width:520px;height:520px;border-color:rgba(79,214,204,.08);}
@media (prefers-reduced-motion: no-preference){
  .s-ring{animation:splash-pulse 3.2s ease-out infinite;}
  .s-ring.s2{animation-delay:.5s;}
  .s-ring.s3{animation-delay:1s;}
  @keyframes splash-pulse{
    0%{opacity:0;scale:.85;}
    30%{opacity:1;}
    100%{opacity:0;scale:1.08;}
  }
}
.splash-center{
  position:absolute;top:38%;left:0;right:0;transform:translateY(-50%);
  display:flex;flex-direction:column;align-items:center;gap:16px;
}
.splash-mark{width:132px;height:70px;object-fit:contain;filter:drop-shadow(0 0 24px rgba(79,214,204,.25));}
.splash-sub{font-family:var(--mono);font-size:12px;letter-spacing:.5em;text-indent:.5em;color:#9aa4a8;}
.splash-foot{
  position:absolute;left:0;right:0;bottom:64px;
  display:flex;flex-direction:column;align-items:center;gap:16px;
}
.splash-load{width:120px;height:2px;background:rgba(255,255,255,.10);border-radius:1px;overflow:hidden;}
.splash-load .fill{width:55%;height:100%;background:var(--teal);border-radius:1px;}
@media (prefers-reduced-motion: no-preference){
  .splash-load .fill{animation:splash-load 2.4s ease-in-out infinite;}
  @keyframes splash-load{
    0%{width:12%;}55%{width:78%;}100%{width:96%;}
  }
}
.splash-status{font-family:var(--mono);font-size:10px;letter-spacing:.215em;text-transform:uppercase;color:#666666;}
.splash-road{
  position:absolute;left:0;right:0;bottom:0;height:3px;
  background:repeating-linear-gradient(90deg, var(--teal) 0 26px, transparent 26px 44px);
  opacity:.5;
}

/* ---------- hero sign-in variation ---------- */
.phone.hero-auth{background:#0a0a0a;}
.hero-img{position:absolute;inset:0;background:radial-gradient(100% 70% at 50% 55%, #1d2226, #101316);}
.hero-img image-slot{color:rgba(255,255,255,.6);}
.hero-img::after{
  content:"";position:absolute;inset:16px;border-radius:16px;pointer-events:none;
  border:1.5px dashed rgba(255,255,255,.18);
}
.hero-img:has(image-slot[data-filled])::after{display:none;}
.hero-img:has(image-slot[data-filled]){background:none;}
.hero-scrim{
  position:absolute;inset:0;z-index:2;pointer-events:none;
  background:
    linear-gradient(180deg, rgba(10,10,10,.55) 0%, transparent 22%),
    linear-gradient(180deg, transparent 46%, rgba(10,10,10,.55) 66%, rgba(10,10,10,.92) 82%, #0a0a0a 96%);
}
.hero-brand{
  position:absolute;top:120px;left:0;right:0;z-index:3;pointer-events:none;
  display:flex;flex-direction:column;align-items:center;gap:12px;
}
.hero-brand .mark{width:120px;height:64px;object-fit:contain;filter:drop-shadow(0 4px 24px rgba(0,0,0,.6));}
.hero-brand .sub{font-family:var(--mono);font-size:11px;letter-spacing:.4em;text-indent:.4em;color:#e8ecec;text-shadow:0 2px 12px rgba(0,0,0,.7);}
.hero-actions{
  position:absolute;left:24px;right:24px;bottom:36px;z-index:3;
  display:flex;flex-direction:column;gap:14px;
}
.hero-cta{
  background:linear-gradient(100deg, #2f9b93 0%, var(--teal) 45%, #a7ece6 130%);
  color:#06302c;font-weight:700;
}
.hero-ghost{background:rgba(10,10,10,.35);border:1px solid rgba(255,255,255,.28);color:var(--text);backdrop-filter:blur(8px);}

/* ---------- owner setup ---------- */
.chips{display:flex;gap:10px;}
.chip{
  flex:1;height:48px;border-radius:12px;border:1px solid var(--line);background:var(--surface);
  display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:14px;color:var(--muted);
}
.chip.on{border-color:var(--teal);color:var(--teal);background:rgba(79,214,204,.07);}

.num-row{display:flex;align-items:center;gap:12px;padding:15px 0;border-top:1px solid var(--line-soft);}
.num-row:first-child{border-top:none;}
.num-row .num{font-family:var(--mono);font-size:17px;letter-spacing:1px;}
.num-row .meta{margin-left:auto;font-family:var(--mono);font-size:10px;letter-spacing:.18em;color:var(--teal);}
.num-row .radio{width:22px;height:22px;border-radius:50%;border:2px solid #3a4046;flex:none;}
.num-row .radio.on{border-color:var(--teal);display:flex;align-items:center;justify-content:center;}
.num-row .radio.on::after{content:"";width:10px;height:10px;border-radius:50%;background:var(--teal);}
.num-row.on .num{color:var(--teal);}

.ring-row{display:flex;align-items:center;gap:14px;padding:14px 0;border-top:1px solid var(--line-soft);}
.ring-row:first-child{border-top:none;}
.ring-row .ord{
  width:28px;height:28px;border-radius:50%;border:1px solid var(--line);flex:none;
  display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:12px;color:var(--muted);
}
.ring-row .ord.on{border-color:var(--teal);color:var(--teal);background:rgba(79,214,204,.08);}
.ring-row .t{font-size:15.5px;font-weight:600;}
.ring-row .s{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;color:var(--muted);margin-top:3px;text-transform:uppercase;}
.ring-row .grip{margin-left:auto;color:#3f464d;font-size:14px;letter-spacing:-2px;}
.ring-row.dim{opacity:.45;}

.pill.sent{background:rgba(242,163,60,.12);color:var(--orange);}
.sum-row .pill .dot{width:7px;height:7px;background:currentColor;}

.plan{background:var(--surface);border:1px solid rgba(79,214,204,.3);border-radius:16px;padding:18px;}
.plan-head{display:flex;align-items:flex-start;gap:12px;padding-bottom:12px;border-bottom:1px solid var(--line-soft);margin-bottom:4px;}
.plan-head .name{font-size:18px;font-weight:700;}
.plan-head .tag{font-family:var(--mono);font-size:9px;letter-spacing:.22em;color:var(--muted);text-transform:uppercase;margin-top:4px;}
.plan-head .price{margin-left:auto;font-size:26px;font-weight:700;color:var(--teal);letter-spacing:-.5px;}
.plan-head .price span{font-family:var(--mono);font-size:10px;letter-spacing:.1em;color:var(--muted);margin-left:2px;}
.plan-total{display:flex;align-items:center;justify-content:space-between;padding-top:14px;margin-top:8px;border-top:1px solid var(--line);}
.plan-total span{font-family:var(--mono);font-size:10px;letter-spacing:.215em;text-transform:uppercase;color:var(--muted);}
.plan-total b{font-size:20px;letter-spacing:-.3px;}

.bignum{
  background:var(--surface);border:1px solid var(--line);border-radius:16px;
  padding:20px;display:flex;flex-direction:column;align-items:center;gap:10px;
}
.bignum .n{font-family:var(--mono);font-size:28px;letter-spacing:1.5px;color:var(--teal);}

.upsell{
  background:linear-gradient(135deg, rgba(139,124,246,.10), rgba(139,124,246,.03));
  border:1px solid rgba(139,124,246,.3);border-radius:16px;padding:18px;
  display:flex;flex-direction:column;gap:10px;
}
.upsell .mono-label{color:var(--purple);}
.upsell .t{font-size:17px;font-weight:700;line-height:1.3;}
.upsell p{margin:0;font-size:14px;line-height:1.5;color:#b9bec9;}

.input.error{border-color:rgba(242,109,109,.55);}

/* ---------- 07 · TowDriver phone — replicated from code (globals.css tokens) ---------- */
.phone.code{background:#131417;--pc-surface:#191a1c;--pc-raised:#2e2f35;--pc-hair:#2e2f35;--pc-ink:#f4f5f8;--pc-muted:#9496a1;--pc-faint:#777a84;--pc-brand:#4db6c3;--pc-brandfg:#131417;--pc-red:#ef4444;}
.phone.code .body{padding:0;}
.pc-header{display:flex;align-items:center;justify-content:space-between;padding:16px 24px 0;}
.pc-id{display:flex;align-items:center;gap:12px;}
.pc-avatar{width:40px;height:40px;border-radius:50%;background:var(--pc-raised);display:flex;align-items:center;justify-content:center;font-weight:600;font-size:14px;color:var(--pc-ink);flex:none;}
.pc-id .n{font-size:14px;font-weight:500;color:var(--pc-ink);}
.pc-id .s{font-family:var(--mono);font-size:10px;letter-spacing:.12em;color:var(--pc-faint);margin-top:2px;}
.pc-dots{display:flex;flex-direction:column;gap:4px;align-items:center;padding:8px;}
.pc-dots i{width:3px;height:3px;border-radius:50%;background:var(--pc-faint);display:block;}
.pc-orb{position:relative;width:200px;height:200px;margin:0 auto;display:flex;align-items:center;justify-content:center;}
.pc-orb .ring{position:absolute;border-radius:50%;border:1px solid rgba(255,255,255,.05);}
.pc-orb .ring.r1{inset:0;}.pc-orb .ring.r2{inset:18px;}.pc-orb .ring.r3{inset:36px;}
.pc-orb.live .ring.r1{border-color:rgba(77,182,195,.15);}
.pc-orb.live .ring.r2{border-color:rgba(77,182,195,.10);}
.pc-orb.live .ring.r3{border-color:rgba(77,182,195,.08);}
.pc-core{width:116px;height:116px;border-radius:50%;border:1px solid var(--pc-hair);background:var(--pc-surface);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;}
.pc-orb.live .pc-core{border-color:rgba(77,182,195,.3);background:rgba(77,182,195,.1);}
.pc-core .dot{width:10px;height:10px;border-radius:50%;background:var(--pc-faint);}
.pc-core .st{font-family:var(--mono);font-size:10px;font-weight:600;letter-spacing:.18em;color:var(--pc-faint);}
.pc-orb.live .dot{background:var(--pc-brand);}
.pc-orb.live .st{color:var(--pc-brand);}
.pc-core .init{font-size:28px;font-weight:600;color:var(--pc-ink);}
.pc-ping{position:absolute;inset:0;border-radius:50%;border:1px solid rgba(77,182,195,.4);opacity:0;}
.pc-ping.p2{border-color:rgba(77,182,195,.25);}
@media (prefers-reduced-motion: no-preference){
  .pc-orb.live .pc-core{animation:pc-breathe 3.4s ease-in-out infinite;}
  .pc-ping{animation:pc-radar 2.6s cubic-bezier(0,0,.2,1) infinite;}
  .pc-ping.p2{animation-delay:1.3s;}
}
@keyframes pc-breathe{0%,100%{transform:scale(1);}50%{transform:scale(1.035);}}
@keyframes pc-radar{0%{transform:scale(.6);opacity:.9;}100%{transform:scale(1.15);opacity:0;}}
.pc-h1{font-size:30px;font-weight:700;line-height:1.15;letter-spacing:-.02em;color:var(--pc-ink);text-align:center;margin:0;}
.pc-p{font-size:15px;line-height:1.5;color:var(--pc-muted);text-align:center;margin:0 auto;max-width:280px;}
.pc-shift{display:flex;align-items:center;justify-content:space-between;border:1px solid var(--pc-hair);background:var(--pc-surface);border-radius:14px;padding:14px 18px;}
.pc-shift .k{font-family:var(--mono);font-size:10px;letter-spacing:.14em;color:var(--pc-faint);}
.pc-shift .v{font-size:14px;font-weight:500;color:var(--pc-ink);margin-top:2px;}
.pc-shift a{font-size:13px;color:var(--pc-brand);}
.pc-go{display:flex;align-items:center;justify-content:center;gap:14px;border-radius:999px;padding:24px 28px;border:none;cursor:pointer;font-family:var(--mono);font-size:14px;font-weight:700;letter-spacing:.18em;}
.pc-go.on{background:var(--pc-brand);color:var(--pc-brandfg);box-shadow:inset 0 1px 0 rgba(255,255,255,.3),0 24px 60px -16px rgba(77,182,195,.4);}
.pc-go.off{background:var(--pc-raised);border:1px solid var(--pc-hair);color:var(--pc-ink);}
.pc-go .d{width:10px;height:10px;border-radius:50%;background:var(--pc-brandfg);}
.pc-go.off .d{background:var(--pc-faint);}
.pc-toplabel{font-family:var(--mono);font-size:10px;font-weight:600;letter-spacing:.22em;color:var(--pc-brand);text-align:center;padding-top:20px;}
.pc-locpill{display:flex;align-items:center;gap:8px;border:1px solid var(--pc-hair);background:var(--pc-surface);border-radius:999px;padding:8px 14px;font-size:13px;color:var(--pc-muted);margin-top:12px;}
.pc-locpill svg{color:var(--pc-brand);flex:none;}
.pc-num{font-family:var(--mono);font-size:11px;letter-spacing:.1em;color:var(--pc-faint);}
.pc-cta-row{display:flex;gap:16px;padding:0 24px 40px;}
.pc-btn{display:flex;align-items:center;justify-content:center;gap:12px;border-radius:999px;padding:20px 0;font-family:var(--mono);font-size:14px;font-weight:700;letter-spacing:.16em;border:none;cursor:pointer;}
.pc-btn.decline{flex:1;background:var(--pc-raised);border:1px solid var(--pc-hair);color:var(--pc-ink);}
.pc-btn.accept{flex:1.4;background:var(--pc-brand);color:var(--pc-brandfg);box-shadow:inset 0 1px 0 rgba(255,255,255,.3),0 24px 60px -16px rgba(77,182,195,.45);}
.pc-onrow{display:flex;align-items:center;justify-content:space-between;padding:20px 24px 0;}
.pc-live{display:flex;align-items:center;gap:10px;font-family:var(--mono);font-size:10px;font-weight:600;letter-spacing:.18em;color:var(--pc-brand);}
.pc-live i{width:8px;height:8px;border-radius:50%;background:var(--pc-brand);}
.pc-timer{font-family:var(--mono);font-size:12px;color:var(--pc-muted);font-variant-numeric:tabular-nums;}
.pc-caller{display:flex;align-items:center;gap:12px;padding:16px 24px 0;}
.pc-caller .pc-avatar{width:36px;height:36px;font-size:13px;}
.pc-sec{display:flex;align-items:center;gap:8px;padding:16px 24px 0;}
.pc-sec span{font-family:var(--mono);font-size:9px;letter-spacing:.2em;color:var(--pc-faint);}
.pc-sec i{height:1px;flex:1;background:var(--pc-hair);}
.pc-trans{flex:1;min-height:0;overflow:hidden;display:flex;flex-direction:column;gap:12px;padding:16px 24px;}
.pc-bub{max-width:78%;background:var(--pc-surface);border-radius:16px;border-top-left-radius:6px;padding:10px 14px;font-size:13px;line-height:1.45;color:var(--pc-ink);}
.pc-aiL{margin-left:auto;max-width:82%;display:flex;gap:8px;align-items:flex-start;}
.pc-aiL b{font-family:var(--mono);font-size:9px;font-weight:600;letter-spacing:.14em;color:var(--pc-brand);margin-top:2px;}
.pc-aiL p{margin:0;font-size:12px;line-height:1.45;color:var(--pc-muted);font-style:italic;}
.pc-sheet{margin:0 24px 12px;flex:none;border:1px solid var(--pc-hair);background:var(--pc-surface);border-radius:16px;padding:10px 16px 14px;box-shadow:inset 0 1px 0 rgba(255,255,255,.07),0 -1px 24px -4px rgba(0,0,0,.55),0 28px 56px -16px rgba(0,0,0,.92);}
.pc-grab{width:36px;height:4px;border-radius:2px;background:rgba(119,122,132,.4);margin:0 auto 10px;}
.pc-sheet-hd{display:flex;align-items:center;justify-content:space-between;}
.pc-sheet-hd > span{font-family:var(--mono);font-size:9px;letter-spacing:.18em;color:var(--pc-faint);}
.pc-ready{display:flex;align-items:center;gap:6px;border:1px solid rgba(77,182,195,.25);background:rgba(77,182,195,.1);border-radius:999px;padding:4px 8px;font-family:var(--mono);font-size:9px;font-weight:600;letter-spacing:.14em;color:var(--pc-brand);}
.pc-frow{display:flex;align-items:center;gap:10px;margin-top:10px;font-size:13px;color:var(--pc-ink);}
.pc-frow .lane{width:16px;display:flex;justify-content:center;color:var(--pc-brand);flex:none;}
.pc-frow .k{width:34px;flex:none;font-family:var(--mono);font-size:10px;letter-spacing:.1em;color:var(--pc-faint);}
.pc-frow .est{margin-left:auto;border:1px solid var(--pc-hair);border-radius:4px;padding:2px 6px;font-family:var(--mono);font-size:8px;letter-spacing:.1em;color:var(--pc-faint);}
.pc-frow .sub{font-size:11px;color:var(--pc-muted);}
.pc-conf{margin-left:auto;font-family:var(--mono);font-size:9px;letter-spacing:.08em;color:var(--pc-brand);}
.pc-looks{display:flex;align-items:center;justify-content:space-between;margin-top:12px;padding-top:12px;border-top:1px solid var(--pc-hair);}
.pc-looks > span{font-size:13px;color:var(--pc-muted);}
.pc-looks .g{display:flex;gap:10px;}
.pc-chipbtn{display:flex;align-items:center;gap:8px;min-height:44px;padding:0 16px;border-radius:999px;font-size:14px;border:1px solid var(--pc-hair);background:#131417;color:var(--pc-ink);font-weight:500;cursor:pointer;}
.pc-chipbtn.yes{border-color:rgba(77,182,195,.3);background:rgba(77,182,195,.1);color:var(--pc-brand);font-weight:600;}
.pc-end{margin:0 24px 36px;flex:none;display:flex;align-items:center;justify-content:center;gap:12px;border-radius:999px;padding:20px 0;border:1px solid rgba(239,68,68,.4);background:rgba(239,68,68,.1);font-family:var(--mono);font-size:14px;font-weight:700;letter-spacing:.18em;color:var(--pc-red);cursor:pointer;}
.pc-end svg{transform:rotate(135deg);}
.pc-done-ic{width:56px;height:56px;border-radius:50%;background:rgba(77,182,195,.1);box-shadow:inset 0 0 0 1px rgba(77,182,195,.3);display:flex;align-items:center;justify-content:center;color:var(--pc-brand);margin:0 auto;}
.pc-card{margin:0 24px;border:1px solid var(--pc-hair);background:var(--pc-surface);border-radius:14px;}
.pc-card-hd{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--pc-hair);}
.pc-svc{background:rgba(77,182,195,.1);color:var(--pc-brand);border-radius:999px;padding:4px 12px;font-family:var(--mono);font-size:10px;font-weight:600;letter-spacing:.12em;}
.pc-grid{display:grid;grid-template-columns:68px 1fr;gap:12px;padding:16px 18px;}
.pc-grid .k{font-family:var(--mono);font-size:10px;letter-spacing:.1em;color:var(--pc-faint);line-height:19px;}
.pc-grid .v{font-size:13px;color:var(--pc-ink);}
.pc-discard{background:none;border:none;font-size:13px;color:var(--pc-faint);text-align:center;padding:4px 0;cursor:pointer;}
.pc-stack{display:flex;flex-direction:column;gap:12px;padding:0 24px 36px;}

/* contact picker */
.contact-row{display:flex;align-items:center;gap:13px;padding:13px 0;border-top:1px solid var(--line-soft);}
.contact-row:first-child{border-top:none;}
.contact-row .t{font-size:15.5px;font-weight:600;}
.contact-row .s{font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;color:var(--muted);margin-top:3px;}
.cbox{width:24px;height:24px;border-radius:8px;border:2px solid #3a4046;flex:none;display:flex;align-items:center;justify-content:center;}
.cbox.on{border-color:var(--teal);background:var(--teal);color:#06302c;}
.contact-row.on .t{color:var(--teal);}

/* ---------- driver ux ---------- */
.listen{display:flex;flex-direction:column;align-items:center;gap:14px;}
.wave.dim{height:24px;gap:4px;}
.wave.dim i{background:rgba(79,214,204,.5);width:3px;}
.stat-strip{display:flex;border:1px solid var(--line);border-radius:16px;background:var(--surface);}
.stat-strip > div{flex:1;display:flex;flex-direction:column;align-items:center;gap:5px;padding:16px 0;border-left:1px solid var(--line-soft);}
.stat-strip > div:first-child{border-left:none;}
.stat-strip b{font-size:20px;letter-spacing:-.3px;}
.stat-strip span{font-family:var(--mono);font-size:9px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);}

.phone.incoming{background:radial-gradient(120% 60% at 50% 0%, rgba(79,214,204,.12), transparent 55%), #0a0a0a;}
.inc-head{text-align:center;}
.inc-timer{font-family:var(--mono);font-size:30px;letter-spacing:2px;color:var(--teal);margin-top:10px;}
.inc-actions{display:flex;justify-content:space-between;align-items:flex-end;padding:0 10px;}
.inc-act{display:flex;flex-direction:column;align-items:center;gap:12px;}
.round{width:74px;height:74px;border-radius:50%;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;}
.round.green{background:var(--green);color:#03301c;box-shadow:0 0 50px rgba(53,196,129,.4);}
.round.red{background:var(--red);color:#3d0d0d;}
.round.red svg{transform:rotate(135deg);}
.round.text{background:var(--surface2);border:1px solid var(--line);color:var(--text);width:60px;height:60px;}
.round.sm{width:48px;height:48px;}
.round.ghost{background:transparent;border:1px solid var(--line);color:var(--muted);}
.call-strip{display:flex;justify-content:center;gap:14px;padding-top:14px;}

/* map */
.map{position:relative;flex:1;min-height:0;background:#101418;overflow:hidden;}
.map-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.03) 1px,transparent 1px);background-size:44px 44px;}
.road{position:absolute;background:#1d242b;}
.road.h{left:0;right:0;height:8px;}
.road.v{top:0;bottom:0;width:8px;}
.route{position:absolute;inset:0;width:100%;height:100%;}
.pin{position:absolute;transform:translate(-50%,-50%);}
.pin.me{width:16px;height:16px;border-radius:50%;background:var(--teal);border:3px solid #0a0a0a;box-shadow:0 0 0 6px rgba(79,214,204,.2);}
.pin.job{width:26px;height:26px;border-radius:50% 50% 50% 4px;background:var(--orange);transform:translate(-50%,-90%) rotate(-45deg);display:flex;align-items:center;justify-content:center;}
.pin.job span{width:9px;height:9px;border-radius:50%;background:#3d2503;}
.map-eta{position:absolute;top:14px;left:14px;background:rgba(10,12,14,.85);border:1px solid var(--line);border-radius:12px;padding:10px 14px;font-family:var(--mono);font-size:10px;letter-spacing:.12em;color:var(--muted);display:flex;align-items:center;gap:10px;}
.map-eta b{font-size:16px;letter-spacing:0;color:var(--teal);}

/* bottom sheet */
.sheet{flex:none;background:var(--bg);border-top:1px solid var(--line);border-radius:22px 22px 0 0;margin-top:-20px;position:relative;padding-bottom:28px;}
.sheet-grab{width:44px;height:4px;border-radius:2px;background:#3a4046;margin:10px auto 4px;}
.sheet-actions{display:flex;gap:12px;padding:16px 24px 0;}

/* job stepper */
.job-stepper{display:flex;align-items:center;padding:12px 24px 16px;}
.jstep{display:flex;flex-direction:column;align-items:center;gap:7px;flex:none;}
.jstep i{width:14px;height:14px;border-radius:50%;border:2px solid #3a4046;display:block;}
.jstep span{font-family:var(--mono);font-size:8.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--faint);white-space:nowrap;}
.jstep.done i{background:var(--green);border-color:var(--green);}
.jstep.done span{color:var(--muted);}
.jstep.on i{border-color:var(--teal);background:rgba(79,214,204,.2);box-shadow:0 0 12px rgba(79,214,204,.5);}
.jstep.on span{color:var(--teal);}
.jline{flex:1;height:2px;background:#2a2f34;margin:0 6px 18px;}
.jline.on{background:var(--green);}

/* profile + social */
.btn.social{gap:12px;font-size:12px;}
.sync-row{display:flex;gap:12px;}
.profile-photo{display:flex;align-items:center;gap:18px;}
.pp-slot{width:110px;height:110px;flex:none;position:relative;border-radius:50%;}
.pp-slot::after{content:"";position:absolute;inset:-5px;border-radius:50%;border:1.5px dashed rgba(255,255,255,.22);pointer-events:none;}
.pp-slot:has(image-slot[data-filled])::after{border-style:solid;border-color:var(--teal);}
.pp-slot image-slot{color:rgba(255,255,255,.6);}
.pp-req p{margin:6px 0 0;font-size:13.5px;line-height:1.5;color:var(--muted);}
