* {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
}

@font-face {
	font-family: 'Calama';
	src: url('font/calama.ttf');
}

@font-face {
	font-family: 'Nexa';
	src: url('font/nexa_book.otf');
}

@font-face {
	font-family: 'Fira';
	src: url('font/firacode.ttf');
}

body {
	font-family: 'Nexa';
	background-color: white;
	display: flex;
	flex-direction: column;
	height: 100vh;
	height: 100dvh;
	overflow: hidden;
	margin: 0 !important;
	padding: 0 !important;
}

html {
	height: 100%;
	width: 100%;
	overflow: hidden;
}

.pointer {
	cursor: pointer;
}

.fondoGris {
	background-color: #e9e9e9 !important;
}

.selector {
	height: 40px;
	background-image: url('images/flechas_select.svg');
	background-position: calc(100% - .5rem), 100% 0;
	background-repeat: no-repeat;
}

.entrada {
	height: 40px;
	padding: 0px 10px;
	color: black;
	border: 1px solid #cccccc;
	border-radius: 3px;
	font-size: 14px;
	vertical-align: middle;
	background-color: white;
	appearance: none;
	-moz-appearance: none;
	-webkit-appearance: none;
	/* Critical Fix for Mobile Safari/Chrome */
	-webkit-appearance: none;
}

.entrada:hover {
	border: 2px solid #5dbdaa;
}

.entrada:focus {
	border: 2px solid #5dbdaa;
}

.areaTexto {
	height: 200px;
	resize: none;
}

.areaTextoTabla {
	width: 300px;
	height: 30px;
	min-height: 30px;
	max-height: 100px;
	padding: 3px 10px;
	resize: none;
	box-sizing: border-box;
	overflow-y: hidden;
	transition: height 0.1s ease;
}

.tituloApp {
	margin: 0;
	margin-left: auto;
	margin-right: 20px;
	align-self: center;
	position: relative;
	top: 5px;
	font-family: 'Calama';
	font-size: 48px;
	line-height: 1;
	color: white;
}

/*----------------------------------------------------------------------------------------------------------------------------------//
//  LOGIN
//----------------------------------------------------------------------------------------------------------------------------------*/

#ventanaLogin {
	display: flex;
	flex-direction: column;
	min-height: 100vh;
	align-items: center;
	justify-content: center;
	background-image: url('images/login_fondo.png');
	background-size: cover;
	font-family: 'Nexa';
	padding: 20px;
}

#logoAnim {
	max-width: 80%;
	height: auto;
}

#textoLogin {
	margin-top: 40px;
	font-size: 14px;
	text-decoration: none;
	color: white;
}

#idenUser {
	margin: 20px 0px;
	max-width: 100%;
}

#password {
	max-width: 100%;
	padding-right: 40px;
	width: calc(100% - 30px);
}

.password-wrapper {
	position: relative;
	display: flex;
	justify-content: center;
	max-width: 100%;
}

.password-icon {
	position: absolute;
	right: 25px;
	top: 50%;
	transform: translateY(-50%);
	width: 20px;
	height: 20px;
	cursor: pointer;
	z-index: 2;
	opacity: 0.5;
}

.password-icon:hover {
	opacity: 1;
}

#btnEntrar {
	margin: 20px 0px;
	cursor: pointer;
}

#avisoNavegador {
	width: 80vmin;
	margin: 50px auto 0px auto;
	font-size: calc(6px + 1vmin);
	text-align: center;
	text-decoration: none;
	color: #DE9D2A;
}

#recuperar {
	font-size: 14px;
	text-decoration: none;
	color: white;
	cursor: pointer;
}

#recuperar:hover {
	text-decoration: underline;
}

#avisoNavegador {
	font-size: 18px;
	text-decoration: none;
	color: #DE9D2A;
}

#bas.ventanaFondo {
	display: block;
	/* Make overlay visible when modal opens */
	position: fixed;
	width: 100%;
	height: 100%;
	top: 0px;
	left: 0px;
	background-color: rgba(0, 0, 0, 0.5);
	z-index: 19;
	transition: opacity 0.3s ease;
}

#basesFondo {
	display: none;
	position: fixed;
	width: 100%;
	height: 100%;
	top: 0;
	left: 0;
	background-color: #9598ad;
	opacity: 0;
	transition: opacity 0.3s ease;
	z-index: 19;
}

#basesDatos {
	display: none;
	flex-direction: column;
	position: fixed;
	width: 95%;
	height: 100%;
	max-width: 1000px;
	max-height: 700px;
	top: 50%;
	left: 50%;
	background-color: white;
	transform: translate(-50%, -50%);
	box-shadow: 5px 5px 5px #9598ad;
	border: 1px solid #9598ad;
	overflow: hidden;
	z-index: 20;
}

#basesHeader {
	position: relative;
	display: flex;
	justify-content: center;
	width: 100%;
	min-height: 60px;
	margin-bottom: 0;
	flex-shrink: 0;
	box-sizing: border-box;
}

#basesBtnCerrar {
	position: absolute;
	top: 20px;
	right: 20px;
	cursor: pointer;
	margin: 0;
	z-index: 2;
}

#basesTitulo {
	max-width: calc(100% - 240px);
	text-align: center;
	margin: 35px auto 20px auto;
	padding: 0 10px;
	font-size: 22px;
	color: #4a4d62;
	font-weight: bold;
}

#basesFooter {
	display: flex;
	justify-content: center;
	gap: 100px;
	padding: 20px;
	flex-shrink: 0;
	flex-wrap: wrap;
}

