/* =========================================================
   EvaluaNET 5 - Paleta estilo Vuexy
   ========================================================= */

:root,
[data-bs-theme="light"] {
    --bs-primary: #7367f0;
    --bs-primary-rgb: 115, 103, 240;

    --bs-secondary: #82868b;
    --bs-secondary-rgb: 130, 134, 139;

    --bs-success: #28c76f;
    --bs-success-rgb: 40, 199, 111;

    --bs-info: #00cfe8;
    --bs-info-rgb: 0, 207, 232;

    --bs-warning: #ff9f43;
    --bs-warning-rgb: 255, 159, 67;

    --bs-danger: #ea5455;
    --bs-danger-rgb: 234, 84, 85;

    --bs-body-bg: #f8f7fa;
    --bs-body-bg-rgb: 248, 247, 250;

    --bs-body-color: #6f6b7d;
    --bs-body-color-rgb: 111, 107, 125;

    --bs-heading-color: #5d596c;
    --bs-border-color: #dbdade;

    --bs-link-color: #7367f0;
    --bs-link-color-rgb: 115, 103, 240;

    --bs-link-hover-color: #685dd8;
    --bs-link-hover-color-rgb: 104, 93, 216;
}


/* =========================================================
   EvaluaNET 5 - Bootstrap
   ========================================================= */

/* Primary */

.btn-primary {
    --bs-btn-color: #fff;
    --bs-btn-bg: var(--bs-primary);
    --bs-btn-border-color: var(--bs-primary);

    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: #5f54d9;
    --bs-btn-hover-border-color: #5f54d9;

    --bs-btn-focus-shadow-rgb: var(--bs-primary-rgb);

    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: #554bc4;
    --bs-btn-active-border-color: #554bc4;

    --bs-btn-disabled-color: #fff;
    --bs-btn-disabled-bg: var(--bs-primary);
    --bs-btn-disabled-border-color: var(--bs-primary);
}


/* Secondary */

.btn-secondary {
    --bs-btn-bg: var(--bs-secondary);
    --bs-btn-border-color: var(--bs-secondary);
}


/* Success */

.btn-success {
    --bs-btn-bg: var(--bs-success);
    --bs-btn-border-color: var(--bs-success);
}


/* Info */

.btn-info {
    --bs-btn-bg: var(--bs-info);
    --bs-btn-border-color: var(--bs-info);
}


/* Warning */

.btn-warning {
    --bs-btn-bg: var(--bs-warning);
    --bs-btn-border-color: var(--bs-warning);
}


/* Danger */

.btn-danger {
    --bs-btn-bg: var(--bs-danger);
    --bs-btn-border-color: var(--bs-danger);
}


/* Formularios */

.form-control:focus,
.form-select:focus {
    border-color: var(--bs-primary);
    box-shadow: 0 0 0 .25rem rgba(var(--bs-primary-rgb), .20);
}


/* Checkbox / Radio */

.form-check-input:checked {
    background-color: var(--bs-primary);
    border-color: var(--bs-primary);
}

.form-check-input:focus {
    border-color: var(--bs-primary);
    box-shadow: 0 0 0 .25rem rgba(var(--bs-primary-rgb), .20);
}


/* Links */

a {
    color: var(--bs-primary);
    --bs-link-color-rgb: var(--bs-primary-rgb);
}

a:hover {
    color: var(--bs-link-hover-color);
}


/* Selección de texto */

::selection {
    color: #fff;
    background-color: var(--bs-primary);
}


/* =========================================================
   EvaluaNET 5 - Integración AdminLTE
   ========================================================= */

.text-primary {
    color: var(--bs-primary) !important;
}

.bg-primary {
    background-color: var(--bs-primary) !important;
}

.border-primary {
    border-color: var(--bs-primary) !important;
}

.badge.bg-primary {
    background-color: var(--bs-primary) !important;
}


/* Cards */

.card-primary {
    --lte-card-variant-color: #fff;
    --lte-card-variant-bg: var(--bs-primary);
    --lte-card-variant-border: var(--bs-primary);
}

.card-primary.card-outline {
    border-top-color: var(--bs-primary);
}

.card {
    background-color: #fdfcff;
}

