:root {
  color-scheme: light;
  --theme-primary: #4154f1;
  --theme-primary-rgb: 65, 84, 241;
  --theme-surface: #ffffff;
  --theme-surface-muted: #f6f9ff;
  --theme-surface-elevated: #ffffff;
  --theme-text: #012970;
  --theme-text-muted: #6c757d;
  --theme-accent: #2eca6a;
  --theme-success: #22c55e;
  --theme-warning: #f6c23e;
  --theme-danger: #e74c3c;
  --theme-info: #0dcaf0;
  --theme-border: #dce1f8;
  --theme-border-muted: rgba(220, 225, 248, 0.65);
  --theme-shadow-color: rgba(1, 41, 112, 0.15);
  --theme-backdrop: rgba(1, 41, 112, 0.08);
  --theme-ripple-color: rgba(65, 84, 241, 0.2);
  --theme-primary-contrast: #ffffff;
  --theme-on-primary: #ffffff;
  --theme-on-emphasis: #ffffff;
  --theme-on-surface: var(--theme-text);
  --theme-text-rgb: 1, 41, 112;
  --theme-text-muted-rgb: 108, 117, 125;
  --theme-surface-rgb: 255, 255, 255;
  --theme-surface-muted-rgb: 246, 249, 255;
  --theme-accent-rgb: 46, 202, 106;
  --theme-success-rgb: 34, 197, 94;
  --theme-warning-rgb: 246, 194, 62;
  --theme-danger-rgb: 231, 76, 60;
  --theme-info-rgb: 13, 202, 240;
  --theme-border-rgb: 220, 225, 248;
  --theme-primary-soft-bg: rgba(var(--theme-primary-rgb), 0.12);
  --theme-primary-soft-border: rgba(var(--theme-primary-rgb), 0.24);
  --theme-scrollbar-track: rgba(var(--theme-text-muted-rgb), 0.08);
  --theme-scrollbar-thumb: rgba(var(--theme-text-muted-rgb), 0.35);
  --theme-focus-ring: rgba(var(--theme-accent-rgb), 0.45);
  --theme-table-head-bg: rgba(246, 249, 255, 1);
  --theme-table-head-color: var(--theme-text);
  --theme-table-striped-bg: rgba(1, 41, 112, 0.04);
  --theme-table-hover-bg: rgba(1, 41, 112, 0.08);
  --theme-table-active-bg: rgba(1, 41, 112, 0.12);
  --theme-table-border: var(--theme-border);
  --theme-placeholder: rgba(var(--theme-text-muted-rgb), 0.65);
  --theme-input-bg: var(--theme-surface);
  --theme-html-bg: var(--theme-surface);
  --theme-body-bg: var(--theme-surface-muted);
  --bs-modal-bg: var(--theme-surface);
  --bs-modal-color: var(--theme-text);
  --bs-modal-content-bg: var(--theme-surface);
  --bs-modal-content-color: var(--theme-text);
  --bs-modal-border-color: var(--theme-border);
  --bs-modal-content-border-color: var(--theme-border);
  --bs-modal-header-border-color: var(--theme-border);
  --bs-modal-footer-border-color: var(--theme-border);
  --bs-btn-close-color: var(--theme-text-muted);

  /* Bootstrap variable bridge */
  --bs-body-bg: var(--theme-surface);
  --bs-body-color: var(--theme-text);
  --bs-border-color: var(--theme-border);
  --bs-primary: var(--theme-primary);
  --bs-primary-rgb: var(--theme-primary-rgb);
  --bs-success: var(--theme-success);
  --bs-success-rgb: 34, 197, 94;
  --bs-warning: var(--theme-warning);
  --bs-warning-rgb: 246, 194, 62;
  --bs-danger: var(--theme-danger);
  --bs-danger-rgb: 231, 76, 60;
  --bs-info: var(--theme-info);
  --bs-info-rgb: 13, 202, 240;
  --bs-link-color: var(--theme-primary);
  --bs-link-hover-color: var(--theme-primary);
  --bs-heading-color: var(--theme-text) !important;
  --bs-card-bg: var(--theme-surface) !important;
  --bs-card-border-color: var(--theme-border) !important;
  --bs-card-cap-bg: var(--theme-surface-muted) !important;
  --bs-white: var(--theme-surface) !important;
  --bs-white-rgb: var(--theme-surface-rgb);
  --bs-light: var(--theme-surface-muted) !important;
  --bs-light-rgb: var(--theme-surface-muted-rgb);
  --bs-dark: var(--theme-text);
  --bs-dark-rgb: var(--theme-text-rgb);
}

