/* ==========================================================================
   layout.css — Theme dùng chung cho giao diện quản trị
   (phần responsive/media-query tách riêng sang reponsive.css)
   ========================================================================== */

:root {
    --bs-theme: #1b5fa8;
    --bs-theme-rgb: 27, 95, 168;
    --bs-link-color: #1b5fa8;
    --bs-link-color-rgb: 27, 95, 168;
    --bs-link-hover-color: #144a85;
    --brand-50: #f2f7fd;
    --brand-100: #e2eef9;
    --brand-200: #c5dcf2;
    --brand-300: #94bde4;
    --brand-500: #1b5fa8;
    --brand-600: #144a85;
    --brand-700: #0e3763;
    --ink-50: #f7f8fa;
    --ink-100: #eef0f3;
    --ink-200: #dde2e8;
    --ink-300: #c8d0da;
    --ink-400: #7c8698;
    --ink-500: #4d5666;
    --ink-600: #33394a;
    --ink-700: #344054;
    --ink-900: #101828;
    --surface-base: #ffffff;
    --surface-soft: #f8fafc;
    --surface-muted: #f1f5f9;
    --success: #198754;
    --warning: #d69300;
    --error: #dc3545;
    --border-soft: #e4e9ef;
    --border-medium: #d0d7e0;
    --radius-sm: 5px;
    --radius-md: 8px;
    --radius-lg: 14px;
    --shadow-card: 0 1px 4px rgba(16, 24, 40, .07);
    --shadow-dropdown: 0 8px 24px rgba(16, 24, 40, .12);
    --shadow-focus: 0 0 0 .16rem rgba(var(--bs-theme-rgb), .13);
    --font-mono: "Roboto Mono", Consolas, monospace;
}

:root,
[data-bs-theme="light"] {
    --bs-body-color: var(--ink-900);
    --bs-body-bg: var(--ink-50);
    --bs-border-color: var(--border-soft);
    /* Theme Limitless (wwwroot/assets, CẤM SỬA) hardcode --bs-tertiary-bg-rgb: 0,0,0 nên .bg-body-tertiary luôn ra màu đen đặc — override lại đúng màu nhạt theo token của source. */
    --bs-tertiary-bg-rgb: 238, 240, 243;
}

[data-bs-theme="dark"] {
    --bs-body-color: #f3f4f6;
    --bs-body-bg: #111827;
    --bs-border-color: #344054;
    --surface-base: #1b2431;
    --surface-soft: #202b39;
    --surface-muted: #263242;
    --border-soft: #344054;
    --border-medium: #475467;
    --ink-400: #98a2b3;
    --ink-500: #98a2b3;
    --ink-600: #cbd5e1;
    --bs-tertiary-bg-rgb: 38, 50, 66;
    --bs-app-sidebar-menu-link-color: #ffffff;
    --bs-app-sidebar-menu-link-active-color: #cbff4e;
}

/* Base */

/* Giữ UI phụ thuộc trạng thái khỏi hiển thị sai trước khi JS hoàn tất render lần đầu. */
[data-ui-cloak] {
    display: none !important;
}

/* Layout chỉ vẽ nội dung sau khi các controller trang đã áp trạng thái UI ban đầu. */
body.ui-initializing #content {
    visibility: hidden;
}

html {
    scroll-behavior: smooth;
}

body {
    overflow-x: hidden;
    color: var(--bs-body-color);
    background: var(--bs-body-bg);
    font-family: Roboto, Arial, sans-serif;
    font-size: .9375rem;
    line-height: 1.45;
}

body:before {
    position: fixed;
    inset: 0;
    z-index: -1;
    content: "";
    background-color: #fafff9;
    background-image: url(/images/bg-app.png);
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center;
    opacity: 0.07;
}

::selection {
    color: #fff;
    background: rgba(var(--bs-theme-rgb), .82);
}

a {
    text-underline-offset: 2px;
}

a,
button,
.btn,
.card,
.form-control,
.form-select {
    transition: border-color .15s ease, background-color .15s ease, color .15s ease, box-shadow .15s ease;
}

@font-face {
    font-family: BarCodeFont;
    src: url("/fonts/barcode/IDAutomationHC39M_Free_Version.ttf");
}

.view-barcode {
    font-family: BarCodeFont;
    font-size: 13px;
    line-height: normal;
}

/* Layout */

.div_header_master_wrapper {
    border-bottom: 1px solid rgba(255, 255, 255, .12);
    background: var(--brand-600);
    box-shadow: 0 1px 4px rgba(16, 24, 40, .12);
}

    .div_header_master_wrapper .menu-text,
    .div_header_master_wrapper .menu-link,
    .div_header_master_wrapper .app-header-menu {
        color: #fff;
    }

    .div_header_master_wrapper .menu-toggler span {
        background: #fff !important;
    }

.app-content {
    min-height: calc(100vh - var(--bs-app-header-height, 60px));
    color: #000000;
    background: #a4ffe229;
}

[data-bs-theme="dark"] .app-content {
    background: var(--bs-body-bg);
}

[data-bs-theme="dark"] .div_top_nav_master_wrapper {
    background: linear-gradient(180deg, rgba(var(--bs-theme-rgb), .16), var(--bs-body-bg) 65%);
}

.div_side_bar_master_wrapper {
    border-right: 1px solid var(--border-soft);
    box-shadow: 1px 0 3px rgba(16, 24, 40, .04);
}

.div_top_nav_master_wrapper {
    position: sticky;
    top: var(--bs-app-header-height);
    z-index: 1015;
    height: 48px;
    background: linear-gradient(180deg, var(--brand-50), var(--bs-body-bg) 65%);
    border-bottom: 1px solid var(--border-soft);
    box-shadow: 0 1px 3px rgba(16, 24, 40, .06);
}

.div_top_nav_master_wrapper > .menu {
    display: flex;
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0 1rem;
    align-items: stretch;
}

.text-theme {
    color: var(--brand-600) !important;
}

.div_top_nav_master_wrapper .top-nav-scroll-button {
    display: none;
}

.div_top_nav_master_wrapper .menu-item {
    position: relative;
}

.div_top_nav_master_wrapper .menu-link {
    display: flex;
    height: 100%;
    padding: 0 .8rem;
    color: var(--bs-body-color);
    text-decoration: none;
    align-items: center;
    gap: .45rem;
}

.div_top_nav_master_wrapper .menu-link:hover {
    color: var(--bs-theme);
    background: rgba(var(--bs-theme-rgb), .06);
}

.div_top_nav_master_wrapper .menu-icon {
    display: inline-flex;
    align-items: center;
}

.div_top_nav_master_wrapper .menu-caret {
    margin-left: .15rem;
}

.div_top_nav_master_wrapper .menu-submenu {
    position: absolute;
    top: 100%;
    left: 0;
    display: none;
    min-width: 250px;
    padding: .4rem;
    background: var(--bs-body-bg);
    border: 1px solid var(--bs-border-color);
    box-shadow: var(--bs-box-shadow);
}

.div_top_nav_master_wrapper .menu-submenu .menu-link {
    min-height: 36px;
    padding: .45rem .7rem;
    border-radius: var(--radius-sm);
}

.div_top_nav_master_wrapper .menu-item.has-sub:hover > .menu-submenu,
.div_top_nav_master_wrapper .menu-item.has-sub.expand > .menu-submenu {
    display: block;
}

.div_top_nav_master_wrapper .menu-item.active > .menu-link .menu-text {
    color: var(--bs-theme);
    font-weight: 700;
}

    .div_side_bar_master_wrapper .app-sidebar-content .menu .menu-item .menu-link {
        min-height: 36px;
        margin: 1px 7px;
        padding: .38rem .7rem;
        border-radius: var(--radius-sm);
    }

        .div_side_bar_master_wrapper .app-sidebar-content .menu .menu-item .menu-link:hover {
            background: rgba(var(--bs-theme-rgb), .06);
        }

