/* catalog.css — Extracted from index.html monolith v2 */

/* ── Reset ── */
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
img{display:block;max-width:100%}
button{font-family:inherit;cursor:pointer;border:none;background:none}
input,select{font-family:inherit}
a{text-decoration:none;color:inherit}

/* ── Variables ── */
:root{
  --bg:#F5F1EB;
  --bg-blur:rgba(245,241,235,0.92);
  --surface:#ffffff;
  --surface-2:#faf8f5;
  --text:#1a1a1a;
  --muted:#6f6a63;
  --line:#e5ddd3;
  --green:#1B4332;
  --green-mid:#2D6A4F;
  --green-light:#52B788;
  --green-pale:#D8F3DC;
  --green-soft:rgba(27,67,50,0.07);
  --gold:#B07D2E;
  --gold-soft:rgba(176,125,46,0.09);
  --shadow:0 1px 6px rgba(37,31,24,0.06);
  --shadow-lg:0 8px 32px rgba(37,31,24,0.12);
  --radius:14px;
}

/* ── Typography ── */
html{height:100%}
body{
  font-family:'DM Sans',system-ui,-apple-system,sans-serif;
  background:var(--bg);
  color:var(--text);
  height:100dvh;
  overflow:hidden;
  -webkit-tap-highlight-color:transparent;
}
.app-shell{display:flex;flex-direction:column;height:100dvh;overflow:hidden}

