/* VULCAN — industrial machinery auctions.
 * Aesthetic: engineered, high-contrast, utilitarian. Steel and hazard-amber,
 * a grid that reads like a spec sheet, monospaced data. Not luxury — machinery.
 */
:root{
  --steel-0:#0E1113;   /* near-black ground */
  --steel-1:#161A1D;   /* raised surface */
  --steel-2:#1E2429;   /* card */
  --steel-3:#2A3238;   /* hairline / border */
  --steel-4:#3A444C;   /* stronger border */
  --amber:#F5A623;     /* hazard amber — the one warm accent */
  --amber-dim:#8A6320;
  --live:#3FB950;      /* live / winning */
  --alert:#E5484D;     /* outbid / rejected / danger */
  --review:#4AA3DF;    /* in-review blue */
  --ink:#EDEFF1;       /* primary text */
  --muted:#8B979F;     /* secondary text */
  --faint:#5A666D;     /* tertiary */
  --on-accent:#0E1113; /* text that sits on amber/live fills */
  --header-bg:rgba(14,17,19,.9);   /* sticky header (blurred) */
  --overlay:rgba(6,8,9,.78);       /* modal / drawer scrim */

  --sans:"Inter",system-ui,-apple-system,"Segoe UI",sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,"SF Mono",Menlo,monospace;
  --gut:clamp(16px,3.5vw,44px);

  /* ── structural design tokens ── themes override these to change SHAPE,
   * not just colour. Defaults below reproduce the current industrial look. */
  --radius:2px;                 /* inputs & small controls */
  --card-radius:4px;            /* cards, panels, tables */
  --btn-radius:2px;
  --btn-weight:600;
  --btn-transform:uppercase;
  --btn-letter:.12em;
  --btn-font:var(--mono);
  --btn-border-w:1px;
  --shadow-card:none;
  --shadow-card-hover:none;
  --shadow-btn:none;
  --card-hover-lift:-2px;
  --heading-font:var(--sans);
  --heading-weight:600;
  --heading-spacing:-.01em;
  --table-head-bg:transparent;
  --table-head-color:var(--faint);
  --table-head-transform:uppercase;
  --table-stripe:transparent;
  --table-border-w:1px;
  --table-border-color:var(--steel-3);
  --grid-min:270px;
  --grid-gap:clamp(12px,2vw,22px);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  background:var(--steel-0);color:var(--ink);
  font-family:var(--sans);font-size:15px;line-height:1.55;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
}
button,input,select,textarea{font:inherit;color:inherit}
button{background:none;border:0;cursor:pointer}
a{color:inherit;text-decoration:none}
:focus-visible{outline:2px solid var(--amber);outline-offset:2px}
::selection{background:var(--amber);color:var(--on-accent)}
.mono{font-family:var(--mono)}

/* hazard stripe, used sparingly as a structural accent */
.hazard{background:repeating-linear-gradient(-45deg,var(--amber) 0 10px,var(--steel-0) 10px 20px)}

.eyebrow{font-family:var(--mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--faint)}
.tag{
  font-family:var(--mono);font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;
  padding:3px 8px;border:1px solid var(--steel-3);color:var(--muted);white-space:nowrap;border-radius:2px;
}
.tag.live{color:var(--live);border-color:rgba(63,185,80,.4)}
.tag.review{color:var(--review);border-color:rgba(74,163,223,.4)}
.tag.alert{color:var(--alert);border-color:rgba(229,72,77,.4)}
.tag.amber{color:var(--amber);border-color:var(--amber-dim)}
.tag.draft,.tag.pending_docs{color:var(--faint)}

/* ── top bar ── */
.topbar{position:sticky;top:0;z-index:400;background:var(--header-bg);backdrop-filter:blur(12px);border-bottom:1px solid var(--steel-3)}
.topbar-in{display:flex;align-items:center;gap:clamp(12px,3vw,32px);padding:0 var(--gut);height:60px}
.brand{display:flex;align-items:center;gap:10px;font-family:var(--mono);font-weight:600;font-size:19px;letter-spacing:.18em}
.brand .bolt{width:22px;height:22px;flex:none;background:var(--amber);clip-path:polygon(45% 0,100% 0,55% 45%,90% 45%,20% 100%,45% 55%,10% 55%);}
.nav{display:flex;gap:20px;flex:1}
.nav a{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding:6px 0;border-bottom:1px solid transparent;transition:.2s}
.nav a:hover,.nav a.on{color:var(--ink);border-bottom-color:var(--amber)}
.tools{display:flex;align-items:center;gap:14px}
@media(max-width:760px){.nav{display:none}}

/* ── buttons ── */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;font-family:var(--btn-font);font-size:11px;letter-spacing:var(--btn-letter);text-transform:var(--btn-transform);font-weight:var(--btn-weight);padding:12px 20px;border:var(--btn-border-w) solid var(--steel-4);color:var(--ink);border-radius:var(--btn-radius);box-shadow:var(--shadow-btn);transition:.2s}
.btn:hover{border-color:var(--amber);color:var(--amber)}
.btn-solid{background:var(--amber);color:var(--on-accent);border-color:var(--amber);font-weight:600}
.btn-solid:hover{background:#ffb734;color:var(--on-accent)}
.btn-live{background:var(--live);color:var(--on-accent);border-color:var(--live);font-weight:600}
.btn-live:hover{background:#4ad161;color:var(--on-accent)}
.btn-ghost{border-color:var(--steel-3);color:var(--muted)}
.btn-ghost:hover{border-color:var(--muted);color:var(--ink)}
.btn[disabled]{opacity:.4;pointer-events:none}
.btn-sm{padding:7px 12px;font-size:10px}

/* ── layout ── */
.wrap{max-width:1280px;margin:0 auto;padding:clamp(20px,3.5vw,44px) var(--gut)}
.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;padding-bottom:14px;border-bottom:1px solid var(--steel-3);margin-bottom:22px}
.section-head h1,.section-head h2{font-family:var(--heading-font);font-weight:var(--heading-weight);font-size:clamp(22px,3vw,32px);margin:4px 0 0;letter-spacing:var(--heading-spacing)}

/* ── forms ── */
.field{margin-bottom:15px}
.field label{display:block;font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}
.field input,.field select,.field textarea{width:100%;padding:11px 13px;background:var(--steel-0);border:1px solid var(--steel-3);color:var(--ink);font-size:14px;border-radius:var(--radius);transition:border-color .2s}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--amber)}
.field textarea{min-height:90px;resize:vertical;font-family:inherit}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:13px}
.hint{font-size:11.5px;color:var(--muted);margin-top:5px;line-height:1.5}
.err{border:1px solid var(--alert);background:rgba(229,72,77,.08);color:#f3a3a5;padding:11px 14px;font-size:13px;margin:12px 0;border-radius:2px}
.ok-box{border:1px solid var(--live);background:rgba(63,185,80,.08);color:#a6e3b0;padding:11px 14px;font-size:13px;margin:12px 0;border-radius:2px}

/* ── auth / centered card ── */
.center{min-height:calc(100vh - 60px);display:grid;place-items:center;padding:24px}
.card-auth{width:min(440px,100%);background:var(--steel-1);border:1px solid var(--steel-3);border-radius:var(--card-radius);box-shadow:var(--shadow-card);padding:clamp(24px,4vw,38px)}
.card-auth h1{font-size:26px;font-weight:600;margin:0 0 4px}

/* type toggle */
.toggle{display:grid;grid-template-columns:1fr 1fr;gap:0;border:1px solid var(--steel-3);border-radius:2px;overflow:hidden;margin-bottom:22px}
.toggle button{padding:12px;font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);transition:.2s}
.toggle button.on{background:var(--amber);color:var(--on-accent);font-weight:600}

/* ── document upload ── */
.doc-slot{border:1px dashed var(--steel-4);border-radius:3px;padding:16px;margin-bottom:12px;transition:.2s}
.doc-slot.done{border-style:solid;border-color:var(--live);background:rgba(63,185,80,.05)}
.doc-slot h4{margin:0 0 3px;font-size:14px;font-weight:600}
.doc-slot p{margin:0;font-size:11.5px;color:var(--muted)}
.doc-slot input[type=file]{margin-top:10px;font-size:12px;width:100%;color:var(--muted)}
.doc-slot input[type=file]::file-selector-button{font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;background:var(--steel-2);color:var(--ink);border:1px solid var(--steel-4);padding:8px 12px;border-radius:2px;margin-right:12px;cursor:pointer}

/* ── status / holding page ── */
.holding{max-width:560px;margin:0 auto;text-align:center;padding:clamp(30px,6vw,70px) 0}
.status-badge{display:inline-flex;align-items:center;gap:9px;font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;padding:10px 18px;border-radius:2px;margin-bottom:26px}
.status-badge.review{background:rgba(74,163,223,.1);border:1px solid rgba(74,163,223,.4);color:var(--review)}
.status-badge.docs{background:rgba(245,166,35,.1);border:1px solid var(--amber-dim);color:var(--amber)}
.status-badge.rejected{background:rgba(229,72,77,.1);border:1px solid rgba(229,72,77,.4);color:var(--alert)}
.holding h1{font-size:clamp(28px,5vw,42px);font-weight:600;margin:0 0 12px;letter-spacing:-.01em}
.holding p{color:var(--muted);max-width:44ch;margin:0 auto 10px}
.pulse{width:8px;height:8px;border-radius:50%;background:currentColor;animation:pulse 1.6s ease-in-out infinite}
@keyframes pulse{0%,100%{opacity:.35}50%{opacity:1}}

/* ── grids of lots ── */
.grid{display:grid;gap:var(--grid-gap);grid-template-columns:repeat(auto-fill,minmax(var(--grid-min),1fr))}
.lot-card{background:var(--steel-1);border:1px solid var(--steel-3);border-radius:var(--card-radius);box-shadow:var(--shadow-card);overflow:hidden;display:block;transition:border-color .2s,transform .2s,box-shadow .2s}
.lot-card:hover{border-color:var(--steel-4);transform:translateY(var(--card-hover-lift));box-shadow:var(--shadow-card-hover)}
.lot-plate{position:relative;aspect-ratio:8/3;background:var(--steel-2);overflow:hidden}
.lot-plate img{width:100%;height:100%;object-fit:cover;display:block}
.lot-plate .ph{position:absolute;inset:0;display:grid;place-items:center;color:var(--faint);font-family:var(--mono);font-size:11px;letter-spacing:.2em}
.lot-plate .badges{position:absolute;top:10px;left:10px;right:10px;display:flex;justify-content:space-between;gap:8px}
.lot-body{padding:14px}
.lot-body h3{margin:0 0 6px;font-size:16px;font-weight:600;line-height:1.25}
.lot-meta{font-family:var(--mono);font-size:11px;color:var(--muted);margin-bottom:12px}
.lot-price{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding-top:12px;border-top:1px solid var(--steel-3)}
.lot-price .lbl{font-family:var(--mono);font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--faint)}
.lot-price .amt{font-family:var(--mono);font-size:18px;font-weight:500;color:var(--ink)}
.countdown{font-family:var(--mono);font-size:12px;color:var(--amber);letter-spacing:.05em}
.countdown.urgent{color:var(--alert)}
.countdown.ended{color:var(--faint)}

