/* ============================================================
   Auth & Dashboard Components
   ============================================================ */

/* ---- Login card ---- */
.login-card {
  background: var(--white);
  border: 1px solid var(--light-grey);
  border-radius: var(--radius-lg);
  padding: 40px 36px;
  box-shadow: var(--shadow-lg);
  margin-bottom: 20px;
}

.login-header {
  text-align: center;
  margin-bottom: 28px;
}

.login-wordmark {
  margin-bottom: 8px;
}

.login-egpa {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 2rem;
  letter-spacing: -0.5px;
  text-transform: uppercase;
  color: var(--navy);
}

.tier-bar-login {
  height: 5px;
  border-radius: 2.5px;
  max-width: 120px;
  margin: 8px auto;
}

.login-subtitle {
  color: var(--mid-grey);
  font-size: 0.9rem;
  margin-top: 8px;
}

.login-secondary {
  text-align: center;
  margin-top: 16px;
}

.btn-link {
  background: none;
  border: none;
  color: var(--royal);
  font-family: var(--font-body);
  font-size: 0.9rem;
  cursor: pointer;
  text-decoration: underline;
  padding: 0;
}

.btn-link:hover { color: var(--navy); }

.btn-full { width: 100%; }

.login-help {
  text-align: center;
  color: var(--mid-grey);
  font-size: 0.85rem;
}

/* ---- Dashboard ---- */
.dashboard-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  margin-bottom: 32px;
  gap: 16px;
}

.dashboard-section-heading {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 0.9rem;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  color: var(--mid-grey);
  margin-bottom: 12px;
}

.dashboard-empty {
  background: var(--off-white);
  border-radius: var(--radius-md);
  padding: 32px;
  text-align: center;
}

/* ---- Cohort card ---- */
.cohort-card {
  border: 1px solid var(--light-grey);
  border-radius: var(--radius-md);
  overflow: hidden;
  margin-bottom: 16px;
  box-shadow: var(--shadow);
}

.cohort-card-complete {
  opacity: 0.7;
}

.cohort-card-tier {
  padding: 10px 20px;
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 1rem;
  letter-spacing: -0.3px;
  text-transform: uppercase;
}

.cohort-card-body {
  padding: 16px 20px;
}

.cohort-card-meta {
  display: flex;
  gap: 20px;
  font-size: 0.9rem;
  color: var(--mid-grey);
  margin-bottom: 16px;
}

.cohort-progress-wrap {
  margin-top: 4px;
}

.cohort-progress-label {
  display: flex;
  justify-content: space-between;
  font-size: 0.8rem;
  color: var(--mid-grey);
  margin-bottom: 6px;
}

.cohort-progress-bar {
  height: 6px;
  background: var(--light-grey);
  border-radius: 3px;
  overflow: hidden;
}

.cohort-progress-fill {
  height: 100%;
  border-radius: 3px;
  transition: width 0.4s ease;
}

/* ---- Forward booking CTA ---- */
.forward-booking-cta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  background: var(--off-white);
  border-radius: var(--radius-md);
  padding: 20px 24px;
  margin-top: 28px;
}

.forward-booking-inner {
  display: flex;
  align-items: center;
  gap: 14px;
}

.forward-booking-dot {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  flex-shrink: 0;
}

.forward-booking-heading {
  font-weight: 600;
  font-size: 0.95rem;
  color: var(--navy);
  margin-bottom: 2px;
}

.forward-booking-body {
  font-size: 0.85rem;
  color: var(--mid-grey);
  line-height: 1.4;
}

/* ---- Nav additions ---- */
.nav-signout {
  font-size: 0.9rem;
  color: rgba(255,255,255,0.6);
  text-decoration: none;
}

.nav-signout:hover {
  color: var(--white);
}

/* ---- Loading state ---- */
.loading-state {
  text-align: center;
  padding: 60px 0;
  color: var(--mid-grey);
}

.spinner {
  width: 32px;
  height: 32px;
  border: 3px solid var(--light-grey);
  border-top-color: var(--royal);
  border-radius: 50%;
  animation: spin 0.7s linear infinite;
  margin: 0 auto 16px;
}

@keyframes spin { to { transform: rotate(360deg); } }

/* ---- Ghost button ---- */
.btn-ghost {
  background: transparent;
  border: 1px solid rgba(255,255,255,0.3);
  color: rgba(255,255,255,0.8);
}

.btn-ghost:hover {
  border-color: rgba(255,255,255,0.6);
  color: var(--white);
}

.btn-sm {
  padding: 6px 14px;
  font-size: 0.85rem;
}

/* ---- Inline button link (inside alert text) ---- */
.btn-link-inline {
  background: none;
  border: none;
  color: var(--royal);
  font-family: var(--font-body);
  font-size: inherit;
  cursor: pointer;
  text-decoration: underline;
  padding: 0;
  display: inline;
}

/* ---- Ghost dark (for error state secondary action) ---- */
.btn-ghost-dark {
  background: transparent;
  border: 1px solid var(--navy);
  color: var(--navy);
}
.btn-ghost-dark:hover {
  background: var(--navy);
  color: var(--white);
}

/* ---- Login tabs ---- */
.login-tabs {
  display: flex;
  border-bottom: 2px solid var(--light-grey);
  margin: 0 -36px 24px;
  padding: 0 36px;
}

.login-tab {
  background: none;
  border: none;
  border-bottom: 2px solid transparent;
  margin-bottom: -2px;
  padding: 10px 20px 12px;
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 0.9rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--mid-grey);
  cursor: pointer;
  transition: color 0.15s, border-color 0.15s;
}

.login-tab.active {
  color: var(--royal);
  border-bottom-color: var(--royal);
}

.login-tab:hover:not(.active) {
  color: var(--navy);
}

/* ---- Forming pill on tier cards ---- */
.forming-pill {
  display: inline-block;
  background: #1B2A4A;
  color: #ffffff;
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  padding: 3px 10px;
  border-radius: 20px;
  white-space: nowrap;
}

/* ---- Course content module list ---- */
.module-list {
  border: 1px solid var(--light-grey);
  border-radius: var(--radius-md);
  overflow: hidden;
}

.module-item {
  padding: 12px 16px;
  border-bottom: 1px solid var(--light-grey);
}

.module-item:last-child {
  border-bottom: none;
}

.module-title {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 0.88rem;
  text-transform: uppercase;
  letter-spacing: -0.2px;
  color: var(--navy);
  margin-bottom: 3px;
}

.module-desc {
  font-size: 0.85rem;
  color: var(--mid-grey);
  line-height: 1.6;
  font-style: italic;
}

/* ---- Course detail drawer animation ---- */
@keyframes slideUp {
  from { transform: translateY(100%); }
  to { transform: translateY(0); }
}

.course-drawer {
  animation: slideUp 0.25s ease;
}

/* ---- Per-day time picker ---- */
#time-panels {
  margin-top: 12px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.time-panel {
  background: var(--off-white);
  border: 1px solid var(--light-grey);
  border-radius: var(--radius-md);
  padding: 12px 14px;
}

.time-panel-label {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 0.78rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--navy);
  margin-bottom: 10px;
}

.time-panel-times {
  flex-wrap: wrap;
  gap: 6px;
}

.time-panel-times .toggle-chip {
  font-size: 0.82rem;
  padding: 5px 12px;
}

/* ---- Profile card ---- */
.profile-card {
  background: var(--white);
  border: 1px solid var(--light-grey);
  border-radius: var(--radius-md);
  padding: 16px 20px;
  margin-bottom: 24px;
  box-shadow: var(--shadow);
}
