/*
 * Identidad visual configurable de BW_WEB.
 * Los valores de los tokens se inyectan desde BrandingOptions en el layout maestro.
 * Este archivo contiene el adaptador genérico para los componentes de Vuexy/Bootstrap.
 */
html {
  --bs-body-font-family: var(--brand-font-family);
  --bs-font-sans-serif: var(--brand-font-family);
  --bs-primary: var(--brand-primary);
  --bs-primary-rgb: var(--brand-primary-rgb);
  --bs-link-color: var(--brand-primary);
  --bs-link-hover-color: var(--brand-primary-hover);
}
body,
button,
input,
select,
textarea {
  font-family: var(--brand-font-family);
}
html.light-style body,
html.light-style .bg-body {
  background-color: var(--brand-background) !important;
}
html.light-style .card,
html.light-style .bg-navbar-theme,
html.light-style .bg-menu-theme {
  background-color: var(--brand-surface);
}
a:not(.btn):not(.menu-link):not(.nav-link):not(.dropdown-item),
.btn-link,
.text-primary,
.link-primary,
.btn-text-primary,
.nav-link.text-primary {
  color: var(--brand-primary) !important;
}
a:not(.btn):not(.menu-link):not(.nav-link):not(.dropdown-item):hover,
a.text-primary:hover,
.link-primary:hover,
.btn-link:hover,
.btn-text-primary:hover {
  color: var(--brand-primary-hover) !important;
}
.bg-primary,
.progress-bar {
  background-color: var(--brand-primary) !important;
}
.border-primary {
  border-color: var(--brand-primary) !important;
}
.btn-primary {
  --bs-btn-color: #ffffff;
  --bs-btn-bg: var(--brand-primary);
  --bs-btn-border-color: var(--brand-primary);
  --bs-btn-hover-color: #ffffff;
  --bs-btn-hover-bg: var(--brand-primary-hover);
  --bs-btn-hover-border-color: var(--brand-primary-hover);
  --bs-btn-active-color: #ffffff;
  --bs-btn-active-bg: var(--brand-primary-hover);
  --bs-btn-active-border-color: var(--brand-primary-hover);
  --bs-btn-disabled-color: #ffffff;
  --bs-btn-disabled-bg: var(--brand-primary);
  --bs-btn-disabled-border-color: var(--brand-primary);
  color: #ffffff !important;
  background-color: var(--brand-primary) !important;
  border-color: var(--brand-primary) !important;
  box-shadow: 0 0.125rem 0.25rem rgba(var(--brand-primary-rgb), 0.18) !important;
}
.btn-primary:hover,
.btn-primary:focus,
.btn-primary:focus-visible,
.btn-primary:active,
.btn-primary.active,
.show > .btn-primary.dropdown-toggle {
  color: #ffffff !important;
  background-color: var(--brand-primary-hover) !important;
  border-color: var(--brand-primary-hover) !important;
  box-shadow: 0 0.25rem 0.6rem rgba(var(--brand-primary-rgb), 0.32) !important;
}
.btn-primary:focus-visible {
  outline: 0;
}
.btn-outline-primary {
  --bs-btn-color: var(--brand-primary);
  --bs-btn-border-color: var(--brand-primary);
  --bs-btn-hover-color: #ffffff;
  --bs-btn-hover-bg: var(--brand-primary);
  --bs-btn-hover-border-color: var(--brand-primary);
  --bs-btn-active-color: #ffffff;
  --bs-btn-active-bg: var(--brand-primary-hover);
  --bs-btn-active-border-color: var(--brand-primary-hover);
  color: var(--brand-primary) !important;
  border-color: var(--brand-primary) !important;
}
.btn-outline-primary:hover,
.btn-outline-primary:focus,
.btn-outline-primary:focus-visible,
.btn-outline-primary:active,
.btn-outline-primary.active {
  color: #ffffff !important;
  background-color: var(--brand-primary) !important;
  border-color: var(--brand-primary) !important;
  box-shadow: 0 0.25rem 0.6rem rgba(var(--brand-primary-rgb), 0.24) !important;
}
.bg-label-primary,
.badge.bg-label-primary,
.bg-label-hover-primary,
.list-group-item-primary,
.alert-primary {
  background-color: rgba(var(--brand-primary-rgb), 0.14) !important;
  border-color: rgba(var(--brand-primary-rgb), 0.22) !important;
  color: var(--brand-primary) !important;
}
.bg-label-hover-primary:hover,
a.list-group-item-primary:hover,
button.list-group-item-primary:hover {
  background-color: rgba(var(--brand-primary-rgb), 0.22) !important;
  color: var(--brand-primary) !important;
}
.bg-gradient-primary {
  background-image: linear-gradient(45deg, var(--brand-primary), rgba(var(--brand-primary-rgb), 0.55)) !important;
}
.bg-primary.bg-glow,
.page-item.active .page-link,
.pagination li.active > a:not(.page-link) {
  box-shadow: 0 0.125rem 0.375rem 0 rgba(var(--brand-primary-rgb), 0.3) !important;
}
.form-check-input:checked,
.form-check-input[type='checkbox']:indeterminate {
  background-color: var(--brand-primary) !important;
  border-color: var(--brand-primary) !important;
}
.form-control:focus,
.form-select:focus,
.input-group:focus-within .form-control,
.input-group:focus-within .input-group-text {
  border-color: var(--brand-primary) !important;
  box-shadow: 0 0 0 0.2rem rgba(var(--brand-primary-rgb), 0.15);
}
.pagination {
  --bs-pagination-active-color: #ffffff;
  --bs-pagination-active-bg: var(--brand-primary);
  --bs-pagination-active-border-color: var(--brand-primary);
}
.page-item .page-link:hover,
.page-item .page-link:focus,
.pagination li > a:not(.page-link):hover,
.pagination li > a:not(.page-link):focus {
  background-color: rgba(var(--brand-primary-rgb), 0.14) !important;
  color: var(--brand-primary) !important;
}
.page-item.active .page-link,
.page-item.active .page-link:hover,
.page-item.active .page-link:focus,
.pagination .page-item.active .page-link,
.pagination li.active > a:not(.page-link),
div.dataTables_wrapper div.dataTables_paginate ul.pagination .page-item.active .page-link,
div.dt-container div.dt-paging ul.pagination .dt-paging-button.active .page-link {
  background-color: var(--brand-primary) !important;
  border-color: var(--brand-primary) !important;
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
}
.pagination-outline-primary .page-item.active .page-link,
.pagination-outline-primary.pagination li.active > a:not(.page-link) {
  background-color: rgba(var(--brand-primary-rgb), 0.14) !important;
  border-color: var(--brand-primary) !important;
  color: var(--brand-primary) !important;
}
.dropdown-item.active,
.dropdown-item:active,
.nav-pills .nav-link.active,
.nav-pills .show > .nav-link {
  background-color: var(--brand-primary) !important;
  color: #ffffff !important;
}
.nav-tabs .nav-link.active,
.nav-tabs .nav-item.show .nav-link,
.accordion-button:not(.collapsed) {
  color: var(--brand-primary) !important;
}
.list-group-item.active {
  background-color: rgba(var(--brand-primary-rgb), 0.14) !important;
  border-color: rgba(var(--brand-primary-rgb), 0.22) !important;
  color: var(--brand-primary) !important;
}
a.list-group-item-primary.active,
button.list-group-item-primary.active,
.alert-solid-primary,
.alert-primary .alert-icon {
  background-color: var(--brand-primary) !important;
  border-color: var(--brand-primary) !important;
  color: #ffffff !important;
}
.alert-outline-primary {
  border-color: var(--brand-primary) !important;
  color: var(--brand-primary) !important;
}
.alert-outline-primary .alert-icon {
  background-color: rgba(var(--brand-primary-rgb), 0.14) !important;
  color: var(--brand-primary) !important;
}
.tooltip-primary .tooltip-inner,
.tooltip-primary > .tooltip .tooltip-inner,
.popover-primary,
.popover-primary > .popover {
  background-color: var(--brand-primary) !important;
}
.carousel-control-prev,
.carousel-control-next {
  color: var(--brand-primary) !important;
}
.modal-onboarding .carousel-indicators [data-bs-target],
.dropdown-notifications-item:not(.mark-as-read) .dropdown-notifications-read span {
  background-color: var(--brand-primary) !important;
}
.bg-menu-theme .menu-inner > .menu-item.active > .menu-link,
.bg-menu-theme .menu-inner > .menu-item.active.open > .menu-link,
.bg-menu-theme .menu-inner .menu-sub > .menu-item.active > .menu-link {
  color: var(--brand-primary) !important;
}
.bg-menu-theme .menu-inner > .menu-item.active > .menu-link:not(.menu-toggle),
.bg-menu-theme .menu-inner > .menu-item.active.open > .menu-link:not(.menu-toggle),
.bg-menu-theme .menu-inner .menu-sub > .menu-item.active > .menu-link {
  color: #ffffff !important;
  background-color: var(--brand-primary) !important;
  background-image: linear-gradient(72.47deg, var(--brand-primary) 22.16%, rgba(var(--brand-primary-rgb), 0.72) 76.47%) !important;
  box-shadow: 0 0.125rem 0.375rem rgba(var(--brand-primary-rgb), 0.3) !important;
}
.bg-menu-theme .menu-inner > .menu-item.active > .menu-link.menu-toggle,
.bg-menu-theme .menu-inner > .menu-item.open > .menu-link.menu-toggle {
  color: var(--brand-primary) !important;
}
.bg-menu-theme .menu-inner .menu-sub > .menu-item.active > .menu-link::before,
.bg-menu-theme .menu-inner .menu-sub > .menu-item.active > .menu-link .menu-icon {
  color: #ffffff !important;
}
.layout-wrapper:not(.layout-horizontal) .bg-menu-theme .menu-inner > .menu-item.active::before {
  background-color: var(--brand-primary) !important;
}
.sk-primary .sk-chase-dot::before,
.sk-primary .sk-wave-rect,
.sk-primary .sk-plane,
.sk-primary .sk-swing-dot,
.sk-primary .sk-circle-dot::before,
.sk-primary .sk-circle-fade-dot::before,
.sk-primary .sk-grid-cube,
.sk-primary .sk-fold-cube::before {
  background-color: var(--brand-primary) !important;
}
.authentication-wrapper.authentication-basic .authentication-inner::before {
  background-image: none !important;
  background-color: rgba(var(--brand-primary-rgb), 0.08);
  border: 1px solid rgba(var(--brand-primary-rgb), 0.16);
  border-radius: 20px;
}
.authentication-wrapper.authentication-basic .authentication-inner::after {
  background-image: none !important;
  background-color: rgba(var(--brand-primary-rgb), 0.08);
  border: 2px dashed rgba(var(--brand-primary-rgb), 0.16);
  border-radius: 20px;
}
.app-brand-logo.branding-logo {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.app-brand-logo.branding-logo img {
  width: 44px;
  height: 44px;
  object-fit: contain;
}
.authentication-wrapper .app-brand-logo.branding-logo img {
  width: 64px;
  height: 64px;
}
html[data-brand-logo-configured='true'] .app-brand-logo.demo {
  width: 44px !important;
  min-width: 44px;
  height: 44px !important;
  background-image: var(--brand-logo-url);
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
}
html[data-brand-logo-configured='true'] .app-brand-logo.demo svg {
  display: none !important;
}
html[data-brand-logo-configured='true'] .authentication-wrapper .app-brand-logo.demo {
  width: 64px !important;
  min-width: 64px;
  height: 64px !important;
}
.app-brand-text.branding-product-name {
  color: var(--brand-text);
}
.branding-client-name {
  color: var(--brand-text-muted);
  font-size: 0.78rem;
  font-weight: 400;
  line-height: 1.2;
}