/* Adaptación de DashLite 3.1.2. La paleta se define en menix-brand.css. */
:root {
    --bs-primary: var(--menix-charcoal);
    --bs-primary-rgb: var(--menix-charcoal-rgb);
    --bs-secondary: var(--menix-charcoal-secondary);
    --bs-secondary-rgb: var(--menix-charcoal-secondary-rgb);
    --bs-teal: var(--menix-gold);
    --bs-body-color: var(--menix-charcoal);
    --bs-body-color-rgb: var(--menix-charcoal-rgb);
    --bs-link-color: var(--menix-link-color);
    --bs-link-hover-color: var(--menix-link-hover-color);
    --bs-border-color: var(--menix-border);
    --bs-success: var(--menix-success);
    --bs-success-rgb: var(--menix-success-rgb);
    --bs-danger: var(--menix-danger);
    --bs-danger-rgb: var(--menix-danger-rgb);
    --bs-info: var(--menix-info);
    --bs-info-rgb: var(--menix-info-rgb);
}

/* Tonos semánticos con contraste: conservan verde, rojo, ámbar y azul. */
.btn-success, .btn-outline-success {
    --menix-state-color: var(--menix-success);
}

.btn-danger, .btn-outline-danger {
    --menix-state-color: var(--menix-danger);
}

.btn-info, .btn-outline-info {
    --menix-state-color: var(--menix-info);
}

:is(.btn-success, .btn-outline-success, .btn-danger, .btn-outline-danger, .btn-info, .btn-outline-info) {
    --bs-btn-color: var(--menix-white);
    --bs-btn-bg: var(--menix-state-color);
    --bs-btn-border-color: var(--menix-state-color);
    --bs-btn-hover-color: var(--menix-white);
    --bs-btn-hover-bg: var(--menix-state-color);
    --bs-btn-hover-border-color: var(--menix-state-color);
    --bs-btn-active-color: var(--menix-white);
    --bs-btn-active-bg: var(--menix-state-color);
    --bs-btn-active-border-color: var(--menix-state-color);
    --bs-btn-disabled-color: var(--menix-white);
    --bs-btn-disabled-bg: var(--menix-state-color);
    --bs-btn-disabled-border-color: var(--menix-state-color);
}

.btn-outline-success, .btn-outline-danger, .btn-outline-info {
    --bs-btn-color: var(--menix-state-color);
    --bs-btn-bg: transparent;
    --bs-btn-disabled-color: var(--menix-state-color);
    --bs-btn-disabled-bg: transparent;
}

.btn-dim:is(.btn-success, .btn-outline-success, .btn-danger, .btn-outline-danger, .btn-info, .btn-outline-info) {
    color: var(--menix-state-color);
    background-color: var(--menix-surface);
    border-color: var(--menix-state-color);
}

.btn-dim:is(.btn-success, .btn-outline-success, .btn-danger, .btn-outline-danger, .btn-info, .btn-outline-info):not(:disabled):not(.disabled):is(:hover, :focus-visible, :active) {
    color: var(--menix-white);
    background-color: var(--menix-state-color);
}

.btn-warning, .btn-outline-warning {
    --bs-btn-color: var(--menix-charcoal);
    --bs-btn-hover-color: var(--menix-charcoal);
    --bs-btn-active-color: var(--menix-charcoal);
    --bs-btn-disabled-color: var(--menix-charcoal);
}

.btn-dim.btn-warning, .btn-dim.btn-outline-warning,
.badge.bg-warning, .badge.bg-warning-dim {
    color: var(--menix-charcoal);
}

.btn-dim:is(.btn-warning, .btn-outline-warning):not(:disabled):not(.disabled):is(:hover, :focus-visible, :active, .active) {
    color: var(--menix-charcoal);
}

.badge.bg-success, .badge.bg-danger, .badge.bg-info {
    color: var(--menix-white);
}

:is(.badge-dim, .badge-dot).bg-success {
    color: var(--menix-success);
}

