.logo-header{transition:width .3s,padding .3s,text-align .3s!important;}

:root[data-theme="dark"] {
    --dm-bg-surface:   #1a2030;
    --dm-bg-surface-2: #202940;
    --dm-bg-surface-3: #2a3346;
    --dm-border:       #313d52;
    --dm-text:         #e4e8f1;
    --dm-text-muted:   #9aa6bd;
    --dm-text-faint:   #6b7690;
    --dm-accent:       #4c8dff;
    --dm-accent-soft:  #1e2e4d;
    --dm-rekap-bg:     #4a3a14;
    --dm-bg-success-soft: #1f3d2c;
    --dm-status-transparent: transparent;
    --dm-status-text-success: #9ae6b4;
    --dm-status-text-warning: #e8c77a;
    --dm-status-text-danger:  #f2a4ac;
    --dm-shadow:       0 10px 30px rgba(0,0,0,.45);
}

[data-theme="dark"] a.btn-success,
[data-theme="dark"] a.btn-danger,
[data-theme="dark"] a.btn-warning,
[data-theme="dark"] a.btn-primary,
[data-theme="dark"] a.btn-info,
[data-theme="dark"] a.btn-success:hover,
[data-theme="dark"] a.btn-danger:hover,
[data-theme="dark"] a.btn-warning:hover,
[data-theme="dark"] a.btn-primary:hover,
[data-theme="dark"] a.btn-info:hover {
    color: #fff !important;
}

[data-theme="dark"] .page-inner .form-control,
[data-theme="dark"] .page-inner select.form-control,
[data-theme="dark"] .page-inner input.form-control,
[data-theme="dark"] .main-header .form-control:not(#searchInput),
[data-theme="dark"] .modal-content .form-control,
[data-theme="dark"] .modal-content select.form-control,
[data-theme="dark"] .modal-content input.form-control {
    background-color: var(--dm-bg-surface-2) !important;
    color: var(--dm-text) !important;
    border-color: var(--dm-border) !important;
}
[data-theme="dark"] .page-inner .form-control::placeholder,
[data-theme="dark"] .modal-content .form-control::placeholder { color: var(--dm-text-faint); }
[data-theme="dark"] .page-inner label,
[data-theme="dark"] .page-inner .form-label,
[data-theme="dark"] .modal-content label,
[data-theme="dark"] .modal-content .form-label { color: var(--dm-text); }
[data-theme="dark"] .modal-content .form-control:disabled,
[data-theme="dark"] .modal-content .form-control[readonly] {
    background-color: var(--dm-bg-surface-3) !important;
    color: var(--dm-text-muted) !important;
}

[data-theme="dark"] .main-header .navbar-header .nav-search .input-group {
    background-color: var(--dm-bg-surface-2) !important;
    border-radius: 6px !important;
    box-shadow: none !important;
}
[data-theme="dark"] .main-header .navbar-header .nav-search .input-group #searchInput {
    background-color: transparent !important;
    color: var(--dm-text) !important;
    border: 0 !important;
    box-shadow: none !important;
}
[data-theme="dark"] .main-header .navbar-header .nav-search .input-group #searchInput::placeholder {
    color: var(--dm-text-muted) !important;
}
[data-theme="dark"] .main-header .navbar-header .nav-search .input-group .search-icon {
    color: var(--dm-text) !important;
}
[data-theme="dark"] .main-header .navbar-header .nav-search .input-group.focus {
    background-color: #fff !important;
}
[data-theme="dark"] .main-header .navbar-header .nav-search .input-group.focus #searchInput {
    color: #495057 !important;
}
[data-theme="dark"] .main-header .navbar-header .nav-search .input-group.focus #searchInput::placeholder {
    color: #6c757d !important;
}
[data-theme="dark"] .main-header .navbar-header .nav-search .input-group.focus .search-icon {
    color: #495057 !important;
}

[data-theme="dark"] .modal-content {
    background-color: var(--dm-bg-surface) !important;
    color: var(--dm-text) !important;
}
[data-theme="dark"] .modal-content .card-title,
[data-theme="dark"] .modal-content h1,
[data-theme="dark"] .modal-content h2,
[data-theme="dark"] .modal-content h3,
[data-theme="dark"] .modal-content h4,
[data-theme="dark"] .modal-content h5,
[data-theme="dark"] .modal-content h6 {
    color: var(--dm-text) !important;
}
[data-theme="dark"] .modal-content .text-muted { color: var(--dm-text-muted) !important; }
[data-theme="dark"] .modal-content .bg-light { background-color: var(--dm-bg-surface-2) !important; }

/* .list-project-scroll (mis. modal "Pilih Proyek untuk Disembunyikan" di
   rekap assessment) men-hardcode border abu-abu terang - tanpa override ini
   jadi garis putih yang menonjol di dark mode. Custom checkbox/radio
   Bootstrap juga belum pernah di-dark-mode-kan sama sekali di file ini -
   kotak ceklis default-nya putih terang, dan di modal berisi puluhan
   checkbox itu jadi terlihat seperti banyak "garis putih" berserakan. */
[data-theme="dark"] .list-project-scroll {
    border-color: var(--dm-border) !important;
}
[data-theme="dark"] .custom-control-label { color: var(--dm-text); }
[data-theme="dark"] .custom-control-label::before {
    background-color: var(--dm-bg-surface-2) !important;
    border-color: var(--dm-border) !important;
}
[data-theme="dark"] .custom-control-input:disabled ~ .custom-control-label::before {
    background-color: var(--dm-bg-surface-3) !important;
}
[data-theme="dark"] .modal-content hr,
[data-theme="dark"] .modal-content .dropdown-divider { border-color: var(--dm-border) !important; }
[data-theme="dark"] .modal-header,
[data-theme="dark"] .modal-footer { border-color: var(--dm-border) !important; }
[data-theme="dark"] .modal-content .close { color: var(--dm-text) !important; text-shadow: none; }

[data-theme="dark"] .swal-modal { background-color: var(--dm-bg-surface) !important; }
[data-theme="dark"] .swal-title { color: var(--dm-text) !important; }
[data-theme="dark"] .swal-text { color: var(--dm-text-muted) !important; }

[data-theme="dark"] .page-inner .text-muted,
[data-theme="dark"] .card .text-muted,
[data-theme="dark"] .card small { color: var(--dm-text-muted) !important; }

