@import url(https://fonts.googleapis.com/css?family=Hind:400,300,500,700,600);
@import url(https://fonts.googleapis.com/css?family=Lato:400,100,100italic,300,300italic,400italic,700,700italic,900,900italic);
@import url(https://fonts.googleapis.com/css?family=Cousine);

/*** GLOBAL STYLES ***/

* {
	margin:0;
	padding:0;
}

body {
	background:#fafafa;
}

hr {
	margin:0.5rem 0;
	border:none;
	height:1px;
	background:#dddddd;
}

a {
	text-decoration:none;
	color:#566b7f;
}

a:hover {
	text-decoration:underline;
}

h1 {
	font-family:Hind;
	font-size:1.6rem;
	font-weight:600;
	text-align:center;
	margin:2rem;
	color:#2c3e50;
}

h2 {
	font-family:Hind;
	font-size:1.2rem;
	font-weight:500;
	text-align:center;
	color:#2c3e50;
	margin-bottom:1rem;
}

h3 {
	font-family:Lato;
	font-size:1rem;
	font-weight:600;
	color:#666666;
	margin-bottom:0.5rem;
}

h4 {
	font-family:Hind;
	font-size:0.9rem;
	font-weight:500;
	color:#666666;
	margin:auto;
	margin-bottom:0.3rem;
	text-align:left;
	width:100%;
	max-width:500px;
}

p {
	font-family:Hind;
	font-size:1rem;
	color:#444444;
}

input[type="text"] {
	display:inline-block;
	outline:none;
	background:#ffffff;
	border:1px solid #dddddd;
	border-radius:0.2rem;
	padding:0.4rem 0.5rem;
	font-family:Lato;
	font-size:0.9rem;
	vertical-align:middle;
}

input[type="text"].number {
	width:2rem;
	text-align:center;
	vertical-align:middle;
}

input[type="checkbox"] {
	display:none;
}

label {
	font-family:Hind;
	font-size:1rem;
	font-weight:500;
	color:#666666;
	margin-right:0.5rem;
	display:inline-block;
	text-align:right;
	vertical-align:bottom;
}

input[type="checkbox"] + label {
	vertical-align:top;
	cursor:pointer;
}

input[type="checkbox"] + label:before {
	content:'';
	display:inline-block;
	width:0.8rem;
	height:0.8rem;
	background:#ffffff;
	vertical-align:middle;
	border:1px solid #dddddd;
	border-radius:0.2rem;
	margin-right:0.3rem;
	margin-bottom:0.1rem;
}

input[type="checkbox"]:checked + label:before {
	content:'\2713'; /* Check mark. */
	color:#2c3e50;
	font-size:0.8rem;
	line-height:1rem;
	text-align:center;
}

textarea {
	outline:none;
	background:#ffffff;
	border:1px solid #f0f0f0;
	border-radius:0.2rem;
	padding:0.5rem;
	font-family:Lato;
	font-size:1rem;
	box-sizing:border-box;
}

button {
	display:inline-block;
	outline:none;
	background:#34495e;
	border:1px solid rgba(0,0,0,0.1);
	border-radius:0.2rem;
	line-height:1.9rem;
	padding:0 0.7rem;
	font-family:Lato;
	font-size:0.9rem;
	color:#ffffff;
	cursor:pointer;
}

button.small {
	line-height:1.7rem;
	padding:0 0.6rem;
	font-size:0.7rem;
	box-sizing:border-box;
	vertical-align:middle;
}

button.number-sm, button.number-lg {
	width:2rem;
}

.radio-group button:not(.active) {
	background:#677c8f;
}


button:hover {
	background:#455a6f !important;
}

button:active {
	background:#23384d;
}

button:disabled {
	background:#566b7f !important;
	cursor:initial;
}

button.light {
	background:#ffffff;
	border:1px solid #dddddd;
	color:#444444;
}

button.light:hover {
	background:#fcfcfc !important;
}

button.block {
	display:block;
	width:100%;
	max-width:500px;
	margin:auto;
}

select {
	-webkit-appearance:none;
	-moz-appearance:none;
	-ms-appearance:none;
	appearance:none;
	background-image:url(../images/dropdown.png);
	background-position:right;
	background-repeat:no-repeat;
	background-size:contain;
	background-color:#ffffff;
	font-family:Lato;
	font-size:0.9rem;
	border:1px solid #dddddd;
	outline:none;
	border-radius:0.2rem;
	padding:0.4rem 1.8rem 0.4rem 0.5rem;
	vertical-align:middle;
	margin:0;
}

.tooltip-hover {
	display:inline-block;
	vertical-align:middle;
	font-size:1rem;
	color:#888888;
	margin-left:0.5rem;
	cursor:help;
}

.input {
	margin:0.5rem 0;
}

.panel {
	background:#ffffff;
	padding:0.5rem 1.5rem;
	border:1px solid rgba(0,0,0,0.1);
	border-radius:0.2rem;
	width:100%;
	max-width:700px;
	box-sizing:border-box;
	margin:1rem auto;
}

.wrapper {
	text-align:center;
}


.float-left { float: left; }
.float-right { float: right; }

.clearfix:after {
	display:block;
	content:'';
	clear:both;
}


/*** MESSAGES ***/

#err, #msg {
	display:none;
	width:100%;
	max-width:500px;
	margin:auto;
	text-align:left;
	padding:0.5rem;
	box-sizing:border-box;
	border-radius:0.2rem;
	margin-bottom:1rem;
	font-family:Cousine;
	font-size: 0.8rem;
}

#err {
	background:#ffe6e6;
	border:1px solid #ffb3b3;
	color:#4d0000;
}

#msg {
	background:#d6f5d6;
	border:1px solid #adebad;
	color:#0f3e0f;
}


