.password-container { padding: 1rem; min-height: 90vh; display: flex; align-items: center; justify-content: center; /*background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);*/ position: relative; overflow: hidden; } .password-container::before { content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: url('data:image/svg+xml,'); pointer-events: none; } .password-wrapper { width: 100%; max-width: 650px; position: relative; z-index: 1; margin: 0 auto; } .password-card { border-radius: 24px; background: rgba(255, 255, 255, 0.98); backdrop-filter: blur(20px); border: 1px solid rgba(255, 255, 255, 0.3); box-shadow: 0 32px 64px rgba(0, 0, 0, 0.12), 0 16px 32px rgba(0, 0, 0, 0.08), inset 0 1px 0 rgba(255, 255, 255, 0.6); overflow: hidden; width: 100%; transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); } .password-card:hover { transform: translateY(-8px); box-shadow: 0 48px 96px rgba(0, 0, 0, 0.18), 0 24px 48px rgba(0, 0, 0, 0.12), inset 0 1px 0 rgba(255, 255, 255, 0.6); } .password-header { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: white; padding: 3rem 2.5rem; position: relative; overflow: hidden; } .password-header::before { content: ''; position: absolute; top: -50%; left: -50%; width: 200%; height: 200%; background: radial-gradient(circle, rgba(255, 255, 255, 0.15) 0%, transparent 70%); animation: shimmer 4s ease-in-out infinite; } .password-header::after { content: ''; position: absolute; bottom: 0; left: 0; right: 0; height: 1px; background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent); } @keyframes shimmer { 0%, 100% { transform: translateX(-100%) translateY(-100%) rotate(0deg); } 50% { transform: translateX(20%) translateY(20%) rotate(180deg); } } .header-content { display: flex; align-items: center; gap: 2.5rem; width: 100%; position: relative; z-index: 2; } .header-icon { font-size: 3.5rem !important; filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.3)); animation: pulse 2s ease-in-out infinite; } @keyframes pulse { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.05); } } .header-text h4 { font-weight: 700 !important; margin-bottom: 0.75rem !important; color: white !important; text-shadow: 0 2px 8px rgba(0, 0, 0, 0.3); font-size: 2.25rem !important; line-height: 1.2; } .header-text .mud-typography-body1 { color: rgba(255, 255, 255, 0.95) !important; line-height: 1.6; font-weight: 400; font-size: 1.125rem; text-shadow: 0 1px 4px rgba(0, 0, 0, 0.2); } .card-content { padding: 3rem 2.5rem !important; background: linear-gradient(180deg, #ffffff 0%, #fafbff 100%); position: relative; } .form-fields { display: flex; flex-direction: column; gap: 2.5rem; } .form-group { position: relative; width: 100%; animation: slideInUp 0.6s ease-out; } .form-group:nth-child(1) { animation-delay: 0.1s; } .form-group:nth-child(2) { animation-delay: 0.2s; } .form-group:nth-child(3) { animation-delay: 0.3s; } @keyframes slideInUp { from { opacity: 0; transform: translateY(30px); } to { opacity: 1; transform: translateY(0); } } /* Enhanced TextField Styling */ .password-field :deep(.mud-input-outlined .mud-input-root) { border-radius: 16px !important; background: rgba(255, 255, 255, 0.95); backdrop-filter: blur(10px); transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); border: 2px solid rgba(102, 126, 234, 0.2) !important; box-shadow: 0 4px 16px rgba(0, 0, 0, 0.06); min-height: 64px; } .password-field :deep(.mud-input-outlined:hover .mud-input-root:not(.mud-input-error)) { border-color: #667eea !important; background: rgba(255, 255, 255, 1); transform: translateY(-2px); box-shadow: 0 8px 32px rgba(102, 126, 234, 0.15); } .password-field :deep(.mud-input-outlined.mud-input-focused .mud-input-root:not(.mud-input-error)) { border-color: #667eea !important; background: white; box-shadow: 0 0 0 4px rgba(102, 126, 234, 0.1), 0 8px 32px rgba(102, 126, 234, 0.2); transform: translateY(-3px); } .password-field :deep(.mud-input-label) { font-weight: 600 !important; color: #4a5568 !important; font-size: 1rem; } .password-field :deep(.mud-input-outlined.mud-input-focused .mud-input-label) { color: #667eea !important; } .password-field :deep(.mud-input-control) { padding: 0 1rem; font-size: 1rem; font-weight: 500; } .password-field :deep(.mud-input-adornment-end) { margin-right: 0.5rem; } .validation-message { color: #e53e3e; font-size: 0.875rem; font-weight: 500; margin-top: 0.5rem; margin-left: 0.75rem; animation: slideInUp 0.3s ease-out; } /* Password Strength Section */ .password-strength-container { background: linear-gradient(135deg, #f8faff 0%, #ffffff 100%); border-radius: 20px; padding: 2rem; margin-top: 1.5rem; border: 1px solid rgba(102, 126, 234, 0.15); animation: slideInUp 0.4s ease-out; box-shadow: 0 8px 24px rgba(0, 0, 0, 0.06); position: relative; overflow: hidden; } .password-strength-container::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: linear-gradient(90deg, #667eea, #764ba2); border-radius: 20px 20px 0 0; } .password-strength-container .mud-typography-body2 { font-weight: 600 !important; color: #2d3748 !important; margin-bottom: 1rem !important; font-size: 1rem; } .password-strength-container :deep(.mud-progress-linear) { height: 12px !important; border-radius: 8px !important; margin-bottom: 1.5rem !important; background-color: #e2e8f0 !important; overflow: hidden; position: relative; } .password-strength-container :deep(.mud-progress-linear-bar) { border-radius: 8px !important; transition: all 0.6s cubic-bezier(0.4, 0, 0.2, 1) !important; position: relative; } .password-strength-container :deep(.mud-progress-linear-bar::after) { content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: linear-gradient(90deg, transparent 0%, rgba(255, 255, 255, 0.4) 50%, transparent 100%); animation: shine 2s ease-in-out infinite; } @keyframes shine { 0% { transform: translateX(-100%); } 50% { transform: translateX(100%); } 100% { transform: translateX(100%); } } .password-requirements { margin-top: 1.5rem; } .password-requirements .mud-typography-caption { font-weight: 600 !important; color: #2d3748 !important; margin-bottom: 1rem !important; display: block; font-size: 0.9375rem; text-transform: uppercase; letter-spacing: 0.5px; } .requirements-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 1rem; } .requirement { display: flex; align-items: center; gap: 0.75rem; font-size: 0.875rem; padding: 0.5rem 0.75rem; border-radius: 16px; transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); font-weight: 500; border: 2px solid transparent; position: relative; overflow: hidden; } .requirement::before { content: ''; position: absolute; top: 0; left: -100%; width: 100%; height: 100%; background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent); transition: left 0.4s ease; } .requirement.valid { color: #22543d; background: linear-gradient(135deg, #f0fff4 0%, #c6f6d5 100%); border-color: #68d391; animation: checkmark 0.5s ease-in-out; transform: scale(1.02); box-shadow: 0 4px 16px rgba(72, 187, 120, 0.2); } .requirement.valid::before { left: 100%; } .requirement.invalid { color: #718096; background: linear-gradient(135deg, #f7fafc 0%, #edf2f7 100%); border-color: #e2e8f0; } .requirement :deep(.mud-icon-root) { font-size: 1.25rem !important; transition: all 0.3s ease; } .requirement.valid :deep(.mud-icon-root) { animation: bounce 0.6s ease; } @keyframes checkmark { 0% { transform: scale(0.8) rotate(-5deg); opacity: 0.7; } 50% { transform: scale(1.1) rotate(2deg); } 100% { transform: scale(1.02) rotate(0deg); opacity: 1; } } @keyframes bounce { 0%, 20%, 50%, 80%, 100% { transform: translateY(0); } 40% { transform: translateY(-4px); } 60% { transform: translateY(-2px); } } /* Password Match Indicator */ .password-match-indicator { margin-top: 1rem; animation: slideInUp 0.3s ease-out; } .password-match-indicator .mud-typography { display: flex; align-items: center; gap: 0.75rem; font-size: 0.9375rem; padding: 1rem 1.25rem; border-radius: 16px; font-weight: 600; transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); border: 2px solid transparent; } .password-match-indicator .mud-success { background: linear-gradient(135deg, #f0fff4 0%, #c6f6d5 100%); border-color: #68d391; color: #22543d !important; box-shadow: 0 4px 16px rgba(72, 187, 120, 0.15); } .password-match-indicator .mud-error { background: linear-gradient(135deg, #fed7d7 0%, #feb2b2 100%); border-color: #fc8181; color: #742a2a !important; box-shadow: 0 4px 16px rgba(245, 101, 101, 0.15); } .card-actions { display:flex; padding: 2rem 2.5rem 2.5rem !important; background: linear-gradient(180deg, #fafbff 0%, #f4f6ff 100%); border-top: 1px solid rgba(102, 126, 234, 0.1); gap: 1.5rem; justify-content: end; } .action-button { min-width: 140px !important; height: 56px !important; border-radius: 16px !important; font-weight: 600 !important; font-size: 1rem !important; text-transform: none !important; transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important; box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1) !important; position: relative; overflow: hidden; } .action-button::before { content: ''; position: absolute; top: 0; left: -100%; width: 100%; height: 100%; background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent); transition: left 0.5s ease; } .action-button:hover::before { left: 100%; } .action-button:hover { transform: translateY(-3px) !important; box-shadow: 0 8px 32px rgba(0, 0, 0, 0.15) !important; } .action-button:active { transform: translateY(-1px) !important; } .action-button:disabled { opacity: 0.6 !important; transform: none !important; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05) !important; } /* Error Alert */ .mud-alert { border-radius: 16px !important; border: 2px solid rgba(245, 101, 101, 0.2) !important; background: linear-gradient(135deg, #fed7d7 0%, #feb2b2 100%) !important; color: #742a2a !important; font-weight: 500 !important; box-shadow: 0 4px 16px rgba(245, 101, 101, 0.15) !important; margin-top: 1.5rem !important; animation: slideInUp 0.3s ease-out; } /* Responsive Design */ @media (max-width: 768px) { .password-container { padding: 0.5rem; } .password-wrapper { max-width: 100%; } .password-header { padding: 2rem 1.5rem; } .header-content { flex-direction: column; gap: 1.5rem; text-align: center; } .header-icon { font-size: 2.5rem !important; } .header-text h4 { font-size: 1.75rem !important; } .card-content { padding: 2rem 1.5rem !important; } .form-fields { gap: 2rem; } .password-strength-container { padding: 1.5rem; } .requirements-list { grid-template-columns: 1fr; gap: 0.75rem; } .card-actions { padding: 1.5rem !important; flex-direction: column; } .action-button { width: 100% !important; min-width: unset !important; } } @media (max-width: 480px) { .password-header { padding: 1.5rem 1rem; } .card-content { padding: 1.5rem 1rem !important; } .password-strength-container { padding: 1rem; } .card-actions { padding: 1rem !important; } }