/**
 * responsive-tables.css
 *
 * Estilos para las tablas responsivas.
 * Se usa una clase propia .mc-table para evitar conflictos con Bootstrap
 * y se fuerza el scroll horizontal en el contenedor .table-responsive.
 * ACTUALIZADO: Columnas de contenido más anchas.
 *
 * @version 1.3.1
 * @date 2025-07-12
 * @author Baxahaun
 */

/*
 * Contenedor que hace la tabla desplazable.
 * Forzamos el overflow para asegurar el scroll horizontal.
 */
.table-responsive {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    margin-bottom: 1rem;
    border: 1px solid var(--bs-border-color);
    border-radius: var(--bs-border-radius);
}

@media (max-width: 767.98px) {
    .table-responsive {
        box-shadow: inset -10px 0 8px -8px rgba(0, 0, 0, 0.08);
    }
}

/*
 * Clase personalizada para nuestras tablas.
 */
.mc-table {
    width: 100%;
    min-width: 800px; /* Aumentado para dar más espacio a las columnas */
    margin-bottom: 0;
    color: var(--bs-body-color);
    vertical-align: top;
    border-collapse: collapse;
    table-layout: fixed;
}

.mc-table > :not(caption) > * > * {
    padding: .75rem .75rem;
    background-color: transparent;
    border: 1px solid var(--bs-border-color);
    white-space: normal;
    word-wrap: break-word;
    overflow-wrap: break-word;
}

/* Primera columna (Factor) con ancho fijo */
.mc-table > * > tr > *:first-child {
    width: 160px;
    min-width: 160px;
    font-weight: 600;
}

/* Columnas de contenido más anchas */
.mc-table > * > tr > *:nth-child(2),
.mc-table > * > tr > *:nth-child(3),
.mc-table > * > tr > *:nth-child(4) {
    width: auto;
    min-width: 200px; /* Ancho mínimo por columna de contenido */
}

/* Si hay exactamente 3 columnas, distribuir el espacio equitativamente */
.mc-table > * > tr > *:nth-child(2):nth-last-child(2),
.mc-table > * > tr > *:nth-child(3):last-child {
    width: calc((100% - 160px) / 2);
}

/* Si hay exactamente 4 columnas */
.mc-table > * > tr > *:nth-child(2):nth-last-child(3),
.mc-table > * > tr > *:nth-child(3):nth-last-child(2),
.mc-table > * > tr > *:nth-child(4):last-child {
    width: calc((100% - 160px) / 3);
}

/* En móviles, ajustar el comportamiento */
@media (max-width: 767.98px) {
    .mc-table {
        min-width: 650px; /* Ajustado para móviles pero manteniendo espacio */
    }
    
    .mc-table > * > tr > *:first-child {
        width: 140px;
        min-width: 140px;
    }
    
    .mc-table > * > tr > *:nth-child(2),
    .mc-table > * > tr > *:nth-child(3),
    .mc-table > * > tr > *:nth-child(4) {
        min-width: 170px; /* Un poco menos en móviles */
    }
    
    /* Texto más compacto en móviles */
    .mc-table > :not(caption) > * > * {
        padding: .5rem;
        font-size: 0.9rem;
    }
}

.mc-table > tbody {
    vertical-align: inherit;
}

.mc-table > thead {
    vertical-align: bottom;
}

.mc-table th {
    font-weight: bold;
    text-align: inherit;
    background-color: var(--bs-light);
}

/*
 * Estilo para las filas pares (efecto "cebra").
 */
.mc-table > tbody > tr:nth-child(even) > * {
    background-color: rgba(var(--bs-secondary-rgb), 0.05);
}

/* Opcional: Indicador visual de scroll horizontal disponible */
@media (max-width: 767.98px) {
    .table-responsive::after {
        content: "→";
        position: absolute;
        right: 10px;
        top: 50%;
        transform: translateY(-50%);
        color: var(--bs-secondary);
        font-size: 1.5rem;
        opacity: 0.5;
        pointer-events: none;
        animation: pulse 2s ease-in-out infinite;
    }
    
    @keyframes pulse {
        0%, 100% { opacity: 0.5; }
        50% { opacity: 1; }
    }
    
    .table-responsive.scrolled::after {
        display: none;
    }
}