/* ========================================================================
 * HOJA DE ESTILOS DE LA LANDING PAGE DATAWORK®
 * Versión 1.0.0
 * Creación: 27/02/2024
 * Última modificación: 01/03/2024
======================================================================== */

@import url(themes/brand_scheme.css);

/* ========================================================================
 * GENERAL *
======================================================================== */
html body {
   font-family: var(--main_font);
   font-size: 16px;
   font-weight: normal;
   line-height: 19px;
   color: var(--shadowdark);
}

h1, h2, h3, h4, h5, h6 { margin-bottom: 0; }

h1, h2 {
   font-size: 30px;
   font-weight: 700;
   line-height: calc(30px * 1.2);
}
h4 {
   font-size: 24px;
   font-weight: 600;
   line-height: calc(24px * 1.2);
}
h5 {
   font-size: 26px;
   font-weight: 400;
   line-height: calc(26px * 1.2);
}
h6 {
   font-size: 18px;
   font-weight: 600;
   line-height: calc(18px * 1.2);
}

@media screen and (min-width: 992px) {
   h1, h2 {
      font-size: 36px;
      font-weight: 700;
      line-height: calc(36px * 1.2);
   }
   h6 {
      font-size: 21px;
      font-weight: 600;
      line-height: calc(21px * 1.2);
   }
}


/* ========================================================================
 * LAYOUT *
======================================================================== */
/* IMÁGENES */
.site_brand { width: 183px; }

.suite_brand img, .product_brand img { width: 100%; }

.suite_brand .brand_white,
.product_brand .brand_white { display: block; }

.suite_brand .brand_color,
.product_brand .brand_color { display: none; }

.sticky .suite_brand .brand_white,
.sticky .product_brand .brand_white { display: none; }

.sticky .suite_brand .brand_color,
.sticky .product_brand .brand_color { display: block; }

.app_brand {
   width: 75px;
   height: 75px;
   object-fit: contain;
}

.app_icon { width: 200px; }

.hero .hero_img { width: 100%; }

.icon_data {
   width: 50px;
   height: 50px;
   object-fit: contain;
}

.secc_suite .box_card img {
   height: 50px;
   object-fit: contain;
}

@media screen and (min-width: 768px) {
   .hero .hero_img { width: 75%; }
   .suite_brand img, .product_brand img { width: 183px; }
}
@media screen and (min-width: 1024px) {
   .hero .hero_img {
      width: auto;
      height: 390px;
   }
}
@media screen and (min-width: 1200px) {
   .hero .hero_img {
      width: auto;
      height: 520px;
   }
}

/* WRAPS */
.hero {
   background-color: var(--shadowdark);
   padding-top: 40px;
   height: 400px;
   margin-bottom: 25vh;
}

.box_icon {
   flex-direction: column;
   justify-content: center;
   align-items: center;
   background-color: var(--white);
}

.main_footer {
   background-color: var(--shadowdark);
   padding: 12px 0;
   font-size: 13px;
   line-height: 24px;
   color: var(--shadowlight);
   margin-top: 120px;
}

.contenido {
   display: flex;
   flex-direction: column;
   min-height: 100vh;
}

.main_content {
   flex: 1;
}

.oculto {
   display: none !important
}

.captcha-v2 {
   position: relative;
   z-index: 1;
   background-color: var(--white);
   border-radius: 6px;
   font-size: 12px;
   display: inline-block;
   transition: border-color 0.3s ease, box-shadow 0.3s ease;
}

@keyframes focus {
   0% {
      border-color: var(--error);
      box-shadow: 0 0 10px var(--error);
   }
   100% {
      border-color: var(--error);
      box-shadow: 0 0 0 transparent;
   }
}

.captcha-v2.error {
   border: 1px solid var(--error); 
   animation: focus 2s forwards; 
}

#widget-recaptcha {
   margin-top: 10px;
}

.search_content {
   position: relative;
   z-index: 1;
}

