/* ============================================
   FORMULARIOS: MISMA ALTURA INPUTS Y SELECTS
   ============================================ */
.content-wrapper .form-control,
.content-wrapper select.form-control {
  min-height: 38px;
}

/* Dejar espacio superior para el navbar fijo (en todas las vistas) */
.content-wrapper {
  padding-top: 4.5rem !important;
}

/* Asegurar que el navbar principal quede siempre visible sobre el contenido */
.main-header.navbar {
  z-index: 1050 !important;
}

/* Mejorar legibilidad del icono de despliegue del usuario en el navbar */
.main-header .nav-item.dropdown > .nav-link .fa-chevron-down {
  font-size: 0.8rem;
  color: #495057;
  opacity: 0.9;
}

.main-header .nav-item.dropdown > .nav-link:hover .fa-chevron-down {
  color: #212529;
}
/* Compatibilidad .form-select (estilo BS5) con BS4: misma altura que form-control */
.form-select {
  display: block;
  width: 100%;
  height: calc(2.25rem + 2px);
  padding: .375rem .75rem;
  font-size: 1rem;
  line-height: 1.5;
  color: #495057;
  background-color: #fff;
  background-clip: padding-box;
  border: 1px solid #ced4da;
  border-radius: .25rem;
}
.content-wrapper .form-select {
  min-height: 38px;
  height: auto;
}

/* ============================================
   HABILITAR SCROLL VERTICAL EN TODAS LAS VISTAS
   ============================================ */

/* Habilitar scroll en html (incluyendo cuando tiene clase os-html de OverlayScrollbars) */
html,
html.os-html,
html:not(.os-html) {
    overflow-y: auto !important;
    overflow-x: auto !important;
    height: auto !important;
    max-height: none !important;
    position: relative !important;
}

/* Habilitar scroll en body */
body,
body.os-dragging {
    overflow-y: auto !important;
    overflow-x: auto !important;
    height: auto !important;
    max-height: none !important;
    position: relative !important;
}

/* Cuando modal está abierto, el body no debe hacer scroll (normal de Bootstrap) */
/* PERO el modal en sí debe tener scroll */
body.modal-open {
    overflow: hidden !important;
    padding-right: 0 !important;
}

body.modal-open .modal {
    overflow-y: auto !important;
}

body.modal-open .modal-dialog {
    overflow-y: visible !important;
}

body.modal-open .modal-content {
    overflow-y: visible !important;
}

body.modal-open .modal-body {
    overflow-y: auto !important;
    max-height: calc(100vh - 200px) !important;
}

/* ============================================
   ESTILOS ESPECÍFICOS PARA MODALES
   ============================================ */

/* Modal base - permitir scroll en el modal mismo */
.modal,
.modal.fade,
.modal.show {
    overflow-y: auto !important;
    overflow-x: auto !important;
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
}

.modal-open .modal {
    overflow-y: auto !important;
    overflow-x: auto !important;
}

/* Modal dialog - estructura flex */
.modal-dialog {
    overflow-y: visible !important;
    overflow-x: visible !important;
    max-height: 90vh !important;
    height: auto !important;
    margin: 30px auto !important;
    display: flex !important;
    flex-direction: column !important;
    position: relative !important;
}

/* Modal content - contenedor flex principal */
.modal-content {
    overflow-y: visible !important;
    overflow-x: visible !important;
    max-height: 90vh !important;
    display: flex !important;
    flex-direction: column !important;
    position: relative !important;
}

/* Modal body - área con scroll */
.modal-body {
    flex: 1 1 auto !important;
    overflow-y: auto !important;
    overflow-x: auto !important;
    max-height: calc(90vh - 150px) !important;
    min-height: 200px !important;
    padding: 20px !important;
    position: relative !important;
}

/* Modal footer - siempre visible */
.modal-footer {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    padding: 15px 20px !important;
    border-top: 1px solid #dee2e6 !important;
    flex-shrink: 0 !important;
    position: relative !important;
    z-index: 10 !important;
    background-color: #fff !important;
    margin-top: 0 !important;
}

/* ============================================
   ESTILOS ESPECÍFICOS PARA MODAL NUEVO CLIENTE
   ============================================ */

/* Modal nuevo_cliente - reglas específicas y agresivas */
#nuevo_cliente.modal,
.modal#nuevo_cliente {
    overflow-y: auto !important;
    overflow-x: auto !important;
    position: fixed !important;
    z-index: 1050 !important;
}

#nuevo_cliente .modal-dialog,
.modal#nuevo_cliente .modal-dialog {
    max-height: 90vh !important;
    height: auto !important;
    margin: 30px auto !important;
    display: flex !important;
    flex-direction: column !important;
}

