/* Authentication only. Brand assets continue to come from platform settings. */
body.is-auth{--auth-purple:#6845ed;color:#242133;background:radial-gradient(ellipse at 8% 0%,#e2d7ff 0%,transparent 40%),radial-gradient(ellipse at 100% 36%,#e8eeff 0%,transparent 44%),#f5f2fc;background-size:auto;animation:none;overflow:auto;min-height:100dvh}
body.is-auth::before{position:fixed;inset:-160px -100px auto auto;width:620px;height:400px;min-width:0;min-height:0;background:linear-gradient(135deg,rgba(255,255,255,.6),rgba(255,255,255,.1));border-radius:45%;transform:rotate(-27deg);filter:none;animation:none;will-change:auto}
body.is-auth::after{display:none}
body.is-auth .shell{position:relative;z-index:1;width:100%;min-height:100dvh;height:auto;display:flex;justify-content:center;align-items:center;padding:48px 24px;overflow:visible}
body.is-auth .auth{width:100%;max-width:440px;padding:0;display:block}
body.is-auth .auth-card{width:100%;max-width:none;padding:0;margin:0;border:0;background:transparent;box-shadow:none;backdrop-filter:none;border-radius:0}
body.is-auth .login-brand{display:flex;flex-direction:column;align-items:flex-start;gap:18px;margin:0 0 30px;padding:0 2px}
body.is-auth .login-brand>img{width:68px;height:68px;object-fit:contain;padding:8px;border-radius:18px;background:white;box-shadow:0 10px 30px #7353b510}
body.is-auth .login-brand strong{display:block;font-size:30px;line-height:1.3;font-weight:750;color:#201b30;letter-spacing:-.5px;overflow-wrap:anywhere}
body.is-auth .client-entry-label{display:block;margin-top:9px;font-size:14px;color:#8b8498;letter-spacing:.5px}
body.is-auth #authForm,body.is-auth .auth-reset,body.is-auth .auth-result{padding:24px;border:1px solid rgba(255,255,255,.9);border-bottom-color:#ddd5ed;border-right-color:#e4ddef;border-radius:26px;background:rgba(255,255,255,.84);box-shadow:0 12px 42px #5d3da005}
body.is-auth .auth-card label{font-size:13px;color:#898393;font-weight:400;margin:14px 0;gap:8px}
body.is-auth .auth-card label.auth-input{position:relative;display:flex;align-items:center;gap:0;height:52px;border:1px solid #e5e0ed;border-radius:17px;background:#f6f4fb;margin:0 0 14px;overflow:hidden}
body.is-auth .auth-card .auth-input input{width:100%;min-width:0;height:50px;padding:0 12px 0 44px;border:0;border-radius:17px;background:transparent;color:#292533;font-size:16px;box-shadow:none}
body.is-auth .auth-card .auth-input:focus-within{border-color:#aa8ff7;box-shadow:0 0 0 3px #9569fb12}
body.is-auth .auth-card .auth-input input:focus{border:0;box-shadow:none;background:transparent;outline:none}
body.is-auth .auth-input:has(.auth-eye) input{padding-right:58px}
body.is-auth .auth-field-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);width:20px;height:24px;display:grid;place-items:center;font-size:24px;line-height:1;color:#8d8799}
body.is-auth .auth-field-icon svg{width:20px;height:22px;fill:none;stroke:currentColor;stroke-width:1.6}
body.is-auth .auth-eye{position:absolute;right:5px;top:4px;min-width:46px;height:42px;border:0;background:transparent;color:#8b849b;font-size:12px;border-radius:12px;padding:0 6px}
body.is-auth .auth-sr-only{position:absolute!important;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
body.is-auth .remember-login{gap:8px;margin:4px 0 16px;flex-wrap:wrap}
body.is-auth .remember-login label{font-size:12px;color:#8b8495;margin:0;display:flex;align-items:center;gap:6px}
body.is-auth .remember-login input{width:15px;height:15px;accent-color:var(--auth-purple);padding:0;margin:0;border-radius:4px}
body.is-auth .remember-login small{font-size:11px;color:#a49caf}
body.is-auth .captcha-field{display:grid;grid-template-columns:minmax(0,1fr) 108px;gap:10px}
body.is-auth .captcha-field input,body.is-auth .auth-reset input{width:100%;min-width:0;height:48px;border:1px solid #e5e0ed;background:#f6f4fb;border-radius:14px;padding:0 13px;font-size:16px;box-shadow:none}
body.is-auth .captcha-field img{width:108px;height:48px;border:1px solid #e5e0ed;border-radius:14px;cursor:pointer}
body.is-auth .primary{width:100%;height:50px;margin:12px 0 0;border:0;border-radius:26px;background:linear-gradient(105deg,#a084fc,#764ffa 52%,#6040e8);color:#fff;font-size:16px;font-weight:600;letter-spacing:2px;box-shadow:0 10px 22px #8659e829}
body.is-auth .primary:hover{background:linear-gradient(105deg,#9778f3,#6c45ef 52%,#5636df)}
body.is-auth .auth-link{display:block;width:auto;margin:16px auto 0;padding:4px 8px;border:0;background:none;font-size:12px;color:#756685}
body.is-auth .form-message{font-size:13px;line-height:1.6;margin:12px 0 0;color:#c24d70;overflow-wrap:anywhere}
body.is-auth .form-message:empty{display:none}
body.is-auth .tabs{display:flex;align-items:center;justify-content:center;gap:10px;border:0;background:transparent;padding:0;margin:25px 0 0;font-size:14px;color:#9a91a7}
body.is-auth .tab,body.is-auth .tab.active,body.is-auth .tabs a{flex:none;width:auto;height:auto;padding:7px 0;border:0;background:transparent;box-shadow:none;color:#302839;font-size:14px;font-weight:650;text-decoration:none}
body.is-auth .auth-entry-note{text-align:center;font-size:11px;color:#aaa1b8;margin:18px 0 0;letter-spacing:.3px}
body.is-auth .auth-register-head{display:none;align-items:center;gap:12px;margin:0 0 25px;font-size:20px;color:#272034}
body.is-auth .auth-register-head button{width:32px;height:40px;border:0;background:none;color:inherit;font-size:36px;line-height:1;padding:0;text-align:left}
body.is-auth .auth-steps{display:none;position:relative;justify-content:center;align-items:center;gap:10px;margin:0 0 42px}
body.is-auth .auth-steps>span{display:grid;place-items:center;width:30px;height:30px;border:2px solid #e2ddec;border-radius:50%;color:#a198ae;font-size:13px}
body.is-auth .auth-steps>.auth-step-one{background:linear-gradient(135deg,#ac8bff,#6d45f2);border:0;color:white;box-shadow:0 6px 15px #8e65ed30}
body.is-auth .auth-steps i{width:60px;height:2px;background:#e3ddec}
body.is-auth .auth-steps small{position:absolute;top:39px;color:#a39aae;font-size:11px;letter-spacing:1px}
body.is-auth .auth-register-intro{display:none;text-align:center;padding:8px 0 26px}
body.is-auth .auth-create-icon{display:grid;place-items:center;width:66px;height:66px;margin:0 auto 19px;border-radius:22px;background:linear-gradient(140deg,#b79aff,#7854f5);color:white;box-shadow:0 10px 25px #9b79e72b;transform:rotate(-8deg)}
body.is-auth .auth-create-icon svg{width:37px;height:37px;fill:none;stroke:currentColor;stroke-width:2;stroke-linejoin:round;transform:rotate(8deg)}
body.is-auth .auth-register-intro h1{font-size:22px;color:#292235;margin:0 0 9px;letter-spacing:0}
body.is-auth .auth-register-intro p{font-size:13px;color:#a098ab;margin:0}
body.is-auth .auth[data-auth-mode="login"] .tab[data-mode="login"],body.is-auth .auth[data-auth-mode="login"] .auth-switch-register{display:none}
body.is-auth .auth[data-auth-mode="register"] .login-brand,body.is-auth .auth[data-auth-mode="register"] .auth-switch-login,body.is-auth .auth[data-auth-mode="register"] .tab[data-mode="register"]{display:none}
body.is-auth .auth[data-auth-mode="register"] .auth-register-head,body.is-auth .auth[data-auth-mode="register"] .auth-steps{display:flex}
body.is-auth .auth[data-auth-mode="register"] .auth-register-intro{display:block}
body.is-auth .auth[data-auth-state="recovery"] .auth-step-one{background:#ece5fc;color:#7859be;box-shadow:none}
body.is-auth .auth[data-auth-state="recovery"] .auth-step-two{background:var(--auth-purple);color:#fff;border-color:var(--auth-purple)}
body.is-auth .auth[data-auth-state="recovery"] .auth-register-head button,body.is-auth .auth[data-auth-state="recovery"] .auth-entry-note,body.is-auth .auth[data-auth-state="reset"] .auth-entry-note{display:none}
body.is-auth .auth-reset h3,body.is-auth .auth-result h3{font-size:22px;margin:16px 0;color:#2c2439}
body.is-auth .auth-result p{line-height:1.8;color:#8f859c;font-size:14px}
body.is-auth .auth-back{border:0;background:none;padding:0;color:#8165ac;font-size:13px}
body.is-auth .recovery-code{display:block;width:100%;padding:20px 8px;border:1px dashed #b9a5e5;border-radius:14px;background:#f5efff;color:#7653b5;letter-spacing:1px;overflow-wrap:anywhere}
body.is-auth .hidden{display:none!important}
body.is-auth button:focus-visible,body.is-auth input:focus-visible,body.is-auth a:focus-visible{outline:2px solid #9c78f5;outline-offset:3px}
@media(max-width:600px){body.is-auth .shell{align-items:flex-start;padding:max(62px,env(safe-area-inset-top)) 22px max(28px,env(safe-area-inset-bottom));height:auto;min-height:100dvh}body.is-auth .auth{max-width:410px}body.is-auth .login-brand{margin-bottom:30px}body.is-auth #authForm,body.is-auth .auth-reset,body.is-auth .auth-result{padding:22px 20px}body.is-auth .auth-register-head{margin-bottom:24px}body.is-auth .auth[data-auth-mode="register"] .tabs{margin-top:32px}}
@media(max-width:350px){body.is-auth .shell{padding-left:16px;padding-right:16px}body.is-auth #authForm,body.is-auth .auth-reset,body.is-auth .auth-result{padding:20px 16px}body.is-auth .remember-login small{display:none}body.is-auth .captcha-field{grid-template-columns:minmax(0,1fr) 92px}body.is-auth .captcha-field img{width:92px}}
@media(max-height:700px){body.is-auth .shell{padding-top:28px}body.is-auth .login-brand{gap:12px;margin-bottom:22px}body.is-auth .login-brand>img{width:56px;height:56px}body.is-auth .auth-register-intro{padding:0 0 16px}body.is-auth .auth-create-icon{width:48px;height:48px;margin-bottom:13px}}

/* 1.0.29: complete the auth palette, including recovery and autofill states. */
body.is-auth{--blue:#7950d8;--v2-blue:#7950d8;--v2-blue-deep:#6239b8;--ink:#30263d;--muted:#83738f;--line:#e4d8f0;font-family:system-ui,-apple-system,"PingFang SC","Microsoft YaHei",sans-serif}
body.is-auth .auth-card :is(input,textarea,select){color:#3c2c4c;caret-color:#8050d4;accent-color:#8050d4}
body.is-auth .auth-card input::placeholder{color:#94859f;opacity:1}
body.is-auth .auth-card input:-webkit-autofill{-webkit-text-fill-color:#3c2c4c;box-shadow:0 0 0 1000px #f6f1fc inset!important}
body.is-auth .auth-card :is(.tabs a,.auth-link,.auth-back){color:#8053b5}
body.is-auth .auth-card :is(.tabs a,.auth-link,.auth-back):hover{color:#60339b}
body.is-auth .auth-card label,body.is-auth .remember-login label{color:#776483}
body.is-auth :is(.client-entry-label,.auth-entry-note,.remember-login small){color:#8c799c}
body.is-auth .auth-field-icon,body.is-auth .auth-eye{color:#9c7cb6}
body.is-auth .auth-eye:hover{background:#eee4fa;color:#7648aa}
body.is-auth .auth-card :is(.auth-reset,.auth-result){border-color:#e7dcf1;background:#fdfaff}
body.is-auth .captcha-field img{background:#f3ebfc;border-color:#e1d2ef}
body.is-auth .primary:disabled{opacity:.55;cursor:wait}
body.is-auth .client-access-card{background:#fdfaff;border:1px solid #e6d8f1;border-radius:24px;box-shadow:0 16px 45px #6e43941a;color:#493259}
body.is-auth .client-access-card a{background:linear-gradient(120deg,#a079ed,#7449d6);color:#fff;border-radius:12px}
@media(min-width:861px){body.client-pc.is-auth .auth{max-width:440px}body.client-pc.is-auth .login-brand{align-items:center;text-align:center;gap:14px}body.client-pc.is-auth #authForm{padding:28px;border-color:#e6d9f2;box-shadow:0 14px 48px #73519b0c}}