@charset "UTF-8";
.fa, .btn-menu:before, .search-icon:before, .header-dropdown-link:after, .sidenav-title:after, .nav-content .has_submenu:before, .content a[href^="http"]:after,
.external-link:after, .note:before, .tip:before, .to-top a:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }

/* FONT PATH
 * -------------------------- */
@font-face {
  font-family: 'FontAwesome';
  src: url("../fonts/font-awesome/fontawesome-webfont.eot?v=4.6.2");
  src: url("../fonts/font-awesome/fontawesome-webfont.eot?v=4.6.2#iefix") format("embedded-opentype"), url("../fonts/font-awesome/fontawesome-webfont.woff2?v=4.6.2") format("woff2"), url("../fonts/font-awesome/fontawesome-webfont.woff?v=4.6.2") format("woff"), url("../fonts/font-awesome/fontawesome-webfont.ttf?v=4.6.2") format("truetype"), url("../fonts/font-awesome/fontawesome-webfont.svg?v=4.6.2#fontawesomeregular") format("svg");
  font-weight: normal;
  font-style: normal; }
/*
 * FILE: _reset.scss
========================================================================== */
html {
  font-family: sans-serif;
  /* 1 */
  -ms-text-size-adjust: 100%;
  /* 2 */
  -webkit-text-size-adjust: 100%;
  /* 2 */ }

audio,
canvas,
progress,
video {
  display: inline-block;
  /* 1 */
  vertical-align: baseline;
  /* 2 */ }

audio:not([controls]) {
  display: none;
  height: 0; }

[hidden],
template {
  display: none; }

a {
  background: transparent; }

a:active,
a:hover {
  outline: 0; }

b,
strong {
  font-weight: bold; }

h1 {
  font-size: 2em;
  margin: 0.67em 0; }

sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline; }

sup {
  top: -0.5em; }

sub {
  bottom: -0.25em; }

svg:not(:root) {
  overflow: hidden; }

figure {
  margin: 1em 40px; }

hr {
  -moz-box-sizing: content-box;
  box-sizing: content-box;
  height: 0; }

pre {
  overflow: auto; }

code,
kbd,
pre,
samp,
.filepath {
  font-family: monospace, monospace;
  font-size: 1em; }

button,
input,
optgroup,
select,
textarea {
  color: inherit;
  /* 1 */
  font: inherit;
  /* 2 */
  margin: 0;
  /* 3 */ }

button {
  overflow: visible; }

button,
select {
  text-transform: none; }

button,
html input[type="button"],
input[type="reset"],
input[type="submit"] {
  -webkit-appearance: button;
  /* 2 */
  cursor: pointer;
  /* 3 */ }

button[disabled],
html input[disabled] {
  cursor: default; }

button::-moz-focus-inner,
input::-moz-focus-inner {
  border: 0;
  padding: 0; }

input {
  line-height: normal; }

input[type="checkbox"],
input[type="radio"] {
  box-sizing: border-box;
  /* 1 */
  padding: 0;
  /* 2 */ }

input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
  height: auto; }

input[type="search"] {
  -webkit-appearance: textfield;
  /* 1 */
  -moz-box-sizing: content-box;
  -webkit-box-sizing: content-box;
  /* 2 */
  box-sizing: content-box; }

input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none; }

fieldset {
  border: 1px solid #c0c0c0;
  margin: 0 2px;
  padding: 0.35em 0.625em 0.75em; }

legend {
  border: 0;
  /* 1 */
  padding: 0;
  /* 2 */ }

textarea {
  overflow: auto; }

optgroup {
  font-weight: bold; }

table {
  border-collapse: collapse;
  border-spacing: 0; }

td,
th {
  padding: 0.3em 0.5em; }

/*
 * FILE: _default.scss
======================================================================== */
* {
  -webkit-font-smoothing: antialiased; }

html {
  font-size: 1em; }

body {
  background-color: #fff;
  font-family: "Source Sans Pro", sans-serif;
  font-weight: 400;
  line-height: 1.45;
  color: #333;
  margin: 0;
  padding: 0; }

p {
  margin-bottom: 1.3em; }

li p {
  margin: 0; }

/*doc
---
title: Link Default
name: link_default
category: basics
---
```html_example
<a class="link" href="#">Link</a>
```
*/
a, .link {
  border-bottom: 1px dotted #cddce5;
  color: #2185c5;
  text-decoration: none;
  -webkit-transition: all 0.1s linear;
  -moz-transition: all 0.1s linear;
  transition: all 0.1s linear; }

