.horario-grid {
  display: grid;
  grid-template-columns: 120px repeat(5, 1fr);
  gap: 8px;
  margin-top: 20px;
}

.head {
  background: var(--color-primario);
  color: white;
  font-weight: 600;
  text-align: center;
  padding: 12px;
  border-radius: var(--radio);
}

.hora {
  background: #e5e7eb;
  font-weight: 600;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--radio);
  padding: 8px;
  font-size: 0.9rem;
}

.materia {
  background: var(--color-blanco);
  padding: 12px;
  border-radius: var(--radio);
  font-size: 0.9rem;
  box-shadow: var(--sombra);
  transition: transform 0.2s;
}

.materia:hover {
  transform: translateY(-2px);
}

.materia span {
  font-size: 0.75rem;
  opacity: 0.7;
  display: block;
  margin-top: 4px;
}

/* Colores por materia */
.ia { border-left: 5px solid #ef4444; }
.model { border-left: 5px solid #f59e0b; }
.gp { border-left: 5px solid #22c55e; }
.web { border-left: 5px solid #3b82f6; }
.leg { border-left: 5px solid #8b5cf6; }

.vacio { background: transparent; }

/* Responsive para móviles */
@media (max-width: 768px) {
  .horario-grid {
    grid-template-columns: 80px repeat(5, 1fr);
    gap: 4px;
    font-size: 0.8rem;
  }

  .hora {
    font-size: 0.75rem;
    padding: 4px;
  }

  .materia {
    padding: 8px 4px;
    font-size: 0.75rem;
  }

  .materia span {
    font-size: 0.65rem;
  }
}

@media (max-width: 600px) {
  .horario-grid {
    grid-template-columns: 60px repeat(3, 1fr);
  }

  /* Ocultar columnas de jueves y viernes en móviles pequeños */
  .horario-grid > div:nth-child(6n+5),
  .horario-grid > div:nth-child(6n) {
    display: none;
  }
}
