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

/* for layout */
html,
body {
  margin: 0;
  padding: 0;
  height: 100%;
}

body {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}

header {
  flex: 0 0 56px;
  display: flex;
  flex-direction: row;
  align-items: center;
  padding-left: 30px;
}

header ol {
  list-style: none;
  margin: 0;
  padding: 0;
}

header ol li {
  display: inline;
}

header form {
  display: flex;
  flex: 1;
  justify-content: flex-end;
  padding-right: 30px;
}

footer {
  flex: 0 0 16px;
  text-align: center;
  padding: 16px 20px;
}

main {
  flex: 1;
  display: flex;
  flex-direction: row;
}

.sidebar-offcanvas-left {
  flex: 0 1 195px;
  overflow-y: scroll;
  padding: 20px 0 15px 30px;
}

::-webkit-scrollbar-button{ display: none; height: 13px; border-radius: 0px; background-color: #AAA; }
::-webkit-scrollbar-button:hover{ background-color: #AAA; }
::-webkit-scrollbar-thumb{ background-color: #CCC; }
::-webkit-scrollbar-thumb:hover{ background-color: #CCC; }
::-webkit-scrollbar{ width: 4px; }
.main-content::-webkit-scrollbar{ width: 8px; }

.main-content {
  flex: 1;
  overflow-y: auto;
  padding: 20px 15px 0 30px;
}

.sidebar,
.main-content {
  margin: 20px 0;
}

.sidebar-offcanvas-right {
  flex: 0 1 12em;
  overflow-y: auto;
  padding: 20px 15px 15px 15px;
  margin-right: 20px;
}
/* end for layout */

body {
  -webkit-text-size-adjust: 100%;
  overflow-x: hidden;
  font-family: "Source Sans Pro", sans-serif;
  font-size: 16px;
  line-height: 1.42857143;
  color: #111111;
  background-color: #fff;
}

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

@media (max-width: 767px) {
  .hidden-xs {
    display: none!important;
  }
}

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

nav .container {
  white-space: nowrap;
}

header {
  background-color: #eeeeee;
  box-shadow: 0 3px 5px rgba(0,0,0,0.1);
}

header.header-fixed nav.navbar-fixed-top {
  box-shadow: 0 3px 5px rgba(0,0,0,0.1);
}

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;
  }
}

a {
  text-decoration: none;
}

.body {
  margin-top: 90px;
}

section {
  margin-bottom: 36px;
}

dl {
  margin: 0;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: "Source Sans Pro", sans-serif;
  font-weight: 400;
  margin-top: 1.5em;
  color: #111111;
}

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

h1 {
  font-size: 37px;
  margin-top: 0;
  margin-bottom: 0.67em;
}

h2 {
  font-size: 28px;
}

h5 {
  font-size: 16px;
}

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

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

p {
  margin-bottom: 1em;
  margin-top: 0;
}

a, a:hover {
  color: #1155cc;
}

pre.prettyprint {
  font-family: 'Source Code Pro', Menlo, monospace;
  color: black;
  border-radius: 0;
  font-size: 15px;
  word-wrap: normal;
  line-height: 1.4;
  border: 0;
  margin: 16px 0 16px 0;
  padding: 8px;
}

pre code {
  white-space: pre;
  word-wrap: initial;
  font-size: 100%
}

.fixed {
  white-space: pre;
}

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

code {
  font-family: 'Source Code Pro', Menlo, monospace;
  /* overriding bootstrap */
  color: inherit;
  padding: 0.2em 0.4em;
  font-size: 85%;
  background-color: rgba(27,31,35,0.05);
  border-radius: 3px;
}

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) {
  ul.subnav li {
    font-size: 17px;
  }
}

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

header a,
header a:hover,
header p,
header li {
  color: #111;
}

header h1 .kind {
  color: #555;
}

dt {
  font-weight: normal;
}

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

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

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

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

.dl-horizontal dd {
  margin-left: initial;
}

dl.dl-horizontal dt {
  font-style: normal;
  text-align: left;
  color: #727272;
  margin-right: 20px;
  width: initial;
}

dt .name {
  font-weight: 500;
}

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

.parameter {
  white-space: nowrap;
}

.type-parameter {
  white-space: nowrap;
}

.multi-line-signature .type-parameter .parameter {
  margin-left: 0px;
  display: unset;
}

.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;
}

