<!doctype html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <title>hackdoc:{{ .Title }}</title>
        <style type="text/css">
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed, 
figure, figcaption, footer, header, hgroup, 
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
	margin: 0;
	padding: 0;
	border: 0;
	font-size: 100%;
	font: inherit;
	vertical-align: baseline;
}
/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure, 
footer, header, hgroup, menu, nav, section {
	display: block;
}
body {
	line-height: 1;
}
ol, ul {
	list-style: none;
}
blockquote, q {
	quotes: none;
}
blockquote:before, blockquote:after,
q:before, q:after {
	content: '';
	content: none;
}
table {
	border-collapse: collapse;
	border-spacing: 0;
}

body {
    font-size: 14px;
    line-height: 1.25;
    background-color: #f0f0f0;
}

html {
    /* Cursed snippet to prevent entire page being shifted left when scrollbar
       appears. */
    overflow-x: hidden;
    margin-right: calc(-1 * (100vw - 100%));
}

.wrapper {
    display: flex;
    flex-direction: row;
    justify-content: center;
    width: 100%;
    font-family: 'Open Sans', sans-serif;
}

.column {
    width: 80em;
    padding: 1rem 0 1rem 0;
}

.page {
    background-color: #fefefe;
    width: 100%;

    display: flex;
    flex-direction: row;
    justify-content: space-between;
}

.content {
    order: 1;
    padding: 1rem 1rem 3rem 3rem;
    width: 55em;
}

.sidebar {
    order: 2;
    width: 20em;
    margin-left: 1em;
    padding-top: 1rem;
    padding-bottom: 3rem;
}

.sidebar ul {
    padding: .5em;
    border: 1px solid #ddd;
    margin-top: 1em;
    margin-right: 2em;
    background-color: #f8f8f8;
    font-size: 1em;
}


.header {
    font-size: 1.2em;
    font-family: Consolas, monospace;
    margin-top: 1rem;
    display: inline-flex;
    background-color: #fefefe;
    width: 100%;
}

.headerInner {
    padding: 1em 1em 1em 3em;
}

.header a {
    text-decoration: none;
}
.header a:hover {
    text-decoration: underline;
}

.header span.red {
    color: #b30014;
}

.header span.part {
    color: #666;
    padding-left: 0.2em;
}

.header span.part a {
    color: rgb(27, 106, 203);
}
.header span.part a:visited {
    color: rgb(27, 106, 203);
}

.topbar {
    min-height: 1em;
    padding: 1em 1em 1em 3.5em;
}

.topbar a {
    text-decoration: none;
    color: #333;
    font-size: 1em;
}
.topbar a:hover {
    text-decoration: underline;
}

.topbar span {
    margin-right: 2em;
}

.footer {
    font-size: 0.8em;
    color: #ccc;
    font-weight: 800;
    padding: 0.5em 1em 1em;
    text-align: right;
}

.footer .left {
    float: left;
}

.footer .right {
    float: right;
}

.footer a {
    color: #bbb;
}

.page h1 {
    font-size: 1.9em;
    padding: 1em 0 0 0;
    font-weight: 400;
    color: #000;
}

.page p + h1 {
    padding: 2em 0 0 0;
}

.page h2 {
    font-size: 1.5em;
    padding: 1.6em 0 0 0;
    color: #000;
    font-weight: 400;
}

.page h3 {
    font-size: 1.4em;
    padding: 0.4em 0 0 0;
    color: #333;
}

.page h4 {
    font-size: 1.0em;
    color: #444;
}

.page strong {
    font-weight: 600;
}

.page code {
    font-family: Consolas, monospace;
    background-color: #f8f8f8;
}

.page pre {
    background-color: #f8f8f8;
    border: 1px solid #d8d8d8;
    margin: 2em 1em 2em 1em;
    padding: 0.5em;
    overflow: auto;
    max-width: 60em;
}

.page h1 + p {
    margin-top: 2em;
}

.page h2 + p {
    margin-top: 1em;
}

.page h3 + p {
    margin-top: 1em;
}

.page h4 + p {
    margin-top: 1em;
}


.page p + p {
    margin-top: 1em;
}

.page p {
    line-height: 1.6;
}

.page :not(li) > ul {
    padding-top: 0.5em;
    line-height: 1.5;
}

.page ul li {
    padding-left: 1em;
}

.page :not(li) > ul > li::before {
    content: "•";
    color: #333;;
    display: inline-block;
    width: 1em;
    margin-left: -0.5em;
}

.page li > ul > li::before {
    content: "◦";
    color: #333;;
    display: inline-block;
    width: 1em;
    margin-left: -0.5em;
}

.page img {
    max-width: 50em;
    margin: 1em 0 1em 0;
    display: block;
}

.page table {
    border: 1px solid #ddd;
    width: 100%;
    max-width: 100%;
    margin-bottom: 20px;
    margin-top: 20px;
}

.page table th {
    border-bottom-width: 2px;
    border: 1px solid #ddd;
    border: 1px solid #e36372;
    padding: 5px;
    text-align: left;
    vertical-align: bottom;
    background-color: #e36372;
    font-weight: 800;
    color: #fff;
}
.page table td {
    border: 1px solid #e36372;
    padding: 5px;
    vertical-align: top;
    background-color: #ffdbdf;
}

.page table code {
    font-family: Consolas, monospace;
    background-color: #fcedef;
}

.toc {
    padding: .5em;
    border: 1px solid #ddd;
    background-color: #f8f8f8;
    margin: 2em;
    max-width: 30em;
    font-size: 1em;
}

.toc a {
    text-decoration: none;
}


/** RWD Adjustments - split is based off current total layout width */
@media only screen and (max-width: 1120px) {
    .page, .wrapper {
        flex-direction: column;
    }
    .content {
        width: auto;
        padding: 1rem;
    }
    .column { width: auto }
    .sidebar { width: auto }

    .content img {
      max-width: 100%
    }

    .headerInner, .topbar {
      padding: 1em 1em 1em 2em;
    }
}
        </style>
    </head>
    <body>
        <div class="wrapper">
            <div class="column">
                <div class="header">
                    <div class="headerInner">
                        {{ template "header" . }}
                    </div>
                </div>
                <div class="topbar">
                    {{ template "topbar" . }}
                </div>

                <div class="page">
                    <div class="sidebar">
                        <h3>Page Info</h3>
                        <ul>
                            {{ range .WebLinks }}
                            <li><a href="{{.LinkURL}}">View {{.Kind}} ({{ .LinkLabel }})</a></li>
                            {{ end }}
                            <li><a href="{{ .HackdocURL }}/devtools/hackdoc">Generated by hackdoc</a></li>
                        </ul>
                    </div>
                    {{ .Rendered }}
                </div>
            </div>
        </div>
    </body>
</html>
