/* --- product page: details, inline --- */
.pdetails { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 14px 16px; }
.pfield { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.pfield.wide { grid-column: 1 / -1; }
.pfield > label { font-size: 11px; font-weight: 700; letter-spacing: .3px; color: var(--text-muted); text-transform: uppercase; }
.pfield input, .pfield select {
  font: inherit; font-size: 13.5px; padding: 8px 10px; min-width: 0; width: 100%;
  border: 1px solid var(--border); border-radius: 9px; background: var(--surface); color: var(--text);
}
.pfield input:focus, .pfield select:focus { outline: none; border-color: var(--accent); box-shadow: 0 0 0 3px var(--ring); }
.pfield input:disabled { opacity: .6; }
.pfield-row { display: flex; gap: 7px; align-items: stretch; }
/* min-width:0 or a number box refuses to shrink past its default size and
   pushes the button beside it off a narrow card */
.pfield-row input { flex: 1; min-width: 0; }
.pfield-row select { flex: none; width: auto; min-width: 74px; }
.pfield-row .tool { flex: none; }
/* a count and a short name sitting in front of a barcode box — the row wraps
   rather than squashing the barcode down to nothing on a phone */
.pfield-row.wrap { flex-wrap: wrap; }
.pfield-row input.narrow { flex: 0 0 78px; }
.pfield-row input.mid { flex: 0 0 112px; }
.pfield-row input.grow { flex: 1 1 150px; }
.phelp { font-size: 11.5px; color: var(--text-muted); line-height: 1.45; }
.phelp b { color: var(--text-soft); }
.phelp a { color: var(--blue); }
@media (max-width: 560px) { .pdetails { grid-template-columns: 1fr; } }

