/* Task 13. Nova palette values are namespaced; ERP default retains its tokens. */
/* Shared component roles are available to Default as well as Nova. Rebind on
   body because the existing dark shell declares its base palette there too. */
:root[data-theme-palette],
:root[data-theme-palette] body,
:root[data-theme-palette] .erp-operational-colors {
    --erp-shadow-color: #000000;
    --erp-solid-ink: #ffffff;
    --erp-sidebar-muted: var(--erp-text-muted);
    --erp-sidebar-danger: var(--erp-danger);
    --erp-navigation-bg: var(--erp-surface);
    --erp-navigation-text: var(--erp-text);
    --erp-navigation-emphasis: var(--erp-text);
    --erp-navigation-emphasis-rgb: 247, 247, 251;
    --erp-navigation-border: var(--erp-border-solid);
    --erp-navigation-hover: var(--erp-hover);
    --erp-scroll-thumb: color-mix(in srgb, var(--erp-text) 16%, transparent);
    --erp-scroll-thumb-hover: color-mix(in srgb, var(--erp-text) 30%, transparent);
    /* Printed warehouse documents retain paper/ink independently of screen mode. */
    --erp-print-paper: #ffffff;
    --erp-print-border: #dddddd;
    --erp-solid-accent: color-mix(in srgb, var(--erp-accent) 55%, var(--erp-shadow-color));
    --erp-solid-accent-2: color-mix(in srgb, var(--erp-accent-2) 55%, var(--erp-shadow-color));
    --erp-solid-secondary: color-mix(in srgb, var(--erp-text-muted) 45%, var(--erp-shadow-color));
    --erp-solid-success: color-mix(in srgb, var(--erp-success) 60%, var(--erp-shadow-color));
    --erp-solid-danger: color-mix(in srgb, var(--erp-danger) 60%, var(--erp-shadow-color));
    --erp-solid-info: color-mix(in srgb, var(--erp-info) 60%, var(--erp-shadow-color));
    --erp-solid-warning: color-mix(in srgb, var(--erp-warning) 60%, var(--erp-shadow-color));
    --erp-solid-violet: color-mix(in srgb, var(--erp-violet) 60%, var(--erp-shadow-color));
    /* Analytics series: paired opaque fills keep internal labels readable. */
    --erp-chart-1: color-mix(in srgb, var(--erp-success) 85%, var(--erp-accent));
    --erp-chart-1-fill: color-mix(in srgb, var(--erp-chart-1) 55%, var(--erp-shadow-color));
    --erp-chart-2: color-mix(in srgb, var(--erp-info) 85%, var(--erp-accent));
    --erp-chart-2-fill: color-mix(in srgb, var(--erp-chart-2) 55%, var(--erp-shadow-color));
    --erp-chart-3: color-mix(in srgb, var(--erp-violet) 85%, var(--erp-accent));
    --erp-chart-3-fill: color-mix(in srgb, var(--erp-chart-3) 55%, var(--erp-shadow-color));
    --erp-chart-4: color-mix(in srgb, var(--erp-danger) 85%, var(--erp-accent));
    --erp-chart-4-fill: color-mix(in srgb, var(--erp-chart-4) 55%, var(--erp-shadow-color));
    --erp-chart-5: color-mix(in srgb, var(--erp-accent-2) 85%, var(--erp-accent));
    --erp-chart-5-fill: color-mix(in srgb, var(--erp-chart-5) 55%, var(--erp-shadow-color));
    --erp-chart-6: color-mix(in srgb, var(--erp-warning) 85%, var(--erp-accent));
    --erp-chart-6-fill: color-mix(in srgb, var(--erp-chart-6) 55%, var(--erp-shadow-color));
    --erp-chart-7: color-mix(in srgb, var(--erp-info) 45%, var(--erp-violet));
    --erp-chart-7-fill: color-mix(in srgb, var(--erp-chart-7) 55%, var(--erp-shadow-color));
    --erp-chart-8: color-mix(in srgb, color-mix(in srgb, var(--erp-violet) 65%, var(--erp-accent-2)) 85%, var(--erp-accent));
    --erp-chart-8-fill: color-mix(in srgb, var(--erp-chart-8) 55%, var(--erp-shadow-color));
    --erp-chart-9: color-mix(in srgb, color-mix(in srgb, var(--erp-success) 65%, var(--erp-warning)) 85%, var(--erp-accent));
    --erp-chart-9-fill: color-mix(in srgb, var(--erp-chart-9) 55%, var(--erp-shadow-color));
    --erp-chart-10: color-mix(in srgb, color-mix(in srgb, var(--erp-info) 65%, var(--erp-success)) 85%, var(--erp-accent));
    --erp-chart-10-fill: color-mix(in srgb, var(--erp-chart-10) 55%, var(--erp-shadow-color));
    --erp-chart-11: color-mix(in srgb, var(--erp-info) 35%, var(--erp-warning));
    --erp-chart-11-fill: color-mix(in srgb, var(--erp-chart-11) 55%, var(--erp-shadow-color));
    --erp-success-bg: color-mix(in srgb, var(--erp-success) 9%, var(--erp-surface));
    --erp-danger-bg: color-mix(in srgb, var(--erp-danger) 9%, var(--erp-surface));
    --erp-info-bg: color-mix(in srgb, var(--erp-info) 9%, var(--erp-surface));
    --erp-warning-bg: color-mix(in srgb, var(--erp-warning) 9%, var(--erp-surface));
    --erp-violet-bg: color-mix(in srgb, var(--erp-violet) 9%, var(--erp-surface));
    --erp-feature-bg: linear-gradient(135deg, color-mix(in srgb, var(--erp-accent) 12%, var(--erp-surface)), color-mix(in srgb, var(--erp-accent-2) 8%, var(--erp-surface)));
    --erp-selected-surface: color-mix(in srgb, var(--erp-accent) 12%, var(--erp-surface));
    --erp-success-glow: color-mix(in srgb, var(--erp-success) 25%, transparent);
    --erp-danger-glow: color-mix(in srgb, var(--erp-danger) 25%, transparent);
}
:root[data-theme-palette] { --erp-modal-backdrop: rgba(0, 0, 0, .45); }
:root[data-theme-palette] .erp-error .error-card {
    background: var(--erp-surface);
}
:root[data-theme-palette="default"][data-theme="light"] .erp-error {
    --erp-text-muted: #565e66;
}
:root[data-theme-palette]:not([data-theme-palette="default"]),
:root[data-theme-palette]:not([data-theme-palette="default"]) body {
    color-scheme: dark;
    --erp-bg: #07080c;
    --erp-surface: #11131b;
    --erp-surface2: #161822;
    --erp-surface3: #20232e;
    --erp-field-bg: #161822;
    --erp-field-border: #656875;
    --erp-border: rgba(255, 255, 255, .13);
    --erp-border-solid: #393c49;
    --erp-text: var(--erp-dark-ink);
    --erp-text-muted: #b5b7c5;
    --erp-text-dim: #9699a8;
    --erp-hover: rgba(255, 255, 255, .06);
    --erp-icon-bg: rgba(255, 255, 255, .08);
    --erp-shadow: 0 18px 45px rgba(0, 0, 0, .3);
    --erp-success: #49d79d;
    --erp-danger: #ff6b82;
    --erp-warning: #f4b95d;
    --erp-info: #5aa9ff;
    --erp-violet: #c0a5ff;
    /* Small ERP labels need more luminance than decorative Nova accents. */
    --erp-accent: color-mix(in srgb, var(--nova-accent) 85%, white);
    --erp-accent-2: var(--nova-accent-2);
    --erp-accent-hover: color-mix(in srgb, var(--nova-accent) 80%, var(--erp-text));
    --erp-accent-bg: var(--nova-accent-soft);
    --erp-button-start: color-mix(in srgb, var(--nova-accent-2) 82%, white);
    --erp-button-end: color-mix(in srgb, var(--nova-accent) 82%, white);
    --erp-button-bg: linear-gradient(145deg, var(--erp-button-start), var(--erp-button-end));
    --erp-button-text: #101116;
    --bs-body-bg: var(--erp-bg);
    --bs-body-color: var(--erp-text);
    --bs-secondary-color: var(--erp-text-muted);
    --bs-secondary-bg: var(--erp-surface2);
    --bs-tertiary-bg: var(--erp-surface3);
    --bs-emphasis-color: var(--erp-text);
    --bs-border-color: var(--erp-border-solid);
    --bs-link-color: var(--erp-accent);
    --bs-link-hover-color: var(--erp-accent-hover);
    /* Compatibility aliases consumed by service/store and custom modal cards. */
    --primary: var(--erp-accent);
    --secondary: var(--erp-text-muted);
    --success: var(--erp-success);
    --info: var(--erp-info);
    --warning: var(--erp-warning);
    --danger: var(--erp-danger);
    --light: var(--erp-surface2);
    --dark: var(--erp-text);
    --card: var(--erp-surface);
    --text: var(--erp-text);
    --text-muted: var(--erp-text-muted);
    --border: var(--erp-border-solid);
    --hover: var(--erp-hover);
    --surface: var(--erp-bg);
    --surface-muted: var(--erp-surface2);
    --surface-soft: var(--erp-surface2);
    --surface-note: var(--erp-surface3);
    --surface-plain: var(--erp-surface);
    --border-strong: var(--erp-border-solid);
    --erp-theme-accent: var(--erp-accent);
    --erp-theme-bg: var(--erp-bg);
    --erp-theme-on-accent: var(--erp-surface);
    --erp-theme-accent-hover: var(--erp-accent-hover);
    --erp-theme-accent-secondary: var(--erp-accent-2);
    --erp-theme-surface: var(--erp-surface);
    --erp-theme-text: var(--erp-text);
    --erp-theme-muted: var(--erp-text-muted);
    --erp-theme-border: var(--erp-border);
    --erp-theme-hover: var(--erp-hover);
    --erp-theme-icon-bg: var(--erp-icon-bg);
    --erp-theme-selection: var(--erp-accent-bg);
    --erp-theme-selected-surface: color-mix(in srgb, var(--erp-accent) 12%, var(--erp-surface));
    --erp-theme-shadow: var(--erp-shadow);
    --erp-theme-surface2: var(--erp-surface2);
    --erp-theme-feature-bg: linear-gradient(135deg, color-mix(in srgb, var(--nova-accent) 12%, var(--erp-surface)), color-mix(in srgb, var(--nova-accent-2) 8%, var(--erp-surface)));
    --erp-theme-success: var(--erp-success);
    --erp-theme-danger: var(--erp-danger);
    --erp-theme-danger-bg: color-mix(in srgb, var(--erp-danger) 10%, var(--erp-surface));
    --erp-theme-violet: var(--erp-violet);
    --erp-theme-violet-bg: color-mix(in srgb, var(--erp-violet) 10%, var(--erp-surface));
    --erp-theme-success-bg: color-mix(in srgb, var(--erp-success) 10%, var(--erp-surface));
    --erp-theme-info: var(--erp-info);
    --erp-theme-info-bg: color-mix(in srgb, var(--erp-info) 10%, var(--erp-surface));
    --erp-theme-warning: var(--erp-warning);
    --erp-theme-warning-bg: color-mix(in srgb, var(--erp-warning) 10%, var(--erp-surface));
    --erp-theme-field-border: var(--erp-field-border);
}
/* Dark Nova actions pair light text/icons with suitably deep gradient stops.
   The warm palettes below retain their separately verified original balance. */