[data-theme="dark"] .org-card {
    background: var(--dm-bg-surface-2) !important;
    border-color: var(--dm-border) !important;
}
[data-theme="dark"] .org-card-header {
    background: var(--dm-bg-surface-2) !important;
}
[data-theme="dark"] .org-card-header:hover { background: var(--dm-bg-surface-3) !important; }
[data-theme="dark"] .org-card-header .org-name { color: var(--dm-text) !important; }
[data-theme="dark"] .org-card-body {
    border-top-color: var(--dm-border) !important;
    color: var(--dm-text);
}
[data-theme="dark"] .org-toggle-icon { color: var(--dm-text-muted) !important; }
[data-theme="dark"] .perm-badge-active { background: var(--dm-accent-soft) !important; color: #9fc0ff !important; }
[data-theme="dark"] .perm-badge-none { background: var(--dm-bg-surface-3) !important; color: var(--dm-text-faint) !important; }
[data-theme="dark"] .scope-option {
    border-color: var(--dm-border) !important;
    background: var(--dm-bg-surface-2);
}
[data-theme="dark"] .bg-light.border.rounded { background-color: var(--dm-bg-surface-2) !important; border-color: var(--dm-border) !important; }

[data-theme="dark"] .sidebar .nav-collapse li a,
[data-theme="dark"] .sidebar .nav-collapse li a .sub-item {
    color: var(--dm-text-muted) !important;
}
[data-theme="dark"] .sidebar .nav-collapse li a:hover,
[data-theme="dark"] .sidebar .nav-collapse li a:hover .sub-item,
[data-theme="dark"] .sidebar .nav-collapse li a.active,
[data-theme="dark"] .sidebar .nav-collapse li a.active .sub-item {
    color: #fff !important;
}

[data-theme="dark"] .sidebar.sidebar-style-2 .nav.nav-primary .nav-item.active > a,
[data-theme="dark"] .sidebar.sidebar-style-2 .nav.nav-primary .nav-item.active > a:hover,
[data-theme="dark"] .sidebar.sidebar-style-2 .nav.nav-primary .nav-item.active > a:focus {
    background: #fff !important;
    box-shadow: none !important;
}
[data-theme="dark"] .sidebar.sidebar-style-2 .nav.nav-primary .nav-item.active > a p,
[data-theme="dark"] .sidebar.sidebar-style-2 .nav.nav-primary .nav-item.active > a i,
[data-theme="dark"] .sidebar.sidebar-style-2 .nav.nav-primary .nav-item.active > a .caret {
    color: #1a2035 !important;
}

[data-theme="dark"] .sidebar .nav-collapse li a .sub-item:before {
    background: var(--dm-text-faint) !important;
}

[data-theme="dark"] .dropdown-menu {
    /* Warna disamakan persis dengan header (#1a2035, dipakai Atlantis di
       [data-background-color=dark]) sesuai permintaan user - sebelumnya
       sempat dibuat lebih terang (#333f5c) supaya dropdown "mengambang"
       kontras dari header, tapi user minta senada/dark seperti header.
       Pemisahan dropdown dari header tetap dijaga lewat border + shadow
       di bawah (bukan lewat beda warna background lagi).
    */
    background-color: #1a2035 !important;
    /* User minta tanpa outline abu/putih - border dihapus total (bukan
       cuma transparent, biar tidak ada garis apa pun), pemisah dari header
       cukup lewat shadow jatuh (bukan ring 1px) supaya tidak kebaca sebagai
       outline. */
    border: 0 !important;
    box-shadow: 0 18px 44px rgba(0, 0, 0, .65) !important;
}
[data-theme="dark"] .dropdown-menu .dropdown-item { color: var(--dm-text); }

[data-theme="dark"] .dropdown-divider { border-top-color: var(--dm-border) !important; }
[data-theme="dark"] .dropdown-menu .dropdown-item:hover,
[data-theme="dark"] .dropdown-menu .dropdown-item:focus {
    /* Overlay putih transparan (bukan warna solid) - otomatis selalu
       lebih terang dari background dropdown apa pun nilainya, tidak perlu
       dijaga manual supaya tetap lebih terang dari --dm-bg-surface-2 dkk. */
    background-color: rgba(255, 255, 255, .08);
    color: var(--dm-text);
}

[data-theme="dark"] .dropdown-title {
    color: var(--dm-text-muted);
    border-bottom-color: var(--dm-border) !important;
}
[data-theme="dark"] .notif-box .notif-item { border-bottom-color: var(--dm-border) !important; }
[data-theme="dark"] .notif-box .notif-item:hover { background: var(--dm-bg-surface-3); }

[data-theme="dark"] .notif-box .notif-unread { background: var(--dm-accent-soft) !important; }
[data-theme="dark"] .notif-icon { background: var(--dm-bg-surface-3) !important; color: var(--dm-accent) !important; }
[data-theme="dark"] .notif-content .time { color: var(--dm-text-faint); }
[data-theme="dark"] .see-all { color: var(--dm-accent); border-top-color: var(--dm-border) !important; }
[data-theme="dark"] .see-all:hover { background: var(--dm-bg-surface-3); }
[data-theme="dark"] .user-box .u-text p { color: var(--dm-text-muted) !important; }

[data-theme="dark"] #searchSuggestions {
    background-color: var(--dm-bg-surface-2);
    border-color: var(--dm-border);
}
[data-theme="dark"] #searchSuggestions .list-group-item {
    background-color: var(--dm-bg-surface-2);
    color: var(--dm-text);
    border-color: var(--dm-border);
}
[data-theme="dark"] #searchSuggestions .list-group-item:hover,
[data-theme="dark"] #searchSuggestions .list-group-item-action:hover {
    background-color: var(--dm-bg-surface-3);
}

[data-theme="dark"] .select2-container--bootstrap4 .select2-selection {
    background-color: var(--dm-bg-surface-2) !important;
    border-color: var(--dm-border) !important;
    color: var(--dm-text) !important;
}
[data-theme="dark"] .select2-selection__rendered { color: var(--dm-text) !important; }
[data-theme="dark"] .select2-search__field {
    background: transparent !important;
    color: var(--dm-text) !important;
    border-color: var(--dm-border) !important;
}
[data-theme="dark"] .select2-dropdown {
    background-color: var(--dm-bg-surface-2) !important;
    border-color: var(--dm-border) !important;
}
[data-theme="dark"] .select2-results__option { color: var(--dm-text) !important; }
[data-theme="dark"] .select2-results__option--highlighted {
    background-color: var(--dm-accent) !important;
    color: #fff !important;
}

[data-theme="dark"] .select2-results__option[aria-selected="true"]:not(.select2-results__option--highlighted),
[data-theme="dark"] .select2-results__option--selected:not(.select2-results__option--highlighted) {
    /* select2 4.1.0-rc.0 (dipakai di project selector overview) ternyata
       menandai item yang sudah terpilih lewat class "--selected", BUKAN
       attribute aria-selected="true" (aria-selected di situ malah "false"
       kalau item itu bukan yang lagi di-highlight/hover) - dikonfirmasi
       lewat inspeksi DOM langsung. Rule lama cuma cek aria-selected jadi
       tidak pernah match, akibatnya baris proyek yang lagi aktif dibiarkan
       pakai warna abu-abu bawaan select2 (#ddd) yang nyaris tidak
       terbaca di atas latar gelap begitu highlight geser ke baris lain. */
    background-color: var(--dm-bg-surface-3) !important;
    color: var(--dm-text) !important;
}

[data-theme="dark"] .select2-container--bootstrap-5 .select2-selection,
[data-theme="dark"] .select2-container--bootstrap-5 .select2-selection__rendered {
    background-color: var(--dm-bg-surface-2) !important;
    border-color: var(--dm-border) !important;
    color: var(--dm-text) !important;
}
[data-theme="dark"] .select2-container--bootstrap-5 .select2-dropdown,
[data-theme="dark"] .select2-container--bootstrap-5 .select2-results,
[data-theme="dark"] .select2-container--bootstrap-5 .select2-results__options {
    background-color: var(--dm-bg-surface-2) !important;
    border-color: var(--dm-border) !important;
}
[data-theme="dark"] .select2-container--bootstrap-5 .select2-search__field,
[data-theme="dark"] .select2-container--bootstrap-5 .select2-search--dropdown {
    background-color: var(--dm-bg-surface-2) !important;
    color: var(--dm-text) !important;
    border-color: var(--dm-border) !important;
}
[data-theme="dark"] .select2-container--bootstrap-5 .select2-results__option {
    background-color: var(--dm-bg-surface-2) !important;
    color: var(--dm-text) !important;
}
[data-theme="dark"] .select2-container--bootstrap-5 .select2-results__option--highlighted {
    background-color: var(--dm-accent) !important;
    color: #fff !important;
}

[data-theme="dark"] .dataTables_wrapper .dataTables_filter input,
[data-theme="dark"] .dataTables_wrapper .dataTables_length select {
    background-color: var(--dm-bg-surface-2) !important;
    color: var(--dm-text) !important;
    border-color: var(--dm-border) !important;
}
[data-theme="dark"] .dataTables_wrapper .dataTables_info,
[data-theme="dark"] .dataTables_wrapper .dataTables_length,
[data-theme="dark"] .dataTables_wrapper .dataTables_filter label {
    color: var(--dm-text-muted) !important;
}
[data-theme="dark"] .dataTables_wrapper .paginate_button { color: var(--dm-text) !important; }
[data-theme="dark"] .dataTables_wrapper .paginate_button.current,
[data-theme="dark"] .dataTables_wrapper .paginate_button.current:hover {
    background: var(--dm-accent) !important;
    border-color: var(--dm-accent) !important;
    color: #fff !important;
}
[data-theme="dark"] .dataTables_wrapper .paginate_button:hover {
    background: var(--dm-bg-surface-3) !important;
    border-color: var(--dm-border) !important;
    color: #fff !important;
}
[data-theme="dark"] .dataTables_wrapper .paginate_button.disabled { color: var(--dm-text-faint) !important; }

