.ui-autocomplete {
  position: absolute;
  top: 100%;
  left: 0;
  z-index: 100000 ! important;
  display: none;
  float: left;
  min-width: 160px;
  padding: 25px 0;
  margin: 2px 0 0;
  list-style: none;
  font-size: 15px;
  text-align: left;
  color:#000000  ! important;
  background-color: #ffffff;
  border: 1px solid #cccccc;
  border: 1px solid rgba(0, 0, 0, 0.15);
  border-radius: 4px;
  -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
  box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
  background-clip: padding-box;
}

input[type="number"] {
    text-align: right;
}

.ui-autocomplete > li > div {
  display: block;
  padding: 3px 20px;
  clear: both;
  font-weight: normal;
  line-height: 1.42857143;
  color: #333333;
  white-space: nowrap;
}

.ui-state-hover,
.ui-state-active,
.ui-state-focus {
  text-decoration: none;
  color: #262626;
  background-color: #f5f5f5;
  cursor: pointer;
}

.ui-helper-hidden-accessible {
  border: 0;
  clip: rect(0 0 0 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
}



.ui-autocomplete {
    position: absolute;
    z-index: 1000;
    cursor: default;
    padding: 0;
    margin-top: 2px;
    list-style: none;
    background-color: #ffffff;
    border: 1px solid #ccc;
    -webkit-border-radius: 5px;
       -moz-border-radius: 5px;
            border-radius: 5px;
    -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
       -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
            box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
}
.ui-autocomplete > li {
  padding: 3px 20px;
}
.ui-autocomplete > li.ui-state-focus {
  background-color: #DDD;
}
.ui-helper-hidden-accessible {
  display: none;
}

.bottom-bar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 10px;
}
/* Efecto hover para el botón del acordeón de Líneas */
.accordion-linea .accordion-button {
  background-color: #fdfefe; 
  color:#000000;
}

.accordion-linea .accordion-button:hover {
  background-color: #f8f9f9;
  transition: background-color 0.3s ease-in-out;
  color:#000000;
  
}

.accordion-cuenta .accordion-button {
  background-color: #f5eef8; 
  color:#000000;
}

.accordion-cuenta .accordion-button:hover {
  background-color: #ebdef0;
  transition: background-color 0.3s ease-in-out;
  color:#000000;
  
}

#map {
  width: 100%;
  height: 500px;
  min-height: 500px;
  display: block;
}


.dropdown-menu {
    z-index: 1050; /* Asegura que esté por encima de scrolls */
}

.text-exito {
    color: #1F6E43 !important;
}

.text-success1 {
    color: #1F6E43 !important;
}

.btn-success1,
.btn-success1:hover,
.btn-success1:focus,
.btn-success1:active,
.btn-success1.active,
.btn-success1:focus-visible,
.btn-success1:not(:disabled):not(.disabled):active,
.btn-success1:not(:disabled):not(.disabled):active:focus {
    background-color: #1F6E43 !important;
    border-color: #1F6E43 !important;
    color: #fff !important;
    box-shadow: none !important;
}
.btn-success1:active,
.btn-success1.active {
    background-color: #145030 !important;
    border-color: #145030 !important;
}

#linea {
    border: 2px solid #1F6E43;
    background-color: #f8fdfb;
    color: #1F6E43;
    font-weight: 600;
}

/* hover */
#linea:hover {
    border-color: #175c38;
}

/* focus (cuando se hace click) */
#linea:focus {
    border-color: #145030;
    box-shadow: 0 0 0 0.2rem rgba(31, 110, 67, 0.25);
    background-color: #ffffff;
    color: #1F6E43;
}

