/* ─── DealerDMS — Stock module styles ───────────────────────────────────────
   Reads ONLY from the app.css theme tokens (--surface, --primary, --border …)
   so it follows every theme (dms / midnight / graphite / fleet) automatically. */

.stock .stk-loading{display:flex;align-items:center;gap:10px;color:var(--text-muted);padding:40px 4px;font-weight:600}

/* header row */
.stk-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px;flex-wrap:wrap}
.stk-head .page-title{margin-bottom:6px}
.stk-head .page-sub{margin-bottom:0;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.stk-head-actions{display:flex;gap:8px;flex-wrap:wrap}

/* toolbar (search + filter) */
.stk-toolbar{display:flex;gap:12px;align-items:center;margin-bottom:16px;flex-wrap:wrap}
.stk-search{position:relative;flex:1;min-width:220px}
.stk-search-ico{position:absolute;left:12px;top:50%;transform:translateY(-50%);opacity:.6;font-size:14px;pointer-events:none}
.stk-search input{width:100%;padding:10px 12px 10px 34px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text);font-size:14px}
.stk-search input:focus{outline:none;border-color:var(--primary)}
.stk-select{padding:10px 12px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text);font-size:14px;font-weight:600;cursor:pointer}
.stk-select:focus{outline:none;border-color:var(--primary)}
.stk-mode-badge{font-size:11px;font-weight:700;padding:5px 10px;border-radius:20px;background:var(--accent-soft);color:var(--accent);white-space:nowrap}

/* toolbar row 2: attention chips + price band + view */
.stk-toolbar-2{margin-top:-6px}
.stk-chips{display:flex;gap:8px;flex-wrap:wrap}
.stk-chip{appearance:none;border:1px solid var(--border);background:var(--surface);color:var(--text-muted);font-size:12px;font-weight:700;padding:7px 12px;border-radius:20px;cursor:pointer;font-family:inherit;transition:.12s}
.stk-chip:hover{border-color:var(--primary);color:var(--text)}
.stk-chip-on{background:color-mix(in srgb,var(--primary) 14%,transparent);border-color:var(--primary);color:var(--primary)}
.stk-priceband{display:flex;align-items:center;gap:6px}
.stk-priceband input{width:110px;padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text);font-size:13px}
.stk-priceband input:focus{outline:none;border-color:var(--primary)}
.stk-priceband span{color:var(--text-muted)}

/* bulk action bar */
.stk-bulk{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:color-mix(in srgb,var(--primary) 8%,var(--surface));border:1px solid color-mix(in srgb,var(--primary) 40%,transparent);border-radius:var(--radius);padding:10px 14px;margin-bottom:12px}
.stk-bulk-count{font-size:13px;font-weight:800;color:var(--text)}
.stk-bulk-alllink{appearance:none;border:none;background:none;color:var(--primary);font-size:13px;font-weight:700;cursor:pointer;text-decoration:underline;font-family:inherit;padding:0}
.stk-bulk-actions{display:flex;gap:8px;flex-wrap:wrap;margin-left:auto}

/* selection checkboxes */
.stk-th-check{width:36px}
.stk-td-check{padding:6px 4px 6px 14px}
.stk-row-cb,#stk-check-all{width:16px;height:16px;cursor:pointer;accent-color:var(--primary)}

