@charset "UTF-8";
/* gittrac.css — faithful port of Trac's default theme for GitTrac.
 *
 * Base: trac.css + wiki.css from Trac (https://trac.edgewall.org/),
 * BSD-2-Clause. Values and selector grammar are kept as-is so GitTrac
 * looks exactly like Trac; url() references to htdocs assets we do not
 * ship (relies on CSS-gradient fallbacks) have been dropped, and a small
 * "GitTrac additions" section sits at the end.
 */

html { overflow-y: scroll }
body {
 font-size: 100%;
 background: #fff; /* body_bg */
 color: #000;
 margin: .5em;
 padding: 0;
}
body, th, tr {
 font-style: normal;
 font-family: Roboto,'Segoe UI',Verdana,'Bitstream Vera Sans',Helvetica,sans-serif; /* trac_sans_serif */
}
h1, h2, h3, h4 {
 font-weight: bold;
 letter-spacing: -0.018em;
 page-break-after: avoid;
}
h1 { font-size: 1.8em; margin: .15em 1em 0.5em 0 }
h2 { font-size: 1.6em; }
h3 { font-size: 1.2em; }

hr { border: none;  border-top: 1px solid #ccb; margin: 2em 0 }
address { font-style: normal }
img { border: none }

.underline { text-decoration: underline }
ol.loweralpha { list-style-type: lower-alpha }
ol.upperalpha { list-style-type: upper-alpha }
ol.lowerroman { list-style-type: lower-roman }
ol.upperroman { list-style-type: upper-roman }
ol.arabic     { list-style-type: decimal }

/* Link styles */
:link, :visited {
 text-decoration: none;
 color: #b00;
 border-bottom: 1px dotted #bbb;
}
:link:hover, :visited:hover {
 background-color: rgba(238, 238, 238, .5);
 color: #500;
 border-radius: .1em;
 box-shadow: 0 0 0 .15em rgba(238, 238, 238, .5);
}
h1 :link, h1 :visited ,h2 :link, h2 :visited, h3 :link, h3 :visited,
h4 :link, h4 :visited, h5 :link, h5 :visited, h6 :link, h6 :visited {
 color: inherit;
}

/* Heading anchors */
.anchor:link, .anchor:visited {
 border: none;
 color: #d7d7d7;
 font-size: .8em;
 vertical-align: text-top;
}
* > .anchor:link, * > .anchor:visited {
 visibility: hidden;
}
h1:hover .anchor, h2:hover .anchor, h3:hover .anchor,
h4:hover .anchor, h5:hover .anchor, h6:hover .anchor,
span:hover .anchor {
 visibility: visible;
}

h1:target, h2:target, h3:target, h4:target, h5:target, h6:target,
span:target {
 background: #fbffb6; /* trac_hl_color */
 box-shadow: 0 0 .4em 0.1em rgba(172, 172, 172, .25);
}

/* Forms */
input, textarea, select, .trac-button { margin: 2px }
/* Avoid respect to system font settings for controls on Firefox, #11607 */
input, select, button {
 font-style: normal;
 font-size: .9em;
 font-family: Roboto,'Segoe UI',Verdana,'Bitstream Vera Sans',Helvetica,sans-serif; /* trac_sans_serif */
}

textarea {
 white-space: pre-wrap; /* Avoid to inherit white-space of its parent element for IE 11, #11376 */
 font-size: 1em;
}
input, select, .trac-button { vertical-align: middle }
select {
 background: linear-gradient(to top, #dbdbdb 0%, #eee 30%, #fbfbfb 100%); /* select_gradient_darker */
 border-radius: .2em;
 padding-bottom: .15em;
}
select[disabled] { background: #fdfdfd }
input[type=button], input[type=submit], input[type=reset], .trac-button {
 background: #eee;
 color: #222;
 border: 1px solid #bbb;
 border-radius: .3em;
 box-shadow: .1em .1em .1em 0 #ccc;
 padding: .25em .5em .35em; /* Chrome (.3em .5em) vs. FF (.2em .5em .4em) */
 font-size: .9em;
 text-shadow: .04em .04em #ddd;
 cursor: pointer;
}
input[type=button]:hover, input[type=submit]:hover, input[type=reset]:hover,
.trac-button:hover {
 background: #f6f6f6;
 box-shadow: .1em .1em .2em 0 #999;
 text-shadow: .04em .04em #fcfcfc;
}
input[type=button]:active, input[type=submit]:active, input[type=reset]:active,
.trac-button:active, .inlinebuttons a:active {
 position: relative;
 top: .1em;
 left: .1em;
}
input[type=button][disabled], input[type=submit][disabled],
input[type=reset][disabled], .trac-button[disabled] {
 background: #f6f6f6;
 border-style: solid;
 color: #999;
}
input[type=text], input.textwidget, textarea {
 border: 1px solid #d7d7d7;
 border-radius: .3em;
 box-shadow: .1em .1em .4em 0 #f6f6f6 inset;
}
input[type=text], input.textwidget { padding: .25em .5em }
input[type=text]:focus, input.textwidget:focus, textarea:focus {
 border: 1px solid #886;
}
option { border-bottom: 1px dotted #d7d7d7 }
fieldset {
 border: 1px solid #d7d7d7;
 border-radius: .4em;
 margin: 1em 0;
 background: #F7F7F0;
 box-shadow: .1em .1em 1em 0 #E7E7E7 inset;
 padding: 1em;
}
p.hint, span.hint, span.trac-datetimehint {
 color: #666;
 font-size: .9em;
 font-style: italic;
 margin: .5em 0;
 padding-left: 1em;
}
.trac-has-js .trac-nodatetimehint,
.trac-has-js .trac-datetimehint {
 display: none !important
}
label.trac-textarea-hint {
 color: #666;
 display: block;
 font-size: .9em;
 font-style: italic;
 margin: .25em 0;
 text-align: right;
}
span.hint { vertical-align: middle; }
p.help { color: #666; font-size: 90%; margin: 1em .5em .5em; }
legend {
 color: #999;
 margin-left: .6em;
 padding: 0 .25em;
 font-size: 90%;
 font-weight: bold;
}
label.disabled, .disabled span.hint, .disabled p.help, .disabled legend,
.disabled input, .disabled select, .readonly span.hint, .readonly p.help {
 color: #d7d7d7
}
.buttons { margin: .5em .5em .5em 0 }
.buttons form, .buttons form div { display: inline }
.buttons input { margin: 1em .5em .1em 0; }

.inlinebuttons input,
.inlinebuttons .trac-button,
.inlinebuttons a {
 border: 1px solid #ddd;
 border-radius: 1em;
 height: 1.6em;
 padding: 0 .4em .1em;
 font-size: 70%;
 box-shadow: none;
 margin: 0 .1em .1em;
 background: none;
 color: #808080;
 cursor: pointer;
}
.inlinebuttons input:hover,
.inlinebuttons .trac-button:hover,
.inlinebuttons a:hover {
 background: #f6f6f6;
 color: #333;
 box-shadow: .1em .1em .4em 0 #dfdfdf;
}
input[type=button].trac-delete,
input[type=submit].trac-delete,
.trac-button.trac-delete {
 color: #d31313;
}
input[type=button].trac-delete:hover,
input[type=submit].trac-delete:hover,
.trac-button.trac-delete:hover {
 color: #e31313;
}
textarea {
 font-family: 'Open Sans Mono',Consolas,'Lucida Console',monospace; /* code_monospace */
}
input.trac-fullwidth, button.trac-fullwidth {
 box-sizing: border-box;
 margin-left: 0;
 margin-right: 0;
 width: 100%;
}
textarea.trac-fullwidth {
 box-sizing: border-box;
 margin-left: 0;
 margin-right: 0;
 width: 100%;
 padding: 2px;
}
/* Resource edit forms (detailed view) */
form.mod { margin: 1em 0 }
form.mod .field { margin: .5em 0; }
form.mod .field.description { margin-top: 1em; }
form.mod .field label { padding-left: .2em }
form.mod #changeinfo .field { margin: 0.25em 0 0.75em 0 }
form.mod #changeinfo .options { padding: 0 0 0.5em 1em }

/* Header */
#header hr { display: none }
#header h1 { margin: 1.5em 0 -1.5em; padding: 0 }
#header img { border: none; margin: 0 0 -3em }
#header :link, #header :visited, #header :link:hover, #header :visited:hover {
 background: transparent;
 color: #555;
 margin-bottom: 2px;
 border: none;
 padding: 0;
}
#header h1 :link:hover, #header h1 :visited:hover { color: #000 }

/* Quick search */
#search {
 clear: both;
 font-size: .8em;
 height: 2.2em;
 margin: 0 0 1em;
 text-align: right;
}
#search input { font-size: 1em }
#search label { display: none }

/* Navigation */
.nav h2, .nav hr { display: none }
.nav ul {
 font-size: .9em; /* ctxtnav_font_size */
 list-style: none;
 margin: 0;
 padding: 0;
 text-align: right;
}
.nav li {
 border-right: 1px solid #d7d7d7;
 display: inline-block;
 padding: 0 .75em;
 white-space: nowrap;
}
.nav li.last { border-right: none }

/* Meta navigation bar */
#metanav {
 padding-top: .3em;
}
#metanav form.trac-logout {
 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 { /* cf. :link:hover */
 background-color: rgba(238, 238, 238, .5);
 color: #500;
 border-radius: .1em;
 box-shadow: 0 0 0 .15em rgba(238, 238, 238, .5);
}
#metanav form.trac-logout button:active { position: static }

/* Main navigation bar */
#mainnav {
 font-size: .9em;
 font-weight: 600;
 letter-spacing: 0.03em;
 box-shadow: 0 .3em 1em #f2f2f2;
 border: 1px solid #e4e4e4;
 border-radius: .4em;
 margin: .66em 0 .33em;
}
#mainnav ul { margin: -1px; padding: 0; list-style: none }
#mainnav li {
 background: linear-gradient(to bottom,#f2f2f2 0%,#fafafa 25%,#fefefe 49%,#fff 51%,#fafafa 85%,#f2f2f2 100%);
 border: 1px solid #e4e4e4;
 margin: 0px .3em 0 -.4em;
 padding: .4em 0; /* mainnav_padding = (mainnav_v_padding = .4em) 0  */
 font-weight: 600;
 text-transform: uppercase;
 display: inline-block;
}
#mainnav .first, #mainnav .first :link {
 border-top-left-radius: .5em;
 border-bottom-left-radius: .5em;
}
#mainnav .last, #mainnav .last :link {
 border-top-right-radius: .5em;
 border-bottom-right-radius: .5em;
 margin-right: 0;
}
#mainnav :link, #mainnav :visited {
 border-bottom: none;
 color: #666;
 padding: .5em 20px;  /* mainnav_v_padding */
}
#mainnav :link:hover, #mainnav :visited:hover {
 background: linear-gradient(to bottom,#888 0%,#555 25%,#333 49%,#333 51%,#444 85%,#888 100%);
 color: #eee;
}
#mainnav .active {
 border: 1px solid #666;
}
#mainnav .active :link, #mainnav .active :visited {
 background: linear-gradient(to bottom,#555 0%,#333 25%,#111 49%,#000 51%,#333 75%,#555 100%);
 color: #eee;
}