html:not([data-bs-theme="dark"]) .div_side_bar_master_wrapper .app-sidebar-content .menu .menu-item .menu-text {
    color: var(--ink-900);
    font-weight: 600;
}

.div_side_bar_master_wrapper .app-sidebar-content .menu .menu-item.has-sub.active .menu-item.active .menu-text,
.app-sidebar .app-sidebar-content .menu .menu-item.active > .menu-link .menu-text {
    color: var(--bs-theme) !important;
    font-weight: 700;
}

.app-sidebar .menu-item.active > .menu-link {
    background: rgba(var(--bs-theme-rgb), .09);
    box-shadow: inset 3px 0 0 var(--bs-theme);
}

/* Form */

.form-label {
    margin-bottom: .35rem;
    color: #000;
    font-size: .875rem;
    font-weight: 600;
}

.form-control,
.form-select {
    min-height: 36px;
    padding: .4rem .65rem;
    border: 1px solid var(--border-medium);
    border-radius: var(--radius-sm);
    color: #000;
    background-color: var(--surface-base);
    box-shadow: none;
}

    .form-control:hover,
    .form-select:hover {
        border-color: #aab6c5;
    }

    .form-control:focus,
    .form-select:focus {
        border-color: var(--brand-500);
        background-color: var(--surface-base);
        box-shadow: var(--shadow-focus);
    }

textarea.form-control {
    min-height: 72px;
    resize: vertical;
}

.input-group > .form-control,
.input-group > .form-select,
.input-group > .input-group-text {
    min-height: 36px;
}

.input-group-text {
    padding: .4rem .65rem;
    border-color: var(--border-medium);
    color: var(--ink-600);
    background: var(--surface-muted);
}

.form-control::placeholder,
input::placeholder,
textarea::placeholder {
    color: var(--ink-400) !important;
    font-style: italic;
    opacity: 1;
}

.form-control:disabled,
.form-select:disabled,
select:disabled {
    color: var(--ink-500);
    background-color: var(--ink-200) !important;
    cursor: not-allowed;
    opacity: .85;
}

input:not([type="checkbox"], [type="radio"], [type="file"]):read-only,
textarea:read-only {
    border-color: var(--ink-200);
    background-color: var(--ink-100) !important;
    box-shadow: none;
}

input.input-validation-error,
textarea.input-validation-error,
select.input-validation-error,
.input-validation-error + .select2-container .select2-selection {
    border-color: var(--error) !important;
    box-shadow: 0 0 0 .12rem rgba(220, 53, 69, .1);
}

.field-validation-error,
.validation-summary-errors {
    display: none !important;
}

input:is([type="checkbox"], [type="radio"]):disabled + label.form-check-label {
    cursor: not-allowed;
    opacity: .65;
}

.form-check-input:checked {
    border-color: var(--bs-theme);
    background-color: var(--bs-theme);
}

.form-check-input:focus {
    border-color: var(--brand-500);
    box-shadow: var(--shadow-focus);
}

input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
    margin: 0;
    -webkit-appearance: none;
}

input[type="number"] {
    appearance: textfield;
    -moz-appearance: textfield;
}

[data-bs-theme="dark"] .form-label {
    color: #e5e7eb;
}

[data-bs-theme="dark"] .input-group-text {
    color: #d0d5dd;
}

[data-bs-theme="dark"] input:not([type="checkbox"], [type="radio"], [type="file"]):read-only,
[data-bs-theme="dark"] textarea:read-only,
[data-bs-theme="dark"] .form-control:disabled,
[data-bs-theme="dark"] .form-select:disabled {
    color: #98a2b3;
    border-color: #475467;
    background-color: #273244 !important;
}

/* Select2 */

.select2-container {
    width: 100% !important;
}

.select2-container--default .select2-selection--single {
    height: 36px !important;
    border: 1px solid var(--border-medium) !important;
    border-radius: var(--radius-sm) !important;
    color: #000 !important;
    background-color: var(--surface-base) !important;
    box-shadow: none;
}

    .select2-container--default .select2-selection--single:hover {
        border-color: #aab6c5 !important;
    }

.select2-container--default.select2-container--focus .select2-selection--single,
.select2-container--default.select2-container--open .select2-selection--single {
    border-color: var(--brand-500) !important;
    box-shadow: var(--shadow-focus);
}

.select2-container--default .select2-selection--single .select2-selection__arrow {
    height: 34px !important;
}

.select2-container--default .select2-selection--single .select2-selection__rendered {
    padding-right: 2rem;
    padding-left: .65rem;
    color: #000 !important;
    line-height: 34px !important;
}

.select2-container--default .select2-selection--single .select2-selection__placeholder {
    color: var(--ink-400);
    font-style: italic;
}

.select2-dropdown {
    overflow: hidden;
    border: 1px solid var(--border-medium);
    border-radius: var(--radius-md);
    background: var(--surface-base);
    box-shadow: var(--shadow-dropdown);
}

.select2-search--dropdown {
    padding: .55rem;
}

    .select2-search--dropdown .select2-search__field {
        min-height: 34px;
        border: 1px solid var(--border-medium) !important;
        border-radius: var(--radius-sm);
        color: #000;
        background: var(--surface-base);
    }

.select2-results__option {
    padding: .45rem .65rem;
}

.select2-container--default .select2-results__option--highlighted[aria-selected] {
    color: #fff;
    background-color: var(--bs-theme);
}

.select2-container--default .select2-results__option[aria-selected="true"] {
    color: var(--brand-700);
    background-color: var(--brand-50);
}

.select2-container--default.select2-container--disabled .select2-selection--single {
    background-color: var(--ink-200) !important;
    cursor: not-allowed;
}

.modal .select2-container {
    z-index: 1060;
}

[data-bs-theme="dark"] .select2-container--default .select2-selection--multiple .select2-selection__choice {
    color: #fff;
    background-color: #353f50;
}

/* Button */

.btn {
    border-radius: var(--radius-sm);
    font-weight: 500;
    box-shadow: none;
}

    .btn:focus,
    .btn:focus-visible {
        box-shadow: var(--shadow-focus);
    }

.btn-theme {
    color: #fff;
    border-color: var(--brand-500);
    background: var(--brand-500);
}

    .btn-theme:hover,
    .btn-theme:focus {
        color: #fff;
        border-color: var(--brand-600);
        background: var(--brand-600);
    }

.btn-outline-theme {
    color: var(--brand-600);
    border-color: var(--brand-300);
    background: var(--surface-base);
}

    .btn-outline-theme:hover {
        color: #fff;
        border-color: var(--brand-500);
        background: var(--brand-500);
    }

.btn-light {
    border-color: var(--border-soft);
    background: var(--surface-base);
}

    .btn-light:hover {
        border-color: var(--brand-200);
        background: var(--brand-50);
    }

/* Card */

.card {
    overflow: visible;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-lg);
    background: var(--surface-base);
    box-shadow: var(--shadow-card);
}

.card-header {
    min-height: 44px;
    padding: .6rem .85rem;
    border-bottom: 1px solid var(--border-soft);
    border-radius: var(--radius-lg) var(--radius-lg) 0 0 !important;
    font-weight: 600;
}

/* Card-header không tự khai báo bg-* (bg-primary, bg-success...) mới dùng nền/màu mặc định - để không đè lên màu thật của bg-opacity-10 (mẫu mekong) */
.card-header:not([class*="bg-"]) {
    color: var(--brand-700);
    background: var(--brand-50);
}

    .card-header .card-title {
        color: inherit;
    }

.card-body {
    padding: .75rem;
}

