/* ============================================================================
 * Koktl Business Suite Corporate Dark Theme
 *
 * Loaded on every page. Every selector is scoped under
 * `[data-bs-theme="dark"]` (or a child of `<html data-bs-theme="dark">`)
 * so this file is purely additive — toggling back to light reverts
 * everything by simply removing the attribute.
 *
 * Palette is a muted slate-blue, in keeping with the existing brand blue
 * used by the login page hero. No pure black, no neon.
 * ============================================================================ */

:root[data-bs-theme="dark"] {
	/* Koktl Suite-specific tokens (referenced by component overrides below) */
	--ks-bg:           #0f172a;  /* slate-900 — page background           */
	--ks-surface:      #1a2436;  /* cards, panels, navbar                 */
	--ks-surface-2:    #212d42;  /* elevated rows / hover surface         */
	--ks-surface-3:    #283452;  /* tertiary surface (table head)         */
	--ks-border:       #2c3a52;  /* soft separators                       */
	--ks-border-strong:#3a4a66;  /* stronger separators / focus rings     */
	--ks-text:         #e2e8f0;
	--ks-text-strong:  #f1f5f9;
	--ks-text-muted:   #94a3b8;
	--ks-text-subtle:  #64748b;
	--ks-accent:       #3b82f6;
	--ks-accent-soft:  #1e3a8a;
	--ks-success:      #22c55e;
	--ks-success-soft: #14532d;
	--ks-danger:       #f87171;
	--ks-danger-soft:  #7f1d1d;
	--ks-warning:      #fbbf24;
	--ks-warning-soft: #78350f;
	--ks-info:         #38bdf8;
	--ks-info-soft:    #075985;

	/* Bootstrap 5.3 token overrides — these cascade through every BS component */
	--bs-body-bg:           var(--ks-bg);
	--bs-body-color:        var(--ks-text);
	--bs-body-color-rgb:    226, 232, 240;
	--bs-body-bg-rgb:       15, 23, 42;
	--bs-emphasis-color:    var(--ks-text-strong);
	--bs-secondary-color:   var(--ks-text-muted);
	--bs-tertiary-color:    var(--ks-text-subtle);
	--bs-secondary-bg:      var(--ks-surface);
	--bs-tertiary-bg:       var(--ks-surface-2);
	--bs-border-color:      var(--ks-border);
	--bs-border-color-translucent: rgba(255, 255, 255, 0.08);
	--bs-link-color:        #60a5fa;
	--bs-link-hover-color:  #93c5fd;
	--bs-link-color-rgb:    96, 165, 250;
	--bs-heading-color:     var(--ks-text-strong);
	--bs-code-color:        #f9a8d4;
}

/* Page background applies to <body> on every page that includes the header */
html[data-bs-theme="dark"],
html[data-bs-theme="dark"] body {
	background-color: var(--ks-bg);
	color: var(--ks-text);
	color-scheme: dark;
}

/* ============================================================
 * 1. Navbar — re-skin the BS5 `.navbar-light .bg-light` from header.php
 * ============================================================ */
[data-bs-theme="dark"] .navbar.navbar-light.bg-light {
	background-color: var(--ks-surface) !important;
	border-bottom-color: var(--ks-border) !important;
}
[data-bs-theme="dark"] .navbar.navbar-light .navbar-brand,
[data-bs-theme="dark"] .navbar.navbar-light .nav-link {
	color: var(--ks-text);
}
[data-bs-theme="dark"] .navbar.navbar-light .nav-link:hover,
[data-bs-theme="dark"] .navbar.navbar-light .nav-link:focus {
	color: var(--ks-text-strong);
}
[data-bs-theme="dark"] .navbar.navbar-light .navbar-nav .nav-link.active,
[data-bs-theme="dark"] .navbar.navbar-light .navbar-nav .nav-item.active > .nav-link {
	color: #fff;
}
[data-bs-theme="dark"] .navbar.navbar-light .navbar-toggler {
	color: var(--ks-text);
	border-color: var(--ks-border-strong);
}
[data-bs-theme="dark"] .navbar.navbar-light .navbar-toggler-icon {
	/* recolour the toggler icon to a light glyph */
	background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28226, 232, 240, 0.85%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}

[data-bs-theme="dark"] nav.navbar:hover {
	box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.45), 0 6px 20px 0 rgba(0, 0, 0, 0.35);
}

