.container-fluid {
    margin: 0px !important;
    padding: 0px !important;
    float: left;
    width: 100%;
}

.row {
    margin: 0px !important;
    padding: 0px !important;
}

.col-lg-1 {
    margin: 0px !important;
    padding: 0px !important;
}

.col-lg-2 {
    margin: 0px !important;
    padding: 0px !important;
}

.col-lg-3 {
    margin: 0px !important;
    padding: 0px !important;
}

.col-lg-4 {
    margin: 0px !important;
    padding: 0px !important;
}

.col-lg-6 {
    margin: 0px !important;
    padding: 0px !important;
}

.col-lg-12 {
    margin: 0px !important;
    padding: 0px !important;
}

.col-md-1 {
    margin: 0px !important;
    padding: 0px !important;
}

.col-md-2 {
    margin: 0px !important;
    padding: 0px !important;
}

.col-md-3 {
    margin: 0px !important;
    padding: 0px !important;
}

.col-md-4 {
    margin: 0px !important;
    padding: 0px !important;
}

.col-md-6 {
    margin: 0px !important;
    padding: 0px !important;
}

.col-md-12 {
    margin: 0px !important;
    padding: 0px !important;
}

.col-sm-1 {
    margin: 0px !important;
    padding: 0px !important;
}

.col-sm-2 {
    margin: 0px !important;
    padding: 0px !important;
}

.col-sm-3 {
    margin: 0px !important;
    padding: 0px !important;
}

.col-sm-4 {
    margin: 0px !important;
    padding: 0px !important;
}

.col-sm-6 {
    margin: 0px !important;
    padding: 0px !important;
}

.col-sm-12 {
    margin: 0px !important;
    padding: 0px !important;
}

.btn {
    color: var(--main-color) !important;
    border-color: var(--main-color) !important;
}

.btn-primary {
    background: var(--main-color) !important;
    color: #fff !important;
}

.form-control {
    padding: 0.375rem 0.75rem !important;
}

input.form-control {
    padding: 2px 8px !important;
    height: 30px !important;
    font-size: 14px !important;
    line-height: 1.2 !important;
}

.tabulator .tabulator-header .tabulator-col {
    padding: 0 !important;
}

.tabulator .tabulator-row.tabulator-row-even {
    background: #babfbf33 !important;
}

.tabulator .tabulator-row.tabulator-selected {
    border-bottom: 2px solid var(--main-color);
    background: none !important;
}

    .tabulator .tabulator-row.tabulator-selected:hover {
        cursor: pointer;
    }

.tabulator-row .tabulator-cell.tabulator-editing {
    border: 1px solid var(--main-color) !important;
    outline: none;
    padding: 0;
}

.tabulator-cell.tabulator-editing input {
    background: none !important;
    border: none !important;
    margin: auto !important;
}


.tabulator .tabulator-col-content {
    padding: 0 !important;
}

.grid-header-title {
    height: 34px;
    display: flex;
    align-items: center;
    padding: 0 10px;
    font-weight: 600;
    white-space: nowrap;
}

.tabulator .tabulator-header-filter {
    padding: 7px 8px 8px 8px !important;
    border-top: 1px solid #e2e8f0;
    background: #fff;
}

    .tabulator .tabulator-header-filter input, .tabulator .tabulator-header-filter select {
        width: 100%;
        height: 34px;
    }

.tabulator .tabulator-col-title {
    height: 34px;
    display: flex;
    align-items: center;
}

.tabulator-headers .grid-checkbox-col .tabulator-col-content {
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    border-right: 1px solid #e2e8f0;
    cursor: pointer;
}

.grid-toolbar {
    border-bottom: none !important;
    border-radius: 0px !important;
    padding: 5px !important;
    margin-bottom: 0px !important;
    box-shadow: none !important;
}

.grid-tomselect-editor {
    width: 100%;
}

.tabulator-cell .ts-wrapper {
    width: 100%;
    height: 100%;
}

.tabulator-cell .ts-control {
    min-height: 100%;
    height: 100%;
    border: 1px solid var(--main-color);
    border-radius: 0;
    padding: 4px 8px;
    box-shadow: none;
}

