/* Shared palette: public website, authentication, patient and admin areas. */
:root {
    color-scheme: only light;
    --color-custom-dark: #244B65;
    --color-custom-medium: #326279;
    --color-custom-light: #526B78;
    --color-custom-pale: #E4EEEA;
    --color-primary-hover: #1D3F56;
    --color-accent: #32766D;
    --color-accent-hover: #275F58;
    --color-accent-soft: #E8F2ED;
    --color-accent-border: #B7D1C5;
    --color-blue-soft: #E7EFF4;
    --color-sand: #F1E9DD;
    --color-warm-accent: #C59A6C;
    --color-surface: #FFFFFF;
    --color-surface-soft: #F0F5F2;
    --color-text: #293E49;
    --color-muted: #566A73;
    --color-border: #D7E2DD;
    --color-control-border: #768C83;
    --color-focus: var(--color-accent);
    --color-success: #2C6B50;
    --color-success-soft: #EDF6EF;
    --color-danger: #A13E48;
    --color-warning: #855F2B;
    --color-white: #FFFFFF;
    --color-black: var(--color-text);
    --custom-bg: #FAF8F4;
    --primary-rgb: 36, 75, 101;
    --accent-rgb: 50, 118, 109;

    /* Compatibility aliases for existing views. */
    --bg-custom-dark: var(--color-custom-dark);
    --bg-custom-medium: var(--color-custom-medium);
    --bg-custom-light: var(--color-custom-light);
    --bg-custom-pale: var(--color-custom-pale);
    --text-custom-dark: var(--color-custom-dark);
    --text-custom-medium: var(--color-custom-medium);
    --text-custom-light: var(--color-custom-light);
    --text-custom-pale: var(--color-custom-pale);
    --clr-green-light: var(--color-accent-soft);
    --color-primary: var(--color-custom-dark);

    --bs-body-color: var(--color-text);
    --bs-body-bg: var(--custom-bg);
    --bs-primary: var(--color-custom-dark);
    --bs-primary-rgb: var(--primary-rgb);
    --bs-secondary: var(--color-muted);
    --bs-secondary-rgb: 86, 106, 115;
    --bs-success: var(--color-success);
    --bs-success-rgb: 44, 107, 80;
    --bs-link-color: var(--color-accent);
    --bs-link-color-rgb: var(--accent-rgb);
    --bs-link-hover-color: var(--color-accent-hover);
    --bs-link-hover-color-rgb: 39, 95, 88;
    --bs-secondary-color: var(--color-muted);
    --bs-border-color: var(--color-border);
    --bs-focus-ring-color: rgba(var(--accent-rgb), .24);
}

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

.btn-success {
    --bs-btn-bg: var(--color-accent);
    --bs-btn-border-color: var(--color-accent);
    --bs-btn-hover-bg: var(--color-accent-hover);
    --bs-btn-hover-border-color: var(--color-accent-hover);
    --bs-btn-active-bg: var(--color-accent-hover);
    --bs-btn-active-border-color: var(--color-accent-hover);
    --bs-btn-disabled-bg: var(--color-accent);
    --bs-btn-disabled-border-color: var(--color-accent);
    --bs-btn-focus-shadow-rgb: var(--accent-rgb);
}

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

.form-control, .form-select {
    color: var(--color-text);
    background-color: var(--color-surface);
    border-color: var(--color-control-border);
}

.form-control::placeholder { color: var(--color-muted); opacity: 1; }
.form-control:focus, .form-select:focus {
    color: var(--color-text);
    background-color: var(--color-surface);
    border-color: var(--color-focus);
    box-shadow: 0 0 0 .2rem rgba(var(--accent-rgb), .18);
}

.form-check-input { border-color: var(--color-control-border); }
.form-check-input:checked { background-color: var(--color-accent); border-color: var(--color-accent); }
.form-check-input:focus { border-color: var(--color-focus); box-shadow: 0 0 0 .2rem rgba(var(--accent-rgb), .18); }
.text-muted { color: var(--color-muted) !important; }

:where(a, button, input, textarea, select, [tabindex]):focus-visible {
    outline: 3px solid var(--color-focus);
    outline-offset: 3px;
}