.wrap_preview_pdf {
   width: 100%;
   height: 600px;
   overflow-y: scroll;
   background-color: rgba(var(--admin_rgb), 0.1);
   padding: 20px;
}

.main_header {
   background-color: var(--shadowdark);
   padding-top: 20px;
   padding-bottom: 20px;
   width: 100%;
   transition: ease-in-out .2s;
}

.main_header.sticky {
   position: fixed;
   z-index: 1025;
   top: 0;
   left: 0;
   background-color: var(--white);
}

.secc_beneficios, .secc_contacto, .secc_suite { margin-top: 60px; }

.secc_contacto {
   background-color: var(--white);
   padding: 120px 0;
}

.box_heading {
   max-width: 790px;
   margin: 0 auto;
}

.box_card {
   background-color: var(--white);
   padding: 20px 20px;
   display: flex;
   flex-direction: column;
   gap: 16px;
}

@media screen and (min-width: 768px) {
   .hero {
      height: 500px;
      margin-bottom: 0;
   }

   .app_icon {
      width: 50%;
      position: absolute;
      top: 0;
      right: 20px;
   }

   .search_content { padding-top: 145px; }
}
@media screen and (min-width: 1024px) {
   .hero { height: 375px; }

   .secc_beneficios, .secc_contacto, .secc_suite { margin-top: 120px; }
}
@media screen and (min-width: 1200px) {
   .hero { height: 500px; }
   .app_icon { width: 563px; }
   .search_content { padding-top: 200px; }
}


/* ========================================================================
 * COMPONENTES *
======================================================================== */
/* BARRA DE BÚSQUEDA */
.search_bar {
   display: flex;
   flex-direction: row;
   overflow: hidden;
   border-radius: 6px;
   box-shadow: 0 30px 40px -30px rgba(23,45,92,0.8);
}
.search_bar .material-symbols-outlined { font-size: 40px; }

.search_bar .box_icon {
   width: 100px;
   height: 100px;
   display: flex;
}

.search_bar .button {
   height: 100px;
   padding: 0 24px;
   border: 0;
   background-color: rgba(var(--admin_rgb), 1);
   color: var(--white);
   transition: ease-in-out 0.2s;
}
.search_bar .button:hover { background-color: rgba(var(--admin_rgb), 0.7); }

.search_bar input {
   width: 100%;
   height: 100px;
   border: 0;
   padding: 0 24px;
}

/* BOTONES Y ENLACES */
html body a {
   text-decoration: none;
   font-weight: 600;
   transition: all .2s;
}

.main_footer a { color: var(--shadowlight); }
.main_footer a:hover { color: var(--admin); }

/* TARJETAS */
.business_card, .business_bar {
   background-color: var(--white);
   border-radius: 4px;
   border: 0;
   width: 100%;
}

.business_card .card-header,
.business_card .card-body,
.business_card .card-footer,
.business_bar .card-header,
.business_bar .card-body,
.business_bar .card-footer {
   padding: 20px 20px;
   background-color: transparent;
   border-color: var(--shadowlight);
   border-radius: 0;
}

.business_bar .card-header {
   border-bottom: 0;
   border-right: 1px solid var(--shadowmid);
}

.business_card .card-header img,
.business_bar .card-header img {
   width: 100%;
   height: 100%;
   object-fit: contain;
}

.business_card .card-footer { border: 0; }

.business_card label,
.business_bar label {
   font-weight: 700;
   opacity: 0.5;
   display: block;
}

.business_card .card-footer a { color: var(--admin); }
.business_card .card-footer a:hover { color: var(--admin_hover); }

.business_card .material-symbols-outlined {
   font-size: inherit;
   vertical-align: middle;
}

.card {
   --bs-card-border-width: 0;
   --bs-card-border-radius: 4px;
   --bs-card-bg: var(--white);
   --bs-card-cap-padding-x: 20px;
   --bs-card-cap-padding-y: 20px;
   --bs-card-spacer-y: var(--bs-card-cap-padding-y);
   --bs-card-spacer-x: var(--bs-card-cap-padding-x);
   --bs-card-cap-bg: transparent;
}

