{{ define "head" }}
<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.25em;
    background-color: #f0f0f0;
}

.wrapper {
    display: flex;
    flex-direction: row;
    justify-content: center;
    width: 100%;
}

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

.page {
    background-color: #fefefe;
    padding: 0.5rem 2rem 3rem 2rem;
}

.header {
    font-size: 1.2em;
    font-family: Consolas, monospace;
    margin-top: 1rem;
    padding: 0.5em 0 0.5em 0;
    display: inline-flex;
}

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

.footer {
    font-size: 0.8em;
    color: #ccc;
    font-weight: 800;
    font-family: helvetica, arial, sans-serif;
    padding: 0.5em 1em 1em;
    text-align: right;
}

.footer .left {
    float: left;
}

.footer .right {
    float: right;
}

.footer a {
    color: #bbb;
}

h1,h2,h3,h4 {
    font-family: helvetica, arial, sans-serif;
}

.content h1 {
    font-size: 1.6em;
    padding: 1em 0 0 0;
    font-weight: 800;
}

.content h2 {
    font-size: 1.3em;
    padding: 0.8em 0 0 0;
    color: #333;
    font-weight: 800;
}

.content h3 {
    font-size: 1.2em;
    padding: 0.4em 0 0 0;
    color: #444;
}

.content h4 {
    font-size: 1.0em;
    color: #555;
}

.content strong {
    font-weight: 600;
}

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

.content pre {
    background-color: #f8f8f8;
    border: 1px solid #d8d8d8;
    margin: 1em;
    padding: 0.5em;
    overflow: auto;
}

.content p {
    margin-top: 0.8em;
    line-height: 1.5em;
}

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

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

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

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

.content img {
    max-width: 90%;
    margin: 1em auto 1em auto;
    display: block;
}

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

.content 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;
    font-family: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
    color: #fff;
}
.content table td {
    border: 1px solid #e36372;
    padding: 5px;
    vertical-align: top;
    background-color: #ffdbdf;
    font-family: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
}

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

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

.toc a {
    text-decoration: none;
}

</style>
{{ end }}
{{ define "body" }}
<div class="wrapper">
    <div class="column">
        <div class="page">
            <div class="header">
                <span class="red">hackdoc:</span>
                {{ range .PathParts }}
                    {{ if ne .Path "" }}
                        <span class="part"><a href="{{ .Path }}">{{ .Label }}</a></span>
                    {{ else }}
                        <span class="part">{{ .Label }}</span>
                    {{ end }}
                {{ end }}
                <span class="red" style="margin-left: 1em;">shortcuts:</span> <a href="/">root</a>, <a href="/cluster/doc">cluster docs</a>, <a href="/doc/codelabs">codelabs</a>
            </div>
            {{ .Rendered }}
        </div>
        <div class="footer">
            <div class="left">
                View in:
                {{ range .WebLinks }}
                <span class="muted">[{{ .Kind }} <a href="{{ .LinkURL }}">{{ .LinkLabel }}</a>]</span>
                {{ end }}
            </div>
            <div class="right">Generated by <a href="{{ .HackdocURL }}/devtools/hackdoc">hackdoc</a>.</div>
        </div>
    </div>
</div>
{{ end }}
