/* Authentication only. Brand assets continue to come from platform settings. */
body.is-auth{--auth-purple:#45b2ed;color:#212d33;background:radial-gradient(ellipse at 8% 0%,#d7f1ff 0%,transparent 40%),radial-gradient(ellipse at 100% 36%,#e8eeff 0%,transparent 44%),#f2f9fc;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 #5393b510}
body.is-auth .login-brand strong{display:block;font-size:30px;line-height:1.3;font-weight:750;color:#1b2930;letter-spacing:-.5px;overflow-wrap:anywhere}
body.is-auth .client-entry-label{display:block;margin-top:9px;font-size:14px;color:#849198;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:#d5e5ed;border-right-color:#dde9ef;border-radius:26px;background:rgba(255,255,255,.84);box-shadow:0 12px 42px #3d7da005}
body.is-auth .auth-card label{font-size:13px;color:#838d93;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 #e0e8ed;border-radius:17px;background:#f4f9fb;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:#000;font-size:16px;box-shadow:none}
body.is-auth .auth-card .auth-input:focus-within{border-color:#8fd3f7;box-shadow:0 0 0 3px #69c8fb12}
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:#879399}
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:#84939b;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:#848f95;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:#9ca8af}
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 #e0e8ed;background:#f4f9fb;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 #e0e8ed;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,#84d2fc,#4fbefa 52%,#40ade8);color:#fff;font-size:16px;font-weight:600;letter-spacing:2px;box-shadow:0 10px 22px #59b6e829}
body.is-auth .primary:hover{background:linear-gradient(105deg,#78c8f3,#45b3ef 52%,#36a4df)}
body.is-auth .auth-link{display:block;width:auto;margin:16px auto 0;padding:4px 8px;border:0;background:none;font-size:12px;color:#667a85}
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:#919fa7}
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:#283339;font-size:14px;font-weight:650;text-decoration:none}
body.is-auth .auth-entry-note{text-align:center;font-size:11px;color:#a1b0b8;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:#202d34}
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 #dde7ec;border-radius:50%;color:#98a6ae;font-size:13px}
body.is-auth .auth-steps>.auth-step-one{background:linear-gradient(135deg,#8bd6ff,#45b5f2);border:0;color:white;box-shadow:0 6px 15px #65bded30}
body.is-auth .auth-steps i{width:60px;height:2px;background:#dde7ec}
body.is-auth .auth-steps small{position:absolute;top:39px;color:#9aa7ae;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,#9adcff,#54bdf5);color:white;box-shadow:0 10px 25px #79c1e72b;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:#222e35;margin:0 0 9px;letter-spacing:0}
body.is-auth .auth-register-intro p{font-size:13px;color:#98a4ab;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:#e5f4fc;color:#599bbe;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:#243239}
body.is-auth .auth-result p{line-height:1.8;color:#85949c;font-size:14px}
body.is-auth .auth-back{border:0;background:none;padding:0;color:#6593ac;font-size:13px}
body.is-auth .recovery-code{display:block;width:100%;padding:20px 8px;border:1px dashed #a5cfe5;border-radius:14px;background:#eff9ff;color:#5393b5;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 #78c9f5;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:#50a8d8;--v2-blue:#50a8d8;--v2-blue-deep:#398cb8;--ink:#26353d;--muted:#73858f;--line:#d8e8f0;font-family:system-ui,-apple-system,"PingFang SC","Microsoft YaHei",sans-serif}
body.is-auth .auth-card :is(input,textarea,select){color:#000;caret-color:#000;accent-color:#50a6d4}
body.is-auth .auth-card input::placeholder{color:#85969f;opacity:1}
body.is-auth .auth-card input:-webkit-autofill{-webkit-text-fill-color:#000;box-shadow:0 0 0 1000px #f1f8fc inset!important}
body.is-auth .auth-card :is(.tabs a,.auth-link,.auth-back){color:#5393b5}
body.is-auth .auth-card :is(.tabs a,.auth-link,.auth-back):hover{color:#33779b}
body.is-auth .auth-card label,body.is-auth .remember-login label{color:#647883}
body.is-auth :is(.client-entry-label,.auth-entry-note,.remember-login small){color:#79909c}
body.is-auth .auth-field-icon,body.is-auth .auth-eye{color:#7ca2b6}
body.is-auth .auth-eye:hover{background:#e4f2fa;color:#4888aa}
body.is-auth .auth-card :is(.auth-reset,.auth-result){border-color:#dceaf1;background:#fafdff}
body.is-auth .captcha-field img{background:#ebf6fc;border-color:#d2e5ef}
body.is-auth .primary:disabled{opacity:.55;cursor:wait}
body.is-auth .client-access-card{background:#fafdff;border:1px solid #d8e8f1;border-radius:24px;box-shadow:0 16px 45px #4378941a;color:#324b59}
body.is-auth .client-access-card a{background:linear-gradient(120deg,#79c4ed,#49a5d6);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:#d9e9f2;box-shadow:0 14px 48px #51819b0c}}
/* 1.0.51: one purple focus boundary; remove inherited legacy green states. */
body.is-auth .auth-card input:focus,body.is-auth .auth-reset input:focus{border-color:#8fd3f7;background:#fff;outline:none;box-shadow:0 0 0 3px #69c8fb12}
body.is-auth .auth-card .auth-input input:focus,body.is-auth .auth-card .auth-input input:focus-visible{border:0;outline:none;box-shadow:none;background:transparent}
body.is-auth .auth-card input:focus-visible{outline:none}
body.is-auth button:focus-visible,body.is-auth a:focus-visible{box-shadow:none}
body.is-auth .auth-card input::placeholder{color:#000;opacity:1}
body.is-auth .primary{background:linear-gradient(110deg,#168dca,#087bb9);color:#fff}body.is-auth .primary:hover{background:linear-gradient(110deg,#107fb9,#086fa7)}