/* aging chip (green <30d, amber 30-59d, red 60+d) */
.stk-age{display:inline-block;padding:3px 9px;border-radius:20px;font-size:11px;font-weight:800;font-variant-numeric:tabular-nums;white-space:nowrap}
.stk-age-fresh{background:color-mix(in srgb,var(--good) 14%,transparent);color:color-mix(in srgb,var(--good) 78%,#000)}
.stk-age-warm{background:color-mix(in srgb,var(--warn) 20%,transparent);color:color-mix(in srgb,var(--warn) 62%,#000)}
.stk-age-old{background:color-mix(in srgb,var(--danger) 14%,transparent);color:color-mix(in srgb,var(--danger) 80%,#000)}

/* quality / completeness pill (0-100) */
.stk-q{display:inline-flex;align-items:center;justify-content:center;min-width:30px;padding:3px 7px;border-radius:20px;font-size:11px;font-weight:800;font-variant-numeric:tabular-nums}
.stk-q-good{background:color-mix(in srgb,var(--good) 16%,transparent);color:color-mix(in srgb,var(--good) 78%,#000)}
.stk-q-mid{background:color-mix(in srgb,var(--warn) 22%,transparent);color:color-mix(in srgb,var(--warn) 62%,#000)}
.stk-q-low{background:color-mix(in srgb,var(--danger) 14%,transparent);color:color-mix(in srgb,var(--danger) 80%,#000)}

/* margin (stock.manage only) */
.stk-margin{font-variant-numeric:tabular-nums;font-weight:700}
.stk-margin-pos{color:var(--good)}
.stk-margin-neg{color:var(--danger)}

/* website-published dot */
.stk-pub{font-size:12px;font-weight:700;white-space:nowrap}
.stk-pub-on{color:var(--good)}
.stk-pub-off{color:var(--text-muted)}

/* table */
.stk-tablewrap{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);overflow-x:auto}
.stk-table{width:100%;border-collapse:collapse;font-size:13.5px}
.stk-table thead th{text-align:left;padding:11px 14px;background:var(--surface-3);color:var(--text-muted);font-size:11px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;border-bottom:1px solid var(--border);white-space:nowrap}
.stk-table th.stk-num,.stk-table td.stk-num{text-align:right}
.stk-table th.stk-th-img{width:64px}
.stk-table tbody tr{border-bottom:1px solid var(--border);transition:background .1s}
.stk-table tbody tr:last-child{border-bottom:none}
.stk-table tbody tr:hover{background:var(--surface-hover)}
.stk-table td{padding:9px 14px;vertical-align:middle}
.stk-td-img{padding:6px 8px 6px 14px}
.stk-thumb{width:48px;height:36px;object-fit:cover;border-radius:6px;border:1px solid var(--border);display:block;background:var(--surface-2)}
.stk-thumb-ph{display:flex;align-items:center;justify-content:center;font-size:18px;opacity:.5}
.stk-name{font-weight:700;color:var(--text)}
.stk-variant{font-size:12px;color:var(--text-muted)}
.stk-plate{display:inline-block;font-family:"Segoe UI",monospace;font-weight:800;letter-spacing:.04em;background:var(--surface-2);border:1px solid var(--border);border-radius:5px;padding:2px 7px;font-size:12.5px;text-transform:uppercase}
.stk-plate-lg{font-size:15px;padding:4px 10px}
.stk-stockno{color:var(--text-muted);font-variant-numeric:tabular-nums}

/* status badges */
.stk-badge{display:inline-block;padding:3px 10px;border-radius:20px;font-size:11px;font-weight:700;background:var(--surface-2);color:var(--text);white-space:nowrap}
.stk-badge-in_stock{background:color-mix(in srgb,var(--good) 16%,transparent);color:var(--good)}
.stk-badge-reserved{background:var(--accent-soft);color:var(--accent)}
.stk-badge-sold{background:color-mix(in srgb,var(--danger) 14%,transparent);color:var(--danger)}
.stk-badge-sold_awaiting_delivery{background:color-mix(in srgb,var(--danger) 14%,transparent);color:var(--danger)}
.stk-badge-ordered{background:color-mix(in srgb,var(--primary) 15%,transparent);color:var(--primary-d,var(--primary))}
.stk-badge-part_exchange{background:var(--surface-2);color:var(--text-muted)}
.stk-badge-preparation{background:color-mix(in srgb,var(--warn) 20%,transparent);color:var(--warn)}

/* pagination */
/* (stk-pager retired — the stock list uses the shared .prt-pager component) */

/* empty state */
.stk-empty{background:var(--surface);border:1px dashed var(--border);border-radius:var(--radius);padding:48px 30px;text-align:center;color:var(--text-muted)}
.stk-empty-ico{font-size:38px;margin-bottom:12px;opacity:.75}
.stk-empty-title{font-size:17px;font-weight:800;color:var(--text);margin-bottom:5px}
.stk-empty-desc{font-size:13.5px}

/* ── FORM ────────────────────────────────────────────────────────────────── */
.stk-form{max-width:960px}
.stk-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px 20px;margin-bottom:16px}
.stk-card-title{margin:0 0 14px;font-size:14px;font-weight:800;color:var(--text);letter-spacing:.01em}
.stk-card-title-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.stk-card-title-row .stk-card-title{margin:0}
.stk-region-card{border-color:var(--primary);box-shadow:0 2px 14px color-mix(in srgb,var(--primary) 14%,transparent)}
.stk-card-region{border-left:3px solid var(--accent)}
.stk-region-tag{font-size:11px;font-weight:700;background:var(--surface-2);border-radius:20px;padding:2px 9px;margin-left:6px;color:var(--text-muted)}

.stk-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:14px}
.stk-field{display:flex;flex-direction:column;gap:5px}
.stk-field label{font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted)}
.stk-field input,.stk-field select,.stk-field textarea{padding:9px 11px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text);font-size:14px;font-family:inherit;width:100%}
.stk-field input:focus,.stk-field select:focus,.stk-field textarea:focus{outline:none;border-color:var(--primary)}
.stk-field textarea{resize:vertical;min-height:90px}
.stk-hint{font-size:12px;color:var(--text-muted);margin-top:2px}
.stk-hint b{color:var(--text)}

/* money input with currency prefix */
.stk-money{display:flex;align-items:stretch;border:1px solid var(--border);border-radius:8px;overflow:hidden;background:var(--surface)}
.stk-money:focus-within{border-color:var(--primary)}
.stk-money span{display:flex;align-items:center;padding:0 10px;background:var(--surface-2);color:var(--text-muted);font-weight:800;font-size:14px;border-right:1px solid var(--border)}
.stk-money input{border:none;border-radius:0;flex:1}
.stk-money input:focus{outline:none}

/* checkboxes */
.stk-checks{display:flex;gap:20px;flex-wrap:wrap;margin-top:12px}
.stk-check{display:flex;align-items:center;gap:8px;font-size:13.5px;font-weight:600;color:var(--text);cursor:pointer;text-transform:none;letter-spacing:0}
.stk-check input{width:auto}

.stk-form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:6px;padding-bottom:20px}

/* ── DETAIL ──────────────────────────────────────────────────────────────── */
.stk-detail-grid{display:grid;grid-template-columns:1fr 340px;gap:16px;align-items:start}
.stk-detail-main{min-width:0}
.stk-detail-side{display:flex;flex-direction:column;gap:16px}
.stk-detail-side .stk-card{margin-bottom:0}

.stk-price-big{font-size:28px;font-weight:800;color:var(--primary-d,var(--primary));font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.stk-price-was{color:var(--text-muted);text-decoration:line-through;font-size:14px;margin-top:2px;margin-bottom:8px}
.stk-spec{display:flex;justify-content:space-between;gap:12px;padding:6px 0;border-bottom:1px solid var(--border);font-size:13px}
.stk-spec:last-child{border-bottom:none}
.stk-spec-k{color:var(--text-muted);font-weight:600}
.stk-spec-v{color:var(--text);font-weight:700;text-align:right}
.stk-desc-short{font-weight:600;margin:0 0 8px}
.stk-desc-full{color:var(--text-muted);line-height:1.6;margin:0;white-space:pre-wrap}
.stk-btn-danger{color:var(--danger);border-color:var(--danger-border)}
.stk-btn-danger:hover{background:var(--danger-bg)}

/* AI button */
.stk-ai-btn{background:linear-gradient(135deg,var(--primary),var(--accent));color:var(--on-primary);border:none;font-weight:700}
.stk-ai-btn:hover{filter:brightness(1.05)}
.stk-ai-btn[disabled]{opacity:.7;cursor:progress}
/* disabled *gate* (not a spinner) — greyed, not-allowed */
.stk-ai-btn.stk-ai-btn-off[disabled],.stk-ai-btn.stk-ai-btn-off{background:var(--surface-2);color:var(--text-muted);cursor:not-allowed;filter:none;opacity:1}

/* ── WIZARD PROGRESS HEADER (AI build tab) ─────────────────────────────────── */
.stk-wiz{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:12px 16px;margin-bottom:16px}
.stk-wiz-step{display:flex;align-items:center;gap:9px;min-width:0}
.stk-wiz-dot{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;font-size:12px;font-weight:800;background:var(--surface-2);color:var(--text-muted);border:1px solid var(--border);flex:0 0 auto}
.stk-wiz-done .stk-wiz-dot{background:var(--good);color:#fff;border-color:var(--good)}
.stk-wiz-part .stk-wiz-dot{background:color-mix(in srgb,var(--warn) 22%,transparent);color:var(--warn);border-color:var(--warn)}
.stk-wiz-txt{display:flex;flex-direction:column;line-height:1.25}
.stk-wiz-txt b{font-size:12.5px;color:var(--text)}
.stk-wiz-txt small{font-size:11px;color:var(--text-muted)}
.stk-wiz-done .stk-wiz-txt b{color:var(--good)}
.stk-wiz-sep{flex:0 1 34px;height:2px;background:var(--border);border-radius:2px;min-width:14px}
.stk-wiz-oneclick{margin-left:auto}

/* meta cards above the listing preview (costs+margin / completeness) */
.stk-meta-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px;margin-bottom:16px;max-width:960px}
.stk-meta-card{margin-bottom:0}
.stk-meta-card .stk-card-title-row{margin-bottom:8px}
.stk-spec-margin{border-top:2px solid var(--border);margin-top:4px;padding-top:9px}
.stk-spec-margin .stk-spec-v{font-size:15px}
.stk-chk{display:flex;align-items:center;gap:9px;padding:5px 0;font-size:13px;font-weight:600;color:var(--text)}
.stk-chk small{color:var(--text-muted);font-weight:600}
.stk-chk span{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;font-size:11px;font-weight:800;flex:0 0 auto}
.stk-chk-ok span{background:color-mix(in srgb,var(--good) 16%,transparent);color:var(--good)}
.stk-chk-no span{background:color-mix(in srgb,var(--danger) 14%,transparent);color:var(--danger)}
.stk-chk-no{color:var(--text-muted)}

/* bulk dialog form bits (inside the shell's .dlg) */
.stk-dlg-body{display:flex;flex-direction:column;gap:8px;margin:4px 0 6px}
.stk-dlg-label{font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted)}
.stk-dlg-input{padding:9px 11px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text);font-size:14px;font-family:inherit;width:100%}
.stk-dlg-input:focus{outline:none;border-color:var(--primary)}
.stk-dlg-check{margin-top:2px}
.stk-dlg-hint{font-size:12px;color:var(--text-muted);margin:2px 0 0;line-height:1.45}

/* ── 3-STEP AI WORKFLOW ────────────────────────────────────────────────────── */
.stk-step-n{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:linear-gradient(135deg,var(--primary),var(--accent));color:var(--on-primary);font-size:12px;font-weight:800;margin-right:8px;vertical-align:middle}
.stk-step-lead{color:var(--text-muted);font-size:13px;line-height:1.5;margin:-4px 0 14px}
.stk-step-lead b{color:var(--text)}

/* STEP 1 — per-image description editors */
.stk-gimg{display:flex;flex-direction:column;aspect-ratio:auto;background:var(--surface-2);border:1px solid var(--border);border-radius:10px;overflow:hidden}
.stk-gimg-media{position:relative;aspect-ratio:16/10;background:var(--surface-2)}
.stk-gimg-media img{width:100%;height:100%;object-fit:cover;display:block}
.stk-gimg-desc{padding:10px 12px;display:flex;flex-direction:column;gap:8px;background:var(--surface)}
.stk-gimg-txt{width:100%;resize:vertical;min-height:60px;padding:8px 10px;border:1px solid var(--border);border-radius:7px;background:var(--surface);color:var(--text);font-size:13px;font-family:inherit;line-height:1.45}
.stk-gimg-txt:focus{outline:none;border-color:var(--primary)}
.stk-gimg-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.stk-gimg-actions .btn{padding:4px 8px;font-size:11.5px}
.stk-gimg-regen{background:linear-gradient(135deg,var(--primary),var(--accent));color:var(--on-primary);border:none;font-weight:700}
.stk-gimg-regen:hover{filter:brightness(1.05)}
.stk-gimg-status{font-size:11px;font-weight:700;color:var(--good);margin-left:auto}

/* STEP 2 — verify grid */
.stk-specs-empty,.stk-copy-empty,.stk-copy-note{font-size:13px}
.stk-specs-empty{padding:14px;background:var(--surface-3);border:1px dashed var(--border);border-radius:8px}
.stk-verify-warn{display:flex;gap:8px;background:color-mix(in srgb,var(--warn) 14%,transparent);color:var(--warn);border:1px solid color-mix(in srgb,var(--warn) 40%,transparent);border-radius:8px;padding:10px 12px;font-size:13px;font-weight:600;line-height:1.45;margin-bottom:14px}
/* 5 columns: Save · Field · Current value · AI recommended · Value to save */
.stk-verify-cols{grid-template-columns:48px 140px minmax(90px,0.8fr) minmax(90px,0.8fr) minmax(200px,1.3fr)}
.stk-verify-head{display:grid;grid-template-columns:48px 140px minmax(90px,0.8fr) minmax(90px,0.8fr) minmax(200px,1.3fr);gap:10px;align-items:center;padding:0 4px 6px;font-size:10.5px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted);border-bottom:1px solid var(--border)}
.stk-verify-head-check{text-align:center}
.stk-verify-grid{display:flex;flex-direction:column}
.stk-verify-row{display:grid;grid-template-columns:48px 140px minmax(90px,0.8fr) minmax(90px,0.8fr) minmax(200px,1.3fr);gap:10px;align-items:center;padding:8px 4px;border-bottom:1px solid var(--border)}
.stk-verify-row:last-child{border-bottom:none}
.stk-verify-empty{opacity:.55}
.stk-verify-diff{background:color-mix(in srgb,var(--warning,#e8a33d) 8%,transparent);border-radius:7px}
.stk-verify-check{display:flex;justify-content:center}
.stk-verify-cb,.stk-feat-cb{width:18px;height:18px;cursor:pointer;accent-color:var(--primary)}
.stk-verify-cb[disabled]{cursor:not-allowed;opacity:.4}
.stk-verify-label{font-size:12.5px;font-weight:700;color:var(--text);display:flex;flex-direction:column;gap:3px}
.stk-diff-tag{display:inline-block;width:fit-content;font-size:9px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--warning,#b5730f);background:color-mix(in srgb,var(--warning,#e8a33d) 18%,transparent);padding:1px 6px;border-radius:10px}
.stk-verify-existing{font-size:13px;color:var(--text)}
.stk-verify-ai{font-size:13px;color:var(--text);font-weight:600}
.stk-verify-diff .stk-verify-ai{color:var(--primary)}
.stk-verify-final{display:flex;flex-direction:column;gap:6px}
.stk-choose{display:inline-flex;gap:0;border:1px solid var(--border);border-radius:7px;overflow:hidden;width:fit-content}
.stk-choose-btn{border:none;background:var(--surface);color:var(--text-muted);font-size:11px;font-weight:700;padding:4px 10px;cursor:pointer;font-family:inherit}
.stk-choose-btn+.stk-choose-btn{border-left:1px solid var(--border)}
.stk-choose-btn.is-on{background:var(--primary);color:#fff}
.stk-verify-input{padding:7px 9px;border:1px solid var(--border);border-radius:7px;background:var(--surface);color:var(--text);font-size:13.5px;font-family:inherit;width:100%}
.stk-verify-input:focus{outline:none;border-color:var(--primary)}
@media(max-width:900px){
  .stk-verify-head{display:none}
  .stk-verify-row{grid-template-columns:32px 1fr;grid-auto-rows:auto;row-gap:4px;column-gap:8px}
  .stk-verify-existing::before{content:"Current: ";color:var(--text-muted);font-weight:700}
  .stk-verify-ai::before{content:"AI: ";color:var(--text-muted);font-weight:700}
  .stk-verify-existing,.stk-verify-ai,.stk-verify-final{grid-column:2}
}
.stk-verify-toggle-all{display:flex;gap:8px;margin-top:10px}
.stk-verify-damage{margin-top:12px;font-size:12.5px;color:var(--danger);background:color-mix(in srgb,var(--danger) 8%,transparent);border-radius:7px;padding:8px 10px}

/* STEP 2 — features + condition */
.stk-feat-block,.stk-cond-block{margin-top:16px;padding-top:14px;border-top:1px solid var(--border)}
.stk-feat-title{font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);margin-bottom:10px}
.stk-feat-list{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}
.stk-feat{display:inline-flex;align-items:center;gap:7px;padding:5px 11px;background:var(--surface-2);border:1px solid var(--border);border-radius:20px;font-size:12.5px;font-weight:600;color:var(--text);cursor:pointer}
.stk-feat:has(input:checked){background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}
.stk-feat-add{display:flex;gap:8px}
.stk-feat-add input{flex:1;padding:7px 10px;border:1px solid var(--border);border-radius:7px;background:var(--surface);color:var(--text);font-size:13px}
.stk-feat-add input:focus{outline:none;border-color:var(--primary)}
.stk-cond-block textarea{width:100%;margin-top:6px;padding:8px 10px;border:1px solid var(--border);border-radius:7px;background:var(--surface);color:var(--text);font-size:13.5px;font-family:inherit;resize:vertical;min-height:60px}
.stk-cond-block textarea:focus{outline:none;border-color:var(--primary)}
.stk-verify-actions{display:flex;justify-content:flex-end;margin-top:16px}

/* STEP 3 — copy output */
.stk-copy-hint{font-size:12.5px;color:var(--warn);font-weight:600;margin:-6px 0 12px;min-height:0}
.stk-copy-hint:empty{display:none}
.stk-copy-out{background:var(--surface-3);border:1px solid var(--border);border-radius:8px;padding:14px 16px}
.stk-copy-title{font-size:13px;margin-bottom:8px;color:var(--text)}
.stk-copy-note{margin-top:10px;font-size:11.5px}

/* dropzone */
.stk-dropzone{border:2px dashed var(--border);border-radius:var(--radius);padding:38px 24px;text-align:center;cursor:pointer;transition:.15s;background:var(--surface-3);margin-bottom:12px}
.stk-dropzone:hover{border-color:var(--primary);background:var(--surface-hover)}
.stk-dropzone:focus-visible{outline:2px solid var(--primary);outline-offset:2px}
.stk-drop-over{border-color:var(--primary);background:color-mix(in srgb,var(--primary) 8%,var(--surface));transform:scale(1.005)}
.stk-drop-ico{font-size:26px;margin-bottom:6px}
.stk-drop-main{font-weight:700;color:var(--text);font-size:15px}
.stk-drop-sub{color:var(--text-muted);font-size:13px;margin-top:3px}
.stk-drop-link{color:var(--primary);font-weight:700;text-decoration:underline}

/* gallery (per-image .stk-gimg layout lives in the 3-STEP WORKFLOW block) */
.stk-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(380px,1fr));gap:6px}
.stk-gallery-empty{padding:16px 4px}
.stk-gimg-primary{position:absolute;left:8px;top:8px;background:var(--primary);color:var(--on-primary);font-size:10px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;padding:4px 9px;border-radius:20px}
/* Delete is ALWAYS visible (not hover-only) so it works on touch + is obviously
   there — a solid red pill in the corner. */
.stk-gimg-del{position:absolute;right:8px;top:8px;width:32px;height:32px;border-radius:50%;border:2px solid #fff;background:var(--danger,#dc2626);color:#fff;font-size:15px;font-weight:800;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px rgba(0,0,0,.35);transition:.12s;z-index:2}
.stk-gimg-del:hover{background:#b91c1c;transform:scale(1.08)}
.stk-gimg-del:focus-visible{outline:2px solid #fff;outline-offset:2px}

/* ── DETAIL TABS (record pages use the shared .crm-seg pill component) ────── */
.stk-tabpanel{display:none}
.stk-tabpanel-active{display:block}
/* the inline Tab-3 form spans the full panel width */
.stk-tabpanel[data-panel="details"] .stk-form{max-width:960px}

/* ── TAB 1 · CLEAN LISTING PREVIEW (website-style) ─────────────────────────── */
.stk-lst{max-width:960px}
.stk-lst-gallery{margin-bottom:18px}
.stk-lst-main{aspect-ratio:16/10;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}
.stk-lst-main img{width:100%;height:100%;object-fit:cover;display:block}
.stk-lst-strip{display:flex;gap:8px;margin-top:8px;overflow-x:auto;padding-bottom:2px}
.stk-lst-thumb{flex:0 0 auto;width:88px;height:64px;padding:0;border:2px solid var(--border);border-radius:8px;overflow:hidden;cursor:pointer;background:var(--surface-2);transition:border-color .12s}
.stk-lst-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.stk-lst-thumb:hover{border-color:var(--primary)}
.stk-lst-thumb-on{border-color:var(--primary)}
.stk-lst-nophoto{display:flex;align-items:center;gap:10px;background:var(--surface-3);border:1px dashed var(--border);border-radius:var(--radius);padding:28px 22px;color:var(--text-muted);font-size:14px;font-weight:600;margin-bottom:18px}
.stk-lst-nophoto{font-size:24px}
.stk-lst-nophoto span{font-size:14px}

.stk-lst-body-wrap{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:22px 24px}
.stk-lst-headline{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap;padding-bottom:16px;border-bottom:1px solid var(--border);margin-bottom:16px}
.stk-lst-title{margin:0;font-size:24px;font-weight:800;letter-spacing:-.01em;color:var(--text)}
.stk-lst-price{text-align:right}
.stk-lst-price-now{display:block;font-size:30px;font-weight:800;color:var(--primary-d,var(--primary));font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.stk-lst-price-was{display:block;color:var(--text-muted);text-decoration:line-through;font-size:15px;margin-top:2px}

.stk-lst-specs{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:2px 24px;margin-bottom:6px}
.stk-lst-spec{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid var(--border);font-size:13.5px}
.stk-lst-spec-k{color:var(--text-muted);font-weight:600}
.stk-lst-spec-v{color:var(--text);font-weight:700;text-align:right}

.stk-lst-section{margin-top:20px}
.stk-lst-h{margin:0 0 12px;font-size:13px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted)}
.stk-lst-feats{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:7px 18px}
.stk-lst-feats li{position:relative;padding-left:22px;font-size:13.5px;color:var(--text);line-height:1.4}
.stk-lst-feats li::before{content:"✓";position:absolute;left:0;top:0;color:var(--good);font-weight:800}
.stk-lst-lead{font-size:15px;font-weight:600;color:var(--text);margin:0 0 10px;line-height:1.5}
.stk-lst-body{color:var(--text-muted);line-height:1.65;margin:0;white-space:pre-wrap;font-size:14px}
.stk-lst-emptyhint{font-size:13.5px}

/* responsive */
@media (max-width:860px){
  .stk-detail-grid{grid-template-columns:1fr}
  .stk-detail-side{order:-1}
  .stk-lst-headline{flex-direction:column;gap:8px}
  .stk-lst-price{text-align:left}
}

/* ── Safety & recalls tab (NHTSA) ─────────────────────────────────────────── */
.stk-safety-method{font-size:13px;color:var(--text);background:var(--surface-2);border:1px solid var(--border);border-radius:8px;padding:9px 12px;line-height:1.5}
.stk-safety-method-lbl{display:inline-block;font-size:10.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);margin-right:6px}
.stk-safety-method code{font-size:12px;background:var(--surface);border:1px solid var(--border);border-radius:5px;padding:1px 5px}
.stk-safety-caveat{margin:14px 0 4px;font-size:13px;line-height:1.55;color:var(--text);background:color-mix(in srgb,var(--warn) 10%,transparent);border:1px solid color-mix(in srgb,var(--warn) 35%,transparent);border-left:4px solid var(--warn);border-radius:8px;padding:11px 14px}
.stk-safety-caveat b{color:var(--text)}
.stk-safety-caveat a{color:var(--primary);font-weight:600}
.stk-safety-sub{margin:20px 0 8px;font-size:12px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted);padding-bottom:6px;border-bottom:1px solid var(--border)}
.stk-safety-list{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-direction:column;gap:8px}
.stk-safety-recall,.stk-safety-complaint{background:var(--surface);border:1px solid var(--border);border-radius:9px;overflow:hidden}
.stk-safety-list details>summary{cursor:pointer;padding:10px 13px;font-size:13.5px;line-height:1.5;list-style:none;display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.stk-safety-list details>summary::-webkit-details-marker{display:none}
.stk-safety-list details>summary::before{content:"▸";color:var(--text-muted);font-size:11px;margin-right:2px;transition:transform .15s}
.stk-safety-list details[open]>summary::before{transform:rotate(90deg)}
.stk-safety-list details>summary:hover{background:var(--surface-2)}
.stk-safety-detail{padding:2px 15px 13px 28px;font-size:13px;line-height:1.55;color:var(--text);display:flex;flex-direction:column;gap:7px;border-top:1px solid var(--border)}
.stk-safety-detail code{font-size:12px;background:var(--surface-2);border:1px solid var(--border);border-radius:5px;padding:1px 6px}
.stk-safety-detail a{color:var(--primary);font-weight:600;margin-left:8px}
.stk-safety-k{display:inline-block;min-width:96px;font-size:10.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);margin-right:8px;vertical-align:top}
.stk-safety-id{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:11px;font-weight:700;color:var(--primary);background:color-mix(in srgb,var(--primary) 12%,transparent);border:1px solid color-mix(in srgb,var(--primary) 30%,transparent);border-radius:5px;padding:1px 7px}
.stk-safety-warn{color:var(--danger)}
.stk-badge.danger{background:color-mix(in srgb,var(--danger) 15%,transparent);color:var(--danger)}
.stk-safety-foot{margin-top:16px;font-size:11.5px}

/* ── Part-exchange context banner on the vehicle detail ──────────────────── */
.stk-px-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin:0 0 14px;padding:12px 16px;border:1px solid var(--primary);border-radius:10px;background:color-mix(in srgb,var(--primary) 7%,var(--surface))}
.stk-px-who{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:13.5px;color:var(--text)}
.stk-px-tag{background:var(--primary);color:var(--on-primary);font-size:11px;font-weight:800;letter-spacing:.03em;text-transform:uppercase;padding:3px 9px;border-radius:20px}
.stk-px-who a{color:var(--primary);font-weight:700;text-decoration:none}
.stk-px-who a:hover{text-decoration:underline}
.stk-px-actions{display:flex;align-items:end;gap:8px;flex-wrap:wrap}
.stk-px-val{display:flex;flex-direction:column;gap:3px;font-size:11.5px;font-weight:700;color:var(--text-muted)}
.stk-px-val input{width:130px;border:1px solid var(--border);border-radius:8px;padding:6px 10px;font-size:14px;font-weight:700;color:var(--text);background:var(--surface)}

/* guided shot checklist wrapper inside step 1 */
.stk-shotlist{margin-bottom:14px}

/* ── PX banner: AI cross-checks (mileage/VIN read off photos, set warning) ── */
.stk-px-checks{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 12px}
.stk-px-check{font-size:12.5px;font-weight:600;padding:5px 12px;border-radius:999px}
.stk-px-check-ok{background:color-mix(in srgb,var(--good) 15%,transparent);color:var(--good)}
.stk-px-check-warn{background:color-mix(in srgb,var(--warn) 18%,transparent);color:var(--warn)}