.ts-dropdown {
    z-index: 999999 !important;
    background: #fff !important;
}

.grid-toolbar button i {
    margin-left: 5px;
    margin-right: 5px;
}

.grid-toolbar button {
    padding: 5px !important;
    padding-right: 10px !important;
}

.modal-dialog {
    margin: 0px auto !important;
}

.grid-group-droparea {
    min-height: 38px;
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 6px 10px;
    margin-bottom: 4px;
    border: 1px dashed #cbd5e1;
    border-radius: 6px;
    background: #f8fafc;
    color: #64748b;
    font-size: 13px;
}

    .grid-group-droparea.drag {
        border-color: var(--main-color);
        background: var(--tranfer-color);
    }

.grid-group-chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 8px;
    border-radius: 14px;
    background: var(--main-color);
    color: #fff;
    font-size: 13px;
}

    .grid-group-chip button {
        border: 0;
        background: transparent;
        color: #fff;
        cursor: pointer;
        font-weight: bold;
    }

.grid-group-droparea {
    min-height: 38px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 6px 10px;
    margin-bottom: 4px;
    border: 1px dashed #cbd5e1;
    border-radius: 6px;
    background: #f8fafc;
    color: #64748b;
    font-size: 13px;
}

    .grid-group-droparea.drag {
        border-color: var(--main-color);
        background: var(--tranfer-color);
    }

.grid-group-left {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
}

.grid-group-chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 8px;
    border-radius: 14px;
    background: var(--main-color);
    color: #fff;
    font-size: 13px;
}

    .grid-group-chip button {
        border: 0;
        background: transparent;
        color: #fff;
        cursor: pointer;
        font-weight: bold;
    }

.grid-group-actions {
    display: flex;
    align-items: center;
    gap: 6px;
}

    .grid-group-actions button {
        border: 1px solid #cbd5e1;
        background: #fff;
        color: #334155;
        border-radius: 4px;
        padding: 3px 8px;
        font-size: 12px;
        cursor: pointer;
    }

.grid-load-more {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 50;
    padding: 8px;
    text-align: center;
    background: #fff;
    border-top: 1px solid #ddd;
    color: var(--main-color);
    font-size: 13px;
}

.ts-wrapper .ts-control {
    display: flex !important;
    align-items: center;
    flex-wrap: nowrap !important;
    min-height: 32px;
    overflow: hidden;
}

    .ts-wrapper .ts-control input {
        min-width: 80px !important;
        flex: 1;
    }

.ts-wrapper.multi .ts-control > div {
    white-space: nowrap;
    margin: 2px;
}

.ts-wrapper .ts-control .item {
    display: flex;
    align-items: center;
}

.ts-wrapper .ts-control {
    display: flex !important;
    align-items: center;
    flex-wrap: nowrap !important;
    min-height: 32px;
    overflow: hidden;
    border: 1px solid #d9d9d9 !important;
    border-radius: 4px !important;
    box-shadow: none !important;
    outline: none !important;
}

.ts-control input {
    width: auto !important;
    min-width: 80px !important;
    background: transparent !important;
}

.form-control {
    border: 1px solid #d9d9d9 !important;
    outline: none !important;
    box-shadow: none !important;
}

    .form-control:focus, .ts-wrapper.focus .ts-control {
        border-color: var(--tranfer-color) !important;
        box-shadow: 0 0 3px 1px var(--tranfer-color) !important;
        outline: none !important;
    }

.form-control, .ts-wrapper.single .ts-control, .ts-wrapper.multi .ts-control {
    min-height: 32px !important;
    height: 32px !important;
    padding: 2px 8px !important;
    border: 1px solid #ced4da !important;
    border-radius: 4px !important;
    background: #fff !important;
    font-size: 13px !important;
    line-height: 18px !important;
    box-shadow: none !important;
}

.ts-wrapper .ts-control {
    display: flex !important;
    align-items: center !important;
    flex-wrap: nowrap !important;
}

