/*
 * Noema Bootstrap theme overrides.
 *
 * The bundled bootstrap.min.css is Bootstrap 4, which bakes its blue (#007bff
 * and the rgba(0,123,255,*) focus glow) directly into selectors rather than
 * deriving them from the --primary CSS variable. So overriding --primary does
 * nothing; the blue must be overridden per-selector.
 *
 * This file repaints every interactive Bootstrap blue surface (focus rings,
 * active/pressed states, form controls, custom checkboxes/radios, pagination,
 * and the color utilities) onto the --noema-* tokens from site.css.
 *
 * MUST load AFTER bootstrap.min.css and site.css.
 */

/* ---- Focus rings: inputs, selects, file inputs ---- */
.form-control:focus,
.custom-select:focus,
.custom-file-input:focus ~ .custom-file-label {
    border-color: var(--noema-green-light);
    box-shadow: 0 0 0 0.2rem var(--noema-focus-ring);
}

/* ---- Focus rings: buttons ---- */
.btn:focus,
.btn.focus,
.btn-primary:focus,
.btn-primary.focus,
.btn-success:focus,
.btn-success.focus,
.btn-outline-primary:focus,
.btn-outline-primary.focus,
.btn-outline-success:focus,
.btn-outline-success.focus,
.page-link:focus {
    box-shadow: 0 0 0 0.2rem var(--noema-focus-ring);
}

/* ---- Pressed / active button state (BS4 default = darker blue #0062cc) ---- */
.btn-primary:not(:disabled):not(.disabled):active,
.btn-primary:not(:disabled):not(.disabled).active,
.show > .btn-primary.dropdown-toggle,
.btn-success:not(:disabled):not(.disabled):active,
.btn-success:not(:disabled):not(.disabled).active,
.show > .btn-success.dropdown-toggle,
.btn-outline-primary:not(:disabled):not(.disabled):active,
.btn-outline-primary:not(:disabled):not(.disabled).active,
.btn-outline-success:not(:disabled):not(.disabled):active,
.btn-outline-success:not(:disabled):not(.disabled).active {
    background-color: var(--noema-green-darker);
    border-color: var(--noema-green-darker);
    color: var(--noema-white);
}

.btn-primary:not(:disabled):not(.disabled):active:focus,
.btn-primary:not(:disabled):not(.disabled).active:focus,
.show > .btn-primary.dropdown-toggle:focus,
.btn-success:not(:disabled):not(.disabled):active:focus,
.btn-success:not(:disabled):not(.disabled).active:focus,
.show > .btn-success.dropdown-toggle:focus {
    box-shadow: 0 0 0 0.2rem var(--noema-focus-ring);
}

/* ---- Custom checkboxes & radios (BS4 .custom-control = blue #007bff) ---- */
.custom-control-input:checked ~ .custom-control-label::before {
    background-color: var(--noema-green);
    border-color: var(--noema-green);
}

.custom-control-input:focus ~ .custom-control-label::before {
    box-shadow: 0 0 0 0.2rem var(--noema-focus-ring);
}

.custom-control-input:focus:not(:checked) ~ .custom-control-label::before {
    border-color: var(--noema-green-light);
}

.custom-control-input:active ~ .custom-control-label::before {
    background-color: var(--noema-green-light);
    border-color: var(--noema-green-light);
}

/* Native checkbox/radio fallback */
.form-check-input {
    accent-color: var(--noema-green);
}

/* ---- Range slider thumb ---- */
.custom-range::-webkit-slider-thumb { background-color: var(--noema-green); }
.custom-range::-moz-range-thumb { background-color: var(--noema-green); }
.custom-range::-ms-thumb { background-color: var(--noema-green); }

/* ---- Pagination ---- */
.page-link {
    color: var(--noema-link);
}

.page-link:hover {
    color: var(--noema-link-hover);
}

.page-item.active .page-link {
    background-color: var(--noema-green);
    border-color: var(--noema-green);
    color: var(--noema-white);
}

/* ---- Color utilities & components ---- */
.text-primary {
    color: var(--noema-green) !important;
}

a.text-primary:hover,
a.text-primary:focus {
    color: var(--noema-link-hover) !important;
}

.bg-primary {
    background-color: var(--noema-green) !important;
}

.border-primary {
    border-color: var(--noema-green) !important;
}

.badge-primary {
    background-color: var(--noema-green);
    color: var(--noema-white);
}

.badge-primary[href]:hover,
.badge-primary[href]:focus {
    background-color: var(--noema-btn-primary-hover-bg);
}

.alert-primary {
    color: #2e5a28;
    background-color: #e2f3df;
    border-color: #d4eecf;
}

.list-group-item.active {
    background-color: var(--noema-green);
    border-color: var(--noema-green);
    color: var(--noema-white);
}

.dropdown-item.active,
.dropdown-item:active {
    background-color: var(--noema-green);
}

.nav-pills .nav-link.active,
.nav-pills .show > .nav-link {
    background-color: var(--noema-green);
}

.progress-bar {
    background-color: var(--noema-green);
}