/* Context-dependent navigation links */
#ctxtnav {
 min-height: 1em;
 padding: .4em 0; /* mainnav_padding */
}
#ctxtnav li ul {
 background: #f7f7f7;
 color: #ccc;
 border: 1px solid;
 padding: 0;
 display: inline;
 margin: 0;
}
#ctxtnav li li { padding: 0; }
#ctxtnav li li :link, #ctxtnav li li :visited { padding: 0 1em }
#ctxtnav li li :link:hover, #ctxtnav li li :visited:hover {
 background: #bba;
 color: #fff;
}

.trac-nav, .trac-topnav {
 float: right;
 font-size: 80%;
}
.trac-topnav {
 margin-top: 14px;
}

/* Alternate links */
#altlinks {
 clear: both;
 margin-top: .4em;
 text-align: center;
}
#altlinks h3 { font-size: 1.1em; letter-spacing: normal; margin: 0 }
#altlinks ul { list-style: none; margin: 0; padding: 0 }
#altlinks li {
 border-right: 1px solid #d7d7d7;
 display: inline;
 font-size: 1.1em;
 line-height: 1.5;
 padding: 0 1em;
 white-space: nowrap;
}
#altlinks li.last { border-right: none }
#altlinks li :link, #altlinks li :visited {
 background-repeat: no-repeat;
 color: #666;
 border: none;
 padding: 0 0 2px;
}

/* Footer */
#footer {
 clear: both;
 color: #bbb;
 font-size: .9em;
 height: 31px;
 padding: .25em 0;
}
#footer :link, #footer :visited { color: #bbb; }
#footer hr { display: none }
#footer #tracpowered { border: 0; float: left }
#footer #tracpowered:hover { background: transparent }
#footer p { margin: 0 }
#footer p.left {
 float: left;
 margin-left: 1em;
 padding: 0 1em;
 border-left: 1px solid #d7d7d7;
 border-right: 1px solid #d7d7d7;
}
#footer p.right {
 float: right;
 text-align: right;
}

/* Container for all the elements in the page, usually single child of the body element */
#content {
 position: relative; /* reference for absolute positioning of children */
}

/* Information content */
div.trac-content {
 padding: .5rem 1rem; /* trac_content_padding_left trac_content_padding_right */
 margin: .3em auto;
 border: 1px solid #e4e4e4;
 border-radius: .4em; /* main_border_radius */
 box-shadow: .3em .3em .4em #f2f2f2; /* main_box_shadow */
}
div.trac-content.borderless {
 border: none;
 box-shadow: none;
}

/* Author info */
.trac-author-anonymous, .trac-author-none {
 font-style: italic;
}
.trac-author-user {
 font-weight: bold;
 color: #666;
}

/* Help links */
.uinohelp .trac-help { display: none }
.trac-help {
 clear: both;
 color: #999;
 font-size: 90%;
 margin: 1em;
 text-align: right;
}
.trac-help :link, .trac-help :visited { cursor: help }
.trac-help hr { display: none }

/* Section folding */
.foldable :link, .foldable :visited {
 border: #e4e4e4 solid 1px;
 border-radius: .3em;
 box-shadow: .1em .15em .3em 0 #d7d7d7;
 color: #222;
 text-shadow: .04em .04em #fcfcfc;
 padding: .2em .5em .3em 20px;
}
.foldable :link:hover, .foldable :visited:hover { background-color: transparent }
.collapsed > div, .collapsed > table, .collapsed > ul, .collapsed > dl { display: none }
fieldset > legend.foldable :link, fieldset > legend.foldable :visited {
 color: #666;
 font-size: 110%;
 text-shadow: .04em .04em #ddd;
}
.collapsed legend.foldable { background: white }

.expander {
 cursor: pointer;
 padding-left: 8px;
 margin-left: 4px;
}

/* Section with count */
h2 .trac-count, h3 .trac-count {
 margin-left: .2em;
 vertical-align: baseline;
 color: #999;
 font-size: 90%;
 font-weight: normal;
}

/* Page preferences form */
#prefs {
 background: #f7f7f0;
 border: 1px solid #d4d4d4;
 border-radius: 11px; /* main_border_radius_px */
 box-shadow: .1em .3em .5em 0 #d4d4d4; /* aside_box_shadow */
 float: right;
 font-size: .9em;
 padding: .8em;
 position: relative;
 margin: 0 1em 1em;
}
#prefs input, #prefs select { font-size: .9em; vertical-align: middle }
#prefs fieldset {
 background: transparent;
 border: none;
 box-shadow: none;
 margin: .5em;
 padding: 0;
}
#prefs fieldset legend {
 background: transparent;
 color: #000;
 font-size: .9em;
 font-weight: normal;
 margin: 0 0 0 -1.5em;
 padding: 0;
}
#prefs .buttons { text-align: right }

/* Version information (browser, wiki, attachments) */
#info {
 margin: 1em 0 0 0;
 background: #f7f7f0;
 border: 1px solid #d7d7d7;
 border-collapse: collapse;
 border-spacing: 0;
 clear: both;
 width: 100%;
}
#info th, #info td { font-size: .9em; padding: 2px .5em; vertical-align: top }
#info th { font-weight: bold; text-align: left }
#info td.message { width: 100% }
#info .message ul { padding: 0; margin: 0 2em }
#info .message p { margin: .5em 0; padding: 0 }
#info .message hr { margin: .5em 0; padding: 0 }
a.trac-diff:after { content: "∆" }

/* Wiki */
.wikipage h1, .wikipage h2, .wikipage h3, .wikipage h4, .wikipage h5, .wikipage h6 {
 margin-left: -1.5rem; /* wiki_h_margin_left = -(wiki_h_left_padding + wikipage_content_padding_left) */
 margin-right: -1rem; /* wiki_h_margin_right (= -trac_content_padding_right) */
}
.wikipage table h1, .wikipage table h2, .wikipage table h3 {
 margin-left: -1rem;
 margin-right: -.25rem;
}
div.compact > p:first-child { margin-top: 0 }
div.compact > p:last-child { margin-bottom: 0 }

/* Delete */
#delete-confirm li { list-style-type: square; }

/* Styles related to RTL support */
.rtl { direction: rtl; }
.rtl div.wiki-toc { float: left; }
.rtl .wiki-toc ul ul, .wiki-toc ol ol { padding-right: 1.2em }

