/*
 * NetKonfig Theme Global UI Cleanup - NK137-THEME1
 * Purpose: strengthen Light/Dark/System visual consistency without changing module layout.
 * Scope: global tokens and conservative Bootstrap/component overrides only.
 */
:root,
[data-bs-theme="light"] {
  color-scheme: light;
  --sidebar-w: 260px;
  --nk-radius: 1rem;
  --nk-radius-sm: .75rem;
  --nk-bg: #f3f5f9;
  --nk-card: #ffffff;
  --nk-card-2: #fbfdff;
  --nk-ink: #1f2937;
  --nk-ink-strong: #0f172a;
  --nk-muted: #64748b;
  --nk-border-soft: rgba(15,23,42,.08);
  --nk-border-medium: rgba(15,23,42,.14);
  --nk-shadow: 0 .35rem 1.1rem rgba(15,23,42,.055);
  --nk-shadow-soft: 0 .125rem .45rem rgba(15,23,42,.045);
  --nk-surface-soft: #f8fafc;
  --nk-surface-hover: rgba(13,110,253,.065);
  --nk-table-head: #f8fafc;
  --nk-input-bg: #ffffff;
  --nk-input-border: #dee2e6;
  --nk-input-disabled: #e9ecef;
  --nk-blue: #4e73df;
  --nk-red: #e74a3b;
  --nk-green: #1cc88a;
  --nk-yellow: #f6c23e;
  --nk-cyan: #36b9cc;
  --nk-link: #0d6efd;
  --nk-link-hover: #0a58ca;
  --nk-focus-ring: rgba(13,110,253,.25);
}

[data-bs-theme="dark"] {
  color-scheme: dark;
  --bs-body-bg: #0f172a;
  --bs-body-color: #e5e7eb;
  --bs-emphasis-color: #f8fafc;
  --bs-secondary-color: #94a3b8;
  --bs-tertiary-color: #64748b;
  --bs-border-color: rgba(148,163,184,.24);
  --bs-border-color-translucent: rgba(148,163,184,.22);
  --bs-tertiary-bg: #111827;
  --bs-secondary-bg: #1e293b;
  --bs-link-color: #93c5fd;
  --bs-link-hover-color: #bfdbfe;
  --nk-bg: #0f172a;
  --nk-card: #111827;
  --nk-card-2: #0b1220;
  --nk-ink: #e5e7eb;
  --nk-ink-strong: #f8fafc;
  --nk-muted: #94a3b8;
  --nk-border-soft: rgba(148,163,184,.22);
  --nk-border-medium: rgba(148,163,184,.34);
  --nk-shadow: 0 .45rem 1.25rem rgba(0,0,0,.30);
  --nk-shadow-soft: 0 .15rem .55rem rgba(0,0,0,.24);
  --nk-surface-soft: #0b1220;
  --nk-surface-hover: rgba(78,115,223,.14);
  --nk-table-head: #0b1220;
  --nk-input-bg: #0b1220;
  --nk-input-border: rgba(148,163,184,.34);
  --nk-input-disabled: #111827;
  --nk-link: #93c5fd;
  --nk-link-hover: #bfdbfe;
  --nk-focus-ring: rgba(147,197,253,.22);
}

html[data-bs-theme] body {
  background: var(--nk-bg);
  color: var(--nk-ink);
}

html[data-bs-theme] a:not(.btn):not(.dropdown-item):not(.list-group-item):not(.page-link):not(.nav-link) {
  color: var(--nk-link);
}
html[data-bs-theme] a:not(.btn):not(.dropdown-item):not(.list-group-item):not(.page-link):not(.nav-link):hover {
  color: var(--nk-link-hover);
}

.nk-public-ui-controls .btn,
.nk-theme-switch .dropdown-item,
.nk-language-switch .btn {
  font-weight: 650;
}
.nk-language-switch .btn.active,
.nk-theme-switch .dropdown-item.active {
  pointer-events: none;
}

/* Shared surface cleanup */
[data-bs-theme="dark"] .bg-white,
[data-bs-theme="dark"] .navbar.bg-white,
[data-bs-theme="dark"] .sidebar-desktop.bg-white,
[data-bs-theme="dark"] .offcanvas,
[data-bs-theme="dark"] .dropdown-menu,
[data-bs-theme="dark"] .modal-content,
[data-bs-theme="dark"] .popover,
[data-bs-theme="dark"] .toast,
[data-bs-theme="dark"] .card,
[data-bs-theme="dark"] .nk-card,
[data-bs-theme="dark"] .nk-meta-card,
[data-bs-theme="dark"] .nk-service-card,
[data-bs-theme="dark"] .nk-info-tile,
[data-bs-theme="dark"] .nk-mini-stat,
[data-bs-theme="dark"] .nk-public-note,
[data-bs-theme="dark"] .nk-graph-frame,
[data-bs-theme="dark"] .nk-chart-panel,
[data-bs-theme="dark"] .nk-connection-banner,
[data-bs-theme="dark"] .table-responsive.bg-white,
[data-bs-theme="dark"] .tab-content.bg-white {
  background-color: var(--nk-card) !important;
  color: var(--nk-ink);
  border-color: var(--nk-border-soft) !important;
}

