/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/* Common styles and definitions. */

@import "//fonts.googleapis.com/css?family=Open+Sans:300,400,700&subset=latin,cyrillic-ext,greek-ext,cyrillic,greek,vietnamese,latin-ext";
@import "//fonts.googleapis.com/css?family=Source+Code+Pro";
*,
*::after,
*::before {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}
h1, h2, h3, h4, h5, h6 {
  font-weight: normal;
  margin: .25em 0 .5em;
}
h1 {
  font-size: 2em;
}
h2 {
  font-size: 1.5em;
}
h3 {
  font-size: 1.3em;
}
h4, h5, h6 {
  font-size: 14px;
  font-style: italic;
}
ul, ol {
  list-style: none;
}

/* Utility classes */

.u-sha1 {
  background-color: #f1f2f3;
  color: #000;
  font-size: 13px;
}
.u-pre {
  font-size: 10pt;
  white-space: pre;
}
.u-lineNum {
  border-right: 1px solid #f1f2f3;
  color: #666;
  display: inline-block;
  min-width: 3em;
  text-align: right;
}
.u-noSelect {
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}
.u-monospace {
  font-family: 'Source Code Pro', monospace;
}

/* Common.soy */

.Site {
  background: #fff;
  color: #000;
  display: -ms-flexbox;
  display: flex;
  font: 14px/1.54 'Open Sans', sans-serif;
  min-height: 100vh;
  -ms-flex-direction: column;
  flex-direction: column;
}
.Site-header,
.Site-footer {
  background: #eee;
  -ms-flex: none;
  flex: none;
}
.Site-header--withNavbar {
  background: #fff;
}
.Site-content {
  -ms-flex: 1 0 auto;
  flex: 1 0 auto;
  padding: 20px;
}
.Container {
  margin: 0 auto;
  max-width: 980px;
}
.Container--fullWidth {
  max-width: none;
}
.Header,
.Footer {
  -ms-flex-align: center;
  align-items: center;
  display: -ms-flexbox;
  display: flex;
  padding: 20px;
}
.Site-header--withNavbar .Header {
  max-width: 980px;
  margin: 0 auto;
  padding: 10px 0;
}
.Header-title,
.Header-image {
  display: -ms-flexbox;
  display: flex;
  -ms-flex: 1;
  flex: 1;
}
.Header-anchor {
  color: #666;
  font-size: 32px;
  font-weight: 300;
  text-decoration: none;
}
.Header-anchorLogo {
  display: inline-block;
  margin-right: 10px;
  vertical-align: middle;
}
.Header-nav {
  background: #eee;
  padding: 15px 0;
}
.Header-menu {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-pack: end;
  justify-content: flex-end;
}
.Header-menuItem {
  color: #00e;
  display: inline-block;
  margin-left: 15px;
}
.Header-menuItem--noAction {
  color: inherit;
}
.Breadcrumbs {
  font-size: 18px;
  margin-bottom: 20px;
}
.Breadcrumbs-crumb {
  color: #00e;
}
.Breadcrumbs-crumb:last-child {
  color: #000;
  font-weight: bold;
}
.Footer {
  color: #666;
}
.Footer-poweredBy {
  -ms-flex: 1;
  flex: 1;
}
.Footer-formats,
.Footer-links {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-pack: end;
  justify-content: flex-end;
}
.Footer-formatsItem {
  display: inline-block;
}
.Footer-formatsItem:first-child {
  margin-right: 20px;
}
.Footer-link {
  display: inline-block;
  margin-left: 10px;
}
.RepoList-item {
  display: -ms-flexbox;
  display: flex;
  left: -10px;
  padding: 5px 0 5px 10px;
  position: relative;
  white-space: nowrap;
  width: calc(100% + 20px);
}
.RepoList-item:link,
.RepoList-item:visited {
  text-decoration: none;
}
.RepoList-item:hover {
  background: #eee;
}
.RepoList-item--header {
  font-weight: bold;
  margin: 0;
}
.RepoList-item--header:hover {
  background: #fff;
}
.RepoList-itemName,
.RepoList-itemDescription {
  display: inline-block;
}
.RepoList-itemName {
  margin-right: 10px;
  min-width: 25%;
  text-decoration: underline;
}
.RepoList-item--header > .RepoList-itemName {
  text-decoration: none;
}
.RepoList-itemDescription {
  color: #000;
  -ms-flex: 1;
  flex: 1;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* RepositoryIndex.soy */

.RepoDescription {
  margin: 10px 0;
}
.RepoMirroredFrom {
  margin: 10px 0;
  color: #666;
}
.CloneRepo {
  background: #eee;
  margin-bottom: 20px;
  padding: 10px;
}
.CloneRepo-title {
  margin-bottom: 2px;
}
.CloneRepo-command {
  border: 1px solid #ccc;
  border-radius: 4px;
  display: block;
  font-size: inherit;
  padding: 10px;
  width: 100%;
}
.RepoShortlog {
  display: -ms-flexbox;
  display: flex;
}
.RepoShortlog-refs {
  -ms-flex: none !important;
  flex: none !important;
  width: 20%;
}
.RepoShortlog-refs > .RefList:first-child {
  margin: 0;
}
.RepoShortlog-log {
  -ms-flex: 1;
  flex: 1;
  width: 80%;
}
.RepoIndexDoc {
  border-top: 1px solid #ddd;
  margin-top: 20px;
  padding-top: 5px;
}
.EmptyRepo-header {}
.EmptyRepo-description {
  font-size: 14px;
  font-style: italic;
}

/* RefList.soy */

.Refs {}
.RefList {
  margin: 15px 0;
}
.RefList-title {
  margin: 0;
}
.RefList-items {}
.RefList-item {
  padding: 2px 0;
}

/* LogDetail.soy */

.LogNav {
  margin: 10px 0;
  text-align: center;
}
.CommitLog {}
.CommitLog-item {
  padding: 2px 0;
}
.CommitLog-item--oneline:hover {
  background: #eee;
}
.CommitLog-item--full {
  margin-bottom: 20px;
}
.CommitLog-item--empty {
  padding: 10px 0;
  text-align: center;
}
.CommitLog-sha1 {
  border-radius: 3px;
  display: inline-block;
  margin-right: 3px;
  padding: 2px 4px;
  text-align: center;
}
.CommitLog-time {
  color: #666;
}
.CommitLog-branchLabel {
  color: #dd4b39;
}
.CommitLog-tagLabel {
  color: #093;
}
.CommitLog-rename {
  font-size: 0.9em;
  display: block;
  padding-left: 5px;
}

/* ObjectDetail.soy */

.Metadata {
  margin-bottom: 15px;
}
.Metadata-title {
  font-weight: bold;
  padding-right: 10px;
  text-align: right;
}
.MetadataMessage {
  background-color: #fafafa;
  border: 1px solid #ccc;
  color: #000;
  margin: 0;
  padding: 12px;
  white-space: pre-wrap;
}
.DiffTree {
  margin: 10px 0 5px;
}
.DiffTree-action {
  margin-left: .5em;
}
.DiffTree-action--add {
  color: #060;
}
.DiffTree-action--delete {
  color: #600;
}
.DiffTree-action--rename,
.DiffTree-action--copy {
  color: #006;
}
.DiffSummary {}
.TreeDetail-sha1,
.BlobSha1 {
  margin: 10px 0;
  padding: 5px 10px;
}
.FileList {
  margin-left: 25px;
}
.FileList-item {
  padding: 1px 0;
  position: relative;
}
.FileList-item:hover {
  background: #eee;
}
.FileList-item::before {
  left: -22px;
  position: absolute;
  top: 4px;
}
.FileList-itemLink {
  display: block;
}
/* Tree icons are taken from the public domain Tango icons:
 * http://tango.freedesktop.org/Tango_Icon_Library
 * Compressed with pngcrush -brute -rem tEXt -rem tIME -rem iTXt -rem zTXt */
.FileList-item--gitTree::before {
  /* places/folder.png */
  content: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAN1wAADdcBQiibeAAAAb5JREFUOMulkr1KA0EQgGdvTwwnYmER0gQsrFKmSy+pLESw9Qm0F/ICNnba+h6iEOuAEWslKJKTOyJJvIT72d1xZuOFC0giOLA77O7Mt/PnNptN+I+49Xr9GhH3f3mb0v1ht9vtLAUYYw5ItkgDL3KyD8PhcLvdbl/WarXT3DjLMnAcR/f7/YfxeKwtgC5RKQVhGILWeg4hQ6hUKjWyucmhLFEUuWR3QYBWAZABQ9i5CCmXy16pVALP80BKaaG+70MQBLvzFMjRKKXh8j6FSYKF7ITdEWLa4/ktokN74wiqjSMpnVcbQZqmEJHz+ckeCPFjWKwULpyspAqhdXVXdcnZcPjsIgn+2BsVA8jVYuWlgJ3yBj0icgq2uoK+lg4t+ZvLomSKamSQ4AI5BcMADtMhyNoSgNIISUaFNtwlazcDcBc4gjjVwCWid2usCWroYEhnaqbzFJLUzAHIXRDChXCcQP8zhkSZ5eNLgHAUzwDcRu4CoIRn/wsGUQIIy4Vr9TH6SYFCNzw4nALn5627K4vIttOUOwfa5YnrDYzt/9OLv9I5l8kk5hZ3XLO20b7tbR7zHLy/BX8G0IeBEM7ZN1NGIaFUaKLgAAAAAElFTkSuQmCC);
}
.FileList-item--symlink::before {
  /* actions/edit-redo.png */
  content: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAA3XAAAN1wFCKJt4AAABZUlEQVQ4y2NgIAL4zWL7D8TGDOQCqAEg7Ey2Aes+58AMcSSkmB2I3YB4HhCfh9kOMoCgIUAJMyDe2D+b58jKe553133M+r/uU/b/zV+L/y97n/i/+JIYbkOAAl5AfGLNTde/69+n/1/4MuD/gtsqKBhkALIh5S0M1jDN2kC8a+UNt/8b36f+X3JP5f/0u1pwjeuvS8E1g3DpZQm4ITAD5s09ZPBq49uE/0vvq4E1gPCJC5z/yy+IoGgG4a5HJqjeCJ3Pc2vjy+T/ux4Y/j99Rfz/7GtK/xfeUkbBN+8pY9cMAkFzuT5uepPy/+w1lf+TF3L/Q4p3OD5zRQ67Zlg873vk9n/mMlaQ5EcgLgZiA2R5nJphCjbfNP8LVeCBJyUa40xpO+5afQXS/8jKC0DJg+uPKx+bOJf1HDYXEJPW46JW8LcduKYzbdZMph4gn4ccQxSAOAuIo4FYdvsKFpYdK1iYCekDACq5JXDHGJhDAAAAAElFTkSuQmCC);
}
.FileList-item--regularFile::before {
  /* mimetypes/text-x-generic.png */
  content: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAtElEQVQ4ja2TSw7CIBRFu0r3wyIYsAMHDl1CC92IDqC0wAbQi4Fo5VOMJGcAyT33vQEDY+xCCPGdnIZ48NB7kPkSLMvipZQBpVQC70Br7Y0xZQGC4zj6aZoCnPMPhBBtwb41NoN1XesCBHPNhyfI7fziFu6HJti3IgS0vrcFuZ3Btm2JpmC/M5jnOdEU5JoRstYmigKES80x7JyrC+IE7+1xAoSrgp//AqX02vsbn5nz8K/zAP9CzjbgFoHjAAAAAElFTkSuQmCC);
}
.FileList-item--executableFile::before {
  /* mimetypes/text-x-script.png */
  content: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QA7ADsAOwdIxY2AAAACXBIWXMAAAsTAAALEwEAmpwYAAABOklEQVQ4T5WTTYqDQBBGPdKcZnIJdy7EVRByBQPi0iwHAlGT0YBHcG82kkV2VnffoKar7FYzIQYLPtqffq+rEJ04jn/CMMSV+XZs0YO1RcyLoO/7MdAD9gAI8wiK+CyYA0IDFABhrmFBAHNYbwYTIxFyWN8KwAiEmIEaknqVUposCoBBGE8cIGUipUKp5IJAzOe2JxI0pG1b3Gw2+Hg8FjoQzy0rLVAavt0GuGkaXrfb7avAzs0CNcHtDD4ejwzTve/7X/9GGFqn2QmkDmzbBJ9OJ8yyDNM0Rdd1J8mzgDqQPDNJLFwUBZ7PZ7xcLizwPI9gfj+NYAX2k+kx7vc7byrLEquqwuv1ivv9HpMk4ec6Uwfvqus63lzXNeZ5zoIRpoqiKP/09wVBwNDhcOB1t9v9OmuLTnw62dQfVIHPYx/I/0kAAAAASUVORK5CYII=);
}
.FileList-item--gitlink::before {
  /* emblems/emblem-symbolic-link.png */
  content: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAA3XAAAN1wFCKJt4AAABO0lEQVQ4T7WT3U6EMBCF92m99yGMZuODGL01eueyXqjvwc+WUlooUPkfZxq3sQEvJLHJSQvlfDOnDbub/dUFCrZof3t9uaPF1kFeBwjD8E+apukfAVEUQRzHkCQJJKfEznES43tUGP0OIOMheIGn50e4f7izCo4H4GkKDEXPBIviCIZh8AFkfv94g5Qx4Jw7AOn4Grh1iqATdrUAEJmxFLIsgzzPQSnpQc4SIkMIh7ZtfQCjys6soNQlVFW1AEgpQWQCjDE+gHIKIaxZo7mu69UOiqJwRXxAxnFDQllS5XUzSeO+kmoJoOzUni41NE1tM9JBTdMII85d14FpjI2lihUA9wCNA8zzDOM4WkBjvgFqrQO8ulzmNgLl/8SPyTT0WL3vLLBGsNZ6HUBV1tT3vROd/Fk/AZt/Z/J+AUN8ayghXmezAAAAAElFTkSuQmCC);
}
.FileContents {
  border-collapse: collapse;
  border-spacing: 0;
  margin: 10px 0;
}
.FileContents-line {
  border: none;
}
.FileContents-lineNum {
  padding-right: 10px;
  width: 1%;
}
/* Used to prevent copying the line number. */
.FileContents-lineNum::before {
  color: #aaa;
  content: attr(data-line-number);
  cursor: pointer;
}
.FileContents-lineContents {
  line-height: 1.3em;
  min-height: 1em;
  padding-left: 10px;
}
.FileContents-lineContents:target {
  background: #cfd8dc;
}
.InlineReadme {
  border-top: 1px solid #ddd;
  margin: 10px 0;
  padding: 7px 0;
}
.InlineReadme-path {
  color: #666;
}

/* BlameDetail.soy */

.Blame {
  border-collapse: collapse;
  font-size: 8pt;
  margin: 0 auto;
}
.Blame-region--bg1 {
  background: #fff;
}
.Blame-region--bg2 {
  background: #f1f2f3;
}
.Blame-sha1,
.Blame-author,
.Blame-time,
.Blame-regionLink {
  font-size: 8pt;
  padding: 0 3px;
  white-space: nowrap;
}
.Blame-regionLink {
  text-align: right;
}
.Blame-lineNum .u-lineNum {
  padding: 0 8px;
  text-align: right;
}
.Blame-lineNum:hover {
  text-decoration: underline;
}
.Blame-lineContent {
  font-size: 9pt;
  line-height: 1.3em;
  padding: 0 8px;
}

/* DiffDetail.soy */

.Diff {
  margin: 10px 0;
}
.Diff-fileIndex {
  color: #444;
  font-weight: bold;
}
.Diff-unified {
  border-bottom: 1px solid #ddd;
  border-top: 1px solid #ddd;
  padding: 10px 0;
}
.Diff-hunk {
  color: #00c;
}
.Diff-delete {
  color: #c00;
}
.Diff-insert {
  color: #080;
}