.card-primary {
    --lte-card-variant-color: #fff;
    --lte-card-variant-bg: var(--bs-primary);
    --lte-card-variant-border: var(--bs-primary);
}

.card-primary.card-outline {
    border-top-color: var(--bs-primary);
}


/* Pagination */

.pagination {
    --bs-pagination-active-bg: var(--bs-primary);
    --bs-pagination-active-border-color: var(--bs-primary);
    --bs-pagination-color: var(--bs-primary);
    --bs-pagination-hover-color: var(--bs-link-hover-color);
    --bs-pagination-focus-color: var(--bs-link-hover-color);
    --bs-pagination-focus-box-shadow: 0 0 0 .25rem rgba(var(--bs-primary-rgb), .20);
}


/* Dropdown */

.dropdown-item.active,
.dropdown-item:active {
    background-color: var(--bs-primary);
}


/* Progress */

.progress-bar {
    background-color: var(--bs-primary);
}


/* List group */

.list-group-item.active {
    background-color: var(--bs-primary);
    border-color: var(--bs-primary);
}


/* Nav pills */

.nav-pills {
    --bs-nav-pills-link-active-bg: var(--bs-primary);
}


/* Spinner */

.spinner-border.text-primary,
.spinner-grow.text-primary {
    color: var(--bs-primary) !important;
}


/* =========================================================
   EvaluaNET 5 - Navbar estilo Vuexy
   ========================================================= */

.app-header {
    background-color: rgba(255, 255, 255, .95) !important;
    border-bottom: 1px solid rgba(47, 43, 61, .08);
    box-shadow: 0 .125rem .375rem rgba(47, 43, 61, .04);
}

.app-header .nav-link {
    color: var(--bs-body-color);
}

.app-header .nav-link:hover,
.app-header .nav-link:focus {
    color: var(--bs-primary);
}

.app-header .navbar-badge {
    font-size: .65rem;
}


/* =========================================================
   EvaluaNET 5 - Sidebar estilo Vuexy
   ========================================================= */

.app-sidebar {
    background-color: #fff;
    color: #6f6b7d;
    border-right: 1px solid rgba(47, 43, 61, .08);
    box-shadow: none;
}


/* Marca */

.app-sidebar .sidebar-brand {
    background-color: #fff;
    border-bottom: 1px solid rgba(47, 43, 61, .08);
}

.app-sidebar .brand-link {
    color: #5d596c;
}

.app-sidebar .brand-link:hover {
    color: var(--bs-primary);
}

.app-sidebar .brand-text {
    color: #5d596c;
    font-weight: 600 !important;
}


/* Buscador */

.app-sidebar .sidebar-search {
    padding: .75rem;
}

.app-sidebar .sidebar-search .form-control {
    color: #6f6b7d;
    background-color: #f8f7fa;
    border-color: transparent;
}

.app-sidebar .sidebar-search .form-control:hover {
    border-color: #dbdade;
}

.app-sidebar .sidebar-search .form-control:focus {
    color: #6f6b7d;
    background-color: #fff;
    border-color: var(--bs-primary);
    box-shadow: 0 0 0 .20rem rgba(var(--bs-primary-rgb), .12);
}


/* Encabezados del menú */

.app-sidebar .sidebar-menu .nav-header {
    color: #a5a2ad;
    font-size: .72rem;
    font-weight: 600;
    letter-spacing: .05rem;
    text-transform: uppercase;
}


/* Opciones del menú */

.app-sidebar .sidebar-menu .nav-link {
    width: auto;
    height: auto;
    min-height: 40px;
    align-items: center;
    color: #6f6b7d;
    border-radius: .375rem;
    margin: .125rem .5rem;
    transition: background-color .15s ease, color .15s ease, box-shadow .15s ease;
}

.app-sidebar .sidebar-menu .nav-link p {
    white-space: normal;
    overflow: visible;
    text-overflow: clip;
    line-height: 1.25;
}

.app-sidebar .sidebar-menu .nav-link p .nav-arrow {
    flex-shrink: 0;
}

.app-sidebar .sidebar-menu .nav-link:hover {
    color: var(--bs-primary);
    background-color: rgba(var(--bs-primary-rgb), .08);
}


/* Iconos */