[data-theme="dark"] .dataTables_paginate .page-link {
    background-color: var(--dm-bg-surface-2) !important;
    border-color: var(--dm-border) !important;
    color: var(--dm-text) !important;
}
[data-theme="dark"] .dataTables_paginate .page-item.active .page-link {
    background-color: var(--dm-accent) !important;
    border-color: var(--dm-accent) !important;
    color: #fff !important;
}
[data-theme="dark"] .dataTables_paginate .page-item:not(.active):not(.disabled) .page-link:hover {
    background-color: var(--dm-bg-surface-3) !important;
    border-color: var(--dm-border) !important;
    color: var(--dm-text) !important;
}
[data-theme="dark"] .dataTables_paginate .page-item.disabled .page-link {
    background-color: var(--dm-bg-surface) !important;
    border-color: var(--dm-border) !important;
    color: var(--dm-text-faint) !important;
}

[data-theme="dark"] .table-striped tbody tr:nth-of-type(odd) {
    background-color: var(--dm-bg-surface-2) !important;
}
[data-theme="dark"] .table-striped tbody tr:nth-of-type(even) {
    background-color: var(--dm-bg-surface) !important;
}

[data-theme="dark"] [class*="sticky-col"] { background-color: var(--dm-bg-surface) !important; }
[data-theme="dark"] .table-striped tbody tr:nth-of-type(odd) [class*="sticky-col"] {
    background-color: var(--dm-bg-surface-2) !important;
}
[data-theme="dark"] .table-hover tbody tr:hover [class*="sticky-col"] {
    background-color: var(--dm-bg-surface-3) !important;
}

[data-theme="dark"] .progress { background-color: var(--dm-bg-surface-3); }

[data-theme="dark"] .badge-light { background-color: var(--dm-bg-surface-3); color: var(--dm-text) !important; }
[data-theme="dark"] .badge-secondary { background-color: #4a5568; color: #fff; }

[data-theme="dark"] .btn-outline-primary { border-color: var(--dm-accent); color: var(--dm-accent); }
[data-theme="dark"] .btn-outline-secondary { border-color: var(--dm-text-muted); color: var(--dm-text-muted); }

[data-theme="dark"] .bg-white { background-color: var(--dm-bg-surface-2) !important; }
[data-theme="dark"] .bg-light { background-color: var(--dm-bg-surface-2) !important; }
[data-theme="dark"] select.text-dark,
[data-theme="dark"] .text-dark { color: var(--dm-text) !important; }

[data-theme="dark"] #btnThemeToggle i { color: #ffc94d; }
#btnThemeToggle i { transition: transform .25s ease; }
#btnThemeToggle:hover i { transform: rotate(20deg); }

[data-theme="dark"] .scrollbar-inner > .scroll-element .scroll-element_track { background: transparent; }
[data-theme="dark"] .scrollbar-inner > .scroll-element .scroll-bar { background: transparent; }
[data-theme="dark"] .scrollbar-inner > .scroll-element:hover .scroll-bar,
[data-theme="dark"] .scrollbar-inner > .scroll-element.scroll-draggable .scroll-bar { background: var(--dm-border); }

[data-theme="dark"] .scrollbar-outer > .scroll-element { background-color: transparent !important; }
[data-theme="dark"] .scrollbar-outer > .scroll-element .scroll-element_track { background-color: transparent !important; }
[data-theme="dark"] .scrollbar-outer > .scroll-element .scroll-bar { background-color: transparent !important; }
[data-theme="dark"] .scrollbar-outer > .scroll-element:hover .scroll-bar,
[data-theme="dark"] .scrollbar-outer > .scroll-element.scroll-draggable .scroll-bar { background-color: var(--dm-accent) !important; }

[data-theme="dark"] { scrollbar-color: var(--dm-border) var(--dm-bg-surface-2); }

.scrollbar-inner .scroll-content,
.scrollbar-outer .scroll-content {
    scrollbar-width: none;
}
.scrollbar-inner .scroll-content::-webkit-scrollbar,
.scrollbar-outer .scroll-content::-webkit-scrollbar {
    display: none;
    width: 0;
    height: 0;
}
[data-theme="dark"] ::-webkit-scrollbar { width: 10px; height: 10px; }
[data-theme="dark"] ::-webkit-scrollbar-track { background: var(--dm-bg-surface-2); }
[data-theme="dark"] ::-webkit-scrollbar-thumb { background: var(--dm-border); border-radius: 6px; }
[data-theme="dark"] ::-webkit-scrollbar-thumb:hover { background: var(--dm-accent); }
[data-theme="dark"] ::-webkit-scrollbar-corner { background: var(--dm-bg-surface-2); }

html[data-theme="dark"]::-webkit-scrollbar { width: 10px; height: 10px; }
html[data-theme="dark"]::-webkit-scrollbar-track { background: var(--dm-bg-surface-2); }
html[data-theme="dark"]::-webkit-scrollbar-thumb { background: var(--dm-border); border-radius: 6px; }
html[data-theme="dark"]::-webkit-scrollbar-thumb:hover { background: var(--dm-accent); }
html[data-theme="dark"]::-webkit-scrollbar-corner { background: var(--dm-bg-surface-2); }

[data-theme="dark"] .circles-wrp text { fill: var(--dm-text) !important; }

[data-theme="dark"] #ai-chatbox-container { background: var(--dm-bg-surface) !important; box-shadow: var(--dm-shadow); }
[data-theme="dark"] #ai-welcome-screen,
[data-theme="dark"] #ai-chat-history { background: var(--dm-bg-surface) !important; }
[data-theme="dark"] #ai-welcome-screen p { color: var(--dm-text-muted) !important; }
[data-theme="dark"] #ai-chat-input {
    background: var(--dm-bg-surface-2);
    color: var(--dm-text);
    border-color: var(--dm-border) !important;
}

[data-theme="dark"] .card {
    background-color: var(--dm-bg-surface-2) !important;

    background-image: none !important;
}
[data-theme="dark"] .card-header {
    background-color: var(--dm-bg-surface-2) !important;
    border-bottom-color: var(--dm-border) !important;
}

[data-theme="dark"] .card:has(.card-hover) {
    background-color: var(--dm-bg-surface) !important;
}

[data-theme="dark"] .action-card,
[data-theme="dark"] .action-card-disabled {
    border-color: transparent !important;
}

[data-theme="dark"] .border,
[data-theme="dark"] .border-top,
[data-theme="dark"] .border-right,
[data-theme="dark"] .border-bottom,
[data-theme="dark"] .border-left {
    border-color: var(--dm-border) !important;
}

[data-theme="dark"] .accordion-kategori > .card > .card-header {
    background-color: var(--dm-bg-surface-3) !important;
}
[data-theme="dark"] .accordion-kategori .card-body.bg-light {
    background-color: var(--dm-bg-surface) !important;
}
[data-theme="dark"] .accordion-sub .card-header {
    background-color: var(--dm-bg-surface-2) !important;
}
html[data-theme="dark"][data-theme="dark"] .card .card-header {
    border-color: var(--dm-border) !important;
}
[data-theme="dark"] #accordionKategori .card-header {
    border-color: var(--dm-border) !important;
}

/* Card "Informasi Proyek" (assessment/overview) - 2 tingkat warna: card
   luar (.info-outer-card) sebagai bingkai, .info-panel di dalamnya sebagai
   panel konten - tetap harus beda warna satu sama lain di dark mode juga. */
[data-theme="dark"] .info-outer-card {
    background: var(--dm-bg-surface) !important;
}
[data-theme="dark"] .info-panel {
    background: var(--dm-bg-surface-3) !important;
}
[data-theme="dark"] .info-panel .info-item {
    border-bottom-color: var(--dm-border) !important;
}
[data-theme="dark"] .info-groups .info-group:not(:last-child) {
    border-right-color: var(--dm-border) !important;
}
[data-theme="dark"] .info-panel .info-label,
[data-theme="dark"] .info-header h6 {
    color: var(--dm-text-muted) !important;
}
[data-theme="dark"] .info-panel .info-value {
    color: var(--dm-text) !important;
}
[data-theme="dark"] .service-item {
    background-color: var(--dm-bg-surface-2) !important;
    border-left-color: var(--dm-border) !important;
}
[data-theme="dark"] .service-item:hover {
    background-color: var(--dm-bg-surface-3) !important;
    border-left-color: var(--dm-accent) !important;
}

[data-theme="dark"] .accordion .card .card-body {
    border-top-color: var(--dm-border) !important;
}

