* { margin:0; padding:0; box-sizing:border-box; }
:root {
  --primary:#2f6bff; --primary-deep:#2254e8; --primary-soft:#eef3ff;
  --bg:#f5f7fb; --card:#ffffff; --line:#e6eaf3; --text:#1b2540; --muted:#7a86a3;
  --ok:#1fbf75; --bad:#f05555; --warn:#f5a623; --radius:14px;
  --shadow:0 10px 34px rgba(31,60,150,.08);
}
html { scroll-behavior:smooth; }
body { font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif; background:var(--bg); color:var(--text); -webkit-font-smoothing:antialiased; }
a { color:var(--primary); text-decoration:none; }
img { max-width:100%; }

/* ============ 认证页 ============ */
.auth-body { min-height:100vh; display:flex; align-items:center; justify-content:center; background:linear-gradient(150deg,#eef4ff 0%,#f7f9ff 60%,#ffffff 100%); padding:24px; }
.auth-wrap { width:100%; max-width:400px; text-align:center; }
.auth-brand { display:flex; align-items:center; justify-content:center; gap:10px; margin-bottom:22px; }
.auth-brand img { width:46px; height:46px; border-radius:13px; background:#fff; object-fit:contain; padding:3px; box-shadow:var(--shadow); }
.auth-brand span { font-size:19px; font-weight:800; letter-spacing:.3px; }
.auth-brand b { color:#b9c6e2; font-weight:600; }
.auth-card { background:var(--card); border-radius:20px; padding:34px 30px 28px; box-shadow:0 22px 60px rgba(31,60,150,.13); text-align:left; }
.auth-card h1 { font-size:21px; margin-bottom:5px; }
.auth-sub { font-size:13px; color:var(--muted); margin-bottom:20px; line-height:1.7; }
.alert { border-radius:10px; font-size:13px; padding:10px 14px; margin-bottom:16px; line-height:1.6; }
.alert-err { background:rgba(240,85,85,.09); color:#c23b3b; border:1px solid rgba(240,85,85,.2); }
.alert-ok { background:rgba(31,191,117,.09); color:#149257; border:1px solid rgba(31,191,117,.2); }
.alert-warn { background:rgba(245,166,35,.12); color:#b0791a; border:1px solid rgba(245,166,35,.25); }
.field { margin-bottom:13px; }
.field input[type=text], .field input[type=password], .field input[type=email], .field input[type=number] {
  width:100%; padding:12px 14px; border:1px solid var(--line); border-radius:12px; font-size:14.5px; outline:none; transition:border-color .15s, box-shadow .15s; background:#fff;
}
.field input:focus { border-color:var(--primary); box-shadow:0 0 0 3px rgba(47,107,255,.12); }
.btn-primary { display:inline-flex; align-items:center; justify-content:center; gap:8px; background:var(--primary); color:#fff; border:none; }
.btn-primary:hover { background:var(--primary-deep); }
.btn-block { width:100%; padding:12px 0; border-radius:12px; font-size:15px; font-weight:700; cursor:pointer; transition:all .15s; }
.auth-links { display:flex; justify-content:space-between; margin-top:18px; font-size:13px; }
.auth-links a { color:var(--muted); transition:color .15s; }
.auth-links a:hover { color:var(--primary); }
.reg-account { margin-top:16px; padding-top:16px; border-top:1px dashed var(--line); }

@media (max-width: 520px) {
  .auth-body { padding:14px; align-items:flex-start; }
  .auth-card { padding:24px 18px 20px; }
  .auth-links { flex-direction:column; gap:8px; align-items:center; }
}