/** * Forgot Password Component Styles * Professional Angular Resume Builder - Password Recovery System * * @author David Valera Melendez * @created 2025-08-08 * @location Made in Germany 🇩🇪 * @description Password recovery form with email validation and reset functionality */ /* ========================================================================== Forgot Password Container & Layout ========================================================================== */ .forgot-password-container { min-height: 100vh; width: 100%; display: flex; align-items: center; justify-content: center; background: var(--gradient-primary); padding: 2rem; box-sizing: border-box; position: relative; } .forgot-password-card-wrapper { width: 100%; max-width: 450px; } .forgot-password-card { width: 100%; padding: 0; box-shadow: 0 8px 25px var(--color-shadow-medium); border-radius: 12px; } .forgot-password-header { text-align: center; padding: 2rem 2rem 1rem 2rem; } .forgot-password-header h1 { margin: 0 0 0.5rem 0; color: var(--color-text-primary); font-weight: 500; font-size: 1.6rem; } .forgot-password-header p { margin: 0; color: var(--color-text-secondary); font-size: 0.95rem; line-height: 1.4; } .forgot-password-form { padding: 0 2rem 1rem 2rem; } .full-width { width: 100%; margin-bottom: 1.5rem; } .reset-button { width: 100%; height: 48px; font-size: 1rem; font-weight: 500; border-radius: 6px; } .reset-button:disabled { opacity: 0.6; } .email-sent-content { padding: 0 2rem 1rem 2rem; text-align: center; } .success-icon { margin-bottom: 1rem; } .success-icon mat-icon { font-size: 3rem; height: 3rem; width: 3rem; color: var(--color-success); } .email-sent-content h3 { margin: 0 0 1rem 0; color: var(--color-text-primary); font-weight: 500; } .email-sent-content p { margin: 0 0 2rem 0; color: var(--color-text-secondary); line-height: 1.5; font-size: 0.95rem; } .email-sent-actions { margin-top: 1.5rem; } .resend-button { border-radius: 6px; font-weight: 500; } .back-to-login { padding: 1rem 2rem 2rem 2rem; text-align: center; } .back-button { font-weight: 500; text-transform: none; border-radius: 6px; } /* Material Form Field Styling */ ::ng-deep .mat-mdc-form-field { font-size: 14px; } ::ng-deep .mat-mdc-form-field-outline { border-radius: 6px; } ::ng-deep .mat-mdc-text-field-wrapper { border-radius: 6px; } /* Error Styling */ ::ng-deep .mat-mdc-form-field.mat-form-field-invalid .mat-mdc-form-field-outline-thick { border-color: var(--color-error); } /* Success Snackbar */ ::ng-deep .success-snackbar { background-color: var(--color-success); color: white; } /* Info Snackbar */ ::ng-deep .info-snackbar { background-color: var(--color-primary); color: white; } /* Error Snackbar */ ::ng-deep .error-snackbar { background-color: var(--color-error); color: white; } /* Responsive Design */ @media (max-width: 768px) { .forgot-password-container { padding: 1rem; } .forgot-password-card { margin: 0; border-radius: 8px; } .forgot-password-header { padding: 1.5rem 1.5rem 1rem 1.5rem; } .forgot-password-header h1 { font-size: 1.4rem; } .forgot-password-form, .email-sent-content { padding: 0 1.5rem 1rem 1.5rem; } .back-to-login { padding: 1rem 1.5rem 1.5rem 1.5rem; } } @media (max-width: 480px) { .forgot-password-container { padding: 0.5rem; } .forgot-password-header h1 { font-size: 1.3rem; } .forgot-password-header p { font-size: 0.9rem; } } /* Loading State */ .reset-button mat-spinner { margin-right: 8px; } /* Focus States */ ::ng-deep .mat-mdc-form-field.mat-focused .mat-mdc-form-field-outline-thick { border-color: var(--color-primary); } /* Animation */ .forgot-password-card { animation: slideInUp 0.3s ease-out; } @keyframes slideInUp { from { transform: translateY(30px); opacity: 0; } to { transform: translateY(0); opacity: 1; } } /* Email Sent Animation */ .email-sent-content { animation: fadeIn 0.4s ease-out; } @keyframes fadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }