/***
Spectrum: The No Hassle Colorpicker
https://github.com/bgrins/spectrum

Author: Brian Grinstead
License: MIT
***/

.sp-container { 
    position:absolute; 
    top:0; 
    left:0; 
    display:inline-block;z-index:10;
}
.sp-container.sp-flat {
    position: relative;
}

/* 
   Keep square proportions using percentage widths.
   Basic aspect ratio technique modified from:
   http://ansciath.tumblr.com/post/7347495869/css-aspect-ratio
*/
.sp-top {
  position:relative; 
  width: 100%;
  display:inline-block;
}
.sp-top-inner {
   position:absolute; top:0; left:0; bottom:0; right:0;
}
.sp-color { 
    position: absolute;
    top:0;left:0;bottom:0;right:20%;
}
.sp-hue {
    position: absolute;
    top:0;right:0;bottom:0;left:83%;
    height: 100%; /* IE7 needs this for hue slider to take up full space */
}
.sp-fill { 
    *height: 80%;
    margin-top: 80%;  /* Same as sp-color width */
}
.sp-sat, .sp-val { 
    position: absolute; 
    top:0; 
    left:0; 
    right:0; 
    bottom:0; 
}

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

/* Replacer (the little preview div that shows up instead of the <input>) */
.sp-replacer {
    margin:0;
    border-radius: 3px;
    overflow:hidden;
    cursor:pointer;
    padding: 3px;
    display:inline-block;
    zoom: 1;
    *display: inline;
}
.sp-dd { 
    padding: 2px 0;
    height: 16px; 
    line-height: 16px;
    float:left;
    font-size:10px;
}
.sp-preview {
    width:25px;
    height: 20px;
    /*border: solid 1px #ddd;*/
    margin-right: 5px;
    float:left;
}

.sp-show-small, .sp-small .sp-hide-small { display:none; }
.sp-small .sp-show-small { display:inherit; }

.sp-container.sp-input-disabled .sp-input-container input,
.sp-container.sp-buttons-disabled .sp-input-container div,
.sp-container.sp-flat .sp-input-container div {
    display:none;
}
.sp-input-container {
    margin-top: 4px;
}
.sp-input-container div { float:right; }
.sp-input:focus { border: 1px solid orange; }

.sp-container.sp-flat .sp-input,
.sp-container.sp-buttons-disabled .sp-input { 
    width: 100%; 
    padding:0; 
    text-align: center; 
}

.sp-pallet { 
    margin:3px 0; 
    padding: 0;
}
.sp-pallet span {
    display: block;
    float:left;
    width: 30px;
    height: 15px; 
    margin: 3px;
    cursor: pointer;
    border:solid 2px transparent;
}
.sp-pallet span:hover, .sp-pallet span.sp-pallet-active {
    border-color: orange;
}  
.sp-pallet-disabled .sp-pallet { 
    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));
    -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));
    -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 { 
    height:17%; 
    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0000', endColorstr='#ffff00');
}
.sp-2 { 
    height:16%; 
    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffff00', endColorstr='#00ff00');
}
.sp-3 { 
    height:17%; 
    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00ff00', endColorstr='#00ffff');
}
.sp-4 { 
    height:17%; 
    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00ffff', endColorstr='#0000ff');
}
.sp-5 { 
    height:16%; 
    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0000ff', endColorstr='#ff00ff');
}
.sp-6 { 
    height:17%; 
    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff00ff', endColorstr='#ff0000');
}

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

/* 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 { margin-top: 60%; } 
}

.sp-dragger {
   border-radius: 5px; 
   height:5px; 
   width: 5px; 
   border: solid black 3px;
   cursor: pointer;
   position:absolute; 
   top:0; 
   left: 0;
}
.sp-slider { 
    position: absolute; 
    top:0; 
    cursor:pointer;
    height: 5px; 
    width: 110%;
    margin-left: -5%;
    background: white; 
    opacity: .8; 
}

/* Basic display options (colors, fonts, global widths) */
.sp-container {-webkit-box-shadow:0 1px 4px rgba(0, 0, 0, 0.3);-moz-box-shadow:0 1px 4px rgba(0, 0, 0, 0.3);box-shadow:0 1px 4px rgba(0, 0, 0, 0.3);
    padding: 5px;
    border-radius: 10px;
    width:180px;
    /*width: 240px;*/
}
.sp-container.sp-small {
    width: 160px;
    padding: 5px;
    border-radius: 5px;
}
.sp-input {
   height: 20px;
   font-size: 16px;
   border: 1px inset;
   padding: 1px 5px;
   margin: 0;
   width: 120px;
   margin-top: 1px;
   background:transparent;
   border-radius: 3px;
}
.sp-small .sp-pallet span {
    width: 16px;
}

