.table {
    --bs-table-color-type: initial;
    --bs-table-bg-type: initial;
    --bs-table-color-state: initial;
    --bs-table-bg-state: initial;
    --bs-table-color: var(--bs-emphasis-color);
    --bs-table-bg: transparent;
    --bs-table-border-color: rgba(var(--bs-emphasis-color-rgb), 0.07);
    --bs-table-accent-bg: transparent;
    --bs-table-striped-color: var(--bs-emphasis-color);
    --bs-table-striped-bg: rgba(var(--bs-emphasis-color-rgb), 0.035);
    --bs-table-active-color: var(--bs-emphasis-color);
    --bs-table-active-bg: rgba(var(--bs-primary-rgb), 0.2);
    --bs-table-hover-color: var(--bs-emphasis-color);
    --bs-table-hover-bg: rgba(var(--bs-emphasis-color-rgb), 0.075);
    --bs-emphasis-color-rgb: 26, 29, 33;
    --bs-secondary: #b6bbc2;
    --bs-emphasis-color: #1a1d21;
    --bs-border-width: 1px;
    width: 100%;
    margin-bottom: 1rem;
    vertical-align: top;
    border-color: var(--bs-table-border-color);
}

.tabulator {
    position: relative;
    border: 1px solid var(--bs-table-border-color);
    background-color: var(--bs-table-bg);
    font-size: var(--bs-body-font-size);
    text-align: left;
    overflow: hidden;
    -webkit-transform: translateZ(0);
    -moz-transform: translateZ(0);
    -ms-transform: translateZ(0);
    -o-transform: translateZ(0);
    transform: translateZ(0)
}

    .tabulator[tabulator-layout=fitDataFill] .tabulator-tableholder .tabulator-table {
        min-width: 100%
    }

    .tabulator[tabulator-layout=fitDataTable] {
        display: inline-block
    }

    .tabulator.tabulator-block-select {
        user-select: none
    }

    .tabulator .tabulator-header {
        position: relative;
        box-sizing: border-box;
        width: 100%;
        border-bottom: 1px solid var(--bs-table-border-color);
        background-color: var(--bs-table-bg);
        color: #555;
        font-weight: 700;
        white-space: nowrap;
        overflow: hidden;
        -moz-user-select: none;
        -khtml-user-select: none;
        -webkit-user-select: none;
        -o-user-select: none
    }

        .tabulator .tabulator-header.tabulator-header-hidden {
            display: none
        }

        .tabulator .tabulator-header .tabulator-header-contents {
            position: relative;
            overflow: hidden
        }

            .tabulator .tabulator-header .tabulator-header-contents .tabulator-headers {
                display: inline-block
            }

        .tabulator .tabulator-header .tabulator-col {
            display: inline-flex;
            position: relative;
            box-sizing: border-box;
            flex-direction: column;
            justify-content: flex-start;
            border-right: 1px solid #aaa;
            background: var(--bs-table-bg);
            text-align: left;
            vertical-align: bottom;
            overflow: hidden
        }

            .tabulator .tabulator-header .tabulator-col.tabulator-moving {
                position: absolute;
                border: 1px solid var(--bs-table-border-color);
                pointer-events: none
            }

            .tabulator .tabulator-header .tabulator-col .tabulator-col-content {
                box-sizing: border-box;
                position: relative;
                padding: 4px;
                justify-content: center;
            }

                .tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-header-popup-button {
                    padding: 0 8px
                }

                    .tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-header-popup-button:hover {
                        cursor: pointer;
                        opacity: .6
                    }

                .tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-col-title-holder {
                    position: relative
                }

                .tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-col-title {
                    box-sizing: border-box;
                    width: 100%;
                    white-space: nowrap;
                    overflow: hidden;
                    text-overflow: ellipsis;
                    vertical-align: bottom
                }

                    .tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-col-title.tabulator-col-title-wrap {
                        white-space: normal;
                        text-overflow: initial
                    }

                    .tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-col-title .tabulator-title-editor {
                        box-sizing: border-box;
                        width: 100%;
                        border: 1px solid #999;
                        padding: 1px;
                        background: #fff
                    }

                    .tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-col-title .tabulator-header-popup-button + .tabulator-title-editor {
                        width: calc(100% - 22px)
                    }

                .tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-col-sorter {
                    display: flex;
                    align-items: center;
                    position: absolute;
                    top: 0;
                    bottom: 0;
                    right: 4px
                }

                    .tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-col-sorter .tabulator-arrow {
                        width: 0;
                        height: 0;
                        border-left: 6px solid transparent;
                        border-right: 6px solid transparent;
                        border-bottom: 6px solid var(--bs-secondary)
                    }

            .tabulator .tabulator-header .tabulator-col.tabulator-col-group .tabulator-col-group-cols {
                position: relative;
                display: flex;
                border-top: 1px solid #aaa;
                overflow: hidden;
                margin-right: -1px
            }

            .tabulator .tabulator-header .tabulator-col .tabulator-header-filter {
                position: relative;
                box-sizing: border-box;
                margin-top: 2px;
                width: 100%;
                text-align: center
            }

                .tabulator .tabulator-header .tabulator-col .tabulator-header-filter textarea {
                    height: auto !important
                }

                .tabulator .tabulator-header .tabulator-col .tabulator-header-filter svg {
                    margin-top: 3px
                }

                .tabulator .tabulator-header .tabulator-col .tabulator-header-filter input::-ms-clear {
                    width: 0;
                    height: 0
                }

            .tabulator .tabulator-header .tabulator-col.tabulator-sortable .tabulator-col-title {
                padding-right: 25px; font-size: 13px;
            }

@media(hover: hover) and (pointer:fine) {
    .tabulator .tabulator-header .tabulator-col.tabulator-sortable.tabulator-col-sorter-element:hover {
        cursor: pointer
    }
}

.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort=none] .tabulator-col-content .tabulator-col-sorter {
    color: var(--bs-secondary)
}

@media(hover: hover) and (pointer:fine) {
    .tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort=none] .tabulator-col-content .tabulator-col-sorter.tabulator-col-sorter-element .tabulator-arrow:hover {
        cursor: pointer;
        border-bottom: 6px solid #555
    }
}

.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort=none] .tabulator-col-content .tabulator-col-sorter .tabulator-arrow {
    border-top: none;
    border-bottom: 6px solid var(--bs-secondary)
}

.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort=ascending] .tabulator-col-content .tabulator-col-sorter {
    color: var(--bs-primary)
}

@media(hover: hover) and (pointer:fine) {
    .tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort=ascending] .tabulator-col-content .tabulator-col-sorter.tabulator-col-sorter-element .tabulator-arrow:hover {
        cursor: pointer;
        border-bottom: 6px solid #555
    }
}

.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort=ascending] .tabulator-col-content .tabulator-col-sorter .tabulator-arrow {
    border-top: none;
    border-bottom: 6px solid var(--bs-primary)
}

.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort=descending] .tabulator-col-content .tabulator-col-sorter {
    color: var(--bs-primary)
}