a.missing:link, a.missing:visited, a.missing, span.missing,
a.forbidden, span.forbidden { color: #666 }
a.missing::after { content: "?" }
a.missing:hover { color: #000 }
a.closed:link, a.closed:visited, span.closed { text-decoration: line-through }

/* User-selectable styles for blocks */
.important {
 background: #fcb;
 border: 1px dotted #d00;
 color: #500;
 padding: 0 .5em 0 .5em;
 margin: .5em;
}

dl.wiki dt { font-weight: bold }
dl.compact dt { float: left; padding-right: .5em }
dl.compact dd { margin: 0; padding: 0 }

pre.wiki, pre.literal-block {
 background: #f7f7f7;
 border: 1px solid #d7d7d7;
 box-shadow: 0.3em 0.3em 0.75em 0.1em rgba(210, 215, 220, 0.3); /* content_box_shadow */
 border-radius: .3em;  /* content_border_radius */
 margin: 1em 1.75em;
 padding: .25em;
 overflow: auto;
}

div.wiki-code {
 margin: 1em 1.75em;
}

code, tt {
 color: #600;
 font-family: 'Open Sans Mono',Consolas,'Lucida Console',monospace; /* code_monospace */
 border: 1px solid #edc;
 border-radius: .25em;
 padding: 0 0.15em;
 background: #fcfcfc;
 margin: 0 .1em;
 white-space: pre-wrap;
}
h1 code, h2 code, h3 code, h4 code, h5 code, h6 code {
 color: #500;
 font-weight: 500;
}

pre {
 font-family: 'Open Sans Mono',Consolas,'Lucida Console',monospace; /* code_monospace */
 font-size: .9em;
}

blockquote.citation {
 margin: -0.6em 0 0 0;
 border-style: solid;
 border-width: 0 0 0 2px;
 padding-left: .5em;
 border-color: #b44;
}
.citation blockquote.citation { border-color: #4b4; }
.citation .citation blockquote.citation { border-color: #44b; }
.citation .citation .citation blockquote.citation { border-color: #c55; }
li blockquote.citation { margin-top: 0 }

table.wiki {
 border: 1px solid #ccc;
 border-collapse: collapse;
 border-spacing: 0;
 box-shadow: 0.3em 0.3em 0.75em 0.1em rgba(210, 215, 220, 0.3); /* content_box_shadow */
}
table.wiki td { border: 1px solid #ccc;  padding: .1em .25em; }
table.wiki th {
 border: 1px solid #bbb;
 padding: .1em .25em;
 background-color: #f7f7f7;
}
table.wiki tbody tr.even { background-color: #fcfcfc }
table.wiki tbody tr.odd { background-color: #f7f7f7 }

/* Styles for the list of attachments. */
#attachments > div.attachments {
 padding: 0 0 1em 1em;
}
#attachments dl.attachments { margin-left: 2em; padding: 0 }
#attachments dt { display: list-item; list-style: square; }
#attachments dd { font-style: italic; margin-left: 0; padding-left: 0; }
#attachments p {
 margin-left: 2em;
 font-size: 90%;
 color: #666;
}
#attachments > div.attachments > p {
 float: right;
 margin: .4em 0;
}
#attachments span.trac-author { font-style: italic; }

.attachment #preview { margin-top: 1em }

/* Styles for tabular listings such as those used for displaying directory
   contents and report results. */
table.listing {
 clear: both;
 border-bottom: 1px solid #d7d7d7;
 border-collapse: collapse;
 border-spacing: 0;
 box-shadow: .3em .3em .4em 0 #f2f2f2; /* main_box_shadow */
 margin: 1em 0;
 width: 100%;
}
table.listing th { text-align: left; padding: 0 1em .1em 0; font-size: 1em }
table.listing th.sel, table.listing td.sel { text-align: center; width: 1% }
table.listing thead tr { background: #f7f7f0 }
table.listing thead th {
 border: 1px solid #d7d7d7;
 border-bottom-color: #999;
 font-size: 1em;
 font-weight: bold;
 padding: 2px .5em;
 vertical-align: bottom;
 white-space: nowrap;
}
table.listing thead th :link:hover, table.listing thead th :visited:hover {
 background-color: transparent;
}
table.listing thead th a { border: none; padding-right: 12px }
table.listing tbody td, table.listing tbody th {
 border: 1px dotted #ddd;
 padding: .3em .5em;
 vertical-align: top;
}
table.listing tbody td a:hover, table.listing tbody th a:hover {
 background-color: transparent;
}
table.listing tbody tr { border-top: 1px solid #ddd }
table.listing tbody tr.even { background-color: #fcfcfc }
table.listing tbody tr.odd { background-color: #f7f7f7 }
table.listing tbody tr:hover td { background: #eed !important }
table.listing tbody tr.focus { background: #ddf !important }

table.listing pre { white-space: pre-wrap }

/* Styles for the page history table
   (extends the styles for "table.listing") */
#fieldhist td { padding: 0 .5em }
#fieldhist td.date, #fieldhist td.diff, #fieldhist td.version,
#fieldhist td.author {
 white-space: nowrap;
}
#fieldhist td.version { text-align: center }
#fieldhist td.comment { width: 100% }

/* Auto-completion interface */
.suggestions { background: #fff; border: 1px solid #886; color: #222; }
.suggestions ul {
 font-family: sans-serif;
 max-height: 20em;
 min-height: 3em;
 list-style: none;
 margin: 0;
 overflow: auto;
 padding: 0;
 width: 440px;
}
.suggestions li { background: #fff; cursor: pointer; padding: 2px 5px }
.suggestions li.selected { background: #b9b9b9 }

/* Styles for the error page */
#content.error .message, div.system-message {
 background: #fdc;
 border: 2px solid #d00;
 color: #500;
 padding: .5em;
 margin: 1em 0;
}
#content.error div.message pre, div.system-message pre {
 margin-left: 1em;
 overflow: hidden;
 white-space: pre-wrap;
}

div.system-message p { margin: 0 }
div.system-message p.system-message-title { font-weight: bold; }

/* rst errors are less emphasized */
span.system-message {
 float: left;
 background: #fdc;
 padding: 0.2em;
 margin: 1px;
 border-radius: 0.25em;
}

/* whole-page admonitions in theme.html */
div.system-message {
 border-radius: .4em; /* main_border_radius */
 box-shadow: .3em .3em .4em 0 #f2f2f2; /* main_box_shadow */
}

#warning.system-message, .warning.system-message {
 background: #ffb;
 border: 1px solid #bb8;
}
#warning.system-message li { list-style-type: square; }

#notice.system-message, .notice.system-message {
 background: #dfd;
 border: 1px solid #8b8;
}
#notice.system-message li { list-style-type: square; }

/* error.html page */
#content.error form.newticket { display: inline; }
#content.error form.newticket textarea { display: none; }

#content.error #traceback { margin-left: 1em; }
#content.error #traceback :link, #content.error #traceback :visited {
  border: none;
}
#content.error #tbtoggle { font-size: 80%; }
#content.error #traceback div { margin-left: 1em; }
#content.error #traceback h3 { font-size: 95%; margin: .5em 0 0; }
#content.error #traceback :link var, #content.error #traceback :visited var {
  font-family: 'Open Sans Mono',Consolas,'Lucida Console',monospace; /* code_monospace */
  font-style: normal;
  font-weight: bold;
}
#content.error #traceback span.file { color: #666; font-size: 85%; }
#content.error #traceback ul { list-style: none; margin: .5em 0; padding: 0; }
#content.error #traceback table.code td { white-space: pre; font-size: 90%; }
#content.error #traceback table.code tr.current td { background: #e6e6e6; }
#content.error #traceback table { margin: .5em 0 1em;  }
#content.error #traceback th, #content.error #traceback td {
 font-size: 85%;
 padding: 1px;
}
#content.error #traceback th var {
  font-family: 'Open Sans Mono',Consolas,'Lucida Console',monospace; /* code_monospace */
  font-style: normal;
}
#content.error #traceback td code { white-space: pre; }
#content.error #traceback pre { font-size: 95%; }

#content .paging { margin: 0 0 2em; padding: .5em 0 0;
  font-size: 85%; line-height: 2em; text-align: center;
}
#content .paging .current {
  padding: .1em .3em;
  border: 1px solid #333;
  background: #999; color: #fff;
}

#content .paging :link, #content .paging :visited {
  padding: .1em .3em;
  border: 1px solid #666;
  background: transparent; color: #666;
}
#content .paging :link:hover, #content .paging :visited:hover {
  background: #999; color: #fff;  border-color: #333;
}
#content .paging .previous a,
#content .paging .next a {
  font-size: 150%; font-weight: bold; border: none;
}
#content .paging .previous a:hover,
#content .paging .next a:hover {
  background: transparent; color: #666;
}

#content h2 .numresults { color: #666; font-size: 90%; }

/* Styles for the About page */
#content.about a.logo { border: none; float: right; margin-left: 2em; }
#content.about a.logo img { display: block; }
#content.about p.copyright { color: #999; font-size: 90%; }

/* Styles for environment info (error and about pages) */
#environmentinfo h2 { margin-top: 2em; }
#environmentinfo table { margin: 1em; width: auto; }
#environmentinfo table th, #environmentinfo table td { border: 1px solid #ddd; font-size: 90%; }
#environmentinfo table th { background: #f7f7f7; font-weight: bold; white-space: nowrap; }

