body {
	font-family: 'Poppins', sans-serif;
	margin: 0;
	position: sticky;
}
main {
	max-width: 1200px;
	margin: 0 auto;
}

.loguin {
    width: 800px;
    max-width: 100vw;
    padding: 15px;
    margin: 7px auto;
	text-align: center;
}

.loguincito, #loguincito {
	max-width: 1200px;
	margin: 0 auto;
}

.header-fixed-container {
	position: sticky;
	margin: 0 auto;
	max-width: 1200px;
	width: 100%;
	z-index: 1001;
	background-color: white;
	padding-top: 10px;
	box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
	top: 0;
}
.filter-container {
	flex-wrap: wrap;
	gap: 10px;
	margin-bottom: 10px;
}
.filter-container input, .filter-container select, .filter-container button {
	padding: 8px;
	border: 1px solid #ccc;
	border-radius: 4px;
	width: 106px;
}
.filter-group {
	border: 1px solid #ccc;
	border-radius: 8px;
	padding: 10px;
	margin-bottom: 10px;
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.filter-group-header {
	font-weight: bold;
	font-size: 1.2em;
	margin-bottom: -8px;
}
.filter-sub-group {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}
.filter-search {
	CONTAIN-INTRINSIC-BLOCK-SIZE: AUTO 100PX;
	font-weight: bold;
	font-size: 1.2em;
	width: 253px !important;
	color: black;
	background: none;
	border: 1px solid !important;
}
.cantidad-input {
	 width: 45px;
	 font-size: 20px;
	 text-align: end;
}
.selected-products-btn {
	background-color: #007bff;
	color: white;
	font-weight: bold;
	width: 110px !important;
	border: 2px solid #007bff !important;
}
.selected-products-btn:hover {
	background-color: #0056b3;
}

.lista-precios-pc{
	display: inline;
	background-color: orange;
	color: white;
	font-weight: bold;
	width: 240px !important;
	border: 2px solid orange!important;
    padding: 8px 7px 10px 7px;
    border-radius: 4px;}

.catalogo-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 14px;
	font-weight: bold;
	margin-top: -6px !important;
	table-layout: fixed;
}
.catalogo-table thead th {
	position: sticky;
	top: 138px;
	background-color: #f2f2f2;
	z-index: 1000;
	text-transform: capitalize;
}
th, td {
	border: 1px solid #ccc;
	padding: 8px;
	text-align: center;
	vertical-align: middle;
}
.col-codigo {
	width: 48px;
}
.col-cantidad {
	width: 48px;
}
.col-indicador {
	width: 32px;
	hyphens: auto
}
.col-oferta {
	width: 28px;
}
.col-imagen {
	width: 69px !important;
}
.col-descripcion {
	width: 272px;
}
.col-precio {
	width: 78px;
}
.col-vigencia {
	width: 55px;
}
.col-rubro, .col-marca {
	width: 88px;
	max-width: 88px;
	overflow-wrap: break-word;
	word-wrap: break-word;
	hyphens: auto
}
.col-sub-rubro {
	width: 148px;
	max-width: 148px;
	overflow-wrap: break-word;
	word-wrap: break-word;
	hyphens: auto
}		
.product-image {
	width: 86px;
	height: 86px;
	vertical-align: middle;
	margin: -6px;
	max-width: 86px !important;
}
.indicador-recomendado, .indicador-bajo-stock, .indicador-a-ingresar,
.oferta-fondo-oferta, .oferta-fondo-a-ingresar, .oferta-fondo-ultimo-ingreso {
    align-items: center;
    justify-content: center;
    height: 25px;
    padding: 0 4px;
	font-weight: bold;
	border-radius: 8px;
	max-width: 40px !important;
	font-size: 9px !important;
	overflow-wrap: break-word;
	word-wrap: break-word;
	hyphens: auto;
}
.indicador-recomendado {
	background-color: rgb(0, 255, 0);
	color: black;
}
.indicador-bajo-stock {
	background-color: rgb(255, 255, 0);
}
.indicador-a-ingresar {
	background-color: rgb(0, 255, 255);
}
.oferta-fondo-oferta {
	background-color: rgb(112, 48, 180);
	color: white;
	word-wrap: normal;
}
.oferta-fondo-a-ingresar {
	background-color: rgb(0, 255, 255);
	word-wrap: normal;

}
.oferta-fondo-ultimo-ingreso {
	background-color: rgb(255, 0, 0);
	word-wrap: normal;
	color: white;
}
.subrubro-cell {
	word-wrap: break-word;
	hyphens: auto;
}
.vigencia-cell {
	background-color: rgb(237 231 231);
	font-weight: bold;
	border-radius: 8px;
	font-size: 11px !important;
	word-wrap: break-word;
}
td a {
	color: #000;
	text-decoration: none;
}
.letra {
	font-size: 11px;
}
.letra2 {
	font-size: 13px;
}
.letra3 {
    font-size: 15px;
    padding: 5px;
    margin: 2px;
}

