/* ============================================================
   MyPhysioDesk theme base.

   1. A guaranteed fallback :root so brand colors are NEVER undefined,
      even before the per-clinic inline variables load.
   2. Bootstrap component overrides that consume the theme variables,
      so primary buttons / links / focus states always follow the
      MyPhysioDesk brand (or the clinic's configured color).

   Load this AFTER bootstrap.min.css and BEFORE the inline
   partials.theme-variables block (which carries dynamic values).
   ============================================================ */

:root {
    --mpd-primary: #0d9488;
    --mpd-primary-dark: #0b7d72;
    --mpd-dark: #0f172a;
    --bs-primary: #0d9488;
    --bs-primary-rgb: 13, 148, 136;

    /* Legacy aliases */
    --primary-color: #0d9488;
    --primary-dark: #0b7d72;
    --primary-light: #2dd4bf;
}

/* ---- Bootstrap primary buttons ---- */
.btn-primary {
    --bs-btn-bg: var(--bs-primary);
    --bs-btn-border-color: var(--bs-primary);
    --bs-btn-hover-bg: var(--mpd-primary-dark);
    --bs-btn-hover-border-color: var(--mpd-primary-dark);
    --bs-btn-active-bg: var(--mpd-primary-dark);
    --bs-btn-active-border-color: var(--mpd-primary-dark);
    --bs-btn-disabled-bg: var(--bs-primary);
    --bs-btn-disabled-border-color: var(--bs-primary);
    --bs-btn-focus-shadow-rgb: var(--bs-primary-rgb);
}

.btn-outline-primary {
    --bs-btn-color: var(--bs-primary);
    --bs-btn-border-color: var(--bs-primary);
    --bs-btn-hover-bg: var(--bs-primary);
    --bs-btn-hover-border-color: var(--bs-primary);
    --bs-btn-active-bg: var(--mpd-primary-dark);
    --bs-btn-active-border-color: var(--mpd-primary-dark);
    --bs-btn-focus-shadow-rgb: var(--bs-primary-rgb);
}

.btn-link {
    --bs-btn-color: var(--bs-primary);
    --bs-btn-hover-color: var(--mpd-primary-dark);
}

/* ---- Links ---- */
a {
    color: var(--bs-primary);
}
a:hover {
    color: var(--mpd-primary-dark);
}
.link-primary {
    color: var(--bs-primary) !important;
}
.link-primary:hover,
.link-primary:focus {
    color: var(--mpd-primary-dark) !important;
}

/* ---- Utility colors ---- */
.text-primary {
    color: var(--bs-primary) !important;
}
.bg-primary {
    background-color: var(--bs-primary) !important;
}
.border-primary {
    border-color: var(--bs-primary) !important;
}

/* ---- Focus states ---- */
.form-control:focus,
.form-select:focus,
.form-check-input:focus {
    border-color: var(--bs-primary);
    box-shadow: 0 0 0 0.25rem rgba(var(--bs-primary-rgb), 0.25);
}
.form-check-input:checked {
    background-color: var(--bs-primary);
    border-color: var(--bs-primary);
}
.btn:focus-visible,
.btn-check:focus-visible + .btn {
    box-shadow: 0 0 0 0.25rem rgba(var(--bs-primary-rgb), 0.4);
}

/* ---- Other primary-tinted components ---- */
.nav-pills .nav-link.active,
.nav-pills .show > .nav-link {
    background-color: var(--bs-primary);
}
.page-link {
    color: var(--bs-primary);
}
.page-item.active .page-link {
    background-color: var(--bs-primary);
    border-color: var(--bs-primary);
}
.dropdown-item.active,
.dropdown-item:active {
    background-color: var(--bs-primary);
}
.list-group-item.active {
    background-color: var(--bs-primary);
    border-color: var(--bs-primary);
}
.progress-bar {
    background-color: var(--bs-primary);
}
.spinner-border,
.spinner-grow {
    color: var(--bs-primary);
}
