/* 登录/注册页样式——与主站深色 HUD 风格一致，独立可复用。 */
:root{
  --bg:#0a0f1a; --panel:#111a2b; --panel-2:#0d1524;
  --line:#22314a; --line-2:#2c3e5c;
  --text:#e8eef7; --dim:#8aa0bd; --faint:#5f7290;
  --accent:#3f7fd0; --accent-2:#37e0c8; --ok:#37d39b; --err:#ff6b6b;
  --r:12px; --mono:'Space Grotesk',ui-monospace,monospace;
}
*{box-sizing:border-box}
body{
  margin:0;min-height:100vh;background:
    radial-gradient(1200px 600px at 50% -10%, #14213a 0%, transparent 60%),
    var(--bg);
  color:var(--text);font-family:'Inter',system-ui,sans-serif;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  padding:32px 18px;
}
a{color:var(--accent-2);text-decoration:none}
a:hover{text-decoration:underline}
.brand{
  font-family:var(--mono);font-weight:700;font-size:22px;letter-spacing:.5px;
  color:var(--text);margin-bottom:22px;display:flex;align-items:center;gap:8px;
}
.brand span{color:var(--accent-2)}
.card{
  width:100%;max-width:400px;background:var(--panel);
  border:1px solid var(--line);border-radius:16px;padding:30px 28px;
  box-shadow:0 20px 60px -20px #000;
}
h1{font-family:var(--mono);font-size:22px;margin:0 0 6px}
.sub{color:var(--dim);font-size:14px;margin:0 0 22px;line-height:1.5}
label{display:block;font-size:12px;color:var(--dim);margin:0 0 6px;font-family:var(--mono)}
.field{margin-bottom:16px}
input{
  width:100%;padding:12px 14px;background:var(--panel-2);
  border:1px solid var(--line-2);border-radius:var(--r);color:var(--text);
  font-size:15px;font-family:inherit;outline:none;transition:border-color .15s;
}
input:focus{border-color:var(--accent)}
.btn{
  width:100%;padding:12px;border:none;border-radius:var(--r);cursor:pointer;
  font-size:15px;font-weight:600;font-family:var(--mono);transition:filter .15s;
}
.btn:hover{filter:brightness(1.08)}
.btn:disabled{opacity:.5;cursor:not-allowed;filter:none}
.btn.primary{background:linear-gradient(135deg,var(--accent),#2f6bc0);color:#fff}
/* 第三方登录按钮：白底品牌色，深色卡片上的标准 OAuth 样式 */
.btn.oauth{
  display:flex;align-items:center;justify-content:center;gap:10px;width:100%;
  padding:11px;margin-top:10px;background:#fff;color:#1a2233;
  border:1px solid var(--line-2);font-weight:600;font-size:14px;
}
.btn.oauth:hover{filter:brightness(.95)}
.btn.oauth svg{flex:0 0 auto}
.divider{display:flex;align-items:center;gap:12px;color:var(--dim);font-size:12px;
  font-family:var(--mono);margin:20px 0 6px}
.divider::before,.divider::after{content:'';flex:1;height:1px;background:var(--line)}
.msg{font-size:13px;margin:14px 0 0;padding:10px 12px;border-radius:var(--r);display:none;line-height:1.45}
.msg.on{display:block}
.msg.err{background:rgba(255,107,107,.12);border:1px solid rgba(255,107,107,.35);color:#ffb0b0}
.msg.ok{background:rgba(55,211,155,.12);border:1px solid rgba(55,211,155,.35);color:#7ee7bf}
.foot{margin-top:20px;font-size:13px;color:var(--dim);text-align:center}
.row{display:flex;justify-content:space-between;align-items:center;font-size:12px;margin-top:-6px;margin-bottom:14px}
/* 密码强度条 */
.meter{height:5px;border-radius:3px;background:var(--panel-2);margin:8px 0 4px;overflow:hidden}
.meter > i{display:block;height:100%;width:0;transition:width .2s,background .2s}
.meter-txt{font-size:11px;color:var(--dim);font-family:var(--mono)}
.hint{font-size:11px;color:var(--dim);margin-top:6px;line-height:1.4}
.back{margin-top:18px;font-size:12px;text-align:center}
.back a{color:var(--dim)}
