@layer fc.components {
.fc-diff {
display: block;
min-inline-size: 0;
background-color: var(--fc-code-bg);
color: var(--fc-code-fg);
border: var(--fc-border-width-thin) solid var(--fc-code-border-default);
border-radius: var(--fc-radius-md);
line-height: var(--fc-line-height-snug);
}
.fc-diff__bar {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: var(--fc-space-3);
padding: var(--fc-space-2) var(--fc-space-4);
border-block-end: var(--fc-border-width-thin) solid var(--fc-code-border-default);
background-color: var(--fc-code-bg-subtle);
font-family: var(--fc-font-family-sans);
font-size: var(--fc-font-size-xs);
}
.fc-diff__stat {
display: inline-flex;
align-items: center;
gap: var(--fc-space-1);
font-variant-numeric: tabular-nums;
min-inline-size: 3.5ch;
}
.fc-diff__stat--added { color: var(--fc-code-added-fg); }
.fc-diff__stat--removed { color: var(--fc-code-removed-fg); }
.fc-diff__line {
display: grid;
grid-template-columns: 2ch auto auto 1fr;
align-items: baseline;
gap: var(--fc-space-2);
padding-inline: var(--fc-space-2);
font-family: var(--fc-font-family-mono);
font-size: var(--fc-font-size-sm);
white-space: pre-wrap;
overflow-wrap: break-word;
}
.fc-diff--scroll {
overflow-x: auto;
overscroll-behavior-inline: contain;
}
.fc-diff--scroll :where(.fc-diff__line) {
white-space: pre;
overflow-wrap: normal;
}
.fc-diff--scroll :where(.fc-diff__bar) {
position: sticky;
inset-inline-start: 0;
min-inline-size: max-content;
}
.fc-diff__line[data-fc-diff="add"] {
background-color: var(--fc-code-bg-added);
color: var(--fc-code-added-fg);
}
.fc-diff__line[data-fc-diff="remove"] {
background-color: var(--fc-code-bg-removed);
color: var(--fc-code-removed-fg);
}
.fc-diff__marker {
text-align: center;
user-select: none;
}
.fc-diff__num {
color: var(--fc-code-fg);
font-variant-numeric: tabular-nums;
text-align: end;
min-inline-size: 3ch;
user-select: none;
opacity: 0.75;
}
.fc-diff__content {
min-inline-size: 0;
}
.fc-diff__gap {
display: flex;
align-items: center;
gap: var(--fc-space-2);
padding: var(--fc-space-1) var(--fc-space-4);
background-color: var(--fc-code-bg-subtle);
color: var(--fc-code-fg);
border-block: var(--fc-border-width-thin) solid var(--fc-code-border-default);
font-family: var(--fc-font-family-sans);
font-size: var(--fc-font-size-xs);
}
@media (forced-colors: active) {
.fc-diff,
.fc-diff__bar,
.fc-diff__gap {
background-color: Canvas;
color: CanvasText;
border-color: CanvasText;
}
.fc-diff__line[data-fc-diff="add"],
.fc-diff__line[data-fc-diff="remove"] {
background-color: Canvas;
color: CanvasText;
}
.fc-diff__line[data-fc-diff="add"] .fc-diff__marker,
.fc-diff__line[data-fc-diff="remove"] .fc-diff__marker {
background-color: Highlight;
color: HighlightText;
forced-color-adjust: none;
}
.fc-diff__num {
color: GrayText;
}
}
}