
/* Palette generated by Material Palette - materialpalette.com/blue/cyan */

.dark-primary-color    { background: #1976D2; }
.default-primary-color { background: #2196F3; }
.light-primary-color   { background: #BBDEFB; }
.text-primary-color    { color: #FFFFFF; }
.accent-color          { background: #00BCD4; }
.primary-text-color    { color: #212121; }
.secondary-text-color  { color: #727272; }
.divider-color         { border-color: #B6B6B6; }

html {
  position: relative;
  min-height: 100%;
}

body {
  font-family: 'Roboto', sans-serif;
  font-size: 15px;
  margin-bottom: 60px;
  -webkit-font-smoothing: antialiased;
  -webkit-text-size-adjust: 100%;
  overflow-x: hidden;
  color: #212121;
}

nav {
  font-size: 17px;
}

/* some of this is to reset bootstrap */
nav.navbar {
  background-color: inherit;
  min-height: 48px;
  border: 0;
}

nav.navbar .row {
  padding-top: 8px;
}

nav .container {
  white-space: nowrap;
}

@media screen and (min-width: 500px) and (max-width: 768px) {
  .navbar-right {
      float: right!important;
  }
}

header {
  background-color: rgb(0, 102, 152);
  color: white;
  box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.37);
}

header.header-fixed nav.navbar-fixed-top {
  box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.37);
}

header.container-fluid {
  padding: 0;
}

header .masthead {
  padding-top: 64px;
}

header .contents {
  padding: 0;
}

@media screen and (max-width:768px) {
  header .contents {
    padding-left: 15px;
    padding-right: 15px;
  }
}

.body {
  margin-top: 24px;
}

section {
  margin-bottom: 36px;
}

dl {
  margin: 0;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-weight: normal;
  margin: 0;
}

h1.title {
  overflow: hidden;
  text-overflow: ellipsis;
}

h2 {
  font-size: 24px;
}

h5 {
  font-size: 16px;
}

strong {
  font-weight: 500;
}

.subtitle {
  font-size: 17px;
  min-height: 1.4em;
}

.title-description .subtitle {
  white-space: nowrap;
  overflow-x: hidden;
  text-overflow: ellipsis;
}

p {
  margin-bottom: 1em;
}

a, a:hover {
  color: rgb(0, 102, 152);
}

pre.prettyprint {
  font-family: 'Source Code Pro', monospace;
  color: black;
  border-radius: 4px;
  font-size: 14px;
  word-wrap: normal;
  line-height: 1.4;
  background: #f7f7f7;
  border: 1px solid #ddd;
  margin: 16px 0 16px 0;
  padding: 8px;
}

pre code {
  white-space: pre;
  word-wrap: initial;
}

.fixed {
  white-space: pre;
}

pre {
  border: 1px solid #ddd;
  background-color: #f7f7f7;
  font-size: 14px;
}

code {
  font-family: 'Source Code Pro', monospace;
  /* overriding bootstrap */
  color: inherit;
  background-color: #f7f7f7;
}

h2 .crossdart {
  float: right;
  font-size: 0.5em;
  margin-top: 1em;
}

.crossdart-link {
  border-bottom: 1px solid #dfdfdf;
  text-decoration: none;
}

.crossdart-link:hover {
  border-bottom: 1px solid #aaa;
  text-decoration: none;
}

@media(max-width: 768px) {
  nav .container {
    width: 100%
  }

  h1 {
    font-size: 24px;
  }

  pre {
    margin: 16px 0;
  }
}

@media (min-width: 768px) {
  .dl-horizontal dd {
    margin-left: 128px;
  }

  .dl-horizontal dt {
    width: 128px;
  }

  ul.subnav li {
    font-size: 17px;
  }
}

header h1 {
  font-weight: 400;
  margin-bottom: 16px;
}

header a,
header a:hover,
header p,
header li {
  color: white;
}

header h1 .kind {
  color: #ddd;
  text-transform: uppercase;
  font-size: 15px;
  display: block;
}

@media screen and (max-width: 768px) {
  header h1 .kind {
    font-size: 14px;
  }
}

dt {
  font-weight: normal;
}

dd {
  color: #212121;
  margin-bottom: 1em;
}

dd.callable, dd.constant, dd.property {
  margin-bottom: 24px;
}

dd p {
  white-space: nowrap;
  overflow-x: hidden;
  text-overflow: ellipsis;
  margin-bottom: 0;
}

section.summary h2 {
  color: #727272;
  margin-bottom: 16px;
  padding-bottom: 4px;
  border-bottom: 1px solid #ddd;
}

/* indents wrapped lines */
section.summary dt {
  margin-left: 24px;
  text-indent: -24px;
}

dl.dl-horizontal dt {
  font-style: normal;
  text-align: left;
  color: #727272;
}

dl.dl-horizontal dt::after {
  content: ':';
}

dt .name {
  font-weight: 500;
}

dl dt.callable .name {
  float: none;
  width: auto;
}

.parameter {
  white-space: nowrap;
}

.signature {
  color: #727272;
}

.signature a {
  /* 50% mix of default-primary-color and primary-text-color. */
  color: #4674a2;
}

.optional {
  font-style: italic;
}

.undocumented {
  font-style: italic;
}

.is-const {
  font-style: italic;
}

.deprecated {
  text-decoration: line-through;
}

p.firstline {
  font-weight: bold;
}

footer {
  padding: 20px;
  position: absolute;
  bottom: 0;
  width: 100%;
  height: 60px;
}

footer p {
  margin: 0;
  color: #555;
}

footer .no-break {
  white-space: nowrap;
}

footer .container,
footer .container-fluid {
  padding-left: 0;
  padding-right: 0;
}

.copyright a {
  color: #555;
}

.markdown h1 {
  font-size: 24px;
  margin-bottom: 8px;
}

.markdown h2 {
  font-size: 20px;
  margin-top: 24px;
  margin-bottom: 8px;
}

.markdown h3 {
  font-size: 18px;
  margin-bottom: 8px;
}

.markdown h4 {
  font-size: 16px;
  margin-bottom: 0;
}

.markdown li p {
  margin: 0;
}

.gt-separated {
  list-style: none;
  padding: 0;
  margin: 0;
}

.gt-separated li {
  display: inline-block;
}

.gt-separated li:before {
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'><path fill='#DDDDDD' d='M6.7,4L5.7,4.9L8.8,8l-3.1,3.1L6.7,12l4-4L6.7,4z'/></svg>");
  background-position: center;
  content: "\00a0";
  margin: 0 6px 0 4px;
}

.gt-separated.dark li:before {
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'><path fill='#727272' d='M6.7,4L5.7,4.9L8.8,8l-3.1,3.1L6.7,12l4-4L6.7,4z'/></svg>");
}

.gt-separated li:first-child:before {
  background-image: none;
  content: "";
  margin: 0;
}

/* The slug line under a declaration for things like "const", "read-only", etc. */
.features {
  font-style: italic;
  color: #727272;
}

.multi-line-signature {
  font-size: 17px;
  color: #727272;
  margin-left: 24px;
  text-indent: -24px;
}

.breadcrumbs {
  padding: 0;
  margin: 8px 0 8px 0;
  font-size: 17px;
  white-space: nowrap;
  line-height: 1;
}

@media screen and (min-width: 768px) {
  nav ol.breadcrumbs {
    float: left;
  }
}

@media screen and (max-width: 768px) {
  .breadcrumbs {
    margin: 0 0 24px 0;
    overflow-x: hidden;
  }
}

.self-crumb {
  color: #ddd;
}

nav .self-name {
  color: #ddd;
  display: none;
}

.annotation-list {
  list-style: none;
  padding: 0;
  display: inline;
}

.annotation-list li:before {
  content: "@";
}

.comma-separated {
  list-style: none;
  padding: 0;
  display: inline;
}

.comma-separated li {
  display: inline;
}

.comma-separated li:after {
  content: ", ";
}

.comma-separated li:last-child:after {
  content: "";
}

.end-with-period li:last-child:after {
  content: ".";
}

.container > section:first-child {
  border: 0;
}

.constructor-modifier {
  font-style: italic;
}

section.multi-line-signature div.parameters {
  margin-left: 24px;
}

/* subnav styles */

ul.subnav {
  overflow: auto;
  white-space: nowrap;
  padding-left: 0;
  min-height: 24px;
}

ul.subnav::-webkit-scrollbar {
  display: none;
}

ul.subnav li {
  display: inline-block;
  text-transform: uppercase;
}

ul.subnav li a {
  color: #FFFFFF;
}

ul.subnav li {
  margin-right: 24px;
}

ul.subnav li:last-of-type {
  margin-right: 0;
}

@media(max-width: 768px) {
  ul.subnav li {
    margin-right: 16px;
  }
}

/* sidebar styles */

.sidebar-offcanvas-left {
  background-color: #f7f7f7;
  padding: 0;
}

.sidebar ol {
  list-style: none;
  font-size: 14px;
  line-height: 24px;
  margin-bottom: 0;
  padding: 0;
}

.sidebar-offcanvas-left ol {
  padding: 16px;
}

.sidebar h5,
.sidebar ol li {
  text-overflow: ellipsis;
  overflow: hidden;
}

.sidebar ol li.section-title a {
  color: inherit;
}

.sidebar ol li.section-title {
  font-size: 13px;
  color: #B6B6B6;
  text-transform: uppercase;
  line-height: 20px;
  margin-top: 24px;
}

.sidebar ol li:first-child {
  padding-top: 0;
  margin-top: 0;
}

button {
  padding: 0;
}

#sidenav-left-toggle {
  display: none;
  vertical-align: text-bottom;
  padding: 0;
}

/* left-nav disappears, and can transition in from the left */
@media screen and (max-width:768px) {
  #sidenav-left-toggle {
    display: inline;
    background: no-repeat url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'><path fill='#FFFFFF' d='M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z'/></svg>");
    background-position: center;
    width: 24px;
    height: 24px;
    border: none;
    margin-right: 24px;
  }

  #overlay-under-drawer.active {
    opacity: 0.4;
    height: 100%;
    z-index: 1999;
    position: fixed;
    top: 0px;
    left: 0px;
    right: 0px;
    bottom: 0px;
    background-color: black;
    display: block;
  }

  .sidebar-offcanvas-left {
    left:-100%;
    position:fixed;
    -webkit-transition:all .25s ease-out;
    -o-transition:all .25s ease-out;
    transition:all .25s ease-out;
    z-index: 2000;
    top:0;
    width: 280px; /* works all the way down to an iphone 4 */
    height: 100%;
    background-color: white;
    overflow-y: auto; /* TODO: how to hide scroll bars? */
  }

  .sidebar-offcanvas-left.active {
    left:0; /* this animates our drawer into the page */
  }
}

.sidebar h5 {
  color: #727272;
  padding-bottom: 16px;
}

.sidebar-offcanvas-left h5 {
  border-bottom: 1px solid #ddd;
  padding: 16px;
}

.sidebar-offcanvas-left h5:last-of-type {
  border: 0;
  padding: 16px 16px 0 16px;
}

/* the right nav disappears out of view when the window shrinks */
@media screen and (max-width: 992px) {
  .sidebar-offcanvas-right{
     display: none;
   }
}

#overlay-under-drawer {
  display: none;
}

/* find-as-you-type search box */

/* override bootstrap defaults */
.form-control {
  border-radius: 0;
  border: 0;
}

form.search {
  display: inline;
}

@media screen and (max-width: 500px) {
  form.search {
    display: none;
  }
}

.typeahead,
.tt-query,
.tt-hint {
  width: 200px;
  height: 30px;
  padding: 8px 12px;
  line-height: 30px;
  outline: none;
}

.typeahead {
  background-color: #fff;
  border-radius: 2px;
}

.tt-query {
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
     -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
          box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
}

.tt-hint {
  color: #999
}

.tt-menu {
  right:0;
  left: inherit !important;
  width: 422px;
  max-height: 250px;
  overflow-y: auto;
  font-size: 14px;
  margin: 0;
  padding: 8px 0;
  background-color: #fff;
  border: 1px solid #ccc;
  border: 1px solid rgba(0, 0, 0, 0.2);
  -webkit-box-shadow: 0 5px 10px rgba(0,0,0,.2);
     -moz-box-shadow: 0 5px 10px rgba(0,0,0,.2);
          box-shadow: 0 5px 10px rgba(0,0,0,.2);
}

.tt-suggestion {
  padding: 3px 20px;
  color: #212121;
}

.tt-suggestion:hover {
  cursor: pointer;
  color: #fff;
  background-color: #0097cf;
}

.tt-suggestion:hover .search-from-lib {
  color: #ddd;
}

.tt-suggestion.tt-cursor {
  color: #fff;
  background-color: #0097cf;
}

.tt-suggestion.tt-cursor .search-from-lib {
  color: #ddd;
}

.tt-suggestion p {
  margin: 0;
}

.search-from-lib {
  font-style: italic;
  color: gray;
}

section#setter {
  border-top: 1px solid #ddd;
  padding-top: 36px;
}

li.inherited a {
  opacity: 0.65;
  font-style: italic;
}