@media(hover: hover) and (pointer:fine) {
    .tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort=descending] .tabulator-col-content .tabulator-col-sorter.tabulator-col-sorter-element .tabulator-arrow:hover {
        cursor: pointer;
        border-top: 6px solid #555
    }
}

.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort=descending] .tabulator-col-content .tabulator-col-sorter .tabulator-arrow {
    border-bottom: none;
    border-top: 6px solid var(--bs-primary);
    color: var(--bs-primary)
}

.tabulator .tabulator-header .tabulator-col.tabulator-col-vertical .tabulator-col-content .tabulator-col-title {
    writing-mode: vertical-rl;
    text-orientation: mixed;
    display: flex;
    align-items: center;
    justify-content: center
}

.tabulator .tabulator-header .tabulator-col.tabulator-col-vertical.tabulator-col-vertical-flip .tabulator-col-title {
    transform: rotate(180deg)
}

.tabulator .tabulator-header .tabulator-col.tabulator-col-vertical.tabulator-sortable .tabulator-col-title {
    padding-right: 0;
    padding-top: 20px
}

.tabulator .tabulator-header .tabulator-col.tabulator-col-vertical.tabulator-sortable.tabulator-col-vertical-flip .tabulator-col-title {
    padding-right: 0;
    padding-bottom: 20px
}

.tabulator .tabulator-header .tabulator-col.tabulator-col-vertical.tabulator-sortable .tabulator-col-sorter {
    justify-content: center;
    left: 0;
    right: 0;
    top: 4px;
    bottom: auto
}

.tabulator .tabulator-header .tabulator-frozen {
    position: sticky;
    left: 0;
    z-index: 11;
    background-color: white !important
}

    .tabulator .tabulator-header .tabulator-frozen.tabulator-frozen-left {
        border-right: 2px solid var(--bs-table-border-color)
    }

    .tabulator .tabulator-header .tabulator-frozen.tabulator-frozen-right {
        border-left: 2px solid var(--bs-table-border-color)
    }

.tabulator .tabulator-header .tabulator-calcs-holder {
    box-sizing: border-box;
    border-top: 1px solid var(--bs-table-border-color);
    border-bottom: 1px solid #aaa
}

    .tabulator .tabulator-header .tabulator-calcs-holder .tabulator-row .tabulator-col-resize-handle {
        display: none
    }

.tabulator .tabulator-header .tabulator-frozen-rows-holder:empty {
    display: none
}

.tabulator .tabulator-tableholder {
    position: relative;
    width: 100%;
    white-space: nowrap;
    overflow: auto;
    -webkit-overflow-scrolling: touch
}

    .tabulator .tabulator-tableholder:focus {
        outline: 0
    }

    .tabulator .tabulator-tableholder .tabulator-placeholder {
        box-sizing: border-box;
        display: flex;
        align-items: center;
        justify-content: center;
        width: 100%
    }

        .tabulator .tabulator-tableholder .tabulator-placeholder[tabulator-render-mode=virtual] {
            min-height: 100%;
            min-width: 100%
        }

        .tabulator .tabulator-tableholder .tabulator-placeholder .tabulator-placeholder-contents {
            display: inline-block;
            text-align: center;
            padding: 10px;
            color: #ccc;
            font-weight: 700;
            font-size: 20px;
            white-space: normal
        }

    .tabulator .tabulator-tableholder .tabulator-table {
        position: relative;
        display: inline-block;
        background-color: var(--bs-table-bg);
        white-space: nowrap;
        overflow: visible;
        color: #333
    }

        .tabulator .tabulator-tableholder .tabulator-table .tabulator-row.tabulator-calcs {
            font-weight: 700
        }

            .tabulator .tabulator-tableholder .tabulator-table .tabulator-row.tabulator-calcs.tabulator-calcs-top {
                border-bottom: 2px solid var(--bs-table-border-color)
            }

            .tabulator .tabulator-tableholder .tabulator-table .tabulator-row.tabulator-calcs.tabulator-calcs-bottom {
                border-top: 2px solid var(--bs-table-border-color)
            }

.tabulator .tabulator-footer {
    border-top: 1px solid rgba(var(--bs-emphasis-color-rgb),.07);
    background-color: #e6e6e6;
    color: #555;
    font-weight: 700;
    white-space: nowrap;
    user-select: none;
    -moz-user-select: none;
    -khtml-user-select: none;
    -webkit-user-select: none;
    -o-user-select: none
}

    .tabulator .tabulator-footer .tabulator-footer-contents {
        display: flex;
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
        padding: 5px 10px
    }

        .tabulator .tabulator-footer .tabulator-footer-contents:empty {
            display: none
        }

    .tabulator .tabulator-footer .tabulator-calcs-holder {
        box-sizing: border-box;
        width: 100%;
        text-align: left;
        background: #f3f3f3 !important;
        border-bottom: 1px solid var(--bs-table-border-color);
        border-top: 1px solid var(--bs-table-border-color);
        overflow: hidden
    }

        .tabulator .tabulator-footer .tabulator-calcs-holder .tabulator-row {
            display: inline-block;
            background: #f3f3f3 !important
        }

            .tabulator .tabulator-footer .tabulator-calcs-holder .tabulator-row .tabulator-col-resize-handle {
                display: none
            }

        .tabulator .tabulator-footer .tabulator-calcs-holder:only-child {
            margin-bottom: -5px;
            border-bottom: none
        }

    .tabulator .tabulator-footer > * + .tabulator-page-counter {
        margin-left: 10px
    }

    .tabulator .tabulator-footer .tabulator-page-counter {
        font-weight: 400
    }

    .tabulator .tabulator-footer .tabulator-paginator {
        flex: 1;
        text-align: right;
        color: #555;
        font-family: inherit;
        font-weight: inherit;
        font-size: inherit
    }

    .tabulator .tabulator-footer .tabulator-page-size {
        display: inline-block;
        margin: 0 5px;
        padding: 2px 5px;
        border: 1px solid var(--bs-border-color);
        border-radius: 3px
    }

    .tabulator .tabulator-footer .tabulator-pages {
        margin: 0 7px
    }

    .tabulator .tabulator-footer .tabulator-page {
        display: inline-block;
        margin: 0 2px;
        padding: 2px 5px;
        border: 1px solid var(--bs-border-color);
        border-radius: 3px;
        background: rgba(255,255,255,.2)
    }

        .tabulator .tabulator-footer .tabulator-page.active {
            color: var(--bs-primary-color)
        }

        .tabulator .tabulator-footer .tabulator-page:disabled {
            opacity: .5
        }

@media(hover: hover) and (pointer:fine) {
    .tabulator .tabulator-footer .tabulator-page:not(.disabled):hover {
        cursor: pointer;
        background: rgba(0,0,0,.2);
        color: #fff
    }
}

.tabulator .tabulator-col-resize-handle {
    position: relative;
    display: inline-block;
    width: 6px;
    margin-left: -3px;
    margin-right: -3px;
    z-index: 10;
    vertical-align: middle
}

