*{box-sizing:border-box}body{margin:0;background:#f4f6f8;color:#202124;font-family:Tahoma,Arial,sans-serif}.wrap{max-width:780px;margin:auto;padding:14px 12px 80px}.card{background:#fff;border-radius:18px;padding:16px;margin:12px 0;box-shadow:0 2px 12px #0001}h1{font-size:22px;margin:0 0 5px}.sub,.note{color:#666;font-size:13px;line-height:1.8}.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}button,input,select{font:inherit;border-radius:12px;padding:13px;border:1px solid #d0d5da}button{border:0;background:#1769aa;color:#fff;font-weight:bold;cursor:pointer}.secondary{background:#6b7280}.danger{background:#c62828}button:disabled{opacity:.45}input{width:100%;background:#fff}#barcode{direction:ltr;text-align:left;font-size:20px}.scanbtn{width:100%;font-size:18px;padding:16px}#reader{margin:12px auto;max-width:560px;border-radius:16px;overflow:hidden}.manual{display:grid;grid-template-columns:1fr auto;gap:8px;margin-top:8px}.stats{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.stat{background:#eef2f5;padding:13px;border-radius:14px}.stat b{display:block;font-size:24px;margin-top:4px}table{width:100%;border-collapse:collapse;font-size:12px}th,td{padding:8px;border-bottom:1px solid #eee;text-align:right;white-space:nowrap}.missing{background:#ffebee}.short{background:#fff3e0}.over{background:#e3f2fd}.ok{background:#e8f5e9}.hidden{display:none}.selected{border:2px solid #1769aa;padding:10px;border-radius:12px;background:#eef6fc}