/* Global focus styles (a11y) */

:focus-visible {
  outline: 2px solid var(--accent-primary);
  outline-offset: 2px;
  border-radius: var(--radius-sm);
}

button:focus-visible,
a:focus-visible {
  outline: 2px solid var(--accent-primary);
  outline-offset: 2px;
}

/*
 * Skip link focuses <main>; Turbo no longer focuses it (see application.js + turbo-page-announcer).
 * clearStalePointerFocus on turbo:load and hidden.bs.modal blurs mouse-click :focus on links/buttons.
 * Suppress the global :focus-visible ring on this landmark — a page-sized outline is never useful.
 */
main#main-content:focus,
main#main-content:focus-visible {
  outline: none !important;
  outline-offset: 0 !important;
  box-shadow: none !important;
}

/*
 * After pointer-driven Turbo navigation the cursor often still sits over a control, so :hover
 * reads as a false “selected” highlight. application.js adds .pointer-nav-hover-locked until the
 * next pointer/keyboard move. Keep :focus-visible and true .active states; only suppress hover.
 */
body.pointer-nav-hover-locked a.list-group-item-action.list-row-link:hover:not(:focus-visible),
body.pointer-nav-hover-locked .list-group-item-action:hover:not(:focus-visible) {
  color: var(--bs-list-group-action-color, var(--text-secondary)) !important;
  background-color: transparent !important;
}

body.pointer-nav-hover-locked a.list-group-item-action.list-row-link:hover:not(:focus-visible) .list-row-link__title {
  color: var(--link-content-color) !important;
}

body.pointer-nav-hover-locked a.list-group-item-action.list-row-link:hover:not(:focus-visible) .list-row-nav-indicator {
  color: var(--text-tertiary);
  opacity: 0.82;
}

body.pointer-nav-hover-locked .sidebar-link:hover:not(.active):not(:focus-visible) {
  background: transparent;
  color: var(--text-secondary);
}

body.pointer-nav-hover-locked .sidebar-link.active:hover {
  background: var(--list-row-active-bg);
  color: var(--accent-primary);
}

body.pointer-nav-hover-locked .catalog-browse .achievement-catalog-vmilist-category-accordion .accordion-button:hover:not(:focus-visible) {
  color: var(--link-content-color) !important;
  background-color: var(--bs-accordion-btn-bg, var(--bg-primary)) !important;
}

body.pointer-nav-hover-locked .catalog-browse .achievement-catalog-vmilist-category-accordion .accordion-button:not(.collapsed):hover:not(:focus-visible) {
  background-color: var(--bs-accordion-active-bg, var(--list-row-hover-bg)) !important;
}

body.pointer-nav-hover-locked .catalog-browse .achievement-catalog-vmilist-category-accordion .accordion-button:hover:not(:focus-visible) .text-muted {
  color: var(--text-muted, var(--text-tertiary)) !important;
  opacity: 1;
}

body.pointer-nav-hover-locked .clickable-card:hover {
  transform: none;
  border-color: var(--border-primary);
  box-shadow: var(--shadow-card, none);
}