#btnAceptar {
	display: block;
	cursor: pointer;
}

#btnAceptar:hover {
	-ms-transform: scale(1.05);
	-webkit-transform: scale(1.05);
	transform: scale(1.05);
}

/*----------------------------------------------------------------------------------------------------------------------------------//
//  SECCION CABECERA
//----------------------------------------------------------------------------------------------------------------------------------*/

.seccionCabecera {
	display: flex;
	width: 100%;
	height: 60px;
	flex-shrink: 0;
	/* Prevent collapse */
	top: 0;
	background-color: #4a4d62;
	align-items: center;
	position: sticky;
	z-index: 4;
}

.logo {
	position: absolute;
	left: 50%;
	transform: translateX(-50%);
}

/*----------------------------------------------------------------------------------------------------------------------------------//
//  SECCION BOTONES
//----------------------------------------------------------------------------------------------------------------------------------*/

.seccionBotones {
	display: flex;
	flex-wrap: wrap;
	width: 100%;
	height: auto;
	min-height: 70px;
	flex-shrink: 0;
	top: 60px;
	padding: 10px 0;
	gap: 10px;
	justify-content: center;
	align-items: center;
	background-color: #9598ad;
	position: sticky;
	z-index: 3;
	overflow: hidden;
}

.btnNavegacion {
	margin: 0px 0px;
	padding: 0px 5px;
	cursor: pointer;
}

.btnNavegacion:hover {
	-ms-transform: scale(1.05);
	-webkit-transform: scale(1.05);
	transform: scale(1.05);
}

/*----------------------------------------------------------------------------------------------------------------------------------//
//  SECCION NUEVO
//----------------------------------------------------------------------------------------------------------------------------------*/

.seccionNuevo {
	display: flex;
	width: 100%;
	height: 80px;
	min-height: 80px;
	flex-shrink: 0;
	top: 130px;
	padding: 0px 0;
	justify-content: center;
	align-items: center;
	background-color: #9598ad;
	position: sticky;
	z-index: 2;
	overflow: hidden;
}

.barraNuevo {
	position: relative;
	display: flex;
	flex-wrap: wrap;
	width: 96%;
	max-width: 1200px;
	justify-content: space-between;
	align-items: center;
	background-color: #f2f2f2;
	padding: 0 20px;
	/* Removed vertical padding */
	gap: 15px;
	height: 100%;
}

#selectorActividad {
	flex: 0 0 auto;
	width: 300px;
	max-width: 300px;
	order: 1;
}



.btnNuevo {
	position: absolute;
	left: 50%;
	transform: translateX(-50%);
	height: 40px !important;
	width: auto !important;
	cursor: pointer;
}

.btnNuevo:hover {
	height: 42px !important;
}

.grupoInformes {
	display: flex;
	gap: 5px;
	order: 3;
	margin-left: auto;
}

.btnInformes {
	padding: 10px 0px;
	cursor: pointer;
	cursor: pointer;
}

/*----------------------------------------------------------------------------------------------------------------------------------//
//  SECCION BUSQUEDA
//----------------------------------------------------------------------------------------------------------------------------------*/

.seccionBusqueda {
	display: flex;
	flex-direction: row;
	width: 100%;
	height: 70px;
	min-height: 70px;
	flex-shrink: 0;
	top: 210px;
	padding: 0px 0;
	justify-content: center;
	align-items: center;
	background-color: #9598ad;
	position: sticky;
	z-index: 1;
	overflow: hidden;
}

.barraBusqueda {
	position: relative;
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	/* Prevent wrapping */
	width: 96%;
	max-width: 1200px;
	height: 100%;
	justify-content: center;
	align-items: center;
	background-color: white;
	gap: 15px;
	/* Consistent spacing */
	padding: 10px 20px;
	/* Match barraNuevo padding */
	flex-wrap: nowrap !important;
	/* FORCE SINGLE LINE */
	overflow: hidden;
}

/* Standard Height inherit from .entrada (40px) - Override Removed */

/* Hide others by default */
#selectorBusqueda,
#textoBusquedaB,
#textoBusquedaC {
	display: none;
}

/* Layout Constraints Only - Styles inherit from .entrada/.selector */
.selCriterio {
	width: 150px;
	min-width: 150px;
	max-width: 150px;
	flex: 0 0 150px;
	margin: 0 !important;
}

.filtroBusquedaA {
	width: auto;
	max-width: 300px;
	/* STRICT MAX CAP */
	flex: 1 1 auto;
	/* Grow freely up to max-width */
	min-width: 0;
	/* Allow infinite shrinking */
	padding-left: 5px !important;
	margin: 0 !important;
}

.filtroBusquedaB {
	width: auto;
	/* Fluid */
	max-width: 140px;
	/* Cap size */
	flex: 1 1 auto;
	/* Allow shrinking/growing */
	min-width: 0;
	/* Prevent wrap on mobile */
	margin: 0 !important;
}

.selBusqueda {
	width: auto;
	max-width: 300px;
	margin: 0;
	flex: 1 1 auto;
	/* Match behavior of text input */
	min-width: 0;
	/* Allow shrinking */
}

/*----------------------------------------------------------------------------------------------------------------------------------//
//  SECCION TABLA PRINCIPAL
//----------------------------------------------------------------------------------------------------------------------------------*/

