/* 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-secondary-link, var(--fm-brand-link, #00695c));
    background: var(--fm-brand-secondary-soft, 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-secondary-link, 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-secondary-link, var(--fm-brand-link, #00695c));
    background: var(--fm-brand-secondary-soft, var(--fm-brand-primary-soft, #eaf7f4));
    border-color: var(--fm-brand-secondary-soft, 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-secondary-link, 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 .fm-primary-action,
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 .fm-primary-action:hover,
body.fm-tenant-branded .chat-primary-action:hover,
body.fm-tenant-branded .fm-primary-action:focus,
body.fm-tenant-branded .chat-primary-action:focus,
body.fm-tenant-branded .fm-primary-action:active,
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 .fm-secondary-action: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 .fm-primary-action: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 .fm-secondary-action,
body.fm-tenant-branded .btn-default,
body.fm-tenant-branded .fm-secondary-action:hover,
body.fm-tenant-branded .btn-default:hover,
body.fm-tenant-branded .fm-secondary-action:focus,
body.fm-tenant-branded .btn-default:focus,
body.fm-tenant-branded .fm-secondary-action:active,
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-secondary-link, var(--fm-brand-link, #2b564d));
  background-color: var(--fm-brand-secondary-soft, var(--fm-brand-primary-soft, #dfe7e3));
  border-color: var(--fm-brand-secondary-link, 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);
}

/* Shared legacy form headings consume the tenant's accessible text color. */
body.fm-tenant-branded .write-comment > .heading {
  color: var(--fm-brand-link, #387467);
}

/* Template-generated headings sit inside the anamnesis form's rows. */
body.fm-tenant-branded .fm-anamnesis-page .heading,
body.fm-tenant-branded .page-header.fm-anamnesis-page h1 {
  color: var(--fm-brand-link, #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-secondary-link, var(--fm-brand-link, #387467));
  background-color: var(--fm-brand-secondary-soft, var(--fm-brand-primary-soft, #f2fffb));
  border-color: var(--fm-brand-secondary, var(--fm-brand-primary, #387467));
}

/* The settings preview owns its variables and does not recolor the current shell. */
.fm-tenant-branding-preview {
  margin: 0;
  background: #fff;
  border: 1px solid #dde6ea;
  border-radius: 8px;
}

.fm-tenant-branding-preview-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin: 0;
  padding: 14px 20px;
  color: var(--fm-brand-on-primary, #fff);
  background: var(--fm-brand-primary, #00695c);
  border-radius: 7px 7px 0 0;
}

.fm-tenant-branding-preview-body {
  display: grid;
  grid-template-columns: minmax(180px, .8fr) minmax(0, 2fr);
  align-items: center;
  gap: 20px;
  padding: 20px;
}

.fm-tenant-branding-preview-controls,
.fm-tenant-branding-preview-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 16px;
  min-width: 0;
}

.fm-tenant-branding-preview-field {
  flex: 1 1 180px;
  min-width: 0;
}

.fm-tenant-branding-preview-actions {
  gap: 12px;
}

.fm-tenant-branding-preview .btn {
  min-height: 44px;
  white-space: normal;
}

.fm-tenant-branding-preview .btn-default,
.fm-tenant-branding-preview .btn-default:hover,
.fm-tenant-branding-preview .btn-default:focus {
  color: var(--fm-brand-secondary-link, var(--fm-brand-link, #00695c));
  background: var(--fm-brand-secondary-soft, var(--fm-brand-primary-soft, #eaf7f4));
  border-color: var(--fm-brand-secondary-link, var(--fm-brand-focus, #00695c));
}

.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: 16px;
  color: var(--fm-brand-secondary-link, var(--fm-brand-link, #00695c));
  background: var(--fm-brand-secondary-soft, var(--fm-brand-primary-soft, #eaf7f4));
  border-left: 3px solid var(--fm-brand-secondary, var(--fm-brand-primary, #00695c));
  border-radius: 6px;
}

.fm-tenant-branding-preview-soft p {
  margin: 8px 0;
}

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

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

.fm-tenant-branding-preview .form-control.fm-tenant-branding-preview-input {
  min-height: 44px;
  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: 991px) {
  .fm-tenant-branding-preview-body {
    grid-template-columns: minmax(0, 1fr);
  }
}

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

  .fm-tenant-branding-preview-field,
  .fm-tenant-branding-preview-actions,
  .fm-tenant-branding-preview-actions .btn {
    flex: 1 1 100%;
  }

  .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-secondary-link, 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-secondary-link, var(--fm-brand-link, #00695c));
    background: var(--fm-brand-secondary-soft, var(--fm-brand-primary-soft, #eaf7f4));
    border-color: var(--fm-brand-secondary-soft, 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-secondary-link, 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-secondary-link, 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-secondary-link, 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 in the same row as the quick actions. */
    body.fm-tenant-branded .fm-app-topbar__brand {
        display: flex;
        justify-content: center;
        min-width: 0;
    }

    body.fm-tenant-branded .fm-app-topbar__brand .fm-tenant-logo {
        max-width: clamp(40px, calc(100vw - 280px), 140px);
        max-height: 40px;
    }
}

/* Optional calendar accents. Event colors provided by the tenant remain authoritative. */
body.fm-tenant-branded .fc .fc-button-primary {
    color: var(--fm-brand-on-secondary, var(--fm-brand-on-primary, #fff));
    background-color: var(--fm-brand-secondary, var(--fm-brand-primary, #2c3e50));
    border-color: var(--fm-brand-secondary, 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-secondary, var(--fm-brand-on-primary, #fff));
    background-color: var(--fm-brand-secondary-hover, var(--fm-brand-primary-hover, #1a252f));
    border-color: var(--fm-brand-secondary-hover, 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-secondary-soft, 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);
}

/* Shared date fields; the popup is appended to body, including from a modal. */
body .fm-date-field {
    display: block;
    position: relative;
}

body .fm-date-field input.fm-date-input[type=text] {
    padding-right: 42px;
}

body .fm-date-field .fm-date-input:focus {
    border-color: var(--fm-brand-focus, #00695c);
    outline: 2px solid var(--fm-brand-focus, #00695c) !important;
    outline-offset: 2px;
}

body .fm-date-field > .ui-datepicker-trigger {
    top: 50%;
    right: 4px;
    width: 34px;
    height: 34px;
    margin-top: -17px;
    color: var(--fm-brand-link, #00695c);
    border-radius: 4px;
}

body .fm-date-field > .ui-datepicker-trigger:hover {
    background: var(--fm-brand-primary-soft, #eaf7f4);
}

body .ui-datepicker {
    color: #263238;
    background: #fff;
    border: 1px solid var(--fm-brand-link, #00695c);
    border-radius: 4px;
}

body .ui-datepicker .ui-datepicker-header {
    color: var(--fm-brand-on-secondary, var(--fm-brand-on-primary, #fff));
    background: var(--fm-brand-secondary, var(--fm-brand-primary, #00695c));
    border-color: var(--fm-brand-secondary, var(--fm-brand-primary, #00695c));
}

body .ui-datepicker .ui-datepicker-prev,
body .ui-datepicker .ui-datepicker-next {
    color: var(--fm-brand-on-secondary, var(--fm-brand-on-primary, #fff));
    background: transparent;
    border: 0;
}

body .ui-datepicker .ui-datepicker-prev:not(.ui-state-disabled):hover,
body .ui-datepicker .ui-datepicker-next:not(.ui-state-disabled):hover {
    color: var(--fm-brand-on-secondary, var(--fm-brand-on-primary, #fff));
    background: var(--fm-brand-secondary-hover, var(--fm-brand-primary-hover, #00564b));
}

body .ui-datepicker .ui-datepicker-title select {
    color: #263238;
    background: #fff;
}

body .ui-datepicker .ui-datepicker-calendar th {
    color: var(--fm-brand-secondary-link, var(--fm-brand-link, #00695c));
    background: var(--fm-brand-secondary-soft, var(--fm-brand-primary-soft, #eaf7f4));
    font-weight: 600;
}

body .ui-datepicker .ui-datepicker-calendar td a.ui-state-default {
    color: #263238;
    background: #f2f2f2;
    text-decoration: none;
}

body .ui-datepicker .ui-datepicker-calendar td a.ui-state-highlight {
    color: var(--fm-brand-secondary-link, var(--fm-brand-link, #00695c));
    background: var(--fm-brand-secondary-soft, var(--fm-brand-primary-soft, #eaf7f4));
    box-shadow: inset 0 0 0 1px var(--fm-brand-secondary-link, var(--fm-brand-link, #00695c));
}

body .ui-datepicker .ui-datepicker-calendar td a.ui-state-active {
    color: var(--fm-brand-on-primary, #fff);
    background: var(--fm-brand-primary, #00695c);
}

body .ui-datepicker .ui-datepicker-calendar td a:hover,
body .ui-datepicker .ui-datepicker-calendar td a.ui-state-hover:not(.ui-state-active) {
    color: var(--fm-brand-on-primary, #fff);
    background: var(--fm-brand-primary-hover, #00564b);
}

body .ui-datepicker .ui-datepicker-calendar td a:focus,
body .ui-datepicker .ui-datepicker-title select:focus,
body .ui-datepicker-trigger:focus {
    outline: 2px solid var(--fm-brand-focus, #00695c) !important;
    outline-offset: 2px;
}

body .ui-datepicker .ui-datepicker-prev:focus,
body .ui-datepicker .ui-datepicker-next:focus {
    outline: 2px solid var(--fm-brand-on-secondary, var(--fm-brand-on-primary, #fff)) !important;
    outline-offset: -3px;
}

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. */
.fm-patient-health-conditions label:not(:where(.error, .text-danger, .text-warning, .text-success, .text-info, .has-error label, .has-warning label, .has-success label)) {
    color: var(--fm-brand-link, #2e7d32);
    font-weight: normal;
}

.fm-patient-health-conditions__allergies {
    color: var(--fm-brand-secondary-link, var(--fm-brand-link, #2e7d32));
}

body.fm-tenant-branded .fm-patient-health-conditions .form-group > strong {
    color: var(--fm-brand-secondary-link, var(--fm-brand-link, #00695c));
}

body.fm-tenant-branded label:not(:where(.label, .error, .text-danger, .text-warning, .text-success, .text-info, .has-error label, .has-warning label, .has-success label)) {
    color: var(--fm-brand-link, #387467);
}

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-secondary-link, var(--fm-brand-link, #24584d));
    background-color: var(--fm-brand-secondary-soft, var(--fm-brand-primary-soft, #edf3f1));
}

body.fm-tenant-branded .assistant-editor .table > tbody > tr > th[scope="row"] {
    color: var(--fm-brand-on-secondary, var(--fm-brand-on-primary, #fff));
    background-color: var(--fm-brand-secondary, var(--fm-brand-primary, #387467));
}

/* WhatsApp reports and settings consume the same resolved tenant palette. */
body.fm-tenant-branded .performance-page {
    --performance-ink: var(--fm-brand-secondary-link, var(--fm-brand-link, #173d36));
    --performance-accent: var(--fm-brand-secondary, var(--fm-brand-primary, #217765));
}

body.fm-tenant-branded .performance-page a.btn-primary {
    color: var(--fm-brand-on-primary, #fff);
}

body.fm-tenant-branded .performance-page a,
body.fm-tenant-branded .performance-card-action,
body.fm-tenant-branded .wa-settings-navigation .nav > li > a,
body.fm-tenant-branded .wa-settings-navigation .nav > li > a:visited {
    color: var(--fm-brand-secondary-link, var(--fm-brand-link, #174f50));
}

body.fm-tenant-branded .performance-tabs,
body.fm-tenant-branded .wa-settings-navigation {
    background-color: var(--fm-brand-secondary-soft, var(--fm-brand-primary-soft, #eaf1ed));
    border-color: var(--fm-brand-secondary-soft, var(--fm-brand-primary-soft, #cbd5e1));
}

body.fm-tenant-branded .performance-tabs a:not(.active):hover,
body.fm-tenant-branded .wa-settings-navigation .nav > li:not(.active):not(.disabled) > a:hover,
body.fm-tenant-branded .wa-settings-navigation .nav > li:not(.active):not(.disabled) > a:focus {
    color: var(--fm-brand-secondary-link, var(--fm-brand-link, #174f50));
    background-color: var(--fm-brand-secondary-soft, var(--fm-brand-primary-soft, #eaf1ed));
}

body.fm-tenant-branded .performance-tabs a.active,
body.fm-tenant-branded .performance-tabs a.active:visited,
body.fm-tenant-branded .performance-tabs a.active:hover,
body.fm-tenant-branded .performance-tabs a.active:focus,
body.fm-tenant-branded .wa-settings-navigation .nav > li.active > a,
body.fm-tenant-branded .wa-settings-navigation .nav > li.active > a:visited,
body.fm-tenant-branded .wa-settings-navigation .nav > li.active > a:hover,
body.fm-tenant-branded .wa-settings-navigation .nav > li.active > a:focus {
    color: var(--fm-brand-on-secondary, var(--fm-brand-on-primary, #fff));
}

body.fm-tenant-branded .performance-tabs a.active,
body.fm-tenant-branded .wa-settings-navigation .nav > li.active > a,
body.fm-tenant-branded .wa-settings-navigation .nav > li.active > a:focus {
    background-color: var(--fm-brand-secondary, var(--fm-brand-primary, #217765));
}

body.fm-tenant-branded .performance-tabs a.active:hover,
body.fm-tenant-branded .wa-settings-navigation .nav > li.active > a:hover {
    background-color: var(--fm-brand-secondary-hover, var(--fm-brand-primary-hover, #17615f));
}

body.fm-tenant-branded .performance-page .table > tbody > tr > th[scope="row"] {
    color: var(--fm-brand-on-secondary, var(--fm-brand-on-primary, #fff));
    background-color: var(--fm-brand-secondary, var(--fm-brand-primary, #387467));
}

body.fm-tenant-branded .performance-page a:focus-visible,
body.fm-tenant-branded .performance-page summary:focus-visible,
body.fm-tenant-branded .wa-settings-navigation .nav > li > a:focus-visible {
    outline-color: var(--fm-brand-secondary-link, var(--fm-brand-focus, #00695c));
}

/* Menu preview, history and editing share the WhatsApp tenant identity. */
body.fm-tenant-branded .wa-menu-editor .wa-menu-current-state,
body.fm-tenant-branded .wa-menu-editor .wa-menu-preview-panel,
body.fm-tenant-branded .wa-menu-editor .wa-menu-preview,
body.fm-tenant-branded .wa-menu-editor .wa-menu-history,
body.fm-tenant-branded .wa-menu-editor .wa-menu-history-entry,
body.fm-tenant-branded .wa-menu-editor .wa-menu-history-dialog,
body.fm-tenant-branded .wa-menu-editor .wa-menu-submit-bar {
    border-color: var(--fm-brand-secondary-soft, var(--fm-brand-primary-soft, #d8e4e1));
}

body.fm-tenant-branded .wa-menu-editor .wa-menu-current-state.is-active,
body.fm-tenant-branded .wa-menu-editor .wa-menu-editor-help,
body.fm-tenant-branded .wa-menu-editor .menu-level-badge,
body.fm-tenant-branded .wa-menu-editor .menu-action-badge {
    color: var(--fm-brand-secondary-link, var(--fm-brand-link, #176b54));
    background-color: var(--fm-brand-secondary-soft, var(--fm-brand-primary-soft, #edf8f3));
    border-color: var(--fm-brand-secondary-soft, var(--fm-brand-primary-soft, #d8e4e1));
}

body.fm-tenant-branded .wa-menu-editor .wa-menu-preview {
    color: #28313d;
    background-color: var(--fm-brand-secondary-soft, var(--fm-brand-primary-soft, #edf4f0));
}

body.fm-tenant-branded .wa-menu-editor .wa-menu-current-heading h2,
body.fm-tenant-branded .wa-menu-editor .wa-menu-preview-heading h3,
body.fm-tenant-branded .wa-menu-editor .wa-menu-history-dialog h3,
body.fm-tenant-branded .wa-menu-editor .wa-menu-history summary,
body.fm-tenant-branded .wa-menu-editor .wa-menu-preview-navigation,
body.fm-tenant-branded .wa-menu-editor .wa-menu-editor-help .glyphicon {
    color: var(--fm-brand-secondary-link, var(--fm-brand-link, #176b54));
}

body.fm-tenant-branded .wa-menu-editor .wa-menu-preview button small,
body.fm-tenant-branded .wa-menu-editor .text-muted,
body.fm-tenant-branded .wa-menu-editor .help-block,
body.fm-tenant-branded .wa-menu-editor .wa-menu-item-path {
    color: #5b6573;
}

body.fm-tenant-branded .wa-menu-editor .wa-menu-item-card {
    border-color: var(--fm-brand-secondary-soft, var(--fm-brand-primary-soft, #d8e1e8));
    border-left-color: var(--fm-brand-secondary-link, var(--fm-brand-link, #337ab7));
}

body.fm-tenant-branded .wa-menu-editor .wa-menu-item-card:focus-within {
    border-color: var(--fm-brand-secondary-link, var(--fm-brand-focus, #00695c));
    box-shadow: 0 0 0 3px var(--fm-brand-secondary-soft, var(--fm-brand-primary-soft, #eaf7f4));
}

body.fm-tenant-branded .wa-menu-editor .btn-success {
    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 .wa-menu-editor .btn-success:hover,
body.fm-tenant-branded .wa-menu-editor .btn-success:focus,
body.fm-tenant-branded .wa-menu-editor .btn-success: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 .wa-menu-editor .btn-success:focus {
    outline: 2px solid var(--fm-brand-focus, #00695c) !important;
    outline-offset: 2px;
}

body.fm-tenant-branded .wa-menu-editor .remove-menu-item {
    color: #b73a3a;
}

body.fm-tenant-branded .wa-menu-editor .wa-menu-history summary:focus-visible,
body.fm-tenant-branded .wa-menu-editor .wa-menu-preview summary:focus-visible,
body.fm-tenant-branded .wa-menu-editor .wa-menu-preview-navigation:focus-visible {
    outline: 2px solid var(--fm-brand-secondary-link, var(--fm-brand-focus, #00695c));
    outline-offset: 2px;
}

body.fm-tenant-branded .wa-menu-editor .wa-menu-history-dialog::backdrop {
    background: rgb(17 24 39 / 40%);
}

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-secondary-soft, 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-secondary-link, var(--fm-brand-link, #2b564d));
    background-color: var(--fm-brand-secondary-soft, 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-secondary-link, var(--fm-brand-link, #24584d));
    background-color: var(--fm-brand-secondary-soft, 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-secondary, var(--fm-brand-on-primary, #fff));
    background-color: var(--fm-brand-secondary, var(--fm-brand-primary, #337ab7));
    border-color: var(--fm-brand-secondary, 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 .text-muted,
body.fm-tenant-branded .modal:not(.modal-dark) .modal-body .text-muted,
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-secondary-link, var(--fm-brand-link, #00695c));
    background-color: var(--fm-brand-secondary-soft, var(--fm-brand-primary-soft, #eaf7f4));
    border-color: var(--fm-brand-secondary-link, 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-secondary-soft, var(--fm-brand-primary-soft, #eaf7f4));
    border-color: var(--fm-brand-secondary-link, 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-secondary-soft, 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-secondary-soft, var(--fm-brand-primary-soft, #eaf7f4));
    border-color: #e2e5e9;
}

body.fm-tenant-branded .modal:not(.modal-dark) .modal-title {
    color: var(--fm-brand-secondary-link, 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-secondary, var(--fm-brand-on-primary, #fff));
    background-color: var(--fm-brand-secondary, var(--fm-brand-primary, #00695c));
}

body.fm-tenant-branded .modal .close:hover,
body.fm-tenant-branded .modal .close:focus {
    color: var(--fm-brand-on-secondary, var(--fm-brand-on-primary, #fff));
    background-color: var(--fm-brand-secondary-hover, 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-secondary-link, 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-secondary-link, 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-secondary, var(--fm-brand-on-primary, #fff));
    background-color: var(--fm-brand-secondary, 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-secondary-link, var(--fm-brand-link, #00695c));
    background-color: var(--fm-brand-secondary-soft, 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%;
    }
}

/* Auxiliary widgets share the secondary family; validation/status classes keep their meaning. */
body.fm-tenant-branded .nav-tabs > li.active > a,
body.fm-tenant-branded .nav-tabs > li.active > a:hover,
body.fm-tenant-branded .nav-tabs > li.active > a:focus,
body.fm-tenant-branded .nav-tabs > li:not(.active):not(.disabled) > a:hover,
body.fm-tenant-branded .nav-tabs > li:not(.active):not(.disabled) > a:focus,
body.fm-tenant-branded .nav-stacked > li:not(.active):not(.disabled) > a:hover,
body.fm-tenant-branded .list-group-item.active:not(.chat-thread-card):not(.disabled),
body.fm-tenant-branded .list-group-item.active:not(.chat-thread-card):not(.disabled):hover,
body.fm-tenant-branded .list-group-item.active:not(.chat-thread-card):not(.disabled):focus,
body.fm-tenant-branded .select2-container--default .select2-selection--multiple .select2-selection__choice,
body.fm-tenant-branded .select2-container--default .select2-results__option[aria-selected="true"]:not(.select2-results__option--highlighted),
body.fm-tenant-branded .select2-container--default .select2-results__option--selected:not(.select2-results__option--highlighted),
body.fm-tenant-branded .tt-menu .tt-suggestion.tt-cursor,
body.fm-tenant-branded .jstree-default .jstree-clicked {
    color: var(--fm-brand-secondary-link, var(--fm-brand-link, #00695c));
    background-color: var(--fm-brand-secondary-soft, var(--fm-brand-primary-soft, #eaf7f4));
    border-color: var(--fm-brand-secondary-link, var(--fm-brand-focus, #00695c));
    text-shadow: none;
}

body.fm-tenant-branded .nav-tabs > li.active > a {
    border-bottom-color: transparent;
}

body.fm-tenant-branded .select2-container--default .select2-selection--multiple .select2-selection__choice__remove,
body.fm-tenant-branded .select2-container--default .select2-selection--multiple .select2-selection__choice__display {
    color: inherit;
}

body.fm-tenant-branded .select2-container--default .select2-search--dropdown .select2-search__field:focus,
body.fm-tenant-branded .chosen-container-active .chosen-single,
body.fm-tenant-branded .chosen-container-active .chosen-choices {
    border-color: var(--fm-brand-focus, #00695c);
    outline: 2px solid var(--fm-brand-focus, #00695c);
    outline-offset: 2px;
}

body.fm-tenant-branded .select2-container--default .select2-results__option--highlighted[aria-selected],
body.fm-tenant-branded .chosen-container .chosen-results li.highlighted,
body.fm-tenant-branded .dataTables_wrapper .dataTables_paginate .paginate_button.current,
body.fm-tenant-branded .dataTables_wrapper .dataTables_paginate .paginate_button.current:hover {
    color: var(--fm-brand-on-secondary, var(--fm-brand-on-primary, #fff)) !important;
    background: var(--fm-brand-secondary, var(--fm-brand-primary, #00695c));
    border-color: var(--fm-brand-secondary, var(--fm-brand-primary, #00695c));
}

body.fm-tenant-branded input[type="checkbox"]:not(:disabled),
body.fm-tenant-branded input[type="radio"]:not(:disabled) {
    accent-color: var(--fm-brand-primary, #00695c);
}

body.fm-tenant-branded fieldset > legend:not(.text-danger):not(.text-warning),
body.fm-tenant-branded .accordion .panel-title > a,
body.fm-tenant-branded .panel-default > .panel-heading .panel-title,
body.fm-tenant-branded .panel-default > .panel-heading .toggle-link {
    color: var(--fm-brand-secondary-link, var(--fm-brand-link, #00695c));
}

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

body.fm-tenant-branded .ck-toolbar {
    --ck-color-base-active: var(--fm-brand-secondary, var(--fm-brand-primary, #00695c));
    --ck-color-base-active-focus: var(--fm-brand-secondary-hover, var(--fm-brand-primary-hover, #00564b));
    --ck-color-button-on-background: var(--fm-brand-secondary-soft, var(--fm-brand-primary-soft, #eaf7f4));
    --ck-color-button-on-color: var(--fm-brand-secondary-link, var(--fm-brand-link, #00695c));
    --ck-color-button-on-hover-background: var(--fm-brand-secondary-soft, var(--fm-brand-primary-soft, #eaf7f4));
    --ck-color-focus-border: var(--fm-brand-focus, #00695c);
}

body.fm-tenant-branded .cke .cke_button_on,
body.fm-tenant-branded .cke a.cke_button:hover,
body.fm-tenant-branded .cke .cke_combo_on .cke_combo_button {
    background: var(--fm-brand-secondary-soft, var(--fm-brand-primary-soft, #eaf7f4));
    border-color: var(--fm-brand-secondary-link, var(--fm-brand-focus, #00695c));
}

body.fm-tenant-branded .fm-calendar-hours-summary {
    color: var(--fm-brand-secondary-link, var(--fm-brand-link, #00695c));
}

body.fm-tenant-branded #calendar .fc-day-header .fm-calendar-hours-summary {
    color: var(--fm-brand-on-secondary, var(--fm-brand-on-primary, #fff));
}

/* Patient-owned portal navigation uses the same support colors as the clinic site. */
body.fm-tenant-branded .patient-portal-nav a,
body.fm-tenant-branded .patient-portal-item h2 {
    color: var(--fm-brand-secondary-link, var(--fm-brand-link, #00695c));
}

body.fm-tenant-branded .patient-portal-nav {
    border-bottom: 2px solid var(--fm-brand-secondary-soft, var(--fm-brand-primary-soft, #eaf7f4));
}

/* The controller resolves these public colors only after validating the confirmation link. */
body.fm-tenant-branded .confirm-title {
    color: var(--fm-brand-link, #1f2d3d);
}

body.fm-tenant-branded .arrival-window-badge,
body.fm-tenant-branded .arrival-window-note {
    color: var(--fm-brand-secondary-link, var(--fm-brand-link, #20613f));
    background: var(--fm-brand-secondary-soft, var(--fm-brand-primary-soft, #e8f7ef));
    border-color: var(--fm-brand-secondary-link, var(--fm-brand-focus, #2e8b57));
}

body.fm-tenant-branded .arrival-window-time {
    color: var(--fm-brand-secondary-link, var(--fm-brand-link, #1f6f43));
}

body.fm-tenant-branded .btn-confirm {
    color: var(--fm-brand-on-primary, #fff);
    background: var(--fm-brand-primary, #2b7cff);
}

body.fm-tenant-branded .btn-confirm:hover {
    background: var(--fm-brand-primary-hover, #2b7cff);
}

body.fm-tenant-branded .btn-confirm:focus {
    outline: 3px solid var(--fm-brand-focus, #00695c);
    outline-offset: 3px;
}
/* Schedule guide: soft tenant colours behind appointments; neutral counters. */
.fm-calendar-guide { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 14px; margin: 4px 0 10px; color: #52616f; font-size: 12px; line-height: 1.6; }
.fm-calendar-guide [hidden] { display: none !important; }
.fm-calendar-origin-filter { display: inline-flex; align-items: center; gap: 8px; margin: 0 0 0 auto; font-size: 12px; font-weight: 500; max-width: 100%; }
.fm-calendar-origin-filter .form-control { width: 145px; max-width: 100%; margin: 0; }
.fm-calendar-guide .fm-calendar-canceled-toggle { position: relative; display: inline-flex; align-items: center; gap: 8px; margin: 0 0 0 auto; color: #344054; font-size: 12px; font-weight: 500; cursor: pointer; }
#calendar .fm-booking-origin { display: inline-flex; align-items: center; vertical-align: middle; gap: 4px; padding: 2px 5px; margin-right: 5px; border: 1px solid #bdd1ec; border-radius: 4px; background: #eff6ff; color: #194c83; font-size: 10px; font-weight: 600; line-height: 1.2; white-space: nowrap; text-shadow: none; }
#calendar .fm-booking-origin--whatsapp { background: #e9f7ee; color: #185e38; border-color: #b1d5bd; }
#calendar .fm-booking-origin--online { background: #f2f4f7; color: #344054; border-color: #cbd2dc; }
#calendar .fm-booking-origin .fa { color: inherit; font-size: 12px; }
#calendar .fm-booking-origin--compact { padding: 1px 3px; }
#calendar .fm-booking-origin--compact .fm-booking-origin-label { display: none; }
.fm-calendar-canceled-toggle input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.fm-calendar-toggle-track { position: relative; flex: 0 0 36px; width: 36px; height: 20px; border: 1px solid #8d9aa5; border-radius: 12px; background: #cbd5df; }
.fm-calendar-toggle-track::after { content: ''; position: absolute; top: 2px; left: 2px; width: 14px; height: 14px; border-radius: 50%; background: #fff; }
.fm-calendar-canceled-toggle input:checked + .fm-calendar-toggle-track { border-color: var(--fm-brand-secondary-link, var(--fm-brand-link, #387467)); background: var(--fm-brand-secondary-link, var(--fm-brand-link, #387467)); }
.fm-calendar-canceled-toggle input:checked + .fm-calendar-toggle-track::after { transform: translateX(16px); }
.fm-calendar-canceled-toggle input:focus + .fm-calendar-toggle-track { outline: 2px solid var(--fm-brand-focus, #17332c); outline-offset: 3px; }
.fm-calendar-guide-key { display: inline-block; width: 12px; height: 12px; margin: 0 4px 0 10px; vertical-align: middle; border: 1px solid #cbd5df; border-radius: 3px; }
.fm-calendar-guide-key:first-child { margin-left: 0; }
.fm-calendar-guide-key--within { background: var(--fm-brand-secondary-soft, var(--fm-brand-primary-soft, #eaf7f4)); border-color: var(--fm-brand-secondary-link, var(--fm-brand-focus, #9cc9be)); }
.fm-calendar-guide-key--outside { background: #f1f3f5; }
#calendar .fc-bgevent.fm-calendar-within-hours { background: var(--fm-brand-secondary-soft, var(--fm-brand-primary-soft, #eaf7f4)); opacity: 1; pointer-events: none; }
#calendar .fc-bgevent.fm-calendar-outside-hours { background: #f1f3f5; opacity: 1; pointer-events: none; }
/* Keep slot borders above the guide and below appointments/selection. */
#calendar.fm-calendar-guided .fc-time-grid .fc-content-skeleton { z-index: auto; }
#calendar.fm-calendar-guided .fc-time-grid .fc-bgevent-container { z-index: 1; }
#calendar.fm-calendar-has-hours td.fc-today { box-shadow: inset 0 0 0 2px var(--fm-brand-secondary-link, var(--fm-brand-focus, #387467)); }
#calendar .fm-calendar-count { display: inline-block; margin: 2px 4px; padding: 1px 5px; border: 1px solid #d8e0e5; border-radius: 9px; color: #52616f; background: #fff; font-size: 10px; font-weight: 400; line-height: 1.5; white-space: nowrap; vertical-align: middle; }
#calendar .fc-day-header .fm-calendar-count { display: block; width: max-content; margin: 3px auto; }
#calendar .fc-day-top .fm-calendar-count { float: left; max-width: calc(100% - 26px); margin-left: 2px; padding-inline: 3px; overflow: hidden; text-overflow: ellipsis; }
#calendar .fm-calendar-hours-summary { display: block; clear: both; max-width: 100%; padding: 0 3px 2px; color: var(--fm-brand-secondary-link, var(--fm-brand-link, #2b564d)); font-size: 10px; line-height: 1.4; font-weight: 400; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
@media (max-width: 639px) {
  #calendar.fm-calendar-guided .fc-toolbar { flex-wrap: wrap; gap: 8px; }
  #calendar.fm-calendar-guided .fc-toolbar .fc-left { flex: 1 1 100%; text-align: center; }
  #calendar.fm-calendar-guided .fc-toolbar h2 { font-size: 20px; }
  #calendar.fm-calendar-guided .fc-toolbar .fc-center, #calendar.fm-calendar-guided .fc-toolbar .fc-right { max-width: 100%; }
  #calendar .fc-day-top .fm-calendar-count-label { display: none; }
  #calendar[data-calendar-view="timeGridWeek"] .fc-day-header .fm-calendar-count-label { display: none; }
  #calendar .fc-day-top .fm-calendar-count { float: none; display: block; clear: both; width: max-content; max-width: 100%; margin: 2px 1px; padding-inline: 2px; font-size: 9px; }
  #calendar .fc-day-header .fm-calendar-count { max-width: 100%; margin-inline: auto; padding-inline: 2px; font-size: 9px; }
}
