/* Ryde247 Business Dashboard — biz.css (Phase 1)
   Namespaced with biz- prefix. Dark sidebar + light workspace. */

:root{
  --biz-orange:#FF5A00;
  --biz-orange-dark:#d94c00;
  --biz-orange-soft:#fff1e8;
  --biz-dark:#111111;
  --biz-dark-2:#1c1c1c;
  --biz-dark-3:#2a2a2a;
  --biz-bg:#F5F5F5;
  --biz-card:#FFFFFF;
  --biz-border:#e8e4dc;
  --biz-text:#1c1712;
  --biz-muted:#6b655c;
  --biz-green:#1e7e34;
  --biz-green-bg:#e9f7ee;
  --biz-red:#c0392b;
  --biz-red-bg:#fdecea;
  --biz-blue:#1a5fb4;
  --biz-blue-bg:#e8f1fd;
  --biz-radius:14px;
  --biz-shadow:0 1px 3px rgba(0,0,0,.06);
}

#bizApp{ font-family:'Manrope',system-ui,sans-serif; color:var(--biz-text); background:var(--biz-bg); min-height:100vh; }
#bizApp *{ box-sizing:border-box; }

/* ---------- shell ---------- */
.biz-shell{ display:flex; min-height:100vh; }

/* ---------- sidebar ---------- */
.biz-sidebar{
  width:248px; flex:0 0 248px; background:var(--biz-dark); color:#fff;
  display:flex; flex-direction:column; position:sticky; top:0; height:100vh; z-index:50;
}
.biz-brand{ padding:20px 20px 14px; display:flex; align-items:center; gap:10px; }
.biz-brand .logo{ font-weight:800; font-size:1.35rem; letter-spacing:-.02em; }
.biz-brand .logo b{ color:var(--biz-orange); }
.biz-brand small{ display:block; font-size:.68rem; color:#9a958a; font-weight:600; letter-spacing:.08em; text-transform:uppercase; }
.biz-nav{ flex:1; overflow-y:auto; padding:6px 12px; }
.biz-nav button{
  display:flex; align-items:center; gap:12px; width:100%;
  background:transparent; border:0; color:#c9c4b8; cursor:pointer;
  padding:11px 12px; border-radius:10px; font-size:.9rem; font-weight:600;
  font-family:inherit; text-align:left; margin-bottom:2px;
}
.biz-nav button svg{ width:19px; height:19px; flex:0 0 19px; opacity:.85; }
.biz-nav button:hover{ background:var(--biz-dark-2); color:#fff; }
.biz-nav button.on{ background:var(--biz-orange); color:#fff; font-weight:800; }
.biz-nav button.on svg{ opacity:1; }
.biz-side-foot{ padding:14px; border-top:1px solid var(--biz-dark-3); }
.biz-profile{ display:flex; align-items:center; gap:10px; margin-bottom:10px; }
.biz-avatar{
  width:38px; height:38px; border-radius:50%; background:var(--biz-orange);
  display:flex; align-items:center; justify-content:center; font-weight:800; font-size:.9rem; color:#fff; flex:0 0 38px;
}
.biz-profile .nm{ font-size:.86rem; font-weight:800; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:130px; }
.biz-profile .tp{ font-size:.7rem; color:#9a958a; }
.biz-seg{ display:flex; background:var(--biz-dark-2); border-radius:10px; padding:3px; margin-bottom:10px; }
.biz-seg button{ flex:1; border:0; background:transparent; color:#9a958a; padding:8px 4px; border-radius:7px; font-size:.74rem; font-weight:800; cursor:pointer; font-family:inherit; }
.biz-seg button.on{ background:var(--biz-dark-3); color:#fff; }
.biz-support-btn{
  width:100%; background:transparent; border:1px solid var(--biz-dark-3); color:#c9c4b8;
  border-radius:10px; padding:10px; font-size:.82rem; font-weight:700; cursor:pointer; font-family:inherit;
}
.biz-support-btn:hover{ border-color:var(--biz-orange); color:#fff; }

/* ---------- main / topbar ---------- */
.biz-main{ flex:1; min-width:0; display:flex; flex-direction:column; }
.biz-topbar{
  background:var(--biz-card); border-bottom:1px solid var(--biz-border);
  padding:14px 28px; display:flex; align-items:center; gap:14px;
  position:sticky; top:0; z-index:40;
}
.biz-hamburger{ display:none; background:none; border:0; font-size:1.5rem; cursor:pointer; color:var(--biz-text); padding:4px 8px; }
.biz-greet h1{ font-size:1.25rem; font-weight:800; margin:0; letter-spacing:-.01em; }
.biz-greet p{ margin:2px 0 0; font-size:.83rem; color:var(--biz-muted); }
.biz-topbar .spacer{ flex:1; }
.biz-locsel{
  display:flex; align-items:center; gap:8px; border:1px solid var(--biz-border);
  border-radius:10px; padding:8px 12px; background:#fff; font-size:.85rem; font-weight:700;
}
.biz-locsel select{ border:0; background:transparent; font-size:.85rem; font-weight:700; font-family:inherit; color:var(--biz-text); cursor:pointer; max-width:180px; }
.biz-locsel select:focus{ outline:none; }
.biz-bell{ position:relative; background:var(--biz-bg); border:1px solid var(--biz-border); border-radius:50%; width:42px; height:42px; cursor:pointer; font-size:1.1rem; display:flex; align-items:center; justify-content:center; }
.biz-bell .dot{ position:absolute; top:8px; right:9px; background:var(--biz-orange); color:#fff; font-size:.6rem; font-weight:800; min-width:17px; height:17px; border-radius:99px; display:flex; align-items:center; justify-content:center; padding:0 4px; }
.biz-notif-panel{
  position:absolute; top:60px; right:20px; width:340px; max-width:calc(100vw - 40px);
  background:#fff; border:1px solid var(--biz-border); border-radius:var(--biz-radius);
  box-shadow:0 12px 40px rgba(0,0,0,.14); z-index:60; max-height:420px; overflow-y:auto;
}
.biz-notif-panel h3{ margin:0; padding:14px 16px 8px; font-size:.95rem; }
.biz-notif{ padding:10px 16px; border-top:1px solid #f1ede7; font-size:.83rem; cursor:pointer; }
.biz-notif:hover{ background:#faf8f5; }
.biz-notif.unread{ background:var(--biz-orange-soft); }
.biz-notif .t{ font-weight:800; margin-bottom:2px; }
.biz-notif time{ font-size:.72rem; color:var(--biz-muted); }

.biz-content{ padding:26px 28px 60px; max-width:1280px; width:100%; margin:0 auto; }
.biz-scrim{ display:none; }

/* ---------- cards / stats ---------- */
.biz-grid4{ display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin-bottom:22px; }
.biz-card{ background:var(--biz-card); border:1px solid var(--biz-border); border-radius:var(--biz-radius); box-shadow:var(--biz-shadow); padding:20px; }
.biz-stat .lbl{ font-size:.78rem; color:var(--biz-muted); font-weight:700; margin-bottom:6px; }
.biz-stat .val{ font-size:1.7rem; font-weight:800; letter-spacing:-.02em; }
.biz-stat .cmp{ font-size:.76rem; font-weight:700; margin-top:6px; }
.biz-stat .cmp.up{ color:var(--biz-green); }
.biz-stat .cmp.down{ color:var(--biz-red); }
.biz-stat .cmp.flat{ color:var(--biz-muted); }

.biz-cols3{ display:grid; grid-template-columns:1.35fr 1fr 1fr; gap:16px; margin-bottom:22px; align-items:start; }
.biz-cols2{ display:grid; grid-template-columns:1.4fr 1fr; gap:16px; margin-bottom:22px; }
.biz-card h2{ font-size:1.02rem; font-weight:800; margin:0 0 14px; display:flex; align-items:center; justify-content:space-between; }
.biz-card h2 .link{ font-size:.8rem; color:var(--biz-orange); font-weight:800; background:none; border:0; cursor:pointer; font-family:inherit; }
.biz-card h3{ font-size:.92rem; font-weight:800; margin:0 0 10px; }

.biz-live{ display:flex; flex-direction:column; gap:10px; }
.biz-deliv{ border:1px solid var(--biz-border); border-radius:12px; padding:13px 14px; }
.biz-deliv .ref{ font-weight:800; font-size:.88rem; display:flex; justify-content:space-between; align-items:center; gap:8px; margin-bottom:6px; }
.biz-deliv .route{ font-size:.83rem; color:var(--biz-muted); margin-bottom:8px; }
.biz-deliv .meta{ display:flex; gap:8px; align-items:center; flex-wrap:wrap; font-size:.76rem; color:var(--biz-muted); }
.biz-deliv .acts{ margin-top:10px; }

.biz-pill{ display:inline-block; font-size:.68rem; font-weight:800; letter-spacing:.03em; border-radius:999px; padding:4px 10px; text-transform:capitalize; white-space:nowrap; }
.biz-pill.st-created,.biz-pill.st-payment_pending,.biz-pill.st-confirmed{ background:#eef0f3; color:#4a5568; }
.biz-pill.st-assigned,.biz-pill.st-picked_up,.biz-pill.st-in_transit{ background:var(--biz-orange-soft); color:var(--biz-orange-dark); }
.biz-pill.st-delivered{ background:var(--biz-green-bg); color:var(--biz-green); }
.biz-pill.st-cancelled,.biz-pill.st-failed{ background:var(--biz-red-bg); color:var(--biz-red); }
.biz-pill.st-open{ background:var(--biz-blue-bg); color:var(--biz-blue); }
.biz-pill.st-paid{ background:var(--biz-green-bg); color:var(--biz-green); }
.biz-pill.st-active{ background:var(--biz-green-bg); color:var(--biz-green); }

/* ---------- delivery progress stepper ---------- */
.biz-progress{ display:flex; align-items:flex-start; gap:0; margin:12px 0 4px; overflow-x:auto; padding-bottom:4px; }
.bp-step{ display:flex; flex-direction:column; align-items:center; gap:4px; min-width:52px; flex-shrink:0; }
.bp-dot{ width:24px; height:24px; border-radius:50%; background:#ece7dd; color:#a09a8c; font-size:.72rem; font-weight:800; display:flex; align-items:center; justify-content:center; }
.bp-step.done .bp-dot{ background:var(--biz-green); color:#fff; }
.bp-step.now .bp-dot{ background:var(--biz-orange); color:#fff; box-shadow:0 0 0 4px rgba(255,90,0,.15); }
.bp-lbl{ font-size:.62rem; color:var(--biz-muted); font-weight:700; text-align:center; line-height:1.2; }
.bp-step.done .bp-lbl{ color:var(--biz-green); }
.bp-step.now .bp-lbl{ color:var(--biz-orange); }
.bp-line{ flex:1; height:2px; background:#ece7dd; margin-top:11px; min-width:8px; }
.bp-line.done{ background:var(--biz-green); }
.biz-eta{ display:inline-block; background:#FFF3EC; color:#c25100; font-size:.75rem; font-weight:800; padding:3px 10px; border-radius:20px; margin-left:8px; }
.biz-deliv .route{ margin:6px 0 2px; }
.biz-pill.st-pending,.biz-pill.st-not_configured{ background:#eef0f3; color:#4a5568; }

/* T-12: pills/badges sharing a line with plain text need an explicit
   gap; a lone source space is too slight to read as a separator. */
.biz-kv strong .biz-pill{ margin-inline-end:6px; }
.biz-loccard .nm .biz-pill{ margin-inline-start:6px; }
.bw-loc-chip strong em{ margin-inline-start:6px; }
.nb-badge + small{ margin-inline-start:6px; }
strong + .nb-badge{ margin-inline-start:6px; }

.biz-order-row{ display:flex; align-items:center; gap:12px; padding:8px 0; border-bottom:1px solid #f1ede7; font-size:.86rem; }
.biz-order-row:last-child{ border-bottom:0; padding-bottom:0; }
.biz-order-row .grow{ flex:1; min-width:0; }
.biz-order-row .tt{ font-weight:800; }
.biz-order-row .sub{ font-size:.76rem; color:var(--biz-muted); }
.biz-order-row .chev{ color:#b9b4a8; }

/* Recent-orders spacing (owner photo, 2026-10-28): the public
   stylesheet's landing-page rule `.biz-card div{ padding:20px }`
   (styles.css — written for the marketing image cards) leaks into
   the dashboard, whose cards share the .biz-card class. Its
   specificity (0,1,1) BEATS .biz-order-row's own padding (0,1,0),
   and it hits EVERY div in the row — the row, .grow and .tt/.sub
   each silently took 20px a side, crushing the text column of a
   dashboard-width row from ~210px to ~40px (addresses and dates
   wrapped word-by-word, the pill pushed out of line). Neutralize
   it for order rows wherever they render (dashboard Recent orders,
   Top locations, Reports): the row keeps its designed 8px vertical
   padding and its inner divs take none. The Orders page list is a
   table and never used this class. */
.biz-card .biz-order-row{ padding:8px 0; }
.biz-card .biz-order-row div{ padding:0; }

/* Dashboard Recent orders: a stacked row that reads at the card's
   real width — order ref + status pill on the top line, the route
   on its own line(s), date · price underneath. Scoped to the .rec
   variant bizRecentList emits; the other .biz-order-row uses keep
   the single-line flex layout above. */
.biz-order-row.rec{ display:block; padding:10px 0; }
.biz-order-row.rec .top{ display:flex; align-items:center; gap:8px; }
.biz-order-row.rec .top .tt{ flex:1; min-width:0; }
.biz-order-row.rec .route{ margin-top:3px; font-size:.84rem; color:var(--biz-muted); }
.biz-order-row.rec .meta{ margin-top:2px; font-size:.76rem; color:var(--biz-muted); }

.biz-kv{ display:flex; justify-content:space-between; gap:10px; padding:9px 0; border-bottom:1px solid #f1ede7; font-size:.86rem; }
.biz-kv:last-child{ border-bottom:0; }
.biz-kv span:first-child{ color:var(--biz-muted); }
.biz-kv strong{ font-weight:800; text-align:right; }
.biz-qlink{ display:flex; align-items:center; gap:10px; width:100%; background:none; border:0; padding:10px 4px; font-size:.86rem; font-weight:700; color:var(--biz-text); cursor:pointer; font-family:inherit; text-align:left; border-bottom:1px solid #f1ede7; }
.biz-qlink:last-child{ border-bottom:0; }
.biz-qlink:hover{ color:var(--biz-orange); }
.biz-qlink .chev{ margin-left:auto; color:#b9b4a8; }

/* ---------- quick actions ---------- */
.biz-qa{ display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin-bottom:22px; }
.biz-qa button{
  background:var(--biz-card); border:1px solid var(--biz-border); border-radius:var(--biz-radius);
  box-shadow:var(--biz-shadow); padding:22px 14px; cursor:pointer; font-family:inherit;
  display:flex; flex-direction:column; align-items:center; gap:10px;
  font-size:.85rem; font-weight:800; color:var(--biz-text);
}
.biz-qa button:hover{ border-color:var(--biz-orange); }
.biz-qa button:disabled{ opacity:.45; cursor:not-allowed; }
.biz-qa .ico{ width:44px; height:44px; border-radius:12px; background:var(--biz-orange-soft); display:flex; align-items:center; justify-content:center; }
.biz-qa .ico svg{ width:22px; height:22px; }
.biz-qa small{ font-weight:600; color:var(--biz-muted); font-size:.72rem; }

/* ---------- buttons / forms ---------- */
.biz-btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  border:1px solid var(--biz-border); background:#fff; color:var(--biz-text);
  border-radius:10px; padding:10px 18px; font-size:.86rem; font-weight:800;
  cursor:pointer; font-family:inherit;
}
.biz-btn:hover{ border-color:var(--biz-text); }
.biz-btn:disabled{ opacity:.5; cursor:not-allowed; }
.biz-btn-primary{ background:var(--biz-orange); border-color:var(--biz-orange); color:#fff; }
.biz-btn-primary:hover{ background:var(--biz-orange-dark); border-color:var(--biz-orange-dark); }
.biz-btn-dark{ background:var(--biz-dark); border-color:var(--biz-dark); color:#fff; }
.biz-btn-sm{ padding:7px 12px; font-size:.78rem; }
.biz-btn-danger{ color:var(--biz-red); border-color:#f0c9c4; }
.biz-btn-danger:hover{ background:var(--biz-red-bg); border-color:var(--biz-red); }

.biz-field{ margin-bottom:14px; }
.biz-field label{ display:block; font-size:.7rem; font-weight:800; letter-spacing:.06em; color:var(--biz-muted); margin-bottom:6px; text-transform:uppercase; }
.biz-field input,.biz-field select,.biz-field textarea{
  width:100%; padding:11px 13px; border:1.5px solid var(--biz-border); border-radius:10px;
  font-size:.9rem; font-family:inherit; background:#fff; color:var(--biz-text);
}
.biz-field input:focus,.biz-field select:focus,.biz-field textarea:focus{ outline:none; border-color:var(--biz-orange); }
.biz-field textarea{ min-height:90px; resize:vertical; }
.biz-fgrid{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.biz-fgrid3{ display:grid; grid-template-columns:1fr 1fr 1fr; gap:12px; }
.biz-hint{ font-size:.76rem; color:var(--biz-muted); margin-top:5px; }
.biz-err{ background:var(--biz-red-bg); color:var(--biz-red); border-radius:10px; padding:11px 14px; font-size:.84rem; font-weight:600; margin:12px 0; }
.biz-ok{ background:var(--biz-green-bg); color:var(--biz-green); border-radius:10px; padding:11px 14px; font-size:.84rem; font-weight:600; margin:12px 0; }
.biz-notice{ background:#f4f1ec; border-radius:10px; padding:12px 14px; font-size:.84rem; color:var(--biz-muted); margin:12px 0; }

.biz-seg{ display:flex; background:#efece6; border-radius:11px; padding:4px; margin-bottom:16px; }
.biz-seg button{ flex:1; border:0; background:transparent; padding:10px; border-radius:8px; font-weight:800; font-size:.85rem; color:var(--biz-muted); cursor:pointer; font-family:inherit; }
.biz-seg button.on{ background:#fff; color:var(--biz-text); box-shadow:0 2px 6px rgba(0,0,0,.08); }

/* ---------- tables ---------- */
.biz-tablewrap{ overflow-x:auto; }
table.biz-table{ width:100%; border-collapse:collapse; font-size:.85rem; }
table.biz-table th{ text-align:left; font-size:.68rem; text-transform:uppercase; letter-spacing:.06em; color:var(--biz-muted); padding:10px 12px; border-bottom:2px solid var(--biz-border); white-space:nowrap; }
table.biz-table td{ padding:12px; border-bottom:1px solid #f1ede7; vertical-align:middle; }
table.biz-table tr:last-child td{ border-bottom:0; }
table.biz-table tr:hover td{ background:#faf8f5; }

.biz-toolbar{ display:flex; gap:10px; flex-wrap:wrap; margin-bottom:16px; align-items:center; }
.biz-toolbar input,.biz-toolbar select{ padding:10px 12px; border:1.5px solid var(--biz-border); border-radius:10px; font-size:.85rem; font-family:inherit; background:#fff; }
.biz-toolbar .grow{ flex:1; min-width:160px; }
.biz-pager{ display:flex; gap:8px; align-items:center; justify-content:center; margin-top:18px; font-size:.84rem; color:var(--biz-muted); }

/* ---------- chart ---------- */
.biz-chart{ width:100%; height:auto; display:block; }
.biz-legend{ display:flex; gap:18px; font-size:.78rem; color:var(--biz-muted); margin-bottom:8px; }
.biz-legend i{ display:inline-block; width:11px; height:11px; border-radius:3px; margin-right:6px; vertical-align:-1px; }

/* ---------- modal ---------- */
.biz-modalwrap{ position:fixed; inset:0; background:rgba(0,0,0,.45); z-index:100; display:flex; align-items:center; justify-content:center; padding:18px; }
.biz-modal{ background:#fff; border-radius:16px; max-width:520px; width:100%; max-height:90vh; overflow-y:auto; padding:24px; }
.biz-modal h2{ margin:0 0 6px; font-size:1.15rem; }
.biz-modal .x{ float:right; background:none; border:0; font-size:1.4rem; cursor:pointer; color:var(--biz-muted); }

/* ---------- states ---------- */
.biz-empty{ text-align:center; padding:34px 18px; color:var(--biz-muted); }
.biz-empty .big{ font-size:2rem; margin-bottom:8px; }
.biz-empty h3{ color:var(--biz-text); margin:0 0 6px; font-size:1rem; }
.biz-empty p{ margin:0 0 14px; font-size:.86rem; }
.biz-errbox{ background:var(--biz-red-bg); border-radius:var(--biz-radius); padding:22px; text-align:center; color:var(--biz-red); font-size:.9rem; }
.biz-skel{ border-radius:12px; background:linear-gradient(90deg,#eee 25%,#f7f7f7 50%,#eee 75%); background-size:200% 100%; animation:bizsh 1.2s infinite; min-height:70px; margin-bottom:12px; }
@keyframes bizsh{ to{ background-position:-200% 0; } }
.biz-access{ max-width:460px; margin:80px auto; text-align:center; }

.biz-sec-head{ display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:18px; flex-wrap:wrap; }
.biz-sec-head h1{ font-size:1.4rem; margin:0; letter-spacing:-.01em; }
.biz-sec-head p{ margin:4px 0 0; color:var(--biz-muted); font-size:.88rem; }

.biz-loccard{ border:1px solid var(--biz-border); border-radius:12px; padding:16px; margin-bottom:12px; }
.biz-loccard .top{ display:flex; justify-content:space-between; align-items:flex-start; gap:10px; margin-bottom:6px; }
.biz-loccard .nm{ font-weight:800; font-size:.95rem; }
.biz-loccard .ad{ font-size:.83rem; color:var(--biz-muted); }
.biz-loccard .acts{ display:flex; gap:8px; margin-top:12px; flex-wrap:wrap; }

/* TASK7: business support live chat (same system as the website
   bubble + backoffice queue) + the Support nav unread badge. */
.biz-nav-badge{ background:#dc2626; color:#fff; border-radius:999px; font-size:.68rem; font-weight:800; line-height:1; padding:3px 7px; margin-left:auto; }
.bz-ctx{ display:flex; gap:12px; flex-wrap:wrap; }
.bz-ctx .biz-field{ flex:1 1 200px; }
.bz-thread{ height:380px; overflow-y:auto; display:flex; flex-direction:column; gap:8px; padding:12px; background:#faf8f4; border:1px solid var(--biz-border); border-radius:12px; }
.bz-msg{ max-width:82%; padding:9px 12px; border-radius:14px; font-size:.92rem; line-height:1.45; white-space:pre-wrap; word-break:break-word; }
.bz-msg .bz-who{ display:block; font-size:.66rem; font-weight:800; letter-spacing:.05em; text-transform:uppercase; opacity:.7; margin-bottom:2px; }
.bz-msg.mine{ align-self:flex-end; background:var(--biz-orange); color:#fff; border-bottom-right-radius:4px; }
.bz-msg.bot{ align-self:flex-start; background:#fff; border:1px solid var(--biz-border); border-bottom-left-radius:4px; }
.bz-msg.agent{ align-self:flex-start; background:#fef3c7; border:1px solid #f59e0b; border-bottom-left-radius:4px; }
.bz-status{ font-size:.8rem; color:var(--biz-muted); margin:10px 2px 0; }
.bz-composer{ display:flex; gap:8px; margin-top:10px; }
.bz-composer input{ flex:1; }
.biz-ticket{ border:1px solid var(--biz-border); border-radius:12px; padding:14px 16px; margin-bottom:10px; }
.biz-ticket .hd{ display:flex; justify-content:space-between; gap:10px; align-items:center; margin-bottom:6px; }
.biz-ticket .sb{ font-weight:800; font-size:.9rem; }
.biz-ticket .ms{ font-size:.84rem; color:var(--biz-muted); white-space:pre-wrap; }
.biz-ticket time{ font-size:.72rem; color:var(--biz-muted); }

.biz-api-gate{ text-align:center; padding:44px 24px; }
.biz-api-gate .big{ font-size:2.4rem; margin-bottom:10px; }
.biz-api-gate h2{ margin:0 0 8px; }
.biz-api-gate p{ color:var(--biz-muted); font-size:.9rem; max-width:460px; margin:0 auto 8px; }
.biz-steps{ text-align:left; max-width:460px; margin:18px auto 0; font-size:.86rem; }
.biz-steps li{ margin-bottom:8px; }

.biz-quote{ background:#faf8f5; border:1px dashed #d8d2c6; border-radius:12px; padding:16px; margin:14px 0; }
.biz-trackbox{ background:var(--biz-dark); color:#fff; border-radius:12px; padding:18px; text-align:center; margin-top:16px; }
.biz-trackbox .code{ font-family:monospace; font-size:1.15rem; letter-spacing:.06em; background:var(--biz-dark-3); border-radius:8px; padding:10px; margin:10px 0; display:block; }
.biz-trackbox a{ color:var(--biz-orange); font-weight:800; }

/* ---------- responsive ---------- */
@media (max-width:1280px){
  body.biz-mode .biz-cols3{ grid-template-columns:1fr 1fr; }
}
@media (max-width:1100px){
  .biz-grid4{ grid-template-columns:repeat(2,1fr); }
  .biz-cols3{ grid-template-columns:1fr 1fr; }
  .biz-qa{ grid-template-columns:repeat(2,1fr); }
}
@media (max-width:900px){
  .biz-sidebar{
    position:fixed; left:0; top:0; bottom:0; height:100dvh;
    transform:translateX(-105%); transition:transform .25s ease;
    box-shadow:8px 0 30px rgba(0,0,0,.25);
  }
  .biz-sidebar.open{ transform:translateX(0); }
  .biz-scrim{ display:block; position:fixed; inset:0; background:rgba(0,0,0,.45); z-index:45; opacity:0; pointer-events:none; transition:opacity .25s; }
  .biz-scrim.on{ opacity:1; pointer-events:auto; }
  .biz-hamburger{ display:block; }
  .biz-topbar{ padding:12px 16px; }
  .biz-content{ padding:18px 16px 60px; }
  .biz-greet h1{ font-size:1.05rem; }
  .biz-locsel select{ max-width:110px; }
  /* Specificity must tie the ≤1280px `body.biz-mode .biz-cols3`
     two-column rule (0,2,1) and win by source order — as a plain
     class selector (0,1,0) this single-column rule silently lost
     at every phone width and the dashboard cards stayed squeezed
     into two narrow columns (2026-10-28 spacing fix). */
  body.biz-mode .biz-cols3,.biz-cols2{ grid-template-columns:1fr; }
  .biz-fgrid,.biz-fgrid3{ grid-template-columns:1fr; }
}
@media (max-width:520px){
  .biz-grid4{ grid-template-columns:1fr 1fr; gap:10px; }
  .biz-stat .val{ font-size:1.35rem; }
  .biz-qa{ grid-template-columns:1fr 1fr; gap:10px; }
  .biz-qa button{ padding:16px 8px; font-size:.78rem; }
}

/* ---------- biz full-screen mode (hides site chrome) ---------- */
body.biz-mode > header,
body.biz-mode > footer,
body.biz-mode .mobile-nav,
body.biz-mode #helpBtn { display:none !important; }
body.biz-mode #view-biz { padding:0; }
body.biz-mode { background:#F5F5F5; }

/* ---------- prototype-matching polish ---------- */
.biz-stat .stat-top{ display:flex; align-items:center; gap:10px; margin-bottom:10px; }
.biz-stat .stat-ic{ width:38px; height:38px; border-radius:12px; display:flex; align-items:center; justify-content:center; flex:none; }
.biz-stat .stat-ic svg{ width:22px; height:22px; }
.biz-stat .lbl{ font-size:.82rem; color:#6b655c; font-weight:600; }
.biz-stat .val{ font-size:1.9rem; font-weight:800; letter-spacing:-.5px; margin:2px 0 6px; }
.biz-avatar.sm{ width:38px; height:38px; font-size:.8rem; border-radius:50%; background:#E8E4DC; display:flex; align-items:center; justify-content:center; font-weight:700; color:#555; flex:none; }
.biz-create-top{ padding:12px 22px; font-size:.95rem; border-radius:12px; white-space:nowrap; }
.biz-help-lbl{ font-size:.78rem; color:#8a8478; margin:14px 0 8px; }
.biz-topbar{ display:flex; align-items:center; gap:14px; padding:18px 28px; }
.biz-topbar .spacer{ flex:1; }
@media (max-width:900px){
  .biz-create-top{ display:none; }
  .biz-topbar{ padding:14px 16px; gap:10px; }
  /* BIZ-E2E-3 (2026-11-02): at phone widths the topbar's flex row
     could not shrink below its min-content (~422px at a 390px
     viewport): the greeting block's automatic minimum size held it
     open and pushed the avatar 32px off-canvas, giving the whole
     dashboard a horizontal scroll. Let the greeting shrink with an
     ellipsis, and narrow the location filter, so the row fits.
     Desktop rendering is untouched (this block is ≤900px only). */
  .biz-greet{ min-width:0; }
  .biz-greet h1, .biz-greet p{ white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .biz-locsel{ padding:8px 10px; }
  .biz-locsel select{ max-width:84px; }
}

/* ---------- address suggestions ---------- */
.addr-suggest{ position:absolute; left:0; right:0; top:100%; z-index:60; background:#fff; border:1px solid #e8e4dc; border-radius:12px; margin-top:6px; box-shadow:0 12px 32px rgba(0,0,0,.14); overflow:hidden; max-height:260px; overflow-y:auto; }
.addr-suggest.hidden{ display:none; }
.addr-suggest button{ display:block; width:100%; text-align:left; padding:13px 16px; background:#fff; border:0; border-bottom:1px solid #f0ece4; font-size:.9rem; cursor:pointer; font-family:inherit; }
.addr-suggest button:last-child{ border-bottom:0; }
.addr-suggest button:hover{ background:#FFF3EC; }

/* ---------- logout ---------- */
.biz-logout-btn{ width:100%; margin-top:10px; padding:11px 14px; border-radius:12px; border:1px solid #2c2c2c; background:transparent; color:#b9b2a6; font-family:inherit; font-size:.85rem; font-weight:700; cursor:pointer; display:flex; align-items:center; justify-content:center; gap:8px; }
.biz-logout-btn:hover{ border-color:#FF5A00; color:#FF5A00; }
.biz-muted-sm{ font-size:.78rem; color:var(--biz-muted); font-style:italic; }

/* ================= NEW BILLING DESIGN (ported 2026-10-10) ================= */
.nb-page-head{display:flex;align-items:center;justify-content:space-between;gap:25px;margin-bottom:15px}
.nb-page-head h1{font-size:26px;line-height:1.15;letter-spacing:-.7px;margin:0 0 5px}
.nb-page-head p{margin:0;color:var(--biz-muted);font-size:12px}
.nb-billing-mode{display:flex;align-items:center;gap:12px}
.nb-mode-copy{display:grid;grid-template-columns:32px auto;align-items:center;gap:10px}
.nb-mode-icon{width:32px;height:32px;border-radius:8px;background:#FFF3EC;color:var(--biz-orange);display:grid;place-items:center}
.nb-mode-copy b{font-size:12px;display:block}
.nb-mode-copy strong{font-size:13px}
.nb-mode-copy small{color:var(--biz-muted);font-size:9px;display:block}
.nb-stats{display:grid;grid-template-columns:1.08fr 1fr 1fr 1fr;gap:12px}
.nb-stat{background:#fff;border:1px solid var(--biz-border);border-radius:10px;padding:15px;min-height:106px;box-shadow:var(--biz-shadow);display:flex;gap:12px;position:relative}
.nb-stat.primary{background:linear-gradient(120deg,#eaf9ef,#fff);border-color:transparent}
.nb-stat.primary.due{background:linear-gradient(120deg,#fff2df,#fff)}
.nb-stat-ico{width:38px;height:38px;border-radius:50%;background:#FFF3EC;color:var(--biz-orange);display:grid;place-items:center;flex-shrink:0}
.primary .nb-stat-ico{background:#1bac61;color:#fff}
.nb-eyebrow{color:var(--biz-muted);font-size:10px;font-weight:650;margin-bottom:2px}
.nb-stat.primary .nb-eyebrow{color:#176f43}
.nb-stat.primary.due .nb-eyebrow{color:#a85816}
.nb-stat.primary.due .nb-stat-ico{background:var(--biz-orange)}
.nb-stat strong{display:block;font-size:15px;line-height:1.25}
.nb-stat .nb-big{font-size:19px}
.nb-stat small{font-size:10px;color:var(--biz-muted)}
.nb-splitline{display:flex;justify-content:space-between;align-items:end;gap:12px}
.nb-badge{display:inline-flex;align-items:center;border-radius:5px;padding:3px 8px;font-size:10px;font-weight:700}
.nb-badge.paid{color:#11723f;background:#eaf9ef}
.nb-badge.unpaid{color:#a85816;background:#fff2df}
.nb-tabs{display:flex;gap:26px;border-bottom:1px solid var(--biz-border);margin-top:10px}
.nb-tabs button{border:0;background:transparent;padding:14px 2px 10px;color:var(--biz-muted);font-size:12px;white-space:nowrap;border-bottom:2px solid transparent;cursor:pointer}
.nb-tabs button.active{color:var(--biz-text);border-color:var(--biz-orange);font-weight:700}
.nb-tab-panel{display:none}
.nb-tab-panel.active{display:block}
.nb-card{background:#fff;border:1px solid var(--biz-border);box-shadow:var(--biz-shadow);border-radius:11px}
.nb-pay-grid{display:grid;grid-template-columns:1.8fr .72fr;gap:12px;margin-top:14px}
.nb-pay-card{padding:14px}
.nb-section-title{font-size:15px;margin:0;font-weight:800;letter-spacing:-.2px}
.nb-pay-inner{display:grid;grid-template-columns:1.15fr 1fr;gap:16px;margin-top:12px}
.nb-no-due{background:#eaf9ef;border-radius:8px;min-height:68px;padding:13px;display:flex;align-items:center;gap:12px}
.nb-no-due.balance-due{background:#fff2df}
.nb-check{width:28px;height:28px;border-radius:50%;background:#1bac61;color:#fff;display:grid;place-items:center;flex-shrink:0;font-weight:800}
.balance-due .nb-check{background:var(--biz-orange)}
.nb-no-due b{font-size:12px;display:block}
.nb-no-due span{font-size:10px;color:var(--biz-muted)}
.balance-due .nb-solid-orange{margin-left:auto}
.nb-solid-orange{border:1px solid var(--biz-orange);background:var(--biz-orange);color:#fff;border-radius:7px;height:34px;padding:0 13px;font-size:11px;font-weight:750;cursor:pointer}
.nb-solid-orange:hover{background:#dd4f11}
.nb-outline-orange{border:1px solid var(--biz-orange);color:var(--biz-orange);background:#fff;border-radius:7px;height:34px;padding:0 13px;font-size:11px;font-weight:750;cursor:pointer}
.nb-outline-orange:hover{background:#FFF3EC}
.nb-ghost{border:1px solid var(--biz-border);background:#fff;border-radius:7px;height:34px;padding:0 13px;font-size:11px;font-weight:750;cursor:pointer}
.nb-etransfer{padding:15px;display:flex;gap:13px}
.nb-etransfer h3{font-size:13px;margin:0 0 5px}
.nb-etransfer p{font-size:10px;color:var(--biz-muted);margin:0 0 2px}
.nb-etransfer a{font-weight:800;color:var(--biz-orange);text-decoration:none;font-size:12px}
.nb-table-card{margin-top:12px;overflow:hidden}
.nb-card-head{padding:13px 15px 9px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.nb-text-link{border:0;background:transparent;color:var(--biz-orange);font-weight:700;font-size:11px;padding:5px;cursor:pointer}
.nb-table-wrap{padding:0 12px 10px;overflow-x:auto}
.nb-table-wrap table{border-collapse:collapse;width:100%;font-size:10px}
.nb-table-wrap thead{background:#fafbfc;color:var(--biz-muted);text-align:left}
.nb-table-wrap th{font-weight:650;padding:9px;white-space:nowrap}
.nb-table-wrap td{padding:8px 9px;border-bottom:1px solid var(--biz-border);white-space:nowrap}
.nb-table-wrap tbody tr:last-child td{border-bottom:0}
.nb-table-wrap td strong{font-size:10px}
.nb-actions{display:flex;gap:6px}
.nb-table-btn{border:1px solid var(--biz-border);background:#fff;border-radius:5px;font-size:9px;padding:5px 9px;cursor:pointer}
.nb-table-btn.pay{background:var(--biz-orange);border-color:var(--biz-orange);color:#fff}
.nb-route{color:var(--biz-muted)}
.nb-lower-grid{display:grid;grid-template-columns:1.55fr .85fr;gap:12px;margin-top:12px}
.nb-lower-grid .nb-table-card{margin-top:0}
.nb-filter{height:31px;border:1px solid var(--biz-border);background:#fff;border-radius:6px;font-size:10px;padding:0 26px 0 9px}
.nb-settings-card{overflow:hidden}
.nb-settings-card>.nb-section-title{padding:14px 15px 9px}
.nb-setting-row{padding:10px 14px;border-top:1px solid var(--biz-border);display:grid;grid-template-columns:25px 1fr auto;gap:8px;align-items:start}
.nb-setting-row.no-icon{grid-template-columns:1fr auto}
.nb-setting-row b{display:block;font-size:10px}
.nb-setting-row span,.nb-setting-row small{display:block;color:var(--biz-muted);font-size:9px}
.nb-setting-row .nb-orange{color:var(--biz-orange)}
.nb-footnote{display:flex;align-items:center;justify-content:space-between;color:var(--biz-muted);font-size:9px;padding:14px 2px 0}
.nb-footnote a{color:var(--biz-orange);font-weight:700;text-decoration:none}
.nb-modal-backdrop{position:fixed;inset:0;background:rgba(11,15,22,.55);z-index:100;display:none;place-items:center;padding:20px}
.nb-modal-backdrop.open{display:grid}
.nb-modal{background:#fff;border:1px solid var(--biz-border);border-radius:14px;width:min(500px,100%);box-shadow:0 20px 70px rgba(0,0,0,.25);overflow:hidden}
.nb-modal-head{padding:18px 20px;border-bottom:1px solid var(--biz-border);display:flex;align-items:center;justify-content:space-between}
.nb-modal-head h2{font-size:17px;margin:0}
.nb-modal-body{padding:20px}
.nb-modal-body p{color:var(--biz-muted);font-size:12px}
.nb-detail-list{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:16px 0}
.nb-detail-item{padding:10px;background:#fafbfc;border-radius:7px}
.nb-detail-item small{color:var(--biz-muted);font-size:9px;display:block}
.nb-detail-item b{font-size:12px}
.nb-modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:17px}
.nb-toast{position:fixed;right:24px;bottom:24px;z-index:200;background:#171b22;color:#fff;border-radius:9px;padding:11px 15px;font-size:11px;box-shadow:0 10px 30px rgba(0,0,0,.25);transform:translateY(20px);opacity:0;pointer-events:none;transition:.2s}
.nb-toast.show{transform:none;opacity:1}
.nb-payment-row{display:flex;align-items:center;gap:10px;border:1px solid var(--biz-border);padding:8px 9px;border-radius:7px}
.nb-visa{color:#1434cb;font-weight:900;font-style:italic;font-size:12px}
.nb-card-digits{min-width:88px}
.nb-card-digits b{font-size:11px}
.nb-card-digits small{display:block;color:var(--biz-muted);font-size:9px}
.nb-mini-btn{border:1px solid var(--biz-border);background:#fff;font-size:9px;border-radius:5px;padding:6px 9px;white-space:nowrap;cursor:pointer}
.nb-label{font-size:10px;font-weight:750;margin-bottom:5px}
.nb-info-note{padding:15px;background:#fafbfc;border-radius:8px;color:var(--biz-muted);font-size:11px}
@media(max-width:980px){.nb-stats{grid-template-columns:1fr 1fr}.nb-pay-grid,.nb-lower-grid{grid-template-columns:1fr}}
@media(max-width:760px){.nb-stats{grid-template-columns:1fr 1fr;gap:10px}.nb-stat{min-height:90px;padding:12px;gap:9px}.nb-stat.primary{grid-column:1/-1}.nb-pay-inner{grid-template-columns:1fr;gap:12px}.nb-tabs{gap:0;justify-content:space-between}.nb-tabs button{font-size:10px;flex:1}}

/* ================= CREATE DELIVERY WIZARD (owner design, 2026-10-27) ================= */
.bw-layout{ display:grid; grid-template-columns:minmax(0,1fr) 350px; gap:20px; align-items:start; }
.bw-main{ min-width:0; }
.bw-rail{ position:sticky; top:96px; }
/* Owner fixes 2026-10-27 (laptop render): the public site's floating
   help (?) and support-chat bubbles must never overlay the business
   dashboard's forms or summary rail — hidden for the whole biz shell. */
body.biz-mode #helpFab,
body.biz-mode #rydeChatBubble,
body.biz-mode #rydeChatWin{ display:none !important; }
/* Saved store addresses on the pickup card: visible selectable rows. */
.bw-loc-row{ margin-bottom:14px; }
.bw-loc-lbl{ font-size:.72rem; font-weight:800; letter-spacing:.05em; text-transform:uppercase; color:var(--biz-muted); margin-bottom:7px; }
.bw-loc-chips{ display:flex; flex-wrap:wrap; gap:8px; }
.bw-loc-chip{ flex:1 1 200px; text-align:left; border:1.5px solid var(--biz-border); background:#fff; border-radius:11px; padding:9px 12px; cursor:pointer; font-family:inherit; color:var(--biz-text); position:relative; }
.bw-loc-chip:hover{ border-color:#d8d2c6; }
.bw-loc-chip.on{ border-color:var(--biz-orange); background:#FFF7F1; }
.bw-loc-chip.on::after{ content:'✓'; position:absolute; top:7px; right:7px; width:18px; height:18px; border-radius:50%; background:var(--biz-orange); color:#fff; font-size:.62rem; font-weight:800; display:flex; align-items:center; justify-content:center; }
.bw-loc-chip strong{ display:block; font-size:.85rem; font-weight:800; padding-right:22px; }
.bw-loc-chip strong em{ font-style:normal; font-size:.64rem; font-weight:800; color:var(--biz-orange-dark); background:var(--biz-orange-soft); border-radius:20px; padding:2px 7px; vertical-align:2px; }
.bw-loc-chip small{ display:block; font-size:.76rem; color:var(--biz-muted); margin-top:1px; }
.bw-clear-link{ background:none; border:0; padding:0; color:var(--biz-orange-dark); font:inherit; font-weight:800; text-decoration:underline; cursor:pointer; }
/* Laptop widths (~1366px): tighten the wizard so the stepper always
   fits inside the main column beside the 320px summary rail — the
   step text gets room to breathe instead of truncating. */
@media (max-width:1500px){
  .bw-layout{ grid-template-columns:minmax(0,1fr) 320px; gap:16px; }
  .bw-stepper{ padding:13px 16px; }
  .bw-step{ gap:8px; }
  .bw-step > span:last-child{ min-width:0; }
  .bw-step-n{ width:32px; height:32px; font-size:.88rem; }
  .bw-step-t{ font-size:.85rem; }
  .bw-step-s{ font-size:.68rem; }
  .bw-conn{ margin:15px 9px 0; }
}
.bw-stepper{ display:flex; align-items:flex-start; background:#fff; border:1px solid var(--biz-border); border-radius:var(--biz-radius); box-shadow:var(--biz-shadow); padding:18px 22px; margin-bottom:18px; }
.bw-step{ display:flex; align-items:center; gap:11px; flex:none; }
.bw-step-n{ width:36px; height:36px; border-radius:50%; background:#E9E5DC; color:#8a8478; font-weight:800; font-size:.95rem; display:flex; align-items:center; justify-content:center; flex:none; }
.bw-step.on .bw-step-n,.bw-step.done .bw-step-n{ background:var(--biz-orange); color:#fff; }
.bw-step-t{ display:block; font-weight:800; font-size:.92rem; line-height:1.15; }
.bw-step-s{ display:block; font-size:.74rem; color:var(--biz-muted); margin-top:1px; }
.bw-conn{ flex:1; height:2px; background:#E9E5DC; margin:17px 16px 0; min-width:14px; }
.bw-conn.done{ background:var(--biz-orange); }
.bw-card{ padding:18px 20px; margin-bottom:16px; }
.bw-card .biz-field{ margin-bottom:10px; }
.bw-card-head{ display:flex; align-items:flex-start; gap:12px; margin-bottom:12px; }
.bw-card-head h3{ margin:0; font-size:1.02rem; }
.bw-card-head p{ margin:3px 0 0; color:var(--biz-muted); font-size:.82rem; }
.bw-ic{ width:42px; height:42px; border-radius:12px; background:var(--biz-orange-soft); display:flex; align-items:center; justify-content:center; font-size:1.15rem; flex:none; }
.bw-ic.sm{ width:34px; height:34px; font-size:.95rem; border-radius:10px; }
.bw-saved-btn{ margin-left:auto; flex:none; border:1px solid var(--biz-border); background:#fff; border-radius:9px; padding:9px 13px; font-size:.78rem; font-weight:700; cursor:pointer; font-family:inherit; color:var(--biz-text); }
.bw-saved-btn:hover{ border-color:var(--biz-orange); color:var(--biz-orange-dark); }
.bw-saved-list{ border:1px solid var(--biz-border); border-radius:11px; overflow:hidden; margin-bottom:16px; }
.bw-saved-item{ display:block; width:100%; text-align:left; padding:11px 14px; background:#fff; border:0; border-bottom:1px solid #f1ede7; cursor:pointer; font-family:inherit; font-size:.86rem; color:var(--biz-text); }
.bw-saved-item:last-child{ border-bottom:0; }
.bw-saved-item:hover{ background:#FFF7F1; }
.bw-saved-item small{ display:block; color:var(--biz-muted); margin-top:1px; }
.bw-streetwrap{ position:relative; }
.bw-streetwrap input{ width:100%; padding:11px 13px 11px 38px; border:1.5px solid var(--biz-border); border-radius:10px; font-size:.9rem; font-family:inherit; background:#fff; color:var(--biz-text); }
.bw-streetwrap input:focus{ outline:none; border-color:var(--biz-orange); }
.bw-search{ position:absolute; left:12px; top:50%; transform:translateY(-50%); font-size:.85rem; opacity:.55; pointer-events:none; z-index:2; }
.bw-fgrid3{ display:grid; grid-template-columns:1.2fr 1fr 1fr; gap:12px; }
.bw-picked-note{ font-size:.78rem; font-weight:700; color:var(--biz-green); margin:2px 0 12px; }
.bw-picked-note.warn{ color:#a85816; }
.bw-postal-note{ font-size:.8rem; font-weight:600; color:#a85816; background:#fdf3e3; border:1px solid #f0dcbc; border-radius:10px; padding:7px 11px; margin:-6px 0 12px; }
.pick-postal-note{ margin-top:8px; background:#fff8f1; border:1px solid #ffd9bd; border-radius:10px; padding:8px 12px; font-size:.85rem; font-weight:600; color:#7c4a03; }
.bw-check{ display:flex; gap:9px; align-items:flex-start; font-size:.85rem; font-weight:600; cursor:pointer; color:var(--biz-text); }
.bw-check input{ width:18px; height:18px; margin-top:1px; flex:none; accent-color:var(--biz-orange); cursor:pointer; }
.bw-group-lbl{ font-size:.92rem; font-weight:800; margin:4px 0 10px; }
.bw-group-sub{ font-size:.8rem; color:var(--biz-muted); margin:-6px 0 12px; }
.bw-type-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin-bottom:22px; }
.bw-size-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin-bottom:18px; }
.bw-opt-card{ border:1.5px solid var(--biz-border); border-radius:12px; padding:15px 13px; background:#fff; cursor:pointer; text-align:left; font-family:inherit; position:relative; width:100%; color:var(--biz-text); }
.bw-opt-card:hover{ border-color:#d8d2c6; }
.bw-opt-card.on{ border-color:var(--biz-orange); background:#FFF7F1; }
.bw-opt-card.on::after{ content:'✓'; position:absolute; top:8px; right:8px; width:20px; height:20px; border-radius:50%; background:var(--biz-orange); color:#fff; font-size:.68rem; font-weight:800; display:flex; align-items:center; justify-content:center; }
.bw-opt-ic{ font-size:1.35rem; display:block; margin-bottom:9px; }
.bw-opt-lb{ font-weight:800; font-size:.87rem; display:block; }
.bw-opt-sb{ font-size:.72rem; color:var(--biz-muted); display:block; margin-top:2px; }
.bw-trunk{ display:flex; gap:12px; background:#FFF7ED; border:1px solid #F5D9B8; border-radius:12px; padding:15px 16px; font-size:.85rem; margin-bottom:22px; line-height:1.45; }
.bw-trunk-ic{ font-size:1.25rem; flex:none; }
.bw-trunk.blocked{ background:var(--biz-red-bg); border-color:#f0c9c4; color:#7c2417; }
.bw-trunk-ack{ margin-top:11px; }
.bw-trunk-block{ margin-top:9px; font-weight:700; }
.bw-fgrid2{ display:grid; grid-template-columns:1fr 1.4fr; gap:12px; }
.bw-unitwrap{ position:relative; }
.bw-unitwrap input{ width:100%; padding:11px 40px 11px 13px; border:1.5px solid var(--biz-border); border-radius:10px; font-size:.9rem; font-family:inherit; background:#fff; color:var(--biz-text); }
.bw-unitwrap input:focus{ outline:none; border-color:var(--biz-orange); }
.bw-unitwrap span{ position:absolute; right:13px; top:50%; transform:translateY(-50%); color:var(--biz-muted); font-size:.82rem; font-weight:700; }
.bw-dims{ display:flex; align-items:center; gap:8px; }
.bw-dims input{ flex:1; min-width:0; padding:11px 10px; border:1.5px solid var(--biz-border); border-radius:10px; font-size:.9rem; font-family:inherit; background:#fff; color:var(--biz-text); }
.bw-dims input:focus{ outline:none; border-color:var(--biz-orange); }
.bw-dims .x{ color:var(--biz-muted); font-weight:800; }
.bw-dims span:last-child{ color:var(--biz-muted); font-size:.82rem; font-weight:700; }
/* Package-step hints must never read as entered values (T-14): muted + italic, vs the near-black upright value text. */
.bw-unitwrap input::placeholder,.bw-dims input::placeholder{ color:var(--biz-muted); font-style:italic; opacity:1; }
.bw-counter{ text-align:right; font-size:.72rem; color:var(--biz-muted); margin-top:4px; }
.bw-navrow{ display:flex; justify-content:space-between; gap:12px; flex-wrap:wrap; margin-top:4px; }
.bw-next{ padding:13px 26px; font-size:.93rem; border-radius:11px; margin-left:auto; }
.bw-terms{ text-align:left; font-size:.77rem; color:var(--biz-muted); margin:14px 0 0; line-height:1.5; }
.bw-create-btn{ width:100%; padding:13px 20px; font-size:.95rem; border-radius:11px; margin-top:12px; }
.bw-create-btn:disabled{ opacity:.55; cursor:not-allowed; }
/* Signature Required toggle switch (step 3, the owner's design). */
.bw-switch-line{ display:flex; align-items:center; gap:11px; font-size:.86rem; font-weight:600; color:var(--biz-text); cursor:pointer; padding:4px 0; }
.bw-switch{ position:relative; display:inline-block; width:46px; height:26px; flex:none; }
.bw-switch input{ opacity:0; width:0; height:0; }
.bw-slider{ position:absolute; inset:0; background:#D9D2C4; border-radius:20px; transition:background .15s; }
.bw-slider::before{ content:''; position:absolute; width:20px; height:20px; left:3px; top:3px; background:#fff; border-radius:50%; transition:transform .15s; box-shadow:0 1px 3px rgba(0,0,0,.25); }
.bw-switch input:checked + .bw-slider{ background:var(--biz-orange); }
.bw-switch input:checked + .bw-slider::before{ transform:translateX(20px); }
.bw-terms a{ color:var(--biz-orange); font-weight:700; }
.bw-edit-btn{ margin-left:auto; flex:none; border:1px solid var(--biz-border); background:#fff; border-radius:9px; padding:9px 13px; font-size:.78rem; font-weight:700; cursor:pointer; font-family:inherit; color:var(--biz-text); }
.bw-edit-btn:hover{ border-color:var(--biz-orange); color:var(--biz-orange-dark); }
.bw-edit-link{ background:none; border:0; color:var(--biz-orange); font-weight:800; font-size:.78rem; cursor:pointer; font-family:inherit; padding:2px 4px; margin-left:auto; flex:none; }
.bw-review-sec{ border-top:1px solid #f1ede7; padding-top:16px; margin-top:16px; }
.bw-review-sec:first-of-type{ border-top:0; padding-top:2px; margin-top:0; }
.bw-review-head{ display:flex; align-items:center; gap:10px; margin-bottom:12px; }
.bw-review-head h4{ margin:0; font-size:.95rem; }
.bw-addr-cols{ display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.bw-cap{ font-size:.72rem; font-weight:800; letter-spacing:.05em; color:var(--biz-text); text-transform:uppercase; margin-bottom:6px; }
.bw-al1{ font-size:.88rem; font-weight:700; line-height:1.4; }
.bw-al2{ font-size:.84rem; color:var(--biz-muted); line-height:1.4; }
.bw-stops{ display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:14px; font-size:.85rem; }
.bw-stepper-ctl{ display:inline-flex; align-items:center; gap:12px; }
.bw-stepper-ctl button{ width:30px; height:30px; border-radius:8px; border:1px solid var(--biz-border); background:#fff; font-size:1rem; font-weight:800; cursor:pointer; font-family:inherit; color:var(--biz-text); }
.bw-stepper-ctl button:hover{ border-color:var(--biz-orange); color:var(--biz-orange-dark); }
.bw-quote-ok{ background:var(--biz-green-bg); color:var(--biz-green); border-radius:10px; padding:11px 14px; font-size:.84rem; font-weight:600; }
.bw-price-wait{ color:var(--biz-muted); font-size:.84rem; font-weight:600; margin:4px 0; }
/* summary rail */
.bw-summary h3{ margin:0; font-size:1rem; }
.bw-sum-head{ display:flex; gap:12px; align-items:flex-start; margin-bottom:6px; }
.bw-sum-head p{ margin:3px 0 0; color:var(--biz-muted); font-size:.78rem; }
.bw-empty-art{ text-align:center; padding:22px 8px 10px; color:var(--biz-muted); font-size:.83rem; }
.bw-empty-art .bw-empty-box{ font-size:3rem; margin-bottom:10px; }
.bw-empty-art p{ margin:0 0 8px; }
.bw-empty-art strong{ color:var(--biz-text); }
.bw-sum-route{ margin-top:8px; }
.bw-sum-addr{ position:relative; padding:0 0 16px 24px; }
.bw-sum-addr:last-child{ padding-bottom:2px; }
.bw-sum-addr::before{ content:''; position:absolute; left:5px; top:16px; bottom:2px; border-left:2px dotted #F0B48C; }
.bw-sum-addr:last-child::before{ display:none; }
.bw-sum-dot{ position:absolute; left:0; top:4px; width:12px; height:12px; border-radius:50%; background:#fff; border:3px solid var(--biz-orange); box-sizing:border-box; }
.bw-sum-lbl{ display:flex; align-items:center; justify-content:space-between; font-weight:800; font-size:.88rem; margin-bottom:3px; }
.bw-sum-sec{ border-top:1px solid #f1ede7; padding-top:14px; margin-top:14px; }
.bw-price-head{ font-weight:800; font-size:.95rem; margin-bottom:8px; }
.bw-price-line{ display:flex; justify-content:space-between; gap:10px; font-size:.85rem; padding:5px 0; }
.bw-price-line span{ color:var(--biz-muted); }
.bw-total{ display:flex; justify-content:space-between; align-items:center; border-top:1px solid var(--biz-border); margin-top:10px; padding-top:13px; font-weight:800; }
.bw-total strong{ color:var(--biz-orange); font-size:1.18rem; }
.bw-hst{ font-size:.74rem; color:var(--biz-muted); margin-top:5px; }
.bw-note{ background:#FFF7ED; border:1px solid #F5D9B8; border-radius:10px; padding:11px 13px; font-size:.77rem; color:#7a4a12; display:flex; gap:9px; margin-top:14px; line-height:1.45; }
.biz-sched-line{ font-size:.74rem; color:#a85816; font-weight:700; margin-top:3px; white-space:nowrap; }
.biz-pill.st-refunded{ background:#eef0f3; color:#4a5568; }
.biz-pill.st-failed{ background:var(--biz-red-bg); color:var(--biz-red); }
@media (max-width:1100px){
  .bw-layout{ grid-template-columns:1fr; }
  .bw-rail{ position:static; }
  .bw-type-grid,.bw-size-grid{ grid-template-columns:repeat(2,1fr); }
  .bw-addr-cols{ grid-template-columns:1fr; }
  .bw-fgrid2,.bw-fgrid3{ grid-template-columns:1fr; }
}
@media (max-width:640px){
  .bw-stepper{ flex-wrap:wrap; gap:10px; }
  .bw-conn{ display:none; }
  .bw-step{ width:100%; }
}

/* ONESCREEN wizard (2026-10-28): collapsed one-line address cards,
   recent-route chips, the package strip, and the sticky Create bar. */
.bw-oneline{ display:flex; align-items:center; gap:12px; }
.bw-oneline .bw-ic{ flex:0 0 auto; }
.bw-oneline-t{ flex:1; min-width:0; font-size:.95rem; color:var(--biz-text); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.bw-oneline-t strong{ font-weight:800; }
.bw-oneline-card .bw-edit-link, .bw-pkg-strip .bw-edit-link{ flex:0 0 auto; }
.bw-recip-card{ padding-top:14px; padding-bottom:14px; }
.bw-routes{ margin-bottom:14px; }
.bw-routes-lbl{ font-size:.8rem; font-weight:800; color:var(--biz-muted); margin-bottom:8px; letter-spacing:.02em; }
.bw-route-chip{ flex:1 1 180px; }
.bw-pkg-warn{ color:#b3541e; font-weight:700; }
.bw-collapse-row{ margin-top:10px; text-align:right; }
.bw-stops-collapsed .bw-card-head{ align-items:center; }
.bw-stops-collapsed .bw-edit-link{ margin-left:auto; white-space:nowrap; }
.bw-stickybar{ position:sticky; bottom:10px; z-index:5; display:flex; align-items:center; gap:14px; background:#fff; border:1.5px solid var(--biz-border); border-radius:13px; padding:10px 14px; box-shadow:0 6px 24px rgba(20,16,8,.12); margin-top:14px; }
.bw-gate-hint{ flex:1; min-width:0; font-size:.82rem; color:#b3541e; font-weight:600; }
.bw-stickybar .bw-create-btn{ flex:0 0 auto; margin:0; width:auto; }

/* Branded business receipt (RCPT 2026-10-29) — styled from the
   owner-approved 2026-10-27 receipt template: deep-navy card,
   Ryde247 orange accent, logo at the head. */
.rcpt-overlay{position:fixed;inset:0;background:rgba(5,11,26,.72);z-index:1200;display:flex;align-items:flex-start;justify-content:center;overflow:auto;padding:28px 14px}
.rcpt-box{width:100%;max-width:560px}
.rcpt-card{background:#0C1F3D;color:#E3EAF3;border-radius:14px;padding:26px 26px 20px;box-shadow:0 18px 50px rgba(0,0,0,.45)}
.rcpt-head{display:flex;gap:16px;align-items:center}
.rcpt-logo{width:132px;max-width:40%;height:auto;background:#fff;border-radius:8px;padding:6px}
.rcpt-title{font-size:19px;font-weight:800;letter-spacing:.08em;color:#fff}
.rcpt-sub{color:#9FB2CC;font-size:12.5px;margin-top:3px}
.rcpt-chips{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0 4px}
.rcpt-chips span{background:#12294f;border:1px solid #1d3a66;color:#C7D3E4;border-radius:999px;padding:4px 11px;font-size:12px}
.rcpt-meta{display:grid;grid-template-columns:1fr 1fr;gap:8px 18px;margin:12px 0}
.rcpt-meta span{display:block;color:#8494AB;font-size:11px;text-transform:uppercase;letter-spacing:.06em}
.rcpt-meta strong{color:#fff;font-size:13.5px;font-weight:600}
.rcpt-sec{border-top:1px solid #1d3a66;margin-top:10px;padding-top:12px}
.rcpt-route-row{display:flex;gap:12px;padding:3px 0;font-size:13.5px}
.rcpt-route-row span{color:#8494AB;min-width:64px;text-transform:uppercase;font-size:11px;letter-spacing:.06em;padding-top:2px}
.rcpt-route-row strong{color:#fff;font-weight:600}
.rcpt-charge{display:flex;justify-content:space-between;padding:3px 0;font-size:13.5px;color:#C7D3E4}
.rcpt-charge strong{color:#fff}
.rcpt-total{display:flex;justify-content:space-between;border-top:1px solid #1d3a66;margin-top:8px;padding-top:10px;font-size:16px;color:#fff}
.rcpt-total strong{color:#FF5A00}
.rcpt-hst{color:#9FB2CC;font-size:12px;margin-top:4px}
.rcpt-pay{color:#C7D3E4;font-size:13px;margin-top:8px}
.rcpt-foot{border-top:1px solid #1d3a66;margin-top:14px;padding-top:12px;color:#8494AB;font-size:12px;line-height:1.6;text-align:center}
.rcpt-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:14px}