:is(.badge-dim, .badge-dot).bg-danger {
    color: var(--menix-danger);
}

:is(.badge-dim, .badge-dot).bg-info {
    color: var(--menix-info);
}

/* Bootstrap define estas variables en cada variante, no solo en :root. */
.btn-primary, .btn-outline-primary {
    --menix-control-color: var(--menix-charcoal);
    --menix-control-hover: var(--menix-charcoal-secondary);
    --menix-control-soft: var(--menix-soft-gold);
    --bs-btn-focus-shadow-rgb: var(--menix-charcoal-rgb);
}

.btn-secondary, .btn-outline-secondary {
    --menix-control-color: var(--menix-charcoal-secondary);
    --menix-control-hover: var(--menix-charcoal);
    --menix-control-soft: var(--menix-surface);
    --bs-btn-focus-shadow-rgb: var(--menix-charcoal-rgb);
}

:is(.btn-primary, .btn-outline-primary, .btn-secondary, .btn-outline-secondary) {
    --bs-btn-border-color: var(--menix-control-color);
    --bs-btn-hover-color: var(--menix-white);
    --bs-btn-hover-bg: var(--menix-control-hover);
    --bs-btn-hover-border-color: var(--menix-control-hover);
    --bs-btn-active-color: var(--menix-white);
    --bs-btn-active-bg: var(--menix-control-hover);
    --bs-btn-active-border-color: var(--menix-control-hover);
    --bs-btn-disabled-border-color: var(--menix-control-color);
}

.btn-primary, .btn-secondary {
    --bs-btn-color: var(--menix-white);
    --bs-btn-bg: var(--menix-control-color);
    --bs-btn-disabled-color: var(--menix-white);
    --bs-btn-disabled-bg: var(--menix-control-color);
}

.btn-outline-primary, .btn-outline-secondary {
    --bs-btn-color: var(--menix-control-color);
    --bs-btn-bg: transparent;
    --bs-btn-disabled-color: var(--menix-control-color);
    --bs-btn-disabled-bg: transparent;
}

/* Las variantes dim de DashLite tienen colores fijos adicionales. */
.btn-dim:is(.btn-primary, .btn-outline-primary, .btn-secondary, .btn-outline-secondary) {
    color: var(--menix-control-color);
    background-color: var(--menix-control-soft);
    border-color: transparent;
}

.btn-dim:is(.btn-outline-primary, .btn-outline-secondary) {
    border-color: var(--menix-control-color);
}

.btn-dim:is(.btn-primary, .btn-outline-primary, .btn-secondary, .btn-outline-secondary):not(:disabled):not(.disabled):is(:hover, :focus-visible, :active, .active) {
    color: var(--bs-btn-hover-color);
    background-color: var(--bs-btn-hover-bg);
    border-color: var(--bs-btn-hover-border-color);
}

:is(.btn-white, .btn-trans):is(.btn-outline-primary, .btn-outline-secondary):not(.btn-dim):not(:disabled):not(.disabled):hover {
    color: var(--menix-control-color);
    background-color: var(--menix-control-soft);
}

/* Utilidades existentes: no se agregan variantes propias de cards o botones. */
.bg-primary-dim {
    background-color: var(--menix-soft-gold) !important;
}
.bg-secondary-dim {
    background-color: var(--menix-surface) !important;
}
.bg-lighter {
    background-color: var(--menix-surface) !important;
}
.bg-teal {
    background-color: rgba(var(--menix-gold-rgb), var(--bs-bg-opacity, 1)) !important;
    color: var(--menix-charcoal) !important;
}
.text-teal {
    color: var(--menix-charcoal-secondary) !important;
}
.bg-teal-dim {
    background-color: color-mix(in srgb, var(--menix-gold) 12%, white) !important;
}
.text-primary-dim {
    color: var(--menix-charcoal-secondary) !important;
}
.text-secondary-dim {
    color: var(--menix-text-secondary) !important;
}
.text-soft, .sub-text {
    color: var(--menix-text-secondary) !important;
}
.text-base, .lead-text {
    color: var(--menix-charcoal);
}

