.modula-ui-text-input {
	display: flex;
	flex-direction: column;
	gap: 8px;
	width: 100%;
}

.modula-ui-text-input__field {
	box-sizing: border-box;
	display: block;
	width: 100%;
	/* Match Select / style-guide 34px; !important beats WP admin input height. */
	height: 34px !important;
	min-height: 34px !important;
	max-height: 34px !important;
	margin: 0;
	padding: 0 12px !important;
	line-height: 32px !important;
	/* !important: WP admin forces white inputs; honor host --mod-ui-* (light/dark). */
	border: 1px solid var(--mod-ui-line) !important;
	border-radius: 0 !important;
	background: var(--mod-ui-surface) !important;
	color: var(--mod-ui-ink) !important;
	font-family: var(--mod-ui-font-ui, inherit) !important;
	font-size: 13px !important;
	font-weight: 500 !important;
	box-shadow: none !important;

	&::placeholder {
		color: var(--mod-ui-ink-3);
	}

	&:disabled {
		opacity: 0.45;
		cursor: not-allowed;
	}

	&:hover:not(:disabled) {
		border-color: var(--mod-ui-ink-3) !important;
	}

	&:focus {
		outline: none !important;
		border-color: var(--mod-ui-accent) !important;
		box-shadow: 0 0 0 3px var(--mod-ui-accent-soft, transparent) !important;
	}

	&[type='number'] {
		-moz-appearance: textfield;
		appearance: textfield;

		&::-webkit-outer-spin-button,
		&::-webkit-inner-spin-button {
			-webkit-appearance: none;
			margin: 0;
		}
	}
}

.modula-ui-text-input__help {
	margin: 0;
	font-size: 12px;
	line-height: 1.5;
	color: var(--mod-ui-ink-3);
}