:root{--color-primary:#3b82f6;--color-primary-hover:#2563eb;--color-primary-light:#60a5fa;--color-success:#22c55e;--color-success-hover:#16a34a;--color-warning:#f59e0b;--color-error:#ef4444;--color-bg:#0f172a;--color-bg-secondary:#1e293b;--color-bg-tertiary:#334155;--color-text:#f8fafc;--color-text-secondary:#94a3b8;--color-text-muted:#64748b;--color-border:#334155;--color-border-focus:#3b82f6;--spacing-xs:.25rem;--spacing-sm:.5rem;--spacing-md:1rem;--spacing-lg:1.5rem;--spacing-xl:2rem;--spacing-2xl:3rem;--radius-sm:.375rem;--radius-md:.5rem;--radius-lg:.75rem;--radius-xl:1rem;--radius-full:9999px;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;--transition-fast:.15s ease;--transition-normal:.25s ease;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:var(--color-text);background-color:var(--color-bg);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,system-ui,-apple-system,sans-serif;font-size:16px;font-weight:400;line-height:1.5}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{height:100%}body{flex-direction:column;min-height:100%;display:flex}#root{flex-direction:column;flex:1;display:flex}h1,h2,h3,h4,h5,h6{color:var(--color-text);font-weight:600;line-height:1.25}h1{font-size:1.875rem}h2{font-size:1.5rem}h3{font-size:1.25rem}h4{font-size:1.125rem}p{color:var(--color-text-secondary)}a{color:var(--color-primary-light);transition:color var(--transition-fast);text-decoration:none}a:hover{color:var(--color-primary)}.btn{justify-content:center;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm)var(--spacing-lg);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);border:none;width:100%;min-height:44px;font-size:1rem;font-weight:500;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--color-primary-hover)}.btn-success{background:var(--color-success);color:#fff}.btn-success:hover:not(:disabled){background:var(--color-success-hover)}.btn-secondary{background:var(--color-bg-tertiary);color:var(--color-text)}.btn-secondary:hover:not(:disabled){background:var(--color-border)}.btn-outline{border:1px solid var(--color-border);color:var(--color-text);background:0 0}.btn-outline:hover:not(:disabled){background:var(--color-bg-secondary);border-color:var(--color-primary)}.btn-lg{padding:var(--spacing-md)var(--spacing-xl);min-height:52px;font-size:1.125rem}.btn-icon{width:44px;padding:0}.form-group{gap:var(--spacing-xs);flex-direction:column;display:flex}.form-label{color:var(--color-text);font-size:.875rem;font-weight:500}.form-input{width:100%;padding:var(--spacing-sm)var(--spacing-md);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);transition:border-color var(--transition-fast);min-height:44px;font-size:1rem}.form-input:focus{border-color:var(--color-border-focus);outline:none;box-shadow:0 0 0 3px #3b82f633}.form-input::placeholder{color:var(--color-text-muted)}.form-input:disabled{opacity:.7;cursor:not-allowed}.form-error{color:var(--color-error);font-size:.75rem}.form-hint{color:var(--color-text-muted);font-size:.75rem}.card{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-lg)}.card-header{margin-bottom:var(--spacing-md)}.card-title{font-size:1.125rem;font-weight:600}.card-description{color:var(--color-text-secondary);margin-top:var(--spacing-xs);font-size:.875rem}.page{padding:var(--spacing-lg);flex-direction:column;flex:1;width:100%;max-width:480px;margin:0 auto;display:flex}.page-header{text-align:center;margin-bottom:var(--spacing-xl)}.page-title{margin-bottom:var(--spacing-xs);font-size:1.5rem}.page-subtitle{color:var(--color-text-secondary);font-size:.875rem}.camera-container{aspect-ratio:4/3;background:var(--color-bg-tertiary);border-radius:var(--radius-lg);width:100%;position:relative;overflow:hidden}.camera-container video,.camera-container img{object-fit:cover;width:100%;height:100%}.camera-overlay{background:#00000080;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.camera-guide{border:2px dashed var(--color-primary);border-radius:var(--radius-md);pointer-events:none;width:80%;height:40%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.badge{align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs)var(--spacing-sm);border-radius:var(--radius-full);font-size:.75rem;font-weight:500;display:inline-flex}.badge-success{color:var(--color-success);background:#22c55e33}.badge-warning{color:var(--color-warning);background:#f59e0b33}.badge-primary{color:var(--color-primary-light);background:#3b82f633}.spinner{border:2px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;width:24px;height:24px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.stack{gap:var(--spacing-md);flex-direction:column;display:flex}.stack-lg{gap:var(--spacing-lg)}.stack-sm{gap:var(--spacing-sm)}.flex{display:flex}.flex-center{justify-content:center;align-items:center;display:flex}.flex-between{justify-content:space-between;align-items:center;display:flex}.gap-sm{gap:var(--spacing-sm)}.gap-md{gap:var(--spacing-md)}.gap-lg{gap:var(--spacing-lg)}.text-center{text-align:center}.text-success{color:var(--color-success)}.text-error{color:var(--color-error)}.text-muted{color:var(--color-text-muted)}.text-sm{font-size:.875rem}.text-lg{font-size:1.125rem}.font-medium{font-weight:500}.font-semibold{font-weight:600}.mt-auto{margin-top:auto}.mb-md{margin-bottom:var(--spacing-md)}.mb-lg{margin-bottom:var(--spacing-lg)}.detected-info{background:var(--color-bg-tertiary);border-radius:var(--radius-md);padding:var(--spacing-md)}.detected-row{padding:var(--spacing-xs)0;border-bottom:1px solid var(--color-border);justify-content:space-between;display:flex}.detected-row:last-child{border-bottom:none}.detected-label{color:var(--color-text-muted);font-size:.875rem}.detected-value{color:var(--color-text);font-weight:500}