.category.linked {
  font-weight: bold;
  opacity: 1;
}

/* Colors for category based on categoryOrder in dartdoc_options.config. */
.category.cp-0 {
  background-color: #54b7c4
}

.category.cp-1 {
  background-color: #54c47f
}

.category.cp-2 {
  background-color: #c4c254
}

.category.cp-3 {
  background-color: #c49f54
}

.category.cp-4 {
  background-color: #c45465
}

.category.cp-5 {
  background-color: #c454c4
}

.category a {
  color: white;
}

.category {
  padding: 2px 4px;
  font-size: 12px;
  border-radius: 4px;
  background-color: #999;
  text-transform: uppercase;
  color: white;
  opacity: .5;
}

h1 .category {
  vertical-align: middle;
}

p.firstline {
  font-weight: bold;
}

footer {
  color: #fff;
  background-color: #111111;
  width: 100%;
}

footer p {
  margin: 0;
}

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

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

footer a, footer a:hover {
  color: #fff;
}

.markdown.desc {
  max-width: 700px;
}

.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;
  padding: 0 3px 0 0;
}

.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;
}

.multi-line-signature .parameter {
  margin-left: 24px;
  display: block;
}

.breadcrumbs {
  padding: 0;
  margin: 8px 0 8px 0;
  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: #555;
}

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

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

.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: 25px;
}

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

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

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

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 ol {
  list-style: none;
  line-height: 22px;
  margin-top: 0;
  margin-bottom: 0;
  padding: 0 0 15px 0;
}

.sidebar h5 a,
.sidebar h5 a:hover {
  color: #727272;
}

.sidebar h5,
.sidebar ol li {
  text-overflow: ellipsis;
  overflow: hidden;
  padding: 3px 0;
}

.sidebar h5 {
  color: #727272;
  font-size: 18px;
  margin: 0 0 25px 0;
  padding-top: 0;
}

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

.sidebar ol li.section-title {
  font-size: 18px;
  font-weight: normal;
  text-transform: uppercase;
  padding-top: 25px;
}

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

.sidebar ol li.section-subtitle {
  font-weight: 400;
  text-transform: uppercase;
}

.sidebar ol li.section-subitem {
  margin-left: 12px;
}

.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='#111' 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: 0;
    left: 0;
    right: 0;
    bottom: 0;
    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? */
    padding: 10px;
  }

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

  .self-name {
    display: inline-block;
  }
}

.sidebar-offcanvas-left h5 {
  margin-bottom: 10px;
}

.sidebar-offcanvas-left h5:last-of-type {
  border: 0;
  margin-bottom: 25px;
}

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

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

.typeahead,
.tt-query,
.tt-hint {
  width: 200px;
  height: 20px;
  padding: 4px 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
}

.navbar-right .tt-menu {
  right:0;
  left: inherit !important;
  width: 422px;
  max-height: 250px;
  overflow-y: auto;
}

.tt-menu {
  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;
}

#search-box {
  background-color: #ffffff;
}

.search-body {
  border: 1px solid #7f7f7f;
  max-width: 400px;
  box-shadow: 3px 3px 5px rgba(0,0,0,0.1);
}

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

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

#instance-methods dt.inherited .name,
#instance-properties dt.inherited .name,
#operators dt.inherited .name {
  font-weight: 300;
  font-style: italic;
}

#instance-methods dt.inherited .signature,
#instance-properties dt.inherited .signature,
#operators dt.inherited .signature {
  font-weight: 300;
}

@media print {
  .subnav, .sidebar {
    display:none;
  }

  a[href]:after {
   content:"" !important;
  }
}