#nuevo_cliente .modal-content,
.modal#nuevo_cliente .modal-content {
    max-height: 90vh !important;
    height: auto !important;
    display: flex !important;
    flex-direction: column !important;
    overflow: visible !important;
}

#nuevo_cliente .modal-body,
.modal#nuevo_cliente .modal-body {
    flex: 1 1 auto !important;
    overflow-y: scroll !important;
    overflow-x: auto !important;
    max-height: calc(90vh - 150px) !important;
    min-height: 300px !important;
    padding: 20px !important;
    position: relative !important;
    /* Forzar scrollbar visible */
    scrollbar-width: thin !important;
    scrollbar-color: #888 #f1f1f1 !important;
    /* Forzar que el contenido pueda hacer scroll */
    height: auto !important;
    /* Asegurar que el contenido no se corte */
    overflow: auto !important;
}

/* Scrollbar visible para Webkit (Chrome, Safari, Edge) */
#nuevo_cliente .modal-body::-webkit-scrollbar,
.modal#nuevo_cliente .modal-body::-webkit-scrollbar {
    width: 12px !important;
    display: block !important;
}

#nuevo_cliente .modal-body::-webkit-scrollbar-track,
.modal#nuevo_cliente .modal-body::-webkit-scrollbar-track {
    background: #f1f1f1 !important;
    border-radius: 10px !important;
}

#nuevo_cliente .modal-body::-webkit-scrollbar-thumb,
.modal#nuevo_cliente .modal-body::-webkit-scrollbar-thumb {
    background: #888 !important;
    border-radius: 10px !important;
}

#nuevo_cliente .modal-body::-webkit-scrollbar-thumb:hover,
.modal#nuevo_cliente .modal-body::-webkit-scrollbar-thumb:hover {
    background: #555 !important;
}

#nuevo_cliente .modal-footer,
.modal#nuevo_cliente .modal-footer {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    padding: 15px 20px !important;
    border-top: 1px solid #dee2e6 !important;
    flex-shrink: 0 !important;
    position: relative !important;
    z-index: 10 !important;
    background-color: #fff !important;
    visibility: visible !important;
    opacity: 1 !important;
}

/* Habilitar scroll en content-wrapper */
.content-wrapper,
.wrapper .content-wrapper {
    overflow-y: auto !important;
    overflow-x: auto !important;
    min-height: calc(100vh - 57px);
    height: auto !important;
}

/* Habilitar scroll en wrapper */
.wrapper,
body .wrapper {
    overflow-y: auto !important;
    overflow-x: auto !important;
    height: auto !important;
}

/* Habilitar scroll en section content */
section.content,
.content {
    overflow-y: auto !important;
    overflow-x: auto !important;
}

/* Asegurar que las tarjetas y contenedores puedan hacer scroll */
.card {
    overflow-y: visible !important;
    overflow-x: visible !important;
}

.card-body {
    overflow-y: visible !important;
    overflow-x: visible !important;
}

/* Override para OverlayScrollbars si está bloqueando el scroll */
html.os-html > .os-host {
    overflow: visible !important;
    height: auto !important;
    max-height: none !important;
}

html.os-html > .os-host > .os-padding {
    overflow: visible !important;
}

html.os-html > .os-host > .os-content {
    overflow: visible !important;
}

/* Asegurar que el contenido dentro de os-host pueda hacer scroll */
html.os-html > .os-host > .os-padding > * {
    overflow-y: auto !important;
}

/* Ocultar visualmente la barra de scroll pero mantener funcionalidad */
html {
    scrollbar-width: thin;
    /*Firefox*/
}

/*Webkit(Chrome, Android browser, Safari, Edge...)*/
html::-webkit-scrollbar {
    width: 8px;
}

html::-webkit-scrollbar-track {
    background: #f1f1f1;
}

html::-webkit-scrollbar-thumb {
    background: #888;
    border-radius: 4px;
}

html::-webkit-scrollbar-thumb:hover {
    background: #555;
}

/* input  numerico */
.input-number {
    position: relative;
}

/*Chrome:*/
input[type="number"].inpt-num::-webkit-outer-spin-button,
input[type="number"].inpt-num::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

/*Firefox*/
input[type="number"].inpt-num {
    -moz-appearance: textfield;
}

input[type="number"].inpt-num:hover,
input[type="number"].inpt-num:focus {
    -moz-appearance: number-input;
}

/*Other*/
input[type=number].inpt-num::-webkit-inner-spin-button,
input[type=number].inpt-num::-webkit-outer-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

