.synth {
	display: flex;
	flex-direction: column;
	color: #333;
	border-bottom: 1px solid rgba( 0, 0, 0, .3 );
	background-color: #777;
	opacity: .9;
	transition: .2s;
	transition-property:
		border-bottom-color,
		background-color,
		opacity;
}
.synth-show {
	opacity: 1;
	border-bottom-width: 2px;
	border-bottom-color: rgba( 255, 255, 255, .1 );
}
.synth-selected {
	color: #333;
	background-color: #696;
}

.synth-head {
	display: flex;
	height: 20px;
	line-height: 20px;
	font-size: 12px;
}
.synth-head a {
	overflow: hidden;
	opacity: .5;
	transition: .1s;
	transition-property: width, color, opacity;
}
.synth-head a:hover {
	opacity: 1;
}
.synth:not(.synth-selected) .synth-head a:hover {
	color: #7b7;
}

a.synth-name {
	flex: 1;
	opacity: 1;
	overflow: hidden;
	padding-left: 8px;
	white-space: nowrap;
	text-overflow: ellipsis;
	font-weight: bold;
}
.synth-name:empty::after {
	content: "Untitled";
	font-style: italic;
	opacity: .8;
}

.synth-hoverBtn {
	width: 0;
}
.synth:hover .synth-hoverBtn {
	width: 20px;
}

.synth-showBtn {
	background-color: rgba( 0, 0, 0, .1 );
}
.synth-show .synth-showBtn {
	opacity: 1;
}
.synth-showBtn::before {
	display: block;
	transition: .2s;
	transition-property: transform;
}
.synth-show .synth-showBtn::before {
	transform: rotate( 90deg );
}

.synth-patterns {
	flex: 1;
	overflow: hidden;
	padding-left: 10px;
	max-height: 250px;
	background-color: rgba( 0, 0, 0, .4 );
}
.synth-show .synth-patterns {
	overflow-y: auto;
}
.synth-patterns:empty {
	padding: 0;
}
.synth-patterns:empty::before {
	content: "This synthesizer contains no pattern";
	display: flex;
	align-items: center;
	justify-content: center;
	width: 220px;
	height: 24px;
	margin: -24px auto 0;
	border-radius: 4px;
	font-size: 11px;
	font-style: italic;
	text-align: center;
	white-space: nowrap;
	background-color: rgba( 255, 255, 255, .1 );
	transition: .3s;
	transition-property: margin-top, margin-bottom;
}
.synth-show .synth-patterns:empty::before {
	margin: 4px auto;
}
