/* --- Cards agrupadas: Primaria (compacto, sin huecos) --- */
.cards-grid.agrupado {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 14px;
  margin-top: 18px;
  align-items: start;
}

/* Forzar 6 columnas estiradas en pantallas muy grandes */
@media (min-width: 1400px) {
  .cards-grid.agrupado {
    grid-template-columns: repeat(6, 1fr);
  }
}

/* Card */
.card-area {
  background: #fff;
  padding: 12px;
  border-radius: 10px;
  box-shadow: 0 3px 8px rgba(0,0,0,0.06);
  text-align: left;
  font-size: 0.88rem;
  line-height: 1.15;
}
/* T«¿tulo del bloque («¡rea principal) */
.card-area h3 {
  font-size: 0.95rem;
  margin: 0 0 8px;
  color: #002B5B;
  font-weight: 700;
}

/* Subt«¿tulos dentro de la card (opcional) */
.card-area h4 {
  margin: 8px 0 4px;
  font-size: 0.82rem;
  color: #33475b;
  font-weight: 600;
}

/* Asignatura compacta: evita huecos grandes */
.subject.compact {
  margin: 6px 0;
  padding: 6px 0;
  border-bottom: 1px solid #f0f2f5;
}
.subject.compact:last-child { border-bottom: none; margin-bottom: 0; padding-bottom: 0; }

/* fila superior: nombre + horas */
.subject-row {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  align-items: center;
}
.asignatura {
  font-weight: 600;
  color: #222;
  font-size: 0.9rem;
}
.horas {
  font-weight: 700;
  font-size: 0.82rem;
  color: #0b3b66;
}

/* chips de grupos (1¡ë..5¡ë) */
.grades {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 6px;
}
.grade {
  background: #f3f6fa;
  padding: 4px 6px;
  border-radius: 6px;
  font-size: 0.75rem;
  color: #243447;
}

/* Ajustes para pantallas peque«Ðas */
@media (max-width: 900px) {
  .cards-grid.agrupado { grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); }
  .card-area { padding: 10px; font-size: 0.86rem; }
  .grades { gap: 5px; }
  .grade { padding: 3px 5px; font-size: 0.72rem; }
}
@media (max-width: 520px) {
  .cards-grid.agrupado { grid-template-columns: 1fr; }
  .card-area { padding: 10px; }
  .subject-row { flex-direction: row; } /* mantener nombre y horas en una l«¿nea si cabe */
}
