:root,
[data-bs-theme="light"] {
  /* Portal Palette Definitions — Calm Air Brand */
  --portal-navy: #111e40;
  --portal-navy-rgb: 17, 30, 64;
  --portal-dark: #0d1630;
  --portal-dark-rgb: 13, 22, 48;
  --portal-deep-navy: #0a1228;
  --portal-deep-navy-rgb: 10, 18, 40;
  --portal-wcag-navy: #1a2d55;
  --portal-wcag-navy-rgb: 26, 45, 85;
  --portal-gold: #c49104;
  --portal-gold-rgb: 196, 145, 4;
  --portal-light-gold: #e8c44a;
  --portal-light-gold-rgb: 232, 196, 74;
  --portal-sky: #e8ecf4;
  --portal-sky-rgb: 232, 236, 244;
  --portal-white: #ffffff;
  --portal-white-rgb: 255, 255, 255;
  --portal-gray: #6c757d;
  --portal-gray-rgb: 108, 117, 125;
  --portal-silver: #C3C4CB;
  --portal-silver-rgb: 195, 196, 203;
  --portal-black: #000000;
  --portal-black-rgb: 0, 0, 0;

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

  /* Portal UI Chrome */
  --portal-page-bg: #FAFBFC;
  --portal-border: #DEE2E8;
  --portal-muted: #8B909E;
  --portal-label: #4B5563;
  --portal-placeholder: #C0C5CE;
  --portal-notice-bg: #FEF3CD;
  --portal-notice-text: #856404;

  /* Portal Role Assignments — Calm Air */
  --portal-primary: var(--portal-navy);
  --portal-primary-rgb: var(--portal-navy-rgb);
  --portal-primary-gradient: var(--portal-wcag-navy);
  --portal-primary-hover: var(--portal-wcag-navy);
  --portal-primary-hover-rgb: var(--portal-wcag-navy-rgb);
  --portal-primary-subtle: var(--portal-sky);
  --portal-primary-active: var(--portal-deep-navy);

  /* Typography */
  --portal-font-family: var(--bs-font-sans-serif);

  /* Bootstrap Variable Overrides */
  --bs-primary: var(--portal-primary);
  --bs-primary-rgb: var(--portal-primary-rgb);
  --bs-secondary: var(--portal-dark);
  --bs-secondary-rgb: var(--portal-dark-rgb);
  --bs-body-font-family: var(--portal-font-family);

  --bs-success: var(--portal-success);
  --bs-success-rgb: var(--portal-success-rgb);
  --bs-warning: var(--portal-warning);
  --bs-warning-rgb: var(--portal-warning-rgb);
  --bs-danger: var(--portal-danger);
  --bs-danger-rgb: var(--portal-danger-rgb);

  /* Body text */
  --bs-body-color: var(--portal-dark);
  --bs-body-color-rgb: var(--portal-dark-rgb);

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

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

/* Explicit Override for Dropdown Active State */
.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(--portal-primary-hover);
  --bs-btn-hover-border-color: var(--portal-primary-hover);
  --bs-btn-focus-shadow-rgb: var(--bs-primary-rgb);
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: var(--portal-primary-active);
  --bs-btn-active-border-color: var(--portal-primary-active);
  --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(--portal-primary-hover);
  --bs-btn-active-border-color: var(--portal-primary-hover);
  --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(--portal-primary);
  --bs-btn-hover-border-color: var(--portal-primary);
  --bs-btn-focus-shadow-rgb: var(--bs-secondary-rgb);
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: var(--portal-primary-active);
  --bs-btn-active-border-color: var(--portal-primary-active);
  --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(--portal-primary);
  --bs-btn-active-border-color: var(--portal-primary);
  --bs-btn-disabled-color: var(--bs-secondary);
  --bs-btn-disabled-border-color: var(--bs-secondary);
}

/* Portal Custom Utility Classes */
.text-portal-navy { color: var(--portal-navy) !important; }
.bg-portal-navy { background-color: var(--portal-navy) !important; }
.text-portal-dark { color: var(--portal-dark) !important; }
.bg-portal-dark { background-color: var(--portal-dark) !important; }
.text-portal-gold { color: var(--portal-gold) !important; }
.bg-portal-gold { background-color: var(--portal-gold) !important; }
.text-portal-gray { color: var(--portal-gray) !important; }
.bg-portal-gray { background-color: var(--portal-gray) !important; }
.text-portal-silver { color: var(--portal-silver) !important; }
.bg-portal-silver { background-color: var(--portal-silver) !important; }

/* --- Form Components --- */
.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);
}

.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-link.active, 
.nav-pills .show > .nav-link {
  background-color: var(--bs-primary);
  color: #fff;
}

.nav-tabs .nav-link.active, 
.nav-tabs .nav-item.show .nav-link {
  color: var(--bs-primary);
}

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

/* --- Pagination --- */
.page-link { color: var(--bs-primary); }
.page-link:hover { color: var(--portal-primary-hover); border-color: var(--bs-border-color); }
.page-link:focus { color: var(--portal-primary-hover); 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(--portal-primary-hover); }
.form-range::-moz-range-thumb { background: var(--bs-primary); }
.form-range::-moz-range-thumb:active { background: var(--portal-primary-hover); }
.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); }
