.btn-set {
	flex-wrap: nowrap;
	-webkit-display: flex;
	display: flex;
	margin-left: .5px;
	margin-right: .5px;
	box-sizing: border-box;

	&.center {
		justify-content: center;
	}

	&.right {
		justify-content: end;
	}

	&.wrap {
		& > :is(a, span, input, label, button) {
			line-height: 1.3em;
			white-space: wrap;
			overflow: hidden;
			text-overflow: ellipsis;
		}
	}

	& > :is(a, span, input, label, button) {
		height: 28px;
		border: none;
		outline: none;
		display: flex;
		font-size: 1em;
		padding: 0px 10px;
		position: relative;
		margin-left: -.5px;
		margin-right: -.5px;
		white-space: nowrap;
		align-items: center;
		background-color: transparent;
		color: var(--root-font-color);
		transition: background-color var(--transition-speed) ease, color var(--transition-speed) ease;

		&.highlight {
			background-color: var(--bomtable-hover-color);
		}

		&.flex {
			flex: 1;
		}

		&:not(:disabled) {
			&:hover {
				z-index: 15;
				text-decoration: none;
				border-color: var(--input-hover_border-color);
			}

			&:focus {
				z-index: 16;
				border-color: var(--input-active_border-color);
			}

			&:active {
				z-index: 17;
				border-color: var(--input-active_border-color);
			}
		}

		&.standard,
		&.default {
			border: none;
			color: var(--root-link-color);
			background-color: transparent;
			cursor: pointer;

			&:hover {
				text-decoration: underline;
			}
		}
	}

	& > :is(input[type=button], button, a) {
		&:not(:disabled) {
			&:hover {
				text-decoration: none;
			}

			&:focus {
				outline: solid 2px var(--outline-border-color);
				outline-offset: 1px;
			}

			&:active {
				transform: translateY(0.08rem);
			}
		}
	}

	& > div {
		display: contents;
	}

	& > span {
		white-space: nowrap;
		color: var(--color-font);

		&.gap {
			background-color: transparent;
			border: none;
			flex: 1;
			box-shadow: none;
		}
	}

	& > label {
		height: 36px;
	}

	& > textarea {
		border: none;
		font-size: 1em;
		padding: 7px 6px;
		border-bottom: solid 2px var(--input_border-color);
		background-color: transparent;

		&.flex {
			flex: 1;
		}
	}

	& > input[type=text],
	& > input[type=password],
	& > input[type=date],
	& > input[type=number] {
		border-bottom: solid 2px var(--input_border-color);
	}

	& > button {
		padding: 0px 20px;
		border-color: transparent;
		color: var(--button-font-color);
		background-color: var(--button-bgcolor);
		display: inline-block;
	}

	& > a,
	& > input[type=button] {
		padding: 0px 15px;
		border: solid 1px var(--input_border-color);
		background-color: var(--input_background-color);
	}

	input[disabled],
	textarea[disabled],
	button[disabled] {
		background-color: var(--button_disabled-bgcolor) !important;
		color: var(--root-font-lightcolor) !important;

		&::after,
		&::before {
			color: var(--root-font-lightcolor) !important;
		}

		/* background-color: var(--button_disabled-bgcolor) !important;
		border-color: var(--static-border); */
	}
}

.btn-set > button,
.btn-set > :is(a, span, input, label, textarea),
.btn-set > span.slo-wrap {

	&:is(button):first-child,
	&.edge-left,
	& > button {
		border-top-left-radius: var(--input_border-radius);
		border-bottom-left-radius: var(--input_border-radius);
	}

	&:is(button):last-child,
	&.edge-right,
	& > button {
		border-top-right-radius: var(--input_border-radius);
		border-bottom-right-radius: var(--input_border-radius);
	}
}

.btn-set > a,
.btn-set > span,
.btn-set > button {
	&:disabled {
		color: rgba(125, 125, 125, .7) !important;
		background-color: var(--button_disabled-bgcolor) !important;
		pointer-events: none;
	}

	&.blue {
		border: none;
		background-color: var(--button-bgcolor);
		color: var(--button-font-color);

		&:not(:disabled):hover {
			background-color: var(--button_hover-bgcolor);
		}

		&:focus {
			background-color: var(--button_focus-bgcolor);
		}
	}

	&.red {
		border: none;
		background-color: var(--buttonred-bgcolor);
		color: var(--buttonred-font-color);

		&:not(:disabled):hover {
			background-color: var(--buttonred_hover-bgcolor);
		}

		&:focus {
			background-color: var(--buttonred_focus-bgcolor);
		}
	}

	&.green {
		border: none;
		background-color: var(--buttongreen-bgcolor);
		color: var(--buttongreen-font-color);

		&:not(:disabled):hover {
			background-color: var(--buttongreen_hover-bgcolor);
		}

		&:focus {
			background-color: var(--buttongreen_focus-bgcolor);
		}
	}

	&.standard,
	&.default {
		background-color: var(--input_background-color);
		border: solid 1px var(--input_border-color);
		padding-bottom: 2px;
		cursor: default;
		color: var(--root-font-color);

		&.error::before {
			color: var(--buttonred_focus-bgcolor) !important;
		}

		&::before {
			color: var(--root-link-color);
		}

		&:not(:disabled):hover {
			border-color: var(--input-hover_border-color);
			background-color: var(--input_background-color);
			color: var(--root-font-color);
		}

		&:focus {
			border-color: var(--input-hover_border-color);
			background-color: var(--input_background-color);
			color: var(--root-font-color);
		}
	}
}

