.lmw-cmp-table-wrap {
    width: 100%;
    overflow-x: auto;
    /* overflow-y:hidden é obrigatório ao lado de overflow-x — definir só um eixo como não-visible
       força o navegador a resolver o outro (nunca definido, ficaria "visible") pra "auto"
       também (regra do CSS 2.1). Sem isso, esse wrap virava um container de scroll vertical
       "sem querer", e o transform:translateY() das linhas ainda não reveladas pela animação de
       entrada contava no scrollHeight do container — aparecia uma barra de scroll vertical
       enquanto as linhas não terminavam de entrar, sumindo quando a animação acabava. */
    overflow-y: hidden;
    /* Sem isso, um gesto de scroll (mouse wheel/trackpad) com o cursor em cima da tabela às
       vezes é "capturado" por esse container em vez de rolar a página normalmente — mesmo
       quando a tabela não está realmente maior que o container (overflow por fração de pixel
       já é suficiente pra ativar isso). overscroll-behavior-x:contain impede esse scroll
       horizontal interno de interferir/propagar pro scroll vertical da página. */
    overscroll-behavior-x: contain;
}

.lmw-cmp-table,
.lmw-cmp-table * {
    box-sizing: border-box;
}

.lmw-cmp-table {
    width: 100%;
    border-collapse: collapse;
    background: transparent;
}

/* Reset explícito — alguns temas/page builders aplicam fundo listrado padrão (tr:nth-child ou até
   td/th:nth-child, dependendo de quem) em qualquer <table> dentro do conteúdo, o que fazia a
   tabela parecer "zebrada" mesmo com o controle desativado. Confirmado em produção (site real)
   que um reset sem !important não é suficiente — o CSS do tema/builder tem prioridade maior que a
   nossa (carrega depois e/ou com seletor mais específico), então aqui é !important mesmo: esse
   fundo é uma decisão puramente do widget (controlada por .lmw-cmp-table--zebra), nunca deveria
   ser herdada de fora. O reset cobre tr E td/th porque o seletor exato que o host usa varia. */
.lmw-cmp-table tbody tr,
.lmw-cmp-table tbody tr:nth-child(even),
.lmw-cmp-table tbody tr:nth-child(odd) {
    background: transparent !important;
}

.lmw-cmp-table th,
.lmw-cmp-table td {
    /* reset explícito — alguns temas aplicam borda padrão em table/th/td globalmente (inclusive
       no topo do cabeçalho), o que fazia divisores "aparecerem" mesmo com o controle desativado.
       !important pela mesma razão do reset de fundo acima: CSS de tema/builder externo tem
       prioridade maior e um reset fraco não é garantia (ver BUG-007/BUG-008 no guia-ia.md). */
    border: none !important;
    background: transparent !important;
    padding: 14px 16px;
    text-align: left;
    vertical-align: middle;
}

/* !important nesses 3 blocos porque competem com o reset "border: none !important" acima —
   sem isso, o próprio reset do widget venceria os divisores que ele mesmo deveria desenhar. */
.lmw-cmp-table--hdivider td,
.lmw-cmp-table--hdivider th {
    border-bottom: 1px solid #e5e5e5 !important;
}

.lmw-cmp-table--vdivider td,
.lmw-cmp-table--vdivider th {
    border-right: 1px solid #e5e5e5 !important;
}

.lmw-cmp-table--vdivider td:last-child,
.lmw-cmp-table--vdivider th:last-child {
    border-right: none !important;
}

.lmw-cmp-table--header-sep thead th {
    border-bottom: 2px solid #111111 !important;
}

.lmw-cmp-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    vertical-align: middle;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    transition: transform 0.2s ease;
}

.lmw-cmp-icon svg {
    display: block;
    width: 15px;
    height: 15px;
    fill: #ffffff;
}

.lmw-cmp-icon--check { background: #00b67a; }
.lmw-cmp-icon--x { background: #ff4d4d; }

.lmw-cmp-table--icon-hover tbody tr:hover .lmw-cmp-icon {
    transform: scale(1.15);
}

.lmw-cmp-dash {
    display: inline-block;
    color: #cccccc;
    font-size: 18px;
    line-height: 1;
    vertical-align: middle;
}

/* Animação de entrada em cascata */
.lmw-cmp-table--entry tbody tr {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.5s ease, transform 0.5s ease;
    transition-delay: calc(var(--lmw-cmp-row-index, 0) * var(--lmw-cmp-stagger, 0.1s));
}

.lmw-cmp-table-wrap.lmw-cmp-visible .lmw-cmp-table--entry tbody tr {
    opacity: 1;
    transform: translateY(0);
}
