:root{color:#1b2a32;--teal:#0d6e6a;--teal-dark:#0a5855;--teal-soft:#dcefed;--teal-muted:#5b8a87;--border:#d8e0e3;--muted:#6b7c84;--card:#fff;--page:#eef2f4;--radius-lg:1.25rem;background:#eef2f4;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}body{background:var(--page);color:#1b2a32;margin:0}button,input,select,textarea{font:inherit}label span,.field-label{color:#1b2a32;font-size:.875rem;font-weight:700}input:not([type=checkbox]):not([type=radio]),select,textarea{border:1px solid var(--border);color:#1b2a32;background:#fff;border-radius:.65rem;width:100%;height:3rem;padding:0 14px}textarea{height:auto;padding:10px 14px}select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-position:right .75rem center;background-repeat:no-repeat;background-size:1rem 1rem;padding-right:2.5rem}select::-ms-expand{display:none}input:not([type=checkbox]):not([type=radio]):focus,select:focus,textarea:focus{border-color:var(--teal);outline:none;box-shadow:0 0 0 3px #0d6e6a26}button{background:var(--teal);color:#fff;cursor:pointer;border:0;border-radius:.7rem;padding:14px 16px;font-weight:700}button:hover:not(:disabled){background:var(--teal-dark)}button.secondary{color:#1b2a32;border:1px solid var(--border);background:#fff;font-weight:600}button.secondary:hover:not(:disabled){background:#f7fafb}button:disabled{opacity:.55;cursor:not-allowed}.page{flex-direction:column;gap:14px;max-width:430px;min-height:100vh;margin:0 auto;padding:18px 16px 28px;display:flex}.app-header{padding:4px 4px 2px}.app-header-top{justify-content:flex-end;margin-bottom:8px;display:flex}.app-title{letter-spacing:-.03em;color:#1b2a32;margin:0;font-size:1.65rem;font-weight:800}.app-title em{color:var(--teal);font-style:normal}.app-subtitle{color:var(--muted);margin:6px 0 0;font-size:.9rem}.card{background:var(--card);border-radius:var(--radius-lg);border:1px solid #e7ecee;padding:22px 18px 20px;box-shadow:0 8px 24px #1b2a320a}.step-kicker{color:var(--teal-muted);letter-spacing:.08em;text-transform:uppercase;margin:0 0 8px;font-size:.72rem;font-weight:700}.card h1,.card h2,.step-title{letter-spacing:-.03em;margin:0;font-size:1.45rem;font-weight:800}.stack{flex-direction:column;gap:12px;display:flex}.stack.compact{gap:6px}.row{align-items:center;gap:8px;display:flex}.row.compact{gap:6px}.row.spread{justify-content:space-between}.row.wrap{flex-wrap:wrap}.grid2{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.grid3{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.muted{color:var(--muted);margin:0;font-size:.875rem}.error{color:#b42318;background:#fdecec;border-radius:.65rem;margin:0;padding:10px 12px;font-size:.875rem}.success{color:#067647;background:#e8f7ef;border-radius:.65rem;margin:0;padding:10px 12px;font-size:.875rem}.badge{border:1px solid var(--border);color:#345058;background:#f4f7f8;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:600}.scanner-preview{background:linear-gradient(#e8f4f2 0%,#f3faf8 100%);border:2px dashed #9ec9c6;border-radius:1.1rem;min-height:168px;position:relative;overflow:hidden}.scanner-placeholder{color:var(--teal);pointer-events:none;justify-content:center;align-items:center;gap:8px;font-size:.95rem;font-weight:600;display:flex;position:absolute;inset:0}.scanner-preview .camera{z-index:1;object-fit:cover;opacity:0;background:0 0;border:0;width:100%;height:168px;display:block;position:relative}.scanner-preview .camera.live{opacity:1}.keep-rack{color:var(--muted);font-size:.85rem;font-weight:500}.preview{border:1px solid var(--border);background:#f7fafa;border-radius:.9rem;padding:12px}.preview h2{margin:0 0 6px;font-size:1.1rem}.preview p{margin:4px 0}.camera{object-fit:cover;border:1px solid var(--border);background:#eef6f5;border-radius:.9rem;width:100%;max-height:220px}.text-button{color:var(--muted);background:0 0;padding:0;font-size:.8rem;font-weight:600}.text-button:hover:not(:disabled){color:var(--teal);background:0 0}#root{min-height:100vh}.boot{color:var(--muted);padding:18px}.login-shell{background:var(--page);justify-content:center;align-items:center;min-height:100vh;padding:16px;display:flex}.login-card{width:100%;max-width:400px}.login-brand{text-align:center;letter-spacing:-.03em;margin:0 0 4px;font-size:1.5rem;font-weight:800}.login-brand em{color:var(--teal);font-style:normal}.login-card .muted{text-align:center}
