fieldset .input-text label.abs {
	position: static;
	opacity: 1;
	pointer-events: auto;
	transform: none;
	margin-block-end: .35em;
	font-size: var(--fnt-t-nt-s);
	font-weight: var(--fnt-t-4-w);
}

fieldset .input-text :is(input, textarea)::placeholder {
	color: transparent;
}

fieldset .input-text label.abs:has(+ :required)::after {
	content: " *";
}


.wr-stacked {

	/* The .abs floating label is suppressed inside .ctc-frm; these prompts are
	   sentence-length and sit above their control, so they must stay visible. */
	> label {
		opacity: 1;
		pointer-events: auto;
		position: static;
	}
}

.wr-file {

	input[type='file'] {
		width: 100%;
		cursor: pointer;
	}

	/* The browser's own button, brought in line with the palette. */
	input[type='file']::file-selector-button {
		margin-right: 1em;
		padding: 0.6em 1.2em;
		border: var(--frm-bdr-w) var(--frm-bdr-stl) currentColor;
		border-radius: var(--frm-bdr-rds);
		background: none;
		color: inherit;
		font: inherit;
		cursor: pointer;
		transition: background-color var(--g-trn-sp) var(--g-trn-tf);
	}

	input[type='file']:is(:hover, :focus-visible)::file-selector-button {
		background-color: hsl(from currentColor h s l / 0.12);
	}
}
