/* Build-time word diffs: unchanged code stays neutral; only edits carry color. */
.code-diff {
  margin-block: 1.5rem;
  overflow-x: auto;
  --diff-added-bg: #214a31;
  --diff-added-fg: #c6f6cf;
  --diff-deleted-bg: #572b30;
  --diff-deleted-fg: #ffd6d9;
}

.light-theme .code-diff {
  --diff-added-bg: #ccebd4;
  --diff-added-fg: #143e22;
  --diff-deleted-bg: #f9d8dc;
  --diff-deleted-fg: #67202b;
}

.code-diff .two-columns.before-after {
  gap: 0.75rem;
  flex-direction: row-reverse;
  min-width: 75rem;
}
.code-diff-panel { overflow: hidden; border: 1px solid var(--navbar-border-col); border-radius: 0.35rem; }
.code-diff-panel h4 {
  margin: 0;
  padding: 0.5rem 0.85rem;
  background: var(--navbar-col);
  color: var(--text-col);
  font-size: 1rem;
  text-align: right;
}

.code-diff-panel pre {
  margin: 0;
  padding: 0.75rem 0;
  border: 0;
  border-radius: 0;
  background: var(--page-col);
  background-image: none;
  overflow-x: auto;
  direction: ltr;
  text-align: left;
  white-space: pre;
  font-size: 0.9rem;
  line-height: 1.65;
  tab-size: 4;
}

.code-diff-panel pre:focus-visible { outline: 2px solid var(--link-col); outline-offset: -2px; }
.code-diff-panel pre code {
  display: block;
  min-width: max-content;
  padding: 0;
  color: var(--text-col) !important;
  background: transparent !important;
  font-size: inherit;
  line-height: inherit;
}

.code-diff-line { display: inline-block; min-width: 100%; padding-right: 1rem; }
.code-diff-line::before {
  content: attr(data-line);
  display: inline-block;
  width: 3.5em;
  margin-right: 1em;
  padding-right: 0.6em;
  border-right: 1px solid var(--navbar-border-col);
  color: var(--text-col);
  opacity: 0.5;
  text-align: right;
  user-select: none;
}

.code-diff-changed::before { border-right: 2px solid var(--link-col); opacity: 0.9; }
.code-diff ins { background: var(--diff-added-bg); color: var(--diff-added-fg); text-decoration: underline; text-underline-offset: 0.2em; }
.code-diff del { background: var(--diff-deleted-bg); color: var(--diff-deleted-fg); text-decoration: line-through; }
.code-diff-gap { user-select: none; }