@media(hover: hover) and (pointer:fine) {
    .tabulator .tabulator-col-resize-handle:hover {
        cursor: ew-resize
    }
}

.tabulator .tabulator-col-resize-handle:last-of-type {
    width: 3px;
    margin-right: 0
}

.tabulator .tabulator-alert {
    position: absolute;
    display: flex;
    align-items: center;
    top: 0;
    left: 0;
    z-index: 100;
    height: 100%;
    width: 100%;
    background: rgba(0,0,0,.4);
    text-align: center
}

    .tabulator .tabulator-alert .tabulator-alert-msg {
        display: inline-flex; /* Thay display: inline-block; thành inline-flex để căn chỉnh spinner và văn bản dễ dàng hơn */
        align-items: center; /* Đảm bảo spinner và văn bản căn chỉnh theo chiều dọc */
        margin: 0 auto;
        padding: 10px 20px;
        border-radius: 10px;
        background: #fff;
        font-weight: 700;
        font-size: 16px;
        position: relative; /* Để spinner căn chỉnh chính xác */
    }

        .tabulator .tabulator-alert .tabulator-alert-msg.tabulator-alert-state-msg {
            border: 4px solid #333;
            color: #000
        }

        .tabulator .tabulator-alert .tabulator-alert-msg.tabulator-alert-state-error {
            border: 4px solid #d00;
            color: #590000
        }
        .tabulator .tabulator-alert .tabulator-alert-msg::before {
            content: '';
            position: absolute;
            left: -40px; /* Điều chỉnh vị trí spinner so với văn bản */
            top: 50%;
            transform: translateY(-50%);
            width: 30px;
            height: 30px;
            border: 3px solid #ccc;
            border-top: 3px solid #007bff;
            border-radius: 50%;
            animation: spin 1s linear infinite;
            margin-top: -15px;
        }

@keyframes spin {
    0% {
        transform: translateY(-50%) rotate(0deg);
    }

    100% {
        transform: translateY(-50%) rotate(360deg);
    }
}
.tabulator-row {
    position: relative;
    box-sizing: border-box;
    background-color: var(--bs-table-bg)
}

    .tabulator-row.tabulator-row-even {
        background-color: var(--bs-table-striped-bg)
    }

@media(hover: hover) and (pointer:fine) {
    .tabulator-row.tabulator-selectable:hover {
        background-color: var(--bs-table-hover-bg);
        cursor: pointer
    }
}

.tabulator-row.tabulator-selected {
    background-color: #9abcea
}

@media(hover: hover) and (pointer:fine) {
    .tabulator-row.tabulator-selected:hover {
        background-color: #769bcc;
        cursor: pointer
    }
}

.tabulator-row.tabulator-row-moving {
    border: 1px solid #000;
    background: #fff
}

.tabulator-row.tabulator-moving {
    position: absolute;
    border-top: 1px solid var(--bs-table-border-color);
    border-bottom: 1px solid var(--bs-table-border-color);
    pointer-events: none;
    z-index: 15
}

.tabulator-row .tabulator-row-resize-handle {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    height: 5px
}

    .tabulator-row .tabulator-row-resize-handle.prev {
        top: 0;
        bottom: auto
    }

@media(hover: hover) and (pointer:fine) {
    .tabulator-row .tabulator-row-resize-handle:hover {
        cursor: ns-resize
    }
}

.tabulator-row .tabulator-responsive-collapse {
    box-sizing: border-box;
    padding: 5px;
    border-top: 1px solid var(--bs-table-border-color);
    border-bottom: 1px solid var(--bs-table-border-color)
}

    .tabulator-row .tabulator-responsive-collapse:empty {
        display: none
    }

    .tabulator-row .tabulator-responsive-collapse table {
        font-size: var(--bs-body-font-size)
    }

        .tabulator-row .tabulator-responsive-collapse table tr td {
            position: relative
        }

            .tabulator-row .tabulator-responsive-collapse table tr td:first-of-type {
                padding-right: 10px
            }

.tabulator-row .tabulator-cell {
    display: inline-block;
    position: relative;
    box-sizing: border-box;
    padding: 4px;
    border-right: 1px solid var(--bs-table-border-color);
    vertical-align: middle;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis
}

    .tabulator-row .tabulator-cell.tabulator-frozen {
        display: inline-block;
        position: sticky;
        left: 0;
        background: var(--body-color) !important;
        z-index: 11
    }

        .tabulator-row .tabulator-cell.tabulator-frozen.tabulator-frozen-left {
            border-right: 2px solid var(--bs-table-border-color)
        }

        .tabulator-row .tabulator-cell.tabulator-frozen.tabulator-frozen-right {
            border-left: 2px solid var(--bs-table-border-color)
        }

    .tabulator-row .tabulator-cell.tabulator-editing {
        border: 1px solid var(--bs-link-hover-color);
        outline: 0;
        padding: 0
    }

        .tabulator-row .tabulator-cell.tabulator-editing input, .tabulator-row .tabulator-cell.tabulator-editing select {
            border: 1px;
            background: 0 0;
            outline: 0
        }

    .tabulator-row .tabulator-cell.tabulator-validation-fail {
        border: 1px solid var(--bs-danger)
    }

        .tabulator-row .tabulator-cell.tabulator-validation-fail input, .tabulator-row .tabulator-cell.tabulator-validation-fail select {
            border: 1px;
            background: 0 0;
            color: var(--bs-danger)
        }

    .tabulator-row .tabulator-cell.tabulator-row-handle {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        -moz-user-select: none;
        -khtml-user-select: none;
        -webkit-user-select: none;
        -o-user-select: none
    }

        .tabulator-row .tabulator-cell.tabulator-row-handle .tabulator-row-handle-box {
            width: 80%
        }

            .tabulator-row .tabulator-cell.tabulator-row-handle .tabulator-row-handle-box .tabulator-row-handle-bar {
                width: 100%;
                height: 3px;
                margin-top: 2px;
                background: #666
            }

    .tabulator-row .tabulator-cell .tabulator-data-tree-branch-empty {
        display: inline-block;
        width: 7px
    }

    .tabulator-row .tabulator-cell .tabulator-data-tree-branch {
        display: inline-block;
        vertical-align: middle;
        height: 9px;
        width: 7px;
        margin-top: -9px;
        margin-right: 5px;
        border-bottom-left-radius: 1px;
        border-left: 2px solid var(--bs-table-border-color);
        border-bottom: 2px solid var(--bs-table-border-color)
    }

    .tabulator-row .tabulator-cell .tabulator-data-tree-control {
        display: inline-flex;
        justify-content: center;
        align-items: center;
        vertical-align: middle;
        height: 11px;
        width: 11px;
        margin-right: 5px;
        border: 1px solid #333;
        border-radius: 2px;
        background: rgba(0,0,0,.1);
        overflow: hidden
    }