.seccionTabla {
	display: flex;
	/* Added to center barraTabla */
	justify-content: center;
	/* Center content */
	flex: 1;
	min-height: 0;
	width: 100%;
	background-color: white;
	/* White lateral borders */
	overflow-y: auto;
	/* Scroll en la tabla */
	scrollbar-width: none;
	/* Firefox: hide scrollbar */
	-ms-overflow-style: none;
	/* IE/Edge: hide scrollbar */
}

/* Hide scrollbar for Chrome, Safari and Opera */
.seccionTabla::-webkit-scrollbar {
	display: none;
}

.barraTabla {
	width: 96%;
	max-width: 1200px;
	background-color: white;
	overflow-x: auto;
	/* Allow horizontal scroll */
	scrollbar-width: none;
	/* Firefox: hide scrollbar */
	-ms-overflow-style: none;
	/* IE/Edge: hide scrollbar */
}

/* Hide scrollbar for Chrome, Safari and Opera */
.barraTabla::-webkit-scrollbar {
	display: none;
}

.tablaPrincipal {
	width: 100%;
	border-collapse: collapse;
	background-color: white;
	font-family: 'Fira';
	overflow-x: auto;
	/* Allow horizontal scroll */
	scrollbar-width: none;
	/* Firefox: hide scrollbar */
	-ms-overflow-style: none;
	/* IE/Edge: hide scrollbar */
}

/* Hide scrollbar for Chrome, Safari and Opera */
.tablaPrincipal::-webkit-scrollbar {
	display: none;
}

.tablaPrincipal tr {
	cursor: pointer;
	height: 40px;
	/* Fixed height */
}

.tablaPrincipal th {
	top: 0;
	padding: 8px 10px;
	text-align: left;
	border: none !important;
	font-size: 12px;
	text-decoration: underline;
	background-color: white;
	position: sticky;
	cursor: pointer;
	white-space: nowrap;
}

.tablaPrincipal td {
	padding: 8px 10px;
	text-align: left;
	border: none !important;
	font-size: 14px;
	min-height: 40px;
	/* Minimum cell height, can grow but not shrink */
}

.tablaPrincipal tr:nth-child(even) {
	background-color: white;
}

.tablaPrincipal tr:nth-child(odd) {
	background-color: #f2f2f2;
}

.tablaPrincipal tr:hover {
	background-color: #d1e7dd !important;
	transition: background-color 0.3s;
}

.tablaPrincipal th:hover {
	color: #de9d2a !important;
	transition: color 0.3s;
}

/*----------------------------------------------------------------------------------------------------------------------------------//
//  SECCION PAGINACION
//----------------------------------------------------------------------------------------------------------------------------------*/

.seccionPagina {
	width: 100%;
	height: 60px;
	margin-top: auto;
	bottom: 0;
	padding: 10px 0;
	background-color: white;
	flex-shrink: 0;
	position: sticky;
}

.barraPagina {
	display: grid;
	grid-template-columns: 1fr 80px 1fr;
	max-width: 1200px;
	margin: 0 auto;
	gap: 15px;
	/* Lateral padding */
	justify-content: center;
	align-items: center;
}

.btnPagina {
	cursor: pointer;
}

#btnPaginaAnterior {
	grid-column: 1;
	justify-self: end;
}

#btnPaginaSiguiente {
	grid-column: 3;
	justify-self: start;
}

.selPagina {
	width: 80px !important;
	/* Force 80px */
	height: 40px;
	grid-column: 2;
	/* Always center */
	justify-self: center;
	margin: 0;
}

/*----------------------------------------------------------------------------------------------------------------------------------//
//  MENU PRINCIPAL
//----------------------------------------------------------------------------------------------------------------------------------*/

.menuFondo {
	position: fixed;
	display: none;
	width: 100%;
	height: 100%;
	top: 0;
	left: 0;
	background-color: #9598ad;
	opacity: 0;
	transition: opacity 0.3s ease;
	z-index: 19;
}

.menu {
	position: fixed;
	top: 0;
	left: -240px;
	width: 240px;
	height: 100%;
	background-color: white;
	z-index: 20;
	transition: transform 0.3s ease;
	transform: translateX(0);
}

.menu.abrir {
	transform: translateX(240px);
}

.menuHeader {
	height: 60px;
	width: 100%;
	background-color: #4a4d62;
	display: flex;
	align-items: center;
	justify-content: flex-start;
	position: relative;
}

.menuLogo {
	text-align: center;
	margin-top: 20px;
}

.menuImagen {
	width: 120px;
	height: 60px;
	object-fit: contain;
	cursor: pointer;
}

.menuNombre {
	text-align: center;
	margin-top: 20px;
	font-size: 14px;
	color: #4a4d62;
	cursor: pointer;
}

.menuGad {
	text-align: center;
	margin-top: 15px;
	font-size: 14px;
	color: #5dbdaa;
	cursor: pointer;
}

.menuLinea {
	text-align: center;
	margin: 10px 0;
}

.menuLinea img {
	width: 200px;
	height: 1px;
}

.menuSecciones p {
	margin: 5px 20px;
	text-align: left;
	font-size: 14px;
	color: #4a4d62;
	cursor: pointer;
}

.menuFila {
	display: flex;
	align-items: center;
	margin-left: 20px;
	gap: 0px;
}

.menuFila>*:not(:last-child) {
	margin-right: -10px;
}

.menuActivo {
	color: #de9d2a !important;
	font-weight: bold;
}

.menuSecciones p:hover {
	text-decoration: underline;
}

#linkConceptos {
	padding-left: 40px;
}

.ventanaExterna {
	width: 100%;
	margin: 0 20px;
}