.card-footer {
    padding: .6rem .75rem;
    border-top: 1px solid var(--border-soft);
    border-radius: 0 0 var(--radius-lg) var(--radius-lg) !important;
    background: var(--surface-soft);
}

.card-arrow {
    pointer-events: none;
    display: block !important;
    opacity: .55;
}

/* Card có tiêu đề dùng cạnh vuông theo mẫu Mekong. */
.card:has(> .card-header) {
    border-radius: 0 !important;
}

.card:has(> .card-header) > .card-header,
.card:has(> .card-header) > .card-body,
.card:has(> .card-header) > .card-footer {
    border-radius: 0 !important;
}

/* Card có .card-arrow (mẫu mekong): chỉ hiện góc trang trí, bỏ viền thẳng quanh card */
#production_process_page .card:has(> .card-arrow) {
    border: 0;
}

/* Modal tạo lệnh được chuyển ra body nên cần selector riêng để giữ đúng khung góc kiểu Mekong. */
.production_process_forklift_order_form .card:has(> .card-arrow) {
    border: 0;
    border-radius: 0 !important;
}

.production_process_forklift_order_form .card:has(> .card-arrow) > .card-header {
    border-radius: 0 !important;
}

.production_process_forklift_order_form > .modal-body {
    min-height: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
}

.production_process_forklift_order_form .forklift_order_selected_section {
    min-height: 180px;
}

.production_process_forklift_order_form .forklift_order_table tbody tr,
.production_process_forklift_order_form .forklift_order_table tbody tr:hover,
.production_process_forklift_order_form .forklift_order_table tbody tr:hover > *:not(:has(input.form-control:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]))) {
    --bs-table-bg-state: transparent;
    --bs-table-accent-bg: transparent;
    background-color: #fff !important;
}

/* Ô nhập liệu trong bảng: thống nhất vùng nhập xanh nhạt và control nền trắng. */
.table td:has(input.form-control:not([type="hidden"]):not([type="checkbox"]):not([type="radio"])),
.table td:has(textarea.form-control) {
    min-width: 140px;
    background-color: #d4edda !important;
}

.table td input.form-control:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]),
.table td textarea.form-control {
    background-color: #fff !important;
}

.toggle-check-box {
    display: flex;
    align-items: center;
    gap: .4rem;
    height: 100%;
    padding: .3rem .6rem;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md, .35rem);
    background: var(--surface-base);
    cursor: pointer;
    font-weight: 500;
    font-size: .875rem;
    margin-bottom: 0;
}

    .toggle-check-box:has(input:checked) {
        border-color: var(--brand-700);
        background: var(--brand-50);
        color: var(--brand-700);
    }

/* Ca trong cùng 1 hàng cao bằng nhau, nút Lưu luôn nằm ngang hàng ở đáy dù số dòng sản phẩm khác nhau. */
.sieve-shift-col {
    display: flex;
}

.sieve-shift-card {
    display: flex;
    flex-direction: column;
    width: 100%;
    height: 100%;
}

.sieve-shift-card > .collapse {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-height: 0;
}

.sieve-shift-card > .collapse:not(.show) {
    display: none;
}

.sieve-shift-body,
.sieve-shift-form {
    display: flex;
    flex-direction: column;
    flex: 1;
}

.sieve-shift-footer {
    margin-top: auto;
}

.sieve-shift-header {
    padding: .6rem .85rem;
    font-weight: 600;
}

.sieve-shift-add-btn,
.sieve-shift-remove-btn {
    line-height: 1;
}

.sieve-shift-toolbar {
    padding-bottom: .5rem;
    border-bottom: 1px dashed var(--border-medium);
}

.sieve-shift-warning {
    font-size: .8rem;
    padding: .4rem .6rem;
}

.sieve-product-table {
    margin-bottom: 0;
    font-size: .85rem;
}

    .sieve-product-table thead th {
        font-weight: 700;
        white-space: nowrap;
    }

    .sieve-product-table input[type="number"]::-webkit-inner-spin-button,
    .sieve-product-table input[type="number"]::-webkit-outer-spin-button {
        -webkit-appearance: none;
        margin: 0;
    }

    .sieve-product-table input[type="number"] {
        -moz-appearance: textfield;
    }

.sieve-shift-total-row td {
    background: var(--surface-muted) !important;
    padding: .4rem .5rem !important;
}

.sieve-shift-footer {
    border-top: 1px solid var(--border-soft);
}

/* Bảng dạng lưới nhập liệu (Ca sản xuất) - đồng bộ mẫu mekong (table_transport_material_detail_custom) */
/* .table { --bs-table-border-color / .table > thead > tr > th { background/border } (định nghĩa chung, khai báo sau trong file) có specificity/thứ tự cao hơn nên đè mất style riêng của bảng này.
   Phải ghép thêm class .table vào selector (2 class) để thắng chắc chắn rule chung (1 class), không phụ thuộc thứ tự khai báo trong file. */
.table.table_transport_material_detail_custom {
    --bs-table-border-color: #000;
}

.table.table_transport_material_detail_custom > :not(caption) > * > * {
    border-color: #000;
}

.table.table_transport_material_detail_custom thead th,
.table.table_transport_material_detail_custom tfoot th {
    background-color: #fff69c !important;
    border-bottom-color: #000 !important;
    color: #000;
    padding-right: 2px !important;
    padding-left: 2px !important;
}

.table_transport_material_detail_custom > tbody > tr:nth-of-type(odd) > * {
    --bs-table-accent-bg: rgb(255 251 222 / 51%);
}

.table_transport_material_detail_custom input {
    min-width: 90px;
    margin: 0 auto;
    border: none;
    text-align: center;
    color: #000;
}

.table_transport_material_detail_custom tbody td,
.table_transport_material_detail_custom tfoot td {
    padding: 0;
    color: #000;
}

.table_transport_material_detail_custom .input-group .input-group-text {
    border: none;
    background: transparent;
    color: #000;
    padding-left: 0;
}

.sieve-product-table td.sieve-product-row-index,
.sieve-product-table td:last-child {
    padding: .4rem !important;
}

.second_view .card {
    box-shadow: var(--shadow-card);
}

.second_view .card-header {
    color: #fff;
    border-bottom-color: var(--brand-600);
    background: var(--brand-500) !important;
}

    .second_view .card-header .btn-outline-secondary,
    .second_view .card-header .btn-outline-danger {
        color: #fff;
        border-color: rgba(255, 255, 255, .55);
        background: transparent;
    }

        .second_view .card-header .btn-outline-secondary:hover,
        .second_view .card-header .btn-outline-danger:hover {
            color: var(--brand-700);
            border-color: #fff;
            background: #fff;
        }

[data-bs-theme="dark"] .card {
    border-color: #344054;
    background: var(--surface-base);
    box-shadow: 0 1px 4px rgba(0, 0, 0, .2);
}

[data-bs-theme="dark"] .card-header {
    color: #eaf2ff;
    border-bottom-color: #344054;
    background: #233044;
}

[data-bs-theme="dark"] .card-footer {
    border-top-color: #344054;
    background: #182231;
}

/* Table */

.table {
    --bs-table-bg: transparent;
    --bs-table-striped-bg: rgba(16, 24, 40, .018);
    --bs-table-hover-bg: rgba(var(--bs-theme-rgb), .045);
    --bs-table-color: #000000;
    --bs-table-border-color: rgba(0, 0, 0, .24);
    margin-bottom: 0;
    color: #000000;
}

    .table > :not(caption) > * > * {
        padding: .4rem .55rem;
        color: #000000;
        border-color: rgba(0, 0, 0, .24);
        vertical-align: middle;
    }

html:not([data-bs-theme="dark"]) .table > :not(caption) > * > * {
    background-color: var(--surface-base);
}