@media(hover: hover) and (pointer:fine) {
    .tabulator-row .tabulator-cell .tabulator-data-tree-control:hover {
        cursor: pointer;
        background: rgba(0,0,0,.2)
    }
}

.tabulator-row .tabulator-cell .tabulator-data-tree-control .tabulator-data-tree-control-collapse {
    display: inline-block;
    position: relative;
    height: 7px;
    width: 1px;
    background: 0 0
}

    .tabulator-row .tabulator-cell .tabulator-data-tree-control .tabulator-data-tree-control-collapse:after {
        position: absolute;
        content: "";
        left: -3px;
        top: 3px;
        height: 1px;
        width: 7px;
        background: #333
    }

.tabulator-row .tabulator-cell .tabulator-data-tree-control .tabulator-data-tree-control-expand {
    display: inline-block;
    position: relative;
    height: 7px;
    width: 1px;
    background: #333
}

    .tabulator-row .tabulator-cell .tabulator-data-tree-control .tabulator-data-tree-control-expand:after {
        position: absolute;
        content: "";
        left: -3px;
        top: 3px;
        height: 1px;
        width: 7px;
        background: #333
    }

.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    -moz-user-select: none;
    -khtml-user-select: none;
    -webkit-user-select: none;
    -o-user-select: none;
    height: 15px;
    width: 15px;
    border-radius: 20px;
    background: #666;
    color: var(--bs-table-bg);
    font-weight: 700;
    font-size: 1.1em
}

@media(hover: hover) and (pointer:fine) {
    .tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle:hover {
        opacity: .7;
        cursor: pointer
    }
}

.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle.open .tabulator-responsive-collapse-toggle-close {
    display: initial
}

.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle.open .tabulator-responsive-collapse-toggle-open {
    display: none
}

.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle svg {
    stroke: var(--bs-table-bg)
}

.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle .tabulator-responsive-collapse-toggle-close {
    display: none
}

.tabulator-row .tabulator-cell .tabulator-traffic-light {
    display: inline-block;
    height: 14px;
    width: 14px;
    border-radius: 14px
}

.tabulator-row.tabulator-group {
    box-sizing: border-box;
    border-bottom: 1px solid #999;
    border-right: 1px solid var(--bs-table-border-color);
    border-top: 1px solid #999;
    padding: 5px;
    padding-left: 10px;
    background: #ccc;
    font-weight: 700;
    min-width: 100%
}

@media(hover: hover) and (pointer:fine) {
    .tabulator-row.tabulator-group:hover {
        cursor: pointer;
        background-color: rgba(0,0,0,.1)
    }
}

.tabulator-row.tabulator-group.tabulator-group-visible .tabulator-arrow {
    margin-right: 10px;
    border-left: 6px solid transparent;
    border-right: 6px solid transparent;
    border-top: 6px solid var(--bs-primary);
    border-bottom: 0
}

.tabulator-row.tabulator-group.tabulator-group-level-1 {
    padding-left: 30px
}

.tabulator-row.tabulator-group.tabulator-group-level-2 {
    padding-left: 50px
}

.tabulator-row.tabulator-group.tabulator-group-level-3 {
    padding-left: 70px
}

.tabulator-row.tabulator-group.tabulator-group-level-4 {
    padding-left: 90px
}

.tabulator-row.tabulator-group.tabulator-group-level-5 {
    padding-left: 110px
}

.tabulator-row.tabulator-group .tabulator-group-toggle {
    display: inline-block
}

.tabulator-row.tabulator-group .tabulator-arrow {
    display: inline-block;
    width: 0;
    height: 0;
    margin-right: 16px;
    border-top: 6px solid transparent;
    border-bottom: 6px solid transparent;
    border-right: 0;
    border-left: 6px solid var(--bs-primary);
    vertical-align: middle
}

.tabulator-row.tabulator-group span {
    margin-left: 10px;
    color: #d00
}

.tabulator-popup-container {
    position: absolute;
    display: inline-block;
    box-sizing: border-box;
    background: var(--bs-table-bg);
    border: 1px solid var(--bs-table-border-color);
    box-shadow: 0 0 5px 0 rgba(0,0,0,.2);
    font-size: var(--bs-body-font-size);
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    z-index: 10000
}

.tabulator-popup {
    padding: 5px;
    border-radius: 3px
}

.tabulator-tooltip {
    max-width: min(500px,100%);
    padding: 3px 5px;
    border-radius: 2px;
    box-shadow: none;
    font-size: 12px;
    pointer-events: none
}

.tabulator-menu .tabulator-menu-item {
    position: relative;
    box-sizing: border-box;
    padding: 5px 10px;
    user-select: none
}

    .tabulator-menu .tabulator-menu-item.tabulator-menu-item-disabled {
        opacity: .5
    }

@media(hover: hover) and (pointer:fine) {
    .tabulator-menu .tabulator-menu-item:not(.tabulator-menu-item-disabled):hover {
        cursor: pointer;
        background: var(--bs-table-striped-bg)
    }
}

.tabulator-menu .tabulator-menu-item.tabulator-menu-item-submenu {
    padding-right: 25px
}

    .tabulator-menu .tabulator-menu-item.tabulator-menu-item-submenu::after {
        display: inline-block;
        position: absolute;
        top: calc(5px + .4em);
        right: 10px;
        height: 7px;
        width: 7px;
        content: "";
        border-width: 1px 1px 0 0;
        border-style: solid;
        border-color: var(--bs-table-border-color);
        vertical-align: top;
        transform: rotate(45deg)
    }

.tabulator-menu .tabulator-menu-separator {
    border-top: 1px solid var(--bs-table-border-color)
}

.tabulator-edit-list {
    max-height: 200px;
    font-size: var(--bs-body-font-size);
    overflow-y: auto;
    -webkit-overflow-scrolling: touch
}

    .tabulator-edit-list .tabulator-edit-list-item {
        padding: 4px;
        color: #333;
        outline: 0
    }

        .tabulator-edit-list .tabulator-edit-list-item.active {
            color: var(--bs-table-bg);
            background: var(--bs-link-hover-color)
        }

            .tabulator-edit-list .tabulator-edit-list-item.active.focused {
                outline: 1px solid rgba(var(--bs-table-bg),.5)
            }

        .tabulator-edit-list .tabulator-edit-list-item.focused {
            outline: 1px solid var(--bs-link-hover-color)
        }

@media(hover: hover) and (pointer:fine) {
    .tabulator-edit-list .tabulator-edit-list-item:hover {
        cursor: pointer;
        color: var(--bs-table-bg);
        background: var(--bs-link-hover-color)
    }
}

.tabulator-edit-list .tabulator-edit-list-placeholder {
    padding: 4px;
    color: #333;
    text-align: center
}

