/* Wasender identity. Color tokens only; existing component geometry is retained. */
:root,
[data-bs-theme] {
  --wasender-primary: #1565FF;
  --wasender-primary-rgb: 21, 101, 255;
  --wasender-primary-hover: #0E52D9;
  --wasender-action-text: #0E52D9;
  --wasender-error-solid: #B4232A;
  --wasender-accent: #23D5F5;
  --wasender-accent-rgb: 35, 213, 245;
  --wasender-navy: #0B1F3A;
  --wasender-navy-rgb: 11, 31, 58;
  --wasender-white: #FFFFFF;
  --wasender-white-rgb: 255, 255, 255;
  --wasender-success: #16B77A;
  --wasender-success-rgb: 22, 183, 122;
  --wasender-warning: #F59E0B;
  --wasender-warning-rgb: 245, 158, 11;
  --wasender-error: #E5484D;
  --wasender-error-rgb: 229, 72, 77;
  --wasender-info: #23A6F0;
  --wasender-info-rgb: 35, 166, 240;
  --wasender-background: #FFFFFF;
  --wasender-surface: #FFFFFF;
  --wasender-surface-secondary: #F8FBFF;
  --wasender-surface-elevated: #F8FBFF;
  --wasender-soft: #E6F8FF;
  --wasender-border: #D9E7F2;
  --wasender-text: #1A2A3A;
  --wasender-text-rgb: 26, 42, 58;
  --wasender-heading: #0B1F3A;
  --wasender-heading-rgb: 11, 31, 58;
  --wasender-muted: #6B7C93;
  --wasender-muted-rgb: 107, 124, 147;
  --wasender-border-rgb: 217, 231, 242;
  --wasender-surface-rgb: 255, 255, 255;
  --wasender-surface-secondary-rgb: 248, 251, 255;
  --wasender-soft-rgb: 230, 248, 255;
  --wasender-sidebar: #0B1F3A;
  --wasender-sidebar-hover: #102A46;
  --wasender-sidebar-text: rgba(255, 255, 255, 0.82);
  --wasender-success-text: #0E7850;
  --wasender-warning-text: #8A5300;
  --wasender-error-text: #B4232A;
  --wasender-info-text: #126B9C;
  --wasender-focus: rgba(35, 213, 245, 0.2);

  /* Existing aliases used by the panels, public themes, AI and inline styles. */
  --color-primary: var(--wasender-primary) !important;
  --color-primary-rgb: var(--wasender-primary-rgb) !important;
  --primary-color: var(--wasender-primary) !important;
  --primary-rgb: var(--wasender-primary-rgb) !important;
  --primary: var(--wasender-primary) !important;
  --color-primary-light: var(--wasender-soft) !important;
  --color-primary-soft: var(--wasender-soft) !important;
  --primary-light: var(--wasender-soft) !important;
  --color-primary-text: var(--wasender-white) !important;
  --color-secondary: var(--wasender-accent) !important;
  --secondary-color: var(--wasender-accent) !important;
  --color-secondary-rgb: var(--wasender-accent-rgb) !important;
  --color-secondary-soft: var(--wasender-soft) !important;
  --color-secondary-text: var(--wasender-navy) !important;
  --color-trinary: var(--wasender-navy) !important;
  --color-trinary-rgb: var(--wasender-navy-rgb) !important;
  --color-gradient: var(--wasender-primary) !important;
  --text-gradient: var(--wasender-primary) !important;
  --scroll-thumb: var(--wasender-primary) !important;
  --text-primary: var(--wasender-text) !important;
  --text-secondary: var(--wasender-muted) !important;
  --text-ternary: var(--wasender-muted) !important;
  --text-light: var(--wasender-white) !important;
  --color-dark: var(--wasender-heading) !important;
  --color-dark-light: var(--wasender-soft) !important;
  --color-white: var(--wasender-surface) !important;
  --white: var(--wasender-white) !important;
  --color-border: var(--wasender-border) !important;
  --color-border-light: var(--wasender-border) !important;
  --border-color: var(--wasender-border) !important;
  --border-primary: var(--wasender-border) !important;
  --border-secondary: var(--wasender-border) !important;
  --border-ternary: var(--wasender-border) !important;
  --color-gray-1: var(--wasender-surface-secondary) !important;
  --gray-100: var(--wasender-surface-secondary) !important;
  --gray-200: var(--wasender-border) !important;
  --gray-300: var(--wasender-border) !important;
  --gray-500: var(--wasender-muted) !important;
  --site-bg: var(--wasender-background) !important;
  --card-bg: var(--wasender-surface) !important;
  --topbar-bg: var(--wasender-surface) !important;
  --sidebar-bg: var(--wasender-sidebar) !important;
  --footer-bg: var(--wasender-surface-secondary) !important;
  --color-success: var(--wasender-success) !important;
  --success-color: var(--wasender-success) !important;
  --success: var(--wasender-success) !important;
  --color-success-light: rgba(var(--wasender-success-rgb), 0.12) !important;
  --color-warning: var(--wasender-warning) !important;
  --warning-color: var(--wasender-warning) !important;
  --color-warning-light: rgba(var(--wasender-warning-rgb), 0.12) !important;
  --color-danger: var(--wasender-error) !important;
  --danger-color: var(--wasender-error) !important;
  --danger: var(--wasender-error) !important;
  --color-danger-light: rgba(var(--wasender-error-rgb), 0.12) !important;
  --danger-light: rgba(var(--wasender-error-rgb), 0.12) !important;
  --color-info: var(--wasender-info) !important;
  --info-color: var(--wasender-info) !important;
  --color-info-light: var(--wasender-soft) !important;
  --us-primary-rgb: var(--wasender-primary-rgb) !important;
  --us-success-rgb: var(--wasender-success-rgb) !important;
  --us-warning-rgb: var(--wasender-warning-rgb) !important;
  --us-danger-rgb: var(--wasender-error-rgb) !important;

  /* Bootstrap keeps its existing components, using the same identity. */
  --bs-primary: var(--wasender-primary) !important;
  --bs-primary-rgb: var(--wasender-primary-rgb) !important;
  --bs-secondary: var(--wasender-muted) !important;
  --bs-secondary-rgb: 107, 124, 147 !important;
  --bs-success: var(--wasender-success) !important;
  --bs-success-rgb: var(--wasender-success-rgb) !important;
  --bs-warning: var(--wasender-warning) !important;
  --bs-warning-rgb: var(--wasender-warning-rgb) !important;
  --bs-danger: var(--wasender-error) !important;
  --bs-danger-rgb: var(--wasender-error-rgb) !important;
  --bs-info: var(--wasender-info) !important;
  --bs-info-rgb: var(--wasender-info-rgb) !important;
  --bs-body-bg: var(--wasender-background) !important;
  --bs-body-color: var(--wasender-text) !important;
  --bs-secondary-bg: var(--wasender-surface-secondary) !important;
  --bs-tertiary-bg: var(--wasender-surface-elevated) !important;
  --bs-secondary-color: var(--wasender-muted) !important;
  --bs-heading-color: var(--wasender-heading) !important;
  --bs-emphasis-color: var(--wasender-heading) !important;
  --bs-border-color: var(--wasender-border) !important;
  --bs-border-color-translucent: var(--wasender-border) !important;
  --bs-link-color: var(--wasender-primary) !important;
  --bs-link-color-rgb: var(--wasender-primary-rgb) !important;
  --bs-link-hover-color: var(--wasender-primary-hover) !important;
  --bs-link-hover-color-rgb: 14, 82, 217 !important;
  --bs-primary-bg-subtle: var(--wasender-soft) !important;
  --bs-info-bg-subtle: var(--wasender-soft) !important;
  --bs-primary-text-emphasis: var(--wasender-primary) !important;
  --bs-info-text-emphasis: var(--wasender-primary) !important;
  --bs-primary-border-subtle: var(--wasender-border) !important;
  --bs-info-border-subtle: var(--wasender-border) !important;
  --bs-focus-ring-color: var(--wasender-focus) !important;
  --bs-gradient: none !important;
  --ck-color-base-background: var(--wasender-surface);
  --ck-color-base-border: var(--wasender-border);
  --ck-color-text: var(--wasender-text);
  --ck-color-toolbar-background: var(--wasender-surface-secondary);
  --ck-color-toolbar-border: var(--wasender-border);
  --ck-color-panel-background: var(--wasender-surface-elevated);
  --ck-color-panel-border: var(--wasender-border);
  --ck-color-dropdown-panel-background: var(--wasender-surface-elevated);
  --ck-color-button-default-hover-background: var(--wasender-soft);
  --ck-color-button-default-active-background: var(--wasender-soft);
  --ck-color-button-on-background: var(--wasender-soft);
  --ck-color-button-on-color: var(--wasender-primary);
  --ck-color-focus-border: var(--wasender-primary);
  --ck-color-base-focus: var(--wasender-accent);
  --wasender-chart-1: var(--wasender-primary);
  --wasender-chart-2: var(--wasender-accent);
  --wasender-chart-3: var(--wasender-navy);
  --wasender-chart-4: var(--wasender-success);
  --wasender-chart-5: var(--wasender-warning);
  --wasender-chart-6: var(--wasender-muted);
}