/* role chip in navbar (header.php inline <style>) */
[data-bs-theme="dark"] .role-chip {
	background: #2a374e;
	color: var(--ks-text-muted);
}
[data-bs-theme="dark"] .role-chip.role-admin   { background: #4a1f1f; color: #fca5a5; }
[data-bs-theme="dark"] .role-chip.role-manager { background: #1f2f4d; color: #93c5fd; }
[data-bs-theme="dark"] .role-chip.role-cashier { background: #14352a; color: #86efac; }

/* ============================================================
 * 2. Dropdown menus (BS5 + the legacy <li><a> shim in bs5-compat.css)
 * ============================================================ */
[data-bs-theme="dark"] .dropdown-menu {
	background-color: var(--ks-surface-2);
	border-color: var(--ks-border);
	color: var(--ks-text);
	--bs-dropdown-link-color: var(--ks-text);
	--bs-dropdown-link-hover-color: var(--ks-text-strong);
	--bs-dropdown-link-hover-bg: var(--ks-surface-3);
	--bs-dropdown-link-active-bg: var(--ks-accent);
	--bs-dropdown-divider-bg: var(--ks-border);
	--bs-dropdown-header-color: var(--ks-text-muted);
}
[data-bs-theme="dark"] .dropdown-menu > li > a:not(.dropdown-item) {
	color: var(--ks-text);
}
[data-bs-theme="dark"] .dropdown-menu > li > a:not(.dropdown-item):hover,
[data-bs-theme="dark"] .dropdown-menu > li > a:not(.dropdown-item):focus {
	color: var(--ks-text-strong);
	background-color: var(--ks-surface-3);
}

/* ============================================================
 * 3. Cards / panels / generic surfaces
 * ============================================================ */
[data-bs-theme="dark"] .card {
	background-color: var(--ks-surface);
	border-color: var(--ks-border);
	color: var(--ks-text);
}
[data-bs-theme="dark"] .card-header,
[data-bs-theme="dark"] .card-footer {
	background-color: var(--ks-surface-2);
	border-color: var(--ks-border);
	color: var(--ks-text-strong);
}

/* BS3 panel shim from bs5-compat.css */
[data-bs-theme="dark"] .panel {
	background-color: var(--ks-surface);
	border-color: var(--ks-border);
	color: var(--ks-text);
}
[data-bs-theme="dark"] .panel > .panel-heading,
[data-bs-theme="dark"] .panel > .panel-footer {
	background-color: var(--ks-surface-2);
	border-color: var(--ks-border);
	color: var(--ks-text-strong);
}

/* dashboard-card in custom.css */
[data-bs-theme="dark"] div.dashboard-card {
	background-color: var(--ks-surface);
	color: var(--ks-text);
	box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.45), 0 6px 20px 0 rgba(0, 0, 0, 0.35);
}

/* breadcrumb (bs5-compat) */
[data-bs-theme="dark"] .breadcrumb {
	background-color: var(--ks-surface);
	color: var(--ks-text-muted);
	border: 1px solid var(--ks-border);
}
[data-bs-theme="dark"] .breadcrumb a { color: #60a5fa; }
[data-bs-theme="dark"] .breadcrumb-item.active,
[data-bs-theme="dark"] .breadcrumb > li.active { color: var(--ks-text-muted); }
[data-bs-theme="dark"] .breadcrumb > li + li::before { color: var(--ks-text-subtle); }

/* thumbnail (bs5-compat) */
[data-bs-theme="dark"] .thumbnail {
	background-color: var(--ks-surface);
	border-color: var(--ks-border);
}

/* ============================================================
 * 4. Tables (incl. DataTables)
 * ============================================================ */
[data-bs-theme="dark"] .table {
	--bs-table-bg: transparent;
	--bs-table-color: var(--ks-text);
	--bs-table-border-color: var(--ks-border);
	--bs-table-striped-bg: rgba(255, 255, 255, 0.03);
	--bs-table-striped-color: var(--ks-text);
	--bs-table-hover-bg: rgba(255, 255, 255, 0.06);
	--bs-table-hover-color: var(--ks-text-strong);
	color: var(--ks-text);
	border-color: var(--ks-border);
}
[data-bs-theme="dark"] .table > thead {
	background-color: var(--ks-surface-2);
	color: var(--ks-text-muted);
}
[data-bs-theme="dark"] .table > thead > tr > th {
	border-bottom-color: var(--ks-border);
	color: var(--ks-text-muted);
	background-color: var(--ks-surface-2);
}
[data-bs-theme="dark"] .table > tbody > tr > td {
	border-color: var(--ks-border);
}

/* DataTables wrapper / pagination */
[data-bs-theme="dark"] .dataTables_wrapper,
[data-bs-theme="dark"] .dataTables_wrapper .dataTables_length,
[data-bs-theme="dark"] .dataTables_wrapper .dataTables_filter,
[data-bs-theme="dark"] .dataTables_wrapper .dataTables_info,
[data-bs-theme="dark"] .dataTables_wrapper .dataTables_processing,
[data-bs-theme="dark"] .dataTables_wrapper .dataTables_paginate {
	color: var(--ks-text-muted);
}
[data-bs-theme="dark"] .dataTables_wrapper .dataTables_filter input,
[data-bs-theme="dark"] .dataTables_wrapper .dataTables_length select {
	background-color: var(--ks-surface-2);
	color: var(--ks-text);
	border: 1px solid var(--ks-border-strong);
}
[data-bs-theme="dark"] .dataTables_wrapper .dataTables_paginate .paginate_button {
	color: var(--ks-text-muted) !important;
}
[data-bs-theme="dark"] .dataTables_wrapper .dataTables_paginate .paginate_button.current,
[data-bs-theme="dark"] .dataTables_wrapper .dataTables_paginate .paginate_button.current:hover {
	background: var(--ks-accent) !important;
	color: #fff !important;
	border-color: var(--ks-accent) !important;
}
[data-bs-theme="dark"] .dataTables_wrapper .dataTables_paginate .paginate_button:hover {
	background: var(--ks-surface-3) !important;
	color: var(--ks-text-strong) !important;
	border-color: var(--ks-border-strong) !important;
}
[data-bs-theme="dark"] .page-link {
	background-color: var(--ks-surface-2);
	border-color: var(--ks-border);
	color: var(--ks-text);
}
[data-bs-theme="dark"] .page-link:hover {
	background-color: var(--ks-surface-3);
	color: var(--ks-text-strong);
}
[data-bs-theme="dark"] .page-item.active .page-link {
	background-color: var(--ks-accent);
	border-color: var(--ks-accent);
	color: #fff;
}
[data-bs-theme="dark"] .page-item.disabled .page-link {
	background-color: var(--ks-surface);
	color: var(--ks-text-subtle);
}

/* DataTables responsive expand control */
[data-bs-theme="dark"] table.dataTable.dtr-inline.collapsed > tbody > tr > td.dtr-control::before,
[data-bs-theme="dark"] table.dataTable.dtr-inline.collapsed > tbody > tr > th.dtr-control::before {
	background-color: var(--ks-accent);
	color: #fff;
	box-shadow: none;
}
[data-bs-theme="dark"] table.dataTable > tbody > tr.child ul.dtr-details > li {
	border-bottom-color: var(--ks-border);
}

/* ============================================================
 * 5. Forms / inputs / selects / textareas / checkboxes
 * ============================================================ */
[data-bs-theme="dark"] .form-control,
[data-bs-theme="dark"] .form-select,
[data-bs-theme="dark"] .form-control:focus,
[data-bs-theme="dark"] .form-select:focus {
	background-color: var(--ks-surface-2);
	color: var(--ks-text);
	border-color: var(--ks-border-strong);
}
[data-bs-theme="dark"] .form-control::placeholder { color: var(--ks-text-subtle); }
[data-bs-theme="dark"] .form-control:focus,
[data-bs-theme="dark"] .form-select:focus {
	border-color: var(--ks-accent);
	box-shadow: 0 0 0 0.2rem rgba(59, 130, 246, 0.25);
}
[data-bs-theme="dark"] .form-control:disabled,
[data-bs-theme="dark"] .form-select:disabled,
[data-bs-theme="dark"] .form-control[readonly] {
	background-color: #19223a;
	color: var(--ks-text-muted);
}
[data-bs-theme="dark"] .form-label,
[data-bs-theme="dark"] .col-form-label,
[data-bs-theme="dark"] .control-label {
	color: var(--ks-text);
}
[data-bs-theme="dark"] .form-check-input {
	background-color: var(--ks-surface-2);
	border-color: var(--ks-border-strong);
}
[data-bs-theme="dark"] .form-check-input:checked {
	background-color: var(--ks-accent);
	border-color: var(--ks-accent);
}
[data-bs-theme="dark"] .form-text,
[data-bs-theme="dark"] .help-block {
	color: var(--ks-text-muted);
}
[data-bs-theme="dark"] fieldset > legend {
	color: var(--ks-text-strong);
	border-bottom: 1px solid var(--ks-border);
	padding-bottom: 6px;
}

/* input-group + BS3 input-group-addon shim */
[data-bs-theme="dark"] .input-group-text,
[data-bs-theme="dark"] .input-group-addon {
	background-color: var(--ks-surface-3);
	color: var(--ks-text);
	border-color: var(--ks-border-strong);
}

/* ============================================================
 * 6. Buttons — keep brand colours (primary/success/etc.) but darken
 * the neutrals (.btn-light, .btn-default, .btn-secondary outlined)
 * ============================================================ */
[data-bs-theme="dark"] .btn-light {
	background-color: var(--ks-surface-2);
	border-color: var(--ks-border-strong);
	color: var(--ks-text);
}
[data-bs-theme="dark"] .btn-light:hover,
[data-bs-theme="dark"] .btn-light:focus {
	background-color: var(--ks-surface-3);
	border-color: var(--ks-border-strong);
	color: var(--ks-text-strong);
}

/* BS3 btn-default shim */
[data-bs-theme="dark"] .btn-default {
	background-color: var(--ks-surface-2);
	border-color: var(--ks-border-strong);
	color: var(--ks-text);
}
[data-bs-theme="dark"] .btn-default:hover,
[data-bs-theme="dark"] .btn-default:focus {
	background-color: var(--ks-surface-3);
	border-color: var(--ks-border-strong);
	color: var(--ks-text-strong);
}

[data-bs-theme="dark"] .btn-outline-secondary {
	color: var(--ks-text);
	border-color: var(--ks-border-strong);
}
[data-bs-theme="dark"] .btn-outline-secondary:hover {
	background-color: var(--ks-surface-3);
	color: var(--ks-text-strong);
	border-color: var(--ks-border-strong);
}
[data-bs-theme="dark"] .btn-close {
	filter: invert(1) grayscale(100%) brightness(200%);
}

/* ============================================================
 * 7. Modals
 * ============================================================ */
[data-bs-theme="dark"] .modal-content {
	background-color: var(--ks-surface);
	border-color: var(--ks-border);
	color: var(--ks-text);
}
[data-bs-theme="dark"] .modal-header,
[data-bs-theme="dark"] .modal-footer {
	border-color: var(--ks-border);
}

/* image lightbox: keep frame light so the photo borders pop on dark */
[data-bs-theme="dark"] #imageLightboxImg {
	background: #fff;
	border-color: #fff;
}

/* ============================================================
 * 8. Alerts (BS5 contextual + BS3 .label shim)
 * ============================================================ */
[data-bs-theme="dark"] .alert-success {
	background-color: rgba(34, 197, 94, 0.10);
	color: #86efac;
	border-color: rgba(34, 197, 94, 0.35);
}
[data-bs-theme="dark"] .alert-danger {
	background-color: rgba(248, 113, 113, 0.10);
	color: #fca5a5;
	border-color: rgba(248, 113, 113, 0.35);
}
[data-bs-theme="dark"] .alert-warning {
	background-color: rgba(251, 191, 36, 0.10);
	color: #fde68a;
	border-color: rgba(251, 191, 36, 0.35);
}
[data-bs-theme="dark"] .alert-info {
	background-color: rgba(56, 189, 248, 0.10);
	color: #7dd3fc;
	border-color: rgba(56, 189, 248, 0.35);
}

/* BS3 .label shim used in dashboard recent orders + report center */
[data-bs-theme="dark"] .label-info { color: #fff; background-color: var(--ks-info); }
[data-bs-theme="dark"] .label-warning { color: #1f2933; background-color: var(--ks-warning); }
[data-bs-theme="dark"] .label-success { background-color: var(--ks-success); }
[data-bs-theme="dark"] .label-danger { background-color: var(--ks-danger); color: #1f2933; }
[data-bs-theme="dark"] .label-default { background-color: #4b5563; }

/* ============================================================
 * 9. Dashboard widgets (dashboard.php inline <style>)
 * ============================================================ */
[data-bs-theme="dark"] .dash-header {
	border-bottom-color: var(--ks-border);
}
[data-bs-theme="dark"] .dash-header h2 {
	color: var(--ks-text-strong);
}
[data-bs-theme="dark"] .dash-header .dash-sub {
	color: var(--ks-text-muted);
}
[data-bs-theme="dark"] .dash-header .dash-date {
	background: var(--ks-surface-2);
	color: var(--ks-text);
	border-color: var(--ks-border-strong);
}
[data-bs-theme="dark"] .dash-header .dash-date .fa { color: var(--ks-text-muted); }

[data-bs-theme="dark"] .kpi-card {
	background: var(--ks-surface);
	border-color: var(--ks-border);
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.4), 0 1px 3px rgba(0, 0, 0, 0.3);
}
[data-bs-theme="dark"] a.kpi-card:hover,
[data-bs-theme="dark"] a.kpi-card:focus {
	box-shadow: 0 6px 14px rgba(0, 0, 0, 0.5), 0 2px 6px rgba(0, 0, 0, 0.4);
}
[data-bs-theme="dark"] .kpi-label { color: var(--ks-text-muted); }
[data-bs-theme="dark"] .kpi-value { color: var(--ks-text-strong); }
[data-bs-theme="dark"] .kpi-sub { color: var(--ks-text-muted); }
[data-bs-theme="dark"] .value-positive { color: #4ade80; }
[data-bs-theme="dark"] .value-negative { color: #fca5a5; }
[data-bs-theme="dark"] .kpi-icon.bg-lowstock.is-empty {
	background: linear-gradient(135deg, #4b5563, #6b7280);
}

[data-bs-theme="dark"] .dash-panel {
	background: var(--ks-surface);
	border-color: var(--ks-border);
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.4);
}
[data-bs-theme="dark"] .dash-panel .dash-card-header {
	border-bottom-color: var(--ks-border);
	color: var(--ks-text-strong);
}
[data-bs-theme="dark"] .dash-panel .dash-card-header .fa { color: var(--ks-text-muted); }
[data-bs-theme="dark"] .dash-panel .dash-panel-action { color: #60a5fa; }
[data-bs-theme="dark"] .dash-panel .dash-panel-action:hover,
[data-bs-theme="dark"] .dash-panel .dash-panel-action:focus { color: #93c5fd; }
[data-bs-theme="dark"] .dash-panel table > thead > tr > th {
	color: var(--ks-text-muted);
	border-bottom-color: var(--ks-border);
}
[data-bs-theme="dark"] .text-right-amount { color: var(--ks-text-strong); }

/* ============================================================
 * 10. Report Center (custom/css/report.css)
 * ============================================================ */
[data-bs-theme="dark"] .rc-header { border-bottom-color: var(--ks-border); }
[data-bs-theme="dark"] .rc-header h2 { color: var(--ks-text-strong); }
[data-bs-theme="dark"] .rc-header .rc-sub { color: var(--ks-text-muted); }
[data-bs-theme="dark"] .rc-header .rc-range-pill {
	background: var(--ks-surface-2);
	color: var(--ks-text);
	border-color: var(--ks-border-strong);
}
[data-bs-theme="dark"] .rc-header .rc-range-pill .fa { color: var(--ks-text-muted); }

[data-bs-theme="dark"] .rc-sidebar {
	background: var(--ks-surface);
	border-color: var(--ks-border);
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.4);
}
[data-bs-theme="dark"] .rc-side-title { color: var(--ks-text-muted); }
[data-bs-theme="dark"] .rc-nav .rc-nav-link { color: var(--ks-text); }
[data-bs-theme="dark"] .rc-nav .rc-nav-link i { color: var(--ks-text-muted); }
[data-bs-theme="dark"] .rc-nav .rc-nav-link:hover {
	background: var(--ks-surface-2);
	color: var(--ks-text-strong);
}
[data-bs-theme="dark"] .rc-nav .rc-nav-link.active {
	background: rgba(59, 130, 246, 0.15);
	color: #93c5fd;
	border-left-color: var(--ks-accent);
}
[data-bs-theme="dark"] .rc-nav .rc-nav-link.active i { color: #93c5fd; }
@media (max-width: 991px) {
	[data-bs-theme="dark"] .rc-nav .rc-nav-link {
		background: var(--ks-surface-2);
	}
	[data-bs-theme="dark"] .rc-nav .rc-nav-link.active {
		background: var(--ks-accent);
		color: #fff;
	}
	[data-bs-theme="dark"] .rc-nav .rc-nav-link.active i { color: #fff; }
}

[data-bs-theme="dark"] .rc-filter-bar {
	background: var(--ks-surface);
	border-color: var(--ks-border);
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.4);
}
[data-bs-theme="dark"] .rc-chip {
	background: var(--ks-surface-2);
	color: var(--ks-text);
	border-color: var(--ks-border-strong);
}
[data-bs-theme="dark"] .rc-chip:hover {
	background: var(--ks-surface-3);
	color: var(--ks-text-strong);
	border-color: var(--ks-border-strong);
}
[data-bs-theme="dark"] .rc-chip.active {
	background: var(--ks-accent);
	color: #fff;
	border-color: var(--ks-accent);
}
[data-bs-theme="dark"] .rc-range-sep { color: var(--ks-text-muted); }
[data-bs-theme="dark"] .rc-threshold label { color: var(--ks-text); }

[data-bs-theme="dark"] .rc-kpi-card {
	background: var(--ks-surface);
	border-color: var(--ks-border);
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.4), 0 1px 3px rgba(0, 0, 0, 0.3);
}
[data-bs-theme="dark"] .rc-kpi-label { color: var(--ks-text-muted); }
[data-bs-theme="dark"] .rc-kpi-value { color: var(--ks-text-strong); }
[data-bs-theme="dark"] .rc-kpi-sub { color: var(--ks-text-muted); }
[data-bs-theme="dark"] .rc-value-positive { color: #4ade80; }
[data-bs-theme="dark"] .rc-value-negative { color: #fca5a5; }
[data-bs-theme="dark"] .rc-kpi-icon.bg-warning.is-empty {
	background: linear-gradient(135deg, #4b5563, #6b7280);
}

[data-bs-theme="dark"] .rc-panel {
	background: var(--ks-surface);
	border-color: var(--ks-border);
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.4);
}
[data-bs-theme="dark"] .rc-panel-header {
	border-bottom-color: var(--ks-border);
	color: var(--ks-text-strong);
}
[data-bs-theme="dark"] .rc-panel-header .fa { color: var(--ks-text-muted); }
[data-bs-theme="dark"] .rc-panel table > thead > tr > th {
	background: var(--ks-surface-2);
	color: var(--ks-text-muted);
	border-bottom-color: var(--ks-border);
}
[data-bs-theme="dark"] .rc-panel table > tbody > tr > td {
	color: var(--ks-text);
	border-top-color: var(--ks-border);
}
[data-bs-theme="dark"] .rc-amount { color: var(--ks-text-strong); }
[data-bs-theme="dark"] .rc-rank {
	background: rgba(59, 130, 246, 0.15);
	color: #93c5fd;
}
[data-bs-theme="dark"] .rc-rank.is-top {
	background: rgba(251, 191, 36, 0.15);
	color: #fde68a;
}

[data-bs-theme="dark"] .rc-pill.is-full   { background: rgba(34, 197, 94, 0.15);  color: #86efac; }
[data-bs-theme="dark"] .rc-pill.is-adv    { background: rgba(59, 130, 246, 0.15); color: #93c5fd; }
[data-bs-theme="dark"] .rc-pill.is-none   { background: rgba(248, 113, 113, 0.15); color: #fca5a5; }

[data-bs-theme="dark"] .rc-loading,
[data-bs-theme="dark"] .rc-empty,
[data-bs-theme="dark"] .rc-error {
	background: var(--ks-surface);
	border-color: var(--ks-border);
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.4);
	color: var(--ks-text-muted);
}
[data-bs-theme="dark"] .rc-loading .fa,
[data-bs-theme="dark"] .rc-empty .fa { color: var(--ks-text-subtle); }
[data-bs-theme="dark"] .rc-error { color: #fca5a5; }
[data-bs-theme="dark"] .rc-error .fa { color: var(--ks-danger); }

/* ============================================================
 * 11. POS (orders.php?o=add) — custom/css/custom.css
 * ============================================================ */
[data-bs-theme="dark"] .pos-catalog .pos-search-bar {
	background: var(--ks-bg);
}
[data-bs-theme="dark"] .pos-catalog .pos-search-bar .input-group-text {
	background: var(--ks-surface-2);
}
[data-bs-theme="dark"] .pos-shortcut-hint {
	color: var(--ks-text-muted);
	background: var(--ks-surface-3);
}
[data-bs-theme="dark"] .pos-chip {
	background: var(--ks-surface-2);
	border-color: var(--ks-border-strong);
	color: var(--ks-text);
}
[data-bs-theme="dark"] .pos-chip:hover {
	background: var(--ks-surface-3);
}
[data-bs-theme="dark"] .pos-chip.active {
	background: var(--ks-accent);
	color: #fff;
	border-color: var(--ks-accent);
}

[data-bs-theme="dark"] .pos-tile {
	background: var(--ks-surface);
	border-color: var(--ks-border);
}
[data-bs-theme="dark"] .pos-tile:hover {
	border-color: var(--ks-border-strong);
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.5);
}
[data-bs-theme="dark"] .pos-tile.pos-tile-tap {
	border-color: var(--ks-success);
	box-shadow: 0 0 0 3px rgba(34, 197, 94, 0.30);
}
[data-bs-theme="dark"] .pos-tile-img-wrap {
	background: var(--ks-surface-2);
}
[data-bs-theme="dark"] .pos-tile-name { color: var(--ks-text-strong); }
[data-bs-theme="dark"] .pos-tile-price { color: #60a5fa; }
[data-bs-theme="dark"] .pos-tile-stock {
	background: rgba(34, 197, 94, 0.15);
	color: #86efac;
}
[data-bs-theme="dark"] .pos-tile-stock.low {
	background: rgba(251, 191, 36, 0.15);
	color: #fde68a;
}
[data-bs-theme="dark"] .pos-tile-stock.out {
	background: rgba(248, 113, 113, 0.15);
	color: #fca5a5;
}

[data-bs-theme="dark"] .pos-section {
	background: var(--ks-surface);
	border-color: var(--ks-border);
}
[data-bs-theme="dark"] .pos-section-title {
	color: var(--ks-text-muted);
}
[data-bs-theme="dark"] .pos-cart-row {
	border-bottom-color: var(--ks-border);
}
[data-bs-theme="dark"] .pos-cart-row-img {
	background: var(--ks-surface-2);
}
[data-bs-theme="dark"] .pos-totals-row label {
	color: var(--ks-text);
}
[data-bs-theme="dark"] .pos-totals-row.pos-grand label {
	color: var(--ks-text-strong);
}
[data-bs-theme="dark"] .pos-totals-row.pos-grand input {
	color: #4ade80;
	background: var(--ks-surface-2);
	border-color: var(--ks-border-strong);
}
[data-bs-theme="dark"] .pos-checkout-footer {
	background: var(--ks-surface);
	border-top-color: var(--ks-border);
	box-shadow: 0 -3px 12px rgba(0, 0, 0, 0.4);
}
@media (min-width: 992px) {
	[data-bs-theme="dark"] .pos-checkout-footer {
		border: 1px solid var(--ks-border);
		box-shadow: none;
	}
}
[data-bs-theme="dark"] .pos-checkout-grand-label { color: var(--ks-text-muted); }
[data-bs-theme="dark"] .pos-checkout-grand-value { color: #4ade80; }

/* ============================================================
 * 12. Login screen (index.php) — redefine the page-scoped
 * CSS variables so the existing inline styles "just work".
 * The blue hero on the left keeps its corporate gradient.
 * ============================================================ */
body.login-page[data-bs-theme="dark"],
html[data-bs-theme="dark"] body.login-page {
	background: var(--ks-bg);
	--surface:       var(--ks-surface);
	--surface-muted: var(--ks-surface-2);
	--text-strong:   var(--ks-text-strong);
	--text-muted:    var(--ks-text-muted);
	--border-soft:   var(--ks-border);
}
html[data-bs-theme="dark"] .login-shell {
	background: var(--ks-surface);
	border-color: var(--ks-border);
	box-shadow: 0 10px 30px -12px rgba(0, 0, 0, 0.6);
}
html[data-bs-theme="dark"] .login-form-pane { background: var(--ks-surface); }
html[data-bs-theme="dark"] .login-form-pane__heading h2 { color: var(--ks-text-strong); }
html[data-bs-theme="dark"] .login-form-pane__heading p { color: var(--ks-text-muted); }
html[data-bs-theme="dark"] .login-field label { color: var(--ks-text-muted); }
html[data-bs-theme="dark"] .login-field .form-control {
	background: var(--ks-surface-2);
	color: var(--ks-text);
	border-color: var(--ks-border-strong);
}
html[data-bs-theme="dark"] .login-field .form-control::placeholder { color: var(--ks-text-subtle); }
html[data-bs-theme="dark"] .login-field .form-control:focus {
	background: var(--ks-surface-2);
	border-color: var(--ks-accent);
	box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.20);
}
html[data-bs-theme="dark"] .login-input-wrap i.field-icon { color: var(--ks-text-subtle); }
html[data-bs-theme="dark"] .login-field .form-control:focus + i.field-icon,
html[data-bs-theme="dark"] .login-input-wrap:focus-within i.field-icon { color: #60a5fa; }
html[data-bs-theme="dark"] .toggle-password { color: var(--ks-text-muted); }
html[data-bs-theme="dark"] .toggle-password:hover {
	color: #93c5fd;
	background: rgba(59, 130, 246, 0.10);
}
html[data-bs-theme="dark"] .login-options { color: var(--ks-text-muted); }
html[data-bs-theme="dark"] .login-options .form-check-input {
	background: var(--ks-surface-2);
	border-color: var(--ks-border-strong);
}
html[data-bs-theme="dark"] .login-options .form-check-input:checked {
	background-color: var(--ks-accent);
	border-color: var(--ks-accent);
}
html[data-bs-theme="dark"] .login-submit {
	background: var(--ks-accent);
	border-color: #1d4ed8;
}
html[data-bs-theme="dark"] .login-submit:hover { background: #2563eb; }
html[data-bs-theme="dark"] .login-submit:active { background: #1d4ed8; }
html[data-bs-theme="dark"] .login-footer-note,
html[data-bs-theme="dark"] .login-mobile-copyright { color: var(--ks-text-muted); }
html[data-bs-theme="dark"] .login-messages .alert {
	background: rgba(217, 119, 6, 0.10);
	border-color: rgba(217, 119, 6, 0.35);
	border-left-color: #d97706;
	color: #fde68a;
}

/* ============================================================
 * 13. jQuery UI datepicker
 * ============================================================ */
[data-bs-theme="dark"] .ui-datepicker {
	background: var(--ks-surface);
	color: var(--ks-text);
	border: 1px solid var(--ks-border-strong);
	box-shadow: 0 6px 18px rgba(0, 0, 0, 0.5);
}
[data-bs-theme="dark"] .ui-datepicker .ui-datepicker-header {
	background: var(--ks-surface-2);
	color: var(--ks-text);
	border: 1px solid var(--ks-border);
}
[data-bs-theme="dark"] .ui-datepicker table { background: var(--ks-surface); }
[data-bs-theme="dark"] .ui-datepicker th { color: var(--ks-text-muted); }
[data-bs-theme="dark"] .ui-datepicker td a,
[data-bs-theme="dark"] .ui-datepicker td span {
	background: var(--ks-surface-2);
	color: var(--ks-text);
	border-color: var(--ks-border);
}
[data-bs-theme="dark"] .ui-datepicker td a.ui-state-hover {
	background: var(--ks-surface-3);
}
[data-bs-theme="dark"] .ui-datepicker td a.ui-state-active,
[data-bs-theme="dark"] .ui-datepicker td a.ui-state-highlight {
	background: var(--ks-accent);
	color: #fff;
	border-color: var(--ks-accent);
}
[data-bs-theme="dark"] .hasDatepicker { background-color: var(--ks-surface-2); }

/* ============================================================
 * 14. Krajee bootstrap-fileinput (BS5 build)
 * ============================================================ */
[data-bs-theme="dark"] .file-input,
[data-bs-theme="dark"] .file-caption,
[data-bs-theme="dark"] .file-preview,
[data-bs-theme="dark"] .file-drop-zone {
	background-color: var(--ks-surface-2);
	border-color: var(--ks-border-strong);
	color: var(--ks-text);
}
[data-bs-theme="dark"] .file-caption .file-caption-name {
	background-color: var(--ks-surface-2);
	color: var(--ks-text);
	border-color: var(--ks-border-strong);
}
[data-bs-theme="dark"] .file-preview-frame {
	background: var(--ks-surface);
	border-color: var(--ks-border);
}
[data-bs-theme="dark"] .file-thumbnail-footer {
	color: var(--ks-text-muted);
}
[data-bs-theme="dark"] .file-drop-zone-title {
	color: var(--ks-text-muted);
}

/* ============================================================
 * 14b. Select2 (bootstrap-5 build) — used by the product page
 * for category/brand pickers inside the add/edit-product modals.
 * Vendor CSS hardcodes #212529 on #fff which renders as black
 * text on a dark surface; reskin to match the rest of our forms.
 * ============================================================ */
[data-bs-theme="dark"] .select2-container--bootstrap-5 .select2-selection,
[data-bs-theme="dark"] .select2-container--bootstrap-5 .select2-dropdown,
[data-bs-theme="dark"] .select2-container--bootstrap-5 .select2-search__field {
	background-color: var(--ks-surface-2);
	color: var(--ks-text);
	border-color: var(--ks-border-strong);
}
[data-bs-theme="dark"] .select2-container--bootstrap-5 .select2-selection__rendered,
[data-bs-theme="dark"] .select2-container--bootstrap-5 .select2-selection__choice,
[data-bs-theme="dark"] .select2-container--bootstrap-5 .select2-selection__choice__display {
	color: var(--ks-text);
}
[data-bs-theme="dark"] .select2-container--bootstrap-5 .select2-selection__placeholder {
	color: var(--ks-text-subtle);
}
[data-bs-theme="dark"] .select2-container--bootstrap-5.select2-container--focus .select2-selection,
[data-bs-theme="dark"] .select2-container--bootstrap-5.select2-container--open .select2-selection {
	border-color: var(--ks-accent);
	box-shadow: 0 0 0 0.2rem rgba(59, 130, 246, 0.25);
}
[data-bs-theme="dark"] .select2-container--bootstrap-5 .select2-results__option {
	color: var(--ks-text);
	background-color: transparent;
}
[data-bs-theme="dark"] .select2-container--bootstrap-5 .select2-results__option--highlighted,
[data-bs-theme="dark"] .select2-container--bootstrap-5 .select2-results__option[aria-selected="true"]:not(.select2-results__option--highlighted) {
	background-color: var(--ks-surface-3);
	color: var(--ks-text-strong);
}
[data-bs-theme="dark"] .select2-container--bootstrap-5 .select2-results__option--selected {
	background-color: var(--ks-accent);
	color: #fff;
}
[data-bs-theme="dark"] .select2-container--bootstrap-5 .select2-selection__clear {
	color: var(--ks-text-muted);
}

/* ============================================================
 * 14c. Legacy <ul class="nav nav-tabs"><li><a> tabs
 * (bs5-compat shim, used by editProductTabs and user-role tabs).
 * BS5 default styling collapses to gray-on-light otherwise.
 * ============================================================ */
[data-bs-theme="dark"] .nav-tabs {
	border-bottom-color: var(--ks-border);
}
[data-bs-theme="dark"] .nav-tabs > li > a,
[data-bs-theme="dark"] .nav-tabs .nav-link {
	color: var(--ks-text);
	background-color: transparent;
	border-color: transparent;
}
[data-bs-theme="dark"] .nav-tabs > li > a:hover,
[data-bs-theme="dark"] .nav-tabs .nav-link:hover {
	border-color: var(--ks-border) var(--ks-border) var(--ks-border);
	background-color: var(--ks-surface-2);
}
[data-bs-theme="dark"] .nav-tabs > li.active > a,
[data-bs-theme="dark"] .nav-tabs > li.active > a:hover,
[data-bs-theme="dark"] .nav-tabs > li.active > a:focus,
[data-bs-theme="dark"] .nav-tabs .nav-link.active,
[data-bs-theme="dark"] .nav-tabs .nav-item.show .nav-link {
	color: var(--ks-text-strong);
	background-color: var(--ks-surface);
	border-color: var(--ks-border) var(--ks-border) var(--ks-surface);
}

/* ============================================================
 * 15. Misc text helpers / muted text
 * ============================================================ */
[data-bs-theme="dark"] .text-muted { color: var(--ks-text-muted) !important; }

/* BS3 .form-control-static shim (bs5-compat.css) ships with hardcoded
 * #212529, which renders as black on the dark View Order modal. Used by
 * the Buyer / Order info fields. Inherit our dark text instead. */
[data-bs-theme="dark"] .form-control-static {
	color: var(--ks-text);
}
[data-bs-theme="dark"] hr { border-color: var(--ks-border); }
[data-bs-theme="dark"] code:not(.hljs) {
	background: var(--ks-surface-2);
	color: #f9a8d4;
	padding: 1px 5px;
	border-radius: 3px;
}

/* ============================================================
 * 16. PRINT — no matter the active theme, paper output is light.
 * ============================================================ */
@media print {
	html[data-bs-theme="dark"],
	html[data-bs-theme="dark"] body {
		background: #fff !important;
		color: #1f2937 !important;
		color-scheme: light !important;
	}
	html[data-bs-theme="dark"] .card,
	html[data-bs-theme="dark"] .panel,
	html[data-bs-theme="dark"] .dash-panel,
	html[data-bs-theme="dark"] .rc-panel,
	html[data-bs-theme="dark"] .invoice-wrap {
		background: #fff !important;
		color: #1f2937 !important;
		border-color: #d1d5db !important;
		box-shadow: none !important;
	}
	html[data-bs-theme="dark"] .table,
	html[data-bs-theme="dark"] .table > thead,
	html[data-bs-theme="dark"] .table > thead > tr > th,
	html[data-bs-theme="dark"] .table > tbody > tr > td {
		background: #fff !important;
		color: #1f2937 !important;
		border-color: #d1d5db !important;
	}
}