/* opción seleccionada (al abrir) */
#linea option:checked {
    background-color: #1F6E43;
    color: #ffffff;
}
#linea {
    border-radius: 0.6rem;
    padding: 0.45rem 0.75rem;
}

    .titulo-grupo {
        background: #C47144 !important;
        color: #fff !important;
        font-size: 16px;
        font-weight: bold;
        padding: 14px;
        box-shadow: 0 2px 6px rgba(0,0,0,0.08);
        white-space: normal !important;   /*  importante */
    }

    .titulo-tabla {
        background: #929498 !important;
        color: #fff !important;
        font-size: 14px;
        font-weight: bold;
        padding: 14px;
        box-shadow: 0 2px 6px rgba(0,0,0,0.08);
        white-space: normal !important;   /*  importante */
    }
    
      .titulo-tabla-orange {
        background: #C47144 !important;
        color: #fff !important;
        font-size: 14px;
        font-weight: bold;
        padding: 14px;
        box-shadow: 0 2px 6px rgba(0,0,0,0.08);
        white-space: normal !important;   /* 
         importante */
    }
    
       .titulo-tabla-gray {
        background: #eeeeee !important;
        color: #000000 !important;
        font-size: 14px;
        font-weight: bold;
        padding: 14px;
        box-shadow: 0 2px 6px rgba(0,0,0,0.08);
        white-space: normal !important;   /*  importante */
    }

    .titulo-tabla-gray1 {
        background: #f2f6fa !important;
        color: #000000 !important;
        font-size: 12px; 
        padding: 14px;
        box-shadow: 0 2px 6px rgba(0,0,0,0.08);
        white-space: normal !important;   /*  importante */
    }

     .titulo-tabla-milky {
        background: #FFF8E6 !important;
        color: #000000 !important;
        font-size: 12px;
     
        padding: 14px;
        box-shadow: 0 2px 6px rgba(0,0,0,0.08);
        white-space: normal !important;   /*  importante */
    }

    .titulo-meses {
        background: #929498 !important;
        color: #fff !important;
        font-size: 12px;
        font-weight: bold;
        padding: 14px;
        box-shadow: 0 2px 6px rgba(0,0,0,0.08);
        white-space: normal !important;   /* 🔥 importante */
    }
    
       /* COLUMNAS */
    .col-mes {
        width: 80px;
        min-width: 80px;
    }
    .col-cliente {
        width: 200px;
        min-width: 200px;
        max-width: 200px;

        white-space: normal;        /* permite salto de línea */
        word-break: break-word;     /* corta palabras largas */
        overflow-wrap: anywhere;    /* rompe donde sea si es necesario */

        vertical-align: top;        /* texto alineado arriba */
        font-weight: 500;
    }

    .col-total   {
        width: 100px;
    }
    .col-porc    {
        width: 50px;
        font-size: 0.75rem;
    }

    td, th {
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    /* Contenedor scroll horizontal */
    .table-scroll {
        overflow-x: auto;
        width: 100%
    }

    /* Tabla */
    .tabla-inv {
        min-width: 1200px;
        font-size: 0.85rem;
        white-space: nowrap;
    }

    /* Encabezado fijo */
    .tabla-inv thead th {
        position: sticky;
        top: 0;
        z-index: 3;
        background-color: #f8f9fa;
        text-align: center;
        font-weight: 600;
    }

    /* Primera columna fija */
    .tabla-inv th:first-child,
    .tabla-inv td:first-child {
        position: sticky;
        left: 0;
        z-index: 4;
        background: #fff;
        text-align: start;
        font-weight: 500;
    }

    /* =========================
       FILA GRUPO (NO HOVER)
       ========================= */
    .fila-grupoR,
    .fila-grupoR td {
        background-color: #929498 !important;
        color: #ffffff !important;
        font-weight: 700;
    }

    /* =========================
       HOVER SOLO FILAS NORMALES
       ========================= */
    .tabla-inv.table-hover>tbody>tr:not(.fila-grupoR):hover>td {
        background-color: #f1f5ff !important;
    }

    /* =========================
       BLINDAR PRIMERA COLUMNA STICKY (NORMAL)
       ========================= */
    .tabla-inv tbody tr:hover td:first-child {
        background-color: inherit !important;
        color: inherit !important;
    }

    /* =========================
       BLINDAR PRIMERA COLUMNA STICKY (FILA GRUPO)
       ========================= */
    .tabla-inv tbody tr.fila-grupoR td:first-child,
    .tabla-inv tbody tr.fila-grupoR:hover td:first-child {
        background-color: #929498 !important;
        color: #ffffff !important;
    }


    /* Totales */
    .tabla-inv tfoot th,
    .tabla-inv tbody tr:last-child th {
        background: #e9ecef;
        font-weight: bold;
    }

    /* Scroll bonito */
    .table-scroll::-webkit-scrollbar {
        height: 10px;
    }

    .table-scroll::-webkit-scrollbar-thumb {
        background: #adb5bd;
        border-radius: 5px;
    }

    .th-orange {
        background-color: #F35800 !important;
        color: #ffffff !important;
    }

    .th-black {
        background-color: #000000 !important;
        color: #ffffff !important;
    }

    .th-white {
        background-color: #ffffff !important;
        color:  #000000!important;
    }

    .th-green {
        background-color: #1F6E43!important;
        color:  #ffffff!important;
    }

    .th-red {
        background-color: #F35800!important;
        color:  #ffffff!important;
    }


    .th-blue {
        background-color: #001E43 !important;
        color: #ffffff !important;
    }

    .th-gray {
        background-color: #929498 !important;
        color: #ffffff !important;
    }

    .th-cream {
        background-color: #fffff3 !important;
        color: #000000 !important;
    }

/* separador limpio */
.col-separador {
    width: 16px;
    min-width: 16px;
    max-width: 16px;
    background: transparent !important; /* sin fondo */
    padding: 0 !important;
    border: none !important; /* sin bordes */
}

/* eliminar cualquier borde que Bootstrap pueda aplicar */
.table-bordered td.col-separador,
.table-bordered th.col-separador {
    border: none !important;
}
.td-estilo-titulo {
    border: 2px solid #000 !important; /* asegura todos los bordes */
    border-top: 2px solid #000 !important; /* fuerza el superior */
    font-weight: 700; /* más grueso */
    font-size: 16px; /* tamaño más grande (ajusta a tu gusto) */
    text-align: center;
    vertical-align: middle;
    font-family: Arial, Helvetica, sans-serif;
    background-color: #fff;
}

.texto-vertical {
    writing-mode: vertical-rl;
    transform: rotate(180deg); /* para que se lea de abajo hacia arriba */
    text-align: center;
    vertical-align: middle;
    white-space: nowrap;
}
    .col-cliente {
        width: 200px;
        min-width: 200px;
        max-width: 200px;

        white-space: normal;
        /* permite salto de línea */
        word-break: break-word;
        /* corta palabras largas */
        overflow-wrap: anywhere;
        /* rompe donde sea si es necesario */

        vertical-align: top;
        /* texto alineado arriba */
        font-weight: 500;
    }

    .fila-total th,
    .fila-total td {
        padding: 14px 8px;
        font-weight: 700;
        font-size: 0.95rem;
    }

    .col-etiqueta {
    width: 30px;
    min-width: 30px;
    max-width: 30px;
    padding: 2px !important;
}

    .celda-detalle {
        transition: all 0.15s ease-in-out;
    }

    .celda-detalle:hover {
        font-style: italic;
        font-weight: bold;
        cursor: pointer;
        background-color: #f8f9fa;
        /* opcional */
    }

    .td-gray {
    background-color: #e9ecef;
}

.anio-header {
    user-select: none;
}

.toggle-icon {
    margin-right: 5px;
    font-weight: bold;
}

thead .anio-header.anio-activo {
    background-color: #082042;
    color: #fff;
}
 
.cell-financiero {
    font-size: 12px;
}

/* cada fila */
.cell-financiero .fila {
    display: grid;
    grid-template-columns: 80px 1fr; /* 🔥 columna fija */
    align-items: center;
}

/* números alineados */
.cell-financiero .num {
    text-align: right;   /* tipo Excel */
    display: block;
}

/* valor en azul */
.cell-financiero .valor .num {
    color: #0d6efd;
    font-weight: 600;
}

/* badge más compacto */
.cell-financiero .badge {
    justify-self: end;
    font-size: 10px;
    padding: 2px 6px;
}