/**
 * ==========================================================================
 * RSA Button Component (rsa-button.css)
 * Standardized Button Design System for e-RSA
 * 
 * Variants: Solid, Soft Label, Outline, Pill, Sizing, Icon Buttons & States
 * Breakpoints: Strictly locked to Mobile (< 768px) & Desktop (>= 768px)
 * ==========================================================================
 */

/* 1. Global Pill Radius & Foundation */
.btn {
  font-family: inherit;
  font-size: var(--bs-font-size-btn, 0.9375rem) !important;
  font-weight: 600;
  line-height: 1.5;
  border-radius: 50rem !important;
  border-width: 1px;
  border-style: solid;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  white-space: nowrap;
  vertical-align: middle;
  cursor: pointer;
  user-select: none;
  transition: var(--btn-transition, transform 0.22s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.18s ease) !important;
  transform-origin: center center;
  will-change: transform;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  transform: translateZ(0);
  box-sizing: border-box;
}

/* Instant Color Switch: Never animate text color or child elements during state transitions */
.btn *,
.btn span,
.btn i,
.btn svg {
  transition: none !important;
}

.btn i,
.btn span,
.btn svg {
  display: inline-flex;
  align-items: center;
  line-height: 1;
  vertical-align: middle;
}

.btn-primary:not(:disabled):not(.disabled) *,
.btn-primary:not(:disabled):not(.disabled) span,
.btn-primary:not(:disabled):not(.disabled) i {
  color: #ffffff !important;
  transition: none !important;
}

/* Hover Lift (Desktop Pointer Only >= 768px) - Universal Smooth Standard */
@media (min-width: 768px) and (hover: hover) and (pointer: fine) {
  .btn:hover:not(:active):not(:disabled):not(.disabled):not(.dropdown-item):not(.btn-close):not(.page-link):not(.accordion-button),
  .toolbar-filter-btn:hover:not(:active):not(:disabled):not(.disabled),
  .toolbar-sort-btn:hover:not(:active):not(:disabled):not(.disabled),
  .btn-back:hover:not(:active):not(:disabled):not(.disabled),
  .btn-icon:hover:not(:active):not(:disabled):not(.disabled),
  button[data-bs-target="#modalFilters"]:hover:not(:active):not(:disabled):not(.disabled) {
    transform: translateY(-2px) !important;
    transition: transform 0.22s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease !important;
  }
}

.btn:not(.btn-close):not(.rsa-search-box__clear):active:not(:disabled):not(.disabled),
.btn:not(.btn-close):not(.rsa-search-box__clear):hover:active:not(:disabled):not(.disabled),
button:not(.btn-close):not(.rsa-search-box__clear):active:not(:disabled):not(.disabled),
button:not(.btn-close):not(.rsa-search-box__clear):hover:active:not(:disabled):not(.disabled),
input[type="button"]:active:not(:disabled),
input[type="submit"]:active:not(:disabled),
input[type="reset"]:active:not(:disabled),
.toolbar-filter-btn:active:not(:disabled):not(.disabled),
.toolbar-filter-btn:hover:active:not(:disabled):not(.disabled),
.toolbar-sort-btn:active:not(:disabled):not(.disabled),
.toolbar-sort-btn:hover:active:not(:disabled):not(.disabled),
.btn-back:active:not(:disabled):not(.disabled),
.btn-back:hover:active:not(:disabled):not(.disabled),
.btn-icon:active:not(:disabled):not(.disabled),
.btn-icon:hover:active:not(:disabled):not(.disabled),
.nav-circle-btn:active,
.nav-circle-btn:hover:active,
.class-role-pill:active:not(:disabled):not(.disabled),
.class-role-pill:hover:active:not(:disabled):not(.disabled),
.toolbar-pill:active:not(:disabled):not(.disabled),
.toolbar-pill:hover:active:not(:disabled):not(.disabled),
[role="button"]:not(.list-group-item):not(.list-group-item-action):not([aria-disabled="true"]):not(.btn-close):not(.rsa-search-box__clear):not(.cls-meet-accordion-header):active,
[role="button"]:not(.list-group-item):not(.list-group-item-action):not([aria-disabled="true"]):not(.btn-close):not(.rsa-search-box__clear):not(.cls-meet-accordion-header):hover:active {
  transform: scale(0.97) translateZ(0) !important;
  -webkit-transform: scale(0.97) translateZ(0) !important;
  transition: transform 0.08s ease !important;
}

.btn:focus,
.btn:focus-visible {
  outline: none !important;
  box-shadow: none !important;
}

/* 2. Global Button Sizing Standards */
/* Default / Regular Button (Exact 42px on Desktop, 44px on Mobile for Touch Target) */
.btn:not(.btn-sm):not(.btn-lg):not(.btn-xs):not(.dropdown-item):not(.btn-close):not(.accordion-button):not(.navbar-toggler):not(.btn-icon):not(.btn-link) {
  min-height: 42px;
  padding: 0.55rem 1.25rem;
}

@media (max-width: 767.98px) {
  .btn:not(.btn-sm):not(.btn-lg):not(.btn-xs):not(.dropdown-item):not(.btn-close):not(.accordion-button):not(.navbar-toggler):not(.btn-icon):not(.btn-link) {
    min-height: 44px;
    padding: 0.625rem 1.25rem;
  }

  /* No hover lift or hover transition on touch/mobile devices, but preserve tactile :active press scale */
  .btn:hover:not(:active),
  .btn:focus:not(:active) {
    transform: none !important;
    -webkit-transform: none !important;
    transition: none !important;
    -webkit-transition: none !important;
  }
}

/* Link Buttons & Table 3-Dots Action Buttons (Auto Height & Zero Row Bloat) */
.btn.btn-link,
button.btn.btn-link,
.btn-link,
.table .btn-link,
.table td .btn-link,
.table button.btn.btn-link,
.table .btn:has(.more_vert),
.btn:has(.more_vert) {
  min-height: auto !important;
  height: auto !important;
  max-height: none !important;
  width: auto !important;
  min-width: auto !important;
  padding: 0 !important;
  line-height: 1 !important;
  border: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
  background-color: transparent !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  vertical-align: middle !important;
}

/* Small Buttons (.btn-sm) - Exact 34px */
.btn-sm:not(.dropdown-item):not(.btn-close):not(.page-link):not(.btn-icon):not(.class-role-pill):not(.toolbar-pill):not(.btn-link) {
  min-height: 34px;
  font-size: 0.8125rem !important;
  padding: 0.35rem 0.95rem !important;
}

/* Large Buttons (.btn-lg) - Exact 50px */
.btn-lg:not(.dropdown-item):not(.btn-close):not(.page-link):not(.btn-icon):not(.btn-link) {
  min-height: 50px;
  font-size: 1.05rem !important;
  padding: 0.75rem 1.75rem !important;
}

/* Extra Small Buttons (.btn-xs) - Exact 28px */
.btn-xs:not(.dropdown-item):not(.btn-close):not(.btn-icon):not(.btn-link) {
  min-height: 28px;
  font-size: 0.75rem !important;
  padding: 0.2rem 0.65rem !important;
}

/* 3. Icon Buttons (.btn-icon) */
.btn-icon {
  padding: 0 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex-shrink: 0;
  width: 42px;
  height: 42px;
  min-height: 42px;
  min-width: 42px;
}

.btn-icon.d-none {
  display: none !important;
}

@media (min-width: 768px) {
  .btn-icon.d-md-inline-flex,
  .btn-icon.d-none.d-md-inline-flex {
    display: inline-flex !important;
  }
}

.btn-icon.btn-sm {
  width: 34px !important;
  height: 34px !important;
  min-height: 34px !important;
  min-width: 34px !important;
}

.btn-icon.btn-lg {
  width: 50px !important;
  height: 50px !important;
  min-height: 50px !important;
  min-width: 50px !important;
}

.btn-icon.rounded-circle,
.rounded-circle.btn-icon {
  border-radius: 50% !important;
}

/* 4. Solid Variants - Standard Pure Brand Primary */
.btn-primary:not(:disabled):not(.disabled),
.btn-primary.active:not(:disabled):not(.disabled),
.btn-primary[aria-selected="true"]:not(:disabled):not(.disabled),
.btn-primary:hover:not(:disabled):not(.disabled),
.btn-primary:focus:not(:disabled):not(.disabled),
.btn-primary:focus-visible:not(:disabled):not(.disabled),
.btn-primary:active:not(:disabled):not(.disabled) {
  background-color: var(--bs-primary) !important;
  border-color: var(--bs-primary) !important;
  color: #ffffff !important;
  box-shadow: none !important;
  filter: none !important;
}

/* 4b. Dark Mode: btn-warning styled as soft btn-label-warning */
[data-bs-theme="dark"] .btn-warning:not(:disabled):not(.disabled) {
  background-color: rgba(var(--bs-warning-rgb), 0.16) !important;
  border-color: transparent !important;
  color: var(--bs-warning) !important;
  box-shadow: none !important;
  filter: none !important;
}

