/*
* Archivo: DMAccessEmployee.css
* Ruta: src\static\css\SupYCtrol\DataMaster\DMAccessEmployee.css
* Descripción: Estilos para el cotizador de plantas eléctricas en EUA
*/

/* ===============================
    🎨 VARIABLES CSS (Nuevas)
   =============================== */
/* 
    Al usar variables CSS, facilitamos el mantenimiento 
    ya que solo necesitamos cambiar el valor en un lugar
    para que se actualice en todo el documento
*/
:root {
    /* Colores principales y variantes */
    --primary-color: #1f71c2;
    /* Azul principal usado en encabezados */
    --primary-color-light: #1f71c249;
    /* Versión con transparencia para filtros */
    --secondary-color: #007bff;
    /* Azul secundario para botones y elementos interactivos */
    --secondary-color-dark: #0056b3;
    /* Versión oscura para estados hover */

    /* Colores para acciones */
    --success-color: green;
    /* Color para acciones de aprobación */
    --success-color-dark: darkgreen;
    /* Versión oscura para hover */
    --danger-color: red;
    /* Color para acciones de rechazo/error */
    --danger-color-dark: darkred;
    /* Versión oscura para hover */

    /* Colores neutros */
    --light-bg: #f2f2f2;
    /* Fondo claro para filas alternas */
    --border-color: #ccc;
    /* Color de bordes estándar */
    --text-color: #333;
    /* Color principal para texto */
    --white: white;
    /* Blanco puro */
    --black: black;
    /* Negro puro */
}

/* ===============================
    🎨 ESTILOS PARA LA TABLA
   =============================== */

/* 📌 Estilos para los títulos de la tabla */
#ApprovalAccessTable_wrapper .dataTables_scrollHead thead th {
    background-color: var(--primary-color) !important;
    /* Color de fondo */
    color: var(--white) !important;
    /* Color del texto */
    font-size: 14px !important;
    /* Tamaño de fuente */
    font-weight: bold !important;
    /* Negrita */
    text-align: center !important;
    /* Alineación horizontal */
    vertical-align: middle !important;
    /* Alineación vertical */
    padding: 10px !important;
    /* Espaciado */
}

/* 📌 Alinear todos los títulos de columnas en DataTables a la derecha */
#ApprovalAccessTable_wrapper .dataTables_scrollHead table thead tr th {
    text-align: center !important;
}

/* 📌 Personalizar alineación de la tercera columna en los títulos generados por DataTables */
#ApprovalAccessTable_wrapper .dataTables_scrollHead table thead tr th:nth-child(3) {
    text-align: center !important;
}

/* 📌 Cambiar el color de fondo de la fila de filtros */
#ApprovalAccessTable_wrapper .dataTables_scrollHead thead tr:nth-child(2) th {
    background-color: var(--primary-color-light) !important;
    /* Color semi-transparente */
}

/* 📌 Ajustar el tamaño de texto y remover bordes de la fila de filtros */
#ApprovalAccessTable_wrapper .dataTables_scrollHead thead input {
    font-size: 10px !important;
    /* Tamaño del texto */
    font-family: inherit !important;
    /* Usa la misma fuente que el resto de la tabla */
    text-align: center !important;
    /* Centrar el texto */
    padding: 2px !important;
    /* Espaciado interno */
    border: none !important;
    /* Quitar el borde */
    /* background-color: transparent !important; */
    /* Hacer el fondo transparente - Comentado pero conservado */
    outline: none !important;
    /* Evitar el contorno azul al hacer clic */
    width: auto !important;
    /* Ajustar al ancho del texto */
    min-width: 80px !important;
    /* Evita que sean demasiado pequeños */
    max-width: 100% !important;
    /* Asegura que no crezcan más allá de la celda */
}

/* 📌 Estilos para el cuerpo de la tabla */
#ApprovalAccessTable tbody td {
    font-size: 12px;
    /* Tamaño de fuente */
    text-align: left;
    /* Alineación predeterminada */
    vertical-align: middle;
    /* Alineación vertical */
    padding: 8px 0;
    /* 🔥 8px arriba y abajo, 0px en los lados - Importante para el diseño compacto */
}

/* 📌 Alinear las columnas del cuerpo de la tabla 
   Agrupados para mejor mantenimiento */