.ventanaExterna h1 {
	font-size: 16px;
	font-weight: bold;
	text-align: justify;
}

.ventanaExterna h2 {
	font-size: 14px;
	text-align: justify;
	margin-bottom: 30px;
}

.texto,
.ventanaExterna p {
	text-align: justify;
}

/*----------------------------------------------------------------------------------------------------------------------------------//
//  VENTANAS
//----------------------------------------------------------------------------------------------------------------------------------*/

.ventanaFondo {
	position: fixed;
	display: none;
	width: 100%;
	height: 100%;
	top: 0;
	left: 0;
	background-color: #9598ad;
	opacity: 0;
	transition: opacity 0.3s ease;
	z-index: 19;
}

.ventana {
	display: none;
	flex-direction: column;
	position: fixed;
	width: 95%;
	/* Progressive width sizing */
	height: 100%;
	max-width: 1000px;
	max-height: 700px;
	/* User correction */
	top: 50%;
	left: 50%;
	padding: 0;
	/* Remove parent padding for strict absolute positioning of children */
	background-color: white;
	transform: translate(-50%, -50%);
	box-sizing: border-box;
	/* Prevent padding from adding width */
	overflow-y: hidden;
	/* Header/Footer fixed, content scrolls */
	overflow-x: hidden;
	/* Prevent horizontal scroll */
	z-index: 20;
}

/* VENTANA HEADER */
.ventanaHeader {
	position: relative;
	display: flex;
	justify-content: center;
	/* Center Title */
	width: 100%;
	min-height: 60px;
	/* Minimum height for buttons */
	margin-bottom: 0;
	flex-shrink: 0;
	box-sizing: border-box;
}

.ventanaBtnInformes {
	position: absolute;
	top: 20px;
	left: 20px;
	cursor: pointer;
	margin: 0;
	z-index: 3;
	/* Ensure above title */
}



.ventanaBtnCerrar {
	position: absolute;
	top: 20px;
	right: 20px;
	cursor: pointer;
	margin: 0;
	z-index: 2;
}

.ventanaTitulo {
	max-width: calc(100% - 240px) !important;
	/* Reserve 120px each side (100px button + 20px padding) */
	text-align: center !important;
	margin: 35px auto 20px auto !important;
	/* Reduced top margin for tighter spacing */
	padding: 0 10px !important;
	/* Small padding to prevent text touching edges */
	font-size: 22px !important;
	color: #4a4d62 !important;
	font-weight: bold !important;
	line-height: 1.2 !important;
	word-wrap: break-word !important;
	/* Allow text to wrap */
	overflow-wrap: break-word !important;
	/* Modern browsers */
	z-index: 1 !important;
	/* Below buttons */
	display: block !important;
	/* Ensure block-level */
	width: auto !important;
	/* Let max-width control, not width */
}


#ventanaLinea {
	position: relative;
	width: 80%;
	height: 2px;
	min-height: 2px;
	max-width: 600px;
	margin: 20px auto 60px auto;
	background-color: #4a4d62;
}

/* VENTANA BOTONES */
#ventanaBotones {
	position: absolute;
	/* Absolute within #ventanaLinea */
	top: 50%;
	/* Center at line */
	left: 50%;
	/* Center horizontally */
	transform: translate(-50%, calc(-50% + 15px));
	/* Center and shift down 15px for icon box alignment */
	display: flex;
	justify-content: center;
	align-items: center;
	/* Center alignment */
	flex-wrap: nowrap !important;
	/* Force single row - never wrap */
	gap: 10px;
	max-width: 100%;
	/* Don't exceed container */
	overflow: visible;
	/* Allow buttons to be visible */
}

.ventanaBtn {
	display: none;
	cursor: pointer;
	height: auto;
	/* Maintain aspect ratio */
	flex-shrink: 1;
	/* Shrink when space is limited */
	flex-grow: 0;
	/* Don't grow */
	flex-basis: auto;
	/* Use natural size */
	min-width: 0;
	/* Allow shrinking below natural size if needed */
}

.ventanaBtn:hover {
	-ms-transform: scale(1.05);
	-webkit-transform: scale(1.05);
	transform: scale(1.05);
}

.ventanaBtn.visible {
	display: block;
}

#ventanaBtnFila {
	display: none;
	position: absolute;
	right: 0px;
	top: 100%;
	margin-top: 35px;
	cursor: pointer;
	z-index: 1000;
}

#ventanaBtnVerInformes,
#btnGuardar,
#btnEliminar {
	display: none;
}

#ventanaBtnFila:hover {
	-ms-transform: scale(1.05);
	-webkit-transform: scale(1.05);
	transform: scale(1.05);
	transform-origin: right center;
}

#ventanaBtnFila.visible {
	display: block;
}

/* VENTANA SECCION */
#ventanaSeccion {
	display: flex;
	flex-direction: column;
	flex-grow: 1;
	overflow: hidden;
}

.barraTablaVentana.visible {
	display: block;
	font-family: 'Fira';
	overflow-y: auto;
	scrollbar-width: none;
	/* Firefox */
	-ms-overflow-style: none;
	/* IE/Edge */
}

.barraTablaVentana.visible::-webkit-scrollbar {
	display: none;
	/* Chrome/Safari */
}

