/* 登录页独立样式（不依赖 admin.css） */
*{box-sizing:border-box}
body{
  margin:0;min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;
  font:14px/1.6 -apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
  color:#0f172a;
  background:
    radial-gradient(1100px 600px at 12% -10%, #dbeafe 0%, transparent 60%),
    radial-gradient(900px 520px at 100% 0%, #e0e7ff 0%, transparent 55%),
    linear-gradient(160deg,#f6f8fc 0%,#eef2f8 100%);
}
.login-wrap{width:100%;max-width:400px}
.login-card{
  background:#fff;border:1px solid #e8edf5;border-radius:20px;padding:34px 30px 28px;
  box-shadow:0 22px 60px rgba(15,23,42,.09);
}
.login-logo{
  width:58px;height:58px;border-radius:17px;display:flex;align-items:center;justify-content:center;
  margin:0 auto 14px;
  box-shadow:0 10px 26px rgba(47,111,237,.32);
}
.login-logo img{width:58px;height:58px;border-radius:17px;display:block}
.login-title{text-align:center;font-size:19px;font-weight:700;letter-spacing:.3px}
.login-sub{text-align:center;font-size:12.5px;color:#94a3b8;margin-top:5px}
.login-mode{
  display:flex;gap:6px;margin:20px 0 18px;padding:4px;background:#f1f5f9;border-radius:12px;
}
.login-mode a{
  flex:1;text-align:center;padding:8px 4px;border-radius:9px;font-size:12.5px;color:#64748b;
  text-decoration:none;font-weight:600;transition:.18s;
}
.login-mode a.on{background:#fff;color:#2f6fed;box-shadow:0 2px 8px rgba(15,23,42,.07)}
.field{margin-bottom:14px}
.field label{display:block;font-size:12px;color:#64748b;margin-bottom:6px;font-weight:600}
.field input{
  width:100%;padding:11px 13px;border:1px solid #e2e8f0;border-radius:11px;font-size:14px;
  background:#f8fafc;outline:none;transition:.16s;font-family:inherit;
}
.field input:focus{border-color:#2f6fed;background:#fff;box-shadow:0 0 0 3px rgba(47,111,237,.12)}
.btn-login{
  width:100%;padding:12px;border:0;border-radius:12px;color:#fff;font-size:14.5px;font-weight:700;
  cursor:pointer;background:linear-gradient(135deg,#2f6fed,#4b82f0);
  box-shadow:0 8px 20px rgba(47,111,237,.28);transition:.18s;margin-top:4px;
}
.btn-login:hover{transform:translateY(-1px);box-shadow:0 12px 26px rgba(47,111,237,.34)}
.btn-login:disabled{opacity:.6;cursor:not-allowed;transform:none}
.alert{
  display:none;margin-bottom:14px;padding:10px 13px;border-radius:10px;font-size:12.5px;
  background:#fef2f2;color:#dc2626;border:1px solid #fecaca;
}
.alert.on{display:block}
.login-foot{
  margin-top:18px;padding-top:16px;border-top:1px solid #eef2f7;
  text-align:center;font-size:11.5px;color:#94a3b8;line-height:1.9;
}
.login-foot a{color:#2f6fed;text-decoration:none;margin:0 5px}
.login-foot a:hover{text-decoration:underline}
.toast-box{position:fixed;top:16px;left:50%;transform:translateX(-50%);z-index:999}
.toast{
  background:rgba(15,23,42,.92);color:#fff;padding:9px 16px;border-radius:9px;font-size:13px;
  margin-bottom:8px;box-shadow:0 8px 22px rgba(0,0,0,.2);animation:tin .22s ease;
}
@keyframes tin{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
@media (max-width:480px){
  .login-card{padding:26px 20px 22px;border-radius:16px}
}
