@layer components {
  .comments {
    --avatar-size: 2.33em;
    --comment-padding-block: var(--block-space-half);
    --comment-padding-inline: var(--inline-space-double);
    --comment-max: 70ch;

    display: flex;
    flex-direction: column;
    gap: var(--block-space);
    padding-inline: var(--inline-space);
    place-items: center;
    text-align: center;
  }

  .comment {
    &:where(.comments &) {
      display: flex;
      margin-inline: auto;
      max-inline-size: var(--comment-max);
      position: relative;
    }

    .comment-by-system & {
      --comment-padding-block: var(--block-space-half);

      text-align: center;

      &::before {
        content: "";
        display: flex;
        inline-size: calc(var(--comment-padding-inline) * 0.9);
      }

      .comment__avatar {
        display: none;
      }

      .comment__author {
        strong { display: none; }
      }

      .comment__body {
        padding: 0;
        text-align: center;
      }

      .comment__content {
        --stripe-color: var(--color-ink-lightest);

        background-image: repeating-linear-gradient(
          45deg in srgb,
          var(--color-canvas) 0 1px,
          var(--stripe-color) 1px 10px);
        padding-inline: var(--comment-padding-inline);
      }
    }
  }

  .comment__avatar {
    margin: calc(var(--comment-padding-block) * 0.75) calc(var(--comment-padding-inline) * -0.75);
    z-index: 0;
  }

  .comment__body {
    text-align: start;

    .action-text-content {
      > :last-child {
        margin-block-end: 0;
      }
    }

    &:not(:has(lexxy-editor)) {
      padding-inline-end: var(--btn-size, 0);
    }
  }

  .comment__content {
    --comment-bg-color: var(--color-ink-lightest);
    --lexxy-bg-color: var(--comment-bg-color);
    --lexxy-color-canvas: var(--comment-bg-color);

    background-color: var(--comment-bg-color);
    border-radius: 0.2em;
    max-inline-size: calc(100% - calc(var(--comment-padding-inline) * 0.75));
    padding:
      var(--comment-padding-block)
      calc(var(--comment-padding-inline) / 2)
      calc(var(--comment-padding-block) * 1.5)
      var(--comment-padding-inline);
    word-wrap: break-word;
  }

  .comment--new {
    .lexxy-editor__content {
      min-block-size: 3lh;
    }
  }

  .comment__edit {
    background-color: var(--color-ink-lightest);
  }

  .comments__subscribers {
    max-inline-size: var(--comment-max);
    padding-inline: calc(var(--comment-padding-block) + var(--inline-space-double));
  }

  .comment-by-system {
    display: none;
    transition: var(--dialog-duration) allow-discrete;
    transition-property: display;

    .comments--system-expanded & {
      display: contents;
    }
  }

  /* Show the last system comment */
  :nth-last-child(1 of .comment-by-system) {
    display: contents;
  }

  /* Hide the "Show history" button if there's only one system comment */
  :nth-child(1 of .comment-by-system) {
    .comment__history {
      display: none;
    }
  }
}