@media (prefers-color-scheme: dark) {
  :root:not([data-bs-theme="light"]) {
    --wasender-background: #081525;
    --wasender-surface: #0B1F3A;
    --wasender-surface-secondary: #102A46;
    --wasender-surface-elevated: #102A46;
    --wasender-soft: #102A46;
    --wasender-text: #F7FBFF;
    --wasender-text-rgb: 247, 251, 255;
    --wasender-heading: #F7FBFF;
    --wasender-heading-rgb: 247, 251, 255;
    --wasender-muted: #A9BCD0;
    --wasender-muted-rgb: 169, 188, 208;
    --wasender-border-rgb: 28, 59, 87;
    --wasender-surface-rgb: 11, 31, 58;
    --wasender-surface-secondary-rgb: 16, 42, 70;
    --wasender-soft-rgb: 16, 42, 70;
    --wasender-border: #1C3B57;
    --wasender-success-text: #16B77A;
    --wasender-warning-text: #F59E0B;
    --wasender-error-text: #FF9A9E;
    --wasender-action-text: #23D5F5;
    --wasender-info-text: #23D5F5;
    --wasender-chart-3: var(--wasender-info);
  }
}
[data-bs-theme="dark"] {
  --wasender-background: #081525;
  --wasender-surface: #0B1F3A;
  --wasender-surface-secondary: #102A46;
  --wasender-surface-elevated: #102A46;
  --wasender-soft: #102A46;
  --wasender-text: #F7FBFF;
  --wasender-text-rgb: 247, 251, 255;
  --wasender-heading: #F7FBFF;
  --wasender-heading-rgb: 247, 251, 255;
  --wasender-muted: #A9BCD0;
  --wasender-muted-rgb: 169, 188, 208;
  --wasender-border-rgb: 28, 59, 87;
  --wasender-surface-rgb: 11, 31, 58;
  --wasender-surface-secondary-rgb: 16, 42, 70;
  --wasender-soft-rgb: 16, 42, 70;
  --wasender-border: #1C3B57;
  --wasender-success-text: #16B77A;
  --wasender-warning-text: #F59E0B;
  --wasender-error-text: #FF9A9E;
  --wasender-action-text: #23D5F5;
  --wasender-info-text: #23D5F5;
  --wasender-chart-3: var(--wasender-info);
}

