.Textarea {
  --textarea-text-color: var(--color-content-base-primary);
  --textarea-background-color: var(--color-background-base-primary);
  --textarea-border-color: var(--color-border-base-main);
  --textarea-border-width: var(--border-width-s);
  min-block-size: var(--textarea-input-block-size);
  display: inline-flex;
  vertical-align: top;
  flex-direction: column;
  position: relative;
  cursor: text;
}

  .Textarea > * {
    cursor: text;
  }

  .Textarea-Label {
    padding: 0 var(--textarea-gutter-x);
  }

  .Textarea-Fieldset {
    position: absolute;
    inset-block-end: 0;
    inset-inline-end: 0;
    inset-block-start: 0;
    inset-inline-start: 0;
    margin: 0;
    padding: 0;
    pointer-events: none;
    border-radius: var(--border-radius-xs);
    border: var(--textarea-border-width) solid var(--textarea-border-color);
    transition: border var(--transition-default);
  }

  .Textarea-Body,
  .Textarea-Field {
    transition: background-color var(--transition-slow);
  }

  .Textarea-Body {
    position: relative;
    inline-size: 100%;
    display: flex;
    border: none;
    outline: none;
    box-sizing: border-box;
    background-color: var(--textarea-background-color);
    transition: background-color var(--transition-slow);
    color: var(--textarea-text-color);
    border-radius: var(--border-radius-xs);
    -webkit-padding-before: 16px;
            padding-block-start: 16px;
    -webkit-padding-after: 16px;
            padding-block-end: 16px;
    min-block-size: inherit;
    block-size: inherit;
  }

  .Textarea-Field {
    --scroll-bar-size: 12px;
  }

  .Textarea-Field::-webkit-scrollbar {
    inline-size: var(--scroll-bar-size);
  }

  .Textarea-Field::-webkit-scrollbar-thumb {
    background-color: var(--color-background-secondary);
    border-radius: calc(var(--scroll-bar-size) / 2);
    border: calc(var(--scroll-bar-size) / 4) solid transparent;
    background-clip: padding-box;
    border-image: initial;
    min-block-size: 24px;
  }

  .Textarea-Field::-webkit-scrollbar-thumb:hover,
    .Textarea-Field::-webkit-scrollbar-thumb:active {
      border: calc(var(--scroll-bar-size) / 4) solid transparent;
      background-clip: padding-box;
    }

  .Textarea-Field::-webkit-scrollbar-thumb:hover {
      background-color: var(--color-background-secondary-hover);
    }

  .Textarea-Field::-webkit-scrollbar-thumb:active {
      background-color: var(--color-background-secondary-pressed);
    }

  .Textarea-Field::-webkit-scrollbar-corner {
    background: transparent;
  }

  .Textarea-Field {
    border: none;
    display: flex;
    outline: none;
    font: var(--textarea-input-font);
    background-color: transparent;
    color: var(--textarea-text-color);
    -webkit-text-fill-color: var(--textarea-text-color);
    padding: 0 var(--textarea-gutter-x);
    inline-size: inherit;
    resize: none;
}

  .Textarea-Field::placeholder {
      opacity: 1;
      color: var(--color-content-base-tertiary);
    }

  .Textarea-Counter {
    float: right;
    -webkit-margin-start: var(--spacing-4x);
            margin-inline-start: var(--spacing-4x);
    color: var(--color-content-base-secondary);
  }

  .Textarea-Counter_disabled {
      color: var(--color-content-base-disabled);
    }

  .Textarea_expand_autoSize .Textarea-Body {
        resize: none;
      }

  .Textarea_expand_verticalResize .Textarea-Body {
        resize: vertical;
        overflow: hidden;
      }

  .Textarea_hasLabel .Textarea-Field::placeholder {
        opacity: 0;
      }

  .Textarea_hasLabel .Textarea-Field:focus::placeholder {
        opacity: 1;
      }

  .Textarea_hasLabel .Textarea-Body {
      padding: var(--textarea-input-padding);
    }

  .Textarea_fullWidth {
    inline-size: 100%;
  }

  .Textarea_size_2xs {
      --textarea-gutter-x: 12px;
      --textarea-input-block-size: 32px;
      --textarea-input-font: var(--typography-text-2xs-font);
      --textarea-input-padding: 8px 0 8px;
    }

  .Textarea_size_xs {
      --textarea-gutter-x: 12px;
      --textarea-input-block-size: 40px;
      --textarea-input-font: var(--typography-text-xs-font);
      --textarea-input-padding: 19px 0 4px;
    }

  .Textarea_size_s {
      --textarea-gutter-x: 16px;
      --textarea-input-block-size: 48px;
      --textarea-input-font: var(--typography-text-s-font);
      --textarea-input-padding: 21px 0 6px;
    }

  .Textarea_size_m {
      --textarea-gutter-x: 20px;
      --textarea-input-block-size: 56px;
      --textarea-input-font: var(--typography-text-m-font);
      --textarea-input-padding: 24px 0 6px;
    }

  .Textarea_size_l {
      --textarea-gutter-x: 24px;
      --textarea-input-block-size: 64px;
      --textarea-input-font: var(--typography-text-l-font);
      --textarea-input-padding: 26px 0 6px;
    }

  .Textarea:hover {
    --textarea-border-color: var(--color-border-base-main-hover);
  }

  .Textarea_focused,
  .Textarea_focused:hover {
    --textarea-border-width: var(--border-width-m);
    --textarea-background-color: var(--color-background-base-main);
    --textarea-border-color: var(--color-border-accent-default);
  }

  .Textarea_error,
  .Textarea_error.Textarea:hover,
  .Textarea_error.Textarea_focused,
  .Textarea_error.Textarea_focused:hover {
    --textarea-border-color: var(--color-border-error-default);
  }

  .Textarea_disabled {
    --textarea-border-color: var(--color-border-base-disabled);
    --textarea-background-color: var(--color-background-base-disabled);
    --textarea-text-color: var(--color-content-base-secondary);
    pointer-events: none;
    cursor: default;
  }
