/* ============================================================
   SISTEMA DE LISTAS UNIFICADO
   Inventario TX
   ============================================================
   - Limite maximo: 100 elementos
   - Precarga inicial: 10 elementos
   - Carga progresiva por scroll (lotes de 10)
   - Skeleton loader animado para carga inicial
   ============================================================ */

/* ── CONTENEDOR DE LISTA ──────────────────────────────── */
.lista-contenedor {
    max-height: var(--lista-max-altura);
    overflow-y: auto;
    scroll-behavior: smooth;
    border-radius: var(--radius-md);
    border: 1px solid var(--color-border);
    background: var(--color-surface);
    position: relative;
}

.lista-contenedor::-webkit-scrollbar {
    width: 6px;
}

.lista-contenedor::-webkit-scrollbar-track {
    background: transparent;
}

.lista-contenedor::-webkit-scrollbar-thumb {
    background: var(--color-border);
    border-radius: var(--radius-full);
}

.lista-contenedor::-webkit-scrollbar-thumb:hover {
    background: var(--color-muted);
}

/* ── ITEM DE LISTA ────────────────────────────────────── */
.lista-item {
    display: flex;
    align-items: center;
    padding: var(--lista-item-padding);
    gap: var(--space-sm);
    border-bottom: 1px solid var(--color-border);
    transition:
        background var(--transition-fast),
        transform var(--transition-fast);
    cursor: pointer;
    animation: deslizar-entrada 0.2s ease both;
}

.lista-item:last-child {
    border-bottom: none;
}

.lista-item:hover {
    background: var(--color-primary-light);
    transform: translateX(2px);
}

.lista-item:active {
    transform: scale(0.98);
}

.lista-item.seleccionado {
    background: var(--color-esmeralda-light);
    border-left: 3px solid var(--color-esmeralda);
}

/* Animacion escalonada: cada item aparece con delay */
.lista-item:nth-child(1)  { animation-delay: 0.00s; }
.lista-item:nth-child(2)  { animation-delay: 0.03s; }
.lista-item:nth-child(3)  { animation-delay: 0.06s; }
.lista-item:nth-child(4)  { animation-delay: 0.09s; }
.lista-item:nth-child(5)  { animation-delay: 0.12s; }
.lista-item:nth-child(6)  { animation-delay: 0.15s; }
.lista-item:nth-child(7)  { animation-delay: 0.18s; }
.lista-item:nth-child(8)  { animation-delay: 0.21s; }
.lista-item:nth-child(9)  { animation-delay: 0.24s; }
.lista-item:nth-child(10) { animation-delay: 0.27s; }

/* ── SKELETON LOADER ──────────────────────────────────── */
.lista-skeleton {
    display: flex;
    align-items: center;
    padding: var(--lista-item-padding);
    gap: var(--space-sm);
    border-bottom: 1px solid var(--color-border);
}

.lista-skeleton-linea {
    height: 14px;
    background: linear-gradient(
        90deg,
        var(--lista-skeleton-color) 25%,
        #f1f5f9 50%,
        var(--lista-skeleton-color) 75%
    );
    background-size: 200% 100%;
    animation: skeleton 1.5s ease-in-out infinite;
    border-radius: var(--radius-sm);
}

.lista-skeleton-linea.titulo   { width: 60%; }
.lista-skeleton-linea.detalle  { width: 35%; }
.lista-skeleton-linea.precio   { width: 25%; }

/* ── INDICADORES DE ESTADO ────────────────────────────── */
.lista-cargando,
.lista-fin,
.lista-vacia {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: var(--space-lg);
    color: var(--color-muted);
    font-size: var(--font-size-sm);
    gap: var(--space-sm);
}

.lista-cargando i {
    animation: pulso 1.5s ease-in-out infinite;
}

.lista-vacia {
    flex-direction: column;
    padding: var(--space-2xl) var(--space-lg);
}

.lista-vacia i {
    font-size: 2.5rem;
    margin-bottom: var(--space-sm);
    opacity: 0.3;
}

/* ── TABLA RESPONSIVE (listas tipo tabla) ─────────────── */
.lista-tabla {
    width: 100%;
    border-collapse: collapse;
}

.lista-tabla thead {
    position: sticky;
    top: 0;
    z-index: 1;
    background: var(--color-header);
    color: var(--color-header-text);
}

.lista-tabla th {
    padding: 0.75rem 1rem;
    text-align: left;
    font-size: var(--font-size-sm);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.lista-tabla td {
    padding: 0.75rem 1rem;
    border-bottom: 1px solid var(--color-border);
    font-size: var(--font-size-sm);
}

.lista-tabla tbody tr {
    transition: background var(--transition-fast);
}

.lista-tabla tbody tr:hover {
    background: var(--color-primary-light);
}

/* ── RESPONSIVE ───────────────────────────────────────── */
@media (max-width: 768px) {
    .lista-tabla {
        display: block;
    }

    .lista-tabla thead {
        display: none;
    }

    .lista-tabla tbody,
    .lista-tabla tr,
    .lista-tabla td {
        display: block;
    }

    .lista-tabla tr {
        padding: var(--space-md);
        border-bottom: 2px solid var(--color-border);
        margin-bottom: var(--space-sm);
        background: var(--color-surface);
        border-radius: var(--radius-md);
    }

    .lista-tabla td {
        padding: 0.25rem 0;
        border: none;
    }

    .lista-tabla td::before {
        content: attr(data-label);
        font-weight: 600;
        display: block;
        color: var(--color-muted);
        font-size: var(--font-size-xs);
        text-transform: uppercase;
        margin-bottom: 2px;
    }
}
