:host {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  box-sizing: border-box;
  font-family: var(--font--pattern, Arial, sans-serif);
  font-size: var(--font-size--default, 14px);
  color: var(--color--ocean-green-1000, #00281D);
  border: none;
  padding: 0;

  /* public */
  --ez-classic-text-area--label-color: var(--color--ocean-green-1000, #00281D);
  --ez-classic-text-area--border-color-default: var(--color--gray-200, #D2D2D3);
  --ez-classic-text-area--border-color-focus: var(--color--gray-300, #A4A5A7);
  --ez-classic-text-area--border-color-success: var(--color--green-600, #157A00);
  --ez-classic-text-area--border-color-error: var(--color--red-600, #BD0025);
  --ez-classic-text-area--border-color-warning: var(--color--yellow-600, #EFB103);
  --ez-classic-text-area--background-color: var(--color--gray-70, #FFFFFF);
  --ez-classic-text-area--background-color-disabled: var(--color--gray-90, #EAEAEA);
  --ez-classic-text-area--text-color: var(--color--ocean-green-1000, #00281D);
  --ez-classic-text-area--placeholder-color: #bdbdbd;
  --ez-classic-text-area--icon-color: var(--color--gray-400, #77777A);
  --ez-classic-text-area--helptext-color: var(--color--ocean-green-1000, #00281D);
}

.text-area-container {
  display: flex;
  flex-direction: row;
  align-items: start;
  width: 100%;
  border: none;
  border-radius: var(--border--radius-8, 8px);
  padding: var(--space--16, 16px);
  box-sizing: border-box;
  gap: var(--space--10, 10px);
  margin: var(--space--4, 4px) var(--space--2, 2px);
  transition: box-shadow 0.2s cubic-bezier(0.4, 0, 0.2, 1);
  resize: vertical;
  overflow: auto;

  /* public */
  background-color: var(--ez-classic-text-area--background-color);
}

.text-area-container,
.text-area-container[data-state="default"] {
  box-shadow: 0 0 0 1px var(--ez-classic-text-area--border-color-default);
}

.text-area-container[data-state="success"] {
  box-shadow: 0 0 0 var(--space--2, 2px) var(--ez-classic-text-area--border-color-success);
}

.text-area-container[data-state="error"] {
  box-shadow: 0 0 0 var(--space--2, 2px) var(--ez-classic-text-area--border-color-error);
}

.text-area-container[data-state="warning"] {
  box-shadow: 0 0 0 var(--space--2, 2px) var(--ez-classic-text-area--border-color-warning);
}

.text-area-container:focus-within {
  box-shadow: 0 0 0 var(--space--2, 2px) var(--ez-classic-text-area--border-color-focus);
}

ez-icon {
  min-width: var(--space--24, 24px);
  color: var(--ez-classic-text-area--icon-color);
}

textarea {
  flex: 1;
  border: none;
  outline: none;
  background: transparent;
  height: 100%;
  width: 100%;
  padding: 0;
  font-family: var(--font--pattern, Arial, sans-serif);
  font-size: var(--font-size--default, 14px);
  color: var(--color--ocean-green-1000, #00281D);
  text-overflow: ellipsis;
  min-height: calc(var(--ez-classic-text-area--min-height) - var(--space--32, 32px));
  resize: none;
  scrollbar-width: thin;

  /* public */
  color: var(--ez-classic-text-area--text-color);
}

.text-area-container[data-disabled="true"] {
  cursor: not-allowed;

  /* public */
  background: var(--ez-classic-text-area--background-color-disabled);
  border-color: var(--ez-classic-text-area--border-color-default);
}

.text-area-container[data-disabled="true"] > *{
  cursor: not-allowed;
}

@keyframes ez-helptext-fadein {
  from {
    opacity: 0;
    transform: translateY(-4px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

span {
  font-size: var(--font-size--xsmall, 10px);
  line-height: var(--line-height--16, 16px);
  overflow: hidden;
  text-overflow: ellipsis;
  animation: ez-helptext-fadein 0.3s ease;

  /* public */
  color: var(--ez-classic-text-area--helptext-color);
}

label {
  display: block;
  width: 100%;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  line-height: var(--line-height--20, 20px);
  /* public */
  color: var(--ez-classic-text-area--label-color);
}

.icon-clickable {
  cursor: pointer;
}

/* Adicionar estados de resize baseados na prop */
.text-area-container[data-resize="none"] {
  resize: none;
}

.text-area-container[data-resize="both"] {
  resize: both;
}

.text-area-container[data-resize="horizontal"] {
  resize: horizontal;
}

.text-area-container[data-resize="vertical"] {
  resize: vertical;
}

.text-area-container::-webkit-resizer {
  display: none;
}

.text-area-container::-moz-resizer {
  display: none;
}

.text-area-container:not([data-resize="none"]) {
  position: relative;
}

.text-area-container:not([data-resize="none"])::after {
  content: '';
  position: absolute;
  bottom: var(--space--2, 2px);
  right: var(--space--2, 2px);
  width: var(--space--10, 10px);
  height: var(--space--10, 10px);
  background: linear-gradient(135deg, transparent 0% 50%, var(--ez-classic-text-area--border-color-default) 50% 58%, transparent 58% 70%, var(--ez-classic-text-area--border-color-default) 70% 78%, transparent 78% 100%);
  pointer-events: none;
}
