:root{--bg:#f4f5f7;--card:#fff;--text:#111827;--muted:#667085;--line:#e5e7eb;--accent:#111827;--good:#067647;--bad:#b42318;--warn:#b54708}*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--text)}button,input,select{font:inherit}.appbar{position:sticky;top:0;z-index:10;background:#111827;color:white;padding:14px max(16px,env(safe-area-inset-left));display:flex;align-items:center;justify-content:space-between}.appbar strong,.appbar span{display:block}.appbar span{font-size:12px;color:#aeb6c2;margin-top:2px}.ghost-link{color:white;text-decoration:none;border:1px solid #374151;border-radius:9px;padding:8px 10px;font-size:12px}.container{max-width:860px;margin:auto;padding:18px 14px 80px}.card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:18px;margin-bottom:14px;box-shadow:0 1px 2px rgba(16,24,40,.03)}h1,h2{margin:0}h1{font-size:24px}h2{font-size:17px}.muted{color:var(--muted);font-size:13px}.eyebrow{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-size:11px;font-weight:700}.hidden{display:none!important}label{display:grid;gap:6px;font-size:12px;font-weight:700;color:#475467;margin-top:14px}input,select{width:100%;padding:12px;border:1px solid #d6dae1;border-radius:10px;background:white;color:var(--text)}button{border:0;border-radius:10px;padding:11px 14px;font-weight:700;cursor:pointer}.primary{background:var(--accent);color:white}.secondary{background:white;color:var(--text);border:1px solid var(--line)}#startBtn{width:100%;margin-top:16px}.count-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:14px}.stats article{background:white;border:1px solid var(--line);border-radius:14px;padding:14px}.stats span,.stats small{display:block;color:var(--muted);font-size:11px}.stats strong{display:block;font-size:24px;margin:6px 0 2px}.scanner-head,.list-head,.scan-row,.quantity-row,.pager{display:flex;align-items:center;gap:10px}.scanner-head,.list-head{justify-content:space-between}.scan-row{margin-top:16px}.scan-row input{font-size:20px;font-weight:700;letter-spacing:.02em}.scan-row button{min-width:88px}.quantity-row{margin-top:10px}.quantity-row label{margin:0;flex:1}.quantity-row button{margin-top:20px}.last-scan{margin-top:14px;border-radius:12px;padding:14px;background:#f8fafc;border:1px solid var(--line)}.last-scan.empty{color:var(--muted)}.last-scan.good{background:#ecfdf3;border-color:#abefc6}.last-scan.bad{background:#fef3f2;border-color:#fecdca}.last-scan strong{display:block;font-size:16px}.camera-wrap{position:relative;margin-top:14px;background:#000;border-radius:14px;overflow:hidden;aspect-ratio:4/3}.camera-wrap video{width:100%;height:100%;object-fit:cover}.scan-frame{position:absolute;inset:30% 10%;border:2px solid white;border-radius:12px;box-shadow:0 0 0 999px rgba(0,0,0,.28)}.camera-stop{position:absolute;bottom:12px;right:12px;background:white}.wide-search{margin:14px 0 8px}.lines{display:grid}.line{display:grid;grid-template-columns:minmax(0,1fr) 80px 80px 72px;gap:10px;align-items:center;padding:12px 0;border-bottom:1px solid #edf0f2}.line-name strong{display:block}.line-name span{font-size:11px;color:var(--muted)}.qty{text-align:center}.delta{font-weight:800;text-align:center}.delta.good{color:var(--good)}.delta.bad{color:var(--bad)}.line input{padding:8px;text-align:center}.pager{justify-content:center;margin-top:14px}.flash{padding:12px 14px;border-radius:10px;margin-bottom:12px;background:#ecfdf3;color:var(--good);border:1px solid #abefc6}.flash.error{background:#fef3f2;color:var(--bad);border-color:#fecdca}@media(max-width:700px){.stats{grid-template-columns:1fr 1fr}.count-head{display:block}.count-head button{margin-top:12px}.line{grid-template-columns:minmax(0,1fr) 58px 58px 52px;font-size:12px}.card{padding:14px}.container{padding-left:10px;padding-right:10px}}@media(max-width:420px){.quantity-row{align-items:flex-end}.stats strong{font-size:21px}}

.camera-status{margin-top:10px}.camera-wrap.scan-ok{outline:4px solid #12b76a;outline-offset:2px}.camera-wrap.scan-ok .scan-frame{border-color:#12b76a}

.camera-debug{margin-top:5px;font-size:11px;line-height:1.35}.scan-frame:before{content:'UPC / EAN';position:absolute;top:-26px;left:0;color:#fff;font-size:12px;font-weight:800;text-shadow:0 1px 2px #000}.camera-wrap.scan-ok .scan-frame:after{content:'✓ LU';position:absolute;inset:0;display:grid;place-items:center;color:#fff;font-size:32px;font-weight:900;text-shadow:0 2px 8px #000}
.reconcile-entry{margin-top:24px;padding-top:20px;border-top:1px solid var(--line)}.reconcile-entry #openReconcileBtn{width:100%;margin-top:12px}.reconcile-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:14px 0}.checkline{display:flex;align-items:center;gap:8px;margin:0}.checkline input,.reconcile-check input{width:auto}.reconcile-lines{display:grid}.reconcile-line{display:grid;grid-template-columns:30px minmax(0,1fr) 360px;gap:10px;align-items:center;padding:14px 8px;border-bottom:1px solid #edf0f2;border-left:4px solid transparent}.reconcile-line.safe{border-left-color:#12b76a}.reconcile-line.conflict{background:#fff7ed;border-left-color:#f79009}.reconcile-line.applied{opacity:.65;background:#f8fafc}.reconcile-name strong,.reconcile-name span,.reconcile-name small{display:block}.reconcile-name span,.reconcile-name small{font-size:11px;color:var(--muted);margin-top:3px}.reconcile-values{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;text-align:center}.reconcile-values span{padding:7px;background:#f8fafc;border-radius:8px}.reconcile-values small,.reconcile-values b{display:block}.reconcile-values small{font-size:10px;color:var(--muted)}.good{color:var(--good)}.bad{color:var(--bad)}.danger-action{width:100%;margin-top:16px;background:#b42318;color:#fff}.danger-action:disabled{opacity:.45;cursor:not-allowed}@media(max-width:700px){.reconcile-line{grid-template-columns:26px 1fr}.reconcile-values{grid-column:2;grid-template-columns:repeat(4,1fr)}.reconcile-toolbar{align-items:flex-start;flex-direction:column}}@media(max-width:420px){.reconcile-values{grid-template-columns:1fr 1fr}.reconcile-values span{padding:6px}}