/* ── lot detail ── */
.pdp{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(20px,3.5vw,48px);align-items:start}
.pdp-plate{aspect-ratio:4/3;background:var(--steel-2);border:1px solid var(--steel-3);border-radius:4px;overflow:hidden;position:relative}
.pdp-plate img{width:100%;height:100%;object-fit:cover}
.pdp h1{font-size:clamp(24px,3.5vw,36px);font-weight:600;margin:6px 0 4px;letter-spacing:-.01em}
.spec-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--steel-3);border:1px solid var(--steel-3);border-radius:3px;overflow:hidden;margin:20px 0}
.spec-grid div{background:var(--steel-1);padding:11px 13px}
.spec-grid dt{font-family:var(--mono);font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--faint);margin-bottom:3px}
.spec-grid dd{margin:0;font-size:14px}
.bidbox{background:var(--steel-1);border:1px solid var(--steel-3);border-radius:4px;padding:20px;position:sticky;top:76px}
.bid-current{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:4px}
.bid-current .amt{font-family:var(--mono);font-size:30px;font-weight:600}
.bid-now-row{display:flex;gap:10px;margin:16px 0 8px}
.bid-now-row input{flex:1;font-family:var(--mono);font-size:16px;padding:12px 14px;background:var(--steel-0);border:1px solid var(--steel-4);border-radius:2px;color:var(--ink)}
.bid-history{margin-top:20px;border-top:1px solid var(--steel-3);padding-top:16px}
.bid-row{display:flex;justify-content:space-between;font-family:var(--mono);font-size:12px;padding:6px 0;color:var(--muted)}
.bid-row .a{color:var(--ink)}
.bid-row:first-child .a{color:var(--live)}
@media(max-width:820px){.pdp{grid-template-columns:1fr}.bidbox{position:static}}

/* ── admin ── */
.admin{display:grid;grid-template-columns:210px 1fr;min-height:100vh}
.side{border-right:1px solid var(--steel-3);background:var(--steel-1);padding:18px 0;position:sticky;top:0;height:100vh;overflow:auto}
.side .brand{padding:0 18px 16px;font-size:16px;margin-bottom:4px;border-bottom:1px solid var(--steel-3)}
.side nav{display:flex;flex-direction:column;padding-top:6px}
.side nav .nav-group{padding:13px 18px 4px;font-family:var(--mono);font-size:9px;letter-spacing:.18em;text-transform:uppercase;color:var(--faint)}
.side nav button{text-align:left;padding:8px 18px;font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);border-left:2px solid transparent;transition:.2s;display:flex;justify-content:space-between;align-items:center;gap:8px}
.side nav button:hover{color:var(--ink)}
.side nav button.on{color:var(--ink);border-left-color:var(--amber);background:rgba(245,166,35,.06)}
.side nav .count{font-size:10px;background:var(--amber);color:var(--on-accent);padding:1px 7px;border-radius:8px;font-weight:600}
.side-foot{padding:14px 18px;margin-top:16px;border-top:1px solid var(--steel-3)}
.admin-main{padding:clamp(18px,3vw,34px);overflow:auto}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:13px;margin-bottom:30px}
.stat{border:1px solid var(--steel-3);background:var(--steel-1);border-radius:var(--card-radius);box-shadow:var(--shadow-card);padding:16px}
.stat b{display:block;font-family:var(--mono);font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);margin-bottom:8px}
.stat span{font-family:var(--mono);font-size:28px;font-weight:600;line-height:1}
.stat.flag span{color:var(--amber)}
.tablewrap{border:1px solid var(--steel-3);background:var(--steel-1);border-radius:var(--card-radius);box-shadow:var(--shadow-card);overflow-x:auto}
table{width:100%;border-collapse:collapse;font-size:13px}
th{font-family:var(--mono);font-size:9px;letter-spacing:.14em;text-transform:var(--table-head-transform);color:var(--table-head-color);background:var(--table-head-bg);text-align:left;padding:11px 13px;border-bottom:var(--table-border-w) solid var(--table-border-color);font-weight:400;white-space:nowrap}
td{padding:12px 13px;border-bottom:var(--table-border-w) solid var(--table-border-color);vertical-align:middle}
tbody tr:nth-child(even){background:var(--table-stripe)}
tbody tr:hover{background:rgba(245,166,35,.03)}
.rowacts{display:flex;gap:6px;justify-content:flex-end}

/* review drawer */
.scrim{position:fixed;inset:0;z-index:500;background:var(--overlay);opacity:0;pointer-events:none;transition:.25s}
.scrim.on{opacity:1;pointer-events:auto}
.drawer{position:fixed;top:0;right:0;bottom:0;width:min(620px,100%);z-index:600;background:var(--steel-1);border-left:1px solid var(--steel-3);transform:translateX(100%);transition:transform .32s cubic-bezier(.4,0,.2,1);display:flex;flex-direction:column}
.drawer.on{transform:none}
.drawer-head{display:flex;justify-content:space-between;align-items:center;padding:18px 22px;border-bottom:1px solid var(--steel-3)}
.drawer-head h3{margin:0;font-size:20px;font-weight:600}
.drawer-body{flex:1;overflow:auto;padding:22px}
.drawer-foot{padding:16px 22px;border-top:1px solid var(--steel-3);display:flex;gap:10px}
.review-grid{display:grid;grid-template-columns:120px 1fr;gap:9px 16px;font-size:13.5px;margin-bottom:22px}
.review-grid dt{font-family:var(--mono);font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--faint);padding-top:2px}
.review-grid dd{margin:0}
.doc-view{display:block;border:1px solid var(--steel-3);border-radius:3px;padding:13px 15px;margin-bottom:10px;transition:.2s;display:flex;align-items:center;gap:12px}
.doc-view:hover{border-color:var(--amber)}
.doc-view .ic{width:34px;height:34px;flex:none;border-radius:3px;background:var(--steel-2);display:grid;place-items:center;color:var(--amber);font-family:var(--mono);font-size:9px}
.doc-view .nm{flex:1;font-size:13px}
.doc-view .nm small{display:block;color:var(--faint);font-family:var(--mono);font-size:10px}

