[data-theme="dark"] {
  --__ac-textarea-text: var(--a-text-on-inverted);
  --__ac-textarea-bg: var(--a-transparent);
  --__ac-textarea-border: var(--a-border-on-inverted);
  --__ac-textarea-hover-border: var(--a-blue-200);
  --__ac-textarea-placeholder: var(--a-gray-500);
  --__ac-textarea-error-border: var(--a-red-300);
  --__ac-textarea-counter-text: var(--a-gray-300);
  --__ac-textarea-counter-error-text: var(--a-red-300);
}

[data-theme="light"] {
  --__ac-textarea-text: initial;
  --__ac-textarea-bg: initial;
  --__ac-textarea-border: initial;
  --__ac-textarea-hover-border: initial;
  --__ac-textarea-placeholder: initial;
  --__ac-textarea-error-border: initial;
  --__ac-textarea-counter-text: initial;
  --__ac-textarea-counter-error-text: initial;
}

.navds-textarea__input {
  /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */
  height: var(--__ac-textarea-height);
  appearance: none;
  padding: var(--a-spacing-2);
  background-color: var(--ac-textarea-bg, var(--__ac-textarea-bg, var(--a-surface-default)));
  border-radius: var(--a-border-radius-medium);
  border: 1px solid var(--ac-textarea-border, var(--__ac-textarea-border, var(--a-border-default)));
  resize: none;
  width: 100%;
  display: block;
  color: var(--ac-textarea-text, var(--__ac-textarea-text, var(--a-text-default)));
}

.navds-textarea__input::placeholder {
  color: var(--ac-textarea-placeholder, var(--__ac-textarea-placeholder, var(--a-text-subtle)));
}

.navds-textarea__input:hover {
  border-color: var(--ac-textarea-hover-border, var(--__ac-textarea-hover-border, var(--a-border-action-hover)));
}

.navds-textarea__input:focus-visible {
  outline: 2px solid transparent;
  outline-offset: 2px;
  box-shadow: var(--a-shadow-focus);
  border-color: var(--ac-textarea-active-border, var(--a-border-action-selected));
}

@supports not selector(:focus-visible) {
  .navds-textarea__input:focus {
    outline: 2px solid transparent;
    outline-offset: 2px;
    box-shadow: var(--a-shadow-focus);
  }
}

.navds-form-field--small .navds-textarea__input {
  padding: var(--a-spacing-1-alt);
}

.navds-textarea__counter {
  margin-top: -0.375rem;
  color: var(--ac-textarea-counter-text, var(--__ac-textarea-counter-text, var(--a-text-subtle)));
}

.navds-textarea__counter--error {
  color: var(--ac-textarea-counter-error-text, var(--__ac-textarea-counter-error-text, var(--a-text-danger)));
}

.navds-textarea__sr-counter {
  display: none;
}

.navds-textarea__input:focus ~ .navds-textarea__sr-counter {
  display: initial;
}

.navds-textarea--resize-both .navds-textarea__input {
  resize: both;
  border-end-end-radius: 0;
}

.navds-textarea--resize-horizontal .navds-textarea__input {
  resize: horizontal;
  border-end-end-radius: 0;
}

.navds-textarea--resize-vertical .navds-textarea__input {
  resize: vertical;
  border-end-end-radius: 0;
}

.navds-textarea--autoscrollbar,
.navds-textarea--autoscrollbar .navds-textarea__wrapper {
  display: flex;
  flex-direction: column;
  overflow: hidden;

  /* Makes the box-shadow visible even though overflow is hidden: */
  padding: 3px;
  margin: -3px;
}

.navds-textarea--autoscrollbar .navds-textarea__input {
  scrollbar-gutter: stable; /* Needed to prevent scrollbar from appearing too early */
}

/**
  Error handling
*/
.navds-textarea--error .navds-textarea__input:not(:hover, :disabled) {
  box-shadow: 0 0 0 1px var(--ac-textarea-error-border, var(--__ac-textarea-error-border, var(--a-border-danger)));
  border-color: var(--ac-textarea-error-border, var(--__ac-textarea-error-border, var(--a-border-danger)));
}

.navds-textarea--error .navds-textarea__input:focus-visible {
  box-shadow: var(--a-shadow-focus);
}

.navds-textarea__input:disabled {
  background-color: var(--ac-textarea-bg, var(--__ac-textarea-bg, var(--a-surface-default)));
  border-color: var(--ac-textarea-border, var(--__ac-textarea-border, var(--a-border-default)));
  box-shadow: none;
  cursor: not-allowed;
}

.navds-textarea--readonly .navds-textarea__input {
  background-color: var(--a-surface-subtle);
  border-color: var(--a-border-subtle);
  cursor: default;
}

@media (forced-colors: active) {
  .navds-textarea__input {
    background-color: field;
    color: fieldtext;
  }
}
