.recovery-link{display:block;margin:10px 0 0 auto;padding:8px 0;min-height:40px;border:0;background:transparent;color:var(--club-text,#326da5);font:650 13px/1.4 system-ui,sans-serif;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.recovery-dialog{width:calc(100% - 28px);max-width:460px;max-height:calc(100dvh - 28px);padding:28px;border:1px solid #d9e3ef;border-radius:24px;background:#fff;color:#203550;font:16px/1.5 system-ui,sans-serif;overflow:auto;box-shadow:0 28px 100px #132b4b38;scrollbar-width:thin}
.recovery-dialog[open]{animation:recovery-enter .24s cubic-bezier(.2,.8,.2,1) both}
.recovery-dialog::backdrop{background:#182b426b;backdrop-filter:blur(6px);animation:recovery-fade .2s ease-out}
.recovery-heading-icon{display:grid;place-items:center;width:42px;height:42px;border:1px solid var(--club-border,#c5d6e6);border-radius:14px;background:linear-gradient(140deg,var(--club-soft,#f1f6fc),var(--club-subtle,#fafcfe));color:var(--club-text,#326da5);float:left;margin:0 12px 0 0}
.recovery-heading-icon svg{width:23px;height:23px}
.recovery-dialog h2{margin:6px 40px 18px 0;font-size:25px;line-height:1.25;letter-spacing:-.035em;color:#183452}
.recovery-kicker{color:#74869e;font-size:10px;font-weight:750;letter-spacing:.12em;text-transform:uppercase}
.recovery-progress{clear:both;display:flex;align-items:center;gap:12px;list-style:none;padding:0 0 18px;margin:0 0 18px;border-bottom:1px solid #e8edf5}
.recovery-progress li{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:600;color:var(--muted,#64748b);white-space:nowrap}
.recovery-progress li:not(:last-child){flex:1}
.recovery-progress li:not(:last-child)::after{content:'';flex:1;min-width:8px;height:1px;background:#e4eaf3;margin-left:4px}
.recovery-progress li>span{display:grid;place-items:center;flex:none;width:22px;height:22px;border-radius:50%;background:#f1f4f9;font-size:10px}
.recovery-progress .is-active{color:var(--club-text,#326da5)}.recovery-progress .is-active>span{border:1px solid var(--club-control-border,#5394d4);background:linear-gradient(135deg,#fff,var(--club-soft,#f1f6fc));color:var(--club-text,#326da5);box-shadow:0 0 0 3px var(--club-soft,#f1f6fc)}
.recovery-progress .is-done{color:var(--club-text,#326da5)}.recovery-progress .is-done>span{background:var(--club-soft-gradient);color:var(--club-text,#326da5)}
.recovery-description{color:var(--muted,#64748b);font-size:13px;margin:0 0 16px;line-height:1.6}
.recovery-close{position:absolute;right:14px;top:14px;display:grid;place-items:center;width:44px;height:44px;padding:0;border:0;border-radius:12px;background:transparent;color:#627991;cursor:pointer;font:25px/1 system-ui;transition:background .15s,color .15s}
.recovery-close:hover{background:#eef3fa;color:#203550}
.recovery-form{display:grid;gap:8px}.recovery-form label{color:#3c536d;font-size:13px;font-weight:650}
.recovery-form .input{width:100%;min-height:50px;margin:0 0 8px;border:1px solid #cfdbeb;border-radius:12px;padding:12px 14px;background:#fbfcfe;color:#1d3653;font:16px/1.4 system-ui,sans-serif;transition:border-color .15s,box-shadow .15s,background .15s}
.recovery-form .input:focus{border-color:var(--club-control-border,#5394d4);box-shadow:0 0 0 3px var(--club-soft,#f1f6fc);background:#fff;outline:0}
.recovery-form .password-field>input{margin:0;padding-right:56px}.recovery-form .password-field{margin-bottom:4px}
.recovery-code-entry{position:relative;margin:0 0 5px;min-width:0}
.recovery-code-slots{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;pointer-events:none}
.recovery-code-slots>span{display:grid;place-items:center;height:56px;min-width:0;border:1px solid var(--club-border,#c5d6e6);border-radius:11px;background:var(--club-subtle-gradient);color:var(--ink,#172033);font-size:25px;font-weight:700;font-variant-numeric:tabular-nums;transition:border-color .16s,background .16s,box-shadow .16s,transform .16s}
.recovery-code-slots>.is-filled{border-color:var(--club-border,#c5d6e6);background:var(--club-soft-gradient)}
.recovery-code-slots>.is-current{border-color:var(--club-control-border,#5394d4);background:#fff;box-shadow:0 0 0 3px var(--club-soft,#f1f6fc);transform:translateY(-1px)}
.recovery-code-slots>.is-current:empty::after{content:'';height:23px;width:2px;background:var(--club-control-border,#5394d4);animation:recovery-caret 1s steps(1) infinite}
.recovery-code-entry>.input.recovery-code{position:absolute;inset:0;z-index:1;width:100%;height:100%;min-height:0;margin:0;padding:0;border:0;background:transparent;color:transparent;caret-color:transparent;letter-spacing:normal;box-shadow:none;outline:0;-webkit-text-fill-color:transparent;cursor:text}
.recovery-code-entry>.recovery-code::selection{background:transparent;color:transparent}
.recovery-code-entry>.recovery-code:focus-visible{outline:0;box-shadow:none;background:transparent}
.recovery-help{color:var(--muted,#64748b);font-size:12px;margin:0 0 10px;line-height:1.5}
.recovery-password-rules{display:flex;flex-wrap:wrap;gap:5px 12px;list-style:none;padding:0;margin:0 0 8px;color:var(--muted,#64748b);font-size:12px;line-height:1.6}
.recovery-password-rules li{display:flex;align-items:center;gap:5px;transition:color .18s}
.recovery-password-rules li::before{content:'○';display:grid;place-items:center;width:10px;flex:none;color:#a1b2c8}
.recovery-password-rules .is-met{color:#28734f}.recovery-password-rules .is-met::before{content:'✓';color:#28734f}
.recovery-primary,.recovery-secondary{display:flex;align-items:center;justify-content:center;gap:8px;min-height:48px;width:100%;border:1px solid transparent;border-radius:12px;padding:12px 16px;font:650 14px/1.3 system-ui,sans-serif;cursor:pointer;transition:background .15s,box-shadow .15s}
.recovery-primary{background:linear-gradient(135deg,#fff,var(--club-soft,#f1f6fc));border-color:var(--club-control-border,#5394d4);color:var(--club-text,#326da5);margin-top:8px;box-shadow:0 3px 7px #284f851c,inset 0 1px 0 #ffffff24}
.recovery-primary:hover{background:var(--club-soft-gradient)}.recovery-primary:active{box-shadow:inset 0 2px 4px #18345826}
.recovery-secondary{background:var(--club-subtle-gradient);border-color:var(--club-border,#c5d6e6);color:var(--club-text,#326da5);margin-top:10px;font-size:12px}
.recovery-secondary:hover:not(:disabled){background:var(--club-soft-gradient)}
.recovery-dialog button:disabled{opacity:.55;cursor:default}.recovery-dialog .is-loading{cursor:wait;opacity:.8}
.recovery-dialog .is-loading::before{content:'';width:14px;height:14px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:recovery-spin .7s linear infinite}
.recovery-dialog :focus-visible{outline:3px solid var(--club-control-border,#5394d4);outline-offset:3px}
.recovery-error{color:#ad263b;font-size:12px;margin:12px 0 0;padding:10px 12px;border:1px solid #f0cfd3;border-radius:10px;background:#fff5f6;line-height:1.5;animation:recovery-step-in .18s ease-out}
.recovery-error:empty{display:none}
.recovery-status{color:#45617e;font-size:12px;margin:0 0 18px;line-height:1.6}
.recovery-success-icon{display:grid;place-items:center;width:60px;height:60px;border-radius:50%;background:#e8f6ee;color:#248259;font-size:30px;margin:24px auto 18px;box-shadow:0 0 0 8px #f4faf6;animation:recovery-success .4s cubic-bezier(.2,.8,.2,1) both}
[data-recovery-step="success"]{text-align:center;padding-bottom:4px}
.recovery-dialog [data-recovery-step]:not([hidden]){animation:recovery-step-in .2s ease-out both}
.recovery-dialog [hidden]{display:none!important}
@keyframes recovery-enter{from{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes recovery-fade{from{opacity:0}to{opacity:1}}
@keyframes recovery-step-in{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
@keyframes recovery-caret{50%{opacity:0}}
@keyframes recovery-spin{to{transform:rotate(360deg)}}
@keyframes recovery-success{from{opacity:0;transform:scale(.7)}to{opacity:1;transform:scale(1)}}
@media(max-width:480px){.recovery-dialog{padding:24px 20px;border-radius:22px}.recovery-dialog h2{font-size:23px}.recovery-code-slots{gap:6px}.recovery-code-slots>span{height:50px;font-size:22px}}
@media(max-width:350px){.recovery-dialog{padding:22px 16px}.recovery-progress{gap:6px}.recovery-progress li{font-size:10px}.recovery-progress li:not(:last-child)::after{margin-left:0;min-width:4px}.recovery-code-slots{gap:4px}}
@media(prefers-reduced-motion:reduce){.recovery-dialog,.recovery-dialog *,.recovery-dialog::backdrop{animation:none!important;transition:none!important}}