/* Dark theme 
.sp-container.sp-dark {
    background-color: #333; 
    border-radius: 5px; 
    font-family: Droid Sans, Tahoma, sans-serif;
}
.sp-dark .sp-input {
   border-color: #444;
   color: white;
}
.sp-replacer.sp-dark {    
    border: outset 2px #666;
    background: #333;
    color: #eee;
}
.sp-replacer.sp-dark:hover, .sp-replacer.sp-dark.sp-active {
    border-color: #333;
    border-style: solid;
    color: #ccf;
}*/

.sp-container.sp-dark {border-width:3px;
    background-color: #fff; 
    border-radius: 5px; 
    font-family: Droid Sans, Tahoma, sans-serif;
}
.sp-dark .sp-input {
   border-color: #ccc;
   color: white;
}
.sp-replacer.sp-dark {    
    border: #ccc 1px solid;
    background: #fff;
    color: #333;
}
.sp-replacer.sp-dark:hover, .sp-replacer.sp-dark.sp-active {
    border: #ccc 1px solid;
    color: #000;
}

/* Light theme */
.sp-container.sp-light {
    background-color: #ddd; 
    border-radius: 5px; 
    font-family: Droid Sans, Tahoma, sans-serif;
}
.sp-light .sp-input {
   border-color: #aaa;
   color: #222;
}
.sp-replacer.sp-light  {
    background: #eee;
    border: solid 2px #444;
    color: #333;
}
.sp-replacer.sp-light:hover, .sp-replacer.sp-light.sp-active {
    border-color: #333;
    color: #111;
}

/* Buttons: http://hellohappy.org/css3-buttons/ */
.sp-container button {
  background-color: #eeeeee;
  background-image: -webkit-gradient(linear, left top, left bottom, from(#eeeeee), to(#cccccc));
  background-image: -webkit-linear-gradient(top, #eeeeee, #cccccc);
  background-image: -moz-linear-gradient(top, #eeeeee, #cccccc);
  background-image: -ms-linear-gradient(top, #eeeeee, #cccccc);
  background-image: -o-linear-gradient(top, #eeeeee, #cccccc);
  background-image: linear-gradient(top, #eeeeee, #cccccc);
  border: 1px solid #ccc;
  border-bottom: 1px solid #bbb;
  -webkit-border-radius: 3px;
  -moz-border-radius: 3px;
  -ms-border-radius: 3px;
  -o-border-radius: 3px;
  border-radius: 3px;
  color: #333;
  font: normal 11px "Lucida Grande", "Lucida Sans Unicode", "Lucida Sans", Geneva, Verdana, sans-serif;
  line-height: 1;
  padding: 4px 1px;
  text-align: center;
  text-shadow: 0 1px 0 #eee;
  vertical-align: middle;
}
.sp-container button:hover {
    background-color: #dddddd;
    background-image: -webkit-gradient(linear, left top, left bottom, from(#dddddd), to(#bbbbbb));
    background-image: -webkit-linear-gradient(top, #dddddd, #bbbbbb);
    background-image: -moz-linear-gradient(top, #dddddd, #bbbbbb);
    background-image: -ms-linear-gradient(top, #dddddd, #bbbbbb);
    background-image: -o-linear-gradient(top, #dddddd, #bbbbbb);
    background-image: linear-gradient(top, #dddddd, #bbbbbb);
    border: 1px solid #bbb;
    border-bottom: 1px solid #999;
    cursor: pointer;
    text-shadow: 0 1px 0 #ddd; 
}
.sp-container button:active {
    border: 1px solid #aaa;
    border-bottom: 1px solid #888;
    -webkit-box-shadow: inset 0 0 5px 2px #aaaaaa, 0 1px 0 0 #eeeeee;
    -moz-box-shadow: inset 0 0 5px 2px #aaaaaa, 0 1px 0 0 #eeeeee;
    -ms-box-shadow: inset 0 0 5px 2px #aaaaaa, 0 1px 0 0 #eeeeee;
    -o-box-shadow: inset 0 0 5px 2px #aaaaaa, 0 1px 0 0 #eeeeee;
    box-shadow: inset 0 0 5px 2px #aaaaaa, 0 1px 0 0 #eeeeee;
}

.sp-container.sp-small button { padding-left: 5px; padding-right: 5px; font-weight: bold; }

