/* admin_tweaks.css */
/* Custom overrides for Jazzmin admin theme */

/* ========================================================================
   1. NEXUS DATE RANGE FILTER — daterangepicker.com widget
   ======================================================================== */

/* Outer flex container holding the wrapper + hidden inputs */
.nexus-date-range-filter {
    display: inline-flex !important;
    align-items: center !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* The visible trigger wrapper: icon + input + optional clear button */
.nexus-drp-wrapper {
    position: relative;
    display: inline-flex;
    align-items: center;
}

/* Calendar icon on the left */
.nexus-drp-icon {
    position: absolute;
    left: 9px;
    top: 50%;
    transform: translateY(-50%);
    color: #6c757d;
    pointer-events: none;
    display: flex;
    align-items: center;
    z-index: 1;
}

/* The visible text input */
.nexus-drp-input {
    width: 220px !important;
    height: 38px !important;
    padding: 6px 30px 6px 30px !important;
    border: 1px solid #ced4da !important;
    border-radius: 4px !important;
    font-size: 13px !important;
    box-sizing: border-box !important;
    background-color: #fff !important;
    color: #495057 !important;
    cursor: pointer !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}

.nexus-drp-input:focus {
    border-color: #80bdff !important;
    outline: none !important;
    box-shadow: 0 0 0 2px rgba(0, 123, 255, 0.15) !important;
}

/* Clear (×) button — shown only when a date is active */
.nexus-drp-clear {
    position: absolute;
    right: 6px;
    top: 50%;
    transform: translateY(-50%);
    background: none;
    border: none;
    padding: 0 4px;
    font-size: 16px;
    line-height: 1;
    color: #9e9e9e;
    cursor: pointer;
    z-index: 2;
}
.nexus-drp-clear:hover { color: #333; }

/* ========================================================================
   2. daterangepicker popup overrides (to fit Jazzmin dark/light UI)
   ======================================================================== */

.daterangepicker {
    font-family: inherit !important;
    font-size: 13px !important;
    border-radius: 6px !important;
    border: 1px solid #dee2e6 !important;
    box-shadow: 0 4px 16px rgba(0,0,0,0.12) !important;
    z-index: 9999 !important;
}

.daterangepicker .drp-buttons .btn {
    font-size: 12px !important;
    padding: 4px 12px !important;
}

.daterangepicker .drp-buttons .applyBtn {
    background-color: #007bff !important;
    border-color: #007bff !important;
}

.daterangepicker td.active,
.daterangepicker td.active:hover {
    background-color: #007bff !important;
    border-color: #007bff !important;
}

.daterangepicker td.in-range {
    background-color: #cce5ff !important;
    color: #004085 !important;
}

.daterangepicker .ranges li.active {
    background-color: #007bff !important;
}

/* ========================================================================
   3. JAZZMIN FILTER BAR: compact horizontal row
   ======================================================================== */

#change-list-filters {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    gap: 10px !important;
    padding: 10px 15px !important;
}

#change-list-filters #changelist-search {
    display: inline-flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    gap: 10px !important;
    flex: 0 0 auto !important;
    width: auto !important;
    margin: 0 !important;
    padding: 0 !important;
}

#change-list-filters .form-group {
    flex: 0 0 auto !important;
    width: auto !important;
    max-width: 200px !important;
    min-width: 0 !important;
    margin: 0 !important;
}

#change-list-filters .select2-container {
    width: auto !important;
    max-width: 200px !important;
    min-width: 120px !important;
}

#change-list-filters select.search-filter {
    width: auto !important;
    max-width: 200px !important;
}

#change-list-filters #searchbar {
    width: 180px !important;
    max-width: 220px !important;
    min-width: 0 !important;
    height: 38px !important;
}

#change-list-filters #search_group {
    flex: 0 0 auto !important;
    width: auto !important;
    max-width: none !important;
    margin: 0 !important;
}

/* ========================================================================
   4. LOGIN LOGO MAX-HEIGHT
   ======================================================================== */
.login-logo img {
    max-height: 150px !important;
    width: auto !important;
}

/* ========================================================================
   5. STICKY SIDEBAR PARA FORMULARIOS LARGOS (EJ: INFORMES)
   ======================================================================== */
@media (min-width: 992px) {
    #jazzy-actions {
        position: sticky !important;
        top: 70px;
        z-index: 100;
    }
}

/* ========================================================================
   6. FILTROS RESPONSIVOS EN MÓVILES
   ======================================================================== */