/* Styles for search word highlighting */
@media screen {
 .searchword0 { background: #ff9 }
 .searchword1 { background: #cfc }
 .searchword2 { background: #cff }
 .searchword3 { background: #ccf }
 .searchword4 { background: #fcf }
}

/* --- wiki.css (Trac) --- */

#info { margin: 0 0 1em 0 }

#wikipage {
 clear: both;
}

/* Wide wiki page */
#content #wikipage {
 max-width: none;
}

/* Wiki page headings -- h1 to h6 (h2 and h3 have a special underline) */

h1.section {
 font-size: 1.8em;
 color: #822;
 padding-left: .5rem; /* wiki_h_left_padding */
}
h2.section {
 font-size: 1.6em;
 color: #822;
 margin-top: 1.4em;
 padding: .2em .3em 1em .5rem; /* wiki_h_underline_padding _ _ wiki_h_left_padding */
 background: linear-gradient(to top,
  rgba(255, 255, 255, 0) 0,
  rgba(239, 239, 239, .4) .4em,
  rgba(215, 215, 215, .4) .79em,
  #822 .8em, /* wiki_h_underline_color wiki_h_underline_shadow */
  #822 .9em, /* wiki_h_underline_shadow + wiki_h3_underline_height */
  rgba(255, 255, 255, 0) .9em,
  rgba(255, 255, 255, 0) 100%
 ) /* wiki_h2_underline_background */
}
h3.section {
 font-size: 1.3em;
 font-weight: 600;
 color: #822;
 margin-top: 1.4em;
 margin-bottom: 1em;
 padding: .2em .3em 1em .5rem; /* _ _ (wiki_h_underline_padding + wiki_h_underline_shadow) wiki_h_left_padding */
 background: linear-gradient(to top,
  rgba(255, 255, 255, 0) 0,
  rgba(239, 239, 239, .4) .4em,
  rgba(215, 215, 215, .4) .8em,
  #822 .8em,  /* _ wiki_h_underline_shadow */
  #822 .85em, /* wiki_h_underline_shadow + wiki_h3_underline_height */
  rgba(255, 255, 255, 0) .9em,
  rgba(255, 255, 255, 0) 100%
 ) /* wiki_h3_underline_background */
}

h2.section + *, h3.section + * {
 margin-top: -1em !important;
}
h2.section :link, .section h2 :visited,
h3.section :link, .section h3 :visited { border-bottom: none }

h4.section {
 font-size: 1.15em;
 font-weight: 600;
 color: #822;
 margin-top: 1.4em;
 margin-bottom: 1em;
 padding-left: .5rem; /* wiki_h_left_padding */
}
h5.section {
 font-size: 1.1em;
 font-weight: normal;
 color: #822;
 margin-top: 1.4em;
 margin-bottom: .9em;
 padding-left: .5rem; /* wiki_h_left_padding */
}
h6.section {
 font-size: 1em;
 font-style: italic;
 font-weight: normal;
 color: #822;
 margin-top: 1.4em;
 margin-bottom: .8em;
 padding-left: .5rem; /* wiki_h_left_padding */
}

/* Wiki page margins and padding */
.wikipage .trac-content {
 margin: .3em auto;
 padding-left: 1.5rem;  /* wikipage_content_padding_left */
}
.wikipage .trac-content .wikipage { /* not perfect... should also work for tickets! */
 margin-left: -1.5rem;
 padding-left: 1.5rem;
}
table.wiki {
 background-color: inherit;
}

/* Styles for the path of hierarchical pages */
#pagepath {
 font-size: .9em; /* ctxtnav_font_size */
 float: left;
 padding: .4em 0; /* mainnav_padding */
}
#pagepath :link, #pagepath :visited { margin: 0 .2em }
#pagepath .first:link, #pagepath .first:visited { color: #998 }
#pagepath .sep { color: #666; padding: 0 .1em }
#pagepath .pathentry { float: left }

div.trac-modifiedby {
 margin: .3em .5em;
 color: #888;
 font-size: 80%;
 font-style: italic;
 text-align: right;
 float: right;
}
div.trac-modifiedby :link, div.trac-modifiedby :visited { color: inherit }
div.trac-modifiedby span.trac-print { display: none; }

/* Styles for the TracGuideToc wikimacro */
.wiki-toc {
 padding: .5em 1em;
 margin: 0 0 2em 1em;
 float: right;
 clear: right;
 border: 1px solid #ddc;
 border-radius: .4em; /* main_border_radius */
 box-shadow: .1em .3em .5em 0 #d4d4d4; /* aside_box_shadow */
 background: #ffd;
 font-size: 85%;
 position: relative;
}
.wiki-toc h4 {
 font-size: 1.2em;
 margin: 0 0 .5em;
 padding: 0;
}
.wiki-toc ul, .wiki-toc ol { list-style: none; padding: 0; margin: 0 }
.wiki-toc ul ul, .wiki-toc ol ol { padding-left: 1.2em }
.wiki-toc li { margin: 0; padding: 0 }
.wiki-toc .active { background: #ff9; position: relative; }
.wiki-toc-un ul, .wiki-toc-un ol { list-style: none; }
.wiki-toc ol li { font-weight: normal }
.wiki-toc > ol > li { font-weight: 500 }

/* --- print --- */

@media print {
 th.diff, td.diff { display: none }
 #content.narrow #wikipage { max-width: none }
 #header, #altlinks, #footer, .trac-help, #warning, #notice { display: none }
 .nav, form, .buttons form, form .buttons, form .inlinebuttons,
 .noprint, .trac-nav, .trac-topnav,
 #attachments > div.attachments > p {
  display: none;
 }
 form.printableform { display: block }
 pre.wiki, pre.literal-block { box-shadow: none }
 :link, :visited { border-bottom: none }
 div.trac-content {
  box-shadow: none;
  border: none;
 }
 .foldable :link, .foldable :visited {
  text-shadow: none;
  box-shadow: none;
 }
}

/* --- GitTrac additions (keep the Trac grammar; no new visual language) --- */

.gt-muted { color: #666 }
.gt-muted a { color: #b00 }

/* Banner wordmark: static/gittrac_logo.png (468x192 @2x, displayed 234x96).
   The markup also carries width/height attributes, so the logo stays
   right-sized even without this sheet. #header h1 keeps the Trac margin
   trick so search/metanav stay in their band; the image is block-level
   (no baseline gap) and the generic `#header img` negative margin is
   neutralized. Height is the one knob. */
#header h1 a { display: block; margin: 0; }
#header h1 img {
 display: block;
 height: 96px;
 width: auto;
 margin: 0;
}

.gt-badge {
 color: #666;
 font-size: .85em;
 border: 1px solid #ddd;
 border-radius: .2em;
 padding: 0 .3em;
 white-space: nowrap;
}

form.mod .field label { display: block; margin: .1em 0 }
form.mod .field input[type=text], form.mod .field textarea { width: 24em }
form.mod .field textarea { min-height: 5em }

:focus-visible {
 outline: 2px solid #886;
 outline-offset: 1px;
}

@media (max-width: 720px) {
 #mainnav li { margin: 0 }
 table.listing { box-shadow: none }
}

/* ==================================================================== */
/* Phase 1: Browse Source, Log, Changeset — port of Trac's browser.css, */
/* changeset.css, code.css and diff.css (edgewall/trac trunk,           */
/* BSD-2-Clause). url(../x) refs rewritten to this directory's icons.   */
/* ==================================================================== */

/* GitTrac glue: selectors the ported Trac sheets don't cover, using
   Trac's own palette and its shipped icons. */

h1.browser { overflow: hidden; padding-right: 14em }
#jumprev { float: right; padding: 0 0 .6em .6em }
#jumprev select { max-width: 20em }
.trac-nav { float: right; padding: 0 0 .6em .8em }
.trac-nav .sep { color: #ccc; padding: 0 .25em }

table.dirlist a.dir, table.dirlist a.file {
 padding-left: 22px;
 background-position: 2px center;
 background-repeat: no-repeat;
}
table.dirlist a.dir { background-image: url(folder.png) }
table.dirlist a.file { background-image: url(file.png) }
table.dirlist a.parent {
 padding-left: 22px;
 background: transparent url(parent.png) 2px center no-repeat;
}
a.chgset {
 padding-left: 20px;
 background: transparent url(changeset.png) left center no-repeat;
}

/* --- trac/htdocs/css/browser.css --- */
#prefs { margin-top: -0.6em }
* html #prefs { width: 34em } /* Set width only for IE */
#prefs fieldset { margin: 0; }
#prefs fieldset label { display: block }
#prefs .buttons { margin-top: -2.3em }
#prefs .choice {
 float: left;
 margin: 0 .6em 0 .3em;
 border-right: 1px dotted #d7d7d7;
}

#file-legend { margin-top: 3em; }

/* Browser */
h1 { margin: 0; padding: 0 0 .5em }
h1 :link, h1 :visited { border: none; }
h1 :link, h1 :visited { color: #b00 }
h1 .first:link, h1 .first:visited { color: #998 }
h1 .sep { color: #666; padding: 0 .1em }
h1 .pathentry { float: left; padding: 0 .1em }
h1.repoindex { margin-top: 1em; }

#diffrev, #jumprev, #jumploc {
 float: right;
 font-size: .9em;
 margin: 0 0 0.6em 2em;
}
#diffrev form, #jumprev form, #jumploc form { margin: 0 }
#diffrev input, #jumprev input, #jumploc select, #jumploc input {
 font-size: .9em;
 margin: 0;
}
#jumploc div.buttons { margin: 0; }

/* Browser file annotations */
table.code th.blame { width: 5em; }
table.code th.blame a { color: #ddd; }

div.message {
  background: #ececec;
  border: 1px solid #cecece;
  margin: 0;
  padding: 8px;
  box-shadow: .2em .4em .7em 1px #999;
  border-radius: .4em;
  /* Note that border width and padding must be compensated for in the placement */
}

div.message div.inlinebuttons { float: right;  }
div.message div.embedded { clear: right; }

/* Styles for the directory entries table
   (extends the styles for "table.listing") */
table.dirlist { margin-top: 0 }
table.dirlist td.rev, table.dirlist td.age, table.dirlist td.author, table.dirlist td.change {
 color: #888;
 white-space: nowrap;
 vertical-align: middle;
}
table.dirlist td.rev {
 font-family: monospace;
 letter-spacing: -0.01em;
 text-align: right;
}
table.dirlist td.size {
 color: #888;
 white-space: nowrap;
 text-align: right;
 vertical-align: middle;
 font-size: 70%;
}
table.dirlist td.size a.trac-rawlink, table.dirlist td.size a.trac-ziplink {
 margin-left: .3em;
}
table.dirlist td.age {
 border-width: 0 2px 0 0;
 border-style: solid;
 font-size: 85%;
}
table.dirlist td.name { width: 100%; white-space: nowrap }
table.dirlist td.name a.parent {
  background: url(parent.png) 0 50% no-repeat;
  padding-left: 20px;
}
table.dirlist td.name a.dir {
  background: url(folder.png) 0 50% no-repeat;
  font-weight: 500;
  padding-left: 20px;
}
table.dirlist td.name a.file {
  background: url(file.png) 0 50% no-repeat;
  padding-left: 20px;
}
table.dirlist td.name a, table.dirlist td.rev a { border-bottom: none }
table.dirlist td.author, table.dirlist td.change { font-size: 85% }
table.dirlist td.rev a.chgset {
  background: url(changeset.png) 100% 50% no-repeat;
  padding: 0 0 0 5px;
  margin: 0 5px 0 0;
}
table.dirlist td.description { padding-left: 2em }
table.dirlist td.description > :first-child { margin-top: 0 }
table.dirlist td.description > :last-child { margin-bottom: 0 }
table.dirlist td span.loading {
  background: url(loading.gif) 0 50% no-repeat;
  padding-left: 20px;
  font-style: italic
}

#content.browser div.description { padding: 0 0.5em }

/* Style for the ''View Changes'' button and the diff preparation form */
#anydiff { margin-top: 1em; }
#anydiff form, #anydiff div, #anydiff h2 { display: inline }
#anydiff form th { text-align: right }
#anydiff input {  vertical-align: baseline; margin: 0 -0.5em 0 1em }
@media print {
 #anydiff form { display:  none }
}

/* Log */
tr.diff input { padding: 0 1em; margin: 0 }
table.trac-graph tbody tr { height: 2em; }
table.trac-graph tbody tr td.trac-graph { padding: 0; background-color: #fcfcfc; }
table.trac-graph th.trac-graph, table.trac-graph td.trac-graph { display: none; }
table.trac-graph td.summary { white-space: nowrap; }

@media print {
 th.diff, td.diff { display: none }
}

/* Styles for the revision log table (extends the styles for "table.listing") */
table.chglist { margin-top: 0 }
.chglist td.diff, .chglist td.rev, .chglist td.age,
.chglist td.author, .chglist td.change {
 white-space: nowrap;
 vertical-align: middle;
}
.chglist td.author { color: #888 }
.chglist td.change span {
 border: 1px solid #999;
 float: left;
 margin: .2em .5em 0 0;
 width: .8em; height: .8em;
}
.chglist td.diff { padding: 1px }
.chglist td.change .comment { display: none }
.chglist td.age { font-size: 85% }
.chglist td.author { font-size: 85% }
.chglist td.rev {
 font-family: monospace;
 letter-spacing: -0.01em;
 text-align: right;
}
.chglist td.rev a { border-bottom: none }
.chglist td.rev a.chgset {
  background-repeat: no-repeat;
  background-image: url(changeset.png);
  background-position: 100% 50%;
  padding: 0 0 0 5px;
  margin: 0 5px 0 0;
}
.chglist td.summary, .chglist td.log {
 width: 100%;
 font-size: 85%;
 vertical-align: middle;
}
.chglist td.summary *, .chglist td.log * { margin-top: 0 }
/* verbose mode */
.chglist tr.verbose { border-top: none }
.chglist tr.verbose td.filler, .chglist tr.verbose td.log {
 border: none;
 border-bottom: 1px solid #ddd;
 color: #333;
}
.chglist tr.verbose td { border: none; }
.chglist tr.verbose td.diff, .chglist tr.verbose td.filler {
 border-left: 1px solid #ddd;
}
.chglist tr.verbose td.summary, .chglist tr.verbose td.log {
 border-right: 1px solid #ddd;
}

#paging { margin: 1em 0 }

/* Styles for the revision info in the file view (see also trac.css) */
#info { margin: 0; }
#info .props {
 color: #666;
 list-style: square;
 margin: 0 0 .4em 1.6em;
 padding: 0;
}
#info .props > li { padding: 2px 0; overflow: auto; }
.trac-toggledeleted {
 display: none;
 margin-left: 3em;
 white-space: nowrap;
}

/* Styles for the HTML preview */
#preview { background: #fff; clear: both; margin: 0 }
#preview .code-block { border-top: 1px solid #999; margin: 0 }
#preview .image-file { overflow: hidden }
#preview .image-file img { max-width: 100% }

/* Branch, tag and bookmark labels */
.chglist td.summary .branch, .chglist td.summary .tag, .chglist td.summary .trac-bookmark,
.browser .trac-tags .branch, .browser .trac-tags .tag, .browser .trac-tags .trac-bookmark {
 color: #777;
 font-size: 80%;
 background: #f6f6f6;
 border: 1px solid #ddd;
 margin: 0 0 0 .5em;
 padding: 0 .2em;
}
.chglist td.summary .head, .browser .trac-tags .head {
 background: #d0ffd0;
 border: 1px solid #9d9;
}
.chglist td.summary .tag, .browser .trac-tags .tag {
 background: #ffa;
 border: 1px solid #fe0;
}
.chglist td.summary .trac-bookmark, .browser .trac-tags .trac-bookmark {
 background: #bdf;
 border: 1px solid #9ae;
}

/* --- trac/htdocs/css/changeset.css --- */
/* Changeset overview */
#overview .files { padding: 1px 0 }
#overview .files ul { margin: 0; padding: 0 }
#overview .files li { list-style-type: none }
#overview .files li .comment { display: none }
#overview .files li div {
 border: 1px solid #999;
 float: left;
 margin: .2em .5em 0 0;
 overflow: hidden;
 width: .8em; height: .8em;
}

#overview .changeset { padding: 0 0 1px }
#overview dd.changeset p {
 margin-bottom: 0;
 margin-top: 0;
}
#content.changeset p.message { margin-left: 8.5em; }

.diff ul.props {
 font-size: 90%;
 list-style: disc;
 margin: .5em 0 0;
 padding: 0 .5em 1em 2em;
}
.diff ul.props li { margin: 0; padding: 0 }

/* --- trac/htdocs/css/code.css --- */
div.code {
 background: #f7f7f7;
 border: 1px solid #d7d7d7;
 overflow: auto;
 border-radius: .3em; /* content_border_radius */
 box-shadow: 0.3em 0.3em 0.75em 0.1em rgba(210, 215, 220, 0.3); /* content_box_shadow */
}

div.code pre {
 margin: 0;
 overflow: auto;
 padding: .25em;
 border-radius: .3em;
}

@media print {
 div.code { box-shadow: none }
 div.code pre { white-space: pre-wrap }
}

table.code {
 border: 1px solid #ddd;
 border-spacing: 0;
 border-top: 0;
 border-collapse: collapse;
 empty-cells: show;
 font-size: .9em; /* code_font_size */
 line-height: 120%; /* code_line_height */
 padding: 0;
 margin: 0 auto;
 table-layout: fixed;
 width: 100%;
 box-shadow: 0.3em 0.3em 0.75em 0.1em rgba(210, 215, 220, 0.3); /* content_box_shadow */
}
table.code th {
 border-right: 1px solid #d7d7d7;
 border-bottom: 1px solid #d7d7d7;
 font-size: .9em;
}
table.code th.lineno { width: 4em }
table.code thead th {
 background: #eee;
 border-top: 1px solid #d7d7d7;
 color: #999;
 padding: 0 .25em;
 text-align: center;
 white-space: nowrap;
}
table.code thead th.content {
 text-align: left;
}
table.code thead th.content span.recover {
 background: #f7f7f7;
 border-left: 1px solid;
 border-right: 1px solid;
 cursor: pointer;
 margin: 0 1em 0 0;
 padding: 0 .5em;
}
table.code tbody th {
 background: #eed;
 color: #886;
 font-weight: normal;
 padding: 0 .5em;
 text-align: right;
 vertical-align: top;
}
table.code tbody th :link, table.code tbody th :visited {
 border: none;
 color: #886;
 text-decoration: none;
}
table.code tbody th :link:hover, table.code tbody th :visited:hover {
 color: #000;
}
table.code tbody tr:hover td {
 background: #eed;
}
table.code td {
 font-family: 'Open Sans Mono',Consolas,'Lucida Console',monospace; /* code_monospace */
 overflow: hidden;
 padding: 1px 2px;
 vertical-align: top;
 white-space: pre-wrap;
}
table.code tr.hilite th {
 background: #ccf;
}
table.code tr.hilite td {
 background: #ddf;
}
.image-file { background: #eee; padding: .3em }
.image-file img { background: url(imggrid.png) }

/* Default XXX is that used anywhere? */
.code-block span {
 font-family: 'Open Sans Mono',Consolas,'Lucida Console',monospace; /* code_monospace */
}

/* --- trac/htdocs/css/diff.css --- */
/* Diff preferences */
#prefs fieldset { margin: 1em .5em .5em; padding: .5em 1em 0 }

/* Diff/change overview */
#overview { line-height: 130%; margin-top: 1em; padding: .5em .5em .5em 0 }
#overview dt.property {
 clear: left;
 float: left;
 font-weight: bold;
 text-align: right;
 width: 7.75em;
}
#overview dd { margin-left: 8.5em }

#overview .message { padding: 1em 0 1px }
#overview dd.message p, #overview dd.message ul, #overview dd.message ol,
#overview dd.message pre { margin-bottom: 1em; margin-top: 0; }
#overview dd.message .inlinebuttons { float: right; }

/* Colors for change types */
.chglist .edit, #overview .mod, .diff .legend .mod { background: #fd8 }
.chglist .delete, #overview .rem, .diff .legend .rem { background: #f88 }
.chglist .add, #overview .add, .diff .legend .add { background: #bfb }
.chglist .copy, #overview .cp, .diff .legend .cp { background: #88f }
.chglist .move, #overview .mv, .diff .legend .mv { background: #ccc }
.chglist .unknown { background: #fff }

/* Legend for diff and file colors */
.legend {
 font-size: .9em;
 line-height: 1em;
 padding: .5em 0;
}
.legend h3 { display: none; }
.legend dt {
 background: #fff;
 border: 1px solid #999;
 float: left;
 margin: .1em .5em .1em 0;
 overflow: hidden;
 width: .8em; height: .8em;
}
.legend dl {
 display: inline;
 padding: 0;
 margin: 0;
 margin-right: .5em;
}
.legend dd {
 display: inline;
 float: left;
 padding: 0;
 margin: 0;
 margin-right: 2em;
}

#diff-legend {
 float: left;
 clear: right;
 margin: 1em .5em;
}

#file-legend dd { margin-left: 0; }

/* Styles for the list of diffs */
.diff ul.entries { clear: both; margin: 0; padding: 0 }

.diff li.entry {
 background: #f7f7f7;
 border: 1px solid #d7d7d7;
 border-radius: .3em; /* content_border_radius */
 box-shadow: 0.3em 0.3em 0.75em 0.1em rgba(210, 215, 220, 0.3); /* content_box_shadow */
 list-style-type: none;
 margin: 0 0 2em;
 padding: 2px;
 position: relative;
 width: 100%;
}
@media print {
    .diff li.entry { box-shadow: none }
}
.diff h2 {
 color: #333;
 font-size: 1.1em;
 letter-spacing: normal;
 margin: 0 auto;
 padding: .1em 0 .25em .5em;
}
.diff h2 .switch {
 color: #999;
 float: right;
 font-size: 75%;
 line-height: 1.6em;
}
.diff h2 .switch span { border-left: 1px solid #ccc; cursor: pointer;
  padding: 0 1em;
}
.diff h2 .switch span:first-child { border: none; }
.diff h2 .switch span.active { color: #333; cursor: default; }

/* Styles for the actual diff tables (side-by-side and inline) */
.diff table.trac-diff {
 border: 1px solid #ddd;
 border-spacing: 0;
 border-top: 0;
 empty-cells: show;
 font-size: .9em; /* code_font_size */
 line-height: 120%; /* code_line_height */
 padding: 0;
 margin: 0 auto;
 table-layout: fixed;
 width: 100%;
}
.diff table.trac-diff col.lineno {
 font-size: .9em; /* diff_lineno_font_size */ /* (cumulative) */
 width: 9ch;
}
.diff table.trac-diff th {
 border-right: 1px solid #d7d7d7;
 border-top: 1px solid #ccc;
 font-size: .9em; /* diff_lineno_font_size */ /* (cumulative) */
 font-weight: normal;
}
.diff table.trac-diff thead th {
 background: #eee;
 border-top: 1px solid #d7d7d7;
 color: #999;
 padding: 0 .25em;
 text-align: center;
 white-space: nowrap;
}
.diff table.trac-diff tbody th {
 background: #eed;
 color: #886;
 font-weight: normal;
 padding: 0 .5em;
 text-align: right;
}
.diff table.trac-diff td {
 background: #fff;
 font-family: 'Open Sans Mono',Consolas,'Lucida Console',monospace; /* code_monospace */
 overflow: visible;
 padding: 1px 2px;
 vertical-align: top;
}
.diff table.trac-diff tbody tr:hover td {
 background: #eed;
}
.diff table.trac-diff tbody.mod tr:hover td,
.diff table.trac-diff tbody.add tr:hover td,
.diff table.trac-diff tbody.rem tr:hover td {
 background: #ddc;
}
.diff table.trac-diff tbody.mod tr:hover td del,
.diff table.trac-diff tbody.mod tr:hover td ins {
 background: #bb9;
}
.diff table.trac-diff tbody.skipped td, .diff table.trac-diff thead td {
 background: #f7f7f7;
 border: 1px solid #d7d7d7;
}
.diff td ins, .diff td del {text-decoration: none;}

/* Styles for the inline diff */
pre.diff .rem { background: #fdd; }
pre.diff .add { background: #dfd; }
.diff table.inline tbody.mod td.l, .diff table.inline tbody.rem td.l {
 background: #fdd;
 border-color: #c00;
 border-style: solid;
 border-width: 0 1px 0 1px;
}
.diff table.inline tbody.mod td.r, .diff table.inline tbody.add td.r {
 background: #dfd;
 border-color: #0a0;
 border-style: solid;
 border-width: 0 1px 0 1px;
}
.diff table.inline tbody.mod tr.first td.l,
.diff table.inline tbody.rem tr.first td.l { border-top-width: 1px }
.diff table.inline tbody.mod tr.last td.l,
.diff table.inline tbody.rem tr.last td.l { border-bottom-width: 1px }
.diff table.inline tbody.mod tr.first td.r,
.diff table.inline tbody.add tr.first td.r { border-top-width: 1px }
.diff table.inline tbody.mod tr.last td.r,
.diff table.inline tbody.add tr.last td.r { border-bottom-width: 1px }
.diff table.inline tbody.mod td del {
 background: #e99;
 color: #000;
}
.diff table.inline tbody.mod td ins {
 background: #9e9;
 color: #000;
}

/* Styles for the side-by-side diff */
.diff table.sidebyside colgroup.content { width: 50% }
.diff table.sidebyside tbody.mod td.l { background: #fe9 }
.diff table.sidebyside tbody.mod td.r { background: #fd8 }
.diff table.sidebyside tbody.add td.l { background: #dfd }
.diff table.sidebyside tbody.add td.r { background: #cfc }
.diff table.sidebyside tbody.rem td.l { background: #f88 }
.diff table.sidebyside tbody.rem td.r { background: #faa }
.diff table.sidebyside tbody.mod del, .diff table.sidebyside tbody.mod ins {
 background: #fc0;
}

/* Styles for the plain-text diff view */
.diff pre {
 background: #fff;
 border: 1px solid #ddd;
 font-size: .9em; /* code_font_size */
 margin: 0;
}

/* Styles for the property diffs */
.diff table.props td { padding: 2px 0.5em }

/* Styles for the diff page */
.trac-autocomplete-dir { font-weight: bold }
.trac-autocomplete-dir .ui-state-active { font-weight: inherit }
/* GitTrac (plan §11): timeline sidebar — Trac's #prefs form as a
   right-hand column with bookmarkable filter groups. */
.timeline {
  position: relative;
}

.timeline #prefs {
  float: right;
  width: 20em;
  margin: 0 0 1.2em 1.6em;
  padding: .3em .9em .9em;
  background: #f7f7f7;
  border: 1px solid #d7d7d7;
  border-radius: .2em;
}

.timeline #prefs h3 {
  margin: .8em 0 .25em;
  font-size: 100%;
  color: #822;
}

.timeline #prefs label {
  display: block;
  margin: .1em 0;
}

.timeline #prefs label.gt-muted {
  color: #999;
}

.timeline #prefs label.gt-muted .hint {
  color: #aaa;
}

.timeline #prefs fieldset {
  border: none;
  margin: 0;
  padding: 0 .2em;
}

.timeline #prefs input[type=date] {
  width: 9.5em;
}

.timeline #prefs select {
  width: 100%;
}

.timeline #prefs .buttons {
  margin: .8em 0 0;
}

/* the repository badge — same values as Trac's .branch.head badge */
.timeline dt.changeset .tl-repo {
  color: #777;
  font-size: 80%;
  background: #d0ffd0;
  border: 1px solid #9d9;
  border-radius: .1em;
  margin: 0 0 0 .5em;
  padding: 0 .2em .15em;
}
/* Timeline — Trac port (timeline.css); url(../x) -> url(x). */

.timeline #prefs fieldset label { display: block }
.timeline #prefs .buttons { margin: -.5em 0 0 }

.timeline h2 {
 background: #f7f7f7;
 border-bottom: 1px solid #d7d7d7;
 font-size: 105%;
 margin: 2em 0 .5em;
 padding: .4em;
 box-shadow: .2em .3em .5em 0 #f6f6f6; /* wiki_h2_box_shadow */
 border-radius: .2em; /* sep_border_radius */
}
.timeline dl {
 line-height: 1.3em;
 margin-left: 1em;
}
.timeline dl.unread {
 margin-left: 0.38em;
 border-left: 0.31em solid #c0f0c0;
 padding-left: 0.31em;
}

.timeline dt { background: 3px 4px no-repeat; padding: 0 }
.timeline dt + dt { margin-top: .75em; }
.timeline dt :link, .timeline dt :visited {
 background: 3px 3px no-repeat;
 border: none;
 color: #000;
 padding: 0 4px 2px 22px;
}
.timeline dt>:link, .timeline dt>:visited {
 background-position: 3px 4px;  /* Hide from IE/Win */
}
.timeline dt :link:hover, .timeline dt :visited:hover {
 background-color: #eed;
 color: #000;
}
.timeline dt em {
 color: #b00;
 font-style: normal;
 text-decoration: none;
}
.timeline dt em.trac-parent-resource {
 color: #000;
}
.timeline dt .time { color: #999; font-size: 80%; }
.timeline dt .trac-author { color: #666; }
.timeline dt.highlight { background-color: #ffa; }
.timeline dd {
 font-size: 80%;
 margin: 0 0 .75em 5.8em;
 padding: 0;
 color: #776;
}

/* Apply icon background-image twice to avoid hover-flicker in IE/Win */
.timeline dt.changeset, .timeline dt.changeset a {
 background-image: url(changeset.png) !important
}
.timeline dt.newticket, .timeline dt.newticket a {
 background-image: url(newticket.png) !important
}
.timeline dt.reopenedticket, .timeline dt.reopenedticket a {
 background-image: url(newticket.png) !important
}
.timeline dt.editedticket, .timeline dt.editedticket a {
 background-image: url(editedticket.png) !important
}
.timeline dt.closedticket, .timeline dt.closedticket a {
 background-image: url(closedticket.png) !important
}
.timeline dt.batchmodify, .timeline dt.batchmodify a {
 background-image: url(batchmodify.png) !important
}
.timeline dt.wiki, .timeline dt.wiki a {
 background-image: url(wiki.png) !important
}
.timeline dt.milestone, .timeline dt.milestone a {
 background-image: url(milestone.png) !important
}
.timeline dt.attachment, .timeline dt.attachment a {
 background-image: url(attachment.png) !important
}

/* styles for the 'changeset_long_messages' option */
.timeline dd.changeset p { margin: 0; padding: 0 }
.timeline dd.changeset ul { padding-left: 15px; }

/* Styles for the 'changeset_show_files' option */
.timeline dd.changeset .changes {
 color: #aaa;
 font-size: 90%;
 margin-left: 0;
 padding-left: 0;
 list-style-type: none;
}
.timeline dd.changeset .changes li div {
 border: 1px solid #999;
 display: inline-block;
 margin: 0 .5em 0 0;
 width: .8em;
 height: .8em;
 vertical-align: middle;
}
.timeline dd.changeset .changes li span {
 margin-right: .8em;
}
.timeline dd.changeset .changes .add    { background: #bfb }
.timeline dd.changeset .changes .delete { background: #f88 }
.timeline dd.changeset .changes .edit   { background: #fd8 }
.timeline dd.changeset .changes .copy   { background: #88f }
.timeline dd.changeset .changes .move   { background: #ccc }
.timeline dt.changeset .branch,
.timeline dt.changeset .tag,
.timeline dt.changeset .trac-bookmark {
 color: #777;
 font-size: 80%;
 background: #f6f6f6;
 border: 1px solid #ddd;
 border-radius: .1em;
 margin: 0 0 0 .5em;
 padding: 0 .2em .15em;
}
.timeline dt.changeset .head {
 background: #d0ffd0;
 border: 1px solid #9d9;
}
.timeline dt.changeset .tag {
 background: #ffa;
 border: 1px solid #fe0;
}
.timeline dt.changeset .trac-bookmark {
 background: #bdf;
 border: 1px solid #9ae;
}

#content.ticket {
 width: 56em;
 max-width: 100%;
 margin-left: auto;
 margin-right: auto;
}

#content.ticket .trac-topnav {
 float: none;
 text-align: right;
 margin-top: 0;
}


/* "Yellow Ticket Box" */
#ticketbox {
 background: #ffd;
 border: 1px solid #dd9;
 border-radius: .4em;
 margin-top: .2em;
 padding: .5em 1em;
 position: relative;
}

/* YTB in preview mode */
#ticketbox.ticketdraft {
 background: #f8f8f8 url(draft.png);
}
#ticketchange.ticketdraft {
 overflow: auto;
 padding: 0 1em;
 margin: 1em 0;
}
#ticketchange.ticketdraft h3.change {
 margin-top: .5em;
}
.preview-notice { font-weight: bold; }

.ticketdraft {
 background: #f8f8f8 url(draft.png);
 border: 1px solid #d7d7d7;
 border-radius: .4em;
 padding: 0 .2em;
}

#trac-ticket-title {
 margin-top: .4em;
 margin-right: 0;
 clear: right;
}

#ticketbox > h1, #ticketbox > h2 { color: #844 }
#ticketbox > h2 { margin: .3em 0 .4em 0 }
#ticketbox > h2 .trac-id {
 font-size: 145%;
 vertical-align: middle;
 margin: 0 .4em 0 0;
}
#ticketbox > h2 .trac-status {
 vertical-align: middle;
}
#ticketbox > h2 .trac-type {
 color: #955;
 vertical-align: middle;
}
#ticketbox > h2 .trac-resolution {
 vertical-align: middle;
}

#ticketbox .date {
 color: #996;
 float: right;
 font-size: 85%;
 position: relative;
 top: -.2em;
}
#ticketbox .date p { margin: .3em }

