:root{--paper:#fff;--canvas:#f8f9fb;--hover:#f5f6f7;--selected:#eef0f2;--line:#e5e7eb;--ink:#17191d;--secondary:#505761;--muted:#717985;--accent:#267957;color-scheme:light;font-family:Arial,'Microsoft YaHei UI','Microsoft YaHei','PingFang SC',sans-serif;color:var(--ink);background:var(--paper)}
*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:wait;opacity:.55}button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:4px}button{border:0;background:none}button,input{transition:background .15s,border-color .15s,color .15s}a{color:var(--accent)}[hidden]{display:none!important}
.auth-page{min-height:100dvh;padding:22px;background:var(--paper)}.auth-layout{display:grid;grid-template-columns:1fr 1fr;gap:22px;min-height:calc(100dvh - 44px)}.auth-art{position:relative;isolation:isolate;overflow:hidden;border-radius:28px;min-height:650px;display:flex;flex-direction:column;justify-content:space-between;padding:clamp(28px,3vw,52px);background:#dceff5;color:#14191b}.auth-brand{display:flex;align-items:center;gap:10px;position:relative;z-index:2;text-decoration:none;color:inherit}.auth-brand img{display:block;width:39px;height:auto;object-fit:contain}.auth-brand strong{font-size:clamp(21px,1.65vw,28px);letter-spacing:-.7px;white-space:nowrap}.auth-brand small{display:block;color:var(--secondary);font-size:12px;margin-top:3px}.auth-animation{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none}.auth-flow-image{display:block;position:absolute;inset:-5%;width:110%;height:110%;max-width:none;object-fit:cover;object-position:50% 47%;transform-origin:60% 40%;animation:wuyu-silk-drift 28s ease-in-out infinite alternate;will-change:transform}.auth-animation:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#eff8fc18,transparent 24%,transparent 54%,#e4f1f638)}.auth-art[data-paused=true] .auth-flow-image{animation-play-state:paused}.auth-motion-toggle{position:absolute;right:23px;top:24px;z-index:3;width:29px;height:29px;display:grid;place-items:center;padding:0;border:1px solid #ffffff88;border-radius:50%;color:#395d61;background:#ffffff75;backdrop-filter:blur(8px)}.auth-motion-toggle:hover{background:#ffffffc0}.auth-motion-toggle svg{width:12px;height:12px}.auth-art-copy{position:relative;z-index:2;margin-top:300px;padding-bottom:clamp(20px,4vh,52px)}.auth-art-copy h2{font-size:clamp(35px,3.15vw,60px);line-height:1.48;font-weight:650;letter-spacing:-1.5px;margin:0;text-wrap:balance;color:#14191b}
.auth-right{display:flex;align-items:center;justify-content:center;position:relative;padding:50px 35px 65px;background:var(--paper)}.auth-box{width:100%;max-width:405px;margin:22px 0}.auth-box h1{font-size:28px;line-height:1.4;letter-spacing:-.8px;font-weight:650;margin:0 0 13px}.auth-subtitle{font-size:14px;line-height:1.8;color:var(--secondary);margin:0 0 30px}.login-form{display:flex;flex-direction:column;gap:20px}.login-form label{font-size:13px;color:var(--secondary);display:flex;flex-direction:column;gap:7px}.login-form input{width:100%;height:46px;border:1px solid var(--line);border-radius:12px;padding:0 15px;color:var(--ink);font-size:14px;background:var(--paper);min-width:0}.login-form input:focus{border-color:#65ad87;box-shadow:0 0 0 3px #3a9c6610;outline:none}.login-form input::placeholder{color:#a0aaa3}.login-form input[aria-invalid=true]{border-color:#b14838}.field-help{color:var(--muted);font-size:11px;line-height:1.6;margin-top:-11px}.password-field{position:relative}.password-field input{padding-right:52px}.password-visibility{position:absolute;right:13px;top:0;height:46px;color:var(--muted);font-size:12px;padding:0 3px}.auth-submit{height:47px;border-radius:13px;background:linear-gradient(110deg,#389950,#238771);color:#fff;display:flex;justify-content:center;align-items:center;gap:9px;font-size:15px;font-weight:500;margin-top:10px}.auth-submit:hover{background:#267e52}.auth-submit svg{width:17px;height:17px}.auth-submit[data-busy=true] .submit-arrow{display:none}.submit-spinner{display:none;width:16px;height:16px;border:2px solid #ffffff55;border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}.auth-submit[data-busy=true] .submit-spinner{display:block}.form-error{color:#b14838;font-size:13px;line-height:1.7;margin:0;overflow-wrap:anywhere}.auth-switch{display:flex;align-items:center;justify-content:center;gap:5px;font-size:13px;color:var(--secondary);margin:24px 0 0}.auth-switch button{color:var(--accent);padding:4px;font-weight:500;font-size:13px}.auth-switch button:hover{color:#166743}.auth-footer{position:absolute;bottom:15px;left:20px;right:20px;text-align:center;color:var(--muted);font-size:11px;line-height:1.7}.mobile-brand{display:none}.register-box .login-form{gap:15px}.register-box .auth-subtitle{margin-bottom:24px}.register-box .auth-submit{margin-top:6px}
@keyframes wuyu-silk-drift{from{transform:translate(-1%,-.5%) scale(1.015) rotate(-.7deg)}to{transform:translate(1.5%,1%) scale(1.075) rotate(1deg)}}@keyframes spin{to{transform:rotate(360deg)}}
@media(min-width:701px) and (max-height:820px){.auth-art{padding:29px 34px}.auth-art-copy{margin-top:250px;padding-bottom:34px}.auth-art-copy h2{font-size:clamp(32px,3.1vw,46px)}}
@media(min-width:701px) and (max-width:1000px){.auth-art{padding:26px}.auth-brand strong{font-size:21px}.auth-brand img{width:30px}.auth-art-copy h2{font-size:31px;letter-spacing:-1px}.auth-motion-toggle{right:16px;top:28px;width:25px;height:25px}}
@media(max-width:700px){.auth-page{padding:12px}.auth-layout{display:block;min-height:calc(100dvh - 24px)}.auth-art{display:none}.auth-right{min-height:calc(100dvh - 24px);padding:32px 15px 65px}.auth-box{max-width:430px;margin:25px 0}.auth-box h1{font-size:26px}.auth-subtitle{font-size:13px}.mobile-brand{display:flex;margin-bottom:36px}.mobile-brand strong{font-size:21px}.mobile-brand img{width:34px}.auth-footer{bottom:8px}.register-box .mobile-brand{margin-bottom:28px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important}.auth-flow-image{animation:none;will-change:auto}.auth-motion-toggle{display:none}.submit-spinner{animation-duration:1.6s}}
.auth-account-note{font-size:11px;line-height:1.8;color:var(--muted);text-align:center;margin:18px 0 0}
