/***
Spectrum Colorpicker v1.1.0
https://github.com/bgrins/spectrum
Author: Brian Grinstead
License: MIT
***/

.sp-container {
	display: inline-block;
	left: 0;
	overflow: hidden;
	position: absolute;
	top: 0;
	z-index: 2147483647;
}

.sp-container.sp-flat {
	position: relative;
}

/* http://ansciath.tumblr.com/post/7347495869/css-aspect-ratio */
.sp-top {
	display: inline-block;
	position: relative;
	width: 100%;
}

.sp-top-inner {
	bottom: 0;
	left: 0;
	position: absolute;
	right: 0;
	top: 0;
}

.sp-color {
	bottom: 0;
	left: 0;
	position: absolute;
	right: 20%;
	top: 0;
}

.sp-hue {
	bottom: 0;
	height: 100%;
	left: 84%;
	position: absolute;
	right: 0;
	top: 0;
}

.sp-fill {
	padding-top: 80%;
}

.sp-sat, .sp-val {
	bottom: 0;
	left: 0;
	position: absolute;
	right: 0;
	top: 0;
}

.sp-alpha-enabled .sp-top {
	margin-bottom: 18px;
}

.sp-alpha-enabled .sp-alpha {
	display: block;
}

.sp-alpha-handle {
	background: white;
	border: 1px solid black;
	bottom: -4px;
	cursor: pointer;
	left: 50%;
	opacity: .8;
	position: absolute;
	top: -4px;
	width: 6px;
}

.sp-alpha {
	bottom: -14px;
	display: none;
	height: 8px;
	left: 0;
	position: absolute;
	right: 0;
}

.sp-alpha-inner{
	border: solid 1px #333;
}

/* Don't allow text selection */
.sp-container,
.sp-replacer,
.sp-preview,
.sp-dragger,
.sp-slider,
.sp-alpha,
.sp-alpha-handle,
.sp-container.sp-dragging .sp-input,
.sp-container button  {
	user-select: none;
	-moz-user-select: -moz-none;
	-o-user-select: none;
	-webkit-user-select: none;
}

.sp-container.sp-input-disabled .sp-input-container {
	display: none;
}

.sp-container.sp-buttons-disabled .sp-button-container {
	display: none;
}

.sp-palette-only .sp-picker-container {
	display: none;
}

.sp-palette-disabled .sp-palette-container {
	display: none;
}

.sp-initial-disabled .sp-initial {
	display: none;
}

