/* Reset */
body, h1, h2, h3, h4, li, ol, p, pre, section, ul {
  margin: 0;
  padding: 0;
}

body {
  font-family: Georgia, serif;
  background: #e8e8e8;
  color: #333;
  background-image: url('body-bg.png');
  background-repeat: repeat;
}

h2 {
  font: 400 28px/44px 'Open Sans', 'Lucida Sans Unicode', 'Lucida Grande',
      sans-serif;
}

h3 {
  font: 600 14px/22px 'Open Sans', 'Lucida Sans Unicode', 'Lucida Grande',
      sans-serif;
  color: #999;
  margin: 22px 0 0 0;
}

h4 {
  font: 600 16px/22px 'Open Sans', 'Lucida Sans Unicode', 'Lucida Grande',
      sans-serif;
}

p {
  font-size: 16px;
  line-height: 22px;
  margin: 0 0 22px 0;
}

h3 + p {
  /* Text immediately following a subheader should be snug with it. */
  margin-top: 0;
}

strong {
  font-weight: 700;
}

pre, code {
  font: 14px/22px Menlo, Monaco, Consolas, Courier, monospace;
  color: hsl(220, 20%, 30%);
  background: hsl(220, 20%, 95%);
  margin: 22px 0;
  padding: 0 4px;
  border-radius: 4px;
  overflow-x:auto;
  overflow-y:hidden;
}

pre > code {
  padding: 0;
}

a {
  color: #15c;
  text-decoration: none;
}

a:hover {
  text-decoration: underline;
}

a:visited {
  color: #15c;
}

li {
  font-size: 16px;
  line-height: 22px;
}

/* First paragraph in an li is snug, but others are spaced out. */
li p:first-child {
  margin: 0 0 0 0;
}

li > p {
  margin: 22px 0 0 0;
}

ol, ul {
  padding-left: 22px;
}

hr {
  border: none;
  height: 1px;
  background: #ccc;
  margin: 22px 0 21px 0;
}

hr + h2 {
  margin-top: 21px; /* To compensate for the thickness of the hr. */
}

.page {
  max-width: 1000px;
  background: #fff;
  margin: 0 auto 22px auto;
  border: solid 1px #ccc;
  border-top: none;
  box-shadow: 0 0 50px #888;

  background-image: url('content-bg.png');
  background-repeat: repeat-y;

  position: relative;
}

.header {
  background: #333;
  background-image: url('header-bg.png');
  height: 44px;
  color: hsl(0, 0%, 50%);
  font: 400 15px/44px 'Open Sans', 'Lucida Sans Unicode', 'Lucida Grande',
      sans-serif;
}

.header .logo {
  background-image: url('dart-logo-small.png');
  width: 66px;
  height: 44px;
  float: left;
}

.header a {
  color: hsl(0, 0%, 80%);
}

.header a:hover {
  color: hsl(0, 0%, 100%);
}

.header #search-box {
  display: inline;
  float: right;
  margin-right: 11px;
}

.search-input, .drop-down {
  font: 400 13px/22px 'Open Sans', 'Lucida Sans Unicode', 'Lucida Grande',
      sans-serif;
  width: 300px;
}

.drop-down {
  visibility: hidden;
  z-index: 1000;
  position: absolute;
  right: 10px;
  top: 36px;
  border: 1px #CCC solid;
  background-color: white;
  -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
  -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
  box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
}

.drop-down-table {
  width: 100%;
}

.drop-down-link-tr {
  padding: 4px 0px;
  cursor: pointer;
}
.drop-down-link-td {
  border-bottom: 1px solid #EEE;
}

.drop-down-link-tr:hover {
  background: #EEE;
  color: #333;
}

.drop-down-link-select {
  background: #15C;
  color: white;
}

.drop-down-link-select:hover {
  background: #2AF;
  color: white;
}

.drop-down-link-kind, .drop-down-link-library {
  font: 400 10px/10px 'Open Sans', 'Lucida Sans Unicode', 'Lucida Grande',
      sans-serif;
}

.drop-down-link-library {
  text-align: right;
}

