:root {
  color-scheme: light;
  --app-bg: #eef3f8;
  --app-surface: #ffffff;
  --app-surface-muted: #f5f7fb;
  --app-surface-strong: #e6edf6;
  --app-surface-elevated: #ffffff;
  --app-text: #162033;
  --app-text-muted: #5b697d;
  --app-text-soft: #7a8798;
  --app-border: #d7e0ea;
  --app-border-strong: #c2cedd;
  --app-header-bg: rgba(255, 255, 255, 0.92);
  --app-header-text: #132034;
  --app-footer-bg: #ffffff;
  --app-sidebar-bg: #e8eef6;
  --app-sidebar-text: #142035;
  --app-sidebar-text-muted: #5c6b80;
  --app-sidebar-link-bg: rgba(255, 255, 255, 0.9);
  --app-sidebar-link-hover: #ffffff;
  --app-sidebar-link-active: #dbeafe;
  --app-sidebar-link-border: rgba(148, 163, 184, 0.28);
  --app-sidebar-badge-bg: rgba(29, 78, 216, 0.12);
  --app-sidebar-badge-text: #0b61d8;
  --app-accent: #1d4ed8;
  --app-accent-soft: rgba(29, 78, 216, 0.12);
  --app-accent-strong: #1d4ed8;
  --app-neutral-bg: #243449;
  --app-neutral-bg-hover: #182638;
  --app-neutral-border: #243449;
  --app-neutral-text: #f8fafc;
  --app-info-bg: #dff3fb;
  --app-info-border: #94d3ec;
  --app-info-text: #0f4c6e;
  --app-warning-bg: #fff7dd;
  --app-warning-border: #f6d487;
  --app-warning-text: #815c00;
  --app-overlay: rgba(15, 23, 42, 0.44);
  --app-shadow: 0 0.75rem 1.75rem rgba(15, 23, 42, 0.08);
  --app-shadow-soft: 0 0.35rem 0.95rem rgba(15, 23, 42, 0.08);
  --app-table-stripe: #f5f7fb;
  --app-table-hover: #e6edf6;
  --bs-body-bg: var(--app-bg);
  --bs-body-color: var(--app-text);
  --bs-emphasis-color: var(--app-text);
  --bs-secondary-color: var(--app-text-muted);
  --bs-secondary-bg: var(--app-surface-muted);
  --bs-tertiary-bg: var(--app-surface);
  --bs-border-color: var(--app-border);
  --bs-card-bg: var(--app-surface);
  --bs-card-cap-bg: var(--app-surface-muted);
  --bs-modal-bg: var(--app-surface);
  --bs-dropdown-bg: var(--app-surface);
  --bs-dropdown-color: var(--app-text);
  --bs-dropdown-link-color: var(--app-text);
  --bs-dropdown-link-hover-bg: var(--app-surface-muted);
  --bs-dropdown-link-hover-color: var(--app-text);
  --bs-list-group-bg: var(--app-surface);
  --bs-list-group-color: var(--app-text);
  --bs-list-group-border-color: var(--app-border);
  --bs-table-bg: transparent;
  --bs-table-color: var(--app-text);
  --bs-table-border-color: var(--app-border);
  --bs-table-striped-bg: var(--app-table-stripe);
  --bs-table-striped-color: var(--app-text);
  --bs-table-hover-bg: var(--app-table-hover);
  --bs-table-hover-color: var(--app-text);
  --bs-body-secondary-color: var(--app-text-muted);
}