.tabulator-edit-list .tabulator-edit-list-group {
    border-bottom: 1px solid var(--bs-table-border-color);
    padding: 4px;
    padding-top: 6px;
    color: #333;
    font-weight: 700
}

    .tabulator-edit-list .tabulator-edit-list-group.tabulator-edit-list-group-level-2, .tabulator-edit-list .tabulator-edit-list-item.tabulator-edit-list-group-level-2 {
        padding-left: 12px
    }

    .tabulator-edit-list .tabulator-edit-list-group.tabulator-edit-list-group-level-3, .tabulator-edit-list .tabulator-edit-list-item.tabulator-edit-list-group-level-3 {
        padding-left: 20px
    }

    .tabulator-edit-list .tabulator-edit-list-group.tabulator-edit-list-group-level-4, .tabulator-edit-list .tabulator-edit-list-item.tabulator-edit-list-group-level-4 {
        padding-left: 28px
    }

    .tabulator-edit-list .tabulator-edit-list-group.tabulator-edit-list-group-level-5, .tabulator-edit-list .tabulator-edit-list-item.tabulator-edit-list-group-level-5 {
        padding-left: 36px
    }

.tabulator.tabulator-ltr {
    direction: ltr
}

.tabulator.tabulator-rtl {
    text-align: initial;
    direction: rtl
}

    .tabulator.tabulator-rtl .tabulator-header .tabulator-col {
        text-align: initial;
        border-left: 1px solid #aaa;
        border-right: initial
    }

        .tabulator.tabulator-rtl .tabulator-header .tabulator-col.tabulator-col-group .tabulator-col-group-cols {
            margin-right: initial;
            margin-left: -1px
        }

        .tabulator.tabulator-rtl .tabulator-header .tabulator-col.tabulator-sortable .tabulator-col-title {
            padding-right: 0;
            padding-left: 25px
        }

        .tabulator.tabulator-rtl .tabulator-header .tabulator-col .tabulator-col-content .tabulator-col-sorter {
            left: 8px;
            right: initial
        }

    .tabulator.tabulator-rtl .tabulator-row .tabulator-cell {
        border-right: initial;
        border-left: 1px solid var(--bs-table-border-color)
    }

        .tabulator.tabulator-rtl .tabulator-row .tabulator-cell .tabulator-data-tree-branch {
            margin-right: initial;
            margin-left: 5px;
            border-bottom-left-radius: initial;
            border-bottom-right-radius: 1px;
            border-left: initial;
            border-right: 2px solid var(--bs-table-border-color)
        }

        .tabulator.tabulator-rtl .tabulator-row .tabulator-cell .tabulator-data-tree-control {
            margin-right: initial;
            margin-left: 5px
        }

        .tabulator.tabulator-rtl .tabulator-row .tabulator-cell.tabulator-frozen.tabulator-frozen-left {
            border-left: 2px solid var(--bs-table-border-color)
        }

        .tabulator.tabulator-rtl .tabulator-row .tabulator-cell.tabulator-frozen.tabulator-frozen-right {
            border-right: 2px solid var(--bs-table-border-color)
        }

    .tabulator.tabulator-rtl .tabulator-row .tabulator-col-resize-handle:last-of-type {
        width: 3px;
        margin-left: 0;
        margin-right: -3px
    }

    .tabulator.tabulator-rtl .tabulator-footer .tabulator-calcs-holder {
        text-align: initial
    }

.tabulator-print-fullscreen {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 10000
}

body.tabulator-print-fullscreen-hide > :not(.tabulator-print-fullscreen) {
    display: none !important
}

.tabulator-print-table {
    border-collapse: collapse
}

    .tabulator-print-table .tabulator-data-tree-branch {
        display: inline-block;
        vertical-align: middle;
        height: 9px;
        width: 7px;
        margin-top: -9px;
        margin-right: 5px;
        border-bottom-left-radius: 1px;
        border-left: 2px solid var(--bs-table-border-color);
        border-bottom: 2px solid var(--bs-table-border-color)
    }

    .tabulator-print-table .tabulator-print-table-group {
        box-sizing: border-box;
        border-bottom: 1px solid #999;
        border-right: 1px solid var(--bs-table-border-color);
        border-top: 1px solid #999;
        padding: 5px;
        padding-left: 10px;
        background: #ccc;
        font-weight: 700;
        min-width: 100%
    }

@media(hover: hover) and (pointer:fine) {
    .tabulator-print-table .tabulator-print-table-group:hover {
        cursor: pointer;
        background-color: rgba(0,0,0,.1)
    }
}

.tabulator-print-table .tabulator-print-table-group.tabulator-group-visible .tabulator-arrow {
    margin-right: 10px;
    border-left: 6px solid transparent;
    border-right: 6px solid transparent;
    border-top: 6px solid var(--bs-primary);
    border-bottom: 0
}

.tabulator-print-table .tabulator-print-table-group.tabulator-group-level-1 td {
    padding-left: 30px !important
}

.tabulator-print-table .tabulator-print-table-group.tabulator-group-level-2 td {
    padding-left: 50px !important
}

.tabulator-print-table .tabulator-print-table-group.tabulator-group-level-3 td {
    padding-left: 70px !important
}

.tabulator-print-table .tabulator-print-table-group.tabulator-group-level-4 td {
    padding-left: 90px !important
}

.tabulator-print-table .tabulator-print-table-group.tabulator-group-level-5 td {
    padding-left: 110px !important
}

.tabulator-print-table .tabulator-print-table-group .tabulator-group-toggle {
    display: inline-block
}

.tabulator-print-table .tabulator-print-table-group .tabulator-arrow {
    display: inline-block;
    width: 0;
    height: 0;
    margin-right: 16px;
    border-top: 6px solid transparent;
    border-bottom: 6px solid transparent;
    border-right: 0;
    border-left: 6px solid var(--bs-primary);
    vertical-align: middle
}

.tabulator-print-table .tabulator-print-table-group span {
    margin-left: 10px;
    color: #d00
}

.tabulator-print-table .tabulator-data-tree-control {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    vertical-align: middle;
    height: 11px;
    width: 11px;
    margin-right: 5px;
    border: 1px solid #333;
    border-radius: 2px;
    background: rgba(0,0,0,.1);
    overflow: hidden
}

@media(hover: hover) and (pointer:fine) {
    .tabulator-print-table .tabulator-data-tree-control:hover {
        cursor: pointer;
        background: rgba(0,0,0,.2)
    }
}

.tabulator-print-table .tabulator-data-tree-control .tabulator-data-tree-control-collapse {
    display: inline-block;
    position: relative;
    height: 7px;
    width: 1px;
    background: 0 0
}

    .tabulator-print-table .tabulator-data-tree-control .tabulator-data-tree-control-collapse:after {
        position: absolute;
        content: "";
        left: -3px;
        top: 3px;
        height: 1px;
        width: 7px;
        background: #333
    }

.tabulator-print-table .tabulator-data-tree-control .tabulator-data-tree-control-expand {
    display: inline-block;
    position: relative;
    height: 7px;
    width: 1px;
    background: #333
}

    .tabulator-print-table .tabulator-data-tree-control .tabulator-data-tree-control-expand:after {
        position: absolute;
        content: "";
        left: -3px;
        top: 3px;
        height: 1px;
        width: 7px;
        background: #333
    }

