/* FECOD a11y / QA layer: small, low-specificity fixes only. */
:where(html) {
  overflow-x: hidden;
  scroll-behavior: smooth;
}

:where(body) {
  max-width: 100%;
  overflow-x: hidden;
  line-height: 1.6;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

:where(*, *::before, *::after) {
  box-sizing: border-box;
}

:where(img, svg, video, canvas, iframe) {
  max-width: 100%;
}

:where(img, video, canvas) {
  height: auto;
}

:where(table) {
  max-width: 100%;
}

:where(p, li, dd, dt, blockquote, figcaption, label, small) {
  line-height: 1.55;
}

:where(h1, h2, h3, h4, h5, h6) {
  line-height: 1.15;
}

:where(a, button, input, select, textarea, summary, .btn, .nav-link, .dropdown-item, .dropdown-toggle, .nav-mobile-shortcut, .fecod-btn, .fecod-chip, .fecod-badge, .fecod-navbar-toggler, [role="button"], [tabindex]:not([tabindex="-1"])) {
  touch-action: manipulation;
}

:where(.btn, .nav-link, .dropdown-item, .dropdown-toggle, .nav-mobile-shortcut, .fecod-btn, .fecod-chip, .fecod-badge, .fecod-navbar-toggler, [role="button"], [tabindex]:not([tabindex="-1"])) {
  min-height: 44px;
}

:where(.btn, .nav-link, .dropdown-item, .dropdown-toggle, .nav-mobile-shortcut, .fecod-btn, .fecod-chip, .fecod-badge, .fecod-navbar-toggler, [role="button"], [tabindex]:not([tabindex="-1"])):focus-visible {
  outline: 3px solid var(--fecod-accent, #afddf9);
  outline-offset: 2px;
  box-shadow: none;
}

:where(a:not(.btn):not(.dropdown-item):not(.nav-link)) {
  text-decoration-thickness: max(1px, 0.08em);
  text-underline-offset: 0.14em;
}

:where(a:not(.btn):not(.dropdown-item):not(.nav-link)):focus-visible {
  border-radius: 0.25rem;
  outline: 2px solid var(--fecod-accent, #afddf9);
  outline-offset: 2px;
}

:where(button, .btn, .nav-link, .dropdown-item, .dropdown-toggle, .nav-mobile-shortcut, .fecod-btn, .fecod-navbar-toggler) {
  -webkit-tap-highlight-color: transparent;
}

:where(button[disabled], .btn.disabled, .disabled, [aria-disabled="true"], input[disabled], select[disabled], textarea[disabled]) {
  cursor: not-allowed !important;
  opacity: 0.55;
  filter: saturate(0.7);
}

:where(input, select, textarea) {
  min-height: 44px;
  line-height: 1.4;
}

:where(input::placeholder, textarea::placeholder) {
  color: var(--fecod-text-muted, rgba(255, 255, 255, 0.68));
  opacity: 1;
}

:where(:is(input, select, textarea):focus-visible) {
  outline: 3px solid var(--fecod-accent, #afddf9);
  outline-offset: 2px;
}

:where(.container, .container-fluid, .row, [class*="col-"]) {
  min-width: 0;
}

:where(.table, table) {
  width: 100%;
}

:where(.table-responsive) {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

:where(.text-break, .overflow-wrap, .fecod-break-word) {
  overflow-wrap: anywhere;
  word-break: break-word;
}

:where(.fecod-focus-ring, .focus-visible) {
  outline: 3px solid var(--fecod-accent, #afddf9);
  outline-offset: 2px;
}

@media (max-width: 575.98px) {
  :where(body) {
    font-size: 1rem;
  }

  :where(.container, .container-fluid) {
    padding-left: 0.75rem;
    padding-right: 0.75rem;
  }

  :where(.btn, .nav-link, .dropdown-item, .dropdown-toggle, .nav-mobile-shortcut, .fecod-btn, .fecod-chip, .fecod-badge, .fecod-navbar-toggler) {
    min-height: 44px;
  }
}

@media (prefers-reduced-motion: reduce) {
  :where(html) {
    scroll-behavior: auto;
  }

  :where(*, *::before, *::after) {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}