/* ============================================
   FuelOdo - Auth Page Styles (Premium)
   ============================================ */

.auth-page {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--bg-primary);
  position: relative;
  overflow: hidden;
}

/* ── Animated Gradient Orbs ── */
.auth-page::before {
  content: '';
  position: absolute;
  width: 400px; height: 400px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(99,102,241,0.18), transparent 70%);
  top: -150px; right: -100px;
  pointer-events: none;
  animation: float 18s ease-in-out infinite;
  filter: blur(40px);
}

.auth-page::after {
  content: '';
  position: absolute;
  width: 350px; height: 350px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(6,182,212,0.12), transparent 70%);
  bottom: -120px; left: -80px;
  pointer-events: none;
  animation: float 22s ease-in-out infinite reverse;
  filter: blur(40px);
}

/* ── Floating Particles Container ── */
.auth-particles {
  position: absolute;
  inset: 0;
  pointer-events: none;
  overflow: hidden;
  z-index: 0;
}

.auth-particle {
  position: absolute;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: var(--primary-400);
  opacity: 0;
  animation: particle-rise 8s ease-in-out infinite;
}

.auth-particle:nth-child(1) { left: 10%; animation-delay: 0s; animation-duration: 7s; }
.auth-particle:nth-child(2) { left: 25%; animation-delay: 1.5s; animation-duration: 9s; background: var(--cyan-400); }
.auth-particle:nth-child(3) { left: 40%; animation-delay: 3s; animation-duration: 6s; }
.auth-particle:nth-child(4) { left: 55%; animation-delay: 0.5s; animation-duration: 8s; background: var(--accent-400); }
.auth-particle:nth-child(5) { left: 70%; animation-delay: 2s; animation-duration: 10s; background: var(--cyan-400); }
.auth-particle:nth-child(6) { left: 85%; animation-delay: 4s; animation-duration: 7s; }
.auth-particle:nth-child(7) { left: 50%; animation-delay: 5s; animation-duration: 9s; background: var(--accent-400); }
.auth-particle:nth-child(8) { left: 15%; animation-delay: 2.5s; animation-duration: 11s; background: var(--cyan-400); }

@keyframes particle-rise {
  0% { bottom: -10px; opacity: 0; transform: translateX(0) scale(1); }
  10% { opacity: 0.6; }
  50% { opacity: 0.3; transform: translateX(20px) scale(1.5); }
  90% { opacity: 0.1; }
  100% { bottom: 100%; opacity: 0; transform: translateX(-10px) scale(0.5); }
}

.auth-container {
  width: 100%;
  max-width: 420px;
  padding: var(--space-8);
  animation: slideUp 0.6s cubic-bezier(0.22, 1, 0.36, 1);
  position: relative;
  z-index: 1;
}

/* ── Glow Container (shimmer border) ── */
.auth-glow {
  position: relative;
  border-radius: calc(var(--radius-2xl) + 2px);
  padding: 1px;
  background: linear-gradient(135deg,
    rgba(99,102,241,0.4),
    rgba(6,182,212,0.2),
    rgba(34,197,94,0.3),
    rgba(99,102,241,0.4)
  );
  background-size: 300% 300%;
  animation: gradient-shift 6s ease infinite;
}

.auth-card {
  background: var(--bg-glass);
  backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(24px);
  border: 1px solid rgba(255,255,255,0.06);
  border-radius: var(--radius-2xl);
  padding: var(--space-10);
  box-shadow:
    var(--shadow-xl),
    inset 0 1px 0 rgba(255,255,255,0.08);
  position: relative;
  overflow: hidden;
}

/* Subtle shine sweep on the card */
.auth-card::before {
  content: '';
  position: absolute;
  top: 0; left: -100%;
  width: 100%; height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.04), transparent);
  animation: card-shine 4s ease-in-out infinite;
  pointer-events: none;
}

@keyframes card-shine {
  0%, 100% { left: -100%; }
  50% { left: 100%; }
}

.auth-logo {
  text-align: center;
  margin-bottom: var(--space-8);
}

.auth-logo .logo-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto var(--space-4);
  width: 80px;
  height: 80px;
  position: relative;
}

/* Glow ring behind the logo icon */
.auth-logo .logo-icon::after {
  content: '';
  position: absolute;
  inset: -8px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(99,102,241,0.25), transparent 70%);
  animation: glow-pulse 3s ease-in-out infinite;
  pointer-events: none;
}

