@keyframes fadeIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInRight{from{transform:translateX(100%);opacity:0}to{transform:translateX(0);opacity:1}}@keyframes slideInUp{from{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}.login-bg{background:linear-gradient(135deg,#c41a1a 0,#9b1c1c 100%);min-height:100vh;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}.login-bg::before{content:'';position:absolute;top:-50%;right:-30%;width:80%;height:200%;background:radial-gradient(ellipse,rgba(255,255,255,.08) 0,transparent 70%);transform:rotate(-15deg)}.login-container{width:100%;min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}.login-box{background:#fff;border-radius:12px;box-shadow:0 4px 20px 0 rgba(0,0,0,.15);padding:40px;width:100%;max-width:420px;position:relative}.login-title{text-align:center;font-size:24px;font-weight:700;color:#111827;margin-bottom:16px;letter-spacing:1px}.login-tip-box{display:flex;align-items:flex-start;gap:8px;padding:12px 16px;background:#fef2f2;border:1px solid rgba(196,26,26,.25);border-radius:4px;margin-bottom:24px;font-size:13px;color:#9b1c1c;line-height:1.5;letter-spacing:.3px}.login-tip-box i{flex-shrink:0;font-size:16px;margin-top:1px}.login-tip-box span{flex:1}.register-header{position:absolute;top:16px;left:20px}.register-header .back-to-login{color:#6b7280;font-size:13px;text-decoration:none;display:flex;align-items:center;gap:4px;transition:color .2s ease-out}.register-header .back-to-login i{font-size:14px}.register-header .back-to-login:hover{color:#c41a1a}.login-tabs{display:flex;border-bottom:1px solid #e5e7eb;margin-bottom:24px}.login-tabs .login-tab{flex:1;text-align:center;padding:12px 0;cursor:pointer;color:#6b7280;font-size:14px;transition:all .2s ease-out;border-bottom:2px solid transparent;margin-bottom:-1px}.login-tabs .login-tab:hover{color:#c41a1a}.login-tabs .login-tab.active{color:#c41a1a;border-bottom-color:#c41a1a;font-weight:500}.login-form-wrapper .layui-form-item{margin-bottom:20px}.login-form-wrapper .login-icon{position:absolute;left:16px;top:50%;transform:translateY(-50%);display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;color:#6b7280;z-index:1;pointer-events:none}.login-form-wrapper .login-icon .icon{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.5px}.login-form-wrapper .layui-input{padding-left:45px;height:44px;line-height:44px;border-radius:4px}.login-form-wrapper .verify-code-item{position:relative}.login-form-wrapper .verify-code-item .verify-input{padding-right:110px}.login-form-wrapper .verify-code-item .verify-btn{position:absolute;right:0;top:0;height:44px;line-height:44px;padding:0 16px;border-radius:0 4px 4px 0;font-size:13px}.login-form-wrapper .verify-code-item .verify-btn:hover:not(.layui-btn-disabled){background:#c41a1a;color:#fff}.login-form-wrapper .verify-code-item .verify-btn.layui-btn-disabled{background:#0369a1;cursor:not-allowed;opacity:.6}.login-form-wrapper .layui-btn-fluid{height:44px;font-size:16px;background:#c41a1a;letter-spacing:2px}.login-form-wrapper .layui-btn-fluid:hover{background:#9b1c1c}.login-form-wrapper .register-btn{background:#059669}.login-form-wrapper .register-btn:hover{background:#036546}.login-form-wrapper .agreement-item{margin-bottom:16px}.login-form-wrapper .agreement-item .layui-form-checkbox[lay-skin=primary] span{font-size:12px;color:#6b7280}.verify-methods-info{margin-bottom:12px;font-size:12px;color:#6b7280}.verify-methods-info .layui-icon-ok-circle{color:#c41a1a}.wechat-login-box{text-align:center;padding:20px 0}.wechat-login-box .qrcode-box{width:200px;height:200px;margin:0 auto 20px;background:#f3f4f6;border-radius:4px;display:flex;align-items:center;justify-content:center}.wechat-login-box .qrcode-box .qrcode-placeholder p{margin-top:12px;color:#6b7280;font-size:14px}.wechat-login-box .wechat-tips{color:#111827;font-size:14px;margin-bottom:8px}.login-tip{text-align:center;margin-top:24px;padding-top:20px;border-top:1px solid #e5e7eb;color:#6b7280;font-size:12px}.login-tip a{color:#c41a1a;text-decoration:none}.login-tip a:hover{text-decoration:underline}.login-tip .forgot-pwd-link{color:#c41a1a;transition:color .2s ease-out}.login-tip .forgot-pwd-link:hover{color:#9b1c1c}.login-tip .login-tip-divider{margin:0 8px;color:#ddd}.register-closed{text-align:center;padding:40px 16px}.register-closed__icon{font-size:64px;color:#9ca3af}.register-closed__title{margin-top:20px;font-size:20px;color:#111827;font-weight:600}.register-closed__message{margin-top:16px;color:#9ca3af;line-height:1.75;font-size:14px}.register-closed__action{margin-top:32px}@media (max-width:768px){.login-container{padding:16px}.login-box{padding:32px 20px;max-width:420px}.login-title{font-size:20px;margin-bottom:24px}.register-header{top:12px;left:16px}.register-header .back-to-login{font-size:12px}.login-tabs .login-tab{font-size:13px;padding:12px 0}.login-form-wrapper .layui-input{height:42px;line-height:42px;font-size:14px}.login-form-wrapper .layui-btn-fluid{height:42px;font-size:15px}}@media (max-width:375px){.login-container{padding:12px}.login-box{padding:24px 16px;border-radius:4px}.login-title{font-size:18px;margin-bottom:20px}.register-header{top:12px;left:12px}.register-header .back-to-login{font-size:10px}.register-header .back-to-login i{font-size:12px}.login-tabs{margin-bottom:20px}.login-tabs .login-tab{font-size:12px;padding:8px 0}.login-form-wrapper .login-icon{left:12px;font-size:16px}.login-form-wrapper .layui-input{padding-left:40px;height:40px;line-height:40px;font-size:13px}.login-form-wrapper .layui-btn-fluid{height:40px;font-size:14px}.login-form-wrapper .verify-btn{height:40px;line-height:40px;padding:0 12px;font-size:12px}.login-form-wrapper .verify-input{padding-right:100px}.login-form-wrapper .register-btn{height:40px;font-size:14px}.login-form-wrapper .agreement-item{margin-bottom:12px}.login-form-wrapper .agreement-item .layui-form-checkbox[lay-skin=primary] span{font-size:10px}.wechat-login-box .qrcode-box{width:180px;height:180px}.wechat-login-box .qrcode-box .qrcode-placeholder i{font-size:60px!important}.wechat-login-box .qrcode-box .qrcode-placeholder p{font-size:13px}.wechat-login-box .wechat-tips{font-size:13px}.login-tip{margin-top:20px;padding-top:16px;font-size:10px}.login-tip a{font-size:12px}}