.root {
    width: 100%;
}

.table {
    width: 100%;
    padding-bottom: var(--mantine-spacing-sm);
}

.header {
    position: sticky;
    top: 0;
    transition: box-shadow 150ms ease;
    z-index: 1;

    &::after {
        content: '';
        position: absolute;
        left: 0;
        right: 0;
        bottom: 0;
        border-bottom: 1px solid var(--mantine-color-gray-3);
    }
}

/* Table.Actions */

/* Hide empty menus */
.actionsTarget {
    display: none;

    &:has(+ .actionsDropdown :global(.mantine-Menu-item)) {
        display: block;
    }
}

.actionsDropdown {
    text-align: left;
}

.actionsGroupDivider {
    display: none;
}

.actionsGroup {
    &:has(.actionsGroupItems:empty) {
        /* Hide empty groups */
        display: none;
    }

    &:has(~ .actionsGroup :global(.mantine-Menu-item)) {
        .actionsGroupDivider {
            display: block;
        }
    }
}

/* Table.Filter */
.filterWrapper {
    width: 20rem;
}

.filterEmpty {
    color: var(--mantine-color-gray-5);
}

/* Table.Header */
.headerRoot {
    border-bottom: 1px solid var(--mantine-color-gray-3);
    background-color: var(--mantine-color-gray-1);
    padding: var(--mantine-spacing-sm) var(--mantine-spacing-xl);
    position: relative;
    min-height: 69px;
}

.headerGridInner {
    flex-direction: row-reverse;
}

.headerCol {
    display: flex;
}

.th {
    padding: var(--mantine-spacing-xs) var(--mantine-spacing-sm);
    vertical-align: middle;
    white-space: nowrap;
    text-align: left;
    color: var(--mantine-color-gray-6);
    height: var(--mantine-spacing-xl);
    font-weight: 500;
    font-size: var(--mantine-font-size-xs);

    &:first-of-type {
        padding-left: var(--mantine-spacing-xl);
    }

    &:last-of-type {
        padding-right: var(--mantine-spacing-xl);
    }

    background-color: var(--mantine-color-gray-0);

    &[data-control='true'] {
        @mixin hover {
            background-color: var(--mantine-color-gray-1);
        }
    }
}

.lastUpdatedRoot {
    min-height: 98px;
}

.lastUpdatedLabel {
    color: var(--mantine-color-gray-6);
}

/* Table.Predicate */
.predicateLabel {
    font-size: var(--mantine-font-size-sm);
}

/* Table.ColumnsSelector */
.columnSelector {
    max-width: 100%;
}
