/* ═══════════════════════════════════════════════════════════════════
   Panel carrito ERP — scroll horizontal ÚNICO en .carrito-panel-scroll
   (no por línea). Filas en una sola línea en PC (>=710px); alturas uniformes.
   ═══════════════════════════════════════════════════════════════════ */

:root {
    --carrito-control-altura: 2.125rem;
    --carrito-fuente-campo: 0.7rem;
    --carrito-fuente-etiqueta: 0.62rem;
    --carrito-fuente-monto: 0.72rem;
}

/* Contenedor del listado: una sola barra horizontal para todo el carrito */
.carrito-panel-scroll {
    overflow-y: auto;
    overflow-x: hidden;
    -webkit-overflow-scrolling: touch;
}

@media (min-width: 710px) {
    .carrito-panel-scroll {
        overflow-x: auto;
        scrollbar-width: thin;
        scrollbar-color: rgba(0, 0, 0, 0.35) rgba(0, 0, 0, 0.08);
    }

    .carrito-panel-scroll::-webkit-scrollbar {
        height: 8px;
        width: 8px;
    }

    .carrito-panel-scroll::-webkit-scrollbar-track {
        background: rgba(0, 0, 0, 0.06);
        border-radius: 4px;
    }

    .carrito-panel-scroll::-webkit-scrollbar-thumb {
        background: rgba(0, 0, 0, 0.35);
        border-radius: 4px;
    }

    /* Ancho mínimo del listado: una sola barra horizontal desplaza todas las líneas juntas */
    .carrito-panel-scroll:not(.carrito-panel-scroll--consignacion) .carrito-panel-contenido {
        min-width: max(100%, 680px);
        width: 100%;
    }

    /* Cada tarjeta/registro del carrito: mismo ancho mínimo para que los campos no se salgan por la derecha */
    .carrito-panel-scroll:not(.carrito-panel-scroll--consignacion) .carrito-panel-contenido > * {
        width: 100%;
        min-width: max(100%, 680px);
        box-sizing: border-box;
        overflow-x: clip;
    }
}

/* Etiquetas de campo (Cantidad, Precio, etc.) */
.carrito-panel-scroll .carrito-campo-label {
    display: block;
    font-size: var(--carrito-fuente-etiqueta);
    line-height: 1.15;
    margin-bottom: 0.2rem;
}

/* Altura uniforme: inputs, selects y caja de subtotal alineados */
.carrito-panel-scroll .carrito-input-grupo,
.carrito-panel-scroll .carrito-input-grupo .form-control,
.carrito-panel-scroll .carrito-input-grupo .input-group-text {
    min-height: var(--carrito-control-altura);
}