.card .card-header { text-align: end; }

.card .card-body label {
   display: block;
   font-weight: bold;
}

.card .card-footer button { width: 50%; }

.hero .box_description {
   color: var(--white);
   text-align: center;
}

@media screen and (min-width: 768px) {
   .business_card .card-header {
      border-bottom: 0;
      border-right: 1px solid var(--shadowmid);
   }
}
@media screen and (min-width: 992px) {
   .business_card { width: 50%; }

   .hero .box_description {
      text-align: left;
      max-width: 488px;
   }
}

/* BREADCRUMBS */
.breadcrumb a { color: var(--admin); }
.breadcrumb a:hover { color: var(--admin_hover); }

.breadcrumb .material-symbols-outlined {
   font-size: inherit;
   vertical-align: top;
   margin-right: 5px;
}

/* TABLAS */
table td:last-child, table th:last-child { text-align: end; }

.table th { border-bottom: 2px solid var(--admin); }

table tfoot td {
   font-size: 13px;
   line-height: 15px;
   border-bottom: 0;
}

/* MODALES */
.modal_success .modal-footer {
   flex-direction: column;
   gap: 10px;
}
.modal_success .modal-footer button { width: 100%; }

.modal_icon_box .material-symbols-outlined { font-size: 100px; }
.modal_success .material-symbols-outlined { color: var(--admin); }
.modal_error .material-symbols-outlined { color: var(--error); }

@media screen and (min-width: 1024px) {
   .modal_success .modal-footer {
      flex-direction: row;
      justify-content: center;
      align-items: center;
   }

   .modal_success .modal-footer button { width: auto; }
}

/* ========================================================================
* UTILITARIOS *
======================================================================== */
/* POPUP */
.popup {
   position: relative;
   display: inline-block;
   cursor: pointer;
}

.popup .popup-content {
   display: none;
   position: absolute;
   z-index: 1;
   background-color: white;
   border: 1px solid #ccc;
   padding: 16px;
   border-radius: 5px;
   box-shadow: 0 2px 5px rgba(0,0,0,0.2);
   top: 100%;
   left: 50%;
   transform: translateX(-50%);
}

.popup:hover .popup-content {
   display: block;
}

/* TEXTOS */
.caption {
   font-size: 13px;
   font-weight: 400;
   line-height: 16px;
}
/* SPINNER */
.spinner-blue {
   color: #062E4F;
}

.hero p {
   font-size: 18px;
   line-height: calc(18px * 1.2);
   margin-bottom: 0;
}

/* ICONOS */
.material-symbols-outlined {
   font-size: inherit;
   vertical-align: middle;
}

.box_card .material-symbols-outlined {
   font-size: 50px;
   color: var(--admin);
}

.spinner-overlay {
   display: none;
   position: fixed;
   top: 0;
   left: 0;
   width: 100%;
   height: 100%;
   background: rgba(0, 0, 0, 0.8);
   justify-content: center;
   align-items: center;
   z-index: 9999;
   color: #1AB759;
}

.spinner-text {
   margin-top: 20px;
   font-size: 20px;
   color: white;
}

.spinner-border {
   width: 5rem;
   height: 5rem;
   border-width: 5px;
}
/* HOVER EMPRESA */
#empresa:hover {
   transition: all 0.2s ease;
   box-shadow: 0 0 10px rgba(0, 0, 0, 0.5);
   border: 3px solid var(--admin);
}
/* MÁRGENES Y ACOLCHADOS */
.margin_bottom_10px { margin-bottom: 10px; }
.margin_top_60px { margin-top: 60px; }

/* BOOTSTRAP OVERRIDES */
.text-primary { color: var(--admin) !important;}

/* Alerts */
.alert {
   --bs-alert-padding-x: 16px;
   --bs-alert-padding-y: 12px;
   border-radius: 4px;
   display: flex;
   flex-wrap: wrap;
   flex-direction: row;
   gap: 10px;
   align-items: center;
}

