#loading {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: rgba(0, 0, 0, 0.5);
	display: flex;
	align-items: center;
	justify-content: center;
	flex-direction: column;
    }
    
    #loading p {
	color: white;
	font-size: 28px;
    }
    
    .spinner {
	width: 120px;
	height: 120px;
	border: 8px solid white;
	border-top-color: transparent;
	border-radius: 50%;
	animation: spin 1s linear infinite;
	margin-bottom: 20px;
    }
    
    @keyframes spin {
	from {
	  transform: rotate(0deg);
	}
	to {
	  transform: rotate(360deg);
	}
    }



div.dataTables_wrapper div.dataTables_processing {
	width: 300px;
	text-align: center;
	font-size: 16px;
	padding: 1.5em 3.5em;
  }
.table-titulo-inferior {
	background-color: #8597b3  !important;
	color: #fff !important;
	font-size: 14px !important;
	font-weight: bold;
	vertical-align: middle;
}
.menu-admin {
	min-width: 250px;
	z-index: 9000;
	top: 63px !important;
	position: absolute;
	background-color: unset;
	right: 1000px !important;
	border: 1px solid  !important;;
	margin: 0px;
	padding: 0px;
}
.btn-custom1 {
	border-color: #007b69;
	background-color: #007b69;
	border-color: #007b69 #007b69 #007b69;
	color: white;
	text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
	color: #fff;
  	font-family: verdana;
}


.btn-custom1:hover {
	border-color: #034d42 !important;
	background-color: #034d42;
	color: #fff;
}
.btn-custom1:focus {
	color: #fff;
}
.offcanvas-header {
	display: revert;
	align-items: center;
	justify-content: space-between;
	padding: 1rem 1rem;
	background-color: #2c4d6a;
	color: #fff;
	font-size: 18px;
	font-weight: bold;
    }
.offcanvas-body {
	flex-grow: 1;
	padding: 0px;
	overflow-y: auto;
	background-color: #e3e2f0ab;
	vertical-align: top;
}
.offcanvas-end {
	top: 0;
	right: 0;
	/*width: 95%;*/
	border-left: 1px solid rgba(0, 0, 0, 0.2);
	transform: translateX(100%);
	max-width: 350px;
    }
.dropdown-item:hover, .dropdown-item:focus {
	color: #fff !important;
	background-color: #728ca2;
}

/* En menús emergentes con contenido interno (span/i), asegurar contraste en HOVER
   (solo en menús con hover oscuro: mega menú / dropdown usuario) */
.navbar-nav .dropdown-menu .dropdown-item:hover,
.navbar-nav .dropdown-menu .dropdown-item:focus,
.mind-user-dropdown .mind-user-menu .dropdown-item:hover,
.mind-user-dropdown .mind-user-menu .dropdown-item:focus{
  color: #fff !important;
}

.navbar-nav .dropdown-menu .dropdown-item:hover *,
.navbar-nav .dropdown-menu .dropdown-item:focus *,
.mind-user-dropdown .mind-user-menu .dropdown-item:hover *,
.mind-user-dropdown .mind-user-menu .dropdown-item:focus *{
  color: #fff !important;
}
.FrameSuperior {
	background-color: #10416B !important;
	height: 71px !important;
	line-height: 20px !important;
}

/* Separar bloque usuario/fecha del logo (derecha) */
#content_derecha .mind-user-dropdown .userbox .d-flex.flex-row{
  gap: 10px;
  align-items: center;
}
.bar-dir{
	height: 18px;
	position: absolute;
	top: 53px;
	background-color: rgb(45, 86, 123);
	width: 100%;
	text-align: left;
	color:#fff;
	text-decoration:none;
	font-size: 1.2rem !important;
	text-transform: uppercase !important;
}
.navbar {
	align-items: unset !important;
	position: absolute;
    }
/*.dropdown-menu[data-bs-popper] {
	top: unset !important;
	left: unset !important;
	margin-top: unset !important;
    }
*/
.menu-tab {
	background-color: rgb(45, 86, 123);
	color: #f4f4f4 !important;
	border: 1px solid rgb(16, 65, 107);
	-moz-border-radius: 22px 22px 0px 0px;
	-webkit-border-radius: 22px 22px 0px 0px;
	padding: 1px 10px 0px 10px;
	  padding-right: 10px;
	  padding-left: 10px;
	text-decoration: none !important;
	display: flex !important;
	flex-wrap: wrap !important;
	justify-content: center !important;
	align-items: center !important;
	min-width: 120px;
	border-bottom: 0px !important;
	padding-top: 5px;
 }

.menu-tab-opciones{
	background-color: #567793;
	color: #fff !important;
	border: 1px solid #10416b;
	-moz-border-radius: 0px 0px 0px 0px;
	-webkit-border-radius: 0px 0px 0px 0px;
	padding: 10px 0px 0px 0px !important;
	text-decoration: none !important;
	display: flex !important;
	flex-wrap: wrap !important;
	justify-content: center !important;
	align-items: center !important;
	min-width: 120px;
}

.menu-tab-opciones:hover{
	background-color: rgba(25, 48, 71, 0.6);
	color: #f1ecec !important;
}


.navbar-nav .dropdown-menu {
 	transform: unset !important;
	border: 1px solid #10416b;
}

@media only screen and (max-width: 990px) {
	.navbar-nav .dropdown-menu {
		position: relative !important;
		border: 1px solid #10416b;
	}
	.menu-tab{
		-moz-border-radius: 0px 0px 0px 0px;
		-webkit-border-radius: 0px 0px 0px 0px;
		background-color: #567793;
		color: #fff !important;
    		border: 1px solid #91959b;
	}
	.nav-bar-principal{
		position: absolute;top: 50px;left: -8px;max-width: 100%;min-width: 300px;width: 350px;
	}
	.menu-admin {
		top: 20px !important;
	}
	.first, .previous, .next, .last {
		display: block !important;
	}
	.page-item {
	display: none;
	}
}

.menu-tab:hover{
	background-color: #557188 !important;
	color: #ffffff !important

}
.menu-tab:active{
	background-color: #114372a9 !important;
	color: #ffffff !important

}
.dropdown-item{
	padding: 0.25rem 2rem 0.25rem 1rem !important;  
}
.dropend .dropdown-toggle::after {
	display: inline-block;
	margin-left: 500px;
	vertical-align: 0.255em;
	content: " ";
	border-top: 0.3em solid transparent;
	border-right: 0;
	border-bottom: 0.3em solid transparent;
	border-left: 0.3em solid;
	right: 5px;
	position: absolute;
	top: 10px;
    }
    ul.nav-main li i {
	font-size: 18px;
	font-size: 1.8rem;
	width: 1.1em;
	margin-right: 0px;
	text-align: center;
	vertical-align: middle;
    }

.mega-content {
	padding: 0px 0px 10px 0px !important;
	min-width: 375px;
	width: 900px;
	max-width: 900px;
  	border-radius: 0;
  	margin-top: 0px;
	background-color: #cbd1df;
	color: #0b3253 !important;
	font-family: 'Roboto-Regular','Roboto-Medium','calibri','ARIAL','VERDANA','SourceSansPro-Regular','Open Sans','Arial', 'sans-serif';
	font-size: 12px;
	top: 50px !important;
}
.mega-content-opciones {
	position: relative !important;
	padding: 0px !important;
	width: 100%;
  	border-radius: 0;
  	margin-top: 0px;
	background-color: #e7ebf0;
	color: #0b3253 !important;
	font-family: 'Roboto-Regular','Roboto-Medium','calibri','ARIAL','VERDANA','SourceSansPro-Regular','Open Sans','Arial', 'sans-serif';
	font-size: 12px;
	top:0px !important;
}
.menu-card{
	padding: 5px 10px 5px 10px;
}
.menu-card-opciones{
	padding: 0px 0px 0px 0px;
}

@media only screen and (max-width: 990px) {
	.mega-content {		
		padding: 0px 0px !important;
		min-width: 295px;
    		max-width: 295px;
		top:0px !important;
	}
	.menu-card{
		padding: 0px 0px 0px 0px;
		border-bottom: 1px solid #285479;
	}
	.menu-card-opciones{
		position: relative !important;
		border-bottom: 3px solid #285479;
	}
}


.popover-header {
	font-size: 1.5rem !important;
	font-weight: bolder;
	font-family: 'verdana','arial';
	background-color: #d1dbec;
}
.popover-body {
	padding: 1rem 1rem;
	color: #212529;
	font-size: 1.5rem;
}
.ui-datepicker {
	z-index: 9999 !important;
  }

.control_buscar {
	/*-webkit-appearance: none;
	-moz-appearance: none;*/
}
.control_buscar::-ms-expand {
	display: none;
}
.filters-display {
  display: flex;
  height: 28px !important;
  margin-top: 0px !important;
  position: absolute;
  right: 25px;

  background: var(--report-surface);
  border: 1px solid var(--report-border);

  overflow: hidden;
  box-shadow: var(--report-shadow);
}
.filters-display-hide{
	display:none !important;
}
@media only screen and (max-width: 974px) {
	.ico_menu_superior{
		font-size: 20px !important;
		margin: unset !important;
		padding: 0px !important;
	}
	.bg-dark-submenu {
		background-color: #fff;
		width: 100%;
	}
	.bg-dark-submenu2 {
		/*background-color: #285479;
		-moz-border-radius: 15px 15px 15px 15px;
		-webkit-border-radius: 15px 15px 15px 15px;*/
	}
	.item-menu {
		color: #314962 !important;
    		background-color: #f2f8ff;
		/*-moz-border-radius: 15px 15px 15px 15px;
		-webkit-border-radius: 15px 15px 15px 15px;*/
	}
	.item-menu:hover {
		color: #FFF !important;
		background-color: #738ea8 !important;
	}
	.item-menu:focus {
		color: #FFF !important;
		background-color: #738ea8 !important;	
	}
	.filters{
		overflow:hidden;
		max-width:974px;
		margin-left: 0px;
		padding: 0px;
		/*display: block !important;*/
	}
	/*.filters-display-hide{
		display:none !important;
	}
	.filters-display{
		display:flex;
		height:42px !important;
		margin-top:0px !important;
		position: absolute;
		right: 25px;
	}*/
	.btn-filters-sup{
		display:flex;
	}
	.btn-filter{
		font-size: 20px;
		padding: 2px 10px;
		margin: 10px 0px 0px 0px !important;
	}
	.loading-spinner-window{
		background-color: hsla(0, 0%, 100%, 0.1) !important;
		border: 0px;
		width:100%;
	}
	.loading-spinner{
		width: 30rem; 
		height: 30rem;
		opacity: 0.5;
  		filter:  alpha(opacity=50);
	}
	.loading-spinner-text{
		font-size:24px;
		color:#fff;
		position: absolute;
		margin: auto;
	}
}
@media only screen and (min-width: 975px) {
	.item-menu {
		color: #314962 !important;
		background-color: #f2f8ff;
		border-bottom: 1px solid #ccc7c7;
		border: 1px #5e86ac solid;
		min-height: 90px !important;
	}
	.item-menu:hover,
	.item-menu:focus{
		background-color: #738ea8 !important;
		color: #fff !important;
	}
	.item-menu:hover *,
	.item-menu:focus *{
		color: #fff !important;
	}
	.filters{
		overflow:hidden;
		max-width:1800px;
		margin-left: 0px;
		padding: 0px;
		/*display:block !important;*/
	}
	/*.filters-display-hide{
		display:block !important;
	}
	.filters-display{
		display:none !important;
	}*/
	.btn-filters-sup{
		display:none !important;
	}
	.btn-filter{
		font-size: 20px;
		padding: 2px 10px;
		margin: 10px 0px 0px 0px !important;
	}
	.loading-spinner-window{
		background-color: hsla(0, 0%, 100%, 0.1) !important;
		border: 0px;
		width:100%;
	}
	.loading-spinner{
		width: 40rem; 
		height: 40rem;
		opacity: 0.5;
  		filter:  alpha(opacity=50);
	}
	.loading-spinner-text{
		font-size:24px;
		color:#fff;
		position: absolute;
		margin: auto;
	}
}