[data-theme="dark"] .asset-card {
    background: linear-gradient(160deg, var(--dm-bg-surface-3) 0%, var(--dm-bg-surface-2) 100%) !important;
    border-color: var(--dm-border) !important;
    box-shadow: 0 4px 14px rgba(0,0,0,.35);
}
[data-theme="dark"] .asset-card:hover {
    border-color: var(--dm-accent) !important;
    box-shadow: var(--dm-shadow);
}
[data-theme="dark"] .asset-title { color: var(--dm-text) !important; }
[data-theme="dark"] .asset-meta { color: var(--dm-text-muted) !important; }

[data-theme="dark"] .panorama-card {
    background: linear-gradient(160deg, var(--dm-bg-surface-3) 0%, var(--dm-bg-surface-2) 100%) !important;
    border-color: var(--dm-border) !important;
    box-shadow: 0 4px 14px rgba(0,0,0,.35);
}
[data-theme="dark"] .panorama-card:hover {
    border-color: var(--dm-accent) !important;
    box-shadow: var(--dm-shadow);
}
[data-theme="dark"] .panorama-info { background-color: var(--dm-bg-surface-2) !important; }
[data-theme="dark"] .card-title,
[data-theme="dark"] .rank-title {
    color: var(--dm-text) !important;
}
[data-theme="dark"] .stats-scope-label,
[data-theme="dark"] .assessment-division-label,
[data-theme="dark"] .rank-sub {
    color: var(--dm-text-muted) !important;
}
[data-theme="dark"] #indicatorChartLegend .html-legend li {
    color: var(--dm-text) !important;
}

[data-theme="dark"] .dash-welcome-banner {
    background-color: var(--dm-bg-surface) !important;
    box-shadow: var(--dm-shadow) !important;
}
[data-theme="dark"] .dash-welcome-text { color: var(--dm-text) !important; }
[data-theme="dark"] .dash-empty-title { color: var(--dm-text) !important; }

[data-theme="dark"] .panel-header.bg-primary-gradient,
[data-theme="dark"] .card.card-primary.bg-primary-gradient {
    background: linear-gradient(145deg, var(--dm-bg-surface) 0%, var(--dm-bg-surface-2) 100%) !important;
}

[data-theme="dark"] .card.stat-circles-card {
    background-color: var(--dm-bg-surface) !important;
}
[data-theme="dark"] .stat-circles-card .card-header {
    background-color: var(--dm-bg-surface) !important;
}
[data-theme="dark"] .stat-circles-card .card-body {
    background: linear-gradient(160deg, var(--dm-bg-surface-2) 0%, var(--dm-bg-surface) 100%) !important;
}
[data-theme="dark"] .circle-item h6 { color: var(--dm-text-muted) !important; }
[data-theme="dark"] .kpi-label { color: var(--dm-text-faint) !important; }
[data-theme="dark"] .rank-item { border-bottom-color: var(--dm-border) !important; }
[data-theme="dark"] .rank-list-footer { border-top-color: var(--dm-border) !important; }
[data-theme="dark"] .rank-badge.gold   { background: #4a3a10 !important; color: #ffd873 !important; }
[data-theme="dark"] .rank-badge.silver { background: var(--dm-bg-surface-3) !important; color: var(--dm-text) !important; }
[data-theme="dark"] .rank-badge.bronze { background: #4a3320 !important; color: #e0a875 !important; }
[data-theme="dark"] .rank-badge.other  { background: var(--dm-accent-soft) !important; color: #9fc0ff !important; }

[data-theme="dark"] .alert-info {
    background-color: var(--dm-accent-soft) !important;
    border-color: var(--dm-border) !important;
    color: var(--dm-text) !important;
}
[data-theme="dark"] .alert-info strong,
[data-theme="dark"] .alert-info .alert-link { color: var(--dm-text) !important; }
[data-theme="dark"] .alert-info hr { border-top-color: var(--dm-border) !important; }
[data-theme="dark"] .alert-secondary {
    background-color: var(--dm-bg-surface-3) !important;
    border-color: var(--dm-border) !important;
    color: var(--dm-text) !important;
}
[data-theme="dark"] .alert-light {
    background-color: var(--dm-bg-surface-2) !important;
    border-color: var(--dm-border) !important;
    color: var(--dm-text) !important;
}

[data-theme="dark"] .alert-warning:not([data-notify="container"]) {
    background-color: var(--dm-rekap-bg) !important;
    border-color: #6b5420 !important;
    color: #e8c77a !important;
}

[data-theme="dark"] .alert-success:not([data-notify="container"]) {
    background-color: var(--dm-bg-success-soft) !important;
    border-color: #2d5940 !important;
    color: var(--dm-status-text-success, #9ae6b4) !important;
}

[data-theme="dark"] .thead-light th,
[data-theme="dark"] thead.table-light th,
[data-theme="dark"] .table-light th {
    background-color: var(--dm-bg-surface-2) !important;
    color: var(--dm-text) !important;
    border-color: var(--dm-border) !important;
}

[data-theme="dark"] .table {
    border: 1px solid rgba(181,181,181,.1) !important;
    border-collapse: collapse !important;
    border-spacing: 0 !important;
}

[data-theme="dark"] #membersTable {
    border-collapse: collapse !important;
    border-spacing: 0 !important;
}
[data-theme="dark"] .table td,
[data-theme="dark"] .table th,
[data-theme="dark"] .table-striped td,
[data-theme="dark"] .table-striped th {
    border: 1px solid rgba(181,181,181,.1) !important;
}

/* assessment-monitoring: tabel #rekapTable men-hardcode warna border
   #dee2e6 (termasuk :first-child) di style page-nya sendiri, jadi lolos
   dari override .table generik di atas (selector-nya lebih spesifik) -
   perlu di-override lagi pakai id #rekapTable supaya menang. */
[data-theme="dark"] #rekapTable thead th {
    background-color: var(--dm-bg-surface-2) !important;
    border-color: var(--dm-border) !important;
}
[data-theme="dark"] #rekapTable tbody td {
    border-color: var(--dm-border) !important;
}

[data-theme="dark"] #membersTable th,
[data-theme="dark"] #membersTable td,
[data-theme="dark"] #projectRoleModalTable th,
[data-theme="dark"] #projectRoleModalTable td,
[data-theme="dark"] #projectMemberModalTable th,
[data-theme="dark"] #projectMemberModalTable td,
[data-theme="dark"] #workflowTable th,
[data-theme="dark"] #workflowTable td,
[data-theme="dark"] #helpdeskTable th,
[data-theme="dark"] #helpdeskTable td,
[data-theme="dark"] #isoTable th,
[data-theme="dark"] #isoTable td,
[data-theme="dark"] #progressTable th,
[data-theme="dark"] #progressTable td,
[data-theme="dark"] #midpTable th,
[data-theme="dark"] #midpTable td,
[data-theme="dark"] #tidpTable th,
[data-theme="dark"] #tidpTable td,
[data-theme="dark"] #clashTable th,
[data-theme="dark"] #clashTable td {
    border-color: rgba(181,181,181,.1) !important;
}

/* assessment-rekap: #projectTable men-hardcode border-left di :first-child
   dan border-top di thead tr:first-child th (spesifisitas sama dengan
   override generik di bawah, jadi bisa kalah tergantung urutan file) -
   override lagi pakai selector persis yang sama supaya menang pasti. */
[data-theme="dark"] #projectTable th:first-child,
[data-theme="dark"] #projectTable td:first-child {
    border-left-color: rgba(181,181,181,.1) !important;
}
[data-theme="dark"] #projectTable thead tr:first-child th {
    border-top-color: rgba(181,181,181,.1) !important;
}

/* .text-danger-score (skor dibawah KPI minimum di rekap assessment) -
   warna merah terang aslinya (#dc3545) kurang kontras di background gelap,
   jadi diselaraskan ke --dm-status-text-danger yang sudah dipakai di
   seluruh badge status merah lain pada tabel yang sama. */
[data-theme="dark"] .text-danger-score {
    color: var(--dm-status-text-danger) !important;
}