.input-number input {
    float: left;
    display: block;
}

.input-number input:focus {
    outline: 0;
}

.input-number-nav {
    float: left;
    position: relative;
    height: 36px;
}

.input-number-button {
    position: relative;
    cursor: pointer;
    border: 1px solid #eee;
    width: 20px;
    text-align: center;
    color: #333;
    font-size: 12px;
    font-family: "Trebuchet MS", Helvetica, sans-serif !important;
    line-height: 1.7;
    -webkit-transform: translateX(-100%);
    transform: translateX(-100%);
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    -o-user-select: none;
    user-select: none;
}

.input-number-button.input-number-up {
    background-color: transparent !important;
    border: none !important;
    position: absolute !important;
    height: 50% !important;
    top: 0 !important;
    border-bottom: 1px solid #eee !important;
}

.input-number-button.input-number-up:hover {
    background-color: #e6f2fc !important;
}

.input-number-button.input-number-down {
    background-color: transparent !important;
    border: none !important;
    position: absolute !important;
    bottom: -1px !important;
    height: 50% !important;
}

.input-number-button.input-number-down:hover {
    background-color: #e6f2fc !important;
}

/* se utiliza para evitar cambiar  valor  input */
.afnu-vac {
    pointer-events: none;
}

/* fin input numerico */
.nota-credito-link {
    color: #fff;
    background: #1f4ff5;
}

.nota-credito-link:hover {
    color: #6e7073;
    background: white;
}

/* --- estilos dropdown --- */
.dropdown-item:hover {
    background: #0275d9;
    color: #fff !important;
}

.autocomplete-dropdown-container {
    z-index: 1070;
}

/* para posicion dropdown tabla modal con pocos regitros */
/*
.dropdown-table {
    position: fixed !important;
    z-index: 20;
    left: unset !important;
    top: unset !important;
    margin-top: 40px;
  }
  */

/* --- estilos configuracion empresa--- */
.nav-con {
    background: #fcf9f9;
    color: #5a5c69;
    outline: 0 !important;
}

.nav-con:hover {
    background: white;
    color: #5a5c69;
}

.nav-row {
    padding-right: 3px;
}

/*---------------Estilos Pagina------------------*/
.input_error {
    border: 1px solid red !important;
}

.border-input {
    min-height: calc(1.5em + .75rem + 2px);
    padding: .375rem .75rem;
    text-align: left;
    border: 1px solid #d1d3e2;
    border-radius: .35rem;
    overflow: auto;
}

.input_group_buscar {
    border-top-right-radius: .35rem !important;
    border-bottom-right-radius: .35rem !important;
}

.carga {
    font-size: 20px;
    color: #2690bf;
    font-family: Arial, Helvetica, sans-serif;
    position: fixed;
    left: 0;
    right: 0;
}

/* tooltip danger*/
.tooltip-danger .tooltip>.tooltip-inner {
    background-color: #F65252 !important;
}

.tooltip-danger>.bs-tooltip-top .arrow::before, .bs-tooltip-auto[x-placement^="top"] .arrow::before {
    border-top-color: #F65252 !important;
}

.tooltip-danger>.bs-tooltip-right .arrow::before, .bs-tooltip-auto[x-placement^="right"] .arrow::before {
    border-right-color: #F65252 !important;
}

.tooltip-danger>.bs-tooltip-bottom .arrow::before, .bs-tooltip-auto[x-placement^="bottom"] .arrow::before {
    border-bottom-color: #F65252 !important;
}

.tooltip-danger>.bs-tooltip-left .arrow::before, .bs-tooltip-auto[x-placement^="left"] .arrow::before {
    border-left-color: #F65252 !important;
}

/* tooltip success */
.tooltip-success .tooltip>.tooltip-inner {
    background-color: #28a745 !important;
}

.tooltip-success>.bs-tooltip-top .arrow::before, .bs-tooltip-auto[x-placement^="top"] .arrow::before {
    border-top-color: #28a745 !important;
}

.tooltip-success>.bs-tooltip-right .arrow::before, .bs-tooltip-auto[x-placement^="right"] .arrow::before {
    border-right-color: #28a745 !important;
}

.tooltip-success>.bs-tooltip-bottom .arrow::before, .bs-tooltip-auto[x-placement^="bottom"] .arrow::before {
    border-bottom-color: #28a745 !important;
}

.tooltip-success>.bs-tooltip-left .arrow::before, .bs-tooltip-auto[x-placement^="left"] .arrow::before {
    border-left-color: #28a745 !important;
}

