/* @group Fundamentals */

* { margin: 0; padding: 0 }

/* Is this portable? */
html {
    background-color: white;
    width: 100%;
    height: 100%;
}

body {
    background: white;
    color: black;
    text-align: left;
    min-height: 100%;
    position: relative;
}

p {
    margin: 0.8em 0;
}

ul, ol {
    margin: 0.8em 0 0.8em 2em;
}

dl {
    margin: 0.8em 0;
}

dt {
    font-weight: bold;
}
dd {
    margin-left: 2em;
}

a { text-decoration: none; }
a[href]:link { color: rgb(196,69,29); }
a[href]:visited { color: rgb(171,105,84); }
a[href]:hover { text-decoration:underline; }

a[href].def:link, a[href].def:visited { color: black; }
a[href].def:hover { color: rgb(78, 98, 114); }

/* @end */

/* @group Show and hide with JS */

body.js-enabled .hide-when-js-enabled {
    display: none;
}

/* @end */

/* @group Fonts & Sizes */

/* Basic technique & IE workarounds from YUI 3
   For reasons, see:
      http://yui.yahooapis.com/3.1.1/build/cssfonts/fonts.css
 */

body {
    font:13px/1.4 sans-serif;
    *font-size:small; /* for IE */
    *font:x-small; /* for IE in quirks mode */
}

h1 { font-size: 146.5%; /* 19pt */ }
h2 { font-size: 131%;   /* 17pt */ }
h3 { font-size: 116%;   /* 15pt */ }
h4 { font-size: 100%;   /* 13pt */ }
h5 { font-size: 100%;   /* 13pt */ }

select, input, button, textarea {
    font:99% sans-serif;
}

table {
    font-size:inherit;
    font:100%;
}

pre, code, kbd, samp, tt, .src {
    font-family:monospace;
    *font-size:108%;
    line-height: 124%;
}

.links, .link {
    font-size: 85%; /* 11pt */
}

#module-header .caption {
    font-size: 182%; /* 24pt */
}

#module-header .caption sup {
    font-size: 70%;
    font-weight: normal;
}

.info  {
    font-size: 85%; /* 11pt */
}

#table-of-contents, #synopsis  {
    /* font-size: 85%; /* 11pt */
}


/* @end */

/* @group Common */

.caption, h1, h2, h3, h4, h5, h6, summary {
    font-weight: bold;
    color: rgb(78,98,114);
    margin: 0.8em 0 0.4em;
}

* + h1, * + h2, * + h3, * + h4, * + h5, * + h6 {
    margin-top: 2em;
}

h1 + h2, h2 + h3, h3 + h4, h4 + h5, h5 + h6 {
    margin-top: inherit;
}

ul.links {
    list-style: none;
    text-align: left;
    float: right;
    display: inline-table;
    margin: 0 0 0 1em;
}

ul.links li {
    display: inline;
    border-left: 1px solid #d5d5d5;
    white-space: nowrap;
    padding: 0;
}

ul.links li a {
    padding: 0.2em 0.5em;
}

.hide { display: none; }
.show { display: inherit; }
.clear { clear: both; }

.collapser {
    background-image: url(minus.gif);
    background-repeat: no-repeat;
}
.expander {
    background-image: url(plus.gif);
    background-repeat: no-repeat;
}
.collapser, .expander {
    padding-left: 14px;
    margin-left: -14px;
    cursor: pointer;
}
p.caption.collapser,
p.caption.expander {
    background-position: 0 0.4em;
}

.instance.collapser, .instance.expander {
    margin-left: 0px;
    background-position: left center;
    min-width: 9px;
    min-height: 9px;
}

summary {
    cursor: pointer;
    outline: none;
    list-style-image: url(plus.gif);
    list-style-position: outside;
}

details[open] > summary {
    list-style-image: url(minus.gif);
}

pre {
    padding: 0.25em;
    margin: 0.8em 0;
    background: rgb(229,237,244);
    overflow: auto;
    border-bottom: 0.25em solid white;
    /* white border adds some space below the box to compensate
       for visual extra space that paragraphs have between baseline
       and the bounding box */
}

