/* Importa la fuente Oswald de Google Fonts */
@import url('https://fonts.googleapis.com/css2?family=Oswald:wght@400;700&display=swap');

body.cal {
    margin: 0;
    font-family: 'Oswald', sans-serif; /* Aplica la fuente Oswald */
    background-image: url('image2.png'); /* RUTA CORREGIDA: Sube dos directorios y luego entra a /images/ */
    background-size: cover; /* Cubre todo el área sin repetir */
    background-position: center; /* Centra la imagen de fondo */
    background-repeat: no-repeat; /* Evita que la imagen se repita */
    min-height: 100vh; /* Asegura que el fondo cubra toda la altura de la ventana */
    display: flex; /* Para centrar el contenedor del horario */
    justify-content: center; /* Centra horizontalmente */
    align-items: flex-start; /* Alinea al inicio verticalmente */
    padding: 10px; /* Un poco menos de padding general para móviles */
    box-sizing: border-box; /* Incluye el padding en el cálculo del ancho/alto */
}

.schedule-container {
    background-color: rgba(0, 0, 0, 0.7); /* Fondo semi-transparente para la legibilidad */
    padding: 15px; /* Un poco menos de padding para móviles */
    border-radius: 15px;
    box-shadow: 0 0 20px rgba(0, 0, 0, 0.5);
    max-width: 100%; /* Ancho máximo para el horario */
    width: 100%;
    text-align: center;
    margin-top: 10px; /* Espacio desde la parte superior */
}

.schedule-header h1 {
    font-size: 1.5em; /* Tamaño del título principal, un poco más pequeño para móviles */
    font-weight: 700; /* Negrita */
    color: white;
    margin-bottom: 15px; /* Menos margen */
    border: 2px solid white; /* Borde como en la imagen */
    padding: 8px; /* Menos padding */
    display: inline-block; /* Para que el borde se ajuste al texto */
    text-transform: uppercase;
    line-height: 1.2; /* Ajusta el interlineado si el texto es muy largo */
}

/* NUEVO: Contenedor para la tabla que permite el scroll horizontal */
.table-wrapper {
    overflow-x: auto; /* Permite desplazamiento horizontal si la tabla es más ancha que su contenedor */
    -webkit-overflow-scrolling: touch; /* Suaviza el scroll en dispositivos táctiles */
    margin-bottom: 20px; /* Margen inferior para el logo */
}

.schedule-table {
    width: 100%; /* Asegura que la tabla intente ocupar todo el ancho disponible */
    min-width: 700px; /* Establece un ancho mínimo para que las columnas no se aprieten demasiado */
    border-collapse: collapse; /* Elimina el espacio entre las celdas */
}

.schedule-table th,
.schedule-table td {
    border: 1px solid white; /* Borde blanco para todas las celdas */
    padding: 6px 4px; /* Relleno ajustado para las celdas en móvil */
    text-align: center;
    font-size: 0.8em; /* Fuente ligeramente más pequeña para móviles */
    height: 28px; /* Altura fija para las celdas de tiempo y vacías */
    white-space: nowrap; /* Evita que el texto "CLASE" se rompa en varias líneas */
}

.schedule-table th {
    background-color: rgba(255, 255, 255, 0.2); /* Fondo ligeramente transparente para encabezados */
    font-weight: 700; /* Negrita */
    text-transform: uppercase;
}

.schedule-table td.clase {
    background-color: rgba(255, 255, 255, 0.4); /* Fondo más visible para las clases */
    color: white;
    font-weight: 700; /* Negrita */
}

.logo-container {
    margin-top: 15px; /* Menos margen superior para el logo */
}

.logo-container img {
    max-width: 70px; /* Tamaño del logo un poco más pequeño en móviles */
    height: auto;
    display: block; /* Para centrar la imagen */
    margin: 0 auto; /* Centra la imagen */
}

/* --- Media Queries para pantallas más grandes --- */
@media (min-width: 768px) {
    body {
        padding: 20px;
        align-items: center; /* Centra verticalmente en pantallas grandes */
    }

    .schedule-container {
        padding: 20px;
        margin-top: 0; /* Elimina el margen superior cuando está centrado verticalmente */
    }

    .schedule-header h1 {
        font-size: 1.8em;
        margin-bottom: 20px;
        padding: 10px;
    }

    .schedule-table th,
    .schedule-table td {
        padding: 8px 5px;
        font-size: 0.9em;
        height: 30px;
    }

    .logo-container {
        margin-top: 20px;
    }

    .logo-container img {
        max-width: 80px;
    }
}

/* Ajustes para pantallas aún más grandes si fuera necesario */
@media (min-width: 1024px) {
    .schedule-container {
        max-width: 100%; /* Podría ser un poco más ancho en pantallas muy grandes */
    }
    .schedule-table {
        min-width: auto; /* Permite que la tabla se ajuste al 100% sin un mínimo fijo */
    }
}