.editor{max-width:760px}
.editor h3{font-size:18px;font-weight:600;margin:26px 0 12px;padding-bottom:8px;border-bottom:1px solid var(--steel-3)}

.empty{text-align:center;color:var(--muted);padding:60px 20px;font-size:14px}
.spin{display:inline-block;width:13px;height:13px;border:1.5px solid var(--steel-4);border-top-color:var(--amber);border-radius:50%;animation:sp .7s linear infinite;vertical-align:middle}
@keyframes sp{to{transform:rotate(360deg)}}
.toast{position:fixed;left:50%;bottom:26px;transform:translateX(-50%) translateY(18px);background:var(--ink);color:var(--steel-0);padding:11px 20px;border-radius:3px;z-index:999;font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;opacity:0;pointer-events:none;transition:.28s}
.toast.on{opacity:1;transform:translateX(-50%)}
.toast.alert{background:var(--alert);color:#fff}

@media(max-width:760px){
  .admin{grid-template-columns:1fr}
  .side{position:static;height:auto;border-right:0;border-bottom:1px solid var(--steel-3)}
  .side nav{flex-direction:row;overflow-x:auto}
  .side nav .nav-group{display:none}
  .side nav button{white-space:nowrap;border-left:0;border-bottom:2px solid transparent}
  .side nav button.on{border-left:0;border-bottom-color:var(--amber)}
  .side-foot{display:none}
  .field-row{grid-template-columns:1fr}
}
.foot{border-top:1px solid var(--steel-3);margin-top:50px;padding:30px var(--gut)}
.foot-in{max-width:1280px;margin:0 auto;display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;color:var(--faint);font-size:11px;font-family:var(--mono)}

/* ═══════════════════════════════════════════════════════════
   PUBLIC MARKETING FRONT
   ═══════════════════════════════════════════════════════════ */

/* public header (injected by public.js) */
.pub-header{position:sticky;top:0;z-index:400;background:var(--header-bg);backdrop-filter:blur(12px);border-bottom:1px solid var(--steel-3)}
.pub-header-in{display:flex;align-items:center;gap:clamp(12px,3vw,30px);max-width:1280px;margin:0 auto;padding:0 var(--gut);height:var(--header-h,64px)}
.pub-nav{display:flex;gap:22px;flex:1}
.pub-nav a{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding:6px 0;border-bottom:1px solid transparent;transition:.2s;white-space:nowrap}
.pub-nav a:hover,.pub-nav a.on{color:var(--ink);border-bottom-color:var(--amber)}
.pub-header .tools{display:flex;align-items:center;gap:10px}
.menu-btn{display:none;font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink);padding:8px 12px;border:1px solid var(--steel-4);border-radius:2px}
.mobile-nav{display:none;flex-direction:column;padding:10px var(--gut) 18px;border-top:1px solid var(--steel-3);background:var(--steel-1)}
.mobile-nav.on{display:flex}
.mobile-nav a{font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding:11px 0;border-bottom:1px solid var(--steel-3)}
.mobile-nav a:last-child{border-bottom:0}
@media(max-width:860px){.pub-nav{display:none}.menu-btn{display:inline-flex}.pub-header .tools .btn:not(.btn-solid){display:none}}

/* hero */
.hero{position:relative;overflow:hidden;border-bottom:1px solid var(--steel-3)}
.hero-in{max-width:1280px;margin:0 auto;padding:clamp(50px,9vw,120px) var(--gut) clamp(40px,7vw,90px);position:relative;z-index:2}
.hero .eyebrow{margin-bottom:20px}
.hero h1{font-size:clamp(38px,7vw,76px);font-weight:700;line-height:1.02;letter-spacing:-.02em;margin:0 0 22px;max-width:16ch}
.hero p{font-size:clamp(15px,2vw,19px);color:var(--muted);max-width:56ch;margin:0 0 32px;line-height:1.6}
.hero-cta{display:flex;gap:12px;flex-wrap:wrap}
.hero-strip{position:absolute;top:0;right:0;bottom:0;width:44%;opacity:.5;
  background:repeating-linear-gradient(-45deg,var(--amber) 0 3px,transparent 3px 26px);
  -webkit-mask-image:linear-gradient(to left,#000,transparent);mask-image:linear-gradient(to left,#000,transparent);pointer-events:none}
.hero-stats{display:flex;gap:clamp(20px,4vw,52px);margin-top:clamp(34px,5vw,54px);flex-wrap:wrap}
.hero-stats .s b{display:block;font-family:var(--mono);font-size:clamp(28px,4vw,42px);font-weight:600;line-height:1;color:var(--ink)}
.hero-stats .s span{font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--faint)}
@media(max-width:860px){.hero-strip{width:70%;opacity:.28}}

/* generic public section */
.psection{max-width:1280px;margin:0 auto;padding:clamp(44px,7vw,84px) var(--gut)}
.psection.tight{padding-top:clamp(28px,4vw,44px)}
.psection-head{max-width:62ch;margin-bottom:clamp(28px,4vw,48px)}
.psection-head h2{font-size:clamp(26px,4vw,40px);font-weight:600;letter-spacing:-.01em;margin:8px 0 12px}
.psection-head p{color:var(--muted);font-size:16px;margin:0;line-height:1.6}
.divider{border-top:1px solid var(--steel-3)}

/* steps (how it works) */
.steps{display:grid;gap:clamp(12px,2vw,20px);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));counter-reset:step}
.step{border:1px solid var(--steel-3);background:var(--steel-1);border-radius:4px;padding:24px;position:relative}
.step::before{counter-increment:step;content:counter(step,decimal-leading-zero);font-family:var(--mono);font-size:12px;color:var(--amber);letter-spacing:.1em}
.step h3{font-size:17px;font-weight:600;margin:14px 0 8px}
.step p{color:var(--muted);font-size:13.5px;margin:0;line-height:1.6}

/* feature cards */
.features{display:grid;gap:clamp(12px,2vw,20px);grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.feature{border:1px solid var(--steel-3);border-radius:4px;padding:24px;background:linear-gradient(180deg,var(--steel-1),var(--steel-0))}
.feature .ic{width:40px;height:40px;border-radius:3px;display:grid;place-items:center;margin-bottom:16px;color:var(--amber);border:1px solid var(--amber-dim);font-family:var(--mono);font-size:11px;letter-spacing:.05em}
.feature h3{font-size:17px;font-weight:600;margin:0 0 8px}
.feature p{color:var(--muted);font-size:14px;margin:0;line-height:1.6}

/* preview grid — locked teaser cards */
.preview-card{position:relative}
.preview-card .lock-note{display:flex;align-items:center;justify-content:space-between;gap:8px;padding-top:12px;border-top:1px solid var(--steel-3)}
.preview-card .lock-note .lbl{font-family:var(--mono);font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--faint)}
.preview-card .lock-note .amt{font-family:var(--mono);font-size:16px;color:var(--ink)}
.preview-card .cta-view{display:block;text-align:center;margin-top:12px;font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--amber);padding:9px;border:1px solid var(--amber-dim);border-radius:2px;transition:.2s}
.preview-card:hover .cta-view{background:var(--amber);color:var(--on-accent)}

/* CTA band */
.cta-band{border-top:1px solid var(--steel-3);border-bottom:1px solid var(--steel-3);background:var(--steel-1)}
.cta-band-in{max-width:1280px;margin:0 auto;padding:clamp(40px,6vw,72px) var(--gut);display:flex;align-items:center;justify-content:space-between;gap:28px;flex-wrap:wrap}
.cta-band h2{font-size:clamp(24px,3.5vw,36px);font-weight:600;margin:0;letter-spacing:-.01em;max-width:20ch}
.cta-band p{color:var(--muted);margin:8px 0 0;max-width:48ch}

/* legal / prose pages */
.prose{max-width:74ch;margin:0 auto}
.prose h2{font-size:clamp(24px,4vw,34px);font-weight:600;margin:0 0 6px;letter-spacing:-.01em}
.prose .updated{font-family:var(--mono);font-size:11px;color:var(--faint);letter-spacing:.06em;margin-bottom:34px}
.prose h3{font-size:18px;font-weight:600;margin:32px 0 10px}
.prose p,.prose li{color:var(--muted);font-size:15px;line-height:1.75}
.prose ul{padding-left:20px}.prose li{margin-bottom:6px}
.prose a{color:var(--amber)}
.prose strong{color:var(--ink);font-weight:600}
.callout{border:1px solid var(--steel-3);border-left:2px solid var(--amber);background:var(--steel-1);padding:16px 20px;border-radius:0 3px 3px 0;margin:22px 0}
.callout p{margin:0;font-size:14px}

