:root{--scanner-bg: #ffffff;--scanner-bg-secondary: #fafafa;--scanner-border: #e5e5e5;--scanner-text: #171717;--scanner-text-secondary: #525252;--scanner-text-muted: #a3a3a3;--scanner-accent: #d97706;--scanner-accent-hover: #b45309;--scanner-accent-light: rgba(217, 119, 6, .1);--scanner-success: #16a34a;--scanner-error: #dc2626;--scanner-radius: 8px;--scanner-shadow: 0 4px 24px rgba(0, 0, 0, .12);--scanner-transition: all .2s cubic-bezier(.4, 0, .2, 1)}.dark{--scanner-bg: #18181b;--scanner-bg-secondary: #27272a;--scanner-border: #3f3f46;--scanner-text: #fafafa;--scanner-text-secondary: #a1a1aa;--scanner-text-muted: #71717a;--scanner-accent: #f59e0b;--scanner-accent-hover: #fbbf24;--scanner-accent-light: rgba(245, 158, 11, .15);--scanner-shadow: 0 4px 24px rgba(0, 0, 0, .4)}.barcode-modal{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:opacity .25s ease,visibility .25s ease}.barcode-modal--active{opacity:1;visibility:visible}.barcode-modal__backdrop{position:absolute;inset:0;background:#0009;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.barcode-modal__container{position:relative;width:100%;max-width:420px;margin:1rem;background:var(--scanner-bg);border-radius:16px;box-shadow:var(--scanner-shadow);overflow:hidden;transform:scale(.9) translateY(20px);transition:transform .3s cubic-bezier(.34,1.56,.64,1)}.barcode-modal--active .barcode-modal__container{transform:scale(1) translateY(0)}.barcode-modal__header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem;border-bottom:1px solid var(--scanner-border);background:var(--scanner-bg-secondary)}.barcode-modal__title{display:flex;align-items:center;gap:.625rem;margin:0;font-size:1.125rem;font-weight:600;color:var(--scanner-text);letter-spacing:-.01em}.barcode-modal__title svg{width:22px;height:22px;color:var(--scanner-accent)}.barcode-modal__close{display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;background:transparent;border:none;border-radius:var(--scanner-radius);color:var(--scanner-text-muted);cursor:pointer;transition:var(--scanner-transition)}.barcode-modal__close:hover{background:var(--scanner-accent-light);color:var(--scanner-accent)}.barcode-modal__close svg{width:20px;height:20px}.barcode-modal__body{padding:1.5rem}.barcode-reader{position:relative;width:100%;min-height:300px;background:#000;border-radius:12px;overflow:hidden}.barcode-reader:before{content:"";position:absolute;inset:0;border:3px solid var(--scanner-accent);border-radius:12px;pointer-events:none;z-index:10;opacity:.5}.barcode-reader video{width:100%;height:100%;object-fit:cover}.barcode-reader:after{content:"";position:absolute;left:10%;right:10%;height:2px;background:linear-gradient(90deg,transparent,var(--scanner-accent),transparent);box-shadow:0 0 8px var(--scanner-accent);z-index:11;animation:scanner-line 2s ease-in-out infinite}@keyframes scanner-line{0%,to{top:20%;opacity:.3}50%{top:80%;opacity:1}}.barcode-modal__hint{display:flex;align-items:center;justify-content:center;gap:.5rem;margin-top:1rem;padding:.875rem 1rem;background:var(--scanner-accent-light);border-radius:var(--scanner-radius);font-size:.8125rem;color:var(--scanner-accent);font-weight:500}.barcode-modal__hint svg{flex-shrink:0;width:16px;height:16px}.barcode-modal__continuous{display:flex;align-items:center;gap:.5rem;margin-top:.75rem;padding:.75rem 1rem;background:var(--scanner-bg-secondary);border:1px solid var(--scanner-border);border-radius:var(--scanner-radius);font-size:.8125rem;cursor:pointer;transition:background .2s}.barcode-modal__continuous:hover{background:var(--scanner-bg-tertiary)}.barcode-modal__continuous input{width:18px;height:18px;accent-color:var(--scanner-accent);cursor:pointer}.barcode-modal__camera-select{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem;padding:.75rem 1rem;background:var(--scanner-bg-secondary);border:1px solid var(--scanner-border);border-radius:var(--scanner-radius)}.barcode-modal__camera-select label{display:flex;align-items:center;gap:.5rem;font-size:.8125rem;font-weight:500;color:var(--scanner-text-secondary);white-space:nowrap}.barcode-modal__camera-select label svg{width:16px;height:16px;color:var(--scanner-accent)}.barcode-modal__torch{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:var(--scanner-bg-tertiary);border:1px solid var(--scanner-border);border-radius:var(--scanner-radius);color:var(--scanner-text-secondary);cursor:pointer;transition:all .2s;flex-shrink:0}.barcode-modal__torch:hover{background:var(--scanner-bg-secondary);color:var(--scanner-accent)}.barcode-modal__torch--active{background:var(--scanner-accent);border-color:var(--scanner-accent);color:#fff}.barcode-modal__torch--active:hover{background:var(--scanner-accent);color:#fff}.barcode-modal__camera-select select{flex:1;padding:.5rem .75rem;background:var(--scanner-bg);border:1px solid var(--scanner-border);border-radius:6px;font-size:.8125rem;color:var(--scanner-text);cursor:pointer;transition:var(--scanner-transition);min-width:0}.barcode-modal__camera-select select:hover:not(:disabled){border-color:var(--scanner-accent)}.barcode-modal__camera-select select:focus{outline:none;border-color:var(--scanner-accent);box-shadow:0 0 0 3px var(--scanner-accent-light)}.barcode-modal__camera-select select:disabled{opacity:.6;cursor:not-allowed}.barcode-modal__footer{padding:1rem 1.5rem;border-top:1px solid var(--scanner-border);background:var(--scanner-bg-secondary)}.barcode-modal__status{display:flex;align-items:center;justify-content:center;gap:.5rem;font-size:.875rem;font-weight:500;color:var(--scanner-text-muted)}.barcode-modal__status--ready{color:var(--scanner-accent)}.barcode-modal__status--success{color:var(--scanner-success)}.barcode-modal__status--error{color:var(--scanner-error)}.barcode-scan-btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:0;background:var(--scanner-bg-secondary);border:1px solid var(--scanner-border);border-radius:var(--scanner-radius);color:var(--scanner-text-secondary);cursor:pointer;transition:var(--scanner-transition);font-family:inherit;font-size:.875rem;font-weight:500;white-space:nowrap}.barcode-scan-btn:hover{background:var(--scanner-accent-light);border-color:var(--scanner-accent);color:var(--scanner-accent)}.barcode-scan-btn:active{transform:scale(.96)}.barcode-scan-btn:focus-visible{outline:2px solid var(--scanner-accent);outline-offset:2px}.barcode-scan-btn svg{flex-shrink:0}.barcode-scan-btn--xs{width:28px;height:28px}.barcode-scan-btn--xs svg{width:14px;height:14px}.barcode-scan-btn--sm{width:32px;height:32px}.barcode-scan-btn--sm svg{width:16px;height:16px}.barcode-scan-btn--md{width:38px;height:38px}.barcode-scan-btn--md svg{width:18px;height:18px}.barcode-scan-btn--lg{width:44px;height:44px}.barcode-scan-btn--lg svg{width:20px;height:20px}.barcode-scan-btn--with-label{width:auto;padding:.5rem 1rem}.barcode-scan-btn--pos{position:absolute;right:12px;top:50%;transform:translateY(-50%);width:38px;height:38px;background:transparent;border:none;border-radius:8px;color:var(--scanner-text-muted);z-index:2}.barcode-scan-btn--pos:hover{background:var(--scanner-accent-light);color:var(--scanner-accent);transform:translateY(-50%) scale(1.05)}.barcode-scan-btn--pos:active{transform:translateY(-50%) scale(.95)}.barcode-scan-btn--pos svg{width:20px;height:20px}.barcode-scan-btn--inline{flex-shrink:0;width:34px;height:34px;background:var(--scanner-bg);border:1px solid var(--scanner-border)}.barcode-scan-btn--inline svg{width:16px;height:16px}.fi-fo-field-wrp .barcode-scan-btn--filament{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:32px;height:32px;background:transparent;border:none;color:var(--scanner-text-muted);z-index:5}.fi-fo-field-wrp .barcode-scan-btn--filament:hover{background:var(--scanner-accent-light);color:var(--scanner-accent)}.fi-fo-field-wrp:has(.barcode-scan-btn--filament) input{padding-right:44px!important}@media(max-width:480px){.barcode-modal__container{margin:0;max-width:100%;height:100%;max-height:100%;border-radius:0;display:flex;flex-direction:column}.barcode-modal__body{flex:1;display:flex;flex-direction:column}.barcode-reader{flex:1;min-height:0;border-radius:0}.barcode-reader:before{border-radius:0}}#barcode-reader__scan_region{background:transparent!important}#barcode-reader__dashboard_section_csr{padding:1rem!important}#barcode-reader__dashboard_section_csr button{background:var(--scanner-accent)!important;border:none!important;border-radius:var(--scanner-radius)!important;padding:.75rem 1.5rem!important;font-weight:600!important;font-size:.875rem!important;cursor:pointer!important;transition:var(--scanner-transition)!important}#barcode-reader__dashboard_section_csr button:hover{background:var(--scanner-accent-hover)!important}#barcode-reader__dashboard_section_csr select{padding:.625rem .875rem!important;border-radius:6px!important;border:1px solid var(--scanner-border)!important;background:var(--scanner-bg)!important;color:var(--scanner-text)!important;font-size:.875rem!important}#barcode-reader__header_message{color:var(--scanner-text-secondary)!important;font-size:.8125rem!important}.fi-input-wrp:has(input.barcode-input) .fi-input-wrp-suffix{cursor:pointer;transition:var(--scanner-transition);border-radius:6px;padding:4px;margin-right:4px}.fi-input-wrp:has(input.barcode-input) .fi-input-wrp-suffix:hover{background:var(--scanner-accent-light);color:var(--scanner-accent)}.fi-input-wrp:has(input.barcode-input) .fi-input-wrp-suffix:hover svg{color:var(--scanner-accent)}.fi-input-wrp:has(input.barcode-input) .fi-input-wrp-suffix:active{transform:scale(.95)}