/* CONTENIDO DE VENTANA */
.ventanaContenido {
	display: none;
	flex-wrap: wrap;
	justify-content: center;
	flex-grow: 1;
	/* Fills remaining space */
	height: auto;
	/* Allow sizing by flex */
	width: 100%;
	/* Ensure full width usage */
	max-width: 1000px;
	margin: 0 auto;
	/* Centered */
	padding: 20px 0;
	/* User requirement enforced */
	overflow-y: auto;
	scrollbar-width: none;
	/* Firefox */
	-ms-overflow-style: none;
	/* IE/Edge */
	/* Scroll ONLY content */
	box-sizing: border-box;
	/* Ensure padding doesn't affect width */
}

.ventanaContenido::-webkit-scrollbar {
	display: none;
	/* Chrome/Safari */
}

.ventanaContenido.visible {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: flex-start;
	align-content: flex-start;
}

.ventanaVista {
	display: flex;
	flex-direction: column;
	width: 280px;
	margin: 0px 15px;
}

.ventanaVista.oculto {
	display: none !important;
}

.ventanaVistaCantidad {
	display: flex;
	flex-direction: column;
	width: 280px;
	margin: 0px 15px;
}

#ventanaDeclaracionA,
#ventanaFrecuentesA {
	padding-right: 15px;
}

.ventanaVistaAdjuntos {
	display: flex;
	flex-direction: column;
	width: 500px;
	margin: 0px 15px;
}

.ventanaDatosDoble {
	display: flex;
	flex-direction: row;
	justify-content: center;
}

.ventanaDescCentro {
	width: 260px;
	margin: 10px auto 0px auto;
	font-size: 12px;
	text-align: center;
	color: black;
}

.ventanaDescA {
	/* 1/1 */
	width: 260px;
	margin: 10px auto 0px auto;
	font-size: 12px;
	text-align: left;
	color: black;
}

.ventanaDescB {
	/* 1/2 */
	width: 120px;
	margin: 10px auto 0px auto;
	font-size: 12px;
	text-align: left;
	color: black;
}

.ventanaDescC {
	/* 1/3 */
	width: 80px;
	margin: 10px auto 0px auto;
	font-size: 12px;
	text-align: left;
	color: black;
}

.ventanaDescD {
	/* 2/3 */
	width: 160px;
	margin: 10px auto 0px auto;
	font-size: 12px;
	text-align: left;
	color: black;
}

.ventanaDescCantidad {
	/* DESCRIPCION CANTIDADES */
	width: 120px;
	margin: 10px auto 0px auto;
	font-size: 12px;
	text-align: right;
	color: black;
}

.ventanaDatoA {
	/* 1/1 */
	width: 260px;
	margin: 0px auto;
}

.ventanaDatoB {
	/* 1/2 */
	width: 120px;
	margin: 0px auto;
}

.ventanaDatoC {
	/* 1/3 */
	width: 80px;
	margin: 0px auto;
}

.ventanaDatoD {
	/* 2/3 */
	width: 160px;
	margin: 0px auto;
}

.ventanaDatoCantidad {
	/* DATO CANTIDADES */
	width: 120px;
	margin: 0px auto;
	text-align: right;
}

.ventanaDatoTablaA {
	/* ITEM TABLA CONCEPTO */
	width: 100%;
	height: 30px !important;
	max-width: 780px;
	min-width: 200px;
	margin: 0px auto;
}

.ventanaDatoTablaB {
	/* ITEM TABLA PRECIO/UNIDADES */
	width: 80px;
	height: 30px !important;
	margin: 0px auto;
	text-align: right;
}

.ventanaDatoTablaC {
	/* ITEM TABLA PRECIO/UNIDADES MAS GRANDE */
	width: 120px;
	height: 30px !important;
	margin: 0px auto;
	text-align: right;
}

.ventanaDatoTablaD {
	/* ITEM TABLA FECHA */
	width: 120px;
	height: 30px !important;
	margin: 0px auto;
}

.ventanaCheckGrupo {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-top: 10px;
}

.ventanaCheck {
	width: 16px;
	height: 16px;
	margin-left: 10px;
	border: 1px solid #4a4d62;
	cursor: pointer;
}

.ventanaCheckTxt {
	margin-top: 10px;
	font-size: 16px;
	color: black;
	text-align: left;
	cursor: pointer;
}

.ventanaVistaBotones {
	display: flex;
	flex-direction: row;
	justify-content: space-between;
	align-items: center;
	margin: 30px 10px 0px 10px;
}

/* TABLA DE VENTANA */
.barraTablaVentana {
	display: none;
	height: 100%;
	max-width: 1000px;
	margin: 0px 20px;
	overflow-y: auto;
}

.tablaVentana {
	width: 100%;
	border-collapse: collapse;
	background-color: white;
}

.tablaVentana th {
	top: 0;
	padding: 8px 10px;
	text-align: left;
	border: none !important;
	font-size: 12px;
	text-decoration: underline;
	background-color: white;
	position: sticky;
	cursor: pointer;
}

.tablaVentana td {
	padding: 8px 10px;
	text-align: left;
	border: none !important;
	font-size: 14px;
}

.tablaVentana tr {
	cursor: pointer;
}

.tablaVentana tr:nth-child(even) {
	background-color: white;
}

.tablaVentana tr:nth-child(odd) {
	background-color: #f2f2f2;
}

.estiloTd40 {
	width: 40px;
	align-items: center !important;
	text-align: center !important;
}

.estiloTd50c {
	width: 50px;
	min-width: 50px;
	max-width: 50px;
	text-align: center !important;
}

.estiloTd50c input[type='checkbox'] {
	width: 18px;
	height: 18px;
	vertical-align: middle;
	accent-color: #4a4d62;
	cursor: pointer;
}

