.barcode-input-row { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; align-items:stretch; }
.barcode-scan-button { min-height:44px; display:inline-flex; align-items:center; justify-content:center; gap:7px; padding:0 14px; border:1px solid var(--teal,#087d6d); border-radius:6px; color:var(--teal-dark,#075e54); background:#fff; font:inherit; font-weight:700; letter-spacing:0; white-space:nowrap; cursor:pointer; }
.barcode-scan-button:hover { color:#fff; background:var(--teal,#087d6d); }
.barcode-scan-button:focus-visible { outline:3px solid rgba(230,126,34,.4); outline-offset:2px; }
.barcode-dialog { width:min(520px,calc(100% - 24px)); padding:0; border:0; border-radius:8px; color:var(--ink,#172523); background:#fff; box-shadow:0 24px 70px rgba(20,45,40,.24); }
.barcode-dialog::backdrop { background:rgba(16,30,28,.58); }
.barcode-dialog[open] { display:block; }
.barcode-dialog-content { padding:24px; }
.barcode-dialog-header { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; margin-bottom:18px; }
.barcode-dialog-header h2 { margin:0 0 5px; font-size:20px; letter-spacing:0; }
.barcode-dialog-header p { margin:0; color:var(--muted,#5d6b68); font-size:13px; line-height:1.55; }
.barcode-close { width:40px; min-height:40px; flex:0 0 40px; padding:0; border:1px solid var(--line,#d8e3df); border-radius:6px; color:var(--muted,#5d6b68); background:#fff; font-size:22px; line-height:1; cursor:pointer; }
.barcode-status { min-height:48px; margin:0; padding:13px 14px; border-radius:6px; color:var(--teal-dark,#075e54); background:var(--mint,#e5f4ef); line-height:1.55; }
.barcode-status.error { color:#a33b28; background:#fff0ec; }
.barcode-progress { width:100%; height:12px; margin:14px 0 4px; accent-color:var(--teal,#087d6d); }
.barcode-camera-wrap { position:relative; overflow:hidden; margin-top:14px; border-radius:8px; background:#102522; aspect-ratio:4/3; }
.barcode-camera { display:block; width:100%; height:100%; object-fit:cover; }
.barcode-camera-wrap::after { content:""; position:absolute; inset:18% 9%; border:2px solid rgba(255,255,255,.9); border-radius:8px; box-shadow:0 0 0 999px rgba(0,0,0,.18); pointer-events:none; }
.barcode-camera-actions { justify-content:flex-start; margin-top:12px; }
.barcode-results { display:grid; gap:9px; margin-top:16px; }
.barcode-result-button { width:100%; min-height:48px; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:9px 12px; border:1px solid var(--line,#d8e3df); border-radius:6px; color:var(--ink,#172523); background:#fff; font:inherit; text-align:left; cursor:pointer; }
.barcode-result-button:hover { border-color:var(--teal,#087d6d); background:#f7fbf9; }
.barcode-result-value { min-width:0; overflow-wrap:anywhere; font-weight:700; }
.barcode-result-format { flex:0 0 auto; color:var(--muted,#5d6b68); font-size:12px; }
.barcode-dialog-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:9px; margin-top:18px; }
.barcode-dialog-action { min-height:42px; padding:0 14px; border:1px solid var(--teal,#087d6d); border-radius:6px; color:#fff; background:var(--teal,#087d6d); font:inherit; font-weight:700; cursor:pointer; }
.barcode-dialog-action.secondary { color:var(--teal-dark,#075e54); background:#fff; }
@media(max-width:520px) {
  .barcode-dialog-content { padding:20px 17px; }
  .barcode-scan-button { padding:0 11px; }
}
