@charset "UTF-8";
:root { --ink:#233b34; --muted:#708076; --green:#173c34; --paper:#f6f5f0; --line:#dce2d6; --white:#fffefa; --rust:#a26235; --error:#ac4139; }
* { box-sizing:border-box; }
body { margin:0; color:var(--ink); background:var(--paper); font:16px/1.65 "PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif; }
a { color:inherit; text-decoration:none; }
button,input { font:inherit; }
button { cursor:pointer; }
button:disabled { cursor:wait; opacity:.65; }
button:focus-visible,a:focus-visible,input:focus-visible { outline:3px solid #bd8954; outline-offset:4px; }
h1,h2,p { margin:0; }
.auth-shell { display:grid; grid-template-columns:1.05fr 1fr; min-height:100svh; }
.study-cover { background:var(--green); color:#f3f4e9; padding:46px clamp(32px,5vw,80px); display:flex; flex-direction:column; overflow:hidden; position:relative; }
.study-cover::after { content:''; position:absolute; height:420px; width:420px; border:1px solid #e6d6af12; border-radius:50%; right:-270px; top:30%; box-shadow:0 0 0 72px #e6d6af05,0 0 0 145px #e6d6af03; pointer-events:none; }
.cover-brand { display:flex; align-items:center; gap:13px; width:fit-content; font-size:18px; letter-spacing:2px; }
.brand-symbol { display:grid; place-items:center; width:38px; height:44px; border:1px solid #ffffff40; border-radius:5px; color:#e4ce9f; font-size:23px; }
.cover-brand small { display:block; color:#bfd0c1; letter-spacing:1px; font-size:11px; margin-top:2px; }
.cover-content { flex:1; display:flex; flex-direction:column; justify-content:center; padding:70px 0 55px; position:relative; z-index:1; }
.cover-kicker { font-size:12px; letter-spacing:3px; color:#d7bf91; margin-bottom:24px; }
.cover-content h1 { font:600 clamp(40px,4.3vw,62px)/1.35 "Songti SC","STSong",serif; letter-spacing:2px; }
.cover-description { color:#c2d1c5; margin-top:24px; font-size:15px; line-height:1.9; }
.cover-calendar { width:210px; margin-top:48px; padding-top:21px; border-top:1px solid #ffffff35; }
.cover-calendar>span { color:#d7c599; font-size:13px; letter-spacing:2px; }
.cover-calendar strong { display:block; font:500 66px/1.2 "Avenir Next","DIN Alternate",serif; letter-spacing:-2px; margin-top:10px; }
.cover-calendar small { font:13px "PingFang SC",sans-serif; letter-spacing:0; margin-left:12px; color:#c2d1c5; }
.calendar-rule { height:3px; width:32px; background:#c6975c; margin:17px 0 13px; }
.cover-calendar p { font-size:12px; color:#aec4b6; letter-spacing:2px; }
.cover-footer { display:flex; flex-wrap:wrap; gap:8px 22px; color:#b1c6b8; border-top:1px solid #ffffff20; padding-top:20px; font-size:12px; }
.auth-panel { max-width:560px; width:100%; margin:auto; padding:60px clamp(28px,4vw,70px); animation:appear .35s ease-out; }
.section-label { color:var(--rust); letter-spacing:2px; font-size:12px; font-weight:600; }
.form-heading h2 { font-size:29px; font-weight:600; letter-spacing:-.5px; line-height:1.4; margin:12px 0; }
.form-heading p { color:var(--muted); font-size:14px; line-height:1.8; }
.auth-form { margin-top:32px; }
.form-field { margin-top:20px; }
.form-field label { display:block; font-size:14px; font-weight:500; margin-bottom:8px; }
.form-field input { width:100%; min-height:50px; border:1px solid #cfd9ca; background:var(--white); border-radius:7px; padding:11px 14px; color:var(--ink); }
.form-field input:focus { border-color:#668b70; }
.form-field small { display:block; color:var(--muted); font-size:12px; margin-top:7px; }
.password-field { position:relative; }
.password-field input { padding-right:64px; }
.show-password { border:0; background:transparent; color:var(--muted); position:absolute; right:6px; top:6px; height:38px; padding:0 9px; font-size:12px; border-radius:4px; }
.show-password:hover { color:var(--green); background:#e9efe5; }
.form-message { min-height:24px; font-size:13px; color:var(--error); margin:14px 0 8px; overflow-wrap:anywhere; }
.form-message.success { color:#386f42; }
.auth-button { border:0; border-radius:7px; min-height:50px; padding:12px 19px; width:100%; display:flex; align-items:center; justify-content:center; gap:12px; font-size:15px; }
.primary { background:var(--green); color:#fff; }
.primary:hover { background:#245448; }
.login-note { font-size:12px; text-align:center; color:var(--muted); margin-top:20px; }
.device-note { border-top:1px solid var(--line); padding-top:25px; margin-top:48px; display:flex; align-items:center; gap:15px; font-size:12px; color:var(--muted); }
.device-note strong { color:#4c6558; font-weight:400; }
.device-symbol { display:grid; place-items:center; width:36px; height:36px; flex-shrink:0; background:#e8ede1; border-radius:50%; color:#66836b; font-size:21px; }
.account-shell { max-width:1120px; margin:auto; padding:0 44px 70px; }
.account-header { min-height:95px; display:flex; align-items:center; justify-content:space-between; gap:20px; border-bottom:1px solid var(--line); }
.account-brand { font-size:22px; color:var(--green); display:flex; gap:12px; align-items:center; }
.account-brand span { font-size:17px; letter-spacing:2px; }
.back-link { font-size:13px; color:var(--muted); }
.back-link:hover { color:var(--green); }
.account-layout { display:grid; grid-template-columns:1fr 1.4fr; gap:80px; margin-top:60px; align-items:start; }
.account-intro h1 { font:600 37px/1.4 "Songti SC","STSong",serif; margin:15px 0 16px; }
.account-intro>p:not(.section-label) { color:var(--muted); font-size:15px; line-height:1.9; }
.account-identity { display:flex; align-items:center; gap:13px; border-top:1px solid var(--line); padding-top:26px; margin-top:40px; }
.avatar { width:42px; height:42px; display:grid; place-items:center; background:#e6eddf; color:#56765b; border-radius:8px; font:20px Georgia,serif; }
.account-identity small { display:block; font-size:11px; color:var(--muted); }
.account-identity strong { font-size:16px; font-weight:500; }
.logout-button { padding:10px 0; margin-top:16px; border:0; background:transparent; color:var(--rust); font-size:13px; }
.logout-button span { margin-left:18px; }
.password-card { background:var(--white); border:1px solid var(--line); border-radius:12px; padding:30px 36px; box-shadow:0 12px 34px #203b3007; }
.password-card .form-heading h2 { margin-top:0; font-size:24px; }
.password-card .auth-form { margin-top:22px; }
.account-note { margin-top:22px; padding-top:20px; border-top:1px solid var(--line); color:var(--muted); font-size:12px; }
@keyframes appear { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:translateY(0); } }
@media(max-width:760px) {
  .auth-shell { display:block; }
  .study-cover { padding:26px 28px; }
  .cover-brand { font-size:16px; }
  .brand-symbol { width:31px; height:35px; font-size:19px; }
  .cover-content { padding:30px 0 0; }
  .cover-kicker { margin-bottom:12px; font-size:10px; }
  .cover-content h1 { font-size:34px; line-height:1.35; }
  .cover-content h1 br { display:none; }
  .cover-description { font-size:13px; margin-top:13px; }
  .cover-description br { display:none; }
  .cover-calendar,.cover-footer { display:none; }
  .auth-panel { padding:30px 28px 36px; max-width:480px; }
  .form-heading h2 { font-size:25px; }
  .auth-form { margin-top:22px; }
  .device-note { margin-top:28px; }
  .account-shell { padding:0 22px 40px; }
  .account-header { min-height:76px; }
  .account-layout { display:block; margin-top:28px; }
  .account-intro h1 { font-size:30px; margin:9px 0; }
  .account-intro>p:not(.section-label) { font-size:13px; }
  .account-intro>p br { display:none; }
  .account-identity { margin-top:22px; padding-top:17px; }
  .logout-button { margin:4px 0 20px; }
  .password-card { padding:24px 20px; }
}
@media(prefers-reduced-motion:reduce) { .auth-panel { animation:none; } }
