/* ============================================================
   SOAF — auth.css
   Login, Register, Forgot Password, Verify Email
   ============================================================ */

.auth-page {
  min-height: 100vh;
  background: linear-gradient(135deg, var(--navy) 0%, var(--navy-2) 55%, var(--navy-3) 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  position: relative;
  overflow: hidden;
}
.auth-page .dot-grid-bg { opacity: 0.4; }

.auth-card {
  background: rgba(255,255,255,0.97);
  border-radius: var(--r-xl);
  box-shadow: var(--shadow-navy);
  width: 100%;
  max-width: 460px;
  padding: 40px;
  position: relative;
  z-index: 2;
}
.auth-logo-wrap {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 28px;
  justify-content: center;
}
.auth-logo {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  object-fit: contain;
  border: 1.5px solid rgba(23,184,212,0.25);
  padding: 3px;
}
.auth-brand {
  font-family: var(--font-heading);
  font-weight: 800;
  font-size: 1.5rem;
  color: var(--navy);
}
.auth-title {
  font-family: var(--font-heading);
  font-weight: 700;
  font-size: 1.4rem;
  color: var(--navy);
  margin-bottom: 6px;
  text-align: center;
}
.auth-subtitle {
  font-size: 0.9rem;
  color: var(--grey-400);
  text-align: center;
  margin-bottom: 28px;
}
.auth-form { display: flex; flex-direction: column; gap: 16px; }
.auth-divider {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 8px 0;
}
.auth-divider-line { flex: 1; height: 1px; background: var(--grey-200); }
.auth-divider-text { font-size: 0.8rem; color: var(--grey-400); white-space: nowrap; }
.auth-footer-text {
  text-align: center;
  font-size: 0.88rem;
  color: var(--grey-400);
  margin-top: 20px;
}
.auth-footer-text a {
  color: var(--cyan-2);
  font-weight: 600;
  text-decoration: none;
}
.auth-footer-text a:hover { text-decoration: underline; }

/* Register type selector */
.register-type-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  margin-bottom: 28px;
}
.register-type-card {
  border: 2px solid var(--grey-200);
  border-radius: var(--r-lg);
  padding: 20px 16px;
  text-align: center;
  cursor: pointer;
  transition: var(--transition);
  background: var(--white);
}
.register-type-card:hover,
.register-type-card:focus {
  border-color: var(--cyan);
  background: var(--cyan-light);
  outline: none;
}
.register-type-card.selected {
  border-color: var(--cyan);
  background: var(--cyan-light);
  box-shadow: 0 0 0 3px rgba(23,184,212,0.12);
}
.register-type-icon {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--cyan-light), var(--emerald-light));
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 10px;
  font-size: 1.3rem;
  color: var(--cyan-2);
}
.register-type-title {
  font-family: var(--font-heading);
  font-weight: 700;
  font-size: 0.9rem;
  color: var(--navy);
  margin-bottom: 4px;
}
.register-type-desc {
  font-size: 0.78rem;
  color: var(--grey-400);
  line-height: 1.4;
}

/* Password strength */
.password-strength {
  display: flex;
  gap: 4px;
  margin-top: 6px;
}
.strength-bar {
  flex: 1;
  height: 3px;
  border-radius: 2px;
  background: var(--grey-200);
  transition: var(--transition);
}
.strength-bar.weak   { background: #ef4444; }
.strength-bar.medium { background: #f59e0b; }
.strength-bar.strong { background: var(--emerald); }

/* Verify email page */
.verify-card {
  text-align: center;
  max-width: 420px;
}
.verify-icon {
  width: 72px;
  height: 72px;
  border-radius: 50%;
  background: var(--cyan-light);
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 20px;
  font-size: 2rem;
  color: var(--cyan-2);
}

/* ── Two-column form grid (register pages) ── */
.form-grid-2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0 20px;
}
@media (max-width: 540px) {
  .form-grid-2 { grid-template-columns: 1fr; }
}

/* ── Auth logo — clickable to home ── */
.auth-logo-wrap {
  cursor: pointer;
  text-decoration: none;
  transition: var(--transition);
}
.auth-logo-wrap:hover .auth-brand { color: var(--cyan-2); }
.auth-logo-wrap:hover .auth-logo  { border-color: rgba(23,184,212,0.5); }

/* ── Success state (forgot password sent) ── */
.auth-success-state {
  text-align: center;
  padding: 8px 0 16px;
}
.auth-success-icon {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background: var(--emerald-light);
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 16px;
  font-size: 1.8rem;
  color: var(--emerald-2);
}
.auth-success-title {
  font-family: var(--font-heading);
  font-weight: 700;
  font-size: 1.15rem;
  color: var(--navy);
  margin-bottom: 8px;
}
.auth-success-msg {
  font-size: 0.88rem;
  color: var(--grey-400);
  line-height: 1.6;
  margin-bottom: 20px;
}
