input[type=number]::-webkit-inner-spin-button,
input[type=number]::-webkit-outer-spin-button { -webkit-appearance: none;  margin: 0;
}

input[type=number] { -moz-appearance:textfield; }

/* Select2 - Encabezado de resultados frecuentes */
.select2-results__header-hint {
    font-size: 0.8em;
    font-weight: 600;
    color: #6c757d;
    background-color: #f8f9fa;
    border-bottom: 1px solid #dee2e6;
    padding: 6px 10px;
    cursor: default;
    list-style: none;
}
.select2-results__header-hint .fa-clock {
    color: #6c757d;
    margin-right: 4px;
}


.una_linea {
    white-space: nowrap;
}

.nav-treeview > .nav-item > .nav-link {
    cursor: pointer;
}

.nav-item > .nav-link {
    cursor: pointer;
}

/* ============================================
   COMPONENTES REUTILIZABLES UX/UI
   ============================================ */

/* Empty State - Estado vacío para tablas y secciones */
.empty-state {
    background: linear-gradient(to bottom, #f8f9fa, #ffffff);
    border-radius: 8px;
    padding: 40px 20px;
    margin: 10px 0;
}

.empty-state i {
    opacity: 0.5;
}

.empty-state h5 {
    font-weight: 500;
}

/* Empty state dentro de tablas */
table .empty-state {
    background: transparent;
    padding: 30px 15px;
}

/* KPI Cards - Mejoras visuales para small-box */
.small-box {
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.small-box:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

.small-box .inner h3 {
    font-weight: 700;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    font-size: clamp(1.2rem, 2vw, 2.2rem);
}

.small-box .inner p {
    font-size: 0.95rem;
}

/* Indicador de filtros activos */
.filtros-activos-badge {
    font-size: 0.7rem;
    vertical-align: middle;
    animation: pulse-badge 2s infinite;
}

@keyframes pulse-badge {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.7; }
}

/* Info Box - Mejoras visuales */
.info-box {
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.info-box:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

/* Info Box Compacto - Versión reducida */
.info-box-compact {
    min-height: 60px;
    padding: 0.5rem;
}

.info-box-compact .info-box-icon {
    width: 50px;
    font-size: 1.2rem;
}

.info-box-compact .info-box-content {
    padding: 5px 10px;
}

.info-box-compact .info-box-text {
    font-size: 0.75rem;
}

.info-box-compact .info-box-number {
    font-size: 1.1rem !important;
}

/* ============================================
   FIX DROPDOWNS EN DATATABLES CON SCROLLX
   ============================================ */

/* Permitir que los dropdowns se desborden del contenedor de DataTables */
.dataTables_wrapper {
    overflow: visible !important;
}

.dataTables_scroll {
    overflow: visible !important;
}

.dataTables_scrollHead {
    overflow: hidden !important;
}

.dataTables_scrollBody {
    overflow-x: auto !important;
    overflow-y: visible !important;
}

/* Asegurar que los dropdowns de las tablas tengan z-index alto */
.table .dropdown-menu {
    z-index: 1050;
}

/* Dar espacio mínimo para que los dropdowns se muestren */
.card-body .dataTables_wrapper {
    min-height: 150px;
    padding-bottom: 10px;
}