/* barcode-scanner.css
   Styles for the reusable camera barcode scanner modal (barcode-scanner.js)
   and the "Scan" buttons that trigger it (repair-support.js's parts
   catalog). Reuses this app's existing .modal-backdrop / .modal-close /
   .modal-actions classes (see styles.css) for the backdrop/close/action
   chrome, same pattern as maintenance-alerts.css's .maintenance-dialog. */
.barcode-scanner-dialog{position:relative;width:min(420px,calc(100vw - 28px));max-height:calc(100vh - 40px);overflow:auto;background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:12px;padding:24px}
.barcode-scanner-dialog h2{margin:4px 30px 8px 0;font:500 20px 'Space Grotesk',sans-serif}
.barcode-scanner-hint{margin:0 0 14px;color:var(--muted);font-size:12px}
.barcode-scanner-viewport{position:relative;width:100%;aspect-ratio:4/3;background:#000;border-radius:8px;overflow:hidden}
.barcode-scanner-viewport video{width:100%;height:100%;object-fit:cover;display:block}
.barcode-scanner-tip{margin:12px 0 0;color:var(--muted);font-size:12px;font-style:italic}
.barcode-scanner-error{margin:12px 0 0;color:#b83b2e;font-size:12px}
.barcode-scanner-dialog :focus-visible{outline:2px solid var(--focus);outline-offset:3px}
.barcode-scan-btn[disabled]{opacity:.55;cursor:not-allowed}
.barcode-scan-hint{display:block;margin-top:4px;color:var(--muted);font-size:10px}
.catalog-search-row{display:flex;gap:8px;align-items:flex-end;flex-wrap:wrap;margin:10px 0}
.catalog-search-row label{flex:1 1 220px}
@media(max-width:620px){.barcode-scanner-dialog{padding:18px}.catalog-search-row{flex-direction:column;align-items:stretch}}
