:root {
  /* Escala base responsiva */
  font-size: clamp(12px, 1.5vw, 16px);
  /* Tamaños escalables */
  --dunamis-font-size-xs: 0.625rem;
  /* 10px */
  --dunamis-font-size-sm: 0.75rem;
  /* 12px */
  --dunamis-font-size-base: 1rem;
  /* 16px */
  --dunamis-font-size-lg: 1.25rem;
  /* 20px */
  --dunamis-font-size-xl: 1.5rem;
  /* 24px */
  --dunamis-font-size-xxl: 2rem;
  /* 32px */
  --dunamis-primary-color: #6fb0ab;
  --dunamis-primary-color2: #A4D3CF;
  --dunamis-secondary-color: #edb202;
  --dunamis-color-bg: #4C8D8C;
  --dunamis--bg-navbar: #E9ECEF;
  --dunamis--bg-sliderBar: #E9ECEF;
  --dunamis-color-hover: #3b6f6e;
  --dunamis-color-focus: #edb202;
  --dunamis-color-text-bg: #ffffff;
  --dunamis-color-text: #333;
  --dunamis-font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
  --dunamis-bg-readonly: #FCEBEB;
  --font-color: #555;
  --bg-color: #F3F4FD;
  --heading-color: #02112a;
  --border-radius: 10px;
  --border-radius-full: 35px;
  --border-color: #ddd;
  --border-color-light: #ddd;
  --nav-color: #02112a;
  --dropdown-color: #fff;
  --iframe-filter: grayscale(0%);
  --bg-light: #f5f6f9;
  --layer: rgb(0 0 0 /30%);
  --layer-1: rgb(0 0 0 / 75%);
  --bg-grey: #f5f6f9;
  --footer-bg: #010208;
  --card-bg: #fff;
  --photoboxPlaceholderRatio: 66.56%;
  --photoboxOverlayBackgroundColor: rgb(11 61 145 / 70%);

}

.ds-text1-logo {
  color: var(--dunamis-color-hover);
}

.ds-text2-logo {
  color: var(--dunamis-color-focus);
}

/* Estilos para el asterisco */
.required-asterisk {
  color: var(--dunamis-color-hover);
  /* Rojo */
  font-weight: bold;
  margin-left: 5px;
}

/* diseño del navbar */
.navbar {
  /* --bs-bg-opacity: 1; */
  background-color: var(--dunamis--bg-navbar) !important;
  --bs-navbar-padding-y: 0.11rem;
}

/* Texto del navbar */
.navbar a,
.navbar button {
  color: var(--dunamis-color-bg) !important;
}

.app-header {
  border-bottom: none;
  /*1px solid var(--bs-border-color); */
}

/* diseño del siderbar, menu lateral */
.menuLateral {
  background-color: var(--dunamis--bg-sliderBar) !important;
}

/* Diseño de los ítems del sidebar (menú lateral) */
.nav-item.menu-lateral {
  display: flex;
  /* Diseño flexbox para alinear elementos */
  justify-content: space-between;
  /*Separar los elementos al máximo */
  align-items: center;
  /*Centrar verticalmente */
}

.nav-item.menu-lateral a {
  text-decoration: none;
  /* Eliminar subrayado de los enlaces */
  /*color: #333;  Color del texto */
  color: var(--dunamis-color-text) !important;
  font-size: 14px;
  /* Tamaño de la fuente */
  display: flex;
  /* Alinear íconos y texto */
  align-items: center;
  /* Centrar íconos verticalmente */
}

.nav-item.menu-lateral a:hover {
  color: var(--dunamis-color-textr)
    /*var(--dunamis-primary-color);  Cambiar color al pasar el cursor */
}

/* Estilos para el ícono */
.nav-item.menu-lateral .nav-icon {
  margin-right: 8px;
  /* Espacio entre ícono y texto */
}

.sidebar-menu .nav-link {
  color: #010208d2;
  /*var(--dunamis-color-text-bg) !important; color del texto*/
}

.nav-item.menu-lateral .nav-link:first-child {
  flex-grow: 1;
  /* Ocupa todo el espacio disponible */
  white-space: nowrap;
  /* Evita que el texto se divida */
  overflow: hidden;
  /* Asegura que el texto largo no desborde */
  text-overflow: ellipsis;
  /* Agrega puntos suspensivos si el texto es muy largo */

}

/* Estilos para el estado activo y hover
  del ítem del menú lateral */
*/ .sidebar-wrapper .sidebar-menu>.nav-item>.nav-link:active,
.sidebar-wrapper .sidebar-menu>.nav-item>.nav-link:focus {
  color: #010208d2 !important;
  /* var(--lte-sidebar-color); */
}

/* Estilos para el estado activo y hover
  del ítem del menú lateral */
.sidebar-wrapper .sidebar-menu>.nav-item.menu-open>.nav-link,
.sidebar-wrapper .sidebar-menu>.nav-item:hover>.nav-link,
.sidebar-wrapper .sidebar-menu>.nav-item>.nav-link:focus {
  color: #010208d2 !important;
  /* var(--lte-sidebar-hover-color); */
  background-color: none !important;
  /* var(--lte-sidebar-hover-bg); */

}

/*
  ESTILO PARA EL BOTON NUEVO DEL MENU LATERAL
*/
.nav-item.menu-lateral .nav-link.btn-new:last-child {
  color: var(--dunamis-secondary-color) !important;
  /* Color del enlace "Registrar Cliente" */
  font-weight: bold;
  /* Resaltar visualmente */
  margin-left: 0px;
  /* Espaciado del primer enlace */
  padding-left: 0px;
  padding-right: 0px;
  margin-right: 0px;
  flex-shrink: 0;
  /* Evita que el botón se reduzca */
}

.nav-item.menu-lateral .nav-link.btn-new:last-child:hover {
  color: var(--dunamis-color-text);
  /* Color al pasar el cursor */
}

/*
  ESPACIO DEL DONTENEDOR Y EL NAVBAR
*/

.container,
.container-fluid,
.container-lg,
.container-md,
.container-sm,
.container-xl,
.container-xxl {
  --bs-gutter-x: 1.5rem;
  --bs-gutter-y: 0;
  width: 100%;
  padding-top: calc(var(--bs-gutter-x) * .5);
  padding-right: calc(var(--bs-gutter-x) * .5);
  padding-left: calc(var(--bs-gutter-x) * .5);
  margin-right: auto;
  margin-left: auto;
  /* margin-top: 15px; */
}

/*
CONTENEDOR DEL LOGO EN EL MENU
*/
.sidebar-brand {
  background-color: var(--dunamis--bg-navbar) !important;
  border-bottom: 1px solid var(--bs-border-color);
  display: flex;
  align-items: center;
  /* Centra verticalmente */
  justify-content: center;
  /* Centra horizontalmente */
  padding: 16px;
}

.sidebar-brand .brand-link {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
}

/*
  ENMARCADO DEL LOGO DEL SIDEBAR
*/
/* Mejora visual del logo */


/*

*/
.sidebar-brand .brand-link .brand-image {
  height: 40px !important;
}

.sidebar-brand .brand-text {
  font-family: 'Segoe UI', sans-serif !important;
  font-weight: 400 !important;
  /* Más delgado que bold */
  color: rgb(10, 1, 1) !important;
  font-size: 18px !important;
}

/*
ESTILO PARA TOOLTIP
*/

.tooltip {
  position: relative;
  display: inline-block;
}

.tooltip .tooltiptext {
  visibility: hidden;
  background-color: #333;
  color: #fff;
  text-align: center;
  padding: 4px 8px;
  border-radius: 4px;
  position: absolute;
  z-index: 1;
  top: -5px;
  left: 110%;
  opacity: 0;
  transition: opacity 0.3s;
  font-size: 12px;
}

.tooltip:hover .tooltiptext {
  visibility: visible;
  opacity: 1;
}

/*

*/
.main-footer {
  border-top: 0 !important;
}

.text-facebook {

  color: #3b5999;
}

.text-instagram {

  color: #e4405f;
}

.text-twitter {

  color: #55acee;
}

.text-linkedin {

  color: #0077B5;
}

.text-youtube {

  color: #dd4b39;
}

.text-twitch {

  color: #A142F7;
}

[class*=sidebar-dark-] .sidebar a {
  color: #c2c7d0 !important;
}

[class*=sidebar-dark] .brand-link,
[class*=sidebar-dark] .brand-link .pushmenu {
  color: rgba(255, 255, 255, .8) !important;
}

.page-error {
  height: 50vh !important;
}

