/* ──────────────────────────────────────────────────────────────────────
   login.html — page-specific styles
   Pairs with: shared.css (tokens).
   ────────────────────────────────────────────────────────────────────── */

* { margin: 0; padding: 0; }

body {
  background: var(--bg-base);
  color: var(--text-soft);
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.bg-canvas { position: fixed; top: 0; left: 0; width: 100vw; height: 100vh; z-index: 0; }

.login-card {
  position: relative; z-index: 1;
  background: var(--bg-card);
  border: 1px solid var(--border-brand);
  border-radius: var(--radius-2xl);
  padding: 48px 40px;
  width: 100%; max-width: 420px;
  backdrop-filter: blur(40px);
  box-shadow: var(--shadow-deep), 0 0 80px rgba(99, 102, 241, 0.05);
  text-align: center;
}

.logo-icon {
  width: 56px; height: 56px;
  background: var(--gradient-brand-3);
  border-radius: var(--radius-xl);
  display: inline-flex; align-items: center; justify-content: center;
  margin-bottom: 16px;
  box-shadow: var(--shadow-brand-strong);
}
.logo-icon svg { width: 28px; height: 28px; color: var(--text-primary); }

h1         { font-size: 22px; font-weight: 700; color: var(--text-primary); margin-bottom: 6px; }
.subtitle  { font-size: 13px; color: var(--text-fainter); letter-spacing: 0.04em; }
.divider   { height: 1px; background: linear-gradient(90deg, transparent, rgba(99, 102, 241, 0.2), transparent); margin: 28px 0; }

/* Tabs (login / signup-with-invite) */
.tabs {
  display: flex; gap: 0; margin-bottom: 24px;
  border-radius: var(--radius); overflow: hidden;
  border: 1px solid var(--border-muted);
}
.tab {
  flex: 1; padding: 10px; font-size: 13px; font-weight: 600;
  cursor: pointer; background: transparent; border: none;
  color: var(--text-fainter); transition: all 0.2s;
  letter-spacing: 0.02em;
  font-family: inherit;
}
.tab.active                 { background: rgba(99, 102, 241, 0.12); color: var(--brand-light); }
.tab:hover:not(.active)     { color: var(--text-quiet); }

/* Forms (login uses .form-group, not the shared .form-row) */
.form-group { margin-bottom: 16px; text-align: left; }
.form-group label {
  display: block; font-size: 11px; color: var(--text-fainter);
  margin-bottom: 6px; text-transform: uppercase; letter-spacing: 0.06em;
}
.form-group input {
  width: 100%; padding: 11px 14px;
  background: var(--bg-input);
  border: 1px solid var(--border-strong);
  border-radius: var(--radius); color: var(--text-primary);
  font-size: 14px; outline: none;
  transition: border-color 0.2s;
}
.form-group input:focus       { border-color: var(--border-brand-strong); }
.form-group input::placeholder { color: var(--text-fainter3); }

.submit-btn {
  width: 100%; padding: 13px; margin-top: 8px;
  background: var(--gradient-brand);
  border: none; border-radius: var(--radius-md);
  color: var(--text-primary); font-size: 14px; font-weight: 600;
  cursor: pointer; transition: all 0.2s;
  letter-spacing: 0.01em;
  font-family: inherit;
}
.submit-btn:hover    { opacity: 0.9; transform: translateY(-1px); box-shadow: var(--shadow-brand-strong); }
.submit-btn:active   { transform: translateY(0); }
.submit-btn:disabled { opacity: 0.4; cursor: not-allowed; transform: none; }

.forgot-link {
  display: block; margin-top: 14px; font-size: 12px;
  color: var(--text-fainter); text-decoration: none; cursor: pointer;
}
.forgot-link:hover { color: var(--brand-light); }

.error-msg {
  margin-top: 16px; padding: 10px 16px;
  background: rgba(239, 68, 68, 0.1); border: 1px solid rgba(239, 68, 68, 0.2);
  border-radius: var(--radius); color: var(--status-danger); font-size: 12px;
  display: none; text-align: left;
}
.error-msg.show { display: block; }

.success-msg {
  margin-top: 16px; padding: 10px 16px;
  background: rgba(34, 197, 94, 0.1); border: 1px solid rgba(34, 197, 94, 0.2);
  border-radius: var(--radius); color: var(--status-success); font-size: 12px;
  display: none; text-align: left;
}
.success-msg.show { display: block; }

.footer { margin-top: 24px; font-size: 11px; color: var(--text-fainter3); }

.panel        { display: none; }
.panel.active { display: block; }