h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6, .form-label {
    color: var(--menix-charcoal);
}

.card-bordered {
    border-color: var(--menix-border);
}

.link-primary:is(:hover, :focus-visible), a.text-primary:not(.btn):is(:hover, :focus-visible) {
    color: var(--menix-link-hover-color) !important;
}

.bg-outline-primary, .badge-dim.bg-primary, .badge-dim.bg-outline-primary {
    color: var(--menix-charcoal);
    background-color: var(--menix-soft-gold) !important;
    border-color: var(--menix-soft-gold);
}

.bg-outline-secondary, .badge-dim.bg-secondary, .badge-dim.bg-outline-secondary {
    color: var(--menix-charcoal);
    background-color: var(--menix-surface) !important;
    border-color: var(--menix-border);
}

.badge-dot.bg-primary {
    color: var(--menix-charcoal);
}

.badge-dot.bg-secondary {
    color: var(--menix-charcoal);
}

.alert-primary {
    --bs-alert-color: var(--menix-charcoal-secondary);
    --bs-alert-bg: var(--menix-soft-gold);
    --bs-alert-border-color: var(--menix-soft-gold);
}

.alert-primary .alert-link {
    color: var(--menix-charcoal-secondary);
}
.alert-fill.alert-primary {
    background-color: var(--menix-charcoal);
}

.progress-bar:not([class*="bg-"]), .dot-primary, .icon-circle:not([class*="bg-"]), .nav-tabs .nav-link:after {
    background-color: var(--menix-charcoal);
}

/* Formularios y selección, conservando los estados de validación. */
.form-control:focus, .form-select:focus,
.select2-container--default .select2-selection--single:focus,
.select2-container--default.select2-container--focus .select2-selection--multiple {
    border-color: var(--menix-charcoal);
    box-shadow: 0 0 0 3px rgba(var(--menix-charcoal-rgb), .15);
}

.form-check-input:checked,
.custom-control-input:checked ~ .custom-control-label::before {
    background-color: var(--menix-charcoal);
    border-color: var(--menix-charcoal);
}

.custom-control-input:focus ~ .custom-control-label::before {
    box-shadow: 0 0 0 3px rgba(var(--menix-charcoal-rgb), .15);
}

.form-check-input:focus {
    border-color: var(--menix-charcoal);
    box-shadow: 0 0 0 3px rgba(var(--menix-charcoal-rgb), .15);
}

.pagination {
    --bs-pagination-color: var(--menix-charcoal);
    --bs-pagination-border-color: var(--menix-border);
    --bs-pagination-hover-color: var(--menix-charcoal-secondary);
    --bs-pagination-hover-bg: var(--menix-soft-gold);
    --bs-pagination-hover-border-color: var(--menix-border);
    --bs-pagination-active-bg: var(--menix-charcoal);
    --bs-pagination-active-border-color: var(--menix-charcoal);
}

.nav-pills {
    --bs-nav-pills-link-active-bg: var(--menix-charcoal);
}
.nav-tabs .nav-link.active, .nav-tabs .nav-link:hover:not(.disabled), .nav-tabs .nav-link:focus:not(.disabled),
.nk-menu-link:hover, .active > .nk-menu-link, .current-menu > .nk-menu-link,
.nk-menu-link:hover .nk-menu-icon, .active > .nk-menu-link .nk-menu-icon, .current-menu > .nk-menu-link .nk-menu-icon {
    color: var(--menix-charcoal);
}

/* Gold identifica la selección sobre Charcoal; los estados conservan su semántica. */
.nk-sidebar.is-dark {
    background-color: var(--menix-charcoal);
    border-right-color: var(--menix-charcoal);
}

