/* Terminal geometry is explicit in the dataset, independent of this viewport. */
.uictrl_Terminal {
	display: flex;
	flex-direction: column;
	min-width: 0;
	min-height: 80px;
	height: 480px;
	overflow: hidden;
	background: var(--color_Grayscale_80);
	color: var(--color_SolidText);
	font-family: var(--typeface_Code);
	font-size: 11pt;
	line-height: 20px;
}
.uictrl_TerminalViewport {
	flex: 1 1 auto;
	min-height: 0;
	overflow: auto;
	overflow-anchor: none;
	font-variant-ligatures: none;
}
.uictrl_TerminalRows { position: relative; }
.uictrl_TerminalRow { position: absolute; height: 20px; white-space: pre; }
.uictrl_TerminalRow span { display: inline-block; vertical-align: top; }
.uictrl_TerminalCursor { position: absolute; width: 1ch; height: 20px; background: currentColor; pointer-events: none; }
.uictrl_TerminalStatus { padding: 8px; white-space: pre-wrap; }
.uictrl_TerminalStatus button { margin-left: 12px; }
.uictrl_TerminalStatus[hidden], .uictrl_TerminalCursor[hidden] { display: none; }
.uictrl_TerminalBlink { animation: terminal-blink 1s step-end infinite; }
@keyframes terminal-blink { 50% { color: transparent; } }
@media (prefers-reduced-motion: reduce) { .uictrl_TerminalBlink { animation: none; } }

/* The local draft scrolls with output; row patches move it without replacing it. */
.uictrl_TerminalInputArea { position: absolute; left: 0; width: 100%; }
.uictrl_TerminalInput {
	display: flex;
	gap: 0;
	margin: 0;
	padding: 0;
	font: inherit;
}
.uictrl_TerminalInput span { white-space: pre-wrap; }
.uictrl_TerminalInput input {
	flex: 1 1 auto;
	min-width: 0;
	border: 0;
	outline: none;
	padding: 0;
	background: transparent;
	color: inherit;
	font: inherit;
	caret-shape: block;
}
.uictrl_TerminalInputMessage { padding: 4px; color: #ffb3b3; }
.uictrl_TerminalInputArea[hidden], .uictrl_TerminalInput[hidden], .uictrl_TerminalInputMessage[hidden] { display: none; }
