/* Color-only layer: preserve layouts and semantic success/warning/error colors. */
:root {
  --bs-primary: var(--primary-color);
  --bs-primary-rgb: var(--primary-rgb);
  --bs-secondary: var(--secondary-color);
  --bs-secondary-rgb: var(--secondary-rgb);
  --bs-link-color: var(--primary-text);
  --bs-link-hover-color: var(--primary-text);
}
body .btn-primary, body .btn-brand {
  --bs-btn-color: var(--primary-contrast);
  --bs-btn-bg: var(--primary-color);
  --bs-btn-border-color: var(--primary-color);
  --bs-btn-hover-color: var(--primary-hover-contrast);
  --bs-btn-hover-bg: var(--primary-dark);
  --bs-btn-hover-border-color: var(--primary-dark);
  --bs-btn-active-color: var(--primary-hover-contrast);
  --bs-btn-active-bg: var(--primary-dark);
  --bs-btn-active-border-color: var(--primary-dark);
  --bs-btn-disabled-color: var(--primary-contrast);
  --bs-btn-disabled-bg: var(--primary-color);
  --bs-btn-disabled-border-color: var(--primary-color);
  background: var(--primary-color);
  border-color: var(--primary-color);
  color: var(--primary-contrast);
}
body :is(.btn-primary, .btn-brand):is(:hover, :focus, :active, .active) {
  background: var(--primary-dark); border-color: var(--primary-dark); color: var(--primary-hover-contrast);
}
body .btn-secondary, body .btn-accent {
  --action-color: var(--secondary-color); --action-dark: var(--secondary-dark);
  --action-text: var(--secondary-contrast); --action-hover-text: var(--secondary-hover-contrast);
  --bs-btn-color: var(--action-text); --bs-btn-bg: var(--action-color); --bs-btn-border-color: var(--action-color);
  --bs-btn-hover-color: var(--action-hover-text); --bs-btn-hover-bg: var(--action-dark); --bs-btn-hover-border-color: var(--action-dark);
  --bs-btn-active-color: var(--action-hover-text); --bs-btn-active-bg: var(--action-dark); --bs-btn-active-border-color: var(--action-dark);
  --bs-btn-disabled-color: var(--action-text); --bs-btn-disabled-bg: var(--action-color); --bs-btn-disabled-border-color: var(--action-color);
  background: var(--action-color); border-color: var(--action-color); color: var(--action-text);
}
body .btn-accent {
  --action-color: var(--accent-color); --action-dark: var(--accent-dark);
  --action-text: var(--accent-contrast); --action-hover-text: var(--accent-hover-contrast);
}
body :is(.btn-secondary, .btn-accent):is(:hover, :focus, :active, .active) {
  background: var(--action-dark); border-color: var(--action-dark); color: var(--action-hover-text);
}
body .btn-outline-secondary {
  --bs-btn-color: var(--secondary-text); --bs-btn-border-color: var(--secondary-color);
  --bs-btn-hover-bg: var(--secondary-color); --bs-btn-hover-border-color: var(--secondary-color); --bs-btn-hover-color: var(--secondary-contrast);
  --bs-btn-active-bg: var(--secondary-color); --bs-btn-active-border-color: var(--secondary-color); --bs-btn-active-color: var(--secondary-contrast);
  color: var(--secondary-text); border-color: var(--secondary-color);
}
body .btn-outline-secondary:is(:hover, :focus, :active, .active) { background: var(--secondary-color); border-color: var(--secondary-color); color: var(--secondary-contrast); }
body .btn-outline-primary { color: var(--primary-text); }
body .btn-outline-primary:is(:hover, :focus, :active, .active) { color: var(--primary-contrast); }
body .text-primary { color: var(--primary-text) !important; }
body .page-title { color: var(--primary-text) !important; }
body .text-accent { color: var(--accent-text) !important; }
body .bg-accent { background-color: var(--accent-color) !important; color: var(--accent-contrast); }
body .bg-accent.text-white { color: var(--accent-contrast) !important; }
body .bg-primary:not([class*="bg-opacity-"]) { color: var(--primary-contrast); }
body .bg-primary.text-white:not([class*="bg-opacity-"]) { color: var(--primary-contrast) !important; }
body .pagination {
  --bs-pagination-color: var(--primary-text); --bs-pagination-hover-color: var(--primary-text);
  --bs-pagination-focus-color: var(--primary-text); --bs-pagination-focus-box-shadow: 0 0 0 .2rem rgba(var(--primary-rgb), .2);
  --bs-pagination-active-bg: var(--primary-color); --bs-pagination-active-border-color: var(--primary-color); --bs-pagination-active-color: var(--primary-contrast);
}
body .form-check-input:checked { background-color: var(--primary-color); border-color: var(--primary-color); }
body .nav-pills .nav-link.active { background-color: var(--primary-color); color: var(--primary-contrast); }
body :is(.cobro-shell, .cashcut-shell, .cashcut-modal, .cashreport-shell) .btn-primary,
body .cobro-shell #submitCobroBtn, body :is(.cashcut-shell, .cashcut-modal) .btn-dark {
  background: var(--primary-color); border-color: var(--primary-color); color: var(--primary-contrast);
}
body :is(.cobro-shell, .cashcut-shell, .cashcut-modal, .cashreport-shell) .btn-primary:is(:hover, :focus, :active),
body .cobro-shell #submitCobroBtn:is(:hover, :focus, :active), body :is(.cashcut-shell, .cashcut-modal) .btn-dark:is(:hover, :focus, :active) {
  background: var(--primary-dark); border-color: var(--primary-dark); color: var(--primary-hover-contrast);
}
body .finance-page :is(.supplier-shell, .collections-page) { --supplier-accent: var(--primary-text); --teal: var(--primary-text); --teal-soft: var(--primary-light); }
body .finance-page .payment-method-code { color: var(--primary-text); }
body .app-navbar {
  background: var(--navbar-color);
  --bs-navbar-color: var(--navbar-text); --bs-navbar-brand-color: var(--navbar-text);
  --bs-navbar-hover-color: var(--navbar-text); --bs-navbar-active-color: var(--navbar-text);
}
body nav.app-navbar .btn-outline-light, body nav.app-navbar .btn-outline-light i {
  color: var(--navbar-text) !important; border-color: currentColor;
  --bs-btn-hover-bg: var(--navbar-text); --bs-btn-hover-color: var(--navbar-color);
}
body nav.app-navbar .btn-outline-light:hover, body nav.app-navbar .btn-outline-light:hover i { background: var(--navbar-text); color: var(--navbar-color) !important; }
body nav.app-navbar .btn-brand i { color: var(--primary-contrast) !important; }
body nav.app-navbar .btn-brand:hover i { color: var(--primary-hover-contrast) !important; }
/* Scope shell colors so dropdown menus and document/content text stay independent. */
#sidebarWrapper, .sidebar-flyout, .mobile-quick-nav { background: var(--sidebar-bg); color: var(--sidebar-text); border-color: var(--sidebar-border); }
#sidebarWrapper :is(.sidebar-logo-container, .sidebar-user-info, .sidebar-navigation-tools, .profile-switcher-button, .sidebar-area-button, .sidebar-smart-section, .sidebar-search-results, .sidebar-area-icon, .sidebar-toggle-btn, .sidebar-mobile-close, .sidebar-command-hint) {
  background: var(--sidebar-bg); color: var(--sidebar-text); border-color: var(--sidebar-border);
}
#sidebarWrapper :is(.user-email, .profile-switcher-button, .sidebar-area-button, .sidebar-smart-link, .sidebar-rail-tools button),
#sidebarMenu :is(.list-group-item, .sidebar-group-toggle), .sidebar-flyout :is(.list-group-item, .sidebar-flyout-title, .sidebar-flyout-close),
.mobile-quick-nav :is(a, button) { color: var(--sidebar-text); }
#sidebarWrapper :is(.text-muted, .user-plantel, .menu-section-title, .sidebar-tool-eyebrow, .sidebar-smart-link-meta, .sidebar-smart-heading, .sidebar-empty-state, .sidebar-search-box > .bi, .sidebar-favorite-action),
#sidebarMenu :is(.menu-icon, .sidebar-external), .sidebar-flyout .menu-icon { color: var(--sidebar-muted) !important; }
#sidebarWrapper .sidebar-smart-heading { background: var(--sidebar-hover); border-color: var(--sidebar-border); }
#sidebarWrapper :is(.sidebar-smart-row, .sidebar-submenu, .sidebar-rail-tools), #sidebarMenu .sidebar-submenu, .sidebar-flyout-title, .mobile-quick-nav :is(a, button) { border-color: var(--sidebar-border); }
#sidebarWrapper .sidebar-search-box .form-control { background: var(--sidebar-bg); color: var(--sidebar-text); border-color: var(--sidebar-border); }
#sidebarWrapper .sidebar-search-box .form-control::placeholder { color: var(--sidebar-muted); opacity: 1; }
#sidebarWrapper :is(.sidebar-area-icon, .sidebar-smart-link .bi), .mobile-quick-nav .bi { color: var(--sidebar-highlight); }
#sidebarMenu :is(.list-group-item, .sidebar-group-toggle):hover, #sidebarMenu .sidebar-group-toggle[aria-expanded="true"],
#sidebarWrapper :is(.sidebar-smart-link, .sidebar-rail-tools button, .sidebar-toggle-btn):hover, .sidebar-flyout .list-group-item:hover { background: var(--sidebar-hover); color: var(--sidebar-text); }
#sidebarMenu .list-group-item.active, .sidebar-flyout .list-group-item.active, .mobile-quick-nav .active {
  background: var(--primary-color) !important; color: var(--primary-contrast) !important;
}
#sidebarMenu .active .menu-icon, .sidebar-flyout .active .menu-icon, .mobile-quick-nav .active .bi { color: var(--primary-contrast) !important; }
#sidebarMenu .has-current > button > .menu-icon { color: var(--sidebar-highlight) !important; }
#sidebarWrapper .user-avatar, #sidebarWrapper .profile-switcher-icon { background: var(--primary-color); color: var(--primary-contrast); }
#sidebarWrapper :is(a, button, input):focus-visible, .sidebar-flyout :is(a, button):focus-visible { outline-color: var(--sidebar-highlight); }
#sidebarWrapper .sidebar-favorite-action.is-favorite { background: rgba(var(--accent-rgb), .12); color: var(--sidebar-highlight) !important; }
@media (min-width: 992px) { body nav.app-navbar .btn.d-lg-none { display: none !important; } }