.src {
    background: #f0f0f0;
    padding: 0.2em 0.5em;
}

.keyword { 
    font-weight: bold;
    color: rgb(33, 88, 172);
}
.def { font-weight: bold; }

@media print {
    #footer { display: none; }
}

/* @end */

/* @group Page Structure */

#content {
    margin: 0 auto;
    padding: 0 2em 6em;
}

#package-header {
    background: rgb(41,56,69);
    border-top: 5px solid rgb(78,98,114);
    color: #ddd;
    padding: 0.2em;
    position: relative;
    text-align: left;
}

#package-header .caption {
    background: url(logo.png) no-repeat 0em;
    color: white;
    margin: 0 2em;
    font-weight: normal;
    font-style: normal;
    padding-left: 2em;
}

#package-header a:link, #package-header a:visited { color: white; }
#package-header a:hover { background: rgb(78,98,114); }

#module-header .caption {
    color: rgb(78,98,114);
    font-weight: bold;
    border-bottom: 1px solid #ddd;
}

table.info {
    float: right;
    padding: 0.5em 1em;
    border: 1px solid #ddd;
    color: rgb(78,98,114);
    background-color: #fff;
    max-width: 40%;
    border-spacing: 0;
    position: relative;
    top: -0.5em;
    margin: 0 0 0 2em;
}

.info th {
    padding: 0 1em 0 0;
}

div#style-menu-holder {
    position: relative;
    z-index: 2;
    display: inline;
}

#style-menu {
    position: absolute;
    z-index: 1;
    overflow: visible;
    background: #374c5e;
    margin: 0;
    text-align: center;
    right: 0;
    padding: 0;
    top: 1.25em;
}

#style-menu li {
    display: list-item;
    border-style: none;
    margin: 0;
    padding: 0;
    color: #000;
    list-style-type: none;
}

#style-menu li + li {
    border-top: 1px solid #919191;
}

#style-menu a {
    width: 6em;
    padding: 3px;
    display: block;
}

#footer {
    background: #ddd;
    border-top: 1px solid #aaa;
    padding: 0.5em 0;
    color: #666;
    text-align: center;
    position: absolute;
    bottom: 0;
    width: 100%;
    height: 3em;
}

/* @end */

/* @group Front Matter */

#table-of-contents {
    float: right;
    clear: right;
    background: #faf9dc;
    border: 1px solid #d8d7ad;
    padding: 0.5em 1em;
    max-width: 20em;
    margin: 0.5em 0 1em 1em;
}

#table-of-contents .caption {
    text-align: center;
    margin: 0;
}

#table-of-contents ul {
    list-style: none;
    margin: 0;
}

#table-of-contents ul ul {
    margin-left: 2em;
}

#description .caption {
    display: none;
}

#synopsis {
    display: block;
    position: fixed;
    right: 0;
    height: 80%;
    top: 10%;
    padding: 0;
    max-width: 75%;
    /* Ensure that synopsis covers everything (including MathJAX markup) */
    z-index: 1;
}

#synopsis summary {
    display: block;
    float: left;
    width: 29px;
    color: rgba(255,255,255,0);
    height: 110px;
    margin: 0;
    font-size: 1px;
    padding: 0;
    background: url(synopsis.png) no-repeat 0px -8px;
}

#synopsis details[open] > summary {
    background: url(synopsis.png) no-repeat -64px -8px;
}

#synopsis ul {
    height: 100%;
    overflow: auto;
    padding: 0.5em;
    margin: 0;
}

#synopsis ul ul {
    overflow: hidden;
}

#synopsis ul,
#synopsis ul li.src {
    background-color: #faf9dc;
    white-space: nowrap;
    list-style: none;
    margin-left: 0;
}

/* @end */

/* @group Main Content */

#interface div.top { margin: 2em 0; }
#interface h1 + div.top,
#interface h2 + div.top,
#interface h3 + div.top,
#interface h4 + div.top,
#interface h5 + div.top {
    margin-top: 1em;
}
.src .selflink,
.src .link {
    float: right;
    color: #919191;
    background: #f0f0f0;
    padding: 0 0.5em 0.2em;
    margin: 0 -0.5em 0 0;
    -moz-user-select: none;
}
.src .selflink {
    border-left: 1px solid #919191;
    margin: 0 -0.5em 0 0.5em;
}