[data-bs-theme="dark"] .btn-warning:not(:disabled):not(.disabled) *,
[data-bs-theme="dark"] .btn-warning:not(:disabled):not(.disabled) span,
[data-bs-theme="dark"] .btn-warning:not(:disabled):not(.disabled) i {
  color: var(--bs-warning) !important;
  transition: none !important;
}

[data-bs-theme="dark"] .btn-warning.active:not(:disabled):not(.disabled),
[data-bs-theme="dark"] .btn-warning[aria-selected="true"]:not(:disabled):not(.disabled),
[data-bs-theme="dark"] .btn-warning:hover:not(:disabled):not(.disabled),
[data-bs-theme="dark"] .btn-warning:focus:not(:disabled):not(.disabled),
[data-bs-theme="dark"] .btn-warning:focus-visible:not(:disabled):not(.disabled),
[data-bs-theme="dark"] .btn-warning:active:not(:disabled):not(.disabled) {
  background-color: var(--bs-warning) !important;
  border-color: var(--bs-warning) !important;
  color: #ffffff !important;
  box-shadow: none !important;
  filter: none !important;
}

[data-bs-theme="dark"] .btn-warning.active:not(:disabled):not(.disabled) *,
[data-bs-theme="dark"] .btn-warning.active:not(:disabled):not(.disabled) span,
[data-bs-theme="dark"] .btn-warning.active:not(:disabled):not(.disabled) i,
[data-bs-theme="dark"] .btn-warning[aria-selected="true"]:not(:disabled):not(.disabled) *,
[data-bs-theme="dark"] .btn-warning[aria-selected="true"]:not(:disabled):not(.disabled) span,
[data-bs-theme="dark"] .btn-warning[aria-selected="true"]:not(:disabled):not(.disabled) i,
[data-bs-theme="dark"] .btn-warning:hover:not(:disabled):not(.disabled) *,
[data-bs-theme="dark"] .btn-warning:hover:not(:disabled):not(.disabled) span,
[data-bs-theme="dark"] .btn-warning:hover:not(:disabled):not(.disabled) i,
[data-bs-theme="dark"] .btn-warning:focus:not(:disabled):not(.disabled) *,
[data-bs-theme="dark"] .btn-warning:focus:not(:disabled):not(.disabled) span,
[data-bs-theme="dark"] .btn-warning:focus:not(:disabled):not(.disabled) i,
[data-bs-theme="dark"] .btn-warning:focus-visible:not(:disabled):not(.disabled) *,
[data-bs-theme="dark"] .btn-warning:focus-visible:not(:disabled):not(.disabled) span,
[data-bs-theme="dark"] .btn-warning:focus-visible:not(:disabled):not(.disabled) i,
[data-bs-theme="dark"] .btn-warning:active:not(:disabled):not(.disabled) *,
[data-bs-theme="dark"] .btn-warning:active:not(:disabled):not(.disabled) span,
[data-bs-theme="dark"] .btn-warning:active:not(:disabled):not(.disabled) i {
  color: #ffffff !important;
  transition: none !important;
}

/* 4c. Loading State: Primary Buttons Maintain Primary Styling (Never Flash to Secondary Gray) */
.btn-primary.btn-is-loading,
.btn-primary.btn-is-loading:disabled,
.btn-primary.btn-is-loading.disabled,
button.btn-primary.btn-is-loading:disabled {
  background-color: var(--bs-primary) !important;
  border-color: var(--bs-primary) !important;
  color: #ffffff !important;
  opacity: 0.88 !important;
  transition: none !important;
}

.btn-primary.btn-is-loading .spinner-border,
.btn-primary.btn-is-loading * {
  color: #ffffff !important;
}



.btn-label-primary.btn-is-loading,
.btn-label-primary.btn-is-loading:disabled,
.btn-label-primary.btn-is-loading.disabled,
button.btn-label-primary.btn-is-loading:disabled {
  background-color: rgba(var(--bs-primary-rgb), 0.22) !important;
  border-color: transparent !important;
  color: var(--bs-primary) !important;
  opacity: 0.92 !important;
  transition: none !important;
}

.btn-label-primary.btn-is-loading .spinner-border,
.btn-label-primary.btn-is-loading * {
  color: var(--bs-primary) !important;
}

