/* ==========================================================================
   Brand theme — overrides Bootstrap 5.3 variables.
   Brand green #009a0b is used for fills (buttons, badges, bars). On white it
   has a 3.7:1 contrast ratio, which is fine for large/bold UI but below
   WCAG AA for body text, so text links use the darker --brand-700 (5.6:1).
   ========================================================================== */
:root {
    --brand: #009a0b;
    --brand-rgb: 0, 154, 11;
    --brand-600: #008a0a;
    --brand-700: #007208;
    --brand-800: #005a07;
    --brand-900: #063f0a;
    --brand-50: #eef9ef;
    --brand-100: #d6f1d8;

    --bs-primary: var(--brand);
    --bs-primary-rgb: var(--brand-rgb);
    --bs-primary-text-emphasis: var(--brand-800);
    --bs-primary-bg-subtle: var(--brand-50);
    --bs-primary-border-subtle: var(--brand-100);
    --bs-link-color: var(--brand-700);
    --bs-link-color-rgb: 0, 114, 8;
    --bs-link-hover-color: var(--brand-900);
    --bs-link-hover-color-rgb: 6, 63, 10;
    --bs-focus-ring-color: rgba(var(--brand-rgb), .35);

    --bs-body-font-family: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
    --bs-body-color: #1d2b22;
    --bs-secondary-color: #56645b;
    --bs-border-radius: .5rem;
    --bs-border-radius-lg: .75rem;
    --heading-font: "Plus Jakarta Sans", var(--bs-body-font-family);

    /* Blazor.Bootstrap sidebar */
    --bb-sidebar-width: 270px;
    --bb-sidebar-background-color: #0b2512;
    --bb-sidebar-top-row-background-color: #0b2512;
    --bb-sidebar-top-row-border-color: rgba(255, 255, 255, .08);
    --bb-sidebar-title-text-color: #fff;
    --bb-sidebar-brand-icon-color: #3ddc4a;
    --bb-sidebar-title-badge-text-color: #fff;
    --bb-sidebar-title-badge-background-color: var(--brand);
    --bb-sidebar-navbar-toggler-icon-color: #fff;
    --bb-sidebar-navbar-toggler-background-color: rgba(255, 255, 255, .1);
    --bb-sidebar-content-border-color: rgba(255, 255, 255, .08);
    --bb-sidebar-nav-item-text-color: rgba(255, 255, 255, .78);
    --bb-sidebar-nav-item-text-hover-color: #fff;
    --bb-sidebar-nav-item-text-active-color-rgb: 61, 220, 74;
    --bb-sidebar-nav-item-text-active-color: #3ddc4a;
    --bb-sidebar-nav-item-background-hover-color: rgba(255, 255, 255, .08);
    --bb-sidebar-nav-item-group-background-color: rgba(0, 0, 0, .2);
}

.btn-primary {
    --bs-btn-color: #fff;
    --bs-btn-bg: var(--brand);
    --bs-btn-border-color: var(--brand);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--brand-700);
    --bs-btn-hover-border-color: var(--brand-700);
    --bs-btn-focus-shadow-rgb: var(--brand-rgb);
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: var(--brand-800);
    --bs-btn-active-border-color: var(--brand-800);
    --bs-btn-disabled-color: #fff;
    --bs-btn-disabled-bg: var(--brand);
    --bs-btn-disabled-border-color: var(--brand);
    font-weight: 600;
}

.btn-outline-primary {
    --bs-btn-color: var(--brand-700);
    --bs-btn-border-color: var(--brand);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--brand);
    --bs-btn-hover-border-color: var(--brand);
    --bs-btn-focus-shadow-rgb: var(--brand-rgb);
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: var(--brand-700);
    --bs-btn-active-border-color: var(--brand-700);
    --bs-btn-disabled-color: var(--brand);
    --bs-btn-disabled-border-color: var(--brand);
    font-weight: 600;
}

.btn-link { --bs-btn-color: var(--brand-700); --bs-btn-hover-color: var(--brand-900); }

.form-control:focus, .form-select:focus {
    border-color: rgba(var(--brand-rgb), .6);
    box-shadow: 0 0 0 .25rem rgba(var(--brand-rgb), .2);
}

.form-check-input:checked { background-color: var(--brand); border-color: var(--brand); }
.form-check-input:focus { border-color: rgba(var(--brand-rgb), .6); box-shadow: 0 0 0 .25rem rgba(var(--brand-rgb), .2); }
.form-switch .form-check-input:focus { --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2366c26d'/%3e%3c/svg%3e"); }

.pagination {
    --bs-pagination-color: var(--brand-700);
    --bs-pagination-hover-color: var(--brand-900);
    --bs-pagination-focus-color: var(--brand-900);
    --bs-pagination-focus-box-shadow: 0 0 0 .25rem rgba(var(--brand-rgb), .25);
    --bs-pagination-active-bg: var(--brand);
    --bs-pagination-active-border-color: var(--brand);
}

.nav-pills {
    --bs-nav-pills-link-active-bg: var(--brand);
    --bs-nav-link-color: var(--brand-700);
    --bs-nav-link-hover-color: var(--brand-900);
}

.nav-underline { --bs-nav-link-color: var(--bs-secondary-color); --bs-nav-link-hover-color: var(--brand-700); }
.nav-underline .nav-link.active { color: var(--brand-700); border-bottom-color: var(--brand); }

.dropdown-menu { --bs-dropdown-link-active-bg: var(--brand); }
.text-bg-primary, .badge.bg-primary { background-color: var(--brand) !important; }
.bg-primary { background-color: var(--brand) !important; }
.text-primary { color: var(--brand-700) !important; }
.border-primary { border-color: var(--brand) !important; }
.progress, .progress-stacked { --bs-progress-bar-bg: var(--brand); }
.spinner-border.text-primary, .spinner-grow.text-primary { color: var(--brand) !important; }

/* Utilities */
.text-brand { color: var(--brand) !important; }
.text-brand-dark { color: var(--brand-800) !important; }
.bg-brand { background-color: var(--brand) !important; }
.bg-brand-subtle { background-color: var(--brand-50) !important; }
.text-bg-brand-soft { color: var(--brand-800) !important; background-color: var(--brand-100) !important; font-weight: 600; }
.text-white-75 { color: rgba(255, 255, 255, .78) !important; }
.min-w-0 { min-width: 0; }
