/* ==================== 登录页独立样式（login.html） ====================
 * login.html 不链接 style.css，自带独立设计 token，单独存放。
 */

:root {
  --primary:#409eff; --primary-dark:#2f8be6;
  --bg:#eef1f6; --card:#ffffff;
  --text:#303133; --text-sub:#909399;
  --danger:#f56c6c; --border:#dcdfe6;
}
* { box-sizing:border-box; margin:0; padding:0; }
body {
  min-height:100vh; display:flex; align-items:center; justify-content:center;
  font-family:-apple-system,BlinkMacSystemFont,'Segoe UI','PingFang SC','Microsoft YaHei',sans-serif;
  background:linear-gradient(135deg,#eef1f6 0%,#e3ecf7 100%);
}
.login-card {
  width:380px; background:var(--card); border-radius:14px;
  box-shadow:0 12px 40px rgba(0,0,0,0.12); padding:40px 36px 28px;
}
.login-logo { display:flex; align-items:center; gap:10px; font-size:20px; font-weight:700; color:var(--text); }
.login-logo .dot { width:10px; height:10px; border-radius:50%; background:var(--primary); box-shadow:0 0 10px var(--primary); }
.login-sub { margin-top:6px; font-size:12px; color:var(--text-sub); }
.form { margin-top:28px; }
.form input {
  width:100%; padding:11px 14px; margin-bottom:14px; font-size:14px;
  border:1px solid var(--border); border-radius:8px; outline:none; transition:border-color .15s;
}
.form input:focus { border-color:var(--primary); }
.error { min-height:20px; margin-bottom:6px; font-size:12px; color:var(--danger); }
.form button {
  width:100%; padding:11px; font-size:15px; font-weight:600; color:#fff; cursor:pointer;
  background:var(--primary); border:none; border-radius:8px; transition:background .15s;
}
.form button:hover { background:var(--primary-dark); }
.form button:disabled { background:#a0cfff; cursor:not-allowed; }
.login-footer { margin-top:24px; text-align:center; font-size:12px; color:var(--text-sub); }
