:root{color-scheme:light;font:14px/1.7 "PingFang SC","Microsoft YaHei",system-ui,sans-serif;color:#1c302a;background:#f4f7f5;-webkit-font-smoothing:antialiased}
*{box-sizing:border-box}
body{margin:0}
button,input{font:inherit;color:inherit}
a{color:inherit}
.auth-layout{min-height:100svh;display:grid;grid-template-columns:minmax(360px,46%) 1fr}
.intro{display:flex;flex-direction:column;padding:44px clamp(32px,5.5vw,100px);background:#17423b;color:#f5f8f4;position:relative;overflow:hidden}
.intro:after{content:"法";position:absolute;right:-52px;bottom:-95px;font:360px/1.2 "Songti SC",serif;color:#ffffff04;transform:rotate(-12deg);pointer-events:none}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;font-size:17px;font-weight:600;letter-spacing:.08em;width:fit-content}
.seal{display:grid;place-items:center;width:42px;height:42px;border:1px solid #ffffff50;border-radius:12px;font:25px "Songti SC",serif}
.brand small{display:block;font-size:10px;font-weight:400;letter-spacing:.2em;color:#aac4b7;margin-top:1px}
.intro-copy{margin:56px 0 48px}
.eyebrow{font-size:11px;letter-spacing:.18em;color:#a5c3b4}
h1{font:400 clamp(32px,3.1vw,46px)/1.55 "Songti SC","STSong",serif;margin:16px 0}
.intro-copy>p{color:#b2cbbf;font-size:13px;line-height:2;margin:0}
.feature-list{display:grid;gap:20px;margin-top:44px}
.feature-list>div{position:relative;padding-left:42px}
.feature-list span{position:absolute;left:0;top:2px;font-size:10px;letter-spacing:.08em;color:#89aa98;border-bottom:1px solid #ffffff25;padding-bottom:4px}
.feature-list b{font-size:13px;font-weight:500}
.feature-list p{font-size:11px;color:#9fbeae;margin:2px 0 0}
.intro-foot{margin-top:auto;font-size:10px;color:#8fb19f;letter-spacing:.07em}
.form-side{display:flex;align-items:center;justify-content:center;padding:48px 32px}
.card{width:100%;max-width:410px;padding:36px 12px}
.form-kicker{font-size:11px;letter-spacing:.13em;color:#718078}
h2{font:500 30px/1.4 "Songti SC","STSong",serif;margin:10px 0}
.form-lead{font-size:13px;color:#718078;margin:0 0 30px}
label{display:block;margin:18px 0;color:#41564d;font-size:12px;font-weight:500}
input:not([type=checkbox]){display:block;width:100%;padding:13px 15px;border:1px solid #dce5df;border-radius:10px;background:#fff;outline:none;font-size:14px;margin-top:8px;transition:border-color .15s,box-shadow .15s}
input::placeholder{color:#a1ada5;font-size:12px}
input:not([type=checkbox]):focus{border-color:#6a9481;box-shadow:0 0 0 3px #17423b0c}
.remember{display:flex;gap:7px;align-items:center;font-size:12px;color:#718078;font-weight:400;margin:20px 0}
input[type=checkbox]{accent-color:#17423b;width:15px;height:15px;margin:0}
button{display:flex;align-items:center;justify-content:space-between;width:100%;padding:13px 18px;background:#17423b;color:white;border:1px solid #17423b;border-radius:10px;font-size:13px;cursor:pointer;transition:background .15s,box-shadow .15s}
button:hover{background:#24564a;box-shadow:0 4px 14px #17423b18}
button span{font-size:18px}
.register{margin-top:28px;border-top:1px solid #dce5df;padding-top:22px}
.register summary{cursor:pointer;color:#476c59;font-size:12px}
.register form{padding:2px 0 8px}
.errors{color:#a33227;background:#fbeae7;border:1px solid #efcec7;border-radius:9px;padding:12px;font-size:12px;margin-bottom:20px}
.form-foot{margin:30px 0 0;color:#98a59c;font-size:10px}
:focus-visible{outline:2px solid #7ca78e;outline-offset:3px}
@media(max-width:760px){
  .auth-layout{display:block}
  .intro{padding:24px;min-height:0;border-radius:0 0 24px 24px}
  .intro-copy{margin:28px 0 12px}
  .eyebrow{font-size:10px}
  h1{font-size:30px;margin:10px 0}
  .intro-copy>p{font-size:12px}
  .intro-copy>p br{display:none}
  .feature-list,.intro-foot{display:none}
  .intro:after{font-size:210px;right:-22px;bottom:-65px}
  .brand{font-size:15px}
  .seal{width:35px;height:35px;font-size:22px;border-radius:10px}
  .form-side{padding:28px 24px 40px}
  .card{padding:0}
  h2{font-size:26px}
  .form-lead{margin-bottom:24px}
  input:not([type=checkbox]){font-size:16px;padding:12px 14px}
}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
