/*
 * Zestora HMS — Brand Theme
 * Palette: medical blue (primary), calm green (success), warm red (danger).
 * Tuned to be readable and professional — no neon/saturated tones, no muddy/gray tones.
 * Bootstrap 5.3 exposes most colors as CSS custom properties, but component classes
 * (.btn-*, form controls, nav-pills) bake their own hex values, so those are overridden
 * explicitly below alongside the root palette variables.
 */

:root,
[data-bs-theme="light"] {
    /* Primary — Blue */
    --bs-primary: #2E6DA4;
    --bs-primary-rgb: 46, 109, 164;
    --bs-primary-text-emphasis: #1B3E5A;
    --bs-primary-bg-subtle: #E8F0F7;
    --bs-primary-border-subtle: #AEC9DE;

    /* Success — Green */
    --bs-success: #2E9E5B;
    --bs-success-rgb: 46, 158, 91;
    --bs-success-text-emphasis: #164B2B;
    --bs-success-bg-subtle: #E7F6ED;
    --bs-success-border-subtle: #A6DDBC;

    /* Danger — Red */
    --bs-danger: #D6483F;
    --bs-danger-rgb: 214, 72, 63;
    --bs-danger-text-emphasis: #5E211D;
    --bs-danger-bg-subtle: #FBEAE9;
    --bs-danger-border-subtle: #F0B9B5;

    /* Dark surfaces (sidebar etc.) — deep navy instead of stock near-black */
    --bs-dark: #16283B;
    --bs-dark-rgb: 22, 40, 59;

    /* Links follow brand blue */
    --bs-link-color: var(--bs-primary);
    --bs-link-color-rgb: var(--bs-primary-rgb);
    --bs-link-hover-color: #234F79;
    --bs-link-hover-color-rgb: 35, 79, 121;

    --bs-nav-pills-link-active-bg: var(--bs-primary);

    --brand-primary-hover: #275D8C;
    --brand-primary-active: #234F79;
    --brand-success-hover: #278A4F;
    --brand-success-active: #217644;
    --brand-danger-hover: #C13A32;
    --brand-danger-active: #A9312A;
}

/* Buttons — solid */
.btn-primary {
    --bs-btn-bg: var(--bs-primary);
    --bs-btn-border-color: var(--bs-primary);
    --bs-btn-hover-bg: var(--brand-primary-hover);
    --bs-btn-hover-border-color: var(--brand-primary-hover);
    --bs-btn-active-bg: var(--brand-primary-active);
    --bs-btn-active-border-color: var(--brand-primary-active);
    --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(--bs-primary);
    --bs-btn-active-border-color: var(--bs-primary);
    --bs-btn-disabled-color: var(--bs-primary);
    --bs-btn-disabled-border-color: var(--bs-primary);
    --bs-btn-focus-shadow-rgb: var(--bs-primary-rgb);
}

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

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

/* Form focus / check states */
.form-control:focus,
.form-select:focus {
    border-color: #90b3ce;
    box-shadow: 0 0 0 .25rem rgba(var(--bs-primary-rgb), .25);
}
.form-check-input:checked {
    background-color: var(--bs-primary);
    border-color: var(--bs-primary);
}
.form-check-input:focus {
    border-color: #90b3ce;
    box-shadow: 0 0 0 .25rem rgba(var(--bs-primary-rgb), .25);
}

/* Spinners inherit brand primary automatically via --bs-primary already */

/* ============================================================
 * Readability pass: subtle badges, links, and icon-only buttons
 * were too low-contrast to read at a glance. Bootstrap pairs
 * bg-*-subtle with a plain text-* color by default, which is
 * often near-invisible (e.g. pale yellow text on pale yellow
 * background) — views should pair bg-*-subtle with the matching
 * text-*-emphasis class instead, and the rules below add a
 * matching border so the badge reads as a distinct pill even on
 * white cards.
 * ============================================================ */

.badge.bg-primary-subtle { border: 1px solid var(--bs-primary-border-subtle); }
.badge.bg-success-subtle { border: 1px solid var(--bs-success-border-subtle); }
.badge.bg-danger-subtle { border: 1px solid var(--bs-danger-border-subtle); }
.badge.bg-warning-subtle { border: 1px solid var(--bs-warning-border-subtle); }
.badge.bg-info-subtle { border: 1px solid var(--bs-info-border-subtle); }
.badge.bg-secondary-subtle { border: 1px solid var(--bs-secondary-border-subtle); }
.badge { font-weight: 600; }

/* Plain (non-button) links: restore an underline on hover/focus so they
   read as clickable even when authored with text-decoration-none. */
a:not(.btn):not(.nav-link):not(.dropdown-item):not(.list-group-item):not(.breadcrumb-item a):hover,
a:not(.btn):not(.nav-link):not(.dropdown-item):not(.list-group-item):not(.breadcrumb-item a):focus-visible {
    text-decoration: underline !important;
}

/* Icon-only outline buttons (common in table action btn-groups) are easy
   to lose against a white card at 1px border-width — give each variant a
   faint tinted background so the group reads as a set of controls, not
   stray text, without waiting for hover. */
.btn-outline-primary:not(:hover) { background-color: rgba(var(--bs-primary-rgb), .06); }
.btn-outline-success:not(:hover) { background-color: rgba(var(--bs-success-rgb), .06); }
.btn-outline-danger:not(:hover) { background-color: rgba(var(--bs-danger-rgb), .06); }
.btn-outline-warning:not(:hover) { background-color: rgba(var(--bs-warning-rgb), .08); }
.btn-outline-info:not(:hover) { background-color: rgba(var(--bs-info-rgb), .08); }
.btn-outline-secondary:not(:hover) { background-color: rgba(var(--bs-secondary-rgb), .06); }
