.root {
    width: 100%;
}

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

.header {
    position: sticky;
    top: 0;
    transition-property: box-shadow;
    transition-timing-function: var(--coveo-transition-function);
    transition-duration: var(--coveo-transition-duration);
    z-index: 1;

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

/* 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-dimmed);
}

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

    &:where([data-with-border-top]) {
        border-top: 1px solid var(--mantine-color-default-border);
    }
}

.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-text);
    height: var(--mantine-spacing-xl);
    font-weight: var(--coveo-fw-bold);
    font-size: var(--mantine-font-size-sm);

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

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

    background-color: var(--coveo-app-background);

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

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

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

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