#interface span.fixity {
    color: #919191;
    border-left: 1px solid #919191;
    padding: 0.2em 0.5em 0.2em 0.5em;
    margin: 0 -1em 0 1em;
}

#interface span.rightedge {
    border-left: 1px solid #919191;
    padding: 0.2em 0 0.2em 0;
    margin: 0 0 0 1em;
}

#interface table { border-spacing: 2px; }
#interface td {
    vertical-align: top;
    padding-left: 0.5em;
}

#interface td.doc p {
    margin: 0;
}
#interface td.doc p + p {
    margin-top: 0.8em;
}

.doc table {
    border-collapse: collapse;
    border-spacing: 0px;
}

.doc th,
.doc td {
    padding: 5px;
    border: 1px solid #ddd;
}

.doc th {
    background-color: #f0f0f0;
}

.clearfix:after {
    clear: both;
    content: " ";
    display: block;
    height: 0;
    visibility: hidden;
}

.subs ul {
    list-style: none;
    display: table;
    margin: 0;
}

.subs ul li {
    display: table-row;
}

.subs ul li dfn {
    display: table-cell;
    font-style: normal;
    font-weight: bold;
    margin: 1px 0;
    white-space: nowrap;
}

.subs ul li > .doc {
    display: table-cell;
    padding-left: 0.5em;
    margin-bottom: 0.5em;
}

.subs ul li > .doc p {
    margin: 0;
}

/* Render short-style data instances */
.inst ul {
    height: 100%;
    padding: 0.5em;
    margin: 0;
}

.inst, .inst li {
    list-style: none;
    margin-left: 1em;
}

/* Workaround for bug in Firefox (issue #384) */
.inst-left {
    float: left;
}

.top p.src {
    border-top: 1px solid #ccc;
}

.subs, .doc {
    /* use this selector for one level of indent */
    padding-left: 2em;
}

.warning {
    color: red;
}

.arguments {
    margin-top: -0.4em;
}
.arguments .caption {
    display: none;
}

.fields { padding-left: 1em; }

.fields .caption { display: none; }

.fields p { margin: 0 0; }

/* this seems bulky to me
.methods, .constructors {
  background: #f8f8f8;
  border: 1px solid #eee;
}
*/

/* @end */

/* @group Auxillary Pages */


.extension-list {
    list-style-type: none;
    margin-left: 0;
}

#mini {
    margin: 0 auto;
    padding: 0 1em 1em;
}

#mini > * {
    font-size: 93%; /* 12pt */
}

#mini #module-list .caption,
#mini #module-header .caption {
    font-size: 125%; /* 15pt */
}

#mini #interface h1,
#mini #interface h2,
#mini #interface h3,
#mini #interface h4 {
    font-size: 109%; /* 13pt */
    margin: 1em 0 0;
}

#mini #interface .top,
#mini #interface .src {
    margin: 0;
}

#mini #module-list ul {
    list-style: none;
    margin: 0;
}

#alphabet ul {
    list-style: none;
    padding: 0;
    margin: 0.5em 0 0;
    text-align: center;
}

#alphabet li {
    display: inline;
    margin: 0 0.25em;
}

#alphabet a {
    font-weight: bold;
}

#index .caption,
#module-list .caption { font-size: 131%; /* 17pt */ }

#index table {
    margin-left: 2em;
}

#index .src {
    font-weight: bold;
}
#index .alt {
    font-size: 77%; /* 10pt */
    font-style: italic;
    padding-left: 2em;
}

#index td + td {
    padding-left: 1em;
}

#module-list ul {
    list-style: none;
    margin: 0 0 0 2em;
}

#module-list li {
    clear: right;
}

#module-list span.collapser,
#module-list span.expander {
    background-position: 0 0.3em;
}

#module-list .package {
    float: right;
}

:target {
    background-color: #ffff00;
}

/* @end */

/* @group Search box layout */