.ts-wrapper.single .ts-control .item, .ts-wrapper.single .ts-control input {
    line-height: 18px !important;
    padding: 0 !important;
    margin: 0 !important;
}

.ts-wrapper {
    min-height: 32px !important;
}

    .ts-wrapper.focus .ts-control, .form-control:focus {
        border-color: var(--tranfer-color) !important;
        box-shadow: 0 0 2px 0 var(--tranfer-color) !important;
    }

.ts-check-option {
    display: flex !important;
    gap: 5px;
}

    .ts-check-option input[type="checkbox"] {
        width: auto !important;
    }

.tabulator-cell.tabulator-editing {
    background-color: transparent !important;
    border: none !important;
    display: flex;
    align-items: center;
}

    .tabulator-cell.tabulator-editing input, .tabulator-cell.tabulator-editing select, .tabulator-cell.tabulator-editing .ts-wrapper {
        background-color: transparent !important;
        border: none !important;
        outline: none !important;
        width: 100%;
    }

.ts-wrapper.single .ts-control {
    background-color: transparent !important;
    border: none !important;
    text-align: center !important;
    box-shadow: none !important;
}

    .ts-wrapper.single .ts-control .item {
        width: 100%;
        text-align: center;
    }

.date-picker-wrap {
    position: relative;
    width: 100%;
}

    .date-picker-wrap input {
        width: 100%;
    }

.date-picker-icon {
    position: absolute;
    top: 50%;
    right: 10px;
    transform: translateY(-50%);
    width: 18px;
    height: 18px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    color: #999;
    z-index: 5;
    transition: .2s;
}

    .date-picker-icon:hover {
        color: var(--tranfer-color);
    }

.date-picker-wrap input:focus + .date-picker-icon {
    color: var(--tranfer-color);
}

.ql-insertTable:after {
    content: "Table";
    font-size: 12px;
}

.ql-insertTable {
    width: 45px !important;
}

.grid-header-mode-menu {
    position: absolute;
    z-index: 100000;
    min-width: 190px;
    background: #fff;
    border: 1px solid #d0d7de;
    border-radius: 6px;
    box-shadow: 0 8px 24px rgba(15,23,42,.18);
    padding: 6px;
    font-size: 13px;
}

.grid-header-mode-menu-item {
    padding: 8px 10px;
    cursor: pointer;
    border-radius: 4px;
    white-space: nowrap;
}

    .grid-header-mode-menu-item:hover {
        background: #f1f5f9;
    }

    .grid-header-mode-menu-item.active {
        font-weight: 700;
        color: var(--main-color);
    }

.ts-wrapper.single .ts-control {
    display: flex !important;
    align-items: center !important;
    flex-wrap: nowrap !important;
    min-height: 32px !important;
    height: 32px !important;
    padding: 2px 8px !important;
    border: 1px solid #ced4da !important;
    border-radius: 4px !important;
    background: #fff !important;
    box-shadow: none !important;
    text-align: left !important;
}

    .ts-wrapper.single .ts-control .item {
        flex: 0 0 auto !important;
        width: auto !important;
        max-width: none !important;
        text-align: left !important;
        padding: 0 !important;
        margin: 0 4px 0 0 !important;
        line-height: 18px !important;
        white-space: nowrap !important;
    }

    .ts-wrapper.single .ts-control input {
        flex: 1 1 auto !important;
        width: auto !important;
        min-width: 20px !important;
        padding: 0 !important;
        margin: 0 !important;
        background: transparent !important;
    }

.ts-wrapper.single.focus .ts-control {
    border-color: var(--tranfer-color) !important;
    box-shadow: 0 0 2px 0 var(--tranfer-color) !important;
}
.tabulator-cell.tabulator-editing .ts-wrapper.single .ts-control {
    border: none !important;
    background: transparent !important;
    box-shadow: none !important;
}
.ts-check-option.option {
    display:flex !important;
    align-items:center
}
/* Chỉ bỏ padding khi modal-body chứa TRỰC TIẾP lưới (Tabulator) để lưới lấp đầy mép.
   Các popup alert/xác nhận/dialog thường vẫn giữ padding cân đối từ _MainLayout. */