.drop-down-link-highlight {
  font-weight:bold;
}

.nav {
  float: left;
  width: 263px; /* 12 x 22px - 1 for border */
  padding: 0 22px;
  overflow: hidden;
  background: #f4f4f4;
  border-right: solid 1px #ccc;
}

.nav h2 {
  font: 400 16px/22px 'Open Sans', 'Lucida Sans Unicode', 'Lucida Grande',
      sans-serif;
  margin: 0 -21px;
  padding: 11px 22px;

  /* Using https://www.colorzilla.com/gradient-editor/ */
  background: -moz-linear-gradient(top, hsla(0,0%,0%,0.05) 0%, hsla(0,0%,0%,0) 100%);
  background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,hsla(0,0%,0%,0.05)), color-stop(100%,hsla(0,0%,0%,0)));
  background: -webkit-linear-gradient(top, hsla(0,0%,0%,0.05) 0%,hsla(0,0%,0%,0) 100%);
  background: -o-linear-gradient(top, hsla(0,0%,0%,0.05) 0%,hsla(0,0%,0%,0) 100%);
  background: -ms-linear-gradient(top, hsla(0,0%,0%,0.05) 0%,hsla(0,0%,0%,0) 100%);
  background: linear-gradient(top, hsla(0,0%,0%,0.05) 0%,hsla(0,0%,0%,0) 100%);
}

ul.icon {
  margin: 0 0 22px 0;
  padding: 0;
}

ul.icon li {
  font: 600 13px/22px 'Open Sans', 'Lucida Sans Unicode', 'Lucida Grande',
      sans-serif;
  list-style-type: none;
  white-space: nowrap;
}

/* Indent nested lists. */
ul.icon ul {
  margin-left: 22px;
}

.icon-class,
.icon-exception,
.icon-interface {
  display: inline-block;
  width: 14px;
  height: 14px;
  margin: 5px 10px 0 2px;
  vertical-align: top;
}

.icon-class     { background: url('class.png');     }
.icon-exception { background: url('exception.png'); }
.icon-interface { background: url('interface.png'); }

.icon-library {
  background: url('library.png');
  width: 16px;
  height: 14px;
  display: inline-block;
  margin: 4px 8px 0 0;
  vertical-align: top;
}

.type-box {
  display: inline-block;
  font: 600 13px/22px 'Open Sans', 'Lucida Sans Unicode', 'Lucida Grande',
      sans-serif;
  background: #f4f4f4;
  padding: 0 6px 0 3px;
  border-radius: 4px;
}

.type-box .icon-class,
.type-box .icon-exception,
.type-box .icon-interface {
  /* Make a little snugger with the text. */
  margin-right: 5px;
}

.content {
  margin-left: 308px; /* 14 x 22 */
  padding: 22px 22px;
}

.clear {
  clear: both;
}

.footer {
  max-width: 956px; /* 1000 - 22 - 22 */
  text-align: center;
  margin: 22px auto;
  color: #888;
}

.footer p {
  font: 400 13px/22px 'Open Sans', 'Lucida Sans Unicode', 'Lucida Grande',
      sans-serif;
}

.inherited {
}

.inherited-from {
  font: 400 13px/22px 'Open Sans', 'Lucida Sans Unicode', 'Lucida Grande',
      sans-serif;
  text-align: right;
  opacity: 0.7;
}

.inherited-from, .docs-inherited-from {
  font: 400 13px/22px 'Open Sans', 'Lucida Sans Unicode', 'Lucida Grande',
      sans-serif;
  text-align: right;
  opacity: 0.7;
}

.docs-inherited-from {
  margin-top: -22px;
}

.method .doc,
.field .doc {
  padding-left: 44px;
  /* Ensure there is some space between members with no documentation. */
  margin-bottom: 22px;
}

.param {
  font: 600 14px 'Open Sans', 'Lucida Sans Unicode', 'Lucida Grande',
      sans-serif;
}

.crossref {
  font: 600 15px 'Open Sans', 'Lucida Sans Unicode', 'Lucida Grande',
      sans-serif;
}

