:root {
	--form-element-width: 150px;
	--form-element-height: 28px;
}

select, input, textarea, .inputLike {
	margin: 5px;
	border: 1px solid var(--color-primary);
	outline: none;
	transition: background-color 300ms, color 300ms, border-color 300ms;
	background-color: var(--color-inside-surface);
	
	&:focus {
		background-color: var(--color-primary-light);
		border-color: var(--color-primary-dark);
		color: var(--color-primary-dark);
	}
	
	&.warn {
		border-color: red;
	}
}
input[type="url"] {
	min-width: 300px;
	height: 18px;
	font-size: 0.7em;
}

label, .labelLike {
	display: inline-flex;
	flex-direction: column;
	align-items: start;
	gap: 0;
	padding: 5px 0;
	
	&.important {
		> small:first-child {
			color: red;
		}
		input, .inputLike {
			border-color: red;
		}
	}
	
	> small:first-child {
		display: block;
		z-index: 1;
		pointer-events: none;
		margin-bottom: -16px;
		transform: translateY(-6px);
		padding: 0 4px;
		color: var(--color-primary);
		background-color: var(--color-inside-surface);
		border-bottom-right-radius: 5px;
	}
	> small:last-child {
		margin: -3px 0 10px 5px;
		font-size: x-small;
		color: gray;
	}
	
	pre, span {
		line-height: 16px;
		padding: 5px;
		
		&.allowWrap {
			white-space: pre-wrap;
		}
	}
	
	.fullLabelWidth {
		align-self: stretch;
	}
}

input {
	accent-color: var(--color-primary-dark);
	width: var(--form-element-width);
	padding: 5px;
}
input[type="file"] {
	width: unset;
	min-width: unset;
}
input[type="checkbox"], input[type="radio"] {
	margin: 15px 0 15px 5px;
	width: unset;
}
.inputLike {
	min-width: calc(var(--form-element-width) + 10px); /*10px for padding*/
	min-height: var(--form-element-height);
	margin: 5px;
	
	select, input, textarea {
		width: unset;
		min-width: unset;
		border: none;
		margin: 0;
		flex: 1 1 auto;
	}
	
	small {
		margin-left: 5px;
	}
}

select {
	min-width: 161px;
	padding: 5px;
}

textarea {
	width: 150px;
	min-height: 100px;
	padding: 5px;
}

button, input[type="submit"] {
	width: unset;
	min-width: unset;
	padding: 5px;
	margin: -1px 1px 1px -1px;
	cursor: pointer;
	border-radius: 10px;
	box-shadow: 1px 1px 1px var(--color-shadow);
	
	border: 1px solid white;
	background-color: var(--color-primary);
	color: white;
	
	&:hover {
		background-color: var(--color-primary-dark);
	}
	&:active {
		margin: 0;
		box-shadow: unset;
	}
	&[disabled] {
		background-color: lightgray;
		color: white;
		cursor: unset;
	}
}

form {
	padding: 5px;
}