@media only screen and (min-width: 768px) {
	.btn-filters-sup{
		display:none !important;
	}
}

.icon-group{
	font-size: 20px !important;
	padding-right: 5px;
	padding-top: 3px;
 }
 .btn-group{
	height: 25px;
	margin-top: 3px;
 }

.infomapabti{
	width: 400px;
	height: 200px;
}

table.dataTable th {
	border-bottom-color: #DEE2E6;
	background-color: #405D84;
	color: #fff;
	font-size: 14px !important;
}
tr.even td {
	/*background-color: unset;
	color: unset;
	font-size: unset;
	font-family: unset;*/
}
tr.odd td {
	background-color: unset;
	/*color: unset;
	font-size: unset;
	font-family: unset;*/
}
tr.even {
	background-color: #252b3b;
	color: #484c57;
	font-size: 12px;
  	font-family: 'helvetica','verdana','arial';
}
tr.odd {
	background-color: #f0f5fd;
	color: #484c57;
	font-size: 12px;
  	font-family: 'helvetica','verdana','arial';
}
tr.even:hover {
	background-color: #b3cae3db;
  color: #4e5260;
}
tr.odd:hover {
	background-color: #b3cae3db;
  color: #4e5260;
}
.modal-content {
	background-color: #ebf1fb;
}
div.dataTables_scrollBody {
	background-color: #8995b091 !important;
	border-bottom: 1px solid #9ba8d0 !important;
	border-left: 1px solid #9ba8d0 !important;
	border-right: 1px solid #9ba8d0 !important;
}
div.dataTables_scrollFootInner table.table-bordered tr th:first-child, div.dataTables_scrollHeadInner table.table-bordered tr th:first-child {
	border-left: 0px solid #ddd !important;
}
div.dataTables_scrollHead {
	background-color: #8995b091 !important;
}
div.dataTables_scrollHead table.dataTable {
	margin-bottom: 0 !important;
	margin-top: 0px !important;
	border-top: 1px solid #9ba8d0 !important;
	border-left: 1px solid #9ba8d0 !important;
	border-right: 1px solid #9ba8d0 !important;

}

body .btn-primary:active, body .btn-primary:focus {
	border-color: #6380a8 !important;
	background-color: #3f5f8c;
}
body .btn-primary:hover {
	border-color: #6380a8 !important;
	background-color: #3f5f8c;
}
body .btn-primary[disabled] {
	border-color: #3f5f8c !important;
	background-color: #3f5f8c;
	color: #ccc;
}
.modal-footer.bg-dark {
	background-color: #7f8ca4  !important;
	border-bottom: 3px #10416b solid;
	padding: 0px;
}
.nopadding{
	margin: 3px !important;
	padding: 3px 10px;
}
.form-select {
	padding: 0.1rem 2.25rem 0.1rem 0.75rem;
	border: 1px solid #5887b78a;
}
.select-tabla-form-hijo{
	background-image: unset !important;
  	background-color: #fff !important;
	  padding: 1px 5px 1px 3px !important;
}
.form-control {
	border: 1px solid #5887b78a;
	font-size: 12px;
	font-weight: 500;
}

.ico_menu_superior{
	font-size: 30px;
	margin: unset;
	padding: 7px ;
}

/* ============================================================
 * OVERRIDES MODERNOS - LAYOUT INTERNO MIND-LIKE
 * ============================================================ */

/* --------- Global --------- */

body {
    margin: 0;
    padding: 0;
    background-color: #f3f4f6;
    color: #111827;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    font-size: 13px;
    line-height: 1.4;
}

/* Contenido principal */
.row.content-body,
#content-body {
    margin: 0;
    padding: 12px 16px 16px 16px;
    background-color: #f3f4f6;
}

/* Paneles / tarjetas de contenido */
#content-body > .panel1,
#content-body > .panel,
#content-body > .card,
#content-body > div.panel1,
#content-body > div.panel {
    background-color: #ffffff;
    border-radius: 8px;
    border: 1px solid #e5e7eb;
    box-shadow: 0 1px 2px rgba(15,23,42,0.04);
    padding: 8px 10px;
    margin-bottom: 8px;
}

/* Reducir espacios verticales extra dentro de paneles */
.panel-body,
.panel1 .panel-body {
    padding-top: 6px;
    padding-bottom: 6px;
}

/* --------- Cabecera superior + usuario --------- */

.FrameSuperior {
    background-color: #ffffff !important;
    height: 64px !important;
    line-height: normal !important;
    border-bottom: 1px solid #e5e7eb;
    box-shadow: 0 1px 2px rgba(15,23,42,0.04), 0 4px 10px rgba(15,23,42,0.04);
}

.navbar {
    align-items: center !important;
    position: relative;
}

.userbox .name{
    font-weight: 600;
    font-size: 13px;
    color: #111827;
}

#lblFecha,
#lblHora{
    font-size: 11px;
    color: #6b7280;
    font-variant-numeric: tabular-nums;
}

/* --------- TÃ­tulo del mÃ³dulo (barra) --------- */

.bar-dir{
    height: auto;
    position: relative;
    top: 0;
    background-color: #f8fafc;
    width: 100%;
    text-align: left;
    color:#0f172a;
    text-decoration:none;
    font-size: 0.95rem !important;
    font-weight: 600;
    text-transform: uppercase !important;
    margin-top: 8px;
    padding: 4px 16px 2px 16px;
    border-bottom: 1px solid #e5e7eb;
}

/* --------- MenÃº superior pestaÃ±as --------- */

.menu-tab {
    background-color: #f5f7ff !important;   /* azul muy claro */
    color: #1f2937 !important;
    border: 1px solid #e0e7ff !important;
    -moz-border-radius: 10px 10px 0 0;
    -webkit-border-radius: 10px 10px 0 0;
    border-radius: 10px 10px 0 0;
    padding: 2px 12px 2px 12px !important;
    text-decoration: none !important;

    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    align-items: center !important;

    min-width: 78px;
    border-bottom: 0 !important;

    font-size: 11px !important;
    font-weight: 500 !important;
    letter-spacing: 0.04em !important;
    text-transform: uppercase !important;
}

.menu-tab:hover{
    background-color: #e0edff !important;
    color: #1d4ed8 !important;
}

.menu-tab:active{
    background-color: #d3e3ff !important;
    color: #1d4ed8 !important;
}

ul.nav-main li i {
    font-size: 1.2rem;
    width: 1.05em;
    margin-right: 0;
    text-align: center;
    vertical-align: middle;
    color: #1f2937;
}

/* --------- Mega-menÃº --------- */

.mega-content {
    padding: 0 0 10px 0 !important;
    min-width: 375px;
    width: 900px;
    max-width: 900px;
    border-radius: 12px;
    margin-top: 4px;
    background-color: #f9fafb;
    color: #111827 !important;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    font-size: 12px;
    top: 50px !important;
}

.mega-content-opciones {
    position: relative !important;
    padding: 0 !important;
    width: 100%;
    border-radius: 0 0 12px 12px;
    margin-top: 0;
    background-color: #ffffff;
    color: #111827 !important;
    font-size: 12px;
    top:0px !important;
}

.menu-tab-opciones{
    background-color: #ffffff !important;
    color: #374151 !important;
    border: 1px solid #e5e7eb !important;
    -moz-border-radius: 0 0 0 0;
    -webkit-border-radius: 0 0 0 0;
    border-radius: 0 0 0 0;
    padding: 10px 0 0 0 !important;
    text-decoration: none !important;
    display: flex !important;
    flex-wrap: wrap !important;
    justify-content: center !important;
    align-items: center !important;
    min-width: 120px;
}

.menu-tab-opciones:hover{
    background-color: #e0edff !important;   /* mismo hover que menÃº principal */
    color: #1d4ed8 !important;
}

/* --------- Filtros / formularios --------- */

label,
.control-label {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #6b7280;
    margin-bottom: 2px;
}

.form-control,
.form-select,
input[type="text"],
input[type="number"],
input[type="date"],
select {
    border-radius: 6px;
    border: 1px solid #d1d5db;
    font-size: 12px;
    padding: 3px 8px;
    height: 28px;
}

.form-control:focus,
.form-select:focus,
input[type="text"]:focus,
input[type="number"]:focus,
input[type="date"]:focus,
select:focus {
    border-color: #2563eb;
    box-shadow: 0 0 0 0.12rem rgba(37,99,235,0.25);
    outline: none;
}

/* Espaciado vertical entre filas de filtros */
#content-body .row > div[class*="col-"] {
    margin-bottom: 4px;
}

/* --------- Botones --------- */

.btn,
.btn-sm,
.btn-lg {
    font-size: 12px;
    padding: 4px 10px;
    border-radius: 6px;
    line-height: 1.3;
}

body .btn-primary {
    background-color: #2563eb;
    border-color: #2563eb;
}

body .btn-primary:hover,
body .btn-primary:focus {
    background-color: #1d4ed8;
    border-color: #1d4ed8;
}

body .btn-secondary,
body .btn-default {
    background-color: #ffffff;
    border-color: #d1d5db;
    color: #374151;
}

body .btn-secondary:hover,
body .btn-default:hover {
    background-color: #f3f4f6;
    border-color: #9ca3af;
}

/* --------- DataTables --------- */

table.table,
table.dataTable,
table.dataTable tbody tr {
    font-size: 12px;
}

table.dataTable thead th, table.table thead th {
  /*background-color: #f9fafb;*/
  border-bottom: 1px solid #e5e7eb;
  color: #fff;
  font-weight: 600;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

/* Filas rayadas suaves */
table.table-striped tbody tr:nth-of-type(odd),
table.dataTable.stripe tbody tr:nth-of-type(odd) {
    background-color: #f9fafb;
}

/* Hover fila */
table.table-hover tbody tr:hover,
table.dataTable tbody tr:hover {
    background-color: #eef2ff !important;
}

/* PaginaciÃ³n DataTables / Bootstrap */
.dataTables_wrapper .dataTables_paginate .paginate_button {
    padding: 2px 2px;
    margin-left: 2px;
    border-radius: 999px;
    border: 1px solid transparent;
    color: #16448d !important;
}

.dataTables_wrapper .dataTables_paginate .paginate_button.current,
.dataTables_wrapper .dataTables_paginate .paginate_button:hover {
    background: #e0edff !important;
    border-color: #c3d3ff !important;
    color: #1d4ed8 !important;
}

/* Longitud y buscador mÃ¡s compactos */
.dataTables_wrapper .dataTables_length,
.dataTables_wrapper .dataTables_filter {
    margin: 4px 0;
    font-size: 12px;
}

/* --------- MenÃºs contextuales / dropdown --------- */

.dropdown-menu {
    border-radius: 8px;
    border: 1px solid #e5e7eb;
    box-shadow: 0 10px 25px rgba(15,23,42,0.18);
    font-size: 12px;
}

.dropdown-menu > li > a,
.dropdown-item {
    padding: 6px 10px;
    color: #374151;
}

.dropdown-menu > li > a:hover,
.dropdown-item:hover {
    background-color: #e0edff;
    color: #1d4ed8;
}

/* --------- Icono flotante de configuraciÃ³n lateral --------- */

#div_configuracion,
#div_configuracion > div {
    border-radius: 16px 0 0 16px;
}

