@layer env.components {
  .env-rich-text-editor {
    min-inline-size: 0;
  }
  .env-rich-text-document {
    min-inline-size: 0;
    max-inline-size: 100%;
    --env-rich-text-default-min-block-size: 10rem;
    min-block-size: var(
      --env-rich-text-min-block-size,
      var(--env-rich-text-default-min-block-size)
    );
    padding: var(--env-space-4);
    border-radius: inherit;
    outline: none;
    font-size: var(--env-control-font-size);
    caret-color: var(--env-color-border-primary-emphasis);
  }
  .env-rich-text-document p {
    font-size: var(--env-control-font-size);
  }
  .env-rich-text-document p.is-editor-empty:first-child::before {
    color: var(--env-color-fg-muted);
    content: attr(data-placeholder);
    float: left;
    height: 0;
    pointer-events: none;
  }
  .env-rich-text {
    overflow-wrap: break-word;
    white-space: break-spaces;
  }
  .env-rich-text :where(ul[data-type='taskList']),
  .env-rich-text-document :where(ul[data-type='taskList']) {
    list-style: none;
    padding-inline-start: 0;
  }
  .env-rich-text :where(ul[data-type='taskList'] > li),
  .env-rich-text-document :where(ul[data-type='taskList'] > li) {
    display: flex;
    align-items: flex-start;
    gap: var(--env-space-2);
  }
  .env-rich-text :where(ul[data-type='taskList'] > li > div),
  .env-rich-text-document :where(ul[data-type='taskList'] > li > div) {
    min-inline-size: 0;
    flex: 1;
  }
  .env-rich-text :where(ul[data-type='taskList'] > li > div) {
    margin-block-start: 0;
  }
  .env-rich-text-task {
    display: flex;
    align-items: flex-start;
    gap: var(--env-space-2);
  }
  .env-rich-text-task-check {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    block-size: 1lh;
  }
  .env-rich-text-task-content {
    min-inline-size: 0;
    flex: 1;
  }
  .env-rich-text-document.ProseMirror {
    position: relative;
    overflow-wrap: break-word;
    white-space: pre-wrap;
    white-space: break-spaces;
    font-variant-ligatures: none;
    font-feature-settings: 'liga' 0;
  }
  .env-rich-text-document [contenteditable='false'] {
    white-space: normal;
  }
  .env-rich-text-document [contenteditable='false'] [contenteditable='true'] {
    white-space: pre-wrap;
  }
  .env-rich-text-document img.ProseMirror-separator {
    display: inline !important;
    inline-size: 0 !important;
    block-size: 0 !important;
    margin: 0 !important;
    border: none !important;
  }
  .env-rich-text-document .ProseMirror-gapcursor {
    display: none;
    position: absolute;
    margin: 0;
    pointer-events: none;
  }
  .env-rich-text-document .ProseMirror-gapcursor::after {
    content: '';
    display: block;
    position: absolute;
    inset-block-start: calc(-2 * var(--env-control-border-width));
    inline-size: var(--env-space-5);
    border-block-start: var(--env-control-border-width) solid currentColor;
    animation: env-rich-text-gapcursor-blink 1.1s steps(2, start) infinite;
  }
  @keyframes env-rich-text-gapcursor-blink {
    to {
      visibility: hidden;
    }
  }
  @media (prefers-reduced-motion: reduce) {
    .env-rich-text-document .ProseMirror-gapcursor::after {
      animation: none;
    }
  }
  .env-rich-text-document.ProseMirror-focused .ProseMirror-gapcursor {
    display: block;
  }
  .env-rich-text-document.ProseMirror-hideselection *::selection {
    background: transparent;
  }
  .env-rich-text-document.ProseMirror-hideselection * {
    caret-color: transparent;
  }
  .env-rich-text-document pre {
    padding: var(--env-space-4);
    background: var(--env-color-bg-neutral-muted);
    overflow: auto;
    white-space: pre;
  }
  .env-rich-text-document .tableWrapper {
    overflow-x: auto;
  }
  .env-rich-text-document td,
  .env-rich-text-document th {
    --env-rich-text-cell-min-width: 3rem;
    min-inline-size: var(--env-rich-text-cell-min-width);
    position: relative;
  }
  .env-rich-text-document .selectedCell {
    background: var(--env-color-bg-selected);
  }
  .env-rich-text-reference {
    display: inline;
    padding: 0 var(--env-space-1);
    border-radius: var(--env-space-1);
    background: var(--env-color-bg-neutral-muted);
    color: var(--env-color-fg-default);
    text-decoration: none;
    box-decoration-break: clone;
  }
  .env-rich-text-editor-control[data-disabled]
    :is(.env-rich-text-document, .env-rich-text-reference) {
    color: var(--env-color-fg-disabled);
  }
  .env-rich-text-reference:focus-visible {
    outline: 2px solid var(--env-color-border-focus);
  }
  .env-rich-text-suggestions-positioner {
    z-index: var(--env-z-popup);
  }
  .env-rich-text-suggestions {
    box-sizing: border-box;
    --env-rich-text-suggestions-min-width: 12rem;
    --env-rich-text-suggestions-max-width: 24rem;
    --env-rich-text-suggestions-max-height: 18rem;
    min-inline-size: min(
      var(--env-rich-text-suggestions-min-width),
      calc(100dvw - 2 * var(--env-viewport-gutter))
    );
    max-inline-size: min(
      var(--env-rich-text-suggestions-max-width),
      calc(100dvw - 2 * var(--env-viewport-gutter))
    );
    max-block-size: min(
      var(--env-rich-text-suggestions-max-height),
      calc(100dvh - 2 * var(--env-viewport-gutter))
    );
    overflow: auto;
    --env-rich-text-suggestions-edge: var(--env-popup-solid) var(--env-popup-edge-color);
    border: var(--env-control-border-width) solid
      var(--env-rich-text-suggestions-edge, var(--env-popup-frosted-edge, transparent));
    border-radius: var(--env-popup-radius);
    background: color-mix(in srgb, var(--env-popup-fill) var(--env-popup-opacity), transparent);
    box-shadow: var(--env-popup-shadow);
    -webkit-backdrop-filter: blur(var(--env-popup-blur)) saturate(1.4);
    backdrop-filter: blur(var(--env-popup-blur)) saturate(1.4);
    color: var(--env-color-fg-default);
    font: var(--env-type-body);
  }
}
