:root{--bg: #f4f6f8;--card: #ffffff;--text: #1f2933;--muted: #5f6b7a;--border: #d5dbe1;--accent: #1f6feb;--accent-hover: #1a5fd0;--danger: #b42318;--danger-bg: #fef3f2;--success: #067647;--success-bg: #ecfdf3;--radius: 8px}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:16px;line-height:1.5}.page{min-height:100vh;display:flex;flex-direction:column;align-items:center;padding:48px 16px}.brand{font-size:1.25rem;font-weight:600;margin-bottom:24px;text-align:center}.card{width:100%;max-width:420px;background:var(--card);border:1px solid var(--border);border-radius:12px;padding:32px 28px}.card h1{font-size:1.375rem;font-weight:600;margin:0 0 8px}.card .lead{color:var(--muted);margin:0 0 24px}.card .lead.tight{margin-bottom:6px}.field{margin-bottom:16px}.field label{display:block;font-weight:500;margin-bottom:6px}.field input{width:100%;padding:10px 12px;font-size:1rem;border:1px solid var(--border);border-radius:var(--radius);background:#fff;color:var(--text)}.field input:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent)}.field input.code{font-size:1.5rem;letter-spacing:.4em;text-align:center;font-variant-numeric:tabular-nums}.btn{width:100%;padding:11px 16px;font-size:1rem;font-weight:600;border:none;border-radius:var(--radius);background:var(--accent);color:#fff;cursor:pointer}.btn:hover:not(:disabled){background:var(--accent-hover)}.btn:disabled{opacity:.6;cursor:default}.link-row{margin-top:16px;text-align:center;font-size:.9375rem}a,.link{color:var(--accent);text-decoration:none;background:none;border:none;padding:0;font:inherit;cursor:pointer}a:hover,.link:hover{text-decoration:underline}.alert{border-radius:var(--radius);padding:10px 12px;margin-bottom:16px;font-size:.9375rem}.alert.error{background:var(--danger-bg);color:var(--danger)}.alert.info{background:var(--success-bg);color:var(--success)}.rules{list-style:none;padding:0;margin:-4px 0 16px;font-size:.875rem;color:var(--muted)}.rules li:before{content:"\25cb  "}.rules li.met{color:var(--success)}.rules li.met:before{content:"\25cf  "}.steps{padding-left:20px;margin:0 0 16px}.steps li{margin-bottom:8px}.qr{display:block;width:200px;height:200px;margin:8px auto 12px;image-rendering:pixelated}.secret{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.9375rem;word-break:break-all;background:var(--bg);border-radius:var(--radius);padding:8px 10px;margin-bottom:16px;text-align:center}.footer{margin-top:24px;color:var(--muted);font-size:.8125rem;text-align:center}