.tabulator {
    background-color: var(--bs-table-bg);
    border: none
}

    .tabulator .tabulator-header {
        border-top: 1px solid var(--bs-table-border-color);
        border-bottom: 2px solid var(--bs-table-border-color);
        color: inherit
    }

        .tabulator .tabulator-header .tabulator-col {
            border-right: none;
            background-color: var(--bs-table-bg)
        }

            .tabulator .tabulator-header .tabulator-col .tabulator-col-content {
                padding: .75rem
            }

                .tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-col-sorter {
                    right: 0
                }

            .tabulator .tabulator-header .tabulator-col.tabulator-col-group .tabulator-col-group-cols {
                border-top: 1px solid var(--bs-table-border-color)
            }

            .tabulator .tabulator-header .tabulator-col .tabulator-header-filter input {
                padding: .375rem .75rem;
                background-color: #fff;
                background-clip: padding-box;
                border: 1px solid #ced4da;
                border-radius: .25rem;
                transition: border-color .15s ease-in-out,box-shadow .15s ease-in-out;
                font-size: 1rem;
                line-height: 1.5;
                color: #495057
            }

                .tabulator .tabulator-header .tabulator-col .tabulator-header-filter input:focus {
                    color: #495057;
                    background-color: #fff;
                    border: 1px solid var(--bs-link-hover-color);
                    outline: 0
                }

        .tabulator .tabulator-header .tabulator-calcs-holder {
            width: 100%;
            border-bottom: 1px solid var(--bs-table-border-color)
        }

    .tabulator .tabulator-tableholder .tabulator-placeholder span {
        color: #000
    }

    .tabulator .tabulator-tableholder .tabulator-table {
        color: inherit
    }

    .tabulator .tabulator-footer {
        color: inherit
    }

        .tabulator .tabulator-footer .tabulator-paginator {
            color: inherit
        }

        .tabulator .tabulator-footer .tabulator-pages {
            margin: 0
        }

        .tabulator .tabulator-footer .tabulator-page {
            margin: 0;
            margin-top: 5px;
            padding: 8px 12px
        }

            .tabulator .tabulator-footer .tabulator-page[data-page=first] {
                border-top-left-radius: 4px;
                border-bottom-left-radius: 4px
            }

            .tabulator .tabulator-footer .tabulator-page[data-page=last] {
                border: 1px solid var(--bs-border-color);
                border-top-right-radius: 4px;
                border-bottom-right-radius: 4px
            }

            .tabulator .tabulator-footer .tabulator-page.active {
                border-color: var(--bs-primary);
                background-color: var(--bs-primary);
                color: var(--bs-primary-color)
            }

            .tabulator .tabulator-footer .tabulator-page:disabled {
                border-color: var(--bs-border-color);
                background: 0 0;
                color: var(--bs-secondary-color)
            }

@media(hover: hover) and (pointer:fine) {
    .tabulator .tabulator-footer .tabulator-page:not(.disabled):hover {
        border-color: var(--bs-primary);
        background: #203d72;
        color: var(--bs-primary-color)
    }
}

.tabulator.thead-dark .tabulator-header {
    border-color: var(--bs-table-border-color);
    background-color: var(--bs-table-bg);
    color: var(--bs-emphasis-color)
}

    .tabulator.thead-dark .tabulator-header .tabulator-col {
        border-color: var(--bs-table-border-color);
        background-color: var(--bs-table-bg);
        color: var(--bs-emphasis-color)
    }

.tabulator.table {
    background-color: var(--bs-table-bg)
}

    .tabulator.table:not(.thead-light) .tabulator-header {
        border-color: var(--bs-table-border-color);
        background-color: var(--bs-table-bg);
        color: var(--bs-emphasis-color)
    }

        .tabulator.table:not(.thead-light) .tabulator-header .tabulator-col {
            border-color: var(--bs-table-border-color);
            background-color: var(--bs-table-bg);
            color: var(--font-color)
        }

    .tabulator.table .tabulator-tableholder {
        color: var(--bs-emphasis-color)
    }

    .tabulator.table .tabulator-row {
        border-color: var(--bs-table-border-color);
        background-color: var(--bs-table-bg);
        color: var(--font-color)
    }

@media(hover: hover) and (pointer:fine) {
    .tabulator.table .tabulator-row:hover {
        background-color: var(--bs-table-hover-bg)
    }

        .tabulator.table .tabulator-row:hover .tabulator-cell {
            background-color: rgba(var(--bs-emphasis-color-rgb),.075)
        }
}

.tabulator.table .tabulator-row.tabulator-selected {
    background-color: #9abcea
}

.tabulator.table .tabulator-footer {
    border-color: var(--bs-table-border-color) !important
}

    .tabulator.table .tabulator-footer .tabulator-calcs-holder {
        border-color: var(--bs-table-border-color) !important;
        background: var(--bs-table-bg) !important
    }

        .tabulator.table .tabulator-footer .tabulator-calcs-holder .tabulator-row {
            border-color: var(--bs-table-border-color) !important;
            background-color: var(--bs-table-bg) !important;
            color: var(--bs-emphasis-color) !important
        }

.tabulator.table-striped:not(.table) .tabulator-row.tabulator-row-even {
    background-color: var(--bs-table-striped-bg)
}

    .tabulator.table-striped:not(.table) .tabulator-row.tabulator-row-even.tabulator-selected {
        background-color: #9abcea
    }

@media(hover: hover) and (pointer:fine) {
    .tabulator.table-striped:not(.table) .tabulator-row.tabulator-row-even.tabulator-selectable:hover {
        background-color: var(--bs-table-hover-bg);
        cursor: pointer
    }

    .tabulator.table-striped:not(.table) .tabulator-row.tabulator-row-even.tabulator-selected:hover {
        background-color: #769bcc;
        cursor: pointer
    }
}

.tabulator.table-striped.table .tabulator-row:nth-child(even) .tabulator-cell {
    /*background-color: transparent*/
}

.tabulator.table-bordered {
    border: 1px solid var(--bs-table-border-color)
}

    .tabulator.table-bordered .tabulator-header .tabulator-col {
        border-right: 1px solid var(--bs-table-border-color)
    }

    .tabulator.table-bordered .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell {
        border-right: 1px solid var(--bs-table-border-color);
        font-size: 13px;
    }

.tabulator.table-borderless .tabulator-header {
    border: none
}

.tabulator.table-borderless .tabulator-row {
    border: none
}

.tabulator.table-sm .tabulator-header .tabulator-col .tabulator-col-content {
    padding: 5px !important
}

.tabulator.table-sm .tabulator-tableholder .tabulator-table .tabulator-row {
    min-height: calc(var(--bs-body-font-size) + 10px)
}

    .tabulator.table-sm .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell {
        padding: 5px !important
    }

.tabulator.table-sm .tabulator-row {
    padding-top: 0;
    padding-bottom: 0
}

.tabulator.table-sm .tabulator-col-resize-handle {
    padding: 0
}