img {
  height: auto;
  max-width: 100%; }

h1, h2, h3, h4, h5, h6 {
  margin: 60px 0 0.5em;
  font-weight: inherit;
  line-height: 1.2; }

.steps-header {
  margin-top: -0.2em; }

/*doc
---
title: Headings
name: headings
category: basics
---
```html_example
<h1>h1. heading level 1</h1>
<h2>h2. heading level 2</h2>
<h3>h3. heading level 3</h3>
<h4>h4. heading level 4</h4>
<div class="h2">this is a div with an h2 class</div>
<h5 class="h3">this is an h5 with an h3 class</h5>
<h2><a id='fake-anchor'></a>h2. heading with link</h2>
<h3><a id='other-fake-anchor'></a>h3. heading with link</h3>
```
*/
h1, .h1 {
  margin-top: 0;
  font-size: 2.441em; }

h2, .h2 {
  font-size: 1.953em; }

h3, .h3 {
  font-size: 1.563em; }

h4, h5, .h4 {
  font-size: 1.25em; }

small,
.font_small {
  font-size: 0.8em; }

@media (min-width: 43.75em) {
  h2 > a:before, h3 > a:before {
    content: "";
    display: block;
    height: 80px;
    margin: -80px 0 0; } }

ul,
ol {
  margin: 0 0 1em; }

ul {
  padding: 0 0 0 1.2em; }

ol {
  padding: 0 0 0 1.4em; }

ul ul,
ol ol {
  margin-top: 1em;
  padding-bottom: 0; }

ol li {
  margin: 0 0 1.3em;
  padding: 0; }

ul li {
  margin: 0 0 0.5em;
  padding: 0; }

li li {
  margin-bottom: 0; }

ol img,
ul img {
  margin: 0.5em 0; }