.estiloTd100c {
	width: 100px;
	min-width: 100px;
	max-width: 100px;
	text-align: center !important;
}

.estiloTd100c input[type='checkbox'] {
	width: 18px;
	height: 18px;
	vertical-align: middle;
	accent-color: #4a4d62;
	cursor: pointer;
}

.estiloTd140c {
	width: 140px;
	min-width: 140px;
	max-width: 140px;
	text-align: center !important;
}

.estiloTd140c input[type='checkbox'] {
	width: 18px;
	height: 18px;
	vertical-align: middle;
	accent-color: #4a4d62;
	cursor: pointer;
}

.estiloTd110d {
	width: 110px;
	min-width: 110px;
	text-align: right !important;
}

.estiloTd110i {
	width: 110px;
	min-width: 110px;
	text-align: left !important;
}

.estiloTd120d {
	width: 120px;
	max-width: 120px;
	min-width: 100px;
	text-align: right !important;
}

.estiloTd120i {
	width: 120px;
	min-width: 100px;
	text-align: left !important;
}

.btnAnadir {
	margin-left: -5px;
	margin-right: -5px;
}

.btnQuitar {
	margin-left: -5px;
	margin-right: -5px;
}

/* CUSTOM COLUMNS FOR TABLES */
.estiloColumnaCuentaNu {
	width: 280px;
	min-width: 280px;
	max-width: 280px;
}

.estiloColumnaConcepto {
	width: auto;
	min-width: 200px;
	/* Expands to fill space */
}

.estiloColumnaConcepto textarea {
	width: 100% !important;
	/* Fill the cell */
	box-sizing: border-box;
}

.estiloColumnaAccion {
	width: 60px;
	min-width: 60px;
	max-width: 60px;
	text-align: center !important;
}

/* VENTANA AMORTIZAR */
.estiloColumnaImpuesto {
	width: 100px;
	min-width: 100px;
	max-width: 100px;
}

.estiloColumnaImpuesto select {
	width: 100% !important;
}

.estiloColumnaNumero {
	width: 100px;
	min-width: 100px;
	max-width: 100px;
	text-align: right !important;
}

.estiloColumnaNumero input {
	width: 100% !important;
	text-align: right;
}

#ventanaAmortizar {
	display: none;
	flex-direction: row;
	flex-wrap: wrap;
	justify-content: center;
	align-items: flex-start;
	width: 80%;
	gap: 15px;
	margin: 10px auto;
}

#ventanaAmortizar.visible {
	display: flex;
}

#adquisicionesEjercici {
	width: 100px !important;
}

#adquisicionesPeriodos {
	width: 200px !important;
}

#ventanaAmortizar input,
#ventanaAmortizar select,
#adquisicionesBtnAmortizar {
	margin: 0 !important;
}

#ventanaAmortizarTotales {
	display: flex;
	flex-direction: column;
	margin: 0;
	min-width: 160px;
	text-align: center;
}

#ventanaAmortizarTotales p {
	font-size: 14px;
	margin: 3px 0;
	line-height: 1.2;
}

/* VENTANA TOTALES */
#ventanaTotales {
	display: none;
	grid-template-columns: auto auto;
	gap: 0px 0px;
	width: 100%;
	max-width: 100px;
	margin: 0 auto;
}

#ventanaTotales img {
	grid-column: 1 / -1;
	justify-self: stretch;
	margin: 5px 0;
}

#ventanaTotales p {
	margin: 0;
	font-size: 14px;
}

#totalesTotalFac {
	font-weight: bold;
}

#ventanaTotales p:nth-child(odd) {
	text-align: right;
}

#ventanaTotales p:nth-child(even) {
	text-align: right;
	font-weight: bold;
}

#ventanaTotales.visible {
	display: grid;
}

#perfilSubirLogo {
	width: 120px;
	height: 60px;
	margin: 0px auto 0px auto;
	object-fit: contain;
	cursor: pointer;
}

#agrariosCanvasFirmar {
	display: flex;
	margin: 30px auto;
	max-width: 600px;
	border: 1px solid black;
}

/* VENTANA FOOTER */
.ventanaFooter {
	display: flex;
	justify-content: center;
	gap: 60px;
	/* Base gap when buttons fit comfortably */
	padding: 20px;
	flex-shrink: 0;
	flex-wrap: wrap;
}

.btnFooter {
	cursor: pointer;
	display: none;
	/* Hidden by default, controlled by JS */
	flex-shrink: 0;
	/* Don't shrink - maintain size */
}

.btnFooter:hover {
	transform: scale(1.05);
}

/*----------------------------------------------------------------------------------------------------------------------------------//
//  VENTANA ALERTA NOTIFICACION
//----------------------------------------------------------------------------------------------------------------------------------*/

.alerta {
	position: fixed;
	top: -200px;
	/* Oculta la alerta fuera de la pantalla */
	left: 50%;
	transform: translateX(-50%);
	width: 300px;
	padding: 15px;
	text-align: center;
	font-size: 16px;
	border-radius: 5px;
	box-shadow: 0px 2px 10px rgba(0, 0, 0, 0.2);
	transition: all 0.5s ease;
	z-index: 1000;
}

.alerta.exito {
	background-color: #4CAF50;
	/* Verde para éxito */
	color: white;
}

.alerta.error {
	background-color: #F44336;
	/* Rojo para error */
	color: white;
}

.alerta.aviso {
	background-color: #dde810;
	/* Amarillo para aviso */
	color: black;
}