/* --------- Ajustes mÃ³viles bÃ¡sicos --------- */

@media only screen and (max-width: 990px) {
    .mega-content {
        padding: 0 0 !important;
        min-width: 295px;
        max-width: 295px;
        top:0px !important;
    }
    .menu-card{
        padding: 0 0 0 0;
        border-bottom: 1px solid #e5e7eb;
    }
    .menu-card-opciones{
        position: relative !important;
        border-bottom: 3px solid #e5e7eb;
    }
    .menu-tab{
        border-radius: 0 !important;
    }
}


/* ============================================================
 * OVERRIDES EXTRA - AJUSTES FINOS MENÃ SUPERIOR + DATOS
 * ============================================================ */

/* MenÃº superior: texto aÃºn mÃ¡s ligero y pequeÃ±o */
.menu-tab {
    font-size: 10px !important;        /* antes 11px */
    font-weight: 500 !important;
    padding-top: 2px !important;
    padding-bottom: 2px !important;
}

/* Alinear mejor las pestaÃ±as dentro de la barra superior (quitar espacio arriba) */
.FrameSuperior .nav-main,
.FrameSuperior .navbar-nav {
    margin-top: 0 !important;
    padding-top: 4px !important;
    padding-bottom: 0 !important;
}

/* Hover unificado entre pestaÃ±as y mega-menÃº */
.menu-tab:hover,
.menu-tab:focus,
.menu-tab:active,
.menu-tab.menu-tab-activa {
    background-color: #e0edff !important;
    border-color: #c3d3ff !important;
    color: #1d4ed8 !important;
}

.menu-tab:hover i,
.menu-tab:focus i,
.menu-tab:active i,
.menu-tab.menu-tab-activa i {
    color: #1d4ed8 !important;
}

.menu-tab-opciones:hover,
.menu-tab-opciones:focus {
    background-color: #e0edff !important;
    border-color: #c3d3ff !important;
    color: #1d4ed8 !important;
}

.menu-tab-opciones:hover i,
.menu-tab-opciones:focus i {
    color: #1d4ed8 !important;
}

/* Ãrea de datos: armonizar estilos de filas y bordes */

#content-body .panel,
#content-body .panel1,
#content-body .card {
    border-radius: 8px;
    border: 1px solid #e5e7eb;
    box-shadow: 0 1px 2px rgba(15,23,42,0.04);
}

/* Cabecera de tabla un poco mÃ¡s compacta */
table.dataTable thead th,
table.table thead th {
    padding-top: 6px;
    padding-bottom: 6px;
}

/* Filas de tabla: rayado gris muy suave en lugar de azul intenso */
table.table-striped tbody tr:nth-of-type(odd),
table.dataTable.stripe tbody tr:nth-of-type(odd) {
    /* background-color: #f6f7fb !important;*/
}

table.table-striped tbody tr:nth-of-type(even),
table.dataTable.stripe tbody tr:nth-of-type(even) {
   /* background-color: #ffffff !important;*/
}

/* Borde inferior suave entre filas */
table.table tbody tr,
table.dataTable tbody tr {
    border-bottom: 1px solid #e5e7eb;
}

/* Ajustar altura de filas para que se vean ligeras pero legibles */
table.table tbody td,
table.dataTable tbody td {
    padding-top: 6px;
    padding-bottom: 6px;
}

/* Si hay zebra antigua tipo azul, la neutralizamos */
tr[class*="odd"] td,
tr[class*="even"] td {
    background-image: none !important;
}

/* DataTables: quitar espacios verticales innecesarios arriba/abajo */
.dataTables_wrapper {
    padding-top: 0px;
    padding-bottom: 0px;
}


/* ============================================================
 * OVERRIDES EXTRA V3 - BARRA SUPERIOR + MENÃ PRINCIPAL + DROPDOWN
 * ============================================================ */

/* Barra superior mÃ¡s delgada */
.FrameSuperior {
    height: 56px !important;          /* antes 64px */
}

/* Ajustar alineaciÃ³n vertical del menÃº dentro de la barra */
.FrameSuperior .nav-main,
.FrameSuperior .navbar-nav {
    padding-top: 2px !important;
    padding-bottom: 0 !important;
}

/* MenÃº principal: texto un poco mÃ¡s pequeÃ±o aÃºn */
.menu-tab {
    font-size: 9px !important;        /* antes 10px */
}

/* MenÃºs contextuales / dropdown: hover mÃ¡s contrastado */
.dropdown-menu > li > a:hover,
.dropdown-item:hover {
    background-color: #2563eb !important;  /* azul mÃ¡s intenso */
    color: #ffffff !important;             /* texto blanco */
}


/* ============================================================
 * OVERRIDES EXTRA V4 - CONTROLES DE LONGITUD Y TUERCA LATERAL
 * ============================================================ */

/* Controles "Mostrar X registros por pÃ¡gina" mÃ¡s compactos */
.dataTables_wrapper .dataTables_length,
.dataTables_wrapper .dataTables_filter {
    margin: 2px 0 2px 0 !important;   /* menos espacio vertical */
    font-size: 11px !important;
}

.dataTables_wrapper .dataTables_length label,
.dataTables_wrapper .dataTables_filter label {
    margin-bottom: 0 !important;
    font-weight: 400;
}

.dataTables_wrapper .dataTables_length select {
    height: 24px !important;
    padding: 2px 6px !important;
    font-size: 11px !important;
    line-height: 1.2;
}

/* Reducir espacio entre la fila de longitud y la tabla */
.dataTables_wrapper .row:first-child {
    margin-bottom: 0px !important;
}

/* BotÃ³n flotante de configuraciÃ³n (tuerca) mÃ¡s compacto */
#div_configuracion {
    width: 34px !important;
    min-width: 34px !important;
    border-radius: 16px 0 0 16px !important;
    box-shadow: 0 4px 12px rgba(15,23,42,0.25);
}

#div_configuracion > div {
    border-radius: 16px 0 0 16px !important;
    padding: 6px 4px !important;
}

#div_configuracion i,
#div_configuracion .fa,
#div_configuracion .glyphicon {
    font-size: 16px !important;      /* icono mÃ¡s pequeÃ±o */
}


/* ============================================================
 * OVERRIDES EXTRA V5 - MEGAMENU, BARRA MENÃ, LENGTH SELECT, FILTROS
 * ============================================================ */

/* Mega-menÃº: que aparezca justo debajo del menÃº superior, sin solapar */
.mega-content {
    top: 60px !important;          /* antes ~50px; bajamos un poco */
    margin-top: 0 !important;
}

/* Barra superior un poco menos alta */
.FrameSuperior {
    height: 52px !important;       /* antes 56px */
}

/* Alinear contenido dentro de la barra tras cambio de altura */
.FrameSuperior .nav-main,
.FrameSuperior .navbar-nav {
    padding-top: 1px !important;
    padding-bottom: 0 !important;
}

/* DataTables - selector de cantidad por pÃ¡gina aÃºn mÃ¡s compacto y un poco mÃ¡s ancho */
.dataTables_wrapper .dataTables_length select {
    height: 22px !important;
    padding: 1px 6px !important;
    font-size: 11px !important;
    line-height: 1.1;
    min-width: 60px !important;    /* mÃ¡s ancho */
}

/* Filtros: menos separaciÃ³n entre filas (solo un poco) */
#content-body .row > div[class*="col-"] {
    margin-bottom: 2px !important;  /* antes 4px */
}


/* ============================================================
 * OVERRIDES EXTRA V6 - ALINEAR MENÃ SUPERIOR & MEGAMENU
 * ============================================================ */

