.verify-code-img { width: 100px; height: 40px; background: #ccc; } .login-page { min-height: 100vh; background: var(--primary-gradient); display: flex; align-items: center; justify-content: center; padding: 15px; position: relative; overflow: hidden; } // 背景装饰 .bg-decoration { position: absolute; top: 0; left: 0; right: 0; bottom: 0; pointer-events: none; z-index: 0; } .bg-circle { position: absolute; border-radius: 50%; background: rgba(255, 255, 255, 0.1); animation: float 6s ease-in-out infinite; &:nth-child(1) { width: 200px; height: 200px; top: -100px; right: -100px; animation-delay: 0s; } &:nth-child(2) { width: 150px; height: 150px; bottom: -75px; left: -75px; animation-delay: 2s; } &:nth-child(3) { width: 100px; height: 100px; top: 50%; right: 10%; animation-delay: 4s; } } @keyframes float { 0%, 100% { transform: translateY(0px) rotate(0deg); } 50% { transform: translateY(-20px) rotate(180deg); } } .login-container { width: 100%; max-width: 420px; background: #ffffff; backdrop-filter: blur(20px); border-radius: 24px; padding: 24px 20px; box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1); position: relative; z-index: 1; border: 1px solid rgba(255, 255, 255, 0.2); } .login-header { text-align: center; margin-bottom: 24px; } .logo-section { display: flex; align-items: center; justify-content: center; gap: 12px; margin-bottom: 16px; } .logo-icon { width: 40px; height: 40px; background: var(--primary-gradient); border-radius: 10px; display: flex; align-items: center; justify-content: center; color: white; font-size: 20px; box-shadow: 0 6px 12px var(--primary-shadow); } .app-name { font-size: 24px; font-weight: 800; background: var(--primary-gradient); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; margin: 0; } .subtitle { font-size: 13px; color: #666; margin: 0; } // 标签页样式 .tab-container { display: flex; background: #f8f9fa; border-radius: 10px; padding: 3px; margin-bottom: 24px; position: relative; } .tab-item { flex: 1; text-align: center; padding: 10px 12px; font-size: 13px; font-weight: 500; color: #666; cursor: pointer; border-radius: 7px; transition: all 0.3s ease; position: relative; z-index: 2; &.active { color: var(--primary-color); font-weight: 600; background: white; box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1); } } .tab-indicator { display: none; // 隐藏分割线指示器 } // 表单样式 .login-form { :global(.adm-form) { --adm-font-size-main: 14px; } } .input-group { margin-bottom: 18px; } .input-label { display: block; font-size: 13px; font-weight: 600; color: #333; margin-bottom: 6px; } .input-wrapper { position: relative; display: flex; align-items: center; background: #f8f9fa; border: 2px solid transparent; border-radius: 10px; transition: all 0.3s ease; &:focus-within { border-color: var(--primary-color); background: white; box-shadow: 0 0 0 3px var(--primary-shadow-light); } } .input-prefix { padding: 0 12px; color: #666; font-size: 13px; font-weight: 500; border-right: 1px solid #e5e5e5; } .phone-input, .password-input, .code-input { flex: 1; border: none !important; background: transparent !important; padding: 12px 14px !important; font-size: 15px !important; color: #333 !important; &::placeholder { color: #999; } &:focus { box-shadow: none !important; } } .eye-icon { padding: 0 12px; color: #666; cursor: pointer; transition: color 0.3s ease; &:hover { color: var(--primary-color); } } .send-code-btn { padding: 6px 12px; margin-right: 6px; background: var(--primary-gradient); color: white; border: none; border-radius: 6px; font-size: 11px; font-weight: 500; cursor: pointer; transition: all 0.3s ease; &:hover:not(.disabled) { transform: translateY(-1px); box-shadow: 0 3px 8px var(--primary-shadow); } &.disabled { background: #e5e5e5; color: #999; cursor: not-allowed; transform: none; box-shadow: none; } } .agreement-section { margin-bottom: 24px; } .agreement-checkbox { display: flex; align-items: center; gap: 6px; font-size: 12px; color: #666; line-height: 1.3; white-space: nowrap; :global(.adm-checkbox) { margin-top: 0; flex-shrink: 0; transform: scale(0.8); } } .agreement-text { flex: 1; display: flex; align-items: center; flex-wrap: nowrap; white-space: nowrap; overflow: visible; text-overflow: clip; font-size: 13px; } .agreement-link { color: var(--primary-color); cursor: pointer; text-decoration: none; white-space: nowrap; font-size: 11px; &:hover { text-decoration: underline; } } .login-btn { height: 46px; font-size: 15px; font-weight: 600; border-radius: 10px; background: var(--primary-gradient); border: none; box-shadow: 0 6px 12px var(--primary-shadow); transition: all 0.3s ease; &:hover:not(:disabled) { transform: translateY(-1px); box-shadow: 0 8px 16px var(--primary-shadow-dark); } &:disabled { background: #e5e5e5; color: #999; transform: none; box-shadow: none; } } .divider { position: relative; text-align: center; margin: 24px 0; &::before { content: ""; position: absolute; top: 50%; left: 0; right: 0; height: 1px; background: #e5e5e5; } span { background: rgba(255, 255, 255, 0.95); padding: 0 12px; color: #999; font-size: 11px; font-weight: 500; } } .third-party-login { display: flex; justify-content: center; gap: 20px; } .third-party-item { display: flex; flex-direction: column; align-items: center; gap: 6px; cursor: pointer; padding: 12px; border-radius: 10px; transition: all 0.3s ease; &:hover { background: #f8f9fa; transform: translateY(-1px); } span { font-size: 11px; color: #666; font-weight: 500; } } .wechat-icon, .apple-icon { width: 36px; height: 36px; border-radius: 10px; display: flex; align-items: center; justify-content: center; color: white; font-size: 18px; transition: all 0.3s ease; } .wechat-icon { background: #07c160; box-shadow: 0 3px 8px rgba(7, 193, 96, 0.3); &:hover { box-shadow: 0 4px 12px rgba(7, 193, 96, 0.4); } svg { width: 20px; height: 20px; } } .apple-icon { background: #000; box-shadow: 0 3px 8px rgba(0, 0, 0, 0.3); &:hover { box-shadow: 0 4px 12px rgba(0, 0, 0, 0.4); } svg { width: 20px; height: 20px; } } // 响应式设计 @media (max-width: 480px) { .login-container { padding: 24px 20px; margin: 0 12px; } .app-name { font-size: 22px; } .third-party-login { gap: 16px; } .third-party-item { padding: 10px; } .wechat-icon, .apple-icon { width: 32px; height: 32px; } }