.app-sidebar .sidebar-menu .nav-icon {
    color: #a5a2ad;
}

.app-sidebar .sidebar-menu .nav-link:hover .nav-icon {
    color: var(--bs-primary);
}


/* Opción principal activa */

.app-sidebar .sidebar-menu > .nav-item > .nav-link.active {
    color: #fff;
    background-color: var(--bs-primary);
    box-shadow: 0 .125rem .25rem rgba(var(--bs-primary-rgb), .20);
}

.app-sidebar .sidebar-menu > .nav-item > .nav-link.active .nav-icon,
.app-sidebar .sidebar-menu > .nav-item > .nav-link.active .nav-arrow {
    color: #fff;
}


/* =========================================================
   Submenú
   ========================================================= */

.app-sidebar .nav-treeview {
    padding-left: .35rem;
}

/* Categoría abierta */

.app-sidebar .sidebar-menu > .nav-item.menu-open > .nav-link {
    color: var(--bs-primary) !important;
    background-color: rgba(var(--bs-primary-rgb), .10) !important;
    box-shadow: none !important;
}

.app-sidebar .sidebar-menu > .nav-item.menu-open > .nav-link .nav-icon,
.app-sidebar .sidebar-menu > .nav-item.menu-open > .nav-link .nav-arrow {
    color: var(--bs-primary) !important;
}


.app-sidebar .sidebar-menu > .nav-item.menu-open > .nav-link .nav-icon,
.app-sidebar .sidebar-menu > .nav-item.menu-open > .nav-link .nav-arrow {
    color: var(--bs-primary);
}

/* Opciones del submenú */

.app-sidebar .nav-treeview .nav-link {
    color: #6f6b7d;
    background-color: transparent;
}

.app-sidebar .nav-treeview .nav-link:hover {
    color: var(--bs-primary);
    background-color: rgba(var(--bs-primary-rgb), .08);
}

/* Opción seleccionada */

.app-sidebar .nav-treeview .nav-link.active {
    color: #fff !important;
    background-color: var(--bs-primary) !important;
    font-weight: 600;
    box-shadow: 0 .125rem .25rem rgba(var(--bs-primary-rgb), .20) !important;
}

.app-sidebar .nav-treeview .nav-link.active .nav-icon {
    color: #fff !important;
}


/* Flecha */

.app-sidebar .nav-arrow {
    color: #a5a2ad;
}


/* Scrollbar */

.app-sidebar .sidebar-wrapper {
    scrollbar-color: rgba(var(--bs-primary-rgb), .25) transparent;
    scrollbar-width: thin;
}


/* =========================================================
   Balta Core - TomSelect
   ========================================================= */

.balta-select-search-floating .ts-wrapper {
    min-height: 58px;
    height: 58px;
}

.balta-select-search-floating > label {
    z-index: 3;
    pointer-events: none;
}

.balta-select-search-multiple .ts-wrapper {
    min-height: 58px;
    height: auto;
}

.balta-select-search-multiple .ts-control {
    min-height: 58px;
    height: auto;
    padding-top: 2.25rem !important;
    padding-bottom: .375rem !important;
    align-content: flex-start;
}

.balta-select-search-multiple .ts-control > .item {
    margin-top: 0;
    margin-bottom: 2px;
}

.form-floating .ts-wrapper.single .ts-control {
    min-height: calc(3.5rem + 2px);
    padding-top: 1.625rem;
    padding-bottom: .625rem;
}

/* TomSelect - opción resaltada al navegar */
.ts-dropdown .option.active {
    color: var(--bs-primary);
    background-color: rgba(var(--bs-primary-rgb), .12);
}

/* Opción actualmente seleccionada */
.ts-dropdown .option.selected {
    color: #fff;
    background-color: var(--bs-primary);
}

/* Seleccionada + foco con teclado */
.ts-dropdown .option.selected.active {
    color: #fff;
    background-color: #685dd8;
}


/* =========================================================
   Balta Core - Formularios
   ========================================================= */

.balta-form-loading-overlay {
    position: absolute;
    inset: 0;
    z-index: 1050;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, .65);
    cursor: wait;
}

/* Fondo principal de contenido */
.app-main {
    background-color: #fff;
}