#ticketbox table.properties {
 clear: both;
 border-top: 1px solid #dd9;
 border-collapse: collapse;
 table-layout: fixed;
 width: 100%;
}
#ticketbox table.properties > tbody > tr { border-bottom: 1px dotted #eed }
#ticketbox table.properties > tbody > tr > td,
#ticketbox table.properties > tbody > tr > th {
 font-size: .9em;
 padding: .5em 1em;
 vertical-align: top;
}
#ticketbox table.properties > tbody > tr > th {
 color: #663;
 font-weight: normal;
 text-align: left;
 width: 20%;
}
#ticketbox table.properties > tbody > tr > th.missing { color: #d3d398; }
#ticketbox table.properties > tbody > tr > td { width: 30% }
#ticketbox table.properties > tbody > tr > td p:first-child { margin-top: 0 }
#ticketbox table.properties > tbody > tr > td p:last-child { margin-bottom: 0 }
#ticketbox div.description h2 {
 border-bottom: 1px solid #dd9;
 color: #663;
 font-size: 120%;
 font-weight: 600;
}
#ticketbox div.description h3 .lastmod {
 font-size: 85%;
}
#ticketbox .inlinebuttons {
 float: right;
 position: relative;
 bottom: 0.3em;
}
#ticketbox .trac-noreplybutton {
 display: none;
}

