:root,
[data-bs-theme="light"] {
  /* Overlander Palette Definitions */
  --overlander-primary: #2C376C;
  --overlander-primary-rgb: 44, 55, 108;
  --overlander-secondary: #364289;
  --overlander-secondary-rgb: 54, 66, 137;
  --overlander-gray: #818184;
  --overlander-gray-rgb: 129, 129, 132;
  --overlander-silver: #C3C4CB;
  --overlander-silver-rgb: 195, 196, 203;
  --overlander-black: #000000;
  --overlander-black-rgb: 0, 0, 0;

  /* Overlander Semantic Colors */
  --overlander-success: #198754;
  --overlander-success-rgb: 25, 135, 84;
  --overlander-warning: #fd7e14; /* Orange */
  --overlander-warning-rgb: 253, 126, 20;
  --overlander-danger: #dc3545;
  --overlander-danger-rgb: 220, 53, 69;

  /* Bootstrap Variable Overrides */
  --bs-primary: var(--overlander-primary);
  --bs-primary-rgb: var(--overlander-primary-rgb);
  --bs-secondary: var(--overlander-secondary);
  --bs-secondary-rgb: var(--overlander-secondary-rgb);
  
  --bs-success: var(--overlander-success);
  --bs-success-rgb: var(--overlander-success-rgb);
  --bs-warning: var(--overlander-warning);
  --bs-warning-rgb: var(--overlander-warning-rgb);
  --bs-danger: var(--overlander-danger);
  --bs-danger-rgb: var(--overlander-danger-rgb);

  /* Body text to Overlander Black for better contrast */
  --bs-body-color: var(--overlander-black);
  --bs-body-color-rgb: var(--overlander-black-rgb);

  /* Links */
  --bs-link-color: var(--bs-primary);
  --bs-link-color-rgb: var(--bs-primary-rgb);
  --bs-link-hover-color: var(--bs-secondary);
  --bs-link-hover-color-rgb: var(--bs-secondary-rgb);

  /* Dropdowns */
  --bs-dropdown-link-active-bg: var(--bs-primary);
  --bs-dropdown-link-active-color: #fff;
}

/* Explicit Override for Dropdown Active State to ensure precedence */
.dropdown-item.active, 
.dropdown-item:active {
  background-color: var(--bs-primary);
  color: #fff;
}

.btn-primary {
  --bs-btn-color: #fff;
  --bs-btn-bg: var(--bs-primary);
  --bs-btn-border-color: var(--bs-primary);
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: var(--bs-secondary);
  --bs-btn-hover-border-color: var(--bs-secondary);
  --bs-btn-focus-shadow-rgb: var(--bs-primary-rgb);
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: var(--bs-secondary);
  --bs-btn-active-border-color: var(--bs-secondary);
  --bs-btn-disabled-color: #fff;
  --bs-btn-disabled-bg: var(--bs-primary);
  --bs-btn-disabled-border-color: var(--bs-primary);
}

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

.btn-secondary {
  --bs-btn-color: #fff;
  --bs-btn-bg: var(--bs-secondary);
  --bs-btn-border-color: var(--bs-secondary);
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: var(--bs-primary);
  --bs-btn-hover-border-color: var(--bs-primary);
  --bs-btn-focus-shadow-rgb: var(--bs-secondary-rgb);
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: var(--bs-primary);
  --bs-btn-active-border-color: var(--bs-primary);
  --bs-btn-disabled-color: #fff;
  --bs-btn-disabled-bg: var(--bs-secondary);
  --bs-btn-disabled-border-color: var(--bs-secondary);
}

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

/* Overlander Custom Utility Classes */
.text-overlander-primary { color: var(--overlander-primary) !important; }
.bg-overlander-primary { background-color: var(--overlander-primary) !important; }

.text-overlander-secondary { color: var(--overlander-secondary) !important; }
.bg-overlander-secondary { background-color: var(--overlander-secondary) !important; }

.text-overlander-gray { color: var(--overlander-gray) !important; }
.bg-overlander-gray { background-color: var(--overlander-gray) !important; }

.text-overlander-silver { color: var(--overlander-silver) !important; }
.bg-overlander-silver { background-color: var(--overlander-silver) !important; }

.text-overlander-black { color: var(--overlander-black) !important; }
.bg-overlander-black { background-color: var(--overlander-black) !important; }


/* --- Form Components (Inputs, Selects, Checks, Radios, Switches) --- */

/* Focus states for text inputs and selects */
.form-control:focus, 
.form-select:focus {
  border-color: var(--bs-primary);
  box-shadow: 0 0 0 0.25rem rgba(var(--bs-primary-rgb), 0.25);
}

/* Checkboxes and Radios */
.form-check-input:checked {
  background-color: var(--bs-primary);
  border-color: var(--bs-primary);
}

.form-check-input:focus {
  border-color: var(--bs-primary);
  box-shadow: 0 0 0 0.25rem rgba(var(--bs-primary-rgb), 0.25);
}

/* --- Navigation --- */

/* Nav Pills */
.nav-pills .nav-link.active, 
.nav-pills .show > .nav-link {
  background-color: var(--bs-primary);
  color: #fff;
}

/* Nav Tabs */
.nav-tabs .nav-link.active, 
.nav-tabs .nav-item.show .nav-link {
  color: var(--bs-primary);
  /* Use default border behavior but ensure text is primary */
}

.nav-link {
  color: var(--bs-primary);
}

.nav-link:hover, .nav-link:focus {
  color: var(--bs-secondary);
}

/* --- Pagination --- */

.page-link {
  color: var(--bs-primary);
}

.page-link:hover {
  color: var(--bs-secondary);
  border-color: var(--bs-border-color);
}

.page-link:focus {
  color: var(--bs-secondary);
  box-shadow: 0 0 0 0.25rem rgba(var(--bs-primary-rgb), 0.25);
}

.active > .page-link, 
.page-item.active .page-link {
  background-color: var(--bs-primary);
  border-color: var(--bs-primary);
  color: #fff;
}

/* --- List Group --- */

.list-group-item.active {
  background-color: var(--bs-primary);
  border-color: var(--bs-primary);
  color: #fff;
}

/* --- Progress Bars --- */

.progress-bar {
  background-color: var(--bs-primary);
}

/* --- Accordion --- */

.accordion-button:not(.collapsed) {
  color: var(--bs-primary);
  background-color: rgba(var(--bs-primary-rgb), 0.1); 
  box-shadow: inset 0 -1px 0 rgba(0,0,0,0.125); 
}

.accordion-button:focus {
    border-color: var(--bs-primary);
    box-shadow: 0 0 0 0.25rem rgba(var(--bs-primary-rgb), 0.25);
}

/* --- Range Inputs --- */
.form-range::-webkit-slider-thumb {
  background: var(--bs-primary);
}
.form-range::-webkit-slider-thumb:active {
  background: var(--bs-secondary);
}
.form-range::-moz-range-thumb {
  background: var(--bs-primary);
}
.form-range::-moz-range-thumb:active {
  background: var(--bs-secondary);
}
.form-range:focus::-webkit-slider-thumb {
  box-shadow: 0 0 0 1px #fff, 0 0 0 0.25rem rgba(var(--bs-primary-rgb), 0.25);
}
.form-range:focus::-moz-range-thumb {
  box-shadow: 0 0 0 1px #fff, 0 0 0 0.25rem rgba(var(--bs-primary-rgb), 0.25);
}