.page-item.active .page-link {

  color: #fff !important;
}

.facebook {
  color: white;
  background: #46639f;
}

.google {
  color: white;
  background: #d6513e;
}

/* BOTON DE COMPRAR EL SOSFTWARE */
.boton-empieza {
  background: linear-gradient(45deg, #ff6f61, #ff9966);
  color: white;
  padding: 10px 20px;
  border-radius: 50px;
  border: none;
  font-size: 18px;
  font-weight: bold;
  text-transform: uppercase;
  letter-spacing: 2px;
  cursor: pointer;
  transition: 0.4s ease;
  box-shadow: 0 5px 5px rgb(237 178 2);
  position: relative;
  overflow: hidden;
}

.boton-empieza:before {
  content: "";
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: rgba(255, 255, 255, 0.3);
  transform: skewX(-45deg);
  transition: 0.7s ease;
}

.boton-empieza:hover:before {
  left: 100%;
}

.boton-empieza:hover {
  background: linear-gradient(45deg, #ff9966, #ff6f61);
  box-shadow: 0 5px 5px rgb(237 178 2);
}

.boton-empieza:active {
  transform: scale(0.98);
  box-shadow: 0 5px 5px rgb(237 178 2);
}

/*
  ESTILO PARA LOS CAMPOS REQUERIDOS
*/
.suggestion-list {
  display: none;
  /* Oculto por defecto */
  max-height: 200px !important;
  /* Limita el tamaño máximo */
  overflow-y: auto !important;
  /* Permite desplazamiento si excede el tamaño máximo */
  width: 100%;
  /* Ajusta el ancho a la entrada */
  border: 1px solid #ddd;
  /* Opcional: agregar borde para mayor visibilidad */
  position: absolute !important;
  /* Para mantener las sugerencias alineadas con la caja de búsqueda */
  z-index: 1000 !important;
  /* Asegura que las sugerencias se muestren por encima de otros elementos */
}

.list-group-item {
  cursor: pointer !important;
}

.list-group-item:hover {
  background-color: #f1f1f1 !important;
}

.btn-add {
  right: 10px;
  /* Fija el botón a la derecha */
  top: 50%;
  transform: translateY(-50%);
  /* Centra verticalmente el botón */
}

body {
  font-family: system-ui, sans-serif;
}

input[type="number"] {
  text-align: right;
  /* Alinea el contenido a la derecha */
}

.templateColor,
.templateColor:hover,
a.templateColor {
  background: var(--dunamis-primary-color) !important;
  color: #fff !important;
  padding: 0%, 5%, 0%, 5%;
}

/* boton de reenviar cod. a usuario */
.reenviarCod-btn {
  background: none !important;
  color: var(--dunamis-color-text) !important;
  font-size: var(--dunamis-font-size-sm);
  font-family: var(--dunamis-font-family);
}

.ocultar {
  display: none !important;
}

.mostrar {
  display: block !important;
}

.notas {
  background-color: rgb(255, 255, 192);
}



.contenedor {
  padding: var(--bs-card-spacer-y) var(--bs-card-spacer-x);
}

/* *,
*::before,
*::after {
    box-sizing: border-box;
} */
.custom-col {
  flex: 0 0 auto;
  /* display: flex;  Usar flexbox para manejar el label y el control */
  align-items: center;
  /* Alinear verticalmente el label y el control */
  width: 100%;
  /* Asegurar que ocupen todo el ancho disponible */
}

.col {
  flex: 1 0 0%;
  padding: 0px 5px 0px 5px;
  /* align-self: center; */
}

/*SIZE DE DATA GRID DEVEXTREME*/
.dx-widget {
  font-size: var(--dunamis-font-size-sm) !important;
  font-family: system-ui, 'Helvetica Neue', 'Segoe UI', Helvetica,
}

/*titulo del formulario*/
.card-header {
  font-size: var(--dunamis-font-size-sm);
  /* Tamaño de fuente */
}

/* Estilo del título */
.form-title {
  float: right;
  /* Alinea el título a la derecha */
  margin: 0;
  font-size: var(--dunamis-font-size-base);
  font-family: var(--dunamis-font-family);
  font-weight: 400;
  padding-top: 1.2rem;
  padding-bottom: 0rem;
  margin-bottom: 0;
  color: var(--dunamis-color-text)
}

/* Contenedor de los botones */
.title-form-btn {
  display: contents;
  justify-content: flex-start;
  /* Alinea los botones a la izquierda */
  gap: 0.5rem;
  /* Espacio entre botones */
  margin-top: 1rem;
  /* Espaciado superior */
  flex-wrap: wrap;
  /* Permite que los botones se acomoden en varias líneas si es necesario */
}

/* Ribbon para el estado */
.ribbon1 {
  position: absolute;
  top: -4px;
  /*Ajusta la posición vertical */
  right: 10px;
  /* Ajusta la posición horizontal */
}

.ribbon1 span {
  display: inline-block;
  padding: 2px 8px;
  border-top-right-radius: 6px;
  font-size: var(--dunamis-font-size-base);
  font-family: var(--dunamis-font-family);
  font-weight: 500;
  text-align: center;
  background: var(--dunamis-color-bg);
  /*#ffcc00a9;*/
  color: var(--dunamis-color-text);
  position: relative;
  z-index: 1;
}

/* Pseudo-elemento decorativo del ribbon */
.ribbon1::after {
  position: absolute;
  content: "";
  width: 0;
  height: 0;
  top: 100%;
  left: 0;
}

/* Responsividad */
@media (max-width: 768px) {
  /* .ribbon1 {
    /* top: -2px;
    right: 8px; 
  }*/

  .ribbon1 span {
    padding: 2px 6px;
    font-size: var(--dunamis-font-size-base);
  }
}


/* ESTILO PARA BOTONERA DEL HEADER DE LOS FORMULARIOS */
/* Botón estilo anchor (enlace) */
.title-form-btn button {
  background-color: transparent;
  /* Sin fondo */
  border: none;
  /* Sin borde */
  color: var(--dunamis-color-text);
  /*#333;  Color del texto */
  text-decoration: none;
  /* Sin subrayado */
  font-size: var(--dunamis-font-size-sm);
  padding: 0.5rem 1rem;
  /* Padding ajustado */
  transition: all 0.3s ease;
  /* Transición suave para todas las propiedades */
  border-radius: 8px;
  /* Bordes ligeramente más redondeados */
  font-weight: 450;
  /* Negrita para resaltar */
  font-family: var(--dunamis-font-family);
  /* Fuente estilo web */
  margin-right: 8px;
  /* Espaciado entre botones */
  align-items: center;
  /* Centrar contenido verticalmente */
  display: inline-flex;
  /* Alinear ícono y texto horizontalmente */
}

.title-form-btn button:hover {
  background-color: rgba(0, 123, 255, 0.1);
  /* Fondo azul translúcido */
  color: var(--dunamis-color-hover)
    /*#007bff;  Azul más destacado */
}

/* Íconos FontAwesome */

.title-form-btn #btn-visualizar::before {
  content: "\f06e";
  /* Eye */
}

.title-form-btn #btn-nuevo::before {
  content: "\f15c";
  /* File */
}

.title-form-btn #btn-limpiar::before,
.title-form-btn #btn-limpiar-registro::before {
  content: "\f12d";
  /* Eraser */
}

.title-form-btn #btn-print::before {
  content: "\f02f";
  /* Print */
}

.title-form-btn #btn-guardar::before,
.title-form-btn #btn-guardar-modal::before,
.title-form-btn #btn-guardar-borrador::before {
  content: "\f0c7";
  /* Save */
}

.title-form-btn #btn-consultar::before {
  content: "\f002";
  /* Search */
}

.title-form-btn #btn-procesar::before {
  content: "\f0e7";
  /* Search */
}

.title-form-btn #btn-cancelar::before {
  content: "\f00d";
  /* Search */
}



/* Estilos de los íconos */
.title-form-btn #btn-visualizar::before,
.title-form-btn #btn-nuevo::before,
.title-form-btn #btn-limpiar::before,
.title-form-btn #btn-limpiar-registro::before,
.title-form-btn #btn-print::before,
.title-form-btn #btn-consultar::before,
.title-form-btn #btn-guardar::before,
.title-form-btn #btn-procesar::before,
.title-form-btn #btn-guardar-modal::before,
.title-form-btn #btn-guardar-borrador::before,
.title-form-btn #btn-cancelar::before,
.title-form-btn #btn-copiar-a::before,
.title-form-btn .btn-collapse::before {
  font-family: "Font Awesome 5 Free";
  /* Ajusta según tu versión */
  font-weight: 900;
  /* Obligatorio para íconos sólidos */
  margin-right: 8px;
  /* Espaciado entre ícono y texto */
  font-size: var(--dunamis-font-size-sm);
  /* Aumentar tamaño */
  color: var(--dunamis-primary-color);
  /* #00796B; /* Ícono más oscuro */
  text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.2);
  /* Sombra ligera */
}

