:root{font-family:Inter,SF Pro Display,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.5;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#e2e8f0;color:#0f172a}body{margin:0;min-height:100vh;background:radial-gradient(circle at top left,rgba(129,140,248,.25),transparent 55%),radial-gradient(circle at bottom right,rgba(34,197,94,.2),transparent 50%),linear-gradient(180deg,#e2e8f099,#f1f5f9e6)}a{color:inherit}button,input,select,textarea{font:inherit}*{box-sizing:border-box}body{margin:0;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:radial-gradient(circle at top,#0f172a,#020617 45%,#01030a);color:#e2e8f0}#root{min-height:100vh}.app{margin:0 auto;max-width:920px;padding:2.25rem 1.5rem 3rem;display:flex;flex-direction:column;gap:1.5rem}.app-header{text-align:center;display:flex;flex-direction:column;gap:.6rem}.app-header h1{margin:0;font-size:clamp(2rem,3.6vw,2.6rem);letter-spacing:-.01em;color:#f8fafc}.app-header p{margin:0;color:#e2e8f0b3}.app-main{flex:1}.app-footer{text-align:center;font-size:.85rem;color:#94a3b8b3}.scanner{display:flex;flex-direction:column;gap:1.25rem;background:#0f172abf;border:1px solid rgba(148,163,184,.18);border-radius:.4rem;padding:1.5rem clamp(1.25rem,3vw,1.85rem);box-shadow:0 10px 26px #02061747;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.scanner-header{display:flex;flex-direction:column;gap:.45rem}.scanner-header h2{margin:0;font-size:1.35rem;color:#f1f5f9}.scanner-header p{margin:0;color:#b8c2d7bf}.scanner-status{border-radius:.45rem;padding:.75rem 1rem;background:#2563eb2e;border:1px solid rgba(59,130,246,.35);color:#bfdbfe;font-weight:600}.scanner-status--error{background:#ef444438;border-color:#f8717173;color:#fecaca}.form-error{border-radius:.45rem;padding:.75rem 1rem;background:#ef444438;border:1px solid rgba(248,113,113,.4);color:#fee2e2;font-weight:600}.serial-form{display:flex;flex-direction:column;gap:1.1rem}.serial-field{display:flex;flex-direction:column;gap:.6rem;transition:border-color .18s ease,background .18s ease;margin-bottom:2rem}.serial-field--captured{background:#0f172a99;border-color:#60a5fa73}.serial-field__label{font-weight:600;font-size:.98rem;color:#e2e8f0}.serial-field__controls{display:flex;flex-wrap:wrap;gap:.65rem;align-items:center}.serial-field__value{flex:1;min-width:220px;border-radius:.35rem;border:1px solid rgba(148,163,184,.25);background:#0f172acc;padding:.75rem .95rem;font-size:1.02rem;font-weight:500;color:#f1f5f9;transition:border-color .18s ease,box-shadow .18s ease}.serial-field__value::placeholder{color:#94a3b899}.serial-field__meta{font-size:.85rem;color:#94a3b8bf}button{border-radius:.35rem;border:1px solid rgba(148,163,184,.25);background:#1e293be6;color:#e2e8f0;padding:.65rem 1.25rem;font-weight:600;cursor:pointer;transition:transform .16s ease,background .16s ease,border-color .16s ease}button:focus-visible,.serial-field__value:focus-visible{outline:2px solid rgba(96,165,250,.85);outline-offset:2px;border-color:#60a5faa6;box-shadow:0 0 0 4px #2563eb40}button[data-variant=primary]{background:linear-gradient(135deg,#1d4ed8,#1e3a8a);border-color:#60a5fa80;color:#f8fafc}button:not(:disabled):hover{transform:translateY(-1px);background:#1e293bfa}button[data-variant=primary]:not(:disabled):hover{background:linear-gradient(135deg,#2563eb,#1d4ed8)}button:disabled{background:#33415580;border-color:#47556966;color:#94a3b88c;cursor:not-allowed;transform:none}.form-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:.35rem}.form-actions button{min-width:170px}.form-actions button:last-child{margin-left:auto}.confirmation-banner{display:flex;flex-direction:column;gap:.3rem;padding:.85rem 1rem;border-radius:.35rem;border:1px solid rgba(34,197,94,.4);background:#16a34a40;color:#bbf7d0;font-weight:600}.camera-modal,.review-modal{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;padding:2rem 1.5rem;background:#020617b3;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:50}.camera-modal__panel,.review-modal__panel{width:min(520px,94vw);background:#0f172af2;border-radius:.4rem;border:1px solid rgba(148,163,184,.22);padding:1.6rem 1.5rem;display:flex;flex-direction:column;gap:1.1rem;box-shadow:0 14px 30px #02061761}.camera-modal__header h2,.review-modal__panel h2{margin:0;font-size:1.35rem;color:#f1f5f9}.camera-modal__header p{margin:0;color:#b8c2d7bf}.camera-modal__viewer{border-radius:.35rem;overflow:hidden;border:1px solid rgba(100,116,139,.45);background:#000;min-height:260px}.camera-modal__viewer video{width:100%;height:100%;object-fit:cover}.camera-modal__status{border-radius:.35rem;padding:.7rem 1rem;background:#1e293bb3;color:#e2e8f0d9;font-weight:500}.camera-modal__status--error{background:#7f1d1d66;color:#fecaca}.camera-modal__capture{display:flex;flex-direction:column;gap:1rem}.camera-modal__code{font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-weight:600;font-size:1.05rem;padding:.75rem .9rem;border-radius:.35rem;background:#0f172ae6;color:#f8fafc;word-break:break-word}.camera-modal__capture dl{display:grid;gap:.65rem;grid-template-columns:repeat(2,minmax(0,1fr));margin:0}.camera-modal__capture dt{margin:0;font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:#94a3b899}.camera-modal__capture dd{margin:0;font-weight:600;color:#e2e8f0}.camera-modal__actions,.review-modal__actions{display:flex;justify-content:flex-end;gap:.7rem;flex-wrap:wrap}.review-modal__panel ol{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.9rem}.review-modal__panel li{display:flex;flex-direction:column;gap:.3rem;padding:.75rem .9rem;border-radius:.35rem;border:1px solid rgba(148,163,184,.2);background:#1e293b99}.review-label{font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:#94a3b8b3}.review-value{font-size:1.02rem;font-weight:600;color:#f1f5f9;word-break:break-word}@media (min-width: 768px){.serial-field__controls{flex-wrap:nowrap}.camera-modal__viewer{min-height:320px}}
