/* Recuperación de contraseña: estilos limitados a estas dos pantallas. */
.jp-recovery-main { padding: 60px 16px 80px; }
.jp-recovery-card { width: 100%; max-width: 480px; margin: 0 auto; padding: 40px; border: 1px solid #e1e5eb; border-radius: 18px; background: #fff; text-align: center; }
.jp-recovery-icon { width: 80px; height: 80px; margin: 0 auto 34px; border-radius: 50%; background: #e5e8ef; color: #001b57; display: flex; align-items: center; justify-content: center; }
.jp-recovery-icon svg { width: 40px; height: 40px; color: currentColor; fill: none; stroke: currentColor; }
.jp-recovery-icon-success { background: #dcfce7; color: #00ad45; }
.jp-recovery-card h1 { margin: 0 0 12px; font-size: 28px; font-weight: 800; line-height: 1.3; color: #101827; }
.jp-recovery-description { margin: 0; color: #64748b; font-size: 16px; line-height: 1.6; }
.jp-recovery-field { margin: 40px 0 24px; text-align: left; }
.jp-recovery-field label { display: block; margin-bottom: 10px; font-size: 16px; font-weight: 500; }
.jp-recovery-input { position: relative; }
.jp-recovery-input svg { position: absolute; left: 15px; top: 50%; transform: translateY(-50%); width: 24px; height: 24px; color: #98a2b3; fill: none; stroke: currentColor; pointer-events: none; }
.jp-recovery-input input { width: 100%; min-height: 64px; padding: 14px 16px 14px 50px; border: 2px solid #e4e7ec; border-radius: 13px; background: #fff; color: #101827; font: inherit; font-size: 18px; }
.jp-recovery-input input::placeholder { color: #8490a1; }
.jp-recovery-input input:focus { outline: 2px solid #001b57; outline-offset: 2px; }
.jp-recovery-input input[aria-invalid="true"] { border-color: #dc2626; }
.jp-recovery-submit, .jp-recovery-resend { width: 100%; min-height: 62px; border-radius: 13px; padding: 14px 12px; font-size: 18px; line-height: 1.4; cursor: pointer; }
.jp-recovery-submit { border: 0; background: linear-gradient(100deg, #ffbb0e, #ffce23); color: #08152c; font-weight: 700; box-shadow: 0 8px 16px rgba(15, 23, 42, .12); }
.jp-recovery-resend { border: 2px solid #e4e7ec; background: #fff; color: #344054; font-weight: 500; }
.jp-recovery-back { display: inline-flex; align-items: center; justify-content: center; gap: 8px; margin-top: 30px; color: #001b57; text-decoration: none; font-size: 16px; line-height: 1.5; font-weight: 500; }
.jp-recovery-back svg { width: 20px; height: 20px; color: currentColor; fill: none; stroke: currentColor; }
.jp-recovery-back:hover { text-decoration: underline; }
.jp-recovery-back:focus-visible, .jp-recovery-submit:focus-visible, .jp-recovery-resend:focus-visible { outline: 2px solid #001b57; outline-offset: 4px; }
.jp-recovery-email { margin: 10px 0 0; color: #001b57; font-size: 18px; line-height: 1.5; font-weight: 600; overflow-wrap: anywhere; }
.jp-recovery-notice { margin: 40px 0; padding: 16px; background: #fffbeb; border: 1px solid #fcd34d; border-radius: 12px; color: #a33f00; font-size: 14px; line-height: 1.5; }
.jp-recovery-notice strong { font-weight: 600; }
.jp-recovery-card .jp-alert { margin: 24px 0 0; text-align: left; }
@media (max-width: 575.98px) {
    .jp-recovery-main { padding: 32px 16px 48px; }
    .jp-recovery-card { padding: 32px 22px; border-radius: 16px; }
    .jp-recovery-card h1 { font-size: 25px; }
    .jp-recovery-submit, .jp-recovery-resend { font-size: 16px; }
    .jp-recovery-field { margin-top: 30px; }
}