/* Change History */
#changelog {
 padding: 1.5em 0;
}
.trac-shade { background-color: #eee }
#trac-threaded-form { float: right }

/* Threaded comments */
ul.children {
 margin-top: 1.5em;
 padding-left: 2em;
}
ul.children, ul.children ul.children { list-style: none }
ul.children ul, ul.children ol { list-style-image: none }
ul.children > li.child {
 padding: 0 0 0 .5em;
 margin-bottom: 1.5em;
 border: 1px solid;
 border-color: transparent transparent transparent #d8d7d7;
 border-radius: .8em 0 0 .8em;
 box-shadow: -1.6em 0 #e9e9e9;
}
#changelog ul.children h3.change {
 margin-left: -.5rem;
 padding: .1em .4em 1em .5em;
 border-radius: .8em 0 0 0;
}
#changelog pre.wiki, #changelog div.code { clear: right }
#ticketchange pre.wiki, #ticketchange div.code { clear: right }

.in-reply-to:before { content: "↑" }
.follow-up:before { content: "↓" }
.trac-most-recent-first .in-reply-to:before { content: "↓" }
.trac-most-recent-first .follow-up:before { content: "↑" }


/* Comment contents */
#changelog h3.change, #ticketchange h3.change {
 background: linear-gradient(to top,
  rgba(255, 255, 255, 0),
  rgba(234, 234, 234, 0.21) .3em,
  rgba(198, 198, 198, 0.21) .7em,
  #c7c5c5 .8em, /* ticket_h_underline_color ticket_h_underline_shadow */
  rgba(255, 255, 255, 0) .8em,
  rgba(243, 243, 243, 0.3) 100%
 );
 padding: 0 .2em 1em; /* ticket_h_underline_padding _ (ticket_h_underline_padding + ticket_h_underline_shadow) */
 margin: 0 0 .2em;
 color: #655b5b;
 font-size: 100%;
 font-weight: normal;
}
#changelog h3:target, #ticketchange h3:target {
 background: linear-gradient(to top,
  rgba(255, 255, 255, 0),
  rgba(234, 234, 234, 0.21) .3em,
  rgba(198, 198, 198, 0.21) .7em,
  #c7c5c5 .8em, /* ticket_h_underline_color ticket_h_underline_shadow */
  #fbffb6 .8em, /* trac_hl_color */
  #fbffb6 100%
 );
 box-shadow: none;
}
@media print {
 #changelog h3.change, #ticketchange h3.change { background: none }
}
#changelog h3 :link, #changelog h3 :visited { border-bottom: none }

