/* Complementa Bootstrap 5 para el módulo de reservas de laboratorios */

/* Grilla semanal: bloques (filas) x días lunes-viernes (columnas) */
.tabla-reservas {
    width: 100%;
    border-collapse: separate;
    border-spacing: 6px;
    table-layout: fixed;
}
.tabla-reservas th {
    font-size: .78rem;
    font-weight: 700;
    color: #6c757d;
    text-align: center;
    padding: 4px;
}
.tabla-reservas th.col-bloque { width: 130px; }
.celda-bloque-info {
    text-align: center;
    font-size: .75rem;
    color: #495057;
    background: #F1F3F5;
    border-radius: .5rem;
    padding: 8px 4px;
}
.celda-bloque-info .nombre-bloque { font-weight: 700; display: block; }
.celda-bloque-info .horario-bloque { color: #868e96; }

.celda-reserva {
    min-height: 92px;
    border-radius: .5rem;
    padding: 6px;
    vertical-align: top;
    border: 1px solid #E5E7EB;
    background: #fff;
    transition: box-shadow .15s ease;
}
.celda-reserva.libre {
    cursor: pointer;
    background: #FAFAFA;
    color: #adb5bd;
    text-align: center;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: .8rem;
}
.celda-reserva.libre:hover { background: #EEF6FF; color: #0d6efd; box-shadow: 0 2px 8px rgba(0,0,0,.06); }
.celda-reserva.ocupada { cursor: pointer; }
.celda-reserva.ocupada:hover { box-shadow: 0 2px 8px rgba(0,0,0,.1); filter: brightness(0.98); }
.celda-reserva .badge-curso { font-size: .68rem; }
.celda-reserva .titulo-reserva { font-weight: 700; font-size: .8rem; line-height: 1.2; margin-top: 2px; }
.celda-reserva .sub-reserva { font-size: .72rem; color: #495057; }

/* Vista combinada: cada celda de día+bloque tiene una mini fila por laboratorio */
.celda-combinada { display: flex; flex-direction: column; gap: 3px; }
.chip-lab {
    display: flex; align-items: center; gap: 4px;
    font-size: .68rem; padding: 3px 6px; border-radius: 5px; cursor: pointer;
    border: 1px solid transparent;
}
.chip-lab .punto-lab { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; }
.chip-lab.chip-libre { background: #F8F9FA; color: #adb5bd; border-color: #E9ECEF; }
.chip-lab.chip-libre:hover { background: #EEF6FF; color: #0d6efd; }
.chip-lab.chip-ocupado { color: #fff; }
.chip-lab .chip-texto { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* Selector de laboratorio (tabs) */
.tabs-laboratorio .nav-link { font-weight: 600; }
.tabs-laboratorio .nav-link.active { color: #fff !important; }

@media (max-width: 900px) {
    .tabla-reservas, .tabla-reservas thead, .tabla-reservas tbody, .tabla-reservas th, .tabla-reservas td, .tabla-reservas tr {
        display: block;
        width: 100%;
    }
    .tabla-reservas thead { display: none; }
    .tabla-reservas tr { margin-bottom: 1rem; border-top: 2px solid #E5E7EB; padding-top: .5rem; }
    .tabla-reservas td.col-bloque { font-weight: 700; margin-bottom: 4px; }
    .tabla-reservas td:not(.col-bloque)::before {
        content: attr(data-dia);
        display: block;
        font-size: .7rem;
        font-weight: 700;
        color: #6c757d;
        margin-bottom: 3px;
    }
}