.totales-container {
	display: flex;
	justify-content: flex-end;
	gap: 20px;
	margin-bottom: 10px;
	font-size: 1.2em;
	font-weight: bold;
}
.cata {
	font-size: 19px;
	padding: 0px;
	margin: 5px;
	width: 33%;
	font-weight: bold;			
}
.totalsiniva {
	font-size: 19px;
	padding: 4px;
	/* margin: 5px; */
	font-weight: bold;
	align-items: stretch;
	margin-top: 2px !important;
	color: white;
	background: grey;
	border-radius: 8px;
}
.totalconiva {
	font-size: 19px;
	padding: 4px;
	/* margin: 5px; */
	font-weight: bold;
	align-items: stretch;
	margin-top: 2px !important;
	color: white;
	background: black;
	border-radius: 8px;
}
.carrito-pc {
	font-size: 19px;
	padding: 4px;
	margin-left: 5px;
    margin-right: -6px;
	font-weight: bold;
	align-items: stretch;
	margin-top: 2px !important;
	border-radius: 8px;
}
.totalsiniva2, .totalconiva2, .totalunidades-movil, .carrito-movil, .lista-precios-movil {
	display: none;
}
.totalunidades-pc {
	display: inline;
	font-size: 19px;
	padding: 4px;
	/* margin: 5px; */
	font-weight: bold;
	align-items: stretch;
	margin-top: 2px !important;
	color: white;
	background: black;
	border-radius: 8px;
	background: grey;
}
.ver-pedido-active {
	background-color: black;
	color: red;
	font-weight: 900;
}
.modal-overlay {
	display: none;
	position: fixed;
	z-index: 1002;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	overflow: auto;
	background-color: rgba(0,0,0,0.4);
	justify-content: center;
	align-items: center;
}
.modal-content {
	background-color: #fefefe;
	margin: auto;
	padding: 20px;
	border: 1px solid #888;
	max-width: 400px;
	text-align: center;
	border-radius: 8px;
	position: relative;
}
.modal-close {
	color: #aaa;
	float: right;
	font-size: 28px;
	font-weight: bold;
	position: absolute;
	right: 10px;
	top: 0;
}
.modal-close:hover,
.modal-close:focus {
	color: black;
	text-decoration: none;
	cursor: pointer;
}
.input-group {
	margin-bottom: 10px;
}
.input-group input {
	width: 100%;
	padding: 8px;
	box-sizing: border-box;
}
.modal-buttons {
	display: flex;
	justify-content: space-around;
	margin-top: 10px;
}
.modal-content .client-buttons {
    display: flex;
    gap: 20px;
    margin-bottom: 20px;
    align-items: center;
    margin: -4px;
}
.modal-content .client-buttons button {
    margin-bottom: 10px;	
}
.modal-content .input-group {
    margin-bottom: 0;	
}
.modal-content input {
    width: 100%;
    margin-bottom: 15px;	
    box-sizing: border-box;
}
.loadModal {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.8);
    z-index: 9999;
    display: none;
    justify-content: center;
    align-items: center;
    text-align: center;
}
.loadModal2 {
    background-color: white;
    padding: 40px;
    border-radius: 8px;
    color: #333;
    font-size: 1.5em;
    font-weight: bold;
}