/* Comment editor */
#trac-comment-editor { margin-left: .5em; margin-bottom: 1em }
#trac-comment-editor textarea { background: #ffffe0; }
#trac-comment-editor .wikitoolbar { clear: right }
.trac-new { border-left: 0.31em solid #c0f0c0; padding-left: 0.31em; }

.trac-loading {
  background: url(loading.gif) 0 50% no-repeat;
  margin: 0 1em;
  padding-left: 16px;
  display: none;
}
.threading, #changelog .inlinebuttons {
 float: right;
}

.threading { font-size: 85%; }
.threading :link, .threading :visited { border-bottom: 0 }
#changelog .trac-lastedit {
 padding-left: 2.5em;
 margin-top: .8em;
 margin-bottom: 1.4em;
 color: #999;
 font-size: 80%;
}
#changelog .trac-lastedit :link, #changelog .trac-lastedit :visited { color: inherit }
#changelog ul.children .trac-lastedit {
 margin-bottom: .6em;
}


/*  - Change controls */
.trac-change-panel {
 margin-top: -.5em; /* related to #changelog h3.change, #ticketchange h3.change { padding-bottom: 1em } */
}
.trac-ticket-buttons {
 clear: right;
 visibility: hidden;
 float: right;
}
.trac-ticket-buttons form {
 display: inline-block;
}

