
/* ══ APP SHELL v2 (2026-10-01) ═══════════════════════════════════════════════
   Loads last, so it wins over vb-design-tokens and vb-surfaces without
   editing them. What it adds:
     - one hue per stage of the operator journey (Find, Plan, Win, Run, Grow,
       Learn, Account). The hue colours the sidebar icon chip, the active row,
       the home dashboard tiles and the stage strip, so colour carries meaning:
       you can tell where you are in the journey by colour alone.
     - the brand green stays the single action colour (buttons, links).
     - softer radii (8 controls / 12 surfaces / 16 hero panels), tinted
       shadows, 200ms ease-out motion, press feedback on everything clickable.
   Light accent is #067a55 (5.35:1 on white) so accent text passes AA.
   No backslashes in this block: it lives in a server template literal. */
:root{
  --hue-home:#00e5a0;--hue-find:#38bdf8;--hue-plan:#a78bfa;--hue-win:#fbbf24;
  --hue-run:#2dd4bf;--hue-grow:#fb7185;--hue-learn:#818cf8;--hue-acct:#94a3b8;
  --r-sm:8px;--r-md:12px;--r-lg:16px;--rs:8px;--r:12px;
  --ease-out:cubic-bezier(.16,1,.3,1);
  --sh-1:0 1px 2px rgba(0,0,0,.3);
  --sh-2:0 1px 2px rgba(0,0,0,.25),0 12px 28px -8px rgba(0,0,0,.45);
}
html[data-theme="light"] body,body.light{
  --bg:#f4f6fa;--s1:#ffffff;--s2:#f3f5f9;--s3:#e9edf3;--s4:#dfe4ec;
  --b1:#e4e8ef;--b2:#d3d9e2;--b3:#b4bfcd;
  --tx:#0d1526;--tx2:#475467;--tx3:#667085;
  --accent:#067a55;--adim:rgba(6,122,85,.08);--abrd:rgba(6,122,85,.28);--on-accent:#ffffff;
  --focus:0 0 0 3px rgba(6,122,85,.22);
  --hue-home:#067a55;--hue-find:#0284c7;--hue-plan:#7c3aed;--hue-win:#d97706;
  --hue-run:#0d9488;--hue-grow:#e11d48;--hue-learn:#4f46e5;--hue-acct:#64748b;
  --sh-1:0 1px 2px rgba(16,24,40,.05),0 1px 3px rgba(16,24,40,.06);
  --sh-2:0 1px 2px rgba(16,24,40,.04),0 12px 28px -8px rgba(16,24,40,.16);
  --lift:var(--sh-1);--lift-hover:var(--sh-2);
}
body.light .btn.pr .vb-cost{background:rgba(255,255,255,.18);color:#fff;}

/* ── Sidebar: grouped by journey stage ── */
@media (min-width:769px){
  body:not(.mobile-view) .sidebar{width:232px;}
  body:not(.mobile-view) .main{margin-left:232px;}
}
.sidebar{background:var(--s1);}
.nav{padding:2px 10px 18px;}
.nav-grp{--h:var(--hue-acct);margin-top:6px;}
.nav-grp[data-stage="home"]{--h:var(--hue-home);}
.nav-grp[data-stage="find"]{--h:var(--hue-find);}
.nav-grp[data-stage="plan"]{--h:var(--hue-plan);}
.nav-grp[data-stage="win"]{--h:var(--hue-win);}
.nav-grp[data-stage="run"]{--h:var(--hue-run);}
.nav-grp[data-stage="grow"]{--h:var(--hue-grow);}
.nav-grp[data-stage="learn"]{--h:var(--hue-learn);}
.nav-grp[data-stage="acct"]{--h:var(--hue-acct);}
.nav-grp .nsec{display:flex;align-items:center;gap:8px;padding:12px 10px 6px;font-size:var(--fs-xs);font-weight:600;letter-spacing:0;text-transform:none;color:var(--tx3);}
.nav-grp .nsec::after{content:'';flex:1;height:1px;background:var(--b1);}
.nav-grp .nsec.active-group{color:var(--tx2);}
.ni{min-height:38px;gap:10px;padding:0 8px;margin-bottom:2px;border-radius:10px;font-weight:500;transition:background .2s var(--ease-out),color .2s var(--ease-out),transform .2s var(--ease-out);}
.ni:active{transform:scale(.98);}
.ni .ni-ic{width:28px;height:28px;border-radius:8px;flex-shrink:0;color:var(--h,var(--accent));background:color-mix(in srgb,var(--h,var(--accent)) 12%,transparent);transition:background .2s var(--ease-out),color .2s var(--ease-out),box-shadow .2s var(--ease-out);}
.ni .ni-ic .vb-ic{width:16px;height:16px;}
.ni:hover{background:var(--s2);color:var(--tx);}
.ni:hover .ni-ic{color:var(--h,var(--accent));background:color-mix(in srgb,var(--h,var(--accent)) 20%,transparent);}
.ni.on{background:color-mix(in srgb,var(--h,var(--accent)) 10%,transparent);color:var(--tx);font-weight:600;border-color:transparent;}
.ni.on .ni-ic{background:var(--h,var(--accent));color:#fff;box-shadow:0 6px 14px -6px color-mix(in srgb,var(--h,var(--accent)) 70%,transparent);}
.ni.on::before{left:-10px;height:20px;width:3px;background:var(--h,var(--accent));}
.ni-badge{margin-left:auto;display:inline-flex;align-items:center;height:20px;padding:0 7px;border-radius:999px;font-size:var(--fs-2xs);font-weight:600;font-variant-numeric:tabular-nums;color:var(--h,var(--accent));background:color-mix(in srgb,var(--h,var(--accent)) 12%,transparent);}
.nav-more .ni-ic{background:transparent!important;color:var(--tx3)!important;box-shadow:none!important;}

/* Sidebar footer: credits as a progress meter you want to keep full */
.sidebar-btm{padding:12px!important;}
.trial-box{background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 10%,var(--s1)),var(--s1));border:1px solid var(--abrd);border-radius:var(--r-md);}
.tb{height:6px;border-radius:999px;background:var(--s3);overflow:hidden;}
.tf{height:6px;border-radius:999px;background:linear-gradient(90deg,var(--accent),var(--hue-run));transition:width .5s var(--ease-out);}
.upg-btn{border-radius:10px!important;min-height:38px;}

/* ── Topbar ── */
.topbar{height:60px;box-shadow:0 1px 0 var(--b1);border-bottom:none;}
.pgt{font-size:18px;font-weight:650;letter-spacing:-.015em;}

/* ── Surfaces: cards lift on hover, press on click ── */
.stat,.vbsec,.vb-card{border-radius:var(--r-md);box-shadow:var(--sh-1);}
.stat{transition:transform .2s var(--ease-out),box-shadow .2s var(--ease-out);}
.stat:hover{box-shadow:var(--sh-2);}
.sv{font-variant-numeric:tabular-nums;letter-spacing:-.02em;}
.btn,.s-btn,.upg-btn,.send-btn,.csend{transition:background .2s var(--ease-out),border-color .2s var(--ease-out),color .2s var(--ease-out),transform .15s var(--ease-out),box-shadow .2s var(--ease-out);}
.btn:active,.s-btn:active,.upg-btn:active,.send-btn:active,.csend:active{transform:scale(.98);}
.btn.pr,.s-btn,.upg-btn{box-shadow:0 1px 2px rgba(16,24,40,.1),0 6px 16px -8px color-mix(in srgb,var(--accent) 70%,transparent);}
.btn.pr:hover,.s-btn:hover,.upg-btn:hover{transform:translateY(-1px);}
.fi{animation:vbFadeUp .32s var(--ease-out);}
@keyframes vbFadeUp{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

/* ── Shared page header: title, one-line purpose, actions ── */
.vb-ph{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--sp-4);flex-wrap:wrap;margin-bottom:var(--sp-6);}
.vb-ph-t{font-size:26px;line-height:1.15;font-weight:650;letter-spacing:-.02em;color:var(--tx);}
.vb-ph-s{margin-top:6px;font-size:var(--fs-md);color:var(--tx2);max-width:62ch;line-height:1.5;}

/* ── Shared empty state ── */
.vb-empty{display:flex;flex-direction:column;align-items:flex-start;gap:10px;padding:var(--sp-6);border:1px dashed var(--b2);border-radius:var(--r-md);background:var(--s1);}
.vb-empty-t{font-size:var(--fs-lg);font-weight:600;color:var(--tx);}
.vb-empty-s{font-size:var(--fs-sm);color:var(--tx2);max-width:56ch;line-height:1.5;}

@media (prefers-reduced-motion:reduce){
  .fi,.ni,.stat,.btn,.s-btn,.upg-btn,.tf{animation:none!important;transition:none!important;}
}
/* ── Stage strip: every tool in the current stage, one click apart ── */
.vb-stage-strip{display:flex;align-items:center;gap:6px;margin:0 0 var(--sp-4);padding:6px;background:var(--s1);border:1px solid var(--b1);border-radius:14px;box-shadow:var(--sh-1);overflow-x:auto;scrollbar-width:none;}
.vb-stage-strip[hidden]{display:none;}
.vb-stage-strip::-webkit-scrollbar{display:none;}
.vb-ss-lbl{display:inline-flex;align-items:center;gap:8px;padding:0 10px 0 6px;margin-right:2px;font-size:var(--fs-xs);font-weight:600;color:var(--tx2);white-space:nowrap;cursor:default;border-right:1px solid var(--b1);}
.vb-ss-lbl .vb-ic{width:14px;height:14px;}
.vb-ss-pill{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 12px;border-radius:9px;border:1px solid transparent;background:transparent;color:var(--tx2);font-size:var(--fs-sm);font-weight:500;white-space:nowrap;cursor:pointer;transition:background .2s var(--ease-out),color .2s var(--ease-out),transform .15s var(--ease-out);}
.vb-ss-pill:hover{background:var(--s2);color:var(--tx);}
.vb-ss-pill:active{transform:scale(.97);}
.vb-ss-pill.on{background:color-mix(in srgb,var(--h) 12%,transparent);color:var(--tx);font-weight:600;}
.vb-ss-pill:focus-visible{outline:none;box-shadow:var(--focus);}