[data-bs-theme="dark"] .bg-light,
[data-bs-theme="dark"] .bg-body-tertiary,
[data-bs-theme="dark"] .list-group,
[data-bs-theme="dark"] .accordion-item,
[data-bs-theme="dark"] .accordion-button,
[data-bs-theme="dark"] .input-group-text {
  background-color: var(--nk-card-2) !important;
  color: var(--nk-ink);
  border-color: var(--nk-border-soft) !important;
}

[data-bs-theme="dark"] .card-header,
[data-bs-theme="dark"] .card-footer,
[data-bs-theme="dark"] .modal-header,
[data-bs-theme="dark"] .modal-footer,
[data-bs-theme="dark"] .table-light,
[data-bs-theme="dark"] .table-light > * > *,
[data-bs-theme="dark"] .nk-backoffice .card-header,
[data-bs-theme="dark"] .nk-backoffice .table thead.table-light th,
[data-bs-theme="dark"] .nk-backoffice .table .table-light th {
  background-color: var(--nk-table-head) !important;
  color: var(--nk-ink) !important;
  border-color: var(--nk-border-soft) !important;
}

[data-bs-theme="dark"] .border,
[data-bs-theme="dark"] .border-bottom,
[data-bs-theme="dark"] .border-top,
[data-bs-theme="dark"] .border-start,
[data-bs-theme="dark"] .border-end {
  border-color: var(--nk-border-soft) !important;
}

[data-bs-theme="dark"] hr {
  border-color: var(--nk-border-soft);
  opacity: 1;
}

[data-bs-theme="dark"] .text-muted,
[data-bs-theme="dark"] .nk-muted,
[data-bs-theme="dark"] .nk-backoffice .text-muted {
  color: var(--nk-muted) !important;
}

[data-bs-theme="dark"] .brand-badge,
[data-bs-theme="dark"] .navbar-brand,
[data-bs-theme="dark"] .nk-mini-stat span,
[data-bs-theme="dark"] .nk-info-tile .fw-semibold,
[data-bs-theme="dark"] .fw-semibold.text-dark,
[data-bs-theme="dark"] .fw-bold.text-dark,
[data-bs-theme="dark"] .small.text-dark,
[data-bs-theme="dark"] span.text-dark:not(.badge),
[data-bs-theme="dark"] div.text-dark:not(.badge) {
  color: var(--nk-ink-strong) !important;
}

/* Bootstrap badges and buttons commonly used as neutral chips */
[data-bs-theme="dark"] .badge.text-bg-light,
[data-bs-theme="dark"] .badge.bg-light,
[data-bs-theme="dark"] .badge.text-bg-light.text-dark,
[data-bs-theme="dark"] .badge.bg-light.text-dark {
  background-color: #1e293b !important;
  color: #e5e7eb !important;
  border-color: var(--nk-border-soft) !important;
}

[data-bs-theme="dark"] .btn-light,
[data-bs-theme="dark"] .btn-outline-light {
  --bs-btn-color: #e5e7eb;
  --bs-btn-bg: #1e293b;
  --bs-btn-border-color: rgba(148,163,184,.34);
  --bs-btn-hover-color: #ffffff;
  --bs-btn-hover-bg: #334155;
  --bs-btn-hover-border-color: rgba(148,163,184,.52);
}

[data-bs-theme="dark"] .btn-outline-secondary {
  --bs-btn-color: #cbd5e1;
  --bs-btn-border-color: rgba(148,163,184,.42);
  --bs-btn-hover-bg: rgba(148,163,184,.16);
  --bs-btn-hover-border-color: rgba(148,163,184,.58);
  --bs-btn-hover-color: #fff;
  --bs-btn-active-bg: rgba(78,115,223,.26);
  --bs-btn-active-border-color: rgba(147,197,253,.62);
  --bs-btn-active-color: #fff;
  --bs-btn-disabled-color: #64748b;
  --bs-btn-disabled-border-color: rgba(100,116,139,.35);
}