/* FAQ */
.faq-item{border-bottom:1px solid var(--steel-3)}
.faq-q{width:100%;text-align:left;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:20px 0;font-size:16px;font-weight:600;color:var(--ink)}
.faq-q .pm{font-family:var(--mono);color:var(--amber);flex:none;transition:transform .2s}
.faq-item.open .faq-q .pm{transform:rotate(45deg)}
.faq-a{max-height:0;overflow:hidden;transition:max-height .28s ease}
.faq-item.open .faq-a{max-height:400px}
.faq-a p{color:var(--muted);font-size:14.5px;line-height:1.7;margin:0 0 20px;max-width:70ch}

/* contact */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,4vw,56px);align-items:start}
.contact-info dl{display:grid;grid-template-columns:auto 1fr;gap:12px 18px;margin:0}
.contact-info dt{font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--faint);padding-top:3px}
.contact-info dd{margin:0;font-size:15px}
.contact-info a{color:var(--amber)}
@media(max-width:760px){.contact-grid{grid-template-columns:1fr}}

/* public footer (injected) */
.pub-foot{border-top:1px solid var(--steel-3);margin-top:0;background:var(--steel-0)}
.pub-foot-in{max-width:1280px;margin:0 auto;padding:clamp(40px,6vw,64px) var(--gut) 30px;display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:36px}
.pub-foot .brand{font-size:18px;margin-bottom:14px}
.pub-foot p{color:var(--faint);font-size:13px;line-height:1.7;max-width:38ch;margin:0}
.pub-foot h4{font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:0 0 14px}
.pub-foot nav{display:flex;flex-direction:column;gap:9px}
.pub-foot nav a{color:var(--faint);font-size:13px;transition:.2s}
.pub-foot nav a:hover{color:var(--ink)}
.pub-foot-base{border-top:1px solid var(--steel-3);padding:18px var(--gut);font-family:var(--mono);font-size:11px;color:var(--faint)}
.pub-foot-base-in{max-width:1280px;margin:0 auto;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}
@media(max-width:760px){.pub-foot-in{grid-template-columns:1fr;gap:26px}}

/* ── lot image gallery (bidder detail page) ── */
.thumbs{display:grid;grid-template-columns:repeat(auto-fill,minmax(64px,1fr));gap:6px;margin-top:10px}
.thumb{padding:0;border:1px solid var(--steel-3);border-radius:3px;overflow:hidden;aspect-ratio:1;background:var(--steel-2);cursor:pointer;transition:border-color .15s}
.thumb img{width:100%;height:100%;object-fit:cover;display:block}
.thumb:hover{border-color:var(--steel-4)}
.thumb.on{border-color:var(--amber)}
.thumb-more{display:grid;place-items:center;aspect-ratio:1;border:1px solid var(--steel-3);border-radius:3px;font-family:var(--mono);font-size:11px;color:var(--muted)}

/* ── deal pipeline (won lots) ── */
.pipeline{display:flex;flex-direction:column;gap:0}
.pstage{display:flex;align-items:flex-start;gap:12px;padding:0 0 18px;position:relative}
.pstage::before{content:"";position:absolute;left:6px;top:16px;bottom:-2px;width:1px;background:var(--steel-3)}
.pstage:last-child::before{display:none}
.pstage .pdot{width:13px;height:13px;border-radius:50%;border:2px solid var(--steel-4);background:var(--steel-1);flex:none;margin-top:2px;z-index:1}
.pstage.done .pdot{background:var(--live);border-color:var(--live)}
.pstage.current .pdot{border-color:var(--amber);background:var(--amber);box-shadow:0 0 0 3px rgba(245,166,35,.18)}
.pstage b{font-weight:600;font-size:14px;display:block}
.pstage.done b,.pstage.current b{color:var(--ink)}
.pstage b{color:var(--muted)}
.pstage small{color:var(--faint);font-family:var(--mono);font-size:10.5px}

/* ── selectable photo grid (inventory editor) ── */
.photo-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px;flex-wrap:wrap}
.photo-toolbar #sel-count{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:6px;margin-bottom:16px}
.imgpick{position:relative;padding:0;border:2px solid var(--steel-3);border-radius:4px;overflow:hidden;aspect-ratio:1;background:var(--steel-2);cursor:pointer;transition:border-color .12s}
.imgpick img{width:100%;height:100%;object-fit:cover;display:block;transition:opacity .12s}
.imgpick:hover{border-color:var(--steel-4)}
.imgpick .imgpick-check{position:absolute;top:4px;right:4px;width:18px;height:18px;border-radius:50%;background:var(--amber);color:var(--on-accent);font-size:11px;font-weight:700;display:none;place-items:center;line-height:1}
.imgpick.sel{border-color:var(--amber)}
.imgpick.sel img{opacity:.55}
.imgpick.sel .imgpick-check{display:grid}