:root:where([data-theme="dark"])[data-theme-palette]:not([data-theme-palette="default"]),
:root:where([data-theme="dark"])[data-theme-palette]:not([data-theme-palette="default"]) body {
    --erp-button-start: color-mix(in srgb, var(--nova-accent-2) 58%, var(--erp-shadow-color));
    --erp-button-end: color-mix(in srgb, var(--nova-accent) 58%, var(--erp-shadow-color));
    --erp-button-text: var(--erp-solid-ink);
}
/* Warm primary actions keep Nova's white lettering. Darken the original hues
   enough for small text throughout the gradient in both display modes. */
:root[data-theme-palette]:is([data-theme-palette="nova-core"], [data-theme-palette="coral-signal"]),
:root[data-theme-palette]:is([data-theme-palette="nova-core"], [data-theme-palette="coral-signal"]) body {
    --erp-button-start: color-mix(in srgb, var(--nova-accent-2) 66%, black);
    --erp-button-end: color-mix(in srgb, var(--nova-accent) 66%, black);
    --erp-button-text: white;
}
:root[data-theme-palette]:not([data-theme-palette="default"])[data-theme="light"],
:root[data-theme-palette]:not([data-theme-palette="default"])[data-theme="light"] body {
    color-scheme: light;
    --erp-navigation-emphasis-rgb: 23, 24, 32;
    --erp-bg: #eef0f5;
    --erp-surface: #ffffff;
    --erp-surface2: #f3f4f8;
    --erp-surface3: #e7e9f0;
    --erp-field-bg: #ffffff;
    --erp-field-border: #858896;
    --erp-border: rgba(38, 40, 50, .15);
    --erp-border-solid: #c7c9d3;
    --erp-text: #171820;
    --erp-text-muted: #565966;
    --erp-text-dim: #656875;
    --erp-hover: rgba(24, 26, 35, .055);
    --erp-icon-bg: rgba(24, 26, 35, .06);
    --erp-shadow: 0 16px 40px rgba(46, 49, 63, .1);
    --erp-success: #187747;
    --erp-danger: #c32b49;
    --erp-warning: #8a5b00;
    --erp-info: #2266af;
    --erp-violet: #6740a5;
    /* Accessible text links retain the palette hue on a white surface. */
    --erp-accent: color-mix(in srgb, var(--nova-accent-2) 66%, #171820);
}
/* Graphite light accents are already dark: retain their original hues and use
   white ink instead of placing dark labels on a mid-grey gradient. */
:root[data-theme-palette="slate-graphite"][data-theme="light"],
:root[data-theme-palette="slate-graphite"][data-theme="light"] body {
    --erp-button-start: var(--nova-accent-2);
    --erp-button-end: var(--nova-accent);
    --erp-button-text: white;
}
.app-header .navbar-nav > .nav-item > .nav-link.active {
    border-radius: .5rem;
}
:root[data-theme-palette]:not([data-theme-palette="default"]) :is(.app-header, #jazzy-sidebar, .sidebar-brand, .sidebar-footer) {
    background-color: var(--erp-surface) !important;
    color: var(--erp-text) !important;
    border-color: var(--erp-border-solid) !important;
    --bs-body-color: var(--erp-text);
    --bs-emphasis-color: var(--erp-text);
}
:root[data-theme-palette]:not([data-theme-palette="default"]) :is(.app-header, #jazzy-sidebar) :is(.nav-link, .brand-text, .nav-icon, .brand-link, .user-panel, .text-muted, .text-muted li) {
    color: var(--erp-text) !important;
    border-color: var(--erp-border) !important;
}
:root[data-theme-palette]:not([data-theme-palette="default"]) #jazzy-sidebar .nav-link.active {
    background: var(--nova-sidebar-active-bg) !important;
    box-shadow: inset 3px 0 var(--erp-accent);
}
:root[data-theme-palette]:not([data-theme-palette="default"]) .app-header :is(.nav-link i, .nav-link svg, .user-menu i),
:root[data-theme-palette]:not([data-theme-palette="default"]) #jazzy-sidebar :is(.user-panel .info a, .user-panel .info > span:not(.dev-env-indicator), .user-profile) {
    color: var(--erp-text) !important;
}
:root[data-theme-palette]:not([data-theme-palette="default"]) #jazzy-sidebar .nav-header {
    color: var(--erp-text-muted) !important;
}
:root[data-theme-palette]:not([data-theme-palette="default"]) :is(.card, .modal-content, .dropdown-menu, .popover, .select2-dropdown) {
    background-color: var(--erp-surface);
    color: var(--erp-text);
    border-color: var(--erp-border-solid);
}
:root[data-theme-palette]:not([data-theme-palette="default"]) .btn-primary {
    background: var(--erp-button-bg) !important;
    color: var(--erp-button-text) !important;
    border-color: var(--nova-button-primary-border) !important;
}
:root[data-theme-palette]:not([data-theme-palette="default"]) :is(.btn-primary, .nav-pills .nav-link.active, .nav-tabs .nav-link.active):not(.dashboard-tab-warning) :is(i, svg) {
    color: var(--erp-button-text) !important;
}
:root[data-theme-palette]:not([data-theme-palette="default"]) :is(.card, .card-header, .card-body, .card-footer, .modal-content, .modal__card, .app-footer) {
    background-color: var(--erp-surface) !important;
    color: var(--erp-text) !important;
    border-color: var(--erp-border-solid) !important;
}
:root[data-theme-palette]:not([data-theme-palette="default"]) :is(.app-main, .app-content, .content-wrapper) {
    color: var(--erp-text) !important;
}
:root[data-theme-palette]:not([data-theme-palette="default"]) .table {
    --bs-table-bg: var(--erp-surface);
    --bs-table-color: var(--erp-text);
    --bs-table-border-color: var(--erp-border-solid);
    --bs-table-striped-bg: var(--erp-surface2);
    --bs-table-striped-color: var(--erp-text);
    --bs-table-hover-bg: var(--erp-hover);
    --bs-table-hover-color: var(--erp-text);
    background-color: var(--erp-surface);
    color: var(--erp-text);
}
:root[data-theme-palette]:not([data-theme-palette="default"]) .table :is(td, th) {
    color: var(--erp-text);
    border-color: var(--erp-border-solid);
}
:root[data-theme-palette]:not([data-theme-palette="default"]) :is(.nav-pills, .nav-tabs) .nav-link.active:not(.dashboard-tab-warning) {
    background: var(--erp-button-bg) !important;
    color: var(--erp-button-text) !important;
    border-color: var(--nova-button-primary-border) !important;
}
:root[data-theme-palette]:not([data-theme-palette="default"]) :is(.badge-light, .badge-primary, .badge.bg-light, .badge.bg-gray, .badge.bg-primary, .badge.bg-secondary) {
    background: var(--erp-accent-bg) !important;
    color: var(--erp-accent) !important;
    border-color: color-mix(in srgb, var(--erp-accent) 35%, transparent) !important;
}
:root[data-theme-palette]:not([data-theme-palette="default"]) .btn-outline-primary {
    background: var(--erp-accent-bg) !important;
    color: var(--erp-accent) !important;
    border-color: var(--erp-accent) !important;
}
:root[data-theme-palette]:not([data-theme-palette="default"]) .btn-outline-primary:hover {
    background: var(--erp-button-bg) !important;
    color: var(--erp-button-text) !important;
}
:root[data-theme-palette]:not([data-theme-palette="default"]) .text-primary {
    color: var(--erp-accent) !important;
}
:root[data-theme-palette]:not([data-theme-palette="default"]) .text-muted {
    color: var(--erp-text-muted) !important;
}
:root[data-theme-palette]:not([data-theme-palette="default"]) :is(.dev-env-indicator, .text-danger) {
    color: var(--erp-danger) !important;
}
:root[data-theme-palette]:not([data-theme-palette="default"]) :is(.badge.bg-danger, .badge-danger, .badge.manager-dashboard-rating-badge.bg-danger) {
    color: var(--erp-danger) !important;
    background: color-mix(in srgb, var(--erp-danger) 10%, var(--erp-surface)) !important;
    border-color: color-mix(in srgb, var(--erp-danger) 35%, var(--erp-surface)) !important;
}
:root[data-theme-palette]:not([data-theme-palette="default"]) :is(.badge.bg-success, .badge-success, .badge.manager-dashboard-rating-badge.bg-success) {
    color: var(--erp-success) !important;
    background: color-mix(in srgb, var(--erp-success) 10%, var(--erp-surface)) !important;
    border-color: color-mix(in srgb, var(--erp-success) 35%, var(--erp-surface)) !important;
}
:root[data-theme-palette]:not([data-theme-palette="default"]) :is(.badge.bg-info, .badge-info, .badge.manager-dashboard-rating-badge.bg-info) {
    color: var(--erp-info) !important;
    background: color-mix(in srgb, var(--erp-info) 10%, var(--erp-surface)) !important;
    border-color: color-mix(in srgb, var(--erp-info) 35%, var(--erp-surface)) !important;
}
:root[data-theme-palette]:not([data-theme-palette="default"]) .ai-assistant__toggle-icon {
    color: var(--erp-text);
}
:root[data-theme-palette]:not([data-theme-palette="default"]) .skip-link {
    background: var(--erp-surface) !important;
    color: var(--erp-accent) !important;
    border: 2px solid var(--erp-accent);
}
:root[data-theme-palette] #ai-assistant-modal {
    --ai-card: var(--erp-surface);
    --ai-panel: var(--erp-surface2);
    --ai-panel-strong: var(--erp-surface3);
    --ai-text: var(--erp-text);
    --ai-text-muted: var(--erp-text-muted);
    --ai-text-dim: var(--erp-text-dim);
    --ai-border: var(--erp-border-solid);
    --ai-border-soft: var(--erp-border);
    --ai-primary: var(--erp-accent);
    --ai-primary-soft: var(--erp-accent-bg);
    --ai-primary-ink: var(--erp-button-text);
    --ai-action-bg: var(--erp-button-bg);
    --ai-success: var(--erp-success);
    --ai-danger: var(--erp-danger);
    --ai-danger-bg: color-mix(in srgb, var(--erp-danger) 10%, var(--erp-surface));
    --ai-skeleton-base: var(--erp-surface2);
    --ai-skeleton-shine: var(--erp-surface3);
    --ai-message-glow: var(--erp-accent-bg);
}
:root[data-theme-palette="default"] #ai-assistant-modal {
    --ai-action-bg: linear-gradient(145deg, var(--erp-solid-accent), var(--erp-solid-accent-2));
    --ai-primary-ink: var(--erp-solid-ink);
}
:root[data-theme-palette]:not([data-theme-palette="default"]) .documentation-shell {
    --doc-surface: var(--erp-surface);
    --doc-surface-raised: var(--erp-surface2);
    --doc-border: var(--erp-border-solid);
    --doc-text: var(--erp-text);
    --doc-muted: var(--erp-text-muted);
    --doc-accent: var(--erp-accent);
    --doc-accent-soft: var(--erp-accent-bg);
    --doc-success: var(--erp-success);
}
:root[data-theme-palette]:not([data-theme-palette="default"]) .tasks-container {
    --primary: var(--erp-accent);
    --secondary: var(--erp-text-muted);
    --success: var(--erp-success);
    --info: var(--erp-info);
    --warning: var(--erp-warning);
    --danger: var(--erp-danger);
    --light: var(--erp-surface2);
    --dark: var(--erp-text);
    --card: var(--erp-surface);
    --text: var(--erp-text);
    --border: var(--erp-border-solid);
    --hover: var(--erp-hover);
    --text-muted: var(--erp-text-muted);
    --surface: var(--erp-bg);
    --surface-muted: var(--erp-surface2);
    --surface-soft: var(--erp-surface2);
    --surface-note: var(--erp-surface3);
    --surface-plain: var(--erp-surface);
    --border-strong: var(--erp-border-solid);
}
:root[data-theme-palette]:not([data-theme-palette="default"]) #toast-container {
    --erp-toast-surface: var(--erp-surface);
    --erp-toast-surface-end: var(--erp-surface2);
    --erp-toast-text: var(--erp-text);
    --erp-toast-muted: var(--erp-text-muted);
    --erp-toast-border: var(--erp-border-solid);
    --erp-toast-shadow: var(--erp-shadow);
    --erp-toast-hover-border: var(--erp-field-border);
    --erp-toast-hover-shadow: var(--erp-shadow);
    --erp-toast-inset: var(--erp-border);
    --erp-toast-close: var(--erp-text-muted);
    --erp-toast-close-hover-bg: var(--erp-hover);
    --erp-toast-close-hover: var(--erp-text);
}
:root[data-theme-palette]:not([data-theme-palette="default"]) #toast-container > div.toast.toast-success {
    --erp-toast-tone: var(--erp-success);
}
:root[data-theme-palette]:not([data-theme-palette="default"]) #toast-container > div.toast.toast-error {
    --erp-toast-tone: var(--erp-danger);
}
:root[data-theme-palette]:not([data-theme-palette="default"]) #toast-container > div.toast.toast-warning {
    --erp-toast-tone: var(--erp-warning);
}
:root[data-theme-palette]:not([data-theme-palette="default"]) #toast-container > div.toast.toast-info {
    --erp-toast-tone: var(--erp-info);
}
:root[data-theme-palette]:not([data-theme-palette="default"]) #toast-container .toast-close-button {
    color: var(--erp-text-muted);
}
:root[data-theme-palette]:not([data-theme-palette="default"]) a:not(.btn):not(.err-btn):not(.nav-link):not(.badge):not(.page-link):not(.dropdown-item):not(.brand-link) {
    color: var(--erp-accent);
}
:root[data-theme-palette]:not([data-theme-palette="default"]) :is(.form-control, .form-select, .select2-selection) {
    background-color: var(--erp-field-bg);
    color: var(--erp-text);
    border-color: var(--erp-field-border);
}
:root[data-theme-palette]:not([data-theme-palette="default"]) :focus-visible {
    outline: 2px solid var(--erp-accent);
    outline-offset: 3px;
}
/* Bootstrap's focus shadow otherwise keeps its blue vendor colour underneath
   the themed outline, especially on mobile buttons without .shadow-lg. */
