/* MutualBoost dynamic design tokens: source of truth = Branding::palette(channel).
   Semantic success/error/warning indicators keep their distinct functional colours. */
html, body { background-color: var(--color-background); color: var(--color-text); }
body .bg-white, :is(main,.mb-main) :is(.mb-panel,.mb-stat,.mb-row,.mb-modal) { background-color: var(--color-surface); }
body :is(.bg-gray-50,.bg-gray-100,.bg-slate-50) { background-color: var(--color-background); }
body :is(.border-gray-100,.border-gray-200,.border-slate-200) { border-color: var(--color-border); }
.glass-sidebar,.glass-header,.bg-dynamic-blur { background: var(--color-surface); border-color: var(--color-border); }
:is(main,.mb-main) :is(.text-gray-900,.text-gray-800,.text-gray-700,.text-slate-900,.text-slate-800) { color: var(--color-text); }
:is(main,.mb-main) :is(.text-gray-500,.text-gray-400,.text-gray-600,.text-slate-500) { color: var(--color-muted); }
form :is(input,select,textarea):not([type=checkbox]):not([type=radio]):not([type=color]) { background-color: var(--color-surface); color: var(--color-text); border-color: var(--color-border); }

/* Primary calls to action, including legacy blue / indigo variants. */
body :is(.bg-primary,.bg-indigo-600,.bg-indigo-500,.bg-blue-600,.bg-blue-500) {
  background-color: var(--color-primary); color: var(--color-on-primary);
}
body :is(.bg-secondary) { background-color: var(--color-secondary); color: var(--color-on-secondary); }
body :is(.bg-accent) { background-color: var(--color-accent); color: var(--color-on-accent); }
body :is(.hover\:bg-primary:hover,.hover\:bg-indigo-700:hover,.hover\:bg-blue-700:hover) {
  background-color: var(--color-primary); color: var(--color-on-primary);
}
body .hover\:bg-secondary:hover { background-color: var(--color-secondary); color: var(--color-on-secondary); }
body :is(.text-indigo-600,.text-indigo-500,.text-blue-600,.text-blue-500,.text-primary) { color: var(--color-primary); }
body .text-secondary { color: var(--color-secondary); }
body .text-accent { color: var(--color-accent); }
body :is(.border-indigo-500,.border-blue-500,.border-primary) { border-color: var(--color-primary); }
body .border-secondary { border-color: var(--color-secondary); }
body .border-accent { border-color: var(--color-accent); }
body :is(.bg-primary,.bg-secondary,.bg-accent) .text-white { color: inherit; }
body .bg-primary.text-white { color: var(--color-on-primary); }
body .bg-secondary.text-white { color: var(--color-on-secondary); }
body .bg-accent.text-white { color: var(--color-on-accent); }
body [style*="background-color: var(--color-primary"] { color: var(--color-on-primary); }
body [style*="background-color: var(--color-secondary"] { color: var(--color-on-secondary); }
body [style*="background-color: var(--color-accent"] { color: var(--color-on-accent); }
body [style*="background-color: var(--color-primary"] .text-white,
body [style*="background-color: var(--color-secondary"] .text-white { color: inherit; }

/* Modern administration: gradients, active menu and shell never revert to hardcoded white. */
body[data-modern] .nav-item:is(:hover,.active) { background: var(--color-primary); color: var(--color-on-primary) !important; }
body[data-modern] .nav-item:is(:hover,.active) i { color: var(--color-on-primary) !important; }
body[data-modern] .submenu-item:is(:hover,.active) { background: var(--color-primary-soft); color: var(--color-primary); }
body[data-modern] .glass-sidebar,body[data-modern] .glass-header { background-color: var(--color-surface); border-color: var(--color-border); }
body[data-modern] :is(.bg-white\/50,.bg-white\/60,.bg-white\/75) { background-color: color-mix(in srgb, var(--color-surface) 75%, transparent); }
body[data-modern] .selection\:bg-primary::selection { background-color: var(--color-primary); color: var(--color-on-primary); }

/* /gestion workspace: override original management.css specificity and fixed greens. */
body.mb-workspace { background: var(--color-background); color: var(--color-text); }
body.mb-workspace .mb-sidebar { background: var(--color-primary); color: var(--color-on-primary); }
body.mb-workspace .mb-brand span { color: var(--color-on-primary); }
body.mb-workspace .mb-sidebar :is(.mb-overline,.mb-user,.mb-home-link,.mb-nav a,.mb-nav button) { color: inherit; }
body.mb-workspace .mb-nav :is(.active,button:hover,a:hover) { background: var(--color-secondary); color: var(--color-on-secondary); }
body.mb-workspace .mb-user { border-color: var(--color-border); }
body.mb-workspace .mb-tag { background: var(--color-primary-soft); color: var(--color-primary); }
body.mb-workspace .mb-button:not(.secondary):not(.danger) { background: var(--color-primary); color: var(--color-on-primary); border-radius: var(--mb-button-radius); }
body.mb-workspace .mb-button.secondary { background: var(--color-surface); color: var(--color-text); border: 1px solid var(--color-border); }
body.mb-workspace :is(.mb-row,.mb-panel,.mb-stat,.mb-modal,.mb-table-scroll) { background: var(--color-surface); border-color: var(--color-border); color: var(--color-text); }
body.mb-workspace .mb-stat.accent { background: var(--color-primary); border-color: var(--color-primary); color: var(--color-on-primary); }
body.mb-workspace .mb-stat.accent small { color: inherit; opacity: .85; }
body.mb-workspace .mb-stat :is(strong,small) { color: inherit; }
body.mb-workspace .mb-table th { background: var(--color-background); color: var(--color-muted); }
body.mb-workspace .mb-table td { border-color: var(--color-border); }
body.mb-workspace .mb-bar { background: var(--color-primary-soft); }
body.mb-workspace .mb-checks input { accent-color: var(--color-primary); }
body.mb-workspace :is(input,select,textarea):not([type=checkbox]):not([type=radio]):not([type=color]) { background: var(--color-surface); color: var(--color-text); border-color: var(--color-border); }
body.mb-workspace :is(input,select,textarea):focus { border-color: var(--color-primary); outline-color: var(--color-primary-soft); }
body.mb-workspace .mb-toast { background: var(--color-primary); color: var(--color-on-primary); }
body.mb-workspace :is(.mb-notice,.mb-error,.mb-status.paid,.mb-status.rejected,.mb-status.submitted) { /* functional statuses retain dedicated colours */ }

/* Form, modal and preview shape controls. */
form :is(button[type=submit],input:not([type=checkbox]):not([type=radio]),textarea,select) { border-radius: var(--mb-radius); }
form button[type=submit] { border-radius: var(--mb-button-radius); }
.mb-brand-preview { background: var(--preview-background); color: var(--preview-text); border-radius: 20px; padding: 20px; }
.mb-brand-preview article { background: var(--preview-surface); color: var(--preview-text); border-radius: 16px; padding: 18px; }
.mb-brand-preview button { background: var(--preview-primary); color: var(--preview-on-primary); border-radius: 12px; padding: 10px 18px; }
.mb-brand-preview small { color: var(--preview-muted); }