/* ── lot videos ── */
.video-thumbs{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px}
.vthumb{position:relative;padding:0;border:1px solid var(--steel-3);border-radius:4px;overflow:hidden;aspect-ratio:16/10;background:var(--steel-2);cursor:pointer;transition:border-color .15s;text-align:left}
.vthumb:hover{border-color:var(--amber)}
.vthumb img{width:100%;height:100%;object-fit:cover;display:block;opacity:.9}
.vthumb .vplay{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:36px;height:36px;border-radius:50%;background:rgba(14,17,19,.72);color:#fff;display:grid;place-items:center;font-size:13px;padding-left:2px}
.vthumb:hover .vplay{background:var(--amber);color:var(--on-accent)}
.vthumb .vdur{position:absolute;top:6px;right:6px;font-family:var(--mono);font-size:9px;background:rgba(14,17,19,.8);color:#fff;padding:2px 5px;border-radius:2px}
.vthumb .vcap{position:absolute;left:0;right:0;bottom:0;font-size:10.5px;color:#fff;background:linear-gradient(transparent,rgba(14,17,19,.85));padding:14px 8px 6px;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

.video-modal{position:fixed;inset:0;z-index:900;background:var(--overlay);display:grid;place-items:center;padding:20px;opacity:0;animation:vfade .18s forwards}
@keyframes vfade{to{opacity:1}}
.video-box{width:min(960px,100%);position:relative}
.video-frame{position:relative;padding-top:56.25%;background:#000;border:1px solid var(--steel-4);border-radius:6px;overflow:hidden}
.video-frame iframe{position:absolute;inset:0;width:100%;height:100%}
.video-close{position:absolute;top:-40px;right:0;width:32px;height:32px;border:1px solid var(--steel-4);border-radius:4px;color:var(--ink);background:var(--steel-1);font-size:14px}
.video-close:hover{border-color:var(--amber);color:var(--amber)}

/* ── settings sub-tabs ── */
.subtabs{display:flex;gap:4px;flex-wrap:wrap;margin:0 0 20px;border-bottom:1px solid var(--steel-3)}
.subtab{padding:9px 16px;background:none;border:none;border-bottom:2px solid transparent;color:var(--muted);font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:.15s;margin-bottom:-1px}
.subtab:hover{color:var(--ink)}
.subtab.on{color:var(--amber);border-bottom-color:var(--amber)}

/* ── image watermark — the site logo, bottom-right of every listing image ── */
.lot-plate::after, .pdp-plate::after{
  content: var(--wm-text, "VULCAN");
  position:absolute; right:7px; bottom:6px; z-index:3;
  padding-left:15px;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 22'%3E%3Cpolygon points='9.9,0 22,0 12.1,9.9 19.8,9.9 4.4,22 9.9,12.1 2.2,12.1' fill='%23F5A623'/%3E%3C/svg%3E") no-repeat left center / 11px 11px;
  font-family:var(--mono); font-size:9.5px; font-weight:600; letter-spacing:.14em; text-transform:uppercase;
  color:rgba(255,255,255,.92); text-shadow:0 1px 3px rgba(0,0,0,.85);
  pointer-events:none; line-height:1;
}

/* ── inspection report (lot detail) ── */
.inspect{border:1px solid var(--steel-3);border-radius:5px;overflow:hidden}
.insp-sec{border-bottom:1px solid var(--steel-3)}
.insp-sec:last-child{border-bottom:none}
.insp-sec>summary{cursor:pointer;padding:11px 14px;font-weight:600;font-size:13px;list-style:none;display:flex;align-items:center;justify-content:space-between;background:var(--steel-1);user-select:none}
.insp-sec>summary::-webkit-details-marker{display:none}
.insp-sec>summary::after{content:"+";font-family:var(--mono);color:var(--muted);font-size:15px}
.insp-sec[open]>summary::after{content:"–"}
.insp-sec[open]>summary{border-bottom:1px solid var(--steel-3)}
.insp-count{margin-left:auto;margin-right:12px;font-family:var(--mono);font-size:10px;color:var(--muted);background:var(--steel-2);border:1px solid var(--steel-3);border-radius:10px;padding:1px 8px}
.insp-table{width:100%;border-collapse:collapse;font-size:13px}
.insp-table td{padding:8px 14px;border-bottom:1px solid var(--steel-2);vertical-align:top}
.insp-table tr:last-child td{border-bottom:none}
.insp-item{width:42%;color:var(--ink);font-weight:500}
.insp-detail{color:var(--muted)}
.insp-rating{display:inline-block;font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:var(--amber);border:1px solid var(--amber-dim);border-radius:3px;padding:1px 6px;margin-right:4px}
.doclist{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px}
.doclist a{color:var(--amber);font-size:13px}

/* ── grouped gallery + lightbox (lot detail) ── */
.pdp-plate.clickable{cursor:zoom-in}
.plate-count{position:absolute;left:8px;bottom:8px;z-index:3;font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;background:rgba(14,17,19,.72);color:#fff;padding:3px 9px;border-radius:3px}
.gallery-groups{margin-top:12px;display:flex;flex-direction:column;gap:14px}
.gal-cat{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:0 0 7px;display:flex;align-items:center;gap:8px}
.gal-cat span{background:var(--steel-2);border:1px solid var(--steel-3);border-radius:10px;padding:0 7px;font-size:9.5px}
.gal-thumbs{display:grid;grid-template-columns:repeat(auto-fill,minmax(72px,1fr));gap:6px}
.gthumb{position:relative;padding:0;border:1px solid var(--steel-3);border-radius:3px;overflow:hidden;aspect-ratio:1;background:var(--steel-2);cursor:zoom-in;transition:border-color .12s}
.gthumb:hover{border-color:var(--amber)}
.gthumb img{width:100%;height:100%;object-fit:cover;display:block}
.gthumb .gcap{position:absolute;left:0;right:0;bottom:0;font-size:8.5px;line-height:1.2;color:#fff;background:linear-gradient(transparent,rgba(14,17,19,.82));padding:10px 4px 3px;opacity:0;transition:.12s;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gthumb:hover .gcap{opacity:1}

.gallery-modal{position:fixed;inset:0;z-index:950;background:rgba(6,8,9,.94);display:grid;grid-template-columns:64px 1fr 64px;align-items:center;opacity:0;animation:vfade .18s forwards}
.gm-stage{margin:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;max-height:100vh;padding:20px 0}
.gm-stage img{max-width:100%;max-height:82vh;object-fit:contain;border-radius:4px}
.gm-stage figcaption{color:#c6cdd2;font-size:13px;text-align:center;max-width:80%;min-height:1em}
.gm-nav{background:none;border:none;color:#fff;font-size:44px;line-height:1;cursor:pointer;opacity:.7;transition:.12s;height:100%}
.gm-nav:hover{opacity:1;background:rgba(255,255,255,.05)}
.gm-close{position:absolute;top:16px;right:20px;z-index:2;width:36px;height:36px;border:1px solid var(--steel-4);border-radius:4px;background:rgba(20,24,27,.8);color:#fff;font-size:15px;cursor:pointer}
.gm-close:hover{border-color:var(--amber);color:var(--amber)}
.gm-counter{position:absolute;left:50%;bottom:16px;transform:translateX(-50%);font-family:var(--mono);font-size:11px;color:#8b979f;letter-spacing:.1em}
@media(max-width:600px){.gallery-modal{grid-template-columns:40px 1fr 40px}.gm-nav{font-size:32px}}

/* ── configurable logo mark / uploaded logo ── */
.brand-mark{width:44px;height:44px;flex:none;display:inline-block;vertical-align:middle}
.brand-logo{height:52px;width:auto;max-width:280px;flex:none;object-fit:contain;vertical-align:middle}

/* ── logo picker (branding settings) ── */
.logo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:8px}
.logo-pick{display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 6px;background:var(--steel-2);border:1px solid var(--steel-3);border-radius:5px;cursor:pointer;transition:.12s;color:var(--muted);font-size:11px}
.logo-pick:hover{border-color:var(--steel-4)}
.logo-pick.on{border-color:var(--amber);background:color-mix(in srgb,var(--amber) 10%,var(--steel-2))}
.logo-pick svg{width:30px;height:30px}

/* ── status banner (transparent top strip) ── */
.status-banner{position:sticky;top:0;z-index:450;display:flex;align-items:center;justify-content:center;gap:12px;
  padding:9px 18px;font-size:13px;font-weight:500;text-align:center;
  background:color-mix(in srgb, var(--bc) 15%, transparent);
  border-bottom:1px solid color-mix(in srgb, var(--bc) 40%, transparent);
  color:var(--ink);backdrop-filter:blur(8px)}
.status-banner .sb-dot{width:8px;height:8px;border-radius:50%;background:var(--bc);flex:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--bc) 25%,transparent)}
.status-banner a{color:var(--bc);font-weight:700;text-decoration:none;white-space:nowrap}
.status-banner a:hover{text-decoration:underline}

/* ── delivery tracking map ── */
.track-wrap{border:1px solid var(--steel-3);border-radius:6px;overflow:hidden;background:var(--steel-1)}
.track-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;font-size:12px;color:var(--muted);border-bottom:1px solid var(--steel-3)}
.track-map{height:320px;width:100%;background:var(--steel-2)}
.track-map .leaflet-container{height:100%;width:100%;font-family:var(--sans)}
.track-controls{display:flex;align-items:center;gap:12px;padding:10px 14px}
.track-slider{flex:1;accent-color:var(--amber)}
.track-controls .track-live{font-size:11px;color:var(--amber);text-decoration:none;font-family:var(--mono);white-space:nowrap}
.truck-icon{background:none;border:none}
.truck-badge{display:flex;flex-direction:column;align-items:center;transform:translate(-50%,-50%);filter:drop-shadow(0 2px 4px rgba(0,0,0,.45));font-size:26px;line-height:1}
.truck-badge span{margin-top:2px;font-family:var(--mono);font-size:9px;font-weight:600;background:var(--ink);color:var(--steel-0);padding:1px 5px;border-radius:3px;white-space:nowrap;letter-spacing:.03em}

/* ── cookie / analytics consent bar ── */
.consent-bar{position:fixed;left:0;right:0;bottom:0;z-index:600;background:color-mix(in srgb, var(--steel-1) 92%, transparent);
  border-top:1px solid var(--steel-3);backdrop-filter:blur(10px);box-shadow:0 -6px 20px rgba(0,0,0,.18)}
.consent-in{max-width:1100px;margin:0 auto;padding:14px 20px;display:flex;align-items:center;gap:20px;flex-wrap:wrap;justify-content:space-between}
.consent-in p{margin:0;font-size:12.5px;color:var(--muted);max-width:720px;line-height:1.5}
.consent-in a{color:var(--amber);text-decoration:none}
.consent-in a:hover{text-decoration:underline}
.consent-btns{display:flex;gap:10px;flex:none}
@media(max-width:560px){.consent-in{flex-direction:column;align-items:stretch}.consent-btns{justify-content:flex-end}}

/* ── how-it-works: feature icons + step watermark backgrounds ── */
.ic img{width:30px;height:30px;display:block}
.feature .ic{display:grid;place-items:center}
.steps .step{position:relative;overflow:hidden}
.steps .step::after{content:"";position:absolute;right:-6px;top:-8px;width:92px;height:92px;
  background-repeat:no-repeat;background-position:center;background-size:contain;opacity:.10;pointer-events:none}
.steps .step > *{position:relative;z-index:1}
.steps .step.step-register::after{background-image:url(media/steps/step-register.svg)}
.steps .step.step-verify::after{background-image:url(media/steps/step-verify.svg)}
.steps .step.step-browse::after{background-image:url(media/steps/step-browse.svg)}
.steps .step.step-bid::after{background-image:url(media/steps/step-bid.svg)}

/* ── watchlist, categories, filters ── */
.watch-btn{position:absolute;top:10px;right:10px;z-index:3;width:34px;height:34px;border-radius:50%;
  border:1px solid var(--steel-3);background:color-mix(in srgb,var(--steel-0) 78%,transparent);
  color:var(--amber);font-size:18px;line-height:1;cursor:pointer;display:grid;place-items:center;
  backdrop-filter:blur(4px);transition:.12s}
.watch-btn:hover{border-color:var(--amber);transform:scale(1.08)}
.watch-btn.on{background:var(--amber);color:var(--on-accent);border-color:var(--amber)}
.watch-btn.watch-inline{position:static;width:38px;height:38px;flex:none;font-size:20px}
.cat-chip{display:inline-block;font-size:10px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--amber);border:1px solid var(--amber-dim);border-radius:3px;padding:2px 8px;margin-bottom:8px}
.filterbar{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 22px;align-items:center}
.filterbar .fb-search{flex:1;min-width:200px;padding:10px 14px;background:var(--steel-1);border:1px solid var(--steel-3);
  border-radius:5px;color:var(--ink);font-size:13px;font-family:inherit}
.filterbar .fb-sel{padding:10px 12px;background:var(--steel-1);border:1px solid var(--steel-3);border-radius:5px;
  color:var(--ink);font-size:13px;font-family:inherit;cursor:pointer}
.filterbar .fb-search:focus,.filterbar .fb-sel:focus{outline:none;border-color:var(--amber)}

/* ═══ admin TABLE options (independent of theme) ═══ */
html[data-tablebg="1"] .tablewrap{
  background-image:repeating-linear-gradient(45deg,
    color-mix(in srgb,var(--ink) 4%,transparent) 0 1px, transparent 1px 11px);
}
html[data-tablebg="1"] th{background:color-mix(in srgb,var(--steel-2) 88%,transparent)}
html[data-tableborder="bold"] th,html[data-tableborder="bold"] td{border-bottom-width:2px;border-color:var(--muted)}
html[data-tableborder="bold"] .tablewrap{border-width:2px}
html[data-tableborder="thick"] th,html[data-tableborder="thick"] td{border-bottom-width:3px;border-color:var(--steel-4)}
html[data-tableborder="thick"] .tablewrap{border-width:3px}

/* ── documents: HTML template editor ── */
.ph-grid{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 14px}
.ph-grid code{font-family:var(--mono);font-size:11px;background:var(--steel-2);border:1px solid var(--steel-3);
  border-radius:3px;padding:3px 7px;color:var(--amber);cursor:pointer;transition:.12s}
.ph-grid code:hover{border-color:var(--amber);background:color-mix(in srgb,var(--amber) 12%,var(--steel-2))}
.doc-tabs{display:flex;gap:0;margin:0 0 -1px}
.doc-tab{padding:9px 16px;background:transparent;border:1px solid var(--steel-3);border-bottom:none;color:var(--muted);
  font-size:12px;cursor:pointer;border-radius:4px 4px 0 0;font-family:var(--mono);letter-spacing:.06em}
.doc-tab.on{background:var(--steel-1);color:var(--amber);border-color:var(--steel-3)}
.doc-preview{border:1px solid var(--steel-3);border-radius:0 4px 4px 4px;overflow:hidden;background:#fff}
.doc-preview iframe{width:100%;height:560px;border:none;display:block;background:#fff}

/* documents: quick-test button row */
.doc-test{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 22px;padding:12px 14px;
  background:var(--steel-1);border:1px solid var(--steel-3);border-radius:var(--card-radius)}
.doc-test span{font-size:12px;color:var(--muted);margin-right:2px}

/* settings: management sub-tab separator */
.subtab-gap{flex-basis:100%;height:0}
@media(min-width:900px){.subtab-gap{flex-basis:auto;width:1px;align-self:stretch;margin:6px 8px;background:var(--steel-3)}}
.settings-mgmt{margin-top:4px}

/* ── settings: horizontal accordion menu (admin uses admin.css overrides) ── */
.settings-wrap{display:flex;flex-direction:column;gap:0}
.settings-topnav{position:sticky;top:0;z-index:5;background:var(--steel-0);padding-bottom:12px;margin-bottom:18px;border-bottom:1px solid var(--steel-3)}
.set-groups-row{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}
.set-group{padding:8px 12px;border:1px solid var(--steel-3);border-radius:7px;background:var(--steel-1);color:var(--muted);font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;transition:.15s}
.set-group:hover{color:var(--ink);border-color:var(--steel-4)}
.set-group.on{background:var(--amber);border-color:var(--amber);color:var(--on-accent)}
.set-group-count{display:inline-flex;align-items:center;justify-content:center;width:20px;height:18px;background:color-mix(in srgb,var(--muted) 18%,transparent);border-radius:9px;font-size:9px;font-weight:600;margin-left:6px}
.set-group.on .set-group-count{background:color-mix(in srgb,var(--on-accent) 22%,transparent)}
.set-group-chevron{font-size:12px;margin-left:4px;transition:transform .15s}
.set-group.on .set-group-chevron{transform:rotate(180deg)}
.set-links-row{display:flex;flex-wrap:wrap;gap:6px}
.set-link{padding:7px 11px;border:1px solid transparent;border-radius:6px;color:var(--muted);font-size:12px;cursor:pointer;transition:.15s;text-align:left}
.set-link:hover{color:var(--ink);background:var(--steel-2)}
.set-link.on{color:var(--amber);border-color:var(--amber-dim);background:color-mix(in srgb,var(--amber) 10%,transparent);font-weight:600}
.settings-body{min-width:0}
@media(max-width:820px){
  .settings-topnav{position:static}
  .set-groups-row .set-group{padding:7px 10px;font-size:9.5px}
  .set-links-row .set-link{font-size:12px}
}
@media(max-width:820px){.journey{grid-template-columns:1fr}}
.journey-map{height:460px;border:1px solid var(--steel-3);border-radius:var(--card-radius);overflow:hidden;background:var(--steel-2)}
.timeline{border:1px solid var(--steel-3);border-radius:var(--card-radius);background:var(--steel-1);overflow:hidden}
.tl-row{display:flex;gap:12px;padding:12px 14px;border-bottom:1px solid var(--steel-3)}
.tl-row:last-child{border-bottom:none}
.tl-ico{width:30px;height:30px;flex:none;border-radius:8px;display:grid;place-items:center;font-size:15px;background:var(--steel-2);border:1px solid var(--steel-3)}
.tl-row.drive .tl-ico{background:color-mix(in srgb,var(--amber) 16%,var(--steel-2))}
.tl-row.rest .tl-ico{background:color-mix(in srgb,var(--review) 18%,var(--steel-2))}
.tl-row.arrive .tl-ico{background:color-mix(in srgb,var(--live) 20%,var(--steel-2))}
.tl-main{flex:1;min-width:0}
.tl-main b{font-size:13px}
.tl-main .tl-sub{font-size:11.5px;color:var(--muted);margin-top:2px}
.tl-time{font-family:var(--mono);font-size:11px;color:var(--faint);white-space:nowrap;text-align:right}
.jstat{display:flex;gap:20px;flex-wrap:wrap;margin:2px 0 18px}
.jstat .s b{display:block;font-family:var(--mono);font-size:22px;color:var(--ink);line-height:1}
.jstat .s span{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--faint)}

/* ── partners: admin grid + public banner ── */
.partner-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:14px}
.partner-cell{border:1px solid var(--steel-3);border-radius:var(--card-radius);background:var(--steel-1);padding:14px;text-align:center}
.partner-cell img{height:48px;max-width:100%;object-fit:contain;display:block;margin:0 auto 10px}
.partner-cell .partner-meta{font-size:12px;color:var(--muted);margin-bottom:10px;word-break:break-word}

.partners-band{border-top:1px solid var(--steel-3);border-bottom:1px solid var(--steel-3);background:var(--steel-1)}
.partners-in{max-width:1280px;margin:0 auto;padding:clamp(28px,4vw,48px) var(--gut);text-align:center}
.partners-title{font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--faint);margin:0 0 22px}
.partners-logos{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:clamp(24px,5vw,60px)}
.partners-logos img{height:clamp(30px,4vw,46px);max-width:170px;object-fit:contain;
  filter:grayscale(1);opacity:.7;transition:.25s}
.partners-logos a:hover img,.partners-logos span:hover img{filter:grayscale(0);opacity:1}

/* ── certificates: admin manager ── */
.cert-admin-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px}
.cert-admin-cell{border:1px solid var(--steel-3);border-radius:var(--card-radius);background:var(--steel-1);padding:14px;display:flex;flex-direction:column}
.cert-admin-cell img{height:120px;width:100%;object-fit:contain;background:var(--steel-2);border:1px solid var(--steel-3);border-radius:6px;margin-bottom:10px}
.cert-admin-cell .cert-doc{height:120px;display:grid;place-items:center;background:var(--steel-2);border:1px solid var(--steel-3);border-radius:6px;margin-bottom:10px;color:var(--amber);font-family:var(--mono);text-decoration:none;letter-spacing:.1em}
.cert-admin-body{flex:1;margin-bottom:10px}
.cert-admin-body b{font-size:13px}

/* ── certificates: public page ── */
.certs-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:clamp(16px,2.5vw,28px);margin-top:8px}
.cert-card{border:1px solid var(--steel-3);border-radius:var(--card-radius);background:var(--steel-1);overflow:hidden;box-shadow:var(--shadow-card);display:flex;flex-direction:column}
.cert-card .cert-img{display:block;background:var(--steel-2);padding:18px;border-bottom:1px solid var(--steel-3)}
.cert-card .cert-img img{width:100%;height:200px;object-fit:contain;display:block}
.cert-card .cert-pdf{display:grid;place-items:center;height:200px;background:var(--steel-2);border-bottom:1px solid var(--steel-3);color:var(--amber);font-family:var(--mono);letter-spacing:.1em;text-decoration:none}
.cert-body{padding:18px 20px}
.cert-body h3{margin:0;font-size:17px}
.cert-body .cert-issuer{margin:4px 0 0;font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--amber)}
.cert-body .cert-descr{margin:10px 0 0;font-size:14px;color:var(--muted);line-height:1.55}

/* brand byline — small "by My Company Ltd" under the site name */
.brand-text{display:inline-flex;flex-direction:column;align-items:flex-end;justify-content:center;line-height:1.05}
.brand-by{font-size:.58em;font-weight:400;letter-spacing:.02em;text-transform:none;color:var(--muted);margin-top:1px;opacity:.92;text-align:right}

/* ── announcement ticker ── continuous tape band, glides left → right ── */
.ticker{width:100%;height:40px;overflow:hidden;display:flex;align-items:center;
  background:var(--ticker-bg,var(--amber));color:var(--ticker-fg,var(--on-accent));
  border-top:1px solid color-mix(in srgb,var(--ticker-fg,var(--on-accent)) 16%,transparent);
  border-bottom:1px solid color-mix(in srgb,var(--ticker-fg,var(--on-accent)) 16%,transparent)}
.ticker-viewport{flex:1;height:100%;overflow:hidden;display:flex;align-items:center}
.ticker-track{display:flex;align-items:center;white-space:nowrap;will-change:transform;animation:ticker-roll linear infinite}
.ticker-track:hover{animation-play-state:paused}
.ticker-item{font-size:13px;font-weight:600;padding:0 4px;letter-spacing:.01em}
.ticker-dot{padding:0 16px;opacity:.5}
/* two identical halves; shift right by one half for a seamless left→right belt */
@keyframes ticker-roll{from{transform:translateX(-50%)}to{transform:translateX(0)}}
/* inside the hero: sit above the diagonal strip, flush with the header above */
.hero .ticker{position:relative;z-index:3;border-top:none}

/* ── homepage hero background pattern ── */
.hero-in.has-hero-bg{background-repeat:no-repeat;background-position:center;background-size:cover}

/* admin: hero-background picker */
.herobg-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:10px}
.herobg-opt{aspect-ratio:2/1;border:2px solid var(--steel-3);border-radius:6px;background:var(--steel-2);
  overflow:hidden;cursor:pointer;padding:0;display:grid;place-items:center}
