/* ─── Course Cards ───────────────────────────────────────────── */
.course-card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: var(--space-lg);
  margin-bottom: var(--space-xl);
}

.course-card-new {
  background: var(--white);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-md);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: box-shadow var(--transition-base), transform var(--transition-base);
  cursor: pointer;
  animation: slideUp .4s ease both;
}

.course-card-new:hover {
  box-shadow: var(--shadow-lg);
  transform: translateY(-4px);
}

.course-image {
  position: relative;
  height: 160px;
  background: linear-gradient(135deg, var(--primary), var(--primary-light));
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 4rem;
}

.course-image-badge {
  position: absolute;
  top: var(--space-md);
  right: var(--space-md);
  background: var(--warning);
  color: var(--white);
  padding: .2rem .65rem;
  border-radius: var(--radius-sm);
  font-size: var(--text-xs);
  font-weight: var(--fw-bold);
}

.course-body {
  padding: var(--space-lg);
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
}

.course-category {
  font-size: var(--text-xs);
  font-weight: var(--fw-semibold);
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--primary);
}

.course-name {
  font-family: var(--font-display);
  font-size: var(--text-base);
  font-weight: var(--fw-bold);
  color: var(--dark);
  line-height: var(--lh-snug);
}

.course-meta-row {
  display: flex;
  gap: var(--space-md);
  flex-wrap: wrap;
  font-size: var(--text-xs);
  color: var(--gray);
}

.course-footer {
  padding: var(--space-md) var(--space-lg);
  border-top: 1px solid var(--gray-light);
  background: var(--gray-lighter);
}

/* Progress bar inside card */
.course-progress-row {
  margin-bottom: var(--space-sm);
}

.course-progress-label {
  display: flex;
  justify-content: space-between;
  font-size: var(--text-xs);
  color: var(--gray);
  margin-bottom: var(--space-xs);
}

/* Question card (Q&A) */
.question-card {
  background: var(--white);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm);
  padding: var(--space-lg);
  margin-bottom: var(--space-md);
  border: 1px solid var(--gray-light);
  transition: box-shadow var(--transition-base);
}

.question-card:hover {
  box-shadow: var(--shadow-md);
}

.question-header {
  display: flex;
  align-items: flex-start;
  gap: var(--space-md);
  margin-bottom: var(--space-md);
}

.question-avatar {
  width: 36px;
  height: 36px;
  border-radius: var(--radius-full);
  background: var(--primary-lighter);
  color: var(--primary);
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: var(--fw-bold);
  font-size: var(--text-sm);
  flex-shrink: 0;
}

.question-body {
  flex: 1;
}

.question-author {
  font-size: var(--text-sm);
  font-weight: var(--fw-semibold);
  color: var(--dark);
}

.question-time {
  font-size: var(--text-xs);
  color: var(--gray);
}

.question-text {
  font-size: var(--text-sm);
  color: var(--gray-dark);
  line-height: var(--lh-relaxed);
}

.answer-area {
  margin-top: var(--space-md);
  padding: var(--space-md);
  background: var(--primary-lighter);
  border-radius: var(--radius-md);
  border-left: 3px solid var(--primary);
  display: flex;
  gap: var(--space-md);
}

.answer-avatar {
  width: 30px;
  height: 30px;
  border-radius: var(--radius-full);
  background: var(--primary);
  color: var(--white);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: var(--text-xs);
  font-weight: var(--fw-bold);
  flex-shrink: 0;
}

.answer-text {
  font-size: var(--text-sm);
  color: var(--dark);
  line-height: var(--lh-relaxed);
}

@media (max-width: 768px) {
  .course-card-grid {
    grid-template-columns: 1fr;
  }
}

/* ─── Netflix-style Course Cards v2 ─────────────────────── */
.course-grid-v2 {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: var(--space-lg);
  margin-bottom: var(--space-xl);
}

.course-card-v2 {
  background: var(--white);
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: var(--shadow-md);
  cursor: pointer;
  transition: transform .35s var(--ease-spring, ease), box-shadow .3s ease;
}

.course-card-v2:hover {
  transform: translateY(-6px) scale(1.03);
  box-shadow: var(--shadow-xl), 0 0 32px rgba(0, 142, 168, .2);
  z-index: 2;
}

.course-card-v2:hover .course-cover-icon {
  transform: scale(1.12);
}

.course-card-v2:hover .course-cover {
  filter: saturate(1.12) brightness(1.03);
}