.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.table-primary {
    background: #d3dae5 !important
}

.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.table-secondary {
    background: #f0f1f3 !important
}

.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.table-success {
    background: #ddeecd !important
}

.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.table-info {
    background: #cff1fc !important
}

.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.table-warning {
    background: #feecd1 !important
}

.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.table-danger {
    background: #fadcd9 !important
}

.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.table-light {
    background: #e1e7f0 !important
}

.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.table {
    background: #202427 !important
}

.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.table-active {
    background: rgba(var(--bs-primary-rgb),.2) !important
}

.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.bg-primary {
    background: #d3dae5 !important
}

.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.bg-secondary {
    background: #f0f1f3 !important
}

.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.bg-success {
    background: #ddeecd !important
}

.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.bg-info {
    background: #cff1fc !important
}

.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.bg-warning {
    background: #feecd1 !important
}

.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.bg-danger {
    background: #fadcd9 !important
}

.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.bg-light {
    background: #e1e7f0 !important
}

.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.bg-dark {
    background: #202427 !important
}

.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.bg-active {
    background: rgba(var(--bs-primary-rgb),.2) !important
}

.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.table-primary {
    background: #d3dae5 !important
}

.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.table-secondary {
    background: #f0f1f3 !important
}

.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.table-success {
    background: #ddeecd !important
}

.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.table-info {
    background: #cff1fc !important
}

.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.table-warning {
    background: #feecd1 !important
}

.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.table-danger {
    background: #fadcd9 !important
}

.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.table-light {
    background: #e1e7f0 !important
}

.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.table {
    background: #202427 !important
}

.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.table-active {
    background: rgba(var(--bs-primary-rgb),.2) !important
}

.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.bg-primary {
    background: #d3dae5 !important
}

.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.bg-secondary {
    background: #f0f1f3 !important
}

.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.bg-success {
    background: #ddeecd !important
}

.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.bg-info {
    background: #cff1fc !important
}

.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.bg-warning {
    background: #feecd1 !important
}

.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.bg-danger {
    background: #fadcd9 !important
}

.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.bg-light {
    background: #e1e7f0 !important
}

.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.bg-dark {
    background: #202427 !important
}

.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.bg-active {
    background: rgba(var(--bs-primary-rgb),.2) !important
}

.tabulator-row {
    min-height: calc(var(--bs-body-font-size) + 1.5rem);
    border-bottom: 1px solid var(--bs-table-border-color)
}

    .tabulator-row .tabulator-cell {
        padding: .75rem;
        border-right: none
    }

        .tabulator-row .tabulator-cell:last-of-type {
            border-right: none
        }

        .tabulator-row .tabulator-cell .tabulator-data-tree-control {
            border: 1px solid #ccc
        }

            .tabulator-row .tabulator-cell .tabulator-data-tree-control .tabulator-data-tree-control-collapse:after {
                background: #ccc
            }

            .tabulator-row .tabulator-cell .tabulator-data-tree-control .tabulator-data-tree-control-expand {
                background: #ccc
            }

                .tabulator-row .tabulator-cell .tabulator-data-tree-control .tabulator-data-tree-control-expand:after {
                    background: #ccc
                }

    .tabulator-row.tabulator-group {
        background: #fafafa
    }

        .tabulator-row.tabulator-group span {
            color: #666
        }

.tabulator-edit-select-list {
    background: var(--bs-table-bg)
}

    .tabulator-edit-select-list .tabulator-edit-select-list-item.active {
        color: var(--bs-table-bg)
    }

        .tabulator-edit-select-list .tabulator-edit-select-list-item.active.focused {
            outline: 1px solid rgba(var(--bs-table-bg),.5)
        }

@media(hover: hover) and (pointer:fine) {
    .tabulator-edit-select-list .tabulator-edit-select-list-item:hover {
        color: var(--bs-table-bg)
    }
}

.tabulator-edit-select-list .tabulator-edit-select-list-notice {
    color: inherit
}

.tabulator-edit-select-list .tabulator-edit-select-list-group {
    color: inherit
}

.tabulator.tabulator-rtl .tabulator-header .tabulator-col {
    text-align: initial;
    border-left: initial
}

.tabulator-print-table .tabulator-print-table-group {
    background: #fafafa
}

    .tabulator-print-table .tabulator-print-table-group span {
        color: #666
    }

.tabulator-print-table .tabulator-data-tree-control {
    color: inherit
}

    .tabulator-print-table .tabulator-data-tree-control .tabulator-data-tree-control-collapse:after {
        background: #ccc
    }

    .tabulator-print-table .tabulator-data-tree-control .tabulator-data-tree-control-expand {
        background: #ccc
    }

        .tabulator-print-table .tabulator-data-tree-control .tabulator-data-tree-control-expand:after {
            background: #ccc
        }

.tabulator-popup-container {
    background: #fff
}

.tabulator-edit-list .tabulator-edit-list-item.active {
    color: #fff
}

    .tabulator-edit-list .tabulator-edit-list-item.active.focused {
        outline: 1px solid rgba(255,255,255,.5)
    }

@media(hover: hover) and (pointer:fine) {
    .tabulator-edit-list .tabulator-edit-list-item:hover {
        color: #fff
    }
}

.tabulator.table .tabulator-header {
    border-top: 0
}

.tabulator.table .tabulator-headers {
    height: auto !important;
    padding: 0 !important
}

    /*.tabulator.table .tabulator-headers .tabulator-col {
        height: auto !important
    }*/

.tabulator.table .tabulator-row {
    padding: 0
}

    .tabulator.table .tabulator-row:hover {
        background-color: transparent
    }

.tabulator.table.table-striped .tabulator-row.tabulator-row-even {
    background-color: transparent
}

    .tabulator.table.table-striped .tabulator-row.tabulator-row-even:hover {
        background-color: var(--bs-table-hover-bg)
    }

.tabulator.table.table-striped .tabulator-row.tabulator-row-odd {
    background-color: var(--bs-table-striped-bg)
}

.tabulator.table .tabulator-row {
    border-bottom: 0
}

    .tabulator.table .tabulator-row .tabulator-cell {
        border-bottom: var(--bs-border-width) solid var(--bs-table-border-color)
    }

        .tabulator.table .tabulator-row .tabulator-cell.tabulator-editing {
            border: 1px solid var(--bs-link-hover-color);
            background-color: var(--bs-component-bg);
            border-radius: var(--bs-border-radius);
            transition: border-color .35s ease-in-out,box-shadow .35s ease-in-out;
            box-shadow: inset 0 0 0 transparent,0 0 .75rem 0 rgba(0,0,0,.15)
        }

@media(prefers-reduced-motion:reduce) {
    .tabulator.table .tabulator-row .tabulator-cell.tabulator-editing {
        transition: none
    }
}

.tabulator.table .tabulator-row .tabulator-cell.tabulator-editing input {
    padding: .55rem 1rem !important
}