.herobg-opt img{width:100%;height:100%;object-fit:cover;display:block}
.herobg-opt.on{border-color:var(--amber)}
.herobg-none{font-family:var(--mono);font-size:11px;color:var(--muted);letter-spacing:.1em}

/* ── floating WhatsApp button (left, mid-page) ── */
.wa-fab{position:fixed;left:18px;top:50%;transform:translateY(-50%);z-index:900;
  width:56px;height:56px;border-radius:50%;background:#25D366;color:#fff;
  display:grid;place-items:center;box-shadow:0 6px 20px rgba(0,0,0,.28);transition:transform .18s,box-shadow .18s;text-decoration:none}
.wa-fab:hover{transform:translateY(-50%) scale(1.08);box-shadow:0 10px 30px rgba(37,211,102,.5)}
.wa-fab svg{width:32px;height:32px}
@media(max-width:640px){.wa-fab{left:12px;width:50px;height:50px}.wa-fab svg{width:28px;height:28px}}

/* ── second-chance offers (bidder app) ── */
.offers-band{border:1px solid var(--amber);border-radius:var(--card-radius);background:color-mix(in srgb,var(--amber) 7%,var(--steel-1));padding:16px 18px;margin-bottom:24px}
.offer-card{display:flex;gap:16px;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:12px 0;border-top:1px solid var(--steel-3)}
.offer-card:first-of-type{border-top:none}
.offer-info{flex:1;min-width:220px}
.offer-acts{display:flex;gap:8px}