body .alert-dismissible .btn-close {
   padding: 10px 10px;
   bottom: 0;
   margin: auto;
}

.alert-success {
   --bs-alert-color: var(--shadowdark);
   --bs-alert-bg: rgba(var(--success_rgb), 0.25);
   --bs-alert-border-color: var(--success);
}
.alert-success .material-symbols-outlined { color: var(--success); }

.alert-info {
   --bs-alert-color: var(--shadowdark);
   --bs-alert-bg: rgba(var(--info_rgb), 0.25);
   --bs-alert-border-color: var(--info);
}
.alert-info .material-symbols-outlined { color: var(--info); }

.alert-danger {
   --bs-alert-color: var(--shadowdark);
   --bs-alert-bg: rgba(var(--error_rgb), 0.25);
   --bs-alert-border-color: var(--error);
}
.alert-danger .material-symbols-outlined { color: var(--error); }

/* Buttons */
.btn {
   --bs-btn-padding-x: 12px;
   --bs-btn-padding-y: 8px;
   --bs-btn-border-radius: 4px;
   font-weight: 600;
}

.btn-link {
   text-decoration: none;
   color: var(--admin);
}

.btn-link:hover {
   background-color: rgba(var(--admin_rgb), 0.2);
   color: var(--admin_hover);
}

.btn-primary {
   --bs-btn-bg: var(--admin);
   --bs-btn-border-color: var(--admin);
   --bs-btn-hover-bg: var(--admin_hover);
   --bs-btn-hover-border-color: var(--admin_hover);
}

.btn-outline-primary {
   --bs-btn-color: var(--admin);
   --bs-btn-border-color: var(--admin);
   --bs-btn-hover-color: var(--admin_hover);
   --bs-btn-hover-border-color: var(--admin_hover);
   --bs-btn-hover-bg: rgba(var(--admin_hover_rgb), 0.2);
}

.btn:disabled, .btn[disabled] {
   --bs-btn-bg: #cccccc;
   --bs-btn-border-color: #cccccc; 
   --bs-btn-color: #666666;
   cursor: not-allowed;
   background-color: var(--bs-btn-bg);
   border-color: var(--bs-btn-border-color);
   color: var(--bs-btn-color);
}

/* Forms */
.form-label { font-weight: 600; }

.form-control, .form-select {
   --bs-body-bg: var(--white);
   --bs-body-color: var(--shadowdark);
   --bs-border-width: 0;
   padding: 8px 12px;
   border-radius: 0;
}

.form-control::placeholder { color: var(--shadowmid); }

.input-group {
   overflow: hidden;
   border-radius: 4px;
   border: 1px solid var(--shadowmid);
}

.input-group-text {
   --bs-border-width: 0;
   --bs-tertiary-bg: var(--white);
   --bs-body-color: var(--shadowdark);
   border-radius: 0;
}
.input-group-text .material-symbols-outlined { font-size: 20px; }

.form-check-input {
   --bs-form-check-bg: var(--white);
   --bs-border-color: var(--shadowmid);
   width: 20px;
   height: 20px;
}

.form-check-input[type=checkbox] { border-radius: 0; }

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

#form_kiosco .form-control { border: 1px solid var(--shadowlight); }

/* Tables */
.table > :not(caption)>*>* {
   --bs-table-color-state: var(--shadowdark);
   --bs-table-bg: transparent;
   vertical-align: middle;
   padding: 8px 12px;
}

.table {
   --bs-table-hover-color: var(--shadowdark);
   --bs-table-hover-bg: rgba(var(--admin_rgb), 0.1);
}

/* Modals */
.modal-content {
   --bs-modal-border-radius: 2px;
   --bs-modal-border-width: 0;
}

.modal-header {
   --bs-modal-header-border-width: 0;
   --bs-modal-header-padding: 20px;
}

.modal-body { --bs-modal-padding: 20px; }

.modal-footer {
   --bs-modal-footer-border-width: 0;
   --bs-modal-padding: 20px;
}

