.bs-root{--bs-navy:#0a1628;--bs-navy-mid:#112040;--bs-navy-light:#1a2f50;--bs-navy-card:#132038;--bs-green:#00e676;--bs-green-glow:#00e67626;--bs-amber:#ffb300;--bs-red:#ff5252;--bs-text:#def;--bs-text-dim:#6b8caa;--bs-radius:18px;--bs-radius-sm:10px;background:var(--bs-navy);color:var(--bs-text);-webkit-tap-highlight-color:transparent;max-width:430px;min-height:100dvh;margin:0 auto;font-family:DM Sans,sans-serif;overflow-x:hidden}.bs-root *{box-sizing:border-box}.bs-header{justify-content:space-between;align-items:center;padding:18px 20px 10px;display:flex}.bs-root .logo{letter-spacing:-.5px;font-size:19px;font-weight:700}.bs-root .logo em{color:var(--bs-green);font-style:normal}.bs-root .badge{letter-spacing:.4px;background:var(--bs-green-glow);color:var(--bs-green);border:1px solid #00e67640;border-radius:20px;padding:4px 10px;font-size:11px;font-weight:600}.bs-root .gauge-section{padding:6px 16px 14px}.bs-root .gauge-card{background:var(--bs-navy-card);border-radius:var(--bs-radius);padding:20px;position:relative;overflow:hidden}.bs-root .gauge-card:after{content:"";pointer-events:none;background:radial-gradient(circle at 100% 0,#00e6760f,#0000 70%);width:160px;height:160px;position:absolute;top:0;right:0}.bs-root .gauge-top{justify-content:space-between;align-items:flex-start;margin-bottom:16px;display:flex}.bs-root .gauge-total{line-height:1}.bs-root .gauge-total .label{color:var(--bs-text-dim);text-transform:uppercase;letter-spacing:.6px;margin-bottom:4px;font-size:11px}.bs-root .gauge-total .amount{letter-spacing:-1px;font-family:DM Mono,monospace;font-size:36px;font-weight:500}.bs-root .gauge-total .amount .cur{opacity:.55;font-size:18px}.bs-root .status-pill{letter-spacing:.3px;text-transform:uppercase;border-radius:20px;align-items:center;gap:5px;padding:5px 11px;font-size:11px;font-weight:700;transition:all .35s;display:flex}.bs-root .dot{background:currentColor;border-radius:50%;width:6px;height:6px}.bs-root .pill-ok{color:var(--bs-green);background:#00e6761a}.bs-root .pill-warn{color:var(--bs-amber);background:#ffb3001a}.bs-root .pill-over{color:var(--bs-red);background:#ff52521a}.bs-root .bar-wrap{background:var(--bs-navy-light);border-radius:4px;height:8px;margin-bottom:12px;overflow:hidden}.bs-root .bar-fill{background:var(--bs-green);border-radius:4px;height:100%;transition:width .5s cubic-bezier(.4,0,.2,1),background .4s}.bs-root .gauge-bottom{justify-content:space-between;align-items:center;display:flex}.bs-root .gauge-meta{color:var(--bs-text-dim);font-size:12px}.bs-root .gauge-meta strong{color:var(--bs-text);font-weight:500}.bs-root .budget-row{align-items:center;gap:6px;display:flex}.bs-root .budget-row label{color:var(--bs-text-dim);font-size:12px}.bs-root .budget-row input{background:var(--bs-navy-light);width:90px;color:var(--bs-text);text-align:right;border:1.5px solid #0000;border-radius:8px;outline:none;padding:5px 8px;font-family:DM Mono,monospace;font-size:14px;transition:border-color .2s}.bs-root .budget-row input:focus{border-color:var(--bs-green)}.bs-root .snap-section{padding:0 16px 14px}.bs-root .section-label{color:var(--bs-text-dim);letter-spacing:.6px;text-transform:uppercase;margin-bottom:10px;font-size:11px}.bs-root .snap-card{background:var(--bs-navy-card);border-radius:var(--bs-radius);position:relative;overflow:hidden}.bs-root .viewfinder{aspect-ratio:4/3;background:#000;justify-content:center;align-items:center;width:100%;display:flex;position:relative;overflow:hidden}.bs-root .viewfinder video,.bs-root .viewfinder canvas.preview-canvas{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.bs-root .vf-overlay{pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.bs-root .vf-frame{border:2px solid #00e676b3;border-radius:8px;width:72%;height:38%;position:relative;box-shadow:0 0 0 2000px #00000061}.bs-root .vf-frame:before,.bs-root .vf-frame:after{content:"";border-color:var(--bs-green);border-style:solid;width:16px;height:16px;position:absolute}.bs-root .vf-frame:before{border-width:3px 0 0 3px;border-radius:4px 0 0;top:-2px;left:-2px}.bs-root .vf-frame:after{border-width:0 3px 3px 0;border-radius:0 0 4px;bottom:-2px;right:-2px}.bs-root .vf-hint{color:#fff9;white-space:nowrap;background:#00000080;border-radius:20px;padding:4px 10px;font-size:11px;position:absolute;bottom:10px;left:50%;transform:translate(-50%)}.bs-root .vf-placeholder{color:var(--bs-text-dim);text-align:center;flex-direction:column;align-items:center;gap:8px;padding:20px;font-size:13px;display:flex}.bs-root .vf-placeholder .icon{opacity:.4;font-size:40px}.bs-root .processing-overlay{z-index:10;background:#0a1628d1;flex-direction:column;justify-content:center;align-items:center;gap:12px;display:none;position:absolute;inset:0}.bs-root .processing-overlay.show{display:flex}.bs-root .pulse-ring{border:3px solid var(--bs-green);border-radius:50%;width:52px;height:52px;animation:1.2s ease-out infinite bsPulseRing}@keyframes bsPulseRing{0%{opacity:1;transform:scale(.8)}to{opacity:0;transform:scale(1.4)}}.bs-root .processing-overlay p{color:var(--bs-green);font-size:13px;font-weight:500}.bs-root .result-banner{background:var(--bs-navy-light);border-top:1px solid #ffffff0d;flex-direction:column;gap:8px;padding:12px 16px;display:none}.bs-root .result-banner.show{display:flex}.bs-root .result-row{align-items:center;gap:10px;display:flex}.bs-root .result-icon{font-size:20px}.bs-root .result-name{flex:1;min-width:0;font-size:14px;font-weight:500}.bs-root .result-name .sub{color:var(--bs-text-dim);margin-top:1px;font-size:11px;font-weight:400}.bs-root .result-price-box{align-items:center;gap:6px;display:flex}.bs-root .price-prefix{color:var(--bs-text-dim);font-size:14px}.bs-root .price-edit{color:var(--bs-green);text-align:right;background:0 0;border:none;border-bottom:1.5px solid #00e67666;outline:none;width:90px;padding:0 2px;font-family:DM Mono,monospace;font-size:22px;font-weight:500}.bs-root .price-edit:focus{border-bottom-color:var(--bs-green)}.bs-root .result-actions{gap:8px;display:flex}.bs-root .btn-confirm{background:var(--bs-green);color:var(--bs-navy);border-radius:var(--bs-radius-sm);cursor:pointer;border:none;flex:1;padding:11px;font-family:DM Sans,sans-serif;font-size:14px;font-weight:700;transition:opacity .15s}.bs-root .btn-confirm:active{opacity:.8}.bs-root .btn-retry{background:var(--bs-navy-mid);color:var(--bs-text-dim);border:1.5px solid var(--bs-navy-light);border-radius:var(--bs-radius-sm);cursor:pointer;padding:11px 16px;font-family:DM Sans,sans-serif;font-size:14px;transition:color .15s}.bs-root .btn-retry:hover{color:var(--bs-text)}.bs-root .snap-controls{gap:10px;padding:14px 16px;display:flex}.bs-root .btn-camera{border-radius:var(--bs-radius-sm);cursor:pointer;border:none;flex:1;justify-content:center;align-items:center;gap:8px;padding:14px;font-family:DM Sans,sans-serif;font-size:15px;font-weight:700;transition:opacity .15s,background .2s;display:flex}.bs-root .btn-camera:active{opacity:.8}.bs-root .btn-start,.bs-root .btn-snap{background:var(--bs-green);color:var(--bs-navy)}.bs-root .btn-stop{background:var(--bs-navy-light);color:var(--bs-text-dim);border:1.5px solid #ffffff14;font-weight:500}.bs-root .btn-upload{background:var(--bs-navy-light);color:var(--bs-text);border:1.5px solid #ffffff14;flex:none;padding:14px 16px;font-size:20px}.bs-root .manual-section{padding:0 16px 14px}.bs-root .manual-row{align-items:center;gap:8px;display:flex}.bs-root .manual-row input[type=text]{background:var(--bs-navy-card);border-radius:var(--bs-radius-sm);color:var(--bs-text);border:1.5px solid #0000;outline:none;flex:1;padding:11px 13px;font-family:DM Sans,sans-serif;font-size:14px;transition:border-color .2s}.bs-root .manual-row input[type=number]{background:var(--bs-navy-card);border-radius:var(--bs-radius-sm);width:90px;color:var(--bs-green);text-align:right;border:1.5px solid #0000;outline:none;padding:11px 10px;font-family:DM Mono,monospace;font-size:15px;transition:border-color .2s}.bs-root .manual-row input:focus{border-color:var(--bs-green)}.bs-root .btn-add-manual{background:var(--bs-navy-light);color:var(--bs-green);border-radius:var(--bs-radius-sm);cursor:pointer;border:1.5px solid #00e67633;padding:11px 16px;font-size:20px;transition:background .15s}.bs-root .btn-add-manual:active{background:#00e6761a}.bs-root .cart-section{padding:0 16px 100px}.bs-root .cart-header{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.bs-root .btn-clear{color:var(--bs-red);opacity:.65;cursor:pointer;background:0 0;border:none;font-family:DM Sans,sans-serif;font-size:12px}.bs-root .btn-clear:hover{opacity:1}.bs-root .cart-list{flex-direction:column;gap:7px;display:flex}.bs-root .cart-item{background:var(--bs-navy-card);border-radius:12px;align-items:center;gap:11px;padding:11px 14px;animation:.22s cubic-bezier(.4,0,.2,1) bsPopIn;display:flex}@keyframes bsPopIn{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:none}}.bs-root .ci-icon{flex-shrink:0;font-size:22px}.bs-root .ci-info{flex:1;min-width:0}.bs-root .ci-name{white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:500;overflow:hidden}.bs-root .ci-sub{color:var(--bs-text-dim);margin-top:2px;font-size:11px}.bs-root .ci-price{color:var(--bs-green);text-align:right;flex-shrink:0;font-family:DM Mono,monospace;font-size:13px;line-height:1.35}.bs-root .ci-price .ci-unit{color:var(--bs-text-dim);font-size:10px;display:block}.bs-root .ci-qty{background:var(--bs-navy);border-radius:8px;flex-shrink:0;align-items:center;gap:4px;padding:3px;display:flex}.bs-root .ci-qty button{background:var(--bs-navy-light);width:22px;height:22px;color:var(--bs-text);cursor:pointer;border:none;border-radius:6px;justify-content:center;align-items:center;padding:0;font-size:14px;font-weight:600;transition:background .15s;display:flex}.bs-root .ci-qty button:hover:not(:disabled){background:var(--bs-green-glow);color:var(--bs-green)}.bs-root .ci-qty button:disabled{opacity:.35;cursor:not-allowed}.bs-root .ci-qty .ci-qty-num{text-align:center;min-width:16px;font-family:DM Mono,monospace;font-size:13px}.bs-root .ci-del{color:var(--bs-text-dim);cursor:pointer;background:0 0;border:none;padding:2px 4px;font-size:16px;transition:color .15s}.bs-root .ci-del:hover{color:var(--bs-red)}.bs-root .empty{text-align:center;color:var(--bs-text-dim);padding:36px 20px;font-size:13px;line-height:1.7}.bs-root .empty .big{opacity:.4;margin-bottom:8px;font-size:40px;display:block}.bs-root .settings-btn{background:var(--bs-navy-card);border:1.5px solid var(--bs-navy-light);color:var(--bs-text-dim);cursor:pointer;border-radius:10px;padding:7px 10px;font-size:16px;line-height:1;transition:color .2s,border-color .2s}.bs-root .settings-btn:hover,.bs-root .settings-btn.open{color:var(--bs-text);border-color:var(--bs-green)}.bs-root .settings-drawer{max-height:0;margin:0 16px;transition:max-height .35s cubic-bezier(.4,0,.2,1);overflow:hidden}.bs-root .settings-drawer.open{max-height:400px}.bs-root .settings-inner{background:var(--bs-navy-card);border-radius:var(--bs-radius);margin-bottom:6px;padding:6px 4px 10px}.bs-root .settings-title{color:var(--bs-text-dim);text-transform:uppercase;letter-spacing:.6px;border-bottom:1px solid #ffffff0d;margin-bottom:4px;padding:8px 16px 10px;font-size:11px}.bs-root .setting-row{border-radius:10px;align-items:center;gap:12px;padding:11px 16px;transition:background .15s;display:flex}.bs-root .setting-row:hover{background:#ffffff08}.bs-root .setting-icon{text-align:center;flex-shrink:0;width:24px;font-size:18px}.bs-root .setting-info{flex:1;min-width:0}.bs-root .setting-label{font-size:13px;font-weight:500}.bs-root .setting-desc{color:var(--bs-text-dim);margin-top:2px;font-size:11px;line-height:1.4}.bs-root .toggle-wrap{flex-shrink:0}.bs-root .toggle-input{display:none}.bs-root .toggle-track{background:var(--bs-navy-light);cursor:pointer;border-radius:12px;width:42px;height:24px;transition:background .25s;display:block;position:relative}.bs-root .toggle-input:checked+.toggle-track{background:var(--bs-green)}.bs-root .toggle-track:after{content:"";background:#fff;border-radius:50%;width:18px;height:18px;transition:transform .25s cubic-bezier(.4,0,.2,1);position:absolute;top:3px;left:3px;box-shadow:0 1px 4px #0000004d}.bs-root .toggle-input:checked+.toggle-track:after{transform:translate(18px)}.bs-root .snap-tip{color:var(--bs-text-dim);text-align:center;padding:10px 16px 0;font-size:12px;line-height:1.5}.bs-root .bs-footer{text-align:center;color:var(--bs-text-dim);opacity:.7;padding:24px 16px 32px;font-size:11px}.bs-root .settings-note{color:var(--bs-text-dim);background:#00e6760f;border-left:2px solid #00e6764d;border-radius:8px;margin:4px 16px 0;padding:8px 10px;font-size:11px;line-height:1.5}