:root[data-theme="dark"][data-theme-palette]:not([data-theme-palette="default"]) .btn:is(:focus, :focus-visible) {
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--erp-accent) 40%, transparent) !important;
}
/* Native choices and Bootstrap form checks share the paired fill/ink roles. */
:root[data-theme-palette] body input:is([type="checkbox"], [type="radio"], [type="range"]) {
    accent-color: var(--erp-solid-accent) !important;
}
:root[data-theme-palette] body .form-check-input {
    background-color: var(--erp-field-bg) !important;
    border-color: var(--erp-field-border) !important;
}
:root[data-theme-palette] body .form-check-input:checked,
:root[data-theme-palette] body .form-check-input[type="checkbox"]:indeterminate {
    background-color: var(--erp-solid-accent) !important;
    border-color: var(--erp-accent) !important;
    color: var(--erp-solid-ink) !important;
}
:root[data-theme-palette] body .form-check-input:focus {
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--erp-accent) 40%, transparent) !important;
}
:root[data-theme-palette] body .form-check-input:disabled ~ .form-check-label {
    color: var(--erp-text-muted) !important;
}
:root[data-theme-palette]:not([data-theme-palette="default"]) ::selection {
    background: var(--nova-selection-bg);
    color: var(--erp-text);
}
.erp-theme-picker { padding: 12px; min-width: 0; color: inherit; }
.erp-theme-picker label { font-size: .8rem; display: block; margin-bottom: 6px; }
.erp-theme-picker select { width: 100%; min-height: 44px; font-size: .9rem; }
#erpThemeStatus { display: block; font-size: .75rem; overflow-wrap: anywhere; }
.erp-theme-swatches { display: flex; gap: 5px; margin-top: 6px; }
.erp-theme-swatches i { width: 16px; height: 16px; border-radius: 50%; background: var(--erp-accent); }
.erp-theme-swatches i:nth-child(2) { background: var(--erp-accent-2); }
.erp-theme-swatches i:nth-child(3) { background: var(--erp-surface3); border: 1px solid var(--erp-field-border); }
@media (min-width: 992px) {
    .sidebar-collapse:not(.sidebar-open) .erp-theme-picker { display: none; }
}
@media (forced-colors: active) {
    :root[data-theme-palette]:not([data-theme-palette="default"]),
    :root[data-theme-palette]:not([data-theme-palette="default"]) body {
        --erp-bg: Canvas; --erp-surface: Canvas; --erp-surface2: Canvas; --erp-surface3: Canvas;
        --erp-text: CanvasText; --erp-text-muted: CanvasText; --erp-text-dim: CanvasText;
        --erp-field-bg: Canvas; --erp-field-border: ButtonText; --erp-border-solid: CanvasText;
        --erp-accent: LinkText; --erp-button-bg: ButtonFace; --erp-button-text: ButtonText;
    }
}

/* Readability repairs keep Default ERP's blue/graphite identity. */
:root[data-theme-palette="default"],
:root[data-theme-palette="default"] body,
:root[data-theme-palette] .erp-operational-colors {
    /* Small labels must remain readable on both default surfaces. */
    --erp-text-dim: var(--erp-text-muted);
    /* Default keeps its dark sidebar in both display modes. */
    --erp-sidebar-muted: #d1d7dd;
    --erp-sidebar-danger: #ffadb4;
}
:root[data-theme-palette="default"][data-theme="light"],
:root[data-theme-palette="default"][data-theme="light"] body,
:root[data-theme-palette][data-theme="light"] .erp-operational-colors {
    /* Original Default retains dark navigation around its light content. */
    --erp-navigation-bg: #343a40;
    --erp-navigation-text: #f8f9fa;
    --erp-navigation-emphasis: var(--erp-solid-ink);
    --erp-navigation-emphasis-rgb: 248, 249, 250;
    --erp-navigation-border: #4b545c;
    --erp-navigation-hover: color-mix(in srgb, var(--erp-solid-ink) 9%, transparent);
    --erp-accent: #086ca5;
    --erp-accent-hover: #075886;
    --erp-text-muted: #565e66;
    --erp-success: #187747;
    --erp-danger: #b92b3b;
    --erp-info: #2266af;
    --erp-warning: #805700;
    --erp-violet: #6740a5;
}
:root[data-theme-palette="default"][data-theme="dark"],
:root[data-theme-palette="default"][data-theme="dark"] body,
:root[data-theme-palette][data-theme="dark"] .erp-operational-colors {
    --erp-danger: #ff7884;
    --erp-info: #72b9ff;
    --erp-violet: #ce93d8;
}
:root[data-theme-palette="default"] #jazzy-sidebar :is(.erp-theme-picker, .nav-header) {
    color: var(--erp-sidebar-muted) !important;
}
:root[data-theme-palette="default"] #jazzy-sidebar .dev-env-indicator {
    color: var(--erp-sidebar-danger) !important;
}
:root[data-theme-palette] body :is(.dashboard-empty-state, .rental-duration, .text-muted) {
    color: var(--erp-text-muted) !important;
}
:root[data-theme-palette] body :is(.text-red, .text-danger) {
    color: var(--erp-danger) !important;
}
/* Bootstrap's status text utilities also style icon-only elements, which a
 * text contrast scan cannot see. Keep their inks on the selected dark palette. */
