:root{--primary:#7b61ff;--recovery-bg:#f4f1ff;--recovery-accent:#b699ff;--text:#30294c;--muted:#8b84a2}
*{box-sizing:border-box}body{margin:0;min-height:100vh;min-height:100dvh;padding:36px 20px;display:flex;align-items:center;justify-content:center;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI','PingFang SC','Microsoft YaHei',sans-serif;color:var(--text);background:radial-gradient(ellipse at 15% 15%,#fff8df 0,transparent 55%),radial-gradient(ellipse at 85% 80%,#eee5ff 0,transparent 50%),var(--recovery-bg)}
.recovery-card{width:100%;max-width:440px;padding:32px;border:1px solid rgba(255,255,255,.95);border-radius:26px;background:rgba(255,255,255,.92);box-shadow:0 20px 64px rgba(80,60,140,.12)}
.recovery-logo{display:grid;place-items:center;width:58px;height:58px;margin:0 auto 16px;border-radius:18px;background:var(--recovery-bg);font-size:30px}h1{margin:0;text-align:center;font-size:25px;letter-spacing:.5px}.recovery-subtitle{margin:10px 0 24px;text-align:center;color:var(--muted);font-size:13px;line-height:1.7}
.recovery-steps{display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:28px}.recovery-step{display:flex;align-items:center;gap:7px;color:#aaa4b8;font-size:12px}.recovery-step b{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:#f1eff6;font-size:12px}.recovery-step.active,.recovery-step.complete{color:var(--primary)}.recovery-step.active b{background:var(--primary);color:#fff}.recovery-step.complete b{background:var(--recovery-bg);color:var(--primary)}.recovery-step-line{width:28px;height:1px;background:#e6e1f0}
form label{display:block;margin:0 0 9px;font-size:13px;font-weight:600}form input:not([type=hidden]){width:100%;height:48px;padding:0 13px;border:1px solid #e2ddec;border-radius:12px;background:#faf9fd;outline:none;color:var(--text);font:inherit;font-size:16px;transition:border-color .18s,box-shadow .18s}form input::placeholder{color:#aaa3b8;font-size:14px}form input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--recovery-bg);background:#fff}.recovery-code{letter-spacing:.4px}.recovery-hint{margin:9px 0 0;color:var(--muted);font-size:12px;line-height:1.7}
.recovery-submit{display:flex;align-items:center;justify-content:center;width:100%;min-height:48px;margin-top:24px;padding:12px;border:0;border-radius:12px;background:linear-gradient(135deg,var(--primary),var(--recovery-accent));box-shadow:0 8px 18px rgba(100,70,180,.16);color:#fff;font:inherit;font-size:15px;font-weight:600;text-decoration:none;cursor:pointer}.recovery-submit:hover{filter:brightness(1.04)}.recovery-submit:focus-visible,.recovery-back:focus-visible,button:focus-visible{outline:2px solid var(--primary);outline-offset:3px}
.recovery-note{margin:20px 0 0;color:var(--muted);font-size:12px;line-height:1.8}.recovery-back{display:block;width:max-content;margin:24px auto 0;color:var(--primary);font-size:13px;text-decoration:none}.recovery-error{margin:0 0 20px;padding:12px 14px;border:1px solid #fed7df;border-radius:10px;background:#fff1f3;color:#bd3654;font-size:13px;line-height:1.7}.recovery-account{margin-bottom:22px;padding:14px;border:1px solid #e8e0ff;border-radius:12px;background:var(--recovery-bg);font-size:13px}.recovery-account strong{margin-left:6px;color:var(--primary)}.recovery-account span{display:block;margin-top:7px;color:var(--muted);font-size:12px}
.recovery-password-field{position:relative;margin-bottom:18px}.recovery-password-field input{padding-right:64px!important}.recovery-password-field button{position:absolute;right:7px;top:7px;height:34px;min-width:44px;border:0;border-radius:7px;background:transparent;color:var(--primary);font:inherit;font-size:12px;cursor:pointer}.recovery-password-field button:hover{background:var(--recovery-bg)}.recovery-restart{text-align:center;margin-top:17px}.recovery-restart button{border:0;background:none;color:var(--primary);font:inherit;font-size:12px;cursor:pointer}
.recovery-success{text-align:center;padding:20px 0 8px}.recovery-success>span{display:grid;place-items:center;width:54px;height:54px;margin:0 auto 15px;border-radius:50%;background:#edf9f1;color:#35a367;font-size:30px}.recovery-success strong{display:block;color:#278954;font-size:16px}.recovery-success p{margin:12px 0 0;color:var(--muted);font-size:13px}
.recovery-submit:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}
@media(max-width:480px){body{padding:24px 16px}.recovery-card{padding:28px 24px;border-radius:22px}h1{font-size:23px}}
@media(prefers-reduced-motion:reduce){form input{transition:none}}