.loguin .imagen-login {
    max-width: 100%;
    height: auto;
    margin: 0px auto; /* Centra la imagen horizontalmente (arriba/abajo 20px, izquierda/derecha auto) */
    
    /* Esta línea es crucial para que 'margin: auto' funcione en elementos de imagen */
    display: block; 
}
@media (max-width: 768px) {
	
body {
    width: 95%;
    margin: 0 auto;
}
main {
    width: 100%;
    margin: 0 auto;
}

.loguin {
    width: 500px;
    max-width: 86%;
    padding: 15px;
    margin: 7px auto;
	text-align: center;
}

.header-fixed-container {
    padding: 5px;
}
.cata, .totalsiniva2, .totalconiva2 {
    font-size: 14px;
    margin: 2px;
    padding: 2px;
}
.filter-container {
    flex-direction: column;
    flex-wrap: nowrap;
    gap: 10px;
}
.filter-group {
	border: 1px solid #ccc;
	border-radius: 8px;
	padding: 5px;
}
.filter-sub-group {
    gap: 10px;
    width: 95%;
	margin-top: -10px;
}
.filter-container input,
.filter-container select,
.filter-container button,
.selected-products-btn {
    box-sizing: border-box;
	font-size: 12px;
}

.lista-precios-movil{
	display: inline;
	background-color: orange;
	color: white;
	font-weight: bold;
	width: 100px !important;
	border: 2px solid orange!important;
	padding: 8px 7px 10px 7px;
    border-radius: 4px;
}

.catalogo-table thead {
    display: none;
}
table, thead, tbody, th, td, tr {
    display: block;
}
tr {
    border: 2px solid #555;
    margin-bottom: 15px;
    border-radius: 5px;	
    padding: 5px;	
}
td {
    border: none;
    border-bottom: 1px solid #eee;
    position: relative;
    padding-left: 28%;	
    text-align: left;
}
td:before {
    position: absolute;
    left: 6px;
    content: attr(data-label);
    font-weight: bold;
    text-align: left;
    text-transform: capitalize;	
    padding-top: 2px;
}
.cantidad-input {
    width: 50px;
}
.product-image {
    width: 86px;
    height: 86px;
	margin-top: 5px;
    vertical-align: middle;
	margin-left: 85px !important;
}
.element-style {
    gap: 10px;
    flex-direction: column;
    margin-bottom: 5px;
}	
td[data-label="CÓDIGO"] {
    display: flex !important;
    align-items: center;
    justify-content: flex-start;
    gap: 5px;
    padding-left: 28% !important;
    border-bottom: none;
}
td[data-label="CÓDIGO"]:before {
    position: absolute;
    left: 6px;
    content: "CÓDIGO";
    font-weight: bold;
    text-align: left;
    text-transform: capitalize;	
    padding-top: 0;
}
.product-codigo-mobile {
    font-weight: bold;
    font-size: 16px;
}
.cantidad-label-mobile {
    font-size: 14px;
    font-weight: normal;
}
    td[data-label="CANTIDAD"] {
    display: none !important;
}
td[data-label="INDICADOR"] {
    clear: both;
    display: block;	
    width: 50% !important;
    float: left;
    padding: 8px 0;
    padding-left: 0;
    text-align: center;
    border-bottom: none;	
}
td[data-label="OFERTA / INGRESO"] {
    display: block;
    width: 50% !important;
    float: right;
    padding: 8px 0;
    padding-left: 0;
    text-align: center;
    border-bottom: 1px solid #eee;	
}
td[data-label="INDICADOR"]:before,
td[data-label="OFERTA / INGRESO"]:before {
    display: none;
}
td[data-label="FOTO"] {
    clear: both;
    float: none;	
}
.indicador-recomendado,
.indicador-bajo-stock,
.indicador-a-ingresar,
.oferta-fondo-oferta,
.oferta-fondo-a-ingresar,
.oferta-fondo-ultimo-ingreso {
    max-width: 150px !important;
    font-size: 12px !important;
    display: inline-flex;
}
.subrubro-cell,
.vigencia-cell {
    word-wrap: break-word;
    hyphens: auto;
		display: block;
}
.filter-container input, .filter-container select, .filter-container button {
	padding: 2px;
	border: 1px solid #ccc;
	border-radius: 4px;
	width: 85px;
}
.filter-search {
	display: none;
	CONTAIN-INTRINSIC-BLOCK-SIZE: AUTO 100PX;
	font-weight: bold;
	font-size: 1.2em;
	width: 150px !important;
	color: black;
	background: none;
	border: 1px solid !important;
}
.totalsiniva2 {
	display: inline;
	font-size: 13px;
	padding: 3px;
	/* margin: 4px; */
	font-weight: bold;
	align-items: stretch;
	/* margin-left: 10px; */
	margin-top: 2px !important;
	color: white;
	background: grey;
	border-radius: 8px;
}
.totalconiva2 {
	display: inline;
	font-size: 13px;
	padding: 3px;
	/* margin: 4px; */
	font-weight: bold;
	align-items: stretch;
	/* margin-left: 10px; */
	margin-top: 2px !important;
	color: white;
	background: black;
	border-radius: 8px;
}
.totalunidades-movil {
	display: inline;
	font-size: 13px;
	padding: 3px;
	/* margin: 4px; */
	font-weight: bold;
	align-items: stretch;
	margin-top: 2px !important;
	color: white;
	background: black;
	border-radius: 8px;
	background: grey;
}
.carrito-movil {
	display: inline;
	font-size: 13px;
	padding: 3px;
    margin-left: 4px;
    margin-right: -4px;
	align-items: stretch;
	margin-left: 10px;
	margin-top: 2px !important;
	border-radius: 8px;
}
.totalsiniva, .totalconiva, .totalunidades-pc, .carrito-pc, .lista-precios-pc {
	display: none;
}
}