/* Barra superior: sin borde propio; el borde va pegado a los tabs */
.FrameSuperior {
    height: 52px !important;
    border-bottom: none !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

/* Contenedor del menÃº dentro de la barra: lleva el borde inferior */
.FrameSuperior .nav-main,
.FrameSuperior .navbar-nav {
    margin-top: 0 !important;
    padding-top: 2px !important;
    padding-bottom: 4px !important;
    border-bottom: 1px solid #e5e7eb !important;
}

/* Asegurar que los tabs quedan pegados a ese borde inferior */
.FrameSuperior .nav-main > li > a.menu-tab,
.FrameSuperior .navbar-nav > li > a.menu-tab {
    margin-bottom: 0 !important;
}

/* Mega-menÃº: aparecer exactamente a la altura del borde inferior del menÃº superior */
.mega-content {
    top: 52px !important;
    margin-top: 0 !important;
}


/* ============================================================
 * OVERRIDES EXTRA V7 - MENÃ SUPERIOR DENTRO DE LA BARRA
 * ============================================================ */

/* La barra superior se ajusta automÃ¡ticamente a la altura de las tabs */
.FrameSuperior {
    height: auto !important;
    min-height: 48px !important;
    border-bottom: 1px solid #e5e7eb !important;
    padding-top: 4px !important;
    padding-bottom: 4px !important;
}

/* El contenedor del menÃº ocupa toda la altura de la barra y alinea las tabs abajo */
.FrameSuperior .nav-main,
.FrameSuperior .navbar-nav {
    margin: 0 !important;
    padding: 0 0 0 8px !important;
    display: flex;
    align-items: flex-end;
    border-bottom: none !important;
}

/* Las tabs no deben sobresalir hacia abajo con mÃ¡rgenes extra */
.FrameSuperior .nav-main > li > a.menu-tab,
.FrameSuperior .navbar-nav > li > a.menu-tab {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}

/* El mega-menÃº se mantiene justo debajo de la barra (valor aproximado) */
.mega-content {
    top: 56px !important;
    margin-top: 0 !important;
}

/* === Complemento MIND hamburguesa/offcanvas sobre layout claro === */

/* Ocultamos el menú horizontal antiguo dentro de la barra superior, el principal irá en el offcanvas */
.topbar-main .nav.nav-main {
    display: none !important;
}

/* Botón de hamburguesa en la barra superior */
.mind-menu-btn {
    width: 30px;
  height: 30px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    border-radius: 8px;
    border: 1px solid rgba(148, 163, 184, 0.6);
    background-color: #ffffff;
    color: #111827;
}

.mind-menu-btn i {
    font-size: 16px;
}

.mind-menu-btn:hover,
.mind-menu-btn:focus {
    background-color: #e5f0ff;
    border-color: #2563eb;
    color: #1d4ed8;
}

/* Offcanvas lateral de módulos */
.mind-offcanvas-menu {
    width: 260px;
    background-color: #f9fafb;
}

/* Buscador del menú lateral */
.mind-sidebar-search {
    border-bottom: 1px solid #e5e7eb;
}

/* Resaltado de coincidencias en el buscador del menú */
.mind-match {
    background-color: #fef3c7;
    color: inherit;
    padding: 0 1px;
    border-radius: 2px;
}

/* Árbol de navegación lateral */
.mind-nav-main {
    list-style: none;
    margin: 0;
    padding: 0;
}

.mind-nav-main > li {
    border-bottom: 1px solid #e5e7eb;
}

.mind-nav-main li > a {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.6rem 0.9rem;
    /* Fuente más grande para menú (fallback si no aplica .mind-menu-link) */
    font-size: 1.03rem;
    color: #374151;
    text-decoration: none;
    white-space: nowrap;
}

.mind-nav-main li > a:hover {
    background-color: #e5f0ff;
    color: #1d4ed8;
}

.mind-nav-main li ul {
    list-style: none;
    margin: 0;
    padding-left: 0.85rem;
    display: none; /* los submenús comienzan colapsados */
}

/* Ícono fa en el menú lateral más sutil */
.mind-nav-main li i {
    font-size: 1.05rem;
}

/* ==========================================================
 * MIND - ESTILO VISUAL SIDEBAR (OFFCANVAS IZQUIERDO)
 * Look tipo "sidebar" moderno (similar a la referencia).
 * Solo CSS (sin tocar la lógica JS del árbol/búsqueda).
 * ========================================================== */

/* Contenedor offcanvas izquierdo */
.mind-offcanvas-menu {
    width: 290px;
    max-width: 88vw;
    background-color: #f8fafc;
    border-right: 1px solid #e5e7eb;
}

/* Header del offcanvas: claro y compacto */
.mind-offcanvas-menu .offcanvas-header {
    background-color: #ffffff !important;
    color: #0f172a !important;
    padding: 0.75rem 1rem !important;
    border-bottom: 1px solid #e5e7eb;
    /* El tema original forzaba display: revert en .offcanvas-header, lo que centra el botón X.
       Para el menú lateral izquierdo necesitamos el layout flex de Bootstrap. */
    display: flex !important;
    align-items: center;
    justify-content: flex-start;
    position: relative;
}

/*
 * Encabezado del offcanvas
 * - Se conserva el contenedor, pero se elimina el texto "Módulos principales".
 * - El header se identifica por .mind-offcanvas-menu para no afectar otros offcanvas.
 */
.mind-offcanvas-menu .offcanvas-title {
    font-size: 1.05rem;
    font-weight: 700;
    letter-spacing: 0.01em;
}

/* Logo de VidaSoftware en el encabezado */
.mind-offcanvas-menu .mind-offcanvas-logo {
    /* Logo más compacto para que no invada el header */
    height: 20px;
    width: auto;
    max-width: 200px;
    display: block;
}

.mind-offcanvas-menu .btn-close {
    opacity: 0.65;
}

/* Botón de cierre en la esquina (no centrado) */
.mind-offcanvas-menu .mind-offcanvas-close {
    position: absolute;
    right: 0.9rem;
    margin: 0 !important;
}

.mind-offcanvas-menu .btn-close:hover {
    opacity: 1;
}

/* Body del offcanvas */
.mind-offcanvas-menu .offcanvas-body {
    background-color: #f8fafc !important;
}

/* Buscador del menú lateral (sticky) */
.mind-offcanvas-menu .mind-sidebar-search {
    background-color: #ffffff;
    position: sticky;
    top: 0;
    z-index: 10;
    border-bottom: 1px solid #e5e7eb;
}

.mind-offcanvas-menu .mind-sidebar-search .form-control {
    border-radius: 10px;
    border: 1px solid #d1d5db;
    padding: 0.55rem 0.85rem;
    font-size: 0.98rem;
    box-shadow: none !important;
}

.mind-offcanvas-menu .mind-sidebar-search .form-control:focus {
    border-color: #2563eb;
    box-shadow: 0 0 0 0.2rem rgba(37, 99, 235, 0.12) !important;
}

/* Scrollbar más discreto */
.mind-offcanvas-menu .offcanvas-body::-webkit-scrollbar {
    width: 10px;
}

.mind-offcanvas-menu .offcanvas-body::-webkit-scrollbar-track {
    background: transparent;
}

.mind-offcanvas-menu .offcanvas-body::-webkit-scrollbar-thumb {
    background: rgba(100, 116, 139, 0.25);
    border-radius: 999px;
}

.mind-offcanvas-menu .offcanvas-body::-webkit-scrollbar-thumb:hover {
    background: rgba(100, 116, 139, 0.35);
}

/* Árbol de navegación */
.mind-nav-main {
    list-style: none;
    margin: 0;
    padding: 0.25rem 0 0.75rem;
}

.mind-menu-item {
    list-style: none;
}

.mind-menu-link {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    margin: 2px 8px;
    padding: 0.72rem 0.75rem;
    border-radius: 10px;
    color: #334155;
    /* Tipografía más grande y legible */
    font-size: 1.16rem;
    font-weight: 600;
    text-decoration: none;
    white-space: nowrap;
}

/* Primer nivel (sección) */
.mind-nav-main > .mind-menu-item > .mind-menu-link {
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-size: 1.10rem;
    font-weight: 700;
    color: #475569;
}

.mind-menu-link:hover {
    background-color: #eef2ff;
    color: #1d4ed8;
}

.mind-menu-item.is-open > .mind-menu-link {
    background-color: #f1f5f9;
}

.mind-menu-link-icon {
    width: 22px;
    height: 22px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 22px;
    color: #64748b;
}

.mind-menu-link:hover .mind-menu-link-icon {
    color: #1d4ed8;
}

.mind-menu-link-icon i {
    font-size: 1.05rem;
}

/* Chevron (indicador) */
.mind-menu-chevron {
    margin-left: auto;
    color: #94a3b8;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.mind-menu-chevron i {
    font-size: 0.75rem;
    transition: transform 160ms ease;
}

.mind-menu-link:hover .mind-menu-chevron {
    color: #1d4ed8;
}

.mind-menu-item.is-open > .mind-menu-link .mind-menu-chevron i {
    transform: rotate(90deg);
}

/* Submenús (hijos, nietos...) */
.mind-submenu {
    list-style: none;
    margin: 4px 0 6px;
    padding: 0 0 0 16px;
    margin-left: 22px;
    border-left: 1px solid rgba(148, 163, 184, 0.35);
    display: none; /* JS controla el despliegue */
}

.mind-submenu .mind-menu-link {
    text-transform: none;
    letter-spacing: normal;
    font-weight: 500;
    font-size: 1.12rem;
    color: #475569;
    padding: 0.60rem 0.7rem;
}

/* Migas de pan (barra superior) */
.bar-dir .mind-breadcrumb-wrap {
    display: flex;
    align-items: center;
    gap: 0.35rem;
}

.bar-dir #mindBreadcrumbs {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
}

.bar-dir #mindBreadcrumbs .mind-bc-sep {
    margin: 0 0.35rem;
    opacity: 0.9;
    color: #64748b;
}

.bar-dir #mindBreadcrumbs a.mind-bc-link {
    color: #0f172a;
    text-decoration: none;
}

.bar-dir #mindBreadcrumbs a.mind-bc-link:hover {
    color: #1d4ed8;
    text-decoration: underline;
}

.bar-dir #mindBreadcrumbs .mind-bc-current {
    color: #0f172a;
    font-weight: 700;
}

.mind-submenu .mind-menu-link:hover {
    background-color: #e5f0ff;
}

/* Niveles más profundos mantienen el mismo patrón */
.mind-submenu .mind-submenu {
    margin-left: 18px;
    padding-left: 16px;
    border-left: 1px solid rgba(148, 163, 184, 0.30);
}

/* Resaltado de búsqueda */
.mind-match {
    background-color: #fde68a;
    border-radius: 3px;
    padding: 0 2px;
}


/* ============================================================
 * GEOSALES - AZUL DE MARCA (desde logo)
 * Unifica TODOS los tonos azules usados en botones/acciones
 * ============================================================ */
:root{
  --geosales-blue: #1C458A;          /* color exacto del logo */
  --geosales-blue-hover: #163B75;
  --geosales-blue-active: #12325F;
  --geosales-blue-soft: #E8EFF9;
  --geosales-blue-soft-2: #D7E3F5;
  --geosales-blue-soft-border: #C8D6EE;
  --geosales-blue-focus: rgba(28, 69, 138, 0.22);
}

/* Botones Bootstrap (v3/v4/v5) */
body .btn-primary,
.btn-primary{
  background-color: var(--geosales-blue) !important;
  border-color: var(--geosales-blue) !important;
  color: #ffffff !important;
}

body .btn-primary:hover,
body .btn-primary:focus,
body .btn-primary:active,
.btn-primary:hover,
.btn-primary:focus,
.btn-primary:active{
  background-color: var(--geosales-blue-hover) !important;
  border-color: var(--geosales-blue-hover) !important;
  color: #ffffff !important;
}

body .btn-primary.active,
.btn-primary.active,
.show > .btn-primary.dropdown-toggle{
  background-color: var(--geosales-blue-active) !important;
  border-color: var(--geosales-blue-active) !important;
}

body .btn-primary:focus,
.btn-primary:focus{
  outline: none !important;
  box-shadow: 0 0 0 0.12rem var(--geosales-blue-focus) !important;
}

body .btn-outline-primary,
.btn-outline-primary{
  color: var(--geosales-blue) !important;
  border-color: var(--geosales-blue) !important;
}

body .btn-outline-primary:hover,
body .btn-outline-primary:focus,
.btn-outline-primary:hover,
.btn-outline-primary:focus{
  background-color: var(--geosales-blue) !important;
  border-color: var(--geosales-blue) !important;
  color: #ffffff !important;
}

body .btn-link,
.btn-link,
a.text-primary,
.text-primary{
  color: var(--geosales-blue) !important;
}


/* Focus de inputs/controles (cuando "azulea") */
.form-control:focus,
.form-select:focus,
input[type="text"]:focus,
input[type="number"]:focus,
input[type="date"]:focus,
select:focus{
  border-color: var(--geosales-blue) !important;
  box-shadow: 0 0 0 0.12rem var(--geosales-blue-focus) !important;
  outline: none !important;
}

/* Menú superior (tabs) – se comporta como botón */
.menu-tab:hover,
.menu-tab:focus,
.menu-tab:active,
.menu-tab.menu-tab-activa{
  background-color: var(--geosales-blue-soft) !important;
  border-color: var(--geosales-blue-soft-border) !important;
  color: var(--geosales-blue) !important;
}

.menu-tab:hover i,
.menu-tab:focus i,
.menu-tab:active i,
.menu-tab.menu-tab-activa i{
  color: var(--geosales-blue) !important;
}

.menu-tab-opciones:hover,
.menu-tab-opciones:focus{
  background-color: var(--geosales-blue-soft) !important;
  border-color: var(--geosales-blue-soft-border) !important;
  color: var(--geosales-blue) !important;
}

.menu-tab-opciones:hover i,
.menu-tab-opciones:focus i{
  color: var(--geosales-blue) !important;
}

/* Dropdown hover tipo botón */
.dropdown-menu > li > a:hover,
.dropdown-item:hover{
  background-color: var(--geosales-blue) !important;
  color: #ffffff !important;
}

/* DataTables paginación (botones) */
.dataTables_wrapper .dataTables_paginate .paginate_button{
  color: var(--geosales-blue) !important;
}