:root[data-theme-palette][data-theme="dark"] body .text-primary {
    color: var(--erp-accent) !important;
}
:root[data-theme-palette][data-theme="dark"] body .text-success {
    color: var(--erp-success) !important;
}
:root[data-theme-palette][data-theme="dark"] body .text-info {
    color: var(--erp-info) !important;
}
:root[data-theme-palette][data-theme="dark"] body .text-warning {
    color: var(--erp-warning) !important;
}
:root[data-theme-palette][data-theme="dark"] body .text-secondary {
    color: var(--erp-text-muted) !important;
}
:root[data-theme-palette="default"][data-theme="light"] body .app-content a:not(.btn):not(.nav-link):not(.badge):not(.page-link):not(.dropdown-item) {
    color: var(--erp-accent);
}
:root[data-theme-palette="default"] body :is(.nav-tabs, .nav-pills) .nav-link.active:not(.dashboard-tab-warning) {
    background: var(--erp-solid-accent) !important;
    color: var(--erp-solid-ink) !important;
}
/* Keep kit warnings legible on striped rows as well as plain card surfaces. */
:root[data-theme-palette] body .erp-operational-colors .badge.bg-light.text-dark.manager-dashboard-kit-warning {
    background-color: var(--erp-danger-bg) !important;
}
/* Legacy admin ghost buttons used dark-mode status inks on white surfaces. */
:root[data-theme-palette] body :is(.btn-success, .btn-outline-success),
:root[data-theme-palette] body #jazzy-actions :is(.btn-success, .btn-outline-success),
:root[data-theme-palette] body :is(.badge-success, .badge.bg-success),
:root[data-theme-palette] body .erp-operational-colors :is(.badge-success, .badge.bg-success, .badge.manager-dashboard-rating-badge.bg-success) {
    color: var(--erp-success) !important;
    background: color-mix(in srgb, var(--erp-success) 9%, var(--erp-surface)) !important;
    border-color: color-mix(in srgb, var(--erp-success) 50%, var(--erp-surface)) !important;
}
:root[data-theme-palette] body :is(.btn-danger, .btn-outline-danger),
:root[data-theme-palette] body #jazzy-actions :is(.btn-danger, .btn-outline-danger),
:root[data-theme-palette] body :is(.badge-danger, .badge.bg-danger),
:root[data-theme-palette] body .erp-operational-colors :is(.badge-danger, .badge.bg-danger, .badge.manager-dashboard-rating-badge.bg-danger) {
    color: var(--erp-danger) !important;
    background: color-mix(in srgb, var(--erp-danger) 9%, var(--erp-surface)) !important;
    border-color: color-mix(in srgb, var(--erp-danger) 50%, var(--erp-surface)) !important;
}
:root[data-theme-palette] body :is(.badge.bg-light, .badge-light, .badge.bg-primary, .badge.bg-secondary, .badge.bg-gray) {
    color: var(--erp-accent) !important;
    background: var(--erp-accent-bg) !important;
}
:root[data-theme-palette] body :is(.badge.bg-info, .badge-info),
:root[data-theme-palette] body .erp-operational-colors :is(.badge.bg-info, .badge-info, .badge.manager-dashboard-rating-badge.bg-info) {
    color: var(--erp-info) !important;
    background: color-mix(in srgb, var(--erp-info) 9%, var(--erp-surface)) !important;
}
:root[data-theme-palette] body :is(#select-client-button, #select-kits-button) {
    background: var(--erp-solid-accent) !important;
    color: var(--erp-solid-ink) !important;
    border-color: var(--erp-solid-accent) !important;
}
:root[data-theme-palette] body .shortcut-btn.date-shortcut:not(:hover) {
    color: var(--erp-accent) !important;
    background: var(--erp-accent-bg) !important;
    border-color: var(--erp-accent) !important;
}
:root[data-theme-palette] body .shortcut-btn.duration-shortcut:not(:hover) {
    color: var(--erp-success) !important;
    background: color-mix(in srgb, var(--erp-success) 9%, var(--erp-surface)) !important;
    border-color: var(--erp-success) !important;
}
/* Standalone login screen has no Bootstrap shell. Original default is retained. */
:root[data-theme-palette]:not([data-theme-palette="default"]) .erp-login {
    --accent: var(--erp-accent);
    background: var(--erp-bg);
    color: var(--erp-text);
    overflow: auto;
    padding-block: 24px;
}
:root[data-theme-palette]:not([data-theme-palette="default"]) .erp-login .backdrop {
    background: radial-gradient(circle at 50% 44%, var(--nova-decorative-glow-1), transparent 24rem);
}
:root[data-theme-palette]:not([data-theme-palette="default"]) .erp-login :is(.logo, .field) {
    background: var(--erp-field-bg);
    border-color: var(--erp-field-border);
}
:root[data-theme-palette]:not([data-theme-palette="default"]) .erp-login .field input {
    color: var(--erp-text);
}
:root[data-theme-palette]:not([data-theme-palette="default"]) .erp-login .notice {
    color: var(--erp-text-muted);
}
:root[data-theme-palette]:not([data-theme-palette="default"]) .erp-login .field input::placeholder {
    color: var(--erp-text-muted);
}
:root[data-theme-palette]:not([data-theme-palette="default"]) .erp-login .form-error {
    color: var(--erp-danger);
}
:root[data-theme-palette]:not([data-theme-palette="default"]) .erp-login .login-button {
    background: var(--erp-button-bg);
    color: var(--erp-button-text);
    border-color: var(--erp-accent);
}
:root[data-theme-palette]:not([data-theme-palette="default"]) .erp-login .logo:before {
    border-color: var(--erp-accent);
    box-shadow: 0 0 17px var(--nova-decorative-glow-1);
}
:root[data-theme-palette]:not([data-theme-palette="default"]) .erp-login .orbit-dot:after {
    background: var(--erp-accent);
    box-shadow: 0 0 13px var(--nova-decorative-glow-1);
}
:root[data-theme-palette]:not([data-theme-palette="default"]) .erp-login .field input:autofill {
    -webkit-text-fill-color: var(--erp-text);
    box-shadow: 0 0 0 1000px var(--erp-field-bg) inset;
}
:root[data-theme-palette="default"] .erp-login {
    --erp-bg: #020202;
    --erp-surface: #0c0b0c;
    --erp-surface2: #131114;
    --erp-surface3: #191619;
    --erp-field-bg: #111012;
    --erp-field-border: rgba(255, 255, 255, .075);
    --erp-text-muted: #aab0b8;
    --erp-text: #f8f6f8;
    --erp-accent: #ff6b50;
    overflow: auto;
    padding-block: 24px;
}
:root[data-theme-palette]:not([data-theme-palette="default"]) .erp-login .field:focus-within {
    border-color: var(--erp-accent);
    box-shadow: 0 0 0 2px var(--nova-focus-ring-shadow);
}
:root[data-theme-palette]:not([data-theme-palette="default"]) .erp-login .field:before {
    background: linear-gradient(90deg, transparent, var(--nova-accent-soft), transparent);
}
:root[data-theme-palette]:not([data-theme-palette="default"]) .erp-login :is(.logo-orbit:before, .logo-orbit:after) {
    border-color: var(--erp-border-solid);
}
:root[data-theme-palette]:not([data-theme-palette="default"]) .erp-login .login-button:hover {
    border-color: var(--erp-accent);
    box-shadow: var(--nova-button-primary-hover-shadow);
}
:root[data-theme-palette="default"][data-theme="light"] .app-main a:not(.btn):not(.badge):not(.dropdown-item):not(.nav-link.active) {
    color: var(--erp-accent) !important;
}
:root[data-theme-palette="default"] body .btn-outline-primary {
    color: var(--erp-accent) !important;
    background: var(--erp-accent-bg) !important;
    border-color: var(--erp-accent) !important;
}
:root[data-theme-palette="default"] #bonusManagementModal .bonus-card .opacity-75 {
    opacity: 1 !important;
}
:root[data-theme-palette]:not([data-theme-palette="default"]) .erp-login :is(.card, .logo) {
    box-shadow: var(--erp-shadow);
}
:root[data-theme-palette="default"] .erp-login .field input::placeholder,
:root[data-theme-palette="default"] .erp-login .notice {
    color: var(--erp-text-muted);
}
:root[data-theme-palette] body .select2-container .select2-selection__placeholder {
    color: var(--erp-text-muted) !important;
}
:root[data-theme-palette] body .btn-link {
    color: var(--erp-accent) !important;
}
/* Neutral secondary actions belong to the selected Nova surfaces too. */
:root[data-theme-palette]:not([data-theme-palette="default"]) body :is(.btn-secondary, .btn-default) {
    color: var(--erp-text) !important;
    border-color: var(--erp-field-border) !important;
    background: var(--erp-surface2) !important;
}
:root[data-theme-palette]:not([data-theme-palette="default"]) body :is(.btn-secondary, .btn-default):hover {
    background: var(--erp-surface3) !important;
}
:root[data-theme-palette] body .btn-outline-secondary {
    color: var(--erp-text-muted) !important;
    border-color: var(--erp-field-border) !important;
    background: var(--erp-surface2) !important;
}
:root[data-theme-palette] body :is(.btn-warning, .btn-outline-warning),
:root[data-theme-palette] body #jazzy-actions :is(.btn-warning, .btn-outline-warning) {
    color: var(--erp-warning) !important;
    background: color-mix(in srgb, var(--erp-warning) 9%, var(--erp-surface)) !important;
    border-color: var(--erp-warning) !important;
}
:root[data-theme-palette] body :is(.btn-info, .btn-outline-info),
:root[data-theme-palette] body #jazzy-actions :is(.btn-info, .btn-outline-info) {
    color: var(--erp-info) !important;
    background: color-mix(in srgb, var(--erp-info) 9%, var(--erp-surface)) !important;
    border-color: var(--erp-info) !important;
}
:root[data-theme-palette] body .gaming-stat-badge i {
    color: var(--erp-solid-ink) !important;
}
/* Solid selections use a paired fill and ink, including warm/red palettes. */
:root[data-theme-palette] body :is(.store-menu, .ks-menu, .tasks-menu) a.active,
:root[data-theme-palette] body :is(.pricing-segmented button.active, .page-item.active .page-link) {
    background: var(--erp-solid-accent) !important;
    color: var(--erp-solid-ink) !important;
    border-color: var(--erp-solid-accent) !important;
}
:root[data-theme-palette] body :is(.store-menu, .ks-menu, .tasks-menu) a.active * {
    color: var(--erp-solid-ink) !important;
}
:root[data-theme-palette] body :is(.badge.bg-warning, .badge-warning) {
    color: var(--erp-warning) !important;
    background: color-mix(in srgb, var(--erp-warning) 9%, var(--erp-surface)) !important;
    border-color: var(--erp-warning) !important;
}
/* Select2 4.1 uses selectable/highlighted classes rather than aria-selected. */
:root[data-theme-palette] body .select2-container .select2-results__option--highlighted {
    background: color-mix(in srgb, var(--erp-accent) 12%, var(--erp-surface)) !important;
    color: var(--erp-text) !important;
}
:root[data-theme-palette]:not([data-theme-palette="default"]) body {
    --erp-theme-success-glow: color-mix(in srgb, var(--erp-success) 25%, transparent);
    --erp-theme-danger-glow: color-mix(in srgb, var(--erp-danger) 25%, transparent);
}
/* Native submit controls need the same status tokens as link/button controls. */
:root[data-theme-palette] body #jazzy-actions .btn:is(.btn-success, .btn-outline-success) {
    color: var(--erp-success) !important;
    background: color-mix(in srgb, var(--erp-success) 9%, var(--erp-surface)) !important;
    border-color: var(--erp-success) !important;
}
:root[data-theme-palette] body #jazzy-actions .btn:is(.btn-danger, .btn-outline-danger) {
    color: var(--erp-danger) !important;
    background: color-mix(in srgb, var(--erp-danger) 9%, var(--erp-surface)) !important;
    border-color: var(--erp-danger) !important;
}
:root[data-theme-palette] body #jazzy-actions .btn:is(.btn-warning, .btn-outline-warning) {
    color: var(--erp-warning) !important;
    background: color-mix(in srgb, var(--erp-warning) 9%, var(--erp-surface)) !important;
    border-color: var(--erp-warning) !important;
}
:root[data-theme-palette] body #jazzy-actions .btn:is(.btn-secondary, .btn-outline-secondary, .btn-default) {
    color: var(--erp-text-muted) !important;
    background: var(--erp-surface2) !important;
    border-color: var(--erp-field-border) !important;
}
:root[data-theme-palette] body #jazzy-actions .btn:is(.btn-secondary, .btn-outline-secondary, .btn-default):hover {
    color: var(--erp-text) !important;
    background: var(--erp-surface3) !important;
}
:root[data-theme-palette] .select2-search__field::placeholder {
    color: var(--erp-text-muted) !important;
    opacity: 1;
}
:root[data-theme-palette] .duplicate-warning {
    color: var(--erp-danger);
    background: color-mix(in srgb, var(--erp-danger) 9%, var(--erp-surface));
}
:root[data-theme-palette] .duplicate-list li a {
    color: var(--erp-accent);
}
:root[data-theme-palette]:not([data-theme-palette="default"]) .employees-app :is(.employees-nav, .employees-menu) .nav-link.active,
:root[data-theme-palette]:not([data-theme-palette="default"]) .employees-app :is(.employees-nav, .employees-menu) .nav-link.active * {
    color: var(--erp-solid-ink);
}
/* Django's custom submit rows and dual-list widgets do not use Bootstrap classes. */
:root[data-theme-palette] body .submit-row input[type="submit"] {
    background: var(--erp-accent) !important;
    color: var(--erp-surface) !important;
    border-color: var(--erp-accent) !important;
    min-height: 44px;
}
:root[data-theme-palette]:not([data-theme-palette="default"]) body .submit-row input[type="submit"] {
    background: var(--erp-button-bg) !important;
    color: var(--erp-button-text) !important;
}
/* Django 5 uses title wrappers with explicit label ink, not just h2 elements. */
:root[data-theme-palette] body .selector :is(.selector-available-title, .selector-chosen-title),
:root[data-theme-palette] body .selector :is(.selector-available-title, .selector-chosen-title) label {
    color: var(--erp-text) !important;
    background: var(--erp-surface2) !important;
}
:root[data-theme-palette="default"] .duplicate-actions .btn-primary {
    color: var(--erp-surface) !important;
    background: var(--erp-accent) !important;
    border-color: var(--erp-accent) !important;
}
:root[data-theme-palette] body :is(.errorlist, .errornote, .invalid-feedback, label.error, span.error, [id$="-error"]) {
    color: var(--erp-danger) !important;
}
/* The standalone personal-data wizard shares palettes without the staff shell. */
:root[data-theme-palette] .erp-public-form {
    --erp-danger-bg: color-mix(in srgb, var(--erp-danger) 9%, var(--erp-surface));
}
:root[data-theme-palette]:not([data-theme-palette="default"]) .erp-public-form .pd-btn {
    color: var(--erp-button-text);
    background: var(--erp-button-bg);
}
/* A dual list needs the full field width; narrow screens use a vertical flow. */
:root[data-theme-palette] body .selector {
    width: 100% !important;
    max-width: 100% !important;
}
:root[data-theme-palette] body .selector :is(.selector-add, .selector-remove) {
    width: 44px !important;
    height: 44px !important;
}
:root[data-theme-palette] body .selector ul.selector-chooser {
    width: 60px !important;
    min-width: 60px !important;
}
:root[data-theme-palette] body :is(.selector-chooseall, .selector-clearall, .related-widget-wrapper-link) {
    min-height: 44px;
    min-width: 44px;
    align-content: center;
}
/* Django's external SVGs carry fixed fills. Keep their native shape, dimensions
   and accessible alt/title; use the SVG alpha channel with a semantic ink. */