.btn-set > :is(button, a, span):is(.success, .plus, .error, .search, .filter, .lock, .unlock, .save, .load, .print, .hourglass) {
	&::before {
		display: inline-block;
		align-content: center;
		font-family: glyphs;
		font-size: 1.1em;
		position: relative;
		top: 0px;
	}

	&:is(button)::before {
		top: 2px;
	}

	&.space::before,
	&.spacing::before {
		margin-right: 8px;
	}

	&.save::before {
		content: "\e977";
		color: rgb(0, 100, 181);
		font-size: 0.9em;
		vertical-align: top;
	}

	&.success::before {
		content: "\e900";
		color: rgb(30, 160, 40);
	}

	&.hourglass::before {
		content: "\e97f";
		color: rgb(220, 200, 30);
	}

	&.plus::before {
		content: "\e902";
		color: var(--root-link-color);
	}

	&.print::before {
		content: "\e970";
		color: var(--root-font-color);
	}

	&.error::before {
		content: "\e901";
		color: rgb(195, 45, 50);
	}

	&.lock::before {
		content: "\e982";
		color: rgb(150, 150, 150);
	}

	&.load::before {
		content: "\e995";
	}

	&.search::before {
		content: "\e904";
	}

	&.filter::before {
		content: "\e93c";
	}

	&.unlock::before {
		content: "\e983";
	}

	&:is(.red, .green, .blue)::before,
	:is(button:not(.standard))&::before {
		color: var(--button-font-color);
	}
}

.btn-set > input.pagination {
	font-family: glyphs;
	font-size: 1.1em
}

/* #endregion - Glyphs*/
.btn-set > label {
	position: relative;
	height: 28px;
	-webkit-touch-callout: none;
	-webkit-user-select: none;
	-khtml-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	user-select: none;
	border-left: solid 1px transparent !important;
	border-right: solid 1px transparent !important;

	&.disabled {
		color: var(--root-font-lightcolor) !important;
	}

	&:hover,
	&:has(input[type=checkbox]:focus) {
		background-color: var(--placeholder-bgcolor);
		z-index: 12 !important;
	}

	&:has(input[type=checkbox]:focus),
	&:focus,
	&:has(input[type=checkbox]:active),
	&:active {
		outline: solid 2px var(--outline-border-color);
		z-index: 17 !important;
	}

	&:has(input[type=checkbox]:active),
	&:active {
		transform: translateY(0.08rem);
	}

	> input[type=checkbox],
	> input[type=radio] {
		appearance: none;
		padding-right: 20px;
		outline: none;

		&::before {
			content: " ";
			display: block;
			position: absolute;
			border: solid 3px var(--input_border-color);
			border-radius: 10px;
			height: 10px;
			width: 10px;
			left: 10px;
			top: 6px;
			outline: none;
			transition: background-color var(--transition-speed) ease, color var(--transition-speed) ease;
		}

		&:hover::before {
			background-color: var(--bomtable-background-color);
			border-color: var(--input-hover_border-color);
		}

		&:disabled::before {
			border-color: var(--input_border-color) !important;
		}

		&:disabled::after {
			background-color: var(--input_border-color)
		}

		&::after {
			content: " ";
			border-radius: 10px;
			background-color: var(--root-link-color);
			position: absolute;
			left: 15px;
			top: 11px;
			width: 6px;
			height: 6px;
			transform: scale(0);
			transition: background-color var(--transition-speed) ease, color var(--transition-speed) ease, border-color var(--transition-speed) ease, transform var(--transition-speed) ease;
		}

		&:checked::before {
			border-color: var(--root-link-color);
		}

		&:checked::after {
			transform: scale(1);
		}
	}
}

.btn-set.small {

	& > a,
	& > input,
	& > span,
	& > label,
	& > div,
	& > textarea,
	& > button {
		padding: 0px 8px;
		height: 28px !important;
		vertical-align: middle;
	}

	& > label {
		height: 26px !important;
	}
}

input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
	/* -webkit-appearance: none;  */
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	margin: 0;
}

