html {
	scrollbar-gutter: stable;
}

/* Metronic usa overflow-y: scroll en .menu-sub-dropdown y reserva carril aunque no haya scroll */
.menu.menu-sub.menu-sub-dropdown,
#menu-filtros.menu-sub-dropdown,
#menu-filters.menu-sub-dropdown {
	max-height: calc(100vh - 100px);
	min-height: 0;
	overflow-y: auto;
	overflow-x: hidden;
	-webkit-overflow-scrolling: touch;
	scrollbar-gutter: auto;
}

/* Sin alto propio la equis flota sobre la esquina sin empujar el título, y el
   sticky la mantiene a la vista mientras se recorre el panel. */
.odp-menu-cerrar-barra {
	position: sticky;
	top: 0;
	z-index: 3;
	display: flex;
	justify-content: flex-end;
	height: 0;
	overflow: visible;
}
.odp-menu-cerrar {
	margin: 0.5rem 0.5rem 0 0;
	background-color: #fff;
}
@media (min-width: 768px) {
	.odp-menu-cerrar-barra {
		display: none;
	}
}

/* Safari en iOS no siempre resuelve la tipografía del tema en los campos de
   formulario y cae a la del sistema, que dibuja los dígitos más grandes: los
   campos de fecha se veían mayores que el texto de los Select2 vecinos. */
.form-control,
.form-select,
.form-check-input {
	font-family: inherit;
}

/* Lo que se ve de un Select2 es un span, así que se queda en el 1rem del tema y
   no recibe los 16px anti-zoom de más abajo. El campo de fecha se iguala a mano;
   queda fuera de esa regla, de modo que iOS hará zoom al enfocarlo. */
.form-control.odp-campo-fecha {
	font-size: 1rem;
}

/* comun.js ancla el panel bajo el campo con position:fixed y, cuando no cabe,
   limita el alto de .odp-drp-cuerpo para que el pie siga visible. */
.odp-drp-cuerpo {
	display: flex;
	flex-wrap: nowrap;
	overflow-x: hidden;
	overflow-y: auto;
	overscroll-behavior: contain;
	touch-action: pan-y;
	-webkit-overflow-scrolling: touch;
}
.daterangepicker .drp-calendar {
	float: none !important;
	flex: 0 0 auto;
	width: 22rem;
	max-width: 22rem;
	overflow: visible;
	box-sizing: border-box;
}
.daterangepicker .drp-calendar.left,
.daterangepicker .drp-calendar.right {
	padding: 0.75rem !important;
}
.daterangepicker .calendar-table,
.daterangepicker .calendar-table table {
	width: 100%;
	table-layout: auto;
}
.daterangepicker .odp-drp-fila-oculta {
	display: none;
}
.odp-drp-cabecera {
	display: grid;
	grid-template-columns: 1.5rem minmax(0, 1fr) 1.5rem;
	align-items: center;
	gap: 0.4rem;
	width: 100%;
	padding: 0 0 0.65rem;
	box-sizing: border-box;
}
.odp-drp-selectores {
	display: grid;
	grid-template-columns: minmax(0, 3fr) minmax(7.25rem, 2fr);
	gap: 0.5rem;
	min-width: 0;
}
.odp-drp-selectores .select2-container {
	width: 100% !important;
	min-width: 0;
}
.odp-drp-selectores .select2-selection,
.daterangepicker .calendar-time .select2-selection {
	min-height: 2.65rem;
	padding: 0.55rem 2rem 0.55rem 0.75rem;
	font-size: 1rem;
	font-weight: 500;
	text-align: left;
}
.odp-drp-selectores .select2-selection__rendered,
.daterangepicker .calendar-time .select2-selection__rendered {
	color: inherit;
	overflow: hidden;
	text-overflow: ellipsis;
}
.odp-drp-nav {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 1.5rem;
	height: 2.65rem;
	padding: 0;
	border: 0;
	border-radius: 0.475rem;
	background: transparent;
}
.odp-drp-nav.available:hover {
	background-color: #f1faff;
}
.odp-drp-nav:disabled {
	visibility: hidden;
}
.odp-drp-nav span {
	display: inline-block;
	padding: 0.25rem;
	border: solid #5e6278;
	border-width: 0 2px 2px 0;
}
.odp-drp-nav.prev span {
	transform: rotate(135deg);
}
.odp-drp-nav.next span {
	transform: rotate(-45deg);
}
.daterangepicker.show-calendar .drp-buttons {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 0.5rem;
	flex-wrap: nowrap;
}
.daterangepicker .drp-selected {
	flex: 1 1 auto;
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	padding-right: 0;
}
.daterangepicker .drp-buttons .btn {
	flex: 0 0 auto;
	margin-left: 0;
}
.daterangepicker .calendar-time {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.4rem;
	line-height: normal;
}
.daterangepicker .calendar-time .select2-container {
	width: 6rem !important;
}
/* El desplegable vive en <body> para no recortarse con el scroll del calendario. */
.daterangepicker-select2-dropdown {
	z-index: 2000 !important;
	min-width: 12rem;
}