/* Tables */
[data-bs-theme="dark"] .table {
  --bs-table-bg: transparent;
  --bs-table-color: var(--nk-ink);
  --bs-table-border-color: var(--nk-border-soft);
  --bs-table-striped-bg: rgba(148,163,184,.045);
  --bs-table-striped-color: var(--nk-ink);
  --bs-table-hover-bg: rgba(147,197,253,.075);
  --bs-table-hover-color: var(--nk-ink-strong);
  --bs-table-active-bg: rgba(147,197,253,.11);
  --bs-table-active-color: var(--nk-ink-strong);
  color: var(--nk-ink);
}
[data-bs-theme="dark"] .table > :not(caption) > * > * {
  border-color: var(--nk-border-soft);
}
[data-bs-theme="dark"] tr.table-light,
[data-bs-theme="dark"] .table .table-light {
  --bs-table-bg: var(--nk-table-head);
  --bs-table-color: var(--nk-ink);
  --bs-table-border-color: var(--nk-border-soft);
}

/* Forms */
[data-bs-theme="dark"] .form-control,
[data-bs-theme="dark"] .form-select,
[data-bs-theme="dark"] textarea.form-control {
  background-color: var(--nk-input-bg);
  border-color: var(--nk-input-border);
  color: var(--nk-ink);
}
[data-bs-theme="dark"] .form-control:focus,
[data-bs-theme="dark"] .form-select:focus,
[data-bs-theme="dark"] textarea.form-control:focus {
  background-color: var(--nk-input-bg);
  border-color: rgba(147,197,253,.66);
  color: var(--nk-ink-strong);
  box-shadow: 0 0 0 .25rem var(--nk-focus-ring);
}
[data-bs-theme="dark"] .form-control::placeholder,
[data-bs-theme="dark"] textarea.form-control::placeholder {
  color: #64748b;
}
[data-bs-theme="dark"] .form-control:disabled,
[data-bs-theme="dark"] .form-select:disabled,
[data-bs-theme="dark"] textarea.form-control:disabled,
[data-bs-theme="dark"] input[readonly],
[data-bs-theme="dark"] textarea[readonly] {
  background-color: var(--nk-input-disabled);
  color: var(--nk-muted);
  opacity: 1;
}
[data-bs-theme="dark"] .form-text {
  color: var(--nk-muted);
}

/* Menus, sidebars, navigation */
[data-bs-theme="dark"] .dropdown-menu {
  --bs-dropdown-bg: var(--nk-card);
  --bs-dropdown-color: var(--nk-ink);
  --bs-dropdown-border-color: var(--nk-border-soft);
  --bs-dropdown-link-color: var(--nk-ink);
  --bs-dropdown-link-hover-color: var(--nk-ink-strong);
  --bs-dropdown-link-hover-bg: var(--nk-surface-hover);
  --bs-dropdown-link-active-bg: rgba(78,115,223,.34);
  --bs-dropdown-link-active-color: #ffffff;
  box-shadow: var(--nk-shadow-soft);
}
[data-bs-theme="dark"] .list-group-item,
[data-bs-theme="dark"] .sidebar-desktop .list-group-item,
[data-bs-theme="dark"] .offcanvas .list-group-item {
  background-color: transparent;
  color: var(--nk-ink);
  border-color: var(--nk-border-soft);
}
[data-bs-theme="dark"] .sidebar-desktop .list-group-item:hover,
[data-bs-theme="dark"] .offcanvas .list-group-item:hover,
[data-bs-theme="dark"] .list-group-item-action:hover,
[data-bs-theme="dark"] .nav-tabs .nav-link:hover,
[data-bs-theme="dark"] .nav-pills .nav-link:not(.active):hover {
  background: var(--nk-surface-hover);
  color: #bfdbfe;
}
[data-bs-theme="dark"] .nav-tabs {
  border-bottom-color: var(--nk-border-soft);
}
[data-bs-theme="dark"] .nav-tabs .nav-link,
[data-bs-theme="dark"] .nav-pills .nav-link {
  color: var(--nk-muted);
}
[data-bs-theme="dark"] .nav-tabs .nav-link.active,
[data-bs-theme="dark"] .nav-tabs .nav-item.show .nav-link {
  background-color: var(--nk-card);
  border-color: var(--nk-border-soft) var(--nk-border-soft) var(--nk-card);
  color: var(--nk-ink-strong);
}
[data-bs-theme="dark"] .breadcrumb-item,
[data-bs-theme="dark"] .breadcrumb-item.active {
  color: var(--nk-muted);
}
[data-bs-theme="dark"] .page-link {
  background-color: var(--nk-card);
  border-color: var(--nk-border-soft);
  color: var(--nk-link);
}
[data-bs-theme="dark"] .page-link:hover {
  background-color: var(--nk-surface-hover);
  border-color: var(--nk-border-medium);
  color: var(--nk-link-hover);
}
[data-bs-theme="dark"] .active > .page-link,
[data-bs-theme="dark"] .page-link.active {
  background-color: #2563eb;
  border-color: #2563eb;
  color: #fff;
}