.table > thead,
.table > thead > tr > th {
    background: var(--brand-50);
}

    .table > thead > tr > th {
        padding: .5rem .55rem;
        border-top: 0;
        border-bottom: 1px solid rgba(0, 0, 0, .24);
        color: #000000;
        background: var(--brand-50) !important;
        font-size: .825rem;
        font-weight: 700;
        line-height: 1.2;
        white-space: nowrap;
    }

.table > tbody > tr:hover > * {
    background-color: var(--bs-table-bg) !important;
    box-shadow: inset 0 0 0 9999px var(--bs-table-bg-state, var(--bs-table-bg-type, var(--bs-table-accent-bg))) !important;
}

.table-hover-none > tbody > tr > * {
    --bs-table-accent-bg: transparent !important;
}

.table-hover-none > tbody > tr:hover > * {
    background-color: var(--bs-table-bg) !important;
    box-shadow: inset 0 0 0 9999px var(--bs-table-bg-state, var(--bs-table-bg-type, var(--bs-table-accent-bg))) !important;
}

.table > tbody > tr:last-child > td {
    border-bottom: 0;
}

.table a,
.table_a_href {
    color: var(--brand-600);
    font-weight: 600;
    text-decoration: none;
}

    .table a:hover,
    .table_a_href:hover {
        color: var(--brand-700);
        text-decoration: underline;
    }

.table .badge {
    padding: .34rem .5rem;
    border-radius: 999px;
    font-size: .72rem;
    font-weight: 600;
}

.table .btn-sm {
    min-width: 32px;
    min-height: 30px;
    padding: .25rem .45rem;
}

[data-bs-theme="dark"] .table > thead > tr > th {
    color: #dbeafe;
    border-bottom-color: #475467;
    background: #253247 !important;
}

[data-bs-theme="dark"] .table > tbody > tr:hover > * {
    background-color: var(--bs-table-bg) !important;
    box-shadow: inset 0 0 0 9999px var(--bs-table-bg-state, var(--bs-table-bg-type, var(--bs-table-accent-bg))) !important;
}

/* DataTables */

.dataTables_wrapper {
    color: var(--bs-body-color);
}

    .dataTables_wrapper .top,
    .dataTables_wrapper .bottom {
        gap: .5rem;
    }

    .dataTables_wrapper .top {
        margin-bottom: .4rem !important;
    }

    .dataTables_wrapper .bottom {
        margin-top: .35rem !important;
    }

    .dataTables_wrapper .dataTables_length,
    .dataTables_wrapper .dataTables_filter,
    .dataTables_wrapper .dataTables_info,
    .dataTables_wrapper .dataTables_paginate {
        margin: 0;
        color: var(--ink-600);
        font-size: .82rem;
    }

        .dataTables_wrapper .dataTables_length label,
        .dataTables_wrapper .dataTables_filter label {
            display: inline-flex;
            align-items: center;
            gap: .3rem;
            margin: 0;
        }

        .dataTables_wrapper .dataTables_length select,
        .dataTables_wrapper .dataTables_filter input {
            height: 32px;
            border: 1px solid var(--border-medium);
            border-radius: var(--radius-sm);
            color: #000;
            background-color: var(--surface-base);
            box-shadow: none;
        }

        .dataTables_wrapper .dataTables_length select {
            min-width: 66px;
            margin: 0 .2rem;
            padding: .2rem 1.6rem .2rem .5rem;
        }

        .dataTables_wrapper .dataTables_filter input {
            min-width: 190px;
            margin-left: .3rem;
            padding: .3rem .55rem;
        }

            .dataTables_wrapper .dataTables_length select:focus,
            .dataTables_wrapper .dataTables_filter input:focus {
                outline: 0;
                border-color: var(--brand-500);
                box-shadow: var(--shadow-focus);
            }

    .dataTables_wrapper .dataTables_info {
        padding-top: .4rem !important;
        font-weight: 500;
    }

    .dataTables_wrapper .dataTables_paginate {
        padding-top: .15rem !important;
    }

        .dataTables_wrapper .dataTables_paginate .pagination {
            display: flex;
            align-items: center;
            justify-content: flex-end;
            gap: .3rem;
            margin: 0;
        }

        /* paginate_button là li, không tạo giao diện trực tiếp */
        .dataTables_wrapper .dataTables_paginate .paginate_button {
            min-width: 0 !important;
            height: auto !important;
            margin: 0 !important;
            padding: 0 !important;
            border: 0 !important;
            border-radius: 0 !important;
            color: inherit !important;
            background: transparent !important;
            background-image: none !important;
            box-shadow: none !important;
        }

        /* Giao diện chỉ đặt vào page-link của Bootstrap 5 */
        .dataTables_wrapper .dataTables_paginate .page-link {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            min-width: 34px;
            height: 34px;
            padding: .35rem .65rem;
            border: 1px solid var(--border-soft);
            border-radius: var(--radius-sm) !important;
            color: var(--ink-700);
            background: var(--surface-base);
            background-image: none;
            box-shadow: none;
            line-height: 1;
        }

            .dataTables_wrapper .dataTables_paginate .page-link:hover {
                z-index: 1;
                color: var(--brand-700);
                border-color: var(--brand-200);
                background: var(--brand-50);
            }

            .dataTables_wrapper .dataTables_paginate .page-link:focus {
                z-index: 2;
                color: var(--brand-700);
                border-color: var(--brand-500);
                background: var(--surface-base);
                box-shadow: var(--shadow-focus);
            }

        .dataTables_wrapper .dataTables_paginate .page-item.active .page-link,
        .dataTables_wrapper .dataTables_paginate .paginate_button.current .page-link {
            z-index: 1;
            color: #fff;
            border-color: var(--brand-500);
            background: var(--brand-500);
        }

        .dataTables_wrapper .dataTables_paginate .page-item.disabled .page-link {
            color: var(--ink-400);
            border-color: var(--border-soft);
            background: var(--surface-muted);
            opacity: .65;
            cursor: not-allowed;
        }

.dataTables_scroll {
    overflow: hidden;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
    background: var(--surface-base);
}

.dataTables_scrollHead {
    overflow: hidden !important;
    border-bottom: 1px solid var(--brand-200) !important;
    background: var(--brand-50);
}

.dataTables_scrollBody {
    overflow-x: auto !important;
    border-top: 0 !important;
    scrollbar-width: thin;
    scrollbar-color: var(--ink-300) transparent;
}

    .dataTables_scrollBody::-webkit-scrollbar {
        width: 7px;
        height: 7px;
    }

    .dataTables_scrollBody::-webkit-scrollbar-track {
        background: transparent;
    }

    .dataTables_scrollBody::-webkit-scrollbar-thumb {
        border: 2px solid transparent;
        border-radius: 999px;
        background: var(--ink-300);
        background-clip: padding-box;
    }

        .dataTables_scrollBody::-webkit-scrollbar-thumb:hover {
            background: var(--ink-400);
            background-clip: padding-box;
        }

table.dataTable.no-footer,
table.dataTable thead th,
table.dataTable thead td {
    border-bottom: 0 !important;
}

table.dataTable tbody td {
    color: #000000 !important;
    border-color: rgba(0, 0, 0, .24) !important;
    padding-top: .42rem !important;
    padding-bottom: .42rem !important;
}

