:root {
  color-scheme: dark;
  --bg: #0b101a;
  --card: #111a2a;
  --card-2: #0d1523;
  --line: #2a3a55;
  --text: #edf4ff;
  --muted: #8ea1bf;
  --blue: #2f78df;
  --blue-hover: #438be8;
  --red: #d7263d;
  --ok: #32d39a;
}

* { box-sizing: border-box; }
html { min-height: 100%; background: var(--bg); }
body {
  min-height: 100vh;
  margin: 0;
  color: var(--text);
  background: radial-gradient(circle at 50% -15%, #19345f 0, var(--bg) 48%);
  font: 14px/1.6 "Microsoft YaHei", "微软雅黑", Arial, sans-serif;
}
a { color: #86b6ff; text-decoration: none; }
a:hover { color: #b5d4ff; }
.page { width: min(1100px, calc(100% - 32px)); margin: 0 auto; padding: 28px 0 42px; }
.brand { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 0 0 16px; border-bottom: 2px solid var(--red); }
.brand h1 { margin: 0; font-size: 21px; font-weight: 600; letter-spacing: .4px; }
.brand small { color: var(--muted); }
.card { margin: 22px auto 0; padding: 24px; border: 1px solid var(--line); border-radius: 9px; background: rgba(17, 26, 42, .96); box-shadow: 0 14px 36px rgba(0,0,0,.28); }
.auth-card { width: min(420px, 100%); }
.auth-card h2 { margin: 0 0 5px; font-size: 20px; font-weight: 600; }
.sub { margin: 0 0 18px; color: var(--muted); font-size: 12px; }
.field { margin-top: 12px; }
.field label { display: block; margin-bottom: 5px; color: #b7c7df; font-size: 12px; }
input { width: 100%; height: 36px; padding: 0 10px; border: 1px solid #3a4d6b; border-radius: 5px; outline: 0; color: var(--text); background: #09111f; font: inherit; }
input:focus { border-color: #6ea7f4; box-shadow: 0 0 0 2px rgba(82,145,231,.18); }
button { height: 36px; padding: 0 16px; border: 0; border-radius: 5px; color: #fff; background: var(--blue); font: inherit; cursor: pointer; }
button:hover { background: var(--blue-hover); }
.primary { width: 100%; margin-top: 18px; }
.links { display: flex; justify-content: space-between; gap: 12px; margin-top: 16px; color: var(--muted); font-size: 12px; }
.notice { margin: 0 0 14px; padding: 9px 11px; border: 1px solid #72404a; border-radius: 5px; color: #ff98a5; background: rgba(120,24,42,.18); }
.info { margin-top: 22px; padding: 13px 14px; border: 1px solid #314d73; border-radius: 6px; color: #aec4e3; background: rgba(22,57,103,.22); font-size: 12px; }
.captcha { display: grid; grid-template-columns: 1fr 126px; gap: 8px; align-items: end; }
.captcha img { width: 126px; height: 36px; border: 1px solid #3a4d6b; border-radius: 5px; background: #09111f; object-fit: cover; cursor: pointer; }
.footer { margin-top: 18px; color: #647796; text-align: center; font-size: 11px; }
@media (max-width: 560px) {
  .page { width: min(100% - 20px, 520px); padding-top: 18px; }
  .card { padding: 18px; }
  .brand { align-items: flex-start; flex-direction: column; gap: 3px; }
  .captcha { grid-template-columns: 1fr; }
  .captcha img { width: 126px; }
}
