html {
	min-height:100%;
}
* {
	box-sizing: border-box;
	outline: none;
}

body {
	min-height:100%;
	padding: 10px;
	background: #ecf0f1;
	display: flex;
	flex-flow:column nowrap;
	font-family: 'Open Sans', Helvetica, Verdana, Arial, sans-serif;
	align-items: center;
	font-size:1.1em;
}

#controls {
	background: #1abc9c;
	padding: 10px;
	text-align: center;
	border-radius:3px;
	display: flex;
	flex-flow:row wrap;
	align-items: center;
	justify-content: center;
}
input[type="button"], input[type="submit"] {
	font-family: inherit;
	background: #16a085;
	color:#FFFFFF;
	border:0px solid;
	font-size: 0.9em;
	border-radius: 3px;
	padding: 5px 10px;
	cursor: pointer;
}
input[type="button"]:hover, input[type="submit"]:hover {
	background: #369885;
}
#controls input[type="button"], #controls input[type="submit"] {
	margin-left:5px;;
	margin-right:5px;;
}
form {
	display: block;
	flex:1 0 100%;
}
form>div {
	margin-top: 5px;
}
form label {
	display: inline-block;
	font-size: 0.8em;
	text-transform: uppercase;
	font-weight: 600;
	width: 230px;
	text-align: left;
}
form input:not([type="submit"]), form select {
	padding: 4px;
	width: 200px;
	border-radius: 2px;
	background: rgba(255, 255, 255, 0.5);
	border:0px solid transparent;
}
form input:not([type="submit"]):hover, form select:hover, form input:not([type="submit"]):focus, form select:focus {
	background: rgba(255, 255, 255, 0.8);
}


#loadSample, #controls>form/*, #chartWrapper*/ {
	display: none;
}


#inputs {
	display: block;
	padding:15px;
	user-select: none;
}
#inputs .toolset {
	display: flex;
	align-items: center;
	justify-content: space-between;
}
#inputs .toolset strong {
	cursor: pointer;
	font-size: 0.9em;
}

#swatches {
	display: flex;
	flex-flow: row;
	align-items: center;
	justify-content: center;
	margin-bottom:15px;
}
#swatches>div {
	border:2px solid transparent;
	width:30px;
	height:30px;
	border-radius:50%;
	margin:0px 5px;
	cursor: pointer;
}
#swatches>div[data-selected] {
	border:2px solid #e74c3c;

}
#canvas {
	display: block;
	user-select: none;
}
#canvas>div {
	display: flex;
	flex-flow:row nowrap;
}
#canvas>div>div {
	display: block;
	width:15px;
	height:15px;
	background: #000000;
	border:2px solid transparent;
}
#canvas>div>div:hover {
	border-color:#e74c3c;
}

#layers {
	display: flex;
	flex-flow:column nowrap;
	align-items: stretch;
	align-self: stretch;
}
#layers>div {
	display: flex;
	flex-flow: row nowrap;
	align-items: center;
	justify-content: space-evenly;
	margin-top:20px;
}
#layers>div>strong {
	user-select: none;
}
#layers>div>div {
	width: 50px;
	height: 50px;
	background-position: center center;
	background-size:cover;
	border-radius: 5px;
}


#output {
	display: flex;
	flex-flow: row nowrap;
	margin-top:50px;
}
#output>div {
	margin:0px 10px;
	border:2px solid #DDDDDD;
	text-align: center;
	user-select: none;
	width: 80px;
	height: 80px;
	padding:5px;
	border-radius:50%;
}
#output>div>strong {
	font-size:1.4em;
}
#output>div>em {
	font-size:0.9em;
	display: block;
	font-weight: bold;
	font-style: normal;
}

#output>div[data-best] {
	background:#9b59b6;
	border-color:#FFFFFF;
	color:#FFFFFF;
}




body[data-loading]::before {
	display: block;
	content:'';
	position: fixed;
	background: rgba(0, 0, 0, 0.5);
	left: 0px;
	right: 0px;
	top: 0px;
	bottom: 0px;
}
body[data-loading] .loader {
	display: block;
}
.loader {
	display: none;
}

.loader span {
	position: absolute;
	width: 400px;
	margin-left: calc(-200px + 1.25em);
	text-align: center;
	top: 110px;
}



#chart {
	margin-top: 20px;
	width:600px !important;
	height:400px !important;
}

#chartWrapper pre {
	user-select: all;
	white-space: break-spaces;
	padding: 15px;
	word-break: break-all;
}

/* Loader https://projects.lukehaas.me/css-loaders/ */
.loader,
.loader:before,
.loader:after {
	border-radius: 50%;
	width: 2.5em;
	height: 2.5em;
	-webkit-animation-fill-mode: both;
	animation-fill-mode: both;
	-webkit-animation: load7 1.8s infinite ease-in-out;
	animation: load7 1.8s infinite ease-in-out;
}
.loader {
	color: #ffffff;
	-webkit-transform: translateZ(0);
	-ms-transform: translateZ(0);
	transform: translateZ(0);
	-webkit-animation-delay: -0.16s;
	animation-delay: -0.16s;
	position: fixed;
	top: 30vh;
}
.loader:before,
.loader:after {
	content: '';
	position: absolute;
	top: 0;
}
.loader:before {
	left: -3.5em;
	-webkit-animation-delay: -0.32s;
	animation-delay: -0.32s;
}
.loader:after {
	left: 3.5em;
}
@-webkit-keyframes load7 {
	0%,80%,100% {box-shadow: 0 2.5em 0 -1.3em;}
	40% {box-shadow: 0 2.5em 0 0;}
}
@keyframes load7 {
	0%,80%,100% {box-shadow: 0 2.5em 0 -1.3em;}
	40% {box-shadow: 0 2.5em 0 0;}
}
