/*
 * PEMILU-UIUX-001A — Color Branding Foundation
 * Purpose: Standar warna brand aplikasi Data Pemilu 2024.
 * Scope: CSS only. Tidak mengubah route, controller, middleware, RBAC, atau database.
 * Main brand: Orange + Navy. Party colors are contextual for table headers, labels, badges, charts, and filters.
 */

:root {
  /* Core brand */
  --pemilu-orange: #F47A1F;
  --pemilu-orange-600: #EA580C;
  --pemilu-orange-700: #C2410C;
  --pemilu-navy: #173B6C;
  --pemilu-navy-900: #0F172A;
  --pemilu-blue: #2C6BED;

  /* Light mode */
  --pemilu-bg: #F8FAFC;
  --pemilu-surface: #FFFFFF;
  --pemilu-surface-2: #F1F5F9;
  --pemilu-border: #E2E8F0;
  --pemilu-text: #0F172A;
  --pemilu-muted: #475569;

  /* Status */
  --pemilu-success: #16A34A;
  --pemilu-warning: #F59E0B;
  --pemilu-danger: #DC2626;
  --pemilu-info: #0284C7;

  /* Party colors */
  --party-pkb: #15803D;
  --party-gerindra: #DC2626;
  --party-pdip: #B91C1C;
  --party-golkar: #EAB308;
  --party-nasdem: #1D4ED8;
  --party-buruh: #EA580C;
  --party-gelora: #2563EB;
  --party-pks: #F97316;
  --party-hanura: #EA580C;
  --party-pan: #0284C7;
  --party-pbb: #166534;
  --party-demokrat: #1E40AF;
  --party-psi: #EF4444;
  --party-perindo: #2563EB;
  --party-perindo-red: #DC2626;
  --party-ppp: #15803D;
  --party-ummat: #111827;
}

body.pemilu-dark,
body.dark-mode {
  --pemilu-bg: #020617;
  --pemilu-surface: #0F172A;
  --pemilu-surface-2: #1E293B;
  --pemilu-border: #334155;
  --pemilu-text: #F8FAFC;
  --pemilu-muted: #CBD5E1;
  --pemilu-orange: #FB923C;
  --pemilu-blue: #60A5FA;
}

body {
  background: var(--pemilu-bg);
  color: var(--pemilu-text);
}

.content-wrapper {
  background: var(--pemilu-bg) !important;
  color: var(--pemilu-text);
}

.main-header.navbar,
.navbar-pemilu {
  background: var(--pemilu-surface) !important;
  border-bottom: 1px solid var(--pemilu-border);
  color: var(--pemilu-text) !important;
}

.navbar-dark .navbar-nav .nav-link,
.main-header .nav-link {
  color: var(--pemilu-muted) !important;
}

.navbar-dark .navbar-nav .nav-link:hover,
.main-header .nav-link:hover {
  color: var(--pemilu-orange) !important;
}