/* Los dos meses no caben lado a lado: se apilan y el rango del pie sobra. */
@media (max-width: 767.98px) {
	/* Popper hace clamp horizontal del menú: con cualquier ancho menor al del
	   viewport lo pega a un borde y el aire sobrante queda de un solo lado. Se
	   ocupa el ancho completo (único desplazamiento posible: 0) y el margen se
	   simula con bordes transparentes, que sí quedan simétricos. */
	#menu-filtros.menu-sub-dropdown,
	#menu-filters.menu-sub-dropdown,
	.menu-notificaciones-dropdown {
		width: 100% !important;
		max-width: 100% !important;
		border-left: 0.5rem solid transparent;
		border-right: 0.5rem solid transparent;
		background-clip: padding-box;
	}
	.odp-drp-cuerpo {
		flex-direction: column;
	}
	.daterangepicker .drp-calendar {
		width: 100%;
		max-width: none;
	}
	.daterangepicker .drp-selected {
		display: none;
	}
}

@media (min-width: 992px) {
	/* La columna se pega bajo el toolbar y se suelta al final del contenido.
	   Si el resumen es más alto que la pantalla, comun.js baja el top para
	   que al hacer scroll se vea completo. */
	.reporte-resumen-col,
	.resumen-sticky-col {
		position: sticky;
		top: 150px;
		z-index: 95;
		align-self: flex-start;
	}
}

.highlight-search,
mark.highlight-search,
.fila-venta .highlight-search,
.fila-compra .highlight-search,
.fila-rma .highlight-search {
    background: #fff4cc;
    background-color: #fff4cc;
    color: #665000;
}

.conteo-linea {
	border-left: 4px solid transparent;
	border-radius: 0.35rem;
}
.conteo-linea--exacto {
	border-left-color: #50cd89;
	background: rgba(80, 205, 137, 0.1);
}
.conteo-linea--sobrante {
	border-left-color: #ffc700;
	background: rgba(255, 199, 0, 0.12);
}
.conteo-linea--faltante {
	border-left-color: #f1416c;
	background: rgba(241, 65, 108, 0.1);
}