.modal-body:has(> .tabulator) {
    padding: 0px !important;
}

.tabulator .tabulator-cell.tabulator-editing {
    padding: 3px 8px !important;
    overflow: visible !important;
    background: #fff !important;
}

    .tabulator .tabulator-cell.tabulator-editing input,
    .tabulator .tabulator-cell.tabulator-editing select,
    .grid-inline-editor {
        width: 100% !important;
        height: 31px !important;
        min-height: 31px !important;
        border: 1px solid #00897b !important;
        border-radius: 4px !important;
        padding: 4px 8px !important;
        font-size: 14px !important;
        background: #fff !important;
        color: #111827 !important;
        outline: none !important;
        box-shadow: none !important;
        box-sizing: border-box !important;
    }

        .tabulator .tabulator-cell.tabulator-editing input:focus,
        .grid-inline-editor:focus {
            border-color: #00897b !important;
            box-shadow: 0 0 0 1px rgba(0,137,123,.25) !important;
        }

        .tabulator .tabulator-cell.tabulator-editing input[type=number] {
            text-align: right;
        }

.ts-wrapper.grid-tomselect-editor {
    width: 100% !important;
}

    .ts-wrapper.grid-tomselect-editor .ts-control {
        min-height: 31px !important;
        height: 31px !important;
        border: 1px solid #00897b !important;
        border-radius: 4px !important;
        padding: 3px 8px !important;
        font-size: 14px !important;
        box-shadow: 0 0 0 1px rgba(0,137,123,.15) !important;
    }

.ts-dropdown {
    border: 1px solid #d0d7de !important;
    border-radius: 4px !important;
    box-shadow: 0 4px 12px rgba(0,0,0,.18) !important;
    font-size: 14px !important;
}

    .ts-dropdown .option {
        padding: 9px 12px !important;
    }

    .ts-dropdown .active {
        background: #eef2f7 !important;
        color: #111827 !important;
    }
.grid-toolbar {
    background: #f8f9fa
}
.grid-toolbar .btn{
    border:none !important
}

/* =====================================================================
   DARK THEME — ô nhập liệu (input/select/textarea/TomSelect/date picker)
   Chỉ áp khi html[data-theme='dark']; light theme GIỮ NGUYÊN.
   Dùng biến --dk-* để chỉnh 1 chỗ. Đặt cuối file để thắng các rule
   .ts-control/.form-control { background:#fff !important } ở trên.
   ===================================================================== */
html[data-theme='dark'] {
    --dk-field-bg: #2c2c31;        /* nền ô: tối nhưng tách khỏi nền trang */
    --dk-field-bg-focus: #33333a;  /* nền ô khi focus */
    --dk-field-text: #f0f0f2;      /* chữ đã gõ */
    --dk-field-placeholder: #9aa0aa;/* placeholder mờ nhưng đọc được */
    --dk-field-border: #4a4a52;    /* viền rõ */
    --dk-field-border-focus: #4aa3e6;/* viền khi focus */
    --dk-field-focus-ring: rgba(74,163,230,.30);
    --dk-dropdown-bg: #2a2a2f;
    --dk-dropdown-hover: #34343c;
}

/* Input thuần / select / textarea (loại trừ checkbox/radio/nút) */
html[data-theme='dark'] input:not([type=checkbox]):not([type=radio]):not([type=button]):not([type=submit]):not([type=reset]):not([type=range]):not([type=color]),
html[data-theme='dark'] select,
html[data-theme='dark'] textarea,
html[data-theme='dark'] .form-control,
html[data-theme='dark'] .form-select {
    background-color: var(--dk-field-bg) !important;
    color: var(--dk-field-text) !important;
    border: 1px solid var(--dk-field-border) !important;
}

html[data-theme='dark'] input::placeholder,
html[data-theme='dark'] textarea::placeholder,
html[data-theme='dark'] .form-control::placeholder {
    color: var(--dk-field-placeholder) !important;
    opacity: 1;
}