.dataTables_wrapper .dataTables_paginate .paginate_button.current,
.dataTables_wrapper .dataTables_paginate .paginate_button:hover{
  background: var(--geosales-blue-soft) !important;
  border-color: var(--geosales-blue-soft-border) !important;
  color: var(--geosales-blue) !important;
}

/* Paginación Bootstrap (cuando aplica) */
.pagination > li > a,
.pagination > li > span,
.page-link{
  color: var(--geosales-blue) !important;
}

.pagination > .active > a,
.pagination > .active > span,
.pagination > .active > a:hover,
.pagination > .active > span:hover,
.pagination > .active > a:focus,
.pagination > .active > span:focus,
.page-item.active .page-link{
  background-color: var(--geosales-blue) !important;
  border-color: var(--geosales-blue) !important;
  color: #ffffff !important;
}

/* Buscador del sidebar – focus coherente */
.mind-offcanvas-menu .mind-sidebar-search .form-control:focus{
  border-color: var(--geosales-blue) !important;
  box-shadow: 0 0 0 0.2rem rgba(28, 69, 138, 0.12) !important;
}

/* Breadcrumbs */
#mindBreadcrumbs a{
  color: var(--geosales-blue) !important;
}
#mindBreadcrumbs a:hover{
  color: var(--geosales-blue-hover) !important;
  text-decoration: underline;
}

/* Utilidades Bootstrap (cuando existan) */
.bg-primary,
.badge-primary,
.label-primary{
  background-color: var(--geosales-blue) !important;
}

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

.panel-primary > .panel-heading,
.panel-primary{
  border-color: var(--geosales-blue) !important;
}

.panel-primary > .panel-heading{
  background-color: var(--geosales-blue) !important;
  color: #ffffff !important;
}

.nav-pills > li.active > a,
.nav-pills > li.active > a:hover,
.nav-pills > li.active > a:focus{
  background-color: var(--geosales-blue) !important;
}



/* ===============================
   Favoritos (Topbar - Desktop)
   =============================== */
.mind-topbar-favs{
  display: flex;
  align-items: center;
  gap: 10px;
  margin-left: 12px;
  flex-wrap: nowrap;
  overflow: hidden;
}

.mind-fav-card{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 10px;
  border-radius: 10px;
  background: #ffffff;
  border: 1px solid #e5e7eb;
  text-decoration: none !important;
  color: #0f172a !important;
  max-width: 220px;
  box-shadow: 0 1px 0 rgba(15, 23, 42, 0.04);
  transition: background-color .15s ease, border-color .15s ease, transform .15s ease;
  white-space: nowrap;
}

.mind-fav-card:hover{
  background: var(--geosales-blue-soft);
  border-color: var(--geosales-blue-soft-border);
  transform: translateY(-1px);
  color: #0f172a !important;
}

.mind-fav-key{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.02em;
  width: 24px;
  height: 18px;
  border-radius: 999px;
  background: var(--geosales-blue);
  color: #fff;
  flex: 0 0 auto;
}

.mind-fav-icon{
  font-size: 15px;
  color: var(--geosales-blue) !important;
  flex: 0 0 auto;
}

.mind-fav-text{
  font-size: 13px;
  font-weight: 600;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 150px;
}

@media (max-width: 991.98px){
  #mindTopbarFavs{ display:none !important; }
}

/* ===============================
   Favoritos (Mobile): ⭐ + dropdown
   =============================== */
.mind-favs-mobile{
  margin-left: 10px;
}

.mind-favs-mobile-btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 34px;
  padding: 0 !important;
  border-radius: 10px;
  background: #ffffff !important;
  border: 1px solid #e5e7eb !important;
  color: var(--geosales-blue) !important;
  box-shadow: 0 1px 0 rgba(15, 23, 42, 0.04);
}

.mind-favs-mobile-btn:hover,
.mind-favs-mobile-btn:focus{
  background: var(--geosales-blue-soft) !important;
  border-color: var(--geosales-blue-soft-border) !important;
  color: var(--geosales-blue) !important;
}

.mind-favs-mobile-menu{
  min-width: 280px;
  border-radius: 12px;
  border: 1px solid #e5e7eb;
  padding: 6px;
  box-shadow: 0 12px 30px rgba(2, 6, 23, 0.18);
}

.mind-fav-dd-item{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  border-radius: 10px;
  padding: 8px 10px;
}

.mind-fav-dd-item:hover{
  background: var(--geosales-blue-soft) !important;
}

.mind-fav-dd-left{
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}

.mind-fav-dd-icon{
  width: 18px;
  text-align: center;
  color: var(--geosales-blue) !important;
  flex: 0 0 auto;
}

.mind-fav-dd-text{
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: 200px;
  font-size: 14px;
  font-weight: 600;
  color: #0f172a;
}

.mind-fav-dd-key{
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.02em;
  padding: 2px 8px;
  border-radius: 999px;
  background: var(--geosales-blue);
  color: #fff;
  flex: 0 0 auto;
}

.mind-fav-dd-empty{
  padding: 10px 10px;
  color: #64748b;
  font-size: 13px;
}

.mind-fav-dd-edit{
  border-radius: 10px;
  padding: 8px 10px;
  font-weight: 700;
  color: var(--geosales-blue) !important;
}

.mind-fav-dd-edit:hover{
  background: var(--geosales-blue-soft) !important;
}


/* ===============================
   Topbar: agrupar hamburguesa + ⭐ (móvil) + favoritos (desktop)
   =============================== */
.mind-topbar-left-group{
  display: flex;
  align-items: center;
  gap: 10px;
  flex: 0 0 auto;
}

@media (max-width: 991.98px){
  .mind-topbar-left-group{
    gap: 8px;
  }
}

/* ===============================
   Dropdown usuario (debajo del nombre)
   =============================== */
.mind-user-dropdown .mind-user-menu{
  min-width: 240px;
  border-radius: 12px;
  border: 1px solid #e5e7eb;
  padding: 6px;
  box-shadow: 0 12px 30px rgba(2, 6, 23, 0.18);
}

.mind-user-dropdown .mind-user-menu .dropdown-item{
  border-radius: 10px;
  padding: 10px 12px;
  font-size: 14px;
}

.mind-user-dropdown .mind-user-menu .dropdown-item i{
  width: 18px;
  text-align: center;
  margin-right: 8px;
  color: var(--geosales-blue) !important;
}

/* ⭐ Favoritos en amarillo (topbar / dropdown / modal) */
.mind-favs-mobile-btn .bi-star-fill,
.mind-user-edit-favs .bi-star-fill,
#mindFavEditModalLabel .bi-star-fill,
.mind-fav-selected-icon.bi-star-fill{
  color: #facc15 !important;
}

/* En hover, los iconos del dropdown también deben ser legibles */
.mind-user-dropdown .mind-user-menu .dropdown-item:hover i,
.mind-user-dropdown .mind-user-menu .dropdown-item:focus i{
  color: #fff !important;
}

/* ===============================
   Modal: Editor de Favoritos
   =============================== */
.mind-fav-modal .modal-content{
  border-radius: 16px;
  border: 1px solid #e5e7eb;
  box-shadow: 0 16px 40px rgba(2, 6, 23, 0.18);
}

/* Ampliar el modal de favoritos para que el árbol no se salga hacia la derecha */
.mind-fav-modal .modal-dialog{
  max-width: 96vw;
}

@media (min-width: 992px){
  .mind-fav-modal .modal-dialog{
    max-width: 1200px;
    width: 1200px;
  }
}


/* Mobile: evitar desbordamientos en el modal de favoritos */
@media (max-width: 575.98px){
  .mind-fav-modal .modal-dialog{
    max-width: calc(100vw - 16px);
    width: calc(100vw - 16px);
    margin: 8px auto;
  }
  .mind-fav-modal .modal-content{
    overflow: hidden;
  }
  .mind-fav-modal .modal-body{
    padding: 14px;
    overflow-x: hidden;
  }
  .mind-fav-modal .modal-footer{
    gap: 8px;
    flex-wrap: wrap;
  }
  .mind-fav-modal .modal-footer .btn{
    flex: 1 1 auto;
  }

  /* Reducir indentación del árbol en móvil (y compactar controles) */
  .mind-fav-tree{
    padding: 4px;
  }
  .mind-fav-tree-row{
    padding: 7px 8px;
    padding-left: calc(6px + (var(--depth, 0) * 8px));
  }
  .mind-fav-tree-toggle,
  .mind-fav-tree-spacer{
    width: 20px;
    height: 20px;
  }
  .mind-fav-tree-left{
    gap: 8px;
  }
  .mind-fav-tree-text{
    font-size: 13px;
  }
}

/* Muy angosto: permitir que los botones bajen a otra línea */
@media (max-width: 420px){
  .mind-fav-selected-item{
    flex-wrap: wrap;
    align-items: flex-start;
  }
  .mind-fav-selected-actions{
    width: 100%;
    justify-content: flex-end;
    padding-top: 6px;
  }
}




.mind-fav-edit-subtitle{
  font-size: 14px;
  color: #475569;
  margin-bottom: 12px;
}

.mind-fav-edit-grid{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}

@media (max-width: 991.98px){
  .mind-fav-edit-grid{
    grid-template-columns: 1fr;
  }
}

.mind-fav-edit-section-title{
  font-size: 13px;
  font-weight: 700;
  color: #0f172a;
  margin-bottom: 8px;
}

.mind-fav-selected-empty{
  font-size: 13px;
  color: #64748b;
  padding: 6px 0;
}