/* ── Sidebar progress meter (always visible, opens Home) ── */
.vb-lvl{display:block;width:100%;text-align:left;margin-bottom:8px;padding:10px 12px;border-radius:var(--r-md);border:1px solid var(--b1);background:var(--s1);cursor:pointer;transition:border-color .2s var(--ease-out),box-shadow .2s var(--ease-out);}
.vb-lvl:hover{border-color:var(--b2);box-shadow:var(--sh-1);}
.vb-lvl-top{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:var(--fs-xs);color:var(--tx2);}
.vb-lvl-top b{color:var(--tx);font-weight:650;}
.vb-lvl-bar{height:6px;margin-top:8px;border-radius:999px;background:var(--s3);overflow:hidden;}
.vb-lvl-fill{height:100%;border-radius:999px;background:var(--accent);transition:width .6s var(--ease-out);}

/* ── HOME ── */
.vb-home{max-width:1240px;}
.vb-home-hero{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:var(--sp-4);margin-bottom:var(--sp-4);}
.vb-hcard{position:relative;background:var(--s1);border:1px solid var(--b1);border-radius:var(--r-lg);box-shadow:var(--sh-1);padding:22px 24px;overflow:hidden;}
.vb-next{--h:var(--hue-find);background:radial-gradient(120% 140% at 100% 0%,color-mix(in srgb,var(--h) 14%,var(--s1)) 0%,var(--s1) 55%);}
.vb-next-k{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-xs);font-weight:600;color:var(--h);}
.vb-next-t{margin-top:10px;font-size:26px;line-height:1.15;font-weight:650;letter-spacing:-.02em;color:var(--tx);max-width:24ch;}
.vb-next-d{margin-top:8px;font-size:var(--fs-md);line-height:1.55;color:var(--tx2);max-width:56ch;}
.vb-next-act{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:18px;}
.vb-cta{display:inline-flex;align-items:center;gap:10px;height:42px;padding:0 8px 0 18px;border:none;border-radius:999px;background:var(--accent);color:var(--on-accent);font-size:var(--fs-md);font-weight:600;cursor:pointer;box-shadow:0 1px 2px rgba(16,24,40,.12),0 10px 22px -10px color-mix(in srgb,var(--accent) 80%,transparent);transition:transform .2s var(--ease-out),filter .2s var(--ease-out);}
.vb-cta:hover{transform:translateY(-1px);filter:brightness(1.05);}
.vb-cta:active{transform:scale(.98);}
.vb-cta-ic{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:999px;background:rgba(255,255,255,.18);transition:transform .2s var(--ease-out);}
.vb-cta:hover .vb-cta-ic{transform:translateX(2px);}
.vb-link{background:none;border:none;padding:0;color:var(--tx2);font-size:var(--fs-sm);font-weight:500;cursor:pointer;text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--b3);}
.vb-link:hover{color:var(--tx);}
.vb-lvlcard{display:flex;align-items:center;gap:18px;}
.vb-ring{--p:0;flex-shrink:0;width:96px;height:96px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--accent) calc(var(--p)*1%),var(--s3) 0);}
.vb-ring-in{width:76px;height:76px;border-radius:50%;background:var(--s1);display:grid;place-items:center;text-align:center;}
.vb-ring-n{font-size:22px;font-weight:700;letter-spacing:-.02em;color:var(--tx);font-variant-numeric:tabular-nums;line-height:1;}
.vb-ring-s{font-size:var(--fs-2xs);color:var(--tx3);margin-top:2px;}
.vb-lvl-name{font-size:20px;font-weight:650;letter-spacing:-.015em;color:var(--tx);}
.vb-lvl-sub{margin-top:4px;font-size:var(--fs-sm);color:var(--tx2);line-height:1.5;}
.vb-streak{display:inline-flex;align-items:center;gap:6px;margin-top:10px;height:28px;padding:0 10px;border-radius:999px;background:color-mix(in srgb,var(--hue-win) 14%,transparent);color:var(--tx);font-size:var(--fs-xs);font-weight:600;}
.vb-streak .vb-ic{color:var(--hue-win);width:14px;height:14px;}
.vb-xp-next{margin-top:8px;font-size:var(--fs-xs);color:var(--tx3);line-height:1.5;max-width:60ch;}
.vb-xp-next b{color:var(--tx2);font-weight:600;}
.vb-xp-bm{display:inline-flex;align-items:center;gap:6px;margin-top:10px;margin-left:8px;height:28px;padding:0 10px;border-radius:999px;background:color-mix(in srgb,var(--hue-run) 14%,transparent);color:var(--tx);font-size:var(--fs-xs);font-weight:600;white-space:nowrap;}
.vb-xp-bm .vb-ic{color:var(--hue-run);width:14px;height:14px;}
.vb-xp-bm small{color:var(--tx3);font-weight:500;white-space:normal;}
.vb-xp-bm[hidden],.vb-xp-next[hidden],.vb-ach[hidden],#vb-bucks-chip[hidden]{display:none;}
/* Header XP bar (2026-10-11): calm, one colour, centred in the top bar. */
.vb-hxp{display:flex;align-items:center;gap:10px;flex:0 1 380px;max-width:380px;min-width:120px;margin:0 auto;padding:6px 12px;border-radius:999px;border:1px solid var(--b1);background:var(--s1);color:var(--tx2);font:600 12px/1 var(--font-ui);cursor:pointer;}
.vb-hxp[hidden]{display:none;}
.vb-hxp:hover{border-color:var(--b2);}
.vb-hxp:focus-visible{outline:none;box-shadow:var(--focus);}
.vb-hxp-lv{white-space:nowrap;color:var(--tx2);}
.vb-hxp-lv b{color:var(--tx);font-weight:700;font-variant-numeric:tabular-nums;}
.vb-hxp-bar{flex:1;min-width:60px;height:8px;border-radius:999px;background:var(--s3);overflow:hidden;}
.vb-hxp-bar i{display:block;height:100%;width:0;border-radius:999px;background:var(--accent);transition:width .6s var(--ease-out);}
.vb-hxp-n{white-space:nowrap;color:var(--tx2);font-variant-numeric:tabular-nums;}
.topbar{gap:12px;}
@media (min-width:769px){ .topbar .tcs{flex-wrap:nowrap;flex-shrink:0;} }
@media (max-width:1440px){ .topbar .tb-lbl{display:none;} }
@media (max-width:768px){ .vb-hxp{flex:1 1 auto;max-width:none;min-width:0;padding:5px 10px;gap:8px;} .vb-hxp-n{display:none;} body.vb-hxp-on .topbar > div:first-child{flex:0 0 auto;} body.vb-hxp-on .topbar .pgt{display:none;} }
@media (max-width:480px){ .vb-hxp-w{display:none;} .vb-hxp-lv b::before{content:"Lv ";font-weight:600;color:var(--tx2);} .vb-hxp-bar{min-width:36px;} }
@media (prefers-reduced-motion:reduce){ .vb-hxp-bar i{transition:none;} }
/* The header bar is the level display; the sidebar copy hides once it shows. */
body.vb-hxp-on .sidebar-btm .vb-lvl{display:none;}
.vb-home-proof{font-size:var(--fs-sm);color:var(--tx2);margin:0 0 var(--sp-3);}
.vb-home-proof strong{color:var(--tx);}
/* ── SUCCESS COLOURS (2026-10-11, the owner: "green on green"). One pairing
   for every confirmation, verified badge and success state: dark green ink on
   a pale green tint (light theme, #065f46 on #ecfdf5 = 7.3:1) or mint ink on a
   deep tint (dark theme, #6ee7b7 on ~#0c2a24 = 10:1). Solid badges with a
   white mark use --ok-solid (#047857, white on it = 5.5:1). */