.is-dark .nk-sidebar-head {
    border-color: rgba(255, 255, 255, .12);
}
.is-dark .nk-menu-link, .is-dark .nk-menu-icon {
    color: var(--menix-border);
}
.is-dark .text-primary-alt {
    color: var(--menix-soft-gold) !important;
}
.is-dark .nk-menu-link:hover, .is-dark .active > .nk-menu-link, .is-dark .current-menu > .nk-menu-link,
.is-dark .nk-menu-link:hover .nk-menu-icon, .is-dark .active > .nk-menu-link .nk-menu-icon, .is-dark .current-menu > .nk-menu-link .nk-menu-icon {
    color: var(--menix-gold);
}

/* Superficies y texto: los componentes compilados no heredan todos los tokens. */
.nk-body,
.form-control,
.form-select,
.table,
.nk-tb-list,
.select2-container--default .select2-selection--single .select2-selection__rendered,
.select2-container--default .select2-selection--multiple .select2-search__field {
    color: var(--menix-charcoal);
}

.nk-body,
.nk-header.is-light,
.card,
.modal-content {
    background-color: var(--menix-white);
}

.form-control::placeholder,
.select2-container--default .select2-selection--single .select2-selection__placeholder,
.form-note,
.form-text,
.nk-tb-list .tb-sub,
.nk-tb-list .tb-lead-sub,
.text-light,
.text-muted,
.nk-tb-col .sub-text {
    color: var(--menix-text-secondary) !important;
}

.link-list a,
.nk-tb-col .tb-product .title {
    color: var(--menix-charcoal);
}

.link-primary, a.text-primary:not(.btn) {
    color: var(--menix-link-color) !important;
}

/* Los enlaces de texto se reconocen también sin depender del color. */
a[href]:not([class]):not(nav a, .link-list a, .dropdown-menu a),
.link-primary, a.text-primary:not(.btn), .btn-link {
    text-underline-offset: .2em;
    text-decoration-thickness: 1px;
}

:is(a[href]:not([class]):not(nav a, .link-list a, .dropdown-menu a), .link-primary, a.text-primary:not(.btn), .btn-link):is(:hover, :focus-visible) {
    text-decoration: underline;
    text-decoration-thickness: 2px;
}

.btn-link {
    --bs-btn-color: var(--menix-link-color);
    --bs-btn-hover-color: var(--menix-link-hover-color);
    --bs-btn-active-color: var(--menix-link-hover-color);
    color: var(--menix-link-color);
}

.btn-link:is(:hover, :focus-visible, :active) {
    color: var(--menix-link-hover-color);
}

.link-list a:hover,
.link-list a:hover .icon,
.nk-quick-nav-icon:hover,
.dropdown-toggle:hover .dropdown-indicator {
    color: var(--menix-charcoal-secondary);
}

.user-avatar:not([class*="bg-"]),
.text-bg-primary {
    color: var(--menix-white) !important;
    background-color: var(--menix-charcoal) !important;
}

.dropdown-menu {
    --bs-dropdown-color: var(--menix-charcoal);
    --bs-dropdown-link-color: var(--menix-charcoal);
    --bs-dropdown-link-hover-color: var(--menix-charcoal);
    --bs-dropdown-link-hover-bg: var(--menix-surface);
    --bs-dropdown-link-active-color: var(--menix-charcoal);
    --bs-dropdown-link-active-bg: var(--menix-soft-gold);
}

.accordion {
    --bs-accordion-color: var(--menix-charcoal);
    --bs-accordion-active-color: var(--menix-charcoal);
    --bs-accordion-active-bg: var(--menix-soft-gold);
    --bs-accordion-btn-focus-border-color: var(--menix-charcoal);
    --bs-accordion-btn-focus-box-shadow: var(--menix-focus-ring);
}

.accordion-head,
.accordion-head:not(.collapsed),
.accordion-head:hover,
.accordion-head:not(.collapsed) .accordion-icon,
.accordion-head:hover .accordion-icon,
.nav-tabs .nav-link,
.page-link {
    color: var(--menix-charcoal);
}

.accordion-head .title,
.accordion-head.collapsed .title,
.nk-header .user-name {
    color: var(--menix-charcoal);
}