/* Código de colores del resumen (misma paleta que la franja izquierda) */
.estado-leyenda {
	display: inline-block;
	width: 4px;
	height: 14px;
	border-radius: 1px;
	margin-right: 8px;
	flex-shrink: 0;
}
.estado-leyenda--primary { background: var(--bs-primary, #009EF7); }
.estado-leyenda--success { background: #50cd89; }
.estado-leyenda--warning { background: #ffc700; }
.estado-leyenda--danger { background: #f1416c; }
.estado-leyenda--dark { background: #7e8299; }

/* Franja de estado: pendientes de surtir, pendientes de entrada, pendientes de RMA + cola de procesamiento */
.fila-venta,
.fila-compra,
.fila-rma {
	border-left: 4px solid transparent;
	border-radius: 0.35rem;
	background-color: #fff;
}
.fila-compra,
.fila-rma {
	border-left-color: var(--bs-primary, #009EF7);
}
.fila-venta.bg-light-success,
.fila-venta.bg-light-warning,
.fila-venta.bg-light-danger,
.fila-venta.bg-light,
.fila-venta.bg-light-dark,
.fila-compra.bg-light-success,
.fila-compra.bg-light-warning,
.fila-compra.bg-light-danger,
.fila-compra.bg-light,
.fila-compra.bg-light-dark,
.fila-rma.bg-light-success,
.fila-rma.bg-light-warning,
.fila-rma.bg-light-danger,
.fila-rma.bg-light,
.fila-rma.bg-light-dark {
	background-color: #fff !important;
}
body.dark-mode .fila-venta,
body.dark-mode .fila-compra,
body.dark-mode .fila-rma,
[data-bs-theme="dark"] .fila-venta,
[data-bs-theme="dark"] .fila-compra,
[data-bs-theme="dark"] .fila-rma,
body.dark-mode .fila-venta.bg-light-success,
body.dark-mode .fila-venta.bg-light-warning,
body.dark-mode .fila-venta.bg-light-danger,
body.dark-mode .fila-venta.bg-light,
body.dark-mode .fila-venta.bg-light-dark,
body.dark-mode .fila-compra.bg-light-success,
body.dark-mode .fila-compra.bg-light-warning,
body.dark-mode .fila-compra.bg-light-danger,
body.dark-mode .fila-compra.bg-light,
body.dark-mode .fila-compra.bg-light-dark,
body.dark-mode .fila-rma.bg-light-success,
body.dark-mode .fila-rma.bg-light-warning,
body.dark-mode .fila-rma.bg-light-danger,
body.dark-mode .fila-rma.bg-light,
body.dark-mode .fila-rma.bg-light-dark,
[data-bs-theme="dark"] .fila-venta.bg-light-success,
[data-bs-theme="dark"] .fila-venta.bg-light-warning,
[data-bs-theme="dark"] .fila-venta.bg-light-danger,
[data-bs-theme="dark"] .fila-venta.bg-light,
[data-bs-theme="dark"] .fila-venta.bg-light-dark,
[data-bs-theme="dark"] .fila-compra.bg-light-success,
[data-bs-theme="dark"] .fila-compra.bg-light-warning,
[data-bs-theme="dark"] .fila-compra.bg-light-danger,
[data-bs-theme="dark"] .fila-compra.bg-light,
[data-bs-theme="dark"] .fila-compra.bg-light-dark,
[data-bs-theme="dark"] .fila-rma.bg-light-success,
[data-bs-theme="dark"] .fila-rma.bg-light-warning,
[data-bs-theme="dark"] .fila-rma.bg-light-danger,
[data-bs-theme="dark"] .fila-rma.bg-light,
[data-bs-theme="dark"] .fila-rma.bg-light-dark {
	background-color: #1e1e2d !important;
	color: #e1e3ea;
}
.fila-venta.text-success,
.fila-venta.text-warning,
.fila-venta.text-danger,
.fila-venta.text-dark,
.fila-compra.text-warning,
.fila-compra.text-dark,
.fila-rma.text-warning,
.fila-rma.text-dark {
	color: inherit !important;
}
body.dark-mode .fila-venta.text-success,
body.dark-mode .fila-venta.text-warning,
body.dark-mode .fila-venta.text-danger,
body.dark-mode .fila-venta.text-dark,
body.dark-mode .fila-compra.text-warning,
body.dark-mode .fila-compra.text-dark,
body.dark-mode .fila-rma.text-warning,
body.dark-mode .fila-rma.text-dark,
[data-bs-theme="dark"] .fila-venta.text-success,
[data-bs-theme="dark"] .fila-venta.text-warning,
[data-bs-theme="dark"] .fila-venta.text-danger,
[data-bs-theme="dark"] .fila-venta.text-dark,
[data-bs-theme="dark"] .fila-compra.text-warning,
[data-bs-theme="dark"] .fila-compra.text-dark,
[data-bs-theme="dark"] .fila-rma.text-warning,
[data-bs-theme="dark"] .fila-rma.text-dark {
	color: #e1e3ea !important;
}
body.dark-mode .fila-venta .text-gray-600,
body.dark-mode .fila-compra .text-gray-600,
body.dark-mode .fila-rma .text-gray-600,
[data-bs-theme="dark"] .fila-venta .text-gray-600,
[data-bs-theme="dark"] .fila-compra .text-gray-600,
[data-bs-theme="dark"] .fila-rma .text-gray-600 {
	color: #a1a5b7 !important;
}
body.dark-mode .highlight-search,
[data-bs-theme="dark"] .highlight-search,
body.dark-mode mark.highlight-search,
[data-bs-theme="dark"] mark.highlight-search,
body.dark-mode .fila-venta .highlight-search,
body.dark-mode .fila-compra .highlight-search,
body.dark-mode .fila-rma .highlight-search,
[data-bs-theme="dark"] .fila-venta .highlight-search,
[data-bs-theme="dark"] .fila-compra .highlight-search,
[data-bs-theme="dark"] .fila-rma .highlight-search {
	background: #fff4cc;
	background-color: #fff4cc;
	color: #665000;
}
.fila-venta.bg-light-success,
.fila-compra.bg-light-success,
.fila-rma.bg-light-success { border-left-color: #50cd89; }
.fila-venta.bg-light-warning,
.fila-compra.bg-light-warning,
.fila-rma.bg-light-warning { border-left-color: #ffc700; }
.fila-venta.bg-light-danger,
.fila-compra.bg-light-danger,
.fila-rma.bg-light-danger { border-left-color: #f1416c; }
.fila-venta.bg-light,
.fila-compra.bg-light,
.fila-rma.bg-light { border-left-color: #A1A5B7; }
.fila-venta.bg-light-dark,
.fila-compra.bg-light-dark,
.fila-rma.bg-light-dark { border-left-color: #7e8299; }

.video-responsive {
	height: 0;
	overflow: hidden;
	padding-bottom: 56.25%;
	padding-top: 30px;
	position: relative;
}
.video-responsive iframe, .video-responsive object, .video-responsive embed {
	height: 100%;
	left: 0;
	position: absolute;
	top: 0;
	width: 100%;
}

.switch{
	display: grid !important;
}

/* Input image */
.image-input.image-input-outline .image-input-wrapper {
	position: relative;
}

.image-input.image-input-outline [data-kt-image-input-action] {
	position: absolute !important;
	transform: none !important;
	z-index: 1;
	margin: 0;
}

.image-input.image-input-outline [data-kt-image-input-action="change"] {
	top: 4px;
	right: 4px;
	left: auto;
}

.image-input.image-input-outline [data-kt-image-input-action="cancel"],
.image-input.image-input-outline [data-kt-image-input-action="remove"] {
	bottom: 4px;
	right: 4px;
	top: auto;
	left: auto;
}
/* Input image */

.scroll-menu {
	overflow: auto;
	white-space: nowrap;
}

/* Works on Firefox */
.scroll-menu {
	scrollbar-width: thin;
	scrollbar-color: #e2e2e280 #f6f9fa80;
}

/* Works on Chrome, Edge, and Safari */
.scroll-menu::-webkit-scrollbar {
	height: 4px;
}

.scroll-menu::-webkit-scrollbar-track {
	background:  #f6f9fa80;
}

.scroll-menu::-webkit-scrollbar-thumb {
	background-color: #e2e2e280;
}
.noHover{
    pointer-events: none;
}
.no_checkbox > i.jstree-checkbox {
	display: none;
}

.disabled{
  pointer-events: none;
  opacity: 0.5 !important;
}

.box{
	max-width: 300px;
	width: 100%;
	padding: 0 15px;
}

/*Css para el efecto de carga tipo Skeleton*/
.skeleton {
  border-radius: 4px;
  position: relative;
  overflow: hidden;
  background-color: #9B9B9B;
  opacity: 0.1;
  height: 40px;
  margin-bottom: 10px;
  text-align: center;
  display: inline-block;
}

.skeleton-10 {
  width: 10%;
}

.skeleton-20 {
  width: 20%;
}

.skeleton-30 {
  width: 30%;
}

.skeleton-40 {
  width: 40%;
}

.skeleton-50 {
  width: 50%;
}

.skeleton-60 {
  width: 60%;
}

.skeleton-70 {
  width: 70%;
}

.skeleton-80 {
  width: 80%;
}

.skeleton-90 {
  width: 90%;
}

.skeleton-100 {
  width: 100%;
}

.skeleton-loading::before {
  content: '';
  display: block;
  position: absolute;
  left: -150px;
  top: 0;
  height: 100%;
  width: 150px;
  background: linear-gradient(to right, transparent 0%, #e6e4e4  50%, transparent 100%);
  animation: load 1.5s cubic-bezier(0.4, 0.0, 0.2, 1) infinite;
}

@keyframes load {
  from {
      left: -150px;
  }
  to   {
      left: 100%;
  }
}
/*####### Fin loading Skeleton ##############*/

@media (max-width: 400px) {
  #my_camera video {
      max-width: 80%;
      max-height: 80%;
  }

  #results img {
      max-width: 80%;
      max-height: 80%;

  }
}

/* Estilos para los badge de dispersion */
  span.badge-success.dispersion-SI{
    border-radius: .475rem 0 0 .475rem;
  }

  span.badge-warning.dispersion-NO{
    border-radius: 0;
  }

  span.badge-danger.dispersion-ERROR{
    border-radius: 0 .475rem .475rem 0;
  }

  .contenedor-dispersion span{
    font-size: 9px;
  }
  .contenedor-dispersion{
    display: block-ruby;
  }
/* Estilos para los badge de dispersion */

.drawer-jstree{
  overflow-y: scroll;
  max-height: calc(100vh - 280px);
}

.drawer-jstree-permisos{
  overflow-y: scroll;
  max-height: calc(100vh - 360px);
}

.drawer-jstree-plantillas{
  overflow-y: scroll;
  max-height: calc(100vh - 430px);
}

/* Drawer de ayuda: ancho fijo en desktop y completo en movil */
[data-kt-drawer-close="#drawer_close"]{
  width: 500px !important;
  max-width: 500px !important;
}

@media (max-width: 767.98px) {
  [data-kt-drawer-close="#drawer_close"]{
    width: 100% !important;
    max-width: 100% !important;
  }
}

/* Evita salto de ancho al hacer hover dentro de ayuda */
[data-kt-drawer-close="#drawer_close"] .hover-scroll-overlay-y{
  overflow-y: auto !important;
  scrollbar-gutter: stable;
}

[data-kt-drawer-close="#drawer_close"] .hover-scroll-overlay-y:hover{
  overflow-y: auto !important;
}

.popover.popover-fotografia {
  max-width: 140px;
}

.popover.popover-fotografia .popover-body {
  overflow: hidden;
  padding: 0.5rem;
}

.popover.popover-fotografia img {
  display: block;
  max-width: 100%;
  height: auto;
}

.en-revision{
  color: #3f4254 !important;
  background-color: #eff2f5 !important;
}

.badge-en-revision{
  position: static;
  margin-top: 0;
}

.fila-venta .pendientes-surtir-usuario .symbol,
.fila-compra .pendientes-entrada-usuario .symbol,
.fila-rma .pendientes-rmas-usuario .symbol{
  top: 0 !important;
  margin-left: 0 !important;
}

.fs10{
  font-size: 10px !important;
}

hr.gris{
  border-top: 1px solid #d9dcde
}

.disabledbutton {
  pointer-events: none;
  opacity: 0.4;
}

#contador-notificaciones{
  position: absolute;
  margin-left: 30px;
  margin-top: 5px;
}

.ql-video {
	display: block;
	max-width: 100%;
}
.ql-toolbar.ql-snow button.ql-html-edit {
	width: auto !important;
	padding: 0 8px;
	font-size: 12px;
	font-weight: 600;
	color: #A1A5B7 !important;
	background: none;
	border: none;
}
.ql-toolbar.ql-snow button.ql-html-edit:hover,
.ql-toolbar.ql-snow button.ql-html-edit:focus,
.ql-toolbar.ql-snow button.ql-html-edit.ql-active,
.ql-toolbar.ql-snow button.ql-html-edit:active {
	color: #009EF7 !important;
	background: none;
}
.producto-descripcion-quill > .ql-container {
	min-height: 200px;
}
.producto-descripcion-quill .producto-descripcion-codigo {
	border: 1px solid #EFF2F5;
	border-top: 0;
	border-bottom-left-radius: 0.475rem;
	border-bottom-right-radius: 0.475rem;
	background-color: #ffffff;
	overflow: hidden;
	height: 400px;
	width: 100%;
}
.producto-descripcion-quill .producto-descripcion-codigo .ace_editor,
.producto-descripcion-quill .producto-descripcion-codigo .ace_scroller {
	width: 100% !important;
}
.producto-descripcion-quill .producto-descripcion-codigo .ace_editor {
	height: 100% !important;
	border: 0;
	border-bottom-left-radius: 0.475rem;
	border-bottom-right-radius: 0.475rem;
}
.ql-video.ql-align-center {
	margin: 0 auto;
}
.ql-video.ql-align-right {
	margin: 0 0 0 auto;
}
.ql-bg-black {
	background-color: #000;
}

.ql-bg-red {
	background-color: #e60000;
}
.ql-bg-orange {
	background-color: #f90;
}
.ql-bg-yellow {
	background-color: #ff0;
}
.ql-bg-green {
	background-color: #008a00;
}
.ql-bg-blue {
	background-color: #06c;
}
.ql-bg-purple {
	background-color: #93f;
}
.ql-color-white {
	color: #fff;
}
.ql-color-red {
	color: #e60000;
}
.ql-color-orange {
	color: #f90;
}
.ql-color-yellow {
	color: #ff0;
}
.ql-color-green {
	color: #008a00;
}
.ql-color-blue {
	color: #06c;
}
.ql-color-purple {
	color: #93f;
}
.ql-color-gray {
	color: rgb(161, 161, 161);
}
.ql-font-serif {
	font-family: Georgia, Times New Roman, serif;
}
.ql-font-monospace {
	font-family: Monaco, Courier New, monospace;
}
.ql-size-small {
	font-size: 0.75em;
}
.ql-size-large {
	font-size: 1.5em;
}
.ql-size-huge {
	font-size: 2.5em;
}
.ql-direction-rtl {
	direction: rtl;
	text-align: inherit;
}
.ql-align-center {
	text-align: center;
}
.ql-align-justify {
	text-align: justify;
}
.ql-align-right {
	text-align: right;
}

.dataTables_paginate .paginate_button {
  font-weight: 500;
  cursor: pointer;
  color: #5e6278;
  font-size: 13px !important;
}

.dataTables_paginate .paginate_button:hover {
  color: #009ef7;
}

.dataTables_paginate .paginate_input {
  background-color: #f5f8fa;
  color: #5e6278;
  padding: 0.55rem 0.75rem;
  border-radius: 0.475rem;
  font-size: 1.1rem;
  border: 0px;
  appearance: none;
  width: 60px;
  display: inline;
}

.dataTables_paginate .paginate_input:focus {
  border: 0px;
  outline: none !important;
  border-color: #f5f8fa;
}

body.dark-mode .dataTables_paginate .paginate_input,
[data-bs-theme="dark"] .dataTables_paginate .paginate_input {
  background-color: #1b1b29;
  border: 1px solid #1b1b29;
  color: #e1e3ea;
}

body.dark-mode .dataTables_paginate .paginate_input:focus,
[data-bs-theme="dark"] .dataTables_paginate .paginate_input:focus {
  outline: none !important;
  box-shadow: 0 0 0 1px rgba(80, 205, 137, 0.25);
}

.dataTables_paginate .paginate_button:hover{
  color: #009ef7 !important;
}

#editor {
  margin: 0;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
}

/* Select2 en modales: dropdown se posiciona con position:fixed desde JS (coordenadas de vista) */
.modal .select2-dropdown {
  z-index: 1056;
}

.utilidad-flotante-precio-lista {
  position: fixed;
  z-index: 1070;
  min-width: 210px;
  max-width: 320px;
  pointer-events: none;
}

.utilidad-flotante-precio-lista--modal {
  min-width: 0;
  max-width: none;
  box-sizing: border-box;
}

/* Asegurar que el input de búsqueda sea visible, focusable y que el cursor (caret) se vea */
.modal .select2-dropdown .select2-search__field {
  opacity: 1;
  position: relative;
  z-index: 1;
  caret-color: currentColor;
  color: inherit;
}
.modal .select2-dropdown .select2-search {
  cursor: text;
}

/* Dark mode (clase Metronic en body o tema Bootstrap): .btn-close usa SVG negro; sin esto no se ve en cabeceras/fondos oscuros */
body.dark-mode .btn-close,
[data-bs-theme="dark"] .btn-close {
  filter: var(--bs-btn-close-white-filter, invert(1) grayscale(100%) brightness(200%));
}

/* Los estilos del splash (html.odp-splash-* body) tienen especificidad (0,1,2) y persisten
   durante toda la sesión, superando los bundles de tema (0,0,1). !important los anula. */
body.dark-mode {
  background-color: #151521 !important;
}
html.odp-splash-dark body:not(.dark-mode) {
  background-color: #f5f8fa !important;
}
body:not(.dark-mode) {
  background-color: #f5f8fa !important;
}
html:not(.odp-splash-dark) {
  background-color: #f5f8fa !important;
}

/* Toolbar global de vistas Vue (kt_toolbar) con fondo blanco como productivo */
body:not(.dark-mode) #kt_toolbar {
  background-color: #ffffff !important;
}

/* Menú resumen: el enlace debe ocupar todo el ancho del ítem (Metronic lo deja al ancho del texto) */
#menu-resumen > .menu-item > .menu-link,
#menu-extendido > .menu-item > .menu-link {
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box;
}

/* Toasts: opacos y colores sólidos de Metronic */
#toastr-container > div,
.toastr {
  opacity: 1 !important;
}
.toastr.toastr-success {
  background-color: #50CD89 !important;
  color: #fff !important;
}
.toastr.toastr-error {
  background-color: #F1416C !important;
  color: #fff !important;
}
.toastr.toastr-warning {
  background-color: #FFC700 !important;
  color: #fff !important;
}
.toastr.toastr-info {
  background-color: #7239EA !important;
  color: #fff !important;
}

.producto-linea-thumb {
  position: relative;
  width: 36px;
  height: 36px;
  border-radius: 0.35rem;
  background: var(--bs-gray-100, #f5f8fa);
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}
.producto-linea-thumb img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
body.dark-mode .producto-linea-thumb {
  background: #1e1e2d;
}

.producto-linea-thumb .numero-partida {
  position: absolute;
  right: 0;
  bottom: 0;
  padding: 1px 3px;
  border-radius: 0.2rem 0 0;
  background: rgba(0, 0, 0, 0.55);
  color: #fff;
  font-size: 0.625rem;
  font-weight: 600;
  line-height: 1.15;
  pointer-events: none;
  user-select: none;
}

.producto-linea-sku {
  color: var(--bs-gray-600, #7e8299);
  font-size: 0.8rem;
  font-weight: 500;
  line-height: 1.3;
  word-break: break-word;
}
.producto-linea-sku a {
  color: inherit;
  text-decoration: none;
}
.producto-linea-sku a:hover,
.producto-linea-sku a:focus {
  color: inherit;
  text-decoration: none;
}
.producto-linea-existencias {
  font-weight: 400;
}
body.dark-mode .producto-linea-sku {
  color: #9899ac;
}

@media (max-width: 767.98px) {
  .draggable-zone > .row.draggable > [class*="col-"]:not(:first-child):not(.separator) {
    margin-top: 0.75rem;
  }
}

.popover-impuestos-dashboard {
  max-width: 280px;
}
.popover-impuestos-dashboard .popover-body {
  min-width: 200px;
}

.select2-producto {
  display: flex;
  align-items: flex-start;
  gap: 0.6rem;
  min-width: 0;
  padding: 0.15rem 0;
}
.select2-producto__thumb {
  flex: 0 0 44px;
  width: 44px;
  height: 44px;
  border-radius: 0.35rem;
  background: var(--bs-gray-100, #f5f8fa);
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}
.select2-producto__thumb img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.select2-producto__texto {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  min-width: 0;
  flex: 1 1 auto;
}
.select2-producto__nombre {
  font-weight: 500;
  color: var(--bs-gray-900, #181c32);
  line-height: 1.25;
  word-break: break-word;
}
.select2-producto__sku-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.4rem;
}
.select2-producto__sku {
  color: var(--bs-gray-600, #7e8299);
  font-size: 0.8rem;
  line-height: 1.3;
}
.select2-producto__existencias {
  color: var(--bs-gray-500, #a1a5b7);
  font-size: 0.8rem;
  line-height: 1.3;
  font-variant-numeric: tabular-nums;
}
.select2-producto__existencias::before {
  content: "·";
  margin-right: 0.35rem;
  color: var(--bs-gray-400, #b5b5c3);
}
.select2-producto__precio {
  font-weight: 500;
  color: var(--bs-primary, #009ef7);
  font-size: 0.9rem;
  line-height: 1.2;
}
.select2-container--default .select2-results__option--highlighted .select2-producto__nombre,
.select2-container--default .select2-results__option--highlighted .select2-producto__sku,
.select2-container--default .select2-results__option--highlighted .select2-producto__existencias,
.select2-container--default .select2-results__option--highlighted .select2-producto__existencias::before,
.select2-container--default .select2-results__option--highlighted .select2-producto__precio {
  color: #fff;
}
.select2-container--default .select2-results__option--highlighted .select2-producto__thumb {
  background: rgba(255, 255, 255, 0.2);
}
.select2-producto--seleccion {
  align-items: center;
  max-width: 100%;
  padding: 0;
}
.select2-producto--seleccion .select2-producto__thumb {
  flex-basis: 28px;
  width: 28px;
  height: 28px;
}
.select2-producto--seleccion .select2-producto__nombre,
.select2-producto--seleccion .select2-producto__sku {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.select2-container--default .select2-selection--single:has(.select2-producto--seleccion) {
  height: auto;
  min-height: calc(1.5em + 1.5rem + 2px);
  display: flex;
  align-items: center;
}
.select2-container--default .select2-selection--single:has(.select2-producto--seleccion) .select2-selection__rendered {
  padding-top: 0.25rem;
  padding-bottom: 0.25rem;
  display: flex;
  align-items: center;
}
body.dark-mode .select2-producto__thumb {
  background: #1e1e2d;
}
body.dark-mode .select2-producto__nombre {
  color: #fff;
}
body.dark-mode .select2-producto__sku,
body.dark-mode .select2-producto__existencias,
body.dark-mode .select2-producto__existencias::before {
  color: #9899ac;
}

.buscador-producto-scan__dropdown {
  display: none;
  position: fixed;
  max-height: 320px;
  overflow-y: auto;
  background: #fff;
  border: 1px solid var(--bs-gray-300, #e4e6ef);
  border-radius: 0.475rem;
  box-shadow: 0 0.5rem 1.5rem rgba(0, 0, 0, 0.12);
  z-index: 2000;
  padding: 0.35rem 0;
}
.buscador-producto-scan__dropdown.is-open {
  display: block;
}
.buscador-producto-scan__item {
  display: block;
  width: 100%;
  padding: 0.45rem 0.85rem;
  cursor: pointer;
  background: transparent;
  border: 0;
  text-align: left;
}
.buscador-producto-scan__item.is-active,
.buscador-producto-scan__item:hover {
  background: var(--bs-primary, #009ef7);
}
.buscador-producto-scan__item.is-active .select2-producto__nombre,
.buscador-producto-scan__item.is-active .select2-producto__sku,
.buscador-producto-scan__item.is-active .select2-producto__existencias,
.buscador-producto-scan__item.is-active .select2-producto__existencias::before,
.buscador-producto-scan__item.is-active .select2-producto__precio,
.buscador-producto-scan__item:hover .select2-producto__nombre,
.buscador-producto-scan__item:hover .select2-producto__sku,
.buscador-producto-scan__item:hover .select2-producto__existencias,
.buscador-producto-scan__item:hover .select2-producto__existencias::before,
.buscador-producto-scan__item:hover .select2-producto__precio {
  color: #fff;
}
.buscador-producto-scan__item.is-active .select2-producto__thumb,
.buscador-producto-scan__item:hover .select2-producto__thumb {
  background: rgba(255, 255, 255, 0.2);
}
.buscador-producto-scan__vacio,
.buscador-producto-scan__cargando {
  padding: 0.65rem 0.85rem;
  color: var(--bs-gray-500, #a1a5b7);
  font-size: 0.9rem;
}
body.dark-mode .buscador-producto-scan__dropdown {
  background: #1e1e2d;
  border-color: #323248;
}

.card .card-header .card-toolbar.card-toolbar-productos {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 0.5rem;
  min-width: 0;
  max-width: 100%;
}
.card .card-header .card-toolbar.card-toolbar-productos .buscador-producto-scan-wrap {
  flex: 1 1 0%;
  min-width: 0;
  width: auto;
  max-width: 100%;
}
.card .card-header .card-toolbar.card-toolbar-productos .buscador-producto-scan-wrap .form-control {
  width: 100%;
  min-width: 0;
  max-width: 100%;
}
.card .card-header .card-toolbar.card-toolbar-productos #agregar-producto {
  flex: 0 0 auto;
  flex-shrink: 0;
  white-space: nowrap;
}
@media (max-width: 991.98px) {
  .card .card-header .card-toolbar.card-toolbar-productos {
    width: 100%;
    margin-left: 0 !important;
    margin-right: 0;
  }
}
@media (max-width: 575.98px) {
  .card .card-header .card-toolbar.card-toolbar-productos #agregar-producto {
    padding-left: 0.65rem;
    padding-right: 0.65rem;
  }
}

/*
 * iOS hace zoom al enfocar un campo con letra menor a 16px y el <meta viewport>
 * no lo evita: Safari ignora maximum-scale desde iOS 10.
 */
@media (pointer: coarse) {
	.form-control:not(.odp-campo-fecha),
	input:not([type='checkbox']):not([type='radio']):not(.odp-campo-fecha),
	select,
	textarea {
		font-size: 16px;
	}
}

.agenda-evento {
	display: flex;
	align-items: center;
	min-width: 0;
	gap: 0.15rem;
}
.agenda-evento-avatares {
	display: flex;
	flex-shrink: 0;
	align-items: center;
}
.agenda-evento-texto {
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

@media (max-width: 767.98px) {
	#calendario .fc-daygrid-event .agenda-evento-avatares {
		display: none;
	}
	#calendario .fc-toolbar-title {
		font-size: 1.05rem;
	}
	#calendario .fc-button {
		padding: 0.4rem 0.65rem;
		font-size: 0.85rem;
	}
	#calendario .fc-col-header-cell .fc-col-header-cell-cushion {
		font-size: 0.85rem;
	}
	#calendario .fc-daygrid-event {
		font-size: 0.7rem;
	}
	#calendario .fc-list-event-title,
	#calendario .fc-list-event-time {
		font-size: 0.9rem;
	}
	#calendario .fc-list-table td {
		padding: 0.55rem 0.65rem;
	}
}