[data-theme-mode="dark"] {
  color-scheme: dark;
  --theme-surface: #101828;
  --theme-surface-muted: #1f2933;
  --theme-surface-elevated: #1c2433;
  --theme-text: #f8fafc;
  --theme-text-muted: rgba(248, 250, 252, 0.7);
  --theme-border: rgba(248, 250, 252, 0.16);
  --theme-border-muted: rgba(248, 250, 252, 0.08);
  --theme-shadow-color: rgba(0, 0, 0, 0.35);
  --theme-text-rgb: 248, 250, 252;
  --theme-text-muted-rgb: 248, 250, 252;
  --theme-surface-rgb: 16, 24, 40;
  --theme-surface-muted-rgb: 31, 41, 51;
  --theme-border-rgb: 248, 250, 252;
  --theme-scrollbar-track: rgba(248, 250, 252, 0.08);
  --theme-scrollbar-thumb: rgba(248, 250, 252, 0.25);
  --theme-table-head-bg: rgba(31, 41, 51, 0.6);
  --theme-table-head-color: var(--theme-text);
  --theme-table-striped-bg: rgba(248, 250, 252, 0.08);
  --theme-table-hover-bg: rgba(248, 250, 252, 0.14);
  --theme-table-active-bg: rgba(248, 250, 252, 0.18);
  --theme-table-border: rgba(248, 250, 252, 0.16);
  --bs-body-color: var(--theme-text);
  --bs-body-bg: var(--theme-surface);
  --bs-card-bg: var(--theme-surface-elevated) !important;
  --bs-card-border-color: var(--theme-border);
  --bs-border-color: var(--theme-border);
  --bs-modal-bg: var(--theme-surface-elevated);
  --bs-modal-color: var(--theme-text);
  --bs-modal-content-bg: var(--theme-surface-elevated);
  --bs-modal-content-color: var(--theme-text);
  --bs-modal-border-color: var(--theme-border);
  --bs-modal-content-border-color: var(--theme-border);
  --bs-modal-header-border-color: var(--theme-border);
  --bs-modal-footer-border-color: var(--theme-border);
  --bs-btn-close-color: var(--theme-text-muted);
  --bs-white: var(--theme-surface);
  --bs-white-rgb: var(--theme-surface-rgb);
  --bs-light: var(--theme-surface-muted);
  --bs-light-rgb: var(--theme-surface-muted-rgb);
  --bs-dark: var(--theme-text);
  --bs-dark-rgb: var(--theme-text-rgb);
  --theme-backdrop: rgba(8, 15, 33, 0.72);
  --theme-placeholder: rgba(var(--theme-text-muted-rgb), 0.75);
  --theme-input-bg: var(--theme-surface-elevated);
  --theme-html-bg: var(--theme-surface);
  --theme-body-bg: var(--theme-surface-muted);
}

html {
  background-color: var(--theme-html-bg);
  color: var(--theme-text);
}

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

a {
  color: var(--bs-link-color);
}
.accordion-item{
  background: var(--theme-surface-elevated) !important;
}

a:hover {
  color: var(--bs-link-hover-color);
}

.text-theme-primary {
  color: var(--theme-primary) !important;
}