/* select option list (native) */
html[data-theme='dark'] select option {
    background-color: var(--dk-dropdown-bg);
    color: var(--dk-field-text);
}

/* TomSelect: control (ô hiển thị) + input bên trong */
html[data-theme='dark'] .ts-wrapper .ts-control,
html[data-theme='dark'] .ts-wrapper.single .ts-control,
html[data-theme='dark'] .ts-wrapper.multi .ts-control {
    background-color: var(--dk-field-bg) !important;
    color: var(--dk-field-text) !important;
    border: 1px solid var(--dk-field-border) !important;
}

html[data-theme='dark'] .ts-control,
html[data-theme='dark'] .ts-control input,
html[data-theme='dark'] .ts-control .item {
    color: var(--dk-field-text) !important;
}

html[data-theme='dark'] .ts-control input::placeholder {
    color: var(--dk-field-placeholder) !important;
    opacity: 1;
}

/* TomSelect: dropdown options */
html[data-theme='dark'] .ts-dropdown {
    background-color: var(--dk-dropdown-bg) !important;
    color: var(--dk-field-text) !important;
    border: 1px solid var(--dk-field-border) !important;
    box-shadow: 0 6px 18px rgba(0,0,0,.55) !important;
}

html[data-theme='dark'] .ts-dropdown .option {
    color: var(--dk-field-text) !important;
}

html[data-theme='dark'] .ts-dropdown .option:hover,
html[data-theme='dark'] .ts-dropdown .active {
    background-color: var(--dk-dropdown-hover) !important;
    color: #ffffff !important;
}

html[data-theme='dark'] .ts-dropdown .optgroup-header,
html[data-theme='dark'] .ts-dropdown .no-results {
    color: var(--dk-field-placeholder) !important;
    background-color: var(--dk-dropdown-bg) !important;
}

/* flatpickr: lịch chọn ngày trên nền tối */
html[data-theme='dark'] .flatpickr-calendar {
    background: var(--dk-dropdown-bg) !important;
    color: var(--dk-field-text) !important;
    border: 1px solid var(--dk-field-border) !important;
    box-shadow: 0 6px 18px rgba(0,0,0,.55) !important;
}

html[data-theme='dark'] .flatpickr-months .flatpickr-month,
html[data-theme='dark'] .flatpickr-current-month,
html[data-theme='dark'] .flatpickr-monthDropdown-months,
html[data-theme='dark'] .flatpickr-weekday {
    color: var(--dk-field-text) !important;
    fill: var(--dk-field-text) !important;
}

html[data-theme='dark'] .flatpickr-day {
    color: var(--dk-field-text) !important;
}

html[data-theme='dark'] .flatpickr-day:hover {
    background: var(--dk-dropdown-hover) !important;
    border-color: var(--dk-dropdown-hover) !important;
}

html[data-theme='dark'] .flatpickr-day.today {
    border-color: var(--dk-field-border-focus) !important;
}

