.loading .textfield,
.loading .form-group {
    position: relative;
    overflow: hidden;
    background: #e4e4e4;
    border-radius: 2px;
}

/* Esconde texto, labels, ícones, inputs, selects, spans, etc. */
.loading .textfield *,
.loading .form-group * {
    transition: none !important;
    visibility: hidden !important;
}

.loading .custom-placeholder {
    position: relative;
    overflow: hidden;
    background: #e4e4e4 !important;
    border-radius: 4px;
    box-shadow: none !important;
    border-color: transparent !important;
}

.loading .custom-placeholder * {
    visibility: hidden !important;
}

.loading .custom-placeholder::after {
    content: "";
    position: absolute;
    top: 0;
    left: -150px;
    height: 100%;
    width: 150px;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.4), transparent);
    animation: loading-skeleton 1.2s infinite;
}

/* Shimmer para os textfields e form-group */
.loading .textfield::after,
.loading .form-group::after {
    content: "";
    position: absolute;
    top: 0;
    left: -150px;
    height: 100%;
    width: 150px;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.4), transparent);
    animation: loading-skeleton 1.2s infinite;
}

/* 2️⃣ Tabelas dentro de qualquer container com .loading */
.loading .table-responsive {
    position: relative;
    background: linear-gradient(100deg, #e4e4e4 30%, #f0f0f0 50%, #e4e4e4 70%);
    background-size: 200% 100%;
    animation: loadingShimmer 1.8s linear infinite;
}

/* Esconde o conteúdo real da tabela */
.loading .table-responsive table {
    color: transparent;
}

/* Esconde botões, ícones, spans etc. dentro da tabela */
.loading table,
.loading .dt-info,
.loading .dt-paging {
    visibility: hidden;
}

/* === Animações ========================================================== */

/* shimmer para textfields/form-groups */
@keyframes loading-skeleton {
    0% {
        left: -150px;
    }

    100% {
        left: 100%;
    }
}

/* shimmer para tabelas */
@keyframes loadingShimmer {
    0% {
        background-position: 200% 0;
    }

    100% {
        background-position: -200% 0;
    }
}