#ApprovalAccessTable tbody td:nth-child(1),
#ApprovalAccessTable tbody td:nth-child(2),
#ApprovalAccessTable tbody td:nth-child(3),
#ApprovalAccessTable tbody td:nth-child(4),
#ApprovalAccessTable tbody td:nth-child(5),
#ApprovalAccessTable tbody td:nth-child(7),
#ApprovalAccessTable tbody td:nth-child(8),
#ApprovalAccessTable tbody td:nth-child(9),
#ApprovalAccessTable tbody td:nth-child(10) {
    text-align: center;
    /* Estas columnas se alinean al centro */
}

/* La sexta columna (Puesto) se alinea a la izquierda para mejor legibilidad del texto largo */
#ApprovalAccessTable tbody td:nth-child(6) {
    text-align: left;
}

/* 📌 Estilos para las filas impares (para mejor visualización) */
#ApprovalAccessTable tbody tr:nth-child(odd) {
    background-color: var(--light-bg);
    /* Color de fondo alterno para mejorar legibilidad */
}

/* 📌 Forzar que la tabla use el ancho correcto 
   Consolidado para ambos selectores relacionados */
#ApprovalAccessTable,
#ApprovalAccessTable_wrapper .dataTables_scrollHead table {
    table-layout: fixed !important;
    /* Fija el ancho de la tabla */
    width: 100% !important;
    /* Asegura que la tabla use todo el ancho disponible */
}

/* 📌 Especificar los anchos de las columnas en una estructura unificada 
   Mantiene la proporción correcta entre columnas */

/* Columna 1 - ID (2%) */
#ApprovalAccessTable_wrapper .dataTables_scrollHead table thead tr th:nth-child(1),
#ApprovalAccessTable thead th:nth-child(1),
#ApprovalAccessTable tbody td:nth-child(1) {
    width: 2% !important;
}

/* Columna 2 - Nombre (7%) */
#ApprovalAccessTable_wrapper .dataTables_scrollHead table thead tr th:nth-child(2),
#ApprovalAccessTable thead th:nth-child(2),
#ApprovalAccessTable tbody td:nth-child(2) {
    width: 7% !important;
}

/* Columna 3 - Apellido (8%) */
#ApprovalAccessTable_wrapper .dataTables_scrollHead table thead tr th:nth-child(3),
#ApprovalAccessTable thead th:nth-child(3),
#ApprovalAccessTable tbody td:nth-child(3) {
    width: 8% !important;
}

/* Columna 4 - División (12%) */
#ApprovalAccessTable_wrapper .dataTables_scrollHead table thead tr th:nth-child(4),
#ApprovalAccessTable thead th:nth-child(4),
#ApprovalAccessTable tbody td:nth-child(4) {
    width: 12% !important;
}

/* Columna 5 - Departamento (14%) */
#ApprovalAccessTable_wrapper .dataTables_scrollHead table thead tr th:nth-child(5),
#ApprovalAccessTable thead th:nth-child(5),
#ApprovalAccessTable tbody td:nth-child(5) {
    width: 14% !important;
}

/* Columna 6 - Puesto (16% - la más ancha porque suele tener texto largo) */
#ApprovalAccessTable_wrapper .dataTables_scrollHead table thead tr th:nth-child(6),
#ApprovalAccessTable thead th:nth-child(6),
#ApprovalAccessTable tbody td:nth-child(6) {
    width: 16% !important;
}

/* Columna 7 - Jefe Directo (12%) */
#ApprovalAccessTable_wrapper .dataTables_scrollHead table thead tr th:nth-child(7),
#ApprovalAccessTable thead th:nth-child(7),
#ApprovalAccessTable tbody td:nth-child(7) {
    width: 12% !important;
}

/* Columna 8 - Permisos (10%) */
#ApprovalAccessTable_wrapper .dataTables_scrollHead table thead tr th:nth-child(8),
#ApprovalAccessTable thead th:nth-child(8),
#ApprovalAccessTable tbody td:nth-child(8) {
    width: 10% !important;
}

/* Columna 9 - Fecha y Hora (7%) */
#ApprovalAccessTable_wrapper .dataTables_scrollHead table thead tr th:nth-child(9),
#ApprovalAccessTable thead th:nth-child(9),
#ApprovalAccessTable tbody td:nth-child(9) {
    width: 7% !important;
}

/* Columna 10 - Acciones (12%) */
#ApprovalAccessTable_wrapper .dataTables_scrollHead table thead tr th:nth-child(10),
#ApprovalAccessTable thead th:nth-child(10),
#ApprovalAccessTable tbody td:nth-child(10) {
    width: 12% !important;
}

/* ===============================
    🔘 ESTILOS PARA LOS BOTONES DEL BODY
   =============================== */

/* 📌 Estilos generales para los botones de acción 
   Estos estilos son compartidos entre botones de aprobación y rechazo */