/*** SCREENS ***/

#screen-config {
	display:none;
}


/*** INITIAL SETUP ***/

#kle {
	width:500px;
	height:200px;
	font-family:Cousine;
	font-size: 0.8rem;
	text-align:left;
	resize:none;
}

.preset-btn {
	margin-bottom:0.5rem !important;
}


/*** CONFIG - KEYBOARD ***/

.keyboard-wrapper {
	padding:0.5rem;
	margin:auto;
	background:#ffffff;
	border:1px solid rgba(0,0,0,0.1);
	border-radius:0.5rem;
	display:inline-block;
}

#keyboard {
	position:relative;
}

.key {
	position:absolute;
}

.key-inner {
	position:absolute;
	top:0.3rem;
	left:0.3rem;
	right:0.3rem;
	bottom:0.3rem;
	border:1px solid rgba(0,0,0,0.2);
	border-radius:0.2rem;
	cursor:pointer;
	font-family:Hind;
	font-size:0.75rem;
	line-height:3rem;
	overflow:hidden;
	word-wrap:break-word;
}

.key-inner:hover {
	background:rgba(0,0,0,0.02);
}

.key.active .key-inner {
	border:1px solid rgba(0,0,100,0.5);
}

.key.active2 .key-inner {
	border:1px solid rgba(100,0,0,0.5);
}

.key-pad {
	position:absolute;
	top:50%;
	left:50%;
	width:0;
	height:0;
	border:3px solid #888888;
	border-radius:50%;
	-webkit-transform:translateX(-50%) translateY(-50%);
	-moz-transform:translateX(-50%) translateY(-50%);
	-ms-transform:translateX(-50%) translateY(-50%);
	transform:translateX(-50%) translateY(-50%);
	pointer-events:none;
}

.config-panel {
	display:none;
}

.btn-unset-key {
	float:right;
	margin:0 -0.5rem;
	font-family:Lato;
	font-weight:400;
	color:#888888;
	font-size:1rem;
	cursor:pointer;
}

