/* cgit custom theme - minimal, warm, monospace */

:root {
  --bg: #f5f2eb;
  --fg: #2c2c2c;
  --muted: #6b6b6b;
  --accent: #1a1a1a;
  --border: #d4d0c8;
  --link: #2c2c2c;
  --link-hover: #6b6b6b;
  --code-bg: #ebe8e0;
  --diff-add: #d4e9d4;
  --diff-del: #f0d4d4;
}

* {
  box-sizing: border-box;
}

body {
  margin: 0;
  padding: 0;
  background: var(--bg);
}

div#cgit {
  font-family: 'JetBrains Mono', 'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, monospace;
  font-size: 14px;
  line-height: 1.6;
  color: var(--fg);
  background: var(--bg);
  max-width: 960px;
  margin: 0 auto;
  padding: 2rem 1.5rem;
}

div#cgit a {
  color: var(--link);
  text-decoration: underline;
  text-underline-offset: 2px;
}

div#cgit a:hover {
  color: var(--link-hover);
}

/* Header */
div#cgit table#header {
  width: 100%;
  margin-bottom: 2rem;
  border-bottom: 1px solid var(--border);
  padding-bottom: 1rem;
}

div#cgit table#header td.logo {
  display: none; /* hide logo */
}

div#cgit table#header td.main {
  font-size: 1.5rem;
  font-weight: normal;
  padding: 0;
}

div#cgit table#header td.main a {
  color: var(--fg);
  text-decoration: none;
}

div#cgit table#header td.sub {
  color: var(--muted);
  border-top: none;
  padding: 0.25rem 0 0 0;
  font-size: 0.9rem;
}

div#cgit table#header td.form {
  text-align: right;
  vertical-align: middle;
}

div#cgit table#header td.form input,
div#cgit table#header td.form select {
  font-family: inherit;
  font-size: 0.85rem;
  padding: 0.25rem 0.5rem;
  border: 1px solid var(--border);
  background: var(--bg);
  color: var(--fg);
}

/* Tabs */
div#cgit table.tabs {
  border-bottom: 1px solid var(--border);
  margin: 0 0 1.5rem 0;
  width: 100%;
}

div#cgit table.tabs td {
  padding: 0;
}

div#cgit table.tabs td a {
  display: inline-block;
  padding: 0.5rem 1rem;
  color: var(--muted);
  font-size: 0.9rem;
  text-decoration: none;
  border-bottom: 2px solid transparent;
  margin-bottom: -1px;
}

div#cgit table.tabs td a:hover {
  color: var(--fg);
}

div#cgit table.tabs td a.active {
  color: var(--fg);
  background: none;
  border-bottom: 2px solid var(--fg);
}

/* Hide external link icon */
div#cgit table.tabs a[href^="http://"]:after,
div#cgit table.tabs a[href^="https://"]:after {
  display: none;
}

/* Content */
div#cgit div.content {
  margin: 0;
}

/* Repository list */
div#cgit table.list {
  width: 100%;
  border: none;
}

div#cgit table.list tr {
  border-bottom: 1px solid var(--border);
}

div#cgit table.list tr:hover {
  background: var(--code-bg);
}

div#cgit table.list td {
  padding: 0.75rem 0.5rem;
  vertical-align: top;
}

div#cgit table.list td:first-child {
  padding-left: 0;
}

div#cgit table.list td a {
  font-weight: normal;
}

div#cgit table.list td.reponame a,
div#cgit table.list td.toplevel-repo a {
  text-decoration: none;
  font-weight: 500;
}

div#cgit table.list td.reponame a:hover,
div#cgit table.list td.toplevel-repo a:hover {
  text-decoration: underline;
}

/* Buttons */
div#cgit a.button {
  display: inline-block;
  padding: 0.25rem 0.5rem;
  margin: 0 0.25rem;
  font-size: 0.8rem;
  color: var(--muted);
  text-decoration: none;
  border: 1px solid var(--border);
}

div#cgit a.button:hover {
  color: var(--fg);
  border-color: var(--muted);
}

/* Commit/log view */
div#cgit div.commit-subject {
  font-weight: 500;
  margin-bottom: 0.5rem;
}

div#cgit div.commit-msg {
  white-space: pre-wrap;
  font-family: inherit;
  margin: 1rem 0;
  padding: 1rem;
  background: var(--code-bg);
  border: 1px solid var(--border);
}

div#cgit table.commit-info {
  margin: 1rem 0;
}

