@layer components {
  .rs-link {
    display: inline;
    color: var(--rs-color-foreground-primary);
    text-decoration-thickness: 1px;
    text-underline-offset: calc(var(--rs-unit-x1) / 2);
    transition:
      color var(--rs-duration-fast) var(--rs-easing-standard),
      opacity var(--rs-duration-fast) var(--rs-easing-standard),
      text-decoration-color var(--rs-duration-fast) var(--rs-easing-standard);
  }

  .rs-link[data-tone="critical"] {
    color: var(--rs-color-foreground-critical);
  }

  .rs-link[data-tone="positive"] {
    color: var(--rs-color-foreground-positive);
  }

  .rs-link[data-tone="warning"] {
    color: var(--rs-color-foreground-warning);
  }

  .rs-link[data-variant="plain"] {
    text-decoration: none;
  }

  .rs-link[data-variant="underline"] {
    text-decoration-line: underline;
    text-decoration-color: currentcolor;
  }

  @media (hover: hover) and (pointer: fine) {
    .rs-link:hover:not([aria-disabled="true"]) {
      opacity: 0.8;
    }

    .rs-link[data-variant="underline"]:hover:not([aria-disabled="true"]) {
      text-decoration-color: transparent;
    }
  }

  .rs-link:focus-visible {
    outline: 2px solid var(--rs-color-border-primary);
    outline-offset: 2px;
    border-radius: var(--rs-radius-small);
  }

  .rs-link[aria-disabled="true"] {
    color: var(--rs-color-foreground-disabled);
    text-decoration: none;
    pointer-events: none;
  }
}
