* {
	user-select: none;
	-webkit-touch-callout: none;
	-webkit-user-select: none;
}

html,
body {
	margin: 0;
	padding: 0;
	min-height: 100vh;
}

td,
th {
	vertical-align: middle;
	white-space: nowrap;
}

section.transition_form:not(.current) {
	display: none;
}

.btn {
	box-shadow: 1px 1px 2px rgba(255, 255, 255, .5) inset, -1px -1px 2px rgba(0, 0, 0, .2) inset;
	padding: .5em 1em;
}

#alert_area {
	transition: all .5s cubic-bezier(0.25, 1, 0.5, 1);
	transform: translateY(-150%);
	opacity: 0;
	z-index: 1;
	pointer-events: none;
}

#alert_area.show {
	transform: translateY(0%);
	opacity: 1;
}

.alert {
	margin: .5em auto;
}

.alert:not(.show) {
	position: relative;
	top: -50%;
	transition: top 1s ease;
}

#toast_area .toast {
	transform: translateY(100%);
	transition: all .5s cubic-bezier(0.25, 1, 0.5, 1);
}

#toast_area .toast:not(.show) {
	display: block;
	opacity: 0;
	transform: translate(100%, 100%);
}

label:has(:disabled) {
	color: #c0c0c0;
}

label[data-validate] {
	position: relative;
}

label.invalid[data-validate]:after {
	content: attr(data-validate);
	display: inline-block;
	position: absolute;
	left: 0;
	top: 110%;
	white-space: nowrap;
	font-size: .6em;
	color: white;
	padding: .4em;
	background-color: #ff6060;
	border-radius: .4em;
	box-shadow: 1px 1px 4px rgba(0, 0, 0, .4);
}

.uploaded_image {
	width: 90%;
	margin-top: 1em;
	border-radius: .5em;
	box-shadow: 6px 6px 12px rgba(0, 0, 0, .5);
}

.dtime {
	flex-grow: 0 !important;
	width: 6em !important;
}

#parts {
	display: none;
}

.input-group {
	flex-wrap: nowrap;
}