div.ui-window-draggable {
	width: 50vmin;
	min-width: 20rem;
	min-height: 5rem;
	max-height: 85vh;
	max-width: 100%;
	position: absolute;
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	align-items: center;

	background-color: var(--window-background);
	color: var(--window-primary-color);

	/* design guide CRT */
	border-top: var(--window-primary-color) 4px solid;
	border-bottom: var(--window-primary-color) 4px solid;
	border-left: var(--window-primary-color) 2px solid;
	border-right: var(--window-primary-color) 2px solid;

	overflow: hidden;
}

div.ui-window-draggable.latest {
	z-index: 100;
}

div.ui-window-draggable.minimized {
	display: none;
}

div.ui-window-draggable.important {
	z-index: 1000;

	/* design guide CRT dark yellow */
	--window-primary-color: var(--window-warning-color);
}

div.ui-window-draggable.error {
	z-index: 2000;

	/* design guide CRT dark yellow */
	--window-primary-color: var(--window-error-color);
}

div.ui-window-draggable > .ui-window-titlebar {
	width: 100%;
	height: 2rem;
	display: flex;
	flex-direction: row;
	justify-content: flex-end;
	align-items: center;

	background-color: var(--window-background);
	color: var(--window-primary-color);

	/* design guide CRT */
	border-bottom: var(--window-primary-color) 4px solid;
	padding-left: 0.5rem;

	cursor: move;
	position: relative;
	user-select: none;
}

div.ui-window-draggable > .ui-window-titlebar > .ui-window-title {
	height: max-content;
	font-weight: bolder;
	overflow-x: hidden;

	margin-right: 1rem;
}

div.ui-window-draggable > .ui-window-titlebar > .ui-window-controls {
	width: 20%;
	min-width: 5rem;
	height: 100%;
	display: flex;
	flex-direction: row;
	justify-content: flex-end;
	align-items: center;

	gap: 0rem;

	margin-left: auto;
}

.ui-window-controls > .ui-window-control {
	height: 100%;
	display: flex;
	flex-direction: row;
	justify-content: center;
	align-items: center;

	/* design guide CRT */
	background-color: var(--window-background);
	color: var(--window-primary-color);

	border: none;
	outline: none;
}

.ui-window-control:hover {
	cursor: pointer;

	/* design guide CRT */
	background-color: var(--window-primary-color);
	color: var(--window-secondary-color);

	transition: 0.2s;
}

div.ui-window-draggable > .ui-window-content {
	width: 100%;
	height: 100%;
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	align-items: flex-start;

	/* padding: 0.5rem; */

	gap: 0.5rem;

	overflow: hidden;
}

.ui-window-content > div.ui-window-row {
	width: 100%;
	height: max-content;
	display: flex;
	flex-direction: row;
	justify-content: flex-start;
	align-items: flex-start;

	/* padding: 0.5rem; */

	gap: 1rem;

	flex-wrap: wrap;

	overflow: hidden;
}

.ui-window-content > p.ui-window-text {
	width: 100%;
	height: max-content;
	display: inline-block;

	border: none;
	outline: none;
	padding: 0;
	margin: 0;
}

p {
	margin: 0;
	padding: 0;
}

.ui-window-content > .ui-window-textarea,
.ui-window-content > .ui-window-iframe {
	width: 100%;
	height: 100%;
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	align-items: flex-start;

	/* design guide CRT */
	background-color: var(--window-background);
	color: var(--window-primary-color);
	font-family: "JetBrains Mono", monospace;
	font-size: 1rem;

	text-transform: none;

	border: none;
	outline: none;
	padding: 0;
	margin: 0;
	resize: none;
}

div.ui-window-draggable > .ui-window-content > .ui-window-buttons:last-child {
	width: 100%;
	display: flex;
	flex-direction: row;
	justify-content: flex-start;
	align-items: center;

	margin-top: auto;
}

.ui-window-buttons {
	display: flex;
	flex-direction: row;
	justify-content: flex-start;
	align-items: center;
	width: 100%;
	height: max-content;
	flex-wrap: wrap;
	gap: 0.5rem 0.5rem;
}

.ui-window-button {
	display: flex;
	flex-direction: row;
	justify-content: center;
	align-items: center;
	width: max-content;
	height: max-content;

	background-color: var(--window-primary-color);
	color: var(--window-secondary-color);
	font-weight: bolder;

	text-transform: uppercase;

	/* design guide CRT */
	border-top: var(--window-primary-color) 4px solid;
	border-bottom: var(--window-primary-color) 4px solid;
	border-left: var(--window-primary-color) 2px solid;
	border-right: var(--window-primary-color) 2px solid;

	padding: 0.2rem 0.5rem;
	flex: 1;
}

.ui-window-button:hover {
	cursor: pointer;

	/* design guide CRT */
	background-color: var(--window-secondary-color);
	color: var(--window-primary-color);

	transition: 0.2s;
}

.ui-window-input {
	width: 100%;
	height: 2rem;
	display: flex;
	flex-direction: row;
	justify-content: flex-start;
	align-items: center;

	background-color: var(--window-secondary-color);
	color: var(--window-primary-color);

	/* design guide CRT */
	border-top: var(--window-primary-color) 4px solid;
	border-bottom: var(--window-primary-color) 4px solid;
	border-left: var(--window-primary-color) 2px solid;
	border-right: var(--window-primary-color) 2px solid;

	text-transform: uppercase;
	font-family: "JetBrains Mono", monospace;

	padding: 0.2rem;
	margin: 0;
	outline: none;
	font-size: 1rem;
}

::placeholder {
	color: var(--window-primary-color);
	opacity: 0.5;
}

.ui-window-input:hover {
	cursor: text;
}

.ui-window-input.terminal {
	border: none;
	padding: none;
	padding-left: 0.5rem;
	background-color: var(--window-transparent);
}

.ui-window-terminal-output {
	width: 100%;
	height: 100%;
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	align-items: flex-start;

	/* design guide CRT */
	background-color: var(--window-transparent);
	color: var(--window-primary-color);
	font-size: 1rem;

	border: none;
	outline: none;
	padding: 0;
	margin: 0;
	resize: none;
	overflow-y: scroll;
}

.ui-window-group {
	display: flex;
	flex-direction: row;
	justify-content: flex-start;
	align-items: center;
	width: 100%;
	height: max-content;
}

.ui-window-group.terminal {
	margin-top: auto;
	color: var(--window-primary-color);
}

.ui-window-jsdos-wrapper {
	width: 100%;
	height: 100%;
	position: relative;
}

.jsdos-iframe {
	position: absolute;
	top: 0;
	left: -35px;
}