#search {
    position: fixed;
    top: 3.2em;
    bottom: 0;
    left: calc(50% - 22em);
    width: 44em;
    z-index: 1000;
    pointer-events: none;
    overflow-y: auto;
}

#search.hidden {
    display: none;
}

#search-form, #search-results {
    box-shadow: 2px 2px 6px rgb(199, 204, 208);
    pointer-events: all;
}

#search-form input {
    font-size: 1.25em; line-height: 2.3em; height: 2.4em;
    display: block;
    box-sizing: border-box;
    width: 100%;
    margin: 0;
    padding: 0 0.75em;
    border: 0.05em solid rgb(151, 179, 202);
}

#search input:focus {
    outline: none;
}

#search p.error {
    color: rgb(107, 24, 24);
    font-weight: bold;
}

#search-results {
    box-sizing: border-box;
    border: 0.05em solid #b2d5fb;
    background: #e8f3ff;
}

#search-form input + #search-results {
    border-top: none;
    top: 3em;
    max-height: calc(100% - 3em);
}

/* @end */

/* @group search results */

#search-results > ul {
    margin: 0;
    list-style: none;
}

#search-results > ul > li,
#search-results > p,
#search-results > table {
    padding: 0.5em 1em;
    margin: 0;
}

#search-results > ul > li {
    border-bottom: 1px solid #b2d5fb;
}

#search-results > ul > li > ul {
    list-style: none;
}

.search-module h4 {
    margin: 0;
}

.search-module > ul {
    margin: 0.5em 0 0.5em 2em;
}

.search-module > ul > li > a[href] {
    display: block;
    color: inherit;
    padding: 0.25em 0.5em;
}

.search-module > ul > li > a[href].active-link {
    background: #faf9dc;
}

.search-module a[href]:hover {
    text-decoration: none;
}

.search-result a a {
    pointer-events: none;
}

.search-result ul.subs {
    display: inline-block;
    margin: 0; padding: 0;
}

.search-result ul.subs li {
    display: none;
}

.search-result ul.subs::after {
    display: inline-block;
    content: "...";
    color: rgb(78,98,114);
    margin: 0 0.25em;
}

.more-results {
    color: rgb(99, 141, 173);
    position: relative;
}

.more-results::before {
    content: "+";
    display: inline-block;
    color: #b2d5fb;
    font-weight: bold;
    font-size: 1.25em; line-height: inherit;
    position: absolute;
    left: -1em;
}

/* @end */

/* @group Keyboard shortcuts table */

.keyboard-shortcuts {
    line-height: 1.6em;
}

.keyboard-shortcuts th {
    color: rgb(78,98,114);
}

.keyboard-shortcuts td:first-child,
.keyboard-shortcuts th:first-child {
    text-align: right;
    padding-right: 0.6em;
}

.key {
    display: inline-block;
    font-size: 0.9em;
    min-width: 0.8em; line-height: 1.2em;
    text-align: center;
    background: #b2d5fb;
    border: 1px solid #74a3d6;
    padding: 0 0.2em;
    margin: 0 0.1em;
}

/* @end */

.constraints {
    font-family:monospace;
    *font-size:108%;
    line-height: 124%;
    margin-left: 32px;
}

.instruction {
    font-family:sans-serif;
}

.generics {
    color: rgb(196,69,29);
}

.comma {
    color: rgb(196,69,29);
}

.parens {
    color: rgb(196,69,29);
}

.params-and-returns td {
    padding-top: 0;
    padding-bottom: 0;
    line-height: 20px;
}

.markdown-bullet:before {
}

.nowrap {
    -o-text-overflow:ellipsis;
    text-overflow:ellipsis;
    white-space:nowrap;
    overflow:hidden;
}

/**
https://cdnjs.cloudflare.com/ajax/libs/prism/1.28.0/themes/prism-tomorrow.min.css
 */