.alert-theme-soft {
  --bs-alert-padding-x: 1.25rem;
  --bs-alert-padding-y: 1rem;
  --bs-alert-border-radius: 0.85rem;
  background-color: rgba(var(--theme-primary-rgb), 0.08);
  border: 1px solid rgba(var(--theme-primary-rgb), 0.25);
  color: var(--theme-text);
  box-shadow: 0 12px 32px var(--theme-shadow-color);
  backdrop-filter: blur(6px);
}

.alert-theme-soft .alert-heading {
  color: var(--theme-primary);
}

.alert-theme-soft p {
  color: var(--theme-text-muted);
}

[data-theme-mode="dark"] .alert-theme-soft {
  background-color: rgba(var(--theme-primary-rgb), 0.18);
  border-color: rgba(var(--theme-primary-rgb), 0.35);
  box-shadow: 0 16px 48px var(--theme-shadow-color);
}

.text-theme-accent {
  color: var(--theme-accent) !important;
}

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

.bg-theme-primary {
  background-color: var(--theme-primary) !important;
}

.bg-theme-surface {
  background-color: var(--theme-surface) !important;
}

.bg-theme-surface-muted {
  background-color: var(--theme-surface-muted) !important;
}

input:not([type="checkbox"]):not([type="radio"]),
textarea,
.form-control,
.form-select {
  background-color: var(--theme-input-bg) !important;
  color: var(--theme-text) !important;
  border-color: var(--theme-border) !important;
}
.form-check-input,
input[type="checkbox"],
input[type="radio"] {
  background-color: rgba(var(--theme-text-rgb), 0.08) !important;
  border-color: rgba(var(--theme-text-rgb), 0.35) !important;
  accent-color: var(--theme-primary);
  box-shadow: inset 0 0 0 1px rgba(var(--theme-text-rgb), 0.12);
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.form-check-input:checked,
input[type="checkbox"]:checked,
input[type="radio"]:checked {
  background-color: var(--theme-primary) !important;
  border-color: var(--theme-primary) !important;
  box-shadow: none;
}

.form-check-input:focus,
input[type="checkbox"]:focus,
input[type="radio"]:focus {
  box-shadow: 0 0 0 2px rgba(var(--theme-primary-rgb, 46, 202, 106), 0.25);
  border-color: rgba(var(--theme-primary-rgb, 46, 202, 106), 0.75) !important;
}

/* Admin header/profile dropdown */
.header-nav .dropdown-menu.profile {
  background-color: var(--theme-surface);
  color: var(--theme-text);
  border: 1px solid var(--theme-border);
  box-shadow: 0 18px 45px var(--theme-shadow-color);
}

.header-nav .dropdown-menu.profile .dropdown-header {
  background-color: var(--theme-surface);
  color: var(--theme-text);
  border-bottom: 1px solid var(--theme-border);
}

.header-nav .dropdown-menu.profile small {
  color: var(--theme-text-muted);
}

.header-nav .dropdown-menu.profile .dropdown-divider {
  border-color: var(--theme-border);
}

.header-nav .dropdown-menu.profile .dropdown-item {
  color: var(--theme-text);
}

.header-nav .dropdown-menu.profile .dropdown-item i {
  color: var(--theme-text-muted);
}

.header-nav .dropdown-menu.profile .dropdown-item:hover {
  background-color: rgba(var(--theme-primary-rgb), 0.08);
  color: var(--theme-text);
}

.header-nav .dropdown-menu.profile .profile-image {
  border: 2px solid rgba(var(--theme-text-rgb), 0.15);
}

/* Alert callout blocks (inventory type etc.) */
.alert.alert-secondary,
.alert.alert-light,
.alert.alert-soft {
  background-color: rgba(var(--theme-text-rgb), 0.06);
  color: var(--theme-text);
  border-color: rgba(var(--theme-text-rgb), 0.18);
}

[data-theme-mode="dark"] .alert.alert-secondary,
[data-theme-mode="dark"] .alert.alert-light,
[data-theme-mode="dark"] .alert.alert-soft {
  background-color: rgba(var(--theme-text-rgb), 0.14);
  border-color: rgba(var(--theme-text-rgb), 0.25);
}

.alert.alert-secondary .form-check-input,
.alert.alert-light .form-check-input,
.alert.alert-soft .form-check-input {
  background-color: rgba(var(--theme-text-rgb), 0.12) !important;
  border-color: rgba(var(--theme-text-rgb), 0.35) !important;
}
.quantity-controls input.qtyField{
background-color: transparent !important;
}
.btn i.bi{
  color: var(--theme-text) !important
}

input::placeholder,
textarea::placeholder,
.form-control::placeholder {
  color: var(--theme-placeholder) !important;
  opacity: 1;
}
.bg-light{
  background: var(--theme-surface-muted) !important;
}

.border-theme-primary {
  border-color: var(--theme-primary) !important;
}

.shadow-theme {
  box-shadow: 0 12px 32px var(--theme-shadow-color) !important;
}

.modal-content {
  background-color: var(--bs-modal-bg, var(--theme-surface-elevated));
  color: var(--bs-modal-color, var(--theme-text));
  border: 1px solid var(--bs-modal-border-color, var(--theme-border));
  box-shadow: 0 24px 64px var(--theme-shadow-color);
}

.modal-header {
  background-color: inherit;
  border-color: var(--bs-modal-header-border-color, var(--bs-modal-border-color, var(--theme-border)));
}

.modal-footer {
  background-color: inherit;
  border-color: var(--bs-modal-footer-border-color, var(--bs-modal-border-color, var(--theme-border)));
}

.modal-backdrop {
  background-color: var(--theme-backdrop, rgba(1, 41, 112, 0.12));
}

.modal-backdrop.show {
  opacity: 1;
}

.modal {
  --bs-modal-bg: var(--theme-surface-elevated);
  --bs-modal-color: var(--theme-text);
  --bs-modal-content-bg: var(--theme-surface-elevated);
  --bs-modal-content-color: var(--theme-text);
  --bs-modal-border-color: var(--theme-border);
  --bs-modal-content-border-color: var(--theme-border);
  --bs-modal-header-border-color: var(--theme-border);
  --bs-modal-footer-border-color: var(--theme-border);
}

.modal .btn-close {
  color: var(--bs-btn-close-color, var(--theme-text-muted));
}

.modal .btn-close:focus {
  box-shadow: 0 0 0 0.25rem var(--theme-focus-ring);
}

.bg-white,
.bg-body,
.bg-body-tertiary {
  background-color: var(--theme-surface) !important;
  color: var(--theme-text) !important;
}

.bg-light {
  background-color: var(--theme-surface-muted) !important;
  color: var(--theme-text) !important;
}

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

.text-white {
  color: var(--theme-on-emphasis, #ffffff) !important;
}

.badge-theme-primary {
  color: var(--theme-on-primary);
  background-color: var(--theme-primary);
}

.theme-surface-card {
  background-color: var(--theme-surface-elevated);
  border: 1px solid var(--theme-border);
  box-shadow: 0 12px 32px var(--theme-shadow-color);
}

.table {
  color: var(--theme-text);
  background-color: transparent;
}

.table > :not(caption) > * > * {
  background-color: transparent;
  color: inherit;
  border-bottom-color: var(--theme-table-border);
}

.table thead th,
.table thead td,
.table tfoot th,
.table tfoot td {
  background-color: var(--theme-table-head-bg);
  color: var(--theme-table-head-color);
  border-bottom-color: var(--theme-table-border);
}

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

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

.table-active,
.table-active > * {
  background-color: var(--theme-table-active-bg) !important;
  color: var(--theme-text);
}

.table-bordered > :not(caption) > * {
  border-color: var(--theme-table-border) !important;
}

.table-dark,
.table-dark > :not(caption) > * > * {
  background-color: transparent;
  color: var(--theme-text);
}

.dataTable-wrapper {
  color: var(--theme-text) !important;
}

.dataTable-wrapper .dataTable-top,
.dataTable-wrapper .dataTable-bottom {
  color: inherit;
  background-color: var(--theme-surface) !important;
}

.dataTable-wrapper .dataTable-container {
  background-color: var(--theme-surface) !important;
  border: 1px solid var(--theme-border) !important;
  border-radius: 0.75rem;
  box-shadow: 0 8px 24px var(--theme-shadow-color) !important;
  overflow: hidden;
}

.dataTable-wrapper .dataTable-table {
  background-color: transparent;
  color: inherit;
}

.dataTable-wrapper .dataTable-table thead th,
.dataTable-wrapper .dataTable-table thead td {
  background-color: var(--theme-table-head-bg) !important;
  color: var(--theme-table-head-color) !important;
  border-color: var(--theme-table-border) !important;
}

.dataTable-wrapper .dataTable-table tbody tr {
  border-bottom-color: var(--theme-table-border) !important;
}

.dataTable-wrapper .dataTable-table tbody tr:hover {
  background-color: var(--theme-table-hover-bg) !important;
}

.dataTable-wrapper .dataTable-top .dataTable-input,
.dataTable-wrapper .dataTable-top .dataTable-selector,
.dataTable-wrapper .dataTable-bottom .dataTable-selector,
.dataTable-wrapper .dataTable-bottom .dataTable-input {
  background-color: var(--theme-input-bg) !important;
  color: var(--theme-text) !important;
  border: 1px solid var(--theme-border) !important;
  border-radius: 0.5rem;
  padding: 0.35rem 0.65rem;
}

.dataTable-wrapper .dataTable-top .dataTable-input::placeholder,
.dataTable-wrapper .dataTable-bottom .dataTable-input::placeholder {
  color: var(--theme-placeholder) !important;
}

.dataTable-wrapper .dataTable-pagination a,
.dataTable-wrapper .dataTable-pagination button {
  background-color: var(--theme-surface) !important;
  color: var(--theme-text) !important;
  border: 1px solid var(--theme-border) !important;
  border-radius: 0.5rem;
  padding: 0.35rem 0.75rem;
  transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.dataTable-wrapper .dataTable-pagination a:hover,
.dataTable-wrapper .dataTable-pagination button:hover {
  background-color: var(--theme-table-hover-bg) !important;
}

.dataTable-wrapper .dataTable-pagination .active a,
.dataTable-wrapper .dataTable-pagination .active button {
  background-color: var(--theme-primary) !important;
  border-color: var(--theme-primary) !important;
  color: var(--theme-on-primary) !important;
}

.dataTable-wrapper .dataTable-pagination .disabled a,
.dataTable-wrapper .dataTable-pagination .disabled button {
  background-color: var(--theme-surface-muted) !important;
  color: var(--theme-text-muted) !important;
  cursor: not-allowed;
}

h1, h2, h3, h4, h5, h6 {
    color: var(--theme-text) !important;
}
p{
  color: var(--theme-text) !important;
}
/* Component palette documentation
   --theme-primary        : Brand highlights, buttons, chip backgrounds
   --theme-surface        : Card backgrounds, app shells
   --theme-surface-muted  : Page background, section separators
   --theme-text           : Default body text
   --theme-text-muted     : Secondary text, helper labels
   --theme-accent         : Informational accents and focus rings
   --theme-success        : Success states & positive alerts
   --theme-warning        : Warning states & emphasis chips
   --theme-danger         : Error states & destructive actions
   --theme-border         : Border strokes and dividers
   --theme-border-muted   : Subtle outlines & separators
   --theme-ripple-color   : Material ripple overlay color
   --theme-on-primary     : Text/icon colour for primary emphasis surfaces
   --theme-on-emphasis    : Text/icon colour for accentuated surfaces
   --theme-on-surface     : Default surface foreground colour
*/
