.login-overlay {
  position: fixed; top: 0; left: 0; right: 0; bottom: 0;
  display: flex; align-items: center; justify-content: center;
  z-index: 999;
  background:
    radial-gradient(ellipse 800px 600px at 10% -10%, rgba(120, 80, 255, 0.22) 0%, transparent 60%),
    radial-gradient(ellipse 900px 700px at 110% 110%, rgba(255, 100, 200, 0.12) 0%, transparent 60%),
    linear-gradient(180deg, #0d0a1f 0%, #161129 50%, #1f1a38 100%);
}
.login-overlay.hidden { display: none; }

.login-card {
  width: 100%; max-width: 400px; padding: 40px 32px;
  background: rgba(22, 17, 41, 0.9);
  backdrop-filter: blur(40px) saturate(200%);
  -webkit-backdrop-filter: blur(40px) saturate(200%);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: var(--radius-xl);
  box-shadow: var(--glass-shadow-lg), inset 0 1px 0 rgba(255, 255, 255, 0.06);
  text-align: center;
  animation: modalIn 0.5s var(--ease-glass);
}

.login-title {
  font-size: 26px; font-weight: 700; margin-bottom: 6px;
  background: linear-gradient(90deg, #f8fafc 0%, #94a3b8 50%, #60a5fa 100%);
  -webkit-background-clip: text; -webkit-text-fill-color: transparent;
  background-clip: text;
}

.login-subtitle { font-size: 14px; color: var(--text-muted); margin-bottom: 28px; }

.login-form { display: flex; flex-direction: column; gap: 14px; }

.login-error { color: #f87171; font-size: 13px; min-height: 20px; margin-top: -4px; }

.login-btn {
  width: 100%; padding: 13px; border: none; border-radius: var(--radius-sm);
  font-size: 15px; font-weight: 600; font-family: inherit; cursor: pointer;
  transition: all 0.3s var(--ease-glass);
  background: linear-gradient(135deg, rgba(59, 130, 246, 0.9) 0%, rgba(99, 102, 241, 0.9) 100%);
  color: white;
  box-shadow: 0 4px 16px rgba(59, 130, 246, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.15);
}
.login-btn:hover { transform: translateY(-1px); box-shadow: 0 6px 24px rgba(59, 130, 246, 0.4), inset 0 1px 0 rgba(255, 255, 255, 0.2); }
.login-btn:active { transform: translateY(0); }
.login-btn:disabled { opacity: 0.5; cursor: not-allowed; transform: none; }

.login-switch {
  margin-top: 20px; padding-top: 18px;
  border-top: 1px solid rgba(255, 255, 255, 0.06);
  font-size: 13px; color: var(--text-muted);
}
.login-switch a { color: var(--accent-blue); cursor: pointer; }
.login-switch a:hover { text-decoration: underline; }

.login-loading {
  display: inline-block; width: 16px; height: 16px;
  border: 2px solid rgba(255,255,255,0.3); border-top-color: white;
  border-radius: 50%; animation: spin 0.6s linear infinite;
  margin-right: 8px; vertical-align: middle;
}
