html, body {
    margin: 0;
    padding: 0;
    border: 0;
    cursor: default;
}

body {
    font-size: 1.4em;
}


/* General styles */

aside {
    padding: 14px;
    color: #777777;
    font-size: 1.4em;
    font-style: italic;
    text-align: center;
    transition: 350ms opacity;
}


/* General interactivity */

body {
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}

.selectable {
    -webkit-user-select: text;
    -khtml-user-select: text;
    -moz-user-select: text;
    -ms-user-select: text;
    user-select: text;
}


/* Palette displays */

#palettes {
    padding-right: 7px;
}

.palette {
    margin: 7px 0 7px 7px;
    padding: 3px 7px 0 7px;
    border: 1px solid gray;
    cursor: pointer;
    opacity: .49;
	background-size: contain;
	background-position: right;
	background-repeat: no-repeat;
}

.palette:hover,
.palette.palette-selected {
    opacity: 1;
}

.palette:not(.palette-selected) .palette-container {
    display: none;
}

.palette-label {
    margin: 0 0 7px 0;
}

.palette-box {
    display: inline-block;
    margin-right: 7px;
	box-shadow: 0 0 3px 3px white;
    background-image: url("data:image/gif;base64,R0lGODlhHAAcAJEAAAAAAP///5mZmf///yH5BAEAAAMALAAAAAAcABwAAAJFlH+hy+ifmIQ0ylXrbRlu3D2fEopj6YwBiqjal6nwK090DVK4re+55yPddrHgaogrbpAclsDlfJ6iUGeVdUVlS9tQ11AAADs=");
}

.palette-box-in {
    width: 28px;
    height: 28px;
    border: 1px solid gray;
}


/* Input display */

#input {
    padding: 35px 14px;
    border: solid #cccccc;
    border-width: 3px 0;
    background: #eeeeee;
    transition: 140ms all;
    cursor: pointer;
}

#input:hover {
    background: #cccccc;
    border-color: #eeeeee;
}

#input:hover aside {
    color: white;
}

#input.hovering {
    color: #aaa;
    background: white;
    border-color: #aaa;
}

input[type=file] {
    position: absolute;
    left: -100%;
}


/* Output display */

#output {
    padding-top: 7px;
}

#output aside {
    margin-top: 21px;
}

#output aside:not(:first-child) {
    display: none;
}

.output {
    position: relative;
    margin: 14px 0;
    padding: 7px 0;
    border: solid #aaaaaa;
    border-width: 1px 0;
    background: #e5d6ff;
    text-align: center;
    overflow-x: hidden;
	background-size: contain;
	background-position: right;
	background-repeat: no-repeat;
}

.output.output-failed {
    background-color: #ffcccc;
}

.output.output-uploading {
    background-color: #f0e5ff;
}

.output.output-working {
    background-color: #d3f7ff;
}

.output.output-complete {
    background-color: #daffdf;
}

.output input[type=text] {
    display: block;
    position: relative;
    width: 98%;
    left: 1%;
    right: 1%;
    text-align: center;
}