code[class*=language-],pre[class*=language-]{color:#ccc;background:0 0;font-family:Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#2d2d2d}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.block-comment,.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#999}.token.punctuation{color:#ccc}.token.attr-name,.token.deleted,.token.namespace,.token.tag{color:#e2777a}.token.function-name{color:#6196cc}.token.boolean,.token.function,.token.number{color:#f08d49}.token.class-name,.token.constant,.token.property,.token.symbol{color:#f8c555}.token.atrule,.token.builtin,.token.important,.token.keyword,.token.selector{color:#cc99cd}.token.attr-value,.token.char,.token.regex,.token.string,.token.variable{color:#7ec699}.token.entity,.token.operator,.token.url{color:#67cdcc}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.token.inserted{color:green}


/**
* xonokai theme for JavaScript, CSS and HTML
* based on: https://github.com/MoOx/sass-prism-theme-base by Maxime Thirouin ~ MoOx --> http://moox.fr/ , which is Loosely based on Monokai textmate theme by http://www.monokai.nl/
* license: MIT; http://moox.mit-license.org/
*/
code[class*="language-"],
pre[class*="language-"] {
    -moz-tab-size: 2;
    -o-tab-size: 2;
    tab-size: 2;
    -webkit-hyphens: none;
    -moz-hyphens: none;
    -ms-hyphens: none;
    hyphens: none;
    white-space: pre;
    white-space: pre-wrap;
    word-wrap: normal;
    font-family: Menlo, Monaco, "Courier New", monospace;
    font-size: 14px;
    color: #76d9e6;
    text-shadow: none;
}

pre > code[class*="language-"] {
    font-size: 1em;
}

pre[class*="language-"],
:not(pre) > code[class*="language-"] {
    background: #2a2a2a;
}

pre[class*="language-"] {
    padding: 15px;
    border-radius: 4px;
    border: 1px solid #e1e1e8;
    overflow: auto;
    position: relative;
}

pre[class*="language-"] code {
    white-space: pre;
    display: block;
}

:not(pre) > code[class*="language-"] {
    padding: 0.15em 0.2em 0.05em;
    border-radius: .3em;
    border: 0.13em solid #7a6652;
    box-shadow: 1px 1px 0.3em -0.1em #000 inset;
}

.token.namespace {
    opacity: .7;
}

.token.comment,
.token.prolog,
.token.doctype,
.token.cdata {
    color: #6f705e;
}

.token.operator,
.token.boolean,
.token.number {
    color: #a77afe;
}

.token.attr-name,
.token.string {
    color: #e6d06c;
}

.token.entity,
.token.url,
.language-css .token.string,
.style .token.string {
    color: #e6d06c;
}

.token.selector,
.token.inserted {
    color: #a6e22d;
}

.token.atrule,
.token.attr-value,
.token.keyword,
.token.important,
.token.deleted {
    color: #ef3b7d;
}

.token.regex,
.token.statement {
    color: #76d9e6;
}

.token.placeholder,
.token.variable {
    color: #fff;
}

.token.important,
.token.statement,
.token.bold {
    font-weight: bold;
}

.token.punctuation {
    color: #bebec5;
}

.token.entity {
    cursor: help;
}

.token.italic {
    font-style: italic;
}

code.language-markup {
    color: #f9f9f9;
}

code.language-markup .token.tag {
    color: #ef3b7d;
}

code.language-markup .token.attr-name {
    color: #a6e22d;
}

code.language-markup .token.attr-value {
    color: #e6d06c;
}

code.language-markup .token.style,
code.language-markup .token.script {
    color: #76d9e6;
}

code.language-markup .token.script .token.keyword {
    color: #76d9e6;
}

/* Line highlight plugin */
.line-highlight.line-highlight {
    padding: 0;
    background: rgba(255, 255, 255, 0.08);
}

.line-highlight.line-highlight:before,
.line-highlight.line-highlight[data-end]:after {
    padding: 0.2em 0.5em;
    background-color: rgba(255, 255, 255, 0.4);
    color: black;
    height: 1em;
    line-height: 1em;
    box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);
}

/*Louth updates*/
.token.class-name {
    color: #a6e22d;
}
.token.function {
    color: #a6e22d;
}
code.language-none {
}

pre[class*="language-none"], :not(pre) > code[class*="language-none"] {
    border: 0.13em solid #f6f6f6;
    box-shadow: 1px 1px 0.3em -0.1em #f6f6f6 inset;
    background-color: #f6f6f6;
    color: #c08b00;
}