:root[data-theme="dark"] {
  color-scheme: dark;
  --app-bg: #0f172a;
  --app-surface: #111827;
  --app-surface-muted: #172235;
  --app-surface-strong: #1f2c42;
  --app-surface-elevated: #182337;
  --app-text: #e5e7eb;
  --app-text-muted: #9fb0c5;
  --app-text-soft: #7f90a8;
  --app-border: #314255;
  --app-border-strong: #42556b;
  --app-header-bg: rgba(15, 23, 42, 0.92);
  --app-header-text: #f8fafc;
  --app-footer-bg: #111827;
  --app-sidebar-bg: #09111f;
  --app-sidebar-text: rgba(248, 250, 252, 0.94);
  --app-sidebar-text-muted: rgba(191, 205, 222, 0.82);
  --app-sidebar-link-bg: rgba(17, 24, 39, 0.92);
  --app-sidebar-link-hover: rgba(30, 41, 59, 0.94);
  --app-sidebar-link-active: rgba(37, 99, 235, 0.26);
  --app-sidebar-link-border: rgba(148, 163, 184, 0.16);
  --app-sidebar-badge-bg: rgba(96, 165, 250, 0.18);
  --app-sidebar-badge-text: #dbeafe;
  --app-accent: #60a5fa;
  --app-accent-soft: rgba(96, 165, 250, 0.16);
  --app-accent-strong: #3b82f6;
  --app-neutral-bg: #334155;
  --app-neutral-bg-hover: #475569;
  --app-neutral-border: #475569;
  --app-neutral-text: #f8fafc;
  --app-info-bg: rgba(14, 116, 144, 0.18);
  --app-info-border: rgba(125, 211, 252, 0.22);
  --app-info-text: #c9f2ff;
  --app-warning-bg: rgba(146, 64, 14, 0.28);
  --app-warning-border: rgba(251, 191, 36, 0.3);
  --app-warning-text: #fde68a;
  --app-overlay: rgba(2, 6, 23, 0.62);
  --app-shadow: 0 0.95rem 2rem rgba(2, 6, 23, 0.34);
  --app-shadow-soft: 0 0.45rem 1.2rem rgba(2, 6, 23, 0.28);
  --app-table-stripe: #172235;
  --app-table-hover: #1f2c42;
}