.title-form-btn #btn-filtro::before {
  font-family: "Font Awesome 5 Free";
  /* Asegurar que FontAwesome se aplique */
  font-weight: 900;
  /* Obligatorio para íconos sólidos */
  margin-right: 8px;
  /* Espaciado entre ícono y texto */
  font-size: var(--dunamis-font-size-sm);
  /* Tamaño del icono */
  color: var(--dunamis-primary-color);
  /* Color del ícono */
  text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.2);
  /* Sombra ligera */
  content: "\f107";
  /* Icono por defecto (flecha abajo) */
}

/* Cambiar icono cuando el botón esté activo */
.title-form-btn #btn-filtro[aria-expanded="true"]::before {
  content: "\f106";
  /* Icono de flecha arriba */
  /*content: "\f0b0";  /* Icono de filtro*/
}

/* Cambiar icono cuando card esta colapsada */
.title-form-btn .btn-collapse[aria-expanded="true"]::before {
  content: "\f067";
  /* Icono de signo de mas */
  /*content: "\f0b0";  /* Icono de filtro*/
}

.title-form-btn .btn-collapse::before {
  font-family: "Font Awesome 5 Free";
  /* Asegurar que FontAwesome se aplique */
  font-weight: 900;
  /* Obligatorio para íconos sólidos */
  margin-right: 8px;
  /* Espaciado entre ícono y texto */
  font-size: var(--dunamis-font-size-sm);
  /* Tamaño del icono */
  color: var(--dunamis-primary-color);
  /* Color del ícono */
  text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.2);
  /* Sombra ligera */
  content: "\f068";
  /* Icono por defecto (signo de menos) */
}

/* Fondo circular para los íconos */
.title-form-btn #btn-visualizar::before,
.title-form-btn #btn-nuevo::before,
.title-form-btn #btn-limpiar::before,
.title-form-btn #btn-limpiar-registro::before,
.title-form-btn #btn-print::before,
.title-form-btn #btn-consultar::before,
.title-form-btn #btn-guardar::before,
.title-form-btn #btn-filtro::before,
.title-form-btn #btn-guardar-modal::before,
.title-form-btn #btn-guardar-borrador::before,
.title-form-btn #btn-cancelar::before,
.title-form-btn #btn-copiar-a::before {
  /* background-color: #E0F7FA; Fondo claro */
  padding: 2.5px;
  /* Espaciado interno */
  border-radius: 50%;
  /* Hace el fondo circular */
}

/* Hover en los íconos */
.title-form-btn button:hover::before {
  /* background-color: #FFF9C4;  Fondo amarillo claro 
  color: #FF5722; Naranja para el ícono */
  transform: scale(1.1);
  /* Efecto de zoom */
  transition: all 0.3s ease-in-out;
  /* Suavizar transición */
}

/* Ajuste de los badges etiqueta de funcion */
.badge {
  background-color: rgba(255, 255, 255, 0.2);
  color: black;
  font-size: 10px;
  padding: 2px 5px;
  border-radius: 3px;
  font-weight: bold;
  display: inline-block;
  /* Asegura que tenga tamaño */
  min-width: 15px;
  /* Evita que se colapse */
  text-align: center;
  position: relative;
  top: -5px;
  /* Lo sube como superíndice */
  margin-left: 4px;
}

/* Especificamos el texto según el tipo de botón */
.title-form-btn #btn-filtro .badge::before,
.title-form-btn #btn-cancelar .badge::before {
  content: "F1";
}

.title-form-btn #btn-nuevo .badge::before {
  content: "F2";
}

.title-form-btn #btn-limpiar .badge::before,
.title-form-btn #btn-limpiar-registro .badge::before {
  content: "F3";
}

.title-form-btn #btn-visualizar .badge::before {
  content: "F4";
}

.title-form-btn #btn-guardar .badge::before,
.title-form-btn #btn-guardar-modal .badge::before {
  content: "F5";
}

.title-form-btn #btn-consultar .badge::before {
  content: "F4";
}

.title-form-btn #btn-procesar .badge::before {
  content: "F7";
}

.title-form-btn #btn-guardar-borrador .badge::before {
  content: "F8";
}

.title-form-btn #btn-print .badge::before {
  content: "F12";
}

/*
  ESTILO PARA BOTON BUSCAR POR IDENTIFICACION
*/
#btn-search-identificacion {
  color: var(--dunamis-color-text-bg);
  font-size: var(--dunamis-font-size-sm);
  transition: all 0.3s ease;
  /* Transición suave para todas las propiedades */
  font-family: var(--dunamis-font-family);
  /* Fuente estilo web */
  background-color: var(--dunamis-color-bg);
}

#btn-search-identificacion:hover {
  border-color: var(--dunamis-color-hover);
}

#btn-search-identificacion:focus {
  border-color: var(--dunamis-color-focus);
}

#btn-search-identificacion::before {
  font-family: "Font Awesome 5 Free";
  content: "\f002";
  font-weight: 900;
  /* Necesario para los íconos 'solid' */
  margin-right: 5px;
}

/*
  DISEÑO PARA LOS CONTENEDORES DE CONTROLES DEL FORMULARIOS
*/


/*hace que el label y control esten en la misma fila*/
.dunamis-flex-horizontal {
  display: flex;
  flex: 1 1 auto;
  justify-content: flex-end;
  margin-bottom: 6px;
  align-items: baseline;
  flex-wrap: wrap;
  /* <-- clave para que el feedback baje */
}

/* Asegura que el mensaje de campo invalido aparezca debajo, 
ocupando todo el ancho, cuando usa la clase dunamis-flex-horizontal */
.dunamis-flex-horizontal .invalid-feedback {
  margin-top: 4px;
  /* Separación visual */
  color: #dc3545;
  /* Color de error Bootstrap */
  font-size: 0.875em;
  /* Tamaño agradable */
}

.input-group>.form-control,
.input-group>.form-select,
.input-group>.form-floating {
  position: relative;
  flex: 1 1 auto;
  width: auto;
  min-width: 0;
}

/*
  DISEÑO PARA LOS CONTROLES DEL FORMULARIOS
*/
/* la classe .capitalize es usada para forzar la capitalizacion de texto en mayuscula junto a .capitalize::first-letter */
.capitalize {
  text-transform: lowercase !important;
  /* Convierte todo el texto a minúsculas */
}

.capitalize::first-letter {
  text-transform: uppercase !important;
  /* Convierte solo la primera letra a mayúscula */
}

/* 
  estilos para el select2 
*/

.form-group .select2-container {
  flex: 1;
  /* Permite que el Select2 ocupe el espacio disponible */
}

.select2-container .select2-selection--single {
  height: auto;
  /* Ajusta la altura del componente */
  min-height: 38px;
  /* Compatible con la altura estándar de Bootstrap */
  /* max-width: 300px; */
}

.select2-container--bootstrap-5 .select2-selection--single {
  padding: .375rem 2.25rem .375rem .75rem;
  /* background-image: url(data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e); */
  background-repeat: no-repeat;
  background-position: right .18rem center;
  background-size: 12px 12px;
}

.select2-container--bootstrap-5 .select2--small.select2-selection--single {
  text-transform: capitalize;
  /* Poner primera letra mayuscula, funciona solo cuando todo el texto es minuscula*/
  font-size: var(--dunamis-font-size-sm);
  /* Tamaño de fuente */
  font-family: var(--dunamis-font-family);
  width: 100%;
  /* max-width: 300px; */
}

.select2-container--bootstrap-5 .select2--small.select2-selection--single:hover {
  border-color: var(--dunamis-secondary-color);
  /* Color de borde al pasar el mouse */
}

.select2-container--bootstrap-5 .select2--small.select2-selection--single:focus {
  border-color: var(--dunamis-secondary-color);
  /* Color de borde al pasar el mouse */
}

.select2-container--bootstrap-5 .select2--small.select2-dropdown .select2-results__options .select2-results__option,
.select2-container--bootstrap-5 .select2--small.select2-dropdown .select2-search .select2-search__field {
  padding: .25rem .5rem;
  font-size: var(--dunamis-font-size-sm);
  font-family: var(--dunamis-font-family);
  text-transform: capitalize;
}