html body:not(:root) { background-color: var(--wasender-background) !important; color: var(--wasender-text) !important; }
h1, h2, h3, h4, h5, h6 { color: var(--wasender-heading) !important; }
a { color: var(--wasender-primary); }
a:hover { color: var(--wasender-primary-hover); }
::selection { background-color: rgba(var(--wasender-primary-rgb), 0.16); color: var(--wasender-heading); }

.ai-text-generator-btn:not(:root), .ai-image-generator-btn:not(:root) {
  background-color: var(--wasender-surface) !important;
  color: var(--wasender-text) !important;
}
.ai-text-generator-btn .ai-icon:not(:root), .ai-image-generator-btn .ai-image-icon:not(:root) {
  background-color: var(--wasender-navy) !important;
  color: var(--wasender-accent) !important;
}
.tooltip { --bs-tooltip-bg: var(--wasender-surface-elevated); --bs-tooltip-color: var(--wasender-text); }
:is(button, a, input, select, textarea, [tabindex]):focus-visible {
  outline-color: var(--wasender-accent);
  box-shadow: 0 0 0 3px var(--wasender-focus);
}
.form-control, .form-select, .select2-selection {
  background-color: var(--wasender-surface) !important;
  color: var(--wasender-text) !important;
  border-color: var(--wasender-border) !important;
}
input::placeholder, textarea::placeholder { color: var(--wasender-muted) !important; }
.form-control:focus, .form-select:focus, .select2-container--focus .select2-selection {
  border-color: var(--wasender-primary) !important;
  box-shadow: 0 0 0 3px var(--wasender-focus) !important;
}
.form-check-input:not(:root) {
  background-color: var(--wasender-surface) !important;
  border-color: var(--wasender-muted) !important;
  accent-color: var(--wasender-primary);
}
.form-check-input:is(:checked, :indeterminate):not(:root) {
  background-color: var(--wasender-primary) !important;
  border-color: var(--wasender-primary) !important;
}
.form-check-input[type="checkbox"]:checked:not(:root) {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m5 10 3 3 7-7'/%3e%3c/svg%3e") !important;
}
.form-check-input[type="checkbox"]:indeterminate:not(:root) {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-width='3' d='M5 10h10'/%3e%3c/svg%3e") !important;
}
.form-switch .form-check-input:checked:not(:root) {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e") !important;
}
.form-switch .form-check-input:not(:checked):not(:indeterminate):not(:root) {
  background-color: var(--wasender-surface-secondary) !important;
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%230B1F3A'/%3e%3c/svg%3e") !important;
}
[data-bs-theme="dark"] .form-switch .form-check-input:not(:checked):not(:indeterminate):not(:root) {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e") !important;
}
input[type="checkbox"], input[type="radio"] { accent-color: var(--wasender-primary); }
.form-check-input:focus-visible:not(:root) { outline: 2px solid var(--wasender-primary); outline-offset: 2px; }
.form-check-input:disabled:not(:root) { opacity: 0.75; }
.switch-wrapper { position: relative; }
.switch-wrapper .switch-input[type="checkbox"] {
  display: block;
  visibility: visible;
  position: absolute;
  inset: 0;
  width: 40px;
  height: 20px;
  margin: 0;
  opacity: 0;
  z-index: 1;
  cursor: pointer;
}
.switch-wrapper .toggle:before { background-color: var(--wasender-muted) !important; }
.switch-wrapper .switch-input[type="checkbox"]:checked + .toggle:before { background-color: var(--wasender-primary) !important; }
.switch-wrapper .toggle > span,
.switch-wrapper .switch-input[type="checkbox"]:checked + .toggle > span { background-color: var(--wasender-white) !important; }
.switch-wrapper .switch-input:focus-visible + .toggle { outline: 2px solid var(--wasender-primary); outline-offset: 3px; }
.switch-wrapper .switch-input:disabled { cursor: not-allowed; }
.switch-wrapper .switch-input:disabled + .toggle { opacity: 0.75; cursor: not-allowed; }
.campaign-channel-card input[type="checkbox"] { display: block; position: absolute; width: 1px; height: 1px; opacity: 0; }
.campaign-channel-card:has(input:focus-visible) { outline: 2px solid var(--wasender-primary); outline-offset: 3px; }
.card, .i-card, .i-card-md, .modal-content, .dropdown-menu, .popover, .flatpickr-calendar {
  background-color: var(--wasender-surface) !important;
  border-color: var(--wasender-border) !important;
  color: var(--wasender-text);
}
.dropdown-item { color: var(--wasender-text); }
/* Keep filter controls inside their surface and let actions wrap naturally. */
.table-filter {
  padding: 16px 20px;
  border: 1px solid var(--wasender-border);
  border-radius: var(--radius-12);
  background-color: var(--wasender-surface);
}
.table-filter .filter-action {
  flex-wrap: wrap;
  min-width: 0;
}
.table-filter .filter-action > :is(.form-select, .select2-container, .input-group) {
  flex: 1 1 180px;
  min-width: 0;
  width: auto !important;
  max-width: 100%;
}
.table-filter .filter-action > :is(button, a) {
  flex-shrink: 0;
  white-space: nowrap;
}
.table-filter .input-group > .form-control {
  border-start-end-radius: 0;
  border-end-end-radius: 0;
}
.card-header-right {
  min-width: 0;
  max-width: 100%;
}
.card-header-right > .d-flex {
  flex-wrap: wrap;
  align-items: center;
}
.header .themeForm {
  display: flex;
  align-items: center;
  margin: 0;
}
.header .theme-toggler:focus-visible {
  outline: 2px solid var(--wasender-primary);
  outline-offset: 3px;
}
@media (max-width: 575.98px) {
  .table-filter { padding: 15px; }
  .table-filter .filter-action {
    flex-direction: row;
    align-items: center;
  }
  .table-filter .filter-action > :is(.form-select, .select2-container, .input-group) {
    flex-basis: 100%;
  }
}
.dropdown-item:hover, .dropdown-item:focus { background-color: var(--wasender-soft); }
.dropdown-item.active, .dropdown-item:active { background-color: var(--wasender-primary); color: var(--wasender-white); }
table {
  --bs-table-bg: var(--wasender-surface);
  --bs-table-color: var(--wasender-text);
  --bs-table-border-color: var(--wasender-border);
  --bs-table-hover-bg: var(--wasender-soft);
  --bs-table-hover-color: var(--wasender-text);
  --bs-table-striped-bg: var(--wasender-surface-secondary);
}
table thead th { background-color: var(--wasender-surface-secondary) !important; color: var(--wasender-heading) !important; }
table tbody tr:hover > td { background-color: var(--wasender-soft) !important; }
.i-badge.primary-soft, .i-badge.info-soft, .badge.bg-info-subtle {
  background-color: var(--wasender-soft) !important;
  color: var(--wasender-primary) !important;
}
.i-badge.success-soft { color: var(--wasender-success-text) !important; }
.i-badge.warning-soft { color: var(--wasender-warning-text) !important; }
.i-badge.danger-soft { color: var(--wasender-error-text) !important; }
.i-badge.success-solid, .i-badge.warning-solid, .i-badge.info-solid { color: var(--wasender-navy) !important; }
.text-gradient, [class~="text-gradient"] {
  background-image: none !important;
  background-color: transparent !important;
  color: var(--wasender-primary) !important;
  -webkit-text-fill-color: var(--wasender-primary) !important;
}
[style*="linear-gradient"], [style*="radial-gradient"] {
  background-image: none !important;
  background-color: var(--wasender-primary) !important;
}

