/* v112 — accessibility and quality automation refinements */
button,
input,
select,
textarea {
  font: inherit;
}

button,
input:not([type="hidden"]),
select,
textarea,
.file-drop {
  min-block-size: 44px;
}

button,
[role="button"],
input,
select,
textarea,
a {
  touch-action: manipulation;
}

:where(a, button, input, select, textarea, [tabindex]):focus-visible {
  outline: 3px solid var(--gold);
  outline-offset: 3px;
  box-shadow: 0 0 0 5px rgba(6, 11, 18, .92);
}

.btn:focus-visible,
.tab:focus-visible,
.subtab:focus-visible {
  border-color: var(--gold);
}

#main:focus {
  outline: none;
}

.skip-link {
  inline-size: max-content;
  max-inline-size: calc(100vw - 2rem);
}

.skip-link:focus-visible {
  outline-color: #111;
  box-shadow: 0 0 0 5px var(--gold);
}

.file-drop {
  position: relative;
}

.file-drop input {
  display: block;
  position: absolute;
  inline-size: 1px;
  block-size: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.file-drop:focus-within {
  outline: 3px solid var(--gold);
  outline-offset: 3px;
  border-color: var(--gold);
}

:disabled,
[aria-disabled="true"] {
  cursor: not-allowed;
  opacity: .68;
}

.sr-only {
  position: absolute;
  inline-size: 1px;
  block-size: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
}

@media (prefers-contrast: more) {
  :root {
    --line: #7f8da8;
    --muted: #c7d0df;
  }

  .card,
  .kpi,
  .review-card,
  .table-wrap,
  input,
  select,
  textarea,
  button {
    border-width: 2px;
  }
}

@media (forced-colors: active) {
  .bar-fill,
  .goal-progress span,
  .health-bar span {
    background: Highlight;
  }

  .tab.active,
  .subtab.active,
  .btn.primary {
    border: 2px solid Highlight;
  }
}