/*
  ESTILO PARA LOS form-select
*/

.form-select {
  font-size: var(--dunamis-font-size-sm) !important;
  font-family: var(--dunamis-font-family) !important;
}

.form-select:hover,
.form-control:hover {
  border-color: var(--dunamis-secondary-color);
}

.form-select:focus,
.form-control:focus {
  border-color: var(--dunamis-secondary-color) !important;
  outline: 0;
  box-shadow: 0 0 0 .25rem rgba(13, 110, 253, .25);
}

/*
  ESTILO PARA EL DATE RANGE
*/
.form-group button span.personalizar {
  font-size: var(--dunamis-font-size-sm);
  /* Tamaño de fuente */
  font-family: var(--dunamis-font-family);
}

.form-group #daterange-btn {
  border: 1px solid #aaa;
  padding: 2.5px;
}

.only-capitalize {
  text-transform: capitalize;
  /* Poner primera letra mayuscula, funciona solo cuando todo el texto es minuscula*/
}


/* Estilo para el control de entrada */
.form-group input.personalizar,
.form-group select.personalizar,
.form-group textarea.personalizar,
.form-group p.personalizar {
  font-size: var(--dunamis-font-size-sm);
  /* Tamaño de fuente */
  font-family: var(--dunamis-font-family);
  padding: 2px;
  border: 1px solid #aaa;
  border-radius: 4px;
  width: 100%;
  /* Se adapta al tamaño del contenedor */
  /*max-width: 300px;  Controlas el límite máximo */
  flex: 1;
  /* Permitir que el control se ajuste dentro del espacio */
  min-height: calc(1.5em + .5rem + 2px);
  border: var(--bs-border-width) solid var(--bs-border-color);
}

.form-group input.personalizar:hover,
.form-group select.personalizar:hover,
.form-group textarea.personalizar:hover,
.form-group #daterange-btn:hover {
  border-color: var(--dunamis-secondary-color);
  /* Color de borde al pasar el mouse */
}

.form-group input.personalizar:focus,
.form-group select.personalizar:focus,
.form-group textarea.personalizar:focus,
.form-group #daterange-btn:focus {
  border-color: var(--dunamis-secondary-color);
  /* Color de borde en focus */
  outline: none;
  /* Quita el borde predeterminado del navegador */
  box-shadow: 0 0 4px rgba(0, 123, 255, 0.5);
  /* Resalta el campo */
}

/* Estilo para el label */
.form-group label.personalizar {
  font-size: var(--dunamis-font-size-sm);
  /* Tamaño de fuente */
  font-family: var(--dunamis-font-family);
  /* Fuente */
  color: var(--dunamis-color-text);
  /* Color de texto */
  text-align: right;
  /* Alineación del label a la derecha */
  min-width: 80px;
  /* Ancho mínimo para el label */
  flex: 1;
  white-space: normal;
  /* Permite el salto de línea si es necesario */
  word-wrap: break-word;
  /* Ajuste de palabras largas */
  margin-right: 10px;
  /* Espacio entre el label y el input */
  max-width: 100%;
  /* Impide que el label se desborde fuera del espacio disponible */
}

/* Ajustes para los inputs readonly dentro de .col-total-factura */
.form-control[readonly] {
  background-color: rgb(240, 240, 240);
  /* Fondo neutro claro */
  color: var(--dunamis-color-text);
  /* Texto gris oscuro */
}

/*
  ESTILO PARA LOS INPUT EN INPUT-GORUP
*/
.input-group {
  display: flex;
  width: auto;
  font-size: var(--dunamis-font-size-sm);
  font-family: var(--dunamis-font-family);
}

.form-check {
  font-size: var(--dunamis-font-size-sm);
  font-family: var(--dunamis-font-family);
}

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

label.form-check-label.personalizar {
  text-align: start;
}

.col-md-4 span.title.personalizar {
  display: block;
  /* Asegura que ocupe toda la línea */
  margin-top: 0;
  margin-bottom: 0.5rem;
  font-weight: 500;
  line-height: 1.2;
  color: var(--bs-heading-color);
  font-size: calc(var(--dunamis-font-size-sm) + 2px);
  font-family: var(--dunamis-font-family);
  text-align: center;
}

/*
  DISEÑO PARA EL DATATABLE DE JQUERY
*/
/* Ajustar el tamaño del input de búsqueda */
.dataTables_filter input[type="search"] {
  width: 200px;
  /* Cambia este valor para ajustar el ancho */
  height: 30px;
  /* Altura del input */
  padding: 5px;
  border-radius: 5px;
  /* Bordes redondeados */
  border: 1px solid #ccc;
  /* Borde */
  font-size: var(--dunamis-font-size-sm);
  /* Tamaño de fuente */
}

.dataTables_filter {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  /* Espacio entre input y botón */
}

/* Ajustar el tamaño del select de paginación */
.dataTables_length select {
  width: 100px;
  /* Cambia este valor para ajustar el ancho */
  height: 30px;
  /* Altura del select */
  padding: 5px;
  border-radius: 5px;
  /* Bordes redondeados */
  border: 1px solid #ccc;
  /* Borde */
  font-size: var(--dunamis-font-size-sm);
  /* Tamaño de fuente */
}

/* Forzar a mostrar el ícono de la flechita en el select */
.dataTables_length select {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewBox="0 0 24 24"><path fill="black" d="M7 10l5 5 5-5z"/></svg>') no-repeat right 10px center;
  background-color: white;
  /* Fondo blanco */
  padding-right: 20px;
  /* Espacio para la flecha */
  border: 1px solid #ddd;
  /* Borde opcional */
  border-radius: 4px;
  /* Borde redondeado */
}

/* Asegurar consistencia al enfocar */
.dataTables_length select:focus {
  outline: none;
  border-color: #007bff;
  /* Color de enfoque */
}

/* Alinear los elementos para que se vean ordenados */
.dataTables_filter {
  margin-top: 10px;
  /* Espaciado superior */
  margin-bottom: 10px;
  /* Espaciado inferior */
}

.dataTables_length {
  margin-top: 10px;
  /* Espaciado superior */
  margin-bottom: 10px;
  /* Espaciado inferior */
}

/* Reducir el tamaño de fuente de los datos en las filas */
table.dataTable tbody tr {
  font-size: var(--dunamis-font-size-sm);
  /* Cambia este valor para ajustar el tamaño de la fuente */
}

/* Opcional: Ajustar el tamaño de los encabezados si es necesario */
table.dataTable thead th {
  font-size: var(--dunamis-font-size-sm);
  /* Tamaño de los encabezados */
}

/*
  ESTILO GENERAL TABLA JQUERY
*/

/*paginacion*/
div.dt-container div.dt-paging {
  margin: 0;
}

div.dt-container div.dt-paging ul.pagination {
  margin: 2px 0;
  flex-wrap: wrap;
  font-size: var(--dunamis-font-size-sm);
  font-family: var(--dunamis-font-family);
}

.page-item.active .page-link {
  z-index: 1;
  color: var(--dunamis-color-text-bg);
  background-color: var(--dunamis-color-focus);
  border-color: var(--dunamis-color-focus);
}

.pagination {
  --bs-pagination-padding-x: 0.75rem;
  --bs-pagination-padding-y: 0.375rem;
  --bs-pagination-font-size: 1rem;
  --bs-pagination-color: var(--dunamis-primary-color);
  --bs-pagination-bg: var(--bs-body-bg);
  --bs-pagination-border-width: var(--bs-border-width);
  --bs-pagination-border-color: var(--bs-border-color);
  --bs-pagination-border-radius: var(--bs-border-radius);
  --bs-pagination-hover-color: var(--dunamis-color-hover);
  --bs-pagination-hover-bg: var(--bs-tertiary-bg);
  --bs-pagination-hover-border-color: var(--bs-border-color);
  --bs-pagination-focus-color: var(--bs-link-hover-color);
  --bs-pagination-focus-bg: var(--bs-secondary-bg);
  --bs-pagination-focus-box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
  --bs-pagination-active-color: #fff;
  --bs-pagination-active-bg: var(--dunamis-primary-color) !important;
  /* #0d6efd*/
  ;
  --bs-pagination-active-border-color: var(--dunamis-primary-color) !important;
  /* #0d6efd*/
  ;
  --bs-pagination-disabled-color: var(--bs-dunamis-secondary-color);
  --bs-pagination-disabled-bg: var(--bs-secondary-bg);
  --bs-pagination-disabled-border-color: var(--bs-border-color);
  display: flex;
  padding-left: 0;
  list-style: none;
}