/* - Property changes */
#changelog .changes { background: #ffd }
#ticketchange .changes { background: #f8f8f8 url(draft.png) }
#changelog .changes, #ticketchange .changes {
 clear: right;
 width: auto;
 margin: 0 0 1.5em 2em;
 padding: 0 .8em .2em;
 color: #663;
 border: 1px solid;
 border-color: #eea #dd9 #dd9 #eea;
 border-radius: .4em;
 float: right;
 box-shadow: .1em .2em 1em #eee;
}
div.change, ul.children { clear: both; }
div.change:after {
 content: "";
 display: block;
 clear: both;
 height: 0;
}

.changes th {
 text-align: right;
 vertical-align: baseline;
 padding: .4em .7em .4em 0;
 font-size: 85%;
 border-top: 1px dotted #eed;
}
.changes td {
 font-size: 85%;
 padding: .4em 0 .4em 0;
 border-top: 1px dotted #eed;
}
.changes tr:first-child th, .changes tr:first-child td { border-top: none }
.changes .trac-field-new { font-weight: bold }
.changes .trac-field-deleted { text-decoration: line-through }

.trac-conflict, .trac-conflict th {
 border-left: .3em solid #e44;
 padding-left: .3em;
}
#changelog .comment, #ticketchange .comment { margin-left: .8em }
button.trac-revert, button.trac-revert:hover {
 margin: 0;
 padding: 0;
 border: none;
 border-bottom: 1px dotted #bbb;
 overflow: visible;
 cursor: pointer;
 background: none;
 color: #b00;
 text-decoration: none;
 -moz-user-select: text;
}
button.trac-revert:hover { background-color: #eee; color: #555; }
button.trac-revert div { display: none; }

form .field { margin-top: .75em; width: 100% }
form .field fieldset { margin-left: 1px; margin-right: 1px }
#trac-add-comment .author { margin-bottom: 1em; }
#trac-add-comment .author span.hint {
 display: block;
 margin-top: 0;
 text-align: right
}
#trac-add-comment table th { text-align: left; width: 30%; }
#trac-add-comment table td { width: 70%; }

#propertyform {
 clear: both;
 margin-bottom: 2em;
}
#propertyform table.trac-properties {
 border-spacing: 0;
 table-layout: fixed;
 width: 100%;
}
#propertyform table.trac-properties td input[type="text"],
#propertyform table.trac-properties td textarea {
 -moz-box-sizing: border-box;
 box-sizing: border-box;
 width: 100%;
}
#properties { line-height: 160%; padding: 1em }
#properties table.trac-properties > tbody > tr > th,
#properties table.trac-properties > colgroup > col.th {
 overflow: hidden;
 padding: .4em;
 text-align: right;
 vertical-align: middle;
 width: 17%;
}
#properties table.trac-properties > tbody > tr > th.col2 { border-left: 1px dotted #d7d7d7 }
#properties table.trac-properties > tbody > tr > td,
#properties table.trac-properties > colgroup > col.td {
 padding-right: 0.6em;
 vertical-align: middle;
 width: 33%
}
#properties table.trac-properties > tbody > tr > th.trac-textarea { vertical-align: top }
#properties table.trac-properties > tbody > tr > td.fullrow { width: 83% }
#properties table.trac-properties > tbody > tr > td.col1 > label,
#properties table.trac-properties > tbody > tr > td.col2 > label { float: left; margin-right: 0.5em; }
#properties table.trac-properties > tbody > tr > td > select { max-width: 100% }
#properties table.trac-properties > tbody > tr > td > span.hint { display: block; line-height: 100%; text-align: right }
#properties table.trac-properties > tbody > tr > td > label.trac-textarea-hint { line-height: 100%; margin-bottom: 1em }

#action { line-height: 2em }

fieldset.radio { border: none; margin: 0; padding: 0 }
fieldset.radio legend {
 color: #000;
 float: left;
 font-size: 100%;
 font-weight: normal;
 padding: 0 1em 0 0;
}
fieldset.radio label { padding-right: 1em }

#content.ticket .trac-nav a { margin-left: 1em; }

/* GitTrac additions: issue rendering */
.ticket .description .gt-rawtext, .ticket div.comment.gt-rawtext {
 white-space: pre-wrap;
}
.gt-label {
 border: 1px solid #ccc;
 border-radius: .2em;
 padding: 0 .3em;
 margin: 0 .3em .2em 0;
 font-size: 80%;
 display: inline-block;
 background: #f7f7f7;
 color: #776;
}
form#prefs label { margin-right: .8em; }

/* Pull requests (plan §18): file-list swatches reuse the changeset
   change-type palette; state chips for open/merged/closed/draft. */
.pr-files { list-style: none; margin: 0 0 .8em; padding: 0; }
.pr-files li { padding: .15em .4em .15em 0; }
.pr-files li div {
 border: 1px solid #999;
 float: left;
 margin: .2em .5em 0 0;
 overflow: hidden;
 width: .8em; height: .8em;
}
.pr-files li div.mod { background: #fd8 }
.pr-files li div.rem { background: #f88 }
.pr-files li div.add { background: #bfb }
.pr-files li div.cp  { background: #88f }
.pr-files li div.mv  { background: #ccc }
.pr-files li .gt-pr-file { font-family: monospace; }
#pr-sections { margin: .8em 0 .4em; }
#pr-sections ul { list-style: none; margin: 0; padding: 0; }
#pr-sections li { display: inline; margin-right: 1.2em; font-weight: bold; }
#pr-sections a { color: #b00; }
.gt-pr-status {
 font-size: 80%;
 padding: 0 .35em;
 border: 1px solid #999;
 border-radius: 2px;
 background: #eee;
}
.gt-pr-status.open { background: #bfb; border-color: #9d9; }
.gt-pr-status.merged { background: #dcd0ff; border-color: #88f; }
.gt-pr-status.closed { background: #f88; border-color: #d66; }
.gt-pr-status.draft { background: #eee; border-color: #bbb; color: #666; }
.gt-check.ok { color: #060; }
.gt-check.fail { color: #b00; font-weight: bold; }
.gt-check.running { color: #669; }

/* Ticket / pull-request timeline events (plan §10-11): icons reuse Trac's
   ticket set; the repo badge mirrors the changeset rule above. */
.timeline dt.newpull, .timeline dt.newpull a {
 background-image: url(newticket.png) !important
}
.timeline dt.closedpull, .timeline dt.closedpull a {
 background-image: url(closedticket.png) !important
}
.timeline dt.newticket .tl-repo, .timeline dt.closedticket .tl-repo,
.timeline dt.newpull .tl-repo, .timeline dt.closedpull .tl-repo {
  color: #777;
  font-size: 80%;
  background: #d0ffd0;
  border: 1px solid #9d9;
  border-radius: .1em;
  margin: 0 0 0 .5em;
  padding: 0 .2em .15em;
}


/* --- Knowledge base (plan §9) ------------------------------------ */

/* Landing: create box + blog-style article list. */
.kb-new { margin: 1em 0 1.4em; }
.kb-new input[type=text] { font-size: 105%; padding: 3px 6px; }
.kb-item { padding: .9em 0; border-bottom: 1px solid #e8e8eb; }
.kb-item:last-child { border-bottom: none; }
.kb-item h2 { margin: 0 0 .15em; font-size: 130%; }
.kb-byline { color: #666; font-size: 85%; }
.kb-excerpt { margin: .35em 0 0; color: #444; }

/* Article view. */
.kb-article { max-width: 52em; }
.kb-title { margin-bottom: .2em; }
.kb-note { color: #666; font-size: 90%; margin-bottom: .6em; }
.kb-body { margin-top: 1.2em; }
.kb-body pre { background: #f7f7f7; border: 1px solid #ddd; padding: .8em; overflow: auto; }
.kb-body blockquote { border-left: 3px solid #ddd; margin: 1em 0; padding: .1em 1em; color: #555; }
.kb-body blockquote cite { display: block; color: #777; font-size: 90%; }
.kb-body table { border-collapse: collapse; margin: .8em 0; }
.kb-body td, .kb-body th { border: 1px solid #ddd; padding: 4px 8px; }
.kb-body img { max-width: 100%; height: auto; }
.kb-body figure { margin: 1em 0; }
.kb-body figcaption { color: #666; font-size: 90%; }
.kb-marker { background: #fff6bf; padding: .4em .6em; }
.kb-backlinks { margin-top: 2.2em; border-top: 1px solid #e8e8eb; padding-top: .8em; color: #555; }
.kb-backlinks h3 { margin: 0 0 .3em; }
.kb-backlinks ul { margin: 0 0 0 1.4em; }

/* Editor page. */
.kb-editor { border: 1px solid #e8e8eb; background: #fff; padding: 12px 16px; margin: 12px 0; min-height: 320px; }
.kb-note-line { margin: 1em 0; }
.kb-note-line input[type=text] { width: 60%; }


/* Wiki article images: zoom cursor + full-screen lightbox (kb-lightbox.js). */
.kb-body img { cursor: zoom-in; }
.kb-lightbox { position: fixed; inset: 0; z-index: 1000; display: flex; align-items: center; justify-content: center; background: rgba(0, 0, 0, .85); }
.kb-lightbox img { max-width: 95vw; max-height: 92vh; background: #fff; box-shadow: 0 0 40px rgba(0, 0, 0, .6); }
.kb-lightbox-close { position: absolute; top: 10px; right: 16px; font-size: 34px; line-height: 1; padding: 2px 10px; background: none; border: none; color: #fff; cursor: pointer; }
.kb-lightbox-close:hover { color: #ccc; }