/* Preserve both sidebar variants and the existing mobile/desktop navigation. */
.sidebar {
  --text-primary: var(--wasender-white) !important;
  --text-secondary: var(--wasender-sidebar-text) !important;
  --sidebar-text-color: var(--wasender-sidebar-text) !important;
  --card-bg: var(--wasender-sidebar) !important;
  --color-dark-light: var(--wasender-sidebar-hover) !important;
  --color-border: #1C3B57 !important;
  --color-border-light: #1C3B57 !important;
  background-color: var(--wasender-sidebar) !important;
  color: var(--wasender-sidebar-text);
}
.sidebar .sub-menu-wrapper { background-color: var(--wasender-sidebar) !important; }
.sidebar .sidebar-menu-link[aria-expanded="true"] {
  background-color: var(--wasender-sidebar-hover) !important;
  color: var(--wasender-white) !important;
}
.sidebar .sidebar-menu-note a { color: var(--wasender-accent) !important; }
.sidebar :is(h1, h2, h3, h4, h5, h6) { color: var(--wasender-white) !important; }
.sidebar .menu-link, .sidebar .sidebar-menu-link { color: var(--wasender-sidebar-text) !important; }
.sidebar .menu-label, .sidebar .sidebar-menu-link > p { opacity: 1 !important; }
.sidebar .menu-link:hover, .sidebar .sidebar-menu-link:hover {
  background-color: var(--wasender-sidebar-hover) !important;
  color: var(--wasender-white) !important;
}
.sidebar .menu-link.active, .sidebar .sidebar-menu-link.active {
  background-color: var(--wasender-primary) !important;
  color: var(--wasender-white) !important;
}
.sidebar .menu-link.active .menu-symbol, .sidebar .sidebar-menu-link.active > span {
  background-color: var(--wasender-primary) !important;
  color: var(--wasender-white) !important;
}
.sidebar .menu-link:hover .menu-symbol { background-color: var(--wasender-sidebar-hover) !important; color: var(--wasender-white) !important; }
.sidebar .menu-link.active:hover .menu-symbol { background-color: var(--wasender-primary) !important; }

