/* animations.css - GEO ACADEMY Animations */

/* ── PAGE LOAD ── */
@keyframes fadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

@keyframes slideUp {
  from { opacity: 0; transform: translateY(28px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes slideInLeft {
  from { opacity: 0; transform: translateX(-28px); }
  to { opacity: 1; transform: translateX(0); }
}

@keyframes slideInRight {
  from { opacity: 0; transform: translateX(28px); }
  to { opacity: 1; transform: translateX(0); }
}

@keyframes scaleIn {
  from { opacity: 0; transform: scale(0.92); }
  to { opacity: 1; transform: scale(1); }
}

/* ── APPLY TO AUTH PAGES ── */
.auth-page {
  animation: fadeIn 0.5s ease both;
}

.auth-left {
  animation: slideInLeft 0.6s cubic-bezier(0.4, 0, 0.2, 1) 0.1s both;
}

.auth-right {
  animation: slideInRight 0.6s cubic-bezier(0.4, 0, 0.2, 1) 0.1s both;
}

.auth-card {
  animation: slideUp 0.7s cubic-bezier(0.4, 0, 0.2, 1) 0.25s both;
}

.auth-logo-wrap {
  animation: slideUp 0.6s cubic-bezier(0.4, 0, 0.2, 1) 0.15s both;
}

/* Stagger form groups */
.form-group:nth-child(1) { animation: slideUp 0.5s ease 0.35s both; }
.form-group:nth-child(2) { animation: slideUp 0.5s ease 0.42s both; }
.form-group:nth-child(3) { animation: slideUp 0.5s ease 0.49s both; }
.form-group:nth-child(4) { animation: slideUp 0.5s ease 0.56s both; }
.form-group:nth-child(5) { animation: slideUp 0.5s ease 0.63s both; }

.btn-primary {
  animation: slideUp 0.5s ease 0.65s both;
}

.auth-footer {
  animation: slideUp 0.5s ease 0.72s both;
}

/* ── GRADIENT BG ANIMATION ── */
@keyframes gradientShift {
  0% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}

.auth-right {
  background-size: 200% 200%;
  animation: gradientShift 10s ease infinite, slideInRight 0.6s cubic-bezier(0.4, 0, 0.2, 1) 0.1s both;
}

/* ── DASHBOARD ── */
.dash-section.active .stat-card {
  animation: scaleIn 0.4s ease both;
}

.stat-card:nth-child(1) { animation-delay: 0.05s; }
.stat-card:nth-child(2) { animation-delay: 0.1s; }
.stat-card:nth-child(3) { animation-delay: 0.15s; }
.stat-card:nth-child(4) { animation-delay: 0.2s; }

.account-card {
  animation: slideUp 0.4s ease both;
}

.account-card:nth-child(1) { animation-delay: 0.05s; }
.account-card:nth-child(2) { animation-delay: 0.1s; }
.account-card:nth-child(3) { animation-delay: 0.15s; }

/* ── SIDEBAR ── */
@media (min-width: 769px) {
  .sidebar {
    animation: slideInLeft 0.5s cubic-bezier(0.4, 0, 0.2, 1) both;
  }
}

.main-content {
  animation: fadeIn 0.6s ease 0.2s both;
}

/* ── CARD HOVER ── */
.stat-card {
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.stat-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-lg) !important;
}

/* ── TABLE ROW ── */
tbody tr {
  transition: background 0.15s ease;
}

/* ── APPROVE/REJECT CARD STATES ── */
.account-card {
  transition: all 0.4s ease;
}

.card-approved {
  border-left: 4px solid #16a34a !important;
  background: #f0fdf4 !important;
}

.card-rejected {
  border-left: 4px solid var(--red) !important;
  background: var(--red-pale) !important;
  opacity: 0.7;
}

.approved-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 16px;
  background: #dcfce7;
  color: #16a34a;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 700;
}

.rejected-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 16px;
  background: var(--red-pale);
  color: var(--red);
  border-radius: 8px;
  font-size: 13px;
  font-weight: 700;
}

/* ── NAV ITEM ── */
.nav-item {
  transition: all 0.2s ease;
}

/* ── INPUT FOCUS RING ── */
.form-control {
  transition: border-color 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}