.alerta.mostrar {
	top: 20px;
	/* Posición visible */
}

/*----------------------------------------------------------------------------------------------------------------------------------//
//  VENTANA TRABAJANDO
//----------------------------------------------------------------------------------------------------------------------------------*/

#trabajandoFondo {
	display: none;
	position: fixed;
	width: 100%;
	height: 100%;
	top: 0;
	left: 0;
	background-color: #9598ad;
	opacity: 0;
	transition: opacity 0.3s ease;
	z-index: 29;
}

#trabajando {
	display: none;
	position: fixed;
	width: 100%;
	height: 100%;
	top: 0px;
	left: 0px;
	z-index: 30;
}

#trabajando.visible {
	display: block;
}

.spinner {
	position: absolute;
	top: calc(50% - 50px);
	left: calc(50% - 50px);
	font-size: 4em;
	height: 1em;
	line-height: 1;
	margin: .5em;
	animation: anim-rotate 2s infinite linear;
	color: #fff;
	text-shadow: 0 0 .25em rgba(255, 255, 255, .3);
}

@font-face {
	font-family: 'icomoon';
	src: url('https://cdnjs.cloudflare.com/ajax/libs/videogular-themes-default/0.7.1/fonts/icomoon.woff') format('woff')
}

[class^='icon-'],
[class*=' icon-'] {
	font-family: 'icomoon';
	font-style: normal;
	font-weight: normal;
	font-variant: normal;
	text-transform: none;
	line-height: 1;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

.icon-spinner:before {
	content: '\e001';
}

@keyframes anim-rotate {
	0% {
		transform: rotate(0);
	}

	100% {
		transform: rotate(360deg);
	}
}

/*----------------------------------------------------------------------------------------------------------------------------------//
//  DROPDOWN
//----------------------------------------------------------------------------------------------------------------------------------*/

#dropdown {
	position: absolute;
	top: 0;
	left: 0;
	min-width: 150px;
	background: #F2F2F2;
	border: 1px solid #CCCCCC;
	z-index: 1000;
}

#dropdown ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

#dropdown ul li {
	position: relative;
}

#dropdown ul li a {
	display: block;
	padding: 5px 10px;
	clear: both;
	cursor: pointer;
	color: #4A4D62;
	font-size: 14px;
	text-decoration: none;
}

#dropdown ul li a:hover,
#dropdown ul li a:focus {
	color: #4A4D62;
	background: #9598AD;
	text-decoration: none;
}

#dropdown ul li a:active {
	color: #F2F2F2;
	background: #4A4D62;
}

/*----------------------------------------------------------------------------------------------------------------------------------//
//  RESPONSIVE DESIGN - MOBILE & TABLET
//----------------------------------------------------------------------------------------------------------------------------------*/

/* ============================================
   MOBILE - Dispositivos Móviles (max-width: 768px)
   ============================================ */
@media (max-width: 750px) {

	/* CABECERA */
	/* CABECERA */
	.seccionCabecera {
		height: 60px;
		/* Standardized to 60px */
	}

	.seccionCabecera img.pointer {
		/* No cambiar tamaño del botón menú */
		margin-left: 15px;
	}

	/* No cambiar tamaño del logo */

	/* BOTONES DE NAVEGACIÓN */
	.seccionBotones {
		min-height: 70px;
		/* Standardized to 70px */
		top: 60px;
		/* Header 60 */
		padding: 10px 5px;
		/* Standardized */
		gap: 10px;
		/* Standardized for consistent row spacing */
	}

	.btnNavegacion {
		padding: 0px 3px;
	}
}

/* ============================================
   TABLET/MOBILE EXTENDED - Layout Nuevo (max-width: 900px)
   Prevents overlap between Selector and Centered Button
   ============================================ */