.btn-unset-key:hover {
	color:#444444;
}


/*** CONFIG - WIRE ***/

.keyboard-row-indicator, .keyboard-col-indicator {
	position:absolute;
	font-family:Cousine;
	font-size:0.8rem;
	font-weight:500;
}

.keyboard-row-indicator {
	left:-4rem;
	color:#c0392b;
}

.keyboard-col-indicator {
	top:-2.8rem;
	text-align:center;
	color:#2c3e50;
}

.config-pin-column {
	width:50%;
	float:left;
}


/*** CONFIG - FIRMWARE ***/

.config-key-pane {
	display:none;
}

.config-key-btn {
	background:#ffffff !important;
	color:#666666;
	margin:0.2rem 0;
}

.config-key-btn.active {
	border:1px solid #bbbbbb;
}

.config-key-field {
	width:5rem;
	text-transform:uppercase;
	text-align:center;
}

.config-key-btn:hover {
	background:#fafafa !important;
}

#config-macro-list {
	border:1px solid #dddddd;
	border-radius:0.3rem;
	overflow:hidden;
}

.config-macro-entry {
	font-family:Hind;
	text-align:left;
	padding:1rem 1.5rem;
	border-top:1px solid #dddddd;
	position:relative;
	top:-1px;
	cursor:move;
	background:#ffffff;
}

.config-macro-entry span, #config-compile-warning-keys span {
	font-family:Cousine;
	font-size: 0.8rem;
	display:inline-block;
	padding:0.2rem;
	background:#fafafa;
	border:1px solid #dddddd;
	border-radius:0.1rem;
	margin:0 0.3rem;
}

.config-macro-down, .config-macro-up, .config-macro-remove {
	position:absolute;
	top:50%;
	-webkit-transform:translateY(-50%);
	-moz-transform:translateY(-50%);
	-ms-transform:translateY(-50%);
	transform:translateY(-50%);
}

.config-macro-down {
	width:2.5rem;
	right:3.55rem;
	border-bottom-left-radius:0;
	border-top-left-radius:0;
}

.config-macro-up {
	width:2.5rem;
	right:5.95rem;
	border-bottom-right-radius:0;
	border-top-right-radius:0;
}

.config-macro-remove {
	right:1.5rem;
	height:1rem;
	width:1rem;
	line-height:1.2rem;
	font-family:Hind;
	font-size:1.1rem;
	background:#ffffff;
	color:#aaaaaa;
	border:1px solid #aaaaaa;
	border-radius:50%;
	text-align:center;
	cursor:pointer;
}

.config-macro-remove:hover {
	background:#aaaaaa;
	color:#ffffff;
}

.config-macro-list-empty {
	display:block;
	line-height:4rem;
	margin:0 auto;
	text-align:center;
}

.config-macro-selector {
	display:none;
}

.config-macro-btn {
	width:23%;
	margin:0 1%;
}

#config-macro-record.recording {
	border:1px solid #cc0000;
}

/*** CONFIG - SETTINGS ***/

.config-settings label {
	width:7rem;
	text-align:left;
}

.config-settings input, .config-settings select {
	width:10rem;
	box-sizing:border-box;
}

#config-compile-warning {
	margin-top:1rem;
	font-family:Hind;
	display:none;
}

#config-compile-warning-keys {
	display:inline-block;
	margin:0 0 0.5rem 0;
}

/*** FOOTER ***/

.footer {
	font-family:Lato;
	font-size:0.9rem;
	line-height:1.5rem;
	color:#444444;
	margin:2rem 0;
}

/*** TOOLTIP ***/

.tooltip {
	display:none;
	position:absolute;
	font-family:Hind;
	font-size:0.8rem;
	color:#ffffff;
	background:#444444;
	padding:0.3rem 0.5rem;
	pointer-events:none;
	max-width:300px;
}

.tooltip b {
	font-weight:500;
}
