/* Authentication Pages - Premium Design */ .auth-container { position: relative; z-index: 1; min-height: 100vh; display: flex; align-items: center; justify-content: center; padding: var(--spacing-lg); gap: var(--spacing-xl); } .auth-card { width: 100%; max-width: 480px; background: var(--glass-bg); backdrop-filter: blur(20px); border: 1px solid var(--glass-border); border-radius: var(--radius-xl); padding: var(--spacing-xl); box-shadow: var(--glass-shadow); } .auth-header { text-align: center; margin-bottom: var(--spacing-xl); } .brand-logo { display: flex; align-items: center; justify-content: center; gap: var(--spacing-sm); margin-bottom: var(--spacing-lg); } .auth-title { font-size: 32px; margin-bottom: var(--spacing-sm); } .auth-subtitle { color: var(--color-text-secondary); font-size: 16px; } .auth-form { margin-bottom: var(--spacing-lg); } .form-group { margin-bottom: var(--spacing-md); } .form-label { display: flex; align-items: center; gap: var(--spacing-xs); font-size: 14px; font-weight: 600; margin-bottom: var(--spacing-xs); color: var(--color-text-secondary); } .form-input { width: 100%; padding: 14px 16px; background: var(--color-surface); border: 1px solid var(--glass-border); border-radius: var(--radius-md); color: var(--color-text-primary); font-size: 16px; transition: all var(--transition-base); } .form-input:focus { outline: none; border-color: var(--color-primary); box-shadow: 0 0 0 4px rgba(99, 102, 241, 0.1); } .form-hint { display: block; font-size: 12px; color: var(--color-text-tertiary); margin-top: 4px; } .form-options { display: flex; justify-content: space-between; align-items: center; margin-bottom: var(--spacing-md); } .checkbox-label { display: flex; align-items: center; gap: var(--spacing-xs); font-size: 14px; color: var(--color-text-secondary); cursor: pointer; } .checkbox-label input[type="checkbox"] { width: 18px; height: 18px; cursor: pointer; } .link-primary { color: var(--color-primary); text-decoration: none; font-weight: 600; transition: color var(--transition-fast); } .link-primary:hover { color: var(--color-primary-dark); } .btn-block { width: 100%; justify-content: center; } .auth-divider { position: relative; text-align: center; margin: var(--spacing-lg) 0; } .auth-divider::before { content: ''; position: absolute; top: 50%; left: 0; right: 0; height: 1px; background: var(--glass-border); } .auth-divider span { position: relative; background: var(--color-bg-primary); padding: 0 var(--spacing-md); font-size: 14px; color: var(--color-text-tertiary); } .social-login { display: flex; gap: var(--spacing-sm); margin-bottom: var(--spacing-lg); } .btn-social { flex: 1; padding: 14px; background: var(--color-surface); border: 1px solid var(--glass-border); border-radius: var(--radius-md); color: var(--color-text-primary); font-size: 20px; cursor: pointer; transition: all var(--transition-base); } .btn-social:hover { background: var(--color-surface-hover); border-color: var(--color-primary); transform: translateY(-2px); } .auth-footer { text-align: center; padding-top: var(--spacing-md); border-top: 1px solid var(--glass-border); color: var(--color-text-secondary); } .auth-features { display: flex; flex-direction: column; gap: var(--spacing-lg); max-width: 400px; } .feature-item { display: flex; flex-direction: column; gap: var(--spacing-sm); } .feature-icon { width: 56px; height: 56px; background: linear-gradient(135deg, var(--color-primary), var(--color-secondary)); border-radius: var(--radius-lg); display: flex; align-items: center; justify-content: center; font-size: 24px; box-shadow: 0 8px 24px rgba(99, 102, 241, 0.3); } .feature-item h3 { font-size: 20px; font-weight: 700; } .feature-item p { color: var(--color-text-secondary); font-size: 14px; } .alert { padding: var(--spacing-md); border-radius: var(--radius-md); margin-bottom: var(--spacing-md); display: flex; align-items: center; gap: var(--spacing-sm); } .alert-error { background: rgba(239, 68, 68, 0.1); border: 1px solid rgba(239, 68, 68, 0.3); color: var(--color-danger); } @media (max-width: 1024px) { .auth-container { flex-direction: column; } .auth-features { max-width: 100%; } } /* ============================================ AUTH PAGES - RESPONSIVE DESIGN ============================================ */ /* Tablets (768px - 1023px) */ @media (max-width: 1023px) { .auth-container { flex-direction: column; padding: var(--spacing-md); gap: var(--spacing-lg); } .auth-card { max-width: 100%; padding: var(--spacing-lg); } .auth-features { flex-direction: row; flex-wrap: wrap; justify-content: center; max-width: 100%; } .feature-item { flex: 1; min-width: 200px; max-width: 250px; text-align: center; align-items: center; } } /* Small Tablets / Large Phones (600px - 767px) */ @media (max-width: 767px) { .auth-container { padding: var(--spacing-sm); min-height: 100vh; justify-content: flex-start; padding-top: var(--spacing-lg); } .auth-card { padding: var(--spacing-md); border-radius: var(--radius-lg); } .auth-title { font-size: 26px; } .auth-subtitle { font-size: 14px; } .brand-logo { margin-bottom: var(--spacing-md); } .brand-icon { width: 40px; height: 40px; font-size: 20px; } .brand-text { font-size: 20px; } .form-input { padding: 12px 14px; font-size: 16px; /* Prevents zoom on iOS */ } .form-options { flex-direction: column; gap: var(--spacing-sm); align-items: flex-start; } .btn-primary, .btn-secondary { padding: 14px 20px; font-size: 15px; } .social-login { gap: var(--spacing-xs); } .btn-social { padding: 12px; font-size: 18px; } .auth-features { display: none; /* Hide features on mobile to save space */ } .feature-icon { width: 48px; height: 48px; font-size: 20px; } .feature-item h3 { font-size: 16px; } .feature-item p { font-size: 13px; } } /* Extra Small Phones (< 480px) */ @media (max-width: 479px) { .auth-container { padding: var(--spacing-xs); padding-top: var(--spacing-md); } .auth-card { padding: var(--spacing-sm); border-radius: var(--radius-md); } .auth-header { margin-bottom: var(--spacing-md); } .auth-title { font-size: 22px; } .auth-subtitle { font-size: 13px; } .brand-icon { width: 36px; height: 36px; font-size: 18px; } .brand-text { font-size: 18px; } .form-label { font-size: 13px; } .form-input { padding: 10px 12px; } .checkbox-label { font-size: 13px; } .link-primary { font-size: 13px; } .btn-primary { padding: 12px 16px; font-size: 14px; } .btn-social { padding: 10px; font-size: 16px; } .auth-divider span { font-size: 12px; } .auth-footer { font-size: 13px; } .alert { padding: var(--spacing-sm); font-size: 13px; } } /* Landscape Mode for Phones */ @media (max-height: 600px) and (orientation: landscape) { .auth-container { flex-direction: row; align-items: flex-start; padding-top: var(--spacing-sm); } .auth-card { max-width: 400px; max-height: 90vh; overflow-y: auto; } .auth-features { display: flex; flex-direction: column; gap: var(--spacing-sm); } .feature-item { flex-direction: row; text-align: left; align-items: center; } .feature-icon { width: 40px; height: 40px; font-size: 18px; flex-shrink: 0; } } /* Touch Device Optimizations */ @media (hover: none) and (pointer: coarse) { .form-input, .btn-primary, .btn-secondary, .btn-social { min-height: 48px; } .checkbox-label input[type="checkbox"] { width: 22px; height: 22px; } .btn-social:hover { transform: none; } } /* Safe Area for Notched Phones */ @supports (padding: max(0px)) { .auth-container { padding-left: max(var(--spacing-sm), env(safe-area-inset-left)); padding-right: max(var(--spacing-sm), env(safe-area-inset-right)); padding-bottom: max(var(--spacing-sm), env(safe-area-inset-bottom)); } }