.main-sidebar {
  background: linear-gradient(180deg, var(--pemilu-navy-900) 0%, #07111F 100%) !important;
}

.brand-link {
  background: linear-gradient(135deg, var(--pemilu-orange) 0%, var(--pemilu-orange-700) 100%) !important;
  color: #FFFFFF !important;
  border-bottom: 0 !important;
}

.brand-link .brand-text,
.brand-link:hover .brand-text {
  color: #FFFFFF !important;
  font-weight: 700 !important;
  letter-spacing: .2px;
}

.nav-sidebar > .nav-item > .nav-link.active,
.nav-sidebar > .nav-item > .nav-link.active:hover {
  background: linear-gradient(135deg, var(--pemilu-orange) 0%, var(--pemilu-orange-600) 100%) !important;
  color: #FFFFFF !important;
  box-shadow: 0 8px 18px rgba(244, 122, 31, .22);
}

.nav-sidebar .nav-link {
  border-radius: .65rem !important;
  margin: .12rem .5rem;
}

.nav-sidebar .nav-link:hover {
  background: rgba(244, 122, 31, .12) !important;
  color: #FFFFFF !important;
}

.card,
.small-box,
.info-box,
.callout,
.modal-content,
.dropdown-menu {
  background: var(--pemilu-surface) !important;
  color: var(--pemilu-text);
  border: 1px solid var(--pemilu-border) !important;
  border-radius: 1rem !important;
  box-shadow: 0 10px 30px rgba(15, 23, 42, .06) !important;
}

.card-header {
  background: var(--pemilu-surface) !important;
  border-bottom: 1px solid var(--pemilu-border) !important;
  color: var(--pemilu-text) !important;
  font-weight: 700;
}

.btn-primary,
.btn-pemilu,
.bg-primary {
  background-color: var(--pemilu-orange) !important;
  border-color: var(--pemilu-orange) !important;
  color: #FFFFFF !important;
}

.btn-primary:hover,
.btn-pemilu:hover {
  background-color: var(--pemilu-orange-600) !important;
  border-color: var(--pemilu-orange-600) !important;
}

.btn-outline-primary,
.btn-outline-pemilu {
  color: var(--pemilu-orange) !important;
  border-color: var(--pemilu-orange) !important;
}

.btn-outline-primary:hover,
.btn-outline-pemilu:hover {
  background: var(--pemilu-orange) !important;
  color: #FFFFFF !important;
}

a,
.text-primary {
  color: var(--pemilu-blue) !important;
}

.text-pemilu-orange { color: var(--pemilu-orange) !important; }
.text-pemilu-navy { color: var(--pemilu-navy) !important; }
.bg-pemilu-orange { background: var(--pemilu-orange) !important; color: #fff !important; }
.bg-pemilu-navy { background: var(--pemilu-navy) !important; color: #fff !important; }

.table {
  color: var(--pemilu-text);
}

.table thead th,
.table-pemilu thead th {
  background: var(--pemilu-navy-900) !important;
  color: #FFFFFF !important;
  border-color: rgba(255,255,255,.08) !important;
  vertical-align: middle;
}

.table-striped tbody tr:nth-of-type(odd) {
  background-color: rgba(15, 23, 42, .025);
}

body.pemilu-dark .table-striped tbody tr:nth-of-type(odd),
body.dark-mode .table-striped tbody tr:nth-of-type(odd) {
  background-color: rgba(255,255,255,.035);
}

.badge,
.label {
  border-radius: 999px;
  padding: .38rem .65rem;
  font-weight: 700;
}

/* Political party contextual classes */
.party-header,
.table-party thead th,
.party-label,
.party-badge {
  color: #FFFFFF !important;
  font-weight: 700;
}

.party-pkb { background: var(--party-pkb) !important; color: #FFFFFF !important; }
.party-gerindra { background: var(--party-gerindra) !important; color: #FFFFFF !important; }
.party-pdip { background: var(--party-pdip) !important; color: #FFFFFF !important; }
.party-golkar { background: var(--party-golkar) !important; color: #111827 !important; }
.party-nasdem { background: var(--party-nasdem) !important; color: #FFFFFF !important; }
.party-buruh { background: var(--party-buruh) !important; color: #FFFFFF !important; }
.party-gelora { background: var(--party-gelora) !important; color: #FFFFFF !important; }
.party-pks { background: var(--party-pks) !important; color: #FFFFFF !important; }
.party-hanura { background: var(--party-hanura) !important; color: #FFFFFF !important; }
.party-pan { background: var(--party-pan) !important; color: #FFFFFF !important; }
.party-pbb { background: var(--party-pbb) !important; color: #FFFFFF !important; }
.party-demokrat { background: var(--party-demokrat) !important; color: #FFFFFF !important; }
.party-psi { background: var(--party-psi) !important; color: #FFFFFF !important; }
.party-perindo { background: linear-gradient(90deg, var(--party-perindo) 0%, var(--party-perindo-red) 100%) !important; color: #FFFFFF !important; }
.party-ppp { background: var(--party-ppp) !important; color: #FFFFFF !important; }
.party-ummat { background: var(--party-ummat) !important; color: #FFFFFF !important; }

/* Party table title backgrounds */
.table-title-party {
  border-radius: .85rem .85rem 0 0;
  padding: .85rem 1rem;
  color: #FFFFFF;
  font-weight: 800;
}
.table-title-party.party-golkar { color: #111827 !important; }

/* Soft party labels for filters/legends */
.party-chip {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  border-radius: 999px;
  padding: .35rem .7rem;
  font-weight: 700;
  line-height: 1;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.16);
}

.form-control,
.select2-container--default .select2-selection--single,
.select2-container--default .select2-selection--multiple {
  background: var(--pemilu-surface) !important;
  color: var(--pemilu-text) !important;
  border: 1px solid var(--pemilu-border) !important;
  border-radius: .75rem !important;
}

.form-control:focus,
.select2-container--default.select2-container--focus .select2-selection--multiple,
.select2-container--default .select2-selection--single:focus {
  border-color: var(--pemilu-orange) !important;
  box-shadow: 0 0 0 .18rem rgba(244, 122, 31, .18) !important;
}

.alert-info { background: rgba(44, 107, 237, .10) !important; color: var(--pemilu-text) !important; border-color: rgba(44, 107, 237, .25) !important; }
.alert-success { background: rgba(22, 163, 74, .10) !important; color: var(--pemilu-text) !important; border-color: rgba(22, 163, 74, .25) !important; }
.alert-warning { background: rgba(245, 158, 11, .12) !important; color: var(--pemilu-text) !important; border-color: rgba(245, 158, 11, .30) !important; }
.alert-danger { background: rgba(220, 38, 38, .10) !important; color: var(--pemilu-text) !important; border-color: rgba(220, 38, 38, .25) !important; }

@media (max-width: 767.98px) {
  .content-wrapper { padding-bottom: 1rem; }
  .card, .small-box, .info-box { border-radius: .85rem !important; }
  .table-responsive { border-radius: .85rem; }
  .nav-sidebar .nav-link { margin-left: .35rem; margin-right: .35rem; }
}


/* =========================================================
   PEMILU-UIUX-001B — Dark / Light Mode Toggle
   ========================================================= */
:root,
html[data-pemilu-theme="light"] {
  color-scheme: light;
  --pemilu-bg: #F8FAFC;
  --pemilu-surface: #FFFFFF;
  --pemilu-surface-soft: #F1F5F9;
  --pemilu-card: #FFFFFF;
  --pemilu-border: #E2E8F0;
  --pemilu-text: #0F172A;
  --pemilu-muted: #475569;
  --pemilu-sidebar-bg: #FFFFFF;
  --pemilu-sidebar-text: #0F172A;
  --pemilu-navbar-bg: #FFFFFF;
  --pemilu-navbar-text: #0F172A;
  --pemilu-shadow: 0 12px 32px rgba(15, 23, 42, .08);
}

html[data-pemilu-theme="dark"] {
  color-scheme: dark;
  --pemilu-bg: #020617;
  --pemilu-surface: #0F172A;
  --pemilu-surface-soft: #111827;
  --pemilu-card: #111827;
  --pemilu-border: #334155;
  --pemilu-text: #F8FAFC;
  --pemilu-muted: #CBD5E1;
  --pemilu-sidebar-bg: #020617;
  --pemilu-sidebar-text: #F8FAFC;
  --pemilu-navbar-bg: #0F172A;
  --pemilu-navbar-text: #F8FAFC;
  --pemilu-shadow: 0 18px 48px rgba(0, 0, 0, .35);
}

html[data-pemilu-theme="dark"] body,
html[data-pemilu-theme="dark"] .wrapper,
html[data-pemilu-theme="dark"] .content-wrapper {
  background: var(--pemilu-bg) !important;
  color: var(--pemilu-text) !important;
}

html[data-pemilu-theme="dark"] .main-header,
html[data-pemilu-theme="dark"] .navbar,
html[data-pemilu-theme="dark"] .navbar-white,
html[data-pemilu-theme="dark"] .navbar-light,
html[data-pemilu-theme="dark"] .navbar-secondary {
  background: var(--pemilu-navbar-bg) !important;
  color: var(--pemilu-navbar-text) !important;
  border-color: var(--pemilu-border) !important;
}

html[data-pemilu-theme="dark"] .main-header .nav-link,
html[data-pemilu-theme="dark"] .navbar .nav-link,
html[data-pemilu-theme="dark"] .brand-text {
  color: var(--pemilu-navbar-text) !important;
}

html[data-pemilu-theme="dark"] .main-sidebar,
html[data-pemilu-theme="dark"] .main-sidebar::before,
html[data-pemilu-theme="dark"] .sidebar,
html[data-pemilu-theme="dark"] .sidebar-dark-gray,
html[data-pemilu-theme="dark"] .sidebar-dark-primary {
  background: linear-gradient(180deg, #020617 0%, #0F172A 100%) !important;
  color: var(--pemilu-sidebar-text) !important;
}

html[data-pemilu-theme="dark"] .brand-link,
html[data-pemilu-theme="dark"] .user-panel,
html[data-pemilu-theme="dark"] .main-footer {
  background: var(--pemilu-surface) !important;
  border-color: var(--pemilu-border) !important;
  color: var(--pemilu-text) !important;
}

html[data-pemilu-theme="dark"] .nav-sidebar .nav-link,
html[data-pemilu-theme="dark"] .sidebar a,
html[data-pemilu-theme="dark"] .user-panel .info a {
  color: var(--pemilu-muted) !important;
}

html[data-pemilu-theme="dark"] .nav-sidebar .nav-link.active,
html[data-pemilu-theme="dark"] .nav-sidebar .nav-link:hover {
  background: linear-gradient(135deg, var(--pemilu-orange) 0%, var(--pemilu-orange-dark) 100%) !important;
  color: #FFFFFF !important;
}

html[data-pemilu-theme="dark"] .card,
html[data-pemilu-theme="dark"] .info-box,
html[data-pemilu-theme="dark"] .small-box,
html[data-pemilu-theme="dark"] .modal-content,
html[data-pemilu-theme="dark"] .dropdown-menu,
html[data-pemilu-theme="dark"] .callout,
html[data-pemilu-theme="dark"] .timeline > div > .timeline-item {
  background: var(--pemilu-card) !important;
  color: var(--pemilu-text) !important;
  border-color: var(--pemilu-border) !important;
  box-shadow: var(--pemilu-shadow) !important;
}

html[data-pemilu-theme="dark"] .card-header,
html[data-pemilu-theme="dark"] .card-footer,
html[data-pemilu-theme="dark"] .modal-header,
html[data-pemilu-theme="dark"] .modal-footer {
  background: var(--pemilu-surface) !important;
  border-color: var(--pemilu-border) !important;
  color: var(--pemilu-text) !important;
}

html[data-pemilu-theme="dark"] .table,
html[data-pemilu-theme="dark"] .table td,
html[data-pemilu-theme="dark"] .table th,
html[data-pemilu-theme="dark"] .table-hover tbody tr:hover {
  color: var(--pemilu-text) !important;
  border-color: var(--pemilu-border) !important;
}

html[data-pemilu-theme="dark"] .table thead th,
html[data-pemilu-theme="dark"] table.dataTable thead th {
  background: #1E293B !important;
  color: #F8FAFC !important;
  border-color: var(--pemilu-border) !important;
}

html[data-pemilu-theme="dark"] .table-striped tbody tr:nth-of-type(odd),
html[data-pemilu-theme="dark"] .odd {
  background: rgba(148, 163, 184, .06) !important;
}

html[data-pemilu-theme="dark"] .form-control,
html[data-pemilu-theme="dark"] .custom-select,
html[data-pemilu-theme="dark"] .select2-container--default .select2-selection--single,
html[data-pemilu-theme="dark"] .select2-container--default .select2-selection--multiple,
html[data-pemilu-theme="dark"] .dataTables_filter input {
  background: #020617 !important;
  color: #F8FAFC !important;
  border-color: var(--pemilu-border) !important;
}

html[data-pemilu-theme="dark"] .dropdown-item,
html[data-pemilu-theme="dark"] .breadcrumb-item,
html[data-pemilu-theme="dark"] .breadcrumb-item a,
html[data-pemilu-theme="dark"] .text-muted,
html[data-pemilu-theme="dark"] .description-text {
  color: var(--pemilu-muted) !important;
}

html[data-pemilu-theme="dark"] .dropdown-item:hover {
  background: rgba(244, 122, 31, .14) !important;
  color: #FFFFFF !important;
}

.pemilu-theme-toggle {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  gap: .4rem;
  min-height: 2.25rem;
  padding: .35rem .65rem !important;
  border-radius: 999px !important;
  border: 1px solid rgba(244, 122, 31, .30) !important;
  background: rgba(244, 122, 31, .10) !important;
  color: var(--pemilu-orange) !important;
  font-weight: 800;
  line-height: 1;
  transition: all .18s ease-in-out;
}

.pemilu-theme-toggle:hover,
.pemilu-theme-toggle:focus {
  background: var(--pemilu-orange) !important;
  color: #FFFFFF !important;
  border-color: var(--pemilu-orange) !important;
  box-shadow: 0 0 0 .18rem rgba(244, 122, 31, .18) !important;
}

html[data-pemilu-theme="dark"] .pemilu-theme-toggle {
  background: rgba(251, 146, 60, .14) !important;
  color: #FDBA74 !important;
  border-color: rgba(251, 146, 60, .40) !important;
}

html[data-pemilu-theme="dark"] .pemilu-theme-toggle:hover,
html[data-pemilu-theme="dark"] .pemilu-theme-toggle:focus {
  background: var(--pemilu-orange) !important;
  color: #FFFFFF !important;
}

@media (max-width: 767.98px) {
  .pemilu-theme-toggle {
    width: 2.35rem;
    padding-left: .35rem !important;
    padding-right: .35rem !important;
  }
}


/* =========================================================
   PEMILU-UIUX-001B-REV3 — Strong AdminLTE Theme Override
   Masalah yang diperbaiki: tombol berubah, tetapi halaman tidak berubah.
   Penyebab: body/AdminLTE belum menerima class dark-mode dan beberapa selector
   AdminLTE/DataTables masih menang prioritas.
   ========================================================= */

html[data-pemilu-theme="dark"],
html.pemilu-theme-dark {
  background: #020617 !important;
}

html[data-pemilu-theme="dark"] body,
html.pemilu-theme-dark body,
body.pemilu-theme-dark,
body.dark-mode {
  background-color: #020617 !important;
  color: #F8FAFC !important;
}

html[data-pemilu-theme="dark"] .wrapper,
html[data-pemilu-theme="dark"] .content-wrapper,
html[data-pemilu-theme="dark"] .content,
html[data-pemilu-theme="dark"] .content-header,
html[data-pemilu-theme="dark"] .container-fluid,
body.dark-mode .wrapper,
body.dark-mode .content-wrapper,
body.dark-mode .content,
body.dark-mode .content-header,
body.dark-mode .container-fluid {
  background-color: #020617 !important;
  color: #F8FAFC !important;
}

html[data-pemilu-theme="dark"] .main-header,
html[data-pemilu-theme="dark"] .navbar,
html[data-pemilu-theme="dark"] .navbar-white,
html[data-pemilu-theme="dark"] .navbar-light,
body.dark-mode .main-header,
body.dark-mode .navbar,
body.dark-mode .navbar-white,
body.dark-mode .navbar-light {
  background-color: #0F172A !important;
  color: #F8FAFC !important;
  border-color: #334155 !important;
}

html[data-pemilu-theme="dark"] .main-header a,
html[data-pemilu-theme="dark"] .main-header .nav-link,
html[data-pemilu-theme="dark"] .navbar a,
html[data-pemilu-theme="dark"] .navbar .nav-link,
body.dark-mode .main-header a,
body.dark-mode .main-header .nav-link,
body.dark-mode .navbar a,
body.dark-mode .navbar .nav-link {
  color: #CBD5E1 !important;
}

html[data-pemilu-theme="dark"] .main-header a:hover,
html[data-pemilu-theme="dark"] .main-header .nav-link:hover,
body.dark-mode .main-header a:hover,
body.dark-mode .main-header .nav-link:hover {
  color: #FB923C !important;
}

html[data-pemilu-theme="dark"] .main-sidebar,
html[data-pemilu-theme="dark"] .main-sidebar::before,
html[data-pemilu-theme="dark"] aside.main-sidebar,
html[data-pemilu-theme="dark"] .sidebar,
body.dark-mode .main-sidebar,
body.dark-mode .main-sidebar::before,
body.dark-mode aside.main-sidebar,
body.dark-mode .sidebar {
  background: linear-gradient(180deg, #111827 0%, #020617 100%) !important;
  color: #F8FAFC !important;
}

html[data-pemilu-theme="dark"] .brand-link,
body.dark-mode .brand-link {
  background: linear-gradient(135deg, #F47A1F 0%, #C2410C 100%) !important;
  color: #FFFFFF !important;
  border-bottom-color: rgba(255,255,255,.08) !important;
}

html[data-pemilu-theme="dark"] .nav-sidebar .nav-link,
html[data-pemilu-theme="dark"] .sidebar a,
body.dark-mode .nav-sidebar .nav-link,
body.dark-mode .sidebar a {
  color: #CBD5E1 !important;
}

html[data-pemilu-theme="dark"] .nav-sidebar .nav-link.active,
html[data-pemilu-theme="dark"] .nav-sidebar .nav-link:hover,
body.dark-mode .nav-sidebar .nav-link.active,
body.dark-mode .nav-sidebar .nav-link:hover {
  background: linear-gradient(135deg, #F47A1F 0%, #EA580C 100%) !important;
  color: #FFFFFF !important;
}

html[data-pemilu-theme="dark"] .card,
html[data-pemilu-theme="dark"] .card-body,
html[data-pemilu-theme="dark"] .box,
html[data-pemilu-theme="dark"] .box-body,
html[data-pemilu-theme="dark"] .info-box,
html[data-pemilu-theme="dark"] .small-box,
html[data-pemilu-theme="dark"] .callout,
html[data-pemilu-theme="dark"] .modal-content,
html[data-pemilu-theme="dark"] .dropdown-menu,
html[data-pemilu-theme="dark"] .list-group-item,
body.dark-mode .card,
body.dark-mode .card-body,
body.dark-mode .box,
body.dark-mode .box-body,
body.dark-mode .info-box,
body.dark-mode .small-box,
body.dark-mode .callout,
body.dark-mode .modal-content,
body.dark-mode .dropdown-menu,
body.dark-mode .list-group-item {
  background-color: #0F172A !important;
  color: #F8FAFC !important;
  border-color: #334155 !important;
}

html[data-pemilu-theme="dark"] .card-header,
html[data-pemilu-theme="dark"] .card-footer,
html[data-pemilu-theme="dark"] .box-header,
html[data-pemilu-theme="dark"] .modal-header,
html[data-pemilu-theme="dark"] .modal-footer,
body.dark-mode .card-header,
body.dark-mode .card-footer,
body.dark-mode .box-header,
body.dark-mode .modal-header,
body.dark-mode .modal-footer {
  background-color: #111827 !important;
  color: #F8FAFC !important;
  border-color: #334155 !important;
}

html[data-pemilu-theme="dark"] table,
html[data-pemilu-theme="dark"] .table,
html[data-pemilu-theme="dark"] .table td,
html[data-pemilu-theme="dark"] .table th,
html[data-pemilu-theme="dark"] table.dataTable,
html[data-pemilu-theme="dark"] table.dataTable td,
html[data-pemilu-theme="dark"] table.dataTable th,
body.dark-mode table,
body.dark-mode .table,
body.dark-mode .table td,
body.dark-mode .table th,
body.dark-mode table.dataTable,
body.dark-mode table.dataTable td,
body.dark-mode table.dataTable th {
  background-color: transparent !important;
  color: #F8FAFC !important;
  border-color: #334155 !important;
}

html[data-pemilu-theme="dark"] .table tbody tr,
html[data-pemilu-theme="dark"] table.dataTable tbody tr,
body.dark-mode .table tbody tr,
body.dark-mode table.dataTable tbody tr {
  background-color: #0F172A !important;
}

html[data-pemilu-theme="dark"] .table-striped tbody tr:nth-of-type(odd),
html[data-pemilu-theme="dark"] table.dataTable.stripe tbody tr.odd,
html[data-pemilu-theme="dark"] table.dataTable.display tbody tr.odd,
body.dark-mode .table-striped tbody tr:nth-of-type(odd),
body.dark-mode table.dataTable.stripe tbody tr.odd,
body.dark-mode table.dataTable.display tbody tr.odd {
  background-color: #111827 !important;
}

html[data-pemilu-theme="dark"] .table-hover tbody tr:hover,
html[data-pemilu-theme="dark"] table.dataTable.hover tbody tr:hover,
html[data-pemilu-theme="dark"] table.dataTable.display tbody tr:hover,
body.dark-mode .table-hover tbody tr:hover,
body.dark-mode table.dataTable.hover tbody tr:hover,
body.dark-mode table.dataTable.display tbody tr:hover {
  background-color: rgba(244, 122, 31, .13) !important;
  color: #FFFFFF !important;
}

html[data-pemilu-theme="dark"] .table thead th,
html[data-pemilu-theme="dark"] table.dataTable thead th,
body.dark-mode .table thead th,
body.dark-mode table.dataTable thead th {
  background-color: #1E293B !important;
  color: #FFFFFF !important;
  border-color: #334155 !important;
}

html[data-pemilu-theme="dark"] .form-control,
html[data-pemilu-theme="dark"] .custom-select,
html[data-pemilu-theme="dark"] .input-group-text,
html[data-pemilu-theme="dark"] input,
html[data-pemilu-theme="dark"] select,
html[data-pemilu-theme="dark"] textarea,
html[data-pemilu-theme="dark"] .select2-container--default .select2-selection--single,
html[data-pemilu-theme="dark"] .select2-container--default .select2-selection--multiple,
body.dark-mode .form-control,
body.dark-mode .custom-select,
body.dark-mode .input-group-text,
body.dark-mode input,
body.dark-mode select,
body.dark-mode textarea,
body.dark-mode .select2-container--default .select2-selection--single,
body.dark-mode .select2-container--default .select2-selection--multiple {
  background-color: #020617 !important;
  color: #F8FAFC !important;
  border-color: #334155 !important;
}

html[data-pemilu-theme="dark"] .text-dark,
html[data-pemilu-theme="dark"] .text-muted,
html[data-pemilu-theme="dark"] .description-block,
html[data-pemilu-theme="dark"] .description-text,
html[data-pemilu-theme="dark"] .breadcrumb,
html[data-pemilu-theme="dark"] .breadcrumb a,
body.dark-mode .text-dark,
body.dark-mode .text-muted,
body.dark-mode .description-block,
body.dark-mode .description-text,
body.dark-mode .breadcrumb,
body.dark-mode .breadcrumb a {
  color: #CBD5E1 !important;
}

html[data-pemilu-theme="dark"] .main-footer,
body.dark-mode .main-footer {
  background-color: #0F172A !important;
  color: #CBD5E1 !important;
  border-color: #334155 !important;
}

/* Light mode explicit restore */
html[data-pemilu-theme="light"] body,
body.pemilu-theme-light {
  background-color: #F8FAFC !important;
  color: #0F172A !important;
}

html[data-pemilu-theme="light"] .content-wrapper,
html[data-pemilu-theme="light"] .content,
html[data-pemilu-theme="light"] .content-header {
  background-color: #F8FAFC !important;
  color: #0F172A !important;
}

html[data-pemilu-theme="light"] .card,
html[data-pemilu-theme="light"] .card-body,
html[data-pemilu-theme="light"] .info-box,
html[data-pemilu-theme="light"] .modal-content,
html[data-pemilu-theme="light"] .dropdown-menu {
  background-color: #FFFFFF !important;
  color: #0F172A !important;
  border-color: #E2E8F0 !important;
}