[data-bs-theme="dark"] .dataTables_wrapper .dataTables_length,
[data-bs-theme="dark"] .dataTables_wrapper .dataTables_filter,
[data-bs-theme="dark"] .dataTables_wrapper .dataTables_info,
[data-bs-theme="dark"] .dataTables_wrapper .dataTables_paginate {
    color: #cbd5e1;
}

    [data-bs-theme="dark"] .dataTables_wrapper .dataTables_paginate .page-link {
        color: #d0d5dd;
        border-color: #344054;
        background: var(--surface-base);
    }

        [data-bs-theme="dark"] .dataTables_wrapper .dataTables_paginate .page-link:hover {
            color: #fff;
            border-color: var(--brand-500);
            background: rgba(var(--bs-theme-rgb), .22);
        }

    [data-bs-theme="dark"] .dataTables_wrapper .dataTables_paginate .page-item.active .page-link {
        color: #fff;
        border-color: var(--brand-500);
        background: var(--brand-500);
    }

    [data-bs-theme="dark"] .dataTables_wrapper .dataTables_paginate .page-item.disabled .page-link {
        color: #667085;
        border-color: #344054;
        background: #202938;
    }

/* Modal */

.modal-content {
    overflow: hidden;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-lg);
    background: var(--surface-base);
    box-shadow: 0 10px 30px rgba(16, 24, 40, .15);
}

#div_body_modal_main > form {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    min-height: 0;
    max-height: calc(100vh - 3.5rem);
    overflow: hidden;
}

#div_body_modal_main > form > .modal-body {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
}

.datatable-text-wrap {
    display: -webkit-box;
    min-width: 0;
    max-width: none;
    overflow: hidden;
    white-space: normal;
    overflow-wrap: anywhere;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.datatable-thumbnail,
.news-image-preview {
    width: 56px;
    height: 56px;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-sm);
    object-fit: cover;
}

.news-image-preview {
    width: 96px;
    height: 72px;
}

.app-preloader {
    position: fixed;
    inset: 0;
    z-index: 10000;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--surface-base);
}

.modal-backdrop {
    --bs-backdrop-bg: #000;
    --bs-backdrop-opacity: .25;
    backdrop-filter: blur(1px);
}

.app-preloader img {
    position: relative;
    z-index: 1;
    object-fit: contain;
}

.app-preloader-spinner {
    position: absolute;
    width: 128px;
    height: 128px;
    border: 3px solid rgba(var(--bs-theme-rgb), .18);
    border-top-color: var(--bs-theme);
    border-radius: 50%;
    animation: app-preloader-spin .8s linear infinite;
}

@keyframes app-preloader-spin {
    to { transform: rotate(360deg); }
}

.modal-header {
    min-height: 48px;
    padding: .65rem .85rem;
    border-bottom: 1px solid var(--border-soft);
    color: var(--brand-700);
    background: var(--brand-50);
}

.modal-title {
    font-size: 1rem;
    font-weight: 700;
}

.modal-body {
    padding: .85rem;
    background: var(--surface-base);
}

.modal-footer {
    padding: .6rem .85rem;
    border-top: 1px solid var(--border-soft);
    background: var(--surface-soft);
}

[data-bs-theme="dark"] .modal-header {
    color: #eaf2ff;
    border-bottom-color: #344054;
    background: #233044;
}

[data-bs-theme="dark"] .modal-footer {
    border-top-color: #344054;
    background: #182231;
}

/* Alert và tiện ích */

.alert {
    padding: .65rem .75rem;
    border-width: 1px;
    border-radius: var(--radius-md);
}

.alert-info {
    color: #174a78;
    border-color: #c9def2;
    background: #f1f7fd;
}

[data-bs-theme="dark"] .alert-info {
    color: #cfe8ff;
    border-color: #31567c;
    background: rgba(27, 95, 168, .17);
}

.cursor-pointer {
    cursor: pointer;
}

.text-brown {
    color: saddlebrown;
}

.smc_page_header {
    margin-bottom: .85rem;
}

.smc_page_title {
    margin: 0;
    color: var(--ink-900);
    font-size: 1.3rem;
    font-weight: 700;
}

[data-bs-theme="dark"] .smc_page_title {
    color: #f9fafb;
}

.sp-line-1,
.sp-line-2,
.sp-line-3,
.sp-line-4 {
    display: -webkit-box;
    overflow: hidden;
    text-overflow: ellipsis;
    -webkit-box-orient: vertical;
}

.sp-line-1 {
    -webkit-line-clamp: 1;
}

.sp-line-2 {
    -webkit-line-clamp: 2;
}

.sp-line-3 {
    -webkit-line-clamp: 3;
}

.sp-line-4 {
    -webkit-line-clamp: 4;
}

.dropdown-menu {
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
    background: var(--surface-base);
    box-shadow: var(--shadow-dropdown);
}

.dropdown-item {
    border-radius: var(--radius-sm);
}

    .dropdown-item:hover,
    .dropdown-item:focus {
        color: var(--brand-700);
        background: var(--brand-50);
    }

.tooltip-inner {
    max-width: 320px;
    padding: .4rem .55rem;
    border-radius: var(--radius-sm);
    font-size: .76rem;
}

/* Header, navigation and page spacing */
:root {
    --bs-app-header-height: 58px;
}

/* Header/top-nav dùng position: sticky (không phải fixed) nên vẫn chiếm chỗ trong luồng
   layout bình thường -> KHÔNG cần padding-top bù trừ mà theme gốc gán sẵn cho header-fixed
   (gây khoảng trắng rỗng phía trên mọi trang). */
#app.app {
    display: flex;
    flex-direction: column;
    position: relative;
    z-index: 0;
    min-height: 100vh;
    padding-top: 0 !important;
}

.div_header_master_wrapper.app-header {
    position: sticky;
    top: 0;
    z-index: 1030;
    height: var(--bs-app-header-height);
    min-height: var(--bs-app-header-height);
    padding: 0 .85rem;
    background-color: var(--brand-600);
    background-image: linear-gradient(112deg, rgba(20, 74, 133, .9), rgba(20, 74, 133, .8) 52%, rgba(20, 74, 133, .9)), url('../images/background.webp');
    background-position: center, center bottom;
    background-size: cover;
    background-repeat: no-repeat;
    border-bottom: 1px solid var(--brand-700);
    box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .28), 0 .15rem .55rem rgba(14, 55, 99, .38);
}

.div_header_master_wrapper .header-factory .menu-text {
    padding: .18rem .6rem;
    color: #fff;
    font-weight: 600;
    border: 1px solid rgba(255, 255, 255, .3);
    border-radius: 999px;
    background: rgba(255, 255, 255, .22);
    text-shadow: 0 1px 2px rgba(0, 0, 0, .4);
}

.div_header_master_wrapper .mobile-toggler {
    display: none;
}

.div_header_master_wrapper .brand {
    flex: 1 1 auto;
    min-width: 0;
    margin-right: .45rem;
    flex-wrap: nowrap;
    overflow: visible;
}

.div_header_master_wrapper .brand-logo {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    gap: .6rem;
    min-height: 48px;
    max-width: 260px;
    padding: .16rem .8rem .16rem .3rem;
    overflow: hidden;
    border-radius: 999px;
    background: rgba(255, 255, 255, .96);
    box-shadow: 0 1px 4px rgba(0, 0, 0, .3);
    color: var(--brand-700) !important;
}

.div_header_master_wrapper .brand-logo-badge {
    display: inline-flex;
    flex-shrink: 0;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
}

.div_header_master_wrapper .brand .brand-logo .brand-img {
    display: block;
    width: 100%;
    height: 100%;
    margin: 0;
    background: none;
    object-fit: contain;
}