/* ESTILOS PARA FORZAR LA APARICIÓN DE FLECHAS EN CHROME, SAFARI (iOS y Android) */
.cantidad-input::-webkit-outer-spin-button,
.cantidad-input::-webkit-inner-spin-button {
    /* Esencial: anula la ocultación nativa del navegador */
    -webkit-appearance: always !important;	
    /* Asegura que el botón no esté semi-transparente u oculto */
    opacity: 1 !important;	
    /* Para algunos navegadores que ocultan los botones pero dejan el espacio */
    margin: 0;	
}

/* ESTILOS PARA FIREFOX */
.cantidad-input[type='number'] {
    /* Restaura el comportamiento de campo de texto para mostrar controles */
    -moz-appearance: textfield;	
}

/* ... otros estilos ... */

.video-icon-placeholder {
    display: inline-block;
    vertical-align: middle;
    margin-right: 5px;
}
.icon-video {
    width: 20px;
    height: 14px;
    border: none;
    cursor: pointer;
}


#floating-message-container {
    /* Clave: Fijo y centrado */
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    
    /* Oculto, pero el Overlay lo oculta primero */
    transition: opacity 0.3s, visibility 0.3s, transform 0.3s;
    
    /* Clave: Z-INDEX MUY ALTO para estar encima de todo */
    z-index: 99999;
    background: #ede9e9;
    padding: 20px;
	border-radius:8px;
    /* ... demás estilos de borde, padding, color ... */
}


#floating-message-container.show {
    opacity: 1;
    visibility: visible;
}
#floating-message-container h4 {
    margin-top: 0;
    margin-bottom: 10px;
    font-size: 1.1em;
    font-weight: bold;
}
#floating-message-list {
    list-style-type: none;
    padding-left: 0;
    margin: 0;
    max-height: 150px; /* Para permitir scroll si hay muchos códigos */
    overflow-y: auto;
}
#floating-message-list li {
    margin-bottom: 3px;
    font-size: 0.9em;
    padding: 2px 0;
}

/* ---------------------------------------------------- */
/* 1. ESTILOS DEL OVERLAY (LA CAPA OSCURA DETRÁS) */
/* ---------------------------------------------------- */
#floating-message-overlay {
    /* Clave: Ocupa toda la pantalla, fijo y por debajo del mensaje */
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.7); /* Fondo semi-transparente */
    z-index: 99998; /* Menor que el mensaje */
    
    /* LA REGLA QUE LO OCULTA SIEMPRE: */
    display: none;
}

/* LA REGLA QUE LO MUESTRA: */
#floating-message-overlay.show {
    display: block; /* <--- ESTA REGLA DEBE ANULAR EL 'display: none;' */
}


/* ---------------------------------------------------- */
/* 2. ESTILOS DEL CONTENEDOR DEL MENSAJE */
/* ---------------------------------------------------- */
#close-floating-message {
    position: absolute;
    top: 5px;
    right: 10px;
    background: none;
    border: none;
    font-size: 1.5em;
    font-weight: bold;
    color: #e65100; /* Mismo color del texto */
    cursor: pointer;
    line-height: 1;
    padding: 0;
    transition: color 0.2s;
}

/* Estilo del Botón de Cierre (X) */
.close-btn {
    position: absolute;
    top: 5px;
    right: 10px;
    background: none;
    border: none;
    font-size: 1.5em;
    font-weight: bold;
    color: #e65100; /* Mismo color del texto */
    cursor: pointer;
    line-height: 1;
    padding: 0;
    transition: color 0.2s;
}
.close-btn:hover {
    color: #f44336; /* Un rojo al pasar el mouse */
}