/* ── First-load trust screen ── */
.app-loader{
  position:fixed;
  inset:0;
  z-index:5000;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:32px 26px;
  background:linear-gradient(180deg,#F8F5EF 0%,#F1ECE3 100%);
  opacity:1;
  visibility:visible;
  transition:opacity .34s ease,visibility .34s ease;
}
.app-loader::before{
  content:'';
  position:absolute;
  inset:0;
  background:radial-gradient(circle at 50% 28%,rgba(82,183,136,.11),transparent 34%);
}
.app-loader.hidden{opacity:0;visibility:hidden;pointer-events:none}
.app-loader-card{
  position:relative;
  width:100%;
  max-width:320px;
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
}
.app-loader-logo-wrap{
  position:relative;
  width:76px;
  height:76px;
  border-radius:22px;
  background:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  box-shadow:0 16px 38px rgba(27,67,50,.13);
  margin-bottom:34px;
}
.app-loader-logo-wrap::before{
  content:'';
  position:absolute;
  inset:-13px;
  border-radius:34px;
  border:2px solid rgba(27,67,50,.10);
  border-top-color:var(--green-mid);
  border-right-color:rgba(82,183,136,.55);
  animation:loaderRing 1.7s linear infinite;
}
.app-loader-logo-wrap::after{
  content:'';
  position:absolute;
  inset:-22px;
  border-radius:42px;
  border:1px solid rgba(27,67,50,.07);
}
.app-loader-logo{width:70px;height:70px;object-fit:contain}
.app-loader-region-graphic{display:none}
.app-loader-kicker{
  margin-bottom:13px;
  font-size:11px;
  font-weight:800;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--green-mid);
}
.app-loader h1{
  margin:0 0 14px;
  font-family:'DM Serif Display',serif;
  font-size:31px;
  line-height:1.08;
  font-weight:400;
  letter-spacing:0;
  color:var(--green);
}
.app-loader p{
  max-width:282px;
  margin:0;
  font-size:15px;
  line-height:1.55;
  color:var(--muted);
}
.loader-regional{display:none}
html[data-loader-market="uae"] .loader-india,
html[data-loader-market="singapore"] .loader-india{display:none}
html[data-loader-market="uae"] .loader-uae,
html[data-loader-market="singapore"] .loader-singapore{display:block}
html[data-loader-market="uae"] .app-loader{
  background:linear-gradient(180deg,#FBF4E4 0%,#EFE2C6 100%);
}
html[data-loader-market="singapore"] .app-loader{
  background:linear-gradient(180deg,#EFF7F3 0%,#DFECE8 100%);
}
html[data-loader-market="uae"] .app-loader::before{
  background:radial-gradient(circle at 50% 28%,rgba(212,163,73,.16),transparent 34%);
}
html[data-loader-market="singapore"] .app-loader::before{
  background:radial-gradient(circle at 50% 28%,rgba(45,106,79,.13),transparent 34%);
}
html[data-loader-market="uae"] .app-loader-logo,
html[data-loader-market="singapore"] .app-loader-logo{display:none}
html[data-loader-market="uae"] .app-loader-region-graphic.loader-uae,
html[data-loader-market="singapore"] .app-loader-region-graphic.loader-singapore{
  display:block;
  position:relative;
  width:76px;
  height:76px;
  border-radius:22px;
  overflow:hidden;
}
html[data-loader-market="uae"] .app-loader-region-graphic{
  background:linear-gradient(180deg,#F7E8BF 0%,#fff8e7 62%,#D4A349 63%,#B07D2E 100%);
}
html[data-loader-market="singapore"] .app-loader-region-graphic{
  background:linear-gradient(180deg,#DFF2EC 0%,#F8FFFC 62%,#2D6A4F 63%,#163D31 100%);
}
html[data-loader-market="uae"] .app-loader-logo-wrap::before{
  border-top-color:#D4A349;
  border-right-color:rgba(176,125,46,.50);
}
html[data-loader-market="singapore"] .app-loader-logo-wrap::before{
  border-top-color:#2D6A4F;
  border-right-color:rgba(212,163,73,.50);
}
.loader-sun{
  position:absolute;
  width:18px;
  height:18px;
  border-radius:50%;
  background:#D4A349;
  right:14px;
  top:14px;
}
.loader-dune{
  position:absolute;
  left:-8px;
  right:-8px;
  bottom:19px;
  height:30px;
  background:#E7C77C;
  border-radius:50% 50% 0 0;
}
.loader-tower{
  position:absolute;
  bottom:21px;
  background:#163D31;
  border-radius:3px 3px 0 0;
}
.loader-tower.one{left:19px;width:8px;height:29px}
.loader-tower.two{left:32px;width:9px;height:39px}
.loader-tower.three{left:47px;width:8px;height:24px}
.loader-garden{
  position:absolute;
  bottom:19px;
  width:18px;
  height:32px;
  border:3px solid #2D6A4F;
  border-bottom:0;
  border-radius:18px 18px 0 0;
}
.loader-garden.one{left:15px}
.loader-garden.two{left:29px;height:40px}
.loader-garden.three{left:43px}
.loader-bridge{
  position:absolute;
  left:15px;
  right:15px;
  bottom:36px;
  height:5px;
  background:#D4A349;
  border-radius:5px;
}
.app-loader-dots{
  display:flex;
  gap:8px;
  align-items:center;
  justify-content:center;
  margin-top:28px;
}
.app-loader-dots span{
  width:8px;
  height:8px;
  border-radius:50%;
  background:var(--green-light);
  opacity:.35;
  animation:loaderDot 1.15s ease-in-out infinite;
}
.app-loader-dots span:nth-child(2){animation-delay:.16s}
.app-loader-dots span:nth-child(3){animation-delay:.32s}
.app-loader-status{
  margin-top:13px;
  font-size:12px;
  font-weight:700;
  color:var(--green-mid);
}
.app-loader-footer{
  position:absolute;
  left:0;
  right:0;
  bottom:26px;
  text-align:center;
  font-size:11px;
  color:#9A9287;
}
@keyframes loaderRing{to{transform:rotate(360deg)}}
@keyframes loaderDot{0%,100%{opacity:.28;transform:translateY(0)}50%{opacity:.9;transform:translateY(-2px)}}

/* ── Header ── */
.header{
  flex-shrink:0;
  background:var(--green);
  border-bottom:1px solid rgba(0,0,0,0.1);
  padding:8px 16px;
  z-index:100;
}
.header-inner{
  max-width:none;margin:0;
  display:flex;align-items:center;gap:12px;
}
.header-brand{
  display:flex;align-items:center;gap:10px;flex-shrink:0;
}
.header-logo{
  width:36px;height:36px;border-radius:10px;
  background:#fff;color:var(--green);
  display:flex;align-items:center;justify-content:center;
  font-weight:700;font-size:11px;letter-spacing:0.5px;
}
.header-logo-link{display:block;text-decoration:none;color:inherit;cursor:pointer}
.header-logo{background:#fff!important}
.header-logo img{width:37px;height:37px;display:block;object-fit:contain}
.header-title{font-family:'DM Serif Display',serif;font-size:17px;color:#fff;line-height:1.15}
.header-sub{font-size:11px;color:rgba(255,255,255,0.6);margin-top:1px}
html[data-market="uae"] .header{box-shadow:inset 0 -3px 0 var(--gold)}
html[data-market="uae"] .header-sub{color:rgba(247,232,191,0.92)}
html[data-market="uae"] .status-pill .dot{background:var(--gold)}
.header-right{margin-left:auto;display:flex;align-items:center;gap:8px}
.status-pill{
  font-size:11px;color:rgba(255,255,255,0.75);
  background:rgba(255,255,255,0.12);border:1px solid rgba(255,255,255,0.2);
  padding:5px 12px;border-radius:20px;white-space:nowrap;
}
.status-pill .dot{width:6px;height:6px;border-radius:50%;background:#86efac;display:inline-block;margin-right:5px}

/* ── Main layout ── */
.layout{flex:1;display:flex;min-height:0;overflow:hidden}

/* ── Filter Sidebar (desktop right panel) ── */
.filter-sidebar{
  width:clamp(296px,22vw,320px);flex-shrink:0;
  background:var(--surface);
  border-left:1px solid var(--line);
  overflow-y:auto;overflow-x:hidden;
  display:flex;flex-direction:column;
  padding:20px 16px;
  gap:10px;
}
.filter-sidebar::-webkit-scrollbar{width:4px}
.filter-sidebar::-webkit-scrollbar-track{background:transparent}
.filter-sidebar::-webkit-scrollbar-thumb{background:#ddd;border-radius:2px}

/* Search in sidebar */
.search-box{
  display:flex;align-items:center;gap:8px;
  background:var(--bg);border:1.5px solid var(--line);
  border-radius:12px;padding:0 12px;
  transition:border-color 0.15s,box-shadow 0.15s;
}
.search-box:focus-within{border-color:var(--green);box-shadow:0 0 0 3px rgba(27,67,50,0.06)}
.search-box svg{width:16px;height:16px;color:#aaa;flex-shrink:0}
.search-input{flex:1;border:none;outline:none;font-size:14px;padding:10px 0;background:transparent;color:var(--text)}
.search-input[type="search"]{-webkit-appearance:none;appearance:none}
.search-input::-webkit-search-decoration,
.search-input::-webkit-search-cancel-button,
.search-input::-webkit-search-results-button,
.search-input::-webkit-search-results-decoration{display:none}
.search-input::placeholder{color:#bbb}
.search-clear{font-size:18px;color:#aaa;padding:4px;display:none}

/* ── Custom category dropdown ── */
.cust-sel{position:relative}
.cust-sel-btn{
  width:100%;display:flex;align-items:center;justify-content:space-between;
  padding:9px 12px;border:1.5px solid var(--line);border-radius:10px;
  background:var(--bg);font-size:13px;color:var(--text);
  transition:border-color 0.15s;text-align:left;
}
.cust-sel-btn:hover,.cust-sel.open .cust-sel-btn{border-color:var(--green)}
.cust-sel-btn svg{flex-shrink:0;color:var(--muted);transition:transform 0.2s}
.cust-sel.open .cust-sel-btn svg{transform:rotate(180deg)}
.cust-sel-list{
  display:none;position:absolute;top:calc(100% + 4px);left:0;right:0;
  background:var(--surface);border:1.5px solid var(--line);border-radius:10px;
  box-shadow:0 6px 24px rgba(0,0,0,0.1);z-index:50;max-height:320px;overflow-y:auto;
}
.cust-sel.open .cust-sel-list{display:block}
.cust-sel-list::-webkit-scrollbar{width:4px}
.cust-sel-list::-webkit-scrollbar-thumb{background:#ddd;border-radius:2px}
.cat-opt{
  display:block;width:100%;text-align:left;padding:9px 14px;
  font-size:13px;color:var(--muted);background:none;
  border-bottom:1px solid rgba(0,0,0,0.04);transition:background 0.1s;
}
.cat-opt:last-child{border-bottom:none}
.cat-opt:hover{background:var(--surface-2);color:var(--text)}
.cat-opt.active{color:var(--green);font-weight:700;background:var(--green-soft)}
.cat-opt-group{
  display:block;padding:6px 14px 3px;font-size:10px;font-weight:800;
  text-transform:uppercase;letter-spacing:0.8px;color:var(--muted);
  background:var(--bg);border-bottom:1px solid var(--line);
}
.cat-opt.indent{padding-left:22px}

/* ── Sort buttons ── */
.sort-btns{display:flex;gap:4px}
.sort-btn{
  flex:1;padding:8px 0;border-radius:8px;font-size:12px;font-weight:600;
  border:1.5px solid var(--line);background:var(--surface);color:var(--muted);
  transition:all 0.15s;
}
.sort-btn.active{background:var(--green);color:#fff;border-color:var(--green)}

/* Compact segmented control for price/latest sort */
.sort-seg{display:inline-flex;border:1.5px solid var(--line);border-radius:10px;overflow:hidden;background:var(--surface);min-width:0}
.sort-seg .sort-btn{flex:1 1 0;min-width:0;padding:6px 12px;border:none;border-radius:0;font-size:12px;font-weight:500;background:transparent;color:var(--muted)}
.sort-seg .sort-btn:first-child{border-right:1.5px solid var(--line)}
.sort-seg .sort-btn.active{background:var(--green);color:#fff}
.sort-divider{display:none}
.sort-latest-btn{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  min-width:0;
  padding:8px 14px 8px 30px;
  border:1.5px solid #B7CFC3;
  border-radius:11px;
  background:var(--surface);
  color:var(--green);
  font-family:inherit;
  font-size:12px;
  font-weight:800;
  letter-spacing:.04em;
  line-height:1.2;
  text-transform:uppercase;
  cursor:pointer;
  transition:all .15s;
  white-space:nowrap;
}
.sort-latest-btn::before{
  content:'';
  position:absolute;
  left:12px;top:50%;
  width:8px;height:8px;
  border-radius:50%;
  background:#B7CFC3;
  transform:translateY(-50%);
}
.sort-latest-btn.active{
  background:var(--green);
  border-color:var(--green);
  color:#fff;
  box-shadow:0 5px 14px rgba(27,67,50,.28);
}
.sort-latest-btn.active::before{
  content:'✓';
  width:16px;height:16px;
  display:flex;align-items:center;justify-content:center;
  background:#fff;
  color:var(--green);
  font-size:11px;
  line-height:1;
}
.sort-latest-btn:hover{background:var(--green-soft);border-color:var(--green);color:var(--green)}
.sort-latest-btn.active:hover{background:var(--green);color:#fff}

/* Price and latest controls use two rows so narrow sidebars never clip. */
.filter-group.sort-inline{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  align-items:center;
  gap:10px;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  padding:12px 0;
  margin-bottom:8px;
  overflow:visible;
}
.filter-group.sort-inline > label{margin-bottom:0}
.filter-group.sort-inline .sort-latest-btn{grid-column:1 / -1}

/* ── Quick filter chips — single no-wrap row ── */
.filter-chips{
  display:flex;flex-wrap:wrap;gap:6px;
  padding-top:6px;border-top:1px solid var(--line);margin-bottom:4px
}
.fc-chip{
  flex:1 1 0;display:inline-flex;align-items:center;justify-content:center;gap:5px;
  padding:7px 10px;border-radius:999px;
  border:1px solid var(--line);background:var(--surface);color:var(--text);
  font-size:11.5px;font-weight:600;font-family:inherit;cursor:pointer;
  letter-spacing:-0.005em;line-height:1;white-space:nowrap;
  transition:background 0.15s,color 0.15s,border-color 0.15s,transform 0.08s
}
.fc-chip svg{width:13px;height:13px;flex-shrink:0;color:var(--green)}
.fc-chip.on{background:var(--green);color:#fff;border-color:var(--green)}
.fc-chip.on svg{color:#fff}
.fc-chip.fc-chip-warn{border-color:#D76666;background:#FFF6F6;color:#A73232}
.fc-chip.fc-chip-warn svg{color:#C74848}
.fc-chip.fc-chip-warn.on{background:#D64545;color:#fff;border-color:#D64545}
.fc-chip.fc-chip-warn.on svg{color:#fff}
.fc-chip:active{transform:scale(0.97)}
/* Count badge inside More Options chip (hidden when chip is active/on) */
.mo-badge{font-size:10px;font-weight:700;opacity:0.7;letter-spacing:0}
.fc-chip.on .mo-badge{display:none}

/* ── Category chips — strict 2-column grid ── */
/* ── Category chips — strict 2-col grid, full text visible ── */
.cat-chip-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:8px;
  width:100%;
  margin-top:4px;
}
.cat-chip{
  justify-self:stretch;
  display:flex;align-items:center;justify-content:space-between;gap:6px;
  text-align:left;
  padding:8px 10px;
  min-height:36px;
  border-radius:8px;font-size:12px;font-weight:500;
  background:var(--surface);border:1.5px solid var(--line);
  color:var(--green);cursor:pointer;font-family:inherit;
  transition:all 0.15s ease;
  white-space:nowrap;overflow:hidden;
}
.cat-chip:hover:not(.on){border-color:var(--green-light);background:var(--surface-2)}
.cat-chip.on{background:var(--green-soft);border-color:var(--green);color:var(--green);font-weight:600}
.cat-chip.cat-chip-warn{border-style:dashed;background:#FFFDF8}
.cat-chip.cat-chip-warn.on{border-style:solid;background:var(--gold-soft);border-color:var(--gold);color:var(--green)}
.cat-chip-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cat-chip .count{
  font-size:10px;font-weight:400;color:var(--green-light);opacity:0.65;flex-shrink:0;white-space:nowrap;
}
.panel-chip-grid{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  width:100%;
  margin-top:4px;
}
.panel-chip-grid .cat-chip{
  flex:0 1 auto;
  max-width:100%;
  min-height:34px;
  border-radius:999px;
  padding:7px 10px;
  font-size:12px;
  justify-content:flex-start;
}
.panel-chip-grid .cat-chip.on{
  background:var(--green);
  border-color:var(--green);
  color:#fff;
}
.panel-chip-grid .cat-chip.on .count{color:rgba(255,255,255,.78);opacity:1}
.panel-chip-grid .cat-chip.cat-chip-warn.on{background:var(--gold);border-color:var(--gold);color:var(--green)}
/* Kits keep the mockup route, but use a denser chip shape so long labels do not
   create oversized rows or lonely rounded pills. */
#filterSidebar[data-kind="KITS"] .panel-chip-grid{
  gap:6px;
}
#filterSidebar[data-kind="KITS"] .panel-chip-grid .cat-chip{
  min-height:30px;
  padding:5px 9px;
  border-radius:14px;
  font-size:11px;
  gap:5px;
}
#filterSidebar[data-kind="KITS"] .panel-chip-grid .cat-chip .count{
  font-size:9px;
}
#filterSidebar[data-kind="KITS"] .panel-chip-grid .cat-chip-name{
  flex:0 1 auto;
}
/* Lone last chip — natural width, not stretched */
.cat-chip-grid .cat-chip:nth-last-child(1):nth-child(odd){
  justify-self:start;min-width:120px;
}
.cat-clear-link{
  margin-left:6px;font-size:11px;font-weight:600;color:var(--green);
  background:none;border:none;cursor:pointer;padding:0;font-family:inherit;
  text-transform:none;letter-spacing:0
}

/* ── Legacy dispatch-row + toggle styles — kept for the .discount-row block (internal only) ── */
.dispatch-row{
  display:flex;align-items:center;justify-content:space-between;
  padding:6px 0 0;border-top:1px solid var(--line);cursor:pointer;
}
.dispatch-label{
  display:flex;align-items:center;gap:7px;
  font-size:13px;font-weight:600;color:var(--text);
}
.dispatch-label svg{color:var(--green);flex-shrink:0}
.tog-track{
  width:38px;height:22px;border-radius:20px;background:#ddd;
  position:relative;flex-shrink:0;transition:background 0.2s;
}
.tog-track.on{background:var(--green)}
.tog-thumb{
  position:absolute;top:2px;left:2px;width:18px;height:18px;
  border-radius:50%;background:#fff;transition:transform 0.2s;
  box-shadow:0 1px 3px rgba(0,0,0,0.15);
}
.tog-track.on .tog-thumb{transform:translateX(16px)}

/* ── Discount row (internal + reseller modes, revealed via body class) ── */
.discount-row{display:none}
.is-internal .discount-row,
.is-reseller .discount-row{display:block}
/* ── Speed filter row (internal + reseller modes) ── */
.speed-filter-row{display:none}
.is-internal .speed-filter-row,
.is-reseller .speed-filter-row{display:block}
.discount-input-wrap{display:none;padding-top:6px}
.discount-enabled .discount-input-wrap{display:block}
/* Discount box — single flex row */
.discount-box{display:flex;align-items:center;gap:12px;border:1.5px solid var(--line);border-radius:10px;padding:10px 12px;background:var(--surface);transition:all 0.15s}
.discount-box.discount-enabled{background:var(--green-soft);border-color:var(--green)}
.discount-label{font-size:14px;font-weight:800;color:var(--text);flex:1}
.discount-input{
  width:48px;height:32px;padding:0 6px;
  font-size:14px;font-weight:600;text-align:center;
  border:1.5px solid var(--line);border-radius:6px;
  background:var(--bg);color:var(--text);
  font-family:inherit;outline:none;transition:all 0.15s;
}
.discount-input:disabled{display:none}
.discount-box.discount-enabled .discount-input{
  display:block;background:var(--green-soft);color:var(--green);border-color:var(--green);
}
.discount-input:not(:disabled):focus{border-color:var(--green-mid);outline:none}
/* Remove native number spinners */
.discount-input::-webkit-outer-spin-button,
.discount-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.discount-input[type=number]{-moz-appearance:textfield}

/* Speed buttons inside box (filter-box still used for Discount only) */
.speed-btns{flex:1;gap:4px}
.speed-btns .sort-btn{flex:1;padding:7px 0;font-size:12px}

/* ── Filter controls in sidebar ── */
.filter-group{margin-bottom:5px}

/* FIX C — green label patches on every filter section title */
.filter-group label,
.filter-group .filter-title,
.filter-group h3,
.filter-group h4 {
  display:inline-block;
  font-size:11px; font-weight:800; text-transform:uppercase;
  letter-spacing:0.4px; color:var(--green); margin-bottom:10px;
  padding:4px 10px; border-radius:6px; background:var(--green-soft);
  line-height:1;
}
.filter-group-title-row { display:flex; align-items:center; justify-content:space-between; margin-bottom:6px; }
.filter-group-title-row label { margin-bottom:0; }
.filter-group-actions { display:flex; gap:4px; }

/* FIX B — subtle text Clear button */
.clear-btn {
  font-size:11px; font-weight:500; color:var(--green-light);
  background:transparent; border:none; padding:4px 8px;
  border-radius:4px; cursor:pointer; font-family:inherit;
  transition:color 0.15s ease;
}
.clear-btn:hover { color:var(--green); background:var(--green-soft); }

.filter-sidebar > .search-box{margin-bottom:10px}
.filter-group select,.filter-group input{
  width:100%;padding:9px 10px;border:1.5px solid var(--line);
  border-radius:10px;font-size:13px;background:var(--bg);
  color:var(--text);outline:none;
  transition:border-color 0.15s;
}
.filter-group select:focus,.filter-group input:focus{border-color:var(--green)}

.budget-group{margin-bottom:12px;padding:0}
.budget-box{
  display:grid;grid-template-columns:1fr auto;gap:8px;
  border:1.5px solid var(--green-light);border-radius:12px;
  padding:9px;background:var(--surface)
}
.budget-actions{display:contents}
.budget-box .budget-label{
  grid-column:1;grid-row:1;justify-self:start;align-self:center;
  font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:0.4px;
  color:var(--green);line-height:1;white-space:nowrap;margin:0;
  padding:4px 10px;border-radius:6px;background:var(--green-soft)
}
.budget-inputs{
  grid-column:1 / -1;grid-row:3;
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;min-width:0
}
.budget-quick-grid{
  grid-column:1 / -1;grid-row:2;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:7px;
  min-width:0;
}
.budget-quick{
  min-height:38px;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  padding:8px 10px;
  border:1.5px solid var(--line);
  border-radius:9px;
  background:var(--bg);
  color:var(--text);
  font-family:inherit;
  font-size:12px;
  font-weight:800;
  line-height:1.15;
  text-align:left;
  cursor:pointer;
  transition:background .15s,border-color .15s,color .15s,box-shadow .15s,transform .08s;
}
.budget-quick:hover{border-color:var(--green-light);background:var(--surface-2)}
.budget-quick.on{
  background:var(--green-soft);
  border-color:var(--green);
  color:var(--green);
  box-shadow:inset 0 0 0 1px var(--green);
}
.budget-quick:active{transform:scale(.98)}
.filter-group .budget-inp-wrap{
  position:relative;display:block;border:1.5px solid var(--line);border-radius:9px;
  background:var(--bg);height:36px;min-width:0;cursor:text;transition:border-color 0.15s;
  padding:0;margin:0;line-height:normal;letter-spacing:0;text-transform:none
}
.budget-inp-wrap:focus-within{border-color:var(--green)}
.budget-sym{position:absolute;left:10px;top:50%;transform:translateY(-50%);font-size:13px;font-weight:700;color:var(--muted);opacity:0.75;line-height:1;pointer-events:none}
/* Specificity (0,2,0) beats .filter-group input (0,1,1) */
.budget-inp-wrap .budget-inp{display:block;width:100%;height:100%;border:none;background:transparent;font-size:13px;font-weight:600;color:var(--text);outline:none;font-family:inherit;min-width:0;padding:0 8px 0 28px;line-height:36px}
.budget-inp::placeholder{color:var(--muted);opacity:0.85;font-weight:600}
.budget-inp::-webkit-inner-spin-button,.budget-inp::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.budget-inp[type=number]{-moz-appearance:textfield;appearance:textfield}
.budget-clear-btn{
  grid-column:2;grid-row:1;justify-self:end;align-self:center;
  height:24px;border:1.5px solid var(--green-light);background:#fff;color:var(--green);
  border-radius:8px;padding:0 10px;font-family:inherit;font-size:10px;font-weight:800;
  letter-spacing:0.2px;cursor:pointer;white-space:nowrap
}
.budget-clear-btn:hover{background:#c9efd2}
.budget-mobile-feedback{display:none}
.collection-select{display:block!important}
#filterSidebar[data-kind="KITS"] .collection-select{display:none!important}
#filterSidebar[data-kind="ELEMENTS"] #collectionChipGrid,
#filterSidebar[data-kind="ALL"] #collectionChipGrid{display:none}
#filterSidebar[data-kind="ELEMENTS"] .budget-quick-grid{display:none}
#filterSidebar[data-kind="ELEMENTS"] .budget-inputs{grid-row:2}
#filterSidebar > .kind-toggle{order:0}
#filterSidebar > .search-box{order:1}
#filterSidebar > .discount-row{order:2}
#filterSidebar > .budget-group{order:3}
#filterSidebar > #collectionFilterGroup{order:4}
#filterSidebar > #catFilterGroup{order:5}
#filterSidebar > #ucFilterGroup{order:6}
#filterSidebar > #allCatGroup{order:7}
#filterSidebar > #allUcGroup{order:8}
#filterSidebar > .sort-inline{order:9}
#filterSidebar > .filter-chips{order:10}
#filterSidebar > .mob-filter-actions{order:99}
#filterSidebar[data-kind="ELEMENTS"] > #collectionFilterGroup{order:2}
#filterSidebar[data-kind="ELEMENTS"] > #catFilterGroup{order:3}
#filterSidebar[data-kind="ELEMENTS"] > .sort-inline{order:4}
#filterSidebar[data-kind="ELEMENTS"] > .filter-chips{order:5}
#filterSidebar[data-kind="ELEMENTS"] > .discount-row{order:6}
#filterSidebar[data-kind="ELEMENTS"] > .budget-group{order:7}

/* ── Content ── */
.content{flex:1;overflow-y:auto;overflow-x:hidden;padding:12px 16px 80px;background:var(--bg)}
.results-info{
  display:flex;align-items:center;justify-content:space-between;
  padding:6px 0 10px;font-size:13px;color:var(--muted);
}
.results-info strong{color:var(--text)}
.clear-filters{color:var(--green-light);font-weight:600;font-size:13px;background:none;border:none}

/* ── Grid View ── */
.grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:12px;
}
.card{
  background:var(--surface);border-radius:var(--radius);overflow:hidden;
  box-shadow:var(--shadow);border:1px solid rgba(0,0,0,0.04);
  cursor:pointer;transition:all 0.2s ease;
  animation:cardIn 0.3s ease both;
}
.card:hover{box-shadow:var(--shadow-lg);transform:translateY(-3px)}
@keyframes cardIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.card-img{
  width:100%;aspect-ratio:1/1;overflow:hidden;
  background:var(--surface-2);position:relative;
}
.card-img img{width:100%;height:100%;object-fit:contain;transition:transform 0.3s}
.card:hover .card-img img{transform:scale(1.04)}
.card-img .no-img-icon{
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  color:#ccc;font-size:48px;
}
.card-badges{position:absolute;top:8px;left:8px;display:flex;gap:4px;flex-wrap:wrap}
.badge{
  font-size:10px;font-weight:700;padding:3px 8px;border-radius:6px;
  backdrop-filter:blur(8px);
}
.badge-type{background:rgba(27,67,50,0.85);color:#fff}
.badge-fast{background:rgba(82,183,136,0.9);color:#fff}
.badge-note{background:rgba(176,125,46,0.9);color:#fff}
.badge-new{background:rgba(255,214,0,0.92);color:#5a3e00;border:1px solid rgba(200,160,0,0.4)}
.badge-non-catalog{background:#D64545;color:#fff;border:1px solid rgba(120,14,14,0.18)}
/* Circular play button on video cards — replaces the old VIDEO text badge */
.card-play-btn{
  position:absolute;bottom:10px;right:10px;z-index:15;
  width:46px;height:46px;border-radius:50%;
  background:rgba(255,255,255,0.95);border:none;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 4px 16px rgba(0,0,0,0.28);
  transition:transform 120ms ease-out,box-shadow 120ms ease-out;
}
@media(hover:hover){.card-play-btn:hover{transform:scale(1.1);box-shadow:0 6px 20px rgba(0,0,0,0.36)}}
.card-play-btn:active{transform:scale(0.93)}
.card-play-btn svg{width:18px;height:18px;margin-left:3px;fill:#1B4332}
.card-light-btn{
  position:absolute;right:12px;bottom:12px;z-index:16;
  width:44px;height:44px;border-radius:50%;
  border:2px solid rgba(255,204,0,0.9);
  background:#FFD200;color:#17120a;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 8px 24px rgba(0,0,0,0.18),inset 0 1px 0 rgba(255,255,255,0.45);
  transition:transform 120ms ease-out,box-shadow 120ms ease-out,background 120ms ease-out;
}
@media(hover:hover){.card-light-btn:hover{transform:scale(1.07);box-shadow:0 10px 28px rgba(0,0,0,0.24),0 0 0 5px rgba(255,210,0,0.16)}}
.card-light-btn:active{transform:scale(0.94)}
.card-light-btn.is-on{background:#FFE06B;box-shadow:0 10px 30px rgba(0,0,0,0.2),0 0 0 7px rgba(255,210,0,0.2),0 0 24px rgba(255,193,7,0.55)}
.card-light-btn svg{width:27px;height:27px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
/* Video popup modal (quick-play from card grid) */
#videoModal{position:fixed;inset:0;z-index:1200;display:flex;align-items:center;justify-content:center;padding:16px}
.vm-bg{position:absolute;inset:0;background:rgba(8,15,10,0.9)}
.vm-box{position:relative;z-index:1;border-radius:14px;overflow:hidden;width:100%;max-width:min(90vw,540px);background:#000;box-shadow:0 24px 64px rgba(0,0,0,0.7)}
.vm-close{
  position:absolute;top:10px;right:10px;z-index:20;
  width:40px;height:40px;border-radius:50%;
  background:rgba(255,255,255,0.14);border:1.5px solid rgba(255,255,255,0.28);
  color:#fff;font-size:20px;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  backdrop-filter:blur(6px);transition:background 0.12s;
}
.vm-close:hover{background:rgba(255,255,255,0.28)}
#vmPlayer video{display:block;width:100%;background:#000;max-height:82vh}
#vmPlayer iframe{display:block;width:100%;aspect-ratio:16/9;border:none}
.card-body{
  padding:8px 10px 9px;
  min-height:94px;
  display:grid;
  grid-template-rows:14px 19px 1fr 18px;
  gap:2px;
}
.card-cat{
  font-size:10px;color:var(--muted);line-height:14px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;
}
.card-name{
  font-family:'DM Serif Display',serif;font-size:14px;color:var(--green);
  line-height:1.18;margin-bottom:0;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;
}
/* Kind toggle (Elements / Kits / All) */
.kind-toggle{display:flex;background:#EDE9E3;border-radius:10px;padding:3px;margin-bottom:8px}
.kt-btn{flex:1;padding:7px 0;border-radius:8px;font-size:12px;font-weight:600;color:var(--muted);border:none;background:none;cursor:pointer;transition:all 0.18s;font-family:inherit}
.kt-btn.active{background:var(--green);color:#fff;box-shadow:0 1px 4px rgba(0,0,0,0.14)}
/* SKU + price combined foot row */
.card-foot{display:flex;align-items:baseline;justify-content:space-between;gap:6px;margin-top:0;min-width:0;grid-row:4}
.card-foot-sku{
  font-size:10px;color:var(--muted);font-family:'DM Mono',monospace;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;flex-shrink:1;
}
.card-price{font-weight:700;font-size:13px;color:var(--text);white-space:nowrap;flex-shrink:0}
.card-price .gst{font-size:10px;font-weight:400;color:var(--muted);margin-left:3px}
.card-price.discounted{display:flex;flex-direction:row;align-items:baseline;justify-content:flex-end;gap:4px;line-height:1}
.card-disc-price{font-weight:800;font-size:13px;color:var(--green-mid);white-space:nowrap}
.card-orig-price{font-size:10px;font-weight:500;color:var(--muted);text-decoration:line-through;margin-left:0;white-space:nowrap}
.card-price.discounted .card-orig-price{order:-1}
.card-orig-price .gst{font-size:9px}
@media(max-width:899px){
  .card-price.discounted{
    display:grid;
    grid-template-columns:1fr;
    justify-items:end;
    align-items:end;
    gap:1px;
  }
  .card-price.discounted .card-orig-price{order:-1;font-size:9.5px;font-weight:450;color:#8a8580;line-height:1}
  .card-price.discounted .card-disc-price{font-size:13px;line-height:1}
  .card-price.discounted .card-disc-price .gst{font-size:10px}
  .card-orig-price .gst{font-size:8px}
}
.card-select{
  position:absolute;top:8px;right:8px;
  width:28px;height:28px;border-radius:8px;
  background:rgba(255,255,255,0.9);border:1.5px solid var(--line);
  display:flex;align-items:center;justify-content:center;
  transition:background 0.15s,border-color 0.15s,transform 0.12s,box-shadow 0.15s;z-index:2;
}
.card-select::before,
.card-select::after{
  content:"";position:absolute;left:50%;top:50%;
  width:12px;height:2px;border-radius:2px;background:#7f8b84;
  transform:translate(-50%,-50%);
}
.card-select::after{transform:translate(-50%,-50%) rotate(90deg)}
.card-select.selected{background:var(--green);border-color:var(--green);box-shadow:0 2px 8px rgba(27,67,50,0.22)}
.card-select.selected::before,.card-select.selected::after{display:none}
.card-select:active{transform:scale(0.94)}
.card-select svg{width:14px;height:14px;stroke:#aaa;stroke-width:2.5;fill:none;opacity:0}
.card-select.selected svg{stroke:#fff}
.card-select.selected svg{opacity:1}


/* ── Drawer (Variant C) ── */
.drawer-overlay{
  position:fixed;inset:0;background:rgba(15,20,17,0.45);
  backdrop-filter:blur(3px);z-index:200;
  opacity:0;pointer-events:none;transition:opacity 0.25s;
}
.drawer-overlay.open{opacity:1;pointer-events:auto}
.drawer{
  position:fixed;top:0;right:0;bottom:0;
  width:min(520px,100vw);background:#fff;
  z-index:201;
  transform:translateX(100%);transition:transform 0.3s cubic-bezier(0.22,1,0.36,1);
  box-shadow:0 1px 0 rgba(28,40,30,0.04),0 22px 50px -28px rgba(28,40,30,0.35);
  border-radius:18px 0 0 18px;
  display:flex;flex-direction:column;isolation:isolate;
}
.drawer.open{transform:translateX(0)}
@media(max-width:767px){.drawer{width:min(380px,100vw);border-radius:18px 0 0 18px}}
/* .drawer-scroll, .drawer-scroll-inner, .x-btn — moved to _shared.js (drawer shell) */
.drawer-scroll-inner{
  box-sizing:border-box;
  padding-bottom:calc(96px + env(safe-area-inset-bottom));
}
.drawer-sticky{
  padding-bottom:calc(12px + env(safe-area-inset-bottom));
}
@media(max-width:767px){
  #stickyCopyBtn,#stickyDlBtn{font-size:0}
  #stickyCopyBtn::after,#stickyDlBtn::after{font-size:13.5px;font-weight:700;line-height:1.05}
  #stickyCopyBtn::after{content:"Copy Info"}
  #stickyDlBtn::after{content:"PDF"}
}

/* hero image */
/* Hide copy/share-image button when drawer hero is in video mode */
.drawer-hero[data-mode="video"] .drawer-image-primary-tool{
  display:none;
}
.drawer-hero{
  position:relative;background:#E8E3D6;aspect-ratio:1/1;
  display:flex;align-items:center;justify-content:center;overflow:hidden;
}
@media(min-width:768px){.drawer-hero{aspect-ratio:5/4}}
.drawer-hero img{width:100%;height:100%;object-fit:contain;transition:opacity 200ms ease-out}
.drawer-no-media{
  width:100%;height:100%;
  display:flex;align-items:center;justify-content:center;
  color:#6B7A6F;font-size:14px;font-weight:700;letter-spacing:.02em;
  background:linear-gradient(180deg,rgba(255,255,255,.18),rgba(255,255,255,.04));
}
/* Direct .mp4 in the drawer hero — portrait uses contain+dark bg; landscape uses cover. */
.drawer-direct-video{position:absolute;inset:0;width:100%;height:100%;border:none;z-index:4;background:#111;transition:opacity 200ms ease-out}
.drawer-direct-video.portrait{object-fit:contain}
.drawer-direct-video.landscape{object-fit:cover}
/* ▶ placeholder for .mp4 thumbs in the strip (no valid thumbnail source for mp4). */
.drawer-thumb.mp4-thumb{background:#1a2420;display:flex;align-items:center;justify-content:center;cursor:pointer}
.drawer-thumb.mp4-thumb::after{content:'▶';font-size:13px;color:rgba(255,255,255,0.72);text-shadow:0 1px 4px rgba(0,0,0,0.55)}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}

/* Add to Catalog pill */
.add-pill{
  position:absolute;top:14px;left:60px;z-index:20;
  height:36px;padding:0 14px 0 12px;border-radius:18px;
  display:inline-flex;align-items:center;gap:7px;
  background:rgba(255,255,255,0.94);border:1px solid rgba(28,40,30,0.06);
  color:#15201A;font-size:12.5px;font-weight:600;
  backdrop-filter:blur(8px);box-shadow:0 4px 14px -4px rgba(28,40,30,0.18);
  cursor:pointer;line-height:1;font-family:inherit;
}
.add-pill svg{width:14px;height:14px}
.add-pill.on{background:#1B4332;color:#fff;border-color:#1B4332}
.add-pill .pill-count{
  background:rgba(255,255,255,0.18);color:#fff;font-size:11px;
  padding:1px 6px;border-radius:8px;margin-left:2px;font-weight:700
}

/* image tools (top-right) */
.img-tools{position:absolute;top:14px;right:14px;display:flex;gap:8px;z-index:20}
.img-tool{
  width:36px;height:36px;border-radius:50%;background:rgba(255,255,255,0.94);
  border:1px solid rgba(28,40,30,0.06);
  display:flex;align-items:center;justify-content:center;
  color:#3C4A40;backdrop-filter:blur(8px);cursor:pointer;
  box-shadow:0 4px 14px -4px rgba(28,40,30,0.18);
}
.img-tool svg{width:15px;height:15px}
@media(max-width:767px){
  .drawer-hero .img-tools{display:none}
}

/* image counter */
.img-counter{
  position:absolute;bottom:16px;right:16px;z-index:10;
  background:rgba(21,32,26,0.6);color:#fff;font-size:11px;font-weight:600;
  padding:5px 11px;border-radius:12px;letter-spacing:0.04em;
  backdrop-filter:blur(6px)
}

/* gallery nav arrows */
.gnav{
  position:absolute;top:50%;transform:translateY(-50%);z-index:10;
  width:30px;height:30px;border-radius:50%;background:rgba(255,255,255,0.78);
  border:1px solid rgba(28,40,30,0.04);display:flex;align-items:center;justify-content:center;
  color:#3C4A40;font-size:16px;line-height:1;cursor:pointer;
  box-shadow:0 2px 8px -2px rgba(0,0,0,0.18);
}
.gnav.l{left:12px}
.gnav.r{right:12px}
@media(min-width:768px){
  .gnav{width:34px;height:34px;background:rgba(255,255,255,0.94);backdrop-filter:blur(6px);
    border:1px solid rgba(28,40,30,0.06);box-shadow:0 4px 14px -4px rgba(28,40,30,0.18);
    color:#15201A;font-size:18px}
}

/* progress dots */
.drawer-dots{
  position:absolute;bottom:16px;left:50%;transform:translateX(-50%);
  display:flex;gap:5px;z-index:10
}
.drawer-dots i{width:5px;height:5px;border-radius:50%;background:rgba(255,255,255,0.5);display:block;transition:width .2s}
.drawer-dots i.on{background:#fff;width:16px;border-radius:3px}

/* thumbnail strip */
.drawer-thumbs{
  display:flex;gap:6px;padding:12px 20px;overflow-x:auto;
  scrollbar-width:none;background:#fff;border-bottom:1px solid #EFEBE2
}
.drawer-thumbs::-webkit-scrollbar{display:none}
.drawer-thumb{
  flex:0 0 auto;width:50px;height:50px;border-radius:8px;overflow:hidden;
  border:2px solid transparent;cursor:pointer;opacity:0.55;
  box-shadow:inset 0 0 0 1px rgba(0,0,0,0.06);transition:all 0.15s;
}
.drawer-thumb.active{border-color:#2D6A4F;opacity:1}
.drawer-thumb img{width:100%;height:100%;object-fit:cover}

/* video thumb — slightly wider (16:9) + small play indicator overlay */
.drawer-thumb.video{
  width:80px;height:50px;aspect-ratio:16/9;
  position:relative
}
.drawer-thumb.video::after{
  content:"";position:absolute;left:50%;top:50%;
  width:0;height:0;
  border-left:9px solid #fff;
  border-top:6px solid transparent;border-bottom:6px solid transparent;
  transform:translate(-30%,-50%);
  filter:drop-shadow(0 1px 4px rgba(0,0,0,0.55));
  pointer-events:none
}

/* hero play overlay — visible only in video mode */
.drawer-play-overlay{
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  background:rgba(15,25,18,0.18);cursor:pointer;z-index:5;
  transition:background 0.15s
}
.drawer-play-overlay:hover{background:rgba(15,25,18,0.28)}
.drawer-play-overlay .dpo-circle{
  width:80px;height:80px;border-radius:50%;background:rgba(255,255,255,0.95);
  box-shadow:0 10px 30px -8px rgba(0,0,0,0.4);
  position:relative;display:flex;align-items:center;justify-content:center
}
.drawer-play-overlay .dpo-circle::after{
  content:"";width:0;height:0;
  border-left:24px solid #1B4332;
  border-top:15px solid transparent;border-bottom:15px solid transparent;
  margin-left:6px
}

/* image-bucket switcher pills (Standard · Infographic · Lifestyle · Custom · Video) */
.drawer-modes{
  display:flex;gap:6px;padding:10px 14px 4px;background:#fff;
  overflow-x:auto;scrollbar-width:none;border-bottom:1px solid #EFEBE2
}
.drawer-modes::-webkit-scrollbar{display:none}
.dm-pill{
  flex-shrink:0;padding:7px 12px 7px 14px;border-radius:999px;
  border:1px solid #E2DED5;background:#fff;color:#3C4A40;
  font-size:12.5px;font-weight:600;font-family:inherit;cursor:pointer;
  letter-spacing:-0.005em;display:inline-flex;align-items:center;gap:7px;
  line-height:1;transition:background 0.15s,color 0.15s,border-color 0.15s,transform 0.08s
}
.dm-pill .dm-count{
  font-size:11px;font-weight:700;background:#F4F1EC;color:#6B7A6F;
  padding:2px 7px;border-radius:9px;line-height:1.3
}
.dm-pill .dm-icon{width:11px;height:11px;flex-shrink:0;margin-right:-2px}
.dm-pill.active{background:#1B4332;color:#fff;border-color:#1B4332}
.dm-pill.active .dm-count{background:rgba(255,255,255,0.16);color:#fff}
.dm-pill:active{transform:scale(0.97)}
.dm-pill[disabled]{opacity:0.45;cursor:not-allowed;pointer-events:none}

/* Always-visible close button — overrides _shared.js hiding it on /p/<sku> deep-links */
body.standalone .x-btn{display:flex !important}

/* body */
.drawer-body{padding:22px 22px 24px}

/* trust tags */
.drawer-tags{display:flex;gap:6px;flex-wrap:wrap}
.drawer-tag{
  font-size:11px;font-weight:600;padding:5px 10px;border-radius:14px;
  background:#F4F1EC;color:#3C4A40;border:1px solid #E2DED5;
  line-height:1.2;letter-spacing:0.01em;display:inline-flex;align-items:center;gap:5px
}
.drawer-tag svg{width:11px;height:11px}
.drawer-tag.tag-best{background:#F1E3C5;color:#5a3d0a;border-color:#e0c997;font-weight:700}
.drawer-tag.tag-fast{background:#FFF3D9;color:#7a4a00;border-color:#F0D89F}
.drawer-tag.tag-stock{background:#D8F3DC;color:#1B4332;border-color:#bbe4c7}

/* product name */
.drawer-name{
  font-family:'DM Serif Display',serif;font-size:28px;line-height:1.1;
  color:#1B4332;margin:14px 0 4px;letter-spacing:-0.012em
}
/* headline row — breadcrumb (left) + price chip (right) */
.drawer-headline{
  display:flex;align-items:flex-start;justify-content:space-between;
  gap:14px;margin-top:6px;flex-wrap:wrap
}
.drawer-headline-left{display:flex;flex-direction:column;gap:8px;min-width:0;flex:1}
.drawer-breadcrumb{
  font-size:12.5px;color:#6B7A6F;
  display:flex;align-items:center;gap:6px;letter-spacing:0.01em
}
.drawer-breadcrumb b{color:#3C4A40;font-weight:600}
.drawer-breadcrumb .sep{color:#A1AFA4}
.drawer-sku-rate{
  display:inline-flex;align-items:baseline;gap:7px;flex-wrap:wrap;
  margin-top:12px;padding:8px 13px;
  background:#F4EFE7;border:1px solid #E1D6C7;border-radius:10px;
  color:#1B4332;font-weight:900;font-variant-numeric:tabular-nums
}
.drawer-sku-rate b{font-size:13px;letter-spacing:0.02em}
.drawer-sku-rate .rate-main{font-size:17px;letter-spacing:-0.01em}
.drawer-sku-rate small{font-size:12px;font-weight:800;color:#4F4639;letter-spacing:0}
.drawer-sku-rate .rate-orig{
  font-size:12px;font-weight:600;color:#9A9F98;text-decoration:line-through;margin-left:2px
}
.drawer-sku-pill{
  align-self:flex-start;display:inline-flex;align-items:center;gap:7px;
  min-height:28px;padding:4px 10px;border:1.5px solid #1B4332;border-radius:8px;
  color:#1B4332;background:#FFFDF8;font-size:12.5px;font-weight:800;
  font-variant-numeric:tabular-nums;letter-spacing:0.01em
}
.drawer-sku-pill span{
  color:#5D6A61;font-size:10px;letter-spacing:0.08em;text-transform:uppercase
}

/* price chip */
.drawer-price{
  display:inline-flex;align-items:baseline;gap:5px;
  background:#F4EFE7;border:1px solid #E1D6C7;border-radius:10px;
  padding:6px 12px;color:#1B4332;font-weight:700;
  font-variant-numeric:tabular-nums;letter-spacing:-0.005em;white-space:nowrap
}
.drawer-price .px{font-size:16px}
.drawer-price .gst{font-size:12px;font-weight:700;color:#4F4639;letter-spacing:0}
.drawer-price .px-orig{
  font-size:12px;font-weight:500;color:#A1AFA4;text-decoration:line-through;margin-left:4px
}

/* element story — skimmable sales copy, not a required reading card */
.drawer-story{
  margin:18px 0 0;padding:16px 0 15px;
  border-top:1px solid #E5E8DC;border-bottom:1px solid #E5E8DC
}
.drawer-usp{
  display:flex;align-items:flex-start;gap:10px;
  color:#1B4332;font-size:14.5px;line-height:1.42;font-weight:800;text-wrap:pretty
}
.drawer-usp .usp-mark{
  width:22px;height:22px;border-radius:50%;background:#DDF1E1;color:#1B4332;
  display:inline-flex;align-items:center;justify-content:center;flex:0 0 22px;
  font-size:12px;font-weight:900;margin-top:1px
}
.drawer-short-desc{
  margin:18px 0 0;padding:15px 0 16px;
  border-top:1px solid #E5E8DC;border-bottom:1px solid #E5E8DC;
  color:#3C4A40;font-size:14.5px;line-height:1.55;text-wrap:pretty
}
.drawer-tagline{
  margin:8px 0 0;color:#756C62;font-size:13px;line-height:1.35;font-style:italic
}
.drawer-section{margin-top:18px}
.drawer-info-line{
  margin-top:11px;color:#354239;font-size:13px;line-height:1.45;text-wrap:pretty
}
.drawer-info-line b{color:#1B4332;font-weight:900}
.drawer-material-line{padding-top:3px}

/* compact specification */
.spec-single{
  margin:18px 0 0;padding:14px 16px;
  background:linear-gradient(180deg,#FBF9F3,#F5F1E6);
  border:1px solid #EFEBE2;border-radius:12px
}
.spec-single .spec-label{
  font-size:11px;color:#5F6F64;letter-spacing:0.13em;
  text-transform:uppercase;font-weight:900;margin-bottom:7px
}
.spec-single .txt{
  font-size:12.5px;color:#3C4A40;line-height:1.35;font-weight:650;
  white-space:normal;overflow:visible;text-overflow:clip;text-wrap:pretty
}

/* kit contents — public-safe BOM text, separated from admin/spec details */
.kit-content-block{
  margin:18px 0 0;padding:16px 18px;
  background:#FFFDF8;border:1px solid #E5E8DC;border-radius:12px
}
.kit-content-block .spec-label{
  font-size:10px;color:#6B7A6F;letter-spacing:0.12em;
  text-transform:uppercase;font-weight:800;margin-bottom:10px
}
.kit-content-list{
  list-style:none;padding:0;margin:0;
  display:grid;grid-template-columns:1fr 1fr;gap:8px 14px
}
.kit-content-list li{
  position:relative;padding-left:13px;
  color:#1B4332;font-size:13px;line-height:1.35;font-weight:650
}
.kit-content-list li::before{
  content:"";position:absolute;left:0;top:0.62em;
  width:4px;height:4px;border-radius:50%;background:#2D6A4F
}
.kit-packaging{
  margin-top:12px;padding-top:10px;border-top:1px solid #E5E8DC;
  display:flex;align-items:flex-start;gap:8px;color:#3C4A40;font-size:12.5px;line-height:1.4
}
.kit-packaging span{
  flex:0 0 auto;color:#756C62;font-size:10px;font-weight:800;
  letter-spacing:0.08em;text-transform:uppercase
}
.kit-packaging b{font-weight:800;color:#1B4332}
@media(max-width:520px){
  .kit-content-list{grid-template-columns:1fr}
}

/* tabs */
.drawer-tabs{
  display:flex;gap:0;border-bottom:1px solid #E2DED5;margin:24px 0 18px;
}
.drawer-tab{
  padding:11px 0;margin-right:24px;font-size:13px;font-weight:600;color:#6B7A6F;
  border:none;border-bottom:2px solid transparent;cursor:pointer;
  background:none;font-family:inherit;line-height:1.2;
  display:inline-flex;align-items:center;gap:6px
}
.drawer-tab.on{color:#1B4332;border-bottom-color:#2D6A4F}
.count-badge{
  background:#F4F1EC;color:#6B7A6F;font-size:10px;padding:2px 6px;
  border-radius:8px;font-weight:700;letter-spacing:0.02em
}
.drawer-tab.on .count-badge{background:#D8F3DC;color:#1B4332}

/* tab content */
.drawer-tab-content{display:none}
.drawer-tab-content.on{display:block}

/* description */
.drawer-desc{font-size:14px;color:#3C4A40;line-height:1.6;text-wrap:pretty}
.drawer-desc+.drawer-desc{margin-top:12px}
.drawer-desc.lead{font-size:14.5px;color:#15201A;font-weight:500}

/* features */
.drawer-feats{margin:14px 0 0;padding:0;list-style:none}
.drawer-feats li{
  font-size:13.5px;color:#3C4A40;line-height:1.5;
  padding:11px 0 11px 26px;position:relative;border-bottom:1px solid #EFEBE2
}
.drawer-feats li::before{
  content:'';position:absolute;left:0;top:16px;width:14px;height:1.5px;
  background:#2D6A4F
}
.drawer-feats li:last-child{border-bottom:none}

/* element features — customer-facing facts above admin-only details */
.drawer-feature-box{
  margin:20px 0 0;padding:16px 18px;
  background:#FFFDF8;border:1px solid #E5E8DC;border-radius:12px
}
.drawer-feature-title{
  font-size:11px;color:#5F6F64;letter-spacing:0.13em;
  text-transform:uppercase;font-weight:900;margin-bottom:12px
}
.drawer-feature-box ul{
  list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr;gap:8px
}
.drawer-feature-box li{
  position:relative;padding-left:14px;
  color:#1B4332;font-size:13px;line-height:1.35;font-weight:700
}
.drawer-feature-box li::before{
  content:"";position:absolute;left:0;top:0.62em;
  width:5px;height:5px;border-radius:50%;background:#2D6A4F
}
.drawer-tagline-quote{
  margin:20px 0 0;padding:14px 16px;
  background:#F3FAF1;border-left:4px solid #52B788;border-radius:0 12px 12px 0;
  color:#1B4332;font-family:'DM Serif Display',serif;font-size:19px;line-height:1.25
}
.drawer-long-detail{
  margin:20px 0 0;border:1px solid #E5E8DC;border-radius:12px;background:#FFFDF8;overflow:hidden
}
.drawer-long-detail summary{
  min-height:48px;padding:0 15px;
  display:flex;align-items:center;justify-content:space-between;
  cursor:pointer;list-style:none;
  color:#1B4332;font-size:13px;font-weight:900;letter-spacing:0.02em
}
.drawer-long-detail summary::-webkit-details-marker{display:none}
.drawer-long-detail summary::after{
  content:"⌄";font-size:18px;line-height:1;color:#879187
}
.drawer-long-detail[open] summary::after{content:"⌃"}
.drawer-long-detail div{
  padding:0 15px 16px;color:#3E4841;font-size:13.5px;line-height:1.62;text-wrap:pretty
}

/* bottom admin details — separate from selling copy */
.drawer-admin{
  margin:18px 0 0;padding:14px 16px;
  background:#F8F5EF;border:1px solid #E3DACE;border-radius:12px
}
.drawer-admin-title{
  font-size:10px;color:#8C8378;letter-spacing:0.10em;
  text-transform:uppercase;font-weight:800;margin-bottom:11px
}
.drawer-admin-grid{
  display:grid;grid-template-columns:1fr;gap:8px
}
.drawer-admin-item{
  display:grid;grid-template-columns:126px minmax(0,1fr);gap:10px;align-items:baseline;
  min-width:0;font-size:12.5px;line-height:1.35
}
.drawer-admin-item b{color:#6F675E;font-weight:800}
.drawer-admin-item span{color:#2F3B32;font-weight:800;min-width:0;overflow-wrap:anywhere}
.drawer-admin-item-qty b{color:#2D6A4F}
.drawer-admin-item-qty span{color:#1B4332;font-weight:900}
.drawer-admin-item[data-state="loading"] span,
.drawer-admin-item[data-state="empty"] span,
.drawer-admin-item[data-state="error"] span{color:#8C8378}

/* video tab */
.video-card{
  aspect-ratio:16/9;background:linear-gradient(135deg,#1a2c1f,#0a1410);
  border-radius:12px;display:flex;align-items:center;justify-content:center;
  position:relative;overflow:hidden;cursor:pointer
}
.video-card::before{
  content:'';position:absolute;inset:0;
  background:radial-gradient(ellipse at 50% 40%, rgba(82,183,136,0.15), transparent 60%)
}
.play-btn{
  width:54px;height:54px;border-radius:50%;background:rgba(255,255,255,0.95);
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 8px 24px -6px rgba(0,0,0,0.4);position:relative;z-index:1
}
.play-btn::after{
  content:'';width:0;height:0;
  border-left:16px solid #1B4332;
  border-top:10px solid transparent;border-bottom:10px solid transparent;
  margin-left:5px
}
.video-meta{
  position:absolute;left:14px;bottom:12px;color:#fff;font-size:11px;font-weight:600;
  letter-spacing:0.04em;z-index:1
}
.video-meta b{font-family:'DM Serif Display',serif;font-weight:400;font-size:14px;display:block;margin-bottom:1px;letter-spacing:0}

/* .quiet-meta, .sticky-spacer, .drawer-sticky, .drawer-btn, .drawer-toast,
   .sheet-back, .share-sheet, .sheet-*, .sheet-cancel
   — moved to _shared.js (drawer shell) */

/* hide old drawer elements that are no longer used */
.drawer-close,.drawer-pdf-btn{display:none}

/* ── Lightbox ── */
.lightbox{
  position:fixed;inset:0;background:rgba(0,0,0,0.92);
  z-index:300;display:none;align-items:center;justify-content:center;
  flex-direction:column;
}
.lightbox.open{display:flex}
.lightbox-close{
  position:absolute;top:14px;right:14px;
  width:40px;height:40px;border-radius:50%;
  background:rgba(255,255,255,0.15);color:#fff;
  font-size:22px;display:flex;align-items:center;justify-content:center;
}
.lightbox img{max-width:92vw;max-height:76vh;object-fit:contain;border-radius:8px}
.lightbox-nav{
  display:flex;gap:16px;margin-top:14px;
}
.lightbox-nav button{
  width:44px;height:44px;border-radius:50%;
  background:rgba(255,255,255,0.15);color:#fff;font-size:20px;
  display:flex;align-items:center;justify-content:center;
  transition:background 0.15s;
}
.lightbox-nav button:hover{background:rgba(255,255,255,0.25)}
.lightbox-counter{color:rgba(255,255,255,0.6);font-size:13px;margin-top:8px}
.lightbox-actions{display:flex;gap:8px;margin-top:14px;align-items:center;justify-content:center}
.lightbox-action{
  min-height:42px;border-radius:12px;border:1px solid rgba(255,255,255,0.22);
  background:rgba(255,255,255,0.12);color:#fff;padding:0 16px;
  font-family:inherit;font-size:13px;font-weight:800;display:inline-flex;
  align-items:center;justify-content:center;backdrop-filter:blur(10px);
}
.lightbox-action.primary{background:#fff;color:#123629;border-color:#fff}
@media(max-width:480px){
  .lightbox img{max-height:68vh}
  .lightbox-nav{margin-top:10px}
  .lightbox-actions{margin-top:10px}
}

/* ── Selection Bar ── */
.selection-bar{
  position:fixed;bottom:0;left:0;right:0;z-index:150;
  background:rgba(27,67,50,0.97);color:#fff;
  padding:12px 16px;
  transform:translateY(100%);transition:transform 0.25s ease;
  box-shadow:0 -2px 16px rgba(0,0,0,0.15);
  backdrop-filter:blur(8px);
}
.selection-bar.visible{transform:translateY(0)}
.sel-inner{max-width:1240px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:10px}
.sel-info{font-size:14px}
.sel-info strong{font-weight:700}
.sel-btns{display:flex;gap:8px;align-items:center}
.btn-clear-sel{font-size:12px;color:rgba(255,255,255,0.7);text-decoration:underline}
.btn-make-pdf{
  padding:10px 18px;border-radius:10px;
  background:#fff;color:var(--green);
  font-size:14px;font-weight:800;
}

/* ── PDF Flow Chooser ── */
.pdf-flow-overlay{
  display:none;position:fixed;inset:0;z-index:385;
  background:rgba(10,16,13,0.65);
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
  align-items:flex-end;justify-content:center;
}
.pdf-flow-overlay.visible{display:flex}
.pdf-flow-box{
  background:var(--surface);
  border-radius:24px 24px 0 0;
  width:100%;max-width:560px;
  transform:translateY(100%);
  transition:transform 0.35s cubic-bezier(0.23,1,0.32,1);
  overflow:hidden;
}
.pdf-flow-overlay.visible .pdf-flow-box{transform:translateY(0)}
.pdf-flow-inner{padding:16px 22px 28px}
.pdf-flow-title{font-family:'DM Serif Display',serif;font-size:24px;line-height:1.15;color:var(--green)}
.pdf-flow-subtitle{font-size:13px;line-height:1.5;color:var(--muted);margin-top:8px}
.pdf-flow-style-opts{margin-top:18px;margin-bottom:18px}
.pdf-flow-actions{display:flex;gap:8px}

/* ── Designer Catalog ── */
.designer-launch-overlay,.designer-preview-overlay{
  display:none;position:fixed;inset:0;z-index:395;
  background:rgba(10,16,13,.68);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
  align-items:flex-end;justify-content:center;
}
.designer-launch-overlay.visible,.designer-preview-overlay.visible{display:flex}
.designer-launch-box{
  width:100%;max-width:620px;background:var(--surface);border-radius:24px 24px 0 0;
  transform:translateY(100%);transition:transform .32s cubic-bezier(.23,1,.32,1);overflow:hidden;
}
.designer-launch-overlay.visible .designer-launch-box{transform:translateY(0)}
.designer-launch-inner{padding:16px 22px 28px}
.designer-launch-kicker,.designer-preview-kicker{font-size:11px;font-weight:800;text-transform:uppercase;color:var(--green-mid)}
.designer-launch-title{margin-top:5px;font-family:'DM Serif Display',serif;font-size:25px;line-height:1.15;color:var(--green)}
.designer-launch-copy{margin-top:9px;font-size:13px;line-height:1.55;color:var(--muted)}
.designer-launch-options{display:grid;gap:10px;margin-top:20px}
.designer-launch-option{
  min-height:78px;width:100%;display:flex;align-items:center;gap:13px;padding:14px;
  border:1.5px solid var(--line);border-radius:12px;background:#fff;text-align:left;color:var(--text);
}
.designer-launch-option.selected{border-color:var(--green);box-shadow:0 0 0 1px var(--green)}
.designer-launch-option.is-disabled{opacity:.57;cursor:not-allowed;background:var(--bg)}
.designer-launch-option-mark{width:42px;height:42px;display:grid;place-items:center;flex:0 0 auto;border-radius:8px;background:var(--green);color:#fff}
.designer-launch-option-mark svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.designer-launch-option.selected .designer-launch-option-mark svg{fill:currentColor;stroke:none}
.designer-launch-option-text{min-width:0;display:flex;flex:1;flex-direction:column;gap:3px}
.designer-launch-option-text strong{font-size:15px;color:var(--green)}
.designer-launch-option-text small{font-size:12px;line-height:1.35;color:var(--muted)}
.designer-launch-arrow{font-size:26px;color:var(--green-mid)}
.designer-launch-soon{flex:0 0 auto;padding:5px 7px;border-radius:5px;background:#e8e4dc;color:#67625c;font-size:10px;font-weight:800;text-transform:uppercase}
.designer-launch-back{width:100%;margin-top:12px;padding:13px;border:1px solid var(--line);border-radius:10px;background:transparent;color:var(--muted);font-size:14px;font-weight:700}

.designer-preview-box{
  width:100%;max-width:1080px;height:min(94dvh,940px);display:flex;flex-direction:column;
  background:var(--surface);border-radius:24px 24px 0 0;overflow:hidden;
  transform:translateY(100%);transition:transform .32s cubic-bezier(.23,1,.32,1);
}
.designer-preview-overlay.visible .designer-preview-box{transform:translateY(0)}
.designer-preview-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:18px 20px 13px;border-bottom:1px solid var(--line)}
.designer-preview-title{margin-top:3px;font-family:'DM Serif Display',serif;font-size:23px;color:var(--green)}
.designer-preview-summary{margin-top:3px;font-size:12px;color:var(--muted)}
.designer-preview-close{width:34px;height:34px;display:grid;place-items:center;flex:0 0 auto;border:1px solid var(--line);border-radius:50%;background:var(--bg);font-size:20px;color:var(--muted)}
.designer-preview-notice{padding:10px 20px;background:#edf5ef;border-bottom:1px solid #d6e6da;font-size:12px;line-height:1.45;color:var(--green)}
.designer-preview-scroll{flex:1;overflow:auto;padding:16px;overscroll-behavior:contain}
.designer-preview-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:14px}
.designer-page-preview{position:relative;min-width:0}
.designer-page-canvas-wrap{position:relative;overflow:hidden;aspect-ratio:9/16;border:1px solid #d9d1c6;border-radius:6px;background:#eee;box-shadow:0 6px 18px rgba(24,45,35,.10)}
.designer-page-canvas-wrap canvas{display:block;width:100%;height:100%}
.designer-page-number{margin-top:6px;font-size:11px;color:var(--muted);text-align:center}
.designer-page-remove{position:absolute;top:7px;right:7px;z-index:2;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.96);border:1px solid #d8d0c4;color:#8b302e;font-size:17px;box-shadow:0 2px 7px rgba(0,0,0,.16)}
.designer-page-kind{position:absolute;left:7px;top:7px;z-index:2;padding:4px 6px;border-radius:4px;background:rgba(20,57,43,.9);color:#fff;font-size:8px;font-weight:800;text-transform:uppercase}
.designer-preview-empty{padding:50px 20px;text-align:center;color:var(--muted)}
.designer-preview-foot{display:flex;gap:10px;padding:12px 16px calc(14px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--surface)}
.designer-preview-back,.designer-preview-download{min-height:48px;border-radius:10px;font-size:14px;font-weight:800}
.designer-preview-back{flex:0 0 88px;border:1px solid var(--line);background:var(--bg);color:var(--muted)}
.designer-preview-download{flex:1;background:var(--green);color:#fff}
.designer-preview-download:disabled{opacity:.48;pointer-events:none}

@media(min-width:600px){
  .designer-launch-overlay,.designer-preview-overlay{align-items:center;padding:24px}
  .designer-launch-box{border-radius:18px;transform:translateY(14px);opacity:0;transition:transform .25s,opacity .25s}
  .designer-launch-overlay.visible .designer-launch-box{transform:translateY(0);opacity:1}
  .designer-preview-box{height:min(92vh,940px);border-radius:18px;transform:translateY(14px);opacity:0;transition:transform .25s,opacity .25s}
  .designer-preview-overlay.visible .designer-preview-box{transform:translateY(0);opacity:1}
  .designer-preview-grid{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:18px}
  .designer-preview-head{padding:20px 24px 14px}
  .designer-preview-notice{padding:11px 24px}
  .designer-preview-scroll{padding:20px 24px}
  .designer-preview-foot{padding:14px 24px 18px}
}

/* ── PDF Overlay ── */
.pdf-overlay{
  display:none;position:fixed;inset:0;
  background:rgba(0,0,0,0.55);z-index:300;
  align-items:center;justify-content:center;
}
.pdf-overlay.visible{display:flex}
.pdf-box{
  background:#fff;border-radius:18px;padding:28px 24px;
  text-align:center;max-width:320px;width:90%;
}
.pdf-box h3{font-family:'DM Serif Display',serif;font-size:18px;color:var(--green);margin-bottom:8px}
.pdf-box p{font-size:13px;color:#666;margin-bottom:14px}
.pdf-progress{width:100%;height:6px;background:#eee;border-radius:3px;overflow:hidden}
.pdf-progress-fill{height:100%;background:var(--green);border-radius:3px;transition:width 0.2s;width:0%}

/* ── Preview Modal ── */
.prev-overlay{display:none;position:fixed;inset:0;background:rgba(10,16,13,0.65);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);z-index:390;align-items:flex-end;justify-content:center}
.prev-overlay.visible{display:flex}
.prev-box{background:var(--surface);border-radius:24px 24px 0 0;width:100%;max-width:min(900px,95vw);max-height:90dvh;display:flex;flex-direction:column;transform:translateY(100%);transition:transform 0.35s cubic-bezier(0.23,1,0.32,1);overflow:hidden}
.prev-overlay.visible .prev-box{transform:translateY(0)}
.prev-handle{width:36px;height:4px;border-radius:2px;background:#ddd;margin:12px auto 0;flex-shrink:0}
.prev-head{display:flex;align-items:center;justify-content:space-between;padding:14px 22px 12px;flex-shrink:0;border-bottom:1px solid var(--line)}
.prev-title{font-family:'DM Serif Display',serif;font-size:18px;color:var(--green)}
.prev-count{font-size:12px;color:var(--muted);margin-top:2px}
.prev-close{width:32px;height:32px;border-radius:50%;background:var(--bg);border:1px solid var(--line);display:flex;align-items:center;justify-content:center;font-size:18px;color:var(--muted);flex-shrink:0}
.prev-scroll{flex:1;overflow-y:auto;padding:14px 16px;overscroll-behavior:contain}
.prev-scroll::-webkit-scrollbar{width:4px}
.prev-scroll::-webkit-scrollbar-thumb{background:#ddd;border-radius:2px}
.prev-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.prev-item{background:var(--bg);border:1.5px solid var(--line);border-radius:12px;overflow:hidden;position:relative;transition:border-color 0.15s}
.prev-item:hover{border-color:var(--green-light)}
.prev-product-card.draggable{cursor:grab}
.prev-product-card.draggable:active{cursor:grabbing}
.prev-product-card.dragging{opacity:.42;border-color:var(--green);box-shadow:0 10px 24px rgba(27,67,50,.14)}
.prev-item-img{width:100%;aspect-ratio:1/1;background:var(--surface-2);overflow:hidden}
.prev-item-img img{width:100%;height:100%;object-fit:contain}
.prev-item-noimg{width:100%;aspect-ratio:1/1;background:var(--surface-2);display:flex;align-items:center;justify-content:center;color:#ddd;font-size:28px}
.prev-cover-thumb{width:100%;aspect-ratio:1/1;background:#f5f1eb;display:flex;flex-direction:column;overflow:hidden;text-align:center}
.prev-cover-top{height:42%;background:var(--green);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:10px 8px}
.prev-cover-title{font-family:'DM Serif Display',serif;font-size:21px;line-height:1;color:#fff}
.prev-cover-line{width:38px;height:1px;background:var(--green-light);margin:8px 0 5px}
.prev-cover-sub{font-family:'DM Serif Display',serif;font-size:12px;font-style:italic;color:var(--green-pale)}
.prev-cover-mid{flex:1;display:flex;align-items:center;justify-content:center;font-family:'DM Serif Display',serif;font-size:13px;line-height:1.25;color:var(--green)}
.prev-cover-bottom{background:var(--green);border-top:3px solid var(--green-light);color:var(--green-pale);font-size:10px;font-weight:700;padding:8px 6px}
.prev-section-card{border-color:rgba(27,67,50,.45);background:#f4f1ec}
.prev-section-thumb{width:100%;aspect-ratio:1/1;background:var(--green);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:12px 10px;position:relative;overflow:hidden}
.prev-section-thumb:before,.prev-section-thumb:after{content:'';position:absolute;border-radius:50%;background:rgba(216,243,220,.16)}
.prev-section-thumb:before{width:58px;height:58px;left:-22px;top:18px}
.prev-section-thumb:after{width:76px;height:76px;right:-34px;bottom:-20px}
.prev-section-kicker{font-size:8px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--green-pale);position:relative;z-index:1}
.prev-section-title{font-family:'DM Serif Display',serif;font-size:20px;line-height:1.02;margin:12px 0 9px;position:relative;z-index:1}
.prev-section-rule{width:46px;height:2px;border-radius:2px;background:#c7a13a;margin-bottom:9px;position:relative;z-index:1}
.prev-section-note{font-size:9px;font-weight:700;color:var(--green-pale);position:relative;z-index:1}
.prev-item-body{padding:7px 8px 8px}
.prev-item-sku{font-size:9px;color:var(--muted);font-family:monospace;margin-bottom:2px}
.prev-item-name{font-size:11px;font-weight:600;color:var(--text);line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:2.6em}
.prev-item-price{font-size:11px;font-weight:700;color:var(--green);margin-top:3px}
.prev-item-rm{position:absolute;top:6px;right:6px;width:22px;height:22px;border-radius:50%;background:rgba(255,255,255,0.92);border:1px solid var(--line);display:flex;align-items:center;justify-content:center;font-size:14px;color:#999;z-index:2;transition:all 0.15s;box-shadow:0 1px 4px rgba(0,0,0,0.1)}
.prev-item-rm:hover{background:#fee2e2;border-color:#fca5a5;color:#dc2626}
.prev-empty{text-align:center;padding:40px 20px;color:var(--muted);font-size:14px}
.prev-foot{flex-shrink:0;padding:12px 22px 28px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:12px}
.prev-back{flex:0 0 auto;padding:13px 20px;border-radius:12px;font-size:14px;font-weight:600;color:var(--muted);background:var(--bg);border:1.5px solid var(--line);transition:all 0.15s}
.prev-back:hover{border-color:var(--muted);color:var(--text)}
.prev-proceed{flex:1;padding:13px 20px;border-radius:12px;font-size:14px;font-weight:800;color:#fff;background:var(--green);transition:all 0.15s;display:flex;align-items:center;justify-content:center;gap:8px}
.prev-proceed:hover{background:var(--green-mid)}
.prev-proceed:active{transform:scale(0.97)}
.prev-proceed:disabled{opacity:0.45;pointer-events:none}
@media(min-width:600px){
  .pdf-flow-overlay{align-items:center}
  .pdf-flow-box{
    width:min(92vw,640px);
    border-radius:20px;
    transform:translateY(16px);opacity:0;
    transition:transform 0.3s cubic-bezier(0.23,1,0.32,1),opacity 0.25s;
  }
  .pdf-flow-overlay.visible .pdf-flow-box{transform:translateY(0);opacity:1}
  .prev-overlay{align-items:center}
  .prev-box{border-radius:20px;max-width:900px;max-height:90vh;transform:translateY(16px);opacity:0;transition:transform 0.3s cubic-bezier(0.23,1,0.32,1),opacity 0.25s}
  .prev-overlay.visible .prev-box{transform:translateY(0);opacity:1}
  .prev-handle{display:none}
  .prev-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}
}
@media(min-width:900px){.prev-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}}

/* ── Toast ── */
.toast{
  position:fixed;bottom:80px;left:50%;
  transform:translateX(-50%) translateY(20px);
  background:var(--text);color:#fff;
  padding:10px 20px;border-radius:30px;
  font-size:13px;font-weight:500;
  opacity:0;transition:all 0.25s;pointer-events:none;
  z-index:250;white-space:nowrap;max-width:90%;
}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

/* ── Empty / Loading States ── */
.state-msg{text-align:center;padding:60px 20px}
.state-msg h3{font-size:18px;color:var(--muted);margin-bottom:6px}
.state-msg p{font-size:14px;color:#aaa}
.spinner{width:32px;height:32px;border:3px solid var(--line);border-top-color:var(--green);border-radius:50%;animation:spin 0.7s linear infinite;margin:0 auto 14px}
@keyframes spin{to{transform:rotate(360deg)}}

/* ── Mobile toolbar + filter bottom sheet (base) ── */
.mob-toolbar{display:none}
.mob-filter-btn{
  flex-shrink:0;position:relative;
  padding:8px 12px;border-radius:8px;border:1.5px solid var(--line);
  background:var(--surface);cursor:pointer;display:flex;align-items:center;gap:6px;
  font-size:13px;font-weight:500;color:var(--text);white-space:nowrap;
}
.mob-filter-btn svg{width:15px;height:15px;flex-shrink:0}
.mob-filter-badge{
  position:absolute;top:-6px;right:-6px;
  min-width:18px;height:18px;border-radius:9px;
  background:var(--green);color:#fff;font-size:10px;font-weight:700;
  display:none;align-items:center;justify-content:center;padding:0 4px;
}
.mob-filter-badge.has-filters{display:flex}
.mob-filter-backdrop{
  position:fixed;inset:0;background:rgba(0,0,0,0.35);z-index:299;
  opacity:0;pointer-events:none;transition:opacity 0.2s;display:none;
}
.mob-filter-backdrop.open{opacity:1;pointer-events:all}
.mob-sheet-handle{display:none}
.mob-filter-actions{display:none}

/* ── Responsive ── */
@media(max-width:899px){
  html,body{height:auto;overflow:auto}
  .app-shell{height:auto;overflow:visible}
  .layout{flex-direction:column}
  /* Filter sidebar → left-slide rail */
  .filter-sidebar{
    position:fixed;top:0;left:0;bottom:0;z-index:300;
    width:min(320px,84vw);overflow-y:auto;
    border-right:1px solid var(--line);border-radius:0 18px 18px 0;
    padding:14px 14px 16px;
    background:var(--surface);
    transform:translateX(-110%);
    transition:transform 0.32s cubic-bezier(0.22,1,0.36,1);
    box-shadow:4px 0 24px rgba(15,20,17,0.12);
    scroll-padding-bottom:calc(84px + env(safe-area-inset-bottom));
  }
  .filter-sidebar.mob-open{
    transform:translateX(0);
  }
  .filter-sidebar .search-box{display:none}
  .filter-sidebar[data-kind="KITS"] .search-box,
  .filter-sidebar[data-kind="ALL"] .search-box{display:flex;margin-bottom:12px}
  .filter-sidebar .filter-group{margin-bottom:8px}
  .filter-sidebar .filter-group.sort-inline{padding-left:1px;padding-right:1px}
  .filter-sidebar .sort-seg{width:100%}
  .filter-sidebar .sort-latest-btn{
    min-height:36px;
    padding:8px 12px 8px 28px;
    letter-spacing:.02em;
  }
  .filter-sidebar .sort-latest-btn::before{left:10px}
  .filter-sidebar .sort-latest-btn.active{box-shadow:0 2px 8px rgba(27,67,50,.18)}
  .budget-box{display:grid;grid-template-columns:1fr auto;gap:7px;align-items:center}
  .budget-actions{display:contents}
  .budget-label{grid-column:1;grid-row:1;align-self:center}
  .budget-clear-btn{grid-column:2;grid-row:1;justify-self:end}
  .budget-quick-grid{grid-column:1 / -1;grid-row:2;grid-template-columns:1fr;gap:7px}
  .budget-inputs{grid-column:1 / -1;grid-row:3;display:grid;grid-template-columns:1fr 1fr;gap:7px;width:100%;flex:none}
  .budget-mobile-feedback{display:none!important}
  .panel-chip-grid{gap:7px}
  .mob-sheet-handle{display:none}
  .mob-filter-actions{
    position:sticky;left:0;right:0;bottom:0;z-index:4;
    display:grid;grid-template-columns:auto 1fr;gap:8px;
    margin:18px -14px -16px;padding:10px 14px calc(12px + env(safe-area-inset-bottom));
    background:rgba(255,255,255,.96);
    border-top:1px solid var(--line);
    box-shadow:0 -10px 24px rgba(27,67,50,.08);
    -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  }
  .mob-clear-btn,.mob-done-btn{
    min-height:44px;border-radius:12px;font-family:inherit;font-size:13px;font-weight:800;cursor:pointer;
  }
  .mob-clear-btn{padding:0 14px;border:1.5px solid var(--line);background:#fff;color:var(--muted)}
  .mob-done-btn{border:0;background:var(--green);color:#fff;box-shadow:0 8px 18px rgba(27,67,50,.18)}
  .filter-sidebar[data-kind="KITS"] .mob-filter-actions,
  .filter-sidebar[data-kind="ALL"] .mob-filter-actions{grid-template-columns:1fr}
  .filter-sidebar[data-kind="KITS"] .mob-clear-btn,
  .filter-sidebar[data-kind="ALL"] .mob-clear-btn{display:none}
  .filter-sidebar[data-kind="KITS"] .mob-done-btn,
  .filter-sidebar[data-kind="ALL"] .mob-done-btn{min-height:54px;box-shadow:0 12px 26px rgba(27,67,50,.22);font-size:16px}
  .mob-toolbar{
    position:relative;z-index:240;
    display:flex;align-items:center;gap:8px;
    padding:8px 12px;
    background:rgba(245,241,235,0.96);
    border-bottom:1px solid var(--line);
    box-shadow:0 6px 18px rgba(37,31,24,0.08);
    -webkit-backdrop-filter:blur(12px);
    backdrop-filter:blur(12px);
  }
  .mob-toolbar.is-stuck{
    position:fixed;
    top:0;left:0;right:0;
  }
  .app-shell.mob-toolbar-stuck .layout{padding-top:57px}
  .mob-toolbar .search-box{flex:1}
  body.drawer-open .mob-toolbar{display:none!important}
  body.drawer-open .app-shell.mob-toolbar-stuck .layout{padding-top:0}
  .mob-filter-backdrop{display:block}
  .content{overflow:visible;padding:12px 12px 100px}
  .grid{grid-template-columns:repeat(2,1fr);gap:10px}
  .card-body{
    height:126px;
    min-height:126px;
    padding:9px 9px 10px;
    grid-template-rows:17px 42px 1fr 26px;
    gap:3px;
  }
  .card-cat{font-size:12px;line-height:17px}
  .card-name{
    font-size:13px;line-height:1.16;
    white-space:normal;
    display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
  }
  .card-foot{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:end;
    gap:6px;
  }
  .card-price{font-size:12px}
  .card-price .gst{font-size:10px;margin-left:3px}
  .card-foot-sku{font-size:0}
  .card-foot-sku::before{
    content:attr(data-short-sku);
    display:block;
    font-size:9px;
    line-height:1;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
  }
  .header-sub{display:none}
  .status-pill{display:none}
  .drawer{width:100vw;border-radius:0}
  /* Prevent iOS Safari auto-zoom on input focus */
  input,select,textarea{font-size:16px!important}
}
@media(hover:hover){
  .card:hover{box-shadow:var(--shadow-lg);transform:translateY(-3px)}
}

/* ── Reduced motion ── */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:0.01ms!important;transition-duration:0.01ms!important}
}

    *:focus-visible{outline:2px solid var(--green-light,#52B788);outline-offset:2px;}

/* ── AA Ready Stock badge ── */
.badge-aa{background:rgba(27,67,50,0.92);color:#d8f3dc;border:1px solid rgba(82,183,136,0.4)}

/* ── Card carousel nav ── */
.card-nav{
  position:absolute;top:50%;transform:translateY(-50%);
  width:26px;height:26px;border-radius:50%;
  background:rgba(255,255,255,0.88);color:var(--text);
  font-size:18px;line-height:1;display:none;
  align-items:center;justify-content:center;z-index:3;
  box-shadow:0 1px 4px rgba(0,0,0,0.18);
  transition:opacity 0.15s;padding:0;
}
.card-nav-l{left:5px}
.card-nav-r{right:5px}
.card:hover .card-nav{display:flex}
@media(max-width:899px){.card-nav{display:flex;width:22px;height:22px;font-size:15px;opacity:0.8}}
.card-img-count{display:none}
.card-dots{
  position:absolute;bottom:7px;left:50%;transform:translateX(-50%);
  display:flex;gap:4px;z-index:3;
}
.cdot{
  width:5px;height:5px;border-radius:50%;
  background:rgba(255,255,255,0.45);transition:background 0.15s;
}
.cdot.active{background:#fff}
/* Counter overlay — replaces dots when the card has more than 8 images (cycles
   all buckets: Standard → Infographic → Lifestyle → Custom). */
.card-counter{
  position:absolute;bottom:7px;left:50%;transform:translateX(-50%);
  z-index:3;font-size:10px;font-weight:600;letter-spacing:0.02em;
  padding:2px 8px;border-radius:9px;
  background:rgba(15,25,18,0.55);color:#fff;
  backdrop-filter:blur(4px);font-variant-numeric:tabular-nums
}
@media(max-width:899px){
  .card-nav,.card-dots,.card-counter{display:none!important}
  .card-img-count{
    display:block;position:absolute;bottom:7px;left:50%;transform:translateX(-50%);
    z-index:3;font-size:10px;font-weight:800;letter-spacing:0;
    padding:3px 8px;border-radius:9px;background:rgba(15,25,18,0.58);
    color:#fff;backdrop-filter:blur(4px);font-variant-numeric:tabular-nums;
    pointer-events:none;white-space:nowrap
  }
  .card[data-sku="MTL"] .card-img-count{left:39%}
}
/* Skeleton card — shimmer placeholder while initial Supabase fetch is in flight */
.card.skel{pointer-events:none;cursor:default}
.card.skel .card-img,
.card.skel .skel-bar{
  background:linear-gradient(90deg,#ECE7DE 25%,#F5F1E6 50%,#ECE7DE 75%);
  background-size:200% 100%;
  animation:skelShimmer 1.4s linear infinite
}
.card.skel .skel-bar{height:11px;border-radius:5px;margin:6px 11px;display:block}
.card.skel .skel-bar.short{width:38%;height:9px;opacity:0.7}
.card.skel .skel-bar.title{height:14px;margin-top:8px;width:80%}
.card.skel .skel-bar.price{width:32%;height:13px;margin-top:6px}
@keyframes skelShimmer{
  0%{background-position:200% 0}
  100%{background-position:-200% 0}
}
@media (prefers-reduced-motion: reduce){
  .card.skel .card-img, .card.skel .skel-bar{animation:none}
}

body.standalone .drawer-overlay{background:var(--bg);backdrop-filter:none;-webkit-backdrop-filter:none}
body.standalone .x-btn{display:none}

/* ── Select All button ── */
.select-all-btn{
  font-size:12px;font-weight:700;
  padding:5px 14px;border-radius:20px;
  border:1.5px solid var(--green-light);
  background:var(--green-soft);color:var(--green);
  transition:all 0.15s;white-space:nowrap;
}
.select-all-btn:hover{background:var(--green-pale);border-color:var(--green)}
.select-all-btn.deselect-mode{background:var(--green);color:#fff;border-color:var(--green)}

/* ── PDF Options Modal ── */
.pdf-opts-overlay{
  display:none;position:fixed;inset:0;
  background:rgba(10,16,13,0.65);
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
  z-index:400;align-items:flex-end;justify-content:center;
}
.pdf-opts-overlay.visible{display:flex}
.pdf-opts-box{
  background:var(--surface);
  border-radius:24px 24px 0 0;
  width:100%;max-width:560px;
  transform:translateY(100%);
  transition:transform 0.35s cubic-bezier(0.23,1,0.32,1);
  overflow:hidden;
}
.pdf-opts-overlay.visible .pdf-opts-box{transform:translateY(0)}
.pdf-opts-box.is-designer{max-width:1040px}
.pdf-opts-handle{
  width:36px;height:4px;border-radius:2px;background:#ddd;
  margin:12px auto 0;
}
.pdf-opts-inner{padding:16px 22px 32px}
.pdf-opts-head{
  display:flex;align-items:center;gap:12px;margin-bottom:18px;
}
.pdf-opts-head-icon{
  width:40px;height:40px;border-radius:13px;
  background:var(--green);color:#fff;
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
}
.pdf-opts-title{font-family:'DM Serif Display',serif;font-size:18px;color:var(--green);line-height:1.2}
.pdf-opts-subtitle{font-size:12px;color:var(--muted);margin-top:2px}
.pdf-opts-sep{height:1px;background:var(--line);margin:0 -22px 16px}
.pdf-opts-section-label{
  font-size:10px;font-weight:800;letter-spacing:0.8px;
  text-transform:uppercase;color:var(--muted);margin-bottom:8px;
}
.pdf-opts-grid{display:grid;grid-template-columns:1fr;gap:16px}
.pdf-opts-main{min-width:0}
.pdf-style-opts{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;margin-bottom:18px;
}
.pdf-style-opt{
  display:flex;flex-direction:column;gap:6px;
  padding:14px 14px 15px;border-radius:16px;border:1.5px solid var(--line);
  background:var(--bg);text-align:left;transition:all 0.15s;
}
.pdf-style-opt:hover{border-color:var(--green-light);background:#fbfaf7}
.pdf-style-opt.selected{border-color:var(--green);background:var(--green-soft)}
.pdf-style-opt-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.pdf-style-opt-name{font-size:14px;font-weight:800;color:var(--text);line-height:1.2}
.pdf-style-opt-desc{font-size:12px;color:var(--muted);line-height:1.45}
.pdf-style-opt.selected .pdf-check{background:var(--green);border-color:var(--green)}
.pdf-style-opt.selected .pdf-check svg{display:block}
.pdf-mode-summary{
  display:flex;flex-direction:column;gap:6px;
  padding:14px 14px 15px;margin-bottom:18px;
  border-radius:16px;border:1.5px solid var(--line);
  background:#fbfaf7;
}
.pdf-mode-summary-top{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
}
.pdf-mode-summary-name{
  font-size:14px;font-weight:800;color:var(--text);line-height:1.2;
}
.pdf-mode-summary-badge{
  display:inline-flex;align-items:center;justify-content:center;
  padding:4px 9px;border-radius:999px;
  background:var(--green-soft);color:var(--green);
  font-size:10px;font-weight:800;letter-spacing:0.4px;text-transform:uppercase;
}
.pdf-mode-summary-copy{
  font-size:12px;color:var(--muted);line-height:1.45;
}
.pdf-price-opts{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px;
  margin-bottom:18px;
}
.pdf-price-opts.two-options{grid-template-columns:repeat(2,minmax(0,1fr))}
.pdf-price-opt{
  display:flex;flex-direction:column;
  min-width:0;
  padding:12px 10px;border-radius:13px;
  border:2px solid var(--line);background:var(--bg);
  cursor:pointer;transition:all 0.15s;text-align:left;
}
.pdf-price-opt:hover{border-color:var(--green-light);background:var(--green-soft)}
.pdf-price-opt.selected{border-color:var(--green);background:var(--green-soft)}
.pdf-price-opt-top{
  display:flex;justify-content:space-between;align-items:flex-start;
  width:100%;margin-bottom:8px;
}
.pdf-price-opt-icon{
  font-size:20px;font-weight:700;line-height:1;
  color:var(--muted);transition:color 0.15s;font-family:'DM Sans',sans-serif;
}
.pdf-price-opt.selected .pdf-price-opt-icon{color:var(--green)}
.pdf-price-opt-name{font-size:12px;font-weight:700;color:var(--text);line-height:1.2}
.pdf-price-opt-desc{font-size:11px;color:var(--muted);margin-top:2px;line-height:1.35}
.pdf-check{
  width:18px;height:18px;border-radius:50%;flex-shrink:0;
  border:2px solid var(--line);
  display:flex;align-items:center;justify-content:center;
  transition:all 0.15s;
}
.pdf-price-opt.selected .pdf-check{background:var(--green);border-color:var(--green)}
.pdf-check svg{display:none}
.pdf-price-opt.selected .pdf-check svg{display:block}

.pdf-excel-row{
  display:flex;align-items:center;gap:12px;
  padding:12px 14px;border-radius:13px;
  border:1.5px solid var(--line);background:var(--bg);
  cursor:pointer;margin-bottom:22px;transition:all 0.15s;
}
.pdf-excel-row:hover{border-color:var(--green-light)}
.pdf-excel-row.on{border-color:var(--green);background:var(--green-soft)}
.pdf-excel-icon{
  width:38px;height:38px;border-radius:11px;
  background:#e8f5e9;color:#2e7d32;
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
  transition:all 0.15s;
}
.pdf-excel-row.on .pdf-excel-icon{background:var(--green);color:#fff}
.pdf-excel-text{flex:1}
.pdf-excel-name{font-size:13px;font-weight:700;color:var(--text)}
.pdf-excel-meta,.pdf-link-desc{font-size:11px;color:var(--muted);margin-top:2px;line-height:1.4}

.pdf-opts-actions{
  display:flex;gap:8px;
  position:sticky;bottom:0;z-index:2;
  padding-top:14px;margin-top:4px;
  background:linear-gradient(180deg,rgba(251,248,240,0),rgba(251,248,240,0.94) 20%,var(--surface) 60%);
}
.pdf-opts-cancel{
  flex:0 0 auto;padding:13px 20px;border-radius:12px;
  font-size:14px;font-weight:600;color:var(--muted);
  background:var(--bg);border:1.5px solid var(--line);
  transition:all 0.15s;
}
.pdf-opts-cancel:hover{border-color:var(--muted);color:var(--text)}
.pdf-opts-go{
  flex:1;padding:13px 20px;border-radius:12px;
  font-size:14px;font-weight:800;color:#fff;
  background:var(--green);transition:all 0.15s;
  display:flex;align-items:center;justify-content:center;gap:8px;
}
.pdf-opts-go:hover{background:var(--green-mid)}
.pdf-opts-go:active{transform:scale(0.97)}
.designer-panel{margin-bottom:18px;min-width:0}
.designer-sort-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px}
.designer-sort-btn{
  padding:10px 12px;border-radius:12px;border:1.5px solid var(--line);background:var(--bg);
  font-size:12px;font-weight:700;color:var(--text);text-align:left;transition:all 0.15s;
}
.designer-sort-btn.active{border-color:var(--green);background:var(--green-soft);color:var(--green)}
.designer-cover-wrap{
  padding:12px;border:1px solid var(--line);border-radius:14px;background:#fbfaf7;
}
.designer-cover-note{font-size:11px;color:var(--muted);line-height:1.4;margin-bottom:10px}
.designer-cover-groups{display:flex;flex-direction:column;gap:12px}
.designer-cover-group{display:flex;flex-direction:column;gap:8px}
.designer-cover-title{font-size:12px;font-weight:800;color:var(--green)}
.designer-cover-options{display:flex;gap:8px;overflow:auto;padding-bottom:2px}
.designer-cover-option{
  min-width:120px;max-width:140px;border:1.5px solid var(--line);border-radius:14px;background:#fff;
  overflow:hidden;text-align:left;transition:all 0.15s;flex:0 0 auto;
}
.designer-cover-option.selected{border-color:var(--green);box-shadow:0 0 0 2px rgba(27,67,50,0.08)}
.designer-cover-option img{width:100%;aspect-ratio:9/16;display:block;object-fit:cover;background:#efe9de}
.designer-cover-option-body{padding:8px 9px 10px}
.designer-cover-option-name{font-size:11px;font-weight:700;color:var(--text);line-height:1.3}
.designer-cover-option-meta{font-size:10px;color:var(--muted);margin-top:3px}
.designer-cover-missing{font-size:11px;color:var(--muted)}

@media(min-width:600px){
  .pdf-opts-overlay{align-items:center}
  .pdf-opts-box{
    width:min(92vw,640px);
    border-radius:20px;max-height:min(88vh,980px);
    transform:translateY(16px);opacity:0;
    transition:transform 0.3s cubic-bezier(0.23,1,0.32,1),opacity 0.25s;
  }
  .pdf-opts-box.is-designer{width:min(94vw,1040px)}
  .pdf-opts-overlay.visible .pdf-opts-box{transform:translateY(0);opacity:1}
  .pdf-opts-handle{display:none}
  .pdf-opts-inner{padding:22px 24px 24px;max-height:min(88vh,980px);overflow:auto}
  .pdf-opts-box.is-designer .pdf-opts-grid{grid-template-columns:minmax(0,1.05fr) minmax(320px,0.95fr);align-items:start}
  .designer-panel{
    margin-bottom:0;padding:16px;border:1px solid var(--line);border-radius:18px;
    background:#fdfcf8;position:sticky;top:0;
  }
}
@media(max-width:420px){
  .pdf-flow-style-opts,.pdf-style-opts,.pdf-price-opts,.designer-sort-row{grid-template-columns:1fr}
}

/* ════════════════════════════════════════════════
   STANDALONE PRODUCT PAGE
   ════════════════════════════════════════════════ */
#sp-root{display:none;position:fixed;inset:0;z-index:400;background:var(--bg);overflow:hidden}
#sp-root.active{display:block}

.sp-page{
  display:flex;height:100dvh;overflow:hidden;
}

/* Left — sticky image column */
.sp-img-col{
  width:55%;flex-shrink:0;position:relative;
  background:#1a1a18;overflow:hidden;
}
.sp-img-wrap{
  position:relative;width:100%;height:100%;
}
.sp-img-main{
  width:100%;height:calc(100% - 80px);object-fit:contain;
  background:#1a1a18;display:block;
  transition:opacity 0.25s ease-out;
}
.sp-img-overlay-tl{position:absolute;top:14px;left:14px;z-index:10;display:flex;flex-direction:column;gap:8px}
.sp-img-overlay-tr{position:absolute;top:14px;right:14px;z-index:10}
.sp-img-dl{position:absolute;bottom:90px;right:14px;z-index:10;width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,0.18);color:#fff;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background 0.15s,transform 0.1s;backdrop-filter:blur(4px)}
.sp-img-dl:hover{background:rgba(255,255,255,0.3);transform:scale(1.08)}
.sp-img-dl:active{transform:scale(0.94)}
.sp-img-dl svg{width:18px;height:18px}
.sp-copy-img-btn{
  display:flex;align-items:center;gap:6px;
  padding:9px 14px;border-radius:10px;font-size:12px;font-weight:700;
  background:rgba(27,67,50,0.82);color:#fff;border:none;
  box-shadow:0 3px 12px rgba(0,0,0,0.3);cursor:pointer;
  transition:background 0.15s;
}
.sp-copy-img-btn:hover{background:rgba(27,67,50,0.95)}
.sp-copy-img-btn.copied{background:#166534}
.sp-copy-img-btn svg{width:13px;height:13px;flex-shrink:0}
.sp-cat-btn{
  display:flex;align-items:center;gap:6px;
  padding:9px 14px;border-radius:10px;font-size:12px;font-weight:700;
  background:rgba(146,88,8,0.88);color:#fff;border:none;
  box-shadow:0 3px 12px rgba(0,0,0,0.3);cursor:pointer;
  transition:background 0.15s;
}
.sp-cat-btn:hover{background:rgba(120,70,5,0.95)}
.sp-cat-btn.selected{background:rgba(120,70,5,0.95)}
.sp-nav{
  position:absolute;top:50%;transform:translateY(-50%);
  width:44px;height:44px;border-radius:50%;
  background:rgba(255,255,255,0.15);color:#fff;border:none;
  font-size:26px;line-height:1;display:flex;align-items:center;justify-content:center;
  z-index:10;cursor:pointer;transition:background 0.15s;backdrop-filter:blur(4px);
}
.sp-nav:hover{background:rgba(255,255,255,0.28)}
.sp-nav-l{left:12px}
.sp-nav-r{right:12px}
.sp-thumbs{
  position:absolute;bottom:0;left:0;right:0;height:80px;
  display:flex;align-items:center;gap:6px;padding:10px 14px;
  overflow-x:auto;scrollbar-width:none;
  background:linear-gradient(to top,rgba(0,0,0,0.5),transparent);
}
.sp-thumbs::-webkit-scrollbar{display:none}
.sp-thumb{
  width:54px;height:54px;flex-shrink:0;border-radius:8px;overflow:hidden;
  border:2px solid transparent;cursor:pointer;opacity:0.65;
  transition:opacity 0.15s,border-color 0.15s;
}
.sp-thumb img{width:100%;height:100%;object-fit:cover}
.sp-thumb.active{border-color:#fff;opacity:1}
.sp-mode-row{
  position:absolute;bottom:90px;left:14px;z-index:10;
  display:flex;gap:4px;
}
.sp-mode-btn{
  font-size:11px;font-weight:700;padding:5px 10px;border-radius:8px;border:none;
  background:rgba(255,255,255,0.15);color:rgba(255,255,255,0.8);
  cursor:pointer;transition:all 0.15s;backdrop-filter:blur(4px);
}
.sp-mode-btn.active{background:rgba(255,255,255,0.9);color:var(--text)}

/* Right — scrollable info column */
.sp-info-col{
  flex:1;overflow-y:auto;overflow-x:hidden;
  padding:0 0 120px 0;background:var(--bg);
}
.sp-info-col::-webkit-scrollbar{width:4px}
.sp-info-col::-webkit-scrollbar-thumb{background:#ddd;border-radius:2px}
.sp-topbar{
  display:flex;align-items:center;justify-content:space-between;
  padding:14px 24px;border-bottom:1px solid var(--line);
  position:sticky;top:0;z-index:5;background:var(--bg);
}
.sp-brand{font-size:11px;font-weight:700;letter-spacing:0.5px;color:var(--muted);text-transform:uppercase}
.sp-browse-link{font-size:12px;color:var(--green);font-weight:600;text-decoration:none;display:flex;align-items:center;gap:4px}
.sp-browse-link:hover{text-decoration:underline}
.sp-info-body{padding:28px 24px 0}
.sp-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:16px}
.sp-name{
  font-family:'DM Serif Display',serif;
  font-size:34px;font-weight:400;line-height:1.15;
  color:var(--text);margin-bottom:6px;
}
.sp-sku{font-size:12px;color:var(--muted);margin-bottom:20px;letter-spacing:0.3px}
.sp-price-card{
  background:var(--green);color:#fff;
  border-radius:16px;padding:20px 22px;margin-bottom:20px;
}
.sp-price-label{font-size:11px;opacity:0.7;text-transform:uppercase;letter-spacing:0.5px;margin-bottom:6px;font-weight:600}
.sp-price-val{font-size:40px;font-weight:800;line-height:1}
.sp-price-orig{font-size:16px;opacity:0.55;text-decoration:line-through;margin-left:8px}
.sp-price-gst{font-size:13px;opacity:0.75;margin-left:8px}
.sp-price-spec{font-size:12px;opacity:0.65;margin-top:8px;line-height:1.4}
.sp-spec-callout{
  display:flex;align-items:flex-start;gap:8px;
  background:var(--surface);border:1.5px solid var(--line);
  border-radius:12px;padding:12px 14px;margin-bottom:18px;
  font-size:13px;color:var(--text);line-height:1.5;font-weight:500;
}
.sp-btn-pdf.loading{background:#2a5e45;opacity:0.8;pointer-events:none}
.sp-section-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:0.5px;color:var(--muted);margin-bottom:8px}
.sp-desc{font-size:14px;color:#555;line-height:1.65;margin-bottom:16px;border-left:3px solid var(--green-light);padding-left:14px}
.sp-long-desc{font-size:14px;color:#555;line-height:1.65;margin-bottom:16px;border-left:3px solid var(--gold);padding-left:14px}
.sp-features{padding:0;list-style:none;margin-bottom:20px}
.sp-features li{font-size:13px;color:var(--text);line-height:1.5;padding:8px 0 8px 22px;position:relative;border-bottom:1px solid var(--line)}
.sp-features li:last-child{border-bottom:none}
.sp-features li::before{content:'→';position:absolute;left:0;color:var(--green-light);font-weight:700}
.sp-video-wrap{position:relative;padding-bottom:56.25%;height:0;overflow:hidden;border-radius:12px;margin-bottom:20px}
.sp-video-wrap iframe{position:absolute;top:0;left:0;width:100%;height:100%;border:none;border-radius:12px}
.sp-actions{display:flex;flex-direction:column;gap:10px;margin-top:8px}
.sp-btn{
  display:flex;align-items:center;justify-content:center;gap:10px;
  padding:16px 20px;border-radius:14px;font-size:14px;font-weight:700;
  border:none;cursor:pointer;width:100%;
  transition:transform 0.1s ease-out,background 0.15s;
}
.sp-btn:active{transform:scale(0.98)}
.sp-btn svg{width:18px;height:18px;flex-shrink:0}
.sp-actions .sp-btn{background:var(--surface);color:var(--text);border:1.5px solid var(--line)}
.sp-actions .sp-btn svg{stroke:var(--green)}
.sp-actions .sp-btn.active{background:var(--green);color:#fff;border-color:var(--green)}
.sp-actions .sp-btn.active svg{stroke:#fff}
.sp-footer{text-align:center;padding:32px 24px 0;font-size:11px;color:var(--muted);letter-spacing:0.3px}

/* Mobile standalone */
@media(max-width:899px){
  .sp-page{flex-direction:column;overflow-y:auto;overflow-x:hidden}
  .sp-img-col{width:100%;height:min(80vw,380px);flex-shrink:0}
  .sp-img-main{height:calc(100% - 64px)}
  .sp-thumbs{height:64px}
  .sp-thumb{width:44px;height:44px}
  .sp-info-col{overflow:visible;padding-bottom:80px}
  .sp-info-body{padding:20px 16px 0}
  .sp-name{font-size:26px}
  .sp-price-val{font-size:32px}
  .sp-actions{display:none} /* hidden — use bottom bar */
  .sp-bottom-bar{
    display:flex;position:fixed;bottom:0;left:0;right:0;z-index:420;
    background:var(--surface);border-top:1px solid var(--line);
    padding:10px 12px;gap:8px;
    box-shadow:0 -4px 20px rgba(0,0,0,0.08);
  }
  .sp-bottom-bar .sp-btn{background:var(--surface);color:var(--text);border:1.5px solid var(--line);border-radius:12px;padding:13px 10px;font-size:12px;flex-direction:column;gap:5px;flex:1}
  .sp-bottom-bar .sp-btn svg{width:16px;height:16px;stroke:var(--green)}
  .sp-bottom-bar .sp-btn span{font-size:11px;font-weight:600;color:var(--text)}
  .sp-bottom-bar .sp-btn.active{background:var(--green);border-color:var(--green);color:#fff}
  .sp-bottom-bar .sp-btn.active svg{stroke:#fff}
  .sp-bottom-bar .sp-btn.active span{color:#fff}
  .sp-bottom-bar .sp-btn:active{transform:scale(0.96)}
  .sp-topbar{padding:10px 16px}
  .sp-mode-row{bottom:74px}
  .sp-img-dl{bottom:74px}
}
@media(min-width:900px){
  .sp-bottom-bar{display:none}
}

/* ════════════════════════════════════════════════
   WA GALLERY — header button + pop-out modal
   ════════════════════════════════════════════════ */
.wa-btn{
  display:flex;align-items:center;gap:7px;
  background:#25D366;color:#fff;
  border:1px solid rgba(255,255,255,0.18);
  padding:6px 12px 6px 10px;border-radius:20px;
  font-family:inherit;font-size:12px;font-weight:700;letter-spacing:0.15px;
  cursor:pointer;white-space:nowrap;
  transition:transform 0.12s,box-shadow 0.12s,background 0.15s;
  box-shadow:0 1px 0 rgba(0,0,0,0.15);
}
.wa-btn:hover{background:#1ebe5d;transform:translateY(-1px);box-shadow:0 3px 10px rgba(37,211,102,0.35)}
.wa-btn:active{transform:translateY(0)}
.wa-btn svg{width:14px;height:14px;flex-shrink:0}
.wa-btn .lbl-full{display:inline}
.wa-btn .lbl-short{display:none}
@media(max-width:899px){
  .wa-btn{padding:5px 9px 5px 8px;font-size:11px}
  .wa-btn .lbl-full{display:none}
  .wa-btn .lbl-short{display:inline}
}

/* ── Trade access circle + modal (reseller login) ─────────────────────
   Discreet 28 px button next to WA. Click → small phone-input modal.
   Auth check is mobile + B suffix vs RESELLERS sheet (allow-list). */
.trade-btn{
  display:inline-flex;align-items:center;justify-content:center;
  width:28px;height:28px;border-radius:50%;
  background:rgba(255,255,255,0.12);color:#fff;
  border:1px solid rgba(255,255,255,0.22);
  cursor:pointer;padding:0;
  transition:background 0.15s,transform 0.12s,box-shadow 0.15s;
}
.trade-btn:hover{background:rgba(255,255,255,0.2)}
.trade-btn:active{transform:scale(0.94)}
.trade-btn svg{width:13px;height:13px}
.trade-btn.on{background:rgba(255,255,255,0.18);box-shadow:0 0 0 2px var(--green-light,#a3d39c)}
.trade-btn.on::after{
  content:'';position:absolute;width:7px;height:7px;border-radius:50%;
  background:#25D366;margin-left:18px;margin-top:-18px;border:1.5px solid #fff;
}
.trade-overlay{
  display:none;position:fixed;inset:0;
  background:rgba(10,16,13,0.6);
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);
  z-index:520;align-items:center;justify-content:center;padding:16px;
}
.trade-overlay.visible{display:flex;animation:wagFade 0.2s ease}
.trade-box{
  background:var(--surface);border-radius:14px;
  width:100%;max-width:360px;overflow:hidden;
  box-shadow:0 20px 60px rgba(0,0,0,0.32);
  animation:wagSlideUp 0.24s cubic-bezier(0.23,1,0.32,1);
}
.trade-head{
  display:flex;align-items:center;gap:10px;padding:14px 16px;
  background:var(--green);color:#fff;
}
.trade-head-icon{
  width:32px;height:32px;border-radius:8px;background:rgba(255,255,255,0.18);
  display:flex;align-items:center;justify-content:center;
}
.trade-head-icon svg{width:16px;height:16px}
.trade-head-title{font-family:'DM Serif Display',serif;font-size:16px;line-height:1.1}
.trade-head-close{
  margin-left:auto;width:30px;height:30px;border-radius:8px;
  background:rgba(255,255,255,0.12);color:#fff;
  font-size:18px;line-height:1;cursor:pointer;border:none;
}
.trade-head-close:hover{background:rgba(255,255,255,0.22)}
.trade-body{padding:18px 18px 20px}
.trade-inputs{display:grid;gap:10px}
.trade-input{
  width:100%;padding:11px 12px;border:1.5px solid var(--line);
  border-radius:10px;font-size:14px;background:var(--bg);
  color:var(--text);outline:none;
  font-family:inherit;
  transition:border-color 0.15s;
}
.trade-input:focus{border-color:var(--green)}
.trade-input.err{border-color:#c0392b}
.trade-err{
  display:none;margin-top:8px;font-size:12px;color:#c0392b;font-weight:600;
}
.trade-err.show{display:block}
.trade-submit{
  margin-top:12px;width:100%;
  padding:11px 14px;border-radius:10px;border:none;
  background:var(--green);color:#fff;
  font-family:inherit;font-size:13px;font-weight:700;letter-spacing:0.2px;
  cursor:pointer;
  transition:background 0.15s,transform 0.12s;
}
.trade-submit:hover{background:var(--green-mid,#2e6a3a)}
.trade-submit:active{transform:scale(0.98)}
.trade-active-block{
  margin-top:10px;padding:12px;border-radius:10px;
  background:var(--green-pale,#eaf3e6);
  border:1px solid var(--green-light,#c8e1c2);
}
.trade-active-block .who{font-size:13px;font-weight:700;color:var(--text)}
.trade-active-block .pct{font-size:12px;color:var(--green-mid,#2e6a3a);margin-top:2px}
.trade-logout{
  margin-top:10px;display:inline-block;font-size:12px;font-weight:600;
  color:#c0392b;cursor:pointer;background:none;border:none;padding:0;
}
.trade-logout:hover{text-decoration:underline}

.wag-overlay{
  display:none;position:fixed;inset:0;
  background:
    radial-gradient(circle at 20% 0%,rgba(82,183,136,0.12),transparent 30%),
    linear-gradient(135deg,rgba(10,16,13,0.82),rgba(2,6,4,0.9));
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  z-index:500;align-items:center;justify-content:center;padding:16px;
}
.wag-overlay.visible{display:flex;animation:wagFade 0.2s ease}
@keyframes wagFade{from{opacity:0}to{opacity:1}}
.wag-box{
  background:rgba(247,243,237,0.98);border-radius:18px;
  width:calc(100vw - 28px);max-width:1600px;height:calc(100vh - 28px);
  display:flex;flex-direction:column;overflow:hidden;
  border:1px solid rgba(255,255,255,0.18);
  box-shadow:0 28px 80px rgba(0,0,0,0.46);
  animation:wagSlideUp 0.28s cubic-bezier(0.23,1,0.32,1);
}
@keyframes wagSlideUp{from{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}
.wag-head{
  display:flex;align-items:center;gap:12px;padding:14px 18px;
  background:linear-gradient(135deg,#123629,#1f5a43);color:#fff;flex-shrink:0;
  position:sticky;top:0;z-index:2;
  border-bottom:1px solid rgba(255,255,255,0.12);
}
.wag-home{
  width:36px;height:36px;border-radius:9px;background:rgba(255,255,255,0.12);
  color:#fff;border:none;display:flex;align-items:center;justify-content:center;
  flex-shrink:0;cursor:pointer;font-family:inherit;
}
.wag-home svg{width:18px;height:18px}
.wag-home:hover{background:rgba(255,255,255,0.2)}
.wag-icon{
  width:36px;height:36px;border-radius:9px;background:#25D366;
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
}
.wag-icon svg{width:20px;height:20px}
.wag-title{font-family:'DM Serif Display',serif;font-size:18px;line-height:1.1}
.wag-sub{font-size:11px;color:rgba(255,255,255,0.7);margin-top:2px}
.wag-head > div:not(.wag-icon):not(.wag-mode-tabs){min-width:0}
.wag-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wag-mode-tabs{
  margin-left:auto;display:inline-flex;align-items:center;gap:3px;
  padding:3px;border-radius:14px;background:rgba(255,255,255,0.12);
  border:1px solid rgba(255,255,255,0.16);flex-shrink:0;
}
.wag-mode-tabs button{
  min-height:28px;border-radius:11px;border:none;background:transparent;color:rgba(255,255,255,0.78);
  padding:0 10px;font-family:inherit;font-size:11px;font-weight:900;letter-spacing:0.15px;
  white-space:nowrap;cursor:pointer;
}
.wag-mode-tabs button.active{
  background:#25D366;color:#fff;box-shadow:0 4px 14px rgba(0,0,0,0.16);
}
.wag-select-toggle{
  min-height:36px;border-radius:10px;
  padding:0 12px;background:rgba(255,255,255,0.13);
  color:#fff;border:1px solid rgba(255,255,255,0.18);
  font-size:12px;font-weight:800;font-family:inherit;
  flex-shrink:0;
}
.wag-select-toggle:hover{background:rgba(255,255,255,0.22)}
.wag-close{
  width:36px;height:36px;border-radius:9px;background:rgba(255,255,255,0.12);
  color:#fff;font-size:20px;line-height:1;cursor:pointer;
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
  border:none;font-family:inherit;
}
.wag-close:hover{background:rgba(255,255,255,0.2)}
.wag-tools{
  display:flex;gap:10px;align-items:center;
  padding:10px 14px;
  background:rgba(255,255,255,0.72);
  border-bottom:1px solid rgba(27,67,50,0.08);
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);
}
.wag-filter{
  display:flex;align-items:center;gap:7px;
  min-width:0;color:var(--green);
  font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;
}
.wag-filter select{
  min-width:150px;max-width:240px;
  height:36px;border:1px solid rgba(27,67,50,0.18);
  border-radius:10px;background:#fff;color:var(--text);
  padding:0 10px;font-size:12px;font-weight:700;
  font-family:inherit;outline:none;
}
.wag-filter select:focus{border-color:var(--green);box-shadow:0 0 0 3px rgba(27,67,50,0.08)}
.wag-selection-bar{
  display:none;align-items:center;gap:8px;
  padding:9px 14px;background:#123629;color:#fff;
  border-bottom:1px solid rgba(255,255,255,0.1);
  font-size:12px;font-weight:800;
}
.wag-selection-bar.visible{display:flex}
.wag-selection-bar span{margin-right:auto}
.wag-selection-bar button{
  min-height:34px;border-radius:10px;
  padding:0 12px;background:rgba(255,255,255,0.12);
  border:1px solid rgba(255,255,255,0.18);
  color:#fff;font-size:12px;font-weight:800;font-family:inherit;
}
.wag-selection-bar button:first-of-type{background:#25D366;border-color:#25D366}
.wag-grid{
  flex:1;overflow-y:auto;padding:10px;
  display:flex;flex-wrap:wrap;gap:10px;
  background:var(--bg);align-content:start;
}
.wag-grid::-webkit-scrollbar{width:6px}
.wag-grid::-webkit-scrollbar-thumb{background:#c8bfb1;border-radius:3px}
.wag-tile{
  flex:0 0 calc((100% - 60px) / 7);
  width:auto;aspect-ratio:9/16;
  background:#f0ede8;border-radius:6px;overflow:hidden;
  cursor:pointer;position:relative;
  box-shadow:0 1px 2px rgba(0,0,0,0.06);
  transition:transform 0.15s,box-shadow 0.15s;
}
.wag-tile:hover{transform:translateY(-2px);box-shadow:0 4px 14px rgba(0,0,0,0.14)}
.wag-tile img,.wag-tile video{width:100%;height:100%;object-fit:cover;display:block}
.wag-tile::after{
  content:'';position:absolute;left:0;right:0;bottom:0;height:64px;
  background:linear-gradient(180deg,transparent,rgba(0,0,0,0.30));
  opacity:.55;pointer-events:none;
}
.wag-tile.video::before{
  content:'';position:absolute;left:50%;top:50%;transform:translate(-42%,-50%);
  z-index:2;width:0;height:0;
  border-top:14px solid transparent;border-bottom:14px solid transparent;border-left:20px solid rgba(255,255,255,0.92);
  filter:drop-shadow(0 4px 14px rgba(0,0,0,0.42));
}
.wag-video-fallback{
  width:100%;height:100%;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(145deg,#173d2d,#101a14);color:#fff;
  font-size:13px;font-weight:900;text-align:center;padding:14px;
}
.wag-tile.selected{box-shadow:0 0 0 3px #25D366,0 8px 22px rgba(0,0,0,0.18)}
.wag-tile-meta{
  position:absolute;left:8px;right:8px;bottom:8px;z-index:2;
  display:flex;align-items:center;gap:6px;min-width:0;
}
.wag-tile-sku{
  max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  background:rgba(14,49,36,0.72);color:#fff;
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);
  border:1px solid rgba(255,255,255,0.18);
  font-size:10px;font-weight:900;line-height:1;
  padding:6px 8px;border-radius:999px;letter-spacing:0.2px;
  box-shadow:0 6px 18px rgba(0,0,0,0.22);
}
.wag-tile-kind{
  display:none;
}
.wag-select-mark{
  display:none;position:absolute;top:8px;right:8px;z-index:3;
  width:28px;height:28px;border-radius:50%;
  background:rgba(255,255,255,0.86);
  color:var(--green);border:1px solid rgba(27,67,50,0.16);
  align-items:center;justify-content:center;
  font-size:13px;font-weight:900;font-family:inherit;
  box-shadow:0 4px 14px rgba(0,0,0,0.16);
}
.wag-overlay.selecting .wag-select-mark{display:flex}
.wag-tile.selected .wag-select-mark{background:#25D366;color:#fff;border-color:#25D366}
.wag-tile-skel{
  width:100%;height:100%;
  background:linear-gradient(110deg,#eee 8%,#f5f5f5 18%,#eee 33%);
  background-size:200% 100%;animation:wagShimmer 1.2s linear infinite;
}
@keyframes wagShimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}
.wag-tile-fail{
  width:100%;height:100%;display:flex;align-items:center;justify-content:center;
  font-size:11px;color:var(--muted);padding:12px;text-align:center;background:var(--bg);
}
.wag-empty{
  grid-column:1/-1;text-align:center;padding:50px 20px;color:var(--muted);font-size:13px;
}
.wag-light{
  display:none;position:fixed;inset:0;z-index:600;
  background:
    radial-gradient(circle at center,rgba(19,34,27,0.38),rgba(0,0,0,0) 42%),
    #030504;
  align-items:center;justify-content:center;padding:30px 16px;
}
.wag-light.visible{display:flex;animation:wagFade 0.18s ease}
.wag-light-inner{
  position:relative;max-width:560px;width:100%;height:100%;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;
  z-index:2;
}
.wag-light-inner > img,.wag-light-inner > video{
  width:auto;max-width:100%;height:min(78vh,780px);aspect-ratio:9/16;object-fit:contain;
  border-radius:10px;box-shadow:0 16px 60px rgba(0,0,0,0.58);
  background:rgba(255,255,255,0.04);
}
.wag-light-inner > video{display:none;background:#000}
.wag-light-cap{color:#fff;font-size:13px;text-align:center;max-width:480px;line-height:1.4;padding:0 14px}
.wag-light-meta{
  width:100%;max-width:520px;color:#fff;text-align:left;
  background:rgba(255,255,255,0.08);border:1px solid rgba(255,255,255,0.12);
  border-radius:12px;padding:9px 11px;font-size:11px;line-height:1.35;
}
.wag-light-meta b{display:block;font-size:12px}
.wag-light-meta code{
  display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  color:rgba(255,255,255,0.76);font-family:'DM Mono',monospace;font-size:10px;
}
.wag-light-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}
.wag-act{
  background:rgba(255,255,255,0.12);color:#fff;border:1px solid rgba(255,255,255,0.22);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  padding:10px 16px;border-radius:12px;font-size:12px;font-weight:800;
  font-family:inherit;cursor:pointer;display:flex;align-items:center;gap:6px;
  min-height:40px;
}
.wag-act:hover{background:rgba(255,255,255,0.22)}
.wag-act.primary{background:#25D366;border-color:#25D366}
.wag-act.primary:hover{background:#1ebe5d}
.wag-act.copied{background:#fff;color:#123629;border-color:#fff}
.wag-light-close{
  position:absolute;top:6px;right:6px;
  width:40px;height:40px;border-radius:10px;
  background:rgba(255,255,255,0.13);color:#fff;font-size:22px;line-height:1;
  border:none;cursor:pointer;font-family:inherit;
  display:flex;align-items:center;justify-content:center;
}
.wag-light-nav{
  position:absolute;top:50%;transform:translateY(-50%);
  width:48px;height:48px;border-radius:50%;
  background:rgba(255,255,255,0.13);color:#fff;
  border:1px solid rgba(255,255,255,0.22);cursor:pointer;font-family:inherit;
  display:flex;align-items:center;justify-content:center;z-index:5;
  transition:background 0.15s;
}
.wag-light-nav:hover{background:rgba(255,255,255,0.28)}
.wag-light-nav:disabled{opacity:0.25;cursor:not-allowed}
.wag-light-nav svg{width:22px;height:22px}
.wag-light-prev{left:14px}
.wag-light-next{right:14px}
.wag-light-pos{
  position:absolute;top:14px;left:14px;
  background:rgba(0,0,0,0.5);color:#fff;font-size:11px;font-weight:700;
  padding:5px 11px;border-radius:14px;letter-spacing:0.3px;
}
.wag-light-side{
  display:none;position:absolute;top:50%;transform:translateY(-50%);
  width:min(18vw,260px);height:min(64vh,640px);
  object-fit:cover;border-radius:14px;opacity:.42;
  filter:saturate(.86) brightness(.72);
  box-shadow:0 16px 48px rgba(0,0,0,.58);
}
.wag-light-side-prev{left:auto;right:calc(50% + 260px)}
.wag-light-side-next{right:auto;left:calc(50% + 260px)}
@media (min-width:900px){
  .wag-light-side{display:block}
}
@media (min-width:900px) and (max-width:1180px){
  .wag-light-side{width:min(20vw,220px);height:min(58vh,560px);opacity:.34}
  .wag-light-side-prev{right:calc(50% + 230px)}
  .wag-light-side-next{left:calc(50% + 230px)}
}
@media (min-width:1600px){
  .wag-tile{flex-basis:calc((100% - 70px) / 8)}
}
@media (min-width:1181px) and (max-width:1599px){
  .wag-tile{flex-basis:calc((100% - 50px) / 6)}
}
@media (min-width:900px) and (max-width:1180px){
  .wag-tile{flex-basis:calc((100% - 40px) / 5)}
}
@media (max-width:520px){
  .wag-overlay{padding:0}
  .wag-box{
    width:100vw;
    height:100svh;
    max-height:100svh;
    border-radius:0;
  }
  @supports (height:100dvh){
    .wag-box{height:100dvh;max-height:100dvh}
  }
  .wag-head{padding:12px 14px;gap:9px}
  .wag-title{font-size:16px}
  .wag-sub{display:none}
  .wag-mode-tabs{gap:2px;padding:2px}
  .wag-mode-tabs button{min-height:30px;padding:0 7px;font-size:10px}
  .wag-select-toggle{padding:0 10px}
  .wag-tools{
    display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);
    padding:8px 10px;gap:8px;overflow:visible;
  }
  .wag-filter{min-width:0}
  .wag-filter span{display:none}
  .wag-filter select{width:100%;min-width:0;max-width:none;height:38px}
  .wag-grid{padding:8px;gap:8px}
  .wag-tile{flex-basis:calc((100% - 8px) / 2)}
  .wag-light{padding:18px 12px}
  .wag-light-inner > img,.wag-light-inner > video{height:min(76vh,700px)}
  .wag-light-actions{position:relative;margin-top:0}
}
@media(max-width:480px){
  .wag-light-nav{width:40px;height:40px;background:rgba(255,255,255,0.18)}
  .wag-light-prev{left:8px}
  .wag-light-next{right:8px}
}
@media(max-width:899px){
  .wag-overlay{padding:0;align-items:stretch}
  .wag-box{
    width:100vw;max-width:none;border-radius:0;
    height:100svh;max-height:100svh;
  }
  @supports (height:100dvh){
    .wag-box{height:100dvh;max-height:100dvh}
  }
  .wag-grid{gap:6px;padding:8px}
  .wag-tile{flex-basis:calc((100% - 6px) / 2)}
  .wag-head{padding:10px 12px;gap:8px}
  .wag-icon{display:none}
  .wag-home,.wag-icon,.wag-close{width:34px;height:34px;border-radius:9px}
  .wag-title{font-size:15px}
  .wag-sub{display:none}
  .wag-mode-tabs{gap:2px;padding:2px}
  .wag-mode-tabs button{min-height:30px;padding:0 7px;font-size:10px}
  .wag-select-toggle{min-height:34px;padding:0 9px}
  .wag-tools{
    display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);
    padding:8px 10px;gap:8px;overflow:visible;
  }
  .wag-filter{min-width:0}
  .wag-filter select{width:100%;min-width:0;max-width:none}
  .wag-selection-bar{padding:8px 10px}
}
@media(max-width:480px){
  .wag-grid{gap:4px;padding:6px}
  .wag-tile{flex-basis:calc((100% - 4px) / 2)}
  .wag-title{display:none}
}
.prev-foot-buttons{display:flex;gap:8px}
.collection-filter-row{display:flex;align-items:center;gap:8px}
.collection-select{
  width:min(230px,100%);
  flex:0 1 230px;
  padding:9px 10px;
  border:1px solid var(--line);
  border-radius:8px;
  background:var(--surface);
  color:var(--text);
  font-size:13px;
  font-family:inherit;
  cursor:pointer;
}
.collection-clear-btn{
  flex:0 0 auto;
  padding:8px 11px;
  border-radius:8px;
  border:1px solid var(--green);
  background:var(--green-soft);
  color:var(--green);
  font-size:12px;
  font-weight:700;
  font-family:inherit;
  cursor:pointer;
}
.collection-clear-btn:hover{background:#dff2e3}

/* ── Show more options button (appears at bottom when MAYBE products hidden) ── */
.show-more-row{
  padding:24px 20px 48px;
}
.show-more-btn{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  width:100%;
  max-width:540px;
  margin:0 auto;
  padding:14px 18px;
  border-radius:14px;
  border:1.5px solid var(--line);
  background:var(--surface);
  color:var(--green);
  font-size:15px;
  font-weight:700;
  font-family:inherit;
  cursor:pointer;
  box-shadow:var(--shadow);
  transition:all 0.15s;
}
.show-more-btn:hover{
  background:var(--green-soft);
  border-color:var(--green);
  transform:translateY(-1px);
  box-shadow:var(--shadow-lg);
}
.show-more-btn:active{
  transform:translateY(0) scale(0.98);
}
.show-more-icon{
  width:24px;
  height:24px;
  border-radius:50%;
  background:var(--green);
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:16px;
  font-weight:800;
}
.show-more-count{
  font-size:15px;
  color:var(--green);
  font-weight:700;
  margin-left:-4px;
}
.grid-load-sentinel{grid-column:1/-1;width:100%;height:1px;pointer-events:none}
