.recovery-page [hidden] {
    display: none;
}

.recovery-glow {
    top: 0;
}

.recovery-glow > div {
    position: absolute;
    bottom: 0;
}

/* Keep the final recovery links clear of the footer on short viewports. */
.recovery-page {
    padding-bottom: clamp(3rem, 8vh, 6rem);
}

.recovery-sent {
    margin-bottom: 20px;
    color: #4b5563;
    font-size: 14px;
    line-height: 1.7;
}

.recovery-page #otp {
    min-height: 44px;
    font-size: 18px;
    letter-spacing: 0.2em;
}

.recovery-page button:disabled {
    cursor: not-allowed;
    opacity: 0.65;
}

.recovery-page input[aria-invalid="true"] {
    border-color: #b91c1c;
}

.recovery-page #new-password,
.recovery-page #password-confirmation {
    min-height: 44px;
    font-size: 16px;
}

.recovery-resend {
    margin-top: 20px;
    text-align: center;
}

.recovery-text-button {
    min-height: 44px;
    padding: 8px 14px;
    color: #1d4ed8;
    font-size: 14px;
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
    border-radius: 6px;
}

.recovery-text-button:focus-visible {
    outline: 2px solid #2563eb;
    outline-offset: 2px;
}

.recovery-countdown {
    text-align: center;
    margin-top: 0;
    font-variant-numeric: tabular-nums;
}