/* The Classic public theme uses card-bg for its existing dark feature sections. */
[data-wasender-public-theme="default"] { --card-bg: var(--wasender-navy) !important; }
.auth-left:not(:root)::after { background-color: var(--wasender-soft) !important; }

.msg-row.msg-outbound .msg-bubble:not(:root) {
  background-color: var(--wasender-soft) !important;
  border-color: var(--wasender-border) !important;
  color: var(--wasender-text) !important;
}

/* Shared control recipes: solid and outline states must use matching color pairs. */
:is(.i-btn, .icon-btn, .btn) {
  --wasender-control-bg: var(--wasender-primary);
  --wasender-control-fg: var(--wasender-white);
  --wasender-control-hover-bg: var(--wasender-primary-hover);
  --wasender-control-hover-fg: var(--wasender-white);
  --wasender-control-soft: var(--wasender-soft);
  --wasender-control-soft-fg: var(--wasender-action-text);
  --wasender-control-border: var(--wasender-primary);
}
:is(.btn-secondary, .btn-outline-secondary, .i-btn.btn--secondary) {
  --wasender-control-bg: var(--wasender-soft);
  --wasender-control-fg: var(--wasender-action-text);
  --wasender-control-hover-bg: var(--wasender-soft);
  --wasender-control-hover-fg: var(--wasender-action-text);
  --wasender-control-border: var(--wasender-border);
}
:is(.btn-success, .btn-outline-success, .i-btn.btn--success, .icon-btn.success-solid, .icon-btn.success-soft) {
  --wasender-control-bg: var(--wasender-success);
  --wasender-control-fg: var(--wasender-navy);
  --wasender-control-hover-bg: #0E7850;
  --wasender-control-hover-fg: var(--wasender-white);
  --wasender-control-soft: rgba(var(--wasender-success-rgb), 0.12);
  --wasender-control-soft-fg: var(--wasender-success-text);
  --wasender-control-border: var(--wasender-success);
}
:is(.btn-warning, .btn-outline-warning, .i-btn.btn--warning, .icon-btn.warning-solid, .icon-btn.warning-soft) {
  --wasender-control-bg: var(--wasender-warning);
  --wasender-control-fg: var(--wasender-navy);
  --wasender-control-hover-bg: #8A5300;
  --wasender-control-hover-fg: var(--wasender-white);
  --wasender-control-soft: rgba(var(--wasender-warning-rgb), 0.12);
  --wasender-control-soft-fg: var(--wasender-warning-text);
  --wasender-control-border: var(--wasender-warning);
}
:is(.btn-danger, .btn-outline-danger, .i-btn.btn--danger, .icon-btn.danger-solid, .icon-btn.danger-soft) {
  --wasender-control-bg: var(--wasender-error-solid);
  --wasender-control-fg: var(--wasender-white);
  --wasender-control-hover-bg: var(--wasender-error-solid);
  --wasender-control-hover-fg: var(--wasender-white);
  --wasender-control-soft: rgba(var(--wasender-error-rgb), 0.12);
  --wasender-control-soft-fg: var(--wasender-error-text);
  --wasender-control-border: var(--wasender-error);
}
:is(.btn-info, .btn-outline-info, .i-btn.btn--info, .icon-btn.info-solid, .icon-btn.info-soft) {
  --wasender-control-bg: var(--wasender-info);
  --wasender-control-fg: var(--wasender-navy);
  --wasender-control-hover-bg: #126B9C;
  --wasender-control-hover-fg: var(--wasender-white);
  --wasender-control-soft: var(--wasender-soft);
  --wasender-control-soft-fg: var(--wasender-info-text);
  --wasender-control-border: var(--wasender-info);
}
:is(.btn-dark, .btn-outline-dark, .i-btn.btn--dark, .icon-btn.dark-solid, .icon-btn.dark-soft) {
  --wasender-control-bg: var(--wasender-navy);
  --wasender-control-fg: var(--wasender-white);
  --wasender-control-hover-bg: var(--wasender-sidebar-hover);
  --wasender-control-hover-fg: var(--wasender-white);
  --wasender-control-soft-fg: var(--wasender-text);
  --wasender-control-border: var(--wasender-border);
}
:is(.btn-light, .btn-outline-light, .i-btn.btn--white) {
  --wasender-control-bg: var(--wasender-surface-secondary);
  --wasender-control-fg: var(--wasender-text);
  --wasender-control-hover-bg: var(--wasender-soft);
  --wasender-control-hover-fg: var(--wasender-text);
  --wasender-control-soft-fg: var(--wasender-text);
  --wasender-control-border: var(--wasender-border);
}
.i-btn:not(.outline):not(:root),
:is(.btn-primary, .btn-secondary, .btn-success, .btn-warning, .btn-danger, .btn-info, .btn-dark, .btn-light):not(:root),
.icon-btn:not(.btn-ghost)[class*="-solid"]:not(:root) {
  --bs-btn-disabled-bg: var(--wasender-control-bg);
  --bs-btn-disabled-color: var(--wasender-control-fg);
  background-color: var(--wasender-control-bg) !important;
  color: var(--wasender-control-fg) !important;
  border-color: var(--wasender-control-border) !important;
}
.i-btn:not(.outline):not(:disabled):hover:not(:root),
:is(.btn-primary, .btn-secondary, .btn-success, .btn-warning, .btn-danger, .btn-info, .btn-dark, .btn-light):not(:disabled):hover:not(:root),
.icon-btn:not(.btn-ghost)[class*="-solid"]:not(:disabled):hover:not(:root) {
  background-color: var(--wasender-control-hover-bg) !important;
  color: var(--wasender-control-hover-fg) !important;
}
.i-btn.outline:not(:root), .i-btn.btn--primary-outline:not(:root),
.btn[class*="btn-outline-"]:not(:root),
.icon-btn:not(.btn-ghost)[class*="-soft"]:not(:root) {
  background-color: var(--wasender-control-soft) !important;
  color: var(--wasender-control-soft-fg) !important;
  border-color: var(--wasender-control-border) !important;
}
.i-btn.outline:not(:disabled):hover:not(:root), .i-btn.btn--primary-outline:not(:disabled):hover:not(:root),
.btn[class*="btn-outline-"]:not(:disabled):hover:not(:root) {
  background-color: var(--wasender-control-bg) !important;
  color: var(--wasender-control-fg) !important;
}
.icon-btn.btn-ghost:not(:root) { background-color: transparent !important; color: var(--wasender-control-soft-fg) !important; }
.icon-btn.btn-ghost[class*="-soft"]:not(:disabled):hover:not(:root) {
  background-color: var(--wasender-control-soft) !important;
  color: var(--wasender-control-soft-fg) !important;
}
.icon-btn.btn-ghost[class*="-solid"]:not(:disabled):hover:not(:root) {
  background-color: var(--wasender-control-bg) !important;
  color: var(--wasender-control-fg) !important;
}
.icon-btn .tooltiptext:not(:root) { background-color: var(--wasender-navy) !important; color: var(--wasender-white) !important; }
.i-badge.primary-soft:not(:root), .i-badge.info-soft:not(:root) { color: var(--wasender-action-text) !important; }
.i-badge.danger-solid:not(:root) { background-color: var(--wasender-error-solid) !important; color: var(--wasender-white) !important; }
.i-badge.dark-solid:not(:root) { background-color: var(--wasender-navy) !important; color: var(--wasender-white) !important; }
.alert-info { --bs-alert-color: var(--wasender-action-text); }
.page-link { --bs-pagination-color: var(--wasender-action-text); --bs-pagination-hover-color: var(--wasender-action-text); }
.nav-tabs .nav-link:not(.active) { color: var(--wasender-action-text) !important; }
.flatpickr-day.prevMonthDay, .flatpickr-day.nextMonthDay {
  color: var(--wasender-text) !important;
}
.ck .ck-button.ck-on .ck-button__label {
  color: var(--wasender-white) !important;
}
.bg-danger.text-white { background-color: var(--wasender-error-solid) !important; }
:is(.bg-success, .bg-warning, .bg-info).text-white { color: var(--wasender-navy) !important; }
.table-container table > tbody td { color: var(--wasender-text) !important; }