html[data-theme='dark'] .flatpickr-day.selected {
    background: var(--accent-color, #0078d4) !important;
    border-color: var(--accent-color, #0078d4) !important;
    color: #fff !important;
}

html[data-theme='dark'] .flatpickr-day.flatpickr-disabled,
html[data-theme='dark'] .flatpickr-day.prevMonthDay,
html[data-theme='dark'] .flatpickr-day.nextMonthDay {
    color: var(--dk-field-placeholder) !important;
}

/* FOCUS: viền + ring rõ cho mọi loại ô */
html[data-theme='dark'] input:not([type=checkbox]):not([type=radio]):not([type=button]):not([type=submit]):not([type=reset]):focus,
html[data-theme='dark'] select:focus,
html[data-theme='dark'] textarea:focus,
html[data-theme='dark'] .form-control:focus,
html[data-theme='dark'] .form-select:focus,
html[data-theme='dark'] .ts-wrapper.focus .ts-control,
html[data-theme='dark'] .ts-wrapper.single.focus .ts-control {
    background-color: var(--dk-field-bg-focus) !important;
    border-color: var(--dk-field-border-focus) !important;
    box-shadow: 0 0 0 .15rem var(--dk-field-focus-ring) !important;
    outline: none !important;
}

/* TomSelect editor trong ô lưới (giữ viền nhấn xanh teal nhưng nền tối) */
html[data-theme='dark'] .tabulator-cell.tabulator-editing input,
html[data-theme='dark'] .tabulator-cell.tabulator-editing select,
html[data-theme='dark'] .tabulator-cell.tabulator-editing .ts-control,
html[data-theme='dark'] .ts-wrapper.grid-tomselect-editor .ts-control,
html[data-theme='dark'] .grid-inline-editor,
html[data-theme='dark'] .grid-tomselect-editor {
    background-color: var(--dk-field-bg-focus) !important;
    color: var(--dk-field-text) !important;
}

/* =====================================================================
   DARK THEME — LƯỚI TABULATOR (grid) + TOOLBAR
   Vì sao bản override cũ THUA: file vendor tabulator_bootstrap5.min.css có
     .tabulator-row{...color:#212529!important}            -> chữ TỐI
     .tabulator-row.tabulator-row-even{background:#e9ecef}
   và NGAY trong file này (dòng ~128):
     .tabulator .tabulator-row.tabulator-row-even{background:#babfbf33 !important}
   tức nền hàng chẵn là lớp XÁM SÁNG bán trong suốt + chữ tối ép !important.
   Block dark cũ trong _MainLayout KHÔNG dùng !important nên LUÔN thua các
   rule !important trên => hàng chẵn bị nền xám sáng + chữ tối => "mờ, khó đọc".
   Mọi rule dưới đây dùng !important + đặt CUỐI file (load sau cùng) nên thắng.
   ===================================================================== */
html[data-theme='dark'] {
    --dk-grid-row-odd:   #232327; /* nền hàng lẻ */
    --dk-grid-row-even:  #1c1c20; /* nền hàng chẵn (sọc nhẹ, KHÔNG xám sáng) */
    --dk-grid-text:      #eef0f3; /* CHỮ SÁNG cho CẢ hàng lẻ và chẵn */
    --dk-grid-border:    #33343a; /* viền hàng/ô đọc được */
    --dk-grid-hover:     #2d2e35; /* hover rõ */
    --dk-grid-sel:       #2d4a63; /* nền dòng được chọn (xanh đậm) */
    --dk-grid-header-bg: #2a2b31; /* nền header */
    --dk-grid-header-tx: #f4f5f7; /* chữ header */
    --dk-grid-surface:   #202024; /* nền chung của lưới + thanh filter */
    --dk-toolbar-bg:     #232327; /* nền thanh công cụ */
    --dk-toolbar-btn:    #2a2b31; /* nền nút công cụ */
    --dk-toolbar-btn-hv: #34353d; /* hover nút */
    --dk-toolbar-tx:     #e9ebef; /* chữ + icon nút */
}

/* Khung lưới + nền chung */
html[data-theme='dark'] .tabulator {
    background-color: var(--dk-grid-surface) !important;
    color: var(--dk-grid-text) !important;
    border-color: var(--dk-grid-border) !important;
}

/* Header: nền + chữ rõ, viền gọn */
html[data-theme='dark'] .tabulator .tabulator-header,
html[data-theme='dark'] .tabulator .tabulator-header .tabulator-col,
html[data-theme='dark'] .tabulator .tabulator-col {
    background-color: var(--dk-grid-header-bg) !important;
    color: var(--dk-grid-header-tx) !important;
    border-color: var(--dk-grid-border) !important;
}
html[data-theme='dark'] .tabulator .grid-head-title,
html[data-theme='dark'] .tabulator .tabulator-col-title,
html[data-theme='dark'] .tabulator .tabulator-col-title * {
    color: var(--dk-grid-header-tx) !important;
}

/* HÀNG: nền sọc nhẹ, CHỮ SÁNG NHƯ NHAU cho lẻ & chẵn (đè color:#212529!important của vendor) */
html[data-theme='dark'] .tabulator .tabulator-row,
html[data-theme='dark'] .tabulator .tabulator-row.tabulator-row-odd {
    background-color: var(--dk-grid-row-odd) !important;
    color: var(--dk-grid-text) !important;
    border-color: var(--dk-grid-border) !important;
    border-bottom: 1px solid var(--dk-grid-border) !important;
}
html[data-theme='dark'] .tabulator .tabulator-row.tabulator-row-even {
    background-color: var(--dk-grid-row-even) !important;
    color: var(--dk-grid-text) !important;
}
/* Ô: chữ sáng cho MỌI hàng (kể cả vendor đặt color trên .tabulator-row) */
html[data-theme='dark'] .tabulator .tabulator-row .tabulator-cell,
html[data-theme='dark'] .tabulator .tabulator-row.tabulator-row-even .tabulator-cell,
html[data-theme='dark'] .tabulator .tabulator-row.tabulator-row-odd .tabulator-cell {
    color: var(--dk-grid-text) !important;
    border-color: var(--dk-grid-border) !important;
    background-color: transparent !important;
}

/* Hover: rõ ràng trên cả hàng lẻ/chẵn */
html[data-theme='dark'] .tabulator .tabulator-row:hover,
html[data-theme='dark'] .tabulator .tabulator-row.tabulator-selectable:hover,
html[data-theme='dark'] .tabulator .tabulator-row.tabulator-row-even.tabulator-selectable:hover {
    background-color: var(--dk-grid-hover) !important;
}
html[data-theme='dark'] .tabulator .tabulator-row:hover .tabulator-cell {
    background-color: transparent !important;
    color: var(--dk-grid-text) !important;
}

/* Dòng được chọn: nền nhấn + chữ trắng (đè cả rule .tabulator-row-even.tabulator-selected) */
html[data-theme='dark'] .tabulator .tabulator-row.tabulator-selected,
html[data-theme='dark'] .tabulator .tabulator-row.tabulator-row-even.tabulator-selected,
html[data-theme='dark'] .tabulator .tabulator-row.tabulator-selected:hover {
    background-color: var(--dk-grid-sel) !important;
}
html[data-theme='dark'] .tabulator .tabulator-row.tabulator-selected .tabulator-cell {
    color: #ffffff !important;
}

/* Hàng nhóm (grouping) */
html[data-theme='dark'] .tabulator .tabulator-row.tabulator-group {
    background-color: var(--dk-grid-header-bg) !important;
    color: var(--dk-grid-header-tx) !important;
    border-color: var(--dk-grid-border) !important;
}
html[data-theme='dark'] .tabulator .tabulator-row.tabulator-group span {
    color: #ff9aa2 !important;
}

/* Thanh filter trong header + ô nhập filter */
html[data-theme='dark'] .tabulator .grid-filter-line,
html[data-theme='dark'] .tabulator .tabulator-header-filter {
    background-color: var(--dk-grid-header-bg) !important;
    border-color: var(--dk-grid-border) !important;
}
html[data-theme='dark'] .tabulator .grid-filter-line input,
html[data-theme='dark'] .tabulator .grid-filter-line select {
    background-color: var(--dk-field-bg) !important;
    color: var(--dk-field-text) !important;
    border: 1px solid var(--dk-field-border) !important;
}
html[data-theme='dark'] .tabulator .filter-btn { color: #9aa0aa !important; }
html[data-theme='dark'] .tabulator .filter-btn.active { color: #4aa3e6 !important; }

/* Placeholder "Không có dữ liệu" */
html[data-theme='dark'] .tabulator .tabulator-placeholder,
html[data-theme='dark'] .tabulator .tabulator-placeholder-contents {
    color: var(--dk-field-placeholder) !important;
    background-color: var(--dk-grid-surface) !important;
}

/* Panel filter kiểu Excel (đang là nền trắng cứng) */
html[data-theme='dark'] .excel-filter-panel {
    background-color: var(--dk-dropdown-bg) !important;
    color: var(--dk-grid-text) !important;
    border-color: var(--dk-field-border) !important;
    box-shadow: 0 12px 30px rgba(0,0,0,.6) !important;
}
html[data-theme='dark'] .excel-filter-panel .filter-values {
    border-color: var(--dk-field-border) !important;
}

/* ===== THANH CÔNG CỤ + NÚT (Thêm / Sửa / Xóa / Export / Import) =====
   Trước: nút .btn-outline-secondary chữ/icon tối nằm trên nền tối -> gần như tàng hình.
   Cho nút bề mặt tối nhạt + chữ/icon sáng + viền nhẹ + hover rõ. */
html[data-theme='dark'] .grid-toolbar,
html[data-theme='dark'] div[id$='_legacy_toolbar'].grid-toolbar {
    background-color: var(--dk-toolbar-bg) !important;
    border-color: var(--dk-grid-border) !important;
}
html[data-theme='dark'] .grid-toolbar .btn,
html[data-theme='dark'] .grid-toolbar button {
    background-color: var(--dk-toolbar-btn) !important;
    color: var(--dk-toolbar-tx) !important;
    border: 1px solid var(--dk-grid-border) !important;
}
html[data-theme='dark'] .grid-toolbar .btn i,
html[data-theme='dark'] .grid-toolbar button i {
    color: var(--dk-toolbar-tx) !important;
}
html[data-theme='dark'] .grid-toolbar .btn:hover,
html[data-theme='dark'] .grid-toolbar button:hover {
    background-color: var(--dk-toolbar-btn-hv) !important;
    color: #ffffff !important;
}
html[data-theme='dark'] .grid-toolbar .btn:hover i,
html[data-theme='dark'] .grid-toolbar button:hover i {
    color: #ffffff !important;
}
/* Nút nhấn chính (primary/teal) giữ màu nhấn nhưng chữ trắng cho dễ đọc */
html[data-theme='dark'] .grid-toolbar .btn-primary {
    background-color: var(--main-color, #1f9e8f) !important;
    border-color: var(--main-color, #1f9e8f) !important;
    color: #ffffff !important;
}

/* ===== THANH CÔNG CỤ TÙY BIẾN — nút .button trong #divCondication =====
   Một số màn (vd "TÍNH LƯƠNG NHÂN VIÊN") KHÔNG dùng .grid-toolbar mà render
   toolbar riêng: <div id="divCondication"> chứa các nút <div class="button">.
   Light theme: .button có background:#fff + viền teal (master.css) -> ổn.
   Dark theme: nền body tối + chữ kế thừa màu sáng -> nút "tối-trên-tối" / mờ.
   Scope CHẶT vào "#divCondication .button" (chỉ nút trong toolbar tùy biến này)
   nên KHÔNG đụng tới: nút primary teal, nút .grid-toolbar (đã xử lý ở trên),
   nút Đóng/Lưu kiểu link trong modal — vì chúng KHÔNG nằm trong #divCondication. */
html[data-theme='dark'] #divCondication .button {
    background-color: var(--dk-toolbar-btn) !important;
    color: var(--dk-toolbar-tx) !important;
    border: 1px solid var(--dk-grid-border) !important;
}
html[data-theme='dark'] #divCondication .button i {
    color: var(--dk-toolbar-tx) !important;
}
html[data-theme='dark'] #divCondication .button:hover {
    background-color: var(--dk-toolbar-btn-hv) !important;
    border-color: var(--main-color, #1f9e8f) !important;
    color: #ffffff !important;
}
html[data-theme='dark'] #divCondication .button:hover i {
    color: #ffffff !important;
}
/* Nút thao tác chính (Chốt) giữ màu nhấn teal + chữ trắng để nổi bật */
html[data-theme='dark'] #divCondication .button#btnChotTinhLuong {
    background-color: var(--main-color, #1f9e8f) !important;
    border-color: var(--main-color, #1f9e8f) !important;
    color: #ffffff !important;
}
html[data-theme='dark'] #divCondication .button#btnChotTinhLuong i {
    color: #ffffff !important;
}
html[data-theme='dark'] #divCondication .button#btnChotTinhLuong:hover {
    background-color: #17b39e !important;
    border-color: #17b39e !important;
}