.mind-fav-selected-list{
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.mind-fav-selected-item{
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: #f8fafc;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  padding: 10px 10px;
  gap: 10px;
}

.mind-fav-selected-left{
  display: flex;
  align-items: center;
  gap: 10px;
  flex: 1 1 auto;
  min-width: 0;
}

.mind-fav-selected-key{
  font-size: 12px;
  font-weight: 700;
  color: #0f172a;
  background: var(--geosales-blue-soft);
  border: 1px solid var(--geosales-blue-soft-border);
  padding: 2px 8px;
  border-radius: 999px;
  flex: 0 0 auto;
}

.mind-fav-selected-icon{
  color: var(--geosales-blue) !important;
  font-size: 16px;
  flex: 0 0 auto;
}

.mind-fav-selected-text{
  font-size: 14px;
  color: #0f172a;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  flex: 1 1 auto;
  min-width: 0;
}

.mind-fav-selected-actions{
  display: flex;
  align-items: center;
  gap: 6px;
  flex: 0 0 auto;
}

.mind-fav-selected-actions .btn{
  padding: 4px 7px;
  border-radius: 10px;
}

.mind-fav-selected-hint,
.mind-fav-search-hint{
  font-size: 12px;
  color: #94a3b8;
  margin-top: 8px;
}

.mind-fav-search-results{
  margin-top: 8px;
  max-height: 260px;
  overflow: auto;
  border-radius: 12px;
  border: 1px solid #e5e7eb;
}

.mind-fav-search-item{
  border: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.mind-fav-search-left{
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}

.mind-fav-search-icon{
  color: var(--geosales-blue) !important;
}

.mind-fav-search-text{
  font-size: 14px;
  color: #0f172a;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.mind-fav-search-empty{
  padding: 10px 12px;
  color: #64748b;
  font-size: 13px;
}

/* ===============================
   Favoritos: resultados en formato Árbol (Modal)
   =============================== */
.mind-fav-tree{
  padding: 4px;
}

.mind-fav-tree-item{
  display: block;
}

.mind-fav-tree-row{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 7px 8px;
  border-radius: 10px;
  /* indentación por nivel (más compacta para aprovechar ancho) */
  padding-left: calc(6px + (var(--depth, 0) * 10px));
}

.mind-fav-tree-row:hover{
  background: var(--geosales-blue-soft);
}

.mind-fav-tree-left{
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}

.mind-fav-tree-right{
  display: flex;
  align-items: center;
  gap: 8px;
  flex: 0 0 auto;
}

.mind-fav-tree-toggle,
.mind-fav-tree-spacer{
  width: 22px;
  height: 22px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
}

.mind-fav-tree-toggle{
  border-radius: 10px;
  border: 1px solid transparent;
  background: transparent;
  color: #64748b;
}

.mind-fav-tree-toggle:hover{
  background: #ffffff;
  border-color: #e5e7eb;
}

.mind-fav-tree-toggle i{
  transition: transform .15s ease;
}

.mind-fav-tree-toggle.open i{
  transform: rotate(90deg);
}

.mind-fav-tree-icon{
  width: 18px;
  text-align: center;
  color: var(--geosales-blue) !important;
  flex: 0 0 auto;
}

.mind-fav-tree-text{
  font-size: 14px;
  font-weight: 600;
  color: #0f172a;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  min-width: 0;
  flex: 1 1 auto;
}

.mind-fav-tree-add{
  padding: 4px 10px;
  border-radius: 999px;
  font-weight: 700;
  font-size: 12px;
}

.mind-fav-tree-children{
  display: block;
}


/* ============================================================
 * REPORTES - MODERNIZACIÓN UI
 * (Tablas/DataTables, filtros, acciones y paginación)
 * ============================================================ */

:root{
  --report-surface: #ffffff;
  --report-surface-2: #f8fafc;
  --report-border: #e5e7eb;
  --report-border-soft: #eef2f7;
  --report-text: #0f172a;
  --report-muted: #64748b;
  --report-row-hover: #eef2ff;
  --report-shadow: 0 1px 2px rgba(15, 23, 42, 0.06);
}

/* ---- Bloque de filtros de reportes (si existe .filters) ---- */
.filters{
  background: var(--report-surface);
  border: 1px solid var(--report-border);
  border-radius: 12px;
  box-shadow: var(--report-shadow);
  padding: 6px 8px 4px 8px;
  margin-bottom: 6px;
}

.filters .row{
  row-gap: 4px;
}

.filters .form-control,
.filters .form-select,
.filters select,
.filters input[type="text"],
.filters input[type="number"],
.filters input[type="date"]{
  height: 26px !important;
  padding-top: 1px !important;
  padding-bottom: 1px !important;
}

.filters .btn{
  border-radius: 10px !important;
}

/* Botones icono a la derecha (mostrar/ocultar filtros) */
.filters-display{
  height: 28px !important;
  background: var(--report-surface);
  border: 1px solid var(--report-border);
  border-radius: 0px;
  overflow: hidden;
  box-shadow: var(--report-shadow);
}

.filters-display .btn,
.filters-display .btn-filter{
  height: 26px !important;
  min-width: 32px;
  padding: 0 8px !important;
  border-radius: 0 !important;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.filters-display .btn + .btn,
.filters-display .btn-filter + .btn-filter{
  border-left: 1px solid var(--report-border) !important;
}

/* ---- Contenedor DataTables como tarjeta ---- */
.dataTables_wrapper{
  background: var(--report-surface);
  border: 1px solid var(--report-border);
  border-radius: 12px;
  box-shadow: var(--report-shadow);
  padding: 6px 6px 6px 6px;
}

/* Scroll container: redondeado y sin bordes viejos */
.dataTables_wrapper .dataTables_scroll{
  border: 1px solid var(--report-border);
  border-radius: 12px;
  overflow: hidden;
  background: var(--report-surface);
}

.dataTables_wrapper div.dataTables_scrollHead,
.dataTables_wrapper div.dataTables_scrollBody,
.dataTables_wrapper div.dataTables_scrollFoot{
  background: transparent !important;
  border: 0 !important;
}

.dataTables_wrapper div.dataTables_scrollBody{
  -webkit-overflow-scrolling: touch;
}

/* ---- Encabezados de tabla ---- */
.dataTables_wrapper table.dataTable thead th,
.dataTables_wrapper table.table thead th,
.dataTables_wrapper table.dataTable th {
  color: #ffffff !important;
  border-bottom: 0 !important;
  font-weight: 700 !important;
  font-size: 12px !important;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  padding: 8px 12px !important;
  vertical-align: middle;
  background: linear-gradient(180deg, var(--geosales-blue), var(--geosales-blue-hover)) !important;
  border-left: 0 !important;
  border-right: 0 !important;
}

/* ===== GEO: DataTables row selection (single row highlighted on click) ===== */
.dataTables_wrapper table.dataTable tbody tr.gs-row-selected > td,
.dataTables_wrapper table.table tbody tr.gs-row-selected > td {
  background-color: rgba(81, 107, 157, 0.14) !important;
}

.dataTables_wrapper table.dataTable tbody tr.gs-row-selected > td:first-child,
.dataTables_wrapper table.table tbody tr.gs-row-selected > td:first-child {
  box-shadow: inset 3px 0 0 rgba(81, 107, 157, 0.65);
}

/* Header sticky cuando se usa scroll vertical */
.dataTables_wrapper .dataTables_scrollHead{
  position: sticky;
  top: 0;
  z-index: 2;
}

/* ---- Filas / celdas ---- */
.dataTables_wrapper table.dataTable tbody td, .dataTables_wrapper table.table tbody td {
  padding: 2px 6px !important;
  border-top: 0 !important;
  border-bottom: 1px solid var(--report-border-soft) !important;
  vertical-align: middle;
  border-left: 0 !important;
  border-right: 0 !important;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}

/* Neutralizar zebra antiguo (odd/even) y aplicar un rayado moderno */
.dataTables_wrapper table.dataTable tbody tr.odd,
.dataTables_wrapper table.table tbody tr.odd{
  background-color: var(--report-surface) !important;
}

.dataTables_wrapper table.dataTable tbody tr.even,
.dataTables_wrapper table.table tbody tr.even{
  background-color: var(--report-surface) !important;
}

/* Asegurar que el color venga del <tr> y no de los <td> heredados */
.dataTables_wrapper table.dataTable tbody tr.odd td,
.dataTables_wrapper table.dataTable tbody tr.even td,
.dataTables_wrapper table.table tbody tr.odd td,
.dataTables_wrapper table.table tbody tr.even td{
  background-color: transparent !important;
}

.dataTables_wrapper table.dataTable tbody tr:hover,
.dataTables_wrapper table.table tbody tr:hover{
  background-color: var(--report-row-hover) !important;
}

/* ---- Barra superior de DataTables (Mostrar X / Buscar) ---- */
.dataTables_wrapper .dataTables_length,
.dataTables_wrapper .dataTables_filter{
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 6px 0 !important;
}

.dataTables_wrapper .dataTables_length label,
.dataTables_wrapper .dataTables_filter label{
  margin: 0 !important;
  color: var(--report-muted);
  font-size: 12px !important;
  font-weight: 600;
}

.dataTables_wrapper .dataTables_length select,
.dataTables_wrapper .dataTables_filter input{
  height: 24px !important;
  border-radius: 10px !important;
  border: 1px solid var(--report-border) !important;
  font-size: 12px !important;
}

.dataTables_wrapper .dataTables_filter input{
  padding: 2px 8px !important;
}

/* ---- Acciones por fila (botón engrane + menú) ---- */
.dataTables_wrapper table.dataTable td .btn-group,
.dataTables_wrapper table.table td .btn-group{
  display: inline-flex;
}

.dataTables_wrapper table.dataTable td .btn-group > .btn,
.dataTables_wrapper table.table td .btn-group > .btn,
.dataTables_wrapper table.dataTable td .btn-group > a.btn,
.dataTables_wrapper table.table td .btn-group > a.btn{
  width: 30px;
  height: 30px;
  padding: 0 !important;
  border-radius: 10px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.10);
}

.dataTables_wrapper table.dataTable td .btn-group > .btn i,
.dataTables_wrapper table.table td .btn-group > .btn i{
  font-size: 14px !important;
}

/* Menú desplegable de acciones, más moderno */
.dataTables_wrapper table.dataTable td .dropdown-menu,
.dataTables_wrapper table.table td .dropdown-menu{
  border-radius: 12px;
  padding: 6px;
  min-width: 200px;
}

.dataTables_wrapper table.dataTable td .dropdown-menu > li > a,
.dataTables_wrapper table.table td .dropdown-menu > li > a,
.dataTables_wrapper table.dataTable td .dropdown-menu .dropdown-item,
.dataTables_wrapper table.table td .dropdown-menu .dropdown-item{
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 10px;
  border-radius: 10px;
}

.dataTables_wrapper table.dataTable td .dropdown-menu > li > a i,
.dataTables_wrapper table.table td .dropdown-menu > li > a i,
.dataTables_wrapper table.dataTable td .dropdown-menu .dropdown-item i,
.dataTables_wrapper table.table td .dropdown-menu .dropdown-item i{
  width: 18px;
  text-align: center;
  color: var(--geosales-blue) !important;
}

/* En hover (fondo azul de marca), iconos a blanco para contraste */
.dataTables_wrapper table.dataTable td .dropdown-menu > li > a:hover i,
.dataTables_wrapper table.table td .dropdown-menu > li > a:hover i,
.dataTables_wrapper table.dataTable td .dropdown-menu .dropdown-item:hover i,
.dataTables_wrapper table.table td .dropdown-menu .dropdown-item:hover i{
  color: #ffffff !important;
}

/* ---- Paginación (Bootstrap y DataTables) ---- */
.pagination,
.dataTables_wrapper .dataTables_paginate{
  font-size: 12px;
}

.pagination > li > a,
.pagination > li > span,
.page-link{
  border-radius: 10px !important;
  border: 1px solid var(--report-border) !important;
  padding: 5px 10px !important;
}

.dataTables_wrapper .dataTables_paginate .paginate_button{
  border-radius: 999px !important;
  border: 1px solid var(--report-border) !important;
  padding: 5px 10px !important;
  margin-left: 4px !important;
}

/* Texto auxiliar abajo ("Mostrando...") más sutil */
.dataTables_wrapper .dataTables_info{
  color: var(--report-muted) !important;
  font-size: 12px !important;
  padding-top: 10px !important;
}


/* ============================================================
 * DASHBOARD PREVENTA - UI MODERNA (Plotly + Tablas)
 * Alcance: Solo dentro de #gs-dashboard / .gs-dashboard
 * ============================================================ */

.gs-dashboard{
  --gs-surface: #ffffff;
  --gs-surface-2: #f8fafc;
  --gs-border: #e5e7eb;
  --gs-muted: #64748b;
  --gs-text: #0f172a;
  --gs-shadow: 0 1px 2px rgba(15, 23, 42, 0.06);
  --gs-radius: 12px;
}

.gs-dashboard__header{
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
}

.gs-title__h1{
  font-weight: 800;
  font-size: 22px;
  color: var(--gs-text);
  letter-spacing: 0.2px;
}

.gs-title__sub{
  color: var(--gs-muted);
  font-size: 12px;
  margin-top: 2px;
}

.gs-header__meta{
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  flex-wrap: wrap;
}

.gs-badge-demo{
  font-weight: 800;
}

.gs-card{
  background: var(--gs-surface);
  border: 1px solid var(--gs-border);
  border-radius: var(--gs-radius);
  box-shadow: var(--gs-shadow);
}

.gs-card__header{
  padding: 12px 14px;
  border-bottom: 1px solid var(--gs-border);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.gs-card__title{
  font-weight: 800;
  font-size: 13px;
  color: var(--gs-text);
}

.gs-card__sub{
  font-size: 11px;
  color: var(--gs-muted);
  margin-top: 2px;
}

.gs-card__actions{
  display: flex;
  align-items: center;
  gap: 8px;
}

.gs-card__body{
  padding: 12px 14px;
}

.gs-card__body--compact{
  padding: 10px 12px;
}

.gs-card--filters .form-control,
.gs-card--filters .form-select{
  height: 36px !important;
}

.gs-label{
  font-size: 11px;
  font-weight: 800;
  color: var(--gs-muted);
  text-transform: uppercase;
  letter-spacing: .06em;
  margin-bottom: 4px;
}

.gs-help{
  margin-top: 6px;
  font-size: 11px;
  color: var(--gs-muted);
}

/* KPIs */
.gs-kpi-card{
  background: var(--gs-surface);
  border: 1px solid var(--gs-border);
  border-radius: var(--gs-radius);
  box-shadow: var(--gs-shadow);
  padding: 10px 12px;
  height: 100%;
}

.gs-kpi-head{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 6px;
}

.gs-kpi-title{
  font-size: 11px;
  font-weight: 900;
  color: var(--gs-muted);
  text-transform: uppercase;
  letter-spacing: .06em;
  white-space: nowrap;
}

.gs-kpi-value{
  font-size: 22px;
  font-weight: 900;
  color: var(--gs-text);
  line-height: 1.1;
}

.gs-kpi-sub{
  margin-top: 3px;
  font-size: 11px;
  color: var(--gs-muted);
}

.gs-kpi-progress{
  height: 6px;
  margin-top: 8px;
  border-radius: 999px;
  overflow: hidden;
}

.gs-kpi-progress .progress-bar{
  border-radius: 999px;
}

/* Deltas */
.gs-delta{
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 11px;
  font-weight: 800;
  padding: 2px 8px;
  border-radius: 999px;
  background: var(--gs-surface-2);
  border: 1px solid var(--gs-border);
  color: var(--gs-muted);
}

.gs-delta--up{
  color: #0f766e;
}

.gs-delta--down{
  color: #b42318;
}

.gs-delta--neutral{
  color: var(--gs-muted);
}

/* Plot containers */
.gs-plot{
  width: 100%;
  min-height: 330px;
}

.gs-plot--sm{
  min-height: 260px;
}

/* Tables inside dashboard */
.gs-table thead th{
  background: var(--gs-surface-2) !important;
  color: var(--gs-muted) !important;
  font-weight: 900 !important;
  font-size: 11px !important;
  text-transform: uppercase;
  letter-spacing: .06em;
  border-bottom: 1px solid var(--gs-border) !important;
}

.gs-table tbody td{
  font-size: 12px;
  color: var(--gs-text);
  border-top: 1px solid #eef2f7 !important;
  vertical-align: middle;
}

.gs-table tbody tr:hover td{
  background: #eef2ff;
}

/* Mobile tweaks */
@media (max-width: 576px){
  .gs-dashboard__header{
    flex-direction: column;
    align-items: flex-start;
  }
  .gs-title__h1{
    font-size: 20px;
  }
  .gs-plot{
    min-height: 280px;
  }
  .gs-plot--sm{
    min-height: 240px;
  }
}


/* ============================================================
 * REPORTES / DATA TABLES - LAYOUT COMPACTO (MAXIMIZAR ESPACIO)
 * ============================================================
 * Objetivo:
 * - Reducir padding/margins innecesarios (especialmente en móvil)
 * - Evitar el doble borde en la paginación de DataTables
 * - Mostrar más información en pantalla
 */

/* Contenedor principal: menos padding para aprovechar ancho/alto */
.row.content-body,
#content-body{
  padding: 4px 6px 6px 6px;
}

/* Paneles: más compactos */
#content-body > .panel1,
#content-body > .panel,
#content-body > .card,
#content-body > div.panel1,
#content-body > div.panel{
  padding: 4px 6px;
  margin-bottom: 6px;
}

/* Dentro de paneles: menos aire vertical */
.panel-body,
.panel1 .panel-body{
  padding-top: 4px;
  padding-bottom: 4px;
}

/* Filtros: menos separación entre controles */
#content-body .row > div[class*="col-"]{
  margin-bottom: 2px;
}