div#cgit table.commit-info td {
  padding: 0.25rem 0.5rem 0.25rem 0;
}

div#cgit table.commit-info td:first-child {
  color: var(--muted);
}

/* Tree/blob view */
div#cgit table.list td.ls-mode,
div#cgit table.list td.ls-size {
  font-size: 0.85rem;
  color: var(--muted);
}

div#cgit div.blob {
  background: var(--code-bg);
  padding: 1rem;
  overflow-x: auto;
  border: 1px solid var(--border);
}

div#cgit table.blob {
  font-family: inherit;
  font-size: 0.9rem;
}

div#cgit table.blob td.linenumbers {
  padding-right: 1rem;
  text-align: right;
  color: var(--muted);
  user-select: none;
  border-right: 1px solid var(--border);
}

div#cgit table.blob td.lines {
  padding-left: 1rem;
}

/* Diff - unified */
div#cgit table.diff {
  width: 100%;
  font-size: 0.9rem;
  border-collapse: collapse;
}

div#cgit table.diff td {
  padding: 0 0.5rem;
  font-family: inherit;
  white-space: pre-wrap;
  word-wrap: break-word;
}

div#cgit table.diff td.add {
  background: var(--diff-add);
}

div#cgit table.diff td.del {
  background: var(--diff-del);
}

/* Diff - side-by-side (ssdiff) */
div#cgit table.ssdiff {
  width: 100%;
  font-size: 0.85rem;
  border-collapse: collapse;
}

div#cgit table.ssdiff td {
  padding: 0.1rem 0.5rem;
  vertical-align: top;
  font-family: inherit;
}

div#cgit table.ssdiff td.lineno {
  width: 3rem;
  text-align: right;
  color: var(--muted);
  background: var(--code-bg);
  border-right: 1px solid var(--border);
  user-select: none;
  padding: 0.1rem 0.5rem;
}

div#cgit table.ssdiff td.lineno a {
  color: var(--muted);
  text-decoration: none;
}

div#cgit table.ssdiff td.lineno a:hover {
  color: var(--fg);
}

div#cgit table.ssdiff td.ctx {
  background: var(--bg);
}

div#cgit table.ssdiff td.changed {
  background: #f5f0d8;
}

div#cgit table.ssdiff td.changed_dark {
  background: var(--diff-add);
}

div#cgit table.ssdiff span.add {
  background: #a6d9a6;
  padding: 0.1rem 0;
}

div#cgit table.ssdiff span.del {
  background: #e9a6a6;
  padding: 0.1rem 0;
}

/* Full line add/del (td classes) */
div#cgit table.ssdiff td.add {
  background: var(--diff-add);
}

div#cgit table.ssdiff td.del {
  background: var(--diff-del);
}

div#cgit table.ssdiff td.add_dark {
  background: #b8dab8;
}

div#cgit table.ssdiff td.del_dark {
  background: #dab8b8;
}

/* Unified diff add/del */
div#cgit div.add {
  background: var(--diff-add);
}

div#cgit div.del {
  background: var(--diff-del);
}

div#cgit table.ssdiff td.head {
  background: var(--code-bg);
  padding: 0.75rem;
  border: 1px solid var(--border);
  font-size: 0.85rem;
}

div#cgit table.ssdiff td.head div.head {
  font-family: inherit;
}

div#cgit table.ssdiff td.hunk {
  background: #e8e4f0;
  color: var(--muted);
  padding: 0.25rem 0.5rem;
  font-size: 0.85rem;
}

div#cgit table.ssdiff td.space {
  height: 0.5rem;
}

/* Diffstat header and summary */
div#cgit div.diffstat-header {
  margin: 1rem 0 0.5rem;
  font-weight: 500;
}

div#cgit div.diffstat-summary {
  margin: 0.5rem 0 1.5rem;
  color: var(--muted);
  font-size: 0.9rem;
}

/* Diffstat table (file list with +/- bars) */
div#cgit table.diffstat {
  margin-bottom: 1rem;
  font-size: 0.9rem;
}

div#cgit table.diffstat td {
  padding: 0.25rem 0.5rem;
}

div#cgit table.diffstat td.mode {
  color: var(--muted);
  font-size: 0.8rem;
}

div#cgit table.diffstat td.upd a {
  text-decoration: none;
}

div#cgit table.diffstat td.upd a:hover {
  text-decoration: underline;
}

div#cgit table.diffstat td.right {
  text-align: right;
  color: var(--muted);
  font-size: 0.85rem;
}