/* Campaign enums use badge--*; Bootstrap's default is white text with no fill. */
.badge:not([class*="bg-"]):not([class*="text-bg-"]),
.badge.bg-secondary:not(:root), .badge.bg-secondary-soft:not(:root) {
  background-color: var(--wasender-surface-secondary) !important;
  color: var(--wasender-text) !important;
}
.badge.badge--primary:not(:root), .badge.bg-primary-soft:not(:root) {
  background-color: var(--wasender-soft) !important;
  color: var(--wasender-action-text) !important;
}
.badge.badge--info:not(:root), .badge.bg-info-soft:not(:root) {
  background-color: var(--wasender-soft) !important;
  color: var(--wasender-info-text) !important;
}
.badge.badge--success:not(:root), .badge.bg-success-soft:not(:root) {
  background-color: rgba(var(--wasender-success-rgb), 0.12) !important;
  color: var(--wasender-success-text) !important;
}
.badge.badge--warning:not(:root), .badge.bg-warning-soft:not(:root) {
  background-color: rgba(var(--wasender-warning-rgb), 0.12) !important;
  color: var(--wasender-warning-text) !important;
}
.badge.badge--danger:not(:root), .badge.bg-danger-soft:not(:root) {
  background-color: rgba(var(--wasender-error-rgb), 0.12) !important;
  color: var(--wasender-error-text) !important;
}

