:focus {
  outline: 2px solid transparent;
}

:focus:not(:focus-visible) {
  outline: none;
}

:focus-visible {
  outline: 3px solid var(--color-primary);
  outline-offset: 2px;
  box-shadow: var(--focus-ring);
  border-radius: var(--radius-control);
}

.invalid {
  border: 2px solid var(--color-error) !important;
}

.required-indicator {
  color: var(--color-error);
  font-size: 1em;
  line-height: 1;
}

.app-button:disabled,
.app-icon-button:disabled,
.filter-button:disabled {
  border-color: var(--color-border);
}

.vendor-note-rating {
  color: #815300;
}

@media (pointer: coarse) {
  button,
  input:not([type="checkbox"]):not([type="radio"]),
  select,
  .app-button,
  .nav-item {
    min-height: 2.75rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .skeleton__line {
    animation: none;
    background: var(--color-surface-highest);
  }
}

@media (forced-colors: active) {
  :focus-visible {
    outline: 3px solid CanvasText;
    box-shadow: none;
  }

  .app-button:disabled,
  .app-icon-button:disabled,
  .filter-button:disabled {
    border: 1px solid GrayText;
  }
}
