/* ============================================ AUTHENTICATION PAGES STYLES ============================================ */ /* Auth Section */ .auth-section { min-height: calc(100vh - 200px); display: flex; align-items: center; justify-content: center; padding: 80px 20px; background: linear-gradient(135deg, #f5f9ff 0%, #e8f0fe 100%); } .auth-container { max-width: 480px; margin: 0 auto; width: 100%; animation: fadeIn 0.6s ease-out; } .auth-card { background: white; border-radius: 20px; padding: 50px 40px; box-shadow: 0 15px 50px rgba(42, 82, 152, 0.12); border: 1px solid rgba(42, 82, 152, 0.08); transition: transform 0.3s ease, box-shadow 0.3s ease; } .auth-card:hover { transform: translateY(-5px); box-shadow: 0 20px 60px rgba(42, 82, 152, 0.18); } .auth-title { color: #2a5298; font-size: 32px; margin-bottom: 10px; text-align: center; font-weight: 700; background: linear-gradient(135deg, #2a5298 0%, #1e3c72 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; } .auth-subtitle { color: #666; text-align: center; margin-bottom: 40px; font-size: 16px; line-height: 1.5; max-width: 350px; margin-left: auto; margin-right: auto; } /* Auth Form */ .auth-form { margin: 35px 0; } .form-group { margin-bottom: 25px; position: relative; } .form-group label { display: block; margin-bottom: 10px; color: #333; font-weight: 600; font-size: 15px; display: flex; align-items: center; gap: 5px; } .form-group label::after { content: '*'; color: #e74c3c; font-size: 18px; display: none; } .form-group label.required::after { display: inline-block; } .form-group input, .form-group select { width: 100%; padding: 16px 18px; border: 2px solid #e0e7ff; border-radius: 12px; font-size: 16px; transition: all 0.3s ease; background-color: #f8faff; color: #333; font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; } .form-group input:focus, .form-group select:focus { outline: none; border-color: #2a5298; background-color: white; box-shadow: 0 0 0 4px rgba(42, 82, 152, 0.1); } .form-group input::placeholder { color: #999; font-size: 15px; } .form-group input.error, .form-group select.error { border-color: #e74c3c; background-color: #fff8f8; } .form-group input.error:focus { box-shadow: 0 0 0 4px rgba(231, 76, 60, 0.1); } .error-message { color: #e74c3c; font-size: 13px; margin-top: 8px; display: flex; align-items: center; gap: 6px; font-weight: 500; } .error-message::before { content: '⚠️'; font-size: 12px; } /* Password field container */ .password-field { position: relative; } .password-toggle { position: absolute; right: 15px; top: 50%; transform: translateY(-50%); background: none; border: none; color: #666; cursor: pointer; font-size: 18px; padding: 5px; transition: color 0.3s; } .password-toggle:hover { color: #2a5298; } /* Auth Button */ .auth-btn { width: 100%; padding: 18px; font-size: 17px; font-weight: 700; margin-top: 25px; border-radius: 12px; background: linear-gradient(135deg, #2a5298 0%, #1e3c72 100%); border: none; color: white; cursor: pointer; transition: all 0.3s ease; letter-spacing: 0.5px; text-transform: uppercase; box-shadow: 0 8px 25px rgba(42, 82, 152, 0.25); } .auth-btn:hover { transform: translateY(-3px); box-shadow: 0 12px 30px rgba(42, 82, 152, 0.35); } .auth-btn:active { transform: translateY(0); } .auth-btn:disabled { background: #cccccc; cursor: not-allowed; transform: none; box-shadow: none; } /* Auth Footer */ .auth-footer { text-align: center; padding-top: 25px; border-top: 1px solid #eef2ff; color: #666; font-size: 15px; line-height: 1.6; } .auth-link { color: #2a5298; font-weight: 700; text-decoration: none; position: relative; transition: color 0.3s; padding: 2px 0; } .auth-link::after { content: ''; position: absolute; bottom: 0; left: 0; width: 0; height: 2px; background: linear-gradient(135deg, #2a5298 0%, #1e3c72 100%); transition: width 0.3s ease; } .auth-link:hover { color: #1e3c72; } .auth-link:hover::after { width: 100%; } /* Alert Messages */ .alert { padding: 18px 20px; border-radius: 12px; margin-bottom: 25px; font-size: 15px; display: flex; align-items: center; gap: 12px; animation: slideIn 0.4s ease; } .alert-error { background-color: #ffeaea; color: #d32f2f; border: 1px solid #ffcdd2; } .alert-success { background-color: #e8f5e9; color: #2e7d32; border: 1px solid #c8e6c9; } .alert-info { background-color: #e3f2fd; color: #1565c0; border: 1px solid #bbdefb; } .alert::before { font-size: 20px; } .alert-error::before { content: '❌'; } .alert-success::before { content: '✅'; } .alert-info::before { content: 'ℹ️'; } /* Auth Options Divider */ .auth-divider { display: flex; align-items: center; margin: 30px 0; color: #999; font-size: 14px; } .auth-divider::before, .auth-divider::after { content: ''; flex: 1; height: 1px; background: linear-gradient(to right, transparent, #ddd, transparent); } .auth-divider span { padding: 0 15px; } /* Social Login Buttons */ .social-login { display: grid; grid-template-columns: repeat(2, 1fr); gap: 15px; margin-top: 20px; } .social-btn { padding: 14px; border-radius: 10px; border: 2px solid #e0e7ff; background: white; color: #333; font-weight: 600; cursor: pointer; transition: all 0.3s; display: flex; align-items: center; justify-content: center; gap: 10px; font-size: 15px; } .social-btn.google:hover { background: #f8faff; border-color: #db4437; color: #db4437; } .social-btn.facebook:hover { background: #f8faff; border-color: #4267B2; color: #4267B2; } /* Terms Checkbox */ .terms-checkbox { display: flex; align-items: flex-start; gap: 12px; margin-top: 20px; } .terms-checkbox input[type="checkbox"] { width: 18px; height: 18px; margin-top: 3px; accent-color: #2a5298; } .terms-checkbox label { font-size: 14px; color: #666; line-height: 1.5; font-weight: normal; } .terms-checkbox a { color: #2a5298; text-decoration: none; font-weight: 600; } .terms-checkbox a:hover { text-decoration: underline; } /* Form Row (for side-by-side fields) */ .form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; } /* Back Button */ .back-button { display: inline-flex; align-items: center; gap: 8px; color: #666; text-decoration: none; font-weight: 500; margin-bottom: 25px; transition: color 0.3s; font-size: 15px; } .back-button:hover { color: #2a5298; } .back-button::before { content: '←'; font-size: 18px; } /* Forgot Password Link */ .forgot-password { text-align: right; margin-top: 5px; } .forgot-password a { color: #666; font-size: 14px; text-decoration: none; transition: color 0.3s; } .forgot-password a:hover { color: #2a5298; text-decoration: underline; } /* Auth Illustration */ .auth-illustration { display: flex; justify-content: center; margin-bottom: 30px; } .auth-illustration img { max-width: 200px; height: auto; filter: drop-shadow(0 10px 20px rgba(42, 82, 152, 0.15)); } /* Responsive Styles */ @media (max-width: 768px) { .auth-section { padding: 60px 15px; min-height: calc(100vh - 160px); } .auth-card { padding: 40px 25px; border-radius: 16px; } .auth-title { font-size: 28px; } .auth-subtitle { font-size: 15px; margin-bottom: 30px; } .form-group input, .form-group select { padding: 14px 16px; font-size: 15px; } .auth-btn { padding: 16px; font-size: 16px; } .form-row { grid-template-columns: 1fr; gap: 15px; } .social-login { grid-template-columns: 1fr; } } @media (max-width: 480px) { .auth-card { padding: 30px 20px; } .auth-title { font-size: 24px; } .form-group { margin-bottom: 20px; } .auth-footer { font-size: 14px; } } /* Animations */ @keyframes fadeIn { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } } @keyframes slideIn { from { opacity: 0; transform: translateX(-20px); } to { opacity: 1; transform: translateX(0); } } /* Optional: Add background pattern */ .auth-section::before { content: ''; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-image: radial-gradient(circle at 10% 20%, rgba(42, 82, 152, 0.05) 0%, transparent 20%), radial-gradient(circle at 90% 80%, rgba(42, 82, 152, 0.05) 0%, transparent 20%); pointer-events: none; z-index: -1; }