:root{color-scheme:light dark;--bg:#f4f6fa;--panel:#fff;--fg:#253047;--muted:#64748b;--border:#dce3ed;--accent:#2563eb;--hover:#edf3ff;--code:#f8fafc;--add:#e5f5eb;--del:#fce9eb}
@media(prefers-color-scheme:dark){:root{--bg:#101620;--panel:#182130;--fg:#dbe4f0;--muted:#99a9be;--border:#303d50;--accent:#8bb4ff;--hover:#22314a;--code:#121b28;--add:#193b2c;--del:#45252e}}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--fg);font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:14px;line-height:1.6}div#cgit{max-width:1440px;margin:32px auto;padding:28px 32px;background:var(--panel);color:var(--fg);border:1px solid var(--border);border-radius:14px;font-family:inherit;font-size:14px;box-shadow:0 8px 32px #00000008}div#cgit a{color:var(--accent);text-decoration:none}div#cgit a:hover{text-decoration:underline}div#cgit table{border-collapse:collapse}div#cgit table#header{width:100%;margin-bottom:24px}div#cgit table#header td.logo{padding:0 20px 0 0;width:64px}div#cgit table#header td.logo img{width:48px;height:48px}div#cgit table#header td.main{font-size:25px;line-height:1.35;font-weight:650;color:var(--fg);padding:0;overflow-wrap:anywhere}div#cgit table#header td.main a{color:var(--fg)}div#cgit table#header td.sub{color:var(--muted);border:0;padding:5px 0 0}div#cgit table.tabs{width:100%;border-bottom:1px solid var(--border);margin-bottom:20px}div#cgit table.tabs td{padding:8px 0;background:transparent}div#cgit table.tabs td a{display:inline-block;padding:7px 12px;border-radius:6px;color:var(--muted);font-size:14px}div#cgit table.tabs td a.active{background:var(--hover);color:var(--accent);font-weight:600}div#cgit table.tabs td a:hover{background:var(--hover);text-decoration:none}div#cgit table.tabs td.form{white-space:normal}div#cgit input,div#cgit select{font:inherit;color:var(--fg);background:var(--panel);border:1px solid var(--border);border-radius:5px;padding:5px 8px;max-width:100%}div#cgit input[type=submit]{cursor:pointer;background:var(--hover);color:var(--accent)}div#cgit :focus-visible{outline:2px solid var(--accent);outline-offset:2px}div#cgit div.content{padding:0;overflow-x:auto}div#cgit table.list{width:100%}div#cgit table.list th{color:var(--muted);font-weight:600;background:var(--code);border-bottom:1px solid var(--border);padding:10px 12px}div#cgit table.list td{padding:9px 12px;border-bottom:1px solid var(--border)}div#cgit table.list tr:hover,div#cgit table.list tr:hover td{background:var(--hover)}div#cgit table.list tr.nohover:hover td{background:transparent}div#cgit table.list td.age1,div#cgit table.list td.age2{color:var(--muted)}div#cgit table.list td.logsubject{font-family:inherit}div#cgit table.list td a.button{border:1px solid var(--border);border-radius:4px;background:var(--code);color:var(--muted);padding:2px 6px}div#cgit div.footer{color:var(--muted);border-top:1px solid var(--border);margin-top:28px;padding-top:15px;font-size:12px}div#cgit div.path{background:var(--code);padding:10px 12px;border:1px solid var(--border);border-radius:6px;margin-bottom:16px}div#cgit div.cgit-panel{background:var(--code);border:1px solid var(--border);border-radius:6px;padding:8px}div#cgit table.blob{width:100%;border:1px solid var(--border);background:var(--code)}div#cgit table.blob td.lines{color:var(--fg)}div#cgit table.blob td.linenumbers{background:var(--panel);border-right:1px solid var(--border)}div#cgit table.blob td.linenumbers a{color:var(--muted)}div#cgit table.blob pre,div#cgit table.diff,div#cgit table.ssdiff,div#cgit .highlight{font-family:ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace;font-size:13px;line-height:1.65}div#cgit .highlight{background:transparent}div#cgit .highlight pre{margin:0}div#cgit table.diff td{color:var(--fg)}div#cgit table.diff td.add,div#cgit table.ssdiff td.add{background:var(--add);color:var(--fg)}div#cgit table.diff td.del,div#cgit table.ssdiff td.del{background:var(--del);color:var(--fg)}div#cgit table.diff td.hunk{color:var(--accent);background:var(--hover)}div#cgit div.commit-subject{font-size:21px;color:var(--fg);margin:18px 0 12px}div#cgit div.commit-msg{color:var(--fg);white-space:pre-wrap}div#cgit table.commit-info th{color:var(--muted)}div#cgit div.error{background:var(--del);color:var(--fg);border:1px solid var(--border);padding:12px;border-radius:6px}div#cgit .readme{max-width:880px;line-height:1.8;padding:8px 12px 28px;overflow-wrap:anywhere}div#cgit .readme h1,div#cgit .readme h2{border-bottom:1px solid var(--border);padding-bottom:8px;margin-top:28px;line-height:1.4}div#cgit .readme h1{font-size:27px}div#cgit .readme h2{font-size:21px}div#cgit .readme pre{padding:16px;background:var(--code);border:1px solid var(--border);border-radius:7px;overflow-x:auto}div#cgit .readme code{font-family:ui-monospace,Consolas,monospace;font-size:.9em}div#cgit .readme :not(pre)>code{background:var(--hover);padding:2px 5px;border-radius:4px}div#cgit .readme blockquote{border-left:3px solid var(--accent);margin-left:0;padding-left:18px;color:var(--muted)}div#cgit .readme th,div#cgit .readme td{border:1px solid var(--border);padding:7px 12px}div#cgit .readme img{max-width:100%}div#cgit a.branch-deco,div#cgit a.tag-deco,div#cgit a.deco{background:var(--hover);color:var(--accent);border:1px solid var(--border);border-radius:4px;padding:1px 5px}
@media(max-width:760px){div#cgit{margin:0;border:0;border-radius:0;padding:18px 12px;min-height:100vh}div#cgit table#header td.main{font-size:21px}div#cgit table#header td.logo{padding-right:12px}div#cgit table.tabs td{display:block;width:100%;padding:4px 0}div#cgit table.tabs td a{padding:7px 8px}div#cgit table.tabs td.form{text-align:left}div#cgit table.list td,div#cgit table.list th{padding:8px}div#cgit .readme{padding:0 2px 20px}}

/* Syntax colors, scoped to source views. */
pre { line-height: 125%; }
td.linenos .normal { color: #666666; background-color: transparent; padding-left: 5px; padding-right: 5px; }
span.linenos { color: #666666; background-color: transparent; padding-left: 5px; padding-right: 5px; }
td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
div#cgit table.blob .hll { background-color: #ffffcc }
div#cgit table.blob .c { color: #60a0b0; font-style: italic } /* Comment */
div#cgit table.blob .err { border: 1px solid #FF0000 } /* Error */
div#cgit table.blob .k { color: #007020; font-weight: bold } /* Keyword */
div#cgit table.blob .o { color: #666666 } /* Operator */
div#cgit table.blob .ch { color: #60a0b0; font-style: italic } /* Comment.Hashbang */
div#cgit table.blob .cm { color: #60a0b0; font-style: italic } /* Comment.Multiline */
div#cgit table.blob .cp { color: #007020 } /* Comment.Preproc */
div#cgit table.blob .cpf { color: #60a0b0; font-style: italic } /* Comment.PreprocFile */
div#cgit table.blob .c1 { color: #60a0b0; font-style: italic } /* Comment.Single */
div#cgit table.blob .cs { color: #60a0b0; background-color: #fff0f0 } /* Comment.Special */
div#cgit table.blob .gd { color: #A00000 } /* Generic.Deleted */
div#cgit table.blob .ge { font-style: italic } /* Generic.Emph */
div#cgit table.blob .ges { font-weight: bold; font-style: italic } /* Generic.EmphStrong */
div#cgit table.blob .gr { color: #FF0000 } /* Generic.Error */
div#cgit table.blob .gh { color: #000080; font-weight: bold } /* Generic.Heading */
div#cgit table.blob .gi { color: #00A000 } /* Generic.Inserted */
div#cgit table.blob .go { color: #888888 } /* Generic.Output */
div#cgit table.blob .gp { color: #c65d09; font-weight: bold } /* Generic.Prompt */
div#cgit table.blob .gs { font-weight: bold } /* Generic.Strong */
div#cgit table.blob .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
div#cgit table.blob .gt { color: #0044DD } /* Generic.Traceback */
div#cgit table.blob .kc { color: #007020; font-weight: bold } /* Keyword.Constant */
div#cgit table.blob .kd { color: #007020; font-weight: bold } /* Keyword.Declaration */
div#cgit table.blob .kn { color: #007020; font-weight: bold } /* Keyword.Namespace */
div#cgit table.blob .kp { color: #007020 } /* Keyword.Pseudo */
div#cgit table.blob .kr { color: #007020; font-weight: bold } /* Keyword.Reserved */
div#cgit table.blob .kt { color: #902000 } /* Keyword.Type */
div#cgit table.blob .m { color: #40a070 } /* Literal.Number */
div#cgit table.blob .s { color: #4070a0 } /* Literal.String */
div#cgit table.blob .na { color: #4070a0 } /* Name.Attribute */
div#cgit table.blob .nb { color: #007020 } /* Name.Builtin */
div#cgit table.blob .nc { color: #0e84b5; font-weight: bold } /* Name.Class */
div#cgit table.blob .no { color: #60add5 } /* Name.Constant */
div#cgit table.blob .nd { color: #555555; font-weight: bold } /* Name.Decorator */
div#cgit table.blob .ni { color: #d55537; font-weight: bold } /* Name.Entity */
div#cgit table.blob .ne { color: #007020 } /* Name.Exception */
div#cgit table.blob .nf { color: #06287e } /* Name.Function */
div#cgit table.blob .nl { color: #002070; font-weight: bold } /* Name.Label */
div#cgit table.blob .nn { color: #0e84b5; font-weight: bold } /* Name.Namespace */
div#cgit table.blob .nt { color: #062873; font-weight: bold } /* Name.Tag */
div#cgit table.blob .nv { color: #bb60d5 } /* Name.Variable */
div#cgit table.blob .ow { color: #007020; font-weight: bold } /* Operator.Word */
div#cgit table.blob .w { color: #bbbbbb } /* Text.Whitespace */
div#cgit table.blob .mb { color: #40a070 } /* Literal.Number.Bin */
div#cgit table.blob .mf { color: #40a070 } /* Literal.Number.Float */
div#cgit table.blob .mh { color: #40a070 } /* Literal.Number.Hex */
div#cgit table.blob .mi { color: #40a070 } /* Literal.Number.Integer */
div#cgit table.blob .mo { color: #40a070 } /* Literal.Number.Oct */
div#cgit table.blob .sa { color: #4070a0 } /* Literal.String.Affix */
div#cgit table.blob .sb { color: #4070a0 } /* Literal.String.Backtick */
div#cgit table.blob .sc { color: #4070a0 } /* Literal.String.Char */
div#cgit table.blob .dl { color: #4070a0 } /* Literal.String.Delimiter */
div#cgit table.blob .sd { color: #4070a0; font-style: italic } /* Literal.String.Doc */
div#cgit table.blob .s2 { color: #4070a0 } /* Literal.String.Double */
div#cgit table.blob .se { color: #4070a0; font-weight: bold } /* Literal.String.Escape */
div#cgit table.blob .sh { color: #4070a0 } /* Literal.String.Heredoc */
div#cgit table.blob .si { color: #70a0d0; font-style: italic } /* Literal.String.Interpol */
div#cgit table.blob .sx { color: #c65d09 } /* Literal.String.Other */
div#cgit table.blob .sr { color: #235388 } /* Literal.String.Regex */
div#cgit table.blob .s1 { color: #4070a0 } /* Literal.String.Single */
div#cgit table.blob .ss { color: #517918 } /* Literal.String.Symbol */
div#cgit table.blob .bp { color: #007020 } /* Name.Builtin.Pseudo */
div#cgit table.blob .fm { color: #06287e } /* Name.Function.Magic */
div#cgit table.blob .vc { color: #bb60d5 } /* Name.Variable.Class */
div#cgit table.blob .vg { color: #bb60d5 } /* Name.Variable.Global */
div#cgit table.blob .vi { color: #bb60d5 } /* Name.Variable.Instance */
div#cgit table.blob .vm { color: #bb60d5 } /* Name.Variable.Magic */
div#cgit table.blob .il { color: #40a070 } /* Literal.Number.Integer.Long */
@media(prefers-color-scheme:dark){
pre { line-height: 125%; }
td.linenos .normal { color: #aaaaaa; background-color: transparent; padding-left: 5px; padding-right: 5px; }
span.linenos { color: #aaaaaa; background-color: transparent; padding-left: 5px; padding-right: 5px; }
td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
div#cgit table.blob .hll { background-color: #404040 }
div#cgit table.blob .c { color: #ababab; font-style: italic } /* Comment */
div#cgit table.blob .err { color: #a61717; background-color: #e3d2d2 } /* Error */
div#cgit table.blob .esc { color: #d0d0d0 } /* Escape */
div#cgit table.blob .g { color: #d0d0d0 } /* Generic */
div#cgit table.blob .k { color: #6ebf26; font-weight: bold } /* Keyword */
div#cgit table.blob .l { color: #d0d0d0 } /* Literal */
div#cgit table.blob .n { color: #d0d0d0 } /* Name */
div#cgit table.blob .o { color: #d0d0d0 } /* Operator */
div#cgit table.blob .x { color: #d0d0d0 } /* Other */
div#cgit table.blob .p { color: #d0d0d0 } /* Punctuation */
div#cgit table.blob .ch { color: #ababab; font-style: italic } /* Comment.Hashbang */
div#cgit table.blob .cm { color: #ababab; font-style: italic } /* Comment.Multiline */
div#cgit table.blob .cp { color: #ff3a3a; font-weight: bold } /* Comment.Preproc */
div#cgit table.blob .cpf { color: #ababab; font-style: italic } /* Comment.PreprocFile */
div#cgit table.blob .c1 { color: #ababab; font-style: italic } /* Comment.Single */
div#cgit table.blob .cs { color: #e50808; font-weight: bold; background-color: #520000 } /* Comment.Special */
div#cgit table.blob .gd { color: #ff3a3a } /* Generic.Deleted */
div#cgit table.blob .ge { color: #d0d0d0; font-style: italic } /* Generic.Emph */
div#cgit table.blob .ges { color: #d0d0d0; font-weight: bold; font-style: italic } /* Generic.EmphStrong */
div#cgit table.blob .gr { color: #ff3a3a } /* Generic.Error */
div#cgit table.blob .gh { color: #ffffff; font-weight: bold } /* Generic.Heading */
div#cgit table.blob .gi { color: #589819 } /* Generic.Inserted */
div#cgit table.blob .go { color: #cccccc } /* Generic.Output */
div#cgit table.blob .gp { color: #aaaaaa } /* Generic.Prompt */
div#cgit table.blob .gs { color: #d0d0d0; font-weight: bold } /* Generic.Strong */
div#cgit table.blob .gu { color: #ffffff; text-decoration: underline } /* Generic.Subheading */
div#cgit table.blob .gt { color: #ff3a3a } /* Generic.Traceback */
div#cgit table.blob .kc { color: #6ebf26; font-weight: bold } /* Keyword.Constant */
div#cgit table.blob .kd { color: #6ebf26; font-weight: bold } /* Keyword.Declaration */
div#cgit table.blob .kn { color: #6ebf26; font-weight: bold } /* Keyword.Namespace */
div#cgit table.blob .kp { color: #6ebf26 } /* Keyword.Pseudo */
div#cgit table.blob .kr { color: #6ebf26; font-weight: bold } /* Keyword.Reserved */
div#cgit table.blob .kt { color: #6ebf26; font-weight: bold } /* Keyword.Type */
div#cgit table.blob .ld { color: #d0d0d0 } /* Literal.Date */
div#cgit table.blob .m { color: #51b2fd } /* Literal.Number */
div#cgit table.blob .s { color: #ed9d13 } /* Literal.String */
div#cgit table.blob .na { color: #bbbbbb } /* Name.Attribute */
div#cgit table.blob .nb { color: #2fbccd } /* Name.Builtin */
div#cgit table.blob .nc { color: #71adff; text-decoration: underline } /* Name.Class */
div#cgit table.blob .no { color: #40ffff } /* Name.Constant */
div#cgit table.blob .nd { color: #ffa500 } /* Name.Decorator */
div#cgit table.blob .ni { color: #d0d0d0 } /* Name.Entity */
div#cgit table.blob .ne { color: #bbbbbb } /* Name.Exception */
div#cgit table.blob .nf { color: #71adff } /* Name.Function */
div#cgit table.blob .nl { color: #d0d0d0 } /* Name.Label */
div#cgit table.blob .nn { color: #71adff; text-decoration: underline } /* Name.Namespace */
div#cgit table.blob .nx { color: #d0d0d0 } /* Name.Other */
div#cgit table.blob .py { color: #d0d0d0 } /* Name.Property */
div#cgit table.blob .nt { color: #6ebf26; font-weight: bold } /* Name.Tag */
div#cgit table.blob .nv { color: #40ffff } /* Name.Variable */
div#cgit table.blob .ow { color: #6ebf26; font-weight: bold } /* Operator.Word */
div#cgit table.blob .pm { color: #d0d0d0 } /* Punctuation.Marker */
div#cgit table.blob .w { color: #666666 } /* Text.Whitespace */
div#cgit table.blob .mb { color: #51b2fd } /* Literal.Number.Bin */
div#cgit table.blob .mf { color: #51b2fd } /* Literal.Number.Float */
div#cgit table.blob .mh { color: #51b2fd } /* Literal.Number.Hex */
div#cgit table.blob .mi { color: #51b2fd } /* Literal.Number.Integer */
div#cgit table.blob .mo { color: #51b2fd } /* Literal.Number.Oct */
div#cgit table.blob .sa { color: #ed9d13 } /* Literal.String.Affix */
div#cgit table.blob .sb { color: #ed9d13 } /* Literal.String.Backtick */
div#cgit table.blob .sc { color: #ed9d13 } /* Literal.String.Char */
div#cgit table.blob .dl { color: #ed9d13 } /* Literal.String.Delimiter */
div#cgit table.blob .sd { color: #ed9d13 } /* Literal.String.Doc */
div#cgit table.blob .s2 { color: #ed9d13 } /* Literal.String.Double */
div#cgit table.blob .se { color: #ed9d13 } /* Literal.String.Escape */
div#cgit table.blob .sh { color: #ed9d13 } /* Literal.String.Heredoc */
div#cgit table.blob .si { color: #ed9d13 } /* Literal.String.Interpol */
div#cgit table.blob .sx { color: #ffa500 } /* Literal.String.Other */
div#cgit table.blob .sr { color: #ed9d13 } /* Literal.String.Regex */
div#cgit table.blob .s1 { color: #ed9d13 } /* Literal.String.Single */
div#cgit table.blob .ss { color: #ed9d13 } /* Literal.String.Symbol */
div#cgit table.blob .bp { color: #2fbccd } /* Name.Builtin.Pseudo */
div#cgit table.blob .fm { color: #71adff } /* Name.Function.Magic */
div#cgit table.blob .vc { color: #40ffff } /* Name.Variable.Class */
div#cgit table.blob .vg { color: #40ffff } /* Name.Variable.Global */
div#cgit table.blob .vi { color: #40ffff } /* Name.Variable.Instance */
div#cgit table.blob .vm { color: #40ffff } /* Name.Variable.Magic */
div#cgit table.blob .il { color: #51b2fd } /* Literal.Number.Integer.Long */
}

/* Override cgit's row/link rules, including zebra and spacer rows. */
div#cgit table.list tr,
div#cgit table.list tr:nth-child(even),
div#cgit table.list tr:nth-child(odd),
div#cgit table.list tr.nohover,
div#cgit table.list tr.nohover:hover,
div#cgit table.list tr.nohover-highlight:hover:nth-child(even),
div#cgit table.list tr.nohover-highlight:hover:nth-child(odd){background:var(--panel);color:var(--fg)}
div#cgit table.list tr:nth-child(even){background:var(--code)}
div#cgit table.list tr.logheader{background:var(--code)}
div#cgit table.list tr:not(.nohover):not(.nohover-highlight):hover,
div#cgit table.list tr:not(.nohover):not(.nohover-highlight):hover td{background:var(--hover)}
div#cgit table.list td{color:var(--fg)}
div#cgit table.list td a,
div#cgit table.list td a.ls-dir{color:var(--accent)}
div#cgit table.list td a:hover{color:var(--accent);text-decoration:underline}
div#cgit table.list td a.branch-deco,
div#cgit table.list td a.tag-deco,
div#cgit table.list td a.tag-annotated-deco,
div#cgit table.list td a.deco{background:var(--hover);color:var(--accent);border-color:var(--border)}
div#cgit span.age-mins,div#cgit span.age-hours,div#cgit span.age-days,
div#cgit span.age-weeks,div#cgit span.age-months,div#cgit span.age-years{color:var(--muted)}
div#cgit div.content{border-bottom:0}

/* The diff panel's nested table has its own upstream background. */
div#cgit div.cgit-panel{background:var(--code);color:var(--fg);margin:0 0 18px 20px}
div#cgit div.cgit-panel table{background:transparent;color:var(--fg);border:0;margin-top:8px}
div#cgit div.cgit-panel th,div#cgit div.cgit-panel td{background:transparent;color:var(--fg);border:0}
div#cgit div.cgit-panel td.label{color:var(--muted)}
div#cgit select option{background:var(--panel);color:var(--fg)}
div#cgit table.diffstat{background:var(--code);color:var(--fg);border-color:var(--border)}
div#cgit table.diffstat th,div#cgit table.diffstat td{color:var(--fg)}
div#cgit table.diffstat td a{color:var(--accent)}
div#cgit div.diffstat-summary{color:var(--muted)}
div#cgit table.diff td div.head{color:var(--fg)}
div#cgit table.diff td div.hunk{background:var(--hover);color:var(--accent)}
div#cgit table.diff td div.add{background:var(--add);color:var(--fg)}
div#cgit table.diff td div.del{background:var(--del);color:var(--fg)}
@media(max-width:760px){div#cgit div.cgit-panel{float:none;margin:0 0 18px;width:100%}}