.slo-container {
	position: absolute;
	min-width: 100%;
	display: none;
	background-color: var(--slo-menu-background-color);
	margin-top: 2px;
	margin-bottom: 0px;
	color: var(--root-font-color);
	border: solid 1px var(--input_border-color);
	/* border-color: rgba(82, 168, 236, 1); */
	box-shadow: 0px 0px 8px rgba(50, 50, 50, 0.1);
	border-radius: var(--input_border-radius);
	transform: translateY(10px);
	opacity: 0;
	transition: transform .3s, opacity .3s;
	z-index: 99 !important;

	&.listvisibletop {
		transform: translateY(0px);
		opacity: 1;
		top: 100%;
		bottom: auto;
		z-index: 99 !important;
	}

	&.listvisiblebottom {
		transform: translateY(-5px);
		opacity: 1;
		top: auto;
		bottom: 100%;
	}

	& > div {
		display: block;
		border: none;
		padding: 12px 8px;
		cursor: pointer;
		margin: 3px;
		border-radius: var(--input_border-radius);
		background-color: var(--slo-menu-background-color);
		z-index: 99 !important;

		&:hover {
			background-color: var(--slo-menu-itemhover-background-color);
		}

		&.active {
			background-color: var(--slo-menu-itemactive-background-color);
		}

		> p {
			display: none;
		}

		> span {
			color: var(--root-font-lightcolor);
			display: block;
			padding-top: 8px;
		}
	}
}

.slo-wrap,
.btn-set > span.slo-wrap {
	display: inline-block;
	position: relative;
	background-color: transparent;
	padding: 0px;
	border: none;

	& > input[type=text],
	& > input[type=number],
	& > input[type=password],
	& > input[type=date] {
		height: 100%;
		position: relative;
		outline: none;
		border: none;
		border-radius: 0;
		/* var(--input_border-radius); */
		border-bottom: solid 2px var(--input_border-color);
		border-color: var(--input_border-color);
		transition: border 0s;
		width: 100%;
		color: var(--root-font-color);
		background-color: transparent;
		padding: 0px 10px;
		padding-right: 25px;
		font-size: 1em;
	}

	& > input[type=text]:not(:disabled):hover,
	& > input[type=number]:not(:disabled):hover,
	& > input[type=password]:not(:disabled):hover,
	& > input[type=date]:not(:disabled):hover {
		border-color: var(--input-hover_border-color);
		z-index: 12;
	}

	& > input[type=text]:not(:disabled):focus,
	& > input[type=number]:not(:disabled):focus,
	& > input[type=password]:not(:disabled):focus,
	& > input[type=date]:not(:disabled):focus {
		border-color: var(--input-active_border-color);
		/* -webkit-box-shadow: 0 0 4px rgba(82, 168, 236, .7);
	-moz-box-shadow: 0 0 4px rgba(82, 168, 236, .7);
	box-shadow: 0 0 4px rgba(82, 168, 236, .7); */
		z-index: 13;
	}

	& > input[type=text]:disabled,
	& > input[type=number]:disabled,
	& > input[type=password]:disabled,
	& > input[type=date]:disabled {
		background-color: var(--button_disabled-bgcolor);
	}

	&:after {
		font-family: "icomoon4";
		text-align: center;
		display: flex;
		align-items: center;
		position: absolute;
		pointer-events: none;
		height: 100%;
		content: " ";
		color: #fff;
		z-index: 13;
		margin: 0;
		padding: 0;
		top: 0px;
		right: 10px;
	}

	&.valid:after {
		content: "\EA10";
		font-size: 12px;
		color: dodgerblue;
	}

	&.unvalid:after {
		content: "\EA0F";
		font-size: 10px;
		color: crimson;
	}

	&.slo-select:after,
	&.valid.slo-select:after,
	&.unvalid.slo-select:after {
		font-family: "icomoon";
		content: "\e619";
		font-size: 20px;
		color: dodgerblue;
	}

	&.slo-select > input {
		-webkit-touch-callout: none;
		-webkit-user-select: none;
		-khtml-user-select: none;
		-moz-user-select: none;
		-ms-user-select: none;
		user-select: none;
		cursor: default;
	}
}

@media only screen and (max-width: 768px) {
	.btn-set {
		&.mediabond-buttonset {
			flex-wrap: wrap;
		}

		&.mediabond-buttonset > * {
			margin-bottom: 10px;
		}

		&.mediabond-buttonset > span.gap {
			display: none;
		}

		&.mediabond-buttonset > span.gap + * {
			margin-left: 0px;
		}

		& > input,
		& > a,
		& > span,
		& > button,
		& > div,
		& > label {
			height: 35px;
		}

		& > label {

			> input[type=checkbox],
			> input[type=radio] {
				&::before {
					top: 9px;
				}

				&::after {
					top: 14px;
				}
			}
		}
	}
}