input {
  background-color: #f1f1f1;
  border: 1px solid #eceae9;
  border-radius: 3px;
  box-shadow: #eceae9 1px 1px 4px -2px inset;
  color: #424242;
  display: block;
  padding: 0.5em 1em;
  -webkit-transition: all 0.1s linear;
  -moz-transition: all 0.1s linear;
  transition: all 0.1s linear;
  width: 100%; }
  input:hover {
    border-color: rgba(2, 70, 64, 0.5);
    background-color: #fff; }
  input:focus {
    background-color: #fff;
    border-color: #03786D;
    box-shadow: #eceae9 0 0 4px;
    outline: 0; }

table {
  border-color: #b5b5b5;
  border-collapse: collapse;
  border-style: solid;
  border-width: 1px;
  color: #333333;
  font-size: 1em;
  margin-top: 1em;
  padding: 0.8em 0.7rem;
  width: 100%; }

th {
  background-color: #f8f8f8;
  border-color: #b5b5b5;
  color: #4b6475;
  line-height: 1.1;
  font-size: 1em;
  text-align: left; }

tr {
  color: #686868; }

.content td, .content th, .content tr {
  border: solid 1px grey; }

.content tr:hover {
  background-color: #fdfdfd;
  color: #333; }

caption {
  font-size: 1.25em;
  padding: 0.5em; }

/*doc
---
title: Code Example - Default
name: code_example-default
category: basics
---
```html_example
<pre><code class="highlight ruby"><span class="nb">require</span> <span class="s1">'ova_manager'</span>
<span class="nb">require</span> <span class="s1">'vsphere_clients'</span>

<span class="no">OvaManager</span><span class="o">::</span><span class="no">Deployer</span><span class="p">.</span><span class="nf">new</span><span class="p">({</span>
  <span class="ss">host: </span><span class="s2">"172.16.74.3"</span><span class="p">,</span>
  <span class="ss">user: </span><span class="s2">"root"</span><span class="p">,</span>
  <span class="ss">password: </span><span class="s2">"vmware"</span>
<span class="p">})</span>
</code></pre>
```
*/
pre {
  background-color: #f0f0f0;
  border-radius: 3px;
  font-size: 0.8125rem;
  padding: 1em;
  white-space: pre;
  overflow: auto; }

pre code {
  background-color: transparent;
  border: 0;
  color: #424242;
  direction: ltr;
  font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace;
  overflow: auto;
  text-align: left;
  margin: 0;
  padding: 0;
  word-spacing: normal;
  word-break: normal; }

/*doc
---
title: Code Example - Inline
name: code_example-inline

category: basics
---
```html_example
<code>"mbus"=&gt;"nats://nats:nats@192.168.86.17:4222"</code>
```
*/
code {
  background-color: #f5f5ff;
  border: 1px solid #e4e4e4;
  display: inline-block;
  font-size: 0.8125rem;
  line-height: 1.4;
  margin: 0.2em 0.1em 0.1em;
  padding: 0 0.4em 0 0.4em;
  vertical-align: text-top; }

code a {
  color: #fefefe; }

hr {
  background-color: #eceae9;
  border: 0;
  height: 1px;
  float: left;
  width: 100%; }

.content pre::-webkit-scrollbar {
  -webkit-appearance: none;
  width: 7px;
  height: 7px; }
.content pre::-webkit-scrollbar-thumb {
  border-radius: 4px;
  background-color: rgba(0, 0, 0, 0.5);
  -webkit-box-shadow: 0 0 1px rgba(255, 255, 255, 0.5); }

.hidden {
  display: none !important; }

/*
 * FILE: _syntax-highlight.scss
======================================================================== */
pre .hll {
  background-color: #ffffcc; }

pre .c {
  color: #666666;
  font-style: italic; }

pre .err {
  color: #FF0000;
  background-color: #FFAAAA; }

pre .k {
  color: #228899;
  font-weight: bold; }

pre .o {
  color: #333333; }

pre .cm {
  color: #666666;
  font-style: italic; }

pre .cp {
  color: #557799; }

pre .c1 {
  color: #666666;
  font-style: italic; }

pre .cs {
  color: #cc0000;
  font-weight: bold;
  font-style: italic; }

pre .gd {
  color: #A00000; }

pre .ge {
  font-style: italic; }

pre .gr {
  color: #FF0000; }

pre .gh {
  color: #000080;
  font-weight: bold; }

pre .gi {
  color: #00A000; }

pre .go {
  color: #888888; }

pre .gp {
  color: #c65d09;
  font-weight: bold; }

pre .gs {
  font-weight: bold; }

pre .gu {
  color: #800080;
  font-weight: bold; }

pre .gt {
  color: #0044DD; }

pre .kc {
  color: #228899;
  font-weight: bold; }

pre .kd {
  color: #228899;
  font-weight: bold; }

pre .kn {
  color: #228899;
  font-weight: bold; }

pre .kp {
  color: #0088ff;
  font-weight: bold; }

pre .kr {
  color: #228899;
  font-weight: bold; }

pre .kt {
  color: #6666ff;
  font-weight: bold; }

pre .m {
  color: #6600EE;
  font-weight: bold; }

pre .na {
  color: #000077; }

pre .nb {
  color: #007722; }

pre .nc {
  color: #ee99ee;
  font-weight: bold; }

pre .no {
  color: #41AA9E;
  font-weight: bold; }

pre .nd {
  color: #555555;
  font-weight: bold; }

pre .ni {
  color: #880000; }

pre .ne {
  color: #FF0000;
  font-weight: bold; }

pre .nf {
  color: #3E37DA;
  font-weight: bold; }

pre .nl {
  color: #997700;
  font-weight: bold; }

pre .nn {
  color: #0e84b5;
  font-weight: bold; }

pre .nt {
  color: #007700; }

pre .nv {
  color: #003366; }

pre .ow {
  color: #000000;
  font-weight: bold; }

pre .w {
  color: #bbbbbb; }

pre .mf {
  color: #6600EE;
  font-weight: bold; }

pre .mh {
  color: #005588;
  font-weight: bold; }

pre .mi {
  color: #6666ff;
  font-weight: bold; }

pre .mo {
  color: #4400EE;
  font-weight: bold; }

pre .sb {
  background-color: #F5F5FF; }

pre .sc {
  color: #8888FF; }

pre .sd {
  color: #DD4422; }

pre .s2 {
  background-color: rgba(211, 211, 211, 0.2); }

pre .se {
  color: #666666;
  font-weight: bold;
  background-color: #F5F5FF; }

pre .sh {
  background-color: #F5F5FF; }

pre .si {
  background-color: #eeeeee; }

pre .sx {
  color: #ff8888;
  background-color: #F5F5FF; }

pre .sr {
  color: #000000;
  background-color: #F5F5FF; }

pre .s1 {
  background-color: rgba(211, 211, 211, 0.2); }

pre .ss {
  color: #D60F3F; }

pre .bp {
  color: #007722; }

pre .vc {
  color: #ccccff; }

pre .vg {
  color: #ff8844; }

pre .vi {
  color: #aaaaff; }

pre .il {
  color: #6666ff;
  font-weight: bold; }

/*
 * FILE: _header.scss
======================================================================== */
@media (min-width: 43.75em) {
  .header-layout {
    left: 0;
    padding-left: 1.875em;
    padding-right: 1.875em;
    position: fixed;
    top: 0;
    width: 100%;
    z-index: 11; } }

/*doc
---
title: Header Bar
name: header_bar
category: basics
---
Add <code>.header-layout</code> to header tag to get fixed positioning.

```html_example
<header class="header">
  <h1 class="logo">
    Pivotal Cloud Foundry Documentation
  </h1>
  <div class="header-links js-bar-links">
    <div class="btn-menu" data-behavior="MenuMobile"></div>
    <div class="header-item">
      <a href="/">Docs Home</a>
    </div>
    <div class="header-item">
      <a href="<%=vars.support_url%>" target="_blank">Support</a>
    </div>
    <div class="header-item searchbar js-searchbar">
      <a class="search-icon" data-behavior="Search"></a>
      <div class="search-input">
      </div>
    </div>
  </div>
</header>
```
*/
.header {
  background: #243640;
  border-bottom: 3px solid #00a79d;
  color: #fefefe;
  min-height: 2.375em;
  padding: 0.3125em 1em 0.3125em 1em; }
  .header:after {
    content: "";
    display: table;
    clear: both; }

.header a {
  color: #fff;
  display: inline-block; }

.header img {
  height: 1;
  margin-right: 0.5em;
  width: 25px;
  vertical-align: top; }

.logo {
  float: left;
  font-size: 1em;
  font-weight: bold;
  line-height: 1.5625rem;
  margin-bottom: 0; }

.logo a {
  border: 0; }

@media (min-width: 43.75em) {
  .header-links {
    float: right;
    text-align: right;
    width: 50%; } }

.btn-menu {
  float: right;
  position: relative;
  right: -1em;
  padding: 0 1em; }
  .btn-menu:before {
    content: "";
    padding-right: 0.4em;
    padding-top: 0.4em; }
  .btn-menu:hover {
    cursor: pointer; }
  @media (min-width: 43.75em) {
    .btn-menu {
      display: none; } }

.menu-active .btn-menu {
  margin-bottom: 0.5em; }
  .menu-active .btn-menu:before {
    content: '\d7'; }

.header-item {
  clear: both;
  display: none;
  font-weight: bold;
  -webkit-transition: opacity;
  -moz-transition: opacity;
  transition: opacity;
  font-size: 0.8em;
  line-height: 1; }
  @media (min-width: 43.75em) {
    .header-item {
      clear: none;
      display: inline-block;
      padding-top: 0.55em; } }

@media (max-width: 43.75em) {
  .menu-active .header-item {
    display: block; } }

@media (min-width: 43.75em) {
  .header-item:after {
    content: "|"; } }

@media (min-width: 43.75em) {
  .header-item:last-child:after {
    content: ""; } }

/*doc
---
title: Link Header
name: link header
category: basics
---
```html_example
<div style="background: black">
  <div class="header-item">
    <a href="#">Link</a>
  </div>
  <div class="header-item">
    <a href="#">Link</a>
  </div>
  <div class="header-item">
    <a href="#">Link</a>
  </div>
</div>
```
*/
.header-item a {
  border-bottom-color: #686868;
  border-style: dotted;
  border-width: 0 0 1px;
  color: #fff;
  display: block;
  padding: 0.5em 0; }
  @media (min-width: 43.75em) {
    .header-item a {
      display: inline;
      margin-left: 1em;
      margin-right: 1em;
      padding: 0; } }

@media (min-width: 43.75em) {
  .header-item a:hover {
    background-color: transparent;
    border-bottom: 0; } }

.header-home {
  border-top: 5px solid #00a79d;
  background: #243640;
  color: #fff;
  padding: 0 1.5em 4em 1.5em;
  text-align: center;
  margin-bottom: 3em; }

.home-links {
  padding-top: .5rem;
  margin-bottom: 3em;
  text-align: left; }
  @media (min-width: 43.75em) {
    .home-links {
      text-align: right;
      margin-bottom: 0; } }

/*doc
---
title: Title Flashy
name: title_flashy
category: basics
---
```html_example
<h1 class="title-flashy">
  <span class="title-deemph">Pivotal</span> Documentation
</h1>
```
*/
.title-flashy {
  display: inline-block;
  font-weight: 600;
  font-size: 1.563em;
  text-align: left;
  margin-left: 1rem; }
  .title-flashy img {
    height: 3.8125rem;
    vertical-align: middle;
    padding-right: .5rem;
    float: left; }
    @media (min-width: 43.75em) {
      .title-flashy img {
        height: 2.8125rem;
        float: none; } }
  @media (min-width: 43.75em) {
    .title-flashy {
      font-size: 2.441em;
      margin-left: 0;
      padding-left: 1.8em;
      padding-top: 2rem;
      text-align: center; } }

/*doc
---
title: Title Intro
name: title_intro
category: basics
---
```html_example
<h2 class="title-intro">
  Everything you need to know about Pivotal Software.
</h2>
```
*/
.title-intro {
  font-size: 1.25em;
  font-weight: 300;
  margin: 0 auto 0.5em;
  max-width: 30em;
  text-align: center; }
  @media (min-width: 43.75em) {
    .title-intro {
      font-size: 1.563em; } }

.title-deemph {
  font-weight: 300; }

.searchbar {
  -webkit-transition: all 0.2s linear;
  -moz-transition: all 0.2s linear;
  transition: all 0.2s linear;
  color: #eee;
  margin-bottom: 1em;
  margin-top: 1.3em;
  padding-top: 0; }
  @media (min-width: 43.75em) {
    .searchbar {
      margin-bottom: 0;
      margin-top: 0;
      position: relative; } }

.searchbar:hover {
  cursor: pointer; }

.searchbar a {
  margin: 0;
  padding: 0.55em 1em; }

.searchbar a,
.searchbar a:hover {
  border-bottom: 0; }

.search-input-inner {
  position: relative; }

.search-icon:before {
  content: "";
  color: #c7c7c7; }

.header-item .search-icon {
  display: none; }
  @media (min-width: 43.75em) {
    .header-item .search-icon {
      display: block; } }

.search-input {
  display: none; }
  @media (min-width: 43.75em) {
    .search-input {
      padding: 1em;
      position: absolute;
      right: 0;
      top: 100%;
      width: 30em; } }

.active .search-input {
  display: block; }

@media (max-width: 43.75em) {
  .menu-active .search-input {
    display: block; } }

#search-dropdown-box {
  display: none; }

/*doc
---
title: Version Menu
name: version menu
category: basics
---
```html_example
<div class="header-dropdown">
  <a class="subnav-link" href="#">
    v1.2.0.0
  </a>
  <div class="header-dropdown-content">
    <ul>
      <li><a href="">v1.2.0.0</a></li>
    </ul>
  </div>
</div>
```
*/
.header-dropdown {
  border-radius: 0.5em;
  float: left;
  font-size: 0.9em;
  font-weight: bold;
  line-height: 1.5625rem;
  margin-left: 0.5em;
  margin-top: 0.04em;
  position: relative; }

.header-dropdown:hover .header-dropdown-content {
  display: block; }

.header-dropdown-link {
  border: 0;
  display: block;
  line-height: 1.4;
  padding: 0 0.5em; }

.header-dropdown-link:after {
  color: #4b6475;
  content: "";
  font-size: 0.8em;
  padding-left: 0.2em; }

.header-dropdown-content {
  background: #fdfdfd;
  box-shadow: 2px 1px 5px rgba(153, 153, 153, 0.2);
  border: 1px solid #eceae9;
  display: none;
  left: -0.875rem;
  min-width: 6.25em;
  padding: 0.5em;
  position: absolute;
  top: 100%;
  z-index: 11; }

.header-dropdown-content a {
  border: 0;
  color: #424242;
  display: block;
  padding-left: 0.9em; }

.header-dropdown-content ol,
.header-dropdown-content ul {
  list-style: none;
  margin: 0;
  padding: 0; }

.header-dropdown-content li {
  display: block;
  margin: 0; }

/*
 * FILE: _footer.scss
======================================================================== */
.site-footer-links {
  font-size: 0.8em;
  clear: both;
  padding: 1em 30px 4em 30px; }
  .site-footer-links a {
    color: #424242; }

@media (min-width: 43.75em) {
  .copyright {
    float: left; } }

@media (min-width: 43.75em) {
  .support {
    float: right; } }

#feedback #feedback-comments {
  margin-top: 1em;
  width: 49%; }
#feedback #feedback-helpful {
  border: none;
  margin-top: 1em; }
#feedback .feedback-option {
  float: left;
  margin-left: 2em;
  margin-top: 0.5em;
  width: 22%; }
#feedback form fieldset {
  width: 11em;
  float: left; }
#feedback textarea {
  width: 100%; }
#feedback input[type='submit'] {
  background-color: rgba(0, 167, 157, 0.2);
  float: left;
  margin-left: 1em;
  margin-top: 2.5em;
  padding: 1em;
  width: 8em; }

#repo-link {
  display: block;
  border-bottom: solid 1px #eceae9;
  border-top: solid 1px #eceae9;
  text-align: center;
  padding: 1em 0;
  font-weight: bold; }

.search-results .result-summary {
  margin: 20px; }
.search-results .search-results-list {
  list-style: none;
  padding-left: 20px; }
  .search-results .search-results-list li {
    margin-top: 30px; }
    .search-results .search-results-list li:first-child {
      margin-top: 0; }
.search-results .no-results {
  text-align: center;
  padding: 50px 0;
  border-bottom: 2px solid #F4F4F4;
  font-size: 20px;
  color: #66747B;
  font-weight: bold; }
.search-results .pagination {
  margin-top: 30px;
  text-align: center; }
  .search-results .pagination a.page {
    border: 0; }
  .search-results .pagination .page {
    display: inline-block;
    margin: 0 8px; }
    .search-results .pagination .page.disabled {
      color: #D3D3D3; }
    .search-results .pagination .page.current {
      color: #808080;
      border-bottom: 2px solid #808080; }
    .search-results .pagination .page.first:before {
      content: "\F053\F053";
      font-family: FontAwesome;
      font-size: 12px;
      padding-right: 4px; }
    .search-results .pagination .page.previous:before {
      content: "\F053";
      font-family: FontAwesome;
      font-size: 12px;
      padding-right: 4px; }
    .search-results .pagination .page.next:after {
      content: "\F054";
      font-family: FontAwesome;
      font-size: 12px;
      padding-left: 4px; }
    .search-results .pagination .page.last:after {
      content: "\F054\F054";
      font-family: FontAwesome;
      font-size: 12px;
      padding-left: 4px; }

/*
 * FILE: _sidenav.scss
======================================================================== */
/*doc
---
title: Nav - Side Nav Default
name: nav-side_nav_default
category: basics
---
```html_example
<a class="sidenav-title" data-behavior="SubMenuMobile">
  Doc Index
</a>
<div class="nav-content">
  <ul>
    <li class="has_submenu">
      <span>
        Side Nav Title 1
      </span>
      <ul>
        <li>
          <a href="#">
            Item
          </a>
        </li>
        <li>
          <a href="#">
            Item
          </a>
        </li>
      </ul>
    </li>
    <li>
      <a href="#">
        Item
      </a>
    </li>
  </ul>
</div>
```
*/
.sidenav-title {
  border: 0;
  color: #424242;
  display: block;
  padding: 1em;
  text-align: center;
  text-transform: uppercase; }
  @media (min-width: 43.75em) {
    .sidenav-title {
      display: none; } }
  .sidenav-title:after {
    content: "";
    padding-left: 1.5em; }

.sidenav-title:hover,
.active .sidenav-title {
  background-color: #00a79d;
  color: #fff;
  cursor: pointer; }

.active .sidenav-title:after {
  content: ""; }

.nav-container {
  background: #f8f8f8; }
  @media (min-width: 43.75em) {
    .nav-container {
      padding: 1.9em 0 1.9em 1em; } }

.nav-content {
  height: 0;
  opacity: 0;
  -webkit-transition: all 0.2s linear;
  -moz-transition: all 0.2s linear;
  transition: all 0.2s linear;
  overflow: hidden;
  padding-left: 1em; }
  @media (min-width: 43.75em) {
    .nav-content {
      height: auto;
      display: block;
      opacity: 1;
      padding-left: 0; } }
  @media (min-width: 56.25em) {
    .nav-content {
      padding-left: 0.875em; } }

.active .nav-content {
  border-top: 1px solid #ededed;
  height: auto;
  opacity: 1;
  padding-bottom: 1.9em;
  padding-top: 1em; }

.nav-content ul,
.nav-content ol {
  clear: both;
  display: block;
  margin: 0.5em 0;
  padding: 0; }

.nav-content li {
  display: block;
  margin: 0;
  overflow: hidden;
  padding: 0; }

.nav-content a, .nav-content span {
  border-width: 1px 0 1px 1px;
  border-style: solid;
  border-color: transparent;
  color: #686868;
  font-size: 0.9rem;
  display: block;
  float: left;
  padding: .75em 30px .75em 2em;
  text-decoration: none;
  width: 100%; }

.nav-content a:hover,
.nav-content a:focus,
.nav-content a:active {
  border-color: #EEE;
  background-color: #fff;
  color: #424242; }

.nav-content .active,
.nav-content .active:hover,
.nav-content .active:focus {
  background-color: rgba(0, 167, 157, 0.2);
  border-style: solid;
  color: #424242;
  font-weight: 600; }

.nav-content .has_submenu {
  cursor: pointer; }
  .nav-content .has_submenu:before {
    content: "";
    float: left;
    width: 1rem;
    margin-top: 1em;
    display: inline-block;
    font-style: normal;
    font-weight: normal;
    line-height: 1; }
  .nav-content .has_submenu > a, .nav-content .has_submenu > span {
    margin-left: 1em;
    float: none;
    width: inherit;
    padding-left: 1em; }
  .nav-content .has_submenu > ul {
    display: none; }
  .nav-content .has_submenu li {
    padding-left: 1em; }
  .nav-content .has_submenu.expanded:before {
    content: ""; }
  .nav-content .has_submenu.expanded > ul {
    display: block; }

.container {
  background: #fff;
  clear: both;
  margin: 0 auto;
  max-width: 1024px; }

.content-layout {
  padding: 2em 1.5em 2em 1.5em; }
  @media (min-width: 43.75em) {
    .content-layout {
      padding-top: 0; } }
  @media (min-width: 43.75em) {
    .content-layout #top:before {
      content: '';
      padding-bottom: 4em;
      border: none;
      display: block; } }

.has-subnav .container {
  max-width: auto; }
  @media (min-width: 43.75em) {
    .has-subnav .container {
      margin-left: 17.375em; } }
  @media (min-width: 56.25em) {
    .has-subnav .container {
      margin-left: 22.9375em; } }

@media (min-width: 43.75em) {
  .has-subnav .content-layout {
    max-width: 45em;
    padding: 0 2em 2em; } }

@media (min-width: 43.75em) {
  .nav-container {
    position: fixed;
    z-index: 10;
    top: 38px;
    left: 0;
    bottom: 0;
    overflow-y: auto;
    overflow-x: hidden;
    -webkit-overflow-scrolling: touch;
    width: 17.375em; } }
@media (min-width: 56.25em) {
  .nav-container {
    width: 22.9375em; } }

.has-sidenav table {
  border-color: #eceae9;
  border: 1px solid #eceae9; }

.has-sidenav th {
  background-color: rgba(3, 120, 109, 0.05); }

.has-sidenav table tr:nth-child(2n+1) {
  background: none; }

.has-sidenav .content tr:nth-child(2n+1) {
  background-color: #f8f8f8; }

.span3 {
  display: block; }
  @media (min-width: 43.75em) {
    .span3 {
      float: left;
      margin-right: 2%;
      width: 48%; } }
  @media (min-width: 56.25em) {
    .span3 {
      width: 32%; } }

@media (min-width: 43.75em) and (max-width: 56.25em) {
  .span3:nth-child(2n+1) {
    clear: left; } }

@media (min-width: 43.75em) and (max-width: 56.25em) {
  .span3:nth-child(2n) {
    margin-right: 0; } }

@media (min-width: 56.25em) {
  .span3:nth-child(3n+1) {
    clear: left; } }

@media (min-width: 56.25em) {
  .span3:nth-child(3n) {
    margin-right: 0; } }

/*doc
---
title: Title Container
name: title_container
category: basics
---
```html_example
<h1 class="title-container">
  Lorem Ipsum Dolor
</h1>
```
*/
.title-container {
  line-height: 1.1;
  font-weight: 600;
  font-size: 1.953em;
  margin-top: 0; }
  @media (min-width: 43.75em) {
    .title-container {
      font-size: 2.441em; } }

/*doc
---
title: Nav - Quick Links
name: nav-quick_links
category: basics
---
```html_example
<div class="quick-links">
  <ul>
  <li><a href="#">quick link</a></li>
  <li><a href="#">quick link</a></li>
  <li><a href="#">quick link</a></li>
  </ul>
</div>
```
*/
.quick-links {
  background-color: #fdfdfd;
  border-radius: 3px;
  border: 1px solid #eceae9;
  display: inline-block;
  padding: 1em 1.5em; }
  .quick-links ol, .quick-links ul, .quick-links li {
    margin: 0; }
  .quick-links > ul {
    list-style-position: inside;
    list-style-type: lower-roman;
    margin-left: -1em; }
    .quick-links > ul:before {
      content: "In this topic:";
      display: block;
      padding-bottom: 0.25em; }
  .quick-links ul ul {
    padding-left: 1.8em; }

.list-style-none .quick-links > ul {
  list-style-type: none; }

/*doc
---
title: Link External
name: link_external
category: basics
---
```html_example
<a class="external-link" href="#">Link</a>
```
*/
.content a[href^="http"]:after,
.external-link:after {
  content: "";
  font-size: 0.75em;
  padding-left: 0.5em; }

.content a:hover,
.content a:focus,
.content a:active,
.link:hover,
.link:focus,
.link:active {
  background-color: rgba(0, 167, 157, 0.08);
  border-bottom-style: solid; }

/*doc
---
title: Content Helper - Intro
name: content_helper-intro
category: basics
---
```html_example
<p class="intro">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Necessitatibus totam libero facilis voluptatem aliquam incidunt ipsa officiis, dicta nihil expedita, molestiae delectus impedit hic quidem deserunt laudantium, sint debitis tenetur.</p>
```
*/
.intro {
  font-size: 1.25em;
  font-weight: 300; }

/*doc
---
title: Content Helper - Note
name: content_helper-note
category: basics
---
```html_example
<p class="note">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Necessitatibus totam libero facilis voluptatem aliquam incidunt ipsa officiis, dicta nihil expedita, molestiae delectus impedit hic quidem deserunt laudantium, sint debitis tenetur.</p>
```
*/
.note {
  background: #ffffed;
  border-color: #ebebd3;
  border-radius: 3px;
  border-style: solid;
  border-width: 1px;
  margin: 1em 0;
  padding: 0.7em 1em 0.7em 2.3em;
  position: relative; }
  .note:before {
    content: "";
    color: #b9b781;
    font-size: 1.5em;
    left: 0.6em;
    position: absolute;
    top: 0.45em; }

/*doc
---
title: Content Helper - New User Tip
name: content_helper-tip
category: basics
---
```html_example
<p class="tip">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Necessitatibus totam libero facilis voluptatem aliquam incidunt ipsa officiis, dicta nihil expedita, molestiae delectus impedit hic quidem deserunt laudantium, sint debitis tenetur.</p>
```
*/
.tip {
  background: #ffffff;
  border-color: #a7cae1;
  border-radius: 3px;
  border-style: solid;
  border-width: 1px;
  margin: 1em 0;
  padding: 1.7em 2em;
  position: relative;
  text-align: left; }
  .tip:before {
    color: #7C7C7C;
    font-size: 1.953em;
    left: 0.5em;
    position: absolute;
    top: 0.8em; }

/*doc
---
title: Code Example - Terminal
name: code_example-terminal
category: basics
---
```html_example
<pre class="terminal">$ keytool -import -alias ops-metrics-ssl -file ops-metrics.cer -keystore localhost.truststore</pre>
```
*/
.terminal {
  background-color: #3a3a3a;
  border: 0;
  color: #fefefe; }

.to-top {
  visibility: hidden;
  opacity: 0;
  -webkit-transition: all 0.2s linear;
  -moz-transition: all 0.2s linear;
  transition: all 0.2s linear; }
  .to-top a {
    border: 0;
    bottom: 4em;
    position: fixed;
    right: 4em;
    z-index: 10; }
    .to-top a:hover {
      background: none; }
    .to-top a:before {
      content: "";
      background: #00a79d;
      box-shadow: 0 0 9px rgba(153, 153, 153, 0.8);
      color: #fff;
      line-height: 2.5em;
      height: 2.5em;
      text-align: center;
      width: 2.5em; }
  .to-top.sticky {
    visibility: visible;
    opacity: 1; }
  @media (max-width: 43.75em) {
    .to-top {
      display: none; } }

.index .to-top {
  display: none; }

.partial-notice {
  color: red;
  font-size: 1.25em; }
  .partial-notice ul {
    font-size: 1em; }

* {
  box-sizing: border-box; }
