/* ============================================ 登录页面 — 参考 AkileCloud 极简暗色风格 与 regist.css 统一配色 ============================================ */ [v-cloak] { display: none !important; } * { margin: 0; padding: 0; box-sizing: border-box; } #login { min-height: 100vh; width: 100%; display: flex; justify-content: center; align-items: center; background: #0d1117; background-image: radial-gradient(ellipse 50% 50% at 0% 0%, rgba(22, 93, 255, 0.12) 0%, transparent 70%), radial-gradient(ellipse 50% 50% at 100% 0%, rgba(22, 93, 255, 0.08) 0%, transparent 70%), radial-gradient(ellipse 50% 50% at 100% 100%, rgba(99, 102, 241, 0.08) 0%, transparent 70%), radial-gradient(ellipse 50% 50% at 0% 100%, rgba(99, 102, 241, 0.06) 0%, transparent 70%); } /* ---- 容器 ---- */ .login-container { width: 100%; max-width: 420px; display: flex; justify-content: center; align-items: center; position: relative; padding: 40px 20px; } /* 隐藏左侧装饰 */ .container-back { display: none; } /* 顶部按钮区 */ .login-jump-btn { position: fixed; top: 24px; right: 24px; z-index: 20; display: flex; align-items: center; gap: 12px; } .login-jump-btn .btn { background: rgba(22, 93, 255, 0.1); border: 1px solid rgba(22, 93, 255, 0.25); color: #165DFF; border-radius: 6px; font-size: 13px; } .login-jump-btn .btn a { color: inherit; text-decoration: none; } /* 语言切换 */ .login-jump-btn .lang-box { display: flex; gap: 8px; } .login-jump-btn .lang-box span { color: rgba(139, 148, 158, 0.6); cursor: pointer; font-size: 13px; padding: 4px 8px; border-radius: 4px; transition: all 0.2s; } .login-jump-btn .lang-box span:hover { color: rgba(255, 255, 255, 0.8); } .login-jump-btn .lang-box span.active { color: #FFFFFF; background: rgba(22, 93, 255, 0.15); } /* ---- 表单区域 — 无卡片 ---- */ .container-before { width: 100%; background: transparent; box-shadow: none; border: none; position: static; overflow: visible; } .login { padding: 0; font-size: 14px; font-family: -apple-system, BlinkMacSystemFont, 'Inter', 'Segoe UI', Roboto, sans-serif; line-height: 1.5; position: relative; } /* 二维码切换按钮 */ .login .qr-code { position: absolute; right: 0; top: 0; cursor: pointer; width: 36px; height: 36px; display: flex; align-items: center; justify-content: center; border-radius: 8px; transition: background 0.2s; } .login .qr-code:hover { background: rgba(255, 255, 255, 0.05); } .login .qr-code svg, .login .qr-code .login-icon { width: 28px; height: 28px; } /* 二维码区域 */ .login .qr-box { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 20px 0; } .login .qr-box .qr-box-img { width: 200px; height: 200px; position: relative; border-radius: 12px; overflow: hidden; background: #1c2028; } .login .qr-box .qr-box-img img { cursor: pointer; width: 100%; height: 100%; } .login .qr-box .qr-box-img .qr-expire-time { position: absolute; inset: 0; z-index: 2; display: flex; align-items: center; justify-content: center; flex-direction: column; gap: 8px; background: rgba(0, 0, 0, 0.7); color: #FFFFFF; font-size: 14px; cursor: pointer; } .login .qr-box .qr-box-img .qr-expire-time .el-icon-refresh-right { font-size: 30px; } .login .qr-box .qr-box-tips { margin-top: 14px; font-size: 13px; color: rgba(139, 148, 158, 0.6); } /* 微信选择账户 */ .login .qr-box-select-account { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 16px; width: 100%; padding: 20px; border-radius: 12px; border: 1px solid rgba(255, 255, 255, 0.06); background: rgba(28, 32, 40, 0.5); } .login .qr-box-select-account .qr-box-back { width: 100%; display: flex; align-items: center; gap: 5px; font-size: 14px; color: #165DFF; cursor: pointer; } .login .qr-box-select-account .qr-box-select-account-title { font-size: 14px; color: rgba(139, 148, 158, 0.7); } /* ---- 标题 ---- */ .login-text { display: flex; flex-direction: column; align-items: center; text-align: center; margin-bottom: 32px; } .login-text-title { font-size: 28px; color: #FFFFFF; line-height: 1.2; font-weight: 700; letter-spacing: 1px; } .login-text-regist { margin-top: 10px; color: rgba(139, 148, 158, 0.8); font-size: 14px; } .login-text-regist a { color: #165DFF; cursor: pointer; text-decoration: none; transition: color 0.2s; } .login-text-regist a:hover { color: #4080FF; } /* ---- Tab 切换 ---- */ .login-form { margin-top: 0; } .login-top { display: flex; gap: 0; margin-bottom: 20px; background: rgba(255, 255, 255, 0.04); border-radius: 8px; padding: 4px; } .login-email, .login-phone { flex: 1; padding: 10px 0; color: rgba(139, 148, 158, 0.7); cursor: pointer; font-size: 14px; text-align: center; transition: all 0.25s ease; border: none; border-radius: 6px; border-bottom: none; margin-bottom: 0; } .login-email:hover, .login-phone:hover { color: rgba(255, 255, 255, 0.8); } .active { color: #FFFFFF !important; background: rgba(22, 93, 255, 0.15) !important; border-bottom: none !important; } /* ---- 输入框 ---- */ .form-main { margin-top: 0; } .form-item { margin-top: 14px; } .form-item:first-child { margin-top: 0; } .form-main .el-input__inner, .form-main .el-textarea__inner, .form-main .el-select .el-input__inner { background: #1c2028 !important; border: 1px solid transparent !important; color: #E6E8EB !important; border-radius: 8px !important; height: 46px !important; line-height: 46px !important; font-size: 14px !important; transition: all 0.2s ease; } .form-main .el-input__inner:hover { border-color: rgba(22, 93, 255, 0.2) !important; } .form-main .el-input__inner:focus, .form-main .el-textarea__inner:focus { border-color: #165DFF !important; box-shadow: 0 0 0 2px rgba(22, 93, 255, 0.12) !important; } .form-main .el-input__inner::placeholder { color: rgba(139, 148, 158, 0.5) !important; } .input-with-select .el-input-group__prepend { background: #1c2028 !important; border: 1px solid transparent !important; border-right: 1px solid rgba(255,255,255,0.06) !important; border-radius: 8px 0 0 8px !important; color: #E6E8EB !important; } /* 验证码 */ .code-item { display: flex; gap: 10px; } .code-btn { background: #1c2028 !important; border: none !important; color: #165DFF !important; border-radius: 8px !important; white-space: nowrap; padding: 0 16px !important; font-size: 13px; font-weight: 500; } .code-btn:hover { background: rgba(22, 93, 255, 0.12) !important; } /* ---- 记住密码 / 忘记密码 ---- */ .rember-item { margin-top: 14px; display: flex; align-items: center; justify-content: space-between; line-height: 1.5; } .rember-item a { color: #165DFF; cursor: pointer; text-decoration: none; font-size: 13px; } .rember-item a:hover { color: #4080FF; } .rember-item .el-checkbox__inner { background: #1c2028 !important; border-color: rgba(255, 255, 255, 0.1) !important; } .rember-item .el-checkbox__input.is-checked .el-checkbox__inner { background: #165DFF !important; border-color: #165DFF !important; } .read-text { flex: 1; font-size: 13px; line-height: 1.6; padding: 0 6px; color: rgba(139, 148, 158, 0.55); font-weight: 400; } .read-text a { color: #165DFF; cursor: pointer; text-decoration: none; } /* 错误提示 */ .read-item { margin-top: 12px; } .read-item .el-alert--error { background: rgba(239, 68, 68, 0.08) !important; border: 1px solid rgba(239, 68, 68, 0.15); border-radius: 8px; } .read-item .el-alert--error .el-alert__title { color: #F87171 !important; font-size: 13px; } /* ---- 登录按钮 ---- */ .login-btn { width: 100%; height: 46px; background: #165DFF !important; border: none !important; border-radius: 8px !important; font-size: 15px !important; font-weight: 600; color: #FFFFFF !important; letter-spacing: 1px; transition: all 0.2s ease; } .login-btn:hover { background: #4080FF !important; } .login-btn:active { background: #0E42D2 !important; } /* 切换登录方式按钮 */ .pass-btn { width: 100%; height: 42px; margin-left: 0 !important; margin-top: 10px; background: transparent !important; border: 1px solid rgba(255, 255, 255, 0.08) !important; border-radius: 8px !important; color: rgba(139, 148, 158, 0.8) !important; font-size: 14px !important; transition: all 0.2s; } .pass-btn:hover { color: #FFFFFF !important; border-color: rgba(22, 93, 255, 0.3) !important; } /* ---- 第三方登录 ---- */ .line-item { margin-top: 24px; } .line-item .el-divider__text { background: #0d1117 !important; color: rgba(139, 148, 158, 0.4) !important; font-size: 13px; } .line-item .el-divider { border-color: rgba(255, 255, 255, 0.06) !important; } .login-type { display: flex; align-items: center; justify-content: center; gap: 16px; flex-wrap: wrap; } .oauth-item { display: flex; align-items: center; justify-content: center; padding: 10px; cursor: pointer; border-radius: 10px; background: #1c2028; transition: all 0.2s; } .oauth-item:hover { background: rgba(22, 93, 255, 0.1); transform: translateY(-1px); } .oauth-img { width: 32px; height: 32px; } /* 语言选项 */ .lang-option { display: flex; align-items: center; gap: 5px; } .lang-option .lang-img { width: 24px; height: 16px; } /* Element UI 下拉暗色 */ .el-select-dropdown { background: #1c2028 !important; border: 1px solid rgba(255,255,255,0.06) !important; } .el-select-dropdown__item { color: #E6E8EB !important; } .el-select-dropdown__item.hover, .el-select-dropdown__item:hover { background: rgba(22, 93, 255, 0.1) !important; } /* 安全验证对话框暗色 */ .el-dialog { background: #1c2028 !important; border: 1px solid rgba(255, 255, 255, 0.06); border-radius: 12px; } .el-dialog__title { color: #E6E8EB !important; } .el-dialog__headerbtn .el-dialog__close { color: rgba(139, 148, 158, 0.6) !important; } /* ---- 返回首页按钮(公共) ---- */ .back-home-link { position: fixed; top: 24px; left: 24px; z-index: 20; display: flex; align-items: center; gap: 6px; color: rgba(139, 148, 158, 0.6); text-decoration: none; font-size: 13px; padding: 6px 12px; border-radius: 6px; transition: all 0.2s; } .back-home-link:hover { color: #FFFFFF; background: rgba(255, 255, 255, 0.05); } .back-home-link svg { width: 16px; height: 16px; } /* ---- 移动端 ---- */ @media screen and (max-width: 750px) { #login { background-image: radial-gradient(ellipse 80% 40% at 50% 0%, rgba(22, 93, 255, 0.12) 0%, transparent 70%), radial-gradient(ellipse 80% 40% at 50% 100%, rgba(99, 102, 241, 0.08) 0%, transparent 70%); } .login-container { padding: 80px 24px 40px; max-width: 100%; align-items: flex-start; } .login-text-title { font-size: 22px; } .login-text-regist { font-size: 13px; } .login-text { margin-bottom: 24px; } .form-main .el-input__inner { height: 44px !important; line-height: 44px !important; } .login-btn { height: 44px; } .login-jump-btn { top: 16px; right: 16px; } .back-home-link { top: 16px; left: 16px; } .login .qr-code { width: 32px; height: 32px; } .login .qr-code svg, .login .qr-code .login-icon { width: 24px; height: 24px; } .read-text { font-size: 12px; } .oauth-item { padding: 8px; } .oauth-img { width: 28px; height: 28px; } }