/* ── configurable logo size + pub-nav size/style/icons ── */
.pub-nav a{display:inline-flex;align-items:center;gap:7px}
.nav-ico{display:none;flex:none;align-items:center;justify-content:center}
svg.nav-ico{width:16px;height:16px}
.nav-emoji{font-size:14px;line-height:1}
.pub-header[data-navicons="line"] .nav-ico,
.pub-header[data-navicons="emoji"] .nav-ico{display:inline-flex}

/* logo size */
.pub-header[data-logo="sm"] .brand{font-size:15px}
.pub-header[data-logo="sm"] .brand-mark{width:34px;height:34px}
.pub-header[data-logo="sm"] .brand-logo{height:40px}
.pub-header[data-logo="lg"] .brand{font-size:25px}
.pub-header[data-logo="lg"] .brand-mark{width:58px;height:58px}
.pub-header[data-logo="lg"] .brand-logo{height:66px}
.pub-header[data-logo="lg"] .pub-header-in{height:auto;min-height:84px;padding-top:8px;padding-bottom:8px}

/* nav size */
.pub-header[data-navsize="sm"] .pub-nav a{font-size:10px}
.pub-header[data-navsize="sm"] svg.nav-ico{width:14px;height:14px}
.pub-header[data-navsize="lg"] .pub-nav{gap:26px}
.pub-header[data-navsize="lg"] .pub-nav a{font-size:13px;letter-spacing:.08em}
.pub-header[data-navsize="lg"] svg.nav-ico{width:18px;height:18px}

/* nav style — underline / pill / boxed (plain = default border-bottom) */
.pub-header[data-navstyle="underline"] .pub-nav a{border-bottom:none;position:relative;padding-bottom:6px}
.pub-header[data-navstyle="underline"] .pub-nav a::after{content:"";position:absolute;left:50%;right:50%;bottom:0;height:2px;background:var(--amber);transition:left .2s,right .2s}
.pub-header[data-navstyle="underline"] .pub-nav a:hover::after,
.pub-header[data-navstyle="underline"] .pub-nav a.on::after{left:0;right:0}
.pub-header[data-navstyle="pill"] .pub-nav a{border-bottom:none;padding:7px 14px;border-radius:999px}
.pub-header[data-navstyle="pill"] .pub-nav a:hover,
.pub-header[data-navstyle="pill"] .pub-nav a.on{background:color-mix(in srgb,var(--amber) 15%,transparent);color:var(--ink)}
.pub-header[data-navstyle="boxed"] .pub-nav a{border:1px solid var(--steel-3);padding:7px 12px;border-radius:7px}
.pub-header[data-navstyle="boxed"] .pub-nav a:hover,
.pub-header[data-navstyle="boxed"] .pub-nav a.on{border-color:var(--amber);color:var(--ink)}

/* nav shapes without icons — tab / chip / bracket (plus plain/underline/pill/boxed) */
.pub-header[data-navstyle="tab"] .pub-nav a{border-bottom:none;border-top:2px solid transparent;padding-top:8px}
.pub-header[data-navstyle="tab"] .pub-nav a:hover,
.pub-header[data-navstyle="tab"] .pub-nav a.on{border-top-color:var(--amber);color:var(--ink)}
.pub-header[data-navstyle="chip"] .pub-nav a{border-bottom:none;padding:6px 13px;border-radius:6px;background:var(--steel-2)}
.pub-header[data-navstyle="chip"] .pub-nav a:hover,
.pub-header[data-navstyle="chip"] .pub-nav a.on{background:var(--amber);color:var(--on-accent)}
.pub-header[data-navstyle="bracket"] .pub-nav a{border-bottom:none}
.pub-header[data-navstyle="bracket"] .pub-nav a:hover,
.pub-header[data-navstyle="bracket"] .pub-nav a.on{color:var(--amber)}
.pub-header[data-navstyle="bracket"] .pub-nav a:hover .nav-label::before,
.pub-header[data-navstyle="bracket"] .pub-nav a.on .nav-label::before{content:"[ ";color:var(--amber)}
.pub-header[data-navstyle="bracket"] .pub-nav a:hover .nav-label::after,
.pub-header[data-navstyle="bracket"] .pub-nav a.on .nav-label::after{content:" ]";color:var(--amber)}

