/**
 * 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.
 */

/* Markdown rendered in /+doc/ or tree view page . */

.Site-Content--markdown {
  padding-top: 0;
}
.Header-nav ul {
  max-width: 980px;
  margin: 0 auto;
}
.Header-nav li {
  display: inline-block;
  margin-right: 15px;
}
.doc h1, .doc h2, .doc h3, .doc h4, .doc h5, .doc h6 {
  font-weight: normal;
  margin: 1.236em 0 .618em;
}
.doc.RepoIndexDoc h1 {
  margin-top: .25em;
}
.doc h1 {
  font-size: 2em;
}
.doc h2 {
  font-size: 1.5em;
}
.doc h3 {
  font-size: 1.3em;
}
.doc h4,
.doc h5,
.doc h6 {
  font-size: 14px;
  font-style: italic;
}
.doc hr {
  border: none;
  border-top: 1px solid #aaa;
  display: block;
  margin-top: 25px;
}
.doc a {
  text-decoration: none;
}
.doc a:link {
  color: #245dc1;
}
.doc a:visited {
  color: #7759ae;
}
.doc a:hover {
  text-decoration: underline;
}
.doc a.h {
  display: inline-block;
  font-weight: normal;
  width: 1.5em;
  margin-left: -1.5em;
  margin-top: -1em;
  margin-bottom: -1em;
}
.doc a.h:link,
.doc a.h:visited {
  color: #444;
}
.doc a.h:focus {
  outline: none;
}
.doc a.h:hover {
  text-decoration: none;
}
.doc a.h span {
  display: inline-block;
  width: 1.5em;
}
.doc h1:hover a.h span:before,
.doc h2:hover a.h span:before,
.doc h3:hover a.h span:before,
.doc h4:hover a.h span:before,
.doc h5:hover a.h span:before,
.doc h6:hover a.h span:before {
  content: '#';
  font-weight: normal;
  color: #AAA;
}
.doc h1:hover a:hover.h span:before,
.doc h2:hover a:hover.h span:before,
.doc h3:hover a:hover.h span:before,
.doc h4:hover a:hover.h span:before,
.doc h5:hover a:hover.h span:before,
.doc h6:hover a:hover.h span:before {
  text-decoration: underline;
}
.doc h1:hover a:visited.h span:before,
.doc h2:hover a:visited.h span:before,
.doc h3:hover a:visited.h span:before,
.doc h4:hover a:visited.h span:before,
.doc h5:hover a:visited.h span:before,
.doc h6:hover a:visited.h span:before {
  color: #AAA;
}
.doc ul, .doc ol {
  margin: 10px 10px 10px 30px;
  padding: 0;
}
.doc ul {
  list-style-type: disc;
}
.doc ol {
  list-style-type: decimal;
}
.doc img {
  border: 0;
  max-width: 100%;
}
.doc iframe {
  min-width: 100px;
  min-height: 30px;
}
iframe.noborder {
  border: 0;
}
.doc em {
  font-weight: normal;
  font-style: italic;
}
.doc strong {
  font-weight: bold;
  color: inherit;
}
.doc p {
  margin: 10px 0;
}
.doc pre {
  padding: 12px;
  font-size: 10pt;
  background-color: #fafafa;
  border: 1px solid #ccc;
  overflow-x: auto;
}
.doc code {
  padding: 2px 4px;
  background-color: #F5F5F5;
  border: transparent;
  border-radius: 4px;
}
.doc .code {
  font-family: 'Source Code Pro', monospace;
}
.doc dl dt {
  margin-top: 1em;
}
.doc table {
  border-collapse: collapse;
  border-spacing: 0;
}
.doc th {
  text-align: center;
}
.doc th,
.doc td {
  border: 1px solid #eee;
  padding: 4px 12px;
  vertical-align: top;
}
.doc th {
  background-color: #f5f5f5;
}
.toc {
  margin-top: 30px;
}
.toc-aux {
  background: #f9f9f9;
  border: 1px solid #f2f2f2;
}
.toc h2 {
  margin: 0 0 5px 0;
}
.toc ul {
  margin: 10px 10px 10px 30px;
}
.toc ul li {
  margin-left: 0px;
  list-style: disc;
}
.toc ul ul {
  margin-top: 0;
  margin-bottom: 0;
}
.toc ul ul li {
  list-style: circle;
}
.note,
.promo,
.aside {
  border: 1px solid;
  border-radius: 4px;
  margin: 10px 0;
  padding: 10px;
}
.note {
  background: #fffbe4;
  border-color: #f8f6e6;
}
.promo {
  background: #f6f9ff;
  border-color: #eff2f9;
}
.aside {
  background: #f9f9f9;
  border-color: #f2f2f2;
}
.note :first-child,
.promo :first-child,
.aside :first-child {
  margin-top: 0;
}
.note p:last-child,
.promo p:last-child,
.aside p:last-child {
  margin-bottom: 0;
}
.cols {
  margin: 0 -1.533%;
  width: 103.067%;
}
.col-1, .col-2, .col-3, .col-4, .col-5, .col-6,
.col-7, .col-8, .col-9, .col-10, .col-11, .col-12 {
  display: inline-block;
  margin: 0 1.488% 20px;
  vertical-align: top;
}
.cols h1, .cols h2, .cols h3, .cols h4, .cols h5, .cols h6 {
  margin: .67em 0;
}
.col-1 { width: 5.357%; }
.col-2 { width: 13.690%; }
.col-3 { width: 22.024%; }
.col-4 { width: 30.357%; }
.col-5 { width: 38.690%; }
.col-6 { width: 47.024%; }
.col-7 { width: 55.357%; }
.col-8 { width: 63.690%; }
.col-9 { width: 72.024%; }
.col-10 { width: 80.357%; }
.col-11 { width: 88.690%; }
.col-12 { width: 97.024%; }
.cols hr { width: 80%; }