.tabulator.table .tabulator-row .tabulator-cell.tabulator-validation-fail {
    border: 1px solid var(--bs-danger);
    border-radius: var(--bs-border-radius)
}

.tabulator.table .tabulator-row .tabulator-progress > div {
    border-radius: var(--bs-border-radius);
    background-color: rgba(var(--bs-emphasis-color-rgb),.075);
    box-shadow: var(--bs-box-shadow-inset);
    height: .75rem !important;
    top: 50%;
    transform: translateY(-50%)
}

    .tabulator.table .tabulator-row .tabulator-progress > div > div {
        border-radius: var(--bs-border-radius)
    }

.tabulator.table .tabulator-footer {
    background-color: transparent;
    color: var(--bs-table-color);
    border: 0
}

.tabulator.table .tabulator-page-size {
    --bs-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%2392969c' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");
    padding: .55rem 2.5rem .55rem .5rem;
    font-size: .75rem;
    font-weight: 400;
    line-height: 1.5;
    color: var(--bs-emphasis-color);
    appearance: none;
    background-color: var(--bs-component-bg);
    background-image: var(--bs-form-select-bg-img),var(--bs-form-select-bg-icon,none);
    background-repeat: no-repeat;
    background-position: right 1rem center;
    background-size: 16px 12px;
    border: var(--bs-border-width) solid var(--bs-border-color);
    border-radius: var(--bs-border-radius);
    box-shadow: inset 0 0 0 transparent;
    transition: border-color .35s ease-in-out,box-shadow .35s ease-in-out
}

@media(prefers-reduced-motion:reduce) {
    .tabulator.table .tabulator-page-size {
        transition: none
    }
}

.tabulator.table .tabulator-page-size:focus {
    border-color: var(--bs-primary);
    outline: 0;
    box-shadow: inset 0 0 0 transparent,0 0 .75rem 0 rgba(0,0,0,.15)
}

.tabulator.table .tabulator-page-size[multiple], .tabulator.table .tabulator-page-size[size]:not([size="1"]) {
    padding-right: 1rem;
    background-image: none
}

.tabulator.table .tabulator-page-size:disabled {
    background-color: rgba(var(--bs-emphasis-color-rgb),.075)
}

.tabulator.table .tabulator-page-size:-moz-focusring {
    color: transparent;
    text-shadow: 0 0 0 var(--bs-emphasis-color)
}

.tabulator.table .tabulator-paginator .tabulator-page {
    border-radius: 0
}

    .tabulator.table .tabulator-paginator .tabulator-page:hover:not(:disabled) {
        background-color: var(--bs-primary);
        border-color: var(--bs-primary);
        box-shadow: 0 .1rem .5rem rgba(var(--bs-primary-rgb),.5),0 .25rem 1rem rgba(26,29,33,.2);
        color: var(--bs-primary-color);
        z-index: 5;
        filter: brightness(.8)
    }

    .tabulator.table .tabulator-paginator .tabulator-page:focus {
        background-color: var(--bs-primary);
        border-color: var(--bs-primary);
        box-shadow: none !important;
        color: var(--bs-primary);
        z-index: 5
    }

    .tabulator.table .tabulator-paginator .tabulator-page.active {
        background-color: var(--bs-primary);
        border-color: var(--bs-primary);
        box-shadow: 0 0 .5rem rgba(var(--bs-primary-rgb),.5),0 0 .25rem rgba(26,29,33,.05);
        color: var(--bs-primary-color);
        z-index: 5
    }

    .tabulator.table .tabulator-paginator .tabulator-page:disabled {
        opacity: .5;
        background-color: inherit !important;
        color: inherit !important;
        border-color: var(--bs-border-color) !important
    }

.tabulator.table .tabulator-paginator > .tabulator-page:first-of-type {
    border-top-left-radius: var(--bs-border-radius);
    border-bottom-left-radius: var(--bs-border-radius)
}

.tabulator.table .tabulator-paginator > .tabulator-page:last-of-type {
    border-top-right-radius: var(--bs-border-radius);
    border-bottom-right-radius: var(--bs-border-radius)
}

.tabulator.table .tabulator-cell.tabulator-row-handle {
    width: 40px !important
}

.tabulator.table .tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle {
    background-color: var(--bs-secondary)
}

.tabulator.table .tabulator-responsive-collapse-toggle svg {
    stroke: var(--bs-dark)
}

/* CSS để tạo spinner */
.tabulator .tabulator-loading-message {
    gap: 6px;
}

.tabulator .tabulator-loading-message .spinner {
    display: flex;
    gap: 4px;
}

.tabulator .tabulator-loading-message .spinner span {
    width: 6px;
    height: 6px;
    background: #3b82f6;
    border-radius: 50%;
    animation: dotPulse 1.2s infinite ease-in-out both;
}

.tabulator .tabulator-loading-message .spinner span:nth-child(1) { animation-delay: -.32s; }
.tabulator .tabulator-loading-message .spinner span:nth-child(2) { animation-delay: -.16s; }

@keyframes dotPulse {
    0%, 80%, 100% { transform: scale(0); }
    40% { transform: scale(1); }
}


/* ===== Missing Range Selection styles (bổ sung cho module selectableRange) ===== */
.tabulator.tabulator-block-select,
.tabulator.tabulator-ranges .tabulator-cell:not(.tabulator-editing) {
    user-select: none;
}

.tabulator .tabulator-header .tabulator-col.tabulator-range-highlight {
    background-color: #d6d6d6;
    color: #000;
}

.tabulator .tabulator-header .tabulator-col.tabulator-range-selected {
    background-color: #3876ca;
    color: #fff;
}

.tabulator .tabulator-tableholder .tabulator-range-overlay {
    inset: 0;
    pointer-events: none;
    position: absolute;
    z-index: 10;
}

    .tabulator .tabulator-tableholder .tabulator-range-overlay .tabulator-range {
        border: 1px solid #2975dd;
        box-sizing: border-box;
        position: absolute;
    }

        .tabulator .tabulator-tableholder .tabulator-range-overlay .tabulator-range.tabulator-range-active:after {
            background-color: #2975dd;
            border-radius: 999px;
            bottom: -3px;
            content: "";
            height: 6px;
            position: absolute;
            right: -3px;
            width: 6px;
        }

    .tabulator .tabulator-tableholder .tabulator-range-overlay .tabulator-range-cell-active {
        border: 2px solid #2975dd;
        box-sizing: border-box;
        position: absolute;
    }

.tabulator-row.tabulator-range-highlight .tabulator-cell.tabulator-range-row-header {
    background-color: #d6d6d6;
    color: #000;
}

.tabulator-row.tabulator-range-highlight.tabulator-range-selected .tabulator-cell.tabulator-range-row-header,
.tabulator-row.tabulator-range-selected .tabulator-cell.tabulator-range-row-header {
    background-color: #3876ca;
    color: #fff;
}

.tabulator-row .tabulator-cell.tabulator-range-selected:not(.tabulator-range-only-cell-selected):not(.tabulator-range-row-header) {
    background-color: #9abcea;
}