@charset "utf-8";

body, html {
  color: #666;
  font-family: verdana, tahoma, arial;
  text-shadow: 1px 1px rgba(255, 255, 255, 0.4);
  margin: 0;
}

a {
  color: inherit;
}

#top {
  background-color: #7ba400;
  -webkit-box-sizing: border-box; /* Safari/Chrome, other WebKit */
  -moz-box-sizing: border-box;    /* Firefox, other Gecko */
  box-sizing: border-box;         /* Opera/IE 8+ */
  padding: 0pt;
  padding-top: 5px;
  position: relative;
  height: 70px;
  padding-left: 30px;
}

#q-field {
  -webkit-box-sizing: border-box; /* Safari/Chrome, other WebKit */
  -moz-box-sizing: border-box;    /* Firefox, other Gecko */
  box-sizing: border-box;         /* Opera/IE 8+ */
}

#button-right {
  position: absolute;
  right: 15px;
  top: 15px;
}

input, button {
  border: 2px solid white;
  padding: 3px;
  font-size: 11pt;
}

form {
  margin-left: 235px;
  margin-top:0px
}

form input[type=search] {
  width: 50%;
}

a {
  text-decoration: none;
}

p.found {
  font-size: 10pt;
  padding: 0;
  margin: 0;
}

p.found {
  text-align: right;
}

#pagination {
  position: fixed;
  right: 20px;
  bottom: 10px;
  z-index: 800;
}

#pagination span {
  display: inline-block;
  background-color: #ddd;
  margin: 2pt;
  height: 1.5em;
  padding-left: .5em;
  padding-right: .5em;
  line-height: 1.5em;
  text-align: center;
  border-width: 2px;
  border-style: solid;
  border-color: #999;
  box-shadow: 3px 3px 3px rgba(0,0,0,0.3);
}

#pagination a {
  text-shadow: 1px 1px rgba(255, 255, 255, 0.9);
}

#pagination a[rel=self] span {
  border-color: #ffa500;
  background-color: #f4eebb;
  color: #ff8000;
}

#pagination a[href] {
  color: #7ba400;
}

#pagination a[href] span:hover {
  background-color: #7ba400;
  border-color: #496000;
  color: #496000;
  text-shadow: none;
}

#total-results {
  color: #c1002b;
}

code.query {
  background-color: #f4eebb;
  display: block;
  border-style: solid;
  border-color: #ffa500;
  font-size: 12pt;
  padding: 2pt;
  color: #ff8000;
  text-shadow: 1px 1px rgba(255, 255, 255, 0.9);
  border-width: 2px;
  margin: 0;
  margin-bottom: 5pt;
  cursor: pointer;
}

code.query.serial:not(.active) span {
  padding: 2pt;
}

code.query pre {
  display: block;
  padding: 2px 5px;
  margin: 0;
}

code.query.serial:not(.active) pre {
  display: none;
}

code.query.serial.active span {
  display: none;
}

#sidebar.active {
  margin-left: 0px;
  left: 0;
  top: 0;
}

#sidebar {
  color: #fff;
  text-shadow: none;
  transition: all .3s ease-in-out;
  position: fixed;
  z-index: 500;
  height: 100%;
  background-color: #496000;
  width: 260px;
  margin-left: -245px;
  left: 0;
  top: 0;
}

#sidebar > * {
  opacity: 0;
  transition-property: opacity;
  transition-duration: .3s;
}

#sidebar:not(.active) > i.fa-bars {
  opacity: 1;
  cursor: pointer;
  background-color: #496000;
  position: fixed;
  font-size: 16pt;
  width: 16pt;  
  height: 17pt;
  padding: 6pt;
  bottom: 0;
  left: 0;
  border-top-right-radius: 5pt;
}

#sidebar.active > * {
  opacity: 1;
}

#sidebar.active > i.fa-bars {
  opacity: 0;
}

#sidebar h2 {
  font-size: 100%;
  font-weight: bold;
  text-align: center;
  padding: 0;
  margin: 0 0 5pt 0;
}

#sidebar ul {
  list-style-type: none;
  margin: 0;
  font-size: 10pt;
  text-indent: 0;
  padding: 0;
}

#sidebar ul li {
  padding: 4pt 10pt;
}

#sidebar ul li h3 {
  font-weight: bold;
  font-size: 100%;
  padding: 0;
  margin: 0;
}

#sidebar ul li.active h3 {
  margin-bottom: 2pt;
  padding-bottom: 2pt;
  border-bottom: 1px solid black;
}

#sidebar ul li.active {
  background-color: #7ba400;
  text-shadow: 1px 1px rgba(0, 0, 0, 0.4);
}

dl.info {
  font-size: 9pt;
  padding: 0 10pt;
}

dl.info dt {
  font-weight: bold;
  float: left;
}

dl.info dd {
  text-align: right;
}

#tutorial {
  position: fixed;
  display: block;
  z-index: 9999;
  background-color: #496000;
  border-radius: 15px;
  padding: 5px;
  top: 2%;
  bottom: 2%;
  left: 5%;
  right: 5%;
}

#tutorial:not(.active) {
  display: none;
}

#tutorial.active {
  display: block;
}

#tutorial > i,
#tutorial > a > i {
  font-size: 20pt;
  color: #496000;
  position: absolute;
  z-index: 100;
  top: 10pt;
  right: 20pt;
  cursor: pointer;
}

#tutorial > a > i {
  right: 40pt;
}

#tutorial iframe {
  width: 100%;
  min-height: 100%;
  border-width: 0;
  border-radius: 10px;
  background-image: url('img/crab.svg');
  background-size: 10%;
  background-repeat: no-repeat;
  background-position: center center;
  background-color: white;
}

h1 {
    margin: 0;
    left: 0;
    top: 0;
    background-image: url('/img/korap-logo-solo.svg');
    position: absolute;
    width: 260px; /* like sidebars*/
    height: 68px; /* like #top */
    z-index: 999;
    background-repeat: no-repeat;
    background-position: center center;
    background-size: 65%;
}

h1 span {
  margin-left: -3000px;
}

#search {
  margin-bottom: 44px;
}

#search.match {
  margin-top: 14pt;
}

main {
  margin-left: 30px;
  margin-right: 14px;
}

main.embedded {
  margin-left: 14px;
  margin-right: 14px;
}