:root{--bg:#08111f;--panel:#0f1d33;--panel-2:#142643;--border:#23415f;--text:#e6eef8;--muted:#93a7bf;--teal:#2dd4bf;--teal-dark:#0f766e;--danger:#f87171;--ok:#4ade80}*{box-sizing:border-box}html,body{min-height:100%;margin:0}body{background:radial-gradient(900px 500px at 15% 0%,rgba(45,212,191,.14),transparent 60%),radial-gradient(700px 500px at 90% 100%,rgba(37,99,235,.16),transparent 60%),var(--bg);color:var(--text);place-items:center;padding:24px;font-family:Segoe UI,system-ui,-apple-system,BlinkMacSystemFont,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,Arial,sans-serif;display:grid}.card{border:1px solid var(--border);background:linear-gradient(rgba(20,38,67,.96),rgba(15,29,51,.96));border-radius:18px;width:100%;max-width:460px;padding:30px 30px 26px;box-shadow:0 24px 80px rgba(0,0,0,.45)}.brand{align-items:center;gap:10px;margin-bottom:22px;display:flex}.brand-mark{background:linear-gradient(135deg,var(--teal),#0ea5e9);color:#04201d;border-radius:11px;place-items:center;width:38px;height:38px;font-size:18px;font-weight:900;display:grid}.brand-text{letter-spacing:.08em;font-size:14px;font-weight:800}.brand-sub{color:var(--muted);margin-top:2px;font-size:12px}h1{margin:0 0 6px;font-size:24px}p.lead{color:var(--muted);margin:0 0 22px;font-size:14px;line-height:1.55}label{color:var(--muted);margin:14px 0 6px;font-size:13px;display:block}input{border:1px solid var(--border);background:var(--panel);width:100%;color:var(--text);border-radius:10px;outline:none;padding:12px 13px;font-size:15px}input:focus{border-color:var(--teal);box-shadow:0 0 0 3px rgba(45,212,191,.14)}.code-input{letter-spacing:.32em;text-align:center;font-size:22px;font-weight:700}button{background:linear-gradient(135deg,var(--teal),#14b8a6);color:#04201d;cursor:pointer;border:0;border-radius:10px;width:100%;margin-top:20px;padding:12px 14px;font-size:15px;font-weight:800}button:disabled{opacity:.55;cursor:not-allowed}button.secondary{color:var(--teal);border:1px solid var(--border);background:0 0;font-weight:700}button.link{color:var(--muted);background:0 0;margin-top:8px;padding:8px;font-weight:500;text-decoration:underline}.err{color:var(--danger);margin-top:14px;font-size:13px;line-height:1.5}.ok{color:var(--ok);margin-top:14px;font-size:13px;line-height:1.5}.muted{color:var(--muted);font-size:13px;line-height:1.55}.secret{border:1px dashed var(--border);letter-spacing:.08em;word-break:break-all;color:#fde68a;border-radius:10px;margin-top:12px;padding:10px 12px;font-family:Consolas,monospace;font-size:13px}.qr{background:#fff;border-radius:10px;width:190px;height:190px;margin:14px auto 4px;padding:8px;display:block}.codes{grid-template-columns:1fr 1fr;gap:8px;margin-top:14px;display:grid}.codes span{background:var(--panel-2);text-align:center;letter-spacing:.1em;border-radius:8px;padding:8px 10px;font-family:Consolas,monospace}.note{border-top:1px solid var(--border);color:var(--muted);margin-top:18px;padding-top:16px;font-size:12px;line-height:1.55}.auth-layout{grid-template-columns:minmax(0,1.05fr) minmax(360px,.75fr);align-items:stretch;gap:18px;width:100%;max-width:1080px;display:grid}.auth-brand{border:1px solid var(--border);background:radial-gradient(420px 220px at 15% 0,rgba(45,212,191,.25),transparent 65%),radial-gradient(420px 260px at 100% 100%,rgba(37,99,235,.18),transparent 65%),linear-gradient(160deg,#0c2033,#08111f 70%);border-radius:18px;flex-direction:column;min-height:560px;padding:38px;display:flex;box-shadow:0 30px 90px rgba(0,0,0,.35)}.auth-brand h2{letter-spacing:-.035em;max-width:460px;margin:42px 0 16px;font-size:max(28px,min(3.2vw,42px));line-height:1.08}.auth-brand>p{color:#9fb3c8;max-width:440px;margin:0;font-size:14px;line-height:1.7}.auth-features{gap:12px;margin:34px 0 0;padding:0;list-style:none;display:grid}.auth-features li{color:#d7e5ee;align-items:center;gap:11px;font-size:13px;display:flex}.auth-features li span{width:28px;height:28px;color:var(--teal);background:rgba(45,212,191,.12);border-radius:8px;place-items:center;font-size:10px;font-weight:800;display:grid}.auth-brand-foot{color:#6f879d;letter-spacing:.08em;text-transform:uppercase;margin-top:auto;padding-top:28px;font-size:11px}.auth-card{flex-direction:column;justify-content:center;max-width:none;min-height:560px;display:flex}.auth-steps{gap:6px;margin-bottom:24px;display:flex}.auth-steps span{text-align:center;color:var(--muted);letter-spacing:.03em;background:rgba(255,255,255,.03);border-radius:8px;flex:1;padding:7px 6px;font-size:10px;font-weight:700}.auth-steps span.on{color:#04201d;background:linear-gradient(135deg,var(--teal),#14b8a6)}.auth-card-brand{display:none}@media (max-width:860px){.auth-layout{grid-template-columns:1fr;max-width:460px}.auth-brand{display:none}.auth-card{min-height:0}.auth-card-brand{display:flex}}.auth-loading{z-index:100;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:rgba(4,11,21,.82);place-items:center;padding:24px;animation:.2s ease-out auth-fade;display:grid;position:fixed;top:0;bottom:0;left:0;right:0}.auth-loading-card{text-align:center;border:1px solid var(--border);background:linear-gradient(rgba(20,38,67,.98),rgba(10,23,41,.98));border-radius:18px;width:min(380px,100%);padding:30px 28px 26px;box-shadow:0 30px 90px rgba(0,0,0,.5)}.auth-loading-mark{background:linear-gradient(135deg,var(--teal),#0ea5e9);color:#04201d;border-radius:13px;place-items:center;width:46px;height:46px;margin:0 auto 18px;font-size:21px;font-weight:900;display:grid;box-shadow:0 10px 30px rgba(45,212,191,.2)}.auth-loader{border:3px solid rgba(147,167,191,.16);border-top-color:var(--teal);border-radius:50%;width:42px;height:42px;margin:0 auto 16px;animation:.85s linear infinite auth-spin}.auth-loading h2{letter-spacing:-.02em;margin:0 0 7px;font-size:19px}.auth-loading p{color:var(--muted);margin:0;font-size:13px;line-height:1.55}.auth-loading-track{background:rgba(147,167,191,.12);border-radius:999px;height:3px;margin:22px 0 12px;overflow:hidden}.auth-loading-track span{border-radius:inherit;background:linear-gradient(90deg,transparent,var(--teal),#0ea5e9,transparent);width:42%;height:100%;animation:1.15s ease-in-out infinite auth-slide;display:block}.auth-loading small{color:#6f879d;letter-spacing:.05em;font-size:10px}@keyframes auth-spin{to{transform:rotate(360deg)}}@keyframes auth-slide{0%{transform:translate(-120%)}to{transform:translate(340%)}}@keyframes auth-fade{0%{opacity:0}to{opacity:1}}