/* ESTILO PARA EL FOOTER*/
.tabla-footer {
  font-size: var(--dunamis-font-size-sm) !important;
  font-family: var(--dunamis-font-family) !important;
  font-weight: bold !important;
  text-align: right !important;
  color: var(--dunamis-color-text) !important;
}

/* Contenedor moderno de footer */
.datatable-footer-wrapper {
  border-top: 1px solid #e5e5e5;
  padding-top: 10px !important;
  padding-bottom: 5px !important;
  background: #fafafa;
  /* suave, tipo Metronic */
}

/* Información (Mostrando X...) */
.datatable-info-wrapper .dataTables_info {
  font-size: 0.9rem;
  color: #555;
  padding-top: 4px !important;
}

/* Alinear paginación */
.datatable-pagination-wrapper .dataTables_paginate {
  margin: 0 !important;
}

/* Botones de paginación modernos */
.dataTables_paginate .pagination .page-item .page-link {
  border-radius: 6px !important;
  padding: 6px 12px !important;
  font-size: 0.85rem;
  color: #555;
}

/* Hover elegante */
.dataTables_paginate .pagination .page-item .page-link:hover {
  background: #f0f0f0 !important;
}

/* Activo estilo DunamisSoft */
.dataTables_paginate .pagination .page-item.active .page-link {
  background-color: #ffc107 !important;
  border-color: #ffc107 !important;
  color: #000 !important;
  font-weight: bold;
}

/* Ajustes móviles */
@media (max-width: 768px) {
  .datatable-info-wrapper {
    justify-content: center !important;
    margin-bottom: 10px;
  }

  .datatable-pagination-wrapper {
    justify-content: center !important;
  }
}

/* Contenedor moderno de footer */
.datatable-footer-wrapper {
  border-top: 1px solid #e5e5e5;
  padding-top: 10px !important;
  padding-bottom: 5px !important;
  background: #fafafa;
  /* suave, tipo Metronic */
}

/* Información (Mostrando X...) */
.datatable-info-wrapper .dataTables_info {
  font-size: 0.9rem;
  color: #555;
  padding-top: 4px !important;
}

/* Alinear paginación */
.datatable-pagination-wrapper .dataTables_paginate {
  margin: 0 !important;
}

/* Botones de paginación modernos */
.dataTables_paginate .pagination .page-item .page-link {
  border-radius: 6px !important;
  padding: 6px 12px !important;
  font-size: 0.85rem;
  color: #555;
}

/* Hover elegante */
.dataTables_paginate .pagination .page-item .page-link:hover {
  background: #f0f0f0 !important;
}

/* Activo estilo DunamisSoft */
.dataTables_paginate .pagination .page-item.active .page-link {
  background-color: #ffc107 !important;
  border-color: #ffc107 !important;
  color: #000 !important;
  font-weight: bold;
}

/* Ajustes móviles */
@media (max-width: 768px) {
  .datatable-info-wrapper {
    justify-content: center !important;
    margin-bottom: 10px;
  }

  .datatable-pagination-wrapper {
    justify-content: center !important;
  }
}





/*
 ESTILO PARA LOS BOTONES DE LA COLUMNA ACTIONS DE LA TABLA JQUERY
*/
/* Contenedor de botones */
.actions {
  display: flex;
  gap: 5px;
  /* Espacio entre botones */
}

/* Estilos generales para los botones */
.actions .btn-action,
.btn-table {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 25px;
  /* Tamaño XS */
  height: 25px;
  /* Tamaño XS */
  border: none;
  border-radius: 5px;
  /* Bordes redondeados */
  color: white;
  font-size: 13px;
  /* Tamaño de ícono */
  transition: 0.3s ease-in-out;
  font-family: "Font Awesome 5 Free";
  /* Usar FontAwesome */
  font-weight: 900;
  /* Importante para que muestre los íconos */
}

/* ICONOS PARA LOS BOTONES COLUMN ACCIONES DE LA TABLA*/
/*Boton Editar */
.actions .btn-edit::before {
  content: "\f303";
  /* Unicode de fa-pencil-alt */
}

/*Boton Eliminar */
.actions .btn-delete::before {
  content: "\f2ed";
  /* Unicode de fa-minus */
}

/*Boton Anular */
.actions .btn-cancel::before {
  content: "\f05e";
  /* Unicode de fa-ban */
}

/*Boton Ver */
.actions .btn-view::before {
  content: "\f06e";
  /* Unicode de fa-eye */
}

/*Boton Seleccionar */
.actions .btn-select::before {
  content: "\f058";
  /* Unicode de fa-eye */
}

/*Boton Imprimir */
.actions .btn-print::before {
  content: "\f02f";
  /* Unicode de fa-print */
}

/*Boton Copiar */
.actions .btn-copy-to::before {
  content: "\f0c5";
  /* Unicode de fa-copy */
}

/*Boton Copiar */
.actions .btn-aprobar::before {
  content: "\f164";
  /* Unicode de desaprobado por defecto */
}

/* Colores específicos para cada botón */
.actions .btn-edit {
  background-color: #17a2b8;
  /* Azul */
}

.actions .btn-delete {
  background-color: #C0392B;
  /* Rojo */
}

.actions .btn-cancel {
  background-color: #ffc107;
  /* Amarillo */
  color: black;
}

.actions .btn-view {
  background-color: #28a745;
  /* Verde */
}

.actions .btn-select {
  background-color: #17a2b8;
  /* Verde */
}

.actions .btn-print {
  background-color: #6c757d;
  /* Gris */
}

.actions .btn-copy-to {
  background-color: #007bff;
  /* Azul fuerte */
}

.actions .btn-aprobar {
  background-color: #007bff;
}

/* Submenu Bootstrap 5 */
/* ===============================
   Dropdown acciones (ERP Style)
   =============================== */

   .dropdown-menu {
    border-radius: .5rem;
    padding: .35rem 0;
    font-size: .9rem;
}

.dropdown-item {
    padding: .45rem 1rem;
}

.dropdown-item i {
    width: 1.25rem;
    text-align: center;
}

/* ===============================
   Submenu Bootstrap 5
   =============================== */

.dropdown-submenu {
    position: relative;
}

.dropdown-submenu > .dropdown-menu {
    top: 0;
    left: 100%;
    margin-left: .25rem;
    display: none;
    min-width: 180px;
    z-index: 1055;
}

.dropdown-submenu.show > .dropdown-menu {
    display: block;
}

/* Hover suave */
.dropdown-submenu > a:hover,
.dropdown-item:hover {
    background-color: rgba(0, 0, 0, 0.04);
}

/* Evita cortes en DataTables */
.table-responsive,
.dataTables_wrapper {
    overflow: visible !important;
}


/*
  ESTILO PARA LOS BOTONES DE LA TABLA
*/
.tabla.btn-excel {
  background-color: #1E8449 !important;
  border-color: #145A32 !important;
  color: white !important;
}

.tabla.btn-pdf {
  background-color: #C0392B !important;
  border-color: #922B21 !important;
  color: white !important;
}

.tabla.btn-csv {
  background-color: #3498DB !important;
  border-color: #2E86C1 !important;
  color: white !important;
}

.tabla.btn-print {
  background-color: #5D6D7E !important;
  border-color: #34495E !important;
  color: white !important;
}

/*
  ESTILO PARA AGRUPADO EN TABLA JQUERY
*/
tr.group,
tr.group:hover {
  background-color: var(--dunamis-primary-color2) !important;
  font-weight: bold;
}

:root.dark tr.group,
:root.dark tr.group:hover {
  background-color: var(--dunamis-primary-color) !important;
}

/*
  ESTILO PARA LINEA SUPERIOR DE CARD
*/
.card.card-outline {
  border-top: 3px solid var(--dunamis-secondary-color);
}

/*
  ESTILO PARA EL MENU DEL DROPDOWN DEL BTN IMPRIMIR en la barra
*/

.dropdown-menu-dark .dropdown-item {
  color: var(--dunamis-primary-color2)
    /*#dee2e6; */
}

/* Estilo para la línea de tiempo, tab */
.timeline {
  display: flex;
  justify-content: space-between;
  position: relative;
  margin-top: 0px;
  padding: 0px 0;
  margin: 0 0 0px;
}

.timeline .step {
  flex: 1;
  text-align: center;
  position: relative;
  font-weight: bold;
  color: #6c757d;
}