:root{--ok-ink:#6ee7b7;--ok-bg:rgba(16,185,129,.16);--ok-bd:rgba(110,231,183,.38);--ok-solid:#047857;}
html[data-theme="light"] body,body.light{--ok-ink:#065f46;--ok-bg:#ecfdf5;--ok-bd:#a7f3d0;--ok-solid:#047857;--green:#047857;}
:root{--lf-ok:var(--ok-ink);--lf-ok-bg:var(--ok-bg);--lf-ok-bd:var(--ok-bd);}
html[data-theme="light"] body,body.light{--lf-ok:var(--ok-ink);--lf-ok-bg:var(--ok-bg);--lf-ok-bd:var(--ok-bd);}
.lf-burst,.lf-has-contact.on .lf-chk{background:var(--ok-solid)!important;}
.vb-delta.up,.vb-status.live{background:var(--ok-bg)!important;color:var(--ok-ink)!important;}
.vb-ok-badge{display:inline-block;font-size:11px;line-height:1.4;padding:1px 7px;border-radius:8px;background:var(--ok-bg);color:var(--ok-ink);border:1px solid var(--ok-bd);font-weight:700;}
.vb-ok-text{color:var(--ok-ink);}
/* Plan hues (UX audit B2, 2026-10-11): one pair for /pricing, the plan modal,
   the checkout confirm and Referrals. Dark text on the light dark-theme tints. */
:root{--plan-starter:#1d4ed8;--plan-pro:#6d28d9;--plan-on:#ffffff;--lime-ink:#4d7c0f;--primary:#047857;--on-primary:#ffffff;--primary-ink:#047857;}
html:not([data-theme="light"]) body:not(.light){--plan-starter:#60a5fa;--plan-pro:#c4b5fd;--plan-on:#0b1020;--lime-ink:#a3e635;--primary:#00e5a0;--on-primary:#031a10;--primary-ink:#34d399;}
/* One primary green (review 2026-10-11): #047857 in light for every primary
   action; the light accent follows it. */
html[data-theme="light"] body,body.light{--blue:#0369a1;--accent:#047857;--adim:rgba(4,120,87,.08);--abrd:rgba(4,120,87,.28);--hue-find:#0369a1;--hue-home:#047857;--hue-run:#0f766e;--hue-plan:#6d28d9;--hue-win:#b45309;--hue-grow:#be123c;--sec-home-fill:#047857;--sec-home-ink:#047857;}
#tab-leads .lf-radius button.on,#tab-map .lf-radius button.on{background:var(--primary);border-color:var(--primary);color:var(--on-primary);}
.sidebar .nav-grp .nsec{color:var(--tx2)!important;}
/* Top bar never scrolls sideways (769-1180px). */
.topbar{min-width:0;}
#user-email-display{max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
@media (max-width:1300px){ .vb-hxp-n{display:none;} }
@media (max-width:1180px){ .vb-hxp{min-width:0;flex:0 0 auto;} .vb-hxp-bar{display:none;} }
@media (min-width:769px) and (max-width:1180px){ .topbar > div:first-child{min-width:0;flex:1 1 auto;} .topbar .pgt{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;} #zip-chip,#found-chip,#mobile-btn{display:none!important;} }
@media (min-width:769px) and (max-width:960px){ #help-tour-btn{display:none!important;} }
@media (max-width:640px){ .vb-st-pill,.vb-cx-how summary,.vb-cx-card button,.vb-cx-card .btn.vb-cx-btn,.btn.vb-cx-btn,.vb-hxp{min-height:44px;} }
/* B1: neutral info row for "not charged" style notices. */
.vb-info-note{font-size:12.5px;line-height:1.5;color:var(--tx2);background:var(--s2);border-left:3px solid var(--accent);border-radius:var(--rs);padding:8px 10px;margin-bottom:6px;}
.vb-info-note b{color:var(--ok-ink);font-weight:700;}
/* F4: every native file input matches the app (drop zones cover CSV/DEX). */
input[type=file]{font-size:13px;color:var(--tx2);max-width:100%;}
input[type=file]::file-selector-button{font:600 13px/1 var(--font-ui);padding:8px 14px;margin-right:12px;border:1px solid var(--b2);border-radius:8px;background:var(--s2);color:var(--tx);cursor:pointer;}
input[type=file]::file-selector-button:hover{background:var(--s3);}
/* F19 / B5: floaters never sit on top of a modal; bigger tap target. */
body:has(.ov.open) .vbhelp-fab,body:has(.ov.open) #vb-share-fab{display:none!important;}
@media (max-width:768px){ .hamburger{width:44px;height:44px;} }
/* Wallet chip + page (2026-10-12) */
.vb-steps{margin:8px 0 0;padding:0;list-style:none;counter-reset:vbs;display:flex;flex-direction:column;gap:8px}
.vb-steps li{counter-increment:vbs;display:flex;align-items:center;gap:10px;font-size:14px;color:var(--tx2)}
.vb-steps li::before{content:counter(vbs);flex:0 0 24px;height:24px;border-radius:50%;background:var(--accent);color:#04120d;font-weight:800;font-size:13px;display:inline-flex;align-items:center;justify-content:center}
.vb-steps b{color:var(--tx)}
.vb-wchip{display:inline-flex;align-items:center;gap:9px;padding:4px 12px 4px 9px;border:1.5px solid var(--abrd);border-radius:12px;background:var(--adim);cursor:pointer;line-height:1.15;text-align:left;font-family:inherit;color:var(--tx);max-width:100%}
.vb-wchip:hover{border-color:var(--accent)}
.vb-wchip:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.vb-wchip-ic{display:inline-flex;color:var(--accent)}
.vb-wchip-t{display:flex;flex-direction:column;gap:1px}
.vb-wchip-l1{display:flex;align-items:baseline;gap:7px}
.vb-wchip-cnt{font-size:11px;font-weight:500;color:var(--tx2);white-space:nowrap}
.vb-wchip-t b{font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--tx2);font-weight:700}
.vb-wchip-amt{font-size:14px;font-weight:700;white-space:nowrap;font-variant-numeric:tabular-nums}
.vb-wchip.vb-bucks-claim::after{content:"";width:8px;height:8px;border-radius:50%;background:#f59e0b;display:inline-block}
.vb-wchip{min-height:32px}
.vb-wchip-s{display:none;font-size:12.5px;font-weight:700;font-variant-numeric:tabular-nums}
@media (max-width:960px){ .vb-wchip-t{display:none} .vb-wchip-s{display:inline} .vb-wchip{padding:5px 9px;border-radius:10px} .vb-wchip.vb-bucks-claim::after{display:none} #vb-bucks-chip{display:inline-flex!important} #vb-bucks-chip[hidden]{display:none!important} }
.vbw-ov{position:fixed;inset:0;background:rgba(0,0,0,.62);z-index:9300;display:flex;align-items:flex-start;justify-content:center;padding:24px 16px;overflow-y:auto;backdrop-filter:blur(3px)}
.vbw-card{--c-amber:#fbbf24;--c-blue:#60a5fa;--c-purple:#a78bfa;--c-pink:#f472b6;--c-teal:#2dd4bf;--c-indigo:#818cf8;--c-violet:#c084fc;--c-green:#34d399;background:var(--s1);border:1px solid var(--b2);border-radius:16px;max-width:760px;width:100%;padding:22px;color:var(--tx);box-shadow:0 24px 60px rgba(0,0,0,.45)}
body.light .vbw-card,html[data-theme="light"] .vbw-card{--c-amber:#9a3f06;--c-blue:#1d4ed8;--c-purple:#6d28d9;--c-pink:#be185d;--c-teal:#0f766e;--c-indigo:#4338ca;--c-violet:#7e22ce;--c-green:#065f46}
.vbw-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}
.vbw-title{margin:0;font-family:"Space Grotesk",Inter,sans-serif;font-size:clamp(34px,7vw,52px);font-weight:800;letter-spacing:-.02em;line-height:1.05;background:none;-webkit-background-clip:text;background-clip:text;color:var(--tx);-webkit-text-fill-color:currentColor;}
.vbw-title.sm{font-size:30px}
.vbw-x{border:1px solid var(--b2);background:var(--s2);color:var(--tx);border-radius:10px;width:44px;height:44px;font-size:20px;cursor:pointer;line-height:1}
.vbw-msg{min-height:0;font-size:13.5px;font-weight:600;color:var(--c-green)}
.vbw-msg:not(:empty){margin:0 0 12px;padding:10px 12px;border-radius:10px;background:color-mix(in srgb,var(--c-green) 12%,transparent)}
.vbw-msg.bad{color:var(--red,#ef4444);background:color-mix(in srgb,#ef4444 12%,transparent)}
.vbw-bal{border-radius:16px;padding:20px 22px;background:linear-gradient(135deg,rgba(16,185,129,.22),rgba(6,182,212,.14));border:1px solid rgba(16,185,129,.4);margin-bottom:14px}
.vbw-k{font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.vbw-green{color:var(--c-green)}
.vbw-amt{font-family:"Space Grotesk",Inter,sans-serif;font-size:44px;font-weight:700;line-height:1.05;margin-top:4px;font-variant-numeric:tabular-nums;word-break:break-all}
.vbw-unit{font-size:16px;font-weight:700;color:var(--tx2);margin-bottom:10px}
.vbw-pills{display:flex;gap:8px;flex-wrap:wrap}
.vbw-pill{font-size:12px;font-weight:600;padding:4px 10px;border-radius:999px;border:1px solid var(--b2);background:var(--s1);color:var(--tx2)}
.vbw-warn{margin-top:10px;font-size:12.5px;font-weight:600;color:var(--c-amber)}
.vbw-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px}
.vbw-sec{border:1px solid var(--b1);border-radius:14px;padding:16px 18px;background:var(--s2);margin-bottom:14px}
.vbw-grid .vbw-sec{margin-bottom:0}
.vbw-h{margin:0 0 12px;font-family:"Space Grotesk",Inter,sans-serif;font-size:18px;font-weight:700}
.vbw-h.violet{color:var(--c-violet)}.vbw-h.indigo{color:var(--c-indigo)}.vbw-h.amber{color:var(--c-amber)}.vbw-h.blue{color:var(--c-blue)}.vbw-h.purple{color:var(--c-purple)}.vbw-h.pink{color:var(--c-pink)}.vbw-h.teal{color:var(--c-teal)}
.vbw-note{font-size:12.5px;color:var(--tx2);margin-top:10px;line-height:1.5}
.vbw-wheel-wrap{position:relative;width:min(280px,100%);aspect-ratio:1;margin:6px auto 14px}
.vbw-wheel{width:100%;height:100%;border-radius:50%;box-shadow:0 8px 28px rgba(0,0,0,.35),0 0 0 6px #fbbf24;will-change:transform}
.vbw-pointer{position:absolute;top:-12px;left:50%;transform:translateX(-50%);z-index:2;width:0;height:0;border-left:13px solid transparent;border-right:13px solid transparent;border-top:24px solid #ef4444;filter:drop-shadow(0 2px 2px rgba(0,0,0,.4))}
.vbw-done .vbw-wheel{opacity:.85}
.vbw-wheel text{paint-order:stroke;stroke:rgba(0,0,0,.35);stroke-width:2px}
.vbw-spinmsg{margin:0 0 10px;text-align:center}
.vbw-cta{display:inline-flex;align-items:center;justify-content:center;font:inherit;font-size:14px;font-weight:700;border:0;border-radius:12px;padding:12px 18px;cursor:pointer;color:#fff;min-height:44px;transition:transform .12s,filter .12s}
.vbw-cta:hover:not(:disabled){filter:brightness(1.08);transform:translateY(-1px)}
.vbw-cta:focus-visible{outline:2px solid var(--tx);outline-offset:2px}
.vbw-cta:disabled{opacity:1;filter:grayscale(.6) brightness(.9);cursor:not-allowed}
.vbw-x:focus-visible,#vbw-n:focus-visible,.vbw-card a:focus-visible{outline:2px solid var(--tx);outline-offset:2px}
.vbw-cta-amber{width:100%;font-size:16px;color:#1c1400;background:linear-gradient(135deg,#fbbf24,#f59e0b);box-shadow:0 6px 18px rgba(245,158,11,.35)}
.vbw-cta-green{background:linear-gradient(135deg,#047857,#065f46)}
.vbw-cta-violet{background:linear-gradient(135deg,#8b5cf6,#6d28d9)}
.vbw-cta-blue{background:linear-gradient(135deg,#3b82f6,#1d4ed8)}
.vbw-cta-orange{background:linear-gradient(135deg,#f97316,#ea580c)}
.vbw-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:11px;font-size:14px}
.vbw-list li{display:flex;align-items:center;gap:10px}
.vbw-list i,.vbw-leg i{flex:0 0 10px;height:10px;border-radius:50%;display:inline-block}
.vbw-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:14px}
.vbw-tile{border-radius:12px;padding:12px;background:color-mix(in srgb,var(--c-purple) 12%,transparent);border:1px solid color-mix(in srgb,var(--c-purple) 30%,transparent);display:flex;flex-direction:column;gap:2px}
.vbw-tile b{font-family:"Space Grotesk",Inter,sans-serif;font-size:19px;font-variant-numeric:tabular-nums}
.vbw-tile span{font-size:12px;color:var(--tx2)}
.vbw-row{display:flex;gap:10px;align-items:center;margin-bottom:6px}
.vbw-row input{width:80px;min-height:44px;background:var(--s1);border:1px solid var(--b2);border-radius:10px;color:var(--tx);padding:0 10px;font:inherit;font-size:15px}
.vbw-row .vbw-cta{flex:1}
.vbw-sub{font-size:12.5px;font-weight:700;color:var(--tx2);margin:14px 0 8px}
.vbw-btns{display:flex;gap:8px;flex-wrap:wrap}
.vbw-bar{display:flex;height:14px;border-radius:999px;overflow:hidden;background:var(--s3);margin-bottom:12px}
.vbw-bar i{display:block;height:100%}
body:has(#vb-wallet) #vb-tour-offer,body:has(#vb-level) #vb-tour-offer{display:none!important}
.vbw-key{display:flex;flex-wrap:wrap;gap:6px 10px;justify-content:center;margin:0 0 12px;font-size:12.5px;font-weight:700}
.vbw-key span{white-space:nowrap;display:inline-flex;align-items:center;gap:6px}
.vbw-key i{width:10px;height:10px;border-radius:50%;display:inline-block}
.vbw-legs{display:grid;grid-template-columns:1fr 1fr;gap:8px 18px}
.vbw-leg{display:flex;align-items:center;gap:8px;font-size:13px}
.vbw-leg span{flex:1;color:var(--tx2)}
.vbw-leg b{font-variant-numeric:tabular-nums}
.vbw-rec{display:flex;justify-content:space-between;gap:10px;padding:7px 0;border-top:1px solid var(--b1);font-size:13px}
.vbw-rec span{color:var(--tx2)}.vbw-rec em{font-style:normal;color:var(--tx2);margin-left:4px}
.vbw-rec b{white-space:nowrap}.vbw-rec .pos{color:var(--c-green)}.vbw-rec .neg{color:var(--tx2)}
.vbw-legal{font-size:11.5px;color:var(--tx3);line-height:1.6;margin-top:6px}
.vbw-legal a{color:var(--accent);display:inline-block;padding:15px 8px;margin:-15px -8px}
.vbw-grid{align-items:start}
.vbw-cta-amber[disabled],.vbw-cta[disabled]{background:var(--s3,#e5e7eb);background-image:none;color:var(--tx2);box-shadow:none;cursor:not-allowed;filter:none}
.vbw-key small{font-size:12px;opacity:1;color:var(--tx2)}
#vb-bucks-chip{min-height:44px}
@media (max-width:640px){
  .vbw-ov{padding:0}
  .vbw-card{border-radius:0;min-height:100%;padding:16px}
  .vbw-grid{grid-template-columns:1fr}
  .vbw-amt{font-size:34px}
  .vbw-tiles{grid-template-columns:1fr 1fr 1fr}
  .vbw-tile b{font-size:16px}
  .vbw-legs{grid-template-columns:1fr}
  .vbw-btns .vbw-cta{flex:1 1 100%}
}
@media (prefers-reduced-motion: reduce){ .vbw-cta{transition:none} .vbw-cta:hover:not(:disabled){transform:none} }

.vbw-sec.amber{border-color:color-mix(in srgb,var(--c-amber) 45%,var(--b1));background:color-mix(in srgb,var(--c-amber) 6%,var(--s2))}
.vbw-sec.blue{border-color:color-mix(in srgb,var(--c-blue) 45%,var(--b1));background:color-mix(in srgb,var(--c-blue) 6%,var(--s2))}
.vbw-sec.pink{border-color:color-mix(in srgb,var(--c-pink) 45%,var(--b1));background:color-mix(in srgb,var(--c-pink) 6%,var(--s2))}
.vbw-sec.teal{border-color:color-mix(in srgb,var(--c-teal) 45%,var(--b1));background:color-mix(in srgb,var(--c-teal) 6%,var(--s2))}
.vbw-sec.indigo{border-color:color-mix(in srgb,var(--c-indigo) 45%,var(--b1));background:color-mix(in srgb,var(--c-indigo) 6%,var(--s2))}
.vbw-sec.violet{border-color:color-mix(in srgb,var(--c-violet) 55%,var(--b1));background:color-mix(in srgb,var(--c-violet) 7%,var(--s2));border-width:2px}
.vbw-sec{margin-bottom:16px}
.vbw-grid{gap:16px;margin-bottom:16px}
.vbw-lvl{display:flex;align-items:center;gap:14px;width:100%;margin:0 0 14px;padding:12px 16px;border-radius:14px;border:1.5px solid color-mix(in srgb,var(--c-blue) 50%,var(--b1));background:color-mix(in srgb,var(--c-blue) 9%,var(--s2));color:var(--tx);cursor:pointer;font:inherit;text-align:left}
.vbw-lvl:hover{border-color:var(--c-blue)}
.vbw-lvl:focus-visible{outline:2px solid var(--c-blue);outline-offset:2px}
.vbw-lvl-n{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:64px;height:64px;border-radius:16px;background:linear-gradient(135deg,#3b82f6,#8b5cf6);color:#fff;font-family:"Space Grotesk",Inter,sans-serif;font-size:28px;font-weight:800;line-height:1}
.vbw-lvl-n small{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;opacity:.85}
.vbw-lvl-b{flex:1;display:flex;flex-direction:column;gap:5px;min-width:0}
.vbw-lvl-b b{font-size:16px}
.vbw-lvl-b small{font-size:12px;color:var(--tx2)}
.vbw-lvl-bar,.vbw-bar.big{display:block;height:10px;border-radius:999px;background:var(--s3);overflow:hidden}
.vbw-lvl-bar i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#3b82f6,#8b5cf6)}
.vbw-bar.big{height:14px;margin:8px 0 10px}
.vbw-lvl-go{font-size:13px;font-weight:700;color:var(--c-blue);white-space:nowrap}
.vbw-lvbal{margin-top:6px}
.vbw-pill.strong{font-weight:800;color:var(--tx);border-color:color-mix(in srgb,var(--c-green) 55%,var(--b2))}
.vbw-qa{font-size:13.5px;line-height:1.55;color:var(--tx2);padding:8px 0;border-top:1px solid color-mix(in srgb,var(--c-teal) 22%,transparent)}
.vbw-qa:first-of-type{border-top:0;padding-top:0}
.vbw-qa b{color:var(--tx)}
.vbw-nocash{font-size:13px;font-weight:700;color:var(--c-violet);margin:-4px 0 14px}
.vbw-sub.green{color:var(--c-green)}.vbw-sub.violet{color:var(--c-violet)}.vbw-sub.blue{color:var(--c-blue)}.vbw-sub.orange{color:#f97316}
.vbw-packs{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.vbw-pack{display:flex;flex-direction:column;gap:3px;align-items:flex-start;padding:14px;border:0;border-radius:14px;cursor:pointer;color:#fff;font:inherit;text-align:left;background:linear-gradient(135deg,#8b5cf6,#6d28d9);box-shadow:0 6px 16px rgba(109,40,217,.3);transition:transform .12s,filter .12s}
.vbw-pack:hover:not(:disabled){filter:brightness(1.1);transform:translateY(-2px)}
.vbw-pack:focus-visible{outline:2px solid var(--tx);outline-offset:2px}
.vbw-pack b{font-family:"Space Grotesk",Inter,sans-serif;font-size:19px}
.vbw-pack span{font-size:13px;opacity:.95}
.vbw-pack em{font-style:normal;font-size:11.5px;opacity:.8;margin-top:4px}
.vbw-ach{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-top:1px solid var(--b1);font-size:13px}
.vbw-ach:first-of-type{border-top:0}
.vbw-ach b{display:block}.vbw-ach span{color:var(--tx2)}
.vbw-ach em{font-style:normal;font-weight:700;color:var(--c-green);white-space:nowrap;text-align:right}
.vbw-chips{display:flex;flex-wrap:wrap;gap:8px}
.vbw-chip{font-size:12.5px;font-weight:600;padding:5px 11px;border-radius:999px;background:color-mix(in srgb,var(--c-amber) 16%,transparent);color:var(--tx);border:1px solid color-mix(in srgb,var(--c-amber) 40%,transparent)}
.vbw-ov2{z-index:9400}
.vbw-ov2 .vbw-card{max-width:560px}
@media (max-width:640px){ .vbw-packs{grid-template-columns:1fr} .vbw-ach{flex-direction:column;gap:4px} .vbw-ach em{text-align:left} .vbw-lvl-go{display:none} }
@media (prefers-reduced-motion: reduce){ .vbw-pack{transition:none} .vbw-pack:hover:not(:disabled){transform:none} }
.vb-rank-badge{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:8px;vertical-align:middle;background:var(--rk,#8a94a6);box-shadow:0 0 0 3px color-mix(in srgb,var(--rk,#8a94a6) 25%,transparent);}
.vb-ach{padding:22px 24px;}
.vb-ach-f{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px;}
.vb-ach-f button{font-size:var(--fs-2xs);font-weight:600;padding:4px 10px;border-radius:999px;border:1px solid var(--b2);background:var(--s2);color:var(--tx2);cursor:pointer;}
.vb-ach-f button.on{background:var(--accent);color:var(--on-accent);border-color:var(--accent);}
.vb-ach-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:var(--sp-2);}
.vb-ach-t{position:relative;padding:12px;padding-right:14px;border-radius:var(--r-md);border:1px solid var(--b1);background:var(--s2);text-align:left;min-height:96px;}
.vb-ach-t.on{background:color-mix(in srgb,var(--accent) 10%,var(--s1));border-color:color-mix(in srgb,var(--accent) 40%,var(--b1));}
.vb-ach-t.off{opacity:.6;filter:grayscale(1);}
.vb-ach-ic{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:8px;background:color-mix(in srgb,var(--accent) 16%,transparent);color:var(--accent);}
.vb-ach-t.off .vb-ach-ic{background:var(--s3);color:var(--tx3);}
.vb-ach-n{margin-top:8px;font-size:var(--fs-sm);font-weight:650;color:var(--tx);}
.vb-ach-r{margin-top:3px;font-size:var(--fs-2xs);color:var(--tx3);line-height:1.4;}
.vb-ach-x{position:absolute;top:10px;right:10px;font-size:var(--fs-2xs);font-weight:600;color:var(--tx3);font-variant-numeric:tabular-nums;text-align:right;max-width:55%;}
.vb-ach-t.on .vb-ach-x{color:var(--accent);}

.vb-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--sp-3);margin-bottom:var(--sp-4);}
.vb-stat{--h:var(--accent);position:relative;padding:16px 18px;border-radius:var(--r-md);background:var(--s1);border:1px solid var(--b1);box-shadow:var(--sh-1);cursor:pointer;text-align:left;transition:transform .2s var(--ease-out),box-shadow .2s var(--ease-out),border-color .2s var(--ease-out);}
.vb-stat:hover{transform:translateY(-2px);box-shadow:var(--sh-2);border-color:color-mix(in srgb,var(--h) 35%,var(--b1));}
.vb-stat:active{transform:scale(.985);}
.vb-stat-ic{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:10px;color:var(--h);background:color-mix(in srgb,var(--h) 13%,transparent);}
.vb-stat-v{margin-top:12px;font-size:30px;line-height:1;font-weight:700;letter-spacing:-.025em;color:var(--tx);font-variant-numeric:tabular-nums;}
.vb-stat-l{margin-top:6px;font-size:var(--fs-sm);color:var(--tx2);}

.vb-journey{padding:22px 24px;}
.vb-j-hd{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:16px;}
.vb-j-t{font-size:var(--fs-lg);font-weight:650;color:var(--tx);}
.vb-j-s{font-size:var(--fs-sm);color:var(--tx3);}
.vb-ms{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:var(--sp-3);}
.vb-m{--h:var(--accent);position:relative;display:flex;gap:12px;align-items:flex-start;padding:14px;border-radius:var(--r-md);border:1px solid var(--b1);background:var(--s1);cursor:pointer;text-align:left;transition:transform .2s var(--ease-out),border-color .2s var(--ease-out),box-shadow .2s var(--ease-out);}
.vb-m:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--h) 40%,var(--b1));box-shadow:var(--sh-1);}
.vb-m-dot{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:999px;border:2px solid var(--b2);color:var(--tx3);font-size:var(--fs-xs);font-weight:700;background:var(--s1);}
.vb-m.done .vb-m-dot{border-color:var(--h);background:var(--h);color:#fff;}
.vb-m.cur{border-color:color-mix(in srgb,var(--h) 55%,var(--b1));background:color-mix(in srgb,var(--h) 6%,var(--s1));}
.vb-m.cur .vb-m-dot{border-color:var(--h);color:var(--h);}
.vb-m-t{font-size:var(--fs-sm);font-weight:600;color:var(--tx);line-height:1.35;}
.vb-m-d{margin-top:3px;font-size:var(--fs-xs);color:var(--tx3);line-height:1.45;}
.vb-m.done .vb-m-t{color:var(--tx2);}
.vb-m.just{animation:vbPop .7s var(--ease-out) both;}
.vb-m.part .vb-m-dot{border-color:var(--h);border-style:dashed;color:var(--h);}
.vb-lvl.vb-lvl-up,.vb-lvlcard.vb-leveled{animation:vbPop .9s var(--ease-out) both;--h:var(--accent);}
.vb-lvlcard.vb-leveled{border-color:var(--abrd);}
@keyframes vbPop{0%{transform:scale(.94);box-shadow:0 0 0 0 color-mix(in srgb,var(--h) 45%,transparent)}60%{transform:scale(1.02);box-shadow:0 0 0 10px color-mix(in srgb,var(--h) 0%,transparent)}100%{transform:none}}
.vb-home-note{margin-top:var(--sp-3);font-size:var(--fs-xs);color:var(--tx3);}

@media (max-width:1024px){ .vb-stats{grid-template-columns:repeat(2,minmax(0,1fr));} }
@media (max-width:768px){
  .vb-home-hero{grid-template-columns:1fr;}
  .vb-next-t{font-size:22px;}
  .vb-hcard,.vb-journey{padding:18px;}
  .vb-stat-v{font-size:26px;}
}
@media (prefers-reduced-motion:reduce){ .vb-m.just,.vb-stat,.vb-m,.vb-cta,.vb-lvl-fill{animation:none!important;transition:none!important;} }

/* ── Light-mode fixes for shared overlays ── */
.vbhelp-panel:not(.open){box-shadow:none;}
/* The off-canvas mobile sidebar cast its shadow into view while closed. */
@media (max-width:768px){ .sidebar:not(.open){box-shadow:none!important;} }
body.mobile-view .sidebar:not(.open){box-shadow:none!important;}
body.light .vbhelp-panel.open{box-shadow:-12px 0 40px rgba(16,24,40,.12);}
body.light #free-tier-gate{background:linear-gradient(180deg,rgba(244,246,250,.35) 0%,rgba(244,246,250,.85) 40%,rgba(244,246,250,.97) 100%)!important;}
body.light #free-tier-gate > div{background:var(--s1)!important;border-color:var(--b1)!important;box-shadow:var(--sh-2)!important;}
body.light #free-tier-gate [style*="color:#e2e8f5"]{color:var(--tx)!important;}
body.light #free-tier-gate [style*="color:#c3cfe5"]{color:var(--tx2)!important;}
body.light #free-tier-gate [style*="color:#8898bb"]{color:var(--tx3)!important;}
body.light #free-tier-gate [style*="color:#00e5a0"]{color:var(--accent)!important;}
body.light #free-tier-gate [style*="background:rgba(0,229,160,.07)"]{background:var(--adim)!important;border-color:var(--abrd)!important;}
body.light #free-tier-gate button[style*="background:#00e5a0"]{background:var(--accent)!important;color:var(--on-accent)!important;box-shadow:0 10px 22px -10px color-mix(in srgb,var(--accent) 80%,transparent)!important;}
body.light .pw-overlay .pw-cta{color:var(--on-accent);}
/* ══ RESTYLE: Dashboard, Route Optimizer, Location Planner, paywalls (2026-10-01) ══
   Styling only. Every id, handler and data flow is unchanged; inline styles
   are overridden here so the markup can stay as it is. */

:root{--vb-mask-chart:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'><path d='M3 3v18h18'/><path d='M8 17v-5M13 17V8M18 17v-9'/></svg>");}
/* ── Sub-tabs: folded tools live inside their parent as a segmented control ── */
.vb-subtabs{display:inline-flex;gap:2px;padding:4px;margin:0 0 var(--sp-4);background:var(--s2);border:1px solid var(--b1);border-radius:12px;max-width:100%;overflow-x:auto;scrollbar-width:none;}
.vb-subtabs[hidden]{display:none;}
.vb-subtabs::-webkit-scrollbar{display:none;}
.vb-st-pill{height:34px;padding:0 14px;border:none;border-radius:9px;background:transparent;color:var(--tx2);font-size:var(--fs-sm);font-weight:500;white-space:nowrap;cursor:pointer;transition:background .2s var(--ease-out),color .2s var(--ease-out),box-shadow .2s var(--ease-out);}
.vb-st-pill:hover{color:var(--tx);}
.vb-st-pill.on{background:var(--s1);color:var(--tx);font-weight:600;box-shadow:var(--sh-1);}
.vb-st-pill:focus-visible{outline:none;box-shadow:var(--focus);}

/* ══ SECTION TOKEN MAP + FILTER POLISH (2026-10-10, owner: consistent colour by section) ══
   ONE map: each sidebar stage owns a hue (--hue-*, above). Per stage three
   tokens are derived here and nowhere else:
     --sc       the hue itself (borders, rings, tints)
     --sc-ink   the hue as TEXT on a surface, AA (4.5:1) in both themes
     --sc-fill  the hue as a solid FILL under white text, AA (4.5:1)
   Elements pick the section with data-stage (sidebar groups, the sub-tab
   strip) or by tab id (the panes). Find = blue, Plan = purple, Win = orange,
   Run = teal-green, Grow = red; brand emerald stays the action colour.
   No backslashes in this block: it lives in a server template literal. */
:root{
  --sec-find-fill:#0369a1;--sec-plan-fill:#6d28d9;--sec-win-fill:#b45309;--sec-run-fill:#0f766e;--sec-grow-fill:#be123c;--sec-home-fill:#067a55;--sec-acct-fill:#475467;
}
body{
  --sec-find-ink:var(--hue-find);--sec-plan-ink:var(--hue-plan);--sec-win-ink:var(--hue-win);--sec-run-ink:var(--hue-run);--sec-grow-ink:var(--hue-grow);--sec-home-ink:var(--hue-home);--sec-acct-ink:var(--hue-acct);
  --sc:var(--hue-home);--sc-ink:var(--sec-home-ink);--sc-fill:var(--sec-home-fill);
}
html[data-theme="light"] body,body.light{
  --sec-find-ink:#0369a1;--sec-plan-ink:#6d28d9;--sec-win-ink:#b45309;--sec-run-ink:#0f766e;--sec-grow-ink:#be123c;--sec-home-ink:#067a55;--sec-acct-ink:#475467;
}
[data-stage="home"]{--sc:var(--hue-home);--sc-ink:var(--sec-home-ink);--sc-fill:var(--sec-home-fill);}
[data-stage="find"],#tab-leads,#tab-map,#tab-revealed,#tab-marketplace{--sc:var(--hue-find);--sc-ink:var(--sec-find-ink);--sc-fill:var(--sec-find-fill);}
[data-stage="plan"],#tab-location-planner,#tab-machines{--sc:var(--hue-plan);--sc-ink:var(--sec-plan-ink);--sc-fill:var(--sec-plan-fill);}
[data-stage="win"],#tab-pipeline,#tab-scripts,#tab-contract,#tab-flyers{--sc:var(--hue-win);--sc-ink:var(--sec-win-ink);--sc-fill:var(--sec-win-fill);}
[data-stage="run"],#tab-dashboard,#tab-ops-machines,#tab-route,#tab-telemetry{--sc:var(--hue-run);--sc-ink:var(--sec-run-ink);--sc-fill:var(--sec-run-fill);}
[data-stage="grow"],#tab-coach,#tab-profit,#tab-hiring{--sc:var(--hue-grow);--sc-ink:var(--sec-grow-ink);--sc-fill:var(--sec-grow-fill);}
[data-stage="acct"]{--sc:var(--hue-acct);--sc-ink:var(--sec-acct-ink);--sc-fill:var(--sec-acct-fill);}

/* Sidebar group labels and the sub-tab strip read as their section. */
.nav-grp .nsec{color:var(--sc-ink);font-weight:700;}
.nav-grp .nsec.active-group{color:var(--sc-ink);}
.vb-subtabs{border-color:color-mix(in srgb,var(--sc) 30%,var(--b1));}
.vb-st-pill:hover{color:var(--sc-ink);}
.vb-st-pill.on{background:var(--sc-fill);color:#fff;font-weight:600;box-shadow:var(--sh-1);}
.vb-st-pill:focus-visible{outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--sc) 40%,transparent);}
.vb-st-pill:active{transform:scale(.98);}

/* Filter panel (Lead Finder + Lead Map share it): decide in order, where ->
   what -> how big -> quality -> contact. Chips are outlined; chosen chips are a
   solid fill with white text. 13px on phones, 14px from 641px up. */
.vb-lf-panel{padding:14px 16px;border-radius:var(--r-lg,16px);}
.vb-lf-head{gap:12px;margin-bottom:12px;}
.vb-lf-title{font-size:15px;font-weight:700;color:var(--tx);letter-spacing:-.01em;}
.vb-lf-sum{font-size:13px;color:var(--tx2);}
.vb-lf-clear{font-size:13px;min-height:36px;padding:0 14px;border-color:var(--sc-ink);color:var(--sc-ink);font-weight:600;}
.vb-lf-clear:disabled{display:none;}
.vb-lf-restored{font-size:13px;color:var(--tx);}
.vb-lf-restored button{font-size:13px;color:var(--sc-ink);}
.vb-lf-groups{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:18px 28px;}
.vb-lf-g{gap:8px;flex:initial;}
.vb-lf-gt{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--sc-ink);margin-bottom:2px;}
.vb-lf-hint{font-size:12px;color:var(--tx2);}
.vb-lf-o{position:relative;min-height:40px;padding:0 14px;gap:8px;background:transparent;border:1.5px solid color-mix(in srgb,var(--sc-ink) 55%,var(--b2));color:var(--tx);font-size:13px;font-weight:600;transition:background .2s var(--ease-out),border-color .2s var(--ease-out),color .2s var(--ease-out),transform .15s var(--ease-out);-webkit-tap-highlight-color:transparent;}
.vb-lf-o input{position:absolute;opacity:0;width:100%;height:100%;inset:0;margin:0;cursor:pointer;}
.vb-lf-o:hover{background:color-mix(in srgb,var(--sc) 10%,transparent);border-color:var(--sc-ink);}
.vb-lf-o:active{transform:scale(.97);}
.vb-lf-o:has(input:focus-visible){box-shadow:0 0 0 3px color-mix(in srgb,var(--sc) 45%,transparent);}
.vb-lf-o.is-on{background:var(--sc-fill);border-color:var(--sc-fill);color:#fff;}
.vb-lf-o.is-on:hover{background:var(--sc-fill);filter:brightness(1.08);}
.vb-lf-o.is-on .vb-lf-l::before{content:'';display:inline-block;width:5px;height:9px;margin:0 8px 2px 1px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg);}
.vb-lf-n{font-size:12px;color:var(--tx2);font-weight:500;}
.vb-lf-o.is-on .vb-lf-n{color:rgba(255,255,255,.88);}
.vb-lf-o.is-zero{opacity:.5;border-style:dashed;}
.vb-lf-more summary{font-size:13px;min-height:36px;display:flex;align-items:center;color:var(--sc-ink);font-weight:600;}
.vb-lf-foot{font-size:13px;color:var(--tx2);margin-top:10px;}
/* Revenue potential keeps its meaning: High = green, Medium = amber. */
.vb-lf-o:has(input[data-g="rev"][data-v="high"]){border-color:var(--sec-home-ink);}
.vb-lf-o:has(input[data-g="rev"][data-v="high"]).is-on{background:var(--sec-home-fill);border-color:var(--sec-home-fill);}
.vb-lf-o:has(input[data-g="rev"][data-v="medium_high"]){border-color:var(--sec-win-ink);}
.vb-lf-o:has(input[data-g="rev"][data-v="medium_high"]).is-on{background:var(--sec-win-fill);border-color:var(--sec-win-fill);}
/* Search row: radius chips, More filters pill, sort select. */
.lf-radius-k{font-size:13px;color:var(--sc-ink);letter-spacing:.08em;}
.lf-radius button{font-size:13px;min-height:36px;padding:0 14px;background:transparent;border:1.5px solid color-mix(in srgb,var(--sc-ink) 55%,var(--b2));color:var(--tx);font-weight:600;}
.lf-radius button:hover{border-color:var(--sc-ink);background:color-mix(in srgb,var(--sc) 10%,transparent);color:var(--tx);}
.lf-radius button.on{background:var(--sc-fill);border-color:var(--sc-fill);color:#fff;}
.lf-radius button:focus-visible,.lf-more-sum:focus-visible{outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--sc) 45%,transparent);}
.lf-radius button:active{transform:scale(.97);}
/* Review board 2026-10-12: 44px touch targets on phones, cards align to their own height. */
@media (max-width:640px){.vb-lf-o,.lf-more-sum,.lf-radius button,.btn.lf-cta,.lf-sec-btn,.fb-btn,.s-btn,.add-pipe-btn{min-height:44px}.lf-how>summary{display:inline-flex;align-items:center;min-height:44px}.lf-selall input,.disc-card input[type=checkbox]{width:22px;height:22px}.lf-selall{min-height:44px}.disc-card .copy-btn,.disc-card .lf-copy{min-height:44px;min-width:44px}}
.disc-grid:not(.lf-view-grid){align-items:start}
.lf-opts-k{font-size:13px;color:var(--tx);}
#lf-more-filters>summary::-webkit-details-marker{display:none;}
.lf-more-sum{list-style:none;display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:0 16px;cursor:pointer;font-size:13px;font-weight:600;color:var(--sc-ink);background:transparent;border:1.5px solid var(--sc-ink);border-radius:999px;user-select:none;transition:background .2s var(--ease-out),transform .15s var(--ease-out);}
.lf-more-sum:hover{background:color-mix(in srgb,var(--sc) 10%,transparent);}
.lf-more-sum:active{transform:scale(.97);}
.lf-more-n{background:var(--accent);color:var(--on-accent,#fff)!important;color:#fff;border-radius:999px;padding:0 8px;font-size:12px;min-width:20px;text-align:center;}
#score-in{font-size:13px;min-height:40px;}
@media (min-width:641px){
  .vb-lf-o,.lf-radius button,.lf-more-sum,.lf-opts-k,.vb-lf-sum,.vb-lf-clear,.vb-lf-restored,.vb-lf-restored button,.vb-lf-more summary,.vb-lf-foot,#score-in{font-size:14px;}
  .vb-lf-o{min-height:38px;}
  .vb-lf-n{font-size:13px;}
}
/* Phone: the filters stack; More filters opens inline (2026-10-12). */
@media (max-width:640px){
  .vb-lf-groups{grid-template-columns:1fr;}
  .lf-radius{display:flex;}
  .lf-more-sum{width:100%;justify-content:center;min-height:48px;}
  #lf-more-filters .vb-lf-wrap{margin-top:12px;}
}
@media (prefers-reduced-motion:reduce){.vb-lf-o,.lf-radius button,.lf-more-sum,.vb-st-pill,.lf-sheet-done{transition:none!important;transform:none!important;}}

/* Lead Map minimal (2026-10-12) */
.map-bulk-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap;}
.map-bulk-row .btn{min-height:36px;padding:0 12px;font-size:13px;font-weight:600;color:var(--tx);}
.map-bulk-row .btn.map-bulk-go{background:var(--sc-fill);border-color:var(--sc-fill);color:#fff;}
.map-legend{display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:8px;font-size:12px;color:var(--tx2);}
.map-legend span{display:inline-flex;align-items:center;gap:6px;}
.map-legend i{width:11px;height:11px;border-radius:50%;display:inline-block;border:1px solid #64748b;}
.map-legend i.t-high{background:#00e5a0;}.map-legend i.t-medium{background:#94a3b8;}.map-legend i.t-low{background:#475569;}.map-legend i.t-limited{background:#fff;}
@media (max-width:640px){.map-bulk-row .btn{min-height:44px;flex:1 1 auto;}}

/* ── Minimal Lead Finder (2026-10-12): one search row, ONE bordered filter
   box, one results toolbar, select boxes on the left, three views. ── */
.lf-search-row{display:flex;gap:10px;align-items:stretch;flex-wrap:nowrap;}
.lf-search-row #zip-in,.lf-search-row .lf-go{min-height:44px;margin:0;}
.lf-search-row #zip-in{font-size:16px;}
.lf-search-row #zip-in{flex:1 1 auto;min-width:0;width:auto!important;max-width:560px;}
.lf-filter-box{margin:14px 0 0;padding:10px 14px 14px;border:1px solid var(--b2);border-radius:12px;min-width:0;}
.lf-filter-legend{padding:0 6px;font-size:12px;font-weight:700;color:var(--tx2);}
.lf-filter-row{display:flex;flex-wrap:wrap;gap:10px 12px;align-items:center;}
.lf-filter-row .lf-radius{margin-top:0;}
.lf-filter-box .lf-radius-k,#map-radius .lf-radius-k{color:var(--tx2);letter-spacing:0;text-transform:none;font-weight:600;}
.lf-filter-row .fld{min-height:38px;}
.lf-f-k{font-size:13px;color:var(--tx2);font-weight:600;}
.lf-f-hint{flex:1 1 100%;font-size:12px;color:var(--tx2);line-height:1.5;}
.lf-more-in{margin-top:12px;}
.lf-more-in .lf-more-sum{min-height:36px;padding:0 12px;border-width:1px;font-size:13px;color:var(--tx);border-color:var(--b2);}
.lf-toolbar{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 12px;}
.lf-tb-left,.lf-tb-right{display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-width:0;}
.lf-selall{display:inline-flex;align-items:center;gap:8px;min-height:36px;padding:0 12px;border:1px solid var(--b2);border-radius:8px;font-size:13px;font-weight:600;color:var(--tx);cursor:pointer;background:var(--s1);}
.lf-selall input{width:16px;height:16px;margin:0;accent-color:var(--accent);cursor:pointer;}
.lf-selall:has(input:disabled){opacity:.5;cursor:default;}
.lf-count{font-size:15px;font-weight:700;color:var(--tx);}
.lf-views{display:inline-flex;border:1px solid var(--b2);border-radius:8px;overflow:hidden;}
.lf-view-btn{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 12px;background:var(--s1);border:0;border-right:1px solid var(--b2);font:inherit;font-size:13px;font-weight:600;color:var(--tx2);cursor:pointer;}
.lf-view-btn:last-child{border-right:0;}
.lf-view-btn:hover{color:var(--tx);}
.lf-view-btn.on{background:var(--accent);color:var(--on-accent,#fff);}
.lf-view-btn:focus-visible{outline:2px solid var(--accent);outline-offset:-2px;}
.lf-selall:focus-within,.lf-filter-box .lf-radius button:focus-visible,.lf-sort:focus-visible,.lf-tb-btn:focus-visible,.lf-more-in .lf-more-sum:focus-visible,.lf-pick-l input:focus-visible{outline:2px solid var(--accent);outline-offset:2px;box-shadow:none;}
.lf-sort{min-height:36px;height:36px;font-size:13px;width:auto;}
.btn.lf-tb-btn{min-height:36px;padding:0 14px;font-size:13px;}
.lf-top{justify-content:flex-start;}
.lf-pick.lf-pick-l{order:-1;padding:0;border:0;border-radius:0;width:20px;min-width:20px;justify-content:center;margin-top:2px;}
.lf-pick-l input{width:18px;height:18px;}
.lf-pick-sp{visibility:hidden;height:18px;cursor:default;pointer-events:none;}
/* List: one row per place (details view). */
.disc-grid.lf-view-list{display:flex!important;flex-direction:column;gap:0!important;border:1px solid var(--b1);border-radius:12px;overflow:hidden;background:var(--s1);}
.lf-view-list .disc-card{display:grid;grid-template-columns:minmax(200px,1.4fr) minmax(120px,.7fr) minmax(180px,1.3fr) minmax(190px,1fr);align-items:center;gap:6px 16px;border:0;border-bottom:1px solid var(--b1);border-radius:0;box-shadow:none;padding:10px 14px;transform:none!important;}
.lf-view-list .disc-card:last-child{border-bottom:0;}
.lf-view-list .disc-card>*{margin:0!important;min-width:0;}
.lf-view-list .lf-top{grid-column:1;}
.lf-view-list .lf-mid{grid-column:2;}
.lf-view-list .disc-addr-line{grid-column:3;font-size:12px;}
.lf-view-list .lf-unlock,.lf-view-list .lf-hero{grid-column:4;background:none;border:0;box-shadow:none;padding:0;}
.lf-view-list .lf-sec{grid-column:4;border:0;padding:0;}
.lf-view-list .lf-unl-badge{order:3;}
.lf-view-list .lf-rev,.lf-view-list .vb-cf,.lf-view-list .disc-card>.disc-contacts,.lf-view-list .lf-avail,.lf-view-list .vb-cbadges,.lf-view-list .lf-locked,.lf-view-list .lf-hint,.lf-view-list .lf-empty,.lf-view-list .lf-unlock-h,.lf-view-list .lf-next,.lf-view-list .lf-sec>*:not(.add-pipe-btn),.lf-view-list .disc-type-label,.lf-view-list .lf-unl-badge,.lf-view-list .lf-hero .vb-verify-row,.lf-view-list .lf-hero .btn{display:none!important;}
.lf-view-list .btn.lf-cta{padding:7px 12px;font-size:12.5px;}
.lf-view-list .lf-hero .disc-contacts,.lf-view-grid .lf-hero .disc-contacts{background:none;border:0;padding:0;margin:0;}
.lf-view-list .lf-hero .disc-cr,.lf-view-grid .lf-hero .disc-cr{padding:1px 0;}
.lf-view-grid .lf-hero{background:none;border:0;box-shadow:none;padding:0;margin-top:8px;}
.lf-view-grid .lf-hero .vb-cbadges,.lf-view-grid .lf-hero .lf-unlock-h{display:none!important;}
.lf-view-list .lf-unl-badge{display:inline-flex!important;}
.lf-view-list .lf-hero .disc-cr{padding:1px 0;}
.lf-view-grid .disc-card{display:flex;flex-direction:column;}
.lf-view-grid .lf-unlock,.lf-view-grid .lf-sec{margin-top:auto!important;padding-top:8px;}
.lf-view-list .disc-addr-line .vb-ok-badge,.lf-view-list .disc-addr-line span[title]{display:none;}
/* Grid: four small tiles across. */
.disc-grid.lf-view-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important;align-items:start;}
.lf-view-grid .disc-card{padding:12px;}
.lf-view-grid .lf-rev,.lf-view-grid .vb-cf,.lf-view-grid .disc-card>.disc-contacts,.lf-view-grid .lf-avail,.lf-view-grid .lf-locked,.lf-view-grid .lf-hint,.lf-view-grid .lf-empty,.lf-view-grid .lf-unlock-h,.lf-view-grid .lf-next,.lf-view-grid .lf-sec>*:not(.add-pipe-btn),.lf-view-grid .disc-addr-line span[title],.lf-view-grid .disc-addr-line .vb-ok-badge,.lf-view-grid .lf-hero .vb-verify-row,.lf-view-grid .lf-hero .btn{display:none!important;}
.lf-view-grid .lf-unlock{background:none;border:0;padding:0;margin-top:8px;}
.lf-view-grid .disc-addr-line{font-size:11.5px;}
.lf-view-grid .btn.lf-cta{padding:8px 10px;font-size:12px;}
@media (max-width:1100px){.disc-grid.lf-view-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;}}
@media (max-width:900px){
  .lf-view-list .disc-card{grid-template-columns:1fr auto;}
  .lf-view-list .lf-top{grid-column:1;} .lf-view-list .lf-mid{grid-column:2;justify-self:end;}
  .lf-view-list .disc-addr-line{grid-column:1/-1;}
  .lf-view-list .lf-unlock,.lf-view-list .lf-hero,.lf-view-list .lf-sec{grid-column:1/-1;}
}
@media (max-width:640px){
  .disc-grid.lf-view-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
  .lf-search-row{flex-wrap:wrap;} .lf-search-row #zip-in{flex:1 1 100%;max-width:none;} .lf-search-row .lf-go{flex:1 1 100%;}
  .lf-filter-row>*{flex:1 1 auto;} .lf-filter-row .fld,#type-ms,#type-ms-btn{width:100%!important;}
  .lf-tb-right{width:100%;} .lf-views{flex:1 1 100%;} .lf-view-btn{flex:1 1 0;justify-content:center;min-height:44px;padding:0 10px;} .lf-sort{flex:1 1 auto;}
  .lf-selall,.lf-sort,.btn.lf-tb-btn,.lf-filter-box .lf-radius button,.lf-more-in .lf-more-sum,.disc-card .add-pipe-btn{min-height:44px;}
  .lf-sort{height:44px;}
  #bulk-reveal-bar{bottom:calc(76px + env(safe-area-inset-bottom,0px))!important;max-width:calc(100vw - 24px);}
  #type-ms-btn,#machine-in,#result-count,#country-in,.disc-card .btn.lf-cta,.lf-rate-row .fb-btn{min-height:44px;}
  .lf-pick.lf-pick-l{width:44px;min-width:44px;min-height:44px;margin:-13px -6px -13px -13px;}
  .lf-view-grid .btn.lf-cta{font-size:12px;line-height:1.2;padding:8px 6px;min-height:44px;white-space:normal;}
  .lf-toolbar{align-items:stretch;}
}

/* ── Shared card + section heading used by the restyled tabs ── */
#tab-dashboard .sh,#tab-route .sh,#tab-location-planner .sh{margin-bottom:var(--sp-4)!important;}
.vb-h2{display:flex;align-items:center;gap:10px;margin:var(--sp-6) 0 var(--sp-3);font-size:var(--fs-lg)!important;font-weight:650!important;letter-spacing:-.01em;color:var(--tx)!important;}
.vb-h2 .vb-h2-ic{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:8px;color:var(--h,var(--accent));background:color-mix(in srgb,var(--h,var(--accent)) 13%,transparent);}
.vb-h2 .vb-h2-ic .vb-ic{width:15px;height:15px;}

/* ── DASHBOARD (stage hue: run) ── */
#tab-dashboard{--h:var(--hue-run);}
#tab-dashboard #streak-widget,#tab-dashboard #benchmark-widget,#tab-dashboard #wrapped-cta,#tab-dashboard #today-widget{background:var(--s1)!important;border:1px solid var(--b1)!important;border-radius:var(--r-md)!important;box-shadow:var(--sh-1);}
#tab-dashboard #today-widget{background:radial-gradient(120% 160% at 100% 0%,color-mix(in srgb,var(--hue-run) 11%,var(--s1)) 0%,var(--s1) 60%)!important;padding:20px 22px!important;}
#tab-dashboard #today-activity-row > div{background:var(--s1)!important;border:1px solid var(--b1)!important;border-radius:12px!important;box-shadow:var(--sh-1);padding:12px!important;}
#tab-dashboard #today-activity-row [style*="font-size:"]{font-variant-numeric:tabular-nums;}
#tab-dashboard #wrapped-cta{background:linear-gradient(120deg,color-mix(in srgb,var(--hue-plan) 9%,var(--s1)),var(--s1) 70%)!important;}
#tab-dashboard #streak-benchmark-row:has(> #benchmark-widget[style*="display:none"]){grid-template-columns:minmax(0,1fr)!important;}
#tab-dashboard #streak-widget-num{color:var(--tx)!important;font-size:24px!important;}
#tab-dashboard #dash-intro-state{background:transparent!important;border:none!important;padding:0!important;margin:-4px 0 var(--sp-4)!important;color:var(--tx2)!important;max-width:70ch;}
#tab-dashboard #dash-intro-state strong{color:var(--tx)!important;}
#tab-dashboard #dash-empty-state{background:radial-gradient(120% 140% at 50% 0%,color-mix(in srgb,var(--hue-run) 12%,var(--s1)) 0%,var(--s1) 65%)!important;border:1px solid var(--b1)!important;border-radius:var(--r-lg)!important;box-shadow:var(--sh-1);padding:32px 24px!important;}
#tab-dashboard #dash-empty-state > div:first-child{font-size:0!important;width:56px;height:56px;margin:0 auto 14px!important;border-radius:16px;background:color-mix(in srgb,var(--hue-run) 15%,transparent);display:flex;align-items:center;justify-content:center;}
#tab-dashboard #dash-empty-state > div:first-child::after{content:'';width:26px;height:26px;background:var(--hue-run);-webkit-mask:var(--vb-mask-chart) center/contain no-repeat;mask:var(--vb-mask-chart) center/contain no-repeat;}
#tab-dashboard div:has(> #dash-btn-week){display:inline-flex!important;gap:2px!important;padding:4px;background:var(--s2);border:1px solid var(--b1);border-radius:12px;max-width:100%;overflow-x:auto;}
#tab-dashboard [id^="dash-btn-"]{border:none!important;background:transparent!important;color:var(--tx2)!important;min-height:32px;padding:0 14px!important;border-radius:9px!important;font-size:var(--fs-sm)!important;box-shadow:none!important;}
#tab-dashboard [id^="dash-btn-"][style*="var(--abrd)"]{background:var(--s1)!important;color:var(--tx)!important;font-weight:600!important;box-shadow:var(--sh-1)!important;}
#tab-dashboard #dash-summary{gap:var(--sp-3)!important;}
#tab-dashboard #dash-summary > div{background:var(--s1)!important;border:1px solid var(--b1)!important;border-radius:var(--r-md)!important;box-shadow:var(--sh-1);padding:16px 18px!important;text-align:left!important;transition:transform .2s var(--ease-out),box-shadow .2s var(--ease-out);}
#tab-dashboard #dash-summary > div:hover{transform:translateY(-2px);box-shadow:var(--sh-2);}
#tab-dashboard #dash-summary > div > div:first-child{letter-spacing:0!important;text-transform:none!important;font-size:var(--fs-xs)!important;color:var(--tx3)!important;}
#tab-dashboard #dash-summary > div > div:nth-child(2){font-size:26px!important;letter-spacing:-.02em;font-variant-numeric:tabular-nums;}
#tab-dashboard .vbsec{border-radius:var(--r-md);box-shadow:var(--sh-1);}
#tab-dashboard .vbsec-b > div[style*="grid-template-columns:1fr 1fr"] > div{border-radius:var(--r-md)!important;box-shadow:var(--sh-1);}

/* ── ROUTE OPTIMIZER (stage hue: run) ── */
#tab-route #route-homebase-setup,#tab-route #route-homebase-setup + div{background:var(--s1)!important;border:1px solid var(--b1)!important;border-radius:var(--r-md)!important;box-shadow:var(--sh-1);padding:18px 20px!important;}
#tab-route div[style*="text-transform:uppercase"]{text-transform:none!important;letter-spacing:0!important;font-size:var(--fs-sm)!important;color:var(--tx2)!important;font-weight:600!important;}
#tab-route #route-drivers-btns{display:inline-flex!important;gap:2px!important;padding:4px;background:var(--s2);border:1px solid var(--b1);border-radius:12px;}
#tab-route #route-drivers-btns .btn{min-width:38px;min-height:30px;border:none!important;background:transparent!important;color:var(--tx2)!important;box-shadow:none!important;border-radius:9px!important;}
#tab-route #route-drivers-btns .btn.pr{background:var(--s1)!important;color:var(--tx)!important;font-weight:650!important;box-shadow:var(--sh-1)!important;}
#tab-route #route-optimize-btn{min-height:42px;padding:0 22px!important;border-radius:999px!important;font-size:var(--fs-md)!important;}
#tab-route #route-stops-list > div:not(:first-child){background:var(--s1)!important;border:1px solid var(--b1)!important;border-radius:12px!important;box-shadow:var(--sh-1);}
#tab-route #route-results > div[style*="background:var(--s1)"]{border-radius:var(--r-md)!important;box-shadow:var(--sh-1);}
#tab-route #route-results div[style*="border-radius:50%;background:var(--accent)"]{background:var(--hue-run)!important;color:#fff!important;}
.vb-route-map{margin:0 0 var(--sp-4);background:var(--s1);border:1px solid var(--b1);border-radius:var(--r-lg);box-shadow:var(--sh-1);overflow:hidden;}
.vb-route-map[hidden]{display:none;}
.vb-rm-hd{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:14px 18px;border-bottom:1px solid var(--b1);}
.vb-rm-t{font-size:var(--fs-md);font-weight:650;color:var(--tx);}
.vb-rm-legend{display:flex;gap:8px;flex-wrap:wrap;}
.vb-rm-chip{display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 10px;border-radius:999px;background:var(--s2);font-size:var(--fs-xs);color:var(--tx2);font-variant-numeric:tabular-nums;}
.vb-rm-chip i{width:10px;height:10px;border-radius:50%;background:var(--c);}
#route-map{height:380px;width:100%;background:var(--s2);}
.vb-rm-note{padding:10px 18px;font-size:var(--fs-xs);color:var(--tx3);border-top:1px solid var(--b1);}
.vb-rm-pin{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:var(--c,#0d9488);color:#fff;font:700 12px/1 var(--font-ui);border:2px solid #fff;box-shadow:0 2px 8px rgba(16,24,40,.35);}
.vb-rm-home{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:10px;background:#0d1526;color:#fff;border:2px solid #fff;box-shadow:0 2px 8px rgba(16,24,40,.35);}
.vb-rm-home .vb-ic{width:16px;height:16px;}
@media (max-width:768px){ #route-map{height:300px;} }

/* ── LOCATION PLANNER (stage hue: plan) ── */
#tab-location-planner{--h:var(--hue-plan);}
#tab-location-planner > div[style*="max-width:720px"]{max-width:880px!important;}
#tab-location-planner label[style*="text-transform:uppercase"],#tab-location-planner div[style*="text-transform:uppercase"]{text-transform:none!important;letter-spacing:0!important;font-size:var(--fs-sm)!important;color:var(--tx2)!important;font-weight:600!important;}
#tab-location-planner div:has(> #lp-mode-saved){display:inline-flex!important;gap:2px!important;padding:4px;background:var(--s2);border:1px solid var(--b1);border-radius:12px;}
#tab-location-planner #lp-mode-saved,#tab-location-planner #lp-mode-manual{border:none!important;background:transparent!important;color:var(--tx2)!important;border-radius:9px!important;min-height:32px;padding:0 16px!important;font-weight:500!important;}
#tab-location-planner #lp-mode-saved[style*="background: var(--accent)"],#tab-location-planner #lp-mode-manual[style*="background: var(--accent)"]{background:var(--s1)!important;color:var(--tx)!important;font-weight:650!important;box-shadow:var(--sh-1);}
#tab-location-planner #lp-saved-mode,#tab-location-planner #lp-manual-mode,#tab-location-planner #lp-detail{background:var(--s1);border:1px solid var(--b1);border-radius:var(--r-md);box-shadow:var(--sh-1);padding:18px 20px;}
#tab-location-planner #lp-output > div{border-radius:var(--r-md)!important;box-shadow:var(--sh-1);}
#tab-location-planner #lp-output > div:first-child{background:radial-gradient(120% 160% at 100% 0%,color-mix(in srgb,var(--hue-plan) 13%,var(--s1)) 0%,var(--s1) 60%)!important;border:1px solid var(--b1)!important;padding:20px 22px!important;}
#tab-location-planner #lp-rev-num{color:var(--tx)!important;letter-spacing:-.025em;font-variant-numeric:tabular-nums;}
#tab-location-planner #lp-output > div:first-child div[style*="color:var(--accent)"]{color:var(--hue-plan)!important;}

/* ── PAYWALLS: one calm card on both themes ── */
.pw-overlay{background:color-mix(in srgb,var(--bg) 82%,transparent)!important;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);padding:56px 24px 32px!important;}
.pw-overlay > *{max-width:520px;}
.pw-overlay .pw-lock,#free-tier-gate .pw-lock{display:flex;align-items:center;justify-content:center;width:56px;height:56px;margin:0 auto 14px;border-radius:16px;font-size:0;color:var(--accent);background:color-mix(in srgb,var(--accent) 13%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 25%,transparent);filter:none;animation:none;}
.pw-overlay .pw-lock .vb-ic,#free-tier-gate .pw-lock .vb-ic{width:26px;height:26px;}
.pw-overlay .pw-title{color:var(--tx)!important;font-size:22px!important;font-weight:650!important;letter-spacing:-.015em;}
.pw-overlay .pw-sub{color:var(--tx2)!important;font-size:var(--fs-md)!important;}
.pw-overlay .pw-sample{background:var(--s1)!important;border-color:var(--b1)!important;border-radius:var(--r-md)!important;box-shadow:var(--sh-1);}
.pw-overlay .pw-cta{min-height:44px;padding:0 24px!important;border-radius:999px!important;color:var(--on-accent)!important;box-shadow:0 10px 22px -10px color-mix(in srgb,var(--accent) 80%,transparent);}
.pw-overlay .pw-tier{color:var(--tx3)!important;}
#free-tier-gate{background:color-mix(in srgb,var(--bg) 82%,transparent)!important;}
#free-tier-gate > div{background:var(--s1)!important;border:1px solid var(--b1)!important;border-radius:20px!important;box-shadow:var(--sh-2)!important;}
#free-tier-gate [style*="color:#e2e8f5"]{color:var(--tx)!important;}
#free-tier-gate [style*="color:#c3cfe5"]{color:var(--tx2)!important;}
#free-tier-gate [style*="color:#8898bb"]{color:var(--tx3)!important;}
#free-tier-gate [style*="color:#00e5a0"]{color:var(--accent)!important;}
#free-tier-gate [style*="text-transform:uppercase"]{letter-spacing:.04em!important;}
#free-tier-gate [style*="background:rgba(0,229,160,.07)"]{background:var(--adim)!important;border-color:var(--abrd)!important;}
#free-tier-gate button[style*="background:#00e5a0"]{background:var(--accent)!important;color:var(--on-accent)!important;border-radius:999px!important;box-shadow:0 10px 22px -10px color-mix(in srgb,var(--accent) 80%,transparent)!important;}
