/* Hallmark · component: textarea · genre: modern-minimal · theme: monoline/ui */
@layer theme, base, components, utilities;

@layer components {
	.ml-textarea {
		display: block;
		inline-size: 100%;
		min-block-size: var(--ml-space-24);
		border: var(--border-thin) solid var(--border-strong);
		border-radius: var(--radius-md);
		background: var(--surface);
		color: var(--text-primary);
		font-family: var(--font-sans);
		font-size: var(--text-sm);
		line-height: var(--leading-relaxed);
		outline: none;
		transition:
			background-color var(--duration-micro) var(--ease-out),
			border-color var(--duration-micro) var(--ease-out);
	}

	.ml-textarea[data-size="sm"] {
		min-block-size: var(--ml-space-20);
		padding: var(--ml-space-2) var(--ml-space-2-5);
		font-size: var(--text-xs);
	}
	.ml-textarea[data-size="md"] {
		padding: var(--ml-space-2-5) var(--ml-space-3);
	}
	.ml-textarea[data-size="lg"] {
		min-block-size: var(--ml-space-32);
		padding: var(--ml-space-3) var(--ml-space-3-5);
		font-size: var(--text-base);
	}
	.ml-textarea[data-resize="none"] {
		resize: none;
	}
	.ml-textarea[data-resize="vertical"] {
		resize: vertical;
	}
	.ml-textarea[data-resize="both"] {
		resize: both;
	}
	.ml-textarea::placeholder {
		color: var(--text-muted);
	}
	.ml-textarea:hover:not(:disabled) {
		border-color: var(--accent);
	}
	.ml-textarea:focus-visible {
		border-color: var(--accent);
		background: var(--surface-2);
		box-shadow: var(--focus-ring);
	}
	.ml-textarea[aria-invalid="true"] {
		border-color: var(--destructive);
	}
	.ml-textarea[aria-invalid="true"]:focus-visible {
		box-shadow: 0 0 0 3px
			color-mix(in oklch, var(--destructive) 20%, transparent);
	}
	.ml-textarea:disabled {
		cursor: not-allowed;
		opacity: 0.48;
		resize: none;
	}
	.ml-textarea:read-only:not(:disabled) {
		background: var(--surface-2);
		color: var(--text-secondary);
	}
}