.timeline .step.active {
  color: #007bff;
}

.timeline .progress {
  position: absolute;
  top: 15px;
  left: 0;
  width: 100%;
  height: 5px;
  background-color: #e9ecef;
  z-index: -1;
}

.timeline .progress-bar {
  height: 5px;
  background-color: var(--dunamis-primary-color2);
  width: 0%;
  transition: width 0.4s ease;
}

.timeline .circle {
  width: 25px;
  height: 25px;
  background-color: var(--dunamis-primary-color2);
  border-radius: 50%;
  display: inline-block;
  line-height: 25px;
  color: white;
  font-size: 14px;
  cursor: pointer;
}

.timeline::before {
  border-radius: 0.375rem;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 31px;
  width: 4px;
  margin: 0;
  content: "";
  background-color: transparent
    /* var(--bs-border-color);  */

}

.timeline .active .circle {
  background-color: var(--dunamis-secondary-color);
}

.timeline>div {
  position: relative;
  margin-right: 0px;
  margin-bottom: 0px;
}

/* 
    ESTILO PARA CAMPO VALIDADOS COMO CORRECTO
 */
.was-validated .form-control:valid,
.form-control.is-valid {
  border-color: var(--bs-form-valid-border-color);
  padding-right: calc(1.5em + 0.75rem);
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");
  background-repeat: no-repeat;
  background-position: right calc(0.375em + 0.1875rem) center;
  background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
}

.form-check {
  display: block;
  min-height: 1.5rem;
  padding-left: 1.5em;
  margin-bottom: 0rem;
}

.card-title {
  margin-bottom: 0rem;
  /* var(--bs-card-title-spacer-y); */
  color: var(--dunamis-color-text);
  font-family: var(--dunamis-font-family);
  font-size: var(--dunamis-font-size-base);
}


/* color de fondo para los readOnly */
input[readonly],
textarea[readonly],
select[readonly],
input:disabled,
textarea:disabled,
select:disabled {
  background-color: var(--dunamis-bg-readonly) !important;
}

input,
textarea,
select {
  transition: background-color 0.3s ease;
}

/* Estilo para el popup de edicion devextreme */
.dx-popup-wrapper .dx-overlay-content {
  font-size: var(--dunamis-font-size-base);
  font-family: var(--dunamis-font-family);
  overflow-y: auto;
}

/* estilos para las alertas */
/* Botones base */
.swal2-confirm.btn-confirm-custom,
.swal2-cancel.btn-cancel-custom {
  display: inline-flex;
  align-items: center;
  gap: 0.4em;
  font-weight: bold;
  border-radius: 4px;
  padding: 0.5em 1em;
}

/* modificar colores  */
.swal2-confirm.success-btn {
  background-color: var(--dunamis-primary-color2);
  color: white;
}

.swal2-confirm.error-btn {
  background-color: #dc3545;
  color: white;
}

.swal2-confirm.info-btn {
  background-color: #17a2b8;
  color: white;
}

.swal2-confirm.confirm-btn {
  background-color: var(--dunamis-primary-color2);
  color: white;
}

.swal2-confirm.footer-btn {
  background-color: #6f42c1;
  color: white;
}

.swal2-cancel.btn-cancel-custom {
  background-color: #6c757d;
  color: white;
}

/*
  COLOR PARA SWICH CHECK COLUMNA ESTATUS EN TABLA
*/

.estado-activo {
  background-color: var(--dunamis-primary-color);
  /* #343a40; Color oscuro */
  color: white;
  padding: 3px 8px;
  border-radius: 12px;
  font-size: 0.8rem;
  font-weight: bold;
}

.estado-inactivo {
  background-color: #dc3545;
  /* Rojo tipo "danger" */
  color: white;
  padding: 3px 8px;
  border-radius: 12px;
  font-size: 0.8rem;
  font-weight: bold;
}

span.bootstrap-switch-handle-on {
  background-color: var(--dunamis-color-bg) !important;
  color: var(--dunamis-color-text-bg) !important;
  font-size: var(--dunamis-font-size-sm) !important;
}

span.bootstrap-switch-handle-off {
  background-color: #d9534f !important;
  color: var(--dunamis-color-text-bg) !important;
  font-size: var(--dunamis-font-size-sm) !important;
}

/*
  PARA LAS COLUMNA ESTADO
*/
.col-estado {
  padding: 3px 8px;
  border-radius: 12px;
  font-size: 0.8rem;
  font-weight: bold;
  text-align: center;
  color: white;
  /* por defecto */
}

.col-estado {
  background-color: var(--estado-color, gray);
  color: var(--estado-text, white);
  padding: 3px 8px;
  border-radius: 12px;
  font-size: 0.8rem;
  font-weight: bold;
  text-align: center;
}

/* Colores según estado */
.col-estado[color-estado="success"] {
  background-color: #28a745;
  color: white;
}

.col-estado[color-estado="warning"] {
  background-color: #ffc107;
  color: black;
}

.col-estado[color-estado="info"] {
  background-color: #17a2b8;
  color: black;
}

.col-estado[color-estado="danger"] {
  background-color: #dc3545;
  color: white;
}

/* .estado-pendiente {
  background-color: #ffc107; /* Amarillo tipo "warning" 
  color: black;
  padding: 3px 8px;
  border-radius: 12px;
  font-size: 0.8rem;
  font-weight: bold;
  text-align: center;
} */

/* .estado-conciliado {
  background-color: #28a745; /* Verde tipo "success" 
  color: white;
  padding: 3px 8px;
  border-radius: 12px;
  font-size: 0.8rem;
  font-weight: bold;
  text-align: center;
} */

/* .estado-en-revision {
  background-color: #17a2b8; /* Azul tipo "info" 
  color: white;
  padding: 3px 8px;
  border-radius: 12px;
  font-size: 0.8rem;
  font-weight: bold;
  text-align: center;
} */

/* .estado-anulada {
  background-color: #dc3545; /* Rojo tipo "danger" 
  color: white;
  padding: 3px 8px;
  border-radius: 12px;
  font-size: 0.8rem;
  font-weight: bold;
  text-align: center;
} */




/* 
  ESTILOS PARA FILAS Y COLUMNAS
*/
.dunamis-fila {
  display: flex;
  flex-wrap: wrap;
  gap: 1px;
  /* espacio entre columnas */
}

.dunamis-columna {
  flex: 1 1 30%;
  /* ancho base del 30%, se adapta */
  min-width: 250px;
  /* se colapsa hasta 250px antes de saltar */
  box-sizing: border-box;
  align-self: baseline;
  /*padding: 10px;
   border: 1px solid #ccc; */
}

/* 
    ESTILOS PARA EL invalid-feedback,
 */
.invalid-feedback {
  display: none !important;
  font-family: var(--dunamis-font-family);
  font-size: var(--dunamis-font-size-xs);
}

input.is-invalid~.invalid-feedback,
select.is-invalid~.invalid-feedback,
textarea.is-invalid~.invalid-feedback {
  display: block !important;
}


/*
  ESTILOS PARA LA TABLA DE PRODUCTOS
*/
.dx-editor-cell .dx-numberbox {
  width: 100% !important;
}

.dx-editor-cell input.dx-texteditor-input {
  padding: 2px 6px;
  font-size: 13px;
  text-align: right;
}

#tablaProductos {
  max-width: 100%;
  overflow-x: auto;
}

/* Estilo para los botones */
.dunamis-button {
  width: 100%;
  /* El botón ocupa todo el ancho */
  box-sizing: border-box;
  /* Padding incluido en el ancho */
  /*padding: 10px 20px;  Espaciado interno */
  font-size: var(--dunamis-font-size-sm);
  font-family: var(--dunamis-font-family);
  ;
  color: var(--dunamis-color-text-bg);
  background-color: var(--dunamis-color-bg);
  /* Color primario */
  border: none;
  /* Sin bordes */
  border-radius: 5px;
  /* Bordes redondeados */
  cursor: pointer;
  /* Cambia a manito al pasar el mouse */
  transition: background-color 0.3s;
  /* Transición suave al pasar */
  justify-content: center;
  /* Centrar texto horizontalmente */
  align-items: center;
  /* Centrar texto verticalmente */
  display: flex;
  padding: 0;
  /* Evita que el padding afecte la altura */
  height: calc(1.5em + 0.75rem + 2px);
  /* Ajuste dinámico basado en el tamaño de un input */
}

/* Ajusta la alineación vertical del botón */
.dunamis-button {
  align-items: center;
  align-self: center;
}

