:root{color-scheme:light;--font-body:"IBM Plex Sans","Avenir Next","Segoe UI",Helvetica,Arial,sans-serif;--font-heading:"Sora","IBM Plex Sans","Avenir Next",sans-serif;--bg-top:#f5f8ff;--bg-bottom:#e7ecf8;--panel:#fff;--panel-soft:#f2f6ff;--text-main:#172338;--text-muted:#5b6a83;--border:#d7e0f2;--border-strong:#bed0f5;--brand:#2456d6;--brand-soft:#dce7ff;--danger:#b23030;--danger-soft:#fff0f0;--ok:#1e7a3c;--ok-soft:#ecfaef;--shadow:none}*{box-sizing:border-box}body,html{margin:0;min-height:100%}body{font-family:var(--font-body);color:var(--text-main);background:#fff}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:var(--font-heading);letter-spacing:-.015em}button,input,select{font:inherit}input,select{width:100%;border:1px solid var(--border);border-radius:12px;padding:.62rem .75rem;background:#fcfdff;color:var(--text-main)}.printer-status-select{position:relative}.printer-status-select-trigger{width:100%;min-height:48px;display:grid;grid-template-columns:1fr auto;align-items:center;grid-gap:.62rem;gap:.62rem;text-align:left;border:1px solid var(--border);border-radius:12px;background:#fcfdff;color:var(--text-main)}.printer-status-select-trigger.open{border-color:var(--border-strong)}.printer-status-select-value{min-width:0;display:grid;grid-gap:.1rem;gap:.1rem}.printer-status-select-value>span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.printer-status-select-list{position:absolute;left:0;right:0;top:calc(100% + .35rem);z-index:40;border:1px solid var(--border);border-radius:12px;background:#fff;padding:.32rem;display:grid;grid-gap:.2rem;gap:.2rem;max-height:280px;overflow-y:auto;box-shadow:0 14px 30px -26px rgba(21,41,84,.55)}.printer-status-select-option{width:100%;border:1px solid transparent;border-radius:10px;padding:.5rem .54rem;text-align:left;background:#fbfdff;color:var(--text-main);display:grid;grid-gap:.2rem;gap:.2rem}.printer-status-select-option:hover:not(:disabled),.printer-status-select-trigger:hover:not(:disabled){transform:none;border-color:var(--border-strong)}.printer-status-select-option.active{border-color:var(--border-strong)}.printer-status-select-option.selected{background:var(--panel-soft)}.printer-status-option-label{font-weight:580;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.printer-status-option-meta{display:flex;align-items:center;justify-content:space-between;gap:.5rem}button{border:1px solid var(--border);border-radius:12px;background:var(--brand-soft);color:#173d8f;padding:.56rem .86rem;cursor:pointer;transition:transform .12s ease,background .12s ease,border-color .12s ease}button:hover:not(:disabled){transform:translateY(-1px);border-color:var(--border-strong);background:#d1e1ff}button:disabled{opacity:.65;cursor:not-allowed}button.active{border-color:#84a5f0;background:#c9dbff}button.danger{color:var(--danger);border-color:#f0b8b8;background:var(--danger-soft)}.ghost-button{background:transparent;border-color:#c4d3f5;color:#365997}.ghost-button:hover:not(:disabled){background:#edf3ff}.auth-screen{min-height:100vh;display:grid;place-items:center;padding:1rem}.auth-panel{width:min(460px,100%);border:1px solid var(--border);border-radius:18px;background:var(--panel);padding:1rem;display:grid;grid-gap:.9rem;gap:.9rem}.mobile-shell{max-width:760px;margin:0 auto;padding:.65rem .75rem 1rem;display:grid;grid-gap:.75rem;gap:.75rem}.panel{border:none;border-radius:16px;background:var(--panel);padding:0}.row-between{display:flex;align-items:center;justify-content:space-between;gap:.65rem}.tabs{border:1px solid var(--border);border-radius:14px;background:var(--panel-soft);padding:.35rem;display:grid;grid-template-columns:1fr 1fr;grid-gap:.35rem;gap:.35rem}.tabs button{width:100%}.scanner-panel{border:1px solid var(--border);border-radius:14px;background:#fbfdff;padding:.75rem}.mode-toggle{display:grid;grid-template-columns:1fr 1fr;grid-gap:.4rem;gap:.4rem}.camera-surface{border:1px solid var(--border);border-radius:12px;background:linear-gradient(180deg,#f8fbff,#eef3fb);padding:.5rem;display:grid;grid-gap:.45rem;gap:.45rem;transition:border-color .18s ease}.camera-surface.detected{border-color:#5fbd74}.camera-frame{width:100%;aspect-ratio:2/1;border-radius:10px;border:1px solid #c1d4f8;background:#11213b;overflow:hidden;position:relative;isolation:isolate}.camera-frame.detected{border-color:#6bc989}.camera-viewport{position:relative;width:100%;height:100%}.camera-viewport>canvas,.camera-viewport>video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.camera-success-overlay{position:absolute;inset:0;display:grid;place-items:center;opacity:0;pointer-events:none;background:rgba(41,151,79,.34);color:#f1fff4;font-weight:700;letter-spacing:.08em;text-transform:uppercase;transition:opacity .12s ease}.camera-success-overlay.visible{opacity:1}.batch-panel{display:grid;grid-gap:.75rem;gap:.75rem;padding-bottom:calc(8rem + env(safe-area-inset-bottom))}.batch-list{display:grid;grid-gap:.6rem;gap:.6rem}.batch-row{position:relative;overflow:hidden;touch-action:pan-y;border:1px solid var(--border);border-radius:12px;background:#fff}.batch-row-delete-action{position:absolute;inset:0;display:grid;place-items:center end;padding-right:.9rem;background:#d14a4a;color:#fff;font-size:.78rem;font-weight:700;letter-spacing:.03em}.batch-row-track{position:relative;z-index:1;display:grid;grid-template-columns:52px minmax(0,1fr) 74px;grid-gap:.5rem;gap:.5rem;align-items:center;padding:.45rem .5rem;background:#fbfdff;transition:transform .12s ease}.batch-thumb{width:52px;border-radius:9px;border:1px solid #c9d8f2;object-fit:contain;background:#f1f6ff;display:block}.batch-thumb.placeholder{aspect-ratio:1/1;display:grid;place-items:center;font-size:.72rem;color:#3e5d90}.batch-content{min-width:0;display:grid;grid-gap:.1rem;gap:.1rem}.batch-title{font-weight:620;font-size:.95rem}.batch-subtitle,.batch-title{line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.batch-subtitle{color:var(--text-muted);font-size:.82rem}.batch-qty-control{display:grid;justify-items:end;grid-gap:.14rem;gap:.14rem}.batch-qty-input{width:72px;text-align:center;padding:.42rem .45rem}.status-line{display:grid;grid-template-columns:auto 1fr;grid-gap:.48rem;gap:.48rem;align-items:center}.status-failed,.status-muted,.status-ok{border-radius:999px;font-size:.77rem;padding:.14rem .6rem;width:-moz-fit-content;width:fit-content}.status-ok{border:1px solid #8ac89e;color:var(--ok);background:var(--ok-soft)}.status-muted{border:1px solid #c8d4e7;color:#5a6881;background:#eef2f7}.status-failed{border:1px solid #f1b8b8;color:#862626;background:var(--danger-soft)}.sticky-print-bar{position:fixed;left:0;right:0;bottom:calc(.95rem + env(safe-area-inset-bottom));z-index:30;padding:0 .75rem}.print-button{display:block;width:min(760px,calc(100vw - 1.5rem));margin:0 auto;min-height:52px;font-size:1.05rem;font-weight:700;letter-spacing:.02em;border-color:#84a5f0;background:linear-gradient(180deg,#dbe8ff,#c5d9ff);color:#234a90}.inline-buttons{display:flex;gap:.5rem;flex-wrap:wrap}.scanner-toggle-button{width:100%}.stack{display:grid;grid-gap:.78rem;gap:.78rem}.stack-tight{display:grid;grid-gap:.42rem;gap:.42rem}.muted{color:var(--text-muted)}.tiny-muted{color:#6c7c96;font-size:.8rem}.error,.error-inline{border-radius:10px;border:1px solid #f1bbbb;background:var(--danger-soft);color:#972121;padding:.45rem .6rem}@media (max-width:520px){.batch-row-track{grid-template-columns:44px minmax(0,1fr) 66px;gap:.42rem;padding:.42rem .45rem}.batch-thumb{width:44px}.batch-qty-input{width:66px}}