.modal-backdrop {
   --bs-backdrop-bg: var(--shadowdark);
   --bs-backdrop-opacity: 0.7;
}

/* Pagination */
.pagination {
   --bs-pagination-padding-x: 12px;
   --bs-pagination-padding-y: 8px;
   --bs-pagination-font-size: 13px;
   --bs-pagination-color: var(--shadowdark);
   --bs-pagination-bg: transparent;
   --bs-pagination-border-width: 0;
   --bs-pagination-border-radius: 4px;
   --bs-pagination-hover-bg: rgba(var(--admin_hover_rgb), 0.2);
   --bs-pagination-hover-color: var(--admin_hover);
   --bs-pagination-hover-border-color: var(--admin_hover);
   --bs-pagination-focus-color: var(--white);
   --bs-pagination-focus-bg: var(--admin_hover);
   --bs-pagination-active-bg: var(--admin);
   --bs-pagination-active-border-color: var(--admin);
   --bs-pagination-disabled-color: var(--shadowmid);
   --bs-pagination-disabled-bg: transparent;
}

/* Offcanvas */
.offcanvas {
   --bs-offcanvas-bg: var(--white);
   --bs-offcanvas-border-width: 0;
}

@media screen and (min-width: 768px) {
   .offcanvas.offcanvas-end { --bs-offcanvas-width: 100%; }
}
@media screen and (min-width: 1024px) {
   .offcanvas.offcanvas-end { --bs-offcanvas-width: 792px; }
}

.offcanvas-backdrop { background-color: var(--shadowdark); }
.offcanvas-backdrop.show { opacity: 0.7; }

/* Tabs */
.nav-tabs {
   --bs-nav-tabs-border-width: 0;
   --bs-nav-tabs-border-radius: 4px;
}

.nav-link {
   --bs-nav-link-padding-y: 12px;
   --bs-nav-link-paddin-x: 8px;
   --bs-nav-link-color: var(--shadowdark);
   transition: ease-in-out 0.2s;
   font-weight: 600;
}
.nav-link:hover {
   color: var(--admin_hover);
   box-shadow: inset 0 -2px 0 var(--admin);
}

.nav-tabs .nav-link.active {
   --bs-nav-tabs-link-active-color: var(--admin);
   --bs-nav-tabs-link-active-bg: transparent;
   box-shadow: inset 0 -2px 0 var(--admin);
   font-weight: bold;
}

/* Mensajes */
.mensaje { border: 2px solid white; }
.mensaje.toast .toast-header { background-color: transparent; }
.toast-header { padding-bottom: 0.2rem }
.toast-body { padding-top: 0.2rem }
.icono { margin-right: 0.5rem }
.mensaje.exito .toast-header .icono::before { content: "task_alt"; }
.mensaje.info .toast-header .icono::before { content: "info"; }
.mensaje.advertencia .toast-header .icono::before { content: "warning"; }
.mensaje.error .toast-header .icono::before { content: "cancel"; }
.mensaje.exito { background-color: var(--success); }
.mensaje.info { background-color: var(--info); }
.mensaje.advertencia { background-color: var(--warning); }
.mensaje.error { background-color: var(--error); }

.text-right { text-align: right !important; }
.text-end { text-align: end !important; }
.text-center { text-align: center !important; }

/* DataTables */
/* Ordenación */
table.dataTable thead th .dt-column-order { display: none; }
table.dataTable thead th.dt-orderable-asc.dt-orderable-desc .dt-column-title { margin-right: 1rem; }

table.dataTable thead th.dt-orderable-asc.dt-orderable-desc:hover {
   outline: none;
   background-color: var(--admin);
   color: var(--white);
   border-top-left-radius: 4px;
   border-top-right-radius: 4px;
   border-bottom-left-radius: 0;
   border-bottom-right-radius: 0;
}

table.dataTable thead th { position: relative; }

