:root {
    --hljs-bg: #f9f9f9;
    --hljs-border: #d3d6db;
    --hljs-fg: #000;
    --hljs-comment: #008000;
    --hljs-built-in: #0101fd;
    --hljs-literal: #07704a;
    --hljs-string-subst: hsla(0, 0%, 9%, 1);
    --hljs-string: #a31515;
    --hljs-addition: #007d9a;
    --hljs-doctag: #737373;
    --hljs-attr: #0451a5;
    --hljs-control: #af00db;
    --hljs-helper: #795e26;
    --hljs-bullet: #00b0e8;
    --hljs-constant: #cd3131;
    --hljs-line-highlight: transparent;
}

[data-bs-theme="dark"] {
    --hljs-bg: #2e2e2e;
    --hljs-border: #454545;
    --hljs-fg: #e3e3e3;
    --hljs-comment: #57a64a;
    --hljs-built-in: #569cd6;
    --hljs-literal: #569cd6;
    --hljs-string-subst: #ff8c00;
    --hljs-string: #ce9178;
    --hljs-addition: #01cfff;
    --hljs-doctag: #808080;
    --hljs-attr: #01cfff;
    --hljs-control: #c586c0;
    --hljs-helper: #dcdcaa;
    --hljs-bullet: #808080;
    --hljs-constant: #f44747;
    --hljs-line-highlight: darkgreen;
    --hljs-title: #4ec9b0;
    --hljs-number: #b5cea8;
}

.hljs {
    background-color: var(--hljs-bg);
    border: 1px solid var(--hljs-border);
    color: var(--hljs-fg);
    display: block;
    overflow-x: auto;
    padding: 1em;
    border-radius: 5px;
}

.line-highlight {
    background-color: var(--hljs-line-highlight);
}

.hljs-comment {
    color: var(--hljs-comment);
}

.hljs-built_in,
.hljs-keyword,
.hljs-name,
.hljs-pscommand,
.hljs-selector-tag,
.hljs-tag,
.hljs-literal {
    color: var(--hljs-built-in);
}

.hljs-literal {
    color: var(--hljs-literal);
}

.hljs-string .hljs-subst {
    color: var(--hljs-string-subst);
}

.hljs-code,
.hljs-deletion,
.hljs-section,
.hljs-string,
.hljs-string .hljs-subst .hljs-string,
.hljs-template-tag,
.hljs-template-variable {
    color: var(--hljs-string);
}

.hljs-addition,
.hljs-attribute,
.hljs-meta,
.hljs-parameter,
.hljs-selector-attr,
.hljs-selector-pseudo,
.hljs-title,
.hljs-type {
    color: var(--hljs-addition);
}

.hljs-doctag {
    color: var(--hljs-doctag);
}

.hljs-attr {
    color: var(--hljs-attr);
}

.hljs-control {
    color: var(--hljs-control);
}

.hljs-helper {
    color: var(--hljs-helper);
}

.hljs-bullet,
.hljs-link,
.hljs-symbol {
    color: var(--hljs-bullet);
}

.hljs-emphasis {
    font-style: italic;
}

.hljs-strong {
    font-weight: 600;
}

.hljs-constant,
.hljs-reserved {
    color: var(--hljs-constant);
}

[data-bs-theme="dark"] .hljs-number {
    color: var(--hljs-number);
}

[data-bs-theme="dark"] .hljs-title {
    color: var(--hljs-title);
}