.btn:hover,
.btn:focus {
  color: var(--dunamis-color-text-bg);
  background-color: var(--dunamis-color-focus);
  border-color: var(--dunamis-color-focus);
}

.btn.personalizar {
  display: flex;
  align-items: center;
  justify-content: center;
  border: none;
  border-radius: 5px;
  color: var(--dunamis-color-text-bg);
  font-size: var(--dunamis-font-size-sm);
  transition: 0.3s ease-in-out;
  font-family: var(--dunamis-font-family);
  background-color: var(--dunamis-color-bg);
  padding: 0.25rem 0.75rem;
}

.dunamis-card {
  border-radius: 0.5rem;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
}

.dunamis-card-title,
.dunamis-card-body,
.dunamis-card-footer {
  font-size: var(--dunamis-font-size-sm);
}

.dunamis-card-title {
  font-size: var(--dunamis-font-size-base);
}

.dunamis-card-body {
  font-size: var(--dunamis-font-size-sm);
}

.dunamis-card-footer {
  font-size: var(--dunamis-font-size-sm);
  border-top: 1px solid #dee2e6;
}

.dunamis-card-title,
.dunamis-card-footer {
  font-weight: 600;
}

/*PARA TITULOS*/
.dunamis-title {
  color: var(--dunamis-color-text);
  font-family: var(--dunamis-font-family);
  font-size: var(--dunamis-font-size-base);
  margin-bottom: 4px;
}

.dunamis-valor {
  font-weight: bold;
  margin: 0;
  display: flex;
  align-items: center;
  font-family: var(--dunamis-font-family);
  font-size: var(--dunamis-font-size-sm);
}

/*
  ESTILO PARA RESUMEN CONCILIACION
*/
.metric-row {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0;
  /* Sin espacio entre columnas */
  flex-wrap: wrap;
  /* Se acomoda en pantallas pequeñas */
}

.metric {
  background: #f8f9fa;
  border-radius: 8px;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
  padding: 12px 16px;
  text-align: center;
  min-width: 120px;
  margin-bottom: 8px;
  /* separación vertical para mobile */
  display: flex;
  flex-direction: column;
  align-items: center;
}

.metric-title {
  font-size: 0.8rem;
  color: #6c757d;
  /* gris */
  margin-bottom: 4px;
}

.metric-value {
  font-weight: bold;
  margin: 0;
  display: flex;
  align-items: center;
  font-size: 1.2rem;
}

.metric .symbol {
  margin-right: 4px;
}

.text-danger {
  color: #dc3545 !important;
}

.text-success {
  color: #28a745 !important;
}

.metric-symbol {
  width: 30px;
  text-align: center;
  font-size: 1.5rem;
  display: flex;
  justify-content: center;
  align-items: center;
}

/* ESTILOS PARA MODAL*/

.dunamis-bg-modal {
  background: var(--dunamis-color-bg) !important;
  color: var(--dunamis-text-color, #fff);
}

/*
tamanio del modal
*/
/* Modal dinámico ancho completo */
.modal-dialog.full-width-modal {
  width: 90%;
  /* ancho base en desktop */
  max-width: 1200px;
  /* límite máximo para pantallas grandes */
  margin: 1.75rem auto;
  /* centrado vertical y horizontal */
}

@media (max-width: 1400px) {
  .modal-dialog.full-width-modal {
    width: 85%;
    max-width: 1000px;
  }
}

@media (max-width: 1200px) {
  .modal-dialog.full-width-modal {
    width: 90%;
    max-width: 900px;
  }
}

@media (max-width: 992px) {
  .modal-dialog.full-width-modal {
    width: 95%;
    max-width: 750px;
  }
}

@media (max-width: 576px) {
  .modal-dialog.full-width-modal {
    width: 98%;
    /* casi full width en móviles */
    margin: 0.5rem auto;
  }
}

@media (max-width: 992px) {
  .modal-dialog {
    max-width: 95% !important;
    margin: auto;
  }
}

/*
  estilo para el listado de cuentas contable
*/
/* Estilo para cuentas de control */
.parent-node-style {
  background-color: #f0f0f0;
  /* Example: light grey background */
  font-weight: bold;
}

.child-node-style {
  color: #555;
  /* Example: darker text color */
}

.dx-selection {
  background-color: var(--dunamis-color-focus);
  /* Your desired background color */
  /* Add other CSS properties as needed */
  border: 1px solid #ccc;
}

/* Reducir/Agrandar switch */
/* Personalizar ancho del dxSwitch */
.custom-switch .dx-switch {
  width: 80px !important;
  /* default ~44px → aquí lo ampliamos */
}

.custom-switch .dx-switch-wrapper {
  display: inline-block;
  text-align: left;
  height: auto !important;
  width: auto !important;
}

/* Ajustar el texto ON/OFF */
.custom-switch .dx-switch-on,
.custom-switch .dx-switch-off {
  color: var(--dunamis-color-text-bg) !important;
  font-size: var(--dunamis-font-size-sm) !important;
  text-align: center;
}

/* Fondo cuando está activado */
.custom-switch .dx-switch-on {
  background-color: var(--dunamis-color-bg) !important;
}

/* Fondo cuando está desactivado */
.custom-switch .dx-switch-off {
  background-color: #d9534f !important;
}


/**/
/* Estilo para ocultar el botón extra en Chrome y otros navegadores */
input[type="file"].custom-file-input::-webkit-file-upload-button {
  visibility: hidden;
}

/* Estilo para mostrar un texto limpio en el botón */
input[type="file"].custom-file-input::before {
  content: 'Seleccionar archivo' !important;
  display: inline-block !important;
  background: #f8f9fa !important;
  border: 1px solid #ced4da !important;
  border-radius: 0.25rem !important;
  padding: 0.375rem 0.75rem !important;
  outline: none !important;
  white-space: nowrap !important;
  --webkit-user-select: none !important;
  cursor: pointer !important;
  font-size: 0.875rem !important;
}

/* Cambiar el hover */
input[type="file"].custom-file-input:hover::before {
  background-color: #e9ecef !important;
}
/*
  ESTILO suscripciones de usuarios
*/
.step {
  display: none;
}

.step.active {
  display: block;
}

.progress-bar {
  background-color: var(--dunamis-color-focus) !important;
  width: 25%;
}


/*
  ESTILO PARA PAGINA DE REGISTRO DE USUARIOS Y PLANES
*/
/* =========================
   Plan cards (optimizado)
   ========================= */

/* 1) Estructura del grid: evita solapes */
/* SOLO para la sección de planes */
#step-3 .row > [class*="col-"]{
  display: flex;
}

#step-3 .row > [class*="col-"] > .card{
  width: 100%;
}
/* 2) Card base */
.card-plan{
  cursor:pointer;
  min-width:0;                 /* deja que Bootstrap controle el ancho */
  height:100%;
  transition:transform .2s ease, box-shadow .2s ease;
}

/* Hover seguro (sin scale para evitar “overlap visual”) */
.card-plan:hover{
  transform:translateY(-2px);
  box-shadow:0 10px 22px rgba(0,0,0,.10);
}

/* 3) Tipografía y legibilidad */
.plan-preview,
.plan-features{
  font-size:.95rem;
  line-height:1.4;
}

/* Evita cortes raros por palabras largas */
.card-plan, .card-plan *{
  overflow-wrap:anywhere;
  word-break:break-word;
}

/* 4) Encabezado */
.price{
  font-size:1.4rem;
  font-weight:700;
  margin-top:.5rem;
  color:#333;
}