/* Gradients for hue, saturation and value instead of images.  Not pretty... but it works */
.sp-sat {
	background-image: -webkit-gradient(linear,  0 0, 100% 0, from(#FFF), to(rgba(204, 154, 129, 0)));
	background-image: -webkit-linear-gradient(left, #FFF, rgba(204, 154, 129, 0));
	background-image: -moz-linear-gradient(left, #fff, rgba(204, 154, 129, 0));
	background-image: -o-linear-gradient(left, #fff, rgba(204, 154, 129, 0));
	background-image: -ms-linear-gradient(left, #fff, rgba(204, 154, 129, 0));
	background-image: linear-gradient(to right, #fff, rgba(204, 154, 129, 0));
	-ms-filter: "progid:DXImageTransform.Microsoft.gradient(GradientType = 1, startColorstr=#FFFFFFFF, endColorstr=#00CC9A81)";
	filter: progid:DXImageTransform.Microsoft.gradient(GradientType = 1, startColorstr='#FFFFFFFF', endColorstr='#00CC9A81');
}

.sp-val {
	background-image: -webkit-gradient(linear, 0 100%, 0 0, from(#000000), to(rgba(204, 154, 129, 0)));
	background-image: -webkit-linear-gradient(bottom, #000000, rgba(204, 154, 129, 0));
	background-image: -moz-linear-gradient(bottom, #000, rgba(204, 154, 129, 0));
	background-image: -o-linear-gradient(bottom, #000, rgba(204, 154, 129, 0));
	background-image: -ms-linear-gradient(bottom, #000, rgba(204, 154, 129, 0));
	background-image: linear-gradient(to top, #000, rgba(204, 154, 129, 0));
	-ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#00CC9A81, endColorstr=#FF000000)";
	filter : progid:DXImageTransform.Microsoft.gradient(startColorstr='#00CC9A81', endColorstr='#FF000000');
}

.sp-hue {
	background: -moz-linear-gradient(top, #ff0000 0%, #ffff00 17%, #00ff00 33%, #00ffff 50%, #0000ff 67%, #ff00ff 83%, #ff0000 100%);
	background: -ms-linear-gradient(top, #ff0000 0%, #ffff00 17%, #00ff00 33%, #00ffff 50%, #0000ff 67%, #ff00ff 83%, #ff0000 100%);
	background: -o-linear-gradient(top, #ff0000 0%, #ffff00 17%, #00ff00 33%, #00ffff 50%, #0000ff 67%, #ff00ff 83%, #ff0000 100%);
	background: -webkit-gradient(linear, left top, left bottom, from(#ff0000), color-stop(0.17, #ffff00), color-stop(0.33, #00ff00), color-stop(0.5, #00ffff), color-stop(0.67, #0000ff), color-stop(0.83, #ff00ff), to(#ff0000));
	background: -webkit-linear-gradient(top, #ff0000 0%, #ffff00 17%, #00ff00 33%, #00ffff 50%, #0000ff 67%, #ff00ff 83%, #ff0000 100%);
}

/* IE filters do not support multiple color stops.
	Generate 6 divs, line them up, and do two color gradients for each.
	Yes, really.
 */
.sp-1 {
	filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0000', endColorstr='#ffff00');
	height: 17%;
}

.sp-2 {
	filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffff00', endColorstr='#00ff00');
	height: 16%;
}
.sp-3 {
	filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00ff00', endColorstr='#00ffff');
	height: 17%;
}
.sp-4 {
	filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00ffff', endColorstr='#0000ff');
	height: 17%;
}

.sp-5 {
	filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0000ff', endColorstr='#ff00ff');
	height: 16%;
}
.sp-6 {
	filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff00ff', endColorstr='#ff0000');
	height: 17%;
}

.sp-hidden {
	display: none !important;
}

/* Clearfix hack */
.sp-cf:before,
.sp-cf:after {
	content: "";
	display: table;
}

.sp-cf:after {
	clear: both;
}

/* Mobile devices, make hue slider bigger so it is easier to slide */
@media (max-device-width: 480px) {
	.sp-color {
		right: 40%;
	}

	.sp-hue {
		left: 63%;
	}

	.sp-fill {
		padding-top: 60%;
	}
}

.sp-dragger {
	background: #000;
	border: 1px solid #fff;
	border-radius: 5px;
	cursor: pointer;
	height: 5px;
	left: 0;
	position: absolute;
	top: 0;
	width: 5px;
}

.sp-slider {
	background: white;
	border: 1px solid #000;
	cursor: pointer;
	height: 3px;
	left: -1px;
	opacity: .8;
	position: absolute;
	right: -1px;
	top: 0;
}

/* Basic display options (colors, fonts, global widths) */
.sp-container {
	background-color: #efefef;
	border: solid 1px #ccc;
	border-radius: 0;
	padding: 0;
}

.sp-container,
.sp-container button,
.sp-container input,
.sp-color,
.sp-hue {
	box-sizing: border-box;
	-moz-box-sizing: border-box;
	-ms-box-sizing: border-box;
	-webkit-box-sizing: border-box;
}

.sp-top {
	margin-bottom: 3px;
}

.sp-color,
.sp-hue {
	border: solid 1px #666;
}

/* Input */
.sp-input-container {
	float: right;
	margin-bottom: 4px;
	width: 100px;
}

.sp-initial-disabled .sp-input-container {
	width: 100%;
}

.sp-input {
	background: transparent;
	border: 1px inset;
	border-radius: 3px;
	color: #222;
	font-size: 12px !important;
	margin: 0;
	padding: 4px 5px;
	width: 100%;
}

.sp-input:focus {
	border: 1px solid orange;
}

.sp-input.sp-validation-error {
	background: #fdd;
	border: 1px solid red;
}

.sp-picker-container,
.sp-palette-container {
	float: left;
	margin-bottom: -290px;
	padding: 10px 10px 300px;
	position: relative;
}

.sp-picker-container {
	border-left: solid 1px #fff;
	width: 172px;
}

/* Palettes */
.sp-palette-container {
	border-right: solid 1px #ccc;
}

.sp-palette .sp-thumb-el {
	border: solid 2px transparent;
	cursor: pointer;
	display: block;
	float: left;
	height: 15px;
	margin: 3px;
	position: relative;
	width: 24px;
}

.sp-palette .sp-thumb-el:hover,
.sp-palette .sp-thumb-el.sp-thumb-active {
	border-color: orange;
}

.sp-thumb-el {
	position: relative;
}

/* Initial */
.sp-initial {
	border: solid 1px #333;
	float: left;
}

.sp-initial span {
	border: none;
	display: block;
	float: left;
	height: 25px;
	margin: 0;
	width: 30px;
}

/* Buttons */
.sp-button-container {
	float: right;
}

/* Replacer (the little preview div that shows up instead of the <input>) */
.sp-replacer {
	color: #333;
	cursor: pointer;
	display: inline-block;
	margin: 0;
	overflow: hidden;
	vertical-align: middle;
}

.sp-replacer:hover,
.sp-replacer.sp-active {
	border-color: #F0C49B;
	color: #111;
}

.sp-replacer.sp-disabled {
	border-color: silver;
	color: silver;
	cursor: default;
}

.sp-dd {
	display: none;
	float: left;
	font-size: 10px;
	height: 16px;
	line-height: 16px;
	padding: 2px 0;
}

.sp-preview {
	border: solid 1px #222;
	border-radius: 3px;
	float: left;
	height: 18px;
	margin-right: 5px;
	position: relative;
	width: 48px;
	z-index: 0;
}

.sp-palette {
	max-width: 220px;
}

.sp-palette .sp-thumb-el {
	border: solid 1px #d0d0d0;
	height: 16px;
	margin: 2px 1px;
	width: 16px;
}

.sp-container {
	padding-bottom: 0;
}

/* Buttons: http://hellohappy.org/css3-buttons/ */
.sp-container button {
	text-transform: capitalize;
}

.sp-cancel {
	color: #d93f3f !important;
	display: none;
	font-size: 11px;
	margin: 0 5px 0 0;
	padding: 2px;
	text-decoration: none;
	vertical-align: middle;
}

.sp-cancel:hover {
	color: #d93f3f !important;
	text-decoration: underline;
}

.sp-palette span:hover,
.sp-palette span.sp-thumb-active {
	border-color: #000;
}

.sp-preview,
.sp-alpha,
.sp-thumb-el {
	background-image: url(data:image/png;
	position: relative;
}

.sp-preview-inner,
.sp-alpha-inner,
.sp-thumb-inner {
	bottom: 0;
	display: block;
	left: 0;
	position: absolute;
	right: 0;
	top: 0;
}

.sp-palette .sp-thumb-inner {
	background-position: 50% 50%;
	background-repeat: no-repeat;
}

.sp-palette .sp-thumb-light.sp-thumb-active .sp-thumb-inner {
	background-image: url(data:image/png;
}

.sp-palette .sp-thumb-dark.sp-thumb-active .sp-thumb-inner {
	background-image: url(data:image/png;
}