table.dataTable thead th:not(.dt-orderable-none)::before {
   content: "arrow_upward";
   font-family: "Material Symbols Outlined";
   font-variation-settings: "FILL" 0, "wght" 400, "GRAD" 0, "opsz" 24;
   position: absolute;
   right: 10px;
   top: 50%;
   transform: translateY(-50%) translateY(-5px);
   font-size: 12px;
   color: #CCC;
}

table.dataTable thead th:not(.dt-orderable-none)::after {
   content: "arrow_downward";
   font-family: "Material Symbols Outlined";
   font-variation-settings: "FILL" 0, "wght" 400, "GRAD" 0, "opsz" 24;
   position: absolute;
   right: 10px; 
   top: 50%;
   transform: translateY(-50%) translateY(5px);
   font-size: 12px;
   color: #CCC;
}

table.dataTable thead th:not(.dt-orderable-none):hover::before,
table.dataTable thead th:not(.dt-orderable-none):hover::after { color: var(--white); }

table.dataTable thead th.dt-ordering-asc::before,
table.dataTable thead th.dt-ordering-desc::after { color: var(--admin); }

table.dataTable thead th.dt-ordering-asc:hover::before,
table.dataTable thead th.dt-ordering-desc:hover::after { color: var(--admin_hover); }

/* Paginación */
.dt-info { font-size: 0.85rem; }
div.dt-container .dt-paging .dt-paging-button.previous:hover,
div.dt-container .dt-paging .dt-paging-button.next:hover { background-color: var(--admin_hover) !important; }

div.dt-container .dt-paging .dt-paging-button.disabled,
div.dt-container .dt-paging .dt-paging-button.disabled:hover,
div.dt-container .dt-paging .dt-paging-button.disabled:active {
   background-color: var(--shadowmid) !important;
   font-weight: 600;
}

div.dt-container .dt-paging .dt-paging-button.previous:not(.disabled):not(.active),
div.dt-container .dt-paging .dt-paging-button.next:not(.disabled):not(.active) {
   color: var(--white) !important;
   font-size: 1rem;
   font-weight: 600;
   background-color: var(--admin);
}

div.dt-container .dt-paging .dt-paging-button.previous:not(.disabled):not(.active):hover,
div.dt-container .dt-paging .dt-paging-button.next:not(.disabled):not(.active):hover {
   background-color: var(--admin_hover) !important;
   background: none;
   border-color: var(--admin_hover);
}

div.dt-container .dt-paging .dt-paging-button:not(.previous):not(.next) {
   color: var(--admin) !important;
   font-size: 1rem;
   font-weight: 600;
   background: none;
   border: none;
   transition: color 0.5s ease, font-size 0.5s ease;
}

div.dt-container .dt-paging .dt-paging-button:not(.previous):not(.next):active { box-shadow: none; }
div.dt-container .dt-paging .dt-paging-button:not(.previous):not(.next).current {
   font-size: 1.1rem;
   color: var(--admin_hover) !important;
}

div.dt-container .dt-paging .dt-paging-button:not(.previous):not(.next):hover { color: var(--admin_hover) !important; font-size: 1.1rem; }
/* Diseño tabla */
#tabla-ventas tbody {
   border-top: 2px solid var(--admin);
   border-bottom: 2px solid var(--shadowlight);
}

/* Responsive */
/* Solo mostrar el icono si hay columnas ocultas */
table.dataTable.dtr-inline.collapsed > tbody > tr > td.dtr-control::before {
   content: "expand_circle_right";
   font-family: "Material Symbols Outlined";
   font-variation-settings: "FILL" 0, "wght" 400, "GRAD" 0, "opsz" 24;
   font-size: 20px;
   color: var(--admin);
   border: 0 !important;
   transition: transform 0.3s ease;
}

table.dataTable.dtr-inline.collapsed > tbody > tr > td.dtr-control { padding-left: 35px; }

table.dataTable.dtr-inline tbody td.dtr-control { position: relative; }

table.dataTable.dtr-inline tbody td.dtr-control::before {
   position: absolute;
   left: 5px;
   margin: 0;
}

.cjs-check { margin-top: 0 !important; }

