:root{--bg:#f6f0e3;--surface:#fffcf5;--text:#13233f;--muted:#5b6478;--accent:#1f3a68;--line:#e4dccb;--err:#9b2c2c;--ok:#2f6b3a}*{box-sizing:border-box}body,html{margin:0;background:var(--bg);color:var(--text);font-family:General Sans,system-ui,sans-serif;-webkit-font-smoothing:antialiased}.wrap{min-height:100dvh;display:grid;place-items:center;padding:24px}.card{width:100%;max-width:400px;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:32px 28px;box-shadow:0 1px 2px rgba(19,35,63,.04),0 8px 24px rgba(19,35,63,.06)}.brand{letter-spacing:.02em;font-size:15px;color:var(--accent);margin:0 0 20px}.brand,h1{font-weight:600}h1{font-size:22px;margin:0 0 6px}.sub{color:var(--muted);font-size:14px;line-height:1.5;margin:0 0 22px}label{display:block;font-size:13px;font-weight:500;margin:14px 0 6px}input{width:100%;font:inherit;font-size:15px;padding:11px 12px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--text)}input:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent)}.code{letter-spacing:.35em;font-size:20px;text-align:center;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}button{width:100%;margin-top:20px;font:inherit;font-weight:600;font-size:15px;padding:12px;border-radius:8px;border:0;background:var(--accent);color:#fff;cursor:pointer}button:disabled{opacity:.6;cursor:default}.link{display:block;text-align:center;color:var(--accent)}.link,.msg{margin-top:16px;font-size:14px}.msg{line-height:1.5;padding:10px 12px;border-radius:8px}.msg.err{background:#fbeaea;color:var(--err)}.msg.ok{background:#eaf4ec;color:var(--ok)}.qr{display:grid;place-items:center;background:#fff;border:1px solid var(--line);border-radius:10px;padding:14px;margin:6px 0 10px}.qr img{width:180px;height:180px}.secret{font-family:ui-monospace,monospace;font-size:13px;word-break:break-all;background:var(--bg);padding:8px 10px;border-radius:6px}.steps{padding-left:18px;font-size:14px;line-height:1.6;margin:0 0 8px}.lock,.steps{color:var(--muted)}.lock{font-size:12px;text-align:center;margin-top:22px}