.simple-login-modal[data-v-a8fbc4bc]{position:fixed;top:0;left:0;width:100%;height:100%;z-index:1000;display:flex;align-items:center;justify-content:center}.modal-overlay[data-v-a8fbc4bc]{position:absolute;top:0;left:0;width:100%;height:100%;background:#00000080}.modal-content[data-v-a8fbc4bc]{position:relative;background:#fff;border-radius:12px;padding:0;max-width:400px;width:90%;max-height:90vh;overflow:hidden;box-shadow:0 20px 40px #0000004d}.modal-header[data-v-a8fbc4bc]{padding:20px 24px;border-bottom:1px solid #e5e7eb;display:flex;justify-content:center;align-items:center;position:relative}.modal-header h3[data-v-a8fbc4bc]{margin:0;font-size:18px;font-weight:600;color:#3b82f6;text-align:center}.close-btn[data-v-a8fbc4bc]{background:none;border:none;font-size:24px;cursor:pointer;color:#6b7280;padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;position:absolute;right:24px;top:50%;transform:translateY(-50%)}.close-btn[data-v-a8fbc4bc]:hover{color:#374151}.modal-body[data-v-a8fbc4bc]{padding:24px}.form-group[data-v-a8fbc4bc]{margin-bottom:16px}.form-group label[data-v-a8fbc4bc]{display:block;margin-bottom:6px;font-size:14px;font-weight:500;color:#374151}.form-input[data-v-a8fbc4bc]{width:100%;padding:10px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:14px;transition:border-color .2s;box-sizing:border-box}.form-input[data-v-a8fbc4bc]:focus{outline:none;border-color:#3b82f6}.error-message[data-v-a8fbc4bc]{color:#ef4444;font-size:13px;margin-bottom:12px;padding:8px 12px;background:#fef2f2;border-radius:6px;border:1px solid #fecaca}.btn-login[data-v-a8fbc4bc]{width:100%;padding:12px;background:linear-gradient(135deg,#3b82f6,#1d4ed8);color:#fff;border:none;border-radius:6px;font-size:15px;font-weight:500;cursor:pointer;transition:all .3s}.btn-login[data-v-a8fbc4bc]:hover:not(:disabled){background:linear-gradient(135deg,#1d4ed8,#1e40af);transform:translateY(-1px);box-shadow:0 4px 12px #3b82f64d}.btn-login[data-v-a8fbc4bc]:disabled{opacity:.6;cursor:not-allowed}.hint-text[data-v-a8fbc4bc]{margin-top:12px;text-align:center;font-size:12px;color:#9ca3af}.divider[data-v-a8fbc4bc]{margin:20px 0;text-align:center;position:relative;color:#9ca3af;font-size:14px}.divider[data-v-a8fbc4bc]:before,.divider[data-v-a8fbc4bc]:after{content:"";position:absolute;top:50%;width:40%;height:1px;background:#e5e7eb}.divider[data-v-a8fbc4bc]:before{left:0}.divider[data-v-a8fbc4bc]:after{right:0}.btn-wechat[data-v-a8fbc4bc]{width:100%;padding:12px;background:#fff;color:#10b981;border:1px solid #10b981;border-radius:6px;font-size:15px;font-weight:500;cursor:pointer;transition:all .3s}.btn-wechat[data-v-a8fbc4bc]:hover{background:#f0fdf4;border-color:#059669;color:#059669}.wechat-login-modal[data-v-b61ee9ff]{position:fixed;top:0;left:0;width:100%;height:100%;z-index:1000;display:flex;align-items:center;justify-content:center}.modal-overlay[data-v-b61ee9ff]{position:absolute;top:0;left:0;width:100%;height:100%;background:#00000080}.modal-content[data-v-b61ee9ff]{position:relative;background:#fff;border-radius:16px;width:380px;max-width:90vw;max-height:90vh;min-height:420px;overflow:hidden;z-index:1001;box-shadow:0 20px 40px #0000004d;display:flex;flex-direction:column}.close-btn[data-v-b61ee9ff]{background:none;border:none;font-size:22px;cursor:pointer;color:#6b7280;padding:4px;line-height:1;position:absolute;top:12px;right:12px;z-index:2}.modal-body[data-v-b61ee9ff]{padding:28px 22px;display:flex;flex-direction:column;justify-content:center;align-items:center;flex:1;min-height:280px}.qr-validity[data-v-b61ee9ff]{margin:12px 0 0;font-family:"Alibaba PuHuiTi 2.0",Source Han Sans SC,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,Arial,sans-serif;font-weight:500;font-size:10px;color:#999}.qr-validity--inside[data-v-b61ee9ff]{margin-top:10px;font-size:12px;color:#9ca3af;text-align:center}.qr-validity--error[data-v-b61ee9ff]{color:#ef4444}.qr-title[data-v-b61ee9ff]{width:100%;font-family:"Alibaba PuHuiTi 2.0",Source Han Sans SC,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,Arial,sans-serif;font-weight:500;font-size:15px;line-height:1.45;color:#409eff;text-align:left;margin-bottom:14px}.real-qr-container[data-v-b61ee9ff]{position:relative;display:flex;flex-direction:column;justify-content:flex-start;align-items:center;width:230px;min-height:248px;margin:0 auto;border-radius:10px;box-shadow:0 6px 18px #00000014;background:#fff;padding:12px 10px 14px;box-sizing:border-box}.qr-box[data-v-b61ee9ff]{position:relative;width:210px;height:210px;flex:0 0 auto;overflow:hidden;border-radius:10px}.qr-placeholder[data-v-b61ee9ff]{width:210px;height:210px;border-radius:10px;background:#f3f4f6;box-shadow:inset 0 0 0 14px #fff}.qr-image--blur[data-v-b61ee9ff]{filter:blur(6px) contrast(.85) brightness(1.08);opacity:.38}.qr-overlay[data-v-b61ee9ff]{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;cursor:pointer;background:#ffffff75}.qr-overlay__icon[data-v-b61ee9ff]{font-size:26px;color:#409eff;filter:drop-shadow(0 8px 16px rgba(0,0,0,.18))}.qr-loading[data-v-b61ee9ff]{width:210px;height:210px;display:flex;align-items:center;justify-content:center}.qr-image[data-v-b61ee9ff]{width:210px;height:210px;border-radius:10px;object-fit:contain}.status-container[data-v-b61ee9ff]{position:relative;min-height:280px;display:flex;flex-direction:column;justify-content:center;align-items:center;transition:all .4s ease-in-out}.qr-code-container[data-v-b61ee9ff]{display:flex;flex-direction:column;align-items:center;justify-content:center}.error-state[data-v-b61ee9ff]{min-height:280px;animation:errorShake-b61ee9ff .6s ease-in}.error-state .status-background[data-v-b61ee9ff]{opacity:1}.status-bg-image[data-v-b61ee9ff]{max-width:100%;max-height:100%;object-fit:contain}.error-state .status-bg-image[data-v-b61ee9ff]{width:150%;height:150%;object-fit:cover;transform:scale(1.2)}.qr-help[data-v-b61ee9ff]{margin:8px 0 0;font-size:12px;color:#9ca3af}.invite-tip[data-v-b61ee9ff]{margin:4px 0;font-size:13px;color:#059669;background:linear-gradient(135deg,#d1fae5,#a7f3d0);padding:8px 12px;border-radius:6px;border:1px solid #10b981;font-weight:500}.btn-switch-simple[data-v-b61ee9ff]{margin-top:12px;width:230px;height:44px;padding:0 16px;border:1px solid #409EFF;background:#fff;color:#409eff;border-radius:10px;font-size:16px;font-weight:600;line-height:44px;text-align:center;cursor:pointer}.btn-switch-simple[data-v-b61ee9ff]:hover{background:#409eff0f}.loading-container[data-v-b61ee9ff]{display:flex;flex-direction:column;align-items:center;padding:40px 0}.loading-spinner[data-v-b61ee9ff]{width:40px;height:40px;border:4px solid #f3f4f6;border-top:4px solid #3b82f6;border-radius:50%;animation:spin-b61ee9ff 1s linear infinite;margin-bottom:16px}.login-status[data-v-b61ee9ff]{margin-top:16px}.status-message[data-v-b61ee9ff]{padding:12px 16px;border-radius:6px;font-size:14px}.status-message.success[data-v-b61ee9ff]{background:#f0fdf4;color:#166534;border:1px solid #bbf7d0}.status-message.error[data-v-b61ee9ff]{background:#fef2f2;color:#dc2626;border:1px solid #fecaca}.status-message.info[data-v-b61ee9ff]{background:#eff6ff;color:#1d4ed8;border:1px solid #bfdbfe}.error-state .status-message[data-v-b61ee9ff]{position:absolute;bottom:20px;left:50%;transform:translate(-50%);z-index:2;text-align:center;background:transparent;border:none;border-radius:0;padding:0;-webkit-backdrop-filter:none;backdrop-filter:none;margin-top:0}.error-state .status-message h4[data-v-b61ee9ff]{margin:0 0 4px;color:#6b7280;font-size:16px;font-weight:600;text-shadow:0 1px 3px rgba(255,255,255,.8)}.error-state .status-message p[data-v-b61ee9ff]{margin:0;color:#9ca3af;font-size:12px;font-weight:500;text-shadow:0 1px 3px rgba(255,255,255,.8)}.loading-state[data-v-b61ee9ff]{animation:fadeIn-b61ee9ff .3s ease-in}.modal-footer[data-v-b61ee9ff]{padding:14px 24px 16px;display:flex;flex-direction:column;align-items:center;gap:6px}.btn[data-v-b61ee9ff]{padding:10px 24px;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;border:none;transition:all .3s ease;display:flex;align-items:center;gap:8px}.refresh-btn[data-v-b61ee9ff]{background:linear-gradient(135deg,#3b82f6,#1d4ed8);color:#fff;box-shadow:0 4px 12px #3b82f64d}.refresh-btn[data-v-b61ee9ff]:hover{background:linear-gradient(135deg,#1d4ed8,#1e40af);transform:translateY(-1px);box-shadow:0 6px 16px #3b82f666}.refresh-btn.error-refresh[data-v-b61ee9ff]{background:linear-gradient(135deg,#3b82f6,#1d4ed8);box-shadow:0 4px 12px #3b82f64d}.refresh-btn.error-refresh[data-v-b61ee9ff]:hover{background:linear-gradient(135deg,#1d4ed8,#1e40af);box-shadow:0 6px 16px #3b82f666}.refresh-icon[data-v-b61ee9ff]{font-size:16px;animation:spin-b61ee9ff 2s linear infinite paused}.refresh-btn:hover .refresh-icon[data-v-b61ee9ff]{animation-play-state:running}.btn[data-v-b61ee9ff]:disabled{opacity:.5;cursor:not-allowed;transform:none}.divider[data-v-b61ee9ff]{margin:4px 0;text-align:center;position:relative;color:#9ca3af;font-size:13px;width:100%}.divider[data-v-b61ee9ff]:before,.divider[data-v-b61ee9ff]:after{content:"";position:absolute;top:50%;width:40%;height:1px;background:#e5e7eb}.divider[data-v-b61ee9ff]:before{left:0}.divider[data-v-b61ee9ff]:after{right:0}.btn-simple[data-v-b61ee9ff]{width:100%;background:#fff;color:#3b82f6;border:1px solid #3b82f6;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .3s;text-align:center;display:flex;align-items:center;justify-content:center;padding:10px 24px}.btn-simple[data-v-b61ee9ff]:hover{background:#f8fafc;border-color:#1d4ed8;color:#1d4ed8}@keyframes fadeIn-b61ee9ff{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes successPulse-b61ee9ff{0%{opacity:0;transform:scale(.95)}50%{transform:scale(1.02)}to{opacity:1;transform:scale(1)}}@keyframes errorShake-b61ee9ff{0%{opacity:0;transform:translate(0)}25%{transform:translate(-4px)}50%{transform:translate(4px)}75%{transform:translate(-2px)}to{opacity:1;transform:translate(0)}}@keyframes spin-b61ee9ff{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.brand-rounded[data-v-b61ee9ff]{border:10px solid #ebf3ff;border-radius:16px;background:#fff}.center-logo[data-v-b61ee9ff]{position:absolute;width:48px;height:48px;left:50%;top:50%;transform:translate(-50%,-50%);border-radius:50%;background:#fff;padding:6px;box-shadow:0 0 0 1px #0000000f}.wechat-oauth-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#11182773;z-index:9999;display:flex;align-items:center;justify-content:center}.wechat-oauth-overlay__content{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:20px 18px;border-radius:12px;background:#ffffffeb;box-shadow:0 10px 30px #0000002e;min-width:220px}.wechat-oauth-overlay__spinner{width:34px;height:34px;border:4px solid #eef2f7;border-top:4px solid #3b82f6;border-radius:50%;animation:wechatOauthSpin 1s linear infinite;margin-bottom:10px}.wechat-oauth-overlay__text{font-size:14px;color:#111827}@keyframes wechatOauthSpin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}html,body{width:100%;height:100%}input::-ms-clear,input::-ms-reveal{display:none}*,*:before,*:after{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:rgba(0,0,0,0)}@-ms-viewport{width:device-width}body{margin:0}[tabindex="-1"]:focus{outline:none}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5em;font-weight:500}p{margin-top:0;margin-bottom:1em}abbr[title],abbr[data-original-title]{-webkit-text-decoration:underline dotted;text-decoration:underline;text-decoration:underline dotted;border-bottom:0;cursor:help}address{margin-bottom:1em;font-style:normal;line-height:inherit}input[type=text],input[type=password],input[type=number],textarea{-webkit-appearance:none}ol,ul,dl{margin-top:0;margin-bottom:1em}ol ol,ul ul,ol ul,ul ol{margin-bottom:0}dt{font-weight:500}dd{margin-bottom:.5em;margin-left:0}blockquote{margin:0 0 1em}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}pre,code,kbd,samp{font-size:1em;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace}pre{margin-top:0;margin-bottom:1em;overflow:auto}figure{margin:0 0 1em}img{vertical-align:middle;border-style:none}a,area,button,[role=button],input:not([type=range]),label,select,summary,textarea{touch-action:manipulation}table{border-collapse:collapse}caption{padding-top:.75em;padding-bottom:.3em;text-align:left;caption-side:bottom}input,button,select,optgroup,textarea{margin:0;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}button,html [type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{padding:0;border-style:none}input[type=radio],input[type=checkbox]{box-sizing:border-box;padding:0}input[type=date],input[type=time],input[type=datetime-local],input[type=month]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;margin:0;padding:0;border:0}legend{display:block;width:100%;max-width:100%;margin-bottom:.5em;padding:0;color:inherit;font-size:1.5em;line-height:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item}template{display:none}[hidden]{display:none!important}mark{padding:.2em;background-color:#feffe6}@font-face{font-family:Source Han Sans SC;src:url(/fonts/source-han-sans-sc/SourceHanSansSC-Medium.otf) format("opentype");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Source Han Sans SC Regular;src:url(/fonts/source-han-sans-sc/SourceHanSansSC-Regular.otf) format("opentype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Source Han Sans SC;src:url(/fonts/source-han-sans-sc/SourceHanSansSC-Regular.otf) format("opentype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Source Han Sans SC;src:url(/fonts/source-han-sans-sc/SourceHanSansSC-Bold.otf) format("opentype");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Source Han Sans SC;src:url(/fonts/source-han-sans-sc/SourceHanSansSC-Heavy.otf) format("opentype");font-weight:900;font-style:normal;font-display:swap}@font-face{font-family:"Alibaba PuHuiTi 2.0";src:url(/fonts/alibaba-puhuiti/AlibabaPuHuiTi-Bold.ttf) format("truetype");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:"Alibaba PuHuiTi 2.0";src:url(/fonts/alibaba-puhuiti/AlibabaPuHuiTi-Regular.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Noto Sans SC;src:url(/fonts/noto-sans-sc/NotoSansSC-ExtraBold.ttf) format("truetype");font-weight:800;font-style:normal;font-display:swap}@font-face{font-family:Noto Sans SC;src:url(/fonts/noto-sans-sc/NotoSansSC-Bold.ttf) format("truetype");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Noto Sans SC;src:url(/fonts/noto-sans-sc/NotoSansSC-SemiBold.ttf) format("truetype");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:Noto Sans SC;src:url(/fonts/noto-sans-sc/NotoSansSC-Regular.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Noto Sans SC;src:url(/fonts/noto-sans-sc/NotoSansSC-Light.ttf) format("truetype");font-weight:300;font-style:normal;font-display:swap}@font-face{font-family:Roboto;src:url(/fonts/roboto/Roboto-Regular.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Roboto-Regular;src:url(/fonts/roboto/Roboto-Regular.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Roboto;src:url(/fonts/roboto/Roboto-Bold.ttf) format("truetype");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Roboto-Bold;src:url(/fonts/roboto/Roboto-Bold.ttf) format("truetype");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Roboto-SemiBold;src:url(/fonts/roboto/Roboto-Bold.ttf) format("truetype");font-weight:600;font-style:normal;font-display:swap}