:root[data-theme-palette] body img:is(
    [src$="/icon-addlink.svg"], [src$="/icon-changelink.svg"],
    [src$="/icon-deletelink.svg"], [src$="/icon-viewlink.svg"],
    [src$="/icon-yes.svg"], [src$="/icon-no.svg"], [src$="/icon-unknown.svg"]
) {
    object-position: -9999px -9999px;
    background-color: var(--erp-admin-icon-ink);
    mask-image: var(--erp-admin-icon-shape);
    mask-mode: alpha;
    mask-size: contain;
    mask-position: center;
    mask-repeat: no-repeat;
}
:root[data-theme-palette] img[src$="/icon-addlink.svg"] {
    --erp-admin-icon-ink: var(--erp-success);
    --erp-admin-icon-shape: url("../../../admin/img/icon-addlink.svg");
}
:root[data-theme-palette] img[src$="/icon-changelink.svg"] {
    --erp-admin-icon-ink: var(--erp-warning);
    --erp-admin-icon-shape: url("../../../admin/img/icon-changelink.svg");
}
:root[data-theme-palette] img[src$="/icon-deletelink.svg"] {
    --erp-admin-icon-ink: var(--erp-danger);
    --erp-admin-icon-shape: url("../../../admin/img/icon-deletelink.svg");
}
:root[data-theme-palette] img[src$="/icon-viewlink.svg"] {
    --erp-admin-icon-ink: var(--erp-info);
    --erp-admin-icon-shape: url("../../../admin/img/icon-viewlink.svg");
}
:root[data-theme-palette] img[src$="/icon-yes.svg"] {
    --erp-admin-icon-ink: var(--erp-success);
    --erp-admin-icon-shape: url("../../../admin/img/icon-yes.svg");
}
:root[data-theme-palette] img[src$="/icon-no.svg"] {
    --erp-admin-icon-ink: var(--erp-danger);
    --erp-admin-icon-shape: url("../../../admin/img/icon-no.svg");
}
:root[data-theme-palette] img[src$="/icon-unknown.svg"] {
    --erp-admin-icon-ink: var(--erp-text-muted);
    --erp-admin-icon-shape: url("../../../admin/img/icon-unknown.svg");
}
@media (max-width: 767px) {
    :root[data-theme-palette] body .selector {
        display: flex !important;
        flex-direction: column !important;
    }
    :root[data-theme-palette] body .selector :is(.selector-available, .selector-chosen) {
        width: 100% !important;
        flex: none !important;
    }
    :root[data-theme-palette] body .selector ul.selector-chooser {
        width: 100% !important;
        flex-direction: row !important;
        margin: 0 !important;
    }
    :root[data-theme-palette] body .selector-add::before { content: "↓" !important; }
    :root[data-theme-palette] body .selector-remove::before { content: "↑" !important; }
}