[data-theme="dark"] #feedsTable th,
[data-theme="dark"] #feedsTable td,
[data-theme="dark"] #projectTable th,
[data-theme="dark"] #projectTable td,
[data-theme="dark"] #asistensiTable th,
[data-theme="dark"] #asistensiTable td,
[data-theme="dark"] #reportTable th,
[data-theme="dark"] #reportTable td,
[data-theme="dark"] #riskTable th,
[data-theme="dark"] #riskTable td,
[data-theme="dark"] #memberTable th,
[data-theme="dark"] #memberTable td,
[data-theme="dark"] #syncWbsTable th,
[data-theme="dark"] #syncWbsTable td,
[data-theme="dark"] #elementsTable th,
[data-theme="dark"] #elementsTable td,
[data-theme="dark"] #historyTable th,
[data-theme="dark"] #historyTable td,
[data-theme="dark"] #arTable th,
[data-theme="dark"] #arTable td,
[data-theme="dark"] #qrTable th,
[data-theme="dark"] #qrTable td,
[data-theme="dark"] #legendTable th,
[data-theme="dark"] #legendTable td,
[data-theme="dark"] #issueTable th,
[data-theme="dark"] #issueTable td,
[data-theme="dark"] #categoriesTable th,
[data-theme="dark"] #categoriesTable td,
[data-theme="dark"] #assetsTable th,
[data-theme="dark"] #assetsTable td,
[data-theme="dark"] #panoramaTable th,
[data-theme="dark"] #panoramaTable td,
[data-theme="dark"] #tidp3dTable th,
[data-theme="dark"] #tidp3dTable td,
[data-theme="dark"] #issueProjectTable th,
[data-theme="dark"] #issueProjectTable td,
[data-theme="dark"] #legendProjectTable th,
[data-theme="dark"] #legendProjectTable td,
[data-theme="dark"] #blogTable th,
[data-theme="dark"] #blogTable td,
[data-theme="dark"] #volumeTable th,
[data-theme="dark"] #volumeTable td,
[data-theme="dark"] #scopeTable th,
[data-theme="dark"] #scopeTable td,
[data-theme="dark"] #refItemTable th,
[data-theme="dark"] #refItemTable td,
[data-theme="dark"] #kesimpulanTable th,
[data-theme="dark"] #kesimpulanTable td,
[data-theme="dark"] #fiturTable th,
[data-theme="dark"] #fiturTable td,
[data-theme="dark"] #organisasiTable th,
[data-theme="dark"] #organisasiTable td,
[data-theme="dark"] #divisiTable th,
[data-theme="dark"] #divisiTable td,
[data-theme="dark"] #leadershipTable th,
[data-theme="dark"] #leadershipTable td,
[data-theme="dark"] #ruangLingkupTable th,
[data-theme="dark"] #ruangLingkupTable td,
[data-theme="dark"] #tipeProyekTable th,
[data-theme="dark"] #tipeProyekTable td,
[data-theme="dark"] #materialCodeTable th,
[data-theme="dark"] #materialCodeTable td {
    border-color: rgba(181,181,181,.1) !important;
}

[data-theme="dark"] #projectTable thead th.sticky-col-1,
[data-theme="dark"] #projectTable thead th.sticky-col-2 {
    background-color: var(--dm-bg-surface-2) !important;
}

[data-theme="dark"] #projectTable thead th {
    background: var(--dm-bg-surface-2) !important;
    color: var(--dm-text) !important;
}

[data-theme="dark"] .w-sep { background-color: var(--dm-bg-surface-2) !important; }
[data-theme="dark"] .row-category { background: var(--dm-bg-surface-2) !important; color: var(--dm-text) !important; }
[data-theme="dark"] .row-average { background: var(--dm-accent-soft) !important; color: var(--dm-text) !important; }
[data-theme="dark"] .row-rekap   { background: var(--dm-rekap-bg) !important; color: var(--dm-text) !important; }

[data-theme="dark"] tr.row-category-header,
[data-theme="dark"] tr.row-category-header td {
    background-color: var(--dm-bg-surface-2) !important;
    color: var(--dm-text) !important;
}
[data-theme="dark"] .table-hover tbody tr:hover,
[data-theme="dark"] .table-hover tbody tr:hover td,
[data-theme="dark"] .table-hover tbody tr:hover th {
    background-color: var(--dm-bg-surface-3) !important;
    color: var(--dm-text) !important;
}

[data-theme="dark"] .table-primary td, [data-theme="dark"] .table-primary th     { background-color: var(--dm-accent-soft) !important; color: var(--dm-text) !important; }

