/**
 * GHColors theme by Avi Aryan (http://aviaryan.in)
 * Inspired by Github syntax coloring
 */

code[class*="language-"],
pre[class*="language-"] {
	color: coat(code-block, color);
	font-weight: 400;
	font-size: 1em;
	font-family: coat(code-block, font-family);
	line-height: coat(code-block, line-height);
	white-space: pre;
	direction: ltr;
	text-align: left;
	word-break: normal;
	word-spacing: normal;

	-moz-tab-size: 4;
	-o-tab-size: 4;
	tab-size: 4;

	-webkit-hyphens: none;
	-moz-hyphens: none;
	-ms-hyphens: none;
	hyphens: none;
}
pre > code {
	width: 100%;
}
pre > code[class*="language-"] {
	font-size: coat(code, font-size);
}

pre[class*="language-"]::-moz-selection,
pre[class*="language-"] ::-moz-selection,
code[class*="language-"]::-moz-selection,
code[class*="language-"] ::-moz-selection,
pre[class*="language-"]::selection,
pre[class*="language-"] ::selection,
code[class*="language-"]::selection,
code[class*="language-"] ::selection {
	background: coat(code-selection);
}

/* Code blocks */
pre[class*="language-"] {
	border: 1px solid coat(code-block, border-color);
	background: coat(code-block, background-color);
	overflow: auto;
	padding: 1em;
}

/* Inline code */
:not(pre) > code,
:not(pre) > code[class*="language-"] {
	border: 1px solid coat(code, border-color);
	background: coat(code, background-color);
	font-size: coat(code, font-size);
	line-height: coat(code, line-height);
}
@mixin setTokenValues($token) {
	@if nth($token, 1) !=
		"inherit" or
		nth($token, 1) !=
		"none" or
		nth($token, 1) !=
		"null"
	{
		color: nth($token, 1);
	}
	@if nth($token, 2) != "normal" {
		color: nth($token, 1);
		@if nth($token, 2) == "bold" or type-of(nth($token, 2)) == "number" {
			font-weight: nth($token, 2);
		} @else {
			font-style: nth($token, 2);
		}
	}
	@if nth($token, 3) < 1 {
		opacity: nth($token, 3);
	}
}

@each $token, $value in $tokens {
	.token.#{$token} {
		@include setTokenValues($value);
	}
}

@each $token, $value in $language-autohotkey {
	.language-autohotkey .token.#{$token} {
		@include setTokenValues($value);
	}
}
