/* auth.css — Login, Forgot Password, OTP, Reset Password */

body.auth-layout {
  background:
    radial-gradient(ellipse at 20% 50%, rgba(37,99,235,.08) 0%, transparent 60%),
    radial-gradient(ellipse at 80% 20%, rgba(99,102,241,.07) 0%, transparent 50%),
    linear-gradient(135deg, #EFF6FF 0%, #F1F5F9 60%, #E0E7FF 100%);
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
}

.auth-container {
  width: 100%;
  max-width: 420px;
}

.auth-logo {
  text-align: center;
  margin-bottom: 1.75rem;
}
.auth-logo-icon {
  width: 56px; height: 56px;
  background: linear-gradient(135deg, var(--primary) 0%, #4F46E5 100%);
  border-radius: 16px;
  display: inline-flex; align-items: center; justify-content: center;
  color: white; font-size: 1.375rem; font-weight: 700;
  margin: 0 auto .75rem;
  box-shadow: 0 6px 20px rgba(37,99,235,.35);
  letter-spacing: -.5px;
}
.auth-logo-text {
  font-size: 1.125rem; font-weight: 700; color: var(--text);
  display: block;
}
.auth-logo-sub {
  font-size: .8125rem; color: var(--text-muted);
}

.auth-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 2rem;
  box-shadow: 0 8px 32px rgba(0,0,0,.08), 0 1px 3px rgba(0,0,0,.06);
}

.auth-title {
  font-size: 1.375rem; font-weight: 700; color: var(--text);
  margin-bottom: .25rem;
}
.auth-subtitle {
  font-size: .875rem; color: var(--text-muted); margin-bottom: 1.75rem;
}

.auth-form .form-group { margin-bottom: 1.125rem; }

.auth-submit {
  width: 100%;
  padding: .6875rem 1rem;
  font-size: .9375rem;
  margin-top: .5rem;
}

.auth-footer {
  margin-top: 1.25rem;
  text-align: center;
  font-size: .875rem;
  color: var(--text-muted);
}
.auth-footer a { color: var(--primary); font-weight: 500; }

.auth-back-link {
  display: flex; align-items: center; gap: .375rem;
  font-size: .875rem; color: var(--text-muted);
  margin-bottom: 1.25rem;
  cursor: pointer;
}
.auth-back-link:hover { color: var(--primary); text-decoration: none; }

/* OTP input row */
.otp-inputs {
  display: flex; gap: .625rem; justify-content: center;
  margin: 1.25rem 0;
}
.otp-input {
  width: 48px; height: 56px;
  text-align: center; font-size: 1.5rem; font-weight: 700;
  border: 1.5px solid var(--border-dark);
  border-radius: var(--radius);
  outline: none; color: var(--text);
  background: var(--surface);
  transition: border-color var(--transition), box-shadow var(--transition), background var(--transition);
}
.otp-input:focus {
  border-color: var(--primary);
  box-shadow: 0 0 0 3px rgba(37,99,235,.12);
}
.otp-input.has-value {
  border-color: var(--primary);
  background: var(--primary-light);
  color: var(--primary-dark);
}

.resend-row {
  text-align: center; font-size: .875rem; color: var(--text-muted);
  margin-top: .75rem;
}
.resend-btn {
  background: none; border: none; color: var(--primary);
  font-weight: 500; cursor: pointer; font-size: .875rem;
  padding: 0;
}
.resend-btn:disabled { color: var(--text-muted); cursor: not-allowed; }

.password-wrapper {
  position: relative;
}
.password-toggle {
  position: absolute; right: .625rem; top: 50%; transform: translateY(-50%);
  background: none; border: none; color: var(--text-muted); cursor: pointer;
  padding: .25rem; border-radius: 4px;
  display: flex; align-items: center; justify-content: center;
  transition: color var(--transition), background var(--transition);
}
.password-toggle:hover { color: var(--text); background: var(--bg); }