[data-theme="dark"] .table-secondary td, [data-theme="dark"] .table-secondary th { background-color: var(--dm-bg-surface-3) !important; color: var(--dm-text) !important; }
[data-theme="dark"] .table-light td, [data-theme="dark"] .table-light th     { background-color: var(--dm-bg-surface-2) !important; color: var(--dm-text) !important; }
[data-theme="dark"] .floor-row          { background-color: var(--dm-bg-surface-3) !important; color: var(--dm-text) !important; }
[data-theme="dark"] .floor-input-changed{ background-color: #1f3d2c !important; }
[data-theme="dark"] .building-row       { background-color: var(--dm-accent-soft) !important; color: var(--dm-text) !important; }
[data-theme="dark"] .building-row:hover td { background-color: var(--dm-bg-surface-3) !important; }
[data-theme="dark"] .child-row td       { background-color: var(--dm-bg-surface) !important; }
[data-theme="dark"] .section-row td     { background-color: var(--dm-bg-surface-3) !important; color: var(--dm-text) !important; }
[data-theme="dark"] .table-success,
[data-theme="dark"] .table-success td,
[data-theme="dark"] .table-success th   { background-color: var(--dm-bg-success-soft) !important; color: #9ae6b4 !important; }

[data-theme="dark"] div.tree-table {
    background: var(--dm-bg-surface) !important;
    border-color: var(--dm-border) !important;
}
[data-theme="dark"] .tree-header {
    background: var(--dm-bg-surface-2) !important;
    border-bottom-color: var(--dm-border) !important;
    color: var(--dm-text) !important;
}
[data-theme="dark"] .tree-row,
[data-theme="dark"] .tree-item-group:last-child > .tree-row,
[data-theme="dark"] .sortable-features > .tree-row:last-child {
    border-bottom-color: var(--dm-border) !important;
}
[data-theme="dark"] .tree-col-main,
[data-theme="dark"] .tree-col-id,
[data-theme="dark"] .tree-col-icon,
[data-theme="dark"] .tree-col-status {
    border-right-color: var(--dm-border) !important;
}
[data-theme="dark"] .cat-row {
    background-color: var(--dm-bg-surface-2) !important;
    color: var(--dm-text) !important;
}
[data-theme="dark"] .cat-row-2,
[data-theme="dark"] .cat-row-3,
[data-theme="dark"] .feature-row {
    background-color: var(--dm-bg-surface) !important;
    color: var(--dm-text) !important;
}
[data-theme="dark"] .feature-row:hover { background-color: var(--dm-bg-surface-3) !important; }
[data-theme="dark"] .sortable-ghost { background-color: var(--dm-bg-surface-3) !important; }
[data-theme="dark"] .wbs-tree {
    background: var(--dm-bg-surface-2) !important;
    border-color: var(--dm-border) !important;
}
[data-theme="dark"] .wbs-item:hover { background: var(--dm-bg-surface-3) !important; }
[data-theme="dark"] .wbs-item label { color: var(--dm-text) !important; }

[data-theme="dark"] .cde-breadcrumb {
    background: var(--dm-bg-surface-2) !important;
    color: var(--dm-text) !important;
}
[data-theme="dark"] .cde-file-list { border-color: var(--dm-border) !important; }
[data-theme="dark"] .cde-file-item {
    border-bottom-color: var(--dm-border) !important;
    color: var(--dm-text);
}
[data-theme="dark"] .cde-file-item:hover { background: var(--dm-bg-surface-3) !important; }
[data-theme="dark"] .cde-file-item.selected {
    background: var(--dm-accent-soft) !important;
    color: var(--dm-text) !important;
}
[data-theme="dark"] .cde-generating-overlay { background: rgba(26,32,48,.88) !important; }

[data-theme="dark"] .home-3d-file-display,
[data-theme="dark"] .selected-file-display {
    background: var(--dm-accent-soft) !important;
    border-color: var(--dm-border) !important;
}
[data-theme="dark"] .home-3d-file-display .file-name { color: #7fb3ff !important; }
[data-theme="dark"] .file-meta { color: var(--dm-text-muted) !important; }
[data-theme="dark"] .thumb-img { border-color: var(--dm-border) !important; }

[data-theme="dark"] .cde-filter-section {
    background: var(--dm-bg-surface-2) !important;
    color: var(--dm-text) !important;
}
[data-theme="dark"] .match-highlight { background: #4a3a14 !important; color: var(--dm-text) !important; }
[data-theme="dark"] .match-badge { background: #8a6d1a !important; color: #fff !important; }
[data-theme="dark"] .no-match-badge { background: #7a2530 !important; color: #fff !important; }
[data-theme="dark"] .cde-match-hint {
    background: #4a3a14 !important;
    border-color: #6b5420 !important;
    color: #e8c77a !important;
}
[data-theme="dark"] .chart-title2 { background: var(--dm-accent-soft) !important; color: #9fc0ff !important; }

[data-theme="dark"] .simpan-bar {
    background: var(--dm-bg-surface-2) !important;
    border-color: var(--dm-border) !important;
}
[data-theme="dark"] .simpan-bar-info { color: var(--dm-text-muted) !important; }

[data-theme="dark"] .action-bar {
    background: var(--dm-bg-surface-2) !important;
    border-color: var(--dm-border) !important;
}

[data-theme="dark"] #volumeTable th {
    background: var(--dm-bg-surface-2) !important;
    color: var(--dm-text) !important;
}
[data-theme="dark"] .fullscreen-card { background: var(--dm-bg-surface) !important; }
[data-theme="dark"] .chart-title,
[data-theme="dark"] .eval-kpi-label { background: var(--dm-bg-surface-3) !important; color: var(--dm-accent) !important; }
[data-theme="dark"] .eval-kpi-card {
    background: var(--dm-bg-surface-2) !important;
    border-color: var(--dm-border) !important;
}
[data-theme="dark"] .eval-tab-btn { background: var(--dm-bg-surface-3) !important; color: var(--dm-accent) !important; }
[data-theme="dark"] .eval-tab-btn.active { background: var(--dm-accent) !important; color: #fff !important; }

[data-theme="dark"] .mode-toggle { background: var(--dm-bg-surface-3) !important; }
[data-theme="dark"] .mode-toggle-btn { color: var(--dm-text-muted) !important; }
[data-theme="dark"] .mode-toggle-btn:hover { color: var(--dm-text) !important; }
[data-theme="dark"] .upload-dropzone,
[data-theme="dark"] .paste-box {
    background: var(--dm-bg-surface-2) !important;
    border-color: var(--dm-border) !important;
}
[data-theme="dark"] .upload-dropzone .upload-text,
[data-theme="dark"] .paste-box .paste-placeholder { color: var(--dm-text-muted) !important; }
[data-theme="dark"] .upload-dropzone .upload-filename { color: var(--dm-text) !important; }
[data-theme="dark"] .attachment-chip {
    background: var(--dm-accent-soft) !important;
    border-color: var(--dm-border) !important;
    color: #9fc0ff !important;
}

[data-theme="dark"] .bg-orange { background-color: #b35900 !important; color: #fff !important; }

[data-theme="dark"] .form-control[readonly] {
    background-color: var(--dm-bg-surface-3) !important;
    color: var(--dm-text-muted) !important;
    border-color: var(--dm-border) !important;
}
[data-theme="dark"] .page-inner .bg-light,
[data-theme="dark"] .card .bg-light {
    background-color: var(--dm-bg-surface-2) !important;
    color: var(--dm-text) !important;
}

[data-theme="dark"] .cde-content-wrapper,
[data-theme="dark"] .cde-sidebar-tree,
[data-theme="dark"] .cde-main,
[data-theme="dark"] .cde-main-header,
[data-theme="dark"] .file-table {
    background: var(--dm-bg-surface) !important;
}
[data-theme="dark"] .cde-sidebar-tree { border-right-color: var(--dm-border) !important; }
[data-theme="dark"] .cde-sidebar-tree h6,
[data-theme="dark"] .cde-main-header h6 {
    color: var(--dm-text) !important;
    border-bottom-color: var(--dm-border) !important;
}
[data-theme="dark"] .folder-tree-item-content { color: var(--dm-text) !important; }
[data-theme="dark"] .folder-tree-item-content:hover { background: var(--dm-bg-surface-2) !important; }
[data-theme="dark"] .folder-tree-item-content.active {
    background: var(--dm-accent-soft) !important;
    color: #9fc0ff !important;
}
[data-theme="dark"] .folder-tree-item-content.active .folder-icon { color: #9fc0ff !important; }
[data-theme="dark"] .folder-toggle { color: var(--dm-text-muted) !important; }

[data-theme="dark"] .folder-tree > .folder-tree-item > .folder-tree-item-content {
    background: var(--dm-bg-surface-2) !important;
    border-color: var(--dm-border) !important;
    color: var(--dm-text) !important;
}
[data-theme="dark"] .folder-tree > .folder-tree-item > .folder-tree-item-content:hover {
    background: var(--dm-bg-surface-3) !important;
}
[data-theme="dark"] .folder-tree > .folder-tree-item > .folder-tree-item-content.active {
    background: var(--dm-accent-soft) !important;
    border-color: var(--dm-accent) !important;
    color: #9fc0ff !important;
}

[data-theme="dark"] .file-table thead,
[data-theme="dark"] .pf-table thead {
    background: var(--dm-bg-surface-2) !important;
    border-bottom-color: var(--dm-border) !important;
}

[data-theme="dark"] .file-table th {
    background: var(--dm-bg-surface-2) !important;
    color: var(--dm-text) !important;
}
[data-theme="dark"] .file-table td { color: var(--dm-text) !important; }
[data-theme="dark"] .pf-table th {
    background: var(--dm-bg-surface-2) !important;
    color: var(--dm-text-muted) !important;
}
[data-theme="dark"] .pf-table td { color: var(--dm-text) !important; }
[data-theme="dark"] .file-table th.sortable:hover { background: var(--dm-bg-surface-3) !important; }
[data-theme="dark"] .file-table tbody tr:hover,
[data-theme="dark"] .pf-table tbody tr:hover { background: var(--dm-bg-surface-3) !important; }
[data-theme="dark"] .file-table tbody tr.file-row.disabled { background: var(--dm-bg-surface) !important; }

[data-theme="dark"] .file-table tbody tr { border-bottom-color: rgba(181,181,181,.1) !important; }

[data-theme="dark"] .pf-summary-bar {
    background: var(--dm-bg-surface-2) !important;
    border-bottom-color: var(--dm-border) !important;
    color: var(--dm-text-muted) !important;
}
[data-theme="dark"] .pf-update-badge,
[data-theme="dark"] .pf-action-btn.btn-update {
    background: var(--dm-rekap-bg) !important;
    border-color: #6b5420 !important;
    color: #e8c77a !important;
}
[data-theme="dark"] .btn-published-count { background: var(--dm-bg-surface-3) !important; }

[data-theme="dark"] .metric-card {
    background: var(--dm-bg-surface) !important;
    border-color: var(--dm-border) !important;
    box-shadow: var(--dm-shadow) !important;
}
[data-theme="dark"] .metric-title { color: var(--dm-text-muted) !important; }
[data-theme="dark"] .metric-card h5 { color: var(--dm-text) !important; }

[data-theme="dark"] .scroll-area { background-color: var(--dm-bg-surface) !important; }

[data-theme="dark"] .article-title,
[data-theme="dark"] .article-title:hover {
    color: var(--dm-text) !important;
}
[data-theme="dark"] .author-name { color: var(--dm-text-muted) !important; }
[data-theme="dark"] .blog-content { color: var(--dm-text) !important; }
[data-theme="dark"] a.text-dark:hover,
[data-theme="dark"] .text-dark:hover { color: var(--dm-text) !important; }

[data-theme="dark"] .select2-container--default .select2-selection--single {
    background-color: var(--dm-bg-surface-2) !important;
    border-color: var(--dm-border) !important;
}
[data-theme="dark"] .select2-container--default .select2-selection--single .select2-selection__rendered {
    color: var(--dm-text) !important;
}
[data-theme="dark"] .select2-container--default .select2-selection--single .select2-selection__arrow b {
    border-color: var(--dm-text-muted) transparent transparent transparent !important;
}

[data-theme="dark"] .note-editor.note-frame { border-color: var(--dm-border) !important; }
[data-theme="dark"] .note-editor .note-editing-area .note-editable {
    background-color: var(--dm-bg-surface-2) !important;
    color: var(--dm-text) !important;
}
[data-theme="dark"] .note-editable::placeholder,
[data-theme="dark"] .note-placeholder { color: var(--dm-text-faint) !important; }

[data-theme="dark"] .note-modal .modal-content { background-color: var(--dm-bg-surface) !important; }
[data-theme="dark"] .note-modal .modal-body {
    background-color: var(--dm-bg-surface) !important;
    color: var(--dm-text) !important;
}
[data-theme="dark"] .note-modal .modal-footer {
    background-color: var(--dm-bg-surface-2) !important;
    border-top-color: var(--dm-border) !important;
}
[data-theme="dark"] .note-modal .form-control {
    background-color: var(--dm-bg-surface-2) !important;
    border-color: var(--dm-border) !important;
    color: var(--dm-text) !important;
}

[data-theme="dark"] .role-card {
    background: var(--dm-bg-surface-2) !important;
    border-color: var(--dm-border) !important;
}
[data-theme="dark"] .role-card-header { background: var(--dm-bg-surface-2) !important; }
[data-theme="dark"] .role-card-header:hover { background: var(--dm-bg-surface-3) !important; }
[data-theme="dark"] .role-card-header .role-name { color: var(--dm-text) !important; }
[data-theme="dark"] .role-card-body {
    border-top-color: var(--dm-border) !important;
    color: var(--dm-text);
}
[data-theme="dark"] .role-toggle-icon { color: var(--dm-text-muted) !important; }
[data-theme="dark"] .perm-badge-assessment { background: #1c3326 !important; color: #7cd9a8 !important; }
[data-theme="dark"] .perm-badge-cde        { background: var(--dm-accent-soft) !important; color: #9fc0ff !important; }
[data-theme="dark"] .perm-badge-pano       { background: #2e1f3d !important; color: #ce93d8 !important; }
[data-theme="dark"] .perm-badge-none       { background: var(--dm-bg-surface-3) !important; color: var(--dm-text-faint) !important; }
[data-theme="dark"] .stat-pill             { background: var(--dm-bg-surface-3) !important; color: var(--dm-text-muted) !important; }
[data-theme="dark"] .perm-section          { border-color: var(--dm-border) !important; }
[data-theme="dark"] .perm-section-header.assessment-header { background: #1c3326 !important; color: #7cd9a8 !important; border-bottom-color: #2a4a38 !important; }
[data-theme="dark"] .perm-section-header.cde-header         { background: var(--dm-accent-soft) !important; color: #9fc0ff !important; border-bottom-color: var(--dm-border) !important; }
[data-theme="dark"] .perm-section-header.pano-header        { background: #2e1f3d !important; color: #ce93d8 !important; border-bottom-color: #4a3350 !important; }
[data-theme="dark"] .perm-radio-item:hover { background: var(--dm-bg-surface-3) !important; }
[data-theme="dark"] #memberSuggestions {
    background-color: var(--dm-bg-surface-2) !important;
    border-color: var(--dm-border) !important;
}

[data-theme="dark"] .perm-section-header {
    background: var(--dm-bg-surface-2) !important;
    border-bottom-color: var(--dm-border) !important;
}
[data-theme="dark"] .perm-check-item:hover { background: var(--dm-bg-surface-3) !important; }
[data-theme="dark"] .field-readonly-self {
    background-color: var(--dm-bg-surface-3) !important;
    color: var(--dm-text-muted) !important;
}
[data-theme="dark"] .scope-option-title { color: var(--dm-text) !important; }
[data-theme="dark"] .scope-option-desc { color: var(--dm-text-muted) !important; }
[data-theme="dark"] .scope-option:hover {
    border-color: var(--dm-accent) !important;
    background-color: var(--dm-bg-surface-3) !important;
}
[data-theme="dark"] .scope-option:has(input:checked) {
    background-color: var(--dm-accent-soft) !important;
    border-color: var(--dm-accent) !important;
}

html[data-theme="dark"],
html[data-theme="dark"] body {
    background: var(--dm-bg-surface) !important;
    color: var(--dm-text) !important;
}
[data-theme="dark"] .header-bar { background: var(--dm-bg-surface) !important; }

[data-theme="dark"] .project-title,
[data-theme="dark"] .header-bar .page-title,
[data-theme="dark"] .chart-title,
[data-theme="dark"] .custom-select,
[data-theme="dark"] .project-title select {
    background: var(--dm-bg-surface-3) !important;
    color: #9fc0ff !important;
}
[data-theme="dark"] .left-panel,
[data-theme="dark"] .left-panel2 {
    background: var(--dm-bg-surface-2) !important;
}
[data-theme="dark"] .nav-pills .nav-link {
    background: var(--dm-bg-surface-3) !important;
    color: var(--dm-text) !important;
}
[data-theme="dark"] .nav-pills .nav-link:hover { background: var(--dm-accent) !important; }
[data-theme="dark"] .nav-pills .nav-link.active {
    background: var(--dm-text) !important;
    color: var(--dm-bg-surface) !important;
}
[data-theme="dark"] #clashTable tbody tr:hover { background-color: var(--dm-bg-surface-3) !important; }

[data-theme="dark"] #viewer { background: var(--dm-bg-surface) !important; }
[data-theme="dark"] #cdeIframe { background: var(--dm-bg-surface) !important; }
[data-theme="dark"] .adsk-viewing-logo,
[data-theme="dark"] .adsk-viewing-message { color: var(--dm-text) !important; }
[data-theme="dark"] .table-clash-detail {
    border-color: rgba(181,181,181,.1) !important;
    color: var(--dm-text) !important;
}
[data-theme="dark"] .table-clash-detail th,
[data-theme="dark"] .table-clash-detail td { border-color: rgba(181,181,181,.1) !important; }
[data-theme="dark"] .table-clash-detail th,
[data-theme="dark"] .table-clash-detail .left-header { background-color: var(--dm-bg-surface-3) !important; }
[data-theme="dark"] .img-clash-detail-preview { border-color: var(--dm-border) !important; }

[data-theme="dark"] .panel .panel-box { background: var(--dm-bg-surface-2) !important; }
[data-theme="dark"] .stats { color: var(--dm-text) !important; }
[data-theme="dark"] .progress { background: var(--dm-bg-surface-3) !important; }

[data-theme="dark"] .score-box h1 { color: var(--dm-accent) !important; }
[data-theme="dark"] .score-box small { color: var(--dm-text-muted) !important; }

[data-theme="dark"] .status-green { background: var(--dm-bg-success-soft) !important; color: var(--dm-status-text-success) !important; }
[data-theme="dark"] .status-red   { background: #3a1e22 !important; color: var(--dm-status-text-danger) !important; }
[data-theme="dark"] .status-orange { background: var(--dm-rekap-bg) !important; color: var(--dm-status-text-warning) !important; }

[data-theme="dark"] #tidpTable tr.table-light td { background-color: var(--dm-bg-surface-2) !important; }
[data-theme="dark"] .vol4-loading { background: rgba(26,32,48,.75) !important; color: var(--dm-text-muted) !important; }

[data-theme="dark"] .building-row { background: var(--dm-accent-soft) !important; }

[data-theme="dark"] .sidebar-volume { background-color: var(--dm-bg-surface-2) !important; }
[data-theme="dark"] .vol6-filter-select {
    background: var(--dm-bg-surface-3) !important;
    color: var(--dm-accent) !important;
    border-color: var(--dm-border) !important;
}
[data-theme="dark"] #volumeTable6 th,
[data-theme="dark"] #volumeTable6 thead th {
    background: var(--dm-bg-surface-2) !important;
    color: var(--dm-text) !important;
}
[data-theme="dark"] #volumeTable6 th,
[data-theme="dark"] #volumeTable6 td { border-color: rgba(181,181,181,.1) !important; }
[data-theme="dark"] .table-warning td { background: var(--dm-rekap-bg) !important; color: var(--dm-status-text-warning) !important; }
[data-theme="dark"] .eval-kpi-value { color: var(--dm-accent) !important; }
[data-theme="dark"] .eval-kpi-trend.trend-up   { color: var(--dm-status-text-success) !important; }
[data-theme="dark"] .eval-kpi-trend.trend-down { color: var(--dm-status-text-danger) !important; }
[data-theme="dark"] .eval-kpi-trend.trend-flat { color: var(--dm-text-muted) !important; }
[data-theme="dark"] .eval-loading { background: rgba(26,32,48,.75) !important; }

[data-theme="dark"] .page-nav-loading {
    background: rgba(26,32,48,.75) !important;
    color: var(--dm-text-muted) !important;
}
[data-theme="dark"] .eval-error-msg { color: var(--dm-status-text-danger) !important; }

[data-theme="dark"] #riskTable { border-color: rgba(181,181,181,.1) !important; }

[data-theme="dark"] table td,
[data-theme="dark"] table th { color: var(--dm-text) !important; }

[data-theme="dark"] #midpTable tbody tr:hover td { background-color: var(--dm-bg-surface-3) !important; }

[data-theme="dark"] #midpTable select,
[data-theme="dark"] #tidpTable select {
    background-color: var(--dm-bg-surface-3) !important;
    color: var(--dm-text) !important;
    border-color: var(--dm-border) !important;
}
[data-theme="dark"] #midpTable select:disabled,
[data-theme="dark"] #tidpTable select:disabled {
    background-color: var(--dm-bg-surface-2) !important;
    color: var(--dm-text-faint) !important;
}
[data-theme="dark"] #midpTable select option,
[data-theme="dark"] #tidpTable select option {
    background-color: var(--dm-bg-surface-2);
    color: var(--dm-text);
}

[data-theme="dark"] .project-selector-display,
[data-theme="dark"] #projectSelectorInput {
    background: var(--dm-bg-surface-3) !important;
    color: #9fc0ff !important;
}
[data-theme="dark"] .project-selector-list {
    background: var(--dm-bg-surface-2) !important;
    border-color: var(--dm-border) !important;
}
[data-theme="dark"] .project-selector-list .item { color: var(--dm-text) !important; }
[data-theme="dark"] .project-selector-list .item:hover,
[data-theme="dark"] .project-selector-list .item.active {
    background: var(--dm-accent-soft) !important;
    color: #9fc0ff !important;
}
[data-theme="dark"] .project-selector-list .item.empty { color: var(--dm-text-faint) !important; }

[data-theme="dark"] .dropdown-fixed {
    background-color: var(--dm-bg-surface-3) !important;
    color: var(--dm-text) !important;
    border-color: var(--dm-border) !important;
}
[data-theme="dark"] .dropdown-fixed:disabled {
    background-color: var(--dm-bg-surface-2) !important;
    color: var(--dm-text-faint) !important;
}
[data-theme="dark"] .dropdown-fixed option { background-color: var(--dm-bg-surface-2); color: var(--dm-text); }

[data-theme="dark"] .edit-asset-form .form-select {
    background-color: var(--dm-bg-surface-3) !important;
    border-color: var(--dm-border) !important;
    color: var(--dm-text) !important;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%239aa6bd' viewBox='0 0 16 16'%3E%3Cpath d='M7.247 11.14 2.451 5.658C2.146 5.313 2.36 4.75 2.804 4.75h10.392c.444 0 .658.563.353.908l-4.796 5.482a.5.5 0 0 1-.756 0z'/%3E%3C/svg%3E") !important;
}
[data-theme="dark"] .edit-asset-form .form-select:focus,
[data-theme="dark"] .edit-asset-form .form-select:hover {
    background-color: var(--dm-bg-surface-3) !important;
    border-color: var(--dm-accent) !important;
}
[data-theme="dark"] .edit-asset-form .form-select option {
    background-color: var(--dm-bg-surface-2);
    color: var(--dm-text);
}

[data-theme="dark"] .activity-feed .feed-item:hover { background-color: var(--dm-bg-surface-3) !important; }
[data-theme="dark"] .activity-feed .feed-item.is-unread { background-color: var(--dm-accent-soft) !important; }
[data-theme="dark"] .feed-item-icon { background: var(--dm-bg-surface-3) !important; color: var(--dm-accent) !important; }

[data-theme="dark"] .table-clash-report {
    border-color: var(--dm-border) !important;
    color: var(--dm-text) !important;
}
[data-theme="dark"] .table-clash-report th,
[data-theme="dark"] .table-clash-report td {
    border-color: var(--dm-border) !important;
}
[data-theme="dark"] .table-clash-report th,
[data-theme="dark"] .table-clash-report .left-header {
    background-color: var(--dm-bg-surface-3) !important;
    color: var(--dm-text) !important;
}

/* Modal "Detail Architectural Review" (.table-ar-report) - style tabel
   laporan sama seperti .table-clash-detail/.table-clash-report, tapi belum
   pernah didaftarkan ke dark mode sebelumnya. */
[data-theme="dark"] .table-ar-report th,
[data-theme="dark"] .table-ar-report td {
    border-color: var(--dm-border) !important;
}
[data-theme="dark"] .table-ar-report th,
[data-theme="dark"] .table-ar-report .left-header {
    background-color: var(--dm-bg-surface-3) !important;
    color: var(--dm-text) !important;
}
[data-theme="dark"] .table-ar-report .content-row td {
    color: var(--dm-text) !important;
}

[data-theme="dark"] #qaqc-tab .nav-link {
    border-color: rgba(181,181,181,.1) !important;
}
[data-theme="dark"] #qaqc-tab .nav-link.active {
    border-color: var(--dm-accent) !important;
}

[data-theme="dark"] #ai-chatbox-container { background: var(--dm-bg-surface) !important; }
[data-theme="dark"] #ai-welcome-screen {
    background: var(--dm-bg-surface-2) !important;
    color: var(--dm-text) !important;
}
[data-theme="dark"] #ai-welcome-screen p { color: var(--dm-text-muted) !important; }
[data-theme="dark"] #ai-chat-history { background: var(--dm-bg-surface-2) !important; }
[data-theme="dark"] .ai-chat-input-bar {
    background: var(--dm-bg-surface) !important;
    border-top-color: var(--dm-border) !important;
}
[data-theme="dark"] #ai-chat-input {
    background: var(--dm-bg-surface-2) !important;
    border-color: var(--dm-border) !important;
    color: var(--dm-text) !important;
}
[data-theme="dark"] #ai-chat-input::placeholder { color: var(--dm-text-faint) !important; }

[data-theme="dark"] .navbar-header .dropdown-menu:after {
    border-bottom-color: var(--dm-bg-surface-2) !important;
}

[data-theme="dark"] .scrollbar-outer > .scroll-element .scroll-element_track {
    background-color: transparent !important;
}

[data-theme="dark"] .category-list a {
    background: var(--dm-bg-surface-3) !important;
    border-color: var(--dm-border) !important;
    color: var(--dm-text) !important;
}
[data-theme="dark"] .category-list a.active {
    background: var(--dm-accent) !important;
    border-color: var(--dm-accent) !important;
    color: #fff !important;
}
[data-theme="dark"] .top-user-list li { border-bottom-color: var(--dm-border) !important; }

[data-theme="dark"] .carousel-caption {
    background: rgba(26,32,48,.95) !important;
    border-top-color: var(--dm-border) !important;
}
[data-theme="dark"] .carousel-caption .text-secondary { color: var(--dm-text-muted) !important; }

[data-theme="dark"] .card-login {
    background: var(--dm-bg-surface-2) !important;
}
[data-theme="dark"] .card-login .card-header p { color: var(--dm-text-muted) !important; }
[data-theme="dark"] .card-login .card-header::after {
    background: linear-gradient(to right, transparent, var(--dm-border), transparent) !important;
}
[data-theme="dark"] .google-toggle-link { color: var(--dm-text-muted) !important; }
[data-theme="dark"] .google-toggle-link:hover { color: var(--dm-accent) !important; }

[data-theme="dark"] footer.bg-white.border-top { border-top-color: var(--dm-border) !important; }
[data-theme="dark"] footer.bg-white.border-top .text-muted { color: var(--dm-text-muted) !important; }

[data-theme="dark"] .navbar.bg-primary {
    background: var(--dm-bg-surface) !important;
    border-bottom: 1px solid var(--dm-border);
}

[data-theme="dark"] body.auth-body {
    background: linear-gradient(135deg, rgba(15,32,58,.75) 0%, rgba(8,18,34,.88) 100%), url("https://monitoring.bimgedung.com/img/bg2.png") !important;
    background-size: cover !important;
    background-position: center !important;
    background-repeat: no-repeat !important;
    background-blend-mode: multiply !important;
    color: var(--dm-text) !important;
}

[data-theme="dark"] .card-login .text-primary { color: var(--dm-text) !important; }