@media (max-width: 900px) {

	/* SECCIÓN NUEVO */
	.seccionNuevo {
		min-height: 80px;
		/* Changed from 60px to match base */
		top: 130px;
		/* Header 60 + Botones 70 */
	}

	.barraNuevo {
		display: flex;
		position: relative;
		/* Anchor for absolute buttons */
		flex-wrap: wrap;
		justify-content: center;
		padding: 10px;
		width: 96%;
		max-width: 1200px;
		margin: 0 auto;
		/* Ensure height for absolute buttons (Selector + Gap + Buttons) */
		min-height: 140px;
	}

	#selectorActividad {
		width: 100%;
		margin: 0 auto 60px auto;
		/* 50px + 10px requested */
		order: 1;
	}

	/* ABSOLUTE POSITIONING FOR ROBUST ALIGNMENT */
	.btnNuevo {
		position: absolute;
		bottom: 15px;
		/* Adjusted Centering (Visual Middle) */
		left: 50%;
		transform: translateX(-50%);
		width: auto;
		/* Height removed to respect 'Original Size' */
		margin: 0;
		z-index: 5;
	}

	.grupoInformes {
		display: contents;
		/* Unwrap */
	}

	#btnVerConceptos {
		position: absolute;
		bottom: 5px;
		left: 5px;
		padding: 0;
		margin: 0;
		/* Height removed to respect 'Original Size' */
	}

	#btnVerInformes {
		position: absolute;
		bottom: 5px;
		right: 5px;
		padding: 0;
		margin: 0;
		/* Height removed to respect 'Original Size' */
	}

	/* Remove debug and old styles */
	.btnInformes {
		cursor: pointer;
	}

	/* BARRA DE BÚSQUEDA */
	.seccionBusqueda {
		min-height: auto;
		top: 270px;
	}

	/* Legacy rules removed to fix Search Layout wrapping and sizing */

	/* Ocultar selectores inactivos (controlado por JavaScript) */
	.selBusqueda[style*='display: none'],
	.filtroBusquedaA[style*='display: none'],
	.filtroBusquedaB[style*='display: none'] {
		display: none !important;
	}

	/* TABLA PRINCIPAL */
	.seccionTabla {
		margin-top: 5px;
		padding: 5px;
	}

	.barraTabla {
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
	}

	.tablaPrincipal {
		min-width: 600px;
		/* Maintain scroll width */
	}

	.tablaPrincipal th {
		height: 40px;
		position: sticky;
		top: 0;
		background-color: white;
		z-index: 1;
		border: none !important;
	}

	.tablaPrincipal td {
		height: 40px;
		border: none !important;
	}

	/* Asegurar que no hay espacios entre filas */
	.tablaPrincipal tr {
		height: 40px;
		border: none !important;
	}

	/* PAGINACIÓN */
	.seccionPagina {
		padding: 10px 0;
		/* Standardized to match Base */
	}

	.btnPagina {
		margin: auto 5px;
	}

	.selPagina {
		width: 80px !important;
		/* Force 80px on Mobile too */
		margin: 0;
		font-size: 12px;
	}

	/* MENÚ LATERAL */
	.menu {
		width: 220px;
		left: -220px;
	}

	.menu.abrir {
		transform: translateX(220px);
	}

	.menuNombre,
	.menuGad {
		font-size: 12px;
	}

	.menuSecciones p {
		margin: 4px 15px;
		font-size: 12px;
	}

	.menuFila {
		margin-left: 15px;
	}

	.icoMenu {
		width: 18px;
		height: 18px;
	}

	/* VENTANAS MODALES */
	/* VENTANAS MODALES - Mobile rules removed to allow progressive resizing from Base styles */
	/* .ventana and .ventanaHeader rules deleted here to use global Grid/Width definition */

	/* Disable sticky on mobile to prevent overlap when height changes */
	.seccionBotones,
	.seccionNuevo,
	.seccionBusqueda {
		/* Sticky enabled by default */
		height: auto;
		width: 100%;
		/* Force full width container */
		display: flex;
		/* Maintain flex layout */
		justify-content: center;
		/* Center inner bar */
	}

	/* Ensure white bar allows blue background to show */
	.barraBusqueda {
		width: 96%;
		margin: 0 auto;
	}

	/* Adjust button offset for narrow screens where title wraps */
	#ventanaBotones {
		top: calc(50% - 1px) !important;
		/* Compensate for 31px shift when title wraps */
	}


	/* Extreme Small Mobile Optimization */
	@media (max-width: 480px) {
		.barraBusqueda {
			gap: 5px;
			/* Minimal gap */
			padding: 5px 5px;
			/* Minimal padding */
		}
	}

	/* Ventana Mobile Overrides Removed to enforce Base Consistency */

	/* Removed #ventanaLinea mobile override to maintain consistent position */

	#ventanaBotones {
		flex-wrap: wrap;
		width: 90%;
		gap: 5px;
		top: -15px;
	}

	.ventanaContenido {
		margin: 0px 10px;
	}

	.ventanaFooter {
		/* ventanaFooter gap override removed - maintain 100px gap at all sizes */
		flex-wrap: wrap;
	}

	/* TABLA VENTANA */


	/* VENTANA AMORTIZAR */


	#adquisicionesBtnAmortizar {
		margin: 10px auto;
	}

	/* CANVAS FIRMA */
	#agrariosCanvasFirmar {
		max-width: 100%;
		width: 90%;
	}

	/* ALERTAS */
	.alerta {
		width: 90%;
		max-width: 280px;
		font-size: 14px;
		padding: 12px;
	}

	/* VENTANA BASE DATOS (LOGIN) - Overrides Removed to use Global Styles */
}

/* ============================================
   TABLET - Dispositivos Medianos (769px - 1024px)
   ============================================ */
@media (min-width: 769px) and (max-width: 1024px) {

	/* CABECERA */
	/* CABECERA */
	.seccionCabecera {
		height: 60px;
		/* Standardized to 60px */
	}

	/* No cambiar tamaño del logo */

	/* BOTONES DE NAVEGACIÓN */
	/* BOTONES DE NAVEGACIÓN */
	.seccionBotones {
		top: 60px;
		/* Header 60 */
		padding: 10px 5px;
		/* Standardized */
		gap: 10px;
		/* Standardized for consistent row spacing */
	}

	/* BARRA DE BÚSQUEDA */
	/* Conflicting wrapping rule removed */

	.selBusqueda,
	.filtroBusquedaA {
		width: 250px;
	}

	.filtroBusquedaB {
		width: 130px;
	}

	/* TABLA PRINCIPAL */


	/* VENTANAS MODALES */
	/* Ventana Tablet Overrides Removed for Consistency */

	#ventanaBotones {
		gap: 8px;
	}

	/* ventanaFooter gap override removed - maintain 100px gap at all sizes */

	/* MENÚ LATERAL */
	.menu {
		width: 230px;
		left: -230px;
	}

	.menu.abrir {
		transform: translateX(230px);
	}
}

/* ============================================
   AJUSTES ADICIONALES PARA ORIENTACIÓN
   ============================================ */
@media (max-width: 768px) and (orientation: landscape) {
	.ventana {
		max-height: 95vh;
	}

	.seccionTabla {
		max-height: calc(100vh - 340px);
	}
}