/* Public surfaces */
[data-bs-theme="dark"] .nk-public-hero .nk-hero-card {
  background:
    radial-gradient(circle at 92% 8%, rgba(78,115,223,.18), transparent 34%),
    linear-gradient(135deg, #111827 0%, #0f172a 50%, #101827 100%) !important;
  box-shadow: var(--nk-shadow);
}
[data-bs-theme="dark"] .nk-eyebrow,
[data-bs-theme="dark"] .nk-section-label {
  color: #93c5fd;
}
[data-bs-theme="dark"] .nk-service-icon,
[data-bs-theme="dark"] .nk-help-icon {
  background: rgba(78,115,223,.16);
  color: #dbeafe;
}
[data-bs-theme="dark"] .nk-pill,
[data-bs-theme="dark"] .nk-refresh-chip {
  background: rgba(15,23,42,.72);
  border-color: var(--nk-border-soft);
  color: var(--nk-ink);
}
[data-bs-theme="dark"] .nk-empty-state,
[data-bs-theme="dark"] .nk-img-error {
  background: var(--nk-surface-soft);
  color: var(--nk-muted);
  border-color: rgba(148,163,184,.28);
}
[data-bs-theme="dark"] .nk-chart-panel,
[data-bs-theme="dark"] .nk-graph-frame,
[data-bs-theme="dark"] .nk-info-tile,
[data-bs-theme="dark"] .nk-mini-stat {
  background: var(--nk-card) !important;
}
[data-bs-theme="dark"] .nk-progress,
[data-bs-theme="dark"] .progress {
  background-color: rgba(148,163,184,.18);
}
[data-bs-theme="dark"] .nk-connection-banner {
  color: var(--nk-ink);
  box-shadow: var(--nk-shadow-soft);
}
[data-bs-theme="dark"] .nk-help-card:hover {
  box-shadow: var(--nk-shadow) !important;
}

/* Images/charts keep white canvas for readability while the frame follows theme. */
[data-bs-theme="dark"] .nk-cacti-img,
[data-bs-theme="dark"] canvas,
[data-bs-theme="dark"] .chartjs-render-monitor {
  background: #fff;
  border-radius: .75rem;
}
[data-bs-theme="dark"] svg text {
  fill: var(--nk-muted);
}
[data-bs-theme="dark"] svg line,
[data-bs-theme="dark"] svg path[stroke="#e9ecef"] {
  stroke: rgba(148,163,184,.24);
}

/* Inline modal/loading panels used by several modules. */
[data-bs-theme="dark"] [style*="background:#fff"],
[data-bs-theme="dark"] [style*="background: #fff"],
[data-bs-theme="dark"] [style*="background-color:#fff"],
[data-bs-theme="dark"] [style*="background-color: #fff"] {
  background: var(--nk-card) !important;
  color: var(--nk-ink) !important;
  border-color: var(--nk-border-soft) !important;
}

/* Keep print/voucher/report pages predictable when browser is in dark mode. */
@media print {
  html[data-bs-theme] body {
    background: #fff !important;
    color: #111827 !important;
  }
}

@media (max-width: 575.98px) {
  .nk-public-ui-controls {
    gap: .35rem !important;
  }
  .nk-language-switch .btn {
    padding-left: .45rem;
    padding-right: .45rem;
  }
  .nk-theme-switch .dropdown-toggle {
    max-width: 9.5rem;
    overflow: hidden;
    text-overflow: ellipsis;
  }
}

/* NK137-THEME2: Backoffice theme switcher */
.nk-topbar .nk-theme-switch-app .dropdown-toggle {
  white-space: nowrap;
  display: inline-flex;
  align-items: center;
  gap: .35rem;
}
.nk-topbar .nk-theme-switch-app .dropdown-item {
  display: flex;
  align-items: center;
  gap: .15rem;
}
[data-bs-theme="dark"] .nk-topbar .nk-theme-switch-app .dropdown-item.active {
  background: rgba(59,130,246,.22);
  color: #dbeafe;
}
@media (max-width: 575.98px) {
  .nk-topbar .nk-theme-switch-app .dropdown-toggle {
    max-width: 9rem;
  }
  .nk-topbar .nk-theme-switch-app [data-nk-theme-current] {
    display: inline-block;
    max-width: 4.2rem;
    overflow: hidden;
    text-overflow: ellipsis;
    vertical-align: bottom;
  }
}