.carrito-panel-scroll .carrito-input-grupo .form-control,
.carrito-panel-scroll .carrito-input-monto {
    font-size: var(--carrito-fuente-campo) !important;
    line-height: 1.2;
    padding: 0.2rem 0.35rem !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

.carrito-panel-scroll .carrito-input-grupo .input-group-text {
    font-size: var(--carrito-fuente-campo);
    padding: 0.2rem 0.4rem;
}

.carrito-panel-scroll .carrito-form-select {
    min-height: var(--carrito-control-altura);
    font-size: var(--carrito-fuente-campo);
    padding-top: 0.2rem;
    padding-bottom: 0.2rem;
}

/* Fila de campos numéricos: una sola línea en PC (sin apilar subtotales) */
.carrito-panel-scroll .carrito-fila-campos {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 0.45rem;
    width: 100%;
}

@media (min-width: 710px) {
    /* Fila al 100% del registro (evita que max-content desborde la tarjeta blanca) */
    .carrito-panel-scroll .carrito-fila-campos {
        flex-wrap: nowrap;
        width: 100%;
        min-width: 0;
    }

    .carrito-panel-scroll .carrito-campo {
        flex: 0 0 auto;
        min-width: 0;
    }

    /* Ventas: cantidad + subtotal */
    .carrito-panel-scroll .carrito-fila-ventas:not(.carrito-fila-ventas-3col) .carrito-campo-cantidad {
        flex: 0 0 26%;
        max-width: 7rem;
    }

    .carrito-panel-scroll .carrito-fila-ventas:not(.carrito-fila-ventas-3col) .carrito-campo-subtotal {
        flex: 1 1 74%;
        min-width: 0;
    }

    /* Ventas con precio editable: cantidad + precio + subtotal */
    .carrito-panel-scroll .carrito-fila-ventas-3col .carrito-campo-cantidad {
        flex: 0 0 20%;
        max-width: 6.5rem;
    }

    .carrito-panel-scroll .carrito-fila-ventas-3col .carrito-campo-precio {
        flex: 0 0 24%;
        max-width: 7.5rem;
    }

    .carrito-panel-scroll .carrito-fila-ventas-3col .carrito-campo-subtotal {
        flex: 1 1 56%;
        min-width: 0;
    }

    /* Consignación entrega: cantidad + Ref. línea — ancho fijo por campo (legacy sin --consignacion) */
    .carrito-panel-scroll:not(.carrito-panel-scroll--consignacion) .carrito-fila-consignacion .carrito-campo-cantidad {
        flex: 0 0 40%;
        max-width: 40%;
        min-width: 0;
    }

    .carrito-panel-scroll:not(.carrito-panel-scroll--consignacion) .carrito-fila-consignacion .carrito-campo-subtotal {
        flex: 0 0 60%;
        max-width: 60%;
        min-width: 0;
    }

    /* Consignación entrega: tarjetas al ancho del contenido (no min-width 680px del carrito global) */
    .carrito-panel-scroll--consignacion {
        overflow-x: hidden;
    }

    .carrito-panel-scroll--consignacion .carrito-panel-contenido--consignacion {
        min-width: 0;
        width: 100%;
        display: flex;
        flex-direction: column;
        align-items: flex-start;
    }

    .carrito-panel-scroll--consignacion .carrito-panel-contenido--consignacion > .carrito-linea-consignacion {
        width: fit-content;
        max-width: 100%;
        min-width: 0;
    }

    .carrito-panel-scroll--consignacion .carrito-fila-consignacion {
        width: auto;
    }

    .carrito-panel-scroll--consignacion .carrito-fila-consignacion .carrito-campo-cantidad {
        flex: 0 0 auto;
        width: 6.25rem;
        max-width: 6.25rem;
    }

    .carrito-panel-scroll--consignacion .carrito-fila-consignacion .carrito-campo-subtotal {
        flex: 0 0 auto;
        width: auto;
        max-width: none;
        min-width: 9rem;
    }

    .carrito-panel-scroll--consignacion .carrito-subtotal-linea {
        width: auto;
        max-width: none;
    }

    .carrito-panel-scroll--consignacion .carrito-subtotal-etiqueta {
        flex: 0 0 auto;
        white-space: nowrap;
    }

    .carrito-panel-scroll--consignacion .carrito-subtotal-monto {
        max-width: none;
        flex: 0 0 auto;
    }

    .carrito-panel-scroll--consignacion .carrito-consignacion-etiqueta {
        width: auto !important;
        max-width: 100%;
    }

    /* Ventas POS (3 columnas): cantidad 25% + precio 25% + subtotal línea 50% */
    .carrito-panel-scroll .carrito-fila-ventas-pos.carrito-fila-ventas-3col .carrito-campo-cantidad,
    .carrito-panel-scroll .carrito-fila-ventas-pos.carrito-fila-ventas-3col .carrito-campo-precio {
        flex: 0 0 25%;
        max-width: 25%;
        min-width: 0;
    }

    .carrito-panel-scroll .carrito-fila-ventas-pos.carrito-fila-ventas-3col .carrito-campo-subtotal {
        flex: 0 0 50%;
        max-width: 50%;
        min-width: 0;
    }

    /* Entradas: cantidad + costo + precio venta + subtotal */
    .carrito-panel-scroll .carrito-fila-entradas .carrito-campo-cantidad {
        flex: 0 0 17%;
        max-width: 6.5rem;
    }

    .carrito-panel-scroll .carrito-fila-entradas .carrito-campo-costo,
    .carrito-panel-scroll .carrito-fila-entradas .carrito-campo-precio {
        flex: 0 0 20%;
        max-width: 7.5rem;
    }

    .carrito-panel-scroll .carrito-fila-entradas .carrito-campo-subtotal {
        flex: 1 1 43%;
        min-width: 0;
    }

    /* Ajustes: cantidad + tipo + subtotal/impacto */
    .carrito-panel-scroll .carrito-fila-ajustes .carrito-campo-cantidad {
        flex: 0 0 22%;
        max-width: 7rem;
    }

    .carrito-panel-scroll .carrito-fila-ajustes .carrito-campo-tipo {
        flex: 0 0 32%;
        min-width: 8.5rem;
    }

    .carrito-panel-scroll .carrito-fila-ajustes .carrito-campo-subtotal {
        flex: 1 1 46%;
        min-width: 0;
    }

    /* LPC: costo + precio + margen */
    .carrito-panel-scroll .carrito-fila-lpc .carrito-campo-costo,
    .carrito-panel-scroll .carrito-fila-lpc .carrito-campo-precio {
        flex: 0 0 24%;
        max-width: 8rem;
    }

    .carrito-panel-scroll .carrito-fila-lpc .carrito-campo-subtotal {
        flex: 1 1 52%;
        min-width: 0;
    }

    .carrito-panel-scroll .carrito-campo-cantidad {
        min-width: 5.5rem;
    }

    .carrito-panel-scroll .carrito-campo-precio,
    .carrito-panel-scroll .carrito-campo-costo {
        min-width: 6.5rem;
    }

    .carrito-panel-scroll .carrito-campo-tipo {
        min-width: 9rem;
    }

    .carrito-panel-scroll .carrito-campo-subtotal {
        min-width: 11rem;
    }
}

/* Subtotal / impacto / margen — misma altura que los inputs */
.carrito-panel-scroll .carrito-subtotal-linea {
    min-height: var(--carrito-control-altura);
    max-width: 100%;
    gap: 0.3rem;
    overflow: hidden;
    align-items: center;
    padding: 0.25rem 0.45rem !important;
}

.carrito-panel-scroll .carrito-subtotal-etiqueta {
    flex: 1 1 auto;
    min-width: 0;
    font-size: var(--carrito-fuente-etiqueta);
    line-height: 1.15;
    letter-spacing: 0.02em;
}

.carrito-panel-scroll .carrito-subtotal-monto,
.carrito-panel-scroll .carrito-monto-linea {
    flex: 0 1 auto;
    min-width: 0;
    max-width: 45%;
    font-size: var(--carrito-fuente-monto);
    line-height: 1.15;
    text-align: right;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Bloques de motivo/justificación: ancho completo debajo de la fila numérica */
.carrito-panel-scroll .carrito-bloque-secundario {
    width: 100%;
    flex: 0 0 100%;
}

/* Legacy wrappers: sin scroll propio por línea */
.carrito-panel-scroll .carrito-item-hscroll,
.carrito-panel-scroll .carrito-item-hscroll-inner {
    display: block;
    width: 100%;
    max-width: 100%;
    overflow: visible;
}