div#cgit table.diffstat td.graph {
  width: 30%;
}

div#cgit table.diffstat td.graph table {
  width: 100%;
  height: 0.75rem;
  border-collapse: collapse;
}

div#cgit table.diffstat td.add {
  background: #5a5;
}

div#cgit table.diffstat td.rem {
  background: #a55;
}

div#cgit table.diffstat td.none {
  background: var(--border);
}

/* Stats/graph */
div#cgit div.cgit-panel {
  margin: 1rem 0;
}

div#cgit table.stats {
  border: 1px solid var(--border);
}

div#cgit table.stats td,
div#cgit table.stats th {
  padding: 0.5rem;
  border: 1px solid var(--border);
}

/* Age colors */
div#cgit span.age-mins,
div#cgit span.age-hours {
  color: var(--fg);
}

div#cgit span.age-days {
  color: var(--muted);
}

div#cgit span.age-weeks,
div#cgit span.age-months,
div#cgit span.age-years {
  color: var(--muted);
}

/* Pager */
div#cgit ul.pager {
  list-style: none;
  padding: 0;
  margin: 1.5rem 0;
}

div#cgit ul.pager li {
  display: inline-block;
  margin-right: 0.5rem;
}

div#cgit ul.pager a {
  padding: 0.25rem 0.5rem;
  border: 1px solid var(--border);
  text-decoration: none;
}

div#cgit ul.pager a:hover {
  border-color: var(--muted);
}

/* Error message */
div#cgit div.error {
  color: var(--muted);
  padding: 2rem 0;
  text-align: center;
}

/* Footer */
div#cgit div.footer {
  margin-top: 3rem;
  padding-top: 1rem;
  border-top: 1px solid var(--border);
  color: var(--muted);
  font-size: 0.8rem;
}

div#cgit div.footer a {
  color: var(--muted);
}

/* Clone URLs */
div#cgit table.list td.sublevel-repo {
  padding-left: 1rem;
}

/* Forms */
div#cgit form {
  display: inline;
}

div#cgit input[type="text"],
div#cgit input[type="search"],
div#cgit select {
  font-family: inherit;
  font-size: inherit;
  padding: 0.25rem 0.5rem;
  border: 1px solid var(--border);
  background: var(--bg);
  color: var(--fg);
}

div#cgit input[type="submit"] {
  font-family: inherit;
  font-size: 0.85rem;
  padding: 0.25rem 0.75rem;
  border: 1px solid var(--border);
  background: var(--bg);
  color: var(--fg);
  cursor: pointer;
}

div#cgit input[type="submit"]:hover {
  border-color: var(--muted);
}

/* Markdown rendering */
div#cgit div.markdown {
  line-height: 1.7;
}

div#cgit div.markdown h1,
div#cgit div.markdown h2,
div#cgit div.markdown h3 {
  font-weight: 500;
  margin: 1.5rem 0 0.5rem;
}

div#cgit div.markdown pre {
  background: var(--code-bg);
  padding: 1rem;
  overflow-x: auto;
  border: 1px solid var(--border);
}

div#cgit div.markdown code {
  font-family: inherit;
  background: var(--code-bg);
  padding: 0.1rem 0.3rem;
}

div#cgit div.markdown pre code {
  padding: 0;
  background: none;
}

/* Syntax highlighting (highlight tool) */
.hl.num { color: #986801; }           /* numbers */
.hl.esc { color: #9c5a9c; }           /* escape sequences */
.hl.str { color: #50a14f; }           /* strings */
.hl.pps { color: #986801; }           /* preprocessor strings */
.hl.slc { color: #a0a1a7; font-style: italic; }  /* single-line comments */
.hl.com { color: #a0a1a7; font-style: italic; }  /* multi-line comments */
.hl.ppc { color: #4078f2; }           /* preprocessor */
.hl.opt { color: var(--fg); }         /* operators */
.hl.ipl { color: #4078f2; }           /* interpolation */
.hl.lin { color: var(--muted); }      /* line numbers */
.hl.kwa { color: #a626a4; }           /* keyword a (func, package, etc) */
.hl.kwb { color: #986801; }           /* keyword b (types) */
.hl.kwc { color: #a626a4; }           /* keyword c (if, for, etc) */
.hl.kwd { color: #4078f2; }           /* keyword d (identifiers) */
.hl.sng { color: #50a14f; }           /* strings */
.hl.line { color: var(--muted); }     /* line numbers */

/* Additional highlight classes */
span.hl { font-family: inherit; }
