.set-password-overlay{position:fixed;inset:0;z-index:10001;display:grid;place-items:center;padding:1rem;background:var(--dl-bg-overlay,rgba(0,0,0,.55));backdrop-filter:blur(.25rem)}html[data-theme=light] .set-password-overlay{--dl-bg-overlay:rgba(15,23,42,0.4)}.set-password-card{width:min(100%,24rem);padding:1.5rem;border-radius:8px;border:1px solid var(--dl-border,#2a2e36);background:var(--dl-bg-container,#16181d);box-shadow:0 24px 56px rgba(0,0,0,.45)}html[data-theme=light] .set-password-card{--dl-bg-container:#ffffff;--dl-border:#d8dce3;box-shadow:0 1px 2px rgba(15,23,42,.04),0 24px 48px -8px rgba(15,23,42,.22)}.set-password-title{margin:0 0 .5rem;font-size:1.125rem;font-weight:600;color:var(--dl-text-primary,#f5f6f8)}html[data-theme=light] .set-password-title{--dl-text-primary:#0f172a}.set-password-sub{margin:0 0 1rem;font-size:.8125rem;line-height:1.55;color:var(--dl-text-secondary,#9aa0a8)}html[data-theme=light] .set-password-sub{--dl-text-secondary:#475569}.set-password-field{display:grid;gap:.375rem;margin-bottom:.875rem}.set-password-field label{font-size:.75rem;font-weight:600;color:var(--dl-text-secondary,#9aa0a8)}.set-password-field input{height:2.5rem;padding:0 .875rem;border-radius:6px;border:1px solid var(--dl-border,#2a2e36);background:var(--dl-bg-input,#1a1d23);color:var(--dl-text-primary,#f5f6f8);font-size:.875rem}html[data-theme=light] .set-password-field input{--dl-bg-input:#ffffff;--dl-border:#d8dce3;--dl-text-primary:#0f172a}.set-password-error{margin:0 0 .75rem;padding:.55rem .75rem;border-radius:6px;background:rgba(239,68,68,.12);border:1px solid rgba(239,68,68,.35);color:#f87171;font-size:.8125rem}.set-password-submit{width:100%;height:2.625rem;border:1px solid var(--dl-accent,#06b6d4);border-radius:6px;background:var(--dl-accent,#06b6d4);color:#fff;font-size:.9375rem;font-weight:600;cursor:pointer}.set-password-submit:disabled{opacity:.6;cursor:not-allowed}html[data-theme=light] .set-password-submit{--dl-accent:#0891b2}.login-overlay{--dl-bg-overlay:rgba(0,0,0,.55);--dl-bg-container:#16181d;--dl-bg-elev-1:#1d2026;--dl-bg-elev-2:#21252c;--dl-bg-input:#1a1d23;--dl-border:#2a2e36;--dl-border-strong:#3a3f48;--dl-text-primary:#f5f6f8;--dl-text-secondary:#9aa0a8;--dl-text-muted:#6b7079;--dl-accent:#06b6d4;--dl-accent-hover:#22d3ee;--dl-accent-soft:rgba(6,182,212,.12);--dl-accent-ring:rgba(6,182,212,.2);--dl-danger:#ef4444;--dl-scroll-thumb:rgba(255,255,255,.1);--dl-scroll-thumb-hover:rgba(255,255,255,.2);--dl-brand-wechat:#07C160;--dl-brand-github-fg:#f5f6f8;--dl-brand-google:#4285F4}html[data-theme=light] .login-overlay{--dl-bg-overlay:rgba(15,23,42,.4);--dl-bg-container:#ffffff;--dl-bg-elev-1:#f6f7f9;--dl-bg-elev-2:#eef0f3;--dl-bg-input:#ffffff;--dl-border:#d8dce3;--dl-border-strong:#a8b0bd;--dl-text-primary:#0f172a;--dl-text-secondary:#475569;--dl-text-muted:#64748b;--dl-accent:#0891b2;--dl-accent-hover:#0e7490;--dl-accent-soft:rgba(8,145,178,.1);--dl-accent-ring:rgba(8,145,178,.18);--dl-danger:#dc2626;--dl-scroll-thumb:rgba(15,23,42,.14);--dl-scroll-thumb-hover:rgba(15,23,42,.28);--dl-brand-github-fg:#0f172a}.login-overlay{position:fixed;inset:0;background:var(--dl-bg-overlay);backdrop-filter:blur(.25rem);display:flex;align-items:center;justify-content:center;z-index:10000;padding:1.25rem}.login-overlay.fullscreen-mode{padding:0;background:var(--dl-bg-container);backdrop-filter:none}.login-container{position:relative;background:var(--dl-bg-container);border:1px solid var(--dl-border);border-radius:6px;box-shadow:0 24px 56px rgba(0,0,0,.45);max-width:26rem;width:100%;max-height:92vh;display:flex;flex-direction:column;overflow:hidden}html[data-theme=light] .login-container{box-shadow:0 1px 2px rgba(15,23,42,.04),0 24px 48px -8px rgba(15,23,42,.22),0 0 0 1px rgba(15,23,42,.04)}.login-container.fullscreen-container{max-width:100%;width:100%;height:100vh;max-height:100vh;border-radius:0;border:none;box-shadow:none}.login-close{position:absolute;top:.875rem;right:.875rem;width:2rem;height:2rem;border-radius:6px;border:1px solid transparent;background:transparent;color:var(--dl-text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s,border-color .15s,color .15s;z-index:10}.login-close:hover{background:var(--dl-bg-elev-1);border-color:var(--dl-border);color:var(--dl-text-primary)}.login-header{padding:1.75rem 1.75rem 1rem;text-align:center}.login-container.fullscreen-container .login-header{padding:2rem 1.5rem 1.25rem}.login-title{font-size:1.375rem;font-weight:600;color:var(--dl-text-primary);margin:0 0 .375rem;letter-spacing:-.015em;line-height:1.3}.login-subtitle{font-size:.8125rem;color:var(--dl-text-secondary);margin:0;line-height:1.5}.login-header .login-subtitle+.login-subtitle{margin-top:.25rem}.login-body{padding:0 1.75rem 1.5rem;flex:1 1 0%;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--dl-scroll-thumb) transparent}.login-container.fullscreen-container .login-body{padding:0 1.5rem 1.5rem}.login-body::-webkit-scrollbar{width:6px;height:6px}.login-body::-webkit-scrollbar-track{background:transparent}.login-body::-webkit-scrollbar-thumb{background:var(--dl-scroll-thumb);border-radius:3px}.login-body::-webkit-scrollbar-thumb:hover{background:var(--dl-scroll-thumb-hover)}.login-tabs{display:flex;gap:.25rem;border-bottom:1px solid var(--dl-border);margin-bottom:1.25rem}.login-tab{position:relative;flex:1 1 0%;padding:.625rem .5rem .75rem;border:none;background:transparent;color:var(--dl-text-muted);font-size:.8125rem;font-weight:500;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:.4375rem;transition:color .15s}.login-tab svg{width:16px;height:16px;opacity:.85}.login-tab:hover{color:var(--dl-text-primary)}.login-tab:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--dl-accent);border-radius:2px 2px 0 0;opacity:0;transform:scaleX(.6);transition:opacity .18s,transform .18s}.login-tab.active{color:var(--dl-accent);font-weight:600}.login-tab.active:after{opacity:1;transform:scaleX(1)}.login-form{margin-bottom:.5rem}.form-group{margin-bottom:.875rem}.form-label{display:block;font-size:.75rem;font-weight:600;color:var(--dl-text-secondary);margin-bottom:.4375rem;letter-spacing:.01em}.form-input{width:100%;height:2.5rem;padding:0 .875rem;background:var(--dl-bg-input);border:1px solid var(--dl-border);border-radius:6px;color:var(--dl-text-primary);font-size:.875rem;transition:border-color .15s,box-shadow .15s;outline:none;box-sizing:border-box}.form-input::placeholder{color:var(--dl-text-muted)}.form-input:focus{border-color:var(--dl-accent);box-shadow:0 0 0 3px var(--dl-accent-ring)}.code-wrapper .form-input{flex:1 1 0%;min-width:0}.code-btn{height:2.5rem;padding:0 .875rem;border-radius:6px;color:var(--dl-accent);font-size:.8125rem;font-weight:600;cursor:pointer;white-space:nowrap;flex-shrink:0;transition:background .15s,border-color .15s,color .15s}.code-btn:hover:not(:disabled){background:var(--dl-accent-soft);border-color:var(--dl-accent)}.code-btn:disabled{color:var(--dl-text-muted);cursor:not-allowed}.password-wrapper .form-input{flex:1 1 0%;padding-right:2.5rem}.password-login-tip{font-size:.6875rem;color:var(--dl-text-muted);text-align:center;margin-top:.5rem;line-height:1.5}.login-submit-btn{width:100%;height:2.625rem;padding:0 1rem;background:var(--dl-accent);border:1px solid var(--dl-accent);border-radius:6px;color:rgb(255,255,255);font-size:.9375rem;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:.5rem;transition:background .15s,border-color .15s,opacity .15s;letter-spacing:.02em}.login-submit-btn:hover:not(:disabled){background:var(--dl-accent-hover);border-color:var(--dl-accent-hover)}.login-submit-btn:active:not(:disabled){filter:brightness(.95)}.login-submit-btn:disabled{opacity:.5;cursor:not-allowed}.login-error-msg{margin:0 0 .75rem;padding:.55rem .75rem;border-radius:6px;background:rgba(239,68,68,.12);border:1px solid rgba(239,68,68,.35);color:#f87171;font-size:.8125rem;line-height:1.45}.login-agreement{text-align:center;margin-top:.875rem}.agreement-checkbox{display:inline-flex;align-items:center;gap:.4375rem;cursor:pointer;user-select:none}.agreement-text{font-size:.75rem;color:var(--dl-text-secondary);line-height:1.5}.agreement-link{color:var(--dl-accent);text-decoration:none;font-weight:500}.agreement-link:hover{text-decoration:underline}.divider{display:flex;align-items:center;margin:1.25rem 0 1rem}.divider:after,.divider:before{content:"";flex:1 1 0%;height:1px;background:var(--dl-border)}.divider-text{padding:0 .875rem;font-size:.6875rem;color:var(--dl-text-muted);letter-spacing:.04em}.social-login{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem}.social-login.is-single{grid-template-columns:1fr}.social-btn{height:2.375rem;padding:0 .75rem;background:var(--dl-bg-elev-1);border:1px solid var(--dl-border);border-radius:6px;color:var(--dl-text-primary);font-size:.8125rem;font-weight:500;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:.5rem;transition:background .15s,border-color .15s,color .15s}.social-btn:hover:not(:disabled){border-color:var(--dl-border-strong);background:var(--dl-bg-elev-2)}.social-btn:disabled,.social-btn[aria-disabled=true]{opacity:.72;cursor:not-allowed}.social-btn svg{width:1.125rem;height:1.125rem;flex-shrink:0}.social-btn.wechat svg{color:var(--dl-brand-wechat)}.social-btn.wechat:hover:not(:disabled){background:rgba(7,193,96,.1);border-color:var(--dl-brand-wechat)}.social-btn.github svg{color:var(--dl-brand-github-fg)}.social-btn.github:hover:not(:disabled){background:var(--dl-bg-elev-2);border-color:var(--dl-text-secondary)}.social-btn.google{color:var(--dl-text-primary)}.social-btn.google:hover:not(:disabled){background:rgba(66,133,244,.08);border-color:var(--dl-brand-google)}html[data-theme=light] .social-btn.github:hover:not(:disabled){background:rgba(15,23,42,.04);border-color:var(--dl-border-strong)}html[data-theme=light] .social-btn.google:hover:not(:disabled){background:rgba(66,133,244,.1);border-color:rgba(66,133,244,.45)}html[data-theme=light] .social-btn.wechat:hover:not(:disabled){background:rgba(7,193,96,.08);border-color:rgba(7,193,96,.45)}.login-modal-fade-enter-active,.login-modal-fade-leave-active{transition:opacity .18s}.login-modal-fade-enter-active .login-container,.login-modal-fade-leave-active .login-container{transition:transform .18s,opacity .18s}.login-modal-fade-enter-from,.login-modal-fade-leave-to{opacity:0}.login-modal-fade-enter-from .login-container,.login-modal-fade-leave-to .login-container{transform:translateY(.5rem);opacity:0}.login-modal-fade-enter-from .login-container.fullscreen-container,.login-modal-fade-leave-to .login-container.fullscreen-container{transform:translateY(100%)}@media (max-width:48rem){.login-container{max-width:calc(100% - 1.5rem);border-radius:6px;max-height:90vh}.login-header{padding:1.5rem 1.25rem 1rem}.login-title{font-size:1.25rem}.login-subtitle{font-size:.75rem}.login-body{padding:0 1.25rem 1.25rem}.social-login{grid-template-columns:1fr}.login-close{top:.625rem;right:.625rem}}@media (max-width:30rem){.login-container{max-width:calc(100% - 1rem);border-radius:6px}.login-header{padding:1.25rem 1rem .875rem}.login-body{padding:0 1rem 1rem}.login-tab{font-size:.75rem;gap:.3125rem}}.logo-wrapper{display:inline-flex;align-items:center;justify-content:center;height:auto;padding:0;border-radius:0;background:transparent;border:none;margin:0 auto 1rem;overflow:visible}.logo-image,.logo-wrapper{width:auto;max-width:11rem}.logo-image{height:2.5rem;border-radius:0;object-fit:contain;display:block}.input-wrapper{position:relative}.code-wrapper{display:flex;gap:.5rem;align-items:center}.password-wrapper{display:flex;position:relative}.password-toggle-btn{position:absolute;right:.5rem;top:50%;transform:translateY(-50%);background:transparent;border:none;color:var(--dl-text-muted);cursor:pointer;padding:.25rem;display:flex;align-items:center;justify-content:center;transition:color .15s;border-radius:6px}.password-toggle-btn:hover{color:var(--dl-text-primary)}.tuxing-yzm-group{margin-top:.5rem;margin-bottom:1.125rem}.tuxing-yzm-img{flex-shrink:0;width:7rem;height:2.5rem;border-radius:6px;border:1px solid rgba(148,163,184,.45);background:rgb(248,250,252);cursor:pointer;display:flex;align-items:center;justify-content:center;overflow:hidden;transition:border-color .15s,box-shadow .15s;user-select:none}.tuxing-yzm-img:hover{border-color:var(--dl-accent)}.tuxing-yzm-img img{width:100%;height:100%;object-fit:cover;pointer-events:none}.checkbox-input{position:absolute;opacity:0;pointer-events:none;width:0;height:0}.checkbox-custom{width:.875rem;height:.875rem;border:1.5px solid var(--dl-border-strong);border-radius:3px;background:var(--dl-bg-input);position:relative;flex-shrink:0;transition:background .15s,border-color .15s}.checkbox-input:checked+.checkbox-custom{background:var(--dl-accent);border-color:var(--dl-accent)}.checkbox-input:checked+.checkbox-custom:after{content:"";position:absolute;left:50%;top:50%;width:.25rem;height:.4375rem;border-color:#fff;border-style:solid;border-width:0 1.5px 1.5px 0;transform:translate(-50%,-60%) rotate(45deg)}.zhaohui-zhanghao-entry{margin-top:.875rem;text-align:center}.zhaohui-link{background:transparent;border:none;color:var(--dl-text-secondary);font-size:.75rem;cursor:pointer;padding:.25rem .5rem;border-radius:6px;transition:color .15s,background .15s}.zhaohui-link:hover{color:var(--dl-accent);background:var(--dl-accent-soft)}.login-password-hint{margin:.35rem 0 0;font-size:.75rem;color:var(--dl-text-secondary);line-height:1.4}.login-success-msg{text-align:center;color:var(--dl-text-secondary);margin:1rem 0 1.5rem}.forgot-password-panel{max-width:420px}.code-btn{border:1px solid transparent;background:transparent}@keyframes shake-login{10%,90%{transform:translateX(-1px)}20%,80%{transform:translateX(2px)}30%,50%,70%{transform:translateX(-4px)}40%,60%{transform:translateX(4px)}}.agreement-checkbox.shake{animation:shake-login .5s cubic-bezier(.36,.07,.19,.97) both}.wechat-qr-overlay{z-index:10001}.wechat-qr-container{max-width:22rem}.wechat-qr-body{display:flex;flex-direction:column;align-items:center;gap:.875rem;padding-bottom:1.75rem}.wechat-qr-frame{padding:.75rem;background:#fff;border-radius:8px;border:1px solid var(--dl-border)}.wechat-qr-image{display:block;width:12.5rem;height:12.5rem;object-fit:contain}.wechat-qr-hint,.wechat-qr-status{font-size:.8125rem;color:var(--dl-text-secondary);text-align:center;margin:0}.wechat-qr-refresh{max-width:14rem}