/* WCAG 2.4.7 Focus Visible - Keyboard Navigation Accessibility */

/* Screen reader only text - hidden but announced by assistive tech */
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border-width: 0;
}



/* Global focus styles for all interactive elements */
:focus-visible {
  outline: 3px solid #000;
  outline-offset: 2px;
}

/* Fallback for browsers that don't support :focus-visible */
:focus {
  outline: 3px solid #000;
  outline-offset: 2px;
}

/* Links */
a:focus,
a:focus-visible {
  outline: 3px solid #000;
  outline-offset: 2px;
  /* box-shadow: 0 0 0 4px rgba(74, 144, 226, 0.25); */
}

/* Buttons */
button:focus,
button:focus-visible,
input[type="button"]:focus,
input[type="button"]:focus-visible,
input[type="submit"]:focus,
input[type="submit"]:focus-visible,
input[type="reset"]:focus,
input[type="reset"]:focus-visible {
  outline: 3px solid #000;
  outline-offset: 2px;
  /* box-shadow: 0 0 0 4px rgba(74, 144, 226, 0.25); */
}

/* Form inputs */
input[type="text"]:focus,
input[type="text"]:focus-visible,
input[type="email"]:focus,
input[type="email"]:focus-visible,
input[type="password"]:focus,
input[type="password"]:focus-visible,
input[type="number"]:focus,
input[type="number"]:focus-visible,
input[type="search"]:focus,
input[type="search"]:focus-visible,
input[type="url"]:focus,
input[type="url"]:focus-visible,
textarea:focus,
textarea:focus-visible {
  outline: 3px solid #000;
  outline-offset: 2px;
  /* box-shadow: inset 0 0 0 2px rgba(74, 144, 226, 0.5); */
}

/* Select dropdowns */
select:focus,
select:focus-visible {
  outline: 3px solid #000;
  outline-offset: 2px;
  /* box-shadow: 0 0 0 4px rgba(74, 144, 226, 0.25); */
}

/* Checkboxes and radio buttons */
input[type="checkbox"]:focus,
input[type="checkbox"]:focus-visible,
input[type="radio"]:focus,
input[type="radio"]:focus-visible {
  outline: 3px solid #000;
  outline-offset: 2px;
  /* box-shadow: 0 0 0 4px rgba(74, 144, 226, 0.25); */
}

/* Slide controls - Hide radio button outline, style label only */
.slide-controls input[type="radio"]:focus,
.slide-controls input[type="radio"]:focus-visible {
  outline: none;
  box-shadow: none;
}

.slide-controls input[type="radio"]:focus + label,
.slide-controls input[type="radio"]:focus-visible + label {
  background-color: rgba(74, 144, 226, 0.3);
  border-radius: 6px;
  text-decoration: underline;
  text-decoration-color: #000;
  text-decoration-thickness: 2px;
  text-underline-offset: 3px;
}

/* Bootstrap buttons */
.btn:focus,
.btn:focus-visible,
.btn:active:focus,
.btn:active:focus-visible,
.btn.active:focus,
.btn.active:focus-visible {
  outline: 3px solid #000;
  outline-offset: 1px;
  /* box-shadow: 0 0 0 4px rgba(74, 144, 226, 0.25); */
   /* outline: 3px solid #FFD700;
    outline-offset: 2px;
    box-shadow: 0 0 0 2px #000000; */
}

/* Primary buttons */
.btn-primary:focus,
.btn-primary:focus-visible,
.btn-primary:active:focus,
.btn-primary:active:focus-visible,
.btn-primary.active:focus,
.btn-primary.active:focus-visible {
  outline: 3px solid #000000;
  outline-offset: 2px;
  /* box-shadow: 0 0 0 4px rgba(255, 215, 0, 0.25); */
  /* background-color: #000; */
  border-color: #000;
}

/* Navigation elements */
nav a:focus,
nav a:focus-visible,
.navbar-nav a:focus,
.navbar-nav a:focus-visible {
  outline: 3px solid #000;
  outline-offset: 2px;
  /* box-shadow: 0 0 0 4px rgba(74, 144, 226, 0.25); */
}

/* Sidebar navigation */
.page-sidebar a:focus,
.page-sidebar a:focus-visible,
.page-sidebar button:focus,
.page-sidebar button:focus-visible {
  outline: 3px solid #000;
  outline-offset: -3px;
  /* box-shadow: inset 0 0 0 3px rgba(74, 144, 226, 0.8); */
  background-color: rgba(74, 144, 226, 0.15);
  border-radius: 2px;
}

/* Sidebar menu items with focus */
.page-sidebar .sidebar-menu .menu-items li a:focus,
.page-sidebar .sidebar-menu .menu-items li a:focus-visible {
  outline: 3px solid #000;
  outline-offset: -3px;
  /* box-shadow: inset 0 0 0 3px rgba(74, 144, 226, 0.8); */
  background-color: rgba(74, 144, 226, 0.15);
  border-radius: 2px;
}

