/* Shared age emphasis: the fallback preserves the original non-branded theme. */
.fm-person-age,
.fm-clean-layout .table > tbody > tr > td.fm-person-age {
    color: var(--fm-brand-link, #007a72);
    font-weight: 700;
}

/* Dashboard decoration follows the tenant; red negative balances keep their role. */
body.fm-tenant-branded .overview-summary-card:not(.overview-tone-red) > i,
body.fm-tenant-branded .overview-module-card__head i,
body.fm-tenant-branded .overview-status-pill {
    color: var(--fm-brand-link, #00695c);
    background: var(--fm-brand-primary-soft, #eaf7f4);
}

body.fm-tenant-branded .overview-kicker,
body.fm-tenant-branded .overview-status-row strong,
body.fm-tenant-branded .overview-empty i {
    color: var(--fm-brand-link, #00695c);
}

body.fm-tenant-branded .overview-bar__fill {
    background: linear-gradient(180deg, var(--fm-brand-primary, #009688), var(--fm-brand-primary-hover, #00695c));
}

body.fm-tenant-branded .overview-status-row__track span {
    background: var(--fm-brand-primary, #00695c);
}

body.fm-tenant-branded .overview-module-card__link,
body.fm-tenant-branded .overview-panel__action,
body.fm-tenant-branded .overview-module-card__link:hover,
body.fm-tenant-branded .overview-panel__action:hover,
body.fm-tenant-branded .overview-module-card__link:focus,
body.fm-tenant-branded .overview-panel__action:focus {
    color: var(--fm-brand-link, #00695c);
    background: var(--fm-brand-primary-soft, #eaf7f4);
    border-color: var(--fm-brand-primary-soft, #b7ded6);
}

body.fm-tenant-branded .overview-module-card__link:focus-visible,
body.fm-tenant-branded .overview-panel__action:focus-visible {
    outline: 2px solid var(--fm-brand-focus, #00695c);
    outline-offset: 2px;
}

/* Schedule KPI tones are shared styles; only the overall total is decorative. */
.kpi-tone-total { --fm-kpi-color: var(--fm-brand-link, #387467); }
.kpi-tone-created { --fm-kpi-color: var(--fm-brand-link, #6d4c41); }
.kpi-tone-scheduled { --fm-kpi-color: #888888; }
.kpi-tone-confirmed { --fm-kpi-color: #5cb85c; }
.kpi-tone-arrived { --fm-kpi-color: #f0ad4e; }
.kpi-tone-in-progress { --fm-kpi-color: #5bc0de; }
.kpi-tone-finished { --fm-kpi-color: #3c763d; }
.kpi-tone-cancelled { --fm-kpi-color: #e53935; }
.kpi-tone-late { --fm-kpi-color: #9c27b0; }
.kpi-tone-no-show { --fm-kpi-color: #8a6d3b; }

.kpi-row,
.support-card {
    margin-bottom: 15px;
}

.kpi-row .panel[class*="kpi-tone-"],
.support-card .panel.kpi-tone-created {
    border-top-width: 3px;
    border-top-color: var(--fm-kpi-color);
}

.kpi-row .panel[class*="kpi-tone-"] .kpi-value,
.support-card .panel.kpi-tone-created .kpi-value {
    color: var(--fm-kpi-color);
}

/* Optional tenant identity. Operational status colors keep their own styles. */
body.fm-tenant-branded .fm-tenant-logo {
  display: block;
  width: auto;
  height: auto;
  max-width: 154px;
  max-height: 46px;
  object-fit: contain;
}

body.fm-tenant-branded .header-3 .navbar-brand .fm-tenant-logo {
  box-sizing: border-box;
  max-width: 180px;
  max-height: 58px;
  padding: 5px;
  background: #fff;
  border-radius: 4px;
}

body.fm-tenant-branded a.fichario,
body.fm-tenant-branded .table td a:not(.btn):not(.text-danger):not(.text-warning):not(.text-success):not(.text-info),
body.fm-tenant-branded .breadcrumb a,
body.fm-tenant-branded .btn-link {
  color: var(--fm-brand-link, #00695c);
}

body.fm-tenant-branded .btn-primary,
body.fm-tenant-branded .btn-black,
body.fm-tenant-branded .chat-primary-action {
  color: var(--fm-brand-on-primary, #fff);
  background-color: var(--fm-brand-primary, #00695c);
  border-color: var(--fm-brand-primary, #00695c);
}

body.fm-tenant-branded .btn-primary:hover,
body.fm-tenant-branded .btn-primary:focus,
body.fm-tenant-branded .btn-primary:active,
body.fm-tenant-branded .btn-primary.active,
body.fm-tenant-branded .btn-black:hover,
body.fm-tenant-branded .btn-black:focus,
body.fm-tenant-branded .btn-black:active,
body.fm-tenant-branded .chat-primary-action:hover,
body.fm-tenant-branded .chat-primary-action:focus,
body.fm-tenant-branded .chat-primary-action:active {
  color: var(--fm-brand-on-primary, #fff);
  background-color: var(--fm-brand-primary-hover, #00564b);
  border-color: var(--fm-brand-primary-hover, #00564b);
}

body.fm-tenant-branded .btn-primary:focus,
body.fm-tenant-branded .btn-default:focus,
body.fm-tenant-branded .btn-black:focus,
body.fm-tenant-branded .btn-link:focus,
body.fm-tenant-branded .chat-primary-action:focus,
body.fm-tenant-branded .chat-secondary-action:focus {
  /* components.css removes all Bootstrap button outlines with !important. */
  outline: 2px solid var(--fm-brand-focus, #00695c) !important;
  outline-offset: 2px;
}

body.fm-tenant-branded .btn-default,
body.fm-tenant-branded .btn-default:hover,
body.fm-tenant-branded .btn-default:focus,
body.fm-tenant-branded .btn-default:active,
body.fm-tenant-branded .btn-default.active,
body.fm-tenant-branded .open > .dropdown-toggle.btn-default,
body.fm-tenant-branded .panel-default > .panel-heading {
  color: var(--fm-brand-link, #2b564d);
  background-color: var(--fm-brand-primary-soft, #dfe7e3);
  border-color: var(--fm-brand-focus, #c7d3cd);
}

body.fm-tenant-branded .panel-default > .panel-heading .badge {
  color: var(--fm-brand-on-primary, #fff);
  background-color: var(--fm-brand-primary, #387467);
}

body.fm-tenant-branded .form-control:focus:not(.error):not([aria-invalid="true"]):not(.has-error .form-control):not(.has-warning .form-control):not(.has-success .form-control) {
  border-color: var(--fm-brand-focus, #00695c);
  box-shadow: 0 0 0 3px var(--fm-brand-primary-soft, #eaf7f4);
}

body.fm-tenant-branded ul.pagination > li:not(.active):not(.disabled) > a,
body.fm-tenant-branded ul.pagination > li:not(.active):not(.disabled) > span {
  color: var(--fm-brand-link, #00695c);
}

body.fm-tenant-branded ul.pagination > li:not(.disabled) > a:focus {
  outline-color: var(--fm-brand-focus, #00695c);
}

body.fm-tenant-branded ul.pagination > li:not(.disabled) > a:hover,
body.fm-tenant-branded ul.pagination > li:not(.disabled) > a:focus,
body.fm-tenant-branded ul.pagination > li:not(.disabled) > span:hover {
  border-color: var(--fm-brand-primary, #00695c);
}

body.fm-tenant-branded ul.pagination > li.active > a,
body.fm-tenant-branded ul.pagination > li.active > a:hover,
body.fm-tenant-branded ul.pagination > li.active > a:focus,
body.fm-tenant-branded ul.pagination > li.active > span {
  color: var(--fm-brand-on-primary, #fff);
  background-color: var(--fm-brand-primary, #00695c);
  border-color: var(--fm-brand-primary, #00695c);
}

body.fm-tenant-branded .header-3 .navbar-default,
body.fm-tenant-branded .header-3 .navbar-default .navbar-toggle,
body.fm-tenant-branded .header-3 .navbar-default li > .sub-menu > li > a:hover {
  color: var(--fm-brand-on-primary, #fff);
  background-color: var(--fm-brand-primary, #387467);
}

body.fm-tenant-branded .header-3 .navbar-default .navbar-nav > li > a,
body.fm-tenant-branded .header-3 .navbar-default .navbar-nav > .active > a,
body.fm-tenant-branded .header-3 .navbar-default .navbar-nav > .active > a:hover,
body.fm-tenant-branded .header-3 .navbar-default .navbar-nav > .active > a:focus,
body.fm-tenant-branded .header-3 .navbar-default .navbar-toggle.collapsed {
  color: var(--fm-brand-on-primary, #fff);
}

body.fm-tenant-branded .header-3 .navbar-default .navbar-nav > li > a::after {
  background-color: var(--fm-brand-on-primary, #fff);
}

body.fm-tenant-branded .patient-tabs > li.active > a,
body.fm-tenant-branded .patient-tabs > li.active > a:hover,
body.fm-tenant-branded .patient-tabs > li.active > a:focus {
  color: var(--fm-brand-link, #387467);
  background-color: var(--fm-brand-primary-soft, #f2fffb);
  border-color: var(--fm-brand-primary, #387467);
}

/* The settings preview owns its variables and does not recolor the current shell. */
.fm-tenant-branding-preview {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 14px;
  margin: 16px 0;
  padding: 20px;
  background: #fff;
  border: 1px solid #dde6ea;
  border-radius: 8px;
}

.fm-tenant-branding-preview-heading {
  width: 100%;
  margin: 0;
  color: #17212b;
}

.fm-tenant-branding-preview .btn-primary,
.fm-tenant-branding-preview-button {
  color: var(--fm-brand-on-primary, #fff);
  background: var(--fm-brand-primary, #00695c);
  border-color: var(--fm-brand-primary, #00695c);
}

.fm-tenant-branding-preview .btn-primary:hover,
.fm-tenant-branding-preview .btn-primary:focus,
.fm-tenant-branding-preview-button:hover,
.fm-tenant-branding-preview-button:focus {
  color: var(--fm-brand-on-primary, #fff);
  background: var(--fm-brand-primary-hover, #00564b);
  border-color: var(--fm-brand-primary-hover, #00564b);
}

.fm-tenant-branding-preview-link,
.fm-tenant-branding-preview a:not(.btn) {
  color: var(--fm-brand-link, #00695c);
  text-decoration: underline;
}

.fm-tenant-branding-preview-soft,
.fm-tenant-branding-preview__soft {
  padding: 10px 14px;
  color: var(--fm-brand-link, #00695c);
  background: var(--fm-brand-primary-soft, #eaf7f4);
  border-radius: 6px;
}

.fm-tenant-branding-preview label {
  color: var(--fm-brand-link, #00695c);
}

.fm-tenant-branding-preview .form-control.fm-tenant-branding-preview-input {
  color: #1f2933;
  background: #fff;
  border-color: var(--fm-brand-focus, #00695c);
}

.fm-tenant-branding-preview .btn:focus,
.fm-tenant-branding-preview a:focus,
.fm-tenant-branding-preview-input:focus {
  outline: 2px solid var(--fm-brand-focus, #00695c) !important;
  outline-offset: 2px;
}

.fm-tenant-branding-preview .form-control.fm-tenant-branding-preview-input:focus {
  border-color: var(--fm-brand-focus, #00695c);
  box-shadow: 0 0 0 3px var(--fm-brand-primary-soft, #eaf7f4);
}

@media (max-width: 480px) {
  .fm-tenant-branding-preview {
    padding: 14px;
  }

  .fm-tenant-branding-preview .form-control {
    width: 100%;
  }
}

/* Tenant tokens inherit only inside an explicitly branded authenticated shell. */
body.fm-tenant-branded .fm-clean-layout__content :where(a:not(.btn):not(.text-danger):not(.text-warning):not(.text-success):not(.text-info):not(.alert-link):not(.workspace-card__action):not(.fm-filter-status):not(.fc-event):not(.fc-list-item a)) {
    color: var(--fm-brand-link, #00695c);
}

body.fm-tenant-branded .fm-app-nav__item:hover,
body.fm-tenant-branded .fm-app-nav__item:focus,
body.fm-tenant-branded .fm-app-nav__item.is-active,
body.fm-tenant-branded .fm-app-nav__item.is-active i,
body.fm-tenant-branded .fm-app-menu__item:hover,
body.fm-tenant-branded .fm-app-menu__item:focus,
body.fm-tenant-branded .fm-app-menu summary:hover,
body.fm-tenant-branded .fm-app-menu summary:focus,
body.fm-tenant-branded .fm-app-menu[open] summary,
body.fm-tenant-branded .fm-app-sidebar-toggle:hover,
body.fm-tenant-branded .fm-app-sidebar-toggle:focus,
body.fm-tenant-branded.fm-clean-sidebar-collapsed .fm-app-sidebar-toggle,
body.fm-tenant-branded .fm-app-topbar__nav a:hover,
body.fm-tenant-branded .fm-app-topbar__nav a:focus {
    color: var(--fm-brand-link, #00695c);
    background: var(--fm-brand-primary-soft, #eaf7f4);
    border-color: var(--fm-brand-primary-soft, #b7ded6);
}

body.fm-tenant-branded .fm-app-sidebar-toggle:focus,
body.fm-tenant-branded .fm-app-nav__item:focus,
body.fm-tenant-branded .fm-app-menu__item:focus,
body.fm-tenant-branded .fm-app-menu summary:focus,
body.fm-tenant-branded .fm-app-topbar__nav a:focus {
    outline: 2px solid var(--fm-brand-focus, #00695c);
    outline-offset: 2px;
}

body.fm-tenant-branded .fm-app-global-search input:focus {
    border-color: var(--fm-brand-focus, #159286);
    box-shadow: 0 0 0 3px var(--fm-brand-primary-soft, #eaf7f4);
}

body.fm-tenant-branded .fm-app-global-search button,
body.fm-tenant-branded .workspace-card__action {
    color: var(--fm-brand-on-primary, #fff);
    background: var(--fm-brand-primary, #00695c);
    border-color: var(--fm-brand-primary, #00695c);
}

body.fm-tenant-branded .fm-app-global-search button:hover,
body.fm-tenant-branded .fm-app-global-search button:focus,
body.fm-tenant-branded .workspace-card__action:hover,
body.fm-tenant-branded .workspace-card__action:focus {
    color: var(--fm-brand-on-primary, #fff);
    background: var(--fm-brand-primary-hover, #00564b);
    border-color: var(--fm-brand-primary-hover, #00564b);
}

body.fm-tenant-branded .fm-app-global-search button:focus,
body.fm-tenant-branded .workspace-card__action:focus {
    outline: 2px solid var(--fm-brand-focus, #00695c);
    outline-offset: 2px;
}

body.fm-tenant-branded .workspace-clean__eyebrow,
body.fm-tenant-branded .workspace-card__kicker,
body.fm-tenant-branded .workspace-empty i {
    color: var(--fm-brand-link, #00695c);
}

body.fm-tenant-branded .fm-clean-layout__content .table > thead > tr > th a:hover,
body.fm-tenant-branded .fm-clean-layout__content .table > thead > tr > th a:focus,
body.fm-tenant-branded .fm-clean-layout__content .table > thead > tr > th a.asc,
body.fm-tenant-branded .fm-clean-layout__content .table > thead > tr > th a.desc {
    color: var(--fm-brand-link, #00695c);
}

@media (max-width: 767px) {
    body.fm-tenant-branded .fm-app-topbar__brand .fm-tenant-logo {
        max-width: 140px;
        max-height: 44px;
    }
}

@media (max-width: 680px) {
    /* Keep the tenant identity visible while retaining space for quick actions. */
    body.fm-tenant-branded .fm-app-topbar {
        grid-template-rows: 44px 60px;
    }

    body.fm-tenant-branded .fm-app-topbar__brand {
        display: flex;
        grid-column: 1 / -1;
        justify-content: center;
        min-height: 44px;
    }

    body.fm-tenant-branded .fm-app-sidebar {
        top: 135px;
    }
}

/* Optional calendar accents. Event colors provided by the tenant remain authoritative. */
body.fm-tenant-branded .fc .fc-button-primary {
    color: var(--fm-brand-on-primary, #fff);
    background-color: var(--fm-brand-primary, #2c3e50);
    border-color: var(--fm-brand-primary, #2c3e50);
}

body.fm-tenant-branded .fc .fc-button-primary:hover,
body.fm-tenant-branded .fc .fc-button-primary:not(:disabled):active,
body.fm-tenant-branded .fc .fc-button-primary:not(:disabled).fc-button-active {
    color: var(--fm-brand-on-primary, #fff);
    background-color: var(--fm-brand-primary-hover, #1a252f);
    border-color: var(--fm-brand-primary-hover, #151e27);
}

body.fm-tenant-branded .fc .fc-button-primary:focus,
body.fm-tenant-branded .fc .fc-event.fm-calendar-brand-default:focus {
    outline: 2px solid var(--fm-brand-focus, #00695c);
    outline-offset: 2px;
    box-shadow: none;
}

body.fm-tenant-branded .fc .fc-button-primary:not(:disabled).fc-button-active:focus,
body.fm-tenant-branded .fc .fc-button-primary:not(:disabled):active:focus {
    box-shadow: none;
}

body.fm-tenant-branded .fc-unthemed td.fc-today {
    background: var(--fm-brand-primary-soft, #fcf8e3);
}

body.fm-tenant-branded .fc .fc-highlight {
    background: var(--fm-brand-primary-soft, #bce8f1);
    box-shadow: inset 0 0 0 2px var(--fm-brand-focus, #00695c);
    opacity: 1;
}

body.fm-tenant-branded .fc .fc-now-indicator-line {
    border-top-color: var(--fm-brand-focus, red);
}

body.fm-tenant-branded .fc .fc-now-indicator-arrow {
    border-left-color: var(--fm-brand-focus, red);
    border-right-color: var(--fm-brand-focus, red);
}

body.fm-tenant-branded .fc .fc-event.fm-calendar-brand-default,
body.fm-tenant-branded .fc .fc-event.fm-calendar-brand-default:hover {
    color: var(--fm-brand-on-primary, #fff);
    background-color: var(--fm-brand-primary, #3788d8);
    border-color: var(--fm-brand-primary, #3788d8);
}

body.fm-tenant-branded .fc .fc-list-item.fm-calendar-brand-default .fc-event-dot {
    background-color: var(--fm-brand-link, #3788d8);
}

body.fm-tenant-branded .fc .fc-list-item.fm-calendar-brand-default .fc-list-item-title,
body.fm-tenant-branded .fc .fc-list-item.fm-calendar-brand-default .fc-list-status-icon {
    color: var(--fm-brand-link, #00695c);
}

body.fm-tenant-branded #modal-view .appointment-view-table > tbody > tr > th {
    color: var(--fm-brand-on-primary, #fff);
    background-color: var(--fm-brand-primary, #387467);
}

/* Shared brand primitives for forms, navigation, tables and summary panels. */
body.fm-tenant-branded .text-primary {
    color: var(--fm-brand-link, #387467);
}

body.fm-tenant-branded .bg-primary,
body.fm-tenant-branded .label-primary,
body.fm-tenant-branded .progress-bar:not(.progress-bar-success):not(.progress-bar-info):not(.progress-bar-warning):not(.progress-bar-danger),
body.fm-tenant-branded .nav-pills > li.active > a,
body.fm-tenant-branded .nav-pills > li.active > a:hover,
body.fm-tenant-branded .nav-pills > li.active > a:focus {
    color: var(--fm-brand-on-primary, #fff);
    background-color: var(--fm-brand-primary, #387467);
}

body.fm-tenant-branded .panel-primary {
    border-color: var(--fm-brand-primary, #387467);
}

body.fm-tenant-branded .panel-primary > .panel-heading {
    color: var(--fm-brand-on-primary, #fff);
    background-color: var(--fm-brand-primary, #387467);
    border-color: var(--fm-brand-primary, #387467);
}

body.fm-tenant-branded .panel-primary > .panel-heading .panel-title,
body.fm-tenant-branded .panel-primary > .panel-heading .panel-title > a,
body.fm-tenant-branded .panel-primary > .panel-heading .glyphicon,
body.fm-tenant-branded .panel-primary > .panel-heading .fa {
    color: inherit;
}

/* Summary headings stay quiet; buttons and links carry the tenant identity. */
body.fm-tenant-branded .panel.fm-panel-summary > .panel-heading {
    color: #334155;
    background-color: #f3f6f8;
    border-color: inherit;
}

body.fm-tenant-branded .panel.fm-panel-summary > .panel-heading .panel-title,
body.fm-tenant-branded .panel.fm-panel-summary > .panel-heading .panel-title > a,
body.fm-tenant-branded .panel.fm-panel-summary > .panel-heading .glyphicon,
body.fm-tenant-branded .panel.fm-panel-summary > .panel-heading .fa {
    color: inherit;
}

body.fm-tenant-branded .table > thead > tr > th,
body.fm-tenant-branded .table > thead > tr > th > a {
    color: var(--fm-brand-link, #24584d);
    background-color: var(--fm-brand-primary-soft, #edf3f1);
}

body.fm-tenant-branded .fm-filter-panel,
body.fm-tenant-branded .fm-filter-heading,
body.fm-tenant-branded .fm-filter-panel > .panel-heading,
body.fm-tenant-branded form.fm-filter-panel::before {
    border-color: var(--fm-brand-primary-soft, #dfe7e4);
}

body.fm-tenant-branded .fm-filter-heading,
body.fm-tenant-branded .fm-filter-panel > .panel-heading,
body.fm-tenant-branded form.fm-filter-panel::before {
    color: var(--fm-brand-link, #2b564d);
    background-color: var(--fm-brand-primary-soft, #f7faf9);
}

body.fm-tenant-branded .dropdown-menu > li > a:hover,
body.fm-tenant-branded .dropdown-menu > li > a:focus,
body.fm-tenant-branded .dropdown-menu > .active > a,
body.fm-tenant-branded .dropdown-menu > .active > a:hover,
body.fm-tenant-branded .dropdown-menu > .active > a:focus,
body.fm-tenant-branded .select2-container--default .select2-results__option--highlighted[aria-selected] {
    color: var(--fm-brand-link, #24584d);
    background-color: var(--fm-brand-primary-soft, #edf3f1);
}

body.fm-tenant-branded .select2-container--default.select2-container--focus .select2-selection,
body.fm-tenant-branded .select2-container--default.select2-container--open .select2-selection {
    border-color: var(--fm-brand-focus, #00695c);
    box-shadow: 0 0 0 3px var(--fm-brand-primary-soft, #eaf7f4);
}

/* Shared chat headings use the same readable foreground as primary panels. */
body.fm-tenant-branded .chat-panel-heading .chat-panel-subtitle,
body.fm-tenant-branded .chat-panel-heading .chat-panel-contact-link {
    color: var(--fm-brand-on-primary, #fff);
}

body.fm-tenant-branded .whatsapp-nav-link.active,
body.fm-tenant-branded .whatsapp-nav-link.active:hover,
body.fm-tenant-branded .whatsapp-nav-link.active:focus {
    color: var(--fm-brand-on-primary, #fff);
    background-color: var(--fm-brand-primary, #337ab7);
    border-color: var(--fm-brand-primary, #2b669a);
    box-shadow: none;
}

/* Optional neutral chat composition, shared by inbox components. */
body.fm-tenant-branded .chat-neutral-theme .chat-shell-panel,
body.fm-tenant-branded .chat-neutral-theme .chat-summary-main,
body.fm-tenant-branded .chat-neutral-theme .chat-transfer-card,
body.fm-tenant-branded .chat-neutral-theme .chat-form-card,
body.fm-tenant-branded .chat-neutral-theme .chat-thread-card,
body.fm-tenant-branded .chat-neutral-theme .chat-batch-check,
body.fm-tenant-branded .chat-neutral-theme .whatsapp-nav-shell {
    border-color: #e2e5e9;
    box-shadow: 0 4px 14px rgba(17, 24, 39, 0.05);
}

body.fm-tenant-branded .chat-neutral-theme .chat-shell-panel > .chat-panel-heading {
    color: #28313d;
    background-color: #fff;
    border-color: #e2e5e9;
}

body.fm-tenant-branded .chat-neutral-theme .chat-panel-subtitle,
body.fm-tenant-branded .chat-neutral-theme .chat-panel-eyebrow,
body.fm-tenant-branded .chat-neutral-theme .chat-block-label,
body.fm-tenant-branded .chat-neutral-theme .chat-actions-label,
body.fm-tenant-branded .chat-neutral-theme .chat-summary-label,
body.fm-tenant-branded .chat-neutral-theme .chat-transfer-help,
body.fm-tenant-branded .chat-neutral-theme .chat-queue-metric span,
body.fm-tenant-branded .chat-neutral-theme .chat-item-time {
    color: #5b6573;
}

body.fm-tenant-branded .chat-neutral-theme .chat-sidebar-body,
body.fm-tenant-branded .chat-neutral-theme .chat-conversation-body,
body.fm-tenant-branded .chat-neutral-theme .chat-box,
body.fm-tenant-branded .chat-neutral-theme .whatsapp-nav-shell {
    background-color: #f5f6f7;
}

body.fm-tenant-branded .chat-neutral-theme .chat-sidebar-block,
body.fm-tenant-branded .chat-neutral-theme .chat-sidebar-block .panel,
body.fm-tenant-branded .chat-neutral-theme .chat-batch-panel,
body.fm-tenant-branded .chat-neutral-theme .chat-queue-metric,
body.fm-tenant-branded .chat-neutral-theme .chat-empty-state,
body.fm-tenant-branded .chat-neutral-theme .chat-box {
    border-color: #e2e5e9;
}

body.fm-tenant-branded .chat-neutral-theme .chat-sidebar-block .panel > .panel-heading {
    color: #374151;
    background-color: #f5f6f7;
    border-color: #e2e5e9;
}

body.fm-tenant-branded .chat-neutral-theme .chat-summary-item strong,
body.fm-tenant-branded .chat-neutral-theme .chat-transfer-card label,
body.fm-tenant-branded .chat-neutral-theme .chat-form-title,
body.fm-tenant-branded .chat-neutral-theme .chat-queue-metric strong,
body.fm-tenant-branded .chat-neutral-theme .chat-batch-summary,
body.fm-tenant-branded .chat-neutral-theme .chat-thread-card,
body.fm-tenant-branded .chat-neutral-theme .chat-item-preview,
body.fm-tenant-branded .chat-neutral-theme .chat-sidebar-toggle label,
body.fm-tenant-branded .chat-neutral-theme .chat-sidebar-block label,
body.fm-tenant-branded .chat-neutral-theme .chat-form-card label,
body.fm-tenant-branded .chat-neutral-theme .chat-empty-state {
    color: #374151;
}

body.fm-tenant-branded .chat-neutral-theme .alert-info {
    color: #4b5563;
    background-color: #edf0f3;
    border-color: #dde1e6;
}

body.fm-tenant-branded .chat-neutral-theme .btn-default,
body.fm-tenant-branded .chat-neutral-theme .chat-secondary-action,
body.fm-tenant-branded .modal .btn-default,
body.fm-tenant-branded .simple-modal .btn-default,
body.fm-tenant-branded .jconfirm .btn-default {
    color: #374151;
    background-color: #fff;
    border-color: #c9ced6;
    box-shadow: none;
}

body.fm-tenant-branded .chat-neutral-theme .btn-default:hover,
body.fm-tenant-branded .chat-neutral-theme .btn-default:focus,
body.fm-tenant-branded .chat-neutral-theme .btn-default:active,
body.fm-tenant-branded .chat-neutral-theme .chat-secondary-action:hover,
body.fm-tenant-branded .chat-neutral-theme .chat-secondary-action:focus,
body.fm-tenant-branded .chat-neutral-theme .chat-secondary-action:active,
body.fm-tenant-branded .modal .btn-default:hover,
body.fm-tenant-branded .modal .btn-default:focus,
body.fm-tenant-branded .modal .btn-default:active,
body.fm-tenant-branded .simple-modal .btn-default:hover,
body.fm-tenant-branded .simple-modal .btn-default:focus,
body.fm-tenant-branded .jconfirm .btn-default:hover,
body.fm-tenant-branded .jconfirm .btn-default:focus {
    color: #28313d;
    background-color: #eef0f3;
    border-color: #aab2bd;
}

body.fm-tenant-branded .chat-neutral-theme .chat-filter-btn.active,
body.fm-tenant-branded .chat-neutral-theme .chat-filter-btn.active:hover,
body.fm-tenant-branded .chat-neutral-theme .chat-filter-btn.active:focus,
body.fm-tenant-branded .chat-neutral-theme .whatsapp-nav-link.active,
body.fm-tenant-branded .chat-neutral-theme .whatsapp-nav-link.active:hover,
body.fm-tenant-branded .chat-neutral-theme .whatsapp-nav-link.active:focus {
    color: var(--fm-brand-link, #00695c);
    background-color: var(--fm-brand-primary-soft, #eaf7f4);
    border-color: var(--fm-brand-focus, #00695c);
    box-shadow: none;
}

body.fm-tenant-branded .chat-neutral-theme .chat-filter-btn {
    text-transform: none;
    letter-spacing: normal;
}

body.fm-tenant-branded .chat-neutral-theme .chat-filter-text > span:first-child {
    min-width: 0;
}

body.fm-tenant-branded .chat-neutral-theme .chat-filter-count {
    flex-shrink: 0;
}

body.fm-tenant-branded .chat-neutral-theme .chat-transfer-controls {
    flex-wrap: wrap;
}

body.fm-tenant-branded .chat-neutral-theme .chat-transfer-controls .form-control {
    flex: 1 1 110px;
    min-width: 0;
}

body.fm-tenant-branded .chat-neutral-theme .chat-count-badge,
body.fm-tenant-branded .chat-neutral-theme .chat-filter-count,
body.fm-tenant-branded .chat-neutral-theme .chat-filter-btn.active .chat-filter-count,
body.fm-tenant-branded .chat-neutral-theme .chat-pill,
body.fm-tenant-branded .chat-neutral-theme .chat-return-badge,
body.fm-tenant-branded .chat-neutral-theme .chat-age-badge-fresh,
body.fm-tenant-branded .chat-neutral-theme .label-default,
body.fm-tenant-branded .chat-neutral-theme .label-info,
body.fm-tenant-branded .chat-neutral-theme .label-success {
    color: #4b5563;
    background-color: #f0f2f4;
    border: 1px solid #dde1e6;
    text-shadow: none;
}

body.fm-tenant-branded .chat-neutral-theme .label-warning {
    color: #8a5a00;
    background-color: #fff8e6;
    border: 1px solid #f2dfaa;
}

body.fm-tenant-branded .chat-neutral-theme .chat-list .list-group-item.chat-thread-card-return {
    background-color: #fff;
    border-left-color: #98a1ac;
}

body.fm-tenant-branded .chat-neutral-theme .chat-list .list-group-item.active,
body.fm-tenant-branded .chat-neutral-theme .chat-list .list-group-item.active:hover,
body.fm-tenant-branded .chat-neutral-theme .chat-list .list-group-item.active:focus,
body.fm-tenant-branded .chat-neutral-theme .chat-thread-row.is-selected .list-group-item {
    color: #28313d;
    background-color: var(--fm-brand-primary-soft, #eaf7f4);
    border-color: var(--fm-brand-focus, #00695c);
    text-shadow: none;
}

body.fm-tenant-branded .chat-neutral-theme .chat-thread-row.is-selected .list-group-item {
    box-shadow: 0 0 0 2px var(--fm-brand-primary-soft, #eaf7f4);
}

body.fm-tenant-branded .chat-neutral-theme .chat-batch-check input {
    accent-color: var(--fm-brand-primary, #00695c);
}

body.fm-tenant-branded .chat-neutral-theme .chat-list .list-group-item .chat-unread-badge {
    color: var(--fm-brand-on-primary, #fff) !important;
    background-color: var(--fm-brand-primary, #00695c);
    border-color: var(--fm-brand-primary, #00695c);
}

body.fm-tenant-branded .chat-neutral-theme .chat-message.owner {
    background-color: var(--fm-brand-primary-soft, #eaf7f4);
    border-color: #d5d9df;
}

body.fm-tenant-branded .chat-neutral-theme .chat-panel-contact-link,
body.fm-tenant-branded .chat-neutral-theme .chat-message-link,
body.fm-tenant-branded .chat-neutral-theme .chat-message-link:hover,
body.fm-tenant-branded .chat-neutral-theme .chat-message-link:focus,
body.fm-tenant-branded .chat-neutral-theme .chat-attachment-download,
body.fm-tenant-branded .chat-neutral-theme .chat-attachment-download:hover,
body.fm-tenant-branded .chat-neutral-theme .chat-attachment-download:focus,
body.fm-tenant-branded .chat-neutral-theme .chat-document-open:hover,
body.fm-tenant-branded .chat-neutral-theme .chat-document-open:focus {
    color: var(--fm-brand-link, #00695c);
}

body.fm-tenant-branded .chat-neutral-theme .chat-document-icon {
    color: #4b5563;
    background-color: #f0f2f4;
    border-color: #dde1e6;
}

body.fm-tenant-branded .chat-neutral-theme .chat-document-card,
body.fm-tenant-branded .chat-neutral-theme .chat-attachment-download {
    border-color: #d5d9df;
}

body.fm-tenant-branded .chat-neutral-theme .chat-thread-card:focus,
body.fm-tenant-branded .chat-neutral-theme .chat-message-link:focus,
body.fm-tenant-branded .chat-neutral-theme .chat-attachment-download:focus,
body.fm-tenant-branded .chat-neutral-theme .chat-document-open:focus,
body.fm-tenant-branded .chat-neutral-theme .chat-panel-contact-link:focus,
body.fm-tenant-branded .chat-neutral-theme .chat-message-delete:focus {
    outline: 2px solid var(--fm-brand-focus, #00695c);
    outline-offset: 2px;
}

/* Dialogs may be moved to body by Bootstrap and keep the resolved tenant tokens. */
body.fm-tenant-branded .modal:not(.modal-dark) .modal-header {
    color: #28313d;
    background-color: var(--fm-brand-primary-soft, #eaf7f4);
    border-color: #e2e5e9;
}

body.fm-tenant-branded .modal:not(.modal-dark) .modal-title {
    color: var(--fm-brand-link, #00695c);
}

body.fm-tenant-branded .modal:not(.modal-dark) .modal-body label:not(.error):not(.text-danger):not(.text-warning):not(.has-error label):not(.has-warning label):not(.has-success label),
body.fm-tenant-branded .jconfirm .jconfirm-content label:not(.error):not(.text-danger):not(.text-warning):not(.has-error label):not(.has-warning label):not(.has-success label),
body.fm-tenant-branded .simple-modal .box label:not(.error):not(.text-danger):not(.text-warning):not(.has-error label):not(.has-warning label):not(.has-success label) {
    color: #374151;
}

body.fm-tenant-branded .modal:not(.modal-dark) .modal-footer {
    background-color: #f5f6f7;
    border-color: #e2e5e9;
}

body.fm-tenant-branded .modal-dark .btn-default {
    color: #fff;
    background-color: #444;
    border-color: #555;
}

body.fm-tenant-branded .modal-dark .btn-default:hover,
body.fm-tenant-branded .modal-dark .btn-default:focus,
body.fm-tenant-branded .modal-dark .btn-default:active {
    color: #fff;
    background-color: #555;
    border-color: #777;
}

body.fm-tenant-branded .modal .close {
    color: var(--fm-brand-on-primary, #fff);
    background-color: var(--fm-brand-primary, #00695c);
}

body.fm-tenant-branded .modal .close:hover,
body.fm-tenant-branded .modal .close:focus {
    color: var(--fm-brand-on-primary, #fff);
    background-color: var(--fm-brand-primary-hover, #00564b);
}

body.fm-tenant-branded .modal-popup .modal-content::before {
    background-color: var(--fm-brand-primary, #00695c);
    opacity: 0.8;
}

body.fm-tenant-branded .simple-modal .close-modal,
body.fm-tenant-branded .jconfirm .jconfirm-box .jconfirm-closeIcon {
    color: var(--fm-brand-link, #00695c);
}

body.fm-tenant-branded .jconfirm .jconfirm-box .jconfirm-buttons button.btn-blue {
    color: var(--fm-brand-on-primary, #fff);
    background-color: var(--fm-brand-primary, #00695c);
    border-color: var(--fm-brand-primary, #00695c);
}

body.fm-tenant-branded .jconfirm .jconfirm-box .jconfirm-buttons button.btn-blue:hover,
body.fm-tenant-branded .jconfirm .jconfirm-box .jconfirm-buttons button.btn-blue:focus {
    background-color: var(--fm-brand-primary-hover, #00564b);
    border-color: var(--fm-brand-primary-hover, #00564b);
}

body.fm-tenant-branded .modal .close:focus,
body.fm-tenant-branded .simple-modal .close-modal:focus,
body.fm-tenant-branded .jconfirm .jconfirm-box .jconfirm-buttons button:focus,
body.fm-tenant-branded .jconfirm .jconfirm-box .jconfirm-closeIcon:focus {
    outline: 2px solid var(--fm-brand-focus, #00695c) !important;
    outline-offset: 2px;
}

/* Calendar headings are decorative; event/status colors remain authoritative. */
body.fm-tenant-branded .fc .fc-head th {
    color: var(--fm-brand-on-primary, #fff);
    background-color: var(--fm-brand-primary, #387467);
}

body.fm-tenant-branded .fc .fc-head th a {
    color: inherit;
}

body.fm-tenant-branded .fc .fc-list-heading td,
body.fm-tenant-branded .fc .fc-list-heading a {
    color: var(--fm-brand-link, #00695c);
    background-color: var(--fm-brand-primary-soft, #eee);
}

@media (max-width: 767px) {
    body.fm-tenant-branded .fc .fc-toolbar {
        flex-wrap: wrap;
        gap: 8px;
    }

    body.fm-tenant-branded .fc .fc-toolbar > div {
        max-width: 100%;
    }
}
