label.select {
	display: block;
	position: relative;
	margin-bottom: 0.6em;
	cursor: pointer;

	box-sizing: content-box;
}
label.select .arrow {
	z-index: 10;
	position: absolute;
	top: calc(50% - 0.6em);
	right: 0;
	width: 1.2em;
	height: 1.2em;
	margin-right: 0.2em;

	cursor: pointer;
}
label.select .arrow:before {
	content: "";
	position: absolute;
	width: 40%;
	height: 40%;;
	left: 20%;
	top: 40%;

	border-style: solid;
	border-color: #8c8585;
	border-color: var(--maincolor-light-hsl);
	border-width: 1px 1px 0 0;

	-webkit-transform-origin: 75% 25%;
	-moz-transform-origin: 75% 25%;
	-ms-transform-origin: 75% 25%;
	transform-origin: 75% 25%;

	-webkit-transform: rotate(135deg);
	-moz-transform: rotate(135deg);
	-ms-transform: rotate(135deg);
	-o-transform: rotate(135deg);
	transform: rotate(135deg);
}

label.select > .placeholder {
	z-index: 1;
	position: absolute;
	left: 0;
	top: 0;

	margin-left: 0.6em;
	margin-top: 0.6em;
	color: var(--maincolor-light-hsl);
	font-size: 1em;
	cursor: pointer;

	-webkit-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	user-select: none;

	-webkit-transition: all 0.1s;
	-moz-transition: all 0.1s;
	-o-transition: all 0.1s;
	transition: all 0.1s;
}
label.select:not(.empty) > .placeholder {
	margin-left: 0.3em;
	margin-top: 0.05em;
	font-size: 0.7em;
}

label.select > input.select {
	z-index: 0;
	position: absolute;
	left: 0;
	top: 0;
	width: 0 !important;
	height: 0 !important;
	opacity: 0;

	padding: 0 !important;
	margin: 0 !important;

	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
}
label.select .select-div {
	z-index: 2;
	width: 100%;
	min-width: 6em;
	min-height: 2.2em;
	line-height: 1.2em;
	padding: 0.4em;
	padding-left: 0.6em;
	padding-right: 1.6em;
	box-sizing: border-box;

	cursor: pointer;
	background: #fff;

	font-size: 1em;
	text-align: left;
	color: initial;
	
	border: 1px solid #8c8585;
	border: 1px solid var(--maincolor-light-hsl);
}
label.select.placeholder .select-div {
	min-height: 2.6em;
	padding-top: 1em;
	padding-bottom: 0.2em;
}
label.select.empty .select-div {
	color: var(--maincolor-light-hsl);
}
label.select.placeholder.empty .select-div {
	color: transparent !important;
}
label.select:hover .select-div,
label.select:focus .select-div,
label.select.open .select-div {
	border: 1px solid #363131;
	border: 1px solid var(--maincolor-dark-hsl);
}

