/* 用户端登录/注册：和用户控制台同一套企业化品牌语言，并保留轻量互动。 */
body.user-auth-page {
    --auth-ink: #102b4a;
    --auth-blue: #3479e8;
    --auth-orange: #ffad62;
    --auth-bg: #eef4fa;
    --auth-line: #dfe8f2;
    --auth-muted: #70839b;
    min-height: 100vh;
    display: grid;
    place-items: center;
    padding: 24px;
    overflow-x: hidden;
    color: var(--auth-ink);
    background: var(--auth-bg);
    font-family: "Aptos", "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;
}
body.user-auth-page::before,
body.user-auth-page::after {
    position: fixed;
    z-index: 0;
    content: "";
    pointer-events: none;
}
body.user-auth-page::before { left: var(--portal-pointer-x, 50%); top: 0; width: 1px; height: 100vh; background: rgba(255,173,98,.28); opacity: .7; transition: left .16s ease; }
body.user-auth-page::after { left: 0; top: var(--portal-pointer-y, 50%); width: 100vw; height: 1px; background: rgba(52,121,232,.18); opacity: .7; transition: top .16s ease; }
body.user-auth-page .portal-login-shell {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: minmax(320px,.95fr) minmax(380px,1.05fr);
    width: min(960px, 100%);
    min-height: 600px;
    overflow: hidden;
    border: 1px solid rgba(255,255,255,.85);
    border-radius: 24px;
    background: rgba(255,255,255,.8);
    box-shadow: 0 28px 90px rgba(16,43,74,.18);
    transform: perspective(1200px) rotateX(var(--portal-tilt-x,0deg)) rotateY(var(--portal-tilt-y,0deg));
    transition: transform .2s ease, box-shadow .2s ease;
    backdrop-filter: blur(18px);
}
body.user-auth-page .portal-login-info {
    position: relative;
    display: flex;
    min-height: 600px;
    flex-direction: column;
    justify-content: space-between;
    padding: 40px 38px;
    overflow: hidden;
    color: #fff;
    background: var(--auth-ink);
}
body.user-auth-page .portal-login-info::after { position: absolute; right: -54px; bottom: -64px; width: 230px; height: 230px; border: 28px solid rgba(255,173,98,.2); border-radius: 46% 54% 51% 49%; content: ""; transform: translate(var(--portal-shift-x,0px), var(--portal-shift-y,0px)) rotate(20deg); transition: transform .2s ease; }
body.user-auth-page .portal-login-brand { position: relative; z-index: 1; display: flex; align-items: center; gap: 12px; }
body.user-auth-page .portal-login-logo { display: grid; flex: 0 0 48px; width: 48px; height: 48px; place-items: center; overflow: hidden; color: var(--auth-ink); background: var(--auth-orange); border-radius: 15px 15px 15px 6px; box-shadow: 0 10px 22px rgba(255,173,98,.22); transform: translate(var(--portal-shift-x,0px), var(--portal-shift-y,0px)); transition: transform .2s ease; }
body.user-auth-page .portal-login-logo img { width: 100%; height: 100%; object-fit: contain; border-radius: inherit; }
body.user-auth-page .portal-login-brand strong { display: block; color: #fff; font-size: 14px; }
body.user-auth-page .portal-login-brand span:not(.portal-login-logo) { display: block; margin-top: 4px; color: rgba(255,255,255,.5); font-size: 10px; }
body.user-auth-page .portal-login-copy { position: relative; z-index: 1; }
body.user-auth-page .portal-login-kicker { display: inline-flex; padding: 7px 10px; color: var(--auth-orange); background: rgba(255,173,98,.13); border-radius: 999px; font-size: 10px; font-weight: 800; }
body.user-auth-page .portal-login-copy h2 { margin: 18px 0 10px; color: #fff; font-size: 28px; line-height: 1.3; letter-spacing: -.035em; }
body.user-auth-page .portal-login-copy p { max-width: 320px; margin: 0; color: rgba(255,255,255,.58); font-size: 12px; line-height: 1.75; }
body.user-auth-page .portal-login-points { position: relative; z-index: 1; display: grid; gap: 10px; color: rgba(255,255,255,.72); font-size: 11px; }
body.user-auth-page .portal-login-points span { display: flex; align-items: center; gap: 9px; }
body.user-auth-page .portal-login-points i { display: grid; width: 27px; height: 27px; place-items: center; color: var(--auth-orange); background: rgba(255,173,98,.14); border-radius: 9px; }
body.user-auth-page .login-card { display: flex; flex-direction: column; justify-content: center; padding: 54px 56px; background: rgba(255,255,255,.92); box-shadow: none; border-radius: 0; }
body.user-auth-page .register-card { display: flex; flex-direction: column; justify-content: center; padding: 54px 56px; background: rgba(255,255,255,.92); box-shadow: none; border-radius: 0; }
body.user-auth-page .login-card h1,
body.user-auth-page .register-card h1 { display: flex; align-items: center; gap: 10px; margin: 0 0 7px; color: var(--auth-ink); font-size: 22px; letter-spacing: -.03em; }
body.user-auth-page .brand-monogram { display: inline-grid; width: 38px; height: 38px; place-items: center; overflow: hidden; color: var(--auth-ink); background: var(--auth-orange); border-radius: 12px 12px 12px 5px; font-size: 12px; }
body.user-auth-page .brand-monogram img { width: 100%; height: 100%; object-fit: contain; }
body.user-auth-page .login-card .subtitle,
body.user-auth-page .register-card .subtitle { margin: 0 0 27px; color: var(--auth-muted); font-size: 12px; }
body.user-auth-page .form-group { margin-bottom: 15px; }
body.user-auth-page .form-group label { margin-bottom: 7px; color: #4e637d; font-size: 12px; font-weight: 800; }
body.user-auth-page .form-input { min-height: 45px; padding: 11px 13px; color: var(--auth-ink); background: #f8fafc; border: 1px solid var(--auth-line); border-radius: 11px; transition: border-color .18s, box-shadow .18s, background .18s, transform .18s; }
body.user-auth-page .form-input:focus { background: #fff; border-color: var(--auth-blue); box-shadow: 0 0 0 4px rgba(52,121,232,.1); transform: translateY(-1px); }
body.user-auth-page .btn-primary { min-height: 47px; color: #fff; background: var(--auth-blue); border-radius: 11px; box-shadow: 0 10px 20px rgba(52,121,232,.2); }
body.user-auth-page .btn-primary:hover { background: #2868d2; transform: translateY(-2px); }
body.user-auth-page .captcha-img { height: 45px; border: 1px solid var(--auth-line); border-radius: 10px; }
body.user-auth-page .auth-geetest { min-height: 48px; padding: 11px 12px; border: 1px solid #cfdce9; border-radius: 11px; background: #fbfdff; color: var(--auth-muted); font-size: 11px; }
body.user-auth-page .auth-geetest.is-ready { padding: 0; border: 0; background: transparent; }
body.user-auth-page .auth-geetest-hint { margin-top: 7px; color: #8b9caf; font-size: 11px; }
body.user-auth-page .footer-link { margin-top: 22px; color: #9aabc0; font-size: 11px; }
body.user-auth-page .footer-link a { color: var(--auth-blue); font-weight: 800; }
body.user-auth-page .alert { border-radius: 11px; }
@media (max-width: 760px) {
    body.user-auth-page { padding: 14px; }
    body.user-auth-page .portal-login-shell { grid-template-columns: 1fr; min-height: 0; }
    body.user-auth-page .portal-login-info { min-height: 300px; padding: 28px; }
    body.user-auth-page .portal-login-copy h2 { margin-top: 14px; font-size: 23px; }
    body.user-auth-page .portal-login-points { margin-top: 24px; }
    body.user-auth-page .login-card,
    body.user-auth-page .register-card { padding: 34px 26px; }
}
