/*
 * Estilos propios del sitio.
 * Se cargan después de tailwind.css (no pasan por el build de Tailwind).
 */

body {
    font-family: 'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif;
}

#page-progress {
    position: fixed;
    top: 0;
    left: 0;
    height: 4px;
    width: 0;
    z-index: 9999;
    background: linear-gradient(90deg, #009FE5, #2ECC71);
    box-shadow: 0 0 8px rgba(0, 159, 229, 0.55);
    opacity: 0;
    transition: opacity 0.3s ease;
    pointer-events: none;
}

#page-progress.active {
    opacity: 1;
}

.no-scrollbar {
    scrollbar-width: none;
    -ms-overflow-style: none;
}

.no-scrollbar::-webkit-scrollbar {
    display: none;
}

@keyframes rotateInDownLeft {
    from {
        transform: rotate(-45deg);
        transform-origin: left bottom;
        opacity: 0;
    }
    to {
        transform: rotate(0);
        transform-origin: left bottom;
        opacity: 1;
    }
}

[data-animate].is-visible {
    animation: rotateInDownLeft 0.8s ease-out both;
}

/*
    responsive pagina programas academicos
 */
@media (max-width: 767.98px) {
    .table-responsive {
        display: block;
        width: 100%;
        table-layout: auto;
    }

    .table-responsive > thead,
    .table-responsive > tbody,
    .table-responsive tr,
    .table-responsive th,
    .table-responsive td {
        display: block;
        width: 100%;
    }

    /* El encabezado verde solo muestra el nombre de la escuela */
    .table-responsive > thead th:not(:first-child) {
        display: none;
    }

    .table-responsive > tbody td {
        display: flex;
        align-items: baseline;
        justify-content: space-between;
        gap: 16px;
        width: 100%;
        text-align: right;
    }

    /* Celda del nombre del programa */
    .table-responsive > tbody td:first-child {
        display: block;
        text-align: left;
    }

    /* Filas apiladas de REGISTRO y PERÍODOS */
    .table-responsive > tbody td[data-label] {
        border-top: 1px solid #e2e8f0;
    }

    .table-responsive > tbody td[data-label]::before {
        content: attr(data-label);
        flex-shrink: 0;
        font-weight: 600;
        color: #334155;
        white-space: nowrap;
    }
}
