/**
 * Brand theme overrides — all hovers/active/focus use CSS variables from config/theme_colors.php.
 * Loaded after styles.min.css (which hardcodes #5D87FF and static hover #4f73d9).
 */

/* --- Bootstrap primary buttons (override static --bs-btn-* from styles.min.css) --- */
.btn-primary {
    --bs-btn-bg: var(--app-brand-primary);
    --bs-btn-border-color: var(--app-brand-primary);
    --bs-btn-hover-bg: var(--app-brand-primary-hover);
    --bs-btn-hover-border-color: var(--app-brand-primary-hover-border);
    --bs-btn-active-bg: var(--app-brand-primary-active);
    --bs-btn-active-border-color: var(--app-brand-primary-active-border);
    --bs-btn-focus-shadow-rgb: var(--app-brand-primary-focus-shadow-rgb);
    --bs-btn-disabled-bg: var(--app-brand-primary);
    --bs-btn-disabled-border-color: var(--app-brand-primary);
    --bs-btn-color: var(--app-text-on-primary);
    --bs-btn-hover-color: var(--app-text-on-primary);
    --bs-btn-active-color: var(--app-text-on-primary);
}

.btn-primary:hover,
.btn-primary:focus-visible {
    background-color: var(--app-brand-primary-hover) !important;
    border-color: var(--app-brand-primary-hover-border) !important;
    color: var(--app-text-on-primary) !important;
}

.btn-primary:active,
.btn-primary.active,
.btn-primary.show {
    background-color: var(--app-brand-primary-active) !important;
    border-color: var(--app-brand-primary-active-border) !important;
    color: var(--app-text-on-primary) !important;
}

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

.btn-outline-primary:hover,
.btn-outline-primary:focus-visible {
    background-color: var(--app-brand-primary-hover) !important;
    border-color: var(--app-brand-primary-hover-border) !important;
    color: var(--app-text-on-primary) !important;
}

.btn-outline-primary:active,
.btn-outline-primary.active {
    background-color: var(--app-brand-primary-active) !important;
    border-color: var(--app-brand-primary-active-border) !important;
    color: var(--app-text-on-primary) !important;
}

/* --- Forms --- */
.form-check-input:checked,
.form-check-input[type="checkbox"]:indeterminate {
    background-color: var(--app-brand-primary) !important;
    border-color: var(--app-brand-primary) !important;
}

.form-check-input:focus {
    border-color: var(--app-brand-primary);
    box-shadow: 0 0 0 0.25rem var(--app-brand-primary-focus-ring);
}

.form-range::-webkit-slider-thumb {
    background-color: var(--app-brand-primary) !important;
}

.form-range::-moz-range-thumb {
    background-color: var(--app-brand-primary) !important;
}

/* --- Nav / pagination / list / progress --- */
.nav-pills {
    --bs-nav-pills-link-active-bg: var(--app-brand-primary);
}

.nav-pills .nav-link:hover {
    color: var(--app-brand-primary-hover);
}

.pagination {
    --bs-pagination-active-bg: var(--app-brand-primary);
    --bs-pagination-active-border-color: var(--app-brand-primary);
}

.page-link:hover {
    color: var(--app-brand-primary-hover);
    background-color: var(--app-brand-primary-muted-bg);
    border-color: var(--app-border-default);
}

.list-group {
    --bs-list-group-active-bg: var(--app-brand-primary);
    --bs-list-group-active-border-color: var(--app-brand-primary);
}

.progress {
    --bs-progress-bar-bg: var(--app-brand-primary);
}

/* --- Links --- */
.link-primary {
    color: var(--app-brand-primary) !important;
}

.link-primary:hover,
.link-primary:focus {
    color: var(--app-brand-primary-hover) !important;
}

a:hover:not(.btn):not(.sidebar-link):not(.page-link) {
    color: var(--app-brand-primary-hover);
}

/* --- Admin sidebar (mirror styles.min.css selector list) --- */
.sidebar-nav ul .sidebar-item .sidebar-link:hover {
    background-color: var(--app-brand-primary-muted-bg) !important;
    color: var(--app-brand-primary) !important;
}

.sidebar-nav ul .sidebar-item .sidebar-link:hover.has-arrow::after {
    border-color: var(--app-brand-primary) !important;
}

#sidebarnav .sidebar-item.selected > .sidebar-link,
#sidebarnav .sidebar-item.selected > .sidebar-link.active,
#sidebarnav .sidebar-item > .sidebar-link.active,
.sidebar-nav ul .sidebar-item.selected > .sidebar-link,
.sidebar-nav ul .sidebar-item.selected > .sidebar-link.active,
.sidebar-nav ul .sidebar-item > .sidebar-link.active {
    background-color: var(--app-brand-primary) !important;
    color: var(--app-text-on-primary) !important;
}

.sidebar-nav ul .sidebar-item .sidebar-link.active:hover.has-arrow::after {
    border-color: var(--app-text-on-primary) !important;
}

.app-header .nav-link {
    color: var(--app-brand-primary) !important;
}

.app-header .nav-link:hover {
    color: var(--app-brand-primary-hover) !important;
}

/* --- Custom pagination (custom.css) --- */
.dm-pagination__link a:hover {
    background-color: var(--app-brand-primary-hover) !important;
    border-color: var(--app-brand-primary-hover) !important;
    color: var(--app-text-on-primary) !important;
}