/* Keep Default hover fill dark enough for the shared button ink. */
:root[data-theme-palette="default"][data-theme="dark"] body :is(.btn-primary, .btn-outline-primary):is(:hover, :focus, :active, .active),
:root[data-theme-palette][data-theme="dark"] body .erp-operational-colors :is(.btn-primary, .btn-outline-primary):is(:hover, :focus, :active, .active) {
    color: var(--erp-button-text) !important;
    background: var(--erp-solid-accent) !important;
    border-color: var(--erp-accent) !important;
}

/* Success feedback retains its semantic fill even under a Nova primary skin. */
:root[data-theme-palette] .erp-login .login-button.is-success {
    background: var(--erp-solid-success);
    border-color: var(--erp-solid-success);
    color: var(--erp-solid-ink);
}

/* Paid progress must follow the palette, including the foreground on its fill. */
:root[data-theme-palette][data-theme="dark"] body .progress-bar.bg-success {
    background-color: var(--erp-solid-success) !important;
    color: var(--erp-solid-ink) !important;
}
/* Keep calendar/table text from bleeding through Bootstrap tooltip content. */
:root[data-theme-palette][data-theme="dark"] .tooltip {
    --bs-tooltip-opacity: 1;
}

/* Bootstrap component defaults must also follow the original dark palette. */
:root[data-theme-palette][data-theme="dark"] .progress {
    --bs-progress-bg: var(--erp-surface2);
    --bs-progress-bar-bg: var(--erp-solid-accent);
    --bs-progress-bar-color: var(--erp-solid-ink);
}
:root[data-theme-palette][data-theme="dark"] body .progress-bar.bg-info {
    background-color: var(--erp-solid-info) !important;
    color: var(--erp-solid-ink) !important;
}
:root[data-theme-palette][data-theme="dark"] body .page-link:focus {
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--erp-accent) 40%, transparent);
}

/* Global select styling must not push the calendar year below its clipped header. */
:root[data-theme-palette][data-theme="dark"] .flatpickr-months .flatpickr-month {
    height: 44px;
}
:root[data-theme-palette][data-theme="dark"] .flatpickr-current-month {
    display: flex;
    align-items: center;
    gap: 4px;
    left: 40px;
    width: calc(100% - 80px);
    height: 44px;
    padding: 4px 0;
}
:root[data-theme-palette][data-theme="dark"] .flatpickr-current-month .flatpickr-monthDropdown-months {
    flex: 1 1 auto;
    min-width: 0;
    max-width: 100% !important;
    height: 32px;
    padding: 4px 6px;
    margin: 0;
}
:root[data-theme-palette][data-theme="dark"] .flatpickr-current-month .numInputWrapper {
    flex: 0 0 7ch;
}
:root[data-theme-palette][data-theme="dark"] .flatpickr-current-month input.cur-year {
    height: 32px;
}
:root[data-theme-palette][data-theme="dark"] .flatpickr-months :is(.flatpickr-prev-month, .flatpickr-next-month) {
    display: grid;
    place-items: center;
    width: 40px;
    height: 44px;
    padding: 0;
}
:root[data-theme-palette][data-theme="dark"] .flatpickr-calendar .numInputWrapper span {
    border-color: var(--erp-border-solid);
}
:root[data-theme-palette][data-theme="dark"] .flatpickr-calendar .numInputWrapper:hover,
:root[data-theme-palette][data-theme="dark"] .flatpickr-calendar .numInputWrapper span:is(:hover, :active) {
    background: var(--erp-surface3);
}
:root[data-theme-palette][data-theme="dark"] .flatpickr-calendar .numInputWrapper span.arrowUp::after {
    border-bottom-color: var(--erp-text-muted);
}
:root[data-theme-palette][data-theme="dark"] .flatpickr-calendar .numInputWrapper span.arrowDown::after {
    border-top-color: var(--erp-text-muted);
}
/* Server-side crispy errors must win over the ordinary field and paragraph
   rules. Bootstrap embeds a fixed red SVG in invalid inputs; the themed border
   and explicit error text carry that state without a separate fixed palette. */
:root[data-theme-palette][data-theme="dark"] body :is(.form-control.is-invalid, .form-select.is-invalid, .was-validated .form-control:invalid, .was-validated .form-select:invalid) {
    border-color: var(--erp-danger) !important;
    background-image: none !important;
}
:root[data-theme-palette][data-theme="dark"] body :is(.form-control.is-invalid, .form-select.is-invalid, .was-validated .form-control:invalid, .was-validated .form-select:invalid):focus {
    border-color: var(--erp-danger) !important;
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--erp-danger) 25%, transparent) !important;
}
:root[data-theme-palette][data-theme="dark"] body .invalid-feedback,
:root[data-theme-palette][data-theme="dark"] body .invalid-feedback * {
    color: var(--erp-danger) !important;
}

@media (forced-colors: none) {
/* Nova dark controls: luminous outlines and translucent fills, like dashboard
   badges. Operational status regions retain their canonical Default palette. */
:root[data-theme-palette]:not([data-theme-palette="default"])[data-theme="dark"],
:root[data-theme-palette]:not([data-theme-palette="default"])[data-theme="dark"] body {
    --erp-button-bg: color-mix(in srgb, var(--erp-accent) 10%, transparent);
    --erp-button-text: var(--erp-text);
    --bs-link-color: var(--erp-link);
    --bs-link-hover-color: var(--erp-link-hover);
}
:root[data-theme-palette]:not([data-theme-palette="default"])[data-theme="dark"] body :is(.btn-primary,
    .btn-outline-primary,
    .badge-primary,
    .badge.bg-primary,
    .badge.bg-light,
    .badge-light,
    .badge.bg-gray,
    .badge.bg-secondary,
    .badge-secondary,
    .nav-pills .nav-link.active:not(.dashboard-tab-warning),
    .nav-tabs .nav-link.active:not(.dashboard-tab-warning),
    .store-menu a.active,
    .ks-menu a.active,
    .tasks-menu a.active,
    .pricing-segmented button.active,
    .submit-row input[type="submit"],
    .erp-login .login-button:not(.is-success),
    .duplicate-actions .btn-primary,
    #select-client-button,
    #select-kits-button,
    .quick-fill-button,
    .shortcut-btn.date-shortcut,
    .flatpickr-day.selected,
    .client-result-card__btn,
    .select2-results__option--highlighted) {
    --erp-control-tone: var(--erp-accent);
}
:root[data-theme-palette]:not([data-theme-palette="default"])[data-theme="dark"] body :is(.btn-success,
    .btn-outline-success,
    .badge-success,
    .badge.bg-success,
    .shortcut-btn.duration-shortcut,
    .select-client-button,
    .select-kit-button) {
    --erp-control-tone: var(--erp-success);
}
:root[data-theme-palette]:not([data-theme-palette="default"])[data-theme="dark"] body :is(.btn-danger,
    .btn-outline-danger,
    .badge-danger,
    .badge.bg-danger) {
    --erp-control-tone: var(--erp-danger);
}
:root[data-theme-palette]:not([data-theme-palette="default"])[data-theme="dark"] body :is(.btn-warning,
    .btn-outline-warning,
    .badge-warning,
    .badge.bg-warning,
    .nav-link.dashboard-tab-warning) {
    --erp-control-tone: var(--erp-warning);
}
:root[data-theme-palette]:not([data-theme-palette="default"])[data-theme="dark"] body :is(.btn-info,
    .btn-outline-info,
    .badge-info,
    .badge.bg-info) {
    --erp-control-tone: var(--erp-info);
}
:root[data-theme-palette]:not([data-theme-palette="default"])[data-theme="dark"] body :is(.badge.bg-purple,
    .badge-purple) {
    --erp-control-tone: var(--erp-violet);
}
:root[data-theme-palette]:not([data-theme-palette="default"])[data-theme="dark"] body :is(.btn-secondary,
    .btn-outline-secondary,
    .btn-light,
    .btn-dark,
    .btn-outline-light,
    .btn-outline-dark,
    .badge.bg-dark) {
    --erp-control-tone: var(--erp-text-muted);
}
:root[data-theme-palette]:not([data-theme-palette="default"])[data-theme="dark"] body :is(.btn-primary,
    .btn-outline-primary,
    .badge-primary,
    .badge.bg-primary,
    .badge.bg-light,
    .badge-light,
    .badge.bg-gray,
    .badge.bg-secondary,
    .badge-secondary,
    .nav-pills .nav-link.active:not(.dashboard-tab-warning),
    .nav-tabs .nav-link.active:not(.dashboard-tab-warning),
    .store-menu a.active,
    .ks-menu a.active,
    .tasks-menu a.active,
    .pricing-segmented button.active,
    .submit-row input[type="submit"],
    .erp-login .login-button:not(.is-success),
    .duplicate-actions .btn-primary,
    #select-client-button,
    #select-kits-button,
    .quick-fill-button,
    .shortcut-btn.date-shortcut,
    .flatpickr-day.selected,
    .client-result-card__btn,
    .select2-results__option--highlighted,
    .btn-success,
    .btn-outline-success,
    .badge-success,
    .badge.bg-success,
    .shortcut-btn.duration-shortcut,
    .select-client-button,
    .select-kit-button,
    .btn-danger,
    .btn-outline-danger,
    .badge-danger,
    .badge.bg-danger,
    .btn-warning,
    .btn-outline-warning,
    .badge-warning,
    .badge.bg-warning,
    .nav-link.dashboard-tab-warning,
    .btn-info,
    .btn-outline-info,
    .badge-info,
    .badge.bg-info,
    .badge.bg-purple,
    .badge-purple,
    .btn-secondary,
    .btn-outline-secondary,
    .btn-light,
    .btn-dark,
    .btn-outline-light,
    .btn-outline-dark,
    .badge.bg-dark,
    #jazzy-actions .btn:not(.btn-link)):where(:not(.erp-operational-colors *, .pagination *, .dataTables_paginate *, .dt-paging *, .paginator *, .warehouse-pagination *)) {
    color: var(--erp-control-ink, var(--erp-control-tone, var(--erp-accent))) !important;
    background: color-mix(in srgb, var(--erp-control-tone, var(--erp-accent)) 10%, transparent) !important;
    border: 1px solid color-mix(in srgb, var(--erp-control-tone, var(--erp-accent)) 65%, transparent) !important;
}
:root[data-theme-palette]:not([data-theme-palette="default"])[data-theme="dark"] body :is(.btn:not(.btn-link),
    .shortcut-btn,
    .quick-fill-button,
    .select-client-button,
    .select-kit-button,
    .client-result-card__btn,
    .nav-link.active,
    .submit-row input[type="submit"],
    .erp-login .login-button:not(.is-success),
    #jazzy-actions .btn:not(.btn-link)):where(:not(.erp-operational-colors *, .pagination *, .dataTables_paginate *, .dt-paging *, .paginator *, .warehouse-pagination *)):is(:hover, :focus-visible, :active) {
    color: var(--erp-control-ink, var(--erp-control-tone, var(--erp-accent))) !important;
    background: color-mix(in srgb, var(--erp-control-tone, var(--erp-accent)) 16%, transparent) !important;
    border-color: var(--erp-control-tone, var(--erp-accent)) !important;
}
:root[data-theme-palette]:not([data-theme-palette="default"])[data-theme="dark"] body :is(.btn-primary,
    .btn-outline-primary,
    .badge-primary,
    .badge.bg-primary,
    .badge.bg-light,
    .badge-light,
    .badge.bg-gray,
    .badge.bg-secondary,
    .badge-secondary,
    .nav-pills .nav-link.active:not(.dashboard-tab-warning),
    .nav-tabs .nav-link.active:not(.dashboard-tab-warning),
    .store-menu a.active,
    .ks-menu a.active,
    .tasks-menu a.active,
    .pricing-segmented button.active,
    .submit-row input[type="submit"],
    .erp-login .login-button:not(.is-success),
    .duplicate-actions .btn-primary,
    #select-client-button,
    #select-kits-button,
    .quick-fill-button,
    .shortcut-btn.date-shortcut,
    .flatpickr-day.selected,
    .client-result-card__btn,
    .select2-results__option--highlighted,
    .btn-success,
    .btn-outline-success,
    .badge-success,
    .badge.bg-success,
    .shortcut-btn.duration-shortcut,
    .select-client-button,
    .select-kit-button,
    .btn-danger,
    .btn-outline-danger,
    .badge-danger,
    .badge.bg-danger,
    .btn-warning,
    .btn-outline-warning,
    .badge-warning,
    .badge.bg-warning,
    .nav-link.dashboard-tab-warning,
    .btn-info,
    .btn-outline-info,
    .badge-info,
    .badge.bg-info,
    .badge.bg-purple,
    .badge-purple,
    .btn-secondary,
    .btn-outline-secondary,
    .btn-light,
    .btn-dark,
    .btn-outline-light,
    .btn-outline-dark,
    .badge.bg-dark,
    #jazzy-actions .btn:not(.btn-link)):where(:not(.erp-operational-colors *, .pagination *, .dataTables_paginate *, .dt-paging *, .paginator *, .warehouse-pagination *)) :is(i, svg) {
    color: inherit !important;
}
:root[data-theme-palette]:not([data-theme-palette="default"])[data-theme="dark"] body :is(.store-menu,
    .ks-menu,
    .tasks-menu,
    .employees-nav,
    .employees-menu) a.active * {
    color: var(--erp-accent) !important;
}
:root[data-theme-palette]:not([data-theme-palette="default"])[data-theme="dark"] body .btn-link { color: var(--erp-link) !important; }
:root[data-theme-palette]:not([data-theme-palette="default"])[data-theme="dark"] body .btn-link:is(:hover, :focus) { color: var(--erp-link-hover) !important; }
/* Clickable text uses Default link ink independently of the brand accent. Status
   badges, navigation and action controls keep their own semantic treatment. */
:root[data-theme-palette]:not([data-theme-palette="default"])[data-theme="dark"] body a[href]:not(.btn):not(.err-btn):not(.nav-link):not(.page-link):not(.dropdown-item):not(.navbar-brand):not(.brand-link):not(.badge):not(.select-client-button):not(.select-kit-button):not(.active):not(.text-danger):not(.text-warning):not(.text-success) {
    --erp-accent: var(--erp-link);
    --erp-accent-hover: var(--erp-link-hover);
    color: var(--erp-link) !important;
}
:root[data-theme-palette]:not([data-theme-palette="default"])[data-theme="dark"] body a[href]:not(.btn):not(.err-btn):not(.nav-link):not(.page-link):not(.dropdown-item):not(.navbar-brand):not(.brand-link):not(.badge):not(.select-client-button):not(.select-kit-button):not(.active):not(.text-danger):not(.text-warning):not(.text-success):is(:hover, :focus) {
    color: var(--erp-link-hover) !important;
}
}

