/* FR Labs light theme (tokens follow the FR Labs operator console light palette). */
:root{--bg:#F1F5F9;--panel:#fff;--panel2:#F8FAFC;--line:#E2E8F0;--line2:#CBD5E1;--text:#0F172A;--muted:#64748B;
  --blue:#1F4D3A;--blue2:#2E6B4F;--blue-soft:rgba(31,107,79,.08);--green:#16A34A;--amber:#D97706;--red:#DC2626;
  --shadow:0 10px 30px rgba(15,23,42,.08);--topbg:rgba(255,255,255,.92);--input:#fff;--warnbg:#FEF3C7;--warnfg:#78350F;--warnline:#FDE68A;--ink:#1F4D3A;font:14px/1.45 Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}
a{color:var(--blue2);text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}
.boot{min-height:100dvh;min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;text-align:center;padding:24px;margin:0;color:var(--muted);box-sizing:border-box}.boot img{width:72px;height:72px;border-radius:16px;display:block}.boot p{margin:0;font-size:16px}.boot .ld-spin{width:28px;height:28px}
.top{position:sticky;top:0;top:env(safe-area-inset-top,0);z-index:2000;display:flex;align-items:center;gap:18px;height:60px;padding:0 20px;padding-top:0;background:var(--topbg);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);box-shadow:0 1px 0 color-mix(in srgb,var(--line) 80%,transparent)}
@supports (padding: max(0px)) {
  .top{padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right))}
}
.logo{display:flex;align-items:center;gap:10px;font-weight:800;font-size:18px;letter-spacing:-.02em;color:var(--text)}
.logo-mark{width:30px;height:30px;border-radius:3px;display:grid;place-items:center;color:#fff;background:linear-gradient(140deg,#7CC4A0,#1F4D3A 55%)}
.logo small{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);border:1px solid var(--line2);border-radius:3px;padding:1px 6px}
.tabs{display:flex;gap:4px;margin-left:12px}.tabs a{padding:8px 12px;border-radius:3px;color:var(--muted);font-weight:600}
.tabs a.on,.tabs a:hover{background:var(--blue-soft);color:var(--blue)}
.banner{background:var(--warnbg);color:var(--warnfg);border-bottom:1px solid var(--warnline);padding:7px 20px;font-size:13px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:38px;padding:0 14px;border-radius:5px;border:1px solid var(--btn-line,var(--line2));background:var(--btn-bg,var(--panel));font-weight:600;cursor:pointer;white-space:nowrap}
.btn:hover{border-color:var(--blue2)}.btn.primary{background:var(--blue);border-color:var(--blue);color:var(--accent-ink)}.btn.primary:hover{background:var(--accent-hover)}
.btn.sm{height:30px;padding:0 10px;font-size:13px}.btn.danger{color:var(--red);border-color:#FCA5A5}.btn:disabled{opacity:.45;cursor:not-allowed}
.muted{color:var(--muted)}.small{font-size:12px}.green{color:var(--green)}.amber{color:var(--amber)}.red{color:var(--red)}
.chip{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:3px;font-size:12px;font-weight:600;background:var(--panel2);border:1px solid var(--line);color:var(--muted)}
.chip.g{background:#DCFCE7;border-color:#BBF7D0;color:#166534}.chip.a{background:#FEF3C7;border-color:#FDE68A;color:#92400E}.chip.r{background:#FEE2E2;border-color:#FECACA;color:#991B1B}.chip.b{background:#E3F0E8;border-color:#C9E2D3;color:#1F4D3A}
.card{background:var(--panel);border:1px solid var(--line);border-radius:4px;box-shadow:var(--shadow)}
label.f{display:grid;gap:5px;font-size:12px;font-weight:600;color:var(--muted)}
input[type=text],input[type=number],input[type=search],input[type=password],input[type=time],input[type=tel],input[type=email],input[type=url],input[type=date],select,textarea{height:38px;padding:0 10px;border:1px solid var(--line2);border-radius:3px;background:var(--input);width:100%}
textarea{height:auto;padding:8px 10px;min-height:70px}input:focus:not(:is(.topsearch input,.topsearch .loc input,.topsearch .qbox input,.ss-box input,.search-wrap input,.svl-in input,.ac-wrap .search-wrap input)),select:focus,textarea:focus{outline:2px solid rgba(31,107,79,.25);border-color:var(--blue2)}
input[type=range]{width:100%}
/* customer search */
.search{display:grid;grid-template-columns:290px 1fr 420px;gap:16px;padding:16px 20px;align-items:start}
.filters{padding:16px;display:grid;gap:14px;position:sticky;top:76px}
.filters h3{margin:0;font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.results{display:grid;gap:12px}
.rhead{display:flex;justify-content:space-between;align-items:center}
.ws{display:grid;grid-template-columns:150px 1fr auto;gap:14px;padding:12px;cursor:pointer}
.ws:hover{border-color:var(--blue2)}
.ws img{width:150px;height:104px;object-fit:cover;border-radius:3px;background:var(--panel2)}
.ws h4{margin:0 0 2px;font-size:16px}.ws .meta{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.price{font-size:20px;font-weight:800;text-align:right}.price small{display:block;font-size:12px;font-weight:500;color:var(--muted)}
.map{height:calc(100vh - 130px);position:sticky;top:76px;overflow:hidden}#map{height:100%}
.stars{color:#B08D57;letter-spacing:-1px}
/* detail */
.detail{max-width:1100px;margin:0 auto;padding:18px 20px;display:grid;grid-template-columns:1fr 360px;gap:16px}
.hero{overflow:hidden}.hero img{width:100%;height:260px;object-fit:cover;display:block}.hero .body{padding:16px}
.hero h2{margin:0 0 4px}.sec{padding:16px}.sec h3{margin:0 0 10px;font-size:15px}
table.t{width:100%;border-collapse:collapse}table.t th{text-align:left;font-size:12px;color:var(--muted);font-weight:600;padding:6px 8px;border-bottom:1px solid var(--line)}
table.t td{padding:8px;border-bottom:1px solid var(--line);vertical-align:middle}table.t tr.sel td{background:var(--blue-soft)}
.days{display:grid;gap:10px}.day b{font-size:13px}.slots{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.slot{height:32px;padding:0 10px;border-radius:3px;border:1px solid var(--line2);background:var(--input);cursor:pointer;font-weight:600;font-size:13px}
.slot.on{background:var(--blue);color:var(--accent-ink);border-color:var(--blue)}.slot:disabled{text-decoration:line-through;opacity:.4;cursor:not-allowed}
.summary{padding:16px;display:grid;gap:10px;position:sticky;top:76px;align-self:start}
.ok{max-width:560px;margin:40px auto;padding:28px;text-align:center}.ok .tick{width:56px;height:56px;border-radius:50%;background:#DCFCE7;color:var(--green);display:grid;place-items:center;margin:0 auto 10px;font-size:28px}
/* settings (Zoho-style) */
.set{display:grid;grid-template-columns:250px 1fr;min-height:calc(100vh - 95px)}
.snav{background:var(--panel);border-right:1px solid var(--line);padding:14px 10px;display:grid;align-content:start;gap:2px}
.snav .grp{font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);font-weight:700;padding:12px 10px 4px}
.snav a{display:block;padding:8px 10px;border-radius:3px;color:var(--text);font-weight:500}.snav a.sub{padding-left:24px;font-size:13px;color:var(--muted)}
.snav a.on{background:var(--blue-soft);color:var(--blue);font-weight:700;box-shadow:inset 3px 0 0 var(--blue2)}.snav a:hover{background:var(--panel2)}
.smain{padding:22px 28px;max-width:1000px}.smain h2{margin:0 0 4px}.smain .lead{margin:0 0 18px;color:var(--muted)}
.form{padding:18px;display:grid;gap:14px;margin-bottom:16px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.stabs{display:flex;gap:2px;border-bottom:1px solid var(--line);margin-bottom:16px}.stabs a{padding:9px 14px;color:var(--muted);font-weight:600;border-bottom:2px solid transparent;margin-bottom:-1px}
.stabs a.on{color:var(--blue);border-color:var(--blue2)}
.bar{display:flex;gap:8px;align-items:center;justify-content:flex-end}.toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:var(--text);color:var(--bg);padding:10px 16px;border-radius:3px;z-index:2000}
.cov{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px;margin-bottom:14px}.cov div{padding:8px 10px;border:1px solid var(--line);border-radius:3px;background:var(--panel2);font-size:13px}
.tog{display:inline-flex;align-items:center;gap:6px;font-size:13px;cursor:pointer}
.photo-prev{width:100%;max-width:520px;height:280px;object-fit:cover;border-radius:4px;border:1px solid var(--line)}
@media (max-width:1100px){.search{grid-template-columns:260px 1fr}.map{display:none}.detail{grid-template-columns:1fr}}
@media (max-width:720px){.search{grid-template-columns:1fr}.filters{position:static}.ws{grid-template-columns:96px 1fr}.ws img{width:96px;height:80px}.ws .price{grid-column:2;text-align:left}.set{grid-template-columns:1fr}.tabs a{padding:6px 8px}.grid2,.grid3{grid-template-columns:1fr}}

/* ---------- dark theme (FR Labs Sydney-night palette) ---------- */
[data-theme=dark]{--bg:#050910;--panel:#0a1220;--panel2:#0c1628;--line:#1a2740;--line2:#26364f;--text:#E5EDF7;--muted:#8A9BB5;
  --blue:#2E6B4F;--blue2:#7CC4A0;--blue-soft:rgba(124,196,160,.12);--green:#4ADE80;--amber:#FBBF24;--red:#F87171;--shadow:0 10px 30px rgba(0,0,0,.45);
  --topbg:rgba(7,12,22,.92);--input:#070c16;--warnbg:#2a1d05;--warnfg:#FCD34D;--warnline:#3d2a07;--ink:#A9DCC0;color-scheme:dark}
[data-theme=dark] body{background:var(--bg)}
[data-theme=dark] .chip.g{background:rgba(34,197,94,.14);border-color:rgba(34,197,94,.3);color:#86EFAC}
[data-theme=dark] .chip.a{background:rgba(245,158,11,.14);border-color:rgba(245,158,11,.3);color:#FCD34D}
[data-theme=dark] .chip.r{background:rgba(248,113,113,.14);border-color:rgba(248,113,113,.3);color:#FCA5A5}
[data-theme=dark] .chip.b{background:rgba(165,180,252,.12);border-color:rgba(165,180,252,.3);color:#C7D2FE}
[data-theme=dark] .snav a.on,[data-theme=dark] .stabs a.on{color:var(--blue2)}
[data-theme=dark] .ok .tick{background:rgba(34,197,94,.15)}
[data-theme=dark] .osm-tiles{filter:invert(1) hue-rotate(180deg) brightness(.85) contrast(.9) saturate(.35)}
[data-theme=dark] .leaflet-container{background:#0b1220}
[data-theme=dark] .leaflet-popup-content-wrapper,[data-theme=dark] .leaflet-popup-tip,[data-theme=dark] .leaflet-bar a,[data-theme=dark] .leaflet-tooltip{background:var(--panel);color:var(--text);border-color:var(--line)}
[data-theme=dark] .leaflet-control-attribution{background:rgba(10,18,32,.8)!important;color:var(--muted)}[data-theme=dark] .leaflet-control-attribution a{color:var(--blue2)}
[data-theme=dark] input[type=time]::-webkit-calendar-picker-indicator{filter:invert(1)}
.osm-tiles{filter:saturate(.4) brightness(1.04)}

/* ---------- top bar: hamburger + search (top-left) ---------- */
.top{gap:10px;padding:0 12px}
.burger{width:40px;height:40px;flex:none;border:1px solid var(--line2);border-radius:3px;background:var(--panel);display:grid;place-content:center;gap:4px;cursor:pointer}
.burger span{display:block;width:18px;height:2px;border-radius:2px;background:var(--text)}
.burger:hover{border-color:var(--blue2)}
.logo-txt{display:inline-flex;align-items:center;gap:8px}
.topsearch{display:flex;flex:1;max-width:640px;border:1px solid var(--line2);border-radius:5px;background:var(--input);height:44px;min-height:44px;min-width:0;box-sizing:border-box;align-items:stretch;transition:border-color .15s,box-shadow .15s}
.topsearch:focus-within{border-color:var(--accent,var(--line2));box-shadow:0 0 0 3px color-mix(in srgb,var(--accent,#6366f1) 25%,transparent)}
.topsearch .loc,.topsearch .qbox{position:relative;display:flex;align-items:center;min-width:0;min-height:42px}
.topsearch .loc{flex:0 0 44%;border-right:1px solid var(--line)}.topsearch .qbox{flex:1}
.topsearch .pin{padding:0 2px 0 10px;color:var(--muted);font-size:14px}
.topsearch input{-webkit-appearance:none;appearance:none;border:0!important;outline:0!important;box-shadow:none!important;background:transparent!important;height:42px!important;min-height:42px!important;padding:0 8px!important;min-width:0;flex:1 1 auto!important;width:100%!important;max-width:100%!important;font-size:16px!important;line-height:1.25!important;border-radius:0!important;align-self:stretch!important}
.sugg{position:absolute;top:44px;left:0;width:max(100%,300px);background:var(--panel);border:1px solid var(--line);border-radius:4px;box-shadow:var(--shadow);z-index:1500;padding:4px;max-height:60vh;overflow:auto}
.sugg button{display:block;width:100%;text-align:left;padding:8px 10px;border:0;background:none;border-radius:3px;cursor:pointer}
.sugg button:hover{background:var(--blue-soft)}.sugg button.me{color:var(--blue2);font-weight:600}
.menu{position:fixed;top:calc(56px + env(safe-area-inset-top,0px));left:12px;z-index:2100;width:260px;background:var(--panel);border:1px solid var(--line);border-radius:4px;box-shadow:var(--shadow);padding:6px;display:grid;gap:2px}
.menu[hidden]{display:none;pointer-events:none}.menu a,.menu-lnk{display:block;padding:10px 12px;border-radius:3px;color:var(--text);font-weight:600;text-align:left;border:0;background:none;cursor:pointer}
.menu a.on{background:var(--blue-soft);color:var(--blue2)}.menu a:hover,.menu-lnk:hover{background:var(--panel2)}.menu-lnk{font-weight:500;color:var(--muted);font-size:13px}
.menu-sep{height:1px;background:var(--line);margin:4px 6px}
/* v1.39.0 display currency picker (☰ menu + pricing) */
.menu-cur{padding:8px 12px 4px}
.cur-pick{display:flex;flex-direction:column;gap:4px;margin:0}
.cur-pick-sm .cur-sel{max-width:6.5rem}
.cur-sel,.ph-cc{font-size:16px;border-radius:5px;min-height:40px}
.ph-hint{display:block;margin-top:4px}
.p-price-tools{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px;margin:0 0 12px}
.bill-aud-note{margin:8px 0 0;padding:8px 10px;border-radius:5px;background:var(--soft);font-size:14px}
.theme-tg{display:flex;align-items:center;gap:8px;padding:8px 12px;border:0;background:none;border-radius:3px;cursor:pointer;font-weight:600}
.theme-tg:hover{background:var(--panel2)}.theme-tg .ti{display:grid;place-items:center;width:30px;height:30px;border-radius:3px;border:1px solid var(--line);color:var(--muted)}
.theme-tg .ti.on{background:var(--blue-soft);border-color:var(--blue2);color:var(--blue2)}

/* ---------- home ---------- */
.app-home{display:flex;flex-direction:column;height:100vh;height:100dvh;overflow:hidden}
.app-home .top{position:sticky;top:0;top:env(safe-area-inset-top,0);z-index:2000;flex:none}.app-home .banner{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:none}
.homebar{display:flex;align-items:center;gap:10px;padding:8px 12px;background:var(--panel);border-bottom:1px solid var(--line);flex:none;flex-wrap:wrap}
.chips{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;flex:1;min-width:0}.chips::-webkit-scrollbar{display:none}
.ichip{height:34px;padding:0 14px;border-radius:3px;border:1px solid var(--line2);background:var(--panel);font-weight:600;cursor:pointer;white-space:nowrap}
.ichip.on{background:var(--blue);border-color:var(--blue);color:var(--accent-ink)}
.hb-right{display:flex;align-items:center;gap:8px}
.radius{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--muted)}.radius select{height:34px;width:auto;padding:0 6px}
.badge{display:inline-grid;place-items:center;min-width:18px;height:18px;border-radius:4px;background:var(--blue);color:var(--accent-ink);font-size:11px}
.seg{display:flex;border:1px solid var(--line2);border-radius:3px;overflow:hidden}.seg button{height:32px;padding:0 12px;border:0;background:var(--panel);font-weight:600;cursor:pointer;color:var(--muted)}
.seg button+button{border-left:1px solid var(--line2)}.seg button.on{background:var(--blue-soft);color:var(--blue2)}
.home{flex:1;min-height:0;position:relative}
.view-map .home{display:flex}
.mapwrap{flex:1;position:relative}#map{position:absolute;inset:0}
.sheet{width:440px;flex:none;order:-1;display:flex;flex-direction:column;background:var(--panel);border-right:1px solid var(--line);min-height:0}
.sheet-head{padding:10px 14px;border-bottom:1px solid var(--line)}.grab{display:none}
.sheet-sum{font-size:13px}.sheet-body{flex:1;overflow:auto;padding:8px}
.row{display:grid;grid-template-columns:72px minmax(0,1fr) auto;gap:10px;padding:10px;border-radius:4px;color:var(--text);border:1px solid transparent}
.row:hover{background:var(--panel2);border-color:var(--line)}.row img{width:72px;height:56px;object-fit:cover;border-radius:3px}
.row .meta{display:flex;flex-wrap:wrap;gap:4px;margin-top:5px}.row .chip{font-size:11px;padding:1px 6px}.row .price{font-size:16px;max-width:11em;text-align:right}.row .price small{display:block;white-space:normal;overflow-wrap:anywhere}
.pricepin span{display:inline-block;transform:translate(-50%,-100%);background:var(--blue);color:var(--accent-ink);font-weight:800;font-size:12px;padding:3px 8px;border-radius:3px;white-space:nowrap;box-shadow:0 4px 12px rgba(0,0,0,.25);border:2px solid #fff}
.pagewrap{height:100%;overflow:auto;padding:14px 16px 40px}
.sumline{margin:0 0 12px;font-size:13px}
.lgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}
.lcard{overflow:hidden;display:flex;flex-direction:column}.lcard img{width:100%;height:170px;object-fit:cover;display:block}
.lbody{padding:12px;display:grid;gap:10px}.lhead{display:flex;justify-content:space-between;gap:10px}.lhead h4{margin:0 0 2px;font-size:16px}.lhead h4 a{color:var(--text)}
.lbody .meta{display:flex;flex-wrap:wrap;gap:6px}
.svcblock{padding:14px 16px;margin-bottom:12px;max-width:900px}.svchead{display:flex;justify-content:space-between;gap:12px;margin-bottom:8px}.svchead h3{margin:0;font-size:16px}
.svcrange{text-align:right;white-space:nowrap}.svcrange b{font-size:18px}.svcrange small{display:block;color:var(--muted)}
.svcrows{display:grid}.svcrow{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:9px 4px;border-top:1px solid var(--line);color:var(--text)}
.svcrow:hover{background:var(--panel2)}.sprice{font-weight:800}
.emptyres{padding:30px;text-align:center;color:var(--muted)}
.ov{position:fixed;inset:0;background:rgba(2,6,23,.45);z-index:1700}
.fpanel{position:fixed;z-index:1800;top:0;right:0;bottom:0;width:360px;max-width:100%;background:var(--panel);border-left:1px solid var(--line);display:flex;flex-direction:column}
.fp-head,.fp-foot{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;border-bottom:1px solid var(--line)}.fp-foot{border:0;border-top:1px solid var(--line)}
.fp-body{flex:1;overflow:auto;padding:14px;display:grid;gap:14px;align-content:start}
.whoami{padding:8px 10px 10px;font-size:12px;color:var(--muted);display:grid;gap:6px;border-bottom:1px solid var(--line);margin-bottom:4px}.whoami .btn{justify-self:start}
.login{max-width:440px}
.login .bar.login-bar{justify-content:center}

/* ---------- phones: full-screen map + draggable bottom sheet ---------- */
@media (max-width:899px){
  .logo-txt{display:none}.top{height:56px}.topsearch .loc{flex-basis:46%}
  .homebar{padding:6px 10px;gap:6px}.chips{flex-basis:100%}.hb-right{width:100%;justify-content:space-between}.seg button{padding:0 10px}
  .view-map .home{display:block}.view-map .mapwrap{position:absolute;inset:0}
  .sheet{position:absolute;left:0;right:0;bottom:0;width:auto;height:50%;border:1px solid var(--line);border-bottom:0;border-radius:6px 6px 0 0;box-shadow:0 -10px 30px rgba(15,23,42,.18);z-index:1000;transition:height .22s ease}
  .sheet.dragging{transition:none}
  .sheet-head{touch-action:none;cursor:grab;padding:6px 14px 10px;user-select:none}.grab{display:block;width:40px;height:5px;border-radius:3px;background:var(--line2);margin:0 auto 8px}
  .sheet.snap-peek .sheet-body{overflow:hidden}
  .fpanel{top:auto;left:0;width:auto;max-height:85vh;border-radius:6px 6px 0 0;border-left:0;border-top:1px solid var(--line)}
  .lgrid{grid-template-columns:1fr}.svchead{flex-direction:column}.svcrange{text-align:left}
  .menu{top:52px;left:8px}
}

/* ---------- "Show us where" anatomy ---------- */
.anat-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:6px}.anat-head h3{margin:0}
.anat-views{display:inline-flex;margin-bottom:8px}.anat-views button{min-width:52px;height:38px}
.anat-stage{position:relative;width:100%;aspect-ratio:16/10;max-height:380px;background:var(--panel2);border:1px solid var(--line);border-radius:4px;overflow:hidden}
.anat-stage canvas{display:block;width:100%!important;height:100%!important;cursor:grab}.anat-stage canvas:active{cursor:grabbing}
.anat-loading{display:grid;place-items:center;height:100%;color:var(--muted)}
.anat-svg{width:100%;height:100%;display:block}
.anat-svg .v{fill:none;stroke:var(--text);stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round;pointer-events:none;opacity:.85}
.anat-svg .h{fill:transparent;stroke:transparent;stroke-width:22;stroke-dasharray:none;stroke-linecap:round;cursor:pointer}
.anat-svg .z:hover .h,.anat-svg .z:focus-visible .h{stroke:var(--blue-soft);fill:var(--blue-soft)}
.anat-svg .z:focus{outline:none}.anat-svg .z:focus-visible .v{stroke:var(--blue2)}
.anat-svg .z.sel .v{stroke:var(--blue2);stroke-width:3.6;opacity:1}
.anat-svg .z.sel .h{stroke:rgba(31,107,79,.22);fill:rgba(31,107,79,.10)}
.anat-svg .z.act .h{stroke:rgba(31,107,79,.36)}
[data-theme=dark] .anat-svg .z.sel .h{stroke:rgba(124,196,160,.30);fill:rgba(124,196,160,.12)}
.anat-svg.mini .v{stroke-width:3;opacity:.55}.anat-svg.mini .sel .v{opacity:1;stroke-width:5}
.zlist{display:flex;flex-wrap:wrap;gap:6px}.zbtn{min-height:40px;padding:6px 12px;border-radius:4px;border:1px solid var(--line2);background:var(--panel);font-weight:600;font-size:13px;cursor:pointer;text-align:left}
.zbtn.on{border-color:var(--blue2);background:var(--blue-soft);color:var(--blue2)}.zbtn.act{box-shadow:inset 0 0 0 2px var(--blue2)}
.zpanel{margin-top:10px;padding:12px;border:1px solid var(--blue2);border-radius:4px;background:var(--blue-soft);display:grid;gap:8px}
.zp-head{display:flex;justify-content:space-between;align-items:center}
.schips{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.sgrp{font-size:12px;font-weight:700;color:var(--muted)}
.schip{min-height:40px;padding:6px 14px;border-radius:3px;border:1px solid var(--line2);background:var(--panel);font-weight:600;font-size:13px;cursor:pointer}
.schip.on{background:var(--blue);border-color:var(--blue);color:var(--accent-ink)}
.picked{margin-top:10px;display:flex;flex-wrap:wrap;gap:6px;align-items:center}.picked .chip{cursor:pointer;min-height:30px}
.sugg-box{margin-top:10px;padding:12px;border-radius:4px;border:1px dashed var(--line2);display:grid;gap:8px}
.sg-row{display:flex;justify-content:space-between;align-items:center;gap:10px}
ul.issue{margin:4px 0;padding-left:18px}ul.issue li{margin:2px 0}
.bkrow{display:grid;grid-template-columns:1fr 200px;gap:14px;padding:12px 0;border-top:1px solid var(--line)}.bk-dia{background:var(--panel2);border:1px solid var(--line);border-radius:4px;aspect-ratio:16/10}
@media (max-width:720px){.bkrow{grid-template-columns:1fr}.bk-dia{max-width:260px}.anat-stage{aspect-ratio:4/3}.anat-views{display:flex;width:100%}.anat-views button{flex:1;min-width:0}}
.zdet{margin:4px 0 2px}.zdet summary{cursor:pointer;min-height:40px;display:flex;align-items:center;font-size:13px;font-weight:600;color:var(--blue2)}.zdet .zlist{margin-top:4px}

/* =====================================================================
   v0.5 editorial style (v1.23.2: neutral greys, true-black dark, indigo accent; green = status only), 2–4 px radius, 1 px dividers.
   Accent tokens live here; --blue/--blue2 are kept as legacy aliases of the accent.
   ===================================================================== */
:root{--accent:#000000;--accent-2:#262626;--accent-hover:#262626;--accent-ink:#fff;--accent-soft:rgba(0,0,0,.07);--brass:#8A6528;--brass-hi:#B08D57;--brass-soft:rgba(176,141,87,.16);
  --blue:var(--accent);--blue2:var(--accent-2);--blue-soft:var(--accent-soft);--ink:var(--accent);--focus:#B08D57;
  --bg:#F4F4F3;--panel:#FFFFFF;--panel2:#F7F7F6;--line:#E3E3E0;--line2:#CDCDC9;--text:#0E0E0E;--muted:#5C5C59;--input:#FFFFFF;--topbg:rgba(255,255,255,.94);--shadow:0 1px 2px rgba(0,0,0,.06);
  --btn-bg:#ececeb;--btn-line:#d6d6d3;--btn-text:#0E0E0E;--btn-hover:#e2e2e0}
[data-theme=dark]{--accent:#d8d8d8;--accent-2:rgba(255,255,255,.28);--accent-hover:#e8e8e8;--accent-ink:#0a0a0a;--accent-soft:rgba(255,255,255,.1);--brass:#D2AE6D;--brass-hi:#D2AE6D;--brass-soft:rgba(210,174,109,.16);
  --blue:var(--accent);--blue2:var(--accent-2);--blue-soft:var(--accent-soft);--ink:#e8e8e8;--focus:rgba(255,255,255,.38);
  --bg:#000000;--panel:#0a0a0a;--panel2:#141414;--line:#1c1c1c;--line2:rgba(255,255,255,.38);--text:#e8e8e8;--muted:#A3A3A3;--input:#0a0a0a;--topbg:rgba(0,0,0,.94);--shadow:0 1px 2px rgba(0,0,0,.5);
  --btn-bg:#141414;--btn-line:rgba(255,255,255,.42);--btn-text:#e8e8e8;--btn-hover:#1c1c1c}
body{letter-spacing:-.003em}
h2{font-size:22px;letter-spacing:-.02em;font-weight:750}h3{letter-spacing:-.01em}
.logo-mark{background:linear-gradient(140deg,var(--brass-hi),var(--accent) 55%);border-radius:3px}
.btn.primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}
.btn:hover{border-color:var(--accent-2)}
:focus-visible{outline:2px solid var(--focus)!important;outline-offset:2px}
input:focus,select:focus,textarea:focus{outline:2px solid var(--focus);outline-offset:0;border-color:var(--accent-2)}
.card{box-shadow:var(--shadow)}
.stars{color:var(--brass-hi)}
.chip.b{background:var(--accent-soft);border-color:transparent;color:var(--accent)}[data-theme=dark] .chip.b{color:var(--accent-2)}
.ichip{height:32px;padding:0 12px;font-size:13px}
.ichip.on{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);box-shadow:inset 0 -2px 0 var(--brass-hi)}
.feat{display:inline-block;font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--brass);border:1px solid var(--brass-hi);border-radius:2px;padding:1px 5px;margin:0 6px 3px 0;vertical-align:middle}
.demo-tag{display:inline-block;font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);border:1px solid var(--line2);border-radius:2px;padding:1px 5px;margin:0 6px 3px 0;vertical-align:middle}
.is-feat{box-shadow:inset 3px 0 0 var(--brass-hi)}.lcard.is-feat{box-shadow:inset 0 3px 0 var(--brass-hi),var(--shadow)}
.row .row-main b{display:block}
img.contain{object-fit:contain!important;background:#fff;padding:6px}
.hero img.contain{height:160px;padding:20px}
/* pins */
.pricepin span{background:var(--accent);border:1.5px solid #fff;border-radius:2px;font-weight:700;box-shadow:0 2px 6px rgba(0,0,0,.25)}
.pricepin.pin-feat span{background:#0E0E0E;color:#F3E6C8;border-color:var(--brass-hi);font-size:13px;padding:4px 9px}
[data-theme=dark] .pricepin.pin-feat span{background:#F3E6C8;color:#16201B}
.pricepin.dot span{width:14px;height:14px;padding:0;border-radius:50%}
.pricepin.pin-feat.dot span{width:18px;height:18px;background:var(--brass-hi)}
/* specialist row */
.specrow{display:flex;gap:6px;overflow-x:auto;flex-basis:100%;scrollbar-width:none;padding-bottom:2px}
.spchip{height:28px;padding:0 10px;border-radius:2px;border:1px solid var(--line2);background:var(--panel);font-size:12px;font-weight:600;cursor:pointer;white-space:nowrap;color:var(--text)}
.spchip.on{border-color:var(--brass-hi);background:var(--brass-soft);color:var(--text)}
/* map layers button + panel */
.layers-btn{position:absolute;z-index:900;top:12px;right:12px;width:40px;height:40px;display:grid;place-items:center;background:var(--panel);color:var(--text);border:1px solid var(--line2);border-radius:3px;cursor:pointer;box-shadow:0 1px 3px rgba(0,0,0,.18)}
.layers-btn:hover{border-color:var(--accent-2);color:var(--accent-2)}
.lpanel .fp-body{gap:0;padding:0 14px 14px}
.lsec{font-size:11px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);padding:16px 0 8px;border-bottom:1px solid var(--line)}
.seg3{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:12px 0}
.seg3 button{display:grid;gap:6px;justify-items:center;padding:8px;border:1px solid var(--line2);border-radius:3px;background:var(--panel);font-size:12px;font-weight:600;cursor:pointer;color:var(--text)}
.seg3 button.on{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}
.sw-prev{width:100%;height:38px;border-radius:2px;border:1px solid var(--line);background:linear-gradient(135deg,#E8E4D6 0 40%,#BFD8C2 40% 55%,#F3F1EA 55%)}
.sw-prev.muted{filter:saturate(.25) brightness(1.05)}.sw-prev.mono{filter:grayscale(1) contrast(1.1)}
.trow{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--line);cursor:pointer}
.trow span{display:grid;gap:1px}.trow b{font-weight:600;font-size:14px}.trow small{color:var(--muted);font-size:12px}
:root,[data-theme=dark]{--sw-w:51px;--sw-h:31px;--sw-knob:27px;--sw-pad:2px;--sw-on:#2563EB;--sw-off:#E9E9EA}
[data-theme=dark]{--sw-off:#48484A}
input.sw{appearance:none;-webkit-appearance:none;flex:none;width:var(--sw-w);height:var(--sw-h);min-width:var(--sw-w);min-height:var(--sw-h);border:none;border-radius:calc(var(--sw-h)/2);background:var(--sw-off);position:relative;cursor:pointer;transition:background .28s cubic-bezier(.4,0,.2,1);margin:0;vertical-align:middle}
input.sw::after{content:"";position:absolute;top:var(--sw-pad);left:var(--sw-pad);width:var(--sw-knob);height:var(--sw-knob);border-radius:50%;background:#fff;box-shadow:0 3px 8px rgba(0,0,0,.15),0 1px 1px rgba(0,0,0,.2);transition:transform .28s cubic-bezier(.4,0,.2,1)}
input.sw:checked{background:var(--sw-on)}
input.sw:checked::after{transform:translateX(calc(var(--sw-w) - var(--sw-knob) - var(--sw-pad) * 2))}
input.sw:focus-visible{outline:2px solid var(--sw-on);outline-offset:3px}
input.sw:disabled,input.sw[disabled]{opacity:.55;cursor:not-allowed;background:var(--sw-off)!important}
input.sw:disabled::after,input.sw[disabled]::after{background:#e5e5e5;box-shadow:0 1px 3px rgba(0,0,0,.12)}
input.sw:checked:disabled,input.sw:checked[disabled]{background:color-mix(in srgb,var(--sw-on) 45%,var(--sw-off))!important}
label.tog:has(>input.sw),label.swrow:has(>input.sw),label.trow:has(>input.sw),.trow:has(>input.sw),.jb-crew label.tog:has(>input.sw){min-height:44px;align-items:center}
label.tog:has(>input.sw),label.trow:has(>input.sw){padding-block:7px}
@media (prefers-reduced-motion:reduce){input.sw,input.sw::after{transition-duration:.01ms}}
.osm-tiles.style-muted{filter:saturate(.15) brightness(1.06) contrast(.95)}
.osm-tiles.style-mono{filter:grayscale(1) contrast(1.05) brightness(1.05)}
[data-theme=dark] .osm-tiles.style-muted{filter:invert(1) hue-rotate(180deg) brightness(.8) contrast(.9) saturate(.15)}
[data-theme=dark] .osm-tiles.style-mono{filter:invert(1) grayscale(1) brightness(.8) contrast(.95)}
/* time-first */
.tf,.bikes,.done{max-width:760px;margin:0 auto;padding:16px 16px 60px}
.tf-head{display:flex;align-items:center;gap:12px;margin-bottom:10px}.tf-head h2{margin:0}
.tf-ctl{display:flex;gap:10px;flex-wrap:wrap;align-items:center;padding:10px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.tf-ctl select{width:auto;height:34px}
.ctxbar{margin:10px 0 0;padding:8px 10px;border-left:3px solid var(--brass-hi);background:var(--brass-soft);font-size:13px}
.tf-day h3{font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:22px 0 0;padding-bottom:6px;border-bottom:1px solid var(--line)}
.tf-row{display:grid;grid-template-columns:72px 1fr 16px;gap:12px;align-items:center;padding:12px 4px;border-bottom:1px solid var(--line);color:var(--text)}
.tf-row:hover{background:var(--panel2)}.tf-row.is-feat{box-shadow:inset 3px 0 0 var(--brass-hi);padding-left:10px}.tf-row.was{opacity:.7}
.tf-time{font-size:22px;font-weight:750;letter-spacing:-.02em;color:var(--accent)}[data-theme=dark] .tf-time{color:var(--accent-2)}
.tf-time small{font-size:12px;font-weight:600;margin-left:2px;color:var(--muted)}
.tf-main{display:grid;gap:2px;min-width:0}.tf-main>.feat,.tf-main>.demo-tag{justify-self:start;margin:2px 0}.tf-main .fit{color:var(--accent)}[data-theme=dark] .tf-main>.feat,.tf-main>.demo-tag{justify-self:start;margin:2px 0}.tf-main .fit{color:var(--accent-2)}
.tf-go{font-size:22px;color:var(--muted)}
.elsewhere{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}
/* bike cards */
.bcard{display:grid;gap:10px}.bc-title{font-size:17px;font-weight:700;letter-spacing:-.01em}
.bc-head{display:flex;justify-content:space-between;align-items:center;gap:8px}
.dots{display:flex;gap:6px}.dots span{width:18px;height:3px;border-radius:1px;background:var(--line2)}.dots span.done{background:var(--accent-2)}.dots span.on{background:var(--brass-hi)}
.ac{position:relative}.ac-box{display:flex;border:1px solid var(--line2);border-radius:3px;background:var(--input);height:46px}
.ac-box:focus-within{outline:2px solid var(--focus);border-color:var(--accent-2)}
.ac-box input{border:0!important;outline:0!important;height:44px!important;font-size:16px!important;background:transparent!important}
.ac-box input.err::placeholder{color:var(--red)}
.ac-box .arrow{flex:none;width:46px;border:0;border-left:1px solid var(--line2);background:var(--accent);color:var(--accent-ink);font-size:20px;cursor:pointer;border-radius:0 2px 2px 0}
.ac-list{position:absolute;z-index:50;top:50px;left:0;right:0;margin:0;padding:4px;list-style:none;background:var(--panel);border:1px solid var(--line2);border-radius:3px;box-shadow:0 6px 20px rgba(0,0,0,.14);max-height:260px;overflow:auto}
.ac-list li{display:flex;justify-content:space-between;align-items:center;padding:10px;border-radius:2px;cursor:pointer}
.ac-list li span{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.ac-list li:hover,.ac-list li.on{background:var(--accent-soft)}
.ac-list li.custom{border-top:1px solid var(--line);color:var(--accent-2);font-weight:600}
.bc-nav{display:flex;justify-content:space-between;align-items:center}
.lnk{border:0;background:none;color:var(--accent-2);font-weight:600;cursor:pointer;padding:4px 0;justify-self:start}
.schip{height:34px;padding:0 12px;border-radius:2px;border:1px solid var(--line2);background:var(--panel);font-weight:600;font-size:13px;cursor:pointer;color:var(--text)}
.schip.on{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.schips{display:flex;flex-wrap:wrap;gap:6px}
.saved-list{display:grid;gap:8px}.saved{display:grid;gap:2px;text-align:left;padding:12px;border:1px solid var(--line2);border-radius:3px;background:var(--panel);cursor:pointer;color:var(--text)}
.saved:hover{border-color:var(--accent-2)}.saved .go{color:var(--accent-2);font-weight:700;font-size:13px;margin-top:4px}
.sum-grid{display:flex;gap:12px}.sum-grid img{width:84px;height:84px;object-fit:cover;border-radius:3px}
.sum-row{display:grid;grid-template-columns:52px 1fr auto;gap:8px;align-items:baseline;padding:6px 0;border-bottom:1px solid var(--line)}
.bc-photo{max-width:220px;border-radius:3px}
/* my bikes */
.bikecard{padding:14px;margin-bottom:12px;display:grid;gap:10px}.bk-head{display:flex;justify-content:space-between;gap:10px;align-items:start}
.drafts{margin:0;padding:0;list-style:none}.drafts li{display:flex;justify-content:space-between;gap:10px;padding:6px 0;border-top:1px solid var(--line);font-size:13px}
/* confirmation */
.done .ok{max-width:640px;margin:20px auto}
.steps-next{display:flex;list-style:none;padding:0;margin:14px 0 0;border:1px solid var(--line);border-radius:3px;overflow:hidden;font-size:12px;font-weight:600}
.steps-next li{flex:1;padding:8px 4px;color:var(--muted);border-left:1px solid var(--line)}.steps-next li:first-child{border-left:0}
.steps-next li.on{background:var(--accent);color:var(--accent-ink)}
.tscroll{overflow-x:auto}
.ok .tick{border-radius:3px;background:var(--accent-soft);color:var(--accent)}
.anat-svg .z.sel .h{stroke:rgba(31,107,79,.28);fill:rgba(31,107,79,.12)}
@media (max-width:899px){
  .detail{grid-template-columns:1fr;padding:12px}.summary{position:static}
  .hero img{height:180px}.tf-row{grid-template-columns:64px 1fr 12px}.tf-time{font-size:19px}
  .layers-btn{top:10px;right:10px}
}

.stbar{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-top:8px}
.chip.st-confirmed,.chip.st-in_progress{background:var(--accent-soft);color:var(--accent);border-color:transparent}.chip.st-ready{background:var(--brass-soft);color:var(--brass);border-color:var(--brass-hi)}
.chip.st-cancelled{text-decoration:line-through}
[data-theme=dark] .chip.st-confirmed,[data-theme=dark] .chip.st-in_progress{color:var(--accent-2)}
/* sign-in sheet + account */
.spanel .fp-body{gap:10px}
.pbtn{display:flex;align-items:center;justify-content:center;gap:10px;height:46px;border:1px solid var(--line2);border-radius:3px;background:var(--panel);color:var(--text);font-weight:650;font-size:15px;cursor:pointer;width:100%}
.pbtn:hover{border-color:var(--accent-2)}.pbtn.guest{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.or{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:12px}.or::before,.or::after{content:"";flex:1;height:1px;background:var(--line)}
.menu-user{display:flex;gap:10px;align-items:center;padding:8px 12px}.menu-user span:last-child{display:grid}.menu-user small{color:var(--muted);font-size:11px;text-transform:capitalize}
.avatar{width:30px;height:30px;display:grid;place-items:center;border-radius:2px;background:var(--brass-soft);color:var(--brass);font-weight:800}
.menu-lnk.strong{color:var(--accent-2);font-weight:700;font-size:14px}
.sec-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.sec-head h3{margin:0 0 10px}
.chip.strava{background:rgba(252,76,2,.1);color:#C2410C;border-color:rgba(252,76,2,.3)}
@media (min-width:900px){.spanel{top:50%;left:50%;right:auto;bottom:auto;transform:translate(-50%,-50%);width:400px;border:1px solid var(--line);border-radius:4px}}

/* v0.7 — Fraser's-only timed schedule + First free eligibility */
.elig { text-align: left; border: 1px solid var(--line); border-radius: 4px; padding: 10px 12px; margin: 0; display: grid; gap: 8px; }
.elig.is-ticked { border-color: var(--accent); }
.elig legend { font-size: 12px; font-weight: 600; padding: 0 4px; }
.elig .chk { display: flex; gap: 8px; align-items: flex-start; font-weight: 600; cursor: pointer; }
.elig .chk input { width: 20px; height: 20px; margin: 1px 0 0; flex: none; }
.elig .req { font-weight: 400; color: var(--muted); font-size: 12px; }
.lnk { background: none; border: 0; padding: 0; color: inherit; text-decoration: underline; font: inherit; cursor: pointer; }
.chip.from { margin-top: 4px; }
.slotnote { margin: 0 0 8px; }
.daypager { display: flex; justify-content: space-between; align-items: center; gap: 8px; margin-top: 10px; }
.tf-ctl .spchip { white-space: nowrap; }
.elig-row { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin: 4px 0; }
.walkin { border: 1px dashed var(--line2); border-radius: 4px; padding: 10px 12px; display: grid; gap: 4px; margin: 6px 0; }
.rebook { border-left: 3px solid var(--accent); padding: 8px 12px; margin: 0 0 10px; background: var(--panel2); display: grid; gap: 3px; }
.pchg { font-size: 13px; font-weight: 600; }
.hist { display: flex; justify-content: space-between; gap: 10px; flex-wrap: wrap; align-items: center; }
.sixmo { font-weight: 600; margin-top: 4px; }
.svced input[type=text], .svced input[type=number], .svced select { min-width: 70px; }
.svced .m-l { min-width: 150px; }
.m-days { white-space: nowrap; }
.dchk { display: inline-flex; flex-direction: column; align-items: center; font-size: 11px; margin-right: 2px; }
#pbk summary { cursor: pointer; }
/* start / security / FAQ */
.pitch { max-width: 980px; margin: 0 auto; padding: 28px 20px 60px; display: grid; gap: 18px; }
.p-hero h1 { font-size: clamp(26px, 5vw, 40px); line-height: 1.1; margin: 4px 0 10px; letter-spacing: -0.01em; }
.p-hero .lead { font-size: 17px; max-width: 680px; }
.eyebrow { text-transform: uppercase; letter-spacing: .08em; font-size: 12px; color: var(--muted); margin: 0; }
.p-cta { justify-content: flex-start; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.p-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 12px; }
.p-grid .card, .p-rules, .p-list, .faq .card { padding: 16px; }
.p-grid h3, .p-rules h3 { margin: 0 0 6px; font-size: 16px; }
.p-grid p { margin: 0; color: var(--muted); }
.p-rules ul { margin: 0; padding-left: 18px; line-height: 1.8; }
.p-list dl { margin: 0; display: grid; gap: 4px; }
.p-list dt { font-weight: 700; margin-top: 10px; }
.p-list dt:first-child { margin-top: 0; }
.p-list dd { margin: 0; color: var(--muted); }
.faq { display: grid; gap: 8px; }
.faq summary { font-weight: 700; cursor: pointer; }
.faq p { margin: 8px 0 0; color: var(--muted); }

/* v0.9: calendar + time select, contact step, unified switches */
.cal { border: 1px solid var(--line); border-radius: 4px; padding: 10px; margin: 8px 0 10px; }
.cal-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 8px; }
.cal-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; }
.cdh { font-size: 11px; text-align: center; color: var(--muted); padding: 2px 0; }
.cd { display: grid; place-items: center; gap: 0; min-height: 44px; border: 1px solid var(--line2); border-radius: 3px; background: var(--panel); color: var(--text); font: inherit; cursor: pointer; padding: 4px 0; }
.cd b { font-size: 14px; } .cd small { font-size: 10px; color: var(--muted); line-height: 1.1; }
.cd:hover:not(:disabled) { border-color: var(--accent); }
.cd.on { background: var(--accent); color: var(--accent-ink); border-color: var(--accent); } .cd.on small { color: var(--accent-ink); }
.cd.off { background: var(--panel2); border-style: dashed; border-color: var(--line); color: var(--muted); cursor: not-allowed; }
.cd.pad { border: 0; background: none; min-height: 0; }
.cal-key { display: flex; gap: 14px; flex-wrap: wrap; margin-top: 8px; } .cal-key i.k { display: inline-block; width: 12px; height: 12px; border: 1px solid var(--line2); border-radius: 2px; margin-right: 5px; vertical-align: -2px; }
.cal-key i.k.k-off { border-style: dashed; background: var(--panel2); }
.timesel select { appearance: none; -webkit-appearance: none; width: 100%; min-height: 46px; padding: 10px 40px 10px 12px; border: 1px solid var(--line2); border-radius: 4px; background: var(--panel) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23777' stroke-width='2'/%3E%3C/svg%3E") no-repeat right 14px center; color: var(--text); font: inherit; font-size: 16px; }
.timesel select:disabled { opacity: .6; }
.nextav { margin: 0 0 4px; }
.contact { border: 0; padding: 0; margin: 0; display: grid; gap: 8px; } .contact legend { font-weight: 700; font-size: 13px; padding: 0; margin-bottom: 4px; }
.ferr { color: var(--red, #B42318); font-size: 12px; min-height: 0; } .ferr:empty { display: none; }
[data-theme=dark] .ferr { color: #FF9C8F; }
input[aria-invalid="true"] { border-color: #B42318 !important; }
.elig.has-err { border-color: #B42318; }
.swrow { display: flex; justify-content: space-between; align-items: center; gap: 12px; font-weight: 600; cursor: pointer; }
.tog input.sw, .swrow input.sw { margin-left: 4px; }
.sg-row.on { outline: 1px solid var(--accent); border-radius: 3px; }
input[type=checkbox].sw:focus-visible, .cd:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.swv { width: 36px; height: 20px; border-radius: 2px; background: #8A8A86; position: relative; flex: none; margin-left: auto; }
[data-theme=dark] .swv { background: #74746F; }
.swv::after { content: ""; position: absolute; top: 2px; left: 2px; width: 16px; height: 16px; border-radius: 1px; background: #fff; transition: transform .15s; }
.swv.on { background: var(--accent); } .swv.on::after { transform: translateX(16px); background: var(--accent-ink); }
.dchk input[type=checkbox] { margin-top: 2px; }
/* v1.0 integrations + price-list import */
.ints{display:grid;gap:12px}.int-h{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.int-h b{margin-right:auto}
.chip.st-on{background:var(--text);border-color:var(--text);color:var(--panel)}.chip.st-off{background:transparent;border-color:var(--line2);color:var(--muted)}
.int code{font-size:11.5px;background:var(--panel2);border:1px solid var(--line);border-radius:3px;padding:0 4px;word-break:break-all}
.pi-wrap img{max-width:min(420px,100%);max-height:360px;border:1px solid var(--line);border-radius:4px;margin-top:8px;display:block}
.pitab td{vertical-align:middle}.pitab tr.lowc td,.lowc{background:var(--warnbg)}span.lowc{padding:0 4px;border-radius:3px;color:var(--warnfg)}
.conf{display:inline-block;min-width:38px;text-align:center;font-weight:700;border-radius:3px;padding:0 4px}.conf.hi{color:var(--muted)}.conf.lo{color:var(--warnfg);border:1px solid currentColor}
.pi-btns label.btn{cursor:pointer}
.stabs{overflow-x:auto;scrollbar-width:thin;max-width:100%}.stabs a{white-space:nowrap;flex:none}.pi-btns{flex-wrap:wrap}
.set>*{min-width:0}.smain{min-width:0}

/* ===================== v1.1 landing artistry (start/security/FAQ + booking home) =====================
   CSS + inline SVG only. (v1.2 extends the same language to the rest of the site, see the block at the end.) */
:root{--lx-indigo:#4338ca;--lx-violet:#7c3aed;--lx-teal:#0f766e;--lx-brass:#b7791f;--lx-amber:#d97706;
  --lx-ink:#1e1b4b;--lx-glow:rgba(99,102,241,.22);--lx-card:#fbfaff;--lx-card-t:rgba(255,255,255,.78);--lx-text:#14112b;--lx-muted:#45405f;
  --lx-a1:rgba(99,102,241,.30);--lx-a2:rgba(20,184,166,.24);--lx-a3:rgba(217,119,6,.20);--lx-edge:rgba(67,56,202,.16)}
[data-theme=dark]{--lx-indigo:#a5b4fc;--lx-violet:#c4b5fd;--lx-teal:#5eead4;--lx-brass:#f0c674;--lx-amber:#fbbf24;
  --lx-ink:#e0e7ff;--lx-glow:rgba(129,140,248,.28);--lx-card:#16142a;--lx-card-t:rgba(20,18,38,.72);--lx-text:#f1f0fb;--lx-muted:#c3c0d9;
  --lx-a1:rgba(79,70,229,.42);--lx-a2:rgba(13,148,136,.32);--lx-a3:rgba(217,119,6,.22);--lx-edge:rgba(165,180,252,.16)}
@property --lx-ang{syntax:'<angle>';inherits:false;initial-value:0deg}

/* line icons */
.ic{width:1.15em;height:1.15em;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;vertical-align:-.2em}
.ic path{stroke-dasharray:1;stroke-dashoffset:0}

/* layered hero background: aurora mesh + grain (transform-only animation, GPU friendly) */
.pitch-wrap{position:relative;isolation:isolate;overflow-x:clip;overflow-y:visible;min-height:0}
.aurora{position:absolute;inset:0;z-index:-1;pointer-events:none;background:
  radial-gradient(1200px 600px at 50% -10%,var(--lx-a1),transparent 60%),linear-gradient(180deg,transparent 0,var(--bg) 92%)}
.aurora i{position:absolute;display:block;border-radius:50%;will-change:transform}
.aurora .a1{width:62vmax;height:62vmax;left:-18vmax;top:-30vmax;background:radial-gradient(closest-side,var(--lx-a1),transparent);animation:lx-drift1 22s ease-in-out infinite alternate}
.aurora .a2{width:52vmax;height:52vmax;right:-16vmax;top:-18vmax;background:radial-gradient(closest-side,var(--lx-a2),transparent);animation:lx-drift2 26s ease-in-out infinite alternate}
.aurora .a3{width:46vmax;height:46vmax;left:30%;top:18vmax;background:radial-gradient(closest-side,var(--lx-a3),transparent);animation:lx-drift3 30s ease-in-out infinite alternate}
.aurora .grain{inset:0;width:auto;height:auto;border-radius:0;opacity:.07;mix-blend-mode:overlay;animation:none;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='140' height='140'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>")}
@keyframes lx-drift1{to{transform:translate3d(8vmax,6vmax,0) scale(1.08)}}
@keyframes lx-drift2{to{transform:translate3d(-7vmax,8vmax,0) scale(.94)}}
@keyframes lx-drift3{to{transform:translate3d(-10vmax,-5vmax,0) scale(1.1)}}

/* hero */
.pitch .p-hero h1{color:var(--lx-text);background:linear-gradient(100deg,var(--lx-text) 0%,var(--lx-ink) 45%,var(--lx-indigo) 75%,var(--lx-violet) 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.pitch .p-hero .lead{color:var(--lx-muted)}
.pitch .eyebrow{display:inline-flex;align-items:center;gap:7px;padding:5px 11px 5px 9px;border-radius:999px;color:var(--lx-brass);font-weight:700;
  background:linear-gradient(var(--lx-card),var(--lx-card)) padding-box,linear-gradient(90deg,var(--lx-brass),var(--lx-violet)) border-box;border:1px solid transparent;box-shadow:0 0 22px var(--lx-glow)}
.ic.spin{animation:lx-spin 9s linear infinite}
@keyframes lx-spin{to{transform:rotate(360deg)}}

/* buttons: micro-interactions */
.pitch .btn{display:inline-flex;align-items:center;gap:8px;transition:transform .18s ease,box-shadow .25s ease,background-color .2s;position:relative;overflow:hidden}
.pitch .btn:hover{transform:translateY(-1px);box-shadow:0 8px 22px var(--lx-glow)}
.pitch .btn:active{transform:translateY(0) scale(.98)}
.pitch .btn.primary{background:linear-gradient(110deg,#1e1b4b,#4338ca 55%,#6d28d9);border-color:transparent;color:#fff}
[data-theme=dark] .pitch .btn.primary{background:linear-gradient(110deg,#4338ca,#6d28d9 60%,#7e22ce);color:#fff}
.pitch .btn.primary::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 30%,rgba(255,255,255,.32) 50%,transparent 70%);transform:translateX(-120%);transition:transform .7s ease}
.pitch .btn.primary:hover::after{transform:translateX(120%)}
.pitch .btn:not(.primary){background:var(--lx-card-t);backdrop-filter:blur(6px);border:1px solid var(--border,var(--line2))}
[data-theme=dark] .pitch .bar.p-cta .btn:not(.primary),[data-theme=dark] .pitch .p-hero .bar.p-cta .btn:not(.primary){border-color:var(--border,var(--line2))}
.pitch .btn:not(.primary) .ic{color:var(--lx-indigo)}
.ic.nudge{transition:transform .2s ease}.btn:hover .ic.nudge{transform:translateX(3px)}

/* shimmering conic-gradient border cards */
.pitch .card.fx,.pitch .p-sec .tile{position:relative;background:linear-gradient(var(--lx-card),var(--lx-card)) padding-box,
  conic-gradient(from var(--lx-ang),var(--lx-edge),var(--lx-indigo),var(--lx-teal),var(--lx-brass),var(--lx-violet),var(--lx-edge) 70%,var(--lx-edge)) border-box;
  border:1px solid transparent;border-radius:12px;box-shadow:0 1px 2px rgba(15,23,42,.05),0 12px 32px -18px var(--lx-glow);backdrop-filter:blur(8px);
  animation:lx-sweep 7s linear infinite;transition:transform .25s ease,box-shadow .3s ease}
.pitch .card.fx:hover,.pitch .p-sec .tile:hover{transform:translateY(-3px);box-shadow:0 2px 4px rgba(15,23,42,.06),0 22px 44px -20px var(--lx-glow)}
@keyframes lx-sweep{to{--lx-ang:360deg}}
.pitch .p-grid .card h3,.pitch .p-rules h3{color:var(--lx-text)}
.pitch .p-grid .card p,.pitch .p-list dd,.pitch .faq p{color:var(--lx-muted)}
.p-ic{display:inline-grid;place-items:center;width:42px;height:42px;min-width:42px;border-radius:11px;margin-bottom:10px;color:#fff;font-size:20px;
  background:linear-gradient(135deg,var(--lx-indigo),var(--lx-violet));box-shadow:0 8px 18px -8px var(--lx-violet);animation:lx-float 5.5s ease-in-out infinite}
.p-grid .card:nth-child(1) .p-ic{background:linear-gradient(135deg,#b45309,#c2410c);animation-delay:0s} /* outage / first */
.p-grid .card:nth-child(2) .p-ic{background:linear-gradient(135deg,#0f766e,#0e7490);animation-delay:-1.2s}
.p-grid .card:nth-child(3) .p-ic{background:linear-gradient(135deg,var(--lx-indigo),var(--lx-violet));animation-delay:-2.4s}
.p-grid .card:nth-child(4) .p-ic{background:linear-gradient(135deg,#6d28d9,#be185d);animation-delay:-3.6s}
.p-grid .card:nth-child(5) .p-ic{background:linear-gradient(135deg,#0f766e,#0e7490);animation-delay:-0.6s}
.p-grid .card:nth-child(6) .p-ic{background:linear-gradient(135deg,#b45309,#c2410c);animation-delay:-1.8s}
.p-grid .card:nth-child(7) .p-ic{background:linear-gradient(135deg,#6d28d9,#be185d);animation-delay:-3.0s}
.p-grid .card:nth-child(8) .p-ic{background:linear-gradient(135deg,var(--lx-indigo),var(--lx-violet));animation-delay:-4.2s}
@keyframes lx-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}
.card:hover .p-ic .ic{animation:lx-wiggle .6s ease}
@keyframes lx-wiggle{30%{transform:rotate(-10deg)}60%{transform:rotate(8deg)}}
/* v1.16.1: every pitch feature icon floats the same; wifiOff stays solid (no dash-draw) */
.pitch .p-grid .p-ic{animation:lx-float 5.5s ease-in-out 2s infinite}
.pitch .p-grid .ic-wifiOff path{stroke-linecap:round;stroke-linejoin:round}
.pitch .p-grid .ic-wifiOff path:last-child{stroke-width:2.35} /* slash */
.ic.tick path:last-child{transform-origin:12px 12px;animation:lx-spin 12s steps(60) infinite}
.pitch .p-rules h3{display:flex;align-items:center;gap:8px}.pitch .p-rules h3 .ic{color:var(--lx-brass)}
.pitch .p-rules ul{list-style:none;padding-left:0}.pitch .p-rules li{display:flex;gap:10px;align-items:flex-start}.pitch .p-rules li .ic{color:var(--lx-indigo);margin-top:.35em}
.pitch .p-list dt{display:flex;align-items:center;gap:9px;color:var(--lx-text)}.pitch .p-list dt .ic{color:var(--lx-indigo);font-size:18px}
.pitch .p-list dt.hl .ic{color:var(--lx-brass)}
.pitch .faq summary{color:var(--lx-text)}.pitch .faq details[open]{box-shadow:0 18px 40px -22px var(--lx-glow)}

/* draw-on strokes + scroll reveal (only when JS marked them .rv) */
.rv{opacity:0;transform:translateY(14px);transition:opacity .6s ease var(--d,0ms),transform .6s cubic-bezier(.2,.7,.2,1) var(--d,0ms)}
.rv.in{opacity:1;transform:none}
.rv .ic path{stroke-dashoffset:1}
.rv.in .ic path{stroke-dashoffset:0;transition:stroke-dashoffset 1.1s ease calc(var(--d,0ms) + 180ms)}
/* v1.16.3: pitch feature icons — slower visible stroke draw-on (~1.9s) + card stagger via --d */
.pitch .p-grid .card.rv .ic path{stroke-dashoffset:1}
.pitch .p-grid .card.rv.in .ic path{
  stroke-dashoffset:0;
  transition:stroke-dashoffset 1.9s cubic-bezier(.45,.05,.55,.95) calc(var(--d,0ms) + 120ms);
}

/* "Bank-level security" pitch section */
.p-sec{display:grid;gap:14px;padding:22px;border-radius:16px;position:relative;overflow:hidden;color:#eef0ff;
  background:radial-gradient(600px 260px at 90% -20%,rgba(217,119,6,.35),transparent 60%),radial-gradient(700px 300px at -10% 120%,rgba(20,184,166,.32),transparent 60%),linear-gradient(135deg,#0b0a1f,#1e1b4b 55%,#2e1065)}
.p-sec h2{margin:0;font-size:clamp(22px,3.6vw,30px);letter-spacing:-.01em;display:flex;align-items:center;gap:10px;color:#fff}
.p-sec h2 .ic{color:#f0c674}
.p-sec>p{margin:0;color:#d6d4ee;max-width:700px}
.p-sec .tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px}
.p-sec .tile{--lx-card:#1f1a47;--lx-edge:rgba(255,255,255,.12);--lx-indigo:#a5b4fc;--lx-teal:#5eead4;--lx-brass:#f0c674;--lx-violet:#c4b5fd;padding:14px;color:#eef0ff}
.p-sec .tile b{display:block;margin:8px 0 4px;color:#fff}.p-sec .tile span{font-size:13px;color:#d6d4ee;line-height:1.45}
.p-sec .tile .ic{font-size:24px;color:#f0c674}
.p-sec .tile:nth-child(2) .ic{color:#5eead4}.p-sec .tile:nth-child(3) .ic{color:#fca5a5}.p-sec .tile:nth-child(4) .ic{color:#a5b4fc}.p-sec .tile:nth-child(5) .ic{color:#c4b5fd}
.p-sec .p-cta{margin-top:0}.p-sec .btn:not(.primary){background:rgba(255,255,255,.08);color:#fff;border-color:rgba(255,255,255,.22)}.p-sec .btn:not(.primary) .ic{color:#f0c674}

/* ---------- booking-site home (landing view): colour on the bar + listing, map untouched ---------- */
.app-home .homebar{background:linear-gradient(90deg,rgba(67,56,202,.07),rgba(20,184,166,.06) 50%,rgba(217,119,6,.06)),var(--panel)}
[data-theme=dark] .app-home .homebar{background:linear-gradient(90deg,rgba(99,102,241,.16),rgba(20,184,166,.10) 50%,rgba(217,119,6,.10)),var(--panel)}
.app-home .ichip{display:inline-flex;align-items:center;gap:7px;transition:transform .15s ease,box-shadow .2s ease,border-color .2s;
  background:linear-gradient(var(--panel),var(--panel)) padding-box,linear-gradient(120deg,var(--line2),var(--line2)) border-box;border:1px solid transparent}
.app-home .ichip .ic{color:var(--lx-indigo);transition:transform .25s ease}
.app-home .ichip:nth-child(2) .ic{color:var(--lx-amber)}.app-home .ichip:nth-child(3) .ic{color:var(--lx-teal)}
.app-home .ichip:hover{transform:translateY(-1px);box-shadow:0 6px 16px -8px var(--lx-glow);
  background:linear-gradient(var(--panel),var(--panel)) padding-box,conic-gradient(from var(--lx-ang),var(--lx-indigo),var(--lx-teal),var(--lx-brass),var(--lx-violet),var(--lx-indigo)) border-box;animation:lx-sweep 3s linear infinite}
.app-home .ichip:hover .ic{transform:scale(1.15) rotate(-6deg)}
.app-home .ichip:active{transform:scale(.97)}
.app-home .seg button{display:inline-flex;align-items:center;gap:6px}
.app-home .seg button .ic{font-size:15px}
.app-home .seg button:not(.on) .ic{color:var(--lx-indigo)}
.app-home .sheet-head{background:linear-gradient(180deg,rgba(67,56,202,.05),transparent)}
.app-home .row,.app-home .lcard{position:relative;transition:transform .2s ease,box-shadow .25s ease}
.app-home .row{background:linear-gradient(var(--panel),var(--panel)) padding-box,conic-gradient(from var(--lx-ang),var(--line),var(--lx-indigo),var(--lx-teal),var(--lx-brass),var(--line) 72%,var(--line)) border-box;
  border:1px solid transparent;border-radius:10px;margin:6px 8px;animation:lx-sweep 8s linear infinite;box-shadow:0 10px 26px -20px var(--lx-glow)}
.app-home .lcard{background:linear-gradient(var(--panel),var(--panel)) padding-box,conic-gradient(from var(--lx-ang),var(--line),var(--lx-indigo),var(--lx-teal),var(--lx-brass),var(--line) 72%,var(--line)) border-box;
  border:1px solid transparent;border-radius:12px;animation:lx-sweep 8s linear infinite}
.app-home .row:hover,.app-home .lcard:hover{transform:translateY(-2px);box-shadow:0 18px 36px -18px var(--lx-glow)}
.app-home .row.is-feat,.app-home .lcard.is-feat{box-shadow:inset 3px 0 0 var(--brass-hi),0 10px 26px -20px var(--lx-glow)}

/* reduced motion: static, fully visible fallbacks */
@media (prefers-reduced-motion: reduce){
  .aurora i,.ic.spin,.p-ic,.ic.tick path,.pitch .card.fx,.pitch .p-sec .tile,.app-home .row,.app-home .lcard,.app-home .ichip:hover{animation:none!important}
  .rv{opacity:1;transform:none;transition:none}.rv .ic path{stroke-dashoffset:0;transition:none}
  .pitch .btn,.app-home .ichip,.app-home .row,.app-home .lcard{transition:none}.pitch .btn.primary::after{display:none}
}
/* security log + incident mode */
.chip.inc-on{background:#b91c1c;border-color:#b91c1c;color:#fff}
.inc-banner{padding:10px 12px;border-radius:6px;background:#fef2f2;border:1px solid #fecaca;color:#7f1d1d;font-weight:600;margin-bottom:8px}
[data-theme=dark] .inc-banner{background:rgba(185,28,28,.18);border-color:rgba(248,113,113,.4);color:#fecaca}
.audt td{vertical-align:top}.audt tr.aud-warn td{background:var(--warnbg)}.audt tr.aud-pii td:first-child{box-shadow:inset 3px 0 0 var(--lx-indigo)}
.audt code,#aud code{font-size:11.5px;background:var(--panel2);border:1px solid var(--line);border-radius:3px;padding:0 4px}

/* ===================== v1.2 site-wide artistry =====================
   Same palette as the start page (indigo / teal / violet, brass highlights). Static gradient borders on every card,
   animated shimmer only on a few hero boxes (cheap on mobile), soft glows, one-time entry reveal per page,
   button micro-interactions. Layout untouched: borders keep their width (except Suggested services: 2px). */
:root{--lx-g1:#4338ca;--lx-g2:#6d28d9;--lx-sel:#4338ca;--lx-sel-soft:rgba(67,56,202,.09);--lx-ring:rgba(99,102,241,.30)}
[data-theme=dark]{--lx-g1:#4338ca;--lx-g2:#7e22ce;--lx-sel:#d4d4d4;--lx-sel-soft:rgba(255,255,255,.08);--lx-ring:rgba(255,255,255,.22)}
.lx-edge,.card:not(.fx){--lx-e1:rgba(67,56,202,.30);--lx-e2:var(--line);--lx-e3:rgba(15,118,110,.30)}
[data-theme=dark] .card:not(.fx){--lx-e1:rgba(165,180,252,.30);--lx-e2:var(--line);--lx-e3:rgba(94,234,212,.24)}
/* every card outside the landing pitch: static tri-tone gradient edge + soft glow (same 1px width as before) */
.card:not(.fx){background:linear-gradient(var(--panel),var(--panel)) padding-box,linear-gradient(135deg,var(--lx-e1),var(--lx-e2) 38%,var(--lx-e2) 62%,var(--lx-e3)) border-box;
  border-color:transparent;box-shadow:0 1px 2px rgba(15,23,42,.05),0 14px 34px -24px var(--lx-glow)}
.app-home .row,.app-home .lcard{border-color:transparent}
/* hero boxes: animated shimmering border (same as the start page) */
.card.summary,.done .card.ok,.card.anat,.login.card{background:linear-gradient(var(--panel),var(--panel)) padding-box,
  conic-gradient(from var(--lx-ang),var(--line2),var(--lx-indigo),var(--lx-teal),var(--lx-brass),var(--lx-violet),var(--line2) 72%,var(--line2)) border-box;animation:lx-sweep 8s linear infinite}
/* section headings: gradient-tinted icons */
.ic.h-ic{color:var(--lx-indigo);margin-right:7px;font-size:1.05em}
#svc-sec .ic.h-ic,.contact .ic.h-ic{color:var(--lx-teal)}#slot-sec .ic.h-ic{color:var(--lx-violet)}.summary .ic.h-ic{color:var(--lx-brass)}.anat .ic.h-ic{color:var(--lx-amber)}
.h-ic path{stroke-dasharray:1;stroke-dashoffset:0}
.lx-enter .h-ic path{animation:lx-draw 1s ease both .15s}
@keyframes lx-draw{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
/* Suggested services: thicker, clearly visible shimmering 2px border */
.sugg-box{border:2px solid transparent;border-radius:10px;
  background:linear-gradient(var(--panel),var(--panel)) padding-box,conic-gradient(from var(--lx-ang),var(--lx-indigo),var(--lx-teal),var(--lx-brass),var(--lx-violet),var(--lx-indigo)) border-box;
  box-shadow:0 0 0 1px rgba(67,56,202,.10),0 10px 28px -16px var(--lx-glow);animation:lx-sweep 6s linear infinite}
.sugg-box>b{display:flex;align-items:center;color:var(--lx-text)}.sugg-box>b .ic{color:var(--lx-violet)}
.sg-row{border-radius:6px;padding:4px 6px;transition:background-color .2s}
.sg-row.on{outline:2px solid var(--lx-sel);outline-offset:0;background:var(--lx-sel-soft);border-radius:6px}
/* buttons: gradient primary with shine, lifted hover, pressed state */
.btn{transition:transform .16s ease,box-shadow .22s ease,border-color .2s,background-color .2s}
.btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 16px -8px var(--lx-glow);border-color:var(--lx-indigo)}
.btn:active:not(:disabled){transform:translateY(0) scale(.98)}
.btn.primary{background:linear-gradient(110deg,var(--lx-g1),var(--lx-g2));border-color:transparent;color:#fff;overflow:hidden;position:relative}
.zbtn.on,.ichip.on,.schip.on,.slot.on,.pbtn.guest,.badge{background:linear-gradient(110deg,var(--lx-g1),var(--lx-g2));border-color:transparent;color:#fff}
.btn.primary:hover:not(:disabled){background:linear-gradient(110deg,#3730a3,#5b21b6);border-color:transparent;box-shadow:0 8px 22px -8px rgba(109,40,217,.55)}
.btn.primary::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 30%,rgba(255,255,255,.28) 50%,transparent 70%);transform:translateX(-120%);transition:transform .7s ease;pointer-events:none}
.btn.primary:hover::after{transform:translateX(120%)}
.btn:disabled,.btn.primary:disabled{opacity:.55;transform:none;box-shadow:none}
.btn.danger:hover:not(:disabled){border-color:#b91c1c;box-shadow:0 6px 16px -8px rgba(185,28,28,.45)}
.btn.nextav{background:linear-gradient(var(--btn-bg),var(--btn-bg)) padding-box,linear-gradient(90deg,var(--lx-brass),var(--lx-violet)) border-box;border-color:transparent}
/* form fields: indigo focus glow */
input:not([type=checkbox]):not([type=radio]):not([type=range]):focus,select:focus,textarea:focus{border-color:var(--lx-indigo);box-shadow:0 0 0 3px var(--lx-ring);outline:none}
input[type=radio],input[type=range]{accent-color:var(--lx-sel)}
/* calendar: gradient selected day, glowing hover, bookable dots in colour */
.cd{transition:transform .14s ease,border-color .2s,box-shadow .2s}
.cd:hover:not(:disabled):not(.off){border-color:var(--lx-indigo);box-shadow:0 4px 14px -6px var(--lx-glow);transform:translateY(-1px)}
.cd.on{background:linear-gradient(135deg,var(--lx-g1),var(--lx-g2));border-color:transparent;color:#fff;box-shadow:0 6px 18px -6px rgba(109,40,217,.55)}
.cd.on small,.cd.on b{color:#fff}
.cd:not(.on):not(.off) small{color:var(--lx-teal)}
.cal-key .k:not(.k-off){border-color:var(--lx-indigo)}
/* tables, chips, selected rows */
table.t tr.sel td{background:var(--lx-sel-soft)}
table.t tr.sel td:first-child{box-shadow:inset 3px 0 0 var(--lx-sel)}
.chip.from{border-color:rgba(15,118,110,.35);color:var(--lx-teal);background:rgba(20,184,166,.07)}
[data-theme=dark] .chip.from{border-color:rgba(94,234,212,.35)}
/* problem-area picker + 3D panel */
.anat-stage{border-color:transparent;background:radial-gradient(120% 90% at 50% 0%,var(--lx-sel-soft),transparent 70%) padding-box,var(--panel2) padding-box,
  linear-gradient(135deg,var(--lx-e1,rgba(67,56,202,.3)),var(--line) 45%,var(--lx-e3,rgba(15,118,110,.3))) border-box;box-shadow:inset 0 0 40px -20px var(--lx-glow)}
.anat-svg .z.sel .v,.anat-svg .z:focus-visible .v{stroke:var(--lx-sel)}
.anat-svg .z.sel .h{stroke:rgba(67,56,202,.28);fill:rgba(67,56,202,.10)}.anat-svg .z.act .h{stroke:rgba(67,56,202,.40)}
[data-theme=dark] .anat-svg .z.sel .h{stroke:rgba(165,180,252,.34);fill:rgba(165,180,252,.12)}[data-theme=dark] .anat-svg .z.act .h{stroke:rgba(165,180,252,.46)}
.anat-svg .z:hover .h{stroke:var(--lx-sel-soft);fill:var(--lx-sel-soft)}
.picked .chip{border-color:var(--lx-indigo);color:var(--lx-text);background:var(--lx-sel-soft)}
/* segmented controls / tabs / settings nav */
.seg button.on,.anat-views button.on{background:linear-gradient(110deg,var(--lx-g1),var(--lx-g2));color:#fff;border-color:transparent}
.stabs a{transition:color .2s}.stabs a:hover{color:var(--lx-indigo)}
.stabs a.on,[data-theme=dark] .stabs a.on{color:var(--lx-sel);border-image:linear-gradient(90deg,var(--lx-indigo),var(--lx-teal),var(--lx-brass)) 1}
.snav a{transition:background-color .2s,color .2s}
.snav a.on,[data-theme=dark] .snav a.on{background:var(--lx-sel-soft);color:var(--lx-sel);box-shadow:inset 3px 0 0 var(--lx-sel)}
/* toggles keep the switch shape; colour only */
/* confirmation */
.done .ok .tick{background:linear-gradient(135deg,var(--lx-g1),#0f766e);color:#fff;box-shadow:0 10px 26px -10px rgba(67,56,202,.6)}
.lx-enter .ok .tick{animation:lx-pop .55s cubic-bezier(.2,.9,.3,1.3) both .1s}
@keyframes lx-pop{from{transform:scale(.6);opacity:0}to{transform:none;opacity:1}}
.ready-msg{color:var(--lx-text);font-weight:600}
.steps-next li.on{background:linear-gradient(110deg,var(--lx-g1),var(--lx-g2));color:#fff;border-color:transparent}
/* one-time entry reveal per page (re-renders on the same page don't replay; opacity/transform only, so no layout shift) */
.lx-enter .card,.lx-enter>section,.lx-enter .tf-day{animation:lx-rise .5s cubic-bezier(.2,.7,.2,1) both}
.lx-enter .card:nth-child(2){animation-delay:.06s}.lx-enter .card:nth-child(3){animation-delay:.12s}.lx-enter .card:nth-child(4){animation-delay:.18s}
@keyframes lx-rise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion: reduce){
  .card.summary,.done .card.ok,.card.anat,.login.card,.sugg-box,.lx-enter .card,.lx-enter>section,.lx-enter .tf-day,.lx-enter .h-ic path,.lx-enter .ok .tick{animation:none!important}
  .btn,.cd,.sg-row,.stabs a,.snav a{transition:none}.btn:hover,.cd:hover{transform:none!important}.btn.primary::after{display:none}
}

/* ===================== v1.2.1: shop logo in the top bar + icons on labels/buttons ===================== */
.shop-logo{flex:none;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#fff;overflow:hidden;
  box-shadow:0 0 0 1px rgba(15,23,42,.12),0 4px 14px -6px var(--lx-glow)}
.shop-logo img{width:30px;height:30px;object-fit:contain;display:block;image-rendering:auto}
[data-theme=dark] .shop-logo{box-shadow:0 0 0 1px rgba(255,255,255,.22),0 4px 16px -6px var(--lx-glow)}
.shop-logo.mono{background:linear-gradient(135deg,var(--lx-g1),var(--lx-g2));color:#fff;font-size:13px;font-weight:800;letter-spacing:.02em}
.logo.is-shop .logo-txt{font-size:17px}
.logo-prev{display:flex;align-items:center;gap:12px}.logo-prev .shop-logo{width:64px;height:64px}.logo-prev .shop-logo img{width:58px;height:58px}.logo-prev .shop-logo.mono{font-size:22px}
.ic.dec{color:var(--lx-indigo);margin-right:.45em;font-size:1em}
.btn .ic.dec{margin-right:0}.btn.primary .ic.dec,.btn.danger .ic.dec{color:inherit}
.btn.danger .ic.dec{color:#b91c1c}
.menu a .ic.dec,.menu-lnk .ic.dec{margin-right:.6em}.menu a.on .ic.dec{color:inherit}
.stabs a .ic.dec{margin-right:.4em;color:var(--muted)}.stabs a.on .ic.dec,.stabs a:hover .ic.dec{color:var(--lx-indigo)}
.snav a .ic.dec{margin-right:.55em}
.f-l{display:inline-flex;align-items:center}.f-l .ic.dec{color:var(--lx-teal);margin-right:.4em}
.done td.muted .ic.dec{color:var(--lx-violet)}
.faq summary .ic.dec{color:var(--lx-indigo);margin-right:.5em}
.ic.svc-ic{color:var(--lx-indigo);margin-right:7px;font-size:1.05em;vertical-align:-.22em}
tr.sel .ic.svc-ic{color:var(--lx-violet)}
/* ---------------- v1.3 job board + customer job status ---------------- */
.smain:has(#jb){max-width:none}
.st-received{--st:var(--jc-st-received,#64748B)}.st-in_progress{--st:var(--jc-st-in-progress,#D97706)}.st-complete{--st:var(--jc-st-complete,#16A34A)}.st-cancelled{--st:var(--jc-st-cancelled,#DC2626)}
.st-on_hold{--st:var(--jc-st-on-hold,#0284C7)}.st-awaiting_approval{--st:var(--jc-st-awaiting-approval,#7C3AED)}.st-awaiting_parts{--st:var(--jc-st-awaiting-parts,#0F766E)}
[data-theme=dark] .st-received{--st:var(--jc-st-received,#94A3B8)}[data-theme=dark] .st-in_progress{--st:var(--jc-st-in-progress,#FBBF24)}[data-theme=dark] .st-complete{--st:var(--jc-st-complete,#4ADE80)}[data-theme=dark] .st-cancelled{--st:var(--jc-st-cancelled,#F87171)}
[data-theme=dark] .st-on_hold{--st:var(--jc-st-on-hold,#38BDF8)}[data-theme=dark] .st-awaiting_approval{--st:var(--jc-st-awaiting-approval,#A78BFA)}[data-theme=dark] .st-awaiting_parts{--st:var(--jc-st-awaiting-parts,#2DD4BF)}
.jb-bar{display:flex;flex-wrap:wrap;gap:10px 18px;align-items:center;justify-content:space-between;margin-bottom:12px}
.jb-day b{font-size:16px}.jb-crew{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center}
.jb{display:grid;gap:12px;overflow-x:auto;padding:2px 2px 10px;align-items:stretch;overscroll-behavior-x:contain}
.jb-col{background:var(--panel2);border:1px solid var(--line);border-radius:8px;min-height:380px;display:flex;flex-direction:column;transition:border-color .15s,box-shadow .15s,background .15s}
.jb-col.jb-today{background:color-mix(in srgb,var(--blue2) 6%,var(--panel2));border-style:dashed}
.jb-col h3{display:flex;gap:8px;align-items:center;margin:0;padding:11px 12px;font-size:15.5px;border-bottom:1px solid var(--line)}
.jb-col h3 .ic{width:18px;height:18px;color:var(--blue2)}
.jb-n{margin-left:auto;font-size:12px;font-weight:700;background:var(--panel);border:1px solid var(--line);border-radius:999px;padding:1px 9px;color:var(--muted)}
.jb-list{display:grid;gap:10px;padding:10px;flex:1;align-content:start}
.jb-col.over{border-color:var(--blue2);box-shadow:inset 0 0 0 2px var(--blue2);background:color-mix(in srgb,var(--blue2) 10%,var(--panel2))}
.jb-empty{border:1.5px dashed var(--line2);border-radius:6px;padding:22px 12px;text-align:center;color:var(--muted);font-size:13px}
.jcard{background:var(--panel);border:1px solid var(--line);border-left:4px solid var(--st);border-radius:7px;padding:10px;display:grid;gap:9px;box-shadow:var(--shadow);user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;cursor:grab;font-size:14px;line-height:1.35}
.jcard:hover{border-color:color-mix(in srgb,var(--st) 55%,var(--line));border-left-color:var(--st)}
.jc-st{width:100%;height:38px;font-weight:700;color:var(--st);background-color:color-mix(in srgb,var(--st) 10%,var(--input));border-color:color-mix(in srgb,var(--st) 45%,var(--line2))}
.jc-st option{color:var(--text);background:var(--panel)}
.jc-body{position:relative;display:grid;gap:6px}
.jc-grip{position:absolute;right:-6px;top:-6px;width:38px;height:38px;display:grid;place-items:center;color:var(--muted);touch-action:none;cursor:grab;border-radius:6px}
.jc-grip:hover{background:var(--panel2)}.jc-grip .ic{width:18px;height:18px}
.jc-time{font-size:13px;color:var(--muted);padding-right:0}.jc-time b{color:var(--text);font-size:16px}
.jc-row{display:flex;gap:8px;align-items:flex-start}.jc-row .ic{width:16px;height:16px;flex:none;margin-top:2px;color:var(--muted)}
.jc-sub{display:block;font-size:12.5px;color:var(--muted);margin-top:2px}
.jc-hold{font-size:12px;font-weight:600;color:var(--amber);display:flex;gap:6px;align-items:center}.jc-hold .ic{width:14px;height:14px}
.jc-as-l{display:flex;gap:8px;align-items:center;font-size:12px;color:var(--muted);font-weight:600}.jc-as{height:32px;flex:1;font-size:13px;min-width:0}
.jdragging{opacity:.35}body.jb-dragging,body.jb-dragging *{cursor:grabbing!important}
.jghost{position:fixed;left:0;top:0;z-index:100070;pointer-events:none;margin:0;box-shadow:0 22px 44px rgba(15,23,42,.30);rotate:1.5deg;opacity:.97;touch-action:none;will-change:transform}
body.jb-dragging .jcard,
body.jb-dragging .jb,
body.jb-dragging .jb-list,
body.jb-dragging .jb-wrap{touch-action:none!important}
body.jb-dragging .jb.jb-mob,
body.jb-dragging .jb-board-locked .jb,
.jb-drag-active .jb{
  overflow-x:auto!important;overflow-y:hidden!important;-webkit-overflow-scrolling:touch;
  display:flex!important;flex-direction:row!important;align-items:stretch;gap:10px;scroll-behavior:auto}
body.jb-dragging .jb > .jb-col,
body.jb-dragging .jb.jb-mob > .jb-col,
body.jb-dragging .jb-board-locked .jb > .jb-col,
.jb-drag-active .jb > .jb-col{
  display:flex!important;flex:0 0 min(82vw,300px)!important;min-width:min(82vw,300px)!important;width:auto!important;max-width:none!important;height:auto!important}
.jb-help{margin:10px 0 0}
@media (min-width:1600px){.jcard{font-size:15.5px}.jc-time b{font-size:18px}.jb-col h3{font-size:17px}}
.jstat{max-width:560px;margin:22px auto;padding:0 14px}
.jstat-card{padding:22px;border-top:5px solid var(--st,var(--line))}
.jstat-hi{font-size:22px;font-weight:800;letter-spacing:-.01em;margin-bottom:12px}
.jstat-pill{display:inline-flex;gap:8px;align-items:center;padding:9px 16px;border-radius:999px;font-weight:800;font-size:17px;color:var(--st);background:color-mix(in srgb,var(--st) 13%,transparent);border:1px solid color-mix(in srgb,var(--st) 40%,transparent)}
.jstat-pill .ic{width:20px;height:20px}
.jstat-msg{font-size:15px;margin:14px 0 4px}
.jstat-steps{display:flex;list-style:none;padding:0;margin:18px 0 14px;gap:6px}
.jstat-steps li{flex:1;text-align:center;font-size:12px;color:var(--muted);padding-top:9px;border-top:5px solid var(--line);border-radius:2px}
.jstat-steps li.done,.jstat-steps li.on{border-color:var(--st);color:var(--text)}.jstat-steps li.on{font-weight:800}
.jstat-t td{padding:8px 10px 8px 0}
.jstat-link{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:center;margin:10px 0 6px}.jstat-link .small{flex-basis:100%;text-align:center}
.jchip{color:var(--st);border-color:color-mix(in srgb,var(--st) 40%,transparent);background:color-mix(in srgb,var(--st) 12%,transparent)}
.jst:empty{display:none}
/* ---------------- v1.4 e-bike brands + booking requirements ---------------- */
.seg.btype{margin:4px 0 12px;max-width:340px}.seg.btype button{display:inline-flex;align-items:center;justify-content:center;gap:6px}.seg.btype .ic{width:16px;height:16px}
.eb-notice{border:2px solid var(--blue2);border-radius:8px;padding:14px;margin:0 0 14px;background:color-mix(in srgb,var(--blue2) 7%,var(--panel));display:grid;gap:10px;box-shadow:0 0 0 4px color-mix(in srgb,var(--blue2) 10%,transparent)}
.eb-notice.is-blocked{border-color:var(--red);background:color-mix(in srgb,var(--red) 6%,var(--panel));box-shadow:0 0 0 4px color-mix(in srgb,var(--red) 10%,transparent)}
.eb-h{display:flex;gap:8px;align-items:flex-start;font-size:15.5px;line-height:1.3}.eb-h .ic{width:20px;height:20px;flex:none;color:var(--amber);margin-top:1px}
.eb-brands{display:flex;flex-wrap:wrap;gap:8px}
.eb-chip{display:inline-flex;align-items:center;gap:7px;min-height:42px;padding:6px 12px;border-radius:999px;border:1.5px solid var(--line2);background:var(--panel);cursor:pointer;text-align:left;line-height:1.15}
.eb-chip .ic{width:16px;height:16px;flex:none;color:var(--amber)}.eb-chip small{display:block;font-size:11px;color:var(--muted);font-weight:500}
.eb-chip:hover{border-color:var(--blue2)}.eb-chip.on{border-color:var(--blue2);background:color-mix(in srgb,var(--blue2) 14%,var(--panel));box-shadow:inset 0 0 0 1px var(--blue2)}
.eb-chip.other .ic{color:var(--muted)}.eb-chip.other.on{border-color:var(--red);background:color-mix(in srgb,var(--red) 10%,var(--panel));box-shadow:inset 0 0 0 1px var(--red)}
.eb-block{border-top:1px solid color-mix(in srgb,var(--red) 30%,var(--line));padding-top:10px}.eb-block>b{color:var(--red);font-size:15px}
[data-theme=dark] .eb-block>b{color:#FCA5A5}
fieldset.reqs{border:1px solid var(--line);border-radius:6px;padding:10px 12px;display:grid;gap:10px;margin:0}
fieldset.reqs legend{font-weight:700;font-size:13px;display:flex;gap:6px;align-items:center;padding:0 4px}
.rq{border-left:4px solid var(--amber);padding:6px 0 6px 10px}.rq.is-ok{border-left-color:var(--green)}
.rq-ed{border:1px solid var(--line);border-radius:6px;padding:12px;display:grid;gap:8px;background:var(--panel2)}.rq-ed.is-on{border-color:var(--blue2)}
.rq-top{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.rq-svcs{display:flex;flex-wrap:wrap;gap:8px 16px}
.small.agreed{display:flex;gap:6px;align-items:flex-start}.small.agreed .ic{width:14px;height:14px;flex:none;margin-top:1px;color:var(--green)}
.jc-eb .ic{color:var(--amber)!important}
.seg.btype button{flex:1;height:38px}
.rq-svcs[hidden]{display:none}
/* ---------------- v1.5 printed price list ---------------- */
.parts-note{display:flex;gap:8px;align-items:flex-start;border:1.5px solid var(--amber);border-left-width:5px;border-radius:6px;padding:9px 12px;margin:0 0 12px;background:color-mix(in srgb,var(--amber) 9%,var(--panel));font-size:14px;line-height:1.35}
.parts-note .ic{width:18px;height:18px;flex:none;color:var(--amber);margin-top:1px}.parts-note b{font-weight:800}
.parts-note.big{font-size:17px;margin:8px 0 0;padding:10px 14px}.parts-note.big .ic{width:20px;height:20px}
.parts-mini{display:flex;gap:6px;align-items:center;margin-top:6px;font-size:12.5px;font-weight:700;color:var(--text)}.parts-mini .ic{width:14px;height:14px;color:var(--amber);flex:none}
.sum-price{font-size:20px;display:block}.sum-price.is-long{font-size:16px;line-height:1.3}
b.pcell{display:block}
.pn-s{display:inline-flex;gap:5px;align-items:center;font-weight:700;font-size:12.5px;color:var(--text);text-decoration:none;margin-left:6px}.pn-s .ic{width:14px;height:14px;color:var(--amber)}
.m-pc{min-width:190px}.m-pc select{width:100%;margin-top:4px;font-size:12.5px}.m-el{display:grid;gap:2px;margin-top:4px}.m-pt{display:block;font-size:15px}
.pp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px 12px;margin-top:10px;padding-top:10px;border-top:1px dashed var(--line)}.pp-grid select{width:100%}
#pl-t td input{width:100%}#pl-t .pl-p{font-variant-numeric:tabular-nums}
main.prices{max-width:1180px;margin:0 auto;padding:16px;display:grid;gap:16px}
.pl-hero{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;padding:18px 20px}.pl-hero .eyebrow{display:flex;gap:6px;align-items:center;margin:0;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.pl-hero .eyebrow .ic{width:14px;height:14px}
.pl-grid{columns:2 420px;column-gap:16px}.pl-cat{break-inside:avoid;margin:0 0 16px;padding:14px 16px}.pl-cat h3{margin:0 0 8px;font-size:16px;text-decoration:underline;text-underline-offset:3px}
.pl-list{list-style:none;margin:0;padding:0;display:grid;gap:2px}.pl-list li{display:flex;align-items:baseline;gap:6px;padding:4px 0;border-bottom:1px solid color-mix(in srgb,var(--line) 60%,transparent)}.pl-list li:last-child{border-bottom:0}
.pl-n{flex:0 1 auto}.pl-n .chip{font-size:11px;padding:1px 7px;margin-left:4px;text-decoration:none;vertical-align:1px}.pl-dots{flex:1 1 20px;border-bottom:2px dotted var(--line2);transform:translateY(-4px);min-width:12px}.pl-p{flex:none;font-variant-numeric:tabular-nums;white-space:nowrap}
@media (max-width:640px){main.prices{padding:10px}.pl-hero{padding:14px}.pl-hero .bar{width:100%}.pl-cat{padding:12px}.parts-note.big{font-size:15.5px}}
main.detail>div{grid-template-columns:minmax(0,1fr)}
@media (max-width:480px){#svc-sec .t th,#svc-sec .t td{padding-left:5px;padding-right:5px}#svc-sec .t td .btn.sm{padding:0 8px}#svc-sec .t td .btn.sm .ic{display:none}#svc-sec .t td:first-child .svc-ic{display:none}}
@media (max-width:480px){#svc-sec .t td:first-child,#svc-sec .t td:nth-child(2){overflow-wrap:anywhere;hyphens:auto}}
.smain:has(#svc-menu){max-width:1440px}#svc-menu .m-l{min-width:180px}#svc-menu .m-pc{min-width:210px}#svc-menu .m-to{min-width:150px}
/* v1.5 calendar day status text */
.cd small.cs-ok{color:#15803D;font-weight:700}[data-theme=dark] .cd small.cs-ok{color:#4ADE80}
.cd small.cs-out,.cal-key .cs-out{color:#B42318;font-weight:600;opacity:.95}[data-theme=dark] .cd small.cs-out,[data-theme=dark] .cal-key .cs-out{color:#FCA5A5}
.cd.on small.cs-ok{color:inherit}.cd .cs-s{display:none}
.cd.off.is-out{background:color-mix(in srgb,#DC2626 5%,var(--panel2))}
@media (max-width:480px){.cd .cs-l{display:none}.cd .cs-s{display:inline}.cd small{font-size:10.5px}}
/* v1.5 flow: step 2 suggested service + collapsible extra services */
details.addsvc>summary{list-style:none;display:flex;align-items:center;gap:10px;cursor:pointer;margin:-2px 0}details.addsvc>summary::-webkit-details-marker{display:none}
details.addsvc>summary h3{margin:0;flex:1}details.addsvc[open]>summary{margin-bottom:12px}
.chev{width:10px;height:10px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:rotate(45deg);transition:transform .15s;margin:0 4px 4px}details[open]>summary .chev{transform:rotate(-135deg);margin-bottom:-2px}
.sg-adds{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:10px 0 0}.chip-x{border:0;background:none;font-size:15px;line-height:1;padding:0 0 0 6px;cursor:pointer;color:inherit}
.sg-total{display:flex;gap:6px;align-items:baseline;flex-wrap:wrap;margin:10px 0 6px;padding-top:8px;border-top:1px solid var(--line)}.sg-total b{font-size:18px}
#sugg-sec .lnk{display:inline-flex;gap:5px;align-items:center;margin-top:4px}#sugg-sec .lnk .ic{width:14px;height:14px}
.main-chip{white-space:nowrap}
/* v1.5 / v1.13.2 Edit booking + universal modal shell */
.ebk-ov{position:fixed;inset:0;z-index:2200;background:rgba(15,18,30,.45);display:flex;align-items:center;justify-content:center;padding:16px;overflow:hidden;overscroll-behavior:contain;touch-action:manipulation}
.ebk-ov > .ebk,.ebk-ov > .jm-card,.ebk-ov > .card{touch-action:pan-y;max-height:min(var(--sheet-vvh,100dvh),100dvh)}
.ebk{width:min(640px,100%);padding:0;display:flex;flex-direction:column;max-height:calc(100dvh - 32px);max-height:calc(100vh - 32px);overflow:hidden;min-height:0;position:relative;z-index:1}
.ebk-head{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:12px 16px;border-bottom:1px solid var(--line);flex:none;position:sticky;top:0;z-index:2;background:var(--panel,var(--bg));touch-action:none;cursor:grab;user-select:none}
.ebk-head:active{cursor:grabbing}
.ebk-head :is(button,a,input,select,textarea,label){touch-action:manipulation;cursor:pointer;user-select:auto}
.ebk-head h3{margin:0;display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:1.05rem;min-width:0}
.ebk-body,.ebk-scroll{padding:12px 16px;display:flex;flex-direction:column;gap:12px;overflow-y:auto;overflow-x:hidden;flex:1 1 auto;min-height:0;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;touch-action:pan-y}
.ebk.dragging,.sheet.dragging{transition:none}
.ebk.dragging .ebk-body,.ebk.dragging .jm-body,.sheet.dragging .sheet-body{pointer-events:none}
.ebk-head .grab,.sheet-head .grab{touch-action:none}
body.modal-open{overflow:hidden;overscroll-behavior:none}
.ebk-f{border:1px solid var(--line);border-radius:10px;padding:8px 12px 10px;margin:0;display:grid;gap:6px;min-width:0}
.ebk-f legend{font-weight:700;padding:0 6px;display:flex;align-items:center;gap:6px;font-size:13px}
.ebk-warn{display:flex;gap:8px;align-items:flex-start;padding:8px 10px;border-radius:10px;background:color-mix(in srgb,#dc2626 12%,transparent);color:var(--red,#b91c1c);font-size:.9rem}
.ebk-warn.soft{background:color-mix(in srgb,#d97706 12%,transparent);color:inherit}
.ebk-warn svg{flex:none;width:16px;height:16px;margin-top:2px}
.ebk-adds{display:flex;flex-wrap:wrap;gap:6px 10px}
.ebk-chips{display:flex;flex-wrap:wrap;gap:6px}
.ebk-addz{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.ebk-addz select{flex:1 1 140px;min-width:0}
.ebk-price{font-size:1rem}
.ebk-foot{display:flex;justify-content:flex-end;gap:10px;padding:10px 16px;border-top:1px solid var(--line);flex:none;position:sticky;bottom:0;z-index:2;background:var(--panel,var(--bg));border-radius:0 0 16px 16px}
.ebk-foot .btn.primary.big{padding:12px 22px;font-size:1.02rem}
.ebk textarea{width:100%;font:inherit}
.staff-note{display:flex;gap:6px;align-items:flex-start;padding:6px 8px;border-radius:8px;background:color-mix(in srgb,#d97706 10%,transparent)}
.staff-note svg{flex:none;width:14px;height:14px;margin-top:2px}
.jc-top{display:flex;gap:6px;align-items:center}.jc-top .jc-st{flex:1;min-width:0}.jc-edit{padding:6px 8px}
/* Add job: wider, shorter, multi-column on laptop */
.ebk.ebk-add{width:min(980px,100%);max-height:calc(100dvh - 32px);max-height:calc(100vh - 32px)}
.ebk.ebk-add .ebk-head{padding:8px 12px;border-bottom:0;justify-content:flex-end;min-height:40px}
.ebk.ebk-add .ebk-head h3{display:none}
.ebk.ebk-add .ebk-body{padding:8px 14px 10px;gap:10px}
.ebk.ebk-add .ebk-grid{display:grid;gap:10px}
@media (min-width:900px){
  .ebk.ebk-add .ebk-grid{grid-template-columns:1.1fr 1fr 1fr;align-items:start}
  .ebk.ebk-add .ebk-span2{grid-column:span 2}
  .ebk.ebk-add .ebk-span3{grid-column:1/-1}
  .ebk.ebk-add .ebk-f{padding:8px 10px}
  .ebk.ebk-add textarea{rows:2}
}
.ebk.ebk-add .ebk-notes-shop summary{cursor:pointer;font-weight:600;font-size:13px;list-style:none;display:flex;align-items:center;gap:6px}
.ebk.ebk-add .ebk-notes-shop summary::-webkit-details-marker{display:none}
.ebk.ebk-add .ebk-notes-shop[open] summary{margin-bottom:6px}
.ebk.ebk-add .ebk-foot{padding:10px 14px}
@media (max-width:720px){
  .ebk-ov{padding:0;align-items:stretch}
  .ebk{width:100%;max-height:100dvh;border-radius:0;min-height:0;height:100dvh;box-sizing:border-box}
  .ebk.ebk-add,.jm-card{width:100%;max-height:100dvh;height:100dvh;box-sizing:border-box}
  .ebk .ebk-body,.ebk .ebk-scroll,.jm-card .ebk-body,.jm-card .jm-body{flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;touch-action:pan-y}
  .ebk-foot{border-radius:0;padding:12px;padding-bottom:max(12px,env(safe-area-inset-bottom))}
  .ebk-body,.ebk-head{padding-left:12px;padding-right:12px}
  .ebk.ebk-add .ebk-foot .btn.primary.big{flex:1;justify-content:center}
}
/* Fraser's landing: inline map block */
.sl-map{margin-top:0}
.sl-map .shop-map-inline{height:220px;border-radius:10px;overflow:hidden;border:1px solid var(--line);background:var(--panel2)}
.sl-map .sl-map-acts{margin-top:10px;display:flex;flex-wrap:wrap;gap:8px}
.sl-hours .sl-contact{margin-top:10px;display:flex;flex-wrap:wrap;gap:8px}
.ah-addblk-row{display:flex;align-items:center;gap:4px}
.ah-addblk-row button.ah-addblk-go{flex:1;text-align:left}
.ah-addblk-row button.ah-addblk-x{flex:none;width:32px;padding:6px 0;border:0;background:none;border-radius:6px;cursor:pointer;color:var(--muted);font-size:16px;line-height:1}
.ah-addblk-row button.ah-addblk-x:hover{background:var(--panel2);color:var(--text)}
.ah-addblk-on{opacity:.95}
.ah-addblk-on .ah-addblk-go{font-weight:600}
/* v1.5.1 admin status bar */
.sbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:8px 16px;border-bottom:1px solid var(--line);background:var(--panel,var(--bg))}
.sb-light{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line);background:transparent;color:inherit;border-radius:999px;padding:6px 14px 6px 10px;font:inherit;cursor:pointer}
.sb-light:hover{border-color:currentColor}
.sb-dot{width:12px;height:12px;border-radius:50%;background:#16a34a;flex:none}
.sb-light.paused .sb-dot{background:#d97706}
.sb-light.off .sb-dot{background:#8b8f98}
.sb-light.sync .sb-dot{background:#2563eb}
@keyframes sbp{to{opacity:.35}}
@media (prefers-reduced-motion:reduce){.sb-light.sync .sb-dot{animation:none}}
.sb-light.paused{border-color:color-mix(in srgb,#d97706 55%,transparent)}.sb-light.off{border-color:color-mix(in srgb,#8b8f98 55%,transparent)}
.sb-sub svg{width:13px;height:13px;vertical-align:-2px;color:#16a34a}
.sb-card{position:absolute;z-index:90;width:min(420px,calc(100vw - 16px));padding:14px 16px;box-shadow:0 12px 40px rgba(0,0,0,.22)}
.sb-h{display:flex;align-items:center;gap:10px;margin-bottom:8px}.sb-h b{flex:1}.sb-h .sb-light{padding:4px;border:0}
/* v1.5.1 admin home */
.ah-acts{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 12px}
.ah-grid{display:grid;grid-template-columns:minmax(280px,340px) minmax(0,1fr);gap:16px;align-items:start}
@media (max-width:1100px){.ah-grid{grid-template-columns:minmax(0,1fr)}}
.ah-cal{padding:12px}
.acal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;margin-top:8px}
.acal-h{font-size:.72rem;text-align:center;color:var(--muted)}
.acd{border:1px solid var(--line);background:transparent;color:inherit;border-radius:8px;min-height:46px;padding:3px 2px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:1px;font:inherit;cursor:pointer}
.acd b{font-size:.9rem}.acd small{font-size:.66rem;line-height:1.1;font-weight:600}
.acd.closed{opacity:.55}
.acd.green{background:color-mix(in srgb,#16a34a 6%,transparent);border-color:color-mix(in srgb,#16a34a 30%,var(--line))}.acd.green small{color:#15803d}
.acd.red{background:color-mix(in srgb,#dc2626 6%,transparent);border-color:color-mix(in srgb,#dc2626 30%,var(--line))}.acd.red small{color:#b91c1c}
[data-theme=dark] .acd.green small{color:#4ade80}[data-theme=dark] .acd.red small{color:#f87171}
.acd b{position:relative;z-index:1}
.acd.today{border-color:color-mix(in srgb,var(--accent,#6366f1) 50%,var(--line))}
.acd.today b{text-decoration:underline;text-underline-offset:3px}
.acd.on{outline:none;border-color:var(--accent,#6366f1);box-shadow:0 0 0 1px var(--accent,#6366f1);background:color-mix(in srgb,var(--accent,#6366f1) 7%,transparent)}
.acd.on.red,.acd.on.green{background:color-mix(in srgb,var(--accent,#6366f1) 7%,transparent);border-color:var(--accent,#6366f1)}
[data-theme=dark] .acd.on,[data-theme=dark] .acd.today{border-color:rgba(255,255,255,.3);box-shadow:0 0 0 1px rgba(255,255,255,.22)}
[data-theme=dark] .acd.on.red,[data-theme=dark] .acd.on.green{border-color:rgba(255,255,255,.3)}
[data-theme=dark] :is(.topsearch:focus-within,.ss-box:focus-within,.search-wrap:focus-within){box-shadow:0 0 0 3px color-mix(in srgb,var(--accent,#fff) 25%,transparent)}
@media (max-width:480px){.acd .acd-l{display:none}.acd{min-height:42px}}
.cal-key .kd{display:inline-block;width:10px;height:10px;border-radius:3px;border:1px solid var(--line);margin-right:4px;vertical-align:-1px}
.cal-key .kd.green{background:color-mix(in srgb,#16a34a 40%,transparent)}.cal-key .kd.red{background:color-mix(in srgb,#dc2626 40%,transparent)}
.cal-key{display:flex;gap:12px;flex-wrap:wrap;margin-top:8px}
.ah-wk{margin-bottom:12px}
.off-chip{background:color-mix(in srgb,#8b8f98 22%,transparent)}
/* v1.5.1 data storage */
.ds-prov{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--line);border-radius:12px}.ds-prov>div{flex:1}
.ds-ic{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:color-mix(in srgb,var(--accent,#5b3df5) 12%,transparent)}.ds-ic svg{width:20px;height:20px}
/* print today's jobs (paper fallback) */
#print-area{display:none}
@media print{body.printing>*:not(#print-area){display:none!important}body.printing #print-area{display:block;color:#000;background:#fff;font:12pt/1.35 system-ui,sans-serif}
  #print-area h1{font-size:16pt;margin:0 0 4pt}#print-area table{width:100%;border-collapse:collapse;margin-top:8pt}#print-area th,#print-area td{border:1px solid #555;padding:5pt;text-align:left;vertical-align:top}}
#ah-wk[hidden]{display:none}
/* v1.5.1: on phones the workshop's own page (home, bookings…) comes first; the settings menu follows it */
@media (max-width:720px){.set:has(.ah-grid) .smain,.set:has(#jb) .smain{order:1}.set:has(.ah-grid) .snav,.set:has(#jb) .snav{order:2}}
/* ===================== v1.6.0 master console (/master) + workshop-admin banners ===================== */
body.master{overflow-x:clip;max-width:100vw}
.addr-modes{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 12px}
.addr-box{border:1px solid var(--line);border-radius:var(--r,10px);padding:12px 14px;margin:0;display:grid;gap:10px}
.addr-box legend{font-weight:600;padding:0 4px}
.addr-fields .grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
@media(max-width:520px){.addr-fields .grid2{grid-template-columns:1fr}}
.combo{position:relative}.combo-in{width:100%;font-size:16px;min-height:44px;padding:10px 12px;border:1px solid var(--line);border-radius:5px;background:var(--panel)}
.combo-list{position:absolute;z-index:50;left:0;right:0;max-height:min(280px,45vh);overflow:auto;margin-top:4px;padding:6px;border:1px solid var(--line);border-radius:6px;background:var(--panel);box-shadow:var(--sh)}
.combo-opt{display:block;width:100%;text-align:left;padding:10px 12px;border:0;background:transparent;font-size:16px;min-height:44px;cursor:pointer;border-radius:4px}
.combo-opt:hover,.combo-opt.on{background:var(--soft)}
.ph-row{display:flex;gap:8px;align-items:stretch}.ph-cc{flex:0 0 auto;max-width:46%;font-size:16px;min-height:44px}.ph-nat{flex:1;min-width:0;font-size:16px;min-height:44px}
.mwrap{max-width:1100px;margin:0 auto;padding:22px 20px 60px}.mwrap h2{margin:0 0 4px}.mwrap .lead{margin:0 0 18px;color:var(--muted)}
.m-who{margin-left:auto;padding-right:6px}
.btn.ghost{border-color:transparent;background:transparent;padding-left:4px;margin-bottom:8px}
.mhead{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.mlist{display:grid;gap:8px}
.mrow{display:grid;grid-template-columns:minmax(220px,2fr) 150px repeat(3,minmax(120px,1fr)) auto;gap:12px;align-items:center;padding:12px 14px;color:inherit}
.mrow:hover{border-color:var(--accent-2)}
.mrow-main{display:contents;color:inherit;text-decoration:none}
.mhide{justify-self:end;font-size:.9rem;white-space:nowrap;cursor:pointer}
.mhide input{margin-right:6px}
.mpill.st-hidden{background:var(--muted-bg,#e2e8f0);color:var(--ink-muted,#475569)}
.mr-name{display:flex;align-items:center;gap:10px;min-width:0}.mr-name b{display:block}.mr-name small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mr-name.big h2{margin:0}.mr-name.big .shop-logo{transform:scale(1.4);margin:0 8px}
.mr-k{display:grid;gap:1px;font-size:13px}.mr-k b{font-weight:650}.mr-st{display:flex;gap:6px;flex-wrap:wrap}
.mpill{display:inline-block;font-size:11px;font-weight:750;letter-spacing:.05em;text-transform:uppercase;border-radius:2px;padding:2px 7px;border:1px solid var(--line2);color:var(--muted)}
.mpill.st-live{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.mpill.st-demo{color:var(--brass);border-color:var(--brass-hi)}
.mpill.st-suspended{background:#9b2c2c;border-color:#9b2c2c;color:#fff}
.mpill.st-incident{background:#b45309;border-color:#b45309;color:#fff;margin-left:6px}
.mstats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:14px}.mstats .card{padding:12px 14px;display:grid;gap:2px}.mstats b{font-size:18px}
.mgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.mctl{padding:14px 16px;display:grid;gap:10px;align-content:start}.mctl h3{margin:0;font-size:16px;display:flex;align-items:center;gap:8px}.mctl p{margin:0}.mctl.wide{grid-column:1/-1}
.mctl .bar{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.mseg{display:flex;gap:6px;flex-wrap:wrap}
.dangerz{border-color:#c53030}
.mconf{display:flex;gap:8px;align-items:flex-end;flex-wrap:wrap;padding:10px;border:1px dashed var(--line2);border-radius:4px}.mconf .f{flex:1;min-width:160px}
.otp{padding:14px 16px;display:grid;gap:10px;border-color:var(--brass-hi);margin-top:12px}
.otp-code{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.otp-code code{font-size:22px;font-weight:700;letter-spacing:.06em;padding:8px 12px;background:var(--panel2);border:1px solid var(--line2);border-radius:4px;user-select:all}
.madd{max-width:720px}.mst{border:0;padding:0;margin:0;display:grid;gap:8px}.mst legend{font-weight:600;margin-bottom:6px}
.mradio{display:flex;gap:10px;align-items:flex-start;padding:8px 10px;border:1px solid var(--line);border-radius:4px;cursor:pointer}.mradio:has(input:checked){border-color:var(--accent)}.mradio small{display:block}
.mcolor{display:flex;gap:10px;align-items:center}.mcolor input{width:56px;height:32px;padding:0;border:1px solid var(--line2);border-radius:4px;background:none}
.maud{display:grid;gap:2px;max-height:420px;overflow:auto;margin-top:8px}.maud-r{display:grid;grid-template-columns:170px 1fr auto;gap:10px;padding:5px 0;border-bottom:1px solid var(--line);font-size:13px}
.trow.tight{display:inline-flex;gap:8px;align-items:center}
.imp-banner{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:10px 14px;margin:0 0 14px;background:#7c2d12;color:#fff;border-radius:4px}.imp-banner .ic{stroke:#fff}.imp-banner span{flex:1;min-width:200px}
.pc-card{border-color:var(--brass-hi)}
.an-range{margin-bottom:14px}.an-stats{margin-bottom:14px}.an-charts{display:grid;gap:16px}@media(min-width:720px){.an-charts{grid-template-columns:1fr 1fr}}.an-grid{align-items:start}
.mchart{width:100%;height:auto;display:block;margin-top:6px;background:var(--panel2);border-radius:5px;border:1px solid var(--line)}
.mbars{display:grid;gap:6px;margin-top:4px}.mbar{display:grid;grid-template-columns:minmax(0,1fr) minmax(60px,120px) 36px;gap:8px;align-items:center;font-size:13px}
.mbar-l{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mbar-t{height:8px;background:var(--panel2);border-radius:4px;overflow:hidden;border:1px solid var(--line)}
.mbar-t i{display:block;height:100%;background:linear-gradient(90deg,var(--accent,#1f4d3a),var(--blue2,#2563eb));border-radius:3px}
.an-sess{display:grid;gap:0;margin-top:8px;overflow-x:auto}.an-sess-h,.an-sess-r{display:grid;grid-template-columns:72px minmax(120px,1fr) 90px 150px 72px minmax(180px,2fr);gap:8px;padding:6px 0;border-bottom:1px solid var(--line);font-size:12px;align-items:start;min-width:640px}
.an-sess-h{color:var(--muted);font-weight:600}.an-paths{line-height:1.35;word-break:break-word}
.sub-row{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px;margin-top:6px}.sub-field{display:flex;align-items:stretch;width:100%;max-width:420px;border:1px solid var(--line);border-radius:5px;overflow:hidden;background:var(--panel)}
.sub-in{flex:1;min-width:0;height:40px;padding:0 12px;border:0;background:transparent;font-size:16px;border-radius:0}.sub-sfx{display:flex;align-items:center;padding:0 12px;font-size:16px;color:var(--muted);background:var(--panel2);border-left:1px solid var(--line);white-space:nowrap}
.er-log{margin-top:12px}.er-h,.er-r{grid-template-columns:150px 52px 56px minmax(120px,1.2fr) 100px minmax(120px,1.5fr) 56px;min-width:720px}
@media (max-width:820px){.er-h{display:none}.er-r{grid-template-columns:1fr;min-width:0}}
@media (max-width:820px){.mrow{grid-template-columns:1fr 1fr}.mrow .mr-name{grid-column:1/-1}.mgrid,.mstats{grid-template-columns:1fr}.maud-r{grid-template-columns:1fr}.mwrap{padding:16px 12px 50px}.an-sess-h{display:none}.an-sess-r{grid-template-columns:1fr;min-width:0;gap:4px;padding:10px 0}}
@media (max-width:899px){
  body.master .mwrap{padding:12px 10px 48px;max-width:100%}
  body.master input,body.master select,body.master textarea{font-size:16px;min-height:44px}
  body.master .btn{min-height:44px;touch-action:manipulation}
  body.master .mrow{grid-template-columns:1fr;gap:10px}
  body.master .mrow-main{display:flex;flex-direction:column;align-items:stretch;gap:8px;text-decoration:none}
  body.master .mhide{justify-self:stretch;padding:6px 0}
  body.master .mhead{flex-direction:column;align-items:stretch}
  body.master .mr-name small{white-space:normal}
  body.master .grid2,body.master .madd .grid2{grid-template-columns:1fr}
  body.master .an-sess,body.master .er-log{overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%}
  body.master .er-r{display:grid;grid-template-columns:1fr;min-width:0;gap:4px;padding:10px 0;border-bottom:1px solid var(--line)}
  body.master .er-h{display:none}
  body.master .an-sess-r{display:grid;grid-template-columns:1fr 1fr;gap:4px 10px;padding:10px 0;border-bottom:1px solid var(--line);min-width:0}
  body.master .an-sess-r span:first-child{grid-column:1/-1;font-weight:600}
  body.master .mchart{max-width:100%}
  body.master .mbar{grid-template-columns:1fr minmax(48px,80px) 28px}
  body.master .mbar-l{white-space:normal}
  body.master .burger{display:flex}
}
@media (max-width:390px){
  body.master .mr-st,body.master .mr-k{font-size:12px}
  body.master .otp-code code{font-size:18px;word-break:break-all}
}
.mconf[hidden]{display:none}
.imp-banner .btn{background:#fff;color:#7c2d12;border-color:#fff;font-weight:700}
/* ---- v1.7.0: compact admin header (status light + tabs right under the top bar) ---- */
.smain:has(.ahead){padding-top:4px}
.ahead{display:flex;align-items:center;gap:6px;border-bottom:1px solid var(--line);margin:0 0 12px;min-width:0}
.ahead .stabs{border-bottom:0;margin-bottom:0;flex:1;min-width:0}
.ahead .ah-pub{flex:none;white-space:nowrap;padding:0 4px}
@media (max-width:720px){.ahead .ah-pub{display:none}}
.sbar{position:relative;display:inline-flex;align-items:center;gap:8px;flex:none;padding:0;border:0;background:none}
.sbar-float{float:right;margin:0 0 6px 10px}
.sbar .sb-light{padding:8px;border:0;border-radius:999px;position:relative}
.sbar .sb-light:hover,.sbar .sb-light:focus-visible{background:var(--panel2)}
.sb-light.busy .sb-dot{background:#dc2626}
.sb-n{position:absolute;top:0;right:-2px;min-width:16px;height:16px;border-radius:8px;background:#2563eb;color:#fff;font-size:10px;font-weight:700;line-height:16px;text-align:center;padding:0 4px}
.sb-tip{display:none;position:absolute;top:calc(100% + 6px);left:0;z-index:60;width:max-content;max-width:min(340px,80vw);padding:10px 12px;border-radius:10px;background:var(--panel);border:1px solid var(--line);box-shadow:0 10px 30px rgba(0,0,0,.18);font-size:13px;line-height:1.4}
.sb-tip>*{display:block}.sb-tip .sb-sub{color:var(--muted);margin-top:3px}.sb-tip .sb-hint{color:var(--muted);font-size:11.5px;margin-top:6px}
.sbar:hover .sb-tip,.sbar:focus-within .sb-tip,.sbar.tip .sb-tip{display:block}
.sbar:has(.sb-light[aria-expanded=true]) .sb-tip{display:none}
.sb-warn{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:600;color:#b42318;white-space:nowrap}.sb-warn svg{width:15px;height:15px}
[data-theme=dark] .sb-warn{color:#fca5a5}
.whoami .small{display:block;margin:2px 0 6px}
/* Account & users */
.sec-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.us-t td{vertical-align:middle}.us-acts{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.once{border:1px dashed var(--line);border-radius:10px;padding:12px;display:grid;gap:6px;background:var(--panel2)}
.once code{font-size:15px;padding:2px 6px;border-radius:4px;background:var(--panel);border:1px solid var(--line);user-select:all}
.jc-notes .lnk{margin-left:4px}
/* ---- v1.7.0 next available (customer) ---- */
.chip.nx{background:#ecfdf3;border-color:#abefc6;color:#067647;gap:5px}.chip.nx svg{width:14px;height:14px}.chip.nx small{font-weight:500;opacity:.85}
[data-theme=dark] .chip.nx{background:rgba(34,197,94,.12);border-color:rgba(34,197,94,.3);color:#86efac}
.nx-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:10px 0 0}
.btn.qb{display:inline-flex;align-items:center;gap:6px}.btn.qb svg{width:16px;height:16px}
.nx-top{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:10px 12px;margin:0 0 10px;border-radius:10px;background:var(--panel2);border:1px solid var(--line)}
.nx-top .nx-when{display:flex;align-items:center;gap:8px;font-weight:600}.nx-top .nx-when svg{width:18px;height:18px;color:#067647}.nx-top small{color:var(--muted);font-weight:500}
/* v1.7.0 reviews line: star icons + linked "~N Google Reviews" */
.rvw{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;vertical-align:middle}
.stars5{display:inline-flex;gap:1px;line-height:0;color:var(--brass-hi,#B08D57)}
.stars5 .st{position:relative;display:inline-block;width:14px;height:14px}
.stars5 svg{width:14px;height:14px;display:block;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linejoin:round}
.stars5 .st.f svg{fill:currentColor}
.stars5 .hf{position:absolute;left:0;top:0;width:50%;height:100%;overflow:hidden}
.stars5 .hf svg{fill:currentColor}
.rv-a{color:inherit;text-decoration:underline;text-underline-offset:2px}
.rv-a:hover{color:var(--ink,inherit)}
/* v1.7.0 tidy editors: services & prices, price list, mechanics — aligned columns on desktop, labelled stacked cards on phones */
.svced, #crew-t { border-collapse: separate; border-spacing: 0; width: 100%; }
.svced th, #crew-t th { text-align: left; white-space: nowrap; font-size: 12px; text-transform: uppercase; letter-spacing: .04em; color: var(--muted); vertical-align: bottom; }
.svced td, #crew-t td { vertical-align: top; padding-top: 8px; padding-bottom: 8px; }
.svced td input[type=text], .svced td input[type=number], .svced td select, #crew-t td input[type=text] { width: 100%; box-sizing: border-box; }
#svc-menu .m-p, #svc-menu .m-m { font-variant-numeric: tabular-nums; text-align: right; }
#svc-menu .m-pt { display: block; font-variant-numeric: tabular-nums; padding: 6px 0 4px; }
#svc-menu .m-pc select, #svc-menu .m-pc label { display: block; width: 100%; margin-top: 4px; }
.m-days { display: flex; flex-wrap: nowrap; gap: 2px; }
.dchk { min-width: 24px; }
#pl-t td:nth-child(3) input { text-align: right; }
@media (max-width: 720px) {
  .tscroll:has(.svced) { border: 0; padding: 0; }
  .svced, .svced tbody, .svced tr, .svced td, #crew-t, #crew-t tbody, #crew-t tr, #crew-t td { display: block; width: 100%; box-sizing: border-box; }
  .svced thead, #crew-t thead { display: none; }
  .tscroll:has(.svced), .tscroll:has(#crew-t) { overflow: visible; }
  .svced tbody tr[data-i], #crew-t tbody tr[data-i] { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 10px 12px; padding: 12px; margin: 0 0 10px; border: 1px solid var(--line); border-radius: 10px; background: var(--panel); }
  .svced tbody tr.pm-row { margin: -6px 0 12px; padding: 10px 12px; border: 1px dashed var(--line2); border-radius: 10px; }
  table.t.svced td, table.t#crew-t td { padding: 0 !important; border: 0 !important; min-width: 0; }
  .svced td[data-l]::before, #crew-t td[data-l]::before { content: attr(data-l); display: block; font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: .04em; color: var(--muted); margin: 0 0 3px; }
  #svc-menu td:nth-child(1), #svc-menu td:nth-child(5), #svc-menu td:nth-child(6), #svc-menu td:nth-child(7), #crew-t td:nth-child(3), #pl-t td:nth-child(2) { grid-column: 1 / -1; }
  #svc-menu td:nth-child(8) { display: flex; align-items: center; gap: 8px; } #svc-menu td:nth-child(8)::before { margin: 0; }
  #svc-menu td:nth-child(9), #crew-t td:nth-child(4), #pl-t td:nth-child(5) { display: flex; justify-content: flex-end; align-items: end; }
  #pl-t td:nth-child(4):empty { display: none; }
  .m-days { justify-content: space-between; } .dchk { font-size: 12px; }
  .svced input[type=text], .svced input[type=number], .svced select { min-width: 0; } #svc-menu .m-l, #svc-menu .m-to, .svced .m-l { min-width: 0; }
  #svc-menu td.m-pc, .m-pc { min-width: 0; } #svc-menu td:nth-child(2) { grid-column: 1 / -1; } #svc-menu td:nth-child(2) .m-p { max-width: 50%; }
  #svc-menu td:nth-child(3) .small, #svc-menu td:nth-child(2) .small { margin-top: 3px; }
}
/* public price list: item left, price right in one aligned column */
.pl-list li { display: grid; grid-template-columns: minmax(0, 1fr) minmax(20px, auto) auto; align-items: baseline; column-gap: 8px; }
.pl-p { text-align: right; min-width: 4.5em; font-variant-numeric: tabular-nums; }
.pl-dots { min-width: 20px; }
@media (max-width: 640px) {
  .pl-list li { grid-template-columns: minmax(0, 1fr) auto; padding: 7px 0; }
  .pl-dots { display: none; }
  .pl-n .chip { display: table; margin: 4px 0 0; }
}
/* v1.7.0 custom agree checkbox: native input (keyboard + screen reader), animated tick, site gradient, 44px tap target */
.ackrow{position:relative;display:flex;align-items:flex-start;gap:12px;min-height:44px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--panel);cursor:pointer;transition:border-color .2s,background .2s,box-shadow .2s;line-height:1.4}
.ackrow:hover{border-color:var(--lx-g1,#4338ca)}
.ackrow.is-on{border-color:color-mix(in srgb,var(--lx-g1,#4338ca) 55%,transparent);background:color-mix(in srgb,var(--lx-g1,#4338ca) 7%,var(--panel))}
.ackrow input.ack{position:absolute;opacity:0;width:44px;height:44px;left:0;top:0;margin:0;cursor:pointer}
.ack-box{flex:none;display:grid;place-items:center;width:24px;height:24px;border-radius:7px;border:2px solid var(--line2,#9aa3b2);background:var(--bg);transition:background .2s,border-color .2s,transform .15s}
.ack-box svg{width:16px;height:16px;fill:none;stroke:#fff;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:22;stroke-dashoffset:22;transition:stroke-dashoffset .28s ease .05s}
.ackrow input.ack:checked+.ack-box{background:#2563EB;border-color:#2563EB;transform:scale(1.04)}
.ackrow input.ack:checked+.ack-box svg{stroke-dashoffset:0}
.ackrow input.ack:focus-visible+.ack-box{outline:2px solid var(--focus);outline-offset:2px}
.ackrow:active .ack-box{transform:scale(.92)}
.ack-t{font-size:14px;padding-top:2px}.ack-t a{position:relative;z-index:1;font-weight:600}
.rq .ackrow{margin-top:4px}
@media (prefers-reduced-motion:reduce){.ack-box,.ack-box svg{transition:none}}
/* cookie bar: slim, fixed bottom, one line desktop / max two lines at phone width */
.ckbar{position:fixed;left:0;right:0;bottom:0;z-index:1900;display:flex;align-items:center;gap:10px;padding:7px 14px;background:color-mix(in srgb,var(--panel) 94%,transparent);backdrop-filter:blur(10px);border-top:1px solid var(--line);box-shadow:0 -6px 20px rgba(0,0,0,.06);font-size:13px}
.ckbar .ck-ic svg{width:18px;height:18px;fill:none;stroke:var(--lx-g1,#4338ca);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;display:block}
[data-theme=dark] .ckbar .ck-ic svg{stroke:#a5b4fc}
.ckbar .ck-t{margin:0;flex:1;min-width:0;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ckbar .ck-b{display:flex;gap:6px;flex:none}
.ckbar .btn.sm,.ck-ft .btn.sm{min-height:30px;padding:0 10px;display:inline-flex;align-items:center;gap:5px}
.ckbar .btn svg,.cksheet .btn svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.ckbar .btn.primary,.ck-ft .btn.primary{background:linear-gradient(110deg,var(--lx-g1,#4338ca),var(--lx-g2,#6d28d9));border-color:transparent;color:#fff}
body.has-ck{padding-bottom:var(--ckbar-h,44px)}body.has-ck .toast{bottom:calc(var(--ckbar-h,44px) + 12px)}
.ckbar{padding:5px 12px;gap:8px;align-items:center}
.ckbar .ck-t{font-size:12px;line-height:1.35;white-space:normal}
.ckbar .ck-b .btn.sm{min-height:36px;font-size:14px;padding:0 10px}
@media (max-width:640px){.ckbar{padding:5px 10px;gap:6px;flex-wrap:nowrap}.ckbar .ck-ic{display:none}.ckbar .ck-t{font-size:12px;flex:1 1 auto;display:block;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  .ckbar .ck-b{flex:0 0 auto;flex-wrap:nowrap}.ckbar .ck-b .btn{flex:0 0 auto;min-height:36px;padding:0 8px;font-size:13px}}
.ck-short{display:none}@media (max-width:640px){.ck-long{display:none}.ck-short{display:inline}.ckbar .ck-ic{display:block}.ckbar .ck-t{flex:1 1 calc(100% - 30px)}}
@media (max-width:640px) and (orientation:landscape){.ckbar{flex-wrap:nowrap;padding:4px 10px;gap:6px}.ckbar .ck-t{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-webkit-line-clamp:1;display:block}.ckbar .ck-b .btn.sm{min-height:32px;padding:0 8px;font-size:12px}}
@media (max-width:640px){.pitch .p-sec-l{margin:28px 0 20px}.pitch .p-shots figure.tall .p-shot-frame{min-height:0;aspect-ratio:4/3}.pitch .p-hero{margin-bottom:8px}}
.cksheet{position:fixed;inset:0;z-index:2100;background:rgba(5,9,16,.45);display:flex;align-items:flex-end;justify-content:center}
.ck-sh{background:var(--panel);color:var(--text);width:min(640px,100%);max-height:82vh;display:flex;flex-direction:column;border-radius:16px 16px 0 0;border:1px solid var(--line);box-shadow:0 -10px 40px rgba(0,0,0,.25);animation:ckup .22s ease}
@keyframes ckup{from{transform:translateY(24px);opacity:0}to{transform:none;opacity:1}}
.ck-hd{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--line)}.ck-hd h3{margin:0;font-size:16px;display:flex;gap:8px;align-items:center}
.ck-hd h3 svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}
.ck-body{overflow:auto;padding:4px 16px 8px}.ck-ft{display:flex;justify-content:flex-end;gap:8px;padding:10px 16px;border-top:1px solid var(--line)}
.ck-g h4{margin:12px 0 2px;font-size:14px}.ck-g>p{margin:0 0 6px}.ck-l{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.ck-l li{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,2fr) minmax(0,.9fr);gap:8px;padding:7px 0;border-bottom:1px solid var(--line)}.ck-l code{font-size:12px;overflow-wrap:anywhere}
@media (max-width:640px){.ck-l li{grid-template-columns:1fr;gap:2px}}
/* footer + legal pages */
.sfoot{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;max-width:1200px;margin:28px auto 0;padding:14px 20px 18px;border-top:1px solid var(--line);font-size:13px;color:var(--muted)}
.sfoot nav{display:flex;gap:16px}.sfoot a{color:var(--muted)}.sfoot a:hover{color:var(--text)}
main.legal{max-width:820px;margin:0 auto;padding:20px}.legal-a{padding:24px 28px}.legal-a h1{margin:4px 0 6px}.legal-a h2{font-size:17px;margin:22px 0 6px}.legal-a .lead{margin:0 0 4px}
.legal-a p,.legal-a li{line-height:1.6}.legal-a ul{padding-left:20px;margin:6px 0}.legal-upd{margin:0 0 8px}
@media (max-width:640px){main.legal{padding:10px}.legal-a{padding:16px}}
/* v1.38.5 change log */
.changelog .cl-wrap{display:flex;flex-direction:column;gap:20px;margin-top:12px}.cl-day-h{font-size:15px;font-weight:600;margin:0 0 10px;color:var(--muted,#666);border-bottom:1px solid var(--line,#ddd);padding-bottom:6px}.cl-ver{border:1px solid var(--line,#ddd);border-radius:5px;padding:14px 16px;margin:0 0 10px;background:var(--panel,#fff)}.cl-ver-h{margin:0 0 8px;display:flex;flex-wrap:wrap;align-items:baseline;gap:8px}.cl-ver-n{font-weight:700;font-size:17px}.cl-when{font-weight:400}.cl-list{margin:0;padding-left:20px;line-height:1.55}.cl-list li{margin:4px 0}
/* v1.7.0 security log actor badges + filter */
.aud-f{display:flex;align-items:flex-end;gap:14px;flex-wrap:wrap}.aud-f .f{min-width:200px}.aud-leg{display:flex;gap:6px;flex-wrap:wrap;padding-bottom:4px}
.abadge{display:inline-flex;align-items:center;gap:5px;padding:2px 8px 2px 6px;border-radius:999px;font-size:12px;font-weight:600;white-space:nowrap;border:1px solid transparent}
.abadge .ic,.abadge svg{width:13px;height:13px}
.ab-bot{background:#eef2f7;color:#475569;border-color:#dbe2ea}.ab-master{background:#efe9ff;color:#5b21b6;border-color:#ddd0fe}.ab-owner{background:#e8efff;color:#1d4ed8;border-color:#cddcff}
.ab-manager{background:#e6f7f4;color:#0f766e;border-color:#c5ece5}.ab-mechanic{background:#fff4e5;color:#b45309;border-color:#fde3bf}.ab-customer{background:#eaf7ee;color:#15803d;border-color:#ccebd6}.ab-unknown{background:#fdecec;color:#b91c1c;border-color:#f8d0d0}
[data-theme=dark] .ab-bot{background:rgba(148,163,184,.14);color:#cbd5e1;border-color:rgba(148,163,184,.3)}[data-theme=dark] .ab-master{background:rgba(139,92,246,.16);color:#c4b5fd;border-color:rgba(139,92,246,.35)}
[data-theme=dark] .ab-owner{background:rgba(59,130,246,.16);color:#93c5fd;border-color:rgba(59,130,246,.35)}[data-theme=dark] .ab-manager{background:rgba(20,184,166,.15);color:#5eead4;border-color:rgba(20,184,166,.32)}
[data-theme=dark] .ab-mechanic{background:rgba(245,158,11,.15);color:#fcd34d;border-color:rgba(245,158,11,.32)}[data-theme=dark] .ab-customer{background:rgba(34,197,94,.14);color:#86efac;border-color:rgba(34,197,94,.3)}
[data-theme=dark] .ab-unknown{background:rgba(248,113,113,.14);color:#fca5a5;border-color:rgba(248,113,113,.3)}
.aud-n{margin-top:3px}.audt .nowrap{white-space:nowrap}
.notify{display:grid;gap:8px;margin-top:6px}.ackrow.ack-sm{min-height:44px;padding:8px 10px}.ackrow.ack-sm .ack-t{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.ackrow.ack-sm .ack-t .ic{width:16px;height:16px}
/* v1.7.0 unsubscribe page (served by the worker) */
.unsub-page{min-height:100vh;display:grid;place-items:center;background:var(--bg)}.unsub{width:min(520px,100%);padding:16px}.unsub-c{padding:26px 24px;text-align:center;display:grid;gap:10px;justify-items:center}
.unsub-brand{font-weight:800;color:var(--text);text-decoration:none;font-size:14px;letter-spacing:.02em}.unsub-c h1{font-size:22px;margin:6px 0 0}.unsub-c p{margin:0;line-height:1.5}
.unsub-ic{width:56px;height:56px;border-radius:16px;display:grid;place-items:center;color:#fff;background:linear-gradient(135deg,var(--lx-g1,#4338ca),var(--lx-g2,#6d28d9))}.unsub-ic.on{background:linear-gradient(135deg,#15803d,#0f766e)}
.unsub-ic svg{width:28px;height:28px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.unsub-c form{margin:6px 0 0}
/* v1.7.0 shop landing (root / short-link target) */
.shop-land .sl-logo{display:block;width:96px;height:96px;border-radius:50%;object-fit:contain;background:#fff;box-shadow:0 2px 10px rgba(0,0,0,.08);margin:0 0 10px}
.shop-land .sl-rv{margin:6px 0 0}.shop-land .sl-nx{margin:10px 0 0}
.sl-hours .sl-h{list-style:none;padding:0;margin:8px 0;display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:6px 18px}
.sl-hours .sl-h li{display:flex;justify-content:space-between;gap:10px;border-bottom:1px dashed var(--line,#e5e5e5);padding:4px 0}
.sl-hours .sl-h li::before{display:none}
/* v1.8.0 /find (riders) + header link for bike shops */
.top-biz{margin-left:auto;font-size:12.5px;font-weight:600;color:var(--lx-indigo,#4f46e5);text-decoration:none;white-space:nowrap;padding:6px 10px;border-radius:999px;border:1px solid var(--line,#e5e5e5)}
.top-biz:hover{text-decoration:underline}
@media (max-width:640px){.top-biz{display:none}}
.sfoot .f-biz{font-weight:600}
.fd-hero .fd-search{margin-top:14px;max-width:720px}
.fd-search .topsearch.in-hero{display:flex;width:100%;max-width:none;margin:0;box-shadow:0 6px 24px rgba(79,70,229,.12);border-radius:14px}
.fd-search .topsearch.in-hero input{font-size:16px;padding-top:12px;padding-bottom:12px}
.shop-land~.p-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.pitch section>h2{display:flex;align-items:center;gap:8px;font-size:20px;margin:26px 0 12px}
.fd-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr));gap:12px}
.fd-shop{display:flex;gap:12px;align-items:flex-start;padding:14px}
.fd-shop h3{margin:0 0 2px;font-size:16px}.fd-shop h3 a{color:inherit;text-decoration:none}
.fd-shop .fd-b{min-width:0;flex:1}.fd-shop .fd-nx{margin:8px 0}.fd-shop .bar{gap:6px;flex-wrap:wrap}
.shop-logo.lg{width:48px;height:48px;flex:none}.shop-logo.lg img{width:40px;height:40px}
.fd-steps{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.fd-steps li{display:flex;flex-direction:column;gap:6px;padding:16px}.fd-steps li span:not(.p-ic){color:var(--muted,#666);font-size:14px}
.fd-pop{list-style:none;padding:0;margin:0 0 8px;display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px}
.fd-pop a{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px 14px;text-decoration:none;color:inherit}
.fd-pop .fd-from{font-weight:700;white-space:nowrap;color:var(--lx-indigo,#4f46e5)}
.fd-faq details{border-bottom:1px solid var(--line,#e5e5e5);padding:10px 0}.fd-faq summary{cursor:pointer;font-weight:600}.fd-faq p{margin:8px 0 0}
@media (max-width:640px){.fd-steps{grid-template-columns:1fr}.fd-search .topsearch.in-hero{flex-direction:column}}
[data-theme=dark] .fd-pop .fd-from,[data-theme=dark] .top-biz{color:#a5b4fc}
.fd-shop .chip.nx{white-space:nowrap}
.p-hero .p-sub{font-size:clamp(17px,2.4vw,21px);font-weight:650;margin:0 0 8px;color:var(--lx-text,inherit)}
.pitch .p-hero .p-hsub,.p-hero .p-hsub{font-size:clamp(15px,2.1vw,20px);font-weight:500;line-height:1.3;margin:-2px 0 12px;max-width:34em;color:var(--lx-indigo);letter-spacing:-.01em}
[data-theme=dark] .pitch .p-hero .p-hsub,[data-theme=dark] .p-hero .p-hsub{color:var(--lx-indigo)}

.demo-shots { display: grid; gap: 16px; }
.demo-shots figure { margin: 0; overflow: hidden; }
.demo-shots img { width: 100%; height: auto; display: block; border-radius: 4px 4px 0 0; }
.demo-shots figcaption { padding: 10px 14px; font-size: 13.5px; color: var(--muted); }
.demo-shots figcaption b { color: var(--text); }
@media (min-width: 720px) { .demo-shots { grid-template-columns: 1fr 1fr; } }


/* v1.8.1: listing card — keep the price column narrow so the name and chips get the room (Grok 9:35pm edit undone) */
.lcard .lhead{align-items:flex-start}.lcard .price{max-width:12em;text-align:right}.lcard .price small{overflow-wrap:anywhere}
.row .chip.nx,.lcard .chip.nx{white-space:nowrap;flex-wrap:nowrap}@media (max-width:420px){.row .chip.nx small{display:none}}
/* v1.8.1 edit-booking pickers: autocomplete sits under its own field; selected state is obvious and toggles off */
.ac-wrap{position:relative}.ebk .sugg{top:100%;width:100%;margin-top:2px}
.btn.pick{gap:5px}.btn.pick .ic{width:14px;height:14px}.btn.pick.on{background:var(--lx-indigo,#4f46e5);border-color:var(--lx-indigo,#4f46e5);color:#fff}
.ebk-adds{gap:6px}.ebk-more{margin-top:8px}.ebk-more summary{cursor:pointer;color:var(--muted)}.ebk-more .ebk-adds{margin-top:6px}
/* v1.15.1 edit booking: parts list + collapsed customer info */
.ebk-plist{display:grid;gap:8px;margin:0 0 8px}
.ebk-part{display:grid;grid-template-columns:1.4fr 1fr auto auto;gap:8px;align-items:end;padding:8px;border:1px solid var(--line);border-radius:8px;background:var(--panel2,#f8f8f6);min-width:0}
.ebk-part.hl{outline:2px solid var(--blue2,#2563eb);outline-offset:1px;background:color-mix(in srgb,var(--blue2,#2563eb) 8%,transparent)}
.ebk-part .f{margin:0;min-width:0}
.ebk-part .btn{align-self:end}
@media (max-width:560px){.ebk-part{grid-template-columns:1fr 1fr;}.ebk-part .btn{grid-column:1/-1;justify-self:start}}
.ebk-cust>summary{cursor:pointer;font-weight:700;font-size:13px;list-style:none;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.ebk-cust>summary::-webkit-details-marker{display:none}
.ebk-cust[open]>summary{margin-bottom:4px}
.ebk-cust .notify{display:grid;gap:4px}

/* v1.8.1 Services & prices: one finished list. Titles wrap (never truncated); price and time edit inline; stacked cards on phones */
.svl-tools{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:10px}
.svl-list{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.svl-cat{font-weight:700;font-size:13px;letter-spacing:.02em;text-transform:uppercase;color:var(--muted);padding:10px 2px 2px}
.svl-it{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 14px;align-items:start;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--panel)}
.svl-it:focus-within{border-color:var(--lx-indigo,#4f46e5);box-shadow:0 0 0 3px color-mix(in srgb,var(--lx-indigo,#4f46e5) 18%,transparent)}
.svl-it.svl-bad{border-color:#dc2626}
.svl-main{display:grid;gap:4px;min-width:0}
.svl-it textarea{width:100%;resize:none;overflow:hidden;field-sizing:content;font:inherit;line-height:1.35;border:1px solid transparent;border-radius:8px;padding:5px 7px;background:transparent;color:var(--text);white-space:pre-wrap;overflow-wrap:anywhere}
.svl-it textarea:hover{border-color:var(--line)}.svl-it textarea:focus{border-color:var(--line2);background:var(--panel2);outline:none}
.svl-t{font-weight:650;font-size:15px}.svl-d{font-size:13px;color:var(--muted)}.svl-d:placeholder-shown{font-style:italic}
.svl-bk{justify-self:start;font-size:11px;padding:1px 8px;gap:4px;display:inline-flex;align-items:center}.svl-bk .ic{width:12px;height:12px}
.svl-nums{display:flex;gap:8px;align-items:flex-end}
.svl-f{display:grid;gap:2px;font-size:11px;color:var(--muted);font-weight:600}
.svl-in{display:flex;align-items:center;gap:3px;border:1px solid var(--line);border-radius:8px;padding:0 8px;background:var(--panel2);height:38px}
.svl-in i{font-style:normal;color:var(--muted);font-size:13px}.svl-in input{border:0;background:transparent;padding:0;width:6.5em;font:inherit;font-size:15px;font-weight:650;color:var(--text);font-variant-numeric:tabular-nums;box-shadow:none;min-height:0;height:36px}
.svl-in input.svl-m{width:3.6em}.svl-in input:focus{outline:none}.svl-in:focus-within{border-color:var(--lx-indigo,#4f46e5)}
.svl-cf input{height:38px;width:10em;border-radius:8px}
.svl-del{height:38px;width:38px;padding:0;justify-content:center}.svl-del .ic{margin:0}
.svl-foot{position:sticky;bottom:0;z-index:5;display:flex;gap:10px;align-items:center;justify-content:space-between;padding:10px 0 4px;background:linear-gradient(transparent,var(--panel) 30%)}
.btn.pulse{box-shadow:0 0 0 3px color-mix(in srgb,var(--lx-indigo,#4f46e5) 30%,transparent)}
@media (max-width:760px){
  .svl-tools{grid-template-columns:1fr}
  .svl-it{grid-template-columns:1fr;padding:10px}
  .svl-nums{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.8fr) minmax(0,1.2fr) 38px;gap:6px}
  .svl-in input{width:100%;min-width:0}.svl-cf input{width:100%}
}
/* customer price list: duration + description */
.pl-n small.pl-desc{display:block;color:var(--muted);font-size:12.5px;margin-top:2px;font-weight:400}
.pl-p small.pl-t{display:block;font-weight:500;color:var(--muted);font-size:12px}
/* v1.8.1: admin tabs live in the side panel on desktop (Grok's change, kept); on phones a scrolling tab row sits on top and the panel drops below the page */
.stabs-m{display:none}
@media (max-width:720px){
  .set:has(.ahead){display:flex;flex-direction:column}.set:has(.ahead) .smain{order:1;min-width:0}.set:has(.ahead) .snav{order:2;border-right:0;border-top:1px solid var(--line)}
  /* v1.13.1: top tab strip cut off on narrow — ☰ left menu already has Home/Bookings/board/… */
  .snav-tabs,.stabs-m,.ahead .stabs-m{display:none!important}
  .ahead{flex-wrap:wrap}
}
.svl-it textarea{min-height:0;height:auto}.svl-it .svl-t{font-weight:650;font-size:15px}.svl-it .svl-d{font-size:13px;color:var(--muted)}
.svl-del{align-self:end}.ahead .sbar{flex:1 1 auto}
@media (max-width:760px){.svl .svl-it{padding:8px 8px 10px}.svl-it textarea{padding:4px 2px}}
.pl-p small.pl-t .ic{width:12px;height:12px;margin-right:3px;vertical-align:-1px}
/* v1.8.1 job card contact row */
.jc-contact>span{display:flex;flex-direction:column;min-width:0}.jc-contact .jc-em{overflow-wrap:anywhere}
.jc-contact .jc-acts{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}.jc-ct{min-height:36px;gap:5px}.jc-ct .ic{width:15px;height:15px}
.po-via{border:1px solid var(--line);border-radius:10px;padding:6px 12px;margin:4px 0 0}.po-via legend{font-size:13px;font-weight:600;padding:0 4px}
.po-soon{opacity:.7}.po-soon .chip{font-size:10.5px;padding:0 6px;margin-left:4px;vertical-align:1px}
/* v1.8.1: the step bars stay thin — the page-level .done rule (confirmation page) must not pad a completed step */
.dots span,.dots span.done,.dots span.on{flex:none;width:18px;height:3px;padding:0;margin:0;max-width:none;box-sizing:content-box}
/* v1.8.1 drop-off times are tap targets, never a keyboard */
.tslots{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:8px;margin:2px 0 6px}
.tslots .slot{height:44px;font-size:14px;border-radius:10px}.timesel{font-weight:600;font-size:13px;margin-top:6px}
.topsearch #qsugg button{display:flex;gap:8px;align-items:center}.topsearch #qsugg .ic{width:15px;height:15px;flex:none;color:var(--muted)}
/* v1.8.1: Mechanics list stacks whenever its card is narrow (side panel + tablet widths), so names are never cut to “Me” */
#crew-card{container-type:inline-size}
#crew-t td:first-child input{min-width:9em}
@container (max-width:680px){
  #crew-t,#crew-t tbody,#crew-t tr,#crew-t td{display:block;width:100%;box-sizing:border-box}#crew-t thead{display:none}
  #crew-card .tscroll{overflow:visible;border:0;padding:0}
  #crew-t tbody tr[data-i]{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:8px 10px;padding:12px;margin:0 0 10px;border:1px solid var(--line);border-radius:12px;background:var(--panel)}
  table.t#crew-t td{padding:0!important;border:0!important;min-width:0}#crew-t td:first-child input{min-width:0}
  #crew-t td:nth-child(3){grid-column:1/-1}#crew-t td:nth-child(3).m-days{display:flex;justify-content:space-between}
  #crew-t td:nth-child(4){grid-column:1/-1;display:flex;justify-content:flex-end}
}
/* v1.8.1: stack by the card's own width (side panel + tablet), not just the screen width */
#pl-card,#pi-rev{container-type:inline-size}
.svl-it{grid-template-columns:minmax(14em,1fr) auto}
@container (max-width:820px){
  .svl-tools{grid-template-columns:1fr}
  .svl-it{grid-template-columns:1fr;padding:10px}
  .svl-nums{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.8fr) minmax(0,1.2fr) 38px;gap:6px}
  .svl-in input{width:100%;min-width:0}.svl-cf input{width:100%}
}

/* v1.8.2 calendar (Sam 26 Oct 10:38pm): bookable days get a clear outline; booked-out days are red-shaded with no cell text (legend explains) */
.cd:not(.off):not(.pad):not(.on){border:1.5px solid color-mix(in srgb,#16a34a 70%,var(--line2));box-shadow:inset 0 0 0 1px color-mix(in srgb,#16a34a 18%,transparent)}
[data-theme=dark] .cd:not(.off):not(.pad):not(.on){border-color:color-mix(in srgb,#4ADE80 60%,var(--line2))}
.cd.off.is-out{background:color-mix(in srgb,#DC2626 14%,var(--panel2));border:1px solid color-mix(in srgb,#DC2626 30%,transparent);color:color-mix(in srgb,#B42318 70%,var(--muted))}
[data-theme=dark] .cd.off.is-out{background:color-mix(in srgb,#DC2626 22%,var(--panel2));color:#FCA5A5}
.cal-key i.k.k-out{background:color-mix(in srgb,#DC2626 14%,var(--panel2));border:1px solid color-mix(in srgb,#DC2626 30%,transparent)}
.cal-key .k:not(.k-off):not(.k-out){border:1.5px solid color-mix(in srgb,#16a34a 70%,var(--line2))}
/* v1.8.2 suggested service (Sam 10:38pm): clear selected state — tinted fill, accent border and a check badge. Every row always has the
   same 2px border so selecting never shifts the layout. */
.sg-list{display:grid;gap:8px;margin:0 0 4px}
#sugg-sec .sg-row{all:unset;box-sizing:border-box;display:grid;grid-template-columns:24px minmax(0,1fr) auto;align-items:center;gap:10px;width:100%;padding:10px 12px;border:2px solid var(--line);border-radius:10px;background:var(--panel);color:var(--text);cursor:pointer;text-align:left;outline:none;transition:border-color .15s,background-color .15s}
@media (hover:hover){#sugg-sec .sg-row:hover:not(.on){border-color:color-mix(in srgb,var(--lx-sel,var(--accent)) 55%,var(--line))}}
#sugg-sec .sg-row:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb,var(--lx-sel,var(--accent)) 35%,transparent)}
#sugg-sec .sg-row.on{border-color:var(--lx-sel,var(--accent));background:color-mix(in srgb,var(--lx-sel,var(--accent)) 10%,var(--panel))}
.sg-tick{width:22px;height:22px;border-radius:50%;border:2px solid var(--line2);display:grid;place-items:center;box-sizing:border-box;color:transparent}
.sg-tick .ic{width:14px;height:14px}
.sg-row.on .sg-tick{background:var(--lx-sel,var(--accent));border-color:var(--lx-sel,var(--accent));color:#fff}
.sg-txt{min-width:0}.sg-why{display:block}
.sg-state{font-size:13px;font-weight:700;padding:6px 10px;border-radius:999px;border:1px solid var(--line2);white-space:nowrap;color:var(--text)}
.sg-row.on .sg-state{background:var(--lx-sel,var(--accent));border-color:var(--lx-sel,var(--accent));color:#fff}
@media (max-width:420px){.sg-state{display:none}}
/* v1.8.2 additional services: cards (no table) — stacked on mobile, 2 columns on wide screens; price is just the figure */
.as-list{display:grid;gap:8px;margin-top:8px}
@media (min-width:900px){.as-list{grid-template-columns:1fr 1fr}}
.as-it{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:start;padding:10px 12px;border:2px solid var(--line);border-radius:10px;background:var(--panel)}
.as-it.on,.as-it.is-main{border-color:var(--lx-sel,var(--accent));background:color-mix(in srgb,var(--lx-sel,var(--accent)) 8%,var(--panel))}
.as-t{display:flex;gap:6px;align-items:flex-start;line-height:1.25}.as-t .svc-ic{flex:none;width:16px;height:16px;margin-top:2px;color:var(--lx-violet,var(--accent))}
.as-d{margin-top:2px}.as-calls{margin-top:2px;font-style:italic}
.as-meta{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:6px}.as-meta .ic{width:13px;height:13px;vertical-align:-2px;margin-right:3px}
.as-side{display:grid;justify-items:end;gap:6px;text-align:right}
.as-price{font-size:17px;white-space:nowrap}.as-price small{font-size:11px;font-weight:500;color:var(--muted)}
.as-side .main-chip .ic{width:13px;height:13px;vertical-align:-2px;margin-right:3px}
@media (max-width:600px){.as-calls{display:none}}
/* v1.8.3 customer accounts */
.ca{display:grid;gap:12px}.ca-tabs{display:flex}.ca-tabs button{flex:1}
.ca-f{display:grid;gap:10px;margin:0}.ca-f .btn.primary{width:100%;justify-content:center}
/* v1.38.0 unified sign-in tabs */
.signin-page{max-width:520px;margin:0 auto}
.signin-tabs{margin:12px 0 16px;display:grid;grid-template-columns:1fr 1fr;gap:0;max-width:420px}
.signin-tabs button{min-height:44px;font-size:16px;border-radius:5px;width:100%}
.ca-join-tabs{display:flex;flex-wrap:wrap;gap:8px}
.ca-join-tabs button{flex:1 1 140px;min-height:52px;font-size:15px;line-height:1.25;padding:8px 10px;white-space:normal;border-radius:5px}
.menu-main>span:not(.menu-ic):not(.lock-ic):not(.menu-chev){text-align:left;justify-self:start}
.ca-alt{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap}
.pw-wrap{position:relative;display:block}.pw-wrap input{width:100%;padding-right:64px;box-sizing:border-box}
.pw-eye{position:absolute;right:8px;top:50%;transform:translateY(-50%);font-size:13px}
.ok-note{background:color-mix(in srgb,#16a34a 10%,var(--panel));border:1px solid color-mix(in srgb,#16a34a 35%,transparent);border-radius:8px;padding:8px 10px}
.acc{display:grid;gap:14px}.acc h2{margin:0}
.acc-list{list-style:none;margin:6px 0 0;padding:0;display:grid;gap:8px}.acc-list li{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:10px}
.spanel .fp-body{display:grid;gap:12px}
/* v1.8.3 'Online booking' switch on each price-list row */
.svl-on{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:13px;margin-top:4px;cursor:pointer}
.svl-on input{margin:0}.svl-on span{font-weight:600}.svl-on small{font-size:12px}
/* v1.9.0 Plan & billing */
.bill-card{display:grid;gap:10px}.bill-st{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.bill-price{font-size:28px;font-weight:800;letter-spacing:-.02em}.bill-price small{font-size:14px;font-weight:600;color:var(--muted);margin-left:4px}
.bill-meter{height:6px;background:var(--panel2);border-radius:99px;overflow:hidden;margin:4px 0 0}.bill-meter i{display:block;height:100%;background:linear-gradient(90deg,var(--lx-g1,#7c3aed),var(--lx-g2,#2563eb));border-radius:99px}
.p-pricing .p-price{display:grid;grid-template-columns:auto 1fr;gap:18px;align-items:start}@media(max-width:600px){.p-pricing .p-price{grid-template-columns:1fr}}
.pp-big{font-size:clamp(28px,4vw,38px);font-weight:800;letter-spacing:-.03em;line-height:1.05;margin:4px 0 10px}.pp-big small{font-size:14px;font-weight:600;color:var(--muted);letter-spacing:0}
.p-ticks{margin:0;padding:0;list-style:none;display:grid;gap:8px}.p-ticks li{display:flex;gap:8px;align-items:flex-start;line-height:1.45}.p-ticks .ic{flex:none;width:16px;height:16px;color:var(--lx-teal,#0f766e);margin-top:3px}
/* v1.18.0 three-tier pricing */
.p-pricing{padding:0}
.p-price-lead{max-width:52rem;margin:0 0 18px;line-height:1.5;color:var(--lx-muted,var(--muted))}
.p-tiers{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:stretch}
.pitch .p-tier.card,.p-tier.card{padding:26px 24px;display:flex;flex-direction:column;gap:0;min-height:100%;box-sizing:border-box}
.p-tier .p-ic{margin-bottom:12px}
/* v1.18.1: pricing icons = theme stroke line icons, no tile; draw-on like pitch features */
.p-pricing .p-ic{
  background:transparent!important;box-shadow:none!important;animation:none!important;
  /* v1.18.3: contrast vs card bg (#fbfaff light / #16142a dark) — black on light, white on dark */
  color:#111;width:auto;height:auto;min-width:0;padding:0;border-radius:0;margin-bottom:10px;
}
.p-pricing .p-ic .ic{width:28px;height:28px;font-size:28px;color:inherit;stroke:#111}
.p-pricing h2 .ic{color:#111;stroke:#111;width:1.15em;height:1.15em}
.p-pricing .p-ic .ic path,.p-pricing h2 .ic path{stroke:currentColor}
.p-pricing.rv .ic path,.p-pricing .p-tier.rv .ic path{stroke-dashoffset:1}
.p-pricing.rv.in > h2 .ic path,.p-pricing .p-tier.rv.in .ic path{
  stroke-dashoffset:0;
  transition:stroke-dashoffset 1.9s cubic-bezier(.45,.05,.55,.95) calc(var(--d,0ms) + 120ms);
}
[data-theme=dark] .p-pricing .p-ic,[data-theme=dark] .p-pricing h2 .ic{color:#fff}
[data-theme=dark] .p-pricing .p-ic .ic,[data-theme=dark] .p-pricing h2 .ic{stroke:#fff}
@media (prefers-reduced-motion: reduce){
  .p-pricing.rv .ic path,.p-pricing .p-tier.rv .ic path{stroke-dashoffset:0;transition:none}
}
.p-tier h3{margin:0 0 4px;font-size:18px;line-height:1.35;overflow-wrap:anywhere}
.p-tier-blurb,.p-tier .p-ticks li{overflow-wrap:anywhere}
.p-tier-blurb{margin:0 0 14px;color:var(--lx-muted,var(--muted));line-height:1.45;font-size:14px}
.p-tier .p-ticks{margin-top:2px;flex:1}
.p-tier-change{margin:16px 0 0;font-size:13px;font-weight:650;color:var(--lx-indigo,var(--blue2))}
.p-tier-feat{box-shadow:0 2px 4px rgba(15,23,42,.06),0 18px 40px -18px var(--lx-glow,rgba(99,102,241,.35))}
.p-storage-line{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;margin:18px 0 0;padding:14px 16px;border:1px dashed var(--line);border-radius:10px;background:var(--panel2,var(--panel));line-height:1.45;font-size:14px}
.p-storage-line .ic{width:16px;height:16px;vertical-align:-3px;margin-right:4px;color:var(--lx-indigo,var(--blue2))}
.p-price-foot{margin:12px 0 0;line-height:1.45}
.bill-tiers{margin:8px 0 0}.bill-tiers .chip{margin-left:6px;vertical-align:middle}
@media (max-width:900px){
  .p-tiers{grid-template-columns:1fr;gap:14px}
  .pitch .p-tier.card,.p-tier.card{padding:20px 18px}
}
@media (max-width:560px){
  .pitch .p-tier.card,.p-tier.card{padding:20px}
  .pp-big{font-size:30px}
}
.mpill.pl-trial{background:#FEF3C7;color:#92400E}.mpill.pl-active{background:#D1FAE5;color:#065F46}.mpill.pl-past_due{background:#FFEDD5;color:#9A3412}
.mpill.pl-cancelled,.mpill.pl-off{background:#FEE2E2;color:#991B1B}.mpill.pl-comped{background:#E0E7FF;color:#3730A3}
[data-theme=dark] .mpill.pl-trial{background:#78350F55;color:#FCD34D}[data-theme=dark] .mpill.pl-active{background:#064E3B55;color:#6EE7B7}
[data-theme=dark] .mpill.pl-past_due{background:#7C2D1255;color:#FDBA74}[data-theme=dark] .mpill.pl-cancelled,[data-theme=dark] .mpill.pl-off{background:#7F1D1D55;color:#FCA5A5}
[data-theme=dark] .mpill.pl-comped{background:#312E8155;color:#A5B4FC}

/* v1.11.0 notes watcher inline + */
.jn-ov{z-index:2200}.jn-card{max-width:560px;width:min(560px,96vw)}
.jn-hit{display:inline;background:color-mix(in srgb,var(--accent,#1F4D3A) 12%,transparent);border-radius:3px;padding:0 1px 0 2px;box-decoration-break:clone;-webkit-box-decoration-break:clone}
.jn-hit.jn-supplier{background:color-mix(in srgb,#D97706 16%,transparent)}
.jn-plus{display:inline-flex;align-items:center;justify-content:center;width:1.15em;height:1.15em;margin-left:2px;padding:0;border:1px solid var(--accent,#1F4D3A);border-radius:999px;background:var(--panel,#fff);color:var(--accent,#1F4D3A);font:700 12px/1 system-ui,sans-serif;cursor:pointer;vertical-align:1px}
.jn-plus:hover,.jn-plus:focus-visible{background:var(--accent,#1F4D3A);color:var(--accent-ink,#fff)}
.jn-pop{z-index:90}.jn-pop-in{box-shadow:var(--shadow,0 8px 28px rgba(0,0,0,.18))}
.jn-rendered{font-size:14px;line-height:1.55;white-space:pre-wrap;word-break:break-word}

.chip.stale-amber{background:#FEF3C7;color:#92400E;border-color:#F59E0B}
.chip.stale-red{background:#FEE2E2;color:#991B1B;border-color:#EF4444;font-weight:700}
.chip.muted-chip{opacity:.75}
.jcard.is-stale-red{box-shadow:inset 0 0 0 1px #EF4444}
.jcard.is-stale-amber{box-shadow:inset 0 0 0 1px #F59E0B}
.jcard.is-reassign{outline:2px dashed color-mix(in srgb,var(--accent,#1F4D3A) 50%,transparent)}
.jc-flags{display:flex;flex-wrap:wrap;gap:4px;align-items:center}
.jc-anyone{font-size:12px;margin:0}

/* v1.11.2 Home “Essentials” tiles (renamed v1.15.0) */
.ah-know{margin:0 0 14px}.ah-know-h{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px}
.ah-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}
@media (max-width:700px){.ah-tiles{grid-template-columns:1fr}}
.ah-tile{border:1px solid var(--line,#E2E2DE);border-radius:8px;padding:0;background:var(--panel,#fff);overflow:hidden}
.ah-tile>summary{list-style:none;cursor:pointer;padding:10px 12px;display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:14px}
.ah-tile>summary::-webkit-details-marker{display:none}
.ah-tile[open]>summary{border-bottom:1px solid var(--line,#E2E2DE)}
.ah-n{display:inline-flex;min-width:1.5em;justify-content:center;padding:1px 7px;border-radius:999px;background:var(--wash,#F4F4F2);font-weight:700;font-size:12px}
.ah-tile.stale-amber .ah-n{background:#FEF3C7;color:#92400E}.ah-tile.stale-red .ah-n{background:#FEE2E2;color:#991B1B}
.ah-tile.amber .ah-n{background:#FEF3C7;color:#92400E}
.ah-ul{margin:0;padding:8px 12px 10px 28px;font-size:13px;line-height:1.4}
.ah-ul .lnk{text-align:left;padding:0;border:0;background:none;color:inherit;text-decoration:underline;cursor:pointer;font:inherit}
.ah-pick-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:8px 0}
@media (max-width:700px){.ah-pick-grid{grid-template-columns:1fr}}

/* v1.12.0 admin chrome + compact board */
.admin-search{flex:1;max-width:420px;margin:0 12px}
/* v1.38.4: one border on .topsearch only — inner .qbox is chromeless (avoids “box in a box” on iOS) */
.admin-search.topsearch .qbox{position:relative;display:flex;align-items:center;gap:4px;flex:1;min-width:0;width:100%;height:100%;min-height:0;padding:0 8px 0 2px;background:transparent;border:0;border-radius:0;box-shadow:none;transition:none}
.admin-search.topsearch .qbox:focus-within{border:0;box-shadow:none}
.admin-search .pin{flex:none;display:grid;place-items:center;width:44px;min-width:44px;height:44px;margin:0;padding:0;font-size:24px;line-height:1;color:var(--muted);align-self:center;user-select:none}
.admin-search input{-webkit-appearance:none;appearance:none;border:0!important;outline:0!important;box-shadow:none!important;background:transparent!important;width:100%;min-width:0;padding:0;font-size:16px!important;line-height:1.25!important;color:var(--text);height:42px;min-height:42px;flex:1;border-radius:0!important}
@media (min-width:721px){.admin-search.topsearch .qbox{padding:0 10px 0 2px}.admin-search .pin{width:44px;min-width:44px;height:44px}}
/* v1.20.2: keep top bar + ☰ fixed when mobile search is focused (no iOS zoom / keyboard reflow jump) */
@media (max-width:720px){
  .admin-search input,#adm-q{font-size:16px!important;line-height:1.25} /* 16px avoids iOS focus-zoom that shifts the bar */
  .admin-search{flex:1 1 auto;min-width:0;max-width:none}
  .burger,.top-add,.top-end,.top-prof{flex:none}
  .top{
    position:fixed;left:0;right:0;width:100%;
    top:calc(var(--banner-h, 0px) + env(safe-area-inset-top,0px));
    z-index:2000;transform:translateZ(0);
  }
  /* Reserve the fixed bar height so content (and the open ☰) don't jump under it */
  #app{padding-top:calc(var(--banner-h, 0px) + var(--top-bar-h, 56px) + env(safe-area-inset-top,0px));box-sizing:border-box}
  .app-home{padding-top:calc(var(--banner-h, 0px) + var(--top-bar-h, 56px) + env(safe-area-inset-top,0px));box-sizing:border-box}
  .menu{
    position:fixed;
    top:calc(var(--banner-h, 0px) + var(--top-bar-h, 56px) + env(safe-area-inset-top,0px));
    left:8px;transform:translateZ(0);
  }
}
.admin-search .sugg{position:absolute;left:0;right:0;top:100%;z-index:50;background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);max-height:360px;overflow:auto;margin-top:4px}
.sugg-g{padding:8px 12px 4px;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:700}
.sugg-i{display:flex;flex-direction:column;align-items:flex-start;width:100%;text-align:left;border:0;background:none;padding:8px 12px;cursor:pointer;font:inherit;color:var(--text)}
.sugg-i small{color:var(--muted);font-size:12px}.sugg-i:hover,.sugg-i.on{background:var(--panel2)}
.top-prof{position:relative;margin-left:auto;flex:none}.top-prof-btn{display:grid;place-items:center;width:36px;height:36px;border-radius:999px;border:1px solid var(--line);background:var(--panel);color:var(--text);cursor:pointer}
.top-prof-btn .ic{width:18px;height:18px}.top-prof-menu{position:absolute;right:0;top:calc(100% + 6px);min-width:180px;background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);padding:6px;z-index:60;display:grid;gap:2px}
.top-prof-menu[hidden]{display:none}.top-prof-menu a,.top-prof-menu button{display:flex;align-items:center;gap:8px;padding:8px 10px;border:0;background:none;border-radius:6px;font:inherit;color:var(--text);cursor:pointer;text-align:left;text-decoration:none}
.top-prof-menu a:hover,.top-prof-menu button:hover{background:var(--panel2)}.top-prof-menu .ic{width:16px;height:16px;color:var(--muted)}
.th-pop{position:fixed;top:64px;right:16px;width:min(380px,calc(100vw - 24px));z-index:80;box-shadow:var(--shadow)}
.admin-set{position:relative;grid-template-columns:240px 1fr}
.admin-set.snav-collapsed{grid-template-columns:0 1fr}
.admin-set.snav-collapsed > .snav{overflow:hidden;padding:0;border:0;opacity:0;pointer-events:none;width:0}
.admin-set > .snav{position:relative}
.admin-set .snav a{display:flex;align-items:center;gap:8px}.admin-set .snav a .ic{width:16px;height:16px;flex:none;color:var(--muted)}
.admin-set .snav a.on .ic{color:var(--blue2)}
.set-sub{display:flex;flex-wrap:wrap;gap:4px;padding:0 0 10px;border-bottom:1px solid var(--line);margin-bottom:12px}
.set-sub a{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;border:1px solid var(--line);font-size:13px;color:var(--muted);text-decoration:none}
.set-sub a.on{background:var(--blue-soft);color:var(--blue);border-color:transparent;font-weight:700}
.set-sub a .ic{width:14px;height:14px}
.smain:has(#jb),.smain:has(.jb-wrap){max-width:none;padding-left:16px;padding-right:16px}
.jb-toolbar{display:flex;flex-wrap:wrap;align-items:flex-end;gap:8px;margin:0 0 10px;justify-content:flex-start}
.jb-toolbar .f{margin:0}.jb-dow{display:block;font-size:12px;font-weight:700;color:var(--muted);margin-bottom:2px}
/* v1.13.2 / v1.16.0: refresh ring around top-bar status light (SVG progress from 12 o'clock) */
.sb-orb{position:relative;width:22px;height:22px;display:inline-grid;place-items:center;flex:none}
.sb-ring{position:absolute;inset:0;width:22px;height:22px;pointer-events:none;transform:rotate(-90deg);opacity:0;overflow:visible;--sb-p:0}
html.ws-live .sbar-top .sb-ring,html.jb-live .sb-ring{opacity:1}
.sb-ring-track{fill:none;stroke:color-mix(in srgb,var(--line2) 85%,transparent);stroke-width:1.6}
.sb-ring-prog{fill:none;stroke:#6b7280;stroke-width:2;stroke-linecap:round;
  stroke-dasharray:56.5487;stroke-dashoffset:56.5487;
  transition:stroke .18s ease}
.sb-ring.ok .sb-ring-prog{stroke:#16a34a;transition:stroke .12s ease}
.sb-ring.paused .sb-ring-prog{stroke:#8b8f98;opacity:.85}
.sb-ring.reduce{opacity:.55}.sb-ring.reduce .sb-ring-prog{stroke-dashoffset:56.5487} /* static track only */
.sb-dot{--sb-c:#16a34a;position:relative;z-index:1;animation:sb-glow 2.6s ease-in-out infinite}
.sb-light.paused .sb-dot{--sb-c:#d97706}
.sb-light.off .sb-dot{--sb-c:#8b8f98;animation:none;opacity:.9}
.sb-light.busy .sb-dot{--sb-c:#dc2626}
.sb-light.sync .sb-dot{--sb-c:#2563eb;animation:sbp 1s ease-in-out infinite alternate}
@keyframes sb-glow{
  0%,100%{opacity:1;box-shadow:0 0 0 3px color-mix(in srgb,var(--sb-c) 25%,transparent),0 0 6px 0 color-mix(in srgb,var(--sb-c) 18%,transparent)}
  50%{opacity:.78;box-shadow:0 0 0 5px color-mix(in srgb,var(--sb-c) 18%,transparent),0 0 12px 1px color-mix(in srgb,var(--sb-c) 40%,transparent)}
}
@media (prefers-reduced-motion:reduce){
  .sb-dot,.sb-light.sync .sb-dot{animation:none!important}
  .sb-ring-prog{transition:none!important}
}
.jb-spin{display:none!important}
.jb-addcard{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;width:100%;min-height:64px;border:1px dashed var(--line2);border-radius:7px;background:transparent;color:var(--muted);cursor:pointer;margin-bottom:8px;font:inherit}
.jb-addcard:hover{border-color:var(--muted);background:var(--panel2)}.jb-add-ic{font-size:22px;line-height:1;color:#9CA3AF}.jb-add-lbl{font-size:12px;color:#9CA3AF}

.jcard.jc-compact,.jcard.jc-compact *{box-sizing:border-box}
.jcard.jc-compact{padding:8px;gap:6px;font-size:13px;cursor:grab;overflow:hidden;min-width:0;max-width:100%;min-height:auto;height:auto;flex:0 0 auto;box-sizing:border-box}
.jcard.jc-compact .jc-st-full{display:block;width:100%!important;max-width:100%!important;min-width:0!important;box-sizing:border-box!important;margin:0;padding:2px 6px;height:24px;line-height:20px;font-weight:600;font-size:12px;overflow:hidden;text-overflow:ellipsis;border-radius:4px}
.jcard.jc-compact .jc-body{position:relative;display:grid;gap:4px;padding-right:0;min-width:0;overflow:hidden}
.jcard.jc-compact .jc-time{display:flex;flex-direction:row;align-items:baseline;justify-content:space-between;gap:8px;width:100%;white-space:nowrap;overflow:visible;min-width:0}
.jcard.jc-compact .jc-time-l{font-size:13px;flex:none;overflow:visible;text-overflow:clip;min-width:auto}.jcard.jc-compact .jc-time-l b{font-size:14px;white-space:nowrap}
.jcard.jc-compact .jc-time-r{font-size:12px;color:var(--muted);flex:none;white-space:nowrap}
.jcard.jc-compact .jc-chips{display:flex;flex-wrap:wrap;gap:3px;max-width:100%}
.jcard.jc-compact .jc-row{display:flex;gap:6px;align-items:center;min-width:0;max-width:100%;overflow:hidden}
.jcard.jc-compact .jc-row .ic{width:14px;height:14px;flex:none}
.jcard.jc-compact .jc-row > span{min-width:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.jcard.jc-compact .jc-ell > span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;display:block}
.jcard.jc-compact .jc-notes{font-size:12px;color:var(--muted);min-width:0;max-width:100%;overflow:hidden}
.jcard.jc-compact .jc-notes > span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.jcard.jc-compact .jc-ph-only{font-size:12px;color:var(--muted)}
.jcard.jc-compact .jc-grip{display:none!important}
.jb-col h3{white-space:nowrap;min-width:0;overflow:hidden}
.jb-col h3 .jb-col-t{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.jb-col h3 .jb-n{flex:none}
.jb-col,.jb-list,.jb-today{min-width:0}
.jb-crew{margin-top:12px;display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.jm-card{max-width:560px;width:calc(100% - 24px)}.jm-meta{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:10px 0}.jm-notes{display:grid;gap:8px;margin:8px 0}
@media (max-width:720px){.admin-set{grid-template-columns:1fr}.admin-set.snav-collapsed{grid-template-columns:1fr}.admin-search{max-width:none;margin:0 8px}.jm-meta{grid-template-columns:1fr}}

/* v1.12.0 viewport-fit board columns (independent scroll) */
.smain:has(.jb-wrap),.smain:has(#jb){display:flex;flex-direction:column;min-height:0;height:calc(100vh - 60px - 32px);padding-bottom:8px;overflow:hidden}
.smain:has(.jb-wrap) .ahead,.smain:has(#jb) .ahead,.smain:has(.jb-wrap) .set-sub,.smain:has(#jb) .set-sub{flex:none}
.jb-wrap{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}
.jb-wrap > .jb-toolbar,.jb-wrap > .jb-crew,.jb-wrap > .jb-help,.jb-wrap > #jb-parts,.jb-wrap > .inc-banner,.jb-wrap > p{flex:none}
.jb-wrap > .jb{flex:1;min-height:0;align-items:stretch;overflow-x:auto;overflow-y:hidden}
.jb-col{min-height:0!important;height:100%;max-height:100%;overflow:hidden;display:flex;flex-direction:column}
.jb-list{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;padding:8px;display:flex;flex-direction:column;gap:8px;align-content:flex-start}
.jb-list > .jcard,.jb-list > .jb-addcard,.jb-list > .jb-empty{flex:0 0 auto;min-height:auto;height:auto;max-height:none;align-self:stretch}
.smain:has(.ah-grid){display:flex;flex-direction:column;min-height:0;height:calc(100vh - 60px - 32px);overflow:hidden;padding-bottom:8px}
.smain:has(.ah-grid) .ah-acts,.smain:has(.ah-grid) .ah-know,.smain:has(.ah-grid) #parts-await,.smain:has(.ah-grid) .ahead,.smain:has(.ah-grid) #ah-wk,.smain:has(.ah-grid) #ah-conf{flex:none;max-height:28vh;overflow:auto}
.smain:has(.ah-grid) .ah-grid{flex:1;min-height:0;align-items:stretch;overflow:hidden}
.smain:has(.ah-grid) .ah-cal{overflow:auto;min-height:0}
.smain:has(.ah-grid) .ah-board{min-height:0;overflow:hidden;display:flex;flex-direction:column}
.smain:has(.ah-grid) .ah-board .jb-wrap{flex:1;min-height:0}
@media (max-width:1100px){
  .smain:has(.ah-grid){height:auto;overflow:visible}
  .smain:has(.ah-grid) .ah-know,.smain:has(.ah-grid) #parts-await{max-height:none}
  .smain:has(.ah-grid) .ah-grid{overflow:visible;height:auto}
}
@media (max-width:720px){
  .smain:has(.jb-wrap),.smain:has(#jb){height:auto;overflow:visible}
  .jb-wrap{overflow:hidden;max-width:100%}
  .jb-wrap > .jb{overflow-x:hidden!important;overflow-y:hidden;height:auto;min-height:420px;width:100%;max-width:100%}
  .jb-col{height:auto!important;max-height:none;min-height:380px!important;min-width:0!important}
  .jb-list{max-height:55vh;overflow-y:auto;overflow-x:hidden}
  .jb-list > .jcard,.jb-list > .jb-addcard,.jb-list > .jb-empty{flex:0 0 auto}
}

.jc-st{min-width:0;max-width:100%}

.jb-list .jcard{width:100%;max-width:100%;flex:0 0 auto;min-height:auto;height:auto}
.jb > .jb-col{min-width:160px}

.jcard.jc-compact > .jc-st{grid-column:1/-1;width:100%;max-width:100%;min-width:0}


/* v1.13.0 chrome */
.top-end{display:flex;align-items:center;gap:8px;margin-left:auto;flex:none}
.top-end .sbar-top{position:relative;display:inline-flex;align-items:center;padding:0;border:0;background:none;flex:none}
.top-end .sbar-top .sb-light{padding:6px;border:0;border-radius:999px}
.top-end .sbar-top .sb-tip{right:0;left:auto;transform:none}
.top-prof{margin-left:0}
.top-prof-who{display:grid;gap:2px;padding:8px 10px 10px;border-bottom:1px solid var(--line);margin-bottom:4px}
.top-prof-who b{font-size:13px}.top-prof-who span{font-size:12px;color:var(--muted)}
.top-prof-menu{min-width:220px}
.snav-parent{display:grid;gap:0}
.snav-kids{display:grid;gap:1px;padding:2px 0 6px}
.snav-kids a.sub{padding-left:28px;font-size:13px}
.snav-parent:not(.open) .snav-kids[hidden]{display:none}
/* Desktop: nested settings in left menu; hide page set-sub chips */
.set-sub-m{display:none}
@media (max-width:899px){
  .snav-kids{display:none!important}
  .set-sub-m{display:flex}
}
/* Hide whoami leftovers */
.admin-set .whoami{display:none}
/* Mobile board: column picker visible; desktop hide */
.jb-toolbar .jb-colpick{display:none!important}
@media (max-width:720px){
  .jb-toolbar .jb-colpick{display:inline-flex!important;flex-direction:column}
  .jb-colpick-lbl{font-size:11px;font-weight:700;color:var(--muted)}
  /* v1.13.1: ONLY the Column-picker column, full width — no side-by-side, no horizontal scroll */
  .jb,.jb.jb-mob{display:block!important;grid-template-columns:none!important;overflow-x:hidden!important;width:100%;max-width:100%}
  .jb > .jb-col{display:none!important;min-width:0!important;width:100%!important;max-width:100%!important;height:auto!important;max-height:none!important}
  .jb > .jb-col.jb-on{display:flex!important}
  body.jb-dragging .jb > .jb-col,
  .jb-drag-active .jb > .jb-col{
    display:flex!important;flex:0 0 min(82vw,300px)!important;min-width:min(82vw,300px)!important;width:auto!important;max-width:none!important}
  body.jb-dragging .jb-wrap > .jb,
  .jb-drag-active .jb{
    overflow-x:auto!important;display:flex!important;flex-direction:row!important;gap:10px;touch-action:none!important}
  .jb-wrap > .jb{overflow-x:hidden!important}
}
/* Home blocks */
.ah-addblk-wrap{position:relative;display:inline-flex}
.ah-addblk-menu{position:absolute;top:calc(100% + 4px);left:0;z-index:40;min-width:240px;max-height:60vh;overflow:auto;background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);padding:6px;display:grid;gap:2px}
.ah-addblk-menu[hidden]{display:none}
.ah-addblk-menu button.ah-addblk-go,.ah-addblk-menu > button{display:block;width:100%;text-align:left;padding:8px 10px;border:0;background:none;border-radius:6px;font:inherit;cursor:pointer}
.ah-addblk-menu button.ah-addblk-go:hover,.ah-addblk-menu > button:hover{background:var(--panel2)}
.ah-addblk-menu button:disabled{opacity:.45;cursor:default}
.ah-blocks{display:grid;gap:14px}
.ah-block{position:relative}
.ah-block-h{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.ah-block-h b{flex:1;min-width:0}
.ah-drag{cursor:grab;color:var(--muted);letter-spacing:-2px;user-select:none;padding:0 4px}
.ah-block.dragging{opacity:.45}
.ah-block.drag-over{outline:2px dashed var(--blue2)}
.ah-block-rm{flex:none}
.ah-stats{display:flex;flex-wrap:wrap;gap:16px}
.ah-stats > div{display:grid;gap:2px}
.ah-notes{width:100%;min-height:72px;font:inherit;padding:8px;border:1px solid var(--line);border-radius:6px;background:var(--panel);color:var(--text)}
.jm-ed span{display:block;font-size:12px;font-weight:700;color:var(--muted);margin-bottom:2px}
.jm-in.jm-editing{outline:2px solid var(--blue2);outline-offset:1px}
.jm-ro{background:var(--panel2);padding:8px;border-radius:6px}
.jb-dots{display:none}

.snav-ver{margin-top:auto;padding:12px 10px 4px;font-size:11px;color:var(--muted);opacity:.75}
.admin-set > .snav{display:flex;flex-direction:column;min-height:0}
.admin-set > .snav .snav-ver{margin-top:auto}

.shop-map{height:280px;width:100%;border-radius:8px;border:1px solid var(--line);background:var(--panel2)}
.shop-map-card{max-width:560px;width:calc(100% - 24px)}
.shop-addr,.shop-addr-land{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer;text-align:left;text-decoration:underline;text-underline-offset:2px}
.shop-addr:hover,.shop-addr-land:hover{color:var(--blue2)}
.lnk.shop-addr .ic,.lnk.shop-addr-land .ic{width:14px;height:14px;margin-right:4px;vertical-align:-2px}

.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* v1.13.2: mobile-only Assign-to on job cards (desktop uses drag) */
.jc-as-card-l{display:none}
@media (max-width:720px){
  .jc-as-card-l{display:flex;flex-direction:column;gap:2px;margin:0 0 4px;min-width:0}
  .jc-as-card-lbl{font-size:10px;font-weight:700;color:var(--muted);line-height:1}
  .jcard.jc-compact .jc-as-card{display:block;width:100%;max-width:100%;box-sizing:border-box;margin:0;padding:2px 6px;height:24px;line-height:20px;font-weight:600;font-size:12px;border-radius:4px;min-width:0}
}
@media (min-width:721px){
  .jc-as-card-l,.jc-as-card{display:none!important}
}
/* Role-based ☰ nest + no on-page sidebar */
.admin-nosnav,.admin-set.admin-nosnav{grid-template-columns:1fr!important}
.admin-nosnav .snav{display:none!important}

/* ---- v1.13.2 Workshop Home: one shared column width on mobile ---- */
.ah-home{width:100%;max-width:100%;min-width:0;display:grid;gap:12px;overflow-x:hidden}
.ah-home .ah-acts,.ah-home .ah-blocks,.ah-home #ah-wk,.ah-home #ah-conf,.ah-home .ah-block,.ah-home .card{width:100%;max-width:100%;min-width:0;box-sizing:border-box}
.ah-blocks{display:grid;gap:14px;grid-template-columns:1fr;width:100%;min-width:0}
.ah-block,.ah-block .ah-block-b,.ah-block .jb-wrap{min-width:0;max-width:100%;overflow-x:hidden}
.ah-block[data-btype="awaiting_parts"] .ah-block-b,#parts-await{overflow-x:visible;max-width:100%;min-width:0}
#parts-await .ap-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;max-width:100%;min-width:0;touch-action:pan-x pan-y;scrollbar-width:thin}
#parts-await .ap-table{min-width:640px;width:max-content;max-width:none}
#parts-await .parts-group{min-width:0;max-width:100%;overflow:visible}
.ah-acts{display:flex;flex-wrap:wrap;gap:8px;align-items:center;width:100%;min-width:0}
.ah-acts > .btn,.ah-acts > .ah-addblk-wrap{flex:0 1 auto;min-width:0}
.ah-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.ah-stats > div{min-width:0}
/* Align demo banner + admin smain gutters so Home banner/blocks share width */
body:has(.admin-nosnav) .banner{padding-left:12px;padding-right:12px;box-sizing:border-box;width:100%;max-width:100%;overflow-wrap:anywhere}
.admin-nosnav .smain{padding-left:12px;padding-right:12px;width:100%;max-width:100%;overflow-x:hidden;box-sizing:border-box}
.admin-nosnav .smain > .ahead,.admin-nosnav .smain > .imp-banner,.admin-nosnav .smain > .pc-card,.admin-nosnav .smain > .ah-home{width:100%;max-width:100%;min-width:0;box-sizing:border-box}
.imp-banner{max-width:100%;box-sizing:border-box}
.imp-banner span{flex:1;min-width:0!important;overflow-wrap:anywhere}
@media (min-width:768px){
  body:has(.admin-nosnav) .banner{padding-left:28px;padding-right:28px}
  .admin-nosnav .smain{padding-left:28px;padding-right:28px;max-width:1000px}
}
@media (max-width:700px){
  .ah-home{gap:10px}
  .ah-acts{gap:8px}
  .ah-acts > .btn{flex:1 1 calc(50% - 8px);min-width:140px;justify-content:center}
  .ah-acts > .ah-addblk-wrap{flex:1 1 calc(50% - 8px)}
  .ah-acts > .ah-addblk-wrap > .btn{width:100%}
  .ah-acts > #ah-print{flex:1 1 100%}
  .ah-blocks,.ah-tiles,.ah-pick-grid,.ah-stats{grid-template-columns:1fr!important}
  .ah-home .jb{width:100%;max-width:100%;min-width:0;overflow-x:hidden!important}
  .ah-home .jb-col{min-width:0!important;max-width:100%}
  .ah-home .jb-toolbar{width:100%;max-width:100%;min-width:0}
  .ah-block-h{flex-wrap:wrap}
  .ah-cal,.ah-cal .acd{max-width:100%}
}
/* Job recovery list */
.ds-recover-list{margin-top:10px}
.ds-rec-ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.ds-rec-row{display:flex;gap:10px;align-items:center;justify-content:space-between;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--panel2);min-width:0}
.ds-rec-row > div{min-width:0;flex:1}
.ds-rec-row b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

.menu.menu-ws:not([hidden]){display:grid;gap:2px;max-height:min(80vh,calc(100dvh - 72px));overflow:auto}
.menu.menu-ws[hidden]{display:none!important;pointer-events:none}
.menu-grp{padding:6px 12px 2px;font-weight:700}
.menu-main{display:flex;align-items:center;gap:8px;padding:9px 12px;border-radius:6px;color:inherit;text-decoration:none;border:0;background:none;font:inherit;cursor:pointer;width:100%;text-align:left}
.menu-main:hover,.menu-main.on{background:var(--panel2)}
.menu-main .ic{width:16px;height:16px;flex:none}
.menu-parent{display:grid;gap:0}
.menu-parent-btn{justify-content:flex-start}
.menu-chev{margin-left:auto;width:8px;height:8px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:rotate(45deg);transition:transform .15s}
.menu-parent.open .menu-chev{transform:rotate(-135deg);margin-top:4px}
.menu-kids{display:grid;gap:1px;padding:0 0 4px}
.menu-sub{display:flex;align-items:center;gap:8px;padding:7px 12px 7px 28px;border-radius:6px;color:inherit;text-decoration:none;font-size:13px}
.menu-sub:hover,.menu-sub.on{background:var(--panel2)}
.menu-sub .ic{width:14px;height:14px;flex:none}
.menu-ver{padding:10px 12px 6px;font-size:11px;color:var(--muted);border-top:1px solid var(--line);margin-top:4px}

/* v1.13.2 Theme — job status border pickers */
.th-hr{border:0;border-top:1px solid var(--line);margin:16px 0}
.th-st-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;margin-top:10px}
.th-st{display:grid;gap:6px;padding:10px;border:1px solid var(--line);border-radius:8px;background:var(--panel2)}
.th-st-sw{display:block;height:8px;border-left:5px solid #64748B;border-radius:2px;background:var(--panel);margin-bottom:2px}
.th-st-row{display:flex;gap:8px;align-items:center}
.th-st-row input[type=color]{width:48px;height:32px;padding:0;border:1px solid var(--line2);border-radius:4px;background:none}
/* v1.13.3: ☰ menu — icon/label gap + Settings submenu indented under a guide line */
.menu a.menu-main,.menu .menu-main{display:flex;align-items:center;gap:10px}
.menu .menu-main .ic{margin-right:0}
.menu .menu-kids{margin:2px 0 6px 20px;padding:0 0 0 8px;border-left:1px solid var(--line2)}
.menu .menu-kids[hidden]{display:none}
.menu a.menu-sub{display:flex;align-items:center;gap:9px;padding:6px 10px;font-size:13px;font-weight:500;color:var(--muted)}
.menu a.menu-sub:hover{color:var(--text)}
.menu a.menu-sub.on{color:var(--text);background:var(--panel2)}
.menu a.menu-sub .ic{width:14px;height:14px;opacity:.85}
/* v1.13.4 / v1.16.0: ring visible whenever workshop signed in; progress driven by --sb-p (JS), not CSS spin */
html.ws-live .sbar-top .sb-ring{opacity:1}
html.ws-live.ws-stale .sbar-top .sb-ring{opacity:.7}
@media (prefers-reduced-motion:reduce){html.ws-live .sbar-top .sb-ring{opacity:.55}}
/* v1.13.4: top-bar + add menu */
.top-add{position:relative;flex:none;margin-left:6px}
.top-add-btn{width:40px;height:40px;display:grid;place-items:center;border:1px solid var(--line2);border-radius:4px;background:var(--input);color:var(--text);cursor:pointer}
.top-add-btn:hover,.top-add-btn[aria-expanded=true]{background:var(--panel2)}
.top-add-btn .ic{width:18px;height:18px;margin:0}
.top-add-menu{position:absolute;top:calc(100% + 6px);left:0;min-width:190px;background:var(--panel,#fff);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);padding:4px;z-index:2100;display:grid}
.top-add-menu[hidden]{display:none}
.top-add-menu button{display:flex;align-items:center;gap:10px;padding:9px 10px;border:0;background:none;color:var(--text);font:inherit;font-weight:500;text-align:left;border-radius:6px;cursor:pointer}
.top-add-menu button:hover,.top-add-menu button:focus-visible{background:var(--panel2);outline:none}
.top-add-menu .ic{width:16px;height:16px;flex:none;margin:0}
@media (max-width:560px){.top-add{margin-left:4px}.top-add-btn{width:36px;height:36px}.top-add-menu{left:auto;right:0}.admin-search{min-width:60px}}
.mini-modal{width:min(460px,100%)}
.mm-form{display:grid;gap:10px}.mm-form textarea{width:100%;resize:vertical}
/* v1.13.4 shared page loader + busy buttons */
.app-loader{position:fixed;left:0;right:0;top:64px;bottom:0;display:flex;align-items:center;justify-content:center;z-index:1900;pointer-events:none}
.app-loader[hidden]{display:none}
.app-loader .ld-card{display:flex;align-items:center;gap:10px;padding:10px 16px;border-radius:999px;background:var(--panel,#fff);border:1px solid var(--line);box-shadow:var(--shadow);color:var(--muted);font-size:13px;pointer-events:auto}
.ld-spin,.btn.is-busy::before,button.is-busy::before{width:16px;height:16px;border-radius:50%;border:2px solid color-mix(in srgb,currentColor 25%,transparent);border-top-color:currentColor;animation:ld-rot .8s linear infinite;flex:none;box-sizing:border-box}
.app-loader .ld-spin{width:22px;height:22px;border-width:2.5px;color:var(--blue2,#2E6B4F)}
button.is-busy{cursor:progress;opacity:.8}
button.is-busy::before{content:"";display:inline-block;width:13px;height:13px;margin-right:6px;vertical-align:-2px}
button.is-busy>.ic{display:none}
@keyframes ld-rot{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.ld-spin,button.is-busy::before{animation-duration:2.4s}}
.off-st{font-weight:600}.off-st.ok{color:var(--green,#16a34a)}.off-st.warn{color:var(--amber,#d97706)}.off-st.bad{color:var(--red,#dc2626)}
/* v1.13.5 / v1.16.1 pitch: screenshots with spinner placeholders (Coming soon removed) */
.p-sec-l h2{display:flex;align-items:center;gap:8px}
.p-lead .p-feat h3{font-size:16px} /* match .p-grid h3 — same block specs */
.p-grid .card{padding:16px;min-height:0;box-sizing:border-box}
.p-shots{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}
.p-shots figure.p-shot{margin:0;padding:8px;overflow:hidden}
.p-shot-frame{position:relative;width:100%;aspect-ratio:3/1;min-height:0;border-radius:6px;border:1px solid var(--line);background:var(--panel2,var(--panel));overflow:hidden}
.p-shot-ph{position:absolute;inset:0;display:grid;place-items:center;z-index:1;pointer-events:none;transition:opacity .25s ease}
.p-shot-frame.ready .p-shot-ph{opacity:0}
.p-shot-spin{width:22px;height:22px;color:var(--muted)}
.p-shots img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:top left;display:block;opacity:0;transition:opacity .35s ease}
.p-shots img.on{opacity:1}
.p-shots figure.tall .p-shot-frame{aspect-ratio:3/4;min-height:200px}
.p-shots figure.tall img{object-position:top center}
.p-shots figcaption{font-size:13px;color:var(--muted);padding:8px 2px 2px}
@media (max-width:560px){
  .p-shots{grid-template-columns:1fr}
  .p-shot-frame{min-height:180px}
}
@media (prefers-reduced-motion:reduce){
  .p-shots img{transition:none}.p-shot-ph{transition:none}
  .p-shot-spin{animation-duration:2.4s}
}
.flash-hl{border-radius:8px;outline:2px solid var(--amber,#d97706);outline-offset:4px;animation:flash-hl 1.2s ease-in-out 3}
@keyframes flash-hl{50%{outline-color:transparent}}
/* v1.13.7 off-roster columns + unrostered block */
.jb-col.jb-off{opacity:.62;background:repeating-linear-gradient(135deg,transparent 0 8px,color-mix(in srgb,var(--line) 45%,transparent) 8px 9px)}
.jb-col.jb-off:hover{opacity:.9}
.jb-offtag{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:2px 6px;border-radius:999px;background:var(--warnbg);color:var(--warnfg);margin-left:4px}
.jc-offname{display:inline-block;margin-top:4px}
.ah-unr{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.ah-unr-r{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;padding:8px 10px;border:1px solid var(--line);border-left:4px solid var(--amber,#d97706);border-radius:8px}
.ah-unr-open{text-align:left;flex:1 1 220px;min-width:0}
.ah-unr-as{display:flex;align-items:center;gap:6px;margin-left:auto}.ah-unr-as select{min-width:130px}
.apr{display:grid;gap:6px;margin:6px 0 4px;max-width:520px}.apr-h{display:flex;gap:8px;align-items:baseline}
.apr-list{list-style:none;margin:0;padding:0;display:grid;gap:4px}.apr-list li{display:flex;align-items:center;gap:8px;justify-content:space-between;padding:4px 6px;border:1px solid var(--line);border-radius:6px}
.apr-chk{display:flex;align-items:center;gap:8px;min-width:0;overflow:hidden}.apr-chk span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.apr-rm{min-width:32px;font-weight:700}.apr-bar{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.apr-bar input{flex:1 1 200px;min-width:0}
.off-tag{cursor:pointer;border:0;font:inherit}.jb-offtag.off-tag{border:0}.off-tag:hover{filter:brightness(.95);text-decoration:underline}
.ah-unr-dates{display:flex;gap:4px;flex-wrap:wrap}.ah-due{font-weight:600}.ah-due.today{color:var(--amber,#d97706)}.ah-unr-g{margin:8px 0 4px;font-size:13px}
.mini-modal .mm-form{display:flex;flex-direction:column;gap:12px;align-content:start;justify-content:flex-start;height:auto}.mini-modal .mm-form>*{flex:0 0 auto}.mini-modal .mm-form .m-days{display:flex;flex-wrap:wrap;gap:8px}
.ap-all{gap:10px;align-items:center;margin:0 0 10px}.ap-pend{display:flex;gap:10px;align-items:center;padding:10px 12px;margin:0 0 10px;border-left:4px solid var(--amber,#d97706)}.ap-pend>div{flex:1}
.pn-row{display:grid;grid-template-columns:minmax(200px,1fr) 150px minmax(160px,1fr);gap:4px 12px;align-items:end;padding:8px 0;border-top:1px solid var(--line,#e5e5e0)}.pn-row .pn-h{grid-column:1/-1;margin:0}.pn-dev{margin-top:10px;padding-top:8px;border-top:1px solid var(--line,#e5e5e0)}
@media(max-width:600px){.pn-row{grid-template-columns:1fr 1fr}.pn-row .tog{grid-column:1/-1}}
.nt-badge{position:fixed;right:14px;bottom:70px;z-index:60;border:0;border-radius:999px;padding:8px 14px;background:#4f46e5;color:#fff;font:600 13px system-ui;box-shadow:0 4px 14px rgba(0,0,0,.2);cursor:pointer}
.undo-toast{display:flex;gap:10px;align-items:center;animation:none!important;opacity:1!important}
/* v1.14.0 status light: green online · AMBER offline mode (saved data) · RED no data */
.sb-light.off .sb-dot{--sb-c:#d97706;background:#d97706;animation:sb-glow 2.6s ease-in-out infinite;opacity:1}.sb-light.off{border-color:color-mix(in srgb,#d97706 55%,transparent)}
.sb-light.nodata .sb-dot{--sb-c:#dc2626;background:#dc2626}.sb-light.nodata{border-color:color-mix(in srgb,#dc2626 55%,transparent)}
/* v1.16.1: .p-outage band retired — outage is a normal .p-grid .card */
.p-outage{display:contents}
/* v1.14.3 icon fixes (Sam t455) */
.p-ic{flex-shrink:0}
.ic-phoneOff path:last-child{stroke-width:2.6}
.tog.is-dis{opacity:.6;cursor:not-allowed}.pn-nb{display:flex;flex-direction:column;gap:6px;margin-bottom:8px}
/* v1.15.0 Analytics */
.an-hd{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}.an-per{display:flex;gap:6px;flex-wrap:wrap}.an-per .chip{cursor:pointer;border:1px solid var(--line2)}
.an-row{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap}.an-row #an-cust{display:flex;gap:10px}.an-row #an-cust[hidden]{display:none}.an-scope{margin:10px 2px}
.an-kpis{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px;margin-bottom:12px}.an-k{display:flex;flex-direction:column;gap:4px;padding:12px 14px;margin:0}
.an-kv{font-size:24px;line-height:1.1}.an-d{font-size:12px;font-weight:700}.an-d.up{color:var(--green)}.an-d.down{color:var(--red)}
.an-grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.an-c{margin:0;min-width:0}.an-c#an-tl-b,.an-c#an-tl-r,.an-c#an-heat{grid-column:1/-1}
.an-ch{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.an-ch h3{margin:0;font-size:15px}
.an-svg{width:100%;height:auto;display:block;overflow:visible}.an-grid{stroke:var(--line);stroke-width:1}.an-ax{fill:var(--muted);font-size:11px}.an-dt{fill:var(--text);font-size:22px;font-weight:700}
.an-donut{display:flex;gap:16px;align-items:center;flex-wrap:wrap}.an-dsvg{width:170px;flex:none}.an-leg{list-style:none;margin:0;padding:0;display:grid;gap:4px;font-size:13px;flex:1;min-width:150px}.an-leg i,.an-sw{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:-1px}
.an-sw{background:var(--blue2);width:16px;height:3px;border-radius:2px}.an-sw.dash{background:repeating-linear-gradient(90deg,var(--muted) 0 5px,transparent 5px 9px);margin-left:10px}.an-lg{margin:4px 0 0}
.an-bars{display:grid;gap:6px;margin-top:6px}.an-bar{display:grid;grid-template-columns:minmax(70px,140px) 1fr 32px;gap:8px;align-items:center;font-size:13px}.an-bl{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.an-bt{height:12px;border-radius:6px;background:var(--line);overflow:hidden}.an-bt span{display:block;height:100%;border-radius:6px;min-width:2px}.an-bar b{text-align:right}
.an-heat-w,.an-tw{overflow-x:auto;-webkit-overflow-scrolling:touch}.an-heat{border-collapse:separate;border-spacing:3px;font-size:11px;margin-bottom:8px}.an-heat th{color:var(--muted);font-weight:600;padding:0 2px}
.an-heat td{width:28px;height:24px;text-align:center;border-radius:5px;background:color-mix(in srgb,var(--blue2) calc(var(--v)*85%),var(--line) );color:var(--text);font-weight:600}
.an-empty{display:flex;gap:8px;align-items:center;color:var(--muted);padding:22px 8px;justify-content:center;text-align:center}.an-empty .ic{width:20px;height:20px;opacity:.7}
@media(max-width:760px){.an-grid2{grid-template-columns:1fr}.an-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.an-kv{font-size:20px}}
.an-c .an-svg:not(.an-dsvg){max-height:260px}
/* v1.15.0 Home KPI strip */
.ah-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(0,1fr));grid-auto-flow:column;gap:10px;margin-bottom:12px}
.ah-kpi{margin:0;padding:12px 14px;min-width:0}.ah-kpi .ah-block-rm{position:absolute;top:6px;right:6px;opacity:0;transition:opacity .15s}.ah-kpi:hover .ah-block-rm,.ah-kpi:focus-within .ah-block-rm{opacity:1}
.ah-kpi-a{display:flex;flex-direction:column;gap:2px;color:inherit;text-decoration:none}.ah-kpi-v{font-size:26px;line-height:1.15}.ah-kpi-d{font-size:12px;font-weight:700}.ah-kpi-d.up{color:var(--green)}.ah-kpi-d.down{color:var(--red)}
@media(max-width:600px){.ah-kpis{gap:6px}.ah-kpi{padding:9px 8px}.ah-kpi-v{font-size:18px}.ah-kpi .small{font-size:11px;line-height:1.2}.ah-kpi-d{font-size:10.5px}}
/* v1.15.0 Essentials: plain numbers, no pill; status colour stays on the number */
.ah-tile .ah-n,.ah-tile.amber .ah-n,.ah-tile.stale-amber .ah-n,.ah-tile.red .ah-n,.ah-tile.stale-red .ah-n{background:none;padding:0;min-width:0;border-radius:0;font-size:16px;font-weight:800}
.ah-tile.amber .ah-n,.ah-tile.stale-amber .ah-n{color:var(--amber)}.ah-tile.red .ah-n,.ah-tile.stale-red .ah-n{color:var(--red)}

/* v1.15.1 customers search */
#cust-list{max-width:100%;min-width:0;overflow-x:hidden}
#cust-list .cu-search{margin:8px 0 12px}
#cust-list .cu-results{display:grid;gap:6px;max-width:100%;min-width:0}
#cust-list .cu-lab{margin:4px 0 2px}
#cust-list .cu-hit{display:grid;gap:2px;text-align:left;width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:inherit;font:inherit;cursor:pointer;min-width:0}
#cust-list .cu-hit:hover,#cust-list .cu-hit[aria-selected="true"]{border-color:var(--blue2,#2563eb);background:color-mix(in srgb,var(--blue2,#2563eb) 8%,transparent)}
#cust-list .cu-hit b,#cust-list .cu-hit span{overflow-wrap:anywhere;min-width:0}
#cust-list .cu-detail{margin-top:12px;max-width:100%;min-width:0}
@media (max-width:720px){
  #cust-list .grid3{grid-template-columns:1fr}
  .admin-nosnav .smain:has(#cust-list){overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;max-width:100%;min-height:0}
}

/* v1.16.0 customers analytics + analytics segmented toggle */
.an-seg{display:inline-flex;border:1px solid var(--line);border-radius:999px;overflow:hidden;background:var(--panel2);padding:2px;gap:2px}
.an-seg-b{border:0;background:transparent;font:inherit;font-size:12px;font-weight:600;padding:5px 12px;border-radius:999px;cursor:pointer;color:var(--muted)}
.an-seg-b.on{background:var(--panel);color:var(--text);box-shadow:0 1px 2px rgba(0,0,0,.08)}
[data-theme=dark] .an-seg-b.on{background:color-mix(in srgb,var(--panel) 90%,#fff 10%);box-shadow:0 0 0 1px var(--line)}
.an-pane{min-height:120px}
.an-fav,.cu-fav-list{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.cu-fav-list li{margin:0}
.cu-page{display:grid;gap:12px;max-width:100%;min-width:0}
.cu-an .an-kpis{margin-top:8px}
.cu-kpis{margin:0}
.cu-bks{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:6px}
.cu-bk{display:grid;gap:2px;width:100%;text-align:left;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--panel);font:inherit;color:inherit;cursor:pointer}
.cu-bk:hover{border-color:var(--blue2)}
.an-empty-inline{margin:6px 0 0}

/* v1.16.0 job history filters */
.ds-hist-filters{display:grid;gap:10px;margin:12px 0 8px;max-width:100%;min-width:0}
.ds-hist-q input{width:100%;font-size:16px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--text);box-sizing:border-box}
.ds-hist-dates{display:flex;flex-wrap:wrap;gap:8px;align-items:end}
.ds-hist-dates .f{margin:0;flex:1 1 140px;min-width:0}
.ds-date{width:100%;font:inherit;font-size:16px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--text);color-scheme:light dark;min-height:42px;box-sizing:border-box}
[data-theme=dark] .ds-date{color-scheme:dark}
.ds-hist-lab{margin:0 0 6px}
.ds-hist-ul .ds-hist-open{display:grid;gap:2px;flex:1;min-width:0;text-align:left;border:0;background:none;font:inherit;color:inherit;cursor:pointer;padding:0}
.ds-hist-ul .ds-rec-row{align-items:flex-start}
.ds-history{margin-top:4px;max-width:100%;min-width:0}
@media (max-width:720px){
  .ds-hist-dates{flex-direction:column;align-items:stretch}
  .ds-hist-dates .f{flex:1 1 auto}
}

/* v1.16.0 status refresh ring */
[data-theme=dark] .sb-ring-prog{stroke:#d4d4d8}
[data-theme=dark] .sb-ring.ok .sb-ring-prog{stroke:#4ade80}
.sbar-top .sb-orb{width:22px;height:22px} /* no layout shift vs prior orb */

/* v1.16.0 supplier lead times — compact fixed-height scroll (never expands Settings) */
.js-lead-block{margin:10px 0 4px;max-width:100%;min-width:0}
.js-lead-hd{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:baseline}
.js-lead-scroll-wrap{display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:4px;border:1px solid var(--line);border-radius:10px;background:var(--panel2,var(--panel));padding:4px;max-width:100%;min-width:0}
.js-lead-scroll{height:220px;max-height:220px;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;scroll-behavior:smooth;padding:6px 8px;min-width:0;outline:none}
.js-lead-scroll:focus-visible{box-shadow:inset 0 0 0 2px var(--blue-soft,rgba(46,107,79,.25))}
.js-lead-arrow{display:flex;align-items:center;justify-content:center;height:28px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--text);font-size:12px;cursor:pointer;padding:0;width:100%}
.js-lead-arrow:hover:not(:disabled){background:var(--panel2)}
.js-lead-arrow:disabled{opacity:.35;cursor:default}
.js-sec-h{font-size:12px;font-weight:700;color:var(--muted);margin:4px 0 6px;position:sticky;top:0;background:var(--panel2,var(--panel));padding:2px 0;z-index:1}
.js-st-block{margin-bottom:10px;padding-bottom:8px;border-bottom:1px solid var(--line)}
.js-st-row,.js-sup-row{display:grid;grid-template-columns:52px 64px minmax(0,1fr);gap:6px 8px;align-items:center;padding:4px 0;min-width:0}
.js-st-row b{font-size:13px}
.js-st-row .js-st-days,.js-sup-row .js-sup-days{width:64px;min-width:0;font:inherit;font-size:15px;padding:6px 8px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--text);box-sizing:border-box}
.js-st-row .js-st-lab{grid-column:3;font-size:11px;line-height:1.2}
.js-sup-row{grid-template-columns:minmax(0,1.4fr) 88px 64px minmax(0,.9fr);gap:6px}
.js-sup-name{font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.js-sup-st{font:inherit;font-size:13px;padding:5px 6px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--text);min-width:0;max-width:100%}
.js-sup-lab{font-size:11px;line-height:1.2;min-width:0}
.js-sup-gh{font-size:12px;font-weight:700;margin:10px 0 4px;color:var(--text);position:sticky;top:18px;background:var(--panel2,var(--panel));padding:2px 0;z-index:1}
.js-sup-g:first-child .js-sup-gh{margin-top:0}
@media (max-width:560px){
  .js-lead-scroll{height:200px;max-height:200px}
  .js-sup-row{grid-template-columns:minmax(0,1fr) 78px 56px;grid-template-rows:auto auto}
  .js-sup-lab{grid-column:1/-1}
  .js-st-row{grid-template-columns:48px 56px minmax(0,1fr)}
}

/* v1.16.3 wifiOff — continuous arcs may draw-on; round caps; thicker slash */
.ic-wifiOff path{stroke-linecap:round;stroke-linejoin:round}
.ic-wifiOff path:last-child{stroke-width:2.35}


/* ===== v1.17.0 public site search (pitch + customer; not admin) ===== */
.ss{position:relative;display:flex;align-items:center;flex:1;max-width:420px;min-width:0;margin:0 10px 0 auto;justify-content:flex-end}
.ss-ico{display:none;align-items:center;justify-content:center;width:40px;height:40px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--text);cursor:pointer;flex:none}
.ss-ico:hover{background:var(--panel2)}.ss-svg{width:18px;height:18px;display:block}
.ss-box{position:relative;display:flex;align-items:center;gap:6px;flex:1;min-width:0;height:44px;min-height:44px;padding:0 10px;border:1px solid var(--line2);border-radius:5px;background:var(--input);box-sizing:border-box;transition:border-color .15s,box-shadow .15s}
.ss-box:focus-within{border-color:var(--accent,var(--line2));box-shadow:0 0 0 3px color-mix(in srgb,var(--accent,#6366f1) 25%,transparent)}
.ss-pin{display:grid;place-items:center;color:var(--muted);flex:none}.ss-pin .ss-svg{width:16px;height:16px}
.ss-box input{-webkit-appearance:none;appearance:none;border:0!important;outline:0!important;box-shadow:none!important;background:transparent!important;height:42px!important;min-height:42px!important;padding:0 4px!important;min-width:0;flex:1 1 auto!important;width:100%!important;max-width:100%!important;font-size:16px!important;line-height:1.25!important;color:var(--text);border-radius:0!important;align-self:stretch!important}
/* v1.18.1: short placeholder + soft placeholder colour */
.ss-box input::placeholder{color:#b8b8b8;opacity:1}
[data-theme=dark] .ss-box input::placeholder{color:#7a7a7a;opacity:1}
.ss-close{display:grid;place-items:center;width:28px;height:28px;border:0;border-radius:6px;background:transparent;color:var(--muted);cursor:pointer;flex:none}
.ss-close:hover{background:var(--panel2);color:var(--text)}
.ss-sugg{position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:1200;background:var(--panel);border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow);max-height:min(70vh,420px);overflow:auto;padding:4px}
.ss-hit{display:grid;gap:2px;width:100%;text-align:left;border:0;background:transparent;color:var(--text);padding:10px 12px;border-radius:8px;cursor:pointer;font:inherit}
.ss-hit:hover,.ss-hit[aria-selected=true]{background:var(--panel2)}
.ss-hit-t{font-weight:650;font-size:14px}.ss-hit-t mark,.ss-hit-s mark{background:rgba(99,102,241,.22);color:inherit;border-radius:2px;padding:0 1px}
.ss-hit-s{font-size:12.5px;color:var(--muted);line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.ss-hit-a{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin-top:2px}
.ss-empty{padding:14px 12px;color:var(--muted);font-size:14px;text-align:center}
.ss-flash{animation:ss-flash 1.4s ease}
@keyframes ss-flash{0%,100%{box-shadow:none}20%,60%{box-shadow:0 0 0 3px rgba(99,102,241,.45)} }
[data-theme=dark] .ss-hit-t mark,[data-theme=dark] .ss-hit-s mark{background:rgba(165,180,252,.28)}
[data-theme=dark] .ss-flash{animation-name:ss-flash-d}
@keyframes ss-flash-d{0%,100%{box-shadow:none}20%,60%{box-shadow:0 0 0 3px rgba(165,180,252,.5)} }
/* Phones/tablets: always show the search field in the sticky bar (v1.17.2) */
@media (max-width:720px){
  .top{gap:6px;padding:0 8px}
  .top:has(#site-search) .top-end{margin-left:0}
  .top .logo{gap:0;flex:none;min-width:0}
  .top .logo .shop-logo,.top .logo .logo-mark{width:28px;height:28px;flex:none}
  .ss{flex:1 1 auto;min-width:140px;max-width:none;margin:0 4px;justify-content:stretch}
  .ss-ico{display:none!important}
  .ss-box{flex:1;min-width:140px;height:36px;padding:0 8px;display:flex!important}
  .ss-box input{height:34px!important;font-size:16px} /* 16px avoids iOS zoom */
  .ss-pin .ss-svg{width:15px;height:15px}
  .ss-close{width:26px;height:26px}
  .ss-sugg{
    position:fixed;left:0;right:0;top:56px;width:auto;margin:0;
    border-radius:0 0 10px 10px;border-left:0;border-right:0;
    max-height:min(70vh,420px);z-index:1200;
  }
}
@media (max-width:560px){
  .top{gap:4px;padding:0 6px}
  .ss{min-width:120px;margin:0 2px}
  .ss-box{padding:0 6px}
  .ss-pin{display:none} /* extra room at 320–390 */
  .top-end .top-prof-btn{width:34px;height:34px}
}
@media (max-width:360px){
  .top{padding:0 4px;gap:3px}
  .burger{width:36px;height:36px}
  .ss{min-width:110px}
}

/* v1.17.2 colour-wheel pitch icon — clear at 42px; handle + hub a touch heavier */
.ic-colorWheel path{stroke-linecap:round;stroke-linejoin:round}
.ic-colorWheel path:nth-child(9){stroke-width:2.15} /* picker handle */
.ic-colorWheel path:nth-child(10){stroke-width:2.6} /* hub dot */
.pitch .p-grid .ic-colorWheel path:nth-child(3){stroke:color-mix(in srgb,#fff 92%,#f87171)}
.pitch .p-grid .ic-colorWheel path:nth-child(4){stroke:color-mix(in srgb,#fff 92%,#fbbf24)}
.pitch .p-grid .ic-colorWheel path:nth-child(5){stroke:color-mix(in srgb,#fff 92%,#4ade80)}
.pitch .p-grid .ic-colorWheel path:nth-child(6){stroke:color-mix(in srgb,#fff 92%,#38bdf8)}
.pitch .p-grid .ic-colorWheel path:nth-child(7){stroke:color-mix(in srgb,#fff 92%,#a78bfa)}
.pitch .p-grid .ic-colorWheel path:nth-child(8){stroke:color-mix(in srgb,#fff 92%,#fb7185)}

/* v1.18.0 public menu: next-available date + Pricing */
.menu-cust a{line-height:1.35}
.menu-cust a .ic.dec{flex:none}

/* v1.18.5 directions chooser (phone): theme-aware bottom sheet */
.dir-ov{z-index:2200}
.dir-sheet{position:fixed;left:0;right:0;bottom:0;z-index:2210;max-width:420px;margin:0 auto;padding:10px 14px calc(14px + env(safe-area-inset-bottom,0));background:var(--panel);color:var(--text);border:1px solid var(--line);border-bottom:0;border-radius:14px 14px 0 0;box-shadow:0 -12px 40px rgba(15,23,42,.22);display:grid;gap:8px}
[data-theme=dark] .dir-sheet{box-shadow:0 -12px 40px rgba(0,0,0,.45)}
.dir-grab{width:40px;height:5px;border-radius:99px;background:var(--line2);margin:2px auto 6px}
.dir-sheet h3{margin:0;font-size:17px;display:flex;align-items:center;gap:8px}
.dir-sheet h3 .ic{color:var(--lx-indigo,var(--blue2))}
.dir-sub{margin:0 0 2px}
.dir-opt{display:flex;align-items:center;gap:12px;padding:12px 12px;border:1px solid var(--line2);border-radius:10px;background:var(--panel2,var(--panel));color:var(--text);text-decoration:none;font:inherit}
.dir-opt:hover,.dir-opt:focus-visible{border-color:var(--blue2);background:var(--blue-soft)}
.dir-opt b{display:block;font-weight:700;font-size:15px}
.dir-opt small{display:block;color:var(--muted);font-size:12px;margin-top:2px}
.dir-ic{width:36px;height:36px;border-radius:9px;display:grid;place-items:center;font-weight:800;font-size:15px;flex:none;background:linear-gradient(135deg,#4285F4,#34A853);color:#fff}
.dir-ic.apple{background:linear-gradient(135deg,#555,#111)}
.dir-ic.waze{background:linear-gradient(135deg,#33ccff,#09f)}
.dir-cancel{width:100%;margin-top:4px;height:44px}
@media (min-width:720px){
  .dir-sheet{bottom:auto;top:50%;left:50%;right:auto;transform:translate(-50%,-50%);border-radius:14px;border:1px solid var(--line);max-width:380px;width:calc(100% - 32px)}
}


/* v1.19.0 multi-bike + price list fit */
main.prices{max-width:min(1180px,100%);width:100%;box-sizing:border-box;overflow-x:hidden;min-width:0}
main.prices .card,.pl-cat,.pl-hero,.pl-grid,.pl-list,.pl-list li{max-width:100%;box-sizing:border-box;min-width:0}
.pl-n{min-width:0;overflow-wrap:anywhere;word-break:break-word}
.pl-hero h2{display:flex;flex-wrap:wrap;align-items:center;gap:8px;min-width:0}
.pl-hit-chip{display:inline-flex;align-items:center;gap:4px;padding:2px 10px;border-radius:999px;font-size:13px;font-weight:700;background:color-mix(in srgb,var(--accent,#1F4D3A) 16%,var(--panel));color:var(--accent,#1F4D3A);border:1px solid color-mix(in srgb,var(--accent,#1F4D3A) 35%,transparent);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;animation:pl-chip-in .25s ease}
[data-theme=dark] .pl-hit-chip{background:color-mix(in srgb,var(--accent-2,#A78BFA) 22%,var(--panel));color:var(--accent-2,#C4B5FD);border-color:color-mix(in srgb,var(--accent-2,#A78BFA) 40%,transparent)}
@keyframes pl-chip-in{from{opacity:0;transform:translateY(-2px)}to{opacity:1;transform:none}}
.pl-list li.pl-flash{background:color-mix(in srgb,var(--accent,#1F4D3A) 14%,transparent);box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--accent,#1F4D3A) 45%,transparent);border-radius:8px;transition:background .6s ease,box-shadow .6s ease}
[data-theme=dark] .pl-list li.pl-flash{background:color-mix(in srgb,var(--accent-2,#A78BFA) 22%,transparent);box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--accent-2,#A78BFA) 50%,transparent)}
.pl-list li.pl-flash.is-fading{background:transparent;box-shadow:none}
@media (max-width:640px){
  .pl-grid{columns:1!important;column-gap:0}
  main.prices{padding:8px;gap:12px}
  .pl-hero{padding:12px;gap:10px}
  .pl-hero .bar{width:100%;flex-wrap:wrap;gap:8px}
  .pl-hero .bar .btn{flex:1 1 auto;min-width:0;justify-content:center}
  .pl-cat{padding:10px 12px;margin:0 0 12px}
  .pl-list li{column-gap:6px;padding:6px 4px}
  .pl-p{min-width:0;font-size:13.5px}
  .parts-note.big{font-size:14.5px;padding:8px 10px}
}
/* multi-bike group job cards: thicker top border (themeable via --jc-group) */
.jcard.is-group{border-top:4px solid var(--jc-group,#C026D3)}
[data-theme=dark] .jcard.is-group{border-top-color:var(--jc-group,#E879F9)}
.jc-group{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:800;letter-spacing:.02em;color:var(--jc-group,#C026D3);background:color-mix(in srgb,var(--jc-group,#C026D3) 12%,var(--panel));border:1px solid color-mix(in srgb,var(--jc-group,#C026D3) 35%,transparent);border-radius:999px;padding:1px 8px;margin:0 0 2px;width:fit-content}
[data-theme=dark] .jc-group{color:var(--jc-group,#E879F9);background:color-mix(in srgb,var(--jc-group,#E879F9) 16%,var(--panel));border-color:color-mix(in srgb,var(--jc-group,#E879F9) 40%,transparent)}
.slot small.slot-free{display:block;font-size:10px;font-weight:600;opacity:.85;margin-top:1px;line-height:1.1}
.slot.off{opacity:.45;cursor:not-allowed;text-decoration:line-through}
.mb-extra{display:grid;gap:10px;margin-top:10px}
.mb-card{border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:var(--panel2);display:grid;gap:8px;min-width:0}
.mb-card .mb-head{display:flex;justify-content:space-between;align-items:center;gap:8px}
.mb-card .grid2{display:grid;grid-template-columns:1fr 1fr;gap:8px;min-width:0}
@media (max-width:480px){.mb-card .grid2{grid-template-columns:1fr}}
.th-group{margin-top:12px}
.th-group .th-st-sw{border-left:0;border-top:4px solid #C026D3;height:10px}

/* v1.19.0: sticky Save when job card is dirty */
.jm-card{display:flex;flex-direction:column;max-height:calc(100dvh - 24px);max-height:calc(100vh - 24px);overflow:hidden;min-height:0}
.jm-card .jm-body{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;touch-action:pan-y}
.jm-foot{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap;padding:10px 14px;padding-bottom:max(10px,env(safe-area-inset-bottom));border-top:1px solid var(--line);background:color-mix(in srgb,var(--panel,#fff) 92%,transparent);backdrop-filter:blur(8px);position:sticky;bottom:0;z-index:5}
.jm-foot[hidden]{display:none!important}
.jm-foot .jm-save-msg{margin-right:auto;font-weight:600}
.jm-card.is-dirty .jm-foot{box-shadow:0 -6px 18px rgba(0,0,0,.08)}
[data-theme=dark] .jm-card.is-dirty .jm-foot{box-shadow:0 -6px 18px rgba(0,0,0,.35)}
.jm-idia{margin-top:8px}.jm-idia .anat-stage{min-height:160px}.idia-list{margin:8px 0 0;padding-left:18px;font-size:13px}
.pl-list li{scroll-margin-top:72px}
/* v1.38.8 in-page anchors clear fixed beta bar + header */
[id]:not([id=""]){scroll-margin-top:calc(var(--banner-h,0px) + var(--top-bar-h,56px) + 12px)}
.cal-head .cal-month-title,.cal-head > b{scroll-margin-top:calc(var(--banner-h,0px) + var(--top-bar-h,56px) + 16px)}

/* v1.20.0 notifications + messages */
.top-prof-btn{position:relative}
.prof-nt-badge{position:absolute;top:-4px;left:-4px;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:#DC2626;color:#fff;font:700 10px/18px system-ui,sans-serif;text-align:center;border:2px solid var(--panel,#fff);pointer-events:none;z-index:2}
[data-theme=dark] .prof-nt-badge{border-color:var(--panel,#0B1220)}
.nt-panel{position:fixed;top:calc(var(--banner-h, 0px) + var(--top-bar-h, 60px) + 4px);right:10px;width:min(360px,calc(100vw - 16px));max-height:min(70vh,520px);display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);z-index:3200;overflow:hidden}
.nt-panel-h{display:flex;align-items:center;gap:8px;padding:10px 12px;border-bottom:1px solid var(--line)}
.nt-panel-h b{display:inline-flex;align-items:center;gap:6px;margin-right:auto}
.nt-x{border:0;background:none;font-size:22px;line-height:1;cursor:pointer;color:var(--muted);padding:4px 8px}
.nt-list{overflow-y:auto;padding:6px;display:grid;gap:4px}
.nt-item{display:grid;grid-template-columns:10px 1fr;gap:8px;align-items:start;text-align:left;border:0;background:transparent;padding:10px 8px;border-radius:8px;cursor:pointer;font:inherit;color:var(--text)}
.nt-item:hover{background:var(--panel2)}
.nt-item.is-unread{background:color-mix(in srgb,var(--accent,#1F4D3A) 10%,transparent)}
.nt-item.is-unread .nt-dot{background:#DC2626}
.nt-dot{width:8px;height:8px;border-radius:999px;margin-top:6px;background:transparent}
.nt-body{display:grid;gap:2px;min-width:0}
.nt-body b{font-size:13.5px}
.nt-when{margin-top:2px}
.nt-empty{padding:16px 10px;margin:0}
.msg-page{display:grid;gap:14px;max-width:720px;margin:0 auto;padding:var(--fr-card-inset-lg,var(--fr-card-inset,16px));min-width:0;box-sizing:border-box}
.msg-page .msg-compose,.msg-page .msg-row,.msg-page .card.form{box-sizing:border-box}
.msg-tabs{display:flex;flex-wrap:wrap;gap:6px}
.msg-search{margin:0}
.msg-row{border:1px solid var(--line);border-radius:10px;padding:10px 12px;display:grid;gap:4px;background:var(--panel);min-width:0}
.msg-meta{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap}
.msg-sub{font-weight:700}
.msg-preview{overflow-wrap:anywhere}
.msg-actions{display:flex;gap:6px;margin-top:4px}
.msg-compose{display:grid;gap:10px}
.msg-main{padding:8px!important;min-width:0;overflow-x:hidden}
@media (max-width:390px){
  .nt-panel{right:8px;left:8px;width:auto;top:calc(var(--banner-h, 0px) + var(--top-bar-h, 56px) + 4px)}
  .msg-page{padding:8px}
}

/* v1.20.0 Home: Add block + Print sit under the block list */
.ah-acts-foot{margin-top:12px;padding-top:4px;flex-wrap:wrap}

/* v1.20.0 AI guide */
.ai-list{margin:8px 0 0;padding-left:1.15em;display:grid;gap:8px;line-height:1.45}
.ai-list code{font-size:.92em;word-break:break-word}

/* v1.20.0 Home desktop grid resize + lock */
.ah-block-gear{flex:none;padding:6px 8px}
.ah-block-gear .ic{width:16px;height:16px}
.ah-resize{display:none}
.th-home-lock{display:inline-flex;align-items:center;gap:10px;margin-top:8px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--text);cursor:pointer;font:inherit}
.th-home-lock .th-lock-ic{display:grid;place-items:center;width:28px;height:28px;border-radius:8px;background:var(--bg);border:1px solid var(--line)}
.th-home-lock .th-lock-ic .ic{width:16px;height:16px}
.th-home-lock.is-locked .th-lock-ic{background:#FEF3C7;border-color:#F59E0B}
[data-theme=dark] .th-home-lock.is-locked .th-lock-ic{background:#422006;border-color:#F59E0B}
@media (min-width:1024px){
  .ah-home .ah-blocks{grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-rows:minmax(72px,auto);align-items:stretch}
  .ah-home .ah-block{grid-column:span var(--ah-cs,12);grid-row:span var(--ah-rs,1);min-height:0}
  .ah-home .ah-block.ah-kpi{display:flex;flex-direction:column;justify-content:center}
  .ah-home .ah-resize{display:block;position:absolute;right:2px;bottom:2px;width:18px;height:18px;padding:0;border:0;border-radius:4px 0 8px 0;background:linear-gradient(135deg,transparent 50%,var(--line) 50%);cursor:nwse-resize;z-index:3}
  .ah-home .ah-resize:focus-visible{outline:2px solid var(--accent,#2563EB);outline-offset:1px}
  .ah-home .ah-block.ah-resizing{outline:2px solid var(--accent,#2563EB);z-index:4}
  .ah-home.ah-locked .ah-resize{display:none!important}
  .ah-home.ah-locked .ah-drag{visibility:hidden}
  .ah-home.ah-locked .ah-block{cursor:default}
}
@media (max-width:1023px){
  .ah-home .ah-resize{display:none!important}
  .ah-home .ah-block{grid-column:auto!important;grid-row:auto!important}
}

/* v1.20.1 menu unread pills + message read */
.menu-nt-pill{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;margin-left:8px;padding:0 5px;border-radius:999px;background:#DC2626;color:#fff;font:700 10px/18px system-ui,sans-serif;vertical-align:middle}
.menu-nt-pill[hidden]{display:none!important}
.top-prof-menu [role=menuitem]{display:flex;align-items:center;gap:6px}
.top-prof-menu .menu-nt-pill{margin-left:auto}
.msg-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.msg-head b{margin-right:auto}
.msg-row.is-unread{border-left:3px solid #DC2626;padding-left:10px}
.msg-row .msg-body{white-space:pre-wrap;font:inherit;margin:8px 0 0}
.ah-block-gear .ic{width:16px;height:16px}


/* v1.20.3 shared Customer panel (job board + edit booking) */
.cu-panel{border:1px solid var(--line);border-radius:10px;padding:0;background:var(--panel2,var(--panel));margin:8px 0}
.cu-panel-sum{cursor:pointer;list-style:none;display:flex;align-items:center;gap:8px;padding:10px 12px;font-weight:700;font-size:13px}
.cu-panel-sum::-webkit-details-marker{display:none}
.cu-panel-lab{font-weight:700}
.cu-panel-name{font-weight:500;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cu-panel-chev{width:8px;height:8px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:rotate(45deg);transition:transform .15s;flex:none;margin-left:4px}
.cu-panel[open] .cu-panel-chev{transform:rotate(-135deg);margin-top:4px}
.cu-panel-body{padding:0 12px 12px;display:grid;gap:8px}
.cu-panel-grid{gap:8px}
.cu-panel-row{display:flex;justify-content:space-between;gap:10px;font-size:13px}
.cu-panel-open{margin-top:4px;justify-self:start}
.ap-sends{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center}
.ap-send-line{display:inline-flex;align-items:center;gap:4px;flex-wrap:wrap}
.ap-unsend{margin-left:4px}

/* ---------------- v1.21.0 Bookings-only tier (free): Today / Upcoming / Settings / tier picker ---------------- */
.bo-main{display:grid;gap:14px}
.bo-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:10px}
.bo-head h1{margin:0;font-size:22px;font-weight:800;letter-spacing:-.01em}
.bo-head .sub{color:var(--muted);font-size:13px}
.bo-acts{display:flex;gap:8px;flex-wrap:wrap}
.bo-acts .btn .ic{width:16px;height:16px;margin-right:6px;vertical-align:-3px}
.bo-card{padding:0!important;overflow:hidden}
.bo-card h2{margin:0;padding:12px 14px;font-size:15px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:8px}
.bo-row{display:grid;grid-template-columns:72px 1fr auto;gap:10px;align-items:center;padding:11px 14px;border-bottom:1px solid var(--line)}
.bo-row:last-child{border-bottom:0}
.bo-row.nochk{grid-template-columns:72px 1fr}
.bo-row.done{background:rgba(34,197,94,.07)}
.bo-t{font-weight:800;font-size:15px}
.bo-who{min-width:0}
.bo-who b{display:block;font-size:14px}
.bo-who .m{font-size:12.5px;color:var(--muted);line-height:1.35}
.bo-who .n{font-size:12px;color:var(--muted);font-style:italic;margin-top:2px;overflow-wrap:anywhere}
.bo-svc{display:inline-block;font-size:11.5px;font-weight:700;padding:1px 7px;border-radius:999px;background:var(--blue-soft);color:var(--blue2);margin-top:3px}
.bo-chk{display:flex;flex-direction:column;align-items:center;gap:2px;font-size:10.5px;color:var(--muted);cursor:pointer;min-width:56px}
.bo-chk input[type=checkbox]{-webkit-appearance:none;appearance:none;width:20px;height:20px;min-width:20px;min-height:20px;margin:0;padding:0;border:1.5px solid var(--line2,var(--line));border-radius:5px;background:var(--panel);cursor:pointer;display:grid;place-items:center;flex:none}
.bo-chk input[type=checkbox]:checked{background:#2563EB url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center/14px no-repeat;border-color:#2563EB}
.bo-chk input[type=checkbox]::after,.bo-chk input[type=checkbox]::before{display:none!important;content:none!important}
.bo-chk input[type=checkbox]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.bo-day{padding:8px 14px;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);background:var(--panel2);border-bottom:1px solid var(--line)}
.bo-none{padding:12px 14px;margin:0}
.bo-grid{display:grid;gap:14px}
@media (min-width:900px){.bo-grid{grid-template-columns:1.3fr 1fr;align-items:start}}
.bo-links{margin:0;padding-left:18px;display:grid;gap:6px}
.bo-tog{font-size:14px;font-weight:600}
.bo-tog input{width:20px;height:20px}
.top-thm{width:36px;height:36px;border-radius:999px;border:1px solid var(--line);background:var(--panel);color:var(--text);display:grid;place-items:center;cursor:pointer;flex:none;padding:0}
.top-thm svg{width:18px;height:18px}
.tp-cur{margin:4px 0 6px;font-size:14px}
.tp-list{border:0;margin:0;padding:0;display:grid;gap:8px}
.tp-list legend{padding:0;margin-bottom:6px}
.tp-opt{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:10px 12px;border:1px solid var(--line);border-radius:6px;cursor:pointer}
.tp-opt:has(input:checked){border-color:var(--blue2);background:var(--blue-soft)}
.tp-opt input{width:18px;height:18px;margin:0}
.tp-main{display:grid;gap:2px;min-width:0}
.tp-name{font-weight:700;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.tp-price{font-weight:800;white-space:nowrap}
.tp-card .bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.p-tiers.p-tiers-4{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:1100px){.p-tiers.p-tiers-4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.p-tiers.p-tiers-4{grid-template-columns:1fr}}
.pp-big .pp-free{display:block;font-size:13px;font-weight:600;color:var(--lx-muted,var(--muted));margin-top:4px;letter-spacing:0}

/* ---------------- v1.22.0 Subscription: side-by-side tier cards (stack on mobile) ---------------- */
.tp-grid{display:grid;grid-template-columns:1fr;gap:10px}
@media (min-width:900px){.tp-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
.tp-tier{display:flex;flex-direction:column;gap:6px;padding:12px;border:1px solid var(--line);border-radius:4px;background:var(--card,transparent)}
.tp-tier.cur{border-color:var(--ink,currentColor);border-width:2px}
.tp-th{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.tp-ic svg{width:18px;height:18px}
.tp-tier .tp-price{font-size:18px}
.tp-tier .tp-blurb{margin:0;flex:1}
.tp-tier .tp-btn{width:100%;justify-content:center;margin-top:4px}

/* ---------------- v1.23.0 ---------------- */
/* 6 · iPhone zoom fix: iOS zooms into any field under 16px. Pinch-zoom stays enabled (viewport has no max-scale);
   interactive-widget=overlays-content keeps the layout (sticky top bar etc.) put when the keyboard opens. */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
@media (hover:none) and (pointer:coarse){
  input:not([type=checkbox]):not([type=radio]):not([type=color]):not([type=range]):not([type=file]),select,textarea{font-size:16px!important}
}
/* 1 · multi-bike: one open block at a time */
.mb-sec .mb-done-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:8px 10px;border:1px solid var(--line);margin:0 0 8px}
.mb-sec .mb-done-row .lnk{margin-left:auto}
.mb-sec .mb-card.is-open{border:2px solid var(--blue2);padding:12px;display:grid;gap:8px;margin:0 0 8px}
.mb-sec .mb-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.mb-sec .mb-head .btn{margin-left:auto}
.mb-sec .mb-add{width:100%;justify-content:center}
.mb-sec .mb-add:disabled,.mb-sec .mb-add.is-wait{opacity:.45;border-style:dashed}
/* 2 · notification → job board highlight (~5s) */
.jcard.is-hl{outline:3px solid var(--blue2);outline-offset:2px;animation:hlPulse 1s ease-in-out 5}
@keyframes hlPulse{50%{outline-color:transparent}}
/* 3 · free tier: greyed settings + unlock */
.menu-sub.is-locked,.menu-main.is-locked,.bo-set-it.is-locked{opacity:.5;cursor:pointer;color:inherit}
.lock-chip{margin-left:auto;display:inline-flex;align-items:center;gap:4px;font-size:11px;border:1px solid var(--line);padding:1px 6px;white-space:nowrap}
.lock-chip svg{width:12px;height:12px}
.bo-set-list{display:grid;gap:0;border-top:1px solid var(--line)}
.bo-set-it{display:flex;align-items:center;gap:10px;padding:11px 4px;border-bottom:1px solid var(--line);color:inherit;text-decoration:none}
.bo-set-it svg{width:18px;height:18px}
.menu-sub2{padding-left:34px!important;font-size:.95em}
/* 9-14 · sub-pages */
.ah-back{font-weight:700;text-decoration:none}
.sub-h{margin:4px 0 10px}
.mode-parts .cm-only,.mode-parts .js-only,.mode-comms .pt-only,.mode-jobs .pt-only{display:none!important}
.mode-parts #jobset-form>:not(.pt-only):not(.pt-keep){display:none!important}
/* 4 · customer problem detail */
.pd-opts{display:grid;gap:8px}@media (min-width:700px){.pd-opts{grid-template-columns:repeat(3,1fr)}}
.pd-opt{display:grid;gap:2px;text-align:left;padding:10px 12px;border:1px solid var(--line);background:transparent;color:inherit;font:inherit;cursor:pointer}
.pd-opt.on{border:2px solid var(--blue2);padding:9px 11px}
/* 7 · Home lock top right */
.ahead.ahead-home{display:flex;align-items:center;gap:10px}
.ahead.ahead-home .th-home-lock{margin-left:auto}
/* 5 · bookings-only phone booking */

/* ---------------- v1.24.0 ---------------- */
/* 1 · softer neutral buttons (no white glare): non-primary buttons use --btn-* tokens; primary/selected gradients, pitch and the impersonation banner keep their own colours */
.btn:not(.primary):not(.ghost):not(.pick.on),.burger,.top-prof-btn,.zbtn:not(.on),.seg button:not(.on),.cd:not(.on):not(.off):not(.pad){background-color:var(--btn-bg);border-color:var(--btn-line);color:var(--btn-text)}
.btn:not(.primary):not(.ghost):not(.pick.on):not(:disabled):hover,.burger:hover,.top-prof-btn:hover,.zbtn:not(.on):hover,.seg button:not(.on):hover,.cd:not(.on):not(.off):not(.pad):not(:disabled):hover{background-color:var(--btn-hover)}
.btn.nextav{background:linear-gradient(var(--btn-bg),var(--btn-bg)) padding-box,linear-gradient(90deg,var(--lx-brass),var(--lx-violet)) border-box;border-color:transparent}
.pitch .btn:not(.primary){background:var(--lx-card-t);border-color:var(--line2);color:inherit}
.p-sec .btn:not(.primary){background:rgba(255,255,255,.08);color:#fff;border-color:rgba(255,255,255,.22)}
.imp-banner .btn{background:#fff;color:#7c2d12;border-color:#fff}
.st-booked{--st:var(--jc-st-booked,#DB2777)}[data-theme=dark] .st-booked{--st:var(--jc-st-booked,#F472B6)}
/* 12 · service day rules */
#sr-list{display:grid;gap:8px}
.sr-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:8px;border:1px solid var(--line);border-radius:10px;background:var(--panel2)}
.sr-row .sr-svc{flex:1 1 200px;min-width:0}
.sr-days{display:flex;flex-wrap:wrap;gap:4px}
/* 9/10 · service + problem buttons: even symmetrical grid (2 cols mobile, 3 wider), equal size, centred text, odd last centred;
   pressing only changes colour/tick: the icon sits in a fixed slot, border width/padding/font-weight never change */
.svc-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:1fr;gap:8px!important}
@media (min-width:600px){.svc-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
.svc-grid > .btn.pick{position:relative;width:100%;min-width:0;height:auto;min-height:48px;padding:6px 28px;justify-content:center;text-align:center;white-space:normal;line-height:1.2;font-weight:600;border-width:1px;box-sizing:border-box;transform:none!important}
.svc-grid > .btn.pick:active:not(:disabled){transform:none!important}
.svc-grid > .btn.pick .pk-ic{position:absolute;left:8px;top:50%;margin-top:-7px;width:14px;height:14px;display:grid;place-items:center}
.svc-grid > .btn.pick .pk-rad{visibility:hidden}.svc-grid > .btn.pick.on .pk-rad{visibility:visible}
.svc-grid > .btn.pick .pk-t{display:block;overflow-wrap:anywhere}
@media (max-width:599px){.svc-grid > .btn.pick:last-child:nth-child(odd){grid-column:1 / -1;justify-self:center;width:calc(50% - 4px)}}
@media (min-width:600px){.svc-grid > .btn.pick:last-child:nth-child(3n+1){grid-column:2}}
/* 16 · public booking on mobile: step cards keep one near-full-screen height (no resizing on Next); content scrolls inside, Back/Next pinned at the bottom */
@media (max-width:720px){
  #bikecards .bcard:not(.sum),.mb-sec .mb-card.is-open{display:flex;flex-direction:column;gap:10px;height:calc(100svh - 132px);min-height:420px;max-height:760px;overflow-y:auto;overscroll-behavior:contain;box-sizing:border-box}
  #bikecards .bcard:not(.sum) > *,.mb-sec .mb-card.is-open > *{flex:none}
  #bikecards .bcard:not(.sum) > .bc-nav,.mb-sec .mb-card.is-open > .bar{position:sticky;bottom:0;margin-top:auto;z-index:2;padding:10px 0 2px;background:linear-gradient(to bottom,transparent,var(--panel) 30%)}
  .mb-sec .mb-card.is-open > .bar{justify-content:space-between;background:linear-gradient(to bottom,transparent,var(--panel2) 30%)}
  .mb-sec .mb-card.is-open > .bar .btn{flex:1}
}
/* 17 · extra bikes: same problem stack as bike 1 */
.mbx-anat{display:grid;gap:8px}
.mbx-stage{max-width:520px;width:100%;margin:0 auto}
.mbx-stage svg{width:100%;height:auto;display:block}
.mbx-zlist{display:flex;flex-wrap:wrap;gap:6px}
.svc-grid .pk-q{display:block;font-size:11.5px;font-weight:500;opacity:.8;margin-top:2px}
/* 15 · Analytics: clickable stat cards drive one large chart */
.an-kb{font:inherit;color:inherit;text-align:left;cursor:pointer;display:grid;gap:2px;align-content:start;transition:border-color .15s,box-shadow .15s,transform .15s}
.an-kb:hover{border-color:var(--lx-indigo,#4338ca)}
.an-kb.on{border-color:transparent;box-shadow:0 0 0 2px var(--lx-indigo,#4338ca),0 8px 22px -12px rgba(67,56,202,.55);background:linear-gradient(var(--panel),var(--panel)) padding-box}
.an-kb:focus-visible{outline:2px solid var(--lx-indigo,#4338ca);outline-offset:2px}
.an-main{margin:12px 0}
.an-main .an-svg{width:100%;height:auto;min-height:220px}
@media (min-width:900px){.an-main .an-svg{min-height:300px}}
/* 6/7 · Customers: search at the very top; results repaint without moving the page */
.cu-search-top{margin:0 0 12px}
#cust-list .cu-search-top .cu-search{margin:0 0 8px}
.cu-results{overflow-anchor:none}
.cu-page{overflow-anchor:none}
/* 4 · board status tabs (All first, with counts) */
.jb-tabs{display:flex;gap:6px;overflow-x:auto;padding:2px 0 10px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.jb-tabs::-webkit-scrollbar{display:none}
.jb-tab{flex:none;display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;border:1px solid var(--btn-line);background:var(--btn-bg);color:var(--btn-text);font:inherit;font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap}
.jb-tab:hover{background:var(--btn-hover)}
.jb-tab[class*="st-"]::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--st,#888)}
.jb-tab .jb-tab-n{font-weight:700;opacity:.75}
.jb-tab.on{background:linear-gradient(135deg,var(--lx-indigo,#4338ca),var(--lx-violet,#7c3aed));border-color:transparent;color:#fff}
.jb-tab.on .jb-tab-n{opacity:1}
/* 18 · Home board block: taller by default */
.ah-block-board .jb-wrap{min-height:min(78vh,1000px)}
.ah-block-board .jb{min-height:62vh}
@media (max-width:720px){.ah-block-board .jb-col{min-height:68vh!important}.ah-block-board .jb-list{max-height:66vh}}
.svc-grid > .btn.pick.is-main{opacity:.55;cursor:default}
/* v1.25.0 contact bar, delete failsafe, trial chip */
.ct-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.ct-bar .ct-why{flex-basis:100%;margin:2px 0 0}
.btn.ct-off{opacity:.45;cursor:not-allowed;filter:saturate(.2)}
.ebk-foot .ebk-foot-sp{flex:1}
.ebk-contact{margin:0}
.trial-chip{display:inline-flex;align-items:center;gap:6px;text-decoration:none;font-weight:600}
.trial-chip svg{width:14px;height:14px}
.trial-home{display:flex;margin:0 0 10px}
.menu-trial{margin:2px 12px 8px;align-self:flex-start}
.trial-pick{margin:0 0 14px;border-left:3px solid var(--accent,#6366f1)}
#ebk-del.btn,#del-go.btn{background:#dc2626;border-color:#dc2626;color:#fff;background-image:none}
#ebk-del.btn:hover,#del-go.btn:hover:not(:disabled){background:#b91c1c;border-color:#b91c1c}
#del-go.btn:disabled{opacity:.45}
html[data-theme="dark"] #ebk-del.btn,html[data-theme="dark"] #del-go.btn{background:#ef4444;border-color:#ef4444;color:#fff}
/* v1.27.0: inputs never below 16px (no iOS zoom); job tag + current location chips; Settings → Jobs tags & locations */
input:not([type=checkbox]):not([type=radio]):not([type=color]):not([type=range]),select,textarea{font-size:16px!important}
.jcard.jc-compact .jc-st-full,.jcard.jc-compact .jc-as-card{height:30px!important;line-height:normal!important}
.jc-tl{display:flex;flex-wrap:wrap;gap:6px;min-width:0}
.chip.jc-loc{display:inline-flex;align-items:center;gap:5px;background:color-mix(in srgb,var(--loc) 15%,transparent);color:var(--text);border:1px solid color-mix(in srgb,var(--loc) 50%,transparent);border-radius:999px}
.chip.jc-loc:before{content:"";width:8px;height:8px;border-radius:99px;background:var(--loc);flex:none}
.chip.jc-tag{background:var(--lx-sel-soft);color:var(--lx-sel);font-weight:700;border-radius:999px}
.js-tagloc{display:grid;gap:10px;border-radius:10px}
.js-locs{display:grid;gap:8px}
.js-loc{display:grid;grid-template-columns:48px 1fr auto;gap:8px;align-items:center}
.js-loc-c{width:48px;height:40px;padding:3px;border-radius:10px;border:1px solid var(--line);background:var(--panel);cursor:pointer}
/* v1.28.0 compare page: preselected tier + inline email sign-up */
.p-tier{cursor:pointer}.p-tier-sel{outline:2px solid var(--lx-g1,#6366f1);outline-offset:2px}
.su-form{max-width:640px;margin:0 auto 18px;display:grid;gap:8px}
.su-row{display:flex;gap:8px;flex-wrap:wrap}.su-row input{flex:1 1 220px;min-width:0;font-size:16px;min-height:44px}
.toast[role=link]{text-decoration:underline}
.jm-print{display:inline-flex;gap:6px;align-items:center}.jm-print select{font-size:16px;min-height:36px;border-radius:10px}

/* v1.38.0 B: job board moves, calendar width, new job */
.cal-wrap{max-width:min(360px,100%);margin:0 auto;width:100%}
.ah-cal .cal-wrap,.ah-block-cal .cal-head,.ah-block-cal .acal{max-width:min(360px,100%);margin-left:auto;margin-right:auto}
.jb-cal-slot{flex:1 1 100%;min-width:0;max-width:min(360px,100%)}
.jb-toolbar .jb-cal-slot .cal-wrap{margin:0}
.jb-cal .acd{font-size:16px;min-width:2.25rem;min-height:2.25rem}
.cal{max-width:min(360px,100%)}
.cd .cal-n,.acd .cal-n{position:absolute;top:auto;bottom:3px;left:50%;right:auto;transform:translateX(-50%);width:5px;height:5px;min-width:5px;padding:0;border-radius:50%;font-size:0;line-height:0;background:color-mix(in srgb,var(--accent,#6366f1) 55%,var(--muted));pointer-events:none;box-shadow:none}
.cd,.acd{position:relative}
.acd.has-n b{padding-bottom:2px}
.jcard.is-saving{pointer-events:none;opacity:.72}
.jcard.is-saving::after{content:"";position:absolute;inset:0;display:grid;place-items:center;background:color-mix(in srgb,var(--panel) 55%,transparent);border-radius:inherit;pointer-events:none}
.jcard.is-saving::before{content:"";position:absolute;left:50%;top:50%;width:22px;height:22px;margin:-11px 0 0 -11px;border-radius:50%;border:2px solid color-mix(in srgb,var(--accent) 22%,transparent);border-top-color:var(--accent);animation:ld-rot .75s linear infinite;z-index:2}
.jcard.jc-compact{position:relative}
.jb-board-locked .jb,.ah-home.ah-locked .jb-wrap .jb{touch-action:pan-x pan-y;transform:none!important;zoom:1}
body.jb-dragging .jb-board-locked .jb,body.jb-dragging .ah-home.ah-locked .jb{touch-action:none}
.ebk.ebk-add .ebk-grid.ebk-add-grid{display:grid;gap:10px}
@media (min-width:720px){.ebk.ebk-add .ebk-grid.ebk-add-grid{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start}.ebk.ebk-add .ebk-postdate{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;align-items:start}}
.ebk.ebk-add .ebk-svc-grid .svc-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}
@media (max-width:599px){.ebk.ebk-add .ebk-svc-grid .svc-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
.ebk.ebk-add .ebk-svc-grid .svc-grid > .btn.pick{padding:4px 10px!important;min-height:44px}
.ebk-quote-t{width:100%;border-collapse:collapse;font-size:14px}
.ebk-quote-t th,.ebk-quote-t td{padding:6px 4px;border-bottom:1px solid var(--line);vertical-align:middle}
.ebk-quote-t input[type=number]{width:100%;min-width:0;font-size:16px}
.ebk-comm{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center}
.ebk-brand-ac{position:relative}
.ebk-brand-ac .sugg{position:absolute;left:0;right:0;top:100%;z-index:5;margin-top:2px}

/* v1.38 multi-select checkboxes (lists): blue tick; on/off settings use input.sw iOS toggles above */
:root,[data-theme=dark]{--chk-blue:#2563EB;--chk-tick:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E")}
input[type=checkbox]:not(.ack):not(.sw){-webkit-appearance:none;appearance:none;width:20px;height:20px;min-width:20px;min-height:20px;margin:0;flex:none;border:1.5px solid var(--line2,var(--line));border-radius:5px;background:var(--panel);cursor:pointer;vertical-align:middle;position:relative}
input[type=checkbox]:not(.ack):not(.sw):checked{background:var(--chk-blue) var(--chk-tick) center/14px no-repeat;border-color:var(--chk-blue)}
input[type=checkbox]:not(.ack):not(.sw):focus-visible{outline:2px solid var(--chk-blue);outline-offset:2px}
[data-theme=dark] input[type=checkbox]:not(.ack):not(.sw){background:var(--panel);border-color:var(--line2,var(--line))}
[data-theme=dark] input[type=checkbox]:not(.ack):not(.sw):checked{background-color:var(--chk-blue)}
.tog input[type=checkbox]:not(.ack),.dchk input[type=checkbox],.apr-chk input[type=checkbox],.pi-use input[type=checkbox],.svl-on input[type=checkbox],.bo-chk input[type=checkbox]{flex:none}

/* v1.34.4 B&W defaults (Sam 11 Nov): every accent token follows --accent (black in light, white in dark) so a shop's own theme colour still wins; text and borders use the opposite colour. */
:root,[data-theme=dark]{--lx-g1:var(--accent);--lx-g2:var(--accent);--lx-sel:var(--accent);--lx-indigo:var(--accent);--lx-violet:var(--accent);--lx-sel-soft:var(--accent-soft);
  --lx-ring:color-mix(in srgb,var(--accent) 30%,transparent);--lx-glow:color-mix(in srgb,var(--accent) 14%,transparent);--lx-a1:color-mix(in srgb,var(--accent) 14%,transparent);--lx-edge:color-mix(in srgb,var(--accent) 14%,transparent)}
.btn.primary,.pitch .btn.primary,[data-theme=dark] .pitch .btn.primary,.ckbar .btn.primary,.ck-ft .btn.primary{background:var(--accent);color:var(--accent-ink);border:1px solid var(--accent-ink);box-shadow:none}
.btn.primary:hover:not(:disabled){background:var(--accent-hover);color:var(--accent-ink);border-color:var(--accent-ink);box-shadow:none}
.zbtn.on,.ichip.on,.schip.on,.slot.on,.pbtn.guest,.badge,.cd.on,.seg button.on,.anat-views button.on,.steps-next li.on,.shop-logo.mono,.unsub-ic,.jb-tab.on,.done .ok .tick,.sg-row.on .sg-tick,.sg-row.on .sg-state{background:var(--accent);color:var(--accent-ink);border-color:var(--accent-ink);box-shadow:none}
.ackrow input.ack:checked+.ack-box{background:var(--chk-blue,#2563EB);border-color:var(--chk-blue,#2563EB);box-shadow:none}
.an-kb.on{box-shadow:0 0 0 2px var(--accent)}

/* ===== v1.39.1 single-border search chrome (wrapper owns border; input is chromeless) ===== */
.search-wrap,
.cu-search.search-wrap,
.msg-search.search-wrap,
.ds-hist-q.search-wrap,
.svl-q.search-wrap,
body.master .search-wrap,
.ac-wrap > .search-wrap{
  position:relative;display:flex;align-items:center;gap:6px;flex:1;min-width:0;width:100%;
  height:44px;min-height:44px;box-sizing:border-box;padding:0 10px;
  border:1px solid var(--line2);border-radius:5px;background:var(--input);
  transition:border-color .15s,box-shadow .15s}
.search-wrap:focus-within,
.cu-search.search-wrap:focus-within,
.msg-search.search-wrap:focus-within,
.ds-hist-q.search-wrap:focus-within,
.svl-q.search-wrap:focus-within,
body.master .search-wrap:focus-within,
.ac-wrap > .search-wrap:focus-within{
  border-color:var(--accent,var(--line2));
  box-shadow:0 0 0 3px color-mix(in srgb,var(--accent,var(--text)) 25%,transparent)}
.search-wrap > .pin,
.cu-search.search-wrap > .pin,
.msg-search.search-wrap > .pin{flex:none;display:grid;place-items:center;width:28px;min-width:28px;color:var(--muted);font-size:18px;line-height:1;user-select:none}
.ds-hist-filters .search-wrap{margin-bottom:8px}
.svl-tools .search-wrap.svl-q{min-width:0}
html body :is(.topsearch,.topsearch .loc,.topsearch .qbox,.ss-box,.search-wrap,.svl-in,.ac-wrap .search-wrap,.msg-search.search-wrap) input[type=search],
html body :is(.topsearch,.topsearch .loc,.topsearch .qbox,.ss-box,.search-wrap,.svl-in,.ac-wrap .search-wrap,.msg-search.search-wrap) input[type=search]:focus,
html body :is(.topsearch,.topsearch .loc,.topsearch .qbox,.ss-box,.search-wrap,.svl-in,.ac-wrap .search-wrap,.msg-search.search-wrap) input[type=search]:focus-visible,
html.bw body :is(.topsearch,.topsearch .loc,.topsearch .qbox,.ss-box,.search-wrap,.svl-in,.ac-wrap .search-wrap,.msg-search.search-wrap) input[type=search],
html.bw body :is(.topsearch,.topsearch .loc,.topsearch .qbox,.ss-box,.search-wrap,.svl-in,.ac-wrap .search-wrap,.msg-search.search-wrap) input[type=search]:focus,
html.bw body :is(.topsearch,.topsearch .loc,.topsearch .qbox,.ss-box,.search-wrap,.svl-in,.ac-wrap .search-wrap,.msg-search.search-wrap) input[type=search]:focus-visible,
.mk body :is(.topsearch,.ss-box,.search-wrap) input[type=search],
.mk body :is(.topsearch,.ss-box,.search-wrap) input[type=search]:focus{
  -webkit-appearance:none!important;appearance:none!important;
  border:0!important;border-width:0!important;border-color:transparent!important;
  outline:0!important;outline-width:0!important;outline-style:none!important;
  box-shadow:none!important;background:transparent!important;background-color:transparent!important;
  border-radius:0!important;flex:1 1 auto!important;min-width:0!important;width:100%!important;max-width:100%!important;
  height:auto!important;min-height:0!important;align-self:stretch!important;
  margin:0!important;padding:0!important;font-size:16px!important;line-height:1.25!important;color:var(--text)}
.admin-search.topsearch .qbox{align-items:center;width:100%;padding:0 8px 0 0;gap:0}
.admin-search input{padding-left:0!important;padding-right:4px!important}
.admin-search.topsearch:focus-within{box-shadow:0 0 0 3px color-mix(in srgb,var(--accent,var(--text)) 25%,transparent)!important;border-color:var(--accent,var(--line2))!important}

/* v1.40.11: job board calendar hidden until the date field is tapped */
.jb-cal-slot{position:relative}
.jb-date-btn{display:inline-flex;align-items:center;justify-content:space-between;gap:8px;min-width:150px;font:inherit;font-size:16px;padding:8px 12px;border:1px solid var(--line2,#ccc);border-radius:5px;background:var(--panel,#fff);color:inherit;cursor:pointer}
.jb-date-ic{opacity:.6;font-size:12px}
.jb-cal-pop{position:absolute;top:100%;left:0;z-index:40;margin-top:6px;width:min(340px,calc(100vw - 32px));background:var(--panel,#fff);border:1px solid var(--line2,#ccc);border-radius:8px;box-shadow:0 10px 30px rgba(0,0,0,.18);padding:8px}
.jb-cal-pop[hidden]{display:none}
