.login-page { min-height: 100vh; /* fallback for browsers without dvh support */ min-height: 100dvh; /* dynamic viewport height — prevents bounce when mobile browser chrome resizes */ display: flex; align-items: center; justify-content: center; background: linear-gradient(135deg, #e8f0fe 0%, #f1f3f4 50%, #e8f0fe 100%); padding: 20px; } .login-card { background: white; border-radius: 24px; padding: 48px 40px; width: 100%; max-width: 420px; box-shadow: 0 4px 24px rgba(0,0,0,0.12); } .login-logo { text-align: center; margin-bottom: 32px; } .logo-img { width: 72px; height: 72px; border-radius: 16px; object-fit: cover; margin-bottom: 16px; } .login-logo h1 { font-size: 28px; font-weight: 700; color: #202124; margin-bottom: 4px; } .login-logo p { color: #5f6368; font-size: 15px; } .login-form { display: flex; flex-direction: column; gap: 16px; } .field { display: flex; flex-direction: column; gap: 6px; } .field label { font-size: 14px; font-weight: 500; color: #5f6368; } .remember-me { display: flex; align-items: center; gap: 8px; font-size: 14px; color: #5f6368; cursor: pointer; } .remember-me input[type="checkbox"] { accent-color: #1a73e8; width: 16px; height: 16px; } .login-footer { margin-top: 24px; text-align: center; font-size: 13px; color: #9aa0a6; display: flex; flex-direction: column; gap: 4px; } .support-link { background: none; border: none; color: var(--primary); font-size: 13px; font-weight: 500; cursor: pointer; padding: 0; text-decoration: underline; text-underline-offset: 2px; } .support-link:hover { color: var(--primary-dark, #1557b0); }