/* Unified diff rendering (see diff.js). Colours are neutral enough for both
   light and dark pages; dark pages override the custom properties. */
.diff {
  --diff-bg: #fff;
  --diff-fg: #1f2328;
  --diff-border: #d0d7de;
  --diff-header-bg: #f6f8fa;
  --diff-ln: #6e7781;
  --diff-add-bg: #dafbe1;
  --diff-add-fg: #116329;
  --diff-del-bg: #ffebe9;
  --diff-del-fg: #82071e;
  --diff-hunk-bg: #ddf4ff;
  --diff-hunk-fg: #0550ae;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 12px;
  color: var(--diff-fg);
}
.diff-dark, .diff.dark {
  --diff-bg: #0d1117;
  --diff-fg: #e6edf3;
  --diff-border: #30363d;
  --diff-header-bg: #161b22;
  --diff-ln: #6e7681;
  --diff-add-bg: rgba(46, 160, 67, 0.18);
  --diff-add-fg: #7ee787;
  --diff-del-bg: rgba(248, 81, 73, 0.18);
  --diff-del-fg: #ffa198;
  --diff-hunk-bg: rgba(56, 139, 253, 0.15);
  --diff-hunk-fg: #79c0ff;
}
.diff-file {
  border: 1px solid var(--diff-border);
  border-radius: 6px;
  margin: 0 0 14px;
  overflow: hidden;
  background: var(--diff-bg);
}
.diff-file-header {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 12px;
  background: var(--diff-header-bg);
  border-bottom: 1px solid var(--diff-border);
  font-weight: 600;
}
.diff-file-name { flex: 1; word-break: break-all; }
.diff-file-stats { font-weight: 500; }
.diff-add { color: var(--diff-add-fg); }
.diff-del { color: var(--diff-del-fg); }
.diff-mode {
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  padding: 2px 6px;
  border-radius: 4px;
  background: var(--diff-hunk-bg);
  color: var(--diff-hunk-fg);
}
.diff-mode-del { background: var(--diff-del-bg); color: var(--diff-del-fg); }
.diff-mode-new { background: var(--diff-add-bg); color: var(--diff-add-fg); }
.diff-table { border-collapse: collapse; width: 100%; table-layout: fixed; }
.diff-table td { padding: 0 6px; line-height: 20px; vertical-align: top; white-space: pre-wrap; word-break: break-all; }
.diff-ln { width: 38px; text-align: right; color: var(--diff-ln); user-select: none; }
.diff-sign { width: 12px; user-select: none; text-align: center; }
.diff-code { white-space: pre-wrap; }
.diff-line-add td { background: var(--diff-add-bg); }
.diff-line-add .diff-sign, .diff-line-add .diff-code { color: var(--diff-add-fg); }
.diff-line-del td { background: var(--diff-del-bg); }
.diff-line-del .diff-sign, .diff-line-del .diff-code { color: var(--diff-del-fg); }
.diff-line-meta td { color: var(--diff-ln); font-style: italic; }
.diff-hunk td { background: var(--diff-hunk-bg); color: var(--diff-hunk-fg); }
.diff-empty { padding: 16px; color: var(--diff-ln); font-family: inherit; }