html,
body {
  background-color: var(--app-bg);
  color: var(--app-text);
  transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

body {
  min-height: 100vh;
  color: var(--app-text);
}

a {
  color: var(--app-accent);
}

a:hover,
a:focus {
  color: var(--app-accent);
}

hr,
.dropdown-divider {
  border-color: var(--app-border);
  opacity: 1;
}

::selection {
  color: #fff;
  background-color: var(--app-accent);
}

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

.content-header,
.content,
.modal-body,
.card-body {
  color: var(--app-text);
}

.main-footer {
  background-color: var(--app-footer-bg);
  color: var(--app-text);
  border-top: 1px solid var(--app-border);
}

.main-header.navbar {
  background-color: var(--app-header-bg) !important;
  color: var(--app-header-text);
  border-bottom: 1px solid var(--app-border);
  backdrop-filter: blur(12px);
}

.main-header .nav-link,
.main-header .navbar-nav .nav-link {
  color: var(--app-header-text) !important;
}

.main-header .nav-link:hover,
.main-header .nav-link:focus {
  background-color: var(--app-surface-muted);
}

.main-sidebar {
  background-color: var(--app-sidebar-bg) !important;
  border-right: 1px solid var(--app-sidebar-link-border);
  box-shadow: var(--app-shadow-soft);
}

.main-sidebar .brand-link {
  background-color: transparent !important;
  border-bottom: 1px solid var(--app-sidebar-link-border);
}

.main-sidebar .brand-link,
.main-sidebar .brand-link .brand-text,
.main-sidebar .user-panel .info,
.main-sidebar .user-panel .info a,
.main-sidebar .brand-text,
.main-sidebar .nav-icon,
.main-sidebar .nav-link,
.main-sidebar .nav-link p,
.main-sidebar .nav-link .right,
.main-sidebar .nav-link .right::before {
  color: var(--app-sidebar-text) !important;
}

.main-sidebar .brand-image,
.main-sidebar .app-user-image {
  opacity: 1;
}

.main-sidebar .user-panel {
  border-bottom: 1px solid var(--app-sidebar-link-border);
}

.main-sidebar .user-panel .image img {
  border-radius: 999px;
  box-shadow: 0 0 0 2px var(--app-sidebar-link-border);
}

.main-sidebar .nav-sidebar,
.main-sidebar .nav-treeview {
  gap: 0.35rem;
}

.main-sidebar .nav-sidebar > .nav-item,
.main-sidebar .nav-treeview > .nav-item {
  margin-bottom: 0.35rem;
}

.main-sidebar .nav-sidebar > .nav-item > .nav-link,
.main-sidebar .nav-treeview > .nav-item > .nav-link {
  display: flex;
  align-items: center;
  min-height: 3.25rem;
  padding: 0.85rem 0.95rem;
  margin: 0;
  color: var(--app-sidebar-text) !important;
  background-color: var(--app-sidebar-link-bg) !important;
  border: 1px solid var(--app-sidebar-link-border);
  border-radius: 0.9rem;
  box-shadow: 0 0.4rem 0.9rem rgba(15, 23, 42, 0.08);
  transition: background-color 0.18s ease, border-color 0.18s ease, transform 0.18s ease, box-shadow 0.18s ease;
}

.main-sidebar .nav-treeview {
  padding-left: 0.65rem;
  margin-top: 0.5rem;
}

.main-sidebar .nav-treeview > .nav-item > .nav-link {
  min-height: 2.85rem;
  padding-top: 0.7rem;
  padding-bottom: 0.7rem;
  color: var(--app-sidebar-text-muted) !important;
  background-color: transparent !important;
  border-style: dashed;
  box-shadow: none;
}

.main-sidebar .nav-sidebar > .nav-item > .nav-link p,
.main-sidebar .nav-treeview > .nav-item > .nav-link p {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  width: 100%;
  margin: 0;
}

.main-sidebar .nav-sidebar > .nav-item > .nav-link p {
  font-weight: 600;
}

.main-sidebar .nav-treeview > .nav-item > .nav-link p {
  font-weight: 500;
}

.main-sidebar .nav-link:hover,
.main-sidebar .nav-link:focus,
.main-sidebar .nav-treeview > .nav-item > .nav-link:hover,
.main-sidebar .nav-treeview > .nav-item > .nav-link:focus {
  color: var(--app-sidebar-text) !important;
  background-color: var(--app-sidebar-link-hover) !important;
  border-color: transparent;
  transform: translateY(-1px);
}

.main-sidebar .nav-sidebar > .nav-item.menu-open > .nav-link,
.main-sidebar .nav-sidebar > .nav-item > .nav-link.active,
.main-sidebar .nav-treeview > .nav-item > .nav-link.active {
  color: var(--app-sidebar-text) !important;
  background-color: var(--app-sidebar-link-active) !important;
  border-color: transparent;
}

.main-sidebar .nav-sidebar > .nav-item.menu-open > .nav-link p,
.main-sidebar .nav-sidebar > .nav-item > .nav-link.active p,
.main-sidebar .nav-treeview > .nav-item > .nav-link.active p {
  color: inherit !important;
}

.main-sidebar .badge-dark {
  background-color: var(--app-sidebar-badge-bg) !important;
  color: var(--app-sidebar-badge-text) !important;
  border: 1px solid transparent;
  font-weight: 700;
}

.main-sidebar .nav-treeview > .nav-item > .nav-link .badge-dark {
  color: var(--app-sidebar-text-muted) !important;
  background-color: transparent !important;
  border-color: var(--app-sidebar-link-border);
}

.card,
.modal-content,
.dropdown-menu,
.list-group-item,
.info-box,
.small-box {
  background-color: var(--app-surface);
  color: var(--app-text);
  border-color: var(--app-border);
  box-shadow: var(--app-shadow);
}

.card-header,
.card-footer,
.modal-header,
.modal-footer {
  background-color: transparent;
  color: var(--app-text);
  border-color: var(--app-border);
}

.dropdown-item {
  color: var(--app-text);
}

.dropdown-item:hover,
.dropdown-item:focus {
  color: var(--app-text);
  background-color: var(--app-surface-muted);
}

.form-control,
.form-select,
.input-group-text,
.select2-container--bootstrap-5 .select2-selection--single,
.select2-container--bootstrap-5 .select2-dropdown,
.swal2-popup,
.swal2-input,
.swal2-select,
.swal2-textarea {
  color: var(--app-text);
  background-color: var(--app-surface);
  border-color: var(--app-border);
}

.form-control::placeholder,
.form-select::placeholder,
input::placeholder,
textarea::placeholder {
  color: var(--app-text-soft);
}

.form-control:focus,
.form-select:focus,
.select2-container--bootstrap-5.select2-container--focus .select2-selection,
.swal2-input:focus,
.swal2-select:focus,
.swal2-textarea:focus {
  color: var(--app-text);
  background-color: var(--app-surface);
  border-color: var(--app-accent);
  box-shadow: 0 0 0 0.2rem var(--app-accent-soft);
}

.select2-container--bootstrap-5 .select2-selection--single .select2-selection__rendered,
.select2-container--bootstrap-5 .select2-results__option,
.select2-container--bootstrap-5 .select2-selection__placeholder {
  color: var(--app-text);
}

.select2-container--bootstrap-5 .select2-results__option--highlighted[aria-selected] {
  color: #fff;
  background-color: var(--app-accent);
}

.select2-container--bootstrap-5 .select2-search input {
  color: var(--app-text);
  background-color: var(--app-surface);
  border-color: var(--app-border);
}

.btn-default,
.btn-dark,
.bg-dark,
.input-group-text.bg-dark {
  color: var(--app-neutral-text) !important;
  background-color: var(--app-neutral-bg) !important;
  border-color: var(--app-neutral-border) !important;
}

.btn-default:hover,
.btn-default:focus,
.btn-dark:hover,
.btn-dark:focus,
.bg-dark:hover,
.input-group-text.bg-dark:hover {
  color: var(--app-neutral-text) !important;
  background-color: var(--app-neutral-bg-hover) !important;
  border-color: var(--app-neutral-border) !important;
}

.border-dark {
  border-color: var(--app-neutral-border) !important;
}

.bg-light,
.btn-light,
.alert-light,
.table-light,
.input-group-text.bg-light {
  color: var(--app-text) !important;
  background-color: var(--app-surface-muted) !important;
  border-color: var(--app-border) !important;
}

.badge-light {
  color: var(--app-text) !important;
  background-color: var(--app-surface-muted) !important;
  border: 1px solid var(--app-border);
}

.table-primary > :not(caption) > * > *,
.table-secondary > :not(caption) > * > * {
  color: var(--app-text);
  border-color: var(--app-border);
}

.table-primary > :not(caption) > * > * {
  background-color: var(--app-accent-soft);
}

.table-secondary > :not(caption) > * > * {
  background-color: var(--app-surface-muted);
}

.text-muted {
  color: var(--app-text-muted) !important;
}

.text-dark,
.text-black {
  color: var(--app-text) !important;
}

.text-secondary {
  color: var(--app-text-muted) !important;
}

.table,
.table > :not(caption) > * > * {
  color: var(--app-text);
  border-color: var(--app-border);
}

.table > :not(caption) > thead > tr > th,
table.table > thead > tr > th,
table.table > tbody > tr > th {
  color: var(--app-text) !important;
  background-color: var(--app-surface-muted) !important;
  border-color: var(--app-border) !important;
}

.table-striped > tbody > tr:nth-of-type(odd) > * {
  color: var(--app-text);
  background-color: var(--app-table-stripe);
}

.table-hover > tbody > tr:hover > * {
  color: var(--app-text);
  background-color: var(--app-table-hover);
}

.form-control:disabled,
.form-control[readonly],
.form-select:disabled,
.form-select[readonly],
input.form-control:disabled,
input.form-control[readonly],
textarea.form-control:disabled,
textarea.form-control[readonly] {
  color: var(--app-text) !important;
  background-color: var(--app-surface-muted) !important;
  border-color: var(--app-border) !important;
  -webkit-text-fill-color: var(--app-text) !important;
  opacity: 1 !important;
}

.form-check-input:disabled {
  background-color: var(--app-surface-muted);
  border-color: var(--app-border);
}

.input-group-text,
.input-group-text.bg-light,
.input-group-text.bg-dark {
  color: var(--app-text) !important;
  background-color: var(--app-surface-muted) !important;
  border-color: var(--app-border) !important;
}

.select2-container--default,
.select2-container--bootstrap4,
.select2-container--bootstrap-5 {
  color: var(--app-text);
}

.select2-container--default .select2-selection--single,
.select2-container--default .select2-selection--multiple,
.select2-container--bootstrap4 .select2-selection,
.select2-container--bootstrap-5 .select2-selection,
.select2-dropdown,
.select2-container--default .select2-dropdown,
.select2-container--bootstrap4 .select2-dropdown,
.select2-container--bootstrap-5 .select2-dropdown {
  color: var(--app-text) !important;
  background-color: var(--app-surface) !important;
  border-color: var(--app-border) !important;
}

.select2-container--default .select2-selection--single,
.select2-container--bootstrap4 .select2-selection--single,
.select2-container--bootstrap-5 .select2-selection--single {
  min-height: 2.625rem;
  border-radius: 0.5rem !important;
}

.select2-container--default .select2-selection--multiple,
.select2-container--bootstrap4 .select2-selection--multiple,
.select2-container--bootstrap-5 .select2-selection--multiple {
  min-height: 2.625rem;
  border-radius: 0.5rem !important;
  padding: 0.1rem 0.35rem 0.2rem;
}

.select2-container--default .select2-selection__rendered,
.select2-container--default .select2-selection__placeholder,
.select2-container--default .select2-search__field,
.select2-container--bootstrap4 .select2-selection__rendered,
.select2-container--bootstrap4 .select2-selection__placeholder,
.select2-container--bootstrap4 .select2-search__field,
.select2-container--bootstrap-5 .select2-selection__rendered,
.select2-container--bootstrap-5 .select2-selection__placeholder,
.select2-container--bootstrap-5 .select2-search__field,
.select2-results__option {
  color: var(--app-text) !important;
}

.select2-container--default .select2-selection__placeholder,
.select2-container--bootstrap4 .select2-selection__placeholder,
.select2-container--bootstrap-5 .select2-selection__placeholder,
.select2-container--default .select2-search__field::placeholder,
.select2-container--bootstrap4 .select2-search__field::placeholder,
.select2-container--bootstrap-5 .select2-search__field::placeholder {
  color: var(--app-text-soft) !important;
}

.select2-container--default .select2-selection__arrow b,
.select2-container--bootstrap4 .select2-selection__arrow b,
.select2-container--bootstrap-5 .select2-selection__arrow b {
  border-top-color: var(--app-text-soft) !important;
}

.select2-container--default.select2-container--focus .select2-selection,
.select2-container--bootstrap4.select2-container--focus .select2-selection,
.select2-container--bootstrap-5.select2-container--focus .select2-selection,
.select2-container--default.select2-container--open .select2-selection,
.select2-container--bootstrap4.select2-container--open .select2-selection,
.select2-container--bootstrap-5.select2-container--open .select2-selection {
  border-color: var(--app-accent) !important;
  box-shadow: 0 0 0 0.2rem var(--app-accent-soft) !important;
}

.select2-container--default.select2-container--disabled .select2-selection,
.select2-container--bootstrap4.select2-container--disabled .select2-selection,
.select2-container--bootstrap-5.select2-container--disabled .select2-selection {
  background-color: var(--app-surface-muted) !important;
  border-color: var(--app-border) !important;
  opacity: 1;
}

.select2-dropdown {
  border-radius: 0.75rem !important;
  box-shadow: var(--app-shadow) !important;
  overflow: hidden;
}

.select2-search--dropdown,
.select2-search--inline {
  background-color: var(--app-surface) !important;
}

.select2-search--dropdown .select2-search__field,
.select2-search--inline .select2-search__field {
  color: var(--app-text) !important;
  background-color: var(--app-surface) !important;
  border-color: var(--app-border) !important;
}

.select2-results__option {
  background-color: transparent !important;
}

.select2-results__option--selected {
  color: var(--app-text) !important;
  background-color: var(--app-surface-muted) !important;
}

.select2-results__option--highlighted.select2-results__option--selectable,
.select2-container--default .select2-results__option--highlighted[aria-selected],
.select2-container--bootstrap4 .select2-results__option--highlighted[aria-selected],
.select2-container--bootstrap-5 .select2-results__option--highlighted[aria-selected] {
  color: #fff !important;
  background-color: var(--app-accent) !important;
}

.dataTables_wrapper,
.dataTables_wrapper .dataTables_info,
.dataTables_wrapper .dataTables_paginate,
.dataTables_wrapper .dataTables_length,
.dataTables_wrapper .dataTables_filter,
.dataTables_wrapper .dataTables_processing {
  color: var(--app-text);
}

.dataTables_wrapper .dataTables_length label,
.dataTables_wrapper .dataTables_filter label,
.dataTables_wrapper .dataTables_info,
.dataTables_wrapper .dataTables_paginate {
  color: var(--app-text) !important;
}

.dataTables_wrapper .dataTables_length select,
.dataTables_wrapper .dataTables_filter input {
  color: var(--app-text) !important;
  background-color: var(--app-surface) !important;
  border: 1px solid var(--app-border) !important;
  border-radius: 0.5rem;
}

.dataTables_wrapper .dataTables_filter input:focus,
.dataTables_wrapper .dataTables_length select:focus {
  border-color: var(--app-accent) !important;
  box-shadow: 0 0 0 0.2rem var(--app-accent-soft) !important;
  outline: 0;
}

.dataTables_wrapper .dataTables_paginate .paginate_button {
  color: var(--app-text) !important;
}

.dataTables_wrapper .dataTables_paginate .paginate_button.current,
.dataTables_wrapper .dataTables_paginate .paginate_button.current:hover {
  color: var(--app-text) !important;
  background: var(--app-surface-muted) !important;
  border: 1px solid var(--app-border) !important;
}

.dataTables_wrapper .dataTables_paginate .paginate_button:hover {
  color: var(--app-text) !important;
  background: var(--app-surface-muted) !important;
  border: 1px solid var(--app-border) !important;
}

.dataTables_wrapper .dataTables_paginate .paginate_button.disabled,
.dataTables_wrapper .dataTables_paginate .paginate_button.disabled:hover,
.dataTables_wrapper .dataTables_paginate .paginate_button.disabled:active {
  color: var(--app-text-soft) !important;
  background: transparent !important;
  border-color: transparent !important;
}

table.dataTable,
table.dataTable.no-footer,
table.dataTable thead th,
table.dataTable thead td,
table.dataTable tbody th,
table.dataTable tbody td {
  color: var(--app-text) !important;
  border-color: var(--app-border) !important;
}

table.dataTable {
  width: 100% !important;
  background-color: transparent !important;
}

table.dataTable tbody > tr {
  --app-row-bg: var(--app-surface);
  background-color: var(--app-row-bg) !important;
}

table.dataTable tbody > tr > * {
  background-color: var(--app-row-bg) !important;
  box-shadow: none !important;
}

table.dataTable.no-footer {
  border-bottom-color: var(--app-border) !important;
}

table.dataTable thead th,
table.dataTable thead td {
  background-color: var(--app-surface-muted) !important;
}

table.dataTable thead .sorting,
table.dataTable thead .sorting_asc,
table.dataTable thead .sorting_desc,
table.dataTable thead .sorting_asc_disabled,
table.dataTable thead .sorting_desc_disabled {
  position: relative;
  padding-right: 2rem !important;
  background-image: none !important;
}

table.dataTable thead .sorting::after,
table.dataTable thead .sorting_asc::after,
table.dataTable thead .sorting_desc::after {
  position: absolute;
  top: 50%;
  right: 0.75rem;
  transform: translateY(-50%);
  font-size: 0.8rem;
  font-weight: 700;
}

table.dataTable thead .sorting::after {
  content: "↕";
  color: var(--app-text-soft);
  opacity: 0.55;
}

table.dataTable thead .sorting_asc::after {
  content: "↑";
  color: var(--app-accent);
}

table.dataTable thead .sorting_desc::after {
  content: "↓";
  color: var(--app-accent);
}

table.dataTable.display > tbody > tr.odd > *,
table.dataTable.stripe > tbody > tr.odd > *,
table.dataTable.order-column.stripe > tbody > tr.odd > *,
table.dataTable.order-column.display > tbody > tr.odd > * {
  --app-row-bg: var(--app-table-stripe);
}

table.dataTable.display > tbody > tr.odd,
table.dataTable.stripe > tbody > tr.odd,
table.dataTable.order-column.stripe > tbody > tr.odd,
table.dataTable.order-column.display > tbody > tr.odd {
  background-color: var(--app-table-stripe) !important;
}

table.dataTable.display > tbody > tr.even > *,
table.dataTable.stripe > tbody > tr.even > *,
table.dataTable.order-column.stripe > tbody > tr.even > *,
table.dataTable.order-column.display > tbody > tr.even > * {
  --app-row-bg: var(--app-surface);
}

table.dataTable.display > tbody > tr.even,
table.dataTable.stripe > tbody > tr.even,
table.dataTable.order-column.stripe > tbody > tr.even,
table.dataTable.order-column.display > tbody > tr.even {
  background-color: var(--app-surface) !important;
}

table.dataTable.hover > tbody > tr:hover > *,
table.dataTable.display > tbody > tr:hover > *,
table.dataTable tbody > tr.selected > * {
  --app-row-bg: var(--app-table-hover);
}

table.dataTable.hover > tbody > tr:hover,
table.dataTable.display > tbody > tr:hover,
table.dataTable tbody > tr.selected {
  background-color: var(--app-table-hover) !important;
}

table.dataTable.order-column > tbody tr > .sorting_1,
table.dataTable.order-column > tbody tr > .sorting_2,
table.dataTable.order-column > tbody tr > .sorting_3,
table.dataTable.display > tbody tr > .sorting_1,
table.dataTable.display > tbody tr > .sorting_2,
table.dataTable.display > tbody tr > .sorting_3 {
  background-color: var(--app-row-bg) !important;
}

table.dataTable > tbody > tr.child,
table.dataTable > tbody > tr.child > * {
  color: var(--app-text) !important;
  background-color: var(--app-surface-muted) !important;
  border-color: var(--app-border) !important;
}

table.dataTable > tbody > tr.child ul.dtr-details {
  width: 100%;
  margin: 0;
}

table.dataTable > tbody > tr.child ul.dtr-details > li {
  border-bottom-color: var(--app-border) !important;
}

table.dataTable > tbody > tr.child span.dtr-title,
table.dataTable > tbody > tr.child span.dtr-data {
  color: var(--app-text) !important;
}

table.dataTable.dtr-inline.collapsed > tbody > tr[role="row"] > td:first-child::before,
table.dataTable.dtr-inline.collapsed > tbody > tr[role="row"] > th:first-child::before {
  color: #fff !important;
  background-color: var(--app-accent) !important;
  box-shadow: none !important;
}

table.dataTable.dtr-inline.collapsed > tbody > tr.parent > td:first-child::before,
table.dataTable.dtr-inline.collapsed > tbody > tr.parent > th:first-child::before {
  background-color: var(--app-neutral-bg) !important;
}

.dataTables_wrapper .dataTables_processing {
  background-color: var(--app-surface) !important;
  border: 1px solid var(--app-border) !important;
  border-radius: 0.75rem;
  box-shadow: var(--app-shadow);
}

.tempus-dominus-widget,
.tempus-dominus-widget .td-header,
.tempus-dominus-widget .td-body,
.tempus-dominus-widget .collapse,
.tempus-dominus-widget .calendar-header,
.tempus-dominus-widget .datepicker-header {
  color: var(--app-text) !important;
  background-color: var(--app-surface) !important;
}

.tempus-dominus-widget {
  border: 1px solid var(--app-border) !important;
  border-radius: 1rem !important;
  box-shadow: var(--app-shadow) !important;
}

.tempus-dominus-widget [data-action],
.tempus-dominus-widget .day,
.tempus-dominus-widget .month,
.tempus-dominus-widget .year,
.tempus-dominus-widget .decade,
.tempus-dominus-widget .time-container-clock div {
  color: var(--app-text) !important;
  border-radius: 0.6rem;
}

.tempus-dominus-widget .dow,
.tempus-dominus-widget .title,
.tempus-dominus-widget .picker-switch {
  color: var(--app-text-muted) !important;
}

.tempus-dominus-widget [data-action]:hover,
.tempus-dominus-widget .day:hover,
.tempus-dominus-widget .month:hover,
.tempus-dominus-widget .year:hover,
.tempus-dominus-widget .decade:hover,
.tempus-dominus-widget .time-container-clock div:hover {
  background-color: var(--app-surface-muted) !important;
}

.tempus-dominus-widget .active,
.tempus-dominus-widget .active:hover,
.tempus-dominus-widget .day.active,
.tempus-dominus-widget .day.active:hover,
.tempus-dominus-widget .month.active,
.tempus-dominus-widget .year.active,
.tempus-dominus-widget .decade.active,
.tempus-dominus-widget .range-start,
.tempus-dominus-widget .range-end {
  color: #fff !important;
  background-color: var(--app-accent) !important;
}

.tempus-dominus-widget .range,
.tempus-dominus-widget .day.in-range,
.tempus-dominus-widget .day.range {
  color: var(--app-text) !important;
  background-color: var(--app-accent-soft) !important;
}

.tempus-dominus-widget .today:not(.active) {
  box-shadow: inset 0 0 0 1px var(--app-accent);
}

.tempus-dominus-widget .disabled,
.tempus-dominus-widget .old,
.tempus-dominus-widget .new {
  color: var(--app-text-soft) !important;
  opacity: 0.45;
}

.datepicker,
.datepicker-dropdown {
  color: var(--app-text) !important;
  background-color: var(--app-surface) !important;
  border-color: var(--app-border) !important;
  box-shadow: var(--app-shadow) !important;
}

.datepicker table tr td,
.datepicker table tr th {
  color: var(--app-text) !important;
  background: transparent !important;
  border-radius: 0.5rem;
}

.datepicker table tr td.day:hover,
.datepicker table tr td span:hover,
.datepicker table tr th:hover {
  background: var(--app-surface-muted) !important;
}

.datepicker table tr td.active,
.datepicker table tr td.active:hover,
.datepicker table tr td span.active,
.datepicker table tr td span.active:hover,
.datepicker table tr td.selected,
.datepicker table tr td.selected:hover {
  color: #fff !important;
  background: var(--app-accent) !important;
}

.datepicker table tr td.range,
.datepicker table tr td.range:hover,
.datepicker table tr td.range.highlighted,
.datepicker table tr td.today,
.datepicker table tr td.today:hover {
  color: var(--app-text) !important;
  background: var(--app-accent-soft) !important;
}

.datepicker table tr td.disabled,
.datepicker table tr td.disabled:hover,
.datepicker table tr td.old,
.datepicker table tr td.new {
  color: var(--app-text-soft) !important;
  opacity: 0.5;
}

.datepicker .datepicker-switch,
.datepicker .next,
.datepicker .prev {
  color: var(--app-text) !important;
}

.swal2-title,
.swal2-html-container,
.swal2-close {
  color: var(--app-text) !important;
}

.swal2-html-container .app-mini-calendar,
.swal2-html-container .app-mini-calendar th,
.swal2-html-container .app-mini-calendar td {
  color: var(--app-text) !important;
  background-color: transparent !important;
  border-color: transparent !important;
}

.swal2-html-container .app-mini-calendar td:not(.app-mini-calendar-day-holiday):not(.app-mini-calendar-day-recess):not(:empty) {
  color: var(--app-text) !important;
}

.alert-info {
  color: var(--app-info-text);
  background-color: var(--app-info-bg);
  border-color: var(--app-info-border);
}

.app-surface-card {
  color: var(--app-text) !important;
  background-color: var(--app-surface) !important;
  border-color: var(--app-border) !important;
}

.app-surface-muted {
  color: var(--app-text) !important;
  background-color: var(--app-surface-muted) !important;
  border-color: var(--app-border) !important;
}

.app-table-head {
  color: var(--app-text) !important;
  background-color: var(--app-surface-muted) !important;
  border-color: var(--app-border) !important;
}

.app-btn-neutral {
  color: var(--app-neutral-text) !important;
  background-color: var(--app-neutral-bg) !important;
  border-color: var(--app-neutral-border) !important;
}

.app-btn-neutral:hover,
.app-btn-neutral:focus {
  color: var(--app-neutral-text) !important;
  background-color: var(--app-neutral-bg-hover) !important;
  border-color: var(--app-neutral-border) !important;
}

.app-text-default {
  color: var(--app-text) !important;
}

.app-text-muted-soft {
  color: var(--app-text-muted) !important;
}

.theme-toggle-button {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.5rem 0.8rem;
  border: 1px solid var(--app-border);
  background-color: var(--app-surface-muted);
  color: inherit;
  border-radius: 999px;
}

.theme-toggle-button:hover {
  background-color: var(--app-surface);
}

.theme-toggle-button:focus {
  outline: 2px solid var(--app-accent);
  outline-offset: 2px;
  border-radius: 999px;
}

.app-header-shortcuts {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.app-header-shortcut-button {
  text-decoration: none;
  white-space: nowrap;
}

.theme-toggle-label {
  font-size: 0.95rem;
  font-weight: 600;
}

@media (max-width: 768px) {
  .theme-toggle-label {
    display: none;
  }
}
