/* 登录页面样式 */ .login-page { display: flex; justify-content: center; align-items: center; min-height: 100vh; background-image: url('/images/登录页背景-min.png'); background-size: cover; background-position: center; background-repeat: no-repeat; } .login-container { width: 100%; max-width: 480px; padding: 2rem; background-color: white; border-radius: 8px; box-shadow: 0 8px 24px rgba(0, 0, 0, 0.1); } .login-header { display: flex; flex-direction: column; align-items: center; margin-bottom: 2rem; } .login-logo { height: 60px; margin-bottom: 1rem; } .login-title { font-size: 1.5rem; font-weight: 600; color: #015c42; text-align: center; } .login-subtitle { font-size: 1.25rem; font-weight: 500; color: #333; margin-bottom: 1.5rem; text-align: center; } .login-form-container { margin-bottom: 2rem; } /* OAuth2.0 登录样式 */ .oauth-login-section { display: flex; flex-direction: column; align-items: center; gap: 1.5rem; } .login-description { text-align: center; color: #666; margin-bottom: 1rem; } .login-description p { font-size: 0.95rem; line-height: 1.5; } .oauth-login-button { display: flex; align-items: center; justify-content: center; gap: 0.75rem; width: 100%; padding: 0.875rem 1.5rem; background: linear-gradient(135deg, #015c42 0%, #01704e 100%); color: white; border: none; border-radius: 6px; font-size: 1rem; font-weight: 500; cursor: pointer; transition: all 0.3s ease; position: relative; overflow: hidden; } .oauth-login-button:hover { background: linear-gradient(135deg, #01704e 0%, #015c42 100%); transform: translateY(-1px); box-shadow: 0 4px 12px rgba(1, 92, 66, 0.3); } .oauth-login-button:active { transform: translateY(0); } .oauth-login-button i { font-size: 1.25rem; opacity: 0.9; } .login-tips { text-align: center; color: #888; font-size: 0.85rem; margin-top: 1rem; } .login-tips p { display: flex; align-items: center; justify-content: center; gap: 0.5rem; margin: 0; } .login-tips i { font-size: 0.95rem; color: #999; } /* 错误消息样式 */ .error-message-container { display: flex; align-items: center; gap: 0.5rem; padding: 0.75rem 1rem; background-color: #fef2f2; border-left: 4px solid #ef4444; border-radius: 4px; margin-bottom: 1.5rem; animation: fadeIn 0.3s ease; } .error-icon { color: #ef4444; font-size: 1.1rem; flex-shrink: 0; } .error-text { color: #dc2626; font-size: 0.9rem; line-height: 1.4; } .login-footer { text-align: center; color: #888; font-size: 0.85rem; } .login-footer p { margin: 0; } /* 动画效果 */ @keyframes fadeIn { from { opacity: 0; transform: translateY(-10px); } to { opacity: 1; transform: translateY(0); } } /* 响应式设计 */ @media (max-width: 640px) { .login-container { margin: 1rem; padding: 1.5rem; } .login-title { font-size: 1.3rem; } .login-subtitle { font-size: 1.1rem; } .oauth-login-button { padding: 0.75rem 1.25rem; font-size: 0.95rem; } } /* 暗色主题支持 */ @media (prefers-color-scheme: dark) { .login-container { background-color: #1f2937; color: #f9fafb; } .login-subtitle { color: #e5e7eb; } .login-description { color: #9ca3af; } .login-tips { color: #6b7280; } .login-footer { color: #6b7280; } }