/* ============================================================
   AULAS EM SALA — lista e calendário
   ============================================================ */
/* ================= Aulas de código — cronograma ================= */
#aulas{ display:none; flex-direction:column; height:100vh; background:#f8f7f4; font-family:'Montserrat','Segoe UI',system-ui,sans-serif; position:relative; }
#aulas.ativo{ display:flex; }
[data-bs-theme="dark"] #aulas{ background:#0e1420; }
#aulas .barra-topo{
  background:#fff; border-bottom:1px solid rgba(0,0,0,.08);
  height:4.5vw; flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
  position:relative;   /* âncora dos botões de vista à direita */
}
[data-bs-theme="dark"] #aulas .barra-topo{ background:#141c2b; border-color:rgba(255,255,255,.08); }
#aulas .barra-titulo{
  font-family:'Barlow Condensed','Oswald',sans-serif;
  font-size:2vw; font-weight:800; color:var(--cor-primaria);
  letter-spacing:.01em;
}
[data-bs-theme="dark"] #aulas .barra-titulo{ color:#e8f1ff; }
#aulas .flutuantes-esq{
  position:absolute; top:0.8vw; left:1.2vw;
  display:flex; gap:.5vw; z-index:20;
}
/* Abas de curso (só aparecem se houver mais que um) */
#aulas .aulas-cursos{
  flex-shrink:0;
  display:flex; justify-content:center; flex-wrap:wrap; gap:1vw;
  padding:1.5vw 8vw 0;
}
#aulas .aulas-cursos:empty{ display:none; }
.curso-aba{
  background:transparent;
  border:.18vw solid var(--cor-primaria);
  color:var(--cor-primaria);
  border-radius:2vw;
  padding:.8vw 1.8vw;
  font-size:1.5vw; font-weight:700;
  cursor:pointer;
  transition:background .15s, color .15s;
}
.curso-aba.ativa{ background:var(--cor-primaria); color:#fff; }
[data-bs-theme="dark"] .curso-aba{ border-color:#93b9ff; color:#93b9ff; }
[data-bs-theme="dark"] .curso-aba.ativa{ background:#93b9ff; color:#0e1420; }
#aulas .aulas-corpo{
  flex-grow:1; overflow-y:auto;
  padding:2vw 8vw 3vw;
  display:flex; flex-direction:column; align-items:center;
}
#aulas .aulas-lista{
  width:100%; max-width:1100px;
  display:flex; flex-direction:column; gap:1vw;
}
/* No calendário as 7 colunas precisam de todo o espaço disponível */
#aulas .aulas-lista:has(.cal-grelha){ max-width:none; }
/* Convite centrado, com espaço para não colar aos botões de curso */
.aulas-convite{
  text-align:center; padding:1.6vw 4vw 1.2vw;
  font-size:1.6vw; font-weight:600; color:var(--cor-primaria);
}
[data-bs-theme="dark"] .aulas-convite{ color:#93b9ff; }

/* Botões de vista, no canto direito da barra de topo.
   Reaproveitam .btn-redondo — só marcamos o que está inativo. */
#aulas .aulas-vistas{
  position:absolute; right:1.5vw; top:50%; transform:translateY(-50%);
  display:flex; gap:.5vw;
}
.aulas-vista:not(.ativa){ background:#c9ccd1; }
[data-bs-theme="dark"] .aulas-vista:not(.ativa){ background:#2a3648; }

/* ---- Calendário do mês ---- */
.cal-topo{
  display:flex; align-items:center; justify-content:center; gap:2vw;
  margin-bottom:1vw;
}
.cal-mes{
  font-family:'Barlow Condensed','Oswald',sans-serif;
  font-size:2vw; font-weight:800; color:var(--cor-primaria);
  text-transform:uppercase; letter-spacing:.03em; min-width:14vw; text-align:center;
}
[data-bs-theme="dark"] .cal-mes{ color:#93b9ff; }
.cal-nav{
  width:2.8vw; height:2.8vw; border-radius:50%;
  border:.12vw solid #d5d9e0; background:#fff; color:var(--cor-primaria);
  font-size:1.2vw; cursor:pointer; display:flex; align-items:center; justify-content:center;
}
.cal-nav:disabled{ opacity:.3; cursor:default; }
[data-bs-theme="dark"] .cal-nav{ background:#1c2636; border-color:#2a3648; color:#93b9ff; }

/* Aviso sobreposto (marcação feita/anulada) — desaparece sozinho */
.aulas-aviso{
  position:absolute; left:50%; bottom:6vh; transform:translateX(-50%) translateY(1vh);
  background:rgba(30,122,69,.97); color:#fff;
  padding:1.6vw 3vw; border-radius:1vw;
  font-size:1.6vw; font-weight:700; text-align:center; line-height:1.35;
  box-shadow:0 .5vw 1.5vw rgba(0,0,0,.25);
  opacity:0; pointer-events:none; z-index:30;
  transition:opacity .35s ease, transform .35s ease;
}
.aulas-aviso.visivel{ opacity:1; transform:translateX(-50%) translateY(0); }
.aulas-aviso.anulado{ background:rgba(90,98,110,.97); }
.aulas-aviso small{ display:block; font-size:1.1vw; font-weight:500; margin-top:.4vw; opacity:.9; }

.cal-grelha{
  display:grid; grid-template-columns:repeat(7,1fr); gap:.6vw;
  /* sem isto cada linha ajusta-se ao seu conteúdo e a que tem menos
     aulas fica mais baixa — 1fr obriga todas à mesma altura */
  grid-auto-rows:minmax(18vh, 1fr);
  align-items:stretch;
}
.cal-dia{
  border-radius:.7vw; padding:.6vw;
  background:#f4f6f9; border:.15vw solid #d3d9e2;
  display:flex; flex-direction:column; gap:.4vw;
}
[data-bs-theme="dark"] .cal-dia{ background:#161f2e; border-color:#242f42; }
.cal-dia.sem-aulas{ opacity:.55; }
.cal-dia-cab{
  display:flex; align-items:baseline; justify-content:center; gap:.5vw;
  padding-bottom:.4vw; border-bottom:.1vw solid #e0e5ec; margin-bottom:.2vw;
}
[data-bs-theme="dark"] .cal-dia-cab{ border-bottom-color:#2a3648; }
.cal-dia-cab .ds{
  font-size:1.15vw; font-weight:800; color:#999;
  text-transform:uppercase; letter-spacing:.05em;
}
.cal-dia-cab .num{
  font-family:'Barlow Condensed','Oswald',sans-serif;
  font-size:1.9vw; font-weight:800; color:#666; line-height:1;
}
[data-bs-theme="dark"] .cal-dia-cab .num{ color:#c3cede; }
.cal-dia.hoje{ border-color:var(--cor-secundaria); }
.cal-dia.hoje .cal-dia-cab .num, .cal-dia.hoje .cal-dia-cab .ds{ color:#b06a00; }
/* Aula dentro do dia — é o que se toca para marcar lugar.
   Fundo branco sobre o dia acinzentado, para destacar e ler-se bem. */
.cal-aula{
  background:#fff; border:none;
  border-radius:.4vw; padding:.4vw .5vw;
  cursor:pointer; text-align:left; width:100%; overflow:hidden;
  box-shadow:0 .1vw .3vw rgba(0,0,0,.08);
}
[data-bs-theme="dark"] .cal-aula{ background:#243044; }
.cal-aula .h{
  font-family:'Barlow Condensed','Oswald','Roboto Condensed',sans-serif;
  font-size:1.65vw; font-weight:800; color:var(--cor-primaria);
  display:block; line-height:1.05;
}
.cal-aula .t{
  font-family:'Barlow Condensed','Oswald','Roboto Condensed',sans-serif;
  font-size:1.3vw; color:#333; line-height:1.15; display:block;
  margin-top:.2vw;
}
.cal-aula .m{ font-family:'Barlow Condensed','Oswald','Roboto Condensed',sans-serif;
  font-size:1.1vw; color:#b06a00; display:block; margin-top:.2vw; }
.cal-aula .v{ font-family:'Barlow Condensed','Oswald','Roboto Condensed',sans-serif;
  font-size:1.1vw; color:#888; display:block; margin-top:.3vw; }
[data-bs-theme="dark"] .cal-aula .h{ color:#93b9ff; }
[data-bs-theme="dark"] .cal-aula .t{ color:#dbe4f0; }
[data-bs-theme="dark"] .cal-aula .m{ color:#e0a44a; }
.cal-aula.inscrito{ background:#eaf6ef; }
[data-bs-theme="dark"] .cal-aula.inscrito{ background:#1b3528; }
.cal-aula.inscrito .h{ color:#1e7a45; }
.cal-aula.inscrito .v{ color:#1e7a45; font-weight:700; }
.cal-aula.lotado{ opacity:.55; }

.aula-cartao{
  display:flex; align-items:center; gap:2vw;
  background:#fff; border-radius:1vw;
  padding:1.4vw 2vw;
  box-shadow:0 .2vw .5vw rgba(0,0,0,.05);
  animation:balaoIn .4s ease-out both;
}
[data-bs-theme="dark"] .aula-cartao{ background:#1c2636; }
.aula-cartao.hoje{ border-left:.5vw solid var(--cor-secundaria); }
.aula-data{
  flex-shrink:0; text-align:center; min-width:8vw;
}
.aula-data .dia-num{
  font-family:'Barlow Condensed','Oswald',sans-serif;
  font-size:2.6vw; font-weight:800; line-height:1;
  color:var(--cor-primaria);
}
[data-bs-theme="dark"] .aula-data .dia-num{ color:#93b9ff; }
.aula-data .dia-sem{
  font-size:1.1vw; text-transform:uppercase; letter-spacing:.05em;
  color:#999; font-weight:700;
}
.aula-hora{
  font-family:'Barlow Condensed','Oswald',sans-serif;
  font-size:2vw; font-weight:700; color:#555;
}
[data-bs-theme="dark"] .aula-hora{ color:#aab; }
.aula-tema{
  flex-grow:1;
  color:#1a1a1a;
}
[data-bs-theme="dark"] .aula-tema{ color:#e8f1ff; }
.aula-tema-txt{ font-size:1.7vw; font-weight:600; }
/* Módulo: linha discreta por baixo do nome da aula */
.aula-modulo{
  font-size:1vw; font-weight:700; letter-spacing:.03em;
  color:#b06a00; margin-top:.25vw;
}
[data-bs-theme="dark"] .aula-modulo{ color:#e0a44a; }
.aula-hoje-badge{
  font-size:1vw; font-weight:800; color:var(--cor-secundaria);
  text-transform:uppercase; letter-spacing:.08em;
}

.aula-horasala{
  flex-shrink:0; display:flex; flex-direction:column;
  align-items:flex-start; gap:.3vw; min-width:6vw;
}
.aula-sala{
  font-size:1.1vw; font-weight:700;
  color:var(--cor-primaria);
  display:flex; align-items:center; gap:.3vw;
}
[data-bs-theme="dark"] .aula-sala{ color:#93b9ff; }

/* Estado de inscrição / lotação no cartão */
.aula-cartao{ cursor:pointer; transition:box-shadow .15s, transform .1s; }
.aula-cartao:active{ transform:scale(.99); }
.aula-cartao.inscrito{ border-left:.5vw solid #2e9e5b; }
.aula-inscrito, .aula-lotado, .aula-vagas{
  flex-shrink:0; text-align:center; min-width:7vw;
  font-size:1.15vw; font-weight:800;
  display:flex; flex-direction:column; align-items:center; gap:.2vw;
}
.aula-inscrito{ color:#2e9e5b; }
.aula-inscrito i{ font-size:1.8vw; }
.aula-lotado{ color:#c0392b; text-transform:uppercase; letter-spacing:.05em; }
.aula-vagas{ color:#999; font-weight:600; font-size:1vw; }
