@layer fc.components {
.fc-code {
display: block;
min-inline-size: 0;
background-color: var(--fc-code-bg);
color: var(--fc-code-fg);
border: var(--fc-border-width-surface, var(--fc-border-width-thin)) solid var(--fc-code-border-default);
border-radius: var(--fc-radius-lg);
overflow: clip;
line-height: var(--fc-line-height-snug);
}
.fc-code__source {
display: block;
padding: var(--fc-space-3) var(--fc-space-4);
margin: 0;
background-color: transparent;
border-radius: 0;
font-family: var(--fc-font-family-mono);
font-size: var(--fc-font-size-sm);
tab-size: 2;
overflow-wrap: break-word;
white-space: pre-wrap;
}
.fc-code--scroll :where(.fc-code__source) {
white-space: pre;
overflow-wrap: normal;
overflow-x: auto;
}
.fc-code__bar {
grid-column: 1 / -1;
display: flex;
flex-wrap: wrap;
align-items: center;
justify-content: space-between;
gap: var(--fc-space-2);
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);
color: var(--fc-code-fg);
}
.fc-code__lang {
font-weight: var(--fc-font-weight-medium);
letter-spacing: 0.04em;
text-transform: uppercase;
}
.fc-code--numbered {
display: grid;
grid-template-columns: auto minmax(0, 1fr);
}
.fc-code__gutter {
padding-block: var(--fc-space-3);
padding-inline: var(--fc-space-2);
border-inline-end: var(--fc-border-width-thin) solid var(--fc-code-border-default);
background-color: var(--fc-code-bg-inset);
color: var(--fc-code-fg);
font-family: var(--fc-font-family-mono);
font-size: var(--fc-font-size-sm);
line-height: var(--fc-line-height-snug);
font-variant-numeric: tabular-nums;
text-align: end;
user-select: none;
align-content: start;
}
.fc-code__gutter > span {
display: block;
min-block-size: 1lh;
}
.fc-code--numbered :where(.fc-code__source) {
padding-inline-start: var(--fc-space-4);
}
.fc-code--scroll :where(.fc-code__gutter > span) {
min-block-size: 1lh;
}
.fc-code__tok--fg { color: var(--fc-code-fg); }
.fc-code__tok--comment { color: var(--fc-code-comment); font-style: italic; }
.fc-code__tok--keyword { color: var(--fc-code-keyword); font-weight: var(--fc-font-weight-semibold); }
.fc-code__tok--string { color: var(--fc-code-string); }
.fc-code__tok--number { color: var(--fc-code-number); }
.fc-code__tok--function { color: var(--fc-code-function); }
.fc-code__tok--type { color: var(--fc-code-type); }
.fc-code__tok--operator { color: var(--fc-code-operator); }
.fc-code__tok--punctuation { color: var(--fc-code-punctuation); }
.fc-code__tok--property { color: var(--fc-code-property); }
.fc-code__tok--constant { color: var(--fc-code-constant); }
.fc-code__tok--tag { color: var(--fc-code-tag); }
.fc-code__tok--attribute { color: var(--fc-code-attribute); }
.fc-code__tok--regexp { color: var(--fc-code-regexp); }
.fc-code__tok--heading { color: var(--fc-code-heading); font-weight: var(--fc-font-weight-semibold); }
.fc-code__tok--link { color: var(--fc-code-link); text-decoration: underline; }
.fc-code__tok--invalid { color: var(--fc-code-invalid); }
.fc-code--unsupported :where(.fc-code__source) {
color: var(--fc-code-fg);
}
@media (forced-colors: active) {
.fc-code {
background-color: Canvas;
color: CanvasText;
border-color: CanvasText;
}
.fc-code__bar,
.fc-code__gutter {
background-color: Canvas;
color: GrayText;
border-color: GrayText;
}
.fc-code__tok--comment {
font-style: italic;
}
.fc-code__tok--link {
text-decoration: underline;
}
}
}