@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(8px);
    }
    to {
        opacity: 1;
        transform: none;
    }
}

.card-custom {
    animation: fadeInUp var(--transition-base) ease both;
}

.tabulator-row:hover {
    background: var(--color-primary-light);
    transition: background var(--transition-fast);
}

.tabulator .tabulator-header {
    border-bottom-color: var(--color-primary);
    color: var(--color-primary-dark);
}

.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort="ascending"] .tabulator-col-content .tabulator-col-sorter,
.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort="descending"] .tabulator-col-content .tabulator-col-sorter {
    color: var(--color-primary);
}

.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort="ascending"] .tabulator-col-content .tabulator-col-sorter .tabulator-arrow {
    border-bottom-color: var(--color-primary);
}

.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort="descending"] .tabulator-col-content .tabulator-col-sorter .tabulator-arrow {
    border-top-color: var(--color-primary);
}

.tabulator-row.tabulator-selected,
.tabulator-row.tabulator-selected .tabulator-cell {
    background-color: var(--color-primary-light);
}

.tabulator-row.tabulator-selected:hover,
.tabulator-row.tabulator-selected:hover .tabulator-cell {
    background-color: var(--color-primary-focus);
}

.tabulator .tabulator-tableholder {
    scrollbar-width: auto;
    scrollbar-color: var(--color-primary) var(--color-neutral-100);
}

.tabulator .tabulator-tableholder::-webkit-scrollbar {
    height: 10px;
    width: 10px;
}

.tabulator .tabulator-tableholder::-webkit-scrollbar-track {
    background: var(--color-neutral-100);
    border-radius: var(--radius-pill);
}

.tabulator .tabulator-tableholder::-webkit-scrollbar-thumb {
    background-color: var(--color-primary);
    border-radius: var(--radius-pill);
    border: 2px solid var(--color-neutral-100);
}

.tabulator .tabulator-tableholder::-webkit-scrollbar-thumb:hover {
    background-color: var(--color-primary-hover);
}

.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle {
    background: var(--color-primary);
    color: var(--color-white);
}

.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle svg {
    stroke: var(--color-white);
}

.tabulator-row .tabulator-responsive-collapse {
    padding: 8px 10px;
    background: var(--color-primary-light);
    border-radius: var(--radius-sm);
}

.tabulator-row .tabulator-responsive-collapse table tr td {
    padding: 3px 6px;
    font-size: 0.9em;
}

.tabulator-row .tabulator-responsive-collapse table tr td:first-of-type {
    color: var(--color-neutral-500);
    font-weight: 600;
    white-space: nowrap;
}

.modal.fade .modal-dialog {
    transform: translateY(-12px) scale(0.98);
    transition: transform var(--transition-modal), opacity var(--transition-modal);
    opacity: 0;
}

.modal.show .modal-dialog {
    transform: none;
    opacity: 1;
}

.tabulator-row.linha-componente-combo {
    background-color: var(--color-primary-light);
}

.tabulator-row.linha-componente-combo .tabulator-cell {
    color: var(--color-neutral-500);
    font-size: 0.92em;
}