/* Controles de filtros y formularios: más compactos */
.form-control,
.form-select,
input[type="text"],
input[type="number"],
input[type="date"],
select{
  height: 24px;
  padding: 1px 6px;
}

label,
.control-label{
  margin-bottom: 1px;
}

/* Botones: compactos */
.btn,
.btn-sm,
.btn-lg{
  padding: 3px 8px;
}

/* DataTables: quitar gutters y espacios verticales extra */
.dataTables_wrapper .row{
  margin-left: 0 !important;
  margin-right: 0 !important;
}
.dataTables_wrapper .row > *{
  padding-left: 0 !important;
  padding-right: 0 !important;
}

.dataTables_wrapper .dataTables_length,
.dataTables_wrapper .dataTables_filter{
  margin: 0 !important;
}

.dataTables_wrapper .dataTables_length select{
  height: 22px !important;
  padding: 0 6px !important;
}

.dataTables_wrapper .dataTables_info{
  padding-top: 4px !important;
}

/* Scroll head/body: sin "marcos" muy gruesos */
div.dataTables_scrollHead,
div.dataTables_scrollBody{
  border-left-width: 1px !important;
  border-right-width: 1px !important;
}

/* =============================================
 * FIX: Paginación DataTables con doble borde
 * =============================================
 * Con Bootstrap5, el borde está en .page-link.
 * Si ponemos borde también en .paginate_button (LI), se ve doble.
 */
.dataTables_wrapper .dataTables_paginate .paginate_button{
  border: none !important;
  background: transparent !important;
  padding: 0 !important;
  margin: 0 !important;
}

.dataTables_wrapper .dataTables_paginate .paginate_button .page-link{
  border-radius: 999px !important;
  border: 1px solid #c3d3ff !important;
  padding: 4px 10px !important;
  margin-left: 4px !important;
  color: #1d4ed8 !important;
  background: #ffffff !important;
  box-shadow: none !important;
}

.dataTables_wrapper .dataTables_paginate .paginate_button.active .page-link,
.dataTables_wrapper .dataTables_paginate .paginate_button.current .page-link,
.dataTables_wrapper .dataTables_paginate .paginate_button .page-link:hover{
  background: #e0edff !important;
  border-color: #c3d3ff !important;
  color: #1d4ed8 !important;
}

.dataTables_wrapper .dataTables_paginate .paginate_button.disabled .page-link{
  opacity: 0.5;
  pointer-events: none;
}


/* ==========================
 * MÓVIL: aún más compacto
 * ========================== */
@media (max-width: 576px){
  .row.content-body,
  #content-body{
    padding: 4px 4px 6px 4px;
  }

  #content-body > .panel1,
  #content-body > .panel,
  #content-body > .card,
  #content-body > div.panel1,
  #content-body > div.panel{
    padding: 4px 4px;
    margin-bottom: 6px;
    border-radius: 8px;
  }

  /* Inputs un poquito más altos en móvil para toque */
  .form-control,
  .form-select,
  input[type="text"],
  input[type="number"],
  input[type="date"],
  select{
    height: 26px;
    padding: 2px 8px;
    font-size: 12px;
  }

  /* Menos separación entre filas de filtros */
  #content-body .row > div[class*="col-"]{
    margin-bottom: 2px;
  }

  /* Paginación: botones más chicos */
  .dataTables_wrapper .dataTables_paginate .paginate_button .page-link{
    padding: 2px 7px !important;
    margin-left: 3px !important;
    font-size: 12px;
  }
}

/* ========================================================================
 * Requested style adjustments (appended for highest precedence)
 * ======================================================================== */

.FrameSuperior {
  height: auto !important;
  min-height: 48px !important;
  border-bottom: 1px solid #e5e7eb !important;
  padding: 4px 4px 0px 4px !important;
}

.bar-dir {
  height: auto;
  position: relative;
  top: 0;
  background-color: #fff;
  width: 100%;
  text-align: left;
  color: #0f172a;
  text-decoration: none;
  font-size: 0.95rem !important;
  font-weight: 600;
  text-transform: uppercase !important;
  margin-top: 5px;
  padding: 4px 16px 2px 16px;
  border-bottom: 1px solid #e5e7eb;
}

.dataTables_wrapper table.dataTable tbody tr.odd td,
.dataTables_wrapper table.dataTable tbody tr.even td,
.dataTables_wrapper table.table tbody tr.odd td,
.dataTables_wrapper table.table tbody tr.even td {
  background-color: #fff !important;
}

/* Asegurar que la selección de fila (click) SI se vea incluso si las celdas fuerzan fondo blanco */
.dataTables_wrapper table.dataTable tbody tr.gs-row-selected td,
.dataTables_wrapper table.table tbody tr.gs-row-selected td{
  background-color: rgba(81, 107, 157, 0.18) !important;
}

.dataTables_wrapper table.dataTable tbody tr.gs-row-selected td:first-child,
.dataTables_wrapper table.table tbody tr.gs-row-selected td:first-child{
  box-shadow: inset 3px 0 0 rgba(81, 107, 157, 0.75) !important;
}

.dataTables_wrapper table.dataTable thead th, .dataTables_wrapper table.table thead th, .dataTables_wrapper table.dataTable th {
  color: #f6f6f6 !important;
  border-bottom: 0px solid var(--report-border) !important;
  font-weight: 700 !important;
  font-size: 13px !important;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  padding: 0px 10px !important;
  vertical-align: middle;
  background-color: #516b9d !important;
}



/* ===== GEO: overrides requested (datatable header, btn-filter media, filters-display) ===== */
@media only screen and (min-width: 975px) {
  .btn-filter {
    font-size: 20px;
    padding: 2px 10px;
    margin: 0px 0px 0px 0px !important;
  }
}
@media only screen and (max-width: 974px) {
  .btn-filter {
    font-size: 20px;
    padding: 2px 10px;
    margin: 0px 0px 0px 0px !important;
  }
}

/* ===== GEO: unify report filter toggle buttons (top/bottom) + compact lg buttons ===== */
/* Botones grandes (evitar altura excesiva) */
.btn-lg,
.btn-group-lg > .btn{
  line-height: 1.15 !important;
  margin-top: 0 !important;
}

/* En móvil existen 2 sets de botones (arriba y abajo). Ambos deben verse igual. */
.btn-filters-sup{
  height: 28px !important;
  background: var(--report-surface);
  border: 1px solid var(--report-border);
  border-radius: 0px !important;
  overflow: hidden;
  box-shadow: var(--report-shadow);
  display: inline-flex !important;
  align-items: center;
  gap: 0 !important;
}

