/** * HVAC Community Login Enhanced Styles * Enhanced visual styling and animations for the community login form * * @package HVAC_Community_Events * @version 1.0.0 */ /* ===== ENHANCED VISUAL EFFECTS ===== */ /* Card shadow on hover */ .hvac-login-form-card:hover { box-shadow: 0 8px 25px rgba(0, 0, 0, 0.15); transition: box-shadow 0.3s ease; } /* Enhanced input focus effects */ .hvac-login-form-input:focus { transform: translateY(-1px); box-shadow: 0 0 0 3px rgba(2, 116, 190, 0.15), 0 2px 8px rgba(0, 0, 0, 0.1); } /* Animated form elements */ .hvac-login-form-group { animation: hvac-fade-in-up 0.5s ease forwards; opacity: 0; transform: translateY(20px); } .hvac-login-form-group:nth-child(1) { animation-delay: 0.1s; } .hvac-login-form-group:nth-child(2) { animation-delay: 0.2s; } .hvac-login-form-group:nth-child(3) { animation-delay: 0.3s; } .hvac-login-form-group:nth-child(4) { animation-delay: 0.4s; } @keyframes hvac-fade-in-up { to { opacity: 1; transform: translateY(0); } } /* ===== ENHANCED INPUT STYLING ===== */ /* Floating label effect */ .hvac-input-group { position: relative; } .hvac-login-form-input:focus + .hvac-input-icon, .hvac-login-form-input:not(:placeholder-shown) + .hvac-input-icon { color: #0274be; transform: scale(0.9); transition: color 0.2s, transform 0.2s; } /* Enhanced password toggle */ .hvac-password-toggle { background: rgba(255, 255, 255, 0.9); border-radius: 50%; width: 32px; height: 32px; display: flex; align-items: center; justify-content: center; backdrop-filter: blur(4px); transition: background-color 0.2s, transform 0.2s; } .hvac-password-toggle:hover { background: rgba(2, 116, 190, 0.1); transform: scale(1.1); } .hvac-password-toggle-icon { transition: transform 0.2s ease; } .hvac-password-toggle[aria-pressed="true"] .hvac-password-toggle-icon { transform: scale(1.1); } /* ===== ENHANCED BUTTON STYLING ===== */ /* Gradient background for submit button */ .hvac-login-submit { background: linear-gradient(135deg, #0274be 0%, #005fa3 100%); box-shadow: 0 4px 15px rgba(2, 116, 190, 0.3); position: relative; overflow: hidden; } .hvac-login-submit::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; } .hvac-login-submit:hover::before { left: 100%; } .hvac-login-submit:hover { transform: translateY(-2px); box-shadow: 0 6px 20px rgba(2, 116, 190, 0.4); } .hvac-login-submit:active { transform: translateY(0); box-shadow: 0 2px 8px rgba(2, 116, 190, 0.3); } /* Enhanced loading state */ .hvac-login-submit.loading { pointer-events: none; opacity: 0.8; } .hvac-login-submit.loading .hvac-login-submit-text { opacity: 0.7; } .hvac-login-spinner { box-shadow: 0 0 8px rgba(255, 255, 255, 0.3); } /* ===== ENHANCED REMEMBER ME STYLING ===== */ .hvac-remember-group { position: relative; padding: 0.75rem 0; } .hvac-remember-checkbox { opacity: 0; position: absolute; } .hvac-remember-label::before { content: ''; display: inline-block; width: 18px; height: 18px; margin-right: 0.5rem; border: 2px solid #e0e0e0; border-radius: 3px; background: #fff; transition: all 0.2s ease; vertical-align: top; } .hvac-remember-checkbox:checked + .hvac-remember-label::before { background: #0274be; border-color: #0274be; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20,6 9,17 4,12'%3E%3C/polyline%3E%3C/svg%3E"); background-position: center; background-repeat: no-repeat; background-size: 10px; } .hvac-remember-checkbox:focus + .hvac-remember-label::before { box-shadow: 0 0 0 3px rgba(2, 116, 190, 0.15); outline: 2px solid #0274be; outline-offset: 2px; } /* ===== ENHANCED LINK STYLING ===== */ .hvac-login-links { position: relative; } .hvac-register-link, .hvac-lostpassword-link { position: relative; transition: color 0.2s ease; } .hvac-register-link::after, .hvac-lostpassword-link::after { content: ''; position: absolute; bottom: -2px; left: 0; width: 0; height: 2px; background: #0274be; transition: width 0.3s ease; } .hvac-register-link:hover::after, .hvac-lostpassword-link:hover::after { width: 100%; } /* ===== ENHANCED ERROR/SUCCESS MESSAGES ===== */ .hvac-login-error, .login-error { position: relative; animation: hvac-shake 0.5s ease-in-out; border-left: 4px solid #d63638; } .hvac-login-success, .login-success { position: relative; animation: hvac-slide-in 0.5s ease forwards; border-left: 4px solid #4caf50; } @keyframes hvac-shake { 0%, 100% { transform: translateX(0); } 25% { transform: translateX(-5px); } 75% { transform: translateX(5px); } } @keyframes hvac-slide-in { 0% { opacity: 0; transform: translateY(-10px); } 100% { opacity: 1; transform: translateY(0); } } /* ===== ENHANCED CARD ANIMATIONS ===== */ .hvac-login-form-card { animation: hvac-card-entrance 0.8s ease-out forwards; transform: translateY(30px); opacity: 0; } @keyframes hvac-card-entrance { 0% { opacity: 0; transform: translateY(30px) scale(0.95); } 100% { opacity: 1; transform: translateY(0) scale(1); } } /* ===== ENHANCED HEADER STYLING ===== */ .hvac-login-form-header { position: relative; } .hvac-login-form-header::after { content: ''; position: absolute; bottom: 0; left: 50%; transform: translateX(-50%); width: 60px; height: 3px; background: linear-gradient(90deg, #0274be, #005fa3); border-radius: 2px; animation: hvac-line-expand 0.8s ease-out 0.5s forwards; width: 0; } @keyframes hvac-line-expand { to { width: 60px; } } .hvac-login-form-header h2 { animation: hvac-title-glow 2s ease-in-out infinite; } @keyframes hvac-title-glow { 0%, 100% { text-shadow: 0 0 5px rgba(2, 116, 190, 0.3); } 50% { text-shadow: 0 0 10px rgba(2, 116, 190, 0.5), 0 0 15px rgba(2, 116, 190, 0.3); } } /* ===== ACCESSIBILITY ENHANCEMENTS ===== */ @media (prefers-reduced-motion: reduce) { .hvac-login-form-card, .hvac-login-form-group, .hvac-login-form-input, .hvac-login-submit, .hvac-password-toggle, .hvac-register-link, .hvac-lostpassword-link, .hvac-login-error, .hvac-login-success { animation: none !important; transition: none !important; transform: none !important; } .hvac-login-form-group { opacity: 1; } .hvac-login-form-card { opacity: 1; } .hvac-login-form-header h2 { animation: none; text-shadow: none; } .hvac-login-form-header::after { width: 60px; animation: none; } } /* ===== DARK MODE SUPPORT (if enabled) ===== */ @media (prefers-color-scheme: dark) { .hvac-community-login-wrapper { background-color: #1a1a1a; } .hvac-login-form-card { background-color: #2d2d2d; border-color: #404040; color: #e0e0e0; } .hvac-login-form-header h2 { color: #4da6e0; } .hvac-login-form-header p { color: #b0b0b0; } .hvac-login-form-input { background-color: #3a3a3a; border-color: #505050; color: #e0e0e0; } .hvac-login-form-input:focus { background-color: #404040; border-color: #4da6e0; } .hvac-remember-label::before { background: #3a3a3a; border-color: #505050; } .hvac-remember-checkbox:checked + .hvac-remember-label::before { background: #4da6e0; border-color: #4da6e0; } } /* ===== ENHANCED RESPONSIVE DESIGN ===== */ @media (max-width: 768px) { .hvac-login-form-card { animation-delay: 0.2s; } .hvac-login-submit { box-shadow: 0 2px 10px rgba(2, 116, 190, 0.3); } .hvac-login-submit:hover { box-shadow: 0 4px 15px rgba(2, 116, 190, 0.4); } } @media (max-width: 480px) { .hvac-login-form-card { border-radius: 12px; } .hvac-login-form-input { border-radius: 8px; } .hvac-login-submit { border-radius: 8px; } }