.auth-logo h1 {
  font-size: var(--text-3xl);
  font-weight: 800;
  background: linear-gradient(135deg, var(--primary-400), var(--cyan-400), var(--accent-400));
  background-size: 200% auto;
  animation: gradient-shift 4s ease infinite;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.auth-logo p {
  font-size: var(--text-sm);
  color: var(--text-tertiary);
  margin-top: var(--space-1);
  letter-spacing: 0.02em;
}

.auth-step {
  display: none;
}

.auth-step.active {
  display: block;
  animation: fadeIn var(--transition-base) ease-out;
}

.auth-step h3 {
  font-size: var(--text-lg);
  margin-bottom: var(--space-2);
  text-align: center;
}

.auth-step p {
  font-size: var(--text-sm);
  color: var(--text-secondary);
  text-align: center;
  margin-bottom: var(--space-6);
}

/* ── Auth Tabs ── */
.auth-tabs {
  display: flex;
  background: var(--bg-tertiary);
  border-radius: var(--radius-full);
  padding: 3px;
  margin-bottom: var(--space-6);
  border: 1px solid var(--border-color);
  position: relative;
}

.auth-tab {
  flex: 1;
  padding: var(--space-3) var(--space-4);
  text-align: center;
  font-size: var(--text-sm);
  font-weight: 600;
  color: var(--text-secondary);
  cursor: pointer;
  border-radius: var(--radius-full);
  transition: all var(--transition-fast);
  position: relative;
  z-index: 1;
}

.auth-tab.active {
  color: white;
  background: var(--gradient-primary);
  box-shadow: 0 2px 12px rgba(99, 102, 241, 0.4);
}

.auth-tab:not(.active):hover {
  color: var(--text-primary);
}

/* ── Auth Divider ── */
.auth-divider {
  display: flex;
  align-items: center;
  gap: var(--space-4);
  margin: var(--space-6) 0;
}

.auth-divider::before,
.auth-divider::after {
  content: '';
  flex: 1;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--border-strong), transparent);
}

.auth-divider span {
  font-size: var(--text-xs);
  color: var(--text-tertiary);
  white-space: nowrap;
}

/* ── Google Button ── */
.btn-google {
  background: var(--bg-tertiary);
  border: 1.5px solid var(--border-strong);
  color: var(--text-primary);
  font-weight: 600;
  gap: var(--space-3);
  transition: all var(--transition-base);
  position: relative;
  overflow: hidden;
}

.btn-google::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  padding: 1.5px;
  background: linear-gradient(135deg, #4285f4, #ea4335, #fbbc05, #34a853);
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  opacity: 0;
  transition: opacity var(--transition-base);
}

.btn-google:hover {
  background: var(--bg-glass-hover);
  border-color: transparent;
  box-shadow: 0 4px 16px rgba(66, 133, 244, 0.15);
  transform: translateY(-1px);
}

.btn-google:hover::before {
  opacity: 1;
}

.btn-google svg {
  flex-shrink: 0;
}

/* ── Forgot Password ── */
.forgot-link {
  text-align: center;
  margin-top: var(--space-3);
}

.forgot-link button {
  font-size: var(--text-sm);
  color: var(--primary-400);
  font-weight: 500;
  cursor: pointer;
  transition: all var(--transition-fast);
  position: relative;
}

.forgot-link button::after {
  content: '';
  position: absolute;
  bottom: -2px; left: 0;
  width: 0; height: 1px;
  background: var(--primary-400);
  transition: width var(--transition-base);
}

.forgot-link button:hover {
  color: var(--primary-300);
}

.forgot-link button:hover::after {
  width: 100%;
}

.auth-btn {
  width: 100%;
  padding: var(--space-4);
  font-size: var(--text-base);
  margin-top: var(--space-4);
}

.auth-footer {
  text-align: center;
  margin-top: var(--space-6);
  padding-top: var(--space-6);
  border-top: 1px solid var(--border-color);
  font-size: var(--text-xs);
  color: var(--text-tertiary);
}

/* Theme toggle on auth page */
.auth-theme-toggle {
  position: fixed;
  top: var(--space-6);
  right: var(--space-6);
  z-index: 10;
}
.auth-theme-toggle .theme-toggle {
  pointer-events: auto;
}

/* ── Input Focus Glow ── */
.auth-card .form-input:focus {
  border-color: var(--primary-400);
  box-shadow:
    0 0 0 3px rgba(99, 102, 241, 0.15),
    0 0 20px rgba(99, 102, 241, 0.08);
}