#ApprovalAccessTable tbody button {
    font-size: 12px; /* Tamaño del texto */
    padding: 5px 10px; /* Espaciado interno */
    border-radius: 5px; /* Bordes redondeados */
    cursor: pointer; /* Cursor de mano */
    transition: 0.3s; /* Suavizar efectos */
    border: none; /* Sin bordes */
    color: var(--white); /* Texto blanco para mejor contraste */
}

/* 📌 Estilos específicos para botones de aprobación */
#ApprovalAccessTable tbody .btn-approve {
    background-color: var(--success-color); /* Verde para aprobación */
}

#ApprovalAccessTable tbody .btn-approve:hover {
    background-color: var(--success-color-dark); /* Verde más oscuro al pasar el cursor */
}

/* 📌 Estilos específicos para botones de rechazo */
#ApprovalAccessTable tbody .btn-reject {
    background-color: var(--danger-color); /* Rojo para rechazo */
}

#ApprovalAccessTable tbody .btn-reject:hover {
    background-color: var(--danger-color-dark); /* Rojo más oscuro al pasar el cursor */
}

/* ===============================
    📤 ESTILOS PARA LOS BOTONES DE EXPORTACIÓN
   =============================== */

/* Botones para exportar a Excel, PDF, etc. */
.dt-buttons .dt-button {
    background-color: var(--secondary-color) !important; /* Azul */
    color: var(--white) !important;
    font-size: 12px !important;
    padding: 6px 12px !important;
    border-radius: 5px !important;
    margin-right: 5px !important;
}

.dt-buttons .dt-button:hover {
    background-color: var(--secondary-color-dark) !important; /* Azul más oscuro */
}

/* ===============================
    🔍 ESTILOS PARA EL BUSCADOR Y PAGINACIÓN
   =============================== */

/* 📌 Estilos para la barra de búsqueda */
.dataTables_filter {
    font-size: 13px;
}

.dataTables_filter input {
    font-size: 12px;
    padding: 5px;
    border-radius: 5px;
    border: 1px solid var(--border-color);
}

/* 📌 Estilos para la paginación */
.dataTables_paginate {
    font-size: 13px;
}

/* 📌 Estilos para los botones de paginación */
.dataTables_paginate .paginate_button {
    padding: 5px 10px;
    border-radius: 5px;
    background-color: #ddd;
    color: var(--black);
    margin: 0 2px;
    transition: 0.3s;
}

.dataTables_paginate .paginate_button:hover {
    background-color: var(--secondary-color);
    color: var(--white);
}

/* 📌 Estilos para el texto "Showing X to X of X entries" */
#ApprovalAccessTable_wrapper .dataTables_info {
    font-size: 12px !important; /* Tamaño del texto */
    font-weight: bold !important; /* Negrita */
    color: var(--text-color) !important; /* Color del texto */
    font-family: inherit !important; /* Mantener la fuente general */
    padding-top: 10px !important; /* Espaciado superior */
}

/* 📌 Por defecto (pantallas grandes) → Desactivamos desplazamiento horizontal */
#ApprovalAccessTable_wrapper {
    overflow-x: unset !important; /* Permite que la tabla se ajuste automáticamente */
    white-space: normal !important; /* Permite que el texto se ajuste */
}

/* ===============================
    🎨 ESTILOS PARA EL MODAL
   =============================== */

/* 📌 Control del ancho del modal - Define el tamaño máximo */
#EstandarModal .modal-custom-width {
    max-width: 80% !important; /* Limita el ancho al 80% de la pantalla */
    /*width: 950px !important; /* Ancho fijo para pantallas grandes */
}

/* 📌 Estilos para el título del modal */
#EstandarModal .modal-header .modal-title {
    font-family: Arial, sans-serif !important;
    font-size: 20px !important;
    font-weight: bold !important;
    text-align: left !important;
    width: 100% !important;
}

/* 📌 Control del ancho del contenido del modal */
#EstandarModal .modal-content {
    width: 100% !important;
}

/* 📌 Estilos para los campos requeridos - Añade un asterisco rojo */
#EstandarModal .required::after {
    content: " *"; /* Añade un asterisco */
    color: var(--danger-color); /* Color rojo para indicar que es obligatorio */
    font-weight: bold;
}

/* 📌 Estilos para campos no llenados correctamente - Feedback visual */
#EstandarModal .invalid-input {
    border: 2px solid var(--danger-color) !important; /* Borde rojo grueso */
    background-color: #ffe6e6 !important; /* Fondo rosado claro */
}

