@import url("/assets/lexxy-overrides/lexxy-variables-bfbcf891.css");

:where(.lexxy-content, .lexxy-editor__content) {
  h1,
  h2,
  h3,
  h4,
  h5,
  h6 {
    margin-block: 0 var(--lexxy-content-margin);
    hyphens: auto;
    overflow-wrap: break-word;
    text-wrap: balance;
  }

  p,
  ul,
  ol,
  dl,
  blockquote,
  figure,
  .attachment,
  .attachment-gallery {
    margin-block: 0 var(--lexxy-content-margin);

    &:not(lexxy-editor &) {
      overflow-wrap: break-word;
      text-wrap: pretty;
    }
  }

  blockquote {
    border-inline-start-width: 0.125em;
    color: var(--color--aa-text);
    font-family: var(--font-family--blockquote);
    font-size: 0.8rem;
    font-style: normal;
    font-weight: 400;
  }

  ul,
  ol {
    margin-inline-start: 0;
  }

  a {
    color: inherit;
  }

  img,
  video,
  embed,
  object {
    margin-inline: auto;
    max-block-size: 40rem;
    object-fit: initial;
    outline: 1px solid rgb(153 153 153 / 0.13);
    outline-offset: -1px;
  }

  .lexxy-content__table-wrapper {
    margin-block: 0 var(--lexxy-content-margin);
    overflow-x: auto;
  }

  table {
    border-collapse: separate;
    border-spacing: 0;
    inline-size: 100%;
    margin: 0;

    th,
    td {
      background-color: var(--lexxy-color-canvas);
      border: 0;
      border-block-end: var(--border--light);
      border-inline-end: var(--border--light);
      min-inline-size: 8ch;
      max-inline-size: none;
      padding: var(--space--small);
      text-align: left;
      vertical-align: top;
      word-break: normal;

      &:first-child {
        border-inline-start: var(--border--light);
      }

      > :last-child {
        margin-block-end: 0;
      }
    }

    th,
    .lexxy-content__table-cell--header {
      background-color: var(--lexxy-color-table-header-bg);
      font-size: inherit;
      font-weight: var(--font-weight--normal);
    }

    tr:first-child {
      th,
      td {
        border-block-start: var(--border--light);
      }
    }
  }

  .attachment.attachment--preview {
    display: block;
    width: 100%;
    padding: 0;

    img {
      max-width: 100%;
      border-radius: 2px;
    }
  }

  .attachment.attachment--preview .attachment__caption {
    display: block;
    padding-block-start: 0.5em;
    color: var(--color--aa-text);
    font-size: var(--lexxy-text-small);
  }

  .attachment-gallery {
    gap: 0.75ch;
    grid-template-columns: repeat(2, minmax(0, 1fr));

    > action-text-attachment {
      display: block;
      min-inline-size: 0;
    }

    .attachment {
      inline-size: 100%;
      margin: 0;
      min-inline-size: 0;
      padding: 0;
    }

    .attachment--preview {
      img,
      video {
        inline-size: 100%;
      }
    }
  }

  .attachment--file {
    gap: 1ch;
  }

  > :last-child,
  > :last-child figure {
    margin-block-end: 0;
  }
}

:where(.attachment__caption) {
  :is(input, textarea) {
    background: var(--lexxy-color-canvas);
    border: none;
    color: var(--lexxy-color-text);
    inline-size: 100%;
    max-inline-size: 100%;
    text-align: center;

    &:focus {
      outline: none;
    }

    @supports (field-sizing: content) {
      field-sizing: content;
      inline-size: auto;
      min-inline-size: 20ch;
    }
  }
}

:where(.attachment--preview) {
  img,
  video {
    display: block;
    margin-inline: auto;
    max-inline-size: 100%;
    user-select: none;
  }
}

:where(.horizontal-divider) {
  margin-block-end: 0.5em;
  padding: 1.5em 0 0.5em;

  hr {
    margin: 0;
  }
}

:where(action-text-attachment[content-type^="application/vnd.actiontext"]) {
  --lexxy-attachment-bg-color: transparent;
  --lexxy-attachment-image-size: 1em;
  --lexxy-attachment-text-color: currentColor;

  align-items: center;
  background: var(--lexxy-attachment-bg-color);
  border-radius: var(--lexxy-radius);
  box-shadow: -0.25ch 0 0 var(--lexxy-attachment-bg-color), 0.5ch 0 0 var(--lexxy-attachment-bg-color);
  color: var(--lexxy-attachment-text-color);
  display: inline-flex;
  gap: 0.25ch;
  margin: 0;
  padding: 0;
  position: relative;
  white-space: normal;

  img {
    block-size: var(--lexxy-attachment-image-size);
    border-radius: 50%;
    inline-size: var(--lexxy-attachment-image-size);
  }

  &.node--selected {
    --lexxy-attachment-bg-color: var(--lexxy-color-accent-dark);
    --lexxy-attachment-text-color: var(--lexxy-color-ink-inverted);
  }
}