@media (max-width: 768px) {

    /* Contenedor principal: columna, sin scroll horizontal */
    #change-list-filters {
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 8px !important;
        padding: 10px !important;
        overflow-x: hidden !important;
        width: 100% !important;
        box-sizing: border-box !important;
    }

    /* Búsqueda: ocupa todo el ancho */
    #change-list-filters #changelist-search {
        flex-direction: column !important;
        align-items: stretch !important;
        width: 100% !important;
    }

    /* Cada grupo de filtro: ancho completo */
    #change-list-filters .form-group {
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 !important;
    }

    /* Select2: ancho completo */
    #change-list-filters .select2-container {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
    }

    /* Selects nativos: ancho completo */
    #change-list-filters select.search-filter {
        width: 100% !important;
        max-width: 100% !important;
    }

    /* Barra de búsqueda de texto: ancho completo */
    #change-list-filters #searchbar {
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
    }

    /* Grupo de búsqueda: ancho completo */
    #change-list-filters #search_group {
        width: 100% !important;
        max-width: 100% !important;
    }

    /* Date-range picker: ancho completo */
    .nexus-date-range-filter {
        display: flex !important;
        width: 100% !important;
    }

    .nexus-drp-wrapper {
        width: 100% !important;
    }

    .nexus-drp-input {
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
    }
}

/* ========================================================================
   7. SELECT2 MULTISELECT — Permisos Específicos Adicionales (inline)
   Los permisos seleccionados se apilan verticalmente (uno por línea)
   para que sean todos visibles sin scroll horizontal.
   ======================================================================== */

/* Celda del campo: ancho fijo para no romper la tabla */
.tabular td.field-permisos_especificos,
#detalles-group td.field-permisos_especificos {
    min-width: 260px !important;
    max-width: 380px !important;
    width: 320px !important;
    vertical-align: top !important;
}

/* El contenedor Select2 ocupa el 100% de la celda */
.tabular td.field-permisos_especificos .select2-container,
#detalles-group td.field-permisos_especificos .select2-container {
    width: 100% !important;
    max-width: 100% !important;
}

/* Área de selección: column flex para apilar tags verticalmente */
.tabular td.field-permisos_especificos .select2-selection--multiple,
#detalles-group td.field-permisos_especificos .select2-selection--multiple,
.tabular td.field-permisos_especificos .select2-container--default .select2-selection--multiple,
#detalles-group td.field-permisos_especificos .select2-container--default .select2-selection--multiple {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    min-height: 36px !important;
    max-height: none !important;       /* Sin límite: crece con los tags */
    overflow: visible !important;
    padding: 4px 4px 2px 4px !important;
    border: 1px solid #ced4da !important;
    border-radius: 4px !important;
    box-sizing: border-box !important;
    background: #fff !important;
}

/* La lista interna de tags (ul) también en columna */
.tabular td.field-permisos_especificos .select2-selection__rendered,
#detalles-group td.field-permisos_especificos .select2-selection__rendered {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    padding: 0 !important;
    width: 100% !important;
}

/* Cada tag: línea completa, texto visible sin truncar */
.tabular td.field-permisos_especificos .select2-selection__choice,
#detalles-group td.field-permisos_especificos .select2-selection__choice {
    display: flex !important;
    align-items: center !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    white-space: normal !important;      /* Permite wrapping del texto */
    overflow: visible !important;
    text-overflow: unset !important;
    margin: 2px 0 !important;
    padding: 3px 6px 3px 22px !important;
    font-size: 11px !important;
    line-height: 1.4 !important;
    border-radius: 3px !important;
    background-color: #e9ecef !important;
    border: 1px solid #ced4da !important;
    color: #333 !important;
    cursor: default !important;
    position: relative !important;
}

/* Botón × de eliminar: posición absoluta a la izquierda */
.tabular td.field-permisos_especificos .select2-selection__choice__remove,
#detalles-group td.field-permisos_especificos .select2-selection__choice__remove {
    position: absolute !important;
    left: 4px !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    font-weight: bold !important;
    color: #666 !important;
    cursor: pointer !important;
    padding: 0 3px !important;
    line-height: 1 !important;
}
.tabular td.field-permisos_especificos .select2-selection__choice__remove:hover,
#detalles-group td.field-permisos_especificos .select2-selection__choice__remove:hover {
    color: #c0392b !important;
}

/* Input de búsqueda: línea propia al final */
.tabular td.field-permisos_especificos .select2-search--inline,
#detalles-group td.field-permisos_especificos .select2-search--inline {
    display: block !important;
    width: 100% !important;
}
.tabular td.field-permisos_especificos .select2-search--inline .select2-search__field,
#detalles-group td.field-permisos_especificos .select2-search--inline .select2-search__field {
    width: 100% !important;
    min-width: 100px !important;
    margin-top: 2px !important;
    box-sizing: border-box !important;
    font-size: 12px !important;
}

/* Dropdown flotante de opciones */
.nexus-permisos-dropdown.select2-dropdown {
    min-width: 280px !important;
    max-width: 480px !important;
}