/* 📌 Estilos para el footer del modal */
#EstandarModal .modal-footer {
    display: flex !important;
    /* justify-content: space-evenly !important; */
    /* justify-content: center !important; /* Centra los botones */
    justify-content: space-between !important; /* Distribuye los botones a los extremos */
    /* justify-content: space-around !important; /* Distribuye los botones uniformemente */
    /* justify-content: space-evenly !important; /* Distribuye los botones uniformemente */
    /* justify-content: stretch !important; /* Distribuye los botones para llenar el espacio */
    align-items: center !important;
    padding: 10px !important;
}

/* 📌 Estilos para los botones dentro del footer del modal */
#EstandarModal .modal-footer .btn {
    font-size: 14px !important;
    padding: 10px 20px !important;
    margin: 5px !important;
    min-width: 100px !important; /* Garantiza un ancho mínimo para mejor aspecto */
    text-align: center !important;
}


/* ===============================
    🎨 ESTILOS PERSONALIZADOS PARA EL FORMULARIO DENTRO DEL MODAL
   =============================== */

/* 📌 Ajuste del formulario dentro del modal - ESTA ES LA LÍNEA IMPORTANTE */
.modal-form-custom {
    font-size: 12px !important;
    width: 100% !important;
    max-width: none !important; /* ⚠️ IMPORTANTE: Elimina el límite de 500px - NO MODIFICAR */
    margin: 0 !important; 
    padding: 5px 10px !important;
    box-sizing: border-box !important;
}

/* 📌 Mejora en la apariencia del textarea */
.modal-form-custom textarea {
    resize: none !important; /* Impide que el usuario redimensione el área de texto */
    min-height: 100px !important;
}

/* 📌 Estructura de las filas - Layout flexible */
.form-row {
    display: flex !important; /* Alinea los elementos en fila */
    flex-wrap: wrap !important; /* Permite que los elementos se ajusten si el espacio es pequeño */
    gap: 10px !important; /* Espaciado uniforme entre columnas */
}

/* 📌 Estructura de cada grupo de inputs - Columna flexible */
.form-group {
    display: flex !important;
    flex-direction: column !important;
    flex: 1 !important; /* Hace que cada grupo ocupe espacio proporcional */
    min-width: 0 !important; /* Permite que se encoja si es necesario */
}

/* 📌 Asegura que los inputs y selects ocupen el 100% dentro del form-group */
.form-group select.form-select,
.form-group input.form-control {
    width: 100% !important; /* Se ajusta completamente al contenedor */
}

/* 📌 Estilos para los labels */
.form-group label {
    display: block !important; /* Hace que la etiqueta ocupe toda la línea */
    margin-bottom: 2px !important;
    margin-top: 7px !important;
    font-size: 12px !important;
}

/* 📌 Estilos generales para los select - Mejora la apariencia y usabilidad */
.form-select {
    width: 100% !important;
    padding: 8px !important;
    font-size: 12px !important;
    border: 1px solid var(--border-color) !important;
    border-radius: 5px !important;
    background-color: var(--white) !important;
    transition: border-color 0.3s ease-in-out !important; /* Animación suave al enfocar */
    cursor: pointer !important; /* Cursor tipo mano para indicar que es seleccionable */
}

/* 📌 Efecto al enfocar el select - Mejora de usabilidad */
.form-select:focus {
    border-color: var(--secondary-color) !important; /* Borde azul al enfocar */
    outline: none !important; /* Quita el contorno predeterminado */
    box-shadow: 0 0 5px rgba(0, 123, 255, 0.5) !important; /* Sombra suave para destacar */
}

/* 📌 Estilos para selects deshabilitados - Feedback visual de que no es interactivo */
.form-select:disabled {
    background-color: #f8f9fa !important; /* Gris claro */
    border: 1px solid var(--border-color) !important;
    cursor: not-allowed !important; /* Cursor tipo "prohibido" */
    color: #6c757d !important; /* Texto gris */
}

/* 📌 Estilos generales para los inputs y textarea */
.form-group input,
.form-group textarea {
    width: 100%;
    padding: 8px;
    font-size: 12px;
    border: 1px solid var(--border-color);
    border-radius: 5px;
    transition: border-color 0.3s ease-in-out;
}

/* 📌 Efecto al enfocar el input o textarea */
.form-group input:focus,
.form-group-comentario textarea:focus {
    border-color: var(--secondary-color) !important;
    outline: none !important;
    box-shadow: 0 0 5px rgba(0, 123, 255, 0.5) !important;
}