/* Campaign wizard and channel indicators need explicit foreground/background pairs. */
.campaign-delivery-card .delivery-icon:not(:root) {
  background-color: var(--wasender-surface-secondary) !important;
  color: var(--wasender-text) !important;
}
.campaign-delivery-card.active .delivery-icon:not(:root) {
  background-color: var(--wasender-primary) !important;
  color: var(--wasender-white) !important;
}
.campaign-step:not(:root) { opacity: 1; }
.campaign-step .step-num:not(:root) {
  background-color: var(--wasender-surface-secondary) !important;
  color: var(--wasender-text) !important;
}
.campaign-step.active .step-num:not(:root) {
  background-color: var(--wasender-primary) !important;
  color: var(--wasender-white) !important;
}
.campaign-step.completed .step-num:not(:root) {
  background-color: var(--wasender-success) !important;
  color: var(--wasender-navy) !important;
}
:is(.channel-badge-sm, .channel-icon, .channel-icon-sm, .channel-header-icon, .channel-badge, .channel-perf-icon, .gateway-info-badge, .item-icon):is(.channel-sms, .sms):not(:root) {
  background-color: var(--wasender-soft) !important;
  color: var(--wasender-action-text) !important;
}
:is(.channel-badge-sm, .channel-icon, .channel-icon-sm, .channel-header-icon, .channel-badge, .channel-perf-icon, .gateway-info-badge, .item-icon):is(.channel-email, .email):not(:root) {
  background-color: var(--wasender-soft) !important;
  color: var(--wasender-info-text) !important;
}
:is(.channel-badge-sm, .channel-icon, .channel-icon-sm, .channel-header-icon, .channel-badge, .channel-perf-icon, .gateway-info-badge, .item-icon):is(.channel-whatsapp, .whatsapp):not(:root) {
  background-color: rgba(var(--wasender-success-rgb), 0.12) !important;
  color: var(--wasender-success-text) !important;
}
.campaign-channel-card .channel-count:not(:root), .campaign-delivery-card .delivery-desc:not(:root),
.table :is(.text-muted, small):not(:root) { color: var(--wasender-text) !important; }
.dropdown-item.text-danger:not(:root) { color: var(--wasender-error-text) !important; }
.dropdown-item.text-warning:not(:root) { color: var(--wasender-warning-text) !important; }
.btn-link.text-muted:not(:root) { color: var(--wasender-action-text) !important; }