.btn-filters-sup .btn,
.btn-filters-sup .btn-filter{
  height: 26px !important;
  min-width: 32px;
  padding: 0 8px !important;
  border-radius: 0 !important;
  margin: 0 !important;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.btn-filters-sup .btn + .btn,
.btn-filters-sup .btn-filter + .btn-filter{
  border-left: 1px solid var(--report-border) !important;
}

/* Evitar que el .btn-filter agregue margen y “deforme” el set superior */
.btn-filter{
  margin: 0 !important;
}

/* ===== GEO: Ajustes solicitados (btn-filter + filtros superiores) ===== */

/* Ajuste de tamaño/padding de icon-buttons */
@media only screen and (max-width: 974px) {
  .btn-filter{
    font-size: 16px !important;
    padding: 2px 10px !important;
    margin: 0px 0px 0px 0px !important;
    line-height: 1 !important;
  }

  /* Filtros superiores: visibles en móvil y alineados a la derecha */
  .btn-filters-sup{
    display: flex !important;
    justify-content: flex-end !important;
    align-items: center !important;
    width: 100%;
    margin-left: auto !important;
    margin-right: 0 !important;
  }
}

@media only screen and (min-width: 975px) {
  .btn-filter{
    font-size: 18px !important;
    padding: 2px 10px !important;
    margin: 0px 0px 0px 0px !important;
    line-height: 1 !important;
  }

  /* Filtros superiores: ocultos en versión web */
  .btn-filters-sup{
    display: none !important;
  }
}

/* Bootstrap btn-group: mantener separación solicitada (sin afectar los contenedores de icon-buttons) */
.btn-group{
  margin-top: 3px !important;
}

/* Garantizar que ambos grupos (superior e inferior) se vean iguales */
.filters-display,
.btn-filters-sup{
  height: 28px !important;
  background: var(--report-surface) !important;
  border: 1px solid var(--report-border) !important;
  border-radius: 0px !important;
  overflow: hidden !important;
  box-shadow: var(--report-shadow) !important;
}

.filters-display .btn,
.filters-display .btn-filter,
.btn-filters-sup .btn,
.btn-filters-sup .btn-filter{
  height: 28px !important;
  min-width: 32px;
  padding: 0 10px !important;
  border-radius: 0 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  margin: 0 !important;
}

/* Separador interno entre botones (ambos grupos) */
.filters-display .btn + .btn,
.filters-display .btn-filter + .btn-filter,
.btn-filters-sup .btn + .btn,
.btn-filters-sup .btn-filter + .btn-filter{
  border-left: 1px solid var(--report-border) !important;
}

/* Evitar que el margen global de .btn-group empuje los icon-buttons */
.filters-display .btn-group,
.btn-filters-sup .btn-group{
  margin-top: 0 !important;
  height: 28px !important;
}

/* =========================================================
   Reportes - Ajustes Mobile
   - Botones de filtros (superior/inferior): alineación derecha
   - Evitar solape con la sección inferior (MOSTRAR / paginación)
   ========================================================= */
@media only screen and (max-width: 974px) {
  /* Habilitar posicionamiento dentro del contenedor de filtros */
  .filters{
    position: relative !important;
  }

  /* Botones superiores (mostrar/ocultar filtros): fijar arriba a la derecha */
  .filters .btn-filters-sup{
    position: absolute !important;
    top: 6px !important;
    right: 6px !important;
    left: auto !important;
    width: auto !important;
    margin: 0 !important;
    z-index: 4 !important;
  }

  /* Reservar espacio para que no se monten sobre el primer control */
  .filters{
    padding-top: 0px !important;
  }

  /* Botones inferiores: mantenerlos en flujo normal y alinearlos a la derecha
     (evita que se superpongan con MOSTRAR/REGISTROS POR PÁGINA). */
  .filters-display{
    position: static !important;
    right: auto !important;
    left: auto !important;
    top: auto !important;
    width: 100% !important;
    display: flex !important;
    justify-content: flex-end !important;
    margin: 6px 0 !important;
    clear: both !important;
  }

  /* El margen global de .btn-group puede empujar los icon-buttons: neutralizar */
  .filters-display .btn-group,
  .btn-filters-sup .btn-group{
    margin-top: 0 !important;
  }
}

/* =========================================================
   Login (MIND-style)
   Rediseño responsive, similar al mock “home MIND.png”
   ========================================================= */
.gs-login-wrapper{
  min-height: calc(100vh - 2px);
  display: flex;
  align-items: stretch;
  margin: -1px;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}

.gs-login-grid{
  flex: 1;
  display: grid;
  grid-template-columns: 1fr 1fr;
}

.gs-login-left{
  background: linear-gradient(180deg, #dbeafe 0%, #bfdbfe 100%);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 28px 18px;
}

.gs-login-brand{
  text-align: center;
  margin-bottom: 18px;
}

.gs-login-badge{
  width: 56px;
  height: 56px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(59, 130, 246, 0.18);
  color: #1d4ed8;
  font-size: 34px;
  margin-bottom: 10px;
}

.gs-login-logo{
  display: inline-flex;
  align-items: baseline;
  gap: 10px;
}

.gs-login-logo .gs-login-mind{
  font-weight: 800;
  letter-spacing: 0.18em;
  color: #1e3a8a;
  font-size: 22px;
}

.gs-login-logo .gs-login-by{
  color: #334155;
  font-size: 12px;
}

.gs-login-logo .gs-login-vida{
  font-weight: 700;
  color: #0f172a;
  font-size: 20px;
}

.gs-login-card{
  width: 100%;
  max-width: 420px;
  background: #ffffff;
  border: 1px solid rgba(15, 23, 42, 0.08);
  border-radius: 14px;
  box-shadow: 0 16px 34px rgba(15, 23, 42, 0.10);
  padding: 18px 18px 14px 18px;
}

.gs-login-instance{
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 10px;
}

.gs-login-instance img{
  max-height: 46px;
  width: auto;
}

.gs-login-form .form-group{
  margin-bottom: 12px;
}

.gs-login-form label{
  font-size: 12px;
  font-weight: 700;
  color: #0f172a;
  margin-bottom: 6px;
}

.gs-login-input{
  position: relative;
}

.gs-login-input .form-control{
  height: 38px;
  padding: 8px 38px 8px 12px;
  border-radius: 10px;
  border: 1px solid rgba(15, 23, 42, 0.18);
  box-shadow: none;
  font-size: 13px;
}

.gs-login-input .form-control:focus{
  border-color: rgba(59, 130, 246, 0.65);
  box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.16);
}

.gs-login-input .gs-login-icon{
  position: absolute;
  right: 10px;
  top: 50%;
  transform: translateY(-50%);
  color: #2563eb;
  font-size: 16px;
  pointer-events: none;
}

.gs-login-actions{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin: 10px 0 12px 0;
}

.gs-login-actions .form-check{
  margin: 0;
}

.gs-login-actions .form-check-label{
  font-size: 12px;
  color: #0f172a;
}

.gs-login-link{
  font-size: 12px;
  text-decoration: none;
}

.gs-login-link:hover{
  text-decoration: underline;
}

.gs-login-submit{
  width: 100%;
  border-radius: 10px;
  height: 40px;
  font-weight: 700;
}

.gs-login-footer{
  margin-top: 14px;
  font-size: 12px;
  color: rgba(15, 23, 42, 0.72);
}

.gs-login-right{
  position: relative;
  color: #ffffff;
  background: linear-gradient(135deg, #0b3b68 0%, #071a33 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 34px;
  overflow: hidden;
}

.gs-login-right::before{
  content: "";
  position: absolute;
  inset: 0;
  background-image: var(--gs-login-hero-bg);
  background-size: cover;
  background-position: center;
  opacity: 0.18;
}

.gs-login-hero{
  position: relative;
  z-index: 1;
  max-width: 520px;
}

.gs-login-hero h2{
  font-weight: 800;
  line-height: 1.1;
  margin: 0 0 14px 0;
}

.gs-login-hero p{
  margin: 0 0 16px 0;
  opacity: 0.92;
  line-height: 1.4;
}

.gs-login-hero ul{
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 8px;
}

.gs-login-hero li{
  display: flex;
  gap: 10px;
  align-items: flex-start;
  line-height: 1.35;
}

.gs-login-hero li i{
  color: #22c55e;
  margin-top: 2px;
}

@media (max-width: 992px){
  .gs-login-grid{ grid-template-columns: 1fr; }
  .gs-login-right{ display: none; }
  .gs-login-left{ padding: 22px 14px; }
}

@media (max-width: 420px){
  .gs-login-card{ padding: 16px 14px 12px 14px; border-radius: 12px; }
  .gs-login-badge{ width: 52px; height: 52px; font-size: 32px; }
}

/* ===============================
   PATCH v33 (Geosales)
   - Evitar solape de botones de filtros en móviles
   - Alinear botones superiores a la derecha (solo móvil)
   - Unificar estilos de botones superior/inferior
   =============================== */

/* Contenedor de botones + filtros en el encabezado de los reportes */
#filtros_reg{
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}

/* Grupo inferior (junto a Buscar/Acciones) */
#filtros_reg .filters-display{
  margin-left: auto;
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  flex: 0 0 auto;
}

/* Para que no invada/solape secciones inferiores */
#filtros_reg .filters-display{ max-width: 100%; }
#filtros_reg .filters-display .btn-group{ flex-wrap: nowrap; }

@media (max-width: 974px){
  #filtros_reg{ align-items: flex-start; }
  #filtros_reg .filters-display{ margin-left: auto; }
}

/* Botones superiores (dentro del panel de filtros): ocultar en web y alinear a la derecha en móvil */
@media (min-width: 975px){
  .filters .btn-filters-sup{ display: none !important; }
}

@media (max-width: 974px){
  .filters{ position: relative; }
  .filters .btn-filters-sup{
    display: flex !important;
    justify-content: flex-end;
    align-items: center;
    width: 100%;
    margin: 0 0 8px 0;
    position: static !important; /* evitar solapes por posicionamiento absoluto */
    height: auto !important;
    z-index: 2;
  }
}

/* Unificar visual entre botones superiores e inferiores */
.filters-display,
.filters .btn-filters-sup .btn-group{
  height: 28px !important;
  background: var(--report-surface);
  border: 1px solid var(--report-border);
  border-radius: 0px;
  overflow: hidden;
  box-shadow: var(--report-shadow);
}

.filters .btn-filters-sup .btn-group .btn,
.filters-display .btn{
  height: 24px !important;
  min-width: 38px;
  padding: 0 10px !important;
  border-radius: 0 !important;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

/* Evitar que los botones queden "aplastados" o suban/bajen por márgenes heredados */
.btn-group{ margin-top: 3px; }

/* --- DataTables scrollX/scrollY: evitar que el THEAD oculto del body genere “banda” y descuadre visual ---
   Importante: NO se tocan anchos (width) para no romper el cálculo de DataTables. */
.dataTables_wrapper div.dataTables_scrollBody thead{
  visibility: hidden;
}
.dataTables_wrapper div.dataTables_scrollBody thead th,
.dataTables_wrapper div.dataTables_scrollBody thead td{
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  height: 0 !important;
  line-height: 0 !important;
  border: 0 !important;
}
