/* Accessibility baseline (P-26a, axe critical/serious = none). The Vuexy defaults are below WCAG AA (4.5:1):
   secondary text #acaab1 on white is 2.3:1, white on the brand #7367f0 is 4.26:1. Only the failing tokens are darkened. */
[data-bs-theme=light] {
  --bs-primary: #5a4ee0;
  --bs-primary-rgb: 90, 78, 224;
  --bs-secondary-color: #615f6c;
  --bs-link-color: #5a4ee0;
  --bs-link-color-rgb: 90, 78, 224;
  --bs-link-hover-color: #4a3fc4;
  --bs-link-hover-color-rgb: 90, 78, 224;
  --bs-menu-header-color: #615f6c;
}
.btn-primary {
  --bs-btn-bg: #5a4ee0;
  --bs-btn-border-color: #5a4ee0;
  --bs-btn-hover-bg: #5044cc;
  --bs-btn-hover-border-color: #5044cc;
  --bs-btn-active-bg: #5a4ee0;
  --bs-btn-active-border-color: #5a4ee0;
  --bs-btn-disabled-bg: #5a4ee0;
  --bs-btn-disabled-border-color: #5a4ee0;
}
[data-bs-theme=light] .btn-outline-primary,
[data-bs-theme=light] .text-primary {
  --bs-btn-color: #5a4ee0;
}
[data-bs-theme=light] .text-body-secondary,
[data-bs-theme=light] .text-muted,
[data-bs-theme=light] .form-text,
[data-bs-theme=light] .menu-header-text,
[data-bs-theme=light] .layout-menu .menu-header .menu-header-text,
[data-bs-theme=light] kbd {
  color: #615f6c !important;
}
[data-bs-theme=light] .layout-menu .menu-header .menu-header-text {
  color: #615f6c !important;
}
/* Links inside running text are told apart by more than colour */
.content-wrapper :is(p, td, span, small, li, .form-text, .text-body-secondary, .text-muted):not(.nav-item, .menu-item, .dropdown-item, .page-item) > a:not(.btn, .nav-link, .dropdown-item, .menu-link, .page-link, .badge, .list-group-item) {
  text-decoration: underline;
}
[data-bs-theme=light] #impersonationBanner {
  color: #6b1a1d;
  background-color: #fde4e5;
  border-color: #f5b5b8;
}
#notificationBadge,
.badge.bg-danger {
  background-color: #c62828 !important;
  color: #fff;
}
/* Wide tables that scroll sideways must be reachable by keyboard */
.table-responsive {
  outline-offset: -2px;
}
/* Tinted "label" variants: the saturated text colours of the theme are 2–4:1 on their pale backgrounds */
[data-bs-theme=light] .bg-label-primary,
[data-bs-theme=light] .btn-label-primary,
[data-bs-theme=light] .alert-primary { color: #4a3fc4 !important; }
[data-bs-theme=light] .bg-label-info,
[data-bs-theme=light] .btn-label-info,
[data-bs-theme=light] .alert-info { color: #006f7d !important; }
[data-bs-theme=light] .bg-label-success,
[data-bs-theme=light] .btn-label-success,
[data-bs-theme=light] .alert-success { color: #17753f !important; }
[data-bs-theme=light] .bg-label-warning,
[data-bs-theme=light] .btn-label-warning,
[data-bs-theme=light] .alert-warning { color: #8f5200 !important; }
[data-bs-theme=light] .bg-label-danger,
[data-bs-theme=light] .btn-label-danger,
[data-bs-theme=light] .alert-danger { color: #b8232a !important; }
[data-bs-theme=light] .bg-label-secondary,
[data-bs-theme=light] .btn-label-secondary,
[data-bs-theme=light] .alert-secondary { color: #5f6168 !important; }
[data-bs-theme=light] .btn-label-primary:hover { background-color: #4a3fc4 !important; color: #fff !important; }
[data-bs-theme=light] .btn-label-info:hover { background-color: #006f7d !important; color: #fff !important; }
[data-bs-theme=light] .btn-label-success:hover { background-color: #17753f !important; color: #fff !important; }
[data-bs-theme=light] .btn-label-warning:hover { background-color: #8f5200 !important; color: #fff !important; }
[data-bs-theme=light] .btn-label-danger:hover { background-color: #b8232a !important; color: #fff !important; }
[data-bs-theme=light] .btn-label-secondary:hover { background-color: #5f6168 !important; color: #fff !important; }
[data-bs-theme=light] #impersonationBanner.alert-danger { color: #6b1a1d !important; }
.nav-pills:not(.section-tabs) .nav-link.active,
.nav-pills:not(.section-tabs) .show > .nav-link { color: #fff; background-color: #5a4ee0; }
/* Text colour utilities and outline/text buttons on light backgrounds */
[data-bs-theme=light] .text-primary { color: #4a3fc4 !important; }
[data-bs-theme=light] .text-info { color: #006f7d !important; }
[data-bs-theme=light] .text-success { color: #17753f !important; }
[data-bs-theme=light] .text-warning { color: #8f5200 !important; }
[data-bs-theme=light] .text-danger { color: #b8232a !important; }
[data-bs-theme=light] .text-secondary { color: #5f6168 !important; }
[data-bs-theme=light] .btn-text-danger,
[data-bs-theme=light] .btn-outline-danger { --bs-btn-color: #b8232a; color: #b8232a !important; }
[data-bs-theme=light] .btn-text-secondary,
[data-bs-theme=light] .btn-outline-secondary { --bs-btn-color: #5f6168; color: #5f6168 !important; }
[data-bs-theme=light] .btn-text-primary,
[data-bs-theme=light] .btn-outline-primary { --bs-btn-color: #4a3fc4; color: #4a3fc4 !important; }
[data-bs-theme=light] .btn-text-success,
[data-bs-theme=light] .btn-outline-success { --bs-btn-color: #17753f; color: #17753f !important; }
[data-bs-theme=light] .btn-text-warning,
[data-bs-theme=light] .btn-outline-warning { --bs-btn-color: #8f5200; color: #8f5200 !important; }
[data-bs-theme=light] .btn-text-info,
[data-bs-theme=light] .btn-outline-info { --bs-btn-color: #006f7d; color: #006f7d !important; }
.btn-warning { --bs-btn-color: #2b1700; color: #2b1700; }
[data-bs-theme=light] code { color: #b8232a; }
.btn-success { --bs-btn-bg: #1a7f46; --bs-btn-border-color: #1a7f46; --bs-btn-hover-bg: #17753f; --bs-btn-hover-border-color: #17753f; --bs-btn-active-bg: #136a38; --bs-btn-active-border-color: #136a38; --bs-btn-disabled-bg: #1a7f46; }
.btn-danger { --bs-btn-bg: #c62b30; --bs-btn-border-color: #c62b30; --bs-btn-hover-bg: #b8232a; --bs-btn-hover-border-color: #b8232a; --bs-btn-active-bg: #a81f25; --bs-btn-active-border-color: #a81f25; --bs-btn-disabled-bg: #c62b30; }
.btn-info { --bs-btn-bg: #00798a; --bs-btn-border-color: #00798a; --bs-btn-hover-bg: #006f7d; --bs-btn-hover-border-color: #006f7d; --bs-btn-disabled-bg: #00798a; }
.btn-secondary { --bs-btn-bg: #6b6e75; --bs-btn-border-color: #6b6e75; --bs-btn-hover-bg: #5f6168; --bs-btn-hover-border-color: #5f6168; --bs-btn-disabled-bg: #6b6e75; }
.badge.bg-success { background-color: #1a7f46 !important; }
.badge.bg-info { background-color: #00798a !important; }
.badge.bg-secondary { background-color: #6b6e75 !important; }
.badge.bg-warning { background-color: #fdd9a5 !important; color: #5c3300 !important; }
[data-bs-theme=light] .link-danger,
[data-bs-theme=light] .link-danger:focus { color: #b8232a !important; }
[data-bs-theme=light] .link-success { color: #17753f !important; }
[data-bs-theme=light] .link-warning { color: #8f5200 !important; }
[data-bs-theme=light] .link-info { color: #006f7d !important; }
[data-bs-theme=light] .alert-info .alert-link { color: #004f59 !important; }
[data-bs-theme=light] .alert-success .alert-link { color: #0f4f2a !important; }
[data-bs-theme=light] .alert-warning .alert-link { color: #5c3300 !important; }
[data-bs-theme=light] .alert-danger .alert-link { color: #7a1519 !important; }
[data-bs-theme=light] .alert-primary .alert-link { color: #2f2790 !important; }
[data-bs-theme=light] .alert-secondary .alert-link { color: #3d3f44 !important; }
[data-bs-theme=light] { --bs-body-color: #5d5b69; --bs-body-color-rgb: 93, 91, 105; }
/* Outline buttons: solid dark fill with white text when hovered, pressed or checked */
[data-bs-theme=light] .btn-outline-primary:hover,
[data-bs-theme=light] .btn-outline-primary:active,
[data-bs-theme=light] .btn-outline-primary.active,
[data-bs-theme=light] .btn-outline-primary.show,
[data-bs-theme=light] .btn-check:checked + .btn-outline-primary { background-color: #4a3fc4 !important; border-color: #4a3fc4 !important; color: #fff !important; }
[data-bs-theme=light] .btn-outline-secondary:hover,
[data-bs-theme=light] .btn-outline-secondary:active,
[data-bs-theme=light] .btn-outline-secondary.active,
[data-bs-theme=light] .btn-outline-secondary.show,
[data-bs-theme=light] .btn-check:checked + .btn-outline-secondary { background-color: #5f6168 !important; border-color: #5f6168 !important; color: #fff !important; }
[data-bs-theme=light] .btn-outline-success:hover,
[data-bs-theme=light] .btn-outline-success:active,
[data-bs-theme=light] .btn-outline-success.active,
[data-bs-theme=light] .btn-outline-success.show,
[data-bs-theme=light] .btn-check:checked + .btn-outline-success { background-color: #17753f !important; border-color: #17753f !important; color: #fff !important; }
[data-bs-theme=light] .btn-outline-warning:hover,
[data-bs-theme=light] .btn-outline-warning:active,
[data-bs-theme=light] .btn-outline-warning.active,
[data-bs-theme=light] .btn-outline-warning.show,
[data-bs-theme=light] .btn-check:checked + .btn-outline-warning { background-color: #8f5200 !important; border-color: #8f5200 !important; color: #fff !important; }
[data-bs-theme=light] .btn-outline-info:hover,
[data-bs-theme=light] .btn-outline-info:active,
[data-bs-theme=light] .btn-outline-info.active,
[data-bs-theme=light] .btn-outline-info.show,
[data-bs-theme=light] .btn-check:checked + .btn-outline-info { background-color: #006f7d !important; border-color: #006f7d !important; color: #fff !important; }
[data-bs-theme=light] .btn-outline-danger:hover,
[data-bs-theme=light] .btn-outline-danger:active,
[data-bs-theme=light] .btn-outline-danger.active,
[data-bs-theme=light] .btn-outline-danger.show,
[data-bs-theme=light] .btn-check:checked + .btn-outline-danger { background-color: #b8232a !important; border-color: #b8232a !important; color: #fff !important; }
/* The selected row of a list group has a pale tint in this theme: its secondary text must stay dark */
[data-bs-theme=light] .list-group-item.active,
[data-bs-theme=light] .list-group-item.active .text-body-secondary,
[data-bs-theme=light] .list-group-item.active .text-muted,
[data-bs-theme=light] .list-group-item.active small { color: #3f3799 !important; }
/* A wide child must not stretch the whole page past the viewport (the navbar followed it): flex children may shrink */
.layout-page, .content-wrapper, .layout-container { min-width: 0; max-width: 100%; }
.nav-pills:not(.section-tabs) { flex-wrap: wrap; }
/* A long strip of tabs scrolls inside itself instead of widening the page */
.nav-tabs:not(.section-tabs) { flex-wrap: nowrap; overflow-x: auto; overflow-y: hidden; }
.nav-tabs:not(.section-tabs) .nav-link { white-space: nowrap; }

/* Solid badges/backgrounds carry white text */
.badge.bg-primary, .bg-primary { background-color: #5a4ee0 !important; }
.bg-success { background-color: #1a7f46 !important; }

.footer-link .badge { background-color: #5a4ee0 !important; color: #fff !important; opacity: 1; }

/* Links inside a paragraph or note, on any layout (the vendor portal has no content wrapper) */
:is(p, small, .form-text, .form-check-label, .text-body-secondary, .text-muted) > a:not(.btn, .nav-link, .dropdown-item, .menu-link, .page-link, .badge, .list-group-item, .footer-link, .app-brand-link) {
  text-decoration: underline;
}

/* Modern look of running-text links: the underline stays (links differ from text by more than colour, WCAG) but is a thin,
   offset, softened line that turns solid on hover, instead of the heavy default underline */
.content-wrapper :is(p, td, span, small, li, .form-text, .text-body-secondary, .text-muted):not(.nav-item, .menu-item, .dropdown-item, .page-item) > a:not(.btn, .nav-link, .dropdown-item, .menu-link, .page-link, .badge, .list-group-item),
:is(p, small, .form-text, .form-check-label, .text-body-secondary, .text-muted) > a:not(.btn, .nav-link, .dropdown-item, .menu-link, .page-link, .badge, .list-group-item, .footer-link, .app-brand-link),
a[href^="tel:"], a[href^="mailto:"] {
  text-decoration-line: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: .22em;
  text-decoration-color: color-mix(in srgb, currentColor 40%, transparent);
  transition: text-decoration-color .15s ease, color .15s ease;
}
.content-wrapper :is(p, td, span, small, li, .form-text, .text-body-secondary, .text-muted):not(.nav-item, .menu-item, .dropdown-item, .page-item) > a:not(.btn, .nav-link, .dropdown-item, .menu-link, .page-link, .badge, .list-group-item):is(:hover, :focus-visible),
:is(p, small, .form-text, .form-check-label, .text-body-secondary, .text-muted) > a:not(.btn, .nav-link, .dropdown-item, .menu-link, .page-link, .badge, .list-group-item, .footer-link, .app-brand-link):is(:hover, :focus-visible),
a[href^="tel:"]:is(:hover, :focus-visible), a[href^="mailto:"]:is(:hover, :focus-visible) {
  text-decoration-color: currentColor;
}

/* Dark theme: rows tinted with a status "-subtle" background (dashboard attention items, building overview) take a lighter text colour (>= 4.5:1) */
[data-bs-theme=dark] :is(a, div)[class*="-subtle"][class*="bg-"].text-reset,
[data-bs-theme=dark] :is(a, div)[class*="-subtle"][class*="bg-"].text-reset .fw-medium {
  color: #e1e2ee !important;
}

/* Dark theme: muted text on the dark surfaces (#2f3349) must stay readable */
[data-bs-theme=dark] {
  --bs-secondary-color: #b6b7c9;
  --bs-menu-header-color: #b6b7c9;
}
[data-bs-theme=dark] .text-body-secondary,
[data-bs-theme=dark] .text-muted,
[data-bs-theme=dark] .form-text,
[data-bs-theme=dark] .menu-header-text,
[data-bs-theme=dark] .nav-context-back > span,
[data-bs-theme=dark] .nav-context-sub,
[data-bs-theme=dark] kbd {
  color: #b6b7c9 !important;
}

a[href^="tel:"], a[href^="mailto:"] { text-decoration: underline; }

.badge.bg-success, .badge.bg-primary, .badge.bg-info, .badge.bg-secondary, .badge.bg-danger { color: #fff !important; }

/* Dark theme: the saturated brand/status colours are too dark on the dark surfaces — lighter text variants */
[data-bs-theme=dark] {
  --bs-link-color: #b3adf8;
  --bs-link-color-rgb: 179, 173, 248;
  --bs-link-hover-color: #cdc9fa;
  --bs-link-hover-color-rgb: 205, 201, 250;
}
[data-bs-theme=dark] .text-primary, [data-bs-theme=dark] .bg-label-primary, [data-bs-theme=dark] .btn-label-primary,
[data-bs-theme=dark] .btn-text-primary, [data-bs-theme=dark] .btn-outline-primary, [data-bs-theme=dark] .alert-primary { color: #b3adf8 !important; }
[data-bs-theme=dark] .text-secondary, [data-bs-theme=dark] .bg-label-secondary, [data-bs-theme=dark] .btn-label-secondary,
[data-bs-theme=dark] .btn-text-secondary, [data-bs-theme=dark] .btn-outline-secondary, [data-bs-theme=dark] .alert-secondary { color: #d3d4e0 !important; }
[data-bs-theme=dark] .text-info, [data-bs-theme=dark] .bg-label-info, [data-bs-theme=dark] .btn-label-info,
[data-bs-theme=dark] .btn-text-info, [data-bs-theme=dark] .alert-info { color: #6fdcec !important; }
[data-bs-theme=dark] .text-success, [data-bs-theme=dark] .bg-label-success, [data-bs-theme=dark] .btn-label-success,
[data-bs-theme=dark] .btn-text-success, [data-bs-theme=dark] .alert-success { color: #7fe3a8 !important; }
[data-bs-theme=dark] .text-warning, [data-bs-theme=dark] .bg-label-warning, [data-bs-theme=dark] .btn-label-warning,
[data-bs-theme=dark] .btn-text-warning, [data-bs-theme=dark] .alert-warning { color: #ffc783 !important; }
[data-bs-theme=dark] .text-danger, [data-bs-theme=dark] .bg-label-danger, [data-bs-theme=dark] .btn-label-danger,
[data-bs-theme=dark] .btn-text-danger, [data-bs-theme=dark] .alert-danger, [data-bs-theme=dark] .link-danger { color: #ff9a9d !important; }
[data-bs-theme=dark] .footer-link { color: #d3d4e0; }
[data-bs-theme=dark] a:not(.btn, .nav-link, .dropdown-item, .menu-link, .page-link, .badge, .list-group-item, .app-brand-link, .footer-link, .text-danger, .text-success, .text-warning, .text-body, .text-heading, .link-danger) { color: #b3adf8; }
[data-bs-theme=dark] .nav-link:not(.active):not(.menu-link) { color: #d3d4e0; }
[data-bs-theme=dark] .nav-tabs .nav-link.active, [data-bs-theme=dark] .section-tabs .nav-link.active { color: #b3adf8; }
[data-bs-theme=dark] .btn-outline-danger { color: #ff9a9d !important; }
[data-bs-theme=dark] .btn-outline-success { color: #7fe3a8 !important; }
[data-bs-theme=dark] .btn-outline-warning { color: #ffc783 !important; }
[data-bs-theme=dark] .btn-outline-info { color: #6fdcec !important; }
[data-bs-theme=dark] .list-group-item.active, [data-bs-theme=dark] .list-group-item.active * { color: #e3e1fb !important; }

/* Phones: rows of filters/buttons wrap instead of widening the page */
@media (max-width: 575.98px) {
  .content-wrapper .d-flex:not(.flex-nowrap, .flex-column, .btn-group, .input-group, .form-check, .progress, .avatar) { flex-wrap: wrap; }
  .nav-pills:not(.section-tabs) .nav-link, .billding-upsell { white-space: normal; max-width: 100%; }
}
[data-bs-theme=dark] .link-primary { color: #b3adf8 !important; }
.mobile-building-chips a[aria-current] { background-color: #5a4ee0 !important; color: #fff !important; }

/* Phones: the unread count must be readable (≥ 14 px, mobile baseline) */
@media (max-width: 767.98px) {
  #notificationBadge { font-size: 0.875rem; line-height: 1; min-width: 1.25rem; padding: 0.2rem 0.3rem; }
}