/* Enhanced focus for sidebar tabs */
.page-sidebar [role="tab"]:focus,
.page-sidebar [role="tab"]:focus-visible {
  outline: 3px solid #000;
  outline-offset: -2px;
  background-color: rgba(74, 144, 226, 0.2);
  /* box-shadow: inset 0 0 0 2px rgba(74, 144, 226, 0.8); */
}

/* Tab elements */
.nav-tabs > li > a:focus,
.nav-tabs > li > a:focus-visible {
  outline: 3px solid #000;
  outline-offset: -2px;
  background-color: rgba(74, 144, 226, 0.1);
}

/* Modal and dialog focus */
.modal-content a:focus,
.modal-content a:focus-visible,
.modal-content button:focus,
.modal-content button:focus-visible {
  outline: 3px solid #000;
  outline-offset: 2px;
  /* box-shadow: 0 0 0 4px rgba(74, 144, 226, 0.25); */
}

/* Search inputs */
.search-field:focus,
.search-field:focus-visible,
input.search:focus,
input.search:focus-visible {
  outline: 3px solid #000;
  outline-offset: 2px;
  /* box-shadow: inset 0 0 0 2px rgba(74, 144, 226, 0.5); */
}

/* List items with links */
li a:focus,
li a:focus-visible {
  outline: 3px solid #fff;
  outline-offset: 2px;
  /* box-shadow: 0 0 0 4px rgba(74, 144, 226, 0.25); */
}

/* Badge/pill elements */
.badge:focus,
.badge:focus-visible,
.label:focus,
.label:focus-visible {
  outline: 3px solid #000;
  outline-offset: 2px;
}

/* Skip to main content */

.skip-to-main{
  position: absolute;
  top: -100px;
  left: 10px;
  background: #ffffff;
  color: #317CAF !important;
  padding: 10px 16px;
  /* border: 2px solid #000; */
  border-radius: 4px;
  text-decoration: none;
  z-index: 10000;
  transition: top .2s ease;
}

/* Visible only when keyboard tabs onto it */

.skip-to-main:focus,
.skip-to-main:focus-visible{
  top: 10px;
  outline: 3px solid #000;
  outline-offset: 0 !important;
  box-shadow: 0 2px 8px rgba(0,0,0,.2);
}
#main-content:focus,
#main-content:focus-visible{
  outline: none;
  box-shadow: none;
}
#main-content{
  scroll-margin-top: 80px;
}
/* Data table elements */
table a:focus,
table a:focus-visible,
table button:focus,
table button:focus-visible {
  outline: 3px solid #000;
  outline-offset: 2px;
  /* box-shadow: 0 0 0 4px rgba(74, 144, 226, 0.25); */
}

/* Pagination */
.pagination a:focus,
.pagination a:focus-visible {
  outline: 3px solid #000;
  outline-offset: 2px;
  background-color: rgba(74, 144, 226, 0.1);
}

/* Breadcrumb navigation */
.breadcrumb a:focus,
.breadcrumb a:focus-visible {
  outline: 3px solid #000;
  outline-offset: 2px;
  text-decoration: underline;
}

.copyright .hint-text,
.copyright .font-montserrat,
.copyright p {
  color: #6C6D6D;
}

.select2-default .select2-chosen {
    color: #2b2b2b !important;
}

/* Focus visible for high contrast mode */
@media (prefers-contrast: more) {
  :focus-visible {
    outline: 4px solid #000;
    outline-offset: 2px;
  }

  a:focus-visible {
    outline: 4px solid #000;
    outline-offset: 2px;
  }

  button:focus-visible,
  input[type="button"]:focus-visible,
  input[type="submit"]:focus-visible {
    outline: 4px solid #000;
    outline-offset: 2px;
  }
}

/* Remove default blue glow that browsers add to certain elements */
input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

/* Ensure visible focus on any custom interactive element */
[role="button"]:focus,
[role="button"]:focus-visible,
[role="link"]:focus,
[role="link"]:focus-visible,
[role="menuitem"]:focus,
[role="menuitem"]:focus-visible,
[role="tab"]:focus,
[role="tab"]:focus-visible {
  outline: 3px solid #000;
  outline-offset: 2px;
  /* box-shadow: 0 0 0 4px rgba(74, 144, 226, 0.25); */
}

.ticker-link,
.ticker-link:visited {
    color: #626262 !important;
    text-decoration: underline;
    text-decoration-color: #317CAF;
}

.ticker-link:hover,
.ticker-link:focus {
    color: #000 !important;
    text-decoration: underline;
    text-decoration-color: #317CAF;
}

/* Focus indicator for Select2 comboboxes */
.select2-container-active .select2-choice,
.select2-container .select2-choice:focus {
    outline: 3px solid #000 !important;
    outline-offset: 2px;
}

.form-group-default.focused,
.form-group-default:focus-within {
    outline: 3px solid #000 !important;
    outline-offset: 2px;
}

/* Override Bootstrap close button focus */
.modal .close,
.modal .close:focus,
.modal .close:focus-visible {
    opacity: 1 !important;
}

.modal .close:focus,
.modal .close:focus-visible {
    outline: 2px solid #000 !important;
    outline-offset: 1px !important;
    box-shadow: none !important;
    border-radius: 1%;
    z-index: 9999;
    position: relative;
}