/* SHOP v5 (2026-11-13, PILOTED TO JUSTUS; js/shop-v5.js). Ported from the spec's own stylesheet,
   claude-admin mocks/purch-shop-fresh-v5/kit-add.css, on TODAY's Shop classes (css/shop.css .sh-*):
   Purchasing chrome, section cards, headers and buttons kept. State = Inventory v4's left edge + rule
   + filled tag (no row/card tint, his ruling). Ink only; quiet = smaller or lighter, never grey.
   Everything is scoped to .sh-wrap.sv5, which only the pilot's v5 screen draws. */
.sh-wrap.sv5{--ink:#171614;
  --wait-bg:#f9bf6b;--wait-ink:#4e3304;--wait-edge:#df9700;   /* --st-ours tint/ink (purchasing.html:2880) */
  --prog-bg:#b7d4f0;--prog-ink:#0f4c86;--prog-edge:#3d7fc4;   /* --st-gc (purchasing.html:2881) */
  --done-bg:#b4dfc0;--done-ink:#0f5228;--done-edge:#207f40;   /* --st-done (purchasing.html:2883, shop.css:45) */
  --idle-bg:#e7e5e0;--idle-ink:#171614;--idle-edge:#a8a29e}
.sh-wrap.sv5 .sh-sh span,.sh-wrap.sv5 .sh-none,.sh-wrap.sv5 .sh-eyebrow,.sh-wrap.sv5 .sh-h,.sh-wrap.sv5 .sh-dim,.sh-wrap.sv5 .sh-kv span,
.sh-wrap.sv5 .sh-meta,.sh-wrap.sv5 .sh-tag,.sh-wrap.sv5 .sh-lhd,.sh-wrap.sv5 .se-l,.sh-wrap.sv5 .se-log,.sh-wrap.sv5 .sh-sclink{color:var(--ink)}
/* section header: today's, a touch more room */
.sh-wrap.sv5 .sh-sec{margin-bottom:16px}
.sh-wrap.sv5 .sh-sh{padding:14px 18px;align-items:center}
.sh-wrap.sv5 .sh-sh b{font-size:16px}
.sh-wrap.sv5 .sh-sh span{font-size:14px;font-weight:600}
.sh-wrap.sv5 .sh-sh > i{font-style:normal;margin-left:auto;font-size:13px;font-weight:600}
.sh-wrap.sv5 .sh-sh i b{font:600 13px ui-monospace,SFMono-Regular,monospace}
.sh-wrap.sv5 .sh-none{padding:16px 18px;font-size:14px}
/* the row: WHITE, Inventory v4's treatment (mocks/purch-inventory-fresh-v4/kit-add.css): 6px state-colour left edge,
   2px state rule under the row, today's filled status tag. No tint, no band. ~10px between rows. */
.sh-wrap.sv5 .sv5-sec{padding-bottom:10px}
.sh-wrap.sv5 .sv5-thead{display:grid;grid-template-columns:56px minmax(0,1fr) 52px 124px 150px;gap:0 16px;padding:9px 29px 0 31px;font-size:10.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase}
.sh-wrap.sv5 .sv5-thead span:last-child{text-align:right}
.sh-wrap.sv5 .sv5-row{display:grid;grid-template-columns:56px minmax(0,1fr) 52px 124px 150px;gap:0 16px;align-items:center;
  margin:10px 12px 0;padding:10px 14px 10px 12px;min-height:44px;background:#fff;border:1px solid #e3e1db;border-left:6px solid transparent;border-radius:8px;cursor:pointer}
.sh-wrap.sv5 .sv5-row:hover{border-color:#cfccc4}
.sh-wrap.sv5 .sv5-row.st-wait{border-left-color:var(--wait-edge);border-bottom:2px solid var(--wait-bg)}
.sh-wrap.sv5 .sv5-row.st-prog{border-left-color:var(--prog-edge);border-bottom:2px solid var(--prog-bg)}
.sh-wrap.sv5 .sv5-row.st-done{border-left-color:var(--done-edge);border-bottom:2px solid var(--done-bg)}
.sh-wrap.sv5 .sv5-row.st-idle{border-left-color:var(--idle-edge);border-bottom:2px solid var(--idle-bg)}
.sh-wrap.sv5 .sv5-row.sel{box-shadow:0 0 0 2px #2472c2}
.sh-wrap.sv5 .sv5-lab{display:inline-block;font-size:13px;font-weight:700;padding:4px 9px;border-radius:5px;white-space:nowrap}
.sh-wrap.sv5 .sv5-lab.wait{background:var(--wait-bg);color:var(--wait-ink)}
.sh-wrap.sv5 .sv5-lab.prog{background:var(--prog-bg);color:var(--prog-ink)}
.sh-wrap.sv5 .sv5-lab.done{background:var(--done-bg);color:var(--done-ink)}
.sh-wrap.sv5 .sv5-lab.idle{background:var(--idle-bg);color:var(--idle-ink)}
.sh-wrap.sv5 .sv5-need{font-size:16px;font-weight:700;line-height:1.2;white-space:nowrap}
.sh-wrap.sv5 .sv5-need.late{color:#c81e1e}.sh-wrap.sv5 .sv5-need em{display:block;font-style:normal;font-size:12px}
.sh-wrap.sv5 .sv5-what{font-size:16px;line-height:1.3;min-width:0}
.sh-wrap.sv5 .sv5-what b{font-weight:750}
.sh-wrap.sv5 .sv5-sub{font-size:13.5px;font-weight:450;margin-top:2px}
.sh-wrap.sv5 .sv5-qty{font-size:13px;text-align:right;white-space:nowrap}
.sh-wrap.sv5 .sv5-qty b{font-size:17px;font-weight:700;font-variant-numeric:tabular-nums}
.sh-wrap.sv5 .sv5-who{font-size:14px;font-weight:600;line-height:1.3}
.sh-wrap.sv5 .sv5-acts{display:flex;flex-direction:column;gap:4px;align-items:flex-end;justify-content:center}
.sh-wrap.sv5 .sv5-acts small{font-size:12.5px;font-weight:600;white-space:nowrap}
.sh-wrap.sv5 .sv5-acts .sh-btn{font-size:13.5px;padding:6px 12px}
.sh-wrap.sv5 .sv5-acts span{white-space:nowrap}.sh-wrap.sv5 .sv5-acts span .sh-btn{font-size:12.5px;padding:4px 9px}
/* the card: white, filled tag on the PF line, more room, larger values */
.sh-wrap.sv5 .sh-card .sh-ch{padding:18px 20px 18px}
.sh-wrap.sv5 .sv5-l1{display:flex;align-items:center;gap:8px}
.sh-wrap.sv5 .sv5-pf{font:700 13px ui-monospace,SFMono-Regular,monospace;letter-spacing:.02em}
.sh-wrap.sv5 .sv5-l1 .sh-sheet{margin:0 0 0 auto;display:flex;gap:8px}
.sh-wrap.sv5 .sh-title{font-size:23px;margin:8px 0 4px}
.sh-wrap.sv5 .sh-meta{font-size:15px}
.sh-wrap.sv5 .sv5-facts{display:grid;grid-template-columns:repeat(4,auto);justify-content:start;gap:4px 32px;margin-top:16px;font-size:15px}
.sh-wrap.sv5 .sv5-facts small{display:block;font-size:10.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;margin-bottom:2px}
.sh-wrap.sv5 .sv5-facts b{font-weight:600}
.sh-wrap.sv5 .sv5-edits{margin-top:14px;font-size:13px;line-height:1.6;font-weight:450}
.sh-wrap.sv5 .sh-cb{padding:16px 20px 22px}
.sh-wrap.sv5 .sh-h{font-size:11px;margin:22px 0 10px}
.sh-wrap.sv5 .sh-cb>.sh-h:first-child{margin-top:4px}
.sh-wrap.sv5 .sh-lbody{grid-template-columns:140px minmax(0,1fr);gap:16px;padding:12px}
.sh-wrap.sv5 .sh-vals{font-size:19px;gap:5px}
.sh-wrap.sv5 .sh-lab{font-size:13.5px}
.sh-wrap.sv5 .sh-q{font-size:21px;margin-top:6px}
.sh-wrap.sv5 .sh-tag{font-size:13.5px;padding:0 12px 10px}
.sh-wrap.sv5 .sv5-files{border:1px solid #e3e1db;border-radius:8px}
.sh-wrap.sv5 .sv5-files div{padding:10px 14px;border-top:1px solid #efeee9;font-size:14px;font-weight:550;cursor:zoom-in;display:flex;gap:10px;align-items:center}
.sh-wrap.sv5 .sv5-files div:first-child{border-top:0}
.sh-wrap.sv5 .sv5-files i{font:800 9.5px/1 inherit;font-style:normal;border:1px solid var(--ink);border-radius:3px;padding:2px 4px}
.sh-wrap.sv5 .sh-btns{margin-top:20px;gap:10px;align-items:center}
.sh-wrap.sv5 .sh-btns .sh-big{padding:15px 16px;font-size:15.5px}
/* history: today's black dots, laid across */
.sh-wrap.sv5 .sv5-tl{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr)}
.sh-wrap.sv5 .sv5-tl > div{position:relative;font-size:13px;padding-right:8px;line-height:1.4}
.sh-wrap.sv5 .sv5-tl > div::before{content:'';position:absolute;left:14px;right:0;top:5px;height:1.5px;background:#d6d3cd}
.sh-wrap.sv5 .sv5-tl > div.on::before{background:var(--ink)}
.sh-wrap.sv5 .sv5-tl > div:last-child::before{display:none}
.sh-wrap.sv5 .sv5-tl i{display:block;width:12px;height:12px;border-radius:50%;border:1.5px solid #a8a29e;background:#fff;margin-bottom:8px;position:relative}
.sh-wrap.sv5 .sv5-tl .on i{background:var(--ink);border-color:var(--ink)}
.sh-wrap.sv5 .sv5-tl b{display:block;font-weight:700;font-size:13.5px}
.sh-wrap.sv5 .sv5-tl span{display:block;font-weight:450}
/* edit card + task form: today's, with room and larger fields */
.sh-wrap.sv5 .sv5-edit .se-bar{font-size:14px;padding:9px 12px}
.sh-wrap.sv5 .sv5-edit .se-l,.sh-wrap.sv5 .sv5-form .sh-h{font-size:12px}
.sh-wrap.sv5 .sv5-edit .se-in,.sh-wrap.sv5 .sv5-form .sh-in{font-size:15.5px;padding:10px 11px}
.sh-wrap.sv5 .sv5-edit .se-req{gap:14px;margin-bottom:16px}
.sh-wrap.sv5 .sv5-edit .se-body{gap:16px;padding:14px}
.sh-wrap.sv5 .sv5-edit .se-grid{gap:12px}
.sh-wrap.sv5 .sv5-form .sh-seg button{font-size:14.5px;padding:9px 14px}
/* kept as today, restyled to sit in v5 (inventory M1, M4, M5) */
.sh-wrap.sv5 .sv5-need:not(.late) em{font-weight:600}
.sh-wrap.sv5 .sv5-files img{width:34px;height:34px;object-fit:cover;border-radius:4px;flex:none;background:#f2f1ee}
.sh-wrap.sv5 .sv5-files span{min-width:0;overflow-wrap:anywhere}
.sh-wrap.sv5 .sv5-l1 .sh-test{margin-left:0}
/* the pilot's old/new switch (same look as Inventory v5's .iv5-switch) */
.sv5-swrow{display:flex;justify-content:flex-end;margin:0 0 10px}
.sv5-switch{font:600 12px -apple-system,BlinkMacSystemFont,system-ui,'Segoe UI',Roboto,Arial,sans-serif;padding:6px 12px;border-radius:8px;border:1.5px dashed #9a958a;background:#fff;color:#171614;cursor:pointer;white-space:nowrap}
.sv5-switch:hover{border-style:solid}
