/* auth.component.css */ :host { display: flex; justify-content: center; align-items: center; min-height: 100vh; background: linear-gradient(135deg, #1e293b 0%, #0f172a 100%); font-family: 'Inter', 'Alibaba PuHuiTi', sans-serif; color: white; } .auth-container { width: 100%; max-width: 420px; padding: 2.5rem; background: rgba(30, 41, 59, 0.8); border-radius: 1rem; box-shadow: 0 0 30px rgba(37, 99, 235, 0.3); border: 1px solid rgba(37, 99, 235, 0.2); backdrop-filter: blur(10px); position: relative; overflow: hidden; } .auth-container::before { content: ''; position: absolute; top: -50%; left: -50%; width: 200%; height: 200%; background: radial-gradient(circle, rgba(37, 99, 235, 0.1) 0%, transparent 70%); animation: rotate 20s linear infinite; z-index: -1; } @keyframes rotate { from { transform: rotate(0deg); } to { transform: rotate(360deg); } } .auth-header { text-align: center; margin-bottom: 2rem; } .auth-title { font-size: 1.8rem; font-weight: 600; margin-bottom: 0.5rem; background: linear-gradient(90deg, #2563EB, #7C3AED); -webkit-background-clip: text; background-clip: text; color: transparent; } .auth-subtitle { font-size: 0.9rem; color: #94a3b8; } .auth-form { display: flex; flex-direction: column; gap: 1.5rem; } .form-group { display: flex; flex-direction: column; gap: 0.5rem; } .form-label { font-size: 0.9rem; color: #e2e8f0; display: flex; align-items: center; gap: 0.5rem; } .form-label::before { content: '>'; color: #7C3AED; font-weight: bold; } .form-input { padding: 0.8rem 1rem; background: rgba(15, 23, 42, 0.5); border: 1px solid rgba(37, 99, 235, 0.3); border-radius: 0.5rem; color: white; font-family: inherit; font-size: 1rem; transition: all 0.3s ease; } .form-input:focus { outline: none; border-color: #2563EB; box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.2); } .submit-btn { padding: 0.8rem; background: linear-gradient(90deg, #2563EB, #7C3AED); color: white; border: none; border-radius: 0.5rem; font-size: 1rem; font-weight: 600; cursor: pointer; transition: all 0.3s ease; margin-top: 0.5rem; position: relative; overflow: hidden; } .submit-btn::after { content: ''; position: absolute; top: -50%; left: -50%; width: 200%; height: 200%; background: linear-gradient( to bottom right, rgba(255, 255, 255, 0.3) 0%, rgba(255, 255, 255, 0) 60% ); transform: rotate(30deg); transition: all 0.3s ease; } .submit-btn:hover { transform: translateY(-2px); box-shadow: 0 5px 15px rgba(37, 99, 235, 0.4); } .submit-btn:hover::after { left: 100%; } .submit-btn:active { transform: translateY(0); } .mode-toggle { text-align: center; margin-top: 1.5rem; font-size: 0.9rem; color: #94a3b8; } .toggle-link { color: #7C3AED; cursor: pointer; font-weight: 600; text-decoration: none; transition: color 0.3s ease; } .toggle-link:hover { color: #2563EB; text-decoration: underline; } .message { padding: 0.8rem; border-radius: 0.5rem; margin-bottom: 1rem; font-size: 0.9rem; text-align: center; } .error-message { background-color: rgba(245, 158, 11, 0.1); border: 1px solid rgba(245, 158, 11, 0.3); color: #F59E0B; } .success-message { background-color: rgba(16, 185, 129, 0.1); border: 1px solid rgba(16, 185, 129, 0.3); color: #10B981; } /* 科幻风格的装饰元素 */ .decorator { position: absolute; background: rgba(37, 99, 235, 0.1); border: 1px solid rgba(37, 99, 235, 0.3); } .decorator-1 { width: 100px; height: 100px; border-radius: 50%; top: -50px; right: -50px; } .decorator-2 { width: 60px; height: 60px; border-radius: 10px; bottom: -30px; left: -30px; transform: rotate(45deg); } /* 响应式设计 */ @media (max-width: 480px) { .auth-container { padding: 1.5rem; margin: 0 1rem; } }