/* Shared panel states, including Bootstrap badges and user-only dashboard actions. */
.badge:is(.bg-success, .bg-warning, .bg-info):not(:root) { color: var(--wasender-navy) !important; }
.badge.bg-danger:not(:root) { background-color: var(--wasender-error-solid) !important; color: var(--wasender-white) !important; }
.badge:is(.bg-light, .bg-secondary-subtle):not(:root) { color: var(--wasender-text) !important; }
.badge:is(.bg-primary-subtle, .bg-info-subtle, .bg-primary.bg-opacity-10):not(:root) {
  background-color: var(--wasender-soft) !important;
  color: var(--wasender-action-text) !important;
}
.badge.bg-success-subtle:not(:root) {
  background-color: rgba(var(--wasender-success-rgb), 0.12) !important;
  color: var(--wasender-success-text) !important;
}
.badge.bg-warning-subtle:not(:root) {
  background-color: rgba(var(--wasender-warning-rgb), 0.12) !important;
  color: var(--wasender-warning-text) !important;
}
.badge.bg-danger-subtle:not(:root) {
  background-color: rgba(var(--wasender-error-rgb), 0.12) !important;
  color: var(--wasender-error-text) !important;
}
.user-dashboard-buy-btn:not(:root), .user-dashboard-btn-withdraw:not(:root) {
  background-color: var(--wasender-soft) !important;
  color: var(--wasender-action-text) !important;
}
:is(.user-dashboard-buy-btn, .user-dashboard-btn-withdraw):is(:hover, :active):not(:root),
.user-dashboard-btn-affiliate:not(:root), .template-category-btn:is(.active, :hover):not(:root) {
  background-color: var(--wasender-primary) !important;
  color: var(--wasender-white) !important;
}
.setup-guide__cta:not(:root) {
  background-color: var(--wasender-warning) !important;
  color: var(--wasender-navy) !important;
}
.template-category-btn:not(.active):not(:hover):not(:root) { color: var(--wasender-text) !important; }
.config-btn--success:not(:root) { background-color: var(--wasender-success) !important; color: var(--wasender-navy) !important; }
.config-btn--success:hover:not(:root) { background-color: #0E7850 !important; color: var(--wasender-white) !important; }
.action-btn--sync:not(:root) { background-color: var(--wasender-soft) !important; color: var(--wasender-action-text) !important; }
.chat-body-footer .chat-submit-btn:not(:root) {
  background-color: var(--wasender-primary) !important;
  color: var(--wasender-white) !important;
}
.chat-body-footer .chat-submit-btn:hover:not(:root) { background-color: var(--wasender-primary-hover) !important; }
.form-tab .nav .nav-link:not(:root), .channel-subtab .nav .nav-link:not(:root) { color: var(--wasender-text) !important; }
.form-tab .nav .nav-link:is(.active, :hover, :focus):not(:root), .channel-subtab .nav .nav-link:is(.active, :hover, :focus):not(:root) { color: var(--wasender-action-text) !important; }
.chat-left-sidebar .chat-menus .chat-menu > .nav-item .nav-link:not(:root) {
  background-color: transparent !important;
  color: var(--wasender-text) !important;
}
.chat-left-sidebar .chat-menus .chat-menu > .nav-item .nav-link:is(.active, :hover):not(:root) {
  background-color: var(--wasender-primary) !important;
  color: var(--wasender-white) !important;
}
.chat-left-sidebar:not(:root) { background-color: var(--wasender-surface-elevated) !important; }
.api-channel-tabs .nav-link:not(:root) { color: var(--wasender-action-text) !important; }
.nav-tabs .nav-link:not(:root), .btn-link:not(:root) { color: var(--wasender-action-text) !important; }
.dropdown-item.text-success:not(:root) { color: var(--wasender-success-text) !important; }
.dropdown-item:is(.text-success, .text-warning, .text-danger):is(.active, :active):not(:root) { color: var(--wasender-white) !important; }
.tab-nav-custom .tab-btn:not(:root), .server-type-btn:not(:root),
.copy-btn:not(:root), .us-copy-btn:not(:root), .quick-btn:not(:root), .source-badge:not(:root) {
  background-color: var(--wasender-soft) !important;
  color: var(--wasender-action-text) !important;
}
.tab-nav-custom .tab-btn:is(.active, :hover):not(:root), .server-type-btn:is(:hover, :active):not(:root),
.copy-btn:hover:not(:root), .us-copy-btn:hover:not(:root),
.config-btn--primary:not(:root), .action-btn--primary:not(:root), .bulk-btn.import:not(:disabled):not(:root), .us-btn-scan:not(:disabled):not(:root) {
  background-color: var(--wasender-primary) !important;
  color: var(--wasender-white) !important;
  opacity: 1;
}
.config-btn--primary:hover:not(:root), .us-btn-scan:not(:disabled):hover:not(:root) {
  background-color: var(--wasender-primary-hover) !important;
  opacity: 1;
}
.server-type-btn .text-muted:not(:root) { color: inherit !important; }
.quick-btn.is-unlimited:not(:root) { color: var(--wasender-success-text) !important; }
.config-btn--warning:not(:root), .action-btn--warning:not(:root) {
  background-color: var(--wasender-warning) !important;
  color: var(--wasender-navy) !important;
}
.config-btn--danger:not(:root), .action-btn--danger:not(:root), .bulk-btn.delete:not(:root) {
  background-color: var(--wasender-error-solid) !important;
  color: var(--wasender-white) !important;
}
.action-btn--success:not(:root), .us-btn-install-manual:not(:root) {
  background-color: var(--wasender-success) !important;
  color: var(--wasender-navy) !important;
}
.action-btn--info:not(:root) { background-color: var(--wasender-info) !important; color: var(--wasender-navy) !important; }
.legacy-card:not(:root) { opacity: 1; }
.nav-tabs.pill-tab .nav-link.active:not(:root), .vertical-tab .nav-pills .nav-link.active:not(:root) {
  background-color: var(--wasender-primary) !important;
  color: var(--wasender-white) !important;
}
.vertical-tab .nav-pills .nav-link:not(.active):not(:root) { color: var(--wasender-action-text) !important; }
.dropdown-item.dropdown-item:active:not(:root) { background-color: var(--wasender-primary) !important; color: var(--wasender-white) !important; }
.copy-btn.copy-btn:not(:root), .us-copy-btn.us-copy-btn:not(:root), .quick-btn.quick-btn:not(:root) {
  background-color: var(--wasender-soft) !important;
  color: var(--wasender-action-text) !important;
}
.copy-btn.copy-btn:hover:not(:root), .us-copy-btn.us-copy-btn:hover:not(:root) { background-color: var(--wasender-primary) !important; color: var(--wasender-white) !important; }
.quick-btn.quick-btn.is-unlimited:not(:root) { color: var(--wasender-success-text) !important; }
.action-btn.action-btn--primary:not(:root) { background-color: var(--wasender-primary) !important; color: var(--wasender-white) !important; }
.config-btn.config-btn--warning:not(:root), .action-btn.action-btn--warning:not(:root) { background-color: var(--wasender-warning) !important; color: var(--wasender-navy) !important; }
.config-btn.config-btn--danger:not(:root), .action-btn.action-btn--danger:not(:root), .bulk-action-bar .bulk-btn.delete:not(:disabled):not(:root) { background-color: var(--wasender-error-solid) !important; color: var(--wasender-white) !important; }
.action-btn.action-btn--success:not(:root) { background-color: var(--wasender-success) !important; color: var(--wasender-navy) !important; }
.action-btn.action-btn--info:not(:root) { background-color: var(--wasender-info) !important; color: var(--wasender-navy) !important; }
.bulk-action-bar .bulk-btn.import:not(:disabled):not(:root) { background-color: var(--wasender-primary) !important; color: var(--wasender-white) !important; opacity: 1; }
