.login-body{
  display:flex;align-items:center;justify-content:center;
  min-height:100vh;width:100vw;padding:1rem;
}
.login-card{
  width:100%;max-width:380px;
  background:rgba(20,20,26,.85);
  border:1px solid rgba(255,255,255,.08);
  border-radius:14px;
  padding:2rem 1.8rem;
  backdrop-filter:blur(12px);
  box-shadow:0 20px 60px rgba(0,0,0,.5);
  display:flex;flex-direction:column;gap:1rem;
}
.login-brand{
  font-size:2rem;font-weight:800;text-align:center;
  background:linear-gradient(135deg,#4a6cf7,#a855f7);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.login-tag{font-size:.85rem;color:#666;text-align:center;margin-top:-.7rem}
.login-card form{display:flex;flex-direction:column;gap:.8rem}
.login-card input[type=password]{
  width:100%;padding:.7rem .9rem;border-radius:8px;
  background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);
  color:#e0e0e0;font-family:inherit;font-size:1rem;outline:none;
  transition:border-color .15s;
}
.login-card input[type=password]:focus{border-color:rgba(74,108,247,.5)}
.login-card .btn-primary{padding:.7rem 1rem;font-size:.95rem}
.login-error{
  font-size:.85rem;color:#e74c3c;text-align:center;min-height:1.2em;
  font-weight:600;
}
.login-error.locked{color:#f5a623}
.login-hint{font-size:.75rem;color:#666;text-align:center;line-height:1.45;margin-top:.4rem}