.div_header_master_wrapper .brand-text {
    color: var(--brand-700);
    font-size: 1rem;
    font-weight: 800;
    line-height: 1;
    letter-spacing: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.div_header_master_wrapper .brand-subtext {
    color: var(--brand-700);
    font-size: .72rem;
    opacity: .9;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.div_header_master_wrapper.app-header .menu .menu-item .menu-link {
    min-height: 48px;
    padding: 0;
    font-size: .86rem;
}

.div_header_master_wrapper .account-menu {
    display: flex;
    align-items: center;
}

.div_header_master_wrapper.app-header .menu .menu-item .account-menu-link {
    min-height: 28px;
    margin-left: 0;
    padding: .08rem .3rem .08rem .13rem;
    gap: .25rem;
    border: 1px solid rgba(255, 255, 255, .55);
    border-radius: 999px;
    color: var(--brand-700) !important;
    background: rgba(255, 255, 255, .95);
    box-shadow: 0 1px 6px rgba(8, 27, 48, .22);
}

.div_header_master_wrapper .account-menu-link:hover,
.div_header_master_wrapper .account-menu.show .account-menu-link {
    border-color: rgba(255, 255, 255, .85);
    background: #fff;
    box-shadow: 0 2px 10px rgba(8, 27, 48, .28);
}

.div_header_master_wrapper .account-avatar {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    padding: 1px;
    overflow: hidden;
    border: 1px solid var(--brand-600);
    border-radius: 50%;
    background: #fff;
}

.header-clock-pill {
    flex: 0 0 auto;
    min-height: 34px;
    padding-right: .8rem !important;
    padding-left: .65rem !important;
    color: #fff;
    border: 1px solid rgba(255, 255, 255, .2);
    background: rgba(255, 255, 255, .16);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .08);
    white-space: nowrap;
}

.header-clock-pill strong {
    font-size: .78rem;
    font-weight: 800;
}

.header-clock-pill small {
    margin-top: .16rem;
    color: rgba(255, 255, 255, .82);
    font-size: .68rem;
    font-weight: 700;
}

.header-clock-icon {
    width: 24px;
    height: 24px;
    color: #fde047;
    background: rgba(255, 255, 255, .14);
}

.div_header_master_wrapper .account-avatar img {
    display: block;
    width: 100%;
    height: 100%;
    border-radius: 50%;
    object-fit: cover;
}

.div_header_master_wrapper .account-menu-text {
    flex-direction: column;
    justify-content: center;
    max-width: 82px;
    min-width: 0;
    line-height: 1;
}

.div_header_master_wrapper .account-menu-text strong,
.div_header_master_wrapper .account-menu-text small {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.div_header_master_wrapper .account-menu-text strong {
    color: var(--brand-700);
    font-size: .62rem;
    font-weight: 800;
}

.div_header_master_wrapper .account-menu-text small {
    color: var(--brand-600);
    font-size: .5rem;
    font-weight: 700;
}

.div_header_master_wrapper .account-menu-caret {
    color: var(--brand-700);
    font-size: .54rem;
}

.account-dropdown {
    width: 340px;
    padding: .45rem;
    border: 0;
    border-radius: var(--radius-md);
    box-shadow: 0 12px 30px rgba(16, 24, 40, .2);
}

.account-dropdown-header {
    padding: .55rem .65rem .65rem;
    border-bottom: 1px solid var(--border-soft);
}

.account-dropdown-header strong,
.account-dropdown-header span {
    display: block;
}

.account-dropdown-header strong {
    color: var(--ink-900);
    font-size: 1rem;
    font-weight: 800;
}

.account-dropdown-header span {
    margin-top: .25rem;
    color: #166534;
    font-size: .84rem;
    font-weight: 700;
}

.account-dropdown-section {
    margin-top: .4rem;
    padding: .5rem;
    border: 1px solid;
    border-radius: var(--radius-md);
}

.account-dropdown-section.section-quick {
    border-color: #a7f3d0;
    background: #ecfdf5;
}

.account-dropdown-section.section-app {
    border-color: #fde68a;
    background: #fffbeb;
}

.account-dropdown-title {
    margin-bottom: .28rem;
    color: #667085;
    font-size: .7rem;
    font-weight: 800;
    text-transform: uppercase;
}

.account-dropdown-item {
    display: flex;
    align-items: center;
    gap: .55rem;
    min-height: 34px;
    padding: .42rem .45rem;
    border-radius: var(--radius-sm);
    color: #344054;
    font-size: .9rem;
    font-weight: 600;
}

.account-dropdown-item i:first-child {
    width: 18px;
    text-align: center;
    font-size: 1rem;
}

.account-dropdown-item:hover,
.account-dropdown-item:focus {
    color: #126d41;
    background: rgba(255, 255, 255, .72);
}

.account-signout {
    margin-top: .35rem;
    color: #dc3545;
    font-weight: 800;
}

.account-signout:hover,
.account-signout:focus {
    color: #b02a37;
    background: #fff5f5;
}

.div_header_master_wrapper .header-factory {
    cursor: default;
}

.div_top_nav_master_wrapper > .menu {
    padding: 0 1rem;
    gap: .8rem;
    justify-content: flex-start;
}

.div_top_nav_master_wrapper > .menu > .menu-item > .menu-link {
    margin: 0;
    padding: 0 .78rem;
    border-radius: 0;
    color: var(--brand-700) !important;
    font-size: .88rem;
    font-weight: 800;
    letter-spacing: .01rem;
    text-transform: uppercase;
    white-space: nowrap;
}

@media (max-width: 1440px) {
    .div_top_nav_master_wrapper > .menu {
        padding: 0 .5rem;
        gap: .15rem;
    }

    .div_top_nav_master_wrapper > .menu > .menu-item > .menu-link {
        padding: 0 .5rem;
        font-size: .72rem;
    }
}

.div_top_nav_master_wrapper .menu-icon {
    color: var(--brand-700) !important;
    font-size: .9rem;
}

.div_top_nav_master_wrapper > .menu > .menu-item > .menu-link:hover,
.div_top_nav_master_wrapper > .menu > .menu-item > .menu-link:focus {
    background: transparent;
    box-shadow: inset 0 -3px 0 #198754;
}

.div_top_nav_master_wrapper .menu-submenu {
    min-width: 410px;
    padding: 0;
    border: 0;
    border-radius: 0 0 .5rem .5rem;
    box-shadow: 0 0 25px rgba(30, 34, 40, .06);
}

.div_top_nav_master_wrapper .menu-submenu .menu-link {
    min-height: 0;
    padding: .375rem 1.25rem;
    color: var(--brand-700) !important;
    font-size: .84rem;
    font-weight: 700;
}

.div_top_nav_master_wrapper .menu-submenu .menu-link::before {
    margin-right: .75rem;
    color: var(--brand-700);
    font-family: "bootstrap-icons";
    font-size: .7rem;
    content: "\f285";
}

.div_top_nav_master_wrapper > .menu > .menu-item.active > .menu-link {
    color: rgb(18, 109, 65) !important;
    background: transparent;
    box-shadow: inset 0 -3px 0 var(--brand-600);
}

.div_top_nav_master_wrapper .menu-item.active > .menu-link .menu-icon,
.div_top_nav_master_wrapper .menu-item.has-sub.expand > .menu-link .menu-icon {
    color: #dc3545 !important;
}

.div_top_nav_master_wrapper .menu-submenu .menu-item.active > .menu-link::before {
    color: #dc3545;
}

.div_top_nav_master_wrapper .menu-item.has-sub.expand > .menu-link {
    background: transparent;
}

.div_top_nav_master_wrapper .menu-submenu .menu-link:hover,
.div_top_nav_master_wrapper .menu-submenu .menu-link:focus,
.div_top_nav_master_wrapper .menu-submenu .menu-item.active > .menu-link {
    color: #126d41 !important;
    background: #f3fbf7;
    box-shadow: none;
}

.div_top_nav_master_wrapper .menu-caret .caret {
    display: inline-block;
    transition: transform .15s ease;
}

.div_top_nav_master_wrapper .menu-item.has-sub.expand > .menu-link .menu-caret .caret {
    transform: rotate(180deg);
}

@media (max-width: 991.98px) {
    .account-dropdown {
        width: min(340px, calc(100vw - 1rem));
    }
}

.app-content {
    flex: 1 0 auto;
    min-height: 0;
    padding: .7rem 1rem;
}

.breadcrumb-wrapper {
    display: flex;
    min-height: 22px;
    justify-content: flex-end;
}

.breadcrumb-wrapper .breadcrumb {
    padding: 0;
    color: var(--ink-500);
    font-size: .72rem;
}

.breadcrumb-wrapper .breadcrumb-item + .breadcrumb-item::before {
    color: var(--ink-400);
}

.breadcrumb-wrapper .breadcrumb-item.active {
    color: var(--ink-600);
}

#footer.app-footer {
    position: static !important;
    z-index: 1020;
    width: 100%;
    /* Theme gốc gán sẵn margin-left bằng bề rộng sidebar cho layout có sidebar; app-without-sidebar không có sidebar nên phải reset về 0, nếu không footer bị lệch hẳn sang phải và hở khoảng trắng bên trái. */
    margin: auto 0 0;
    min-height: 32px;
    padding: .35rem 1rem;
    color: var(--ink-600);
    border-top: 1px solid var(--border-soft);
    background: rgba(255, 255, 255, .78);
    font-size: .76rem;
}

.footer-content,
.footer-links {
    display: flex;
    align-items: center;
}

.footer-content {
    width: 100%;
    max-width: 1600px;
    margin: 0 auto;
    justify-content: center;
    gap: .75rem;
}

.footer-brand {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    color: var(--ink-600);
    font-size: .76rem;
    font-weight: 600;
    text-decoration: none;
}

.footer-brand img {
    width: 24px;
    height: 24px;
    object-fit: contain;
}

.footer-links {
    gap: .75rem;
    white-space: nowrap;
}

.footer-links a {
    color: var(--brand-600);
    font-weight: 600;
    text-decoration: none;
}

.footer-eco {
    background: linear-gradient(90deg, #087a4a 0%, #087a4a 45%, #ea5b2a 55%, #ea5b2a 100%);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}

.footer-tech {
    color: #ea5b2a;
}

.warehouse-journal-page {
    padding: 6px 0 12px;
}

.warehouse-journal-page #div_search {
    padding: .35rem .45rem .25rem;
}

.warehouse-journal-page .data-management {
    padding: .35rem .45rem .45rem;
}

.warehouse-journal-page .dataTables_scroll {
    background: rgba(255, 255, 255, .92);
}

.warehouse-journal-page .nav-wizards-container {
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.warehouse-journal-page .nav-wizards-2 {
    flex-wrap: nowrap;
    width: 100%;
}

.warehouse-journal-page .nav-wizards-2 .nav-item {
    flex: 1 1 0;
    min-width: -moz-fit-content;
    min-width: fit-content;
}

.warehouse-journal-page .nav-wizards-2 .nav-link {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 46px;
    color: #263f36;
    background: rgba(128, 151, 142, .38);
    font-weight: 800;
    white-space: nowrap;
}

.warehouse-journal-page .nav-wizards-2 .nav-link.active {
    color: #fff;
    background: var(--brand-500);
}

.warehouse-journal-page .nav-wizards-2 .nav-text {
    text-align: center;
    font-size: .86rem;
    font-weight: 800;
    text-transform: uppercase;
    white-space: nowrap;
}

.card_hover_3 {
    background: #006436e3;
}

.card_hover_3:hover {
    box-shadow: #00ffaf 5px 7px 15px -3px;
}

.card_hover_3:hover b,
.card_hover_3:hover i {
    color: #ffeb46 !important;
}

.h-150px {
    height: 150px;
}

.warehouse-journal-page > .card {
    background: transparent;
    border-color: transparent;
    box-shadow: none;
}

.warehouse-journal-page > .card > .card-header {
    margin-bottom: .5rem;
    color: var(--ink-900);
    background: rgba(255, 255, 255, .55);
    border: 0;
    border-radius: 0 !important;
}

.warehouse-journal-page > .card > .card-body {
    padding: 0;
}

.warehouse-journal-page .card::before,
.warehouse-journal-page .card::after {
    display: none;
}

.warehouse-journal-summary {
    padding: .45rem;
    margin-bottom: .65rem;
    background: rgba(201, 228, 250, .42) !important;
    border: 0 !important;
}

.warehouse-journal-summary .border {
    border-color: rgba(27, 95, 168, .08) !important;
    box-shadow: none;
}

.warehouse-zone-title {
    color: #102234;
    font-size: .9rem;
    font-weight: 600;
    margin: 10px 0 6px;
    text-transform: uppercase;
}

.warehouse-zone-title::before {
    content: "";
    display: inline-block;
    width: 0;
    height: 0;
    margin-right: 6px;
    border-top: 6px solid transparent;
    border-bottom: 6px solid transparent;
    border-left: 8px solid #138f2d;
}

.warehouse-journal-card {
    cursor: pointer;
    background: #fff;
    border: 1px solid rgba(16, 24, 40, .10);
    border-radius: 6px;
    box-shadow: 0 1px 3px rgba(15, 40, 60, .07);
    transition: .2s ease;
}

.warehouse-journal-card:hover {
    box-shadow: 0 2px 6px rgba(15, 40, 60, .1);
}

.warehouse-journal-card .card-body {
    border-radius: 6px;
}

.warehouse-storage-card {
    border: 1px solid rgba(16, 24, 40, .10);
    border-radius: 6px;
    box-shadow: 0 1px 3px rgba(15, 40, 60, .07) !important;
}

.warehouse-storage-card .card-header {
    min-height: 38px;
    padding: .4rem .55rem !important;
    border-bottom: 0;
    border-radius: 5px 5px 0 0 !important;
}

.warehouse-storage-card .card-body {
    padding-right: 0 !important;
    padding-left: 0 !important;
}

.warehouse-storage-card .list-group-item {
    padding: .25rem 11.2px !important;
    color: #000000 !important;
    border: 0 !important;
    border-bottom: 0.5px solid rgba(0, 0, 0, 0.2) !important;
}

.warehouse-storage-card .list-group-item b {
    color: #000000 !important;
    font-weight: 700;
}

.warehouse-storage-card .card-footer {
    padding: .5rem .65rem !important;
}

.warehouse-storage-card .select_cell_product + .select2-container,
.warehouse-journal-card .select_cell_product + .select2-container {
    max-width: 60% !important;
    width: 60% !important;
}

.cell-matrix-legend {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem 1.25rem;
    margin-bottom: .75rem;
    font-size: .8rem;
    color: var(--bs-secondary-color, #6c757d);
}

.cell-matrix-legend-item {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
}

.cell-matrix-swatch {
    display: inline-block;
    width: 14px;
    height: 14px;
    border-radius: 4px;
    background: #fff;
    border: 1px solid rgba(16, 24, 40, .18);
}

.cell-matrix-swatch--locked {
    background: #ffc107;
    border-color: #d39e00;
}

.cell-matrix-swatch--selected {
    background: var(--bs-theme, #0d6efd);
    border-color: var(--bs-theme, #0d6efd);
}

.cell-matrix-grid {
    display: grid;
    gap: 8px;
    padding: 10px;
    border: 2px solid rgba(16, 24, 40, .18);
    border-radius: 8px;
    background: rgba(16, 24, 40, .02);
}

.cell-matrix-grid .cell-matrix-cell {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    border-radius: 6px;
    border: 1px solid rgba(16, 24, 40, .12);
    background: #fff;
    font-weight: 600;
    cursor: pointer;
    user-select: none;
    transition: background-color .12s ease, border-color .12s ease, transform .12s ease, box-shadow .12s ease;
}

.cell-matrix-grid .cell-matrix-cell:hover {
    background-color: rgba(var(--bs-theme-rgb), .12);
    border-color: rgba(var(--bs-theme-rgb), .45);
    transform: translateY(-1px);
    box-shadow: 0 2px 6px rgba(15, 40, 60, .12);
}

.cell-matrix-grid .cell-matrix-cell--locked {
    background: #ffc107;
    border-color: #d39e00;
    color: #664d03;
    cursor: not-allowed;
}

.cell-matrix-grid .cell-matrix-cell--locked:hover {
    background: #ffc107;
    border-color: #d39e00;
    transform: none;
    box-shadow: none;
}

.cell-matrix-grid .cell-matrix-cell--selected,
.cell-matrix-grid .cell-matrix-cell--selected:hover {
    background: var(--bs-theme, #0d6efd);
    border-color: var(--bs-theme, #0d6efd);
    color: #fff;
}

.warehouse-storage-row {
    position: relative;
    display: block;
    padding: var(--bs-list-group-item-padding-y) var(--bs-list-group-item-padding-x);
    color: var(--bs-list-group-color);
    text-decoration: none;
    background-color: var(--bs-list-group-bg);
    border: var(--bs-list-group-border-width) solid var(--bs-list-group-border-color) !important;
    min-height: 26px;
    font-size: .8rem;
}

.warehouse-storage-row > span {
    font-weight: 600 !important;
}

.warehouse-storage-row-label {
    color: var(--bs-list-group-color);
    font-weight: 900 !important;
}

.warehouse-journal-empty {
    padding: 18px;
    color: #728296;
    text-align: center;
    background: #f8fbfe;
    border: 1px dashed #c9d6e2;
    border-radius: 6px;
}

.text-pink {
    color: #e83e8c !important;
}

#div_data_material_pool_log {
    display: flex;
    justify-content: center;
    width: 100%;
    padding: 1rem 0;
}

.warehouse-storage-empty-col {
    display: flex;
    justify-content: center;
    width: 100%;
}

#div_data_material_pool_log h4 {
    margin: 0;
    width: 100%;
}

#div_data_material_pool_log img {
    max-width: 120px;
    height: auto;
    object-fit: contain;
}

.table.table-xs.table-transport-tank thead th {
    padding-top: .6rem;
    padding-bottom: .6rem;
    vertical-align: middle;
}
.cell-inventory-history-table thead th,
.forklift-pending-table thead th,
.forklift-order-summary-table thead th {
    background: #eaf2fb;
    border-color: #c7d4e3;
    color: #23364d;
    padding: .65rem .75rem;
    vertical-align: middle;
    white-space: normal;
}

.cell-inventory-history-table tbody td,
.forklift-pending-table tbody td,
.forklift-order-summary-table tbody td {
    border-color: #d7dee8;
    padding: .55rem .75rem;
    vertical-align: middle;
}

.forklift-order-summary-card,
.forklift-order-summary-card .card-body,
.forklift-order-summary-card .data-management,
.forklift-order-summary-card .dataTables_wrapper {
    min-width: 0;
}

.forklift-order-summary-table tbody td {
    overflow-wrap: anywhere;
    white-space: normal;
}

.forklift-order-summary-table .forklift-pending-cell {
    min-width: 0;
    max-height: none;
    overflow: visible;
}

.forklift-order-summary-table .forklift-order-vehicle-cell,
.forklift-order-summary-table .badge {
    white-space: normal;
}

.forklift-order-summary-table tbody tr.child td.child {
    padding: .5rem .75rem !important;
}

.forklift-order-summary-table tbody tr.child ul.dtr-details {
    display: block;
    width: 100%;
    text-align: left;
}

.forklift-order-summary-table tbody tr.child ul.dtr-details > li {
    display: grid;
    grid-template-columns: minmax(120px, 32%) minmax(0, 1fr);
    gap: .5rem;
}

.forklift-order-summary-table tbody tr.child .dtr-title,
.forklift-order-summary-table tbody tr.child .dtr-data {
    min-width: 0;
}

.forklift-pending-table tbody .forklift-pending-cell {
    width: 100%;
    min-height: 44px;
    box-sizing: border-box;
    border: 1px solid rgba(var(--bs-info-rgb), .35);
    border-radius: .35rem;
    background-color: rgba(var(--bs-info-rgb), .1);
    padding: .35rem .55rem;
}

.cell-inventory-history-table tbody td {
    background-color: #fff;
}

.forklift-pending-cell {
    display: flex;
    min-width: 150px;
    flex-flow: column nowrap;
    align-items: flex-start;
    align-content: center;
    gap: .15rem .45rem;
    max-height: 2.65rem;
    overflow: hidden;
    line-height: 1.25;
    text-align: left;
    white-space: normal;
}

.forklift-pending-cell__primary {
    color: var(--bs-primary);
    font-weight: 700;
}

.forklift-pending-cell__secondary {
    color: var(--bs-success);
    font-size: .72rem;
    font-weight: 600;
}

.forklift-order-code-cell,
.forklift-order-vehicle-cell {
    display: flex;
    flex-direction: column;
    gap: .25rem;
    width: 100%;
    min-height: 44px;
    box-sizing: border-box;
    border: 1px solid rgba(var(--bs-info-rgb), .35);
    border-radius: .35rem;
    background-color: rgba(var(--bs-info-rgb), .1);
    padding: .35rem .55rem;
}

.forklift-order-summary-table tbody .forklift-pending-cell {
    width: 100%;
    min-height: 44px;
    box-sizing: border-box;
    border: 1px solid rgba(var(--bs-info-rgb), .35);
    border-radius: .35rem;
    background-color: rgba(var(--bs-info-rgb), .1);
    padding: .35rem .55rem;
}

.forklift-order-code-cell {
    align-items: center;
}

.forklift-order-vehicle-cell {
    align-items: flex-start;
    text-align: left;
}

.forklift-pending-value {
    display: inline-flex;
    min-width: 44px;
    justify-content: center;
    border-radius: .35rem;
    padding: .18rem .4rem;
    font-weight: 800;
}

.forklift-pending-value--plan {
    background: rgba(var(--bs-primary-rgb), .12);
    color: var(--bs-primary);
}

.forklift-pending-value--tallied {
    background: rgba(var(--bs-info-rgb), .14);
    color: #08707f;
}

.forklift-pending-value--matched {
    background: rgba(var(--bs-success-rgb), .14);
    color: var(--bs-success);
}

.forklift-pending-value--deviation {
    background: rgba(var(--bs-danger-rgb), .14);
    color: var(--bs-danger);
}

.forklift-pending-deviation {
    color: var(--bs-danger);
    font-size: .7rem;
    font-weight: 800;
}

@media (max-width: 767.98px) {
    .forklift-order-summary-card .card-body {
        padding-right: .5rem;
        padding-left: .5rem;
    }

    .forklift-order-summary-filters .input-daterange > .form-control {
        min-width: 0;
    }

    .forklift-order-summary-card .dataTables_wrapper .action-filters {
        gap: .5rem;
    }

    .forklift-order-summary-card .dataTables_wrapper .action-filters .dataTables_length,
    .forklift-order-summary-card .dataTables_wrapper .action-filters .dataTables_filter {
        width: 100%;
    }

    .forklift-order-summary-card .dataTables_wrapper .dataTables_filter label {
        display: flex;
        width: 100%;
    }

    .forklift-order-summary-card .dataTables_wrapper .dataTables_filter input {
        flex: 1 1 auto;
        min-width: 0;
    }

    .forklift-order-summary-card .dataTables_wrapper .bottom .row {
        gap: .35rem;
    }

    .forklift-order-summary-table thead th,
    .forklift-order-summary-table tbody td {
        padding-right: .45rem;
        padding-left: .45rem;
    }
}

@media (max-width: 575.98px) {
    .forklift-order-summary-table tbody tr.child ul.dtr-details > li {
        grid-template-columns: 1fr;
        gap: .2rem;
    }
}