/* 4d. Loading State: Danger Buttons Maintain Danger Styling (Never Flash to Secondary Gray) */
.btn-danger.btn-is-loading,
.btn-danger.btn-is-loading:disabled,
.btn-danger.btn-is-loading.disabled,
button.btn-danger.btn-is-loading:disabled,
[data-bs-theme="dark"] .btn-danger.btn-is-loading,
[data-bs-theme="dark"] .btn-danger.btn-is-loading:disabled,
[data-bs-theme="dark"] .btn-danger.btn-is-loading.disabled,
[data-bs-theme="dark"] button.btn-danger.btn-is-loading:disabled {
  background-color: var(--bs-danger, #ff3e1d) !important;
  border-color: var(--bs-danger, #ff3e1d) !important;
  color: #ffffff !important;
  opacity: 0.88 !important;
  transition: none !important;
}

.btn-danger.btn-is-loading .spinner-border,
.btn-danger.btn-is-loading *,
[data-bs-theme="dark"] .btn-danger.btn-is-loading .spinner-border,
[data-bs-theme="dark"] .btn-danger.btn-is-loading * {
  color: #ffffff !important;
}

.btn-label-danger.btn-is-loading,
.btn-label-danger.btn-is-loading:disabled,
.btn-label-danger.btn-is-loading.disabled,
button.btn-label-danger.btn-is-loading:disabled,
[data-bs-theme="dark"] .btn-label-danger.btn-is-loading,
[data-bs-theme="dark"] .btn-label-danger.btn-is-loading:disabled,
[data-bs-theme="dark"] .btn-label-danger.btn-is-loading.disabled,
[data-bs-theme="dark"] button.btn-label-danger.btn-is-loading:disabled {
  background-color: rgba(var(--bs-danger-rgb, 255, 62, 29), 0.22) !important;
  border-color: transparent !important;
  color: var(--bs-danger, #ff3e1d) !important;
  opacity: 0.92 !important;
  transition: none !important;
}

.btn-label-danger.btn-is-loading .spinner-border,
.btn-label-danger.btn-is-loading *,
[data-bs-theme="dark"] .btn-label-danger.btn-is-loading .spinner-border,
[data-bs-theme="dark"] .btn-label-danger.btn-is-loading * {
  color: var(--bs-danger, #ff3e1d) !important;
}

.btn-is-loading,
.btn-is-loading *,
.btn.btn-is-loading {
  transition: none !important;
}

/* Disabled State: Default Neutral / Secondary Button Styling (excluding loading buttons) */
.btn-secondary:disabled:not(.btn-is-loading),
.btn-secondary.disabled:not(.btn-is-loading),
button.btn-secondary:disabled:not(.btn-is-loading),
a.btn-secondary.disabled:not(.btn-is-loading),
input[type="submit"]:disabled.btn-secondary:not(.btn-is-loading),
input[type="button"]:disabled.btn-secondary:not(.btn-is-loading) {
  transition: none !important;
  opacity: var(--bs-btn-disabled-opacity, 0.55) !important;
  cursor: not-allowed !important;
  pointer-events: auto !important;
  background-color: rgba(var(--bs-secondary-rgb, 112, 112, 112), 0.14) !important;
  background: rgba(var(--bs-secondary-rgb, 112, 112, 112), 0.14) !important;
  border: 1px solid transparent !important;
  border-color: transparent !important;
  color: var(--bs-secondary, #707070) !important;
  box-shadow: none !important;
  transform: none !important;
}

[data-bs-theme="dark"] .btn-secondary:disabled:not(.btn-is-loading),
[data-bs-theme="dark"] .btn-secondary.disabled:not(.btn-is-loading),
[data-bs-theme="dark"] button.btn-secondary:disabled:not(.btn-is-loading),
[data-bs-theme="dark"] a.btn-secondary.disabled:not(.btn-is-loading),
.dark-style .btn-secondary:disabled:not(.btn-is-loading),
.dark-style .btn-secondary.disabled:not(.btn-is-loading) {
  background-color: rgba(255, 255, 255, 0.08) !important;
  background: rgba(255, 255, 255, 0.08) !important;
  border: 1px solid transparent !important;
  border-color: transparent !important;
  color: var(--bs-gray-700, #cecece) !important;
}

.btn-secondary,
[data-bs-theme="light"] .btn-secondary,
:root:not([data-bs-theme="dark"]) .btn-secondary {
  background-color: rgba(var(--bs-secondary-rgb, 112, 112, 112), 0.14) !important;
  border: none !important;
  border-color: transparent !important;
  color: var(--bs-secondary, #707070) !important;
  font-weight: 600 !important;
  box-shadow: none !important;
}

.btn-secondary:hover:not(:disabled):not(.disabled),
[data-bs-theme="light"] .btn-secondary:hover:not(:disabled):not(.disabled),
:root:not([data-bs-theme="dark"]) .btn-secondary:hover:not(:disabled):not(.disabled) {
  background-color: var(--bs-secondary, #707070) !important;
  border-color: transparent !important;
  color: #ffffff !important;
}

[data-bs-theme="dark"] .btn-secondary,
.dark-style .btn-secondary {
  background-color: rgba(255, 255, 255, 0.08) !important;
  border: none !important;
  border-color: transparent !important;
  color: var(--bs-gray-700, #cecece) !important;
  font-weight: 600 !important;
  box-shadow: none !important;
}

[data-bs-theme="dark"] .btn-secondary:hover:not(:disabled):not(.disabled),
.dark-style .btn-secondary:hover:not(:disabled):not(.disabled) {
  background-color: rgba(255, 255, 255, 0.16) !important;
  border-color: transparent !important;
  color: #ffffff !important;
}

[data-bs-theme="dark"] .btn-secondary:focus,
[data-bs-theme="dark"] .btn-secondary:focus-visible,
.dark-style .btn-secondary:focus,
.dark-style .btn-secondary:focus-visible {
  background-color: rgba(255, 255, 255, 0.12) !important;
  border-color: transparent !important;
  color: #ffffff !important;
  box-shadow: none !important;
}

[data-bs-theme="dark"] .btn-secondary:active,
.dark-style .btn-secondary:active {
  background-color: rgba(255, 255, 255, 0.2) !important;
  border-color: transparent !important;
  color: #ffffff !important;
  transform: scale(0.98) !important;
}

.btn-success {
  background-color: var(--bs-success, #71dd37) !important;
  border-color: var(--bs-success, #71dd37) !important;
  color: #ffffff !important;
}

.btn-danger {
  background-color: var(--bs-danger, #ff3e1d) !important;
  border-color: var(--bs-danger, #ff3e1d) !important;
  color: #ffffff !important;
}

/* Warning Solid (Light Mode Default) */
:root:not([data-bs-theme="dark"]) .btn-warning,
.btn-warning {
  background-color: var(--bs-warning, #ffab00) !important;
  border-color: var(--bs-warning, #ffab00) !important;
  color: #ffffff !important;
}

:root:not([data-bs-theme="dark"]) .btn-warning *,
:root:not([data-bs-theme="dark"]) .btn-warning span,
:root:not([data-bs-theme="dark"]) .btn-warning i {
  color: #ffffff !important;
  transition: none !important;
}

/* Dark Mode: btn-warning styled as sleek btn-label-warning */
[data-bs-theme="dark"] .btn-warning:not(:disabled):not(.disabled) {
  background-color: rgba(var(--bs-warning-rgb, 255, 171, 0), 0.16) !important;
  border-color: transparent !important;
  color: var(--bs-warning, #ffab00) !important;
  box-shadow: none !important;
  filter: none !important;
}

[data-bs-theme="dark"] .btn-warning:not(:disabled):not(.disabled) *,
[data-bs-theme="dark"] .btn-warning:not(:disabled):not(.disabled) span,
[data-bs-theme="dark"] .btn-warning:not(:disabled):not(.disabled) i {
  color: var(--bs-warning, #ffab00) !important;
  transition: none !important;
}

[data-bs-theme="dark"] .btn-warning.active:not(:disabled):not(.disabled),
[data-bs-theme="dark"] .btn-warning[aria-selected="true"]:not(:disabled):not(.disabled),
[data-bs-theme="dark"] .btn-warning:hover:not(:disabled):not(.disabled),
[data-bs-theme="dark"] .btn-warning:focus:not(:disabled):not(.disabled),
[data-bs-theme="dark"] .btn-warning:focus-visible:not(:disabled):not(.disabled),
[data-bs-theme="dark"] .btn-warning:active:not(:disabled):not(.disabled) {
  background-color: var(--bs-warning, #ffab00) !important;
  border-color: var(--bs-warning, #ffab00) !important;
  color: #ffffff !important;
  box-shadow: none !important;
  filter: none !important;
}

[data-bs-theme="dark"] .btn-warning.active:not(:disabled):not(.disabled) *,
[data-bs-theme="dark"] .btn-warning.active:not(:disabled):not(.disabled) span,
[data-bs-theme="dark"] .btn-warning.active:not(:disabled):not(.disabled) i,
[data-bs-theme="dark"] .btn-warning[aria-selected="true"]:not(:disabled):not(.disabled) *,
[data-bs-theme="dark"] .btn-warning[aria-selected="true"]:not(:disabled):not(.disabled) span,
[data-bs-theme="dark"] .btn-warning[aria-selected="true"]:not(:disabled):not(.disabled) i,
[data-bs-theme="dark"] .btn-warning:hover:not(:disabled):not(.disabled) *,
[data-bs-theme="dark"] .btn-warning:hover:not(:disabled):not(.disabled) span,
[data-bs-theme="dark"] .btn-warning:hover:not(:disabled):not(.disabled) i,
[data-bs-theme="dark"] .btn-warning:focus:not(:disabled):not(.disabled) *,
[data-bs-theme="dark"] .btn-warning:focus:not(:disabled):not(.disabled) span,
[data-bs-theme="dark"] .btn-warning:focus:not(:disabled):not(.disabled) i,
[data-bs-theme="dark"] .btn-warning:focus-visible:not(:disabled):not(.disabled) *,
[data-bs-theme="dark"] .btn-warning:focus-visible:not(:disabled):not(.disabled) span,
[data-bs-theme="dark"] .btn-warning:focus-visible:not(:disabled):not(.disabled) i,
[data-bs-theme="dark"] .btn-warning:active:not(:disabled):not(.disabled) *,
[data-bs-theme="dark"] .btn-warning:active:not(:disabled):not(.disabled) span,
[data-bs-theme="dark"] .btn-warning:active:not(:disabled):not(.disabled) i {
  color: #ffffff !important;
  transition: none !important;
}

/* Loading State for Warning Buttons */
.btn-warning.btn-is-loading,
.btn-warning.btn-is-loading:disabled,
.btn-warning.btn-is-loading.disabled,
button.btn-warning.btn-is-loading:disabled {
  background-color: var(--bs-warning, #ffab00) !important;
  border-color: var(--bs-warning, #ffab00) !important;
  color: #ffffff !important;
  opacity: 0.88 !important;
  transition: none !important;
}

.btn-warning.btn-is-loading .spinner-border,
.btn-warning.btn-is-loading * {
  color: #ffffff !important;
}

[data-bs-theme="dark"] .btn-warning.btn-is-loading,
[data-bs-theme="dark"] .btn-warning.btn-is-loading:disabled,
[data-bs-theme="dark"] .btn-warning.btn-is-loading.disabled,
[data-bs-theme="dark"] button.btn-warning.btn-is-loading:disabled {
  background-color: rgba(var(--bs-warning-rgb, 255, 171, 0), 0.22) !important;
  border-color: transparent !important;
  color: var(--bs-warning, #ffab00) !important;
  opacity: 0.92 !important;
  transition: none !important;
}

[data-bs-theme="dark"] .btn-warning.btn-is-loading .spinner-border,
[data-bs-theme="dark"] .btn-warning.btn-is-loading * {
  color: var(--bs-warning, #ffab00) !important;
}

.btn-info {
  background-color: var(--bs-info, #03c3ec) !important;
  border-color: var(--bs-info, #03c3ec) !important;
  color: #ffffff !important;
}

/* 5. Soft Label Variants (btn-label-*) */
.btn-label-primary {
  background-color: rgba(var(--bs-primary-rgb), 0.12) !important;
  border-color: transparent !important;
  color: var(--bs-primary) !important;
}
.btn-label-primary:hover:not(:disabled):not(.disabled) {
  background-color: var(--bs-primary) !important;
  color: #ffffff !important;
}

[data-bs-theme="dark"] .btn-label-primary {
  background-color: rgba(var(--bs-primary-rgb), 0.14) !important;
  border-color: transparent !important;
  color: var(--bs-primary) !important;
}
[data-bs-theme="dark"] .btn-label-primary i,
[data-bs-theme="dark"] .btn-label-primary * {
  color: var(--bs-primary) !important;
}
[data-bs-theme="dark"] .btn-label-primary:hover:not(:disabled):not(.disabled) {
  background-color: var(--bs-primary) !important;
  border-color: var(--bs-primary) !important;
  color: #ffffff !important;
}
[data-bs-theme="dark"] .btn-label-primary:hover:not(:disabled):not(.disabled) i,
[data-bs-theme="dark"] .btn-label-primary:hover:not(:disabled):not(.disabled) * {
  color: #ffffff !important;
}

.btn-label-secondary {
  background-color: rgba(var(--bs-secondary-rgb, 112, 112, 112), 0.14) !important;
  border-color: transparent !important;
  color: var(--bs-secondary, #707070) !important;
}
.btn-label-secondary:hover:not(:disabled):not(.disabled) {
  background-color: var(--bs-secondary, #707070) !important;
  color: #ffffff !important;
}

[data-bs-theme="dark"] .btn-label-secondary {
  background-color: var(--bs-secondary-bg) !important;
  border-color: var(--bs-secondary-bg) !important;
  color: var(--bs-gray-700, #cecece) !important;
}
[data-bs-theme="dark"] .btn-label-secondary i,
[data-bs-theme="dark"] .btn-label-secondary * {
  color: var(--bs-gray-700, #cecece) !important;
}
[data-bs-theme="dark"] .btn-label-secondary:hover:not(:disabled):not(.disabled) {
  background-color: color-mix(in sRGB, var(--bs-white, #ffffff) 15%, var(--bs-secondary-bg)) !important;
  border-color: color-mix(in sRGB, var(--bs-white, #ffffff) 15%, var(--bs-secondary-bg)) !important;
  color: var(--bs-white, #ffffff) !important;
}
[data-bs-theme="dark"] .btn-label-secondary:hover:not(:disabled):not(.disabled) i,
[data-bs-theme="dark"] .btn-label-secondary:hover:not(:disabled):not(.disabled) * {
  color: var(--bs-white, #ffffff) !important;
}

.btn-label-success {
  background-color: rgba(var(--bs-success-rgb, 113, 221, 55), 0.14) !important;
  border-color: transparent !important;
  color: var(--bs-success, #71dd37) !important;
}
.btn-label-success:hover:not(:disabled):not(.disabled) {
  background-color: var(--bs-success, #71dd37) !important;
  color: var(--bs-white, #ffffff) !important;
}

.btn-label-danger {
  background-color: rgba(var(--bs-danger-rgb, 255, 62, 29), 0.14) !important;
  border-color: transparent !important;
  color: var(--bs-danger, #ff3e1d) !important;
}
.btn-label-danger:hover:not(:disabled):not(.disabled) {
  background-color: var(--bs-danger, #ff3e1d) !important;
  color: var(--bs-white, #ffffff) !important;
}

.btn-label-warning {
  background-color: rgba(var(--bs-warning-rgb, 255, 171, 0), 0.15) !important;
  border-color: transparent !important;
  color: #e69500 !important;
}
.btn-label-warning:hover:not(:disabled):not(.disabled) {
  background-color: var(--bs-warning, #ffab00) !important;
  color: var(--bs-white, #ffffff) !important;
}

[data-bs-theme="dark"] .btn-label-warning {
  background-color: rgba(var(--bs-warning-rgb, 255, 171, 0), 0.16) !important;
  border-color: transparent !important;
  color: var(--bs-warning, #ffab00) !important;
}

[data-bs-theme="dark"] .btn-label-warning * {
  color: var(--bs-warning, #ffab00) !important;
}

[data-bs-theme="dark"] .btn-label-warning:hover:not(:disabled):not(.disabled) *,
[data-bs-theme="dark"] .btn-label-warning:focus:not(:disabled):not(.disabled) *,
[data-bs-theme="dark"] .btn-label-warning:active:not(:disabled):not(.disabled) * {
  color: #ffffff !important;
}

.btn-label-warning.btn-is-loading,
.btn-label-warning.btn-is-loading:disabled,
.btn-label-warning.btn-is-loading.disabled,
button.btn-label-warning.btn-is-loading:disabled {
  background-color: rgba(var(--bs-warning-rgb, 255, 171, 0), 0.22) !important;
  border-color: transparent !important;
  color: var(--bs-warning, #ffab00) !important;
  opacity: 0.92 !important;
  transition: none !important;
}

.btn-label-warning.btn-is-loading .spinner-border,
.btn-label-warning.btn-is-loading * {
  color: var(--bs-warning, #ffab00) !important;
}

.btn-label-info {
  background-color: rgba(3, 195, 236, 0.14) !important;
  border-color: transparent !important;
  color: var(--bs-info, #03c3ec) !important;
}
.btn-label-info:hover:not(:disabled):not(.disabled) {
  background-color: var(--bs-info, #03c3ec) !important;
  color: #ffffff !important;
}

/* 6. Outline Variants */
.btn-outline-primary {
  background-color: transparent !important;
  border-color: var(--bs-primary) !important;
  color: var(--bs-primary) !important;
  transition: var(--btn-transition, transform 0.22s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.18s ease, border-color 0.18s ease) !important;
}
.btn-outline-primary * {
  background: transparent !important;
  background-color: transparent !important;
}
.btn-outline-primary:hover:not(:disabled):not(.disabled) {
  background-color: rgba(var(--bs-primary-rgb), 0.1) !important;
  color: var(--bs-primary) !important;
}
.btn-outline-primary:active:not(:disabled):not(.disabled),
.btn-outline-primary.active:not(:disabled):not(.disabled) {
  background-color: rgba(var(--bs-primary-rgb), 0.2) !important;
  color: var(--bs-primary) !important;
}

.btn-outline-secondary {
  background-color: transparent !important;
  border-color: currentColor !important;
  color: var(--bs-btn-outline-secondary-color, var(--bs-body-color, #707070)) !important;
}
.btn-outline-secondary:hover:not(:disabled):not(.disabled) {
  background-color: var(--bs-btn-outline-secondary-hover-bg, rgba(0, 0, 0, 0.06)) !important;
  border-color: currentColor !important;
  color: var(--bs-btn-outline-secondary-hover-color, var(--bs-heading-color, #1a1a1a)) !important;
}

[data-bs-theme="dark"] .btn-outline-secondary {
  background-color: transparent !important;
  border-color: currentColor !important;
  color: var(--bs-body-color, #a9a9a9) !important;
}
[data-bs-theme="dark"] .btn-outline-secondary:hover:not(:disabled):not(.disabled),
[data-bs-theme="dark"] .btn-outline-secondary:focus:not(:disabled):not(.disabled),
[data-bs-theme="dark"] .btn-outline-secondary:active:not(:disabled):not(.disabled) {
  background-color: rgba(255, 255, 255, 0.08) !important;
  border-color: currentColor !important;
  color: #ffffff !important;
}

.btn-outline-danger {
  background-color: transparent !important;
  border-color: var(--bs-danger, #ff3e1d) !important;
  color: var(--bs-danger, #ff3e1d) !important;
}
.btn-outline-danger:hover:not(:disabled):not(.disabled) {
  background-color: rgba(255, 62, 29, 0.1) !important;
  color: var(--bs-danger, #ff3e1d) !important;
}

/* 7. Disabled States (Strictly NO hover effects, NO color changes, NO background changes, NO transform) */
.btn:disabled,
.btn.disabled,
button:disabled,
a.btn.disabled,
a.btn[disabled],
input[type="button"]:disabled,
input[type="submit"]:disabled,
input[type="reset"]:disabled,
.btn:disabled:hover,
.btn.disabled:hover,
button:disabled:hover,
a.btn.disabled:hover,
a.btn[disabled]:hover,
.btn:disabled:focus,
.btn.disabled:focus,
button:disabled:focus,
a.btn.disabled:focus,
.btn:disabled:active,
.btn.disabled:active,
button:disabled:active,
a.btn.disabled:active {
  opacity: var(--bs-btn-disabled-opacity, var(--app-disabled-opacity, 0.55)) !important;
  pointer-events: auto !important;
  cursor: not-allowed !important;
  box-shadow: none !important;
  transform: none !important;
  transition: none !important;
  animation: none !important;
}

/* Disabled Outline Buttons: locked text & border colors, transparent bg (0-saturation monochrome) */
.btn-outline-secondary:disabled,
.btn-outline-secondary.disabled,
.btn-outline-secondary:disabled:hover,
.btn-outline-secondary.disabled:hover,
.btn-outline-secondary:disabled:focus,
.btn-outline-secondary.disabled:focus,
.btn-outline-secondary:disabled:active,
.btn-outline-secondary.disabled:active {
  background-color: transparent !important;
  background: transparent !important;
  border: 1.5px solid #b8b8b8 !important;
  border-color: #b8b8b8 !important;
  color: #707070 !important;
  opacity: var(--bs-btn-disabled-opacity, var(--app-disabled-opacity, 0.55)) !important;
  box-shadow: none !important;
  transform: none !important;
}

.btn-outline-secondary:disabled *,
.btn-outline-secondary.disabled *,
.btn-outline-secondary:disabled:hover *,
.btn-outline-secondary.disabled:hover * {
  color: #707070 !important;
}

[data-bs-theme="dark"] .btn-outline-secondary:disabled,
[data-bs-theme="dark"] .btn-outline-secondary.disabled,
[data-bs-theme="dark"] .btn-outline-secondary:disabled:hover,
[data-bs-theme="dark"] .btn-outline-secondary.disabled:hover,
[data-bs-theme="dark"] .btn-outline-secondary:disabled:focus,
[data-bs-theme="dark"] .btn-outline-secondary.disabled:focus,
[data-bs-theme="dark"] .btn-outline-secondary:disabled:active,
[data-bs-theme="dark"] .btn-outline-secondary.disabled:active {
  background-color: transparent !important;
  background: transparent !important;
  border: 1.5px solid #404040 !important;
  border-color: #404040 !important;
  color: #8c8c8c !important;
  opacity: var(--bs-btn-disabled-opacity, var(--app-disabled-opacity, 0.55)) !important;
  box-shadow: none !important;
  transform: none !important;
}

[data-bs-theme="dark"] .btn-outline-secondary:disabled *,
[data-bs-theme="dark"] .btn-outline-secondary.disabled *,
[data-bs-theme="dark"] .btn-outline-secondary:disabled:hover *,
[data-bs-theme="dark"] .btn-outline-secondary.disabled:hover * {
  color: #8c8c8c !important;
}

/* Disabled Label Buttons (e.g. btn-label-secondary like Buku Catatan / Pengaturan) */
.btn-label-secondary:disabled,
.btn-label-secondary.disabled,
.btn-label-secondary:disabled:hover,
.btn-label-secondary.disabled:hover,
.btn-label-secondary:disabled:focus,
.btn-label-secondary.disabled:focus,
.btn-label-secondary:disabled:active,
.btn-label-secondary.disabled:active,
a.btn-label-secondary.disabled:hover {
  background-color: rgba(var(--bs-secondary-rgb, 112, 112, 112), 0.14) !important;
  border-color: transparent !important;
  color: var(--bs-secondary, #707070) !important;
  opacity: var(--bs-btn-disabled-opacity, var(--app-disabled-opacity, 0.55)) !important;
  cursor: not-allowed !important;
  box-shadow: none !important;
  transform: none !important;
}

[data-bs-theme="dark"] .btn-label-secondary:disabled,
[data-bs-theme="dark"] .btn-label-secondary.disabled,
[data-bs-theme="dark"] .btn-label-secondary:disabled:hover,
[data-bs-theme="dark"] .btn-label-secondary.disabled:hover {
  background-color: rgba(var(--bs-secondary-rgb, 128, 128, 128), 0.16) !important;
  border-color: transparent !important;
  color: var(--bs-secondary-color, #9e9ea6) !important;
  opacity: var(--bs-btn-disabled-opacity, var(--app-disabled-opacity, 0.55)) !important;
  cursor: not-allowed !important;
}

/* 7a. Disabled Solid Semantic Buttons (Strict Variant Color Preservation, 0.55 Opacity) */
.btn-warning:disabled,
.btn-warning.disabled,
.btn-warning[disabled],
.btn-warning[aria-disabled="true"],
button.btn-warning:disabled,
button.btn-warning.disabled,
a.btn-warning.disabled,
a.btn-warning[disabled],
a.btn-warning[aria-disabled="true"] {
  background-color: var(--bs-warning, #ffab00) !important;
  background: var(--bs-warning, #ffab00) !important;
  border-color: var(--bs-warning, #ffab00) !important;
  color: #ffffff !important;
  opacity: var(--bs-btn-disabled-opacity, 0.55) !important;
  box-shadow: none !important;
  cursor: not-allowed !important;
  pointer-events: auto !important;
  transform: none !important;
}

.btn-warning:disabled *,
.btn-warning.disabled *,
button.btn-warning:disabled *,
button.btn-warning.disabled *,
a.btn-warning.disabled * {
  color: #ffffff !important;
  transition: none !important;
}

.btn-primary:disabled,
.btn-primary.disabled,
.btn-primary[disabled],
.btn-primary[aria-disabled="true"],
button.btn-primary:disabled,
button.btn-primary.disabled,
a.btn-primary.disabled,
a.btn-primary[disabled],
a.btn-primary[aria-disabled="true"] {
  background-color: rgba(var(--bs-secondary-rgb, 112, 112, 112), 0.16) !important;
  background: rgba(var(--bs-secondary-rgb, 112, 112, 112), 0.16) !important;
  border-color: transparent !important;
  color: var(--bs-secondary, #707070) !important;
  opacity: 0.65 !important;
  box-shadow: none !important;
  cursor: not-allowed !important;
  pointer-events: none !important;
  transform: none !important;
}

[data-bs-theme="dark"] .btn-primary:disabled,
[data-bs-theme="dark"] .btn-primary.disabled,
[data-bs-theme="dark"] .btn-primary[disabled],
[data-bs-theme="dark"] .btn-primary[aria-disabled="true"],
[data-bs-theme="dark"] button.btn-primary:disabled,
[data-bs-theme="dark"] button.btn-primary.disabled,
[data-bs-theme="dark"] a.btn-primary.disabled,
[data-bs-theme="dark"] a.btn-primary[disabled],
[data-bs-theme="dark"] a.btn-primary[aria-disabled="true"] {
  background-color: rgba(255, 255, 255, 0.08) !important;
  background: rgba(255, 255, 255, 0.08) !important;
  border-color: transparent !important;
  color: var(--bs-gray-700, #cecece) !important;
  opacity: var(--bs-btn-disabled-opacity, var(--app-disabled-opacity, 0.55)) !important;
}

.btn-primary:disabled *,
.btn-primary.disabled *,
button.btn-primary:disabled *,
button.btn-primary.disabled *,
a.btn-primary.disabled * {
  color: inherit !important;
  transition: none !important;
}

.btn-danger:disabled,
.btn-danger.disabled,
.btn-danger[disabled],
.btn-danger[aria-disabled="true"],
button.btn-danger:disabled,
button.btn-danger.disabled,
a.btn-danger.disabled,
a.btn-danger[disabled],
a.btn-danger[aria-disabled="true"] {
  background-color: var(--bs-danger, #ff3e1d) !important;
  background: var(--bs-danger, #ff3e1d) !important;
  border-color: var(--bs-danger, #ff3e1d) !important;
  color: #ffffff !important;
  opacity: var(--bs-btn-disabled-opacity, 0.55) !important;
  box-shadow: none !important;
  cursor: not-allowed !important;
  pointer-events: auto !important;
  transform: none !important;
}

.btn-danger:disabled *,
.btn-danger.disabled *,
button.btn-danger:disabled *,
button.btn-danger.disabled *,
a.btn-danger.disabled * {
  color: #ffffff !important;
  transition: none !important;
}

.btn-success:disabled,
.btn-success.disabled,
.btn-success[disabled],
.btn-success[aria-disabled="true"],
button.btn-success:disabled,
button.btn-success.disabled,
a.btn-success.disabled,
a.btn-success[disabled],
a.btn-success[aria-disabled="true"] {
  background-color: var(--bs-success, #71dd37) !important;
  background: var(--bs-success, #71dd37) !important;
  border-color: var(--bs-success, #71dd37) !important;
  color: #ffffff !important;
  opacity: var(--bs-btn-disabled-opacity, 0.55) !important;
  box-shadow: none !important;
  cursor: not-allowed !important;
  pointer-events: auto !important;
  transform: none !important;
}

.btn-success:disabled *,
.btn-success.disabled *,
button.btn-success:disabled *,
button.btn-success.disabled *,
a.btn-success.disabled * {
  color: #ffffff !important;
  transition: none !important;
}

.btn-info:disabled,
.btn-info.disabled,
.btn-info[disabled],
.btn-info[aria-disabled="true"],
button.btn-info:disabled,
button.btn-info.disabled,
a.btn-info.disabled,
a.btn-info[disabled],
a.btn-info[aria-disabled="true"] {
  background-color: var(--bs-info, #03c3ec) !important;
  background: var(--bs-info, #03c3ec) !important;
  border-color: var(--bs-info, #03c3ec) !important;
  color: #ffffff !important;
  opacity: var(--bs-btn-disabled-opacity, 0.55) !important;
  box-shadow: none !important;
  cursor: not-allowed !important;
  pointer-events: auto !important;
  transform: none !important;
}

.btn-info:disabled *,
.btn-info.disabled *,
button.btn-info:disabled *,
button.btn-info.disabled *,
a.btn-info.disabled * {
  color: #ffffff !important;
  transition: none !important;
}

.btn-dark:disabled,
.btn-dark.disabled,
button.btn-dark:disabled,
button.btn-dark.disabled,
a.btn-dark.disabled {
  background-color: var(--bs-dark, #242424) !important;
  background: var(--bs-dark, #242424) !important;
  border-color: var(--bs-dark, #242424) !important;
  color: #ffffff !important;
  opacity: var(--bs-btn-disabled-opacity, 0.55) !important;
  box-shadow: none !important;
  cursor: not-allowed !important;
  pointer-events: auto !important;
  transform: none !important;
}

/* 7b. Disabled Outline Semantic Buttons (Strict Variant Color Preservation, 0.55 Opacity) */
.btn-outline-warning:disabled,
.btn-outline-warning.disabled,
.btn-outline-warning[disabled],
.btn-outline-warning[aria-disabled="true"],
button.btn-outline-warning:disabled,
button.btn-outline-warning.disabled,
a.btn-outline-warning.disabled,
a.btn-outline-warning[disabled],
a.btn-outline-warning[aria-disabled="true"] {
  background-color: transparent !important;
  background: transparent !important;
  border-color: var(--bs-warning, #ffab00) !important;
  color: var(--bs-warning, #ffab00) !important;
  opacity: var(--bs-btn-disabled-opacity, 0.55) !important;
  box-shadow: none !important;
  cursor: not-allowed !important;
  pointer-events: auto !important;
  transform: none !important;
}

.btn-outline-warning:disabled *,
.btn-outline-warning.disabled *,
button.btn-outline-warning:disabled *,
button.btn-outline-warning.disabled *,
a.btn-outline-warning.disabled * {
  color: var(--bs-warning, #ffab00) !important;
}

.btn-outline-primary:disabled,
.btn-outline-primary.disabled,
.btn-outline-primary[disabled],
.btn-outline-primary[aria-disabled="true"],
button.btn-outline-primary:disabled,
button.btn-outline-primary.disabled,
a.btn-outline-primary.disabled,
a.btn-outline-primary[disabled],
a.btn-outline-primary[aria-disabled="true"] {
  background-color: transparent !important;
  background: transparent !important;
  border-color: var(--bs-primary) !important;
  color: var(--bs-primary) !important;
  opacity: var(--bs-btn-disabled-opacity, 0.55) !important;
  box-shadow: none !important;
  cursor: not-allowed !important;
  pointer-events: auto !important;
  transform: none !important;
}

.btn-outline-primary:disabled *,
.btn-outline-primary.disabled *,
button.btn-outline-primary:disabled *,
button.btn-outline-primary.disabled *,
a.btn-outline-primary.disabled * {
  color: var(--bs-primary) !important;
}

.btn-outline-danger:disabled,
.btn-outline-danger.disabled,
.btn-outline-danger[disabled],
.btn-outline-danger[aria-disabled="true"],
button.btn-outline-danger:disabled,
button.btn-outline-danger.disabled,
a.btn-outline-danger.disabled,
a.btn-outline-danger[disabled],
a.btn-outline-danger[aria-disabled="true"] {
  background-color: transparent !important;
  background: transparent !important;
  border-color: var(--bs-danger, #ff3e1d) !important;
  color: var(--bs-danger, #ff3e1d) !important;
  opacity: var(--bs-btn-disabled-opacity, 0.55) !important;
  box-shadow: none !important;
  cursor: not-allowed !important;
  pointer-events: auto !important;
  transform: none !important;
}

.btn-outline-danger:disabled *,
.btn-outline-danger.disabled *,
button.btn-outline-danger:disabled *,
button.btn-outline-danger.disabled *,
a.btn-outline-danger.disabled * {
  color: var(--bs-danger, #ff3e1d) !important;
}

.btn-outline-success:disabled,
.btn-outline-success.disabled,
.btn-outline-success[disabled],
.btn-outline-success[aria-disabled="true"],
button.btn-outline-success:disabled,
button.btn-outline-success.disabled,
a.btn-outline-success.disabled,
a.btn-outline-success[disabled],
a.btn-outline-success[aria-disabled="true"] {
  background-color: transparent !important;
  background: transparent !important;
  border-color: var(--bs-success, #71dd37) !important;
  color: var(--bs-success, #71dd37) !important;
  opacity: var(--bs-btn-disabled-opacity, 0.55) !important;
  box-shadow: none !important;
  cursor: not-allowed !important;
  pointer-events: auto !important;
  transform: none !important;
}

.btn-outline-success:disabled *,
.btn-outline-success.disabled *,
button.btn-outline-success:disabled *,
button.btn-outline-success.disabled *,
a.btn-outline-success.disabled * {
  color: var(--bs-success, #71dd37) !important;
}

.btn-outline-info:disabled,
.btn-outline-info.disabled,
.btn-outline-info[disabled],
.btn-outline-info[aria-disabled="true"],
button.btn-outline-info:disabled,
button.btn-outline-info.disabled,
a.btn-outline-info.disabled,
a.btn-outline-info[disabled],
a.btn-outline-info[aria-disabled="true"] {
  background-color: transparent !important;
  background: transparent !important;
  border-color: var(--bs-info, #03c3ec) !important;
  color: var(--bs-info, #03c3ec) !important;
  opacity: var(--bs-btn-disabled-opacity, 0.55) !important;
  box-shadow: none !important;
  cursor: not-allowed !important;
  pointer-events: auto !important;
  transform: none !important;
}

.btn-outline-info:disabled *,
.btn-outline-info.disabled *,
button.btn-outline-info:disabled *,
button.btn-outline-info.disabled *,
a.btn-outline-info.disabled * {
  color: var(--bs-info, #03c3ec) !important;
}

.btn-outline-dark:disabled,
.btn-outline-dark.disabled,
button.btn-outline-dark:disabled,
button.btn-outline-dark.disabled,
a.btn-outline-dark.disabled {
  background-color: transparent !important;
  background: transparent !important;
  border-color: var(--bs-dark, #242424) !important;
  color: var(--bs-dark, #242424) !important;
  opacity: var(--bs-btn-disabled-opacity, 0.55) !important;
  box-shadow: none !important;
  cursor: not-allowed !important;
  pointer-events: auto !important;
  transform: none !important;
}

/* 7c. Disabled Soft Label Buttons */
.btn-label-warning:disabled,
.btn-label-warning.disabled,
.btn.bg-label-warning:disabled,
.btn.bg-label-warning.disabled,
a.btn.bg-label-warning.disabled {
  background-color: rgba(var(--bs-warning-rgb), 0.16) !important;
  border-color: rgba(var(--bs-warning-rgb), 0.35) !important;
  color: var(--bs-warning, #ffab00) !important;
  opacity: var(--bs-btn-disabled-opacity, 0.55) !important;
  box-shadow: none !important;
  cursor: not-allowed !important;
  pointer-events: auto !important;
  transform: none !important;
}

.btn-label-warning:disabled *,
.btn-label-warning.disabled *,
.btn.bg-label-warning:disabled *,
.btn.bg-label-warning.disabled *,
a.btn.bg-label-warning.disabled * {
  color: var(--bs-warning, #ffab00) !important;
}

.btn-label-primary:disabled,
.btn-label-primary.disabled,
.btn.bg-label-primary:disabled,
.btn.bg-label-primary.disabled,
a.btn.bg-label-primary.disabled {
  background-color: rgba(var(--bs-primary-rgb), 0.16) !important;
  border-color: rgba(var(--bs-primary-rgb), 0.35) !important;
  color: var(--bs-primary) !important;
  opacity: var(--bs-btn-disabled-opacity, 0.55) !important;
  box-shadow: none !important;
  cursor: not-allowed !important;
  pointer-events: auto !important;
  transform: none !important;
}

.btn-label-primary:disabled *,
.btn-label-primary.disabled *,
.btn.bg-label-primary:disabled *,
.btn.bg-label-primary.disabled *,
a.btn.bg-label-primary.disabled * {
  color: var(--bs-primary) !important;
}

.btn-label-danger:disabled,
.btn-label-danger.disabled,
.btn.bg-label-danger:disabled,
.btn.bg-label-danger.disabled,
a.btn.bg-label-danger.disabled {
  background-color: rgba(var(--bs-danger-rgb, 255, 62, 29), 0.16) !important;
  border-color: rgba(var(--bs-danger-rgb, 255, 62, 29), 0.35) !important;
  color: var(--bs-danger, #ff3e1d) !important;
  opacity: var(--bs-btn-disabled-opacity, 0.55) !important;
  box-shadow: none !important;
  cursor: not-allowed !important;
  pointer-events: auto !important;
  transform: none !important;
}

.btn-label-danger:disabled *,
.btn-label-danger.disabled *,
.btn.bg-label-danger:disabled *,
.btn.bg-label-danger.disabled *,
a.btn.bg-label-danger.disabled * {
  color: var(--bs-danger, #ff3e1d) !important;
}

.btn-label-success:disabled,
.btn-label-success.disabled,
.btn.bg-label-success:disabled,
.btn.bg-label-success.disabled,
a.btn.bg-label-success.disabled {
  background-color: rgba(var(--bs-success-rgb, 113, 221, 55), 0.16) !important;
  border-color: rgba(var(--bs-success-rgb, 113, 221, 55), 0.35) !important;
  color: var(--bs-success, #71dd37) !important;
  opacity: var(--bs-btn-disabled-opacity, 0.55) !important;
  box-shadow: none !important;
  cursor: not-allowed !important;
  pointer-events: auto !important;
  transform: none !important;
}

.btn-label-success:disabled *,
.btn-label-success.disabled *,
.btn.bg-label-success:disabled *,
.btn.bg-label-success.disabled *,
a.btn.bg-label-success.disabled * {
  color: var(--bs-success, #71dd37) !important;
}

.btn-label-info:disabled,
.btn-label-info.disabled,
.btn.bg-label-info:disabled,
.btn.bg-label-info.disabled,
a.btn.bg-label-info.disabled {
  background-color: rgba(var(--bs-info-rgb, 3, 195, 236), 0.16) !important;
  border-color: rgba(var(--bs-info-rgb, 3, 195, 236), 0.35) !important;
  color: var(--bs-info, #03c3ec) !important;
  opacity: var(--bs-btn-disabled-opacity, 0.55) !important;
  box-shadow: none !important;
  cursor: not-allowed !important;
  pointer-events: auto !important;
  transform: none !important;
}

.btn-label-info:disabled *,
.btn-label-info.disabled *,
.btn.bg-label-info:disabled *,
.btn.bg-label-info.disabled *,
a.btn.bg-label-info.disabled * {
  color: var(--bs-info, #03c3ec) !important;
}

/* 7d. Neutral Fallback Disabled Buttons (strictly for unbranded buttons without variant class, excluding dropdown items) */
.btn:not([class*="btn-"]):not(.dropdown-item):disabled,
.btn:not([class*="btn-"]):not(.dropdown-item).disabled,
a.btn:not([class*="btn-"]):not(.dropdown-item).disabled,
button:not([class*="btn-"]):not(.dropdown-item):disabled,
button:not([class*="btn-"]):not(.dropdown-item).disabled {
  background-color: rgba(var(--bs-secondary-rgb, 112, 112, 112), 0.14) !important;
  background: rgba(var(--bs-secondary-rgb, 112, 112, 112), 0.14) !important;
  border: 1px solid transparent !important;
  border-color: transparent !important;
  color: var(--bs-secondary, #707070) !important;
  opacity: var(--bs-btn-disabled-opacity, 0.55) !important;
  box-shadow: none !important;
  cursor: not-allowed !important;
  pointer-events: auto !important;
  transform: none !important;
}

[data-bs-theme="dark"] .btn:not([class*="btn-"]):not(.dropdown-item):disabled,
[data-bs-theme="dark"] .btn:not([class*="btn-"]):not(.dropdown-item).disabled,
[data-bs-theme="dark"] a.btn:not([class*="btn-"]):not(.dropdown-item).disabled,
[data-bs-theme="dark"] button:not([class*="btn-"]):not(.dropdown-item):disabled,
[data-bs-theme="dark"] button:not([class*="btn-"]):not(.dropdown-item).disabled,
.dark-style .btn:not([class*="btn-"]):not(.dropdown-item):disabled,
.dark-style .btn:not([class*="btn-"]):not(.dropdown-item).disabled {
  background-color: rgba(255, 255, 255, 0.08) !important;
  background: rgba(255, 255, 255, 0.08) !important;
  border: 1px solid transparent !important;
  border-color: transparent !important;
  color: var(--bs-gray-500, #8c8c8c) !important;
  opacity: var(--bs-btn-disabled-opacity, 0.55) !important;
}

/* 7e. Disabled Dropdown Items: Strictly Transparent Background, Text Opacity Only (Zero Background) */
.dropdown-item:disabled,
.dropdown-item.disabled,
button.dropdown-item:disabled,
button.dropdown-item.disabled,
a.dropdown-item.disabled,
.dropdown-menu .dropdown-item:disabled,
.dropdown-menu .dropdown-item.disabled,
.dropdown-menu button.dropdown-item:disabled {
  background: transparent !important;
  background-color: transparent !important;
  color: var(--bs-gray-500, #8c8c8c) !important;
  opacity: var(--bs-btn-disabled-opacity, 0.5) !important;
  cursor: not-allowed !important;
  pointer-events: none !important;
  box-shadow: none !important;
  border: none !important;
}

.dropdown-item:disabled:hover,
.dropdown-item.disabled:hover,
button.dropdown-item:disabled:hover,
button.dropdown-item.disabled:hover,
.dropdown-item:disabled:focus,
.dropdown-item.disabled:focus,
.dropdown-item:disabled:active,
.dropdown-item.disabled:active {
  background: transparent !important;
  background-color: transparent !important;
  color: var(--bs-gray-500, #8c8c8c) !important;
  box-shadow: none !important;
  border: none !important;
}

/* Universal Disabled Button State: Strictly Zero Animations, Zero Transitions, Zero Transforms */
.btn:disabled,
.btn.disabled,
.btn[disabled],
.btn[aria-disabled="true"],
button:disabled,
button.disabled,
button[disabled],
button[aria-disabled="true"],
a.btn.disabled,
a.btn[disabled],
a.btn[aria-disabled="true"],
.btn-icon:disabled,
.btn-icon.disabled,
.btn-back:disabled,
.btn-back.disabled,
.toolbar-filter-btn:disabled,
.toolbar-filter-btn.disabled,
.toolbar-sort-btn:disabled,
.toolbar-sort-btn.disabled,
.class-role-pill:disabled,
.class-role-pill.disabled,
.toolbar-pill:disabled,
.toolbar-pill.disabled,
.btn:disabled:hover,
.btn.disabled:hover,
.btn:disabled:active,
.btn.disabled:active,
.btn:disabled:focus,
.btn.disabled:focus,
button:disabled:hover,
button.disabled:hover,
button:disabled:active,
button.disabled:active,
button:disabled:focus,
button.disabled:focus,
a.btn.disabled:hover,
a.btn.disabled:active,
a.btn.disabled:focus,
[role="button"][aria-disabled="true"],
[role="button"][aria-disabled="true"]:hover,
[role="button"][aria-disabled="true"]:active {
  transform: none !important;
  -webkit-transform: none !important;
  transition: none !important;
  -webkit-transition: none !important;
  animation: none !important;
  box-shadow: none !important;
  cursor: not-allowed !important;
  pointer-events: none !important;
}

.btn:disabled *:not(.spinner-border):not(.spinner-grow):not(.icon-spin):not([class*="spin"]):not([class*="loader"]):not([class*="loading"]),
.btn.disabled *:not(.spinner-border):not(.spinner-grow):not(.icon-spin):not([class*="spin"]):not([class*="loader"]):not([class*="loading"]),
button:disabled *:not(.spinner-border):not(.spinner-grow):not(.icon-spin):not([class*="spin"]):not([class*="loader"]):not([class*="loading"]),
button.disabled *:not(.spinner-border):not(.spinner-grow):not(.icon-spin):not([class*="spin"]):not([class*="loader"]):not([class*="loading"]),
a.btn.disabled *:not(.spinner-border):not(.spinner-grow):not(.icon-spin):not([class*="spin"]):not([class*="loader"]):not([class*="loading"]) {
  transform: none !important;
  -webkit-transform: none !important;
  transition: none !important;
  -webkit-transition: none !important;
  animation: none !important;
}

/* Ensure loading spinners inside buttons (including disabled & loading states) always spin smoothly without freezing */
@keyframes spinner-border {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}
@-webkit-keyframes spinner-border {
  0% {
    -webkit-transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(360deg);
  }
}

/* Universal hardware-accelerated continuous spinner rotation (Compositor GPU Layer) */
.btn .spinner-border:not(.d-none),
.btn:disabled .spinner-border:not(.d-none),
.btn.disabled .spinner-border:not(.d-none),
button:disabled .spinner-border:not(.d-none),
button.disabled .spinner-border:not(.d-none),
.btn-is-loading .spinner-border:not(.d-none),
.spinner-border:not(.d-none) {
  display: inline-block !important;
  animation: spinner-border 0.75s linear infinite !important;
  -webkit-animation: spinner-border 0.75s linear infinite !important;
  transform-origin: center center !important;
  will-change: transform !important;
  backface-visibility: hidden !important;
  -webkit-backface-visibility: hidden !important;
}

.btn .spinner-border.d-none,
button .spinner-border.d-none,
.spinner-border.d-none {
  display: none !important;
}

.btn .icon-spin,
.btn:disabled .icon-spin,
.btn.disabled .icon-spin,
button:disabled .icon-spin,
button.disabled .icon-spin,
.btn-is-loading .icon-spin {
  display: inline-block !important;
  animation: spinner-border 1.2s linear infinite !important;
  -webkit-animation: spinner-border 1.2s linear infinite !important;
  transform-origin: center center !important;
  will-change: transform !important;
  backface-visibility: hidden !important;
  -webkit-backface-visibility: hidden !important;
}

.btn .spinner-grow,
.btn:disabled .spinner-grow,
.btn.disabled .spinner-grow,
button:disabled .spinner-grow,
button.disabled .spinner-grow,
.btn-is-loading .spinner-grow {
  display: inline-block !important;
  animation: var(--bs-spinner-animation-speed, 0.75s) linear infinite var(--bs-spinner-animation-name, spinner-grow) !important;
  -webkit-animation: var(--bs-spinner-animation-speed, 0.75s) linear infinite var(--bs-spinner-animation-name, spinner-grow) !important;
  will-change: transform, opacity !important;
  backface-visibility: hidden !important;
  -webkit-backface-visibility: hidden !important;
}

/* 8. Global Elimination of Button Glow / Colored Box-Shadows */
.btn,
.btn:hover,
.btn:focus,
.btn:active,
.btn:not(:focus, :active),
.btn-primary,
.btn-primary:hover,
.btn-primary:focus,
.btn-primary:active,
.btn-secondary,
.btn-success,
.btn-danger,
.btn-warning,
.btn-info {
  box-shadow: none !important;
  --bs-btn-box-shadow: none !important;
  --bs-btn-focus-box-shadow: none !important;
  --bs-btn-active-shadow: none !important;
  filter: none !important;
}

/* 9. Disable Button Hover Lift on Mobile & Touch Devices (< 768px) */
@media (max-width: 767.98px), (hover: none), (pointer: coarse) {
  .btn:hover:not(:active),
  .btn:focus:not(:active),
  .btn:focus-visible:not(:active),
  button:hover:not(:active),
  button:focus:not(:active),
  button:focus-visible:not(:active),
  [role="button"]:hover:not(:active),
  [role="button"]:focus:not(:active),
  .btn-close:hover:not(:active),
  .btn-close:focus:not(:active),
  .toolbar-filter-btn:hover:not(:active):not(:disabled):not(.disabled),
  .toolbar-sort-btn:hover:not(:active):not(:disabled):not(.disabled),
  .btn-icon:hover:not(:active),
  .nav-circle-btn:hover:not(:active),
  .class-role-pills-scroll .btn:hover:not(:active),
  .toolbar-pills-scroll .btn:hover:not(:active),
  .doctor-item:hover:not(:active),
  .asset-item:hover:not(:active) {
    transform: none !important;
    -webkit-transform: none !important;
    transition: none !important;
    -webkit-transition: none !important;
  }

  /* Modal Close Button: Fixed Vertical Centering (Zero Jitter/Shift) */
  .modal .btn-close,
  .modal-header .btn-close,
  .modal .modal-header .btn-close,
  .bottom-sheet-modal .modal-header .btn-close,
  .offcanvas-header .btn-close,
  .offcanvas .btn-close,
  #modalAllNotifications .btn-close,
  .modal .btn-close:hover,
  .modal-header .btn-close:hover,
  .modal .modal-header .btn-close:hover,
  .bottom-sheet-modal .modal-header .btn-close:hover,
  .offcanvas-header .btn-close:hover,
  .offcanvas .btn-close:hover,
  #modalAllNotifications .btn-close:hover,
  .modal .btn-close:focus,
  .modal-header .btn-close:focus,
  .modal .modal-header .btn-close:focus,
  .bottom-sheet-modal .modal-header .btn-close:focus,
  .offcanvas-header .btn-close:focus,
  .offcanvas .btn-close:focus,
  #modalAllNotifications .btn-close:focus {
    transform: translateY(-50%) !important;
    -webkit-transform: translateY(-50%) !important;
  }
}

/* 10. Universal Tactile Click Scale Feedback */
.btn:not(.btn-close):not(.rsa-search-box__clear):active:not(:disabled):not(.disabled),
.btn:not(.btn-close):not(.rsa-search-box__clear):hover:active:not(:disabled):not(.disabled),
button:not(.btn-close):not(.rsa-search-box__clear):active:not(:disabled):not(.disabled),
button:not(.btn-close):not(.rsa-search-box__clear):hover:active:not(:disabled):not(.disabled),
input[type="button"]:active:not(:disabled),
input[type="submit"]:active:not(:disabled),
input[type="reset"]:active:not(:disabled),
.btn-icon:not(.btn-close):not(.rsa-search-box__clear):active:not(:disabled):not(.disabled),
.btn-icon:not(.btn-close):not(.rsa-search-box__clear):hover:active:not(:disabled):not(.disabled),
.btn-back:active:not(:disabled):not(.disabled),
.btn-back:hover:active:not(:disabled):not(.disabled),
.toolbar-filter-btn:active:not(:disabled):not(.disabled),
.toolbar-filter-btn:hover:active:not(:disabled):not(.disabled),
.toolbar-sort-btn:active:not(:disabled):not(.disabled),
.toolbar-sort-btn:hover:active:not(:disabled):not(.disabled),
.nav-circle-btn:active,
.nav-circle-btn:hover:active,
.class-role-pill:active:not(:disabled):not(.disabled),
.class-role-pill:hover:active:not(:disabled):not(.disabled),
.toolbar-pill:active:not(:disabled):not(.disabled),
.toolbar-pill:hover:active:not(:disabled):not(.disabled),
[role="button"]:not(.list-group-item):not(.list-group-item-action):not([aria-disabled="true"]):not(.btn-close):not(.rsa-search-box__clear):active,
[role="button"]:not(.list-group-item):not(.list-group-item-action):not([aria-disabled="true"]):not(.btn-close):not(.rsa-search-box__clear):hover:active {
  transform: scale(0.97) translateZ(0) !important;
  -webkit-transform: scale(0.97) translateZ(0) !important;
  transition: transform 0.08s ease !important;
}

.modal .btn-close:active,
.modal .btn-close:hover:active,
.modal-header .btn-close:active,
.modal-header .btn-close:hover:active,
.modal .modal-header .btn-close:active,
.modal .modal-header .btn-close:hover:active,
.bottom-sheet-modal .modal-header .btn-close:active,
.bottom-sheet-modal .modal-header .btn-close:hover:active,
.offcanvas-header .btn-close:active,
.offcanvas-header .btn-close:hover:active,
.offcanvas .btn-close:active,
.offcanvas .btn-close:hover:active,
#modalAllNotifications .btn-close:active,
#modalAllNotifications .btn-close:hover:active,
button.btn-close:active,
button.btn-close:hover:active,
.btn-close:active,
.btn-close:hover:active {
  transform: translateY(-50%) scale(0.90) !important;
  -webkit-transform: translateY(-50%) scale(0.90) !important;
  transition: transform 0.08s ease !important;
}

/* ==========================================================================
   11. Standardized Back Buttons (Desktop & Mobile Unified Soft-Chip Style)
   Synchronizes desktop in-page .btn-back with mobile .nav-circle-btn
   ========================================================================== */
.btn-back,
a.btn-back,
.btn-back.btn-icon,
.btn-icon.btn-back,
.page-header-row .btn-back,
.page-header-row a.btn-back,
#btnBackToDetail,
.btn-back:not(.d-none),
a.btn-back:not(.d-none),
.btn-back.btn-icon:not(.d-none),
.btn-icon.btn-back:not(.d-none),
.page-header-row .btn-back:not(.d-none),
.page-header-row a.btn-back:not(.d-none),
#btnBackToDetail:not(.d-none) {
  width: var(--bs-control-height, 44px) !important;
  height: var(--bs-control-height, 44px) !important;
  min-width: var(--bs-control-height, 44px) !important;
  min-height: var(--bs-control-height, 44px) !important;
  max-width: var(--bs-control-height, 44px) !important;
  max-height: var(--bs-control-height, 44px) !important;
  aspect-ratio: 1 / 1 !important;
  border-radius: 50% !important;
  padding: 0 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  border: none !important;
  border-width: 0 !important;
  box-shadow: none !important;
  cursor: pointer !important;
  text-decoration: none !important;
  flex-shrink: 0 !important;
  transition: var(--btn-transition, transform 0.22s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.18s ease) !important;
}

.btn-back i,
a.btn-back i {
  font-size: 1.35rem !important;
  line-height: 1 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

/* Light Theme: Soft Tinted Chip (Identical to Mobile .nav-circle-btn) */
:root:not([data-bs-theme="dark"]) .btn-back,
:root:not([data-bs-theme="dark"]) a.btn-back,
[data-bs-theme="light"] .btn-back,
[data-bs-theme="light"] a.btn-back,
html:not([data-bs-theme="dark"]) .btn-back,
html:not([data-bs-theme="dark"]) a.btn-back {
  background: var(--bs-btn-circle-bg, #e5e5e5) !important;
  background-color: var(--bs-btn-circle-bg, #e5e5e5) !important;
  color: var(--bs-btn-circle-color, #2c2c2c) !important;
  border: none !important;
}

:root:not([data-bs-theme="dark"]) .btn-back:hover,
:root:not([data-bs-theme="dark"]) a.btn-back:hover,
[data-bs-theme="light"] .btn-back:hover,
[data-bs-theme="light"] a.btn-back:hover {
  background: var(--bs-secondary, #707070) !important;
  background-color: var(--bs-secondary, #707070) !important;
  color: #ffffff !important;
}

:root:not([data-bs-theme="dark"]) .btn-back:hover i,
:root:not([data-bs-theme="dark"]) a.btn-back:hover i,
[data-bs-theme="light"] .btn-back:hover i,
[data-bs-theme="light"] a.btn-back:hover i {
  color: #ffffff !important;
}

/* Dark Theme: Soft Tinted Chip (Identical to Mobile .nav-circle-btn) */
[data-bs-theme="dark"] .btn-back,
[data-bs-theme="dark"] a.btn-back,
.dark-style .btn-back,
.dark-style a.btn-back {
  background: rgba(var(--bs-secondary-rgb, 128, 128, 128), 0.16) !important;
  background-color: rgba(var(--bs-secondary-rgb, 128, 128, 128), 0.16) !important;
  color: var(--bs-gray-700, #cecece) !important;
  border: none !important;
}

[data-bs-theme="dark"] .btn-back:hover,
[data-bs-theme="dark"] a.btn-back:hover,
.dark-style .btn-back:hover,
.dark-style a.btn-back:hover {
  background: rgba(var(--bs-secondary-rgb, 128, 128, 128), 0.32) !important;
  background-color: rgba(var(--bs-secondary-rgb, 128, 128, 128), 0.32) !important;
  color: var(--bs-white, #ffffff) !important;
}

[data-bs-theme="dark"] .btn-back:hover i,
[data-bs-theme="dark"] a.btn-back:hover i,
.dark-style .btn-back:hover i,
.dark-style a.btn-back:hover i {
  color: #ffffff !important;
}

/* Universal Button Badge & Counter Spacing */
.btn > .badge:not(:first-child),
.btn span + .badge,
.btn .badge:not(:only-child),
.btn .selection-count-badge,
.btn .selection-count-text {
  margin-left: 0.35rem !important;
}