table.dataTable.dtr-inline tbody tr.dtr-expanded td.dtr-control::before { transform: rotate(90deg); }
ul.dtr-details li .dtr-title { text-align: start; margin-right: 5px; }
ul.dtr-details { width: 100%; }
ul.dtr-details li {
   display: flex;
   flex-direction: row;
   justify-content: space-between;
}

.opciones { flex-direction: column; }

@media (max-width: 767px) {
   .opciones { flex-direction: row; }
   .btn-ver-comprobante,
   .btn-descargar-factura,
   .btn-facturar {
      font-size: 0;
      padding: 0.2rem;
      background: none;
      border: none;
      color: var(--shadowdark);
   }

   .btn-ver-comprobante::before,
   .btn-descargar-factura::before,
   .btn-facturar::before {
      font-family: "Material Symbols Outlined";
      font-variation-settings: "FILL" 0, "wght" 400, "GRAD" 0, "opsz" 24;
      font-size: 20px;
      font-weight: normal;
   }

   .btn-ver-comprobante::before { content: "confirmation_number"; }
   .btn-descargar-factura::before { content: "description"; }
   .btn-facturar::before { content: "notifications"; }
}

/* Badge RFFC */
#etiqueta-rfc {
   position: absolute;
   border-radius: 3px;
   font-size: 11px;
   padding: 5px 7px;
   right: 8px;
   top:9px;
   color:#fff;
   display: none;
}

#etiqueta-rfc.no-valido { background:#e84c3d; display: block; }
#etiqueta-rfc.valido { background:#4285f4; display: block; }

/* Select2 Bootstrap 5 */
.select2-selection { border: none !important; }
.select2-container--bootstrap-5 .select2-dropdown { border-color: var(--shadowmid) !important; }

.select2-container--bootstrap-5 .select2-dropdown .select2-results__options .select2-results__option.select2-results__option--selected,
.select2-container--bootstrap-5 .select2-dropdown .select2-results__options .select2-results__option[aria-selected="true"]:not(.select2-results__option--highlighted) {
   background-color: var(--admin) !important;
}

.select2-container--bootstrap-5 .select2-dropdown .select2-results__options .select2-results__option.select2-results__option--selected:hover,
.select2-container--bootstrap-5 .select2-dropdown .select2-results__options .select2-results__option[aria-selected="true"]:not(.select2-results__option--highlighted):hover {
   background-color: var(--admin_hover) !important;
}

.select2-container .select2-selection--single .select2-selection__rendered {
   white-space: nowrap !important;
   overflow: hidden !important;
   text-overflow: ellipsis !important;
   display: block !important;
   padding-right: 20px !important;
}

.select2-container {
   max-width: 100% !important;
   width: 100% !important;
}

.input-group > :not(:first-child).select2-container--bootstrap-5 {
   margin-left: 0px !important;
   border-top-left-radius: 0 !important;
   border-bottom-left-radius: 0 !important;
}

.input-group.is-invalid:not(:has(.bg-secondary-subtle)) {
    border: 1px solid #dc3545 !important;
    border-radius: 0.375rem;
}

.input-group.is-valid:not(:has(.bg-secondary-subtle)) {
    border: 1px solid #1ab759 !important;
    border-radius: 0.375rem;
}


@keyframes shake-suave {
    0% { transform: translateX(0); }
    25% { transform: translateX(-5px); }
    50% { transform: translateX(5px); }
    75% { transform: translateX(-5px); }
    100% { transform: translateX(0); }
}

.animacion-error {
    animation: shake-suave 0.4s ease-in-out;
}

.btn-primary:active,
.btn-outline-primary:active {
   background-color: var(--bs-btn-hover-bg) !important;
   border-color: var(--bs-btn-hover-border-color) !important;
   opacity: 0.75;
}

.btn-outline-primary:active,
.btn-link:active,
.btn-link.active {
   color: var(--admin) !important;
   opacity: 0.75;
}

.bg-secondary-subtle { cursor: not-allowed; }
.form-check-input:disabled{ visibility: hidden !important; }