body{margin:0}:root{color:#1a1f2c;background:#d8dde6;font-family:Segoe UI,Helvetica Neue,Arial,sans-serif;line-height:1.35;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{margin:0;min-width:320px}button,input{font:inherit}.scanner-page{max-width:480px;margin:0 auto;padding:1.25rem;display:grid;gap:1rem}.scanner-header h1{margin:.35rem 0}.scanner-header p{margin:0;color:#64748b}.scanner-viewport{min-height:1px;border-radius:12px;overflow:hidden}.scanner-actions,.scanner-form{display:grid;gap:.75rem}.scanner-form label{display:grid;gap:.35rem;font-weight:600}.scanner-form input{border:1px solid #cbd5e1;border-radius:10px;padding:.65rem .75rem}.scanner-actions button,.scanner-form button{border:none;border-radius:999px;padding:.75rem 1rem;background:#1d4ed8;color:#fff;font-weight:700;cursor:pointer}.scanner-actions button.secondary{background:#475569}.scanner-form button:disabled{opacity:.55;cursor:not-allowed}.scanner-status{margin:0;color:#475569;font-size:.9rem;word-break:break-all}.scanner-result{border-radius:12px;padding:.85rem 1rem;display:grid;gap:.25rem}.scanner-result.ok{background:#e8f5e9;border:1px solid #a5d6a7}.scanner-error{margin:0;padding:.65rem .75rem;border-radius:8px;background:#fee2e2;border:1px solid #fecaca;color:#991b1b;font-size:.9rem}