.doc h1 {
  font: 700 17px/22px 'Open Sans', 'Lucida Sans Unicode', 'Lucida Grande',
      sans-serif;
  color: #666;
}

.doc h2 {
  font: 600 16px/22px 'Open Sans', 'Lucida Sans Unicode',
      'Lucida Grande', sans-serif;
  color: #666;
}

/* Style external links in docs differently. */
.doc a[href^="https:"]:after,
.doc a[href^="https:"]:after {
  content: url('external-link.png');
}

/* Highlight members on hover so you can see which docs are for which member. */
.method:hover,
.field:hover {
  margin: 0 -22px;
  border: solid 4px hsl(40, 100%, 85%);
  padding: 0 18px;
  border-top: none;
  border-bottom: none;
}

/* Only show the "code" link for the highlighted member. */
.show-code, .show-inherited {
  float: right;
  font: 600 11px 'Open Sans', 'Lucida Sans Unicode', 'Lucida Grande',
      sans-serif;
  padding: 0 0 0 6px; /* In case it gets too close to the member. */
  border: none;
  background: transparent;
  margin: 0;
}

.method:hover .show-code,
.field:hover .show-code {
  display: inline;
}

/* Only show permalinks when hovered over. */
.anchor-link {
  display: none;
}

h2:hover > .anchor-link,
h4:hover > .anchor-link {
  display: inline;
}

/* Only show code when expanded. */
pre.source {
  display: none;
}

pre.source.expanded {
  display: block;
}

/* Links that don't cause a page refresh. */
.anchor-link, .anchor-link:visited,
.show-code, .show-code:visited,
.show-inherited, .show-inherited:visited {
  color: hsl(40, 100%, 40%);
  cursor: pointer;
}

.anchor-link, .anchor-link:visited,
.show-code, .show-code:visited {
  display: none;
}

.anchor-link:hover,
.show-code:hover,
.show-inherited:hover {
  color: hsl(40, 100%, 60%);
}

/* Syntax highlighting. */
/* Note: these correspond to the constants in classify.dart. */
.doc pre .e, pre.source .e { color: hsl(  0, 100%, 70%); } /* Error */
.doc pre .c, pre.source .c { color: hsl(220,  20%, 65%); } /* Comment */
.doc pre .i, pre.source .i { color: hsl(220,  20%, 20%); } /* Identifier */
.doc pre .k, pre.source .k { color: hsl(220, 100%, 50%); } /* Keyword */
.doc pre .p, pre.source .p { color: hsl(220,  20%, 50%); } /* Punctuation */
.doc pre .o, pre.source .o { color: hsl(220,  40%, 50%); } /* Operator */
.doc pre .s, pre.source .s { color: hsl( 40,  90%, 40%); } /* String */
.doc pre .n, pre.source .n { color: hsl( 30,  70%, 50%); } /* Number */
.doc pre .t, pre.source .t { color: hsl(180,  40%, 40%); } /* Type Name */
.doc pre .r, pre.source .r { color: hsl(200, 100%, 50%); } /* Special Identifier */
.doc pre .a, pre.source .a { color: hsl(220, 100%, 45%); } /* Arrow */

/* Interpolated expressions within strings. */
.doc pre .si, pre.source .si {
  background: hsl(40, 100%, 90%);
}

.doc pre .s.si, pre.source .s.si { background: hsl(40, 80%, 95%); }
.doc pre .i.si, pre.source .i.si { color: hsl(40, 30%, 30%); }
.doc pre .p.si, pre.source .p.si { color: hsl(40, 60%, 40%); }

/* Enable these to debug the grid: */

/*
body {
  background: -webkit-linear-gradient(top, #eee 0, #fff 10%, #fff 90%, #eee 100%);
  background-size: 22px 22px;
  background-repeat: repeat;
}

.page {
  background: none;
}

h1 {
  border-left: solid 4px green;
}

h2 {
  border-left: solid 4px blue;
}

h3 {
  border-left: solid 4px red;
}

h4 {
  border-left: solid 4px orange;
}

p {
  border-left: solid 4px purple;
}

section {
  border-left: solid 4px gray;
}
*/