@media (forced-colors: none) {
/* One neutral ink for dark content and actions, including Default status regions.
   Status tones still supply outlines/fills; ordinary text links keep their role. */
:root[data-theme-palette][data-theme="dark"],
:root[data-theme-palette][data-theme="dark"] body,
:root[data-theme-palette][data-theme="dark"] .erp-operational-colors {
    --erp-text: var(--erp-dark-ink);
    --erp-button-text: var(--erp-dark-ink);
    --erp-solid-ink: var(--erp-dark-ink);
    --erp-solid-accent: color-mix(in srgb, var(--erp-accent) 50%, var(--erp-shadow-color));
    --erp-solid-success: color-mix(in srgb, var(--erp-success) 55%, var(--erp-shadow-color));
    --erp-solid-danger: color-mix(in srgb, var(--erp-danger) 55%, var(--erp-shadow-color));
    --erp-solid-info: color-mix(in srgb, var(--erp-info) 55%, var(--erp-shadow-color));
    --erp-solid-warning: color-mix(in srgb, var(--erp-warning) 55%, var(--erp-shadow-color));
    --erp-solid-violet: color-mix(in srgb, var(--erp-violet) 55%, var(--erp-shadow-color));
}
/* Default uses the owner's exact cyan fill with the shared action ink.
   Operational regions use the same Default roles in every palette. */
:root[data-theme-palette="default"][data-theme="dark"],
:root[data-theme-palette="default"][data-theme="dark"] body,
:root[data-theme-palette][data-theme="dark"] .erp-operational-colors {
    --erp-solid-accent: var(--erp-default-accent-fill);
}
:root[data-theme-palette][data-theme="dark"] body :is(button, .btn,
    input[type="submit"], input[type="button"], input[type="reset"],
    .shortcut-btn, .quick-fill-button, .client-result-card__btn,
    .select-client-button, .select-kit-button, .login-button,
    .err-btn, .ai-btn, #jazzy-actions .btn) {
    --erp-control-ink: var(--erp-button-text);
    color: var(--erp-button-text) !important;
}
:root[data-theme-palette][data-theme="dark"] body :is(button, .btn,
    .shortcut-btn, .quick-fill-button, .client-result-card__btn,
    .select-client-button, .select-kit-button, .login-button,
    .err-btn, .ai-btn, #jazzy-actions .btn) :is(span, i, svg) {
    color: inherit !important;
}
/* Active tab titles share action ink while their badges retain status tones. */
:root[data-theme-palette][data-theme="dark"] body :is(.nav-link.active,
    [role="tab"][aria-selected="true"], .toggle-tab.active,
    .campaign-tabs__nav-item a.active,
    .store-menu a.active, .ks-menu a.active, .tasks-menu a.active,
    .employees-nav a.active, .employees-menu a.active) .badge {
    --erp-control-ink: initial;
}
:root[data-theme-palette][data-theme="dark"] body :is(.nav-link.active,
    [role="tab"][aria-selected="true"], .toggle-tab.active,
    .campaign-tabs__nav-item a.active,
    .store-menu a.active, .ks-menu a.active, .tasks-menu a.active,
    .employees-nav a.active, .employees-menu a.active,
    #managerTabs .nav-link.active) {
    --erp-control-ink: var(--erp-text);
    color: var(--erp-text) !important;
}
:root[data-theme-palette][data-theme="dark"] body :is(.nav-link.active,
    [role="tab"][aria-selected="true"], .toggle-tab.active,
    .campaign-tabs__nav-item a.active,
    .store-menu a.active, .ks-menu a.active, .tasks-menu a.active,
    .employees-nav a.active, .employees-menu a.active,
    #managerTabs .nav-link.active) :is(i, svg, span):not(.badge):not(.badge *) {
    color: inherit !important;
}
}