.course-cover {
  position: relative;
  height: 140px;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: filter .3s ease;
}

/* Variedade de capas (estilo "Netflix") — alterna por id do curso */
.course-cover.cover-1 { background: linear-gradient(135deg, var(--neon-cyan, #22e3ee), var(--primary-700, #006b85) 70%); }
.course-cover.cover-2 { background: linear-gradient(135deg, var(--violet-300, #b9a6fb), var(--violet-700, #6423c7) 75%); }
.course-cover.cover-3 { background: linear-gradient(135deg, #ff9d6e, #c23e14 75%); }
.course-cover.cover-4 { background: linear-gradient(135deg, #6ee7b7, var(--success-700, #0f7a4a) 75%); }

.course-cover-icon {
  font-size: 3.4rem;
  transition: transform 0.3s ease;
  filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.25));
  position: relative;
  z-index: 1;
}

.course-cover-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(0, 0, 0, 0.35), transparent 55%);
}

.course-badge-tag {
  position: absolute;
  top: 10px;
  left: 10px;
  background: #f1c40f;
  color: #5b4400;
  font-size: var(--text-xs);
  font-weight: 800;
  padding: 4px 10px;
  border-radius: 99px;
  letter-spacing: 0.04em;
  z-index: 2;
}

.course-badge-tag.done {
  background: var(--success);
  color: var(--white);
}

.course-cover-progress {
  position: absolute;
  left: 0;
  bottom: 0;
  height: 5px;
  background: #f1c40f;
  z-index: 2;
  transition: width 0.6s ease;
}

.course-card-v2-body {
  padding: 16px;
}

.course-card-v2-title {
  font-family: var(--font-display);
  font-size: var(--text-base);
  font-weight: var(--fw-bold);
  margin: 4px 0 8px;
  color: var(--dark);
  line-height: var(--lh-snug);
}

.course-card-v2-meta {
  display: flex;
  gap: 14px;
  font-size: var(--text-sm);
  color: var(--gray);
  margin-bottom: 10px;
  flex-wrap: wrap;
}

.course-trail-chip {
  display: inline-block;
  font-size: var(--text-xs);
  font-weight: var(--fw-semibold);
  background: rgba(0, 142, 168, 0.1);
  color: var(--primary);
  padding: 4px 10px;
  border-radius: 99px;
}

.course-card-v2-cta {
  display: flex;
  align-items: center;
  gap: 4px;
  margin-top: 8px;
  font-size: var(--text-sm);
  font-weight: var(--fw-bold);
  color: var(--primary);
  opacity: 0;
  transform: translateY(4px);
  transition: opacity .25s ease, transform .25s ease;
}

.course-card-v2:hover .course-card-v2-cta {
  opacity: 1;
  transform: translateY(0);
}

@media (max-width: 640px) {
  .course-grid-v2 {
    grid-template-columns: repeat(2, 1fr);
    gap: var(--space-md);
  }
  .course-cover { height: 110px; }
  .course-cover-icon { font-size: 2.4rem; }
  /* Sem :hover no toque — CTA sempre visível para não ficar inacessível */
  .course-card-v2-cta { opacity: 1; transform: none; }
}

/* ─── Hero de retomada do curso — visão do aluno (ROADMAP §2.8 C1) ──────
   Substitui o antigo course-header+progress-section por um hero com a cor
   do curso, CTA único de retomada e contexto ("aula N de M").
   --------------------------------------------------------------------- */

.course-hero {
  background: linear-gradient(135deg, var(--course-color, var(--primary)), color-mix(in srgb, var(--course-color, var(--primary)), #000 25%));
  color: #fff;
  border-radius: var(--radius-lg, 14px);
  padding: var(--space-xl, 1.5rem) var(--space-xl, 1.5rem) var(--space-lg, 1.2rem);
  margin-bottom: var(--space-xl, 1.5rem);
}

.course-hero-tag {
  display: inline-block;
  background: rgba(255,255,255,.2);
  font-size: var(--text-xs, .72rem);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .06em;
  padding: .2rem .6rem;
  border-radius: 999px;
  margin-bottom: var(--space-sm, .5rem);
}

.course-hero-title {
  font-family: var(--font-display, inherit);
  font-size: clamp(1.3rem, 3vw, 1.8rem);
  font-weight: 800;
  line-height: 1.2;
  margin-bottom: var(--space-sm, .5rem);
}

.course-hero-desc {
  font-size: var(--text-sm, .85rem);
  opacity: .85;
  line-height: 1.5;
  max-width: 52ch;
  margin-bottom: var(--space-md, .8rem);
}

.course-hero-meta {
  display: flex;
  gap: 1rem;
  flex-wrap: wrap;
  font-size: var(--text-xs, .72rem);
  opacity: .75;
  margin-bottom: var(--space-lg, 1.2rem);
}

.course-hero-meta .icon { color: rgba(255,255,255,.8); }

.course-hero-cta-row {
  display: flex;
  align-items: center;
  gap: var(--space-md, .8rem);
  flex-wrap: wrap;
  margin-bottom: var(--space-lg, 1.2rem);
}

.course-hero-cta {
  font-size: 1rem;
  font-weight: 700;
  padding: .7rem 1.6rem;
  border-radius: var(--radius, 8px);
  background: #fff;
  color: var(--course-color, var(--primary));
  border: 0;
  cursor: pointer;
  transition: transform .15s ease, box-shadow .15s ease;
  box-shadow: 0 2px 8px rgba(0,0,0,.15);
}

.course-hero-cta:hover { transform: translateY(-1px); box-shadow: 0 4px 14px rgba(0,0,0,.2); }
.course-hero-cta:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }

.course-hero-next {
  font-size: var(--text-sm, .85rem);
  opacity: .75;
}

.course-hero-progress {
  height: 5px;
  border-radius: 999px;
  background: rgba(255,255,255,.2);
  overflow: hidden;
}

.course-hero-progress-fill {
  height: 100%;
  border-radius: 999px;
  background: #fff;
  transition: width .4s ease;
}

.course-hero-pct {
  display: block;
  font-size: var(--text-xs, .72rem);
  opacity: .65;
  margin-top: 6px;
}

/* Linha de ações abaixo da lista */
.course-hero-footer {
  display: flex;
  justify-content: center;
  gap: var(--space-md, .8rem);
  padding: var(--space-lg, 1.2rem) 0 0;
}

/* Módulos na visão de retomada: item clicável com destaque no atual */
.modulo-item.modulo-current {
  border-left: 3px solid var(--primary, #008ea8);
  background: var(--cream, #f7f4ee);
}

.modulo-item.modulo-done .modulo-num {
  background: var(--success-500, #1fa96a);
  color: #fff;
}

.modulo-item[aria-disabled="true"] { opacity: .55; cursor: default; }

.modulo-lock {
  font-size: var(--text-sm, .85rem);
}

@media (max-width: 640px) {
  .course-hero { padding: var(--space-lg, 1.2rem); }
  .course-hero-title { font-size: 1.3rem; }
  .course-hero-cta { width: 100%; text-align: center; }
}

@media (prefers-reduced-motion: reduce) {
  .course-hero-progress-fill,
  .course-hero-cta { transition: none; }
}

/* ─── Course page layout with info rail (§2.8 C3) ───────────────────────── */
.course-page-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 280px;
  gap: var(--space-xl);
  align-items: start;
}

.course-page-main { min-width: 0; }

.course-info-rail {
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  position: sticky;
  top: var(--space-xl);
}

.course-rail-card {
  background: var(--white);
  border: 1px solid var(--gray-light, #e8e0d4);
  border-radius: var(--radius-lg);
  padding: var(--space-lg);
  box-shadow: var(--shadow-sm);
}

.course-rail-cert {
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-sm);
}

.course-rail-cert-icon { margin-bottom: var(--space-xs, 4px); }

.course-rail-cert-title {
  font-family: var(--font-display);
  font-size: var(--text-base);
  color: var(--navy, #2c3e50);
}

.course-rail-cert-desc {
  font-size: var(--text-sm, .85rem);
  color: var(--muted, #7f8c8d);
  margin: 0;
  line-height: 1.4;
}

.course-rail-cert-bar {
  width: 100%;
  height: 5px;
  border-radius: 999px;
  background: var(--gray-light, #e8e0d4);
  overflow: hidden;
  margin-top: var(--space-xs, 4px);
}

.course-rail-cert-fill {
  height: 100%;
  border-radius: 999px;
  background: var(--primary, #008ea8);
  transition: width .3s ease;
}

.course-rail-cert-pct {
  font-size: var(--text-xs, .72rem);
  color: var(--muted, #7f8c8d);
}

.course-rail-heading {
  font-family: var(--font-display);
  font-size: var(--text-sm, .85rem);
  font-weight: 700;
  color: var(--navy, #2c3e50);
  margin: 0 0 var(--space-sm);
  text-transform: uppercase;
  letter-spacing: .04em;
}

.course-rail-details {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
  font-size: var(--text-sm, .85rem);
  color: var(--dark, #34495e);
}

.course-rail-details li {
  display: flex;
  align-items: center;
  gap: 8px;
}

.course-rail-details strong {
  color: var(--navy, #2c3e50);
  min-width: 80px;
}

.course-rail-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.course-rail-chip {
  display: inline-block;
  padding: 4px 10px;
  font-size: var(--text-xs, .72rem);
  font-weight: 600;
  background: rgba(0, 142, 168, 0.1);
  color: var(--primary-700, #006b85);
  border-radius: 999px;
  letter-spacing: .02em;
}

@media (max-width: 900px) {
  .course-page-layout {
    grid-template-columns: minmax(0, 1fr);
  }
  .course-info-rail {
    position: static;
    order: -1;
  }
}

/* ─── Accordion de aulas — visão do aluno (ROADMAP §2.8 C2) ──────────────
   Cada Module vira um item do accordion com header clicável e painel
   expansível mostrando os passos internos (Vídeo / Material / Exercício).
   --------------------------------------------------------------------- */

.lesson-accordion { gap: 0; }

.lesson-acc-item {
  border-radius: 0;
  border-bottom: 0;
}

.lesson-acc-item:first-child { border-radius: var(--radius, 8px) var(--radius, 8px) 0 0; }
.lesson-acc-item:last-child  { border-radius: 0 0 var(--radius, 8px) var(--radius, 8px); border-bottom: 1px solid #e8e0d4; }
.lesson-acc-item:only-child  { border-radius: var(--radius, 8px); border-bottom: 1px solid #e8e0d4; }

.lesson-acc-header {
  display: flex;
  align-items: center;
  gap: .7rem;
  width: 100%;
  padding: .7rem .9rem;
  border: 0;
  background: transparent;
  text-align: left;
  cursor: pointer;
  font: inherit;
  color: inherit;
}

.lesson-acc-header:disabled { cursor: default; }

.lesson-acc-header:focus-visible {
  outline: 2px solid var(--primary, #008ea8);
  outline-offset: -2px;
}

.lesson-acc-title-group {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.lesson-acc-meta {
  display: flex;
  gap: .6rem;
  font-size: var(--text-xs, .72rem);
  color: var(--muted, #7f8c8d);
  flex-wrap: wrap;
}

.lesson-acc-meta .icon { vertical-align: -2px; }

.lesson-acc-chevron {
  flex: 0 0 auto;
  transition: transform .2s ease;
  color: var(--muted, #7f8c8d);
}

.lesson-acc-header[aria-expanded="true"] .lesson-acc-chevron {
  transform: rotate(180deg);
}

/* Painel expansível */
.lesson-acc-panel[hidden] { display: none; }

.lesson-acc-body {
  padding: 0 .9rem .8rem calc(.9rem + 24px + .7rem);
  display: flex;
  flex-direction: column;
  gap: 6px;
}

/* Passos internos da aula */
.lesson-acc-step {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px 8px;
  border-radius: var(--radius-sm, 6px);
  font-size: var(--text-sm, .85rem);
}

.lesson-acc-step-marker {
  flex: 0 0 22px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: var(--gray-light, #e8e0d4);
  color: var(--muted, #7f8c8d);
}

.lesson-acc-step.done .lesson-acc-step-marker {
  background: var(--success-500, #1fa96a);
  color: #fff;
}

.lesson-acc-step-label {
  flex: 1;
  font-weight: 500;
  color: var(--navy, #2c3e50);
}

.lesson-acc-step.done .lesson-acc-step-label { color: var(--success-700, #0f7a4a); }
.lesson-acc-step.locked .lesson-acc-step-label { color: var(--muted, #7f8c8d); }

.lesson-acc-step-status {
  font-size: var(--text-xs, .72rem);
  color: var(--muted, #7f8c8d);
}

.lesson-acc-step.done .lesson-acc-step-status { color: var(--success-700, #0f7a4a); }

.lesson-acc-action {
  padding-top: 6px;
}

@media (prefers-reduced-motion: reduce) {
  .lesson-acc-chevron { transition: none; }
}