/* configurable footer colours (Settings → Branding) */
.pub-foot.has-foot-bg{background:var(--foot-bg)}
.pub-foot.has-foot-text,
.pub-foot.has-foot-text .brand,
.pub-foot.has-foot-text p,
.pub-foot.has-foot-text h4,
.pub-foot.has-foot-text nav a,
.pub-foot.has-foot-text a{color:var(--foot-text)}
.pub-foot.has-foot-text nav a{opacity:.85}
.pub-foot.has-foot-text nav a:hover{opacity:1}

/* ── full-bleed homepage hero photo (Settings → Branding) ── */
.hero.has-hero-photo{background-image:var(--hero-img);background-size:cover;background-position:var(--hero-focus,center);background-repeat:no-repeat;position:relative;overflow:hidden}
.hero.has-hero-photo::before{content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(90deg, rgba(10,14,20,.96), rgba(10,14,20,.5) 58%, rgba(10,14,20,.12));
  opacity:var(--hero-overlay,.55)}
.hero.has-hero-photo .hero-strip{display:none}
.hero.has-hero-photo .hero-in{position:relative;z-index:2}
.hero.has-hero-photo .hero-in .eyebrow{color:#ffd9a3}
.hero.has-hero-photo .hero-in h1{color:#fff}
.hero.has-hero-photo .hero-in > p{color:rgba(255,255,255,.92)}
.hero.has-hero-photo .hero-stats .s b{color:#fff}
.hero.has-hero-photo .hero-stats .s span{color:rgba(255,255,255,.78)}

/* inspection section media — photos/videos shown with each section's findings */
.insp-media{margin:12px 2px 6px}
.insp-media + .insp-media{margin-top:8px}
.insp-media .gal-thumbs,.insp-media .video-thumbs{margin-top:0}
.insp-sec .insp-count{font-variant-numeric:tabular-nums}

/* homepage section banner images (Settings → Branding → Section images) */
.psection-media{margin:0 0 26px;border-radius:var(--card-radius);overflow:hidden;border:1px solid var(--steel-3)}
.psection-media img{display:block;width:100%;height:clamp(160px,26vw,320px);object-fit:cover}

/* ============================ live chat + callback widget ============================ */
#lc-root{position:fixed;right:20px;bottom:20px;z-index:900;font-family:var(--sans,Inter,system-ui,sans-serif)}
#lc-launch{display:flex;align-items:center;gap:8px;background:var(--amber);color:var(--on-accent,#0e1113);border:none;border-radius:26px;padding:12px 18px;font-weight:600;font-size:14px;cursor:pointer;box-shadow:0 6px 20px rgba(0,0,0,.25)}
#lc-launch:hover{filter:brightness(1.05)}
#lc-launch.lc-ping{animation:lc-ping 1s ease-in-out 3}
@keyframes lc-ping{0%,100%{transform:scale(1)}50%{transform:scale(1.08)}}
.lc-launch-txt{white-space:nowrap}
#lc-panel{position:absolute;right:0;bottom:64px;width:340px;max-width:calc(100vw - 40px);height:460px;max-height:calc(100vh - 120px);
  background:#fff;color:#14171c;border-radius:14px;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 18px 50px rgba(0,0,0,.3)}
.lc-head{display:flex;align-items:center;gap:10px;background:#14171c;color:#fff;padding:12px 14px}
.lc-op-photo{width:38px;height:38px;border-radius:50%;object-fit:cover;flex:none}
.lc-op-ph{display:grid;place-items:center;background:var(--amber);color:#0e1113;font-weight:800}
.lc-op-meta{flex:1;display:flex;flex-direction:column;line-height:1.25;min-width:0}
.lc-op-meta b{font-size:14px}.lc-op-meta span{font-size:11px;color:#aab2bd}
.lc-x{background:none;border:none;color:inherit;font-size:16px;cursor:pointer;opacity:.8}
.lc-body{flex:1;overflow-y:auto;padding:16px}
.lc-hello{font-size:15px;font-weight:600;margin:0 0 6px}
.lc-blurb{font-size:13px;color:#5a626d;margin:0 0 14px}
.lc-menu{display:flex;flex-direction:column}
.lc-big{display:flex;align-items:center;justify-content:center;gap:8px;background:var(--amber);color:#0e1113;border:none;border-radius:9px;padding:13px;font-weight:600;font-size:14px;cursor:pointer;margin-top:10px;width:100%}
.lc-big svg{width:18px;height:18px}
.lc-big-ghost{background:#f2f4f7;color:#14171c;border:1px solid #e2e5ea}
.lc-msgs{display:flex;flex-direction:column;gap:8px;background:#f6f7f9}
.lc-b{max-width:80%;padding:9px 12px;border-radius:12px;font-size:13.5px;line-height:1.5;word-wrap:break-word}
.lc-b-me{align-self:flex-end;background:var(--amber);color:#0e1113;border-bottom-right-radius:3px}
.lc-b-op{align-self:flex-start;background:#fff;border:1px solid #e2e5ea;border-bottom-left-radius:3px}
.lc-b-sys{align-self:center;background:transparent;color:#8b93a0;font-size:12px;text-align:center;max-width:100%}
.lc-input{display:flex;gap:8px;padding:10px;border-top:1px solid #e8eaee;background:#fff}
.lc-input textarea{flex:1;border:1px solid #d9dde3;border-radius:9px;padding:9px 11px;font-size:13.5px;resize:none;font-family:inherit;max-height:90px}
.lc-send{background:var(--amber);color:#0e1113;border:none;border-radius:9px;width:40px;flex:none;font-size:15px;cursor:pointer}
/* callback modal */
.lc-modal{position:fixed;inset:0;z-index:950;background:rgba(10,12,14,.55);display:flex;align-items:center;justify-content:center;padding:16px}
.lc-modal-box{background:#fff;color:#14171c;border-radius:14px;width:420px;max-width:100%;max-height:92vh;overflow-y:auto;padding:18px 20px 22px;box-shadow:0 24px 60px rgba(0,0,0,.4)}
.lc-modal-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:-4px -4px 6px}
.lc-switch{display:inline-flex;align-items:center;gap:6px;background:#14171c;color:#fff;border:none;border-radius:20px;padding:7px 13px;font-size:12px;font-weight:600;cursor:pointer}
.lc-switch svg{width:15px;height:15px}
.lc-modal-box h3{margin:6px 0 4px;font-size:19px}
.lc-note{font-size:13px;color:#5a626d;margin:0 0 12px}
.lc-modal-box label{display:block;font-size:12px;font-weight:600;color:#5a626d;margin:10px 0 4px}
.lc-modal-box input,.lc-modal-box select,.lc-modal-box textarea{width:100%;box-sizing:border-box;border:1px solid #d9dde3;border-radius:8px;padding:9px 11px;font-size:14px;font-family:inherit}
.lc-cb-done{display:none;margin-top:12px;background:#e7f6ec;color:#1c7a37;border-radius:8px;padding:10px 12px;font-size:13px;text-align:center;font-weight:600}
@media(max-width:480px){#lc-panel{width:calc(100vw - 32px);height:calc(100vh - 110px)}}

/* original-language line under a translated operator reply (customer widget) */
.lc-b-op .lc-orig{margin-top:5px;padding-top:5px;border-top:1px dashed rgba(0,0,0,.12);font-size:11.5px;color:#8b93a0}

/* ── configurable pub-nav alignment (Settings → Branding) ── */
/* horizontal position of the nav buttons within the header */
.pub-header[data-navalign="left"]   .pub-nav{justify-content:flex-start}
.pub-header[data-navalign="center"] .pub-nav{justify-content:center}
.pub-header[data-navalign="right"]  .pub-nav{justify-content:flex-end}
/* vertical position of the nav within the header height */
.pub-header[data-navvalign="top"]    .pub-nav{align-self:flex-start;padding-top:8px}
.pub-header[data-navvalign="middle"] .pub-nav{align-self:center}
.pub-header[data-navvalign="bottom"] .pub-nav{align-self:flex-end;padding-bottom:8px}