/* Título: legible y sin romper diseño */
.plan-title{
  text-align:center;
  font-size:1.05rem;
  font-weight:600;

  /* 1 línea con puntos suspensivos */
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

/* 5) Listas */
.plan-features{
  padding-left:1rem;
  margin-bottom:.25rem;
}

/* 6) Vista tipo “features” (si la usas) */
.plan-preview{
  display:flex;
  flex-direction:column;
  gap:.45rem;
}

.feature-row{
  display:flex;
  align-items:flex-start;
  gap:.5rem;
}

.feature-row i{
  margin-top:.1rem;
  opacity:.85;
}

.feature-row span{
  display:block;
  max-width:100%;
}

.more-hint{ opacity:.7; }

/* 7) Botón Más */
.btn-ver-mas{
  text-decoration: none;
  background-color: transparent;
  border: none;
  padding: 0;
}

/* Hover y focus */
.btn-ver-mas:hover,
.btn-ver-mas:focus,
.btn-ver-mas:focus-visible{
  color:var(--dunamis-color-hover);            /* azul Bootstrap */
  background-color: transparent;
  border: none;
  outline: none;
  text-decoration: none;
}
.btn-ver-mas{
  color: var(--dunamis-color-hover); 
}

/* Active (click) */
.btn-ver-mas:active{
  color: var(--dunamis-color-hover); 
}



/* hasta aqui */

.btn-outline-primary {
  --bs-btn-color: var(--dunamis-color-hover);
  --bs-btn-border-color: var(--dunamis-color-hover);
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: var(--dunamis-color-hover);
  --bs-btn-hover-border-color: var(--dunamis-color-hover);
  --bs-btn-focus-shadow-rgb: 13, 110, 253;
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: var(--dunamis-color-hover);
  --bs-btn-active-border-color: var(--dunamis-color-hover);
  --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
  --bs-btn-disabled-color: var(--dunamis-color-hover);
  --bs-btn-disabled-bg: transparent;
  --bs-btn-disabled-border-color: var(--dunamis-color-hover);
  --bs-gradient: none;
}

/* ESTILO PARA EL SELECT DEL TIPO DE INDENTIFICACION */
select.tipo-identificacion {
  width: 90px !important;
  /* ancho fijo, puedes reducirlo más */
  max-width: min-content;
  /* ajusta al contenido mínimo */
  padding-right: 25px;
  /* espacio para que no corte el texto */
  text-overflow: ellipsis;
  /* puntos suspensivos si es muy largo */
  white-space: nowrap;
}

/* ESTILO PARA LAS TABS DE LAS PESTAÑAS */
.nav-link {
  display: block;
  padding: var(--bs-nav-link-padding-y) var(--bs-nav-link-padding-x);
  font-size: var(--bs-nav-link-font-size);
  font-weight: var(--bs-nav-link-font-weight);
  font-family: var(--dunamis-font-family);
  color: var(--dunamis-color-bg);
  text-decoration: none;
  background: 0 0;
  border: 0;
  transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out;
}

.nav-link.active {
  color: var(--dunamis-color-text-bg);
  /* Color de texto activo (azul Bootstrap por defecto) */
  background-color: var(--dunamis-color-focus);
  /* Fondo blanco si está en nav-tabs */
}

.nav-tabs .nav-item.show .nav-link,
.nav-tabs .nav-link.active {
  color: var(--dunamis-color-text-bg);
  background-color: var(--dunamis-color-focus);
  border-color: var(--bs-nav-tabs-link-active-border-color);
}

/* ESTILO PAR INFORMACION */
/* Estilos del ícono */
.info-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 16px;
  height: 16px;
  line-height: 16px;
  text-align: center;
  border-radius: 50%;
  border: 1px solid var(--dunamis-color-hover);
  /* círculo con borde */
  background-color: transparent;
  /* sin fondo sólido */
  color: var(--dunamis-color-hover);
  font-weight: bold;
  margin-left: 5px;
  cursor: pointer;
  font-size: 12px;
  position: relative;
}

/* Tooltip oculto por defecto */
.info-tooltip {
  visibility: hidden;
  opacity: 0;
  width: 200px;
  background-color: var(--dunamis-color-bg);
  color: var(--dunamis-color-text-bg);
  text-align: left;
  border-radius: 5px;
  padding: 5px 10px;
  position: absolute;
  left: 100%;
  /* justo al lado derecho del label */
  top: 50%;
  transform: translateY(-25%);
  z-index: 10;
  transition: opacity 0.3s;
  pointer-events: none;
  font-size: var(--dunamis-font-size-xs);
  font-family: var(--dunamis-font-family);
  margin-left: 8px;
  /* separación entre el label y el tooltip */
}

.info-uso {
  position: relative;
  /* El label será el "contenedor" del tooltip */
  display: inline-block;
  cursor: help;
}

/* Mostrar tooltip al hover del ícono */
.info-icon:hover+.info-tooltip,
.info-icon:focus+.info-tooltip {
  visibility: visible;
  opacity: 1;
}

/* muestra el contenido separador por "|" como una lista */
.info-tooltip ul {
  margin: 0;
  padding-left: 15px;
}

.info-tooltip li {
  margin-bottom: 4px;
}


.form-floating label {
  font-size: var(--dunamis-font-size-sm);
  font-family: var(--dunamis-font-family);
}

/* =========================================
   ESTILOS ESPECÍFICOS PARA EL POS (Punto de Venta)
   ========================================= */

/* Contenedor principal que ocupa toda la altura menos el header */
.pos-container {
    height: calc(100vh - 57px); /* Ajusta 57px según la altura de tu navbar */
    overflow: hidden;
    background-color: var(--bg-light);
}

/* 1. Sidebar de Categorías */
.pos-sidebar {
    width: 100px;
    min-width: 100px;
    z-index: 10;
    box-shadow: 2px 0 5px rgba(0,0,0,0.05);
}

.btn-category {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 15px 5px;
    border-radius: 12px;
    color: var(--dunamis-color-text);
    background-color: transparent;
    border: 1px solid transparent;
    transition: all 0.3s ease;
}

.btn-category i {
    font-size: 1.5rem;
    color: #adb5bd; /* Gris suave por defecto */
    transition: color 0.3s ease;
}

.btn-category span {
    font-size: 0.75rem;
    font-weight: 600;
    margin-top: 5px;
}

.btn-category:hover {
    background-color: #f8f9fa;
    color: var(--dunamis-primary-color);
}

.btn-category:hover i {
    color: var(--dunamis-primary-color);
}

.btn-category.active {
    background-color: var(--dunamis-primary-color);
    color: white;
    box-shadow: 0 4px 10px rgba(111, 176, 171, 0.4); /* Sombra suave con tu color primario */
}

.btn-category.active i {
    color: white;
}

/* 2. Grid de Productos */
.product-card {
    cursor: pointer;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
    border-radius: 16px !important;
    overflow: hidden;
    background-color: white;
}

.product-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 20px rgba(0,0,0,0.1) !important;
    border-color: var(--dunamis-primary-color) !important;
}

.card-img-top-wrapper {
    height: 160px;
    overflow: hidden;
    position: relative;
}

.card-img-top-wrapper img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s ease;
}

.product-card:hover .card-img-top-wrapper img {
    transform: scale(1.05);
}

/* 3. Panel del Carrito */
.pos-cart {
    z-index: 11;
}

.cart-items::-webkit-scrollbar {
    width: 6px;
}

.cart-items::-webkit-scrollbar-thumb {
    background-color: #dee2e6;
    border-radius: 4px;
}

/* Ajustes generales de texto para el POS */
.text-primary {
    color: var(--dunamis-primary-color) !important;
}

.btn-primary {
    background-color: var(--dunamis-primary-color);
    border-color: var(--dunamis-primary-color);
}

.btn-primary:hover {
    background-color: var(--dunamis-color-hover);
    border-color: var(--dunamis-color-hover);
}

.btn-outline-primary {
    color: var(--dunamis-primary-color);
    border-color: var(--dunamis-primary-color);
}

.btn-outline-primary:hover, .btn-outline-primary.active {
    background-color: var(--dunamis-primary-color);
    border-color: var(--dunamis-primary-color);
    color: white;
}

/* Estilo para el selector de cantidad (lineal y moderno) */
.quantity-selector {
    display: flex;
    align-items: center;
    background-color: #f8f9fa; /* bg-light */
    border-radius: 50rem; /* Forma de píldora */
    border: 1px solid #dee2e6;
    padding: 2px;
    width: -moz-fit-content;
    width: fit-content; /* Ajusta el ancho al contenido */
}

.quantity-selector .btn {
    background-color: white;
    border: none;
    border-radius: 50%;
    width: 28px;
    height: 28px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    color: var(--dunamis-primary-color);
    font-size: 0.8rem;
    box-shadow: 0 1px 3px rgba(0,0,0,0.05);
    transition: background-color 0.2s;
}

.quantity-selector .btn:hover {
    background-color: #f1f1f1;
}

.quantity-selector .form-control {
    background-color: transparent;
    border: none;
    box-shadow: none !important; /* Importante para sobreescribir estilos de :focus */
    text-align: center;
    font-weight: bold;
    width: 40px;
    padding: 0 5px;
    color: #212529;
}

.cart-item-card {
    background-color: white;
    border-radius: 12px;
    padding: 12px;
    border: 1px solid #f1f1f1;
    transition: box-shadow 0.2s ease;
}
.cart-item-card:hover {
    box-shadow: 0 4px 12px rgba(0,0,0,0.07);
}
