html
{
    overflow-y: scroll;
}

#body
{
    margin-left: 16ch;
    border-left: 1px dotted black;
    margin-top: 20px;
    margin-right: 1em;
    padding-left: 1em;
}

body
{
    font-family: 'Lato', sans;
    text-align: justify;
    hyphens: auto;
    color: black;
    margin: auto;
    max-width: 95ch;
    padding: 0;
    background: white;
}

pre, tt, code
{
    font-family: 'Ubuntu Mono';
    font-size: 100%;
    margin: 0;
    padding: 0;
    overflow: auto;
}

td.sourceCode    { max-width: 200px; }
table.sourceCode { max-width: 100%; }

code { color: #1A001A; }

pre#logo
{
    white-space: pre;
    font-size: 16px;
    font-weight: bold;
    overflow: visible;
    transform-origin: 0 0;
    transform: scaleX(1.2);
    margin-left: -3ch;
    display: block;
    width: 65ch;
}

h1, h2, h3 { font-family: 'Aleo', 'Lato', sans; }
#linkbar-spacer { margin-top: 3.5ex; }

#logo-wrapper
{
    font-size: 16px;
    font-family: 'Ubuntu Mono';
    margin: 0;
    margin-bottom: .5ex;
    text-align: left;
    width: 100%;
}

#toc ul     { list-style-type: none; }
strong      { color: #200020; }
p > .divine { color: #3A103A; font-weight: normal; }
p           { margin-bottom: 1ex; margin-top: 1ex; }

a:link, a:visited, a:active                   { text-decoration: none; color: darkred; }
a:link:hover, a:visited:hover, a:active:hover { text-decoration: none; color: darkblue; }

span.eye
{
    display: none;
}

#csslogo
{
    font-family: 'Ubuntu Mono';
    font-size: 16px;
    font-weight: bold;
    margin-left: 5.2ch;
    margin-bottom: 1.5ex;
    display: block;
    text-align: left;
    width: 9ch;
    color: darkred;
}

#csslogo:before
{
    content: "\A     ^      \A    ———    \A   —(o)—   \A  ———————  \A ————————— \A";
}

pre#linkbar
{
    white-space: pre;
    position: fixed;
    float: left;
    width: 15ch;
    margin-left: -16ch;
    margin-right: -1ch;
    margin-top: -12ex;
    text-align: right;
    font-family: inherit;
    padding: 4px;
    overflow: visible;
}

pre#linkbar > a
{
    display: block;
    margin-bottom: -2.5ex;
    margin-right: 3ch;
    padding: 1px;
    padding-top: 2px;
    padding-bottom: 3px;
}

@media ( min-width: 620px ), ( min-device-width: 620px )
{
    #linkbar a:hover
    {
        border-bottom: 1px solid black;
        border-top: 1px solid black;
        padding: 1px;
        padding-bottom: 2px;
    }
}

#content
{
    min-height: 30ex;
}

#footer
{
    font-family: inherit;
    margin-top: -8.5ex;
    margin-bottom: 16px;
    margin-left: -13.3ch;
    padding-left: .2em;
    text-align: right;
    float: left;
    position: absolute;
}

#footer .divider { display: none; }
#footer a { display: block; }

#linkbar a:link, #linkbar a:visited { color: black; }
#footer a:link, #footer a:visited { color: black; }
#footer a:link:hover, #footer a:visited:hover { color: darkblue; }

h1
{
    font-weight: normal;
    font-size: 121%;
    text-align: left;
    margin-top: 16px;
    margin-bottom: 16px;
    color: black;
}

h2, h3
{
    font-size: 110%;
    font-style: regular;
    font-weight: normal;
}

@media ( max-width: 80ch ), ( max-device-width: 80ch )
{
    body
    {
        margin: 1ch;
        max-width: none;
    }
}

@media ( max-width: 750px ), ( max-device-width: 750px )
{
    pre#logo { transform: scaleX( 1 ) scaleY( 0.8 ); }
}

@media ( max-width: 620px ), ( max-device-width: 620px )
{
    pre#logo
    {
        transform: scaleX( 0.6 ) scaleY( 0.6 );
        position: relative;
        left: 50%;
        margin-left: -19.2ch;
    }
    #logo-wrapper { height: 6ex; text-align: center; }
    pre#linkbar { position: static; margin-left: 0;
                  white-space: normal; margin-top: .5ex;
                  font-size: 80%;
                  float: none; width: 100%; text-align: center; }
    pre#linkbar > a { display: inline; }
    #body { margin: 1ch; padding: 0; border-left: none; }
    #title { margin: 0; }
    span.eye { display: inline; }
    #csslogo:before { content: "" !important; }
    #csslogo { margin: 0 !important; }
}

.invisible { display: none; }

.anon { line-height: 13px; display: block; }
.slashx { transform: translate(-1px) rotate(-48deg) scaleY(1.6); display: inline-block; }
.slash { transform: translateX(-1px) rotate(-51deg) scaleY(1.6); display: inline-block; }
.fslash { transform: translateX(1px) rotate(48deg) scaleY(1.6); display: inline-block; }

/* font definitions */

@font-face
{
  font-family: 'Ubuntu Mono';
  font-style: normal;
  font-weight: 400;
  src: local('Ubuntu Mono'), local('UbuntuMono-Regular'), url(um-400.ttf) format('truetype');
}

@font-face
{
  font-family: 'Ubuntu Mono';
  font-style: normal;
  font-weight: 700;
  src: local('Ubuntu Mono Bold'), local('UbuntuMono-Bold'), url(um-700.ttf) format('truetype');
}

@font-face
{
  font-family: 'Lato';
  font-style: normal;
  font-weight: 400;
  src: local('Lato Regular'), local('Lato-Regular'), url(lato-400.ttf) format('truetype');
}

@font-face
{
  font-family: 'Lato';
  font-style: normal;
  font-weight: 700;
  src: local('Lato Bold'), local('Lato-Bold'), url(lato-700.ttf) format('truetype');
}

/* pandoc syntax */

td.lineNumbers { solid #AAAAAA; text-align: right; color: #AAAAAA; width: 2em; }
td.lineNumbers pre { border: none; text-align: right; padding: 0;
                     margin-right: 1ch; padding-top: 0; }
table.sourceCode { width: 100%; }
td.sourceCode { padding-left: 0; }
td.sourceCode pre { margin: 0 ; }
code.sourceCode span.kw { color: #007020; font-weight: bold; }
code.sourceCode span.dt { color: #902000; }
code.sourceCode span.dv { color: #40a070; }
code.sourceCode span.bn { color: #40a070; }
code.sourceCode span.fl { color: #40a070; }
code.sourceCode span.ch { color: #4070a0; }
code.sourceCode span.st { color: #4070a0; }
code.sourceCode span.co { color: #60a0b0; font-style: italic; }
code.sourceCode span.ot { color: #007020; }
code.sourceCode span.al { color: red; font-weight: bold; }
code.sourceCode span.fu { color: #06287e; }
code.sourceCode span.re { }
code.sourceCode span.er { color: red; font-weight: bold; }

/* ansi2html */

.ef0,.f0 { color: #000000; } .eb0,.b0 { background-color: #000000; }
.ef1,.f1 { color: #AA3040; } .eb1,.b1 { background-color: #AA0000; }
.ef2,.f2 { color: #00AA00; } .eb2,.b2 { background-color: #00AA00; }
.ef3,.f3 { color: #DA9520; } .eb3,.b3 { background-color: #AA5500; }
.ef4,.f4 { color: #0000AA; } .eb4,.b4 { background-color: #0000AA; }
.ef5,.f5 { color: #AA50AA; font-weight: bold; } .eb5,.b5 { background-color: #AA00AA; }
.ef6,.f6 { color: #00AAAA; } .eb6,.b6 { background-color: #00AAAA; }
.ef7,.f7 { color: #AAAAAA; } .eb7,.b7 { background-color: #AAAAAA; }
.f9 { color: white; }
.bold { font-weight: bold; }

/* test result tables */

table.test    { border-collapse: collapse; }
table.test td { padding: 0px; }

span.test-passed  { color: green; }
span.test-failed  { color: red; }
span.test-skipped { color: gray; }
td.test-long      { text-align: center; }
td.test a         { padding: 4px; }

td.test-passed, a.test-passed           { color: black; }
td.test-failed, a.test-failed           { background-color: darkred; color: white; }
td.test-skipped, a.test-skipped         { color: black; }
td.test-started, a.test-started         { color: black; }
td.test-interrupted, a.test-interrupted { background-color: #999900; color: white; }

table.test-compact td.test-name
{
    vertical-align: top;
    width: 8ch;
}

table.test-full td.test { padding-right: 2em; }
table.test-compact div  { border-bottom: 1px dotted black; }
td.test-name div { border-top: 1px dotted black; border-bottom: none; }
tr:nth-child(1) td.test-name div { border-top: none; border-bottom: none; }
tr:last-of-type div { border-bottom: none; }

td.test-compact a.test
{
    display: inline-block;
    width: calc(3ch - 7px);
    height: 1em;
    text-align: center;
    padding: 0px 3px 5px 3px;
}

td.test-compact a.test-failed
{
    vertical-align: -1px;
    padding: 1px 3px 4px 3px;
}

td.test-compact div { margin-bottom: -1px; }

/* webkit hacks :( */
@media screen and (-webkit-min-device-pixel-ratio:0)
{
    #linkbar-spacer { margin-top: 3ex; }
    #footer { margin-top: -8ex; margin-left: -14ch; }
}

/* trac hacks */

.pad-bottom { padding-bottom: 1ex; }

#metanav { display: inline; }
#metanav div { display: inline; }
form div { display: inline; }
.report div.buttons { display: none; }
.report #prefs, .ticket #prefs { display: none; }
.timeline form#prefs { display: none; }
.report h1 { display: none; }
div#help { display: none; }

table.tickets
{
    margin: 5px;
    margin-top: 1ex;
    border-spacing: 0px;
    width: 100%;
}

table.tickets thead { background: lightgray; }

form { display: inline; margin: 0; padding: 0; }

#metanav form.trac-logout button
{
    margin: 0;
    padding: 0;
    border: 0;
    outline: 0;
    background: transparent;
    font-family: inherit;
    font-size: 100%;
    color: #b00;
    border-bottom: 1px dotted #bbb;
    cursor: pointer;
}

#metanav form.trac-logout button::-moz-focus-inner { border: 0; padding: 0 }
#metanav form.trac-logout button:hover { background-color: #eee; color: #555 }
#metanav form.trac-logout button:active { position: static }
#metanav .last:after { content: '.'; }
#metanav .first:after { content: ': '; }

.fullrow input { width: 100%; border: 1px solid gray; }
.fullrow textarea { width: 100%; border: 1px solid gray; }
#field-description-help {  display: none; }
fieldset { border: none; padding: 0; margin: 0; }
textarea { padding: 0; }
th.trac-textarea { vertical-align: top; }
select { width: calc( 100% + 4px ); }
.col1 input, .col2 input { width: 100%; border 1px solid gray; }
table.properties th, table.trac-properties th { padding-left: 1em; padding-right: .5em; }
table.properties td, table.trac-properties td  { padding-right: 2em; }
.trac-properties table { border-spacing: 2px; }

table.tickets td, table.tickets th { padding-left: .7em; }
table.tickets td.summary
{
    text-overflow: ellipsis; white-space: nowrap;
    display: inline-block; width: 25em; overflow: hidden;
}
table.tickets tr:nth-child(even) { background-color: #f0f0f0; }

fieldset#action { margin-top: 1ex; padding-top: 2ex; }
fieldset#action .hint { display: none; }
fieldset#action div { display: block; height: 3.5ex; }
fieldset#action select { width: calc( 16em + 4px ); margin-left: 3em; }
fieldset#action #action_reassign_reassign_owner { width: 16em; margin-left: 2.5em; }

#properties legend { display: none; }
#ticket h2 { display: none; }
.trac-topnav { display: none; }
#trac-add-comment label { display: none; }
#trac-add-comment textarea { width: calc( 100% - 3.4em ); margin-left: 1em; margin-bottom: 1ex; }
.description input { display: none; }
.description p { padding-left: 1em; }
div.attachments { padding-left: 1em; }

div.board { display: inline-block; vertical-align: top; margin-right: 1em; margin-bottom: 1ex; }
div.board caption
{
    white-space: nowrap;
    background-color: #f0f0f0;
    padding-left: 5px;
    padding-right: 5px;
}
div.statistics { text-align: left; }
.board td { padding-left: .5em; }
