.student-dashboard {
  min-height: 100vh;
  padding: calc(var(--header-pad, 2.5rem) + var(--space-16, 4rem)) var(--container-padding, 1.5rem) var(--space-20, 5rem);
  background: var(--color-bg, #f5f5f7);
  color: var(--color-fg, #1d1d1f);
}

.student-dashboard__header {
  display: flex;
  flex-direction: column;
  gap: var(--space-5, 1.25rem);
  max-width: var(--container-max, 1200px);
  margin: 0 auto var(--space-8, 2rem);
}

.student-dashboard__eyebrow {
  margin: 0 0 var(--space-3, 0.75rem);
  color: var(--color-fg-subtle, #6e6e72);
  font-family: var(--font-ui, system-ui);
  font-size: var(--text-small, 0.75rem);
  font-weight: var(--font-bold, 700);
  letter-spacing: var(--tracking-wide, 0.025em);
  text-transform: uppercase;
}

.student-dashboard__eyebrow a {
  color: inherit;
  text-decoration: none;
}

.student-dashboard__title {
  max-width: 16ch;
  margin: 0;
  color: var(--color-fg, #1d1d1f);
  font-family: var(--font-heading, system-ui);
  font-size: clamp(var(--text-h1, 2.6rem), 6vw, var(--text-d2, 3.5rem));
  font-weight: var(--font-medium, 500);
  line-height: var(--leading-tight, 1.2);
}

.student-dashboard__lead {
  max-width: 48rem;
  margin: var(--space-4, 1rem) 0 0;
  color: var(--color-fg-subtle, #6e6e72);
  font-size: var(--text-h6, 1.05rem);
  line-height: var(--leading-normal, 1.5);
}

.student-dashboard__grid {
  display: grid;
  max-width: var(--container-max, 1200px);
  margin: 0 auto;
  gap: var(--space-5, 1.25rem);
}

.student-dashboard__empty,
.student-dashboard__panel,
.student-track-card {
  background: #fff;
  border: 1px solid var(--color-border, #e9e9e9);
  border-radius: var(--radius-lg, 16px);
}

.student-dashboard__empty,
.student-dashboard__panel {
  max-width: 42rem;
  margin: 0 auto;
  padding: var(--space-8, 2rem);
}

.student-dashboard__panel--center {
  text-align: left;
}

.student-dashboard__empty h2 {
  margin: 0 0 var(--space-3, 0.75rem);
  font-size: var(--text-h4, 1.5rem);
}

.student-dashboard__empty p {
  margin: 0 0 var(--space-5, 1.25rem);
  color: var(--color-fg-subtle, #6e6e72);
}

.student-track-card {
  display: flex;
  min-height: 20rem;
  flex-direction: column;
  padding: var(--space-6, 1.5rem);
}

.student-track-card__head,
.student-track-card__actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3, 0.75rem);
}

.student-track-card__kicker {
  margin: 0;
  color: var(--color-fg-subtle, #6e6e72);
  font-size: var(--text-small, 0.75rem);
  font-weight: var(--font-bold, 700);
  letter-spacing: var(--tracking-wide, 0.025em);
  text-transform: uppercase;
}

.student-track-card__status {
  display: inline-flex;
  min-height: 2rem;
  align-items: center;
  padding: 0 var(--space-3, 0.75rem);
  color: var(--color-primary-dark, #125e46);
  background: rgba(4, 181, 0, 0.12);
  border-radius: var(--radius-full, 100px);
  font-size: var(--text-small, 0.75rem);
  font-weight: var(--font-bold, 700);
}

.student-track-card--expired .student-track-card__status {
  color: var(--color-error, #dc2626);
  background: rgba(220, 38, 38, 0.1);
}

.student-track-card__title {
  margin: var(--space-8, 2rem) 0 var(--space-4, 1rem);
  font-size: var(--text-h3, 1.8rem);
  line-height: var(--leading-tight, 1.2);
}

.student-track-card__meta {
  margin: 0;
  color: var(--color-fg-subtle, #6e6e72);
  font-size: var(--text-p, 0.875rem);
}

.student-track-card__meta--strong {
  margin-top: var(--space-2, 0.5rem);
  color: var(--color-fg, #1d1d1f);
  font-weight: var(--font-bold, 700);
}

.student-track-card__progress {
  height: 0.75rem;
  margin-top: auto;
  overflow: hidden;
  background: var(--color-neutral-100, #f7f7f7);
  border-radius: var(--radius-full, 100px);
}

.student-track-summary,
.student-module-list {
  max-width: var(--container-max, 1200px);
  margin-right: auto;
  margin-left: auto;
}

.student-track-summary {
  margin-bottom: var(--space-8, 2rem);
  padding: var(--space-5, 1.25rem);
  background: #fff;
  border: 1px solid var(--color-border, #e9e9e9);
  border-radius: var(--radius-lg, 16px);
}

.student-track-summary p {
  margin: var(--space-3, 0.75rem) 0 0;
  color: var(--color-fg-subtle, #6e6e72);
  font-size: var(--text-p, 0.875rem);
}

.student-track-summary__progress {
  height: 0.75rem;
  overflow: hidden;
  background: var(--color-neutral-100, #f7f7f7);
  border-radius: var(--radius-full, 100px);
}

.student-track-summary__progress span {
  display: block;
  width: var(--progress, 0);
  height: 100%;
  background: var(--color-cta, #3f46ff);
}

.student-module-list {
  display: grid;
  gap: var(--space-5, 1.25rem);
}

.student-module {
  padding: var(--space-5, 1.25rem);
  background: #fff;
  border: 1px solid var(--color-border, #e9e9e9);
  border-radius: var(--radius-lg, 16px);
}

.student-module.is-locked {
  background: rgba(255, 255, 255, 0.62);
}

.student-module__head {
  display: flex;
  flex-direction: column;
  gap: var(--space-4, 1rem);
  margin-bottom: var(--space-5, 1.25rem);
}

.student-module__weeks {
  margin: 0 0 var(--space-2, 0.5rem);
  color: var(--color-fg-subtle, #6e6e72);
  font-size: var(--text-small, 0.75rem);
  font-weight: var(--font-bold, 700);
  letter-spacing: var(--tracking-wide, 0.025em);
  text-transform: uppercase;
}

.student-module__title {
  margin: 0;
  font-size: var(--text-h4, 1.5rem);
  line-height: var(--leading-tight, 1.2);
}

.student-module__status {
  display: inline-flex;
  align-self: flex-start;
  min-height: 2rem;
  align-items: center;
  padding: 0 var(--space-3, 0.75rem);
  color: var(--color-primary-dark, #125e46);
  background: rgba(4, 181, 0, 0.12);
  border-radius: var(--radius-full, 100px);
  font-size: var(--text-small, 0.75rem);
  font-weight: var(--font-bold, 700);
}

.student-module.is-locked .student-module__status {
  color: var(--color-neutral-600, #525252);
  background: var(--color-neutral-100, #f7f7f7);
}

.student-lesson-list {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-3, 0.75rem);
}

.student-lesson {
  min-height: 8rem;
  padding: var(--space-4, 1rem);
  background: var(--lesson-bg, var(--color-neutral-100, #f7f7f7));
  border: 1px solid color-mix(in srgb, var(--lesson-bg, #f7f7f7) 78%, #000);
  border-radius: var(--radius-md, 8px);
}

.student-module.is-locked .student-lesson {
  opacity: 0.62;
}

.student-lesson--microcast { --lesson-bg: #a8d8fb; }
.student-lesson--livro { --lesson-bg: #aeece7; }
.student-lesson--exercicio { --lesson-bg: #ffe2a1; }
.student-lesson--nano { --lesson-bg: #ffa8a1; }
.student-lesson--extra { --lesson-bg: #cbb3ff; }

.student-lesson__type {
  display: block;
  margin-bottom: var(--space-3, 0.75rem);
  font-size: var(--text-small, 0.75rem);
  font-weight: var(--font-bold, 700);
}

.student-lesson__title {
  margin: 0;
  font-size: var(--text-p, 0.875rem);
  line-height: var(--leading-snug, 1.375);
}

.student-lesson__state {
  margin: var(--space-4, 1rem) 0 0;
  color: color-mix(in srgb, var(--color-fg, #1d1d1f) 70%, transparent);
  font-size: var(--text-small, 0.75rem);
}

.student-track-card__progress span {
  display: block;
  width: var(--progress, 0);
  height: 100%;
  background: var(--color-cta, #3f46ff);
}

.student-track-card__progress-label {
  margin: var(--space-3, 0.75rem) 0 var(--space-5, 1.25rem);
  color: var(--color-fg-subtle, #6e6e72);
  font-size: var(--text-small, 0.75rem);
}

.student-dashboard__button,
.student-dashboard__link {
  display: inline-flex;
  min-height: 2.75rem;
  align-items: center;
  justify-content: center;
  padding: 0 var(--space-5, 1.25rem);
  color: var(--color-cta-fg, #fff);
  background: var(--color-cta, #3f46ff);
  border-radius: var(--radius-full, 100px);
  font-family: var(--font-ui, system-ui);
  font-size: var(--text-p, 0.875rem);
  font-weight: var(--font-medium, 500);
  text-decoration: none;
}

.student-dashboard__link {
  align-self: flex-start;
  color: var(--color-fg, #1d1d1f);
  background: #fff;
  border: 1px solid var(--color-border, #e9e9e9);
}

@media (min-width: 768px) {
  .student-dashboard__header {
    flex-direction: row;
    align-items: flex-end;
    justify-content: space-between;
  }

  .student-dashboard__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .student-module__head {
    flex-direction: row;
    align-items: flex-start;
    justify-content: space-between;
  }

  .student-lesson-list {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (min-width: 1180px) {
  .student-dashboard__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