/* 📌 Estilos exclusivos para el campo "Creado" - Layout especial */
.form-group-creado {
    align-items: center !important; /* Centra verticalmente */
}

/* 📌 Ajuste del input dentro del campo "Creado" - Apariencia de campo no editable */
.form-group-creado input {
    text-align: center !important; /* Centra el texto dentro del input */
}

/* 📌 Estilos exclusivos para el campo "Comentario" - Ocupa todo el ancho disponible */
.form-group-comentario {
    display: flex !important;
    flex-direction: column !important;
    width: 100% !important; /* Ocupa todo el ancho disponible */
}

/* 📌 Ajuste del textarea dentro del campo "Comentario" - Área grande para texto extenso */
.form-group-comentario textarea {
    min-height: 120px !important; /* Altura mínima para comentarios largos */
    padding: 10px !important; /* Más espaciado interno para mejor legibilidad */
    resize: vertical !important; /* Solo permite redimensionar verticalmente */
    font-size: 12px !important;
}

/* 📌 Ajuste de botones dentro del formulario */
.modal-form-custom .btn {
    width: auto !important; /* Ancho automático según el contenido */
    padding: 10px 15px !important;
}

/* ===============================
    📱 ESTILO DE overlay global
   =============================== */

#global-loading-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.7);
    z-index: 9999;
    display: flex;
    justify-content: center;
    align-items: center;
    display: none;
}

.loading-content {
    background-color: white;
    padding: 30px;
    border-radius: 8px;
    text-align: center;
    max-width: 80%;
}

.loading-text {
    margin-top: 15px;
    font-weight: bold;
    color: #333;
}

/* ===============================
    📱 ESTILOS RESPONSIVOS MEJORADOS
   =============================== */

@media screen and (max-width: 1000px) {

    /* 📌 Ocultar la fila de filtros en pantallas pequeñas para simplificar la interfaz */
    #ApprovalAccessTable_wrapper .dataTables_scrollHead thead tr:nth-child(2),
    #ApprovalAccessTable_wrapper .dataTables_scrollHead thead tr:nth-child(2) input {
        display: none !important;
    }

    /* 📌 Si necesitas ocultar solo algunos filtros, descomenta según sea necesario */
    /* #ApprovalAccessTable_wrapper .dataTables_scrollHead thead tr:nth-child(2) th:nth-child(1) input { display: none !important; }  Ocultar filtro de Compañía */
    /* #ApprovalAccessTable_wrapper .dataTables_scrollHead thead tr:nth-child(2) th:nth-child(3) input { display: none !important; }  Ocultar filtro de Dirección */

    /* 📌 Ajustar tamaño de los inputs de los filtros en pantallas pequeñas */
    /*
    #ApprovalAccessTable_wrapper .dataTables_scrollHead thead input {
        font-size: 12px !important;
        padding: 3px !important;
        min-width: 60px !important;
    }
    */

    /* 📌 En pantallas pequeñas → Activamos desplazamiento horizontal en toda la tabla */
    #ApprovalAccessTable_wrapper {
        overflow-x: auto !important; /* Activa desplazamiento horizontal */
        white-space: nowrap !important; /* Evita que el texto se rompa */
    }

    /* 📌 Evitar desplazamiento horizontal en toda la página */
    body {
        overflow-x: hidden !important;
    }

    /* 📌 Mantener un ancho mínimo en la tabla para simular 1200px en móviles */
    #ApprovalAccessTable {
        width: 1200px !important; /* La tabla ocupará 1200px aunque la pantalla sea más pequeña */
        min-width: 1200px !important; /* Evita que se reduzca */
    }

    /* 📌 Mantener los encabezados fijos en la parte superior mientras se desplaza */
    #ApprovalAccessTable_wrapper .dataTables_scrollHead {
        position: sticky !important;
        top: 0 !important;
        background-color: var(--primary-color) !important; /* Asegurar el color de fondo */
        z-index: 1000 !important; /* Asegura que esté por encima de otros elementos */
        width: 100% !important; /* 🔥 Asegurar que no se desajuste */
    }

    /* 📌 Estilos para la barra de búsqueda en dispositivos móviles */
    .dataTables_filter {
        font-size: 13px;
        text-align: center; /* 🔥 Alinear búsqueda al centro en móviles */
    }

    .dataTables_filter input {
        font-size: 12px;
        padding: 5px 10px; /* 🔥 Padding solo superior/inferior */
        border-radius: 5px;
        border: 1px solid var(--border-color);
        margin-bottom: 10px; /* 🔥 Espaciado debajo del input */
    }
}