/* span errror */
.span_error {
    background-color: #F65252;
    border: 4px;
    color: white;
    font-size: 12pt;
    font-family: Verdana;
    margin-left: 0px;
    /*posicion izquierda derecha*/
    margin-top: 8px;
    /*posicion arriba  abajo*/
    padding: 3px 20px;
    text-align: center;
    z-index: 100;
    position: absolute;
}

.span_error:before {
    border-left: 12px solid transparent;
    border-right: 12px solid transparent;
    border-bottom: 12px solid #F65252;
    content: "";
    display: block;
    height: 0;
    left: calc(3% - 3px);
    position: absolute;
    z-index: 100;
    top: -8px;
    width: 0;
}

.boton_cierra {
    font-size: 24px;
    width: 19px;
    height: 19px;
    top: -9px;
    right: -9px;
    border-radius: 100%;
    background: #fff;
    position: absolute;
    cursor: pointer;
    color: #F65252;
    line-height: 21px;
}

/* fin span errror */
.menr {
    margin-top: 45px;
}

/* estilos cargando pagina */
.capag {
    position: fixed;
    top: 50%;
    left: 50%;
    -webkit-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
    z-index: 1150 !important;
}

/* estilos cerrar session */
.cacsu {
    position: fixed;
    top: 50%;
    left: 50%;
    -webkit-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
    z-index: 1150 !important;
}

.boton_quita {
    color: #ff2d00;
    background-color: transparent;
    border: none;
}

.boton_agrega {
    color: #36cd48;
    background-color: transparent;
    border: none;
}

.boton_transparente {
    background-color: transparent;
    border: none;
}

h3 {
    color: #40464a;
}

/* estilos  tabla*/
.scroll-tabla {
    overflow-y: auto;
    max-height: 395px;
}

.scroll-tabla {
    width: 100%;
    -layout: fixed;
}

.scroll-tabla th {
    top: 0;
    position: sticky;
    z-index: 1;
    background-color: white;
    border: none;
}

.table-fixed {
    overflow-y: auto;
    height: 550px;
}

.table-fixed th {
    position: sticky;
    top: 0;
}

.th-color {
    background-color: #76d0d0 !important;
}

.tabla_scroll_inferior {
    overflow-x: auto;
}

.none {
    display: none;
}

/* tabla agregar producto centrado */
.table-vertical-middle td {
    vertical-align: middle;
}

.select_readonly {
    background-color: #e4e9ec !important;
    pointer-events: none;
}

optgroup[label] {
    font-style: normal;
    color: #b2b3be;
}

.border_none {
    border: none;
}

.cantidad_color {
    color: #ff2d00;
}

#include_modal {
    text-align: center;
}

#modal-width-80 {
    max-width: 80% !important;
    width: 80% !important;
}

/* Asegurar que modal-width-80 tenga altura máxima y scroll */
#modal-width-80.modal-dialog {
    max-height: 90vh !important;
    display: flex !important;
    flex-direction: column !important;
}

#modal-width-90 {
    max-width: 90%;
}

.bagp {
    width: 10px !important;
    height: 30px !important;
    text-align: center;
}

.btn-tra {
    opacity: 0.0;
    pointer-events: none;
    cursor: default;
}

.check {
    color: #229115;
}

.ico-danger {
    color: #ff0202;
}

.btn-error {
    color: #f9360c;
}

/*-- soluciona problema overlayscrollbars modal bootstrap --*/
.os-padding {
    z-index: auto !important;
}

/*-- estilos menu --- */
/*
html.os-html>.os-host>.os-scrollbar {
    z-index: 1 !important;
}
*/
.layout-fixed .wrapper .sidebar {
    height: calc(100vh - (0rem + 1px));
}

.nav-flat.nav-sidebar>.nav-item .nav-treeview, .nav-flat.nav-sidebar>.nav-item>.nav-treeview {
    background-color: #fff !important;
}

.nav-flat.nav-sidebar>.nav-item .nav-treeview .nav-item>.nav-link, .nav-flat.nav-sidebar>.nav-item>.nav-treeview .nav-item>.nav-link {
    border-left: 0px;
}

.nav-treeview a {
    color: #000 !important;
}

.nav-treeview a:hover {
    background: #f1efef !important;
}

/* --- estilos menu menu movil--- */
.boton_menu_movil {
    display: none;
}

/* adaptabilidad para pantallas  pequeñas*/
@media(max-width:991.98px) {

    /* --- estilos menu menu movil--- */
    .boton_menu_movil {
        display: block;
    }

    .wrapper .content-wrapper {
        margin-top: calc(3.5rem + 1px);
    }

}