
/* 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 {
  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;
}