label.select.no-overflow .select-div {
	height: 2.2em;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
label.select.no-overflow.placeholder .select-div {
	height: 2.6em;
}



label.select .dropdown {
	z-index: 100;
	display: none;
	position: absolute;
	width: 100%;
	left: 0;
	top: calc(100% - 1px);
	box-sizing: border-box;
	overflow-y: auto;

	font-size: 1em;
	text-align: left;
	background-color: #fff;
	border: 1px solid #363131;
	border: 1px solid var(--maincolor-dark-hsl);
	border-top-color: var(--maincolor-light-hsl);
}

label.select .dropdown > .textfield {
	margin: 0;
	margin-bottom: 0.2em;
}
label.select .dropdown > .textfield > input {
	padding-bottom: 0.2em;
	padding-top: 0.8em;

	border: none;
	border-bottom: 1px solid var(--text-light-hsl);
}
label.select .dropdown > .textfield > .placeholder.small,
label.select .dropdown > .textfield > input:focus ~ .placeholder {
	margin-top: 0.1em;
}

label.select .dropdown .unset-option,
label.select .dropdown .option {
	position: relative;
	padding: 0.2em;
	padding-left: 0.6em;
	box-sizing: border-box;
	text-align: left;
	color: initial;
}
label.select .dropdown .unset-option {
	font-style: italic;
	color: var(--maincolor-light-hsl);
}
label.select .dropdown .option:hover,
label.select .dropdown .option.highlighted,
label.select .dropdown .unset-option:hover,
label.select .dropdown .unset-option.highlighted {
	background-color: var(--text-light-hsl);
}
label.select .dropdown .option.selected.highlighted,
label.select .dropdown .option.selected:hover {
	background-color: hsl(var(--text), 65%);
}
label.select .dropdown .unset-option.hidden,
label.select .dropdown .option.hidden {
	display: none;
}

label.select .dropdown .option.selected {
	background-color: var(--text-highlight-hsl);
	color: #fff;
}
label.select .dropdown .option.highlighted,
label.select .dropdown .unset-option.highlighted {
	border: 1px solid var(--maincolor-light-hsl);
	margin: 0.2em;
}
label.select .dropdown .option.selected.highlighted {
	border: 1px solid var(--maincolor-hsl);
	margin: 0.2em;
}


label.select .dropdown .option.user-added {
	padding-right: 1.8em;
}
label.select .dropdown .option.user-added .remove {
	display: block;
	position: absolute;
	top: 50%;
	right: 0.4em;
	width: 1em;
	height: 1em;

	border-radius: 0.2em;
	background-color: hsl(var(--maincolor), 80%);
	transform: translateY(-50%);
}
label.select .dropdown .option.user-added .remove:hover {
	box-shadow: 0 0 3px #333;
}
label.select .dropdown .option.user-added .remove:before,
label.select .dropdown .option.user-added .remove:after {
	content: "";
	display: block;
	position: absolute;
	width: 2px;
	height: 80%;
	top: 10%;
	left: calc(50% - 1px);

	border-radius: 1px;
	background-color: var(--text-hsl);
	transform: rotate(45deg);
}
label.select .dropdown .option.user-added .remove:after {
	transform: rotate(-45deg);
}


label.select .dropdown .option-group {
	padding-left: 0.6em;
	padding-top: 0.2em;
	margin-top: 0.2em;
	border-top: 1px solid var(--text-light-hsl);
}
label.select .dropdown .option-group:first-child {
	margin-top: 0;
	border-top: none;
}




label.select .select-div span {
	display: inline-block;
	margin-right: 0.3em;
	margin-bottom: 0.3em;
	padding: 0em 0.3em;
	border-radius: 0.2em;
	
	font-size: 0.75em;
	line-height: 1.6em;
	color: #fff;
	background-color: var(--text-highlight-hsl);
}


label.select.open > input:not([disabled]) ~ .dropdown {
	display: block;
}

label.select .dropdown {
	max-height: calc(5 * 1.8em + 2px);
}
label.select.max-2 .dropdown {
	max-height: calc(2 * 1.8em + 2px);
}
label.select.max-3 .dropdown {
	max-height: calc(3 * 1.8em + 2px);
}
label.select.max-10 .dropdown {
	max-height: calc(10 * 1.8em + 2px);
}

label.select.filterable .dropdown {
	max-height: calc(5 * 1.8em + 2em + 2px);
}
label.select.filterable.max-2 .dropdown {
	max-height: calc(2 * 1.8em + 2em + 2px);
}
label.select.filterable.max-3 .dropdown {
	max-height: calc(3 * 1.8em + 2em + 2px);
}
label.select.filterable.max-10 .dropdown {
	max-height: calc(10 * 1.8em + 2em + 2px);
}




label.select.open .arrow:before {
	-webkit-transform: rotate(-45deg);
	-moz-transform: rotate(-45deg);
	-ms-transform: rotate(-45deg);
	-o-transform: rotate(-45deg);
	transform: rotate(-45deg);
}


label.select > input[disabled] ~ .select-div {
	color: #f0ede5;
	color: var(--text-light-hsl);
	
	border-color: #f0ede5;
	border-color: var(--text-light-hsl);
	
	cursor: default;
}
label.select > input[disabled] ~ .arrow {
	cursor: default;
}
label.select > input[disabled] ~ .arrow:before {
	border-color: #f0ede5;
	border-color: var(--text-light-hsl);
}
label.select > input[disabled] ~ .placeholder {
	color: #f0ede5;
	color: var(--text-light-hsl);
	
	cursor: default;
}