.nk-menu-link,
.nk-menu-icon,
.nk-quick-nav-icon {
    color: var(--menix-charcoal-secondary);
}

.nk-sidebar.is-dark .nk-quick-nav-icon {
    color: var(--menix-soft-gold);
}

.select2-container--default .select2-selection--multiple .select2-selection__choice,
.select2-container--default .select2-results__option[aria-selected="true"],
.select2-container--default .select2-results__option--highlighted[aria-selected],
.nk-tb-item.is-selected,
.nk-tb-item.selected,
table.dataTable tbody tr.selected > *,
.table-primary {
    --bs-table-color: var(--menix-charcoal);
    --bs-table-bg: var(--menix-soft-gold);
    --bs-table-striped-bg: var(--menix-surface);
    --bs-table-striped-color: var(--menix-charcoal);
    --bs-table-hover-bg: var(--menix-surface);
    --bs-table-hover-color: var(--menix-charcoal);
    color: var(--menix-charcoal);
    background-color: var(--menix-soft-gold);
}

.select2-container--default .select2-selection--multiple .select2-selection__choice {
    border-color: var(--menix-border);
}

.select2-search--dropdown .select2-search__field:focus,
.select2-container--default.select2-container--open .select2-selection--single,
.select2-container--default.select2-container--open .select2-selection--multiple {
    border-color: var(--menix-charcoal);
}

.form-check-input:indeterminate,
.custom-control-input:indeterminate ~ .custom-control-label::before,
.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before,
.custom-radio .custom-control-input:disabled:checked ~ .custom-control-label::before {
    background-color: var(--menix-charcoal);
    border-color: var(--menix-charcoal);
}

.datepicker table tr td.active:not(.disabled),
.datepicker table tr td.active:not(.disabled):hover,
.datepicker table tr td span.active:not(.disabled),
.daterangepicker td.active,
.daterangepicker td.active:hover {
    color: var(--menix-white);
    background: var(--menix-charcoal);
}

.daterangepicker td.in-range:not(.active),
.datepicker table tr td.today:not(.active):not(.disabled) {
    color: var(--menix-charcoal);
    background: var(--menix-soft-gold);
}

.progress {
    --bs-progress-bar-bg: var(--menix-charcoal);
}

.bg-primary,
.bg-outline-primary,
.badge-dim.bg-primary,
.badge-dot.bg-primary,
.pro-control .custom-control-input:checked ~ .custom-control-label {
    border-color: var(--menix-charcoal);
}

.alert-fill.alert-primary {
    color: var(--menix-white);
}

:is(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
    outline: 2px solid var(--menix-charcoal);
    outline-offset: 3px;
}

.nk-sidebar.is-dark :focus-visible {
    outline-color: var(--menix-gold);
}

/* Conservar los márgenes del asset oficial al expandir y contraer el sidebar. */
.nk-sidebar-logo .menix-sidebar-wordmark {
    width: 144px;
    height: auto;
    max-height: none;
}

.nk-sidebar-logo .menix-sidebar-symbol {
    display: none;
    width: 32px;
    height: 32px;
    max-height: none;
}

@media (min-width: 1200px) {
    .nk-sidebar.is-compact:not(.has-hover) .nk-sidebar-head {
        width: 74px;
        padding-inline: 4px;
        justify-content: space-between;
    }

    .nk-sidebar.is-compact:not(.has-hover) .nk-sidebar-head .nk-quick-nav-icon {
        padding: 4px;
    }

    .nk-sidebar.is-compact:not(.has-hover) .nk-menu-trigger {
        flex: 0 0 32px;
        margin-right: 0;
    }

    .nk-sidebar.is-compact:not(.has-hover) .menix-sidebar-wordmark {
        display: none;
    }

    .nk-sidebar.is-compact:not(.has-hover) .menix-sidebar-symbol {
        display: block;
        position: static;
        transform: none;
        opacity: 1;
    }
}
