/* login.css — 登录页样式（自包含，独立深青配色，不依赖主页 token） */

:root{
  /* 登录页专属深青配色（与主页 monochrome 风格分离） */
  --login-bg:#F7F6F2;
  --login-card:#fff;
  --login-ink:#133743;
  --login-ink-hover:#0C2630;
  --login-sub:#8E8A85;
  --login-label:#6B6762;
  --login-border:rgba(19,55,67,.12);
  --login-border-focus:rgba(19,55,67,.1);
  --login-error:#D94F30;
}

/* 自托管 Libre Baskerville（与主页同源 /fonts/，离线可用；Inter 无自托管→回退 system-ui，本就无 CDN） */
@font-face{
  font-family:'Libre Baskerville';
  font-style:normal;font-weight:400;font-display:optional;
  src:url('/fonts/libre-400.woff2') format('woff2');
}
@font-face{
  font-family:'Libre Baskerville';
  font-style:normal;font-weight:700;font-display:optional;
  src:url('/fonts/libre-700.woff2') format('woff2');
}

*{margin:0;padding:0;box-sizing:border-box;}
body{
  font-family:'Inter',system-ui,-apple-system,'PingFang SC','Microsoft YaHei',sans-serif;
  background:var(--login-bg);
  display:flex;align-items:center;justify-content:center;min-height:100vh;
}
.login-card{
  background:var(--login-card);
  padding:2.5rem;
  border-radius:14px;
  box-shadow:0 1px 2px rgba(19,55,67,0.03),0 2px 8px rgba(19,55,67,0.05),0 14px 30px rgba(19,55,67,0.04);
  width:340px;max-width:90vw;
}
h1{
  font-family:'Libre Baskerville',Georgia,serif;
  font-size:1.375rem;font-weight:700;color:var(--login-ink);
  text-align:center;margin-bottom:0.375rem;
}
.sub{font-size:0.75rem;color:var(--login-sub);text-align:center;margin-bottom:2rem;letter-spacing:0.02em;}
.form-group{margin-bottom:1.25rem;}
.form-group label{display:block;font-size:0.75rem;font-weight:600;color:var(--login-label);text-transform:uppercase;letter-spacing:0.05em;margin-bottom:0.375rem;}
.form-group input{width:100%;padding:0.75rem 0.875rem;font-size:0.875rem;border:1px solid var(--login-border);border-radius:8px;background:#fff;outline:none;transition:all 180ms;}
.form-group input:focus{border-color:var(--login-ink);box-shadow:0 0 0 3px var(--login-border-focus);}
.btn{width:100%;padding:0.75rem;background:var(--login-ink);color:#fff;border:none;border-radius:8px;font-size:0.875rem;font-weight:600;cursor:pointer;transition:all 180ms;}
.btn:hover{background:var(--login-ink-hover);}
.btn:active{transform:scale(0.97);}
.error{color:var(--login-error);font-size:0.75rem;text-align:center;margin-top:0.75rem;display:none;}
.loading{display:none;text-align:center;margin-top:0.75rem;font-size:0.75rem;color:var(--login-sub);}
.loading i{animation:spin 1s linear infinite;margin-right:0.375rem;}
@keyframes spin{from{transform:rotate(0deg);}to{transform:rotate(360deg);}}
.remember{display:flex;align-items:center;gap:0.5rem;margin-bottom:1.25rem;font-size:0.75rem;color:var(--login-label);cursor:pointer;}
.remember input{width:16px;height:16px;cursor:pointer;}
