/* =============================================================================
   AppRex PRV — Estilos de calendario y Gantt
   ============================================================================= */

.gantt-wrap {
    overflow-x: auto;
    border-radius: var(--radius);
    border: 1px solid var(--rex-gray-100);
}

.gantt-table {
    border-collapse: collapse;
    min-width: 100%;
    font-size: var(--text-xs);
}

.gantt-table th {
    background: var(--rex-teal);
    color: var(--rex-white);
    padding: .4rem .6rem;
    font-weight: 600;
    white-space: nowrap;
    border: 1px solid var(--rex-teal-dark);
    text-align: center;
}

.gantt-table th.col-nombre {
    text-align: left;
    min-width: 160px;
    position: sticky;
    left: 0;
    z-index: 2;
}

.gantt-table td {
    padding: .3rem .4rem;
    border: 1px solid var(--rex-gray-100);
    white-space: nowrap;
    vertical-align: middle;
    height: 36px;
}

.gantt-table td.col-nombre {
    font-weight: 600;
    background: var(--rex-white);
    position: sticky;
    left: 0;
    z-index: 1;
    min-width: 160px;
    border-right: 2px solid var(--rex-gray-300);
}

.gantt-table tr:hover td { background: var(--rex-gray-50); }
.gantt-table tr:hover td.col-nombre { background: var(--rex-gray-50); }

.gantt-table td.gantt-hoy {
    background: rgba(13,148,136,.15) !important;
    border-left: 2px solid var(--rex-teal);
    border-right: 2px solid var(--rex-teal);
}

.gantt-table th.gantt-hoy {
    background: var(--rex-teal-dark);
    color: var(--rex-white);
    border-color: var(--rex-teal-dark);
}

.gantt-table td.gantt-finde { background: #F0EDFB; }

.gantt-table th.gantt-th-ds {
    font-size: .65rem;
    font-weight: 500;
    opacity: .7;
    padding: .15rem .4rem;
    border-bottom: none;
}

/* Barra de vigencia de tarifa */
.gantt-cell-bar {
    font-size: .6rem;
    font-weight: 700;
    letter-spacing: .02em;
    padding: 0 3px;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    height: 22px;
    line-height: 22px;
    display: block;
    opacity: .9;
    border-radius: 3px;
}

/* Barras de vencimiento (licencias anuales, contratos) */
.gantt-cell-bar.gantt-vencimiento {
    opacity: .7;
    outline: 1px dashed currentColor;
    outline-offset: -1px;
}

/* Selector de vista */
.cal-vista-selector {
    display: flex;
    border: 1px solid var(--rex-gray-300);
    border-radius: var(--radius);
    overflow: hidden;
}
.cal-vista-btn {
    padding: .2rem .45rem;
    font-size: .72rem; font-weight: 600;
    background: var(--rex-white); color: var(--rex-gray-600);
    border: none; border-right: 1px solid var(--rex-gray-300);
    cursor: pointer; transition: background var(--transition), color var(--transition);
    white-space: nowrap;
}
.cal-vista-btn:last-child { border-right: none; }
.cal-vista-btn:hover:not(.active) { background: var(--rex-gray-100); color: var(--rex-gray-900); }
.cal-vista-btn.active { background: var(--rex-teal); color: var(--rex-white); }

/* Filtros de calendario */
.calendario-filtros {
    display: flex; align-items: center; gap: 1rem;
    margin-bottom: 1rem; flex-wrap: wrap;
}
.calendario-nav { display: flex; align-items: center; gap: .5rem; }
.calendario-nav .mes-label {
    font-weight: 700; font-size: var(--text-lg);
    color: var(--rex-teal-dark);
    min-width: 160px; text-align: center;
}

/* Leyenda */
.leyenda { display: flex; flex-wrap: wrap; gap: .75rem 1.25rem; align-items: center; font-size: var(--text-xs); color: var(--rex-gray-600); }
.leyenda-item { display: flex; align-items: center; gap: .4rem; }
.leyenda-color { width: 14px; height: 14px; border-radius: 3px; flex-shrink: 0; }

@media (max-width: 768px) {
    #gantt-leyenda { flex: none; }
    #gantt-leyenda span { font-size: .65rem !important; padding: .1rem .35rem !important; }
    .cal-vista-btn { padding: .18rem .38rem; font-size: .68rem; }
}
