@layer components {
  .link-row + .link-row {
    border-block-start: var(--border-width) solid var(--color-border);
  }

  .link-row__link {
    display: grid;
    grid-template-columns: max-content minmax(var(--space-0), var(--track-fill)) max-content;
    align-items: center;
    column-gap: var(--space-5);
    min-block-size: var(--tap-min);
    padding-block: var(--space-4);
    color: var(--color-ink);
    -webkit-tap-highlight-color: transparent;
  }

  button.link-row__link {
    inline-size: var(--size-fill);
    text-align: start;
    cursor: pointer;
  }

  button.link-row__link > .icon--check {
    visibility: hidden;
    color: var(--color-accent-ink);
  }

  button.link-row__link:disabled {
    cursor: default;
  }

  button.link-row__link:disabled > .icon--check {
    visibility: visible;
  }

  .link-row__link:not(:has(> :is(.kind, .link-row__icon))) {
    grid-template-columns: minmax(var(--space-0), var(--track-fill)) max-content;
  }

  .link-row:has(> .link-row__action) {
    display: flex;
    align-items: center;
    gap: var(--space-4);
  }

  .link-row:has(> .link-row__action) > .link-row__link {
    flex: auto;
    min-inline-size: var(--space-0);
  }

  .link-row:has(> .link-row__action) > .link-row__link > .icon--chevron-right {
    display: none;
  }

  .link-row__action {
    display: flex;
    flex: none;
    gap: var(--space-2);
  }

  .link-row__icon {
    --icon-size: var(--button-icon-size);

    display: grid;
    place-items: center;
    inline-size: var(--row-icon-size);
    block-size: var(--row-icon-size);
    border-radius: var(--radius-sm);
    background-color: var(--color-surface-sunken);
    color: var(--color-link);
  }

  .link-row__text {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
    min-inline-size: var(--space-0);
  }

  .link-row__title,
  .link-row__detail {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .link-row__title {
    font: var(--type-body);
  }

  .link-row--wrap .link-row__title {
    white-space: normal;
    text-wrap: pretty;
  }

  .link-row__detail {
    font: var(--type-caption);
    color: var(--color-ink-faint);
  }

  .link-row__excerpt {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: var(--clamp-lines);
    overflow: hidden;
    font: var(--type-body-sm);
    color: var(--color-ink-muted);
    text-wrap: pretty;
  }

  .link-row mark {
    border-radius: var(--radius-xs);
    background-color: var(--color-highlight);
    color: var(--color-ink);
  }

  .link-row__link > .icon {
    --icon-size: var(--input-icon-size);

    color: var(--color-ink-faint);
  }

  @media (any-hover: hover) {
    .link-row__link:not(:disabled):hover .link-row__title {
      color: var(--color-link);
    }
  }
}

@layer components {
  .link-row__link[aria-current] .link-row__title {
    color: var(--color-accent-ink);
  }
}