@media (forced-colors: none) {
/* Resolve the paging accent on the root so Default status regions cannot
   replace the selected palette's navigation color. */
:root[data-theme-palette][data-theme="dark"] {
    --erp-pagination-accent: var(--erp-default-accent-fill);
}
:root[data-theme-palette]:not([data-theme-palette="default"])[data-theme="dark"] {
    --erp-pagination-accent: var(--erp-accent);
}
:root[data-theme-palette][data-theme="dark"] body :is(.pagination, .dataTables_paginate, .dt-paging, .paginator, .warehouse-pagination, #changelist .pagination) :is(.page-link, a, button, .this-page) {
    color: var(--erp-text) !important;
    background: color-mix(in srgb, var(--erp-pagination-accent) 10%, transparent) !important;
    border: 1px solid color-mix(in srgb, var(--erp-pagination-accent) 65%, transparent) !important;
    box-shadow: none;
}
:root[data-theme-palette][data-theme="dark"] body :is(.pagination, .dataTables_paginate, .dt-paging, .paginator, .warehouse-pagination, #changelist .pagination) :is(.page-link, a, button, .this-page):is(:hover, :focus-visible, :active) {
    background: color-mix(in srgb, var(--erp-pagination-accent) 16%, transparent) !important;
    border-color: var(--erp-pagination-accent) !important;
}
:root[data-theme-palette][data-theme="dark"] body :is(.pagination, .dataTables_paginate, .dt-paging, .paginator, .warehouse-pagination, #changelist .pagination) :is(.page-item.active > .page-link, .current, .this-page, [aria-current="page"], button.active, .btn.active) {
    color: var(--erp-text) !important;
    background: color-mix(in srgb, var(--erp-pagination-accent) 22%, transparent) !important;
    border-color: var(--erp-pagination-accent) !important;
}
:root[data-theme-palette][data-theme="dark"] body :is(.pagination, .dataTables_paginate, .dt-paging, .paginator, .warehouse-pagination, #changelist .pagination) :is(.page-link, a, button, .this-page):focus {
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--erp-pagination-accent) 40%, transparent) !important;
}
:root[data-theme-palette][data-theme="dark"] body :is(.pagination, .dataTables_paginate, .dt-paging, .paginator, .warehouse-pagination, #changelist .pagination) :is(.page-item.disabled > .page-link, .disabled:not(.page-item), :disabled, [aria-disabled="true"]) {
    background: color-mix(in srgb, var(--erp-pagination-accent) 6%, transparent) !important;
    border-color: color-mix(in srgb, var(--erp-pagination-accent) 30%, transparent) !important;
    color: var(--erp-text) !important;
    opacity: .5;
    box-shadow: none !important;
    pointer-events: none;
}
:root[data-theme-palette][data-theme="dark"] body :is(.pagination, .dataTables_paginate, .dt-paging, .paginator, .warehouse-pagination, #changelist .pagination) :is(.page-link, a, button, .this-page) :is(span, i, svg) { color: inherit !important; }
}

@media (forced-colors: none) {
/* Owner's light-mode treatment: white bold lettering on colored actions.
   Bind on body and operational regions too; both can own palette variables. */
:root[data-theme-palette][data-theme="light"],
:root[data-theme-palette][data-theme="light"] body,
:root[data-theme-palette][data-theme="light"] .erp-operational-colors {
    --erp-button-text: var(--erp-solid-ink);
    --erp-theme-on-accent: var(--erp-solid-ink);
}
:root[data-theme-palette="default"][data-theme="light"],
:root[data-theme-palette="default"][data-theme="light"] body,
:root[data-theme-palette][data-theme="light"] .erp-operational-colors {
    --erp-button-bg: var(--erp-accent);
}
/* Filled and tinted action variants retain their semantic hue with solid ink. */
:root[data-theme-palette][data-theme="light"] body :is(.btn-success, .btn-outline-success,
    .shortcut-btn.duration-shortcut, .select-client-button, .select-kit-button) {
    --erp-light-control-bg: var(--erp-success);
}
:root[data-theme-palette][data-theme="light"] body :is(.btn-danger, .btn-outline-danger) {
    --erp-light-control-bg: var(--erp-danger);
}
:root[data-theme-palette][data-theme="light"] body :is(.btn-warning, .btn-outline-warning,
    #managerTabs .nav-link.dashboard-tab-warning) {
    --erp-light-control-bg: var(--erp-warning);
}
:root[data-theme-palette][data-theme="light"] body :is(.btn-info, .btn-outline-info) {
    --erp-light-control-bg: var(--erp-info);
}
:root[data-theme-palette][data-theme="light"] body :is(.btn-primary, .btn-outline-primary,
    .btn-success, .btn-outline-success, .btn-danger, .btn-outline-danger,
    .btn-warning, .btn-outline-warning, .btn-info, .btn-outline-info,
    .shortcut-btn, .quick-fill-button, .client-result-card__btn,
    .select-client-button, .select-kit-button, #select-client-button, #select-kits-button,
    .submit-row input[type="submit"],
    .nav-link.active, [role="tab"][aria-selected="true"], .toggle-tab.active,
    .campaign-tabs__nav-item a.active, .store-menu a.active, .ks-menu a.active,
    .tasks-menu a.active, .employees-nav a.active, .employees-menu a.active,
    .pricing-segmented button.active, .page-item.active .page-link,
    .pricing-tabs button.active, .warehouse-tabs button.active, .warehouse-segmented button.active,
    .deposit-tabs a[aria-current], .deposit-stats a[aria-current],
    .deposit-category-nav button[aria-pressed="true"],
    #managerTabs .nav-link.dashboard-tab-warning):not(:where(#jazzy-sidebar *)) {
    --erp-control-ink: var(--erp-button-text);
    background: var(--erp-light-control-bg, var(--erp-button-bg)) !important;
    color: var(--erp-button-text) !important;
    font-weight: 700 !important;
}
:root[data-theme-palette][data-theme="light"] body :is(.login-button, .pd-btn, .err-btn-primary,
    .chat-settings-button.primary, .q-primary, .passport-constructor-trigger,
    #passportConstructorModal .pc-btn:not(.pc-btn-secondary):not(.pc-btn-outline)) {
    color: var(--erp-button-text) !important;
    font-weight: 700 !important;
}
/* Labels and icons sometimes have text-dark/text-muted utilities of their own. */
:root[data-theme-palette][data-theme="light"] body :is(.btn-primary, .btn-outline-primary,
    .btn-success, .btn-outline-success, .btn-danger, .btn-outline-danger,
    .btn-warning, .btn-outline-warning, .btn-info, .btn-outline-info,
    .shortcut-btn, .quick-fill-button, .client-result-card__btn,
    .select-client-button, .select-kit-button, #select-client-button, #select-kits-button,
    .login-button, .pd-btn, .err-btn-primary,
    .chat-settings-button.primary, .q-primary, .passport-constructor-trigger,
    #passportConstructorModal .pc-btn:not(.pc-btn-secondary):not(.pc-btn-outline),
    .nav-link.active, [role="tab"][aria-selected="true"], .toggle-tab.active,
    .campaign-tabs__nav-item a.active, .store-menu a.active, .ks-menu a.active,
    .tasks-menu a.active, .employees-nav a.active, .employees-menu a.active,
    .pricing-segmented button.active, .page-item.active .page-link,
    .pricing-tabs button.active, .warehouse-tabs button.active, .warehouse-segmented button.active,
    .deposit-tabs a[aria-current], .deposit-stats a[aria-current],
    .deposit-category-nav button[aria-pressed="true"],
    #managerTabs .nav-link.dashboard-tab-warning):not(:where(#jazzy-sidebar *))
    :is(span, strong, b, small, em, i, svg) {
    color: var(--erp-button-text) !important;
}
:root[data-theme-palette][data-theme="light"] body :is(.btn-primary, .btn-outline-primary,
    .btn-success, .btn-outline-success, .btn-danger, .btn-outline-danger,
    .btn-warning, .btn-outline-warning, .btn-info, .btn-outline-info, .shortcut-btn,
    .quick-fill-button, .client-result-card__btn, .select-client-button, .select-kit-button,
    .login-button, .pd-btn, .err-btn-primary,
    .chat-settings-button.primary, .q-primary, .passport-constructor-trigger,
    #passportConstructorModal .pc-btn:not(.pc-btn-secondary):not(.pc-btn-outline),
    .nav-link.active, [role="tab"][aria-selected="true"], .toggle-tab.active,
    .campaign-tabs__nav-item a.active, .store-menu a.active, .ks-menu a.active,
    .tasks-menu a.active, .employees-nav a.active, .employees-menu a.active,
    .pricing-segmented button.active, .page-item.active .page-link,
    .pricing-tabs button.active, .warehouse-tabs button.active, .warehouse-segmented button.active,
    .deposit-tabs a[aria-current], .deposit-stats a[aria-current],
    .deposit-category-nav button[aria-pressed="true"],
    #managerTabs .nav-link.dashboard-tab-warning):not(:where(#jazzy-sidebar *))
    :is(span, strong, b, small, em) {
    font-weight: inherit !important;
}
/* Colored counters keep their status hue, including operational table badges. */
:root[data-theme-palette][data-theme="light"] body :is(.badge-success, .badge.bg-success) {
    --erp-light-badge-bg: var(--erp-success);
}
:root[data-theme-palette][data-theme="light"] body :is(.badge-danger, .badge.bg-danger) {
    --erp-light-badge-bg: var(--erp-danger);
}
:root[data-theme-palette][data-theme="light"] body :is(.badge-warning, .badge.bg-warning,
    .dashboard-tab-warning-count) {
    --erp-light-badge-bg: var(--erp-warning);
}
:root[data-theme-palette][data-theme="light"] body :is(.badge-info, .badge.bg-info) {
    --erp-light-badge-bg: var(--erp-info);
}
:root[data-theme-palette][data-theme="light"] body :is(.badge-purple, .badge.bg-purple) {
    --erp-light-badge-bg: var(--erp-violet);
}
:root[data-theme-palette][data-theme="light"] :is(body, body .erp-operational-colors) :is(.badge-primary, .badge.bg-primary,
    .badge-secondary, .badge.bg-secondary, .badge-light, .badge.bg-light, .badge.bg-gray,
    .badge-success, .badge.bg-success, .badge-danger, .badge.bg-danger,
    .badge-warning, .badge.bg-warning, .badge-info, .badge.bg-info,
    .badge-purple, .badge.bg-purple, .dashboard-tab-warning-count) {
    background: var(--erp-light-badge-bg, var(--erp-accent)) !important;
    color: var(--erp-solid-ink) !important;
    font-weight: 700 !important;
}
/* Scope the white ink to counters; section names inherit the sidebar text. */
:root[data-theme-palette][data-theme="light"] body #jazzy-sidebar .sidebar-badge {
    color: var(--erp-solid-ink) !important;
    font-weight: 700 !important;
}
:root[data-theme-palette][data-theme="light"] body #chat-launcher-count {
    color: var(--erp-solid-ink) !important;
    font-weight: 700 !important;
}
:root[data-theme-palette][data-theme="light"] body #jazzy-sidebar
    .sidebar-badge:is(.priority-attention, .priority-urgent) {
    background: var(--sidebar-badge-color) !important;
}
}
