/* Import Inter font from Google Fonts */
@import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap");

/* https://highlightjs.readthedocs.io/en/latest/css-classes-reference.html */
.latte.hljs {
    color: #4c4f69;
    background: #eff1f5;
}
.latte .hljs-keyword {
    color: #8839ef;
}
.latte .hljs-built_in {
    color: #d20f39;
}
.latte .hljs-type {
    color: #df8e1d;
}
.latte .hljs-literal {
    color: #fe640b;
}
.latte .hljs-number {
    color: #fe640b;
}
.latte .hljs-operator {
    color: #04a5e5;
}
.latte .hljs-punctuation {
    color: #5c5f77;
}
.latte .hljs-property {
    color: #179299;
}
.latte .hljs-regexp {
    color: #ea76cb;
}
.latte .hljs-string {
    color: #40a02b;
}
.latte .hljs-char.escape_ {
    color: #40a02b;
}
.latte .hljs-subst {
    color: #6c6f85;
}
.latte .hljs-symbol {
    color: #dd7878;
}
.latte .hljs-variable {
    color: #8839ef;
}
.latte .hljs-variable.language_ {
    color: #8839ef;
}
.latte .hljs-variable.constant_ {
    color: #fe640b;
}
.latte .hljs-title {
    color: #1e66f5;
}
.latte .hljs-title.class_ {
    color: #df8e1d;
}
.latte .hljs-title.function_ {
    color: #1e66f5;
}
.latte .hljs-params {
    color: #4c4f69;
}
.latte .hljs-comment {
    color: #7c7f93;
}
.latte .hljs-doctag {
    color: #d20f39;
}
.latte .hljs-meta {
    color: #fe640b;
}
.latte .hljs-section {
    color: #1e66f5;
}
.latte .hljs-tag {
    color: #179299;
}
.latte .hljs-name {
    color: #8839ef;
}
.latte .hljs-attr {
    color: #1e66f5;
}
.latte .hljs-attribute {
    color: #40a02b;
}
.latte .hljs-bullet {
    color: #179299;
}
.latte .hljs-code {
    color: #40a02b;
}
.latte .hljs-emphasis {
    color: #d20f39;
    font-style: italic;
}
.latte .hljs-strong {
    color: #d20f39;
    font-weight: bold;
}
.latte .hljs-formula {
    color: #179299;
}
.latte .hljs-link {
    color: #209fb5;
    font-style: italic;
}
.latte .hljs-quote {
    color: #40a02b;
    font-style: italic;
}
.latte .hljs-selector-tag {
    color: #df8e1d;
}
.latte .hljs-selector-id {
    color: #1e66f5;
}
.latte .hljs-selector-class {
    color: #179299;
}
.latte .hljs-selector-attr {
    color: #8839ef;
}
.latte .hljs-selector-pseudo {
    color: #179299;
}
.latte .hljs-template-tag {
    color: #dd7878;
}
.latte .hljs-template-variable {
    color: #dd7878;
}
.latte .hljs-addition {
    color: #40a02b;
    background: rgba(64, 160, 43, 0.15);
}
.latte .hljs-deletion {
    color: #d20f39;
    background: rgba(210, 15, 57, 0.15);
}
.latte :is(h1, h2, h3, h4, h5, h6) a code {
    color: #4c4f69;
}
.latte a code {
    color: #1e66f5;
}
.latte code {
    color: #4c4f69;
    background: #e6e9ef;
}
.latte blockquote blockquote {
    border-top: 0.1em solid #acb0be;
    border-bottom: 0.1em solid #acb0be;
}
.latte hr {
    border-color: #acb0be;
    border-style: solid;
}
.latte del {
    color: #7c7f93;
}
.latte .ace_gutter {
    color: #8c8fa1;
    background: #e6e9ef;
}
.latte .ace_gutter-active-line.ace_gutter-cell {
    color: #ea76cb;
    background: #e6e9ef;
}
.latte .tooltiptext {
    background: #e6e9ef;
    color: #4c4f69;
}

.frappe.hljs {
    color: #c6d0f5;
    background: #303446;
}
.frappe .hljs-keyword {
    color: #ca9ee6;
}
.frappe .hljs-built_in {
    color: #e78284;
}
.frappe .hljs-type {
    color: #e5c890;
}
.frappe .hljs-literal {
    color: #ef9f76;
}
.frappe .hljs-number {
    color: #ef9f76;
}
.frappe .hljs-operator {
    color: #99d1db;
}
.frappe .hljs-punctuation {
    color: #b5bfe2;
}
.frappe .hljs-property {
    color: #81c8be;
}
.frappe .hljs-regexp {
    color: #f4b8e4;
}
.frappe .hljs-string {
    color: #a6d189;
}
.frappe .hljs-char.escape_ {
    color: #a6d189;
}
.frappe .hljs-subst {
    color: #a5adce;
}
.frappe .hljs-symbol {
    color: #eebebe;
}
.frappe .hljs-variable {
    color: #ca9ee6;
}
.frappe .hljs-variable.language_ {
    color: #ca9ee6;
}
.frappe .hljs-variable.constant_ {
    color: #ef9f76;
}
.frappe .hljs-title {
    color: #8caaee;
}
.frappe .hljs-title.class_ {
    color: #e5c890;
}
.frappe .hljs-title.function_ {
    color: #8caaee;
}
.frappe .hljs-params {
    color: #c6d0f5;
}
.frappe .hljs-comment {
    color: #949cbb;
}
.frappe .hljs-doctag {
    color: #e78284;
}
.frappe .hljs-meta {
    color: #ef9f76;
}
.frappe .hljs-section {
    color: #8caaee;
}
.frappe .hljs-tag {
    color: #81c8be;
}
.frappe .hljs-name {
    color: #ca9ee6;
}
.frappe .hljs-attr {
    color: #8caaee;
}
.frappe .hljs-attribute {
    color: #a6d189;
}
.frappe .hljs-bullet {
    color: #81c8be;
}
.frappe .hljs-code {
    color: #a6d189;
}
.frappe .hljs-emphasis {
    color: #e78284;
    font-style: italic;
}
.frappe .hljs-strong {
    color: #e78284;
    font-weight: bold;
}
.frappe .hljs-formula {
    color: #81c8be;
}
.frappe .hljs-link {
    color: #85c1dc;
    font-style: italic;
}
.frappe .hljs-quote {
    color: #a6d189;
    font-style: italic;
}
.frappe .hljs-selector-tag {
    color: #e5c890;
}
.frappe .hljs-selector-id {
    color: #8caaee;
}
.frappe .hljs-selector-class {
    color: #81c8be;
}
.frappe .hljs-selector-attr {
    color: #ca9ee6;
}
.frappe .hljs-selector-pseudo {
    color: #81c8be;
}
.frappe .hljs-template-tag {
    color: #eebebe;
}
.frappe .hljs-template-variable {
    color: #eebebe;
}
.frappe .hljs-addition {
    color: #a6d189;
    background: rgba(166, 209, 137, 0.15);
}
.frappe .hljs-deletion {
    color: #e78284;
    background: rgba(231, 130, 132, 0.15);
}
.frappe :is(h1, h2, h3, h4, h5, h6) a code {
    color: #c6d0f5;
}
.frappe a code {
    color: #8caaee;
}
.frappe code {
    color: #c6d0f5;
    background: #292c3c;
}
.frappe blockquote blockquote {
    border-top: 0.1em solid #626880;
    border-bottom: 0.1em solid #626880;
}
.frappe hr {
    border-color: #626880;
    border-style: solid;
}
.frappe del {
    color: #949cbb;
}
.frappe .ace_gutter {
    color: #838ba7;
    background: #292c3c;
}
.frappe .ace_gutter-active-line.ace_gutter-cell {
    color: #f4b8e4;
    background: #292c3c;
}
.frappe .tooltiptext {
    background: #292c3c;
    color: #c6d0f5;
}

.macchiato.hljs {
    color: #cad3f5;
    background: #24273a;
}
.macchiato .hljs-keyword {
    color: #c6a0f6;
}
.macchiato .hljs-built_in {
    color: #ed8796;
}
.macchiato .hljs-type {
    color: #eed49f;
}
.macchiato .hljs-literal {
    color: #f5a97f;
}
.macchiato .hljs-number {
    color: #f5a97f;
}
.macchiato .hljs-operator {
    color: #91d7e3;
}
.macchiato .hljs-punctuation {
    color: #b8c0e0;
}
.macchiato .hljs-property {
    color: #8bd5ca;
}
.macchiato .hljs-regexp {
    color: #f5bde6;
}
.macchiato .hljs-string {
    color: #a6da95;
}
.macchiato .hljs-char.escape_ {
    color: #a6da95;
}
.macchiato .hljs-subst {
    color: #a5adcb;
}
.macchiato .hljs-symbol {
    color: #f0c6c6;
}
.macchiato .hljs-variable {
    color: #c6a0f6;
}
.macchiato .hljs-variable.language_ {
    color: #c6a0f6;
}
.macchiato .hljs-variable.constant_ {
    color: #f5a97f;
}
.macchiato .hljs-title {
    color: #8aadf4;
}
.macchiato .hljs-title.class_ {
    color: #eed49f;
}
.macchiato .hljs-title.function_ {
    color: #8aadf4;
}
.macchiato .hljs-params {
    color: #cad3f5;
}
.macchiato .hljs-comment {
    color: #939ab7;
}
.macchiato .hljs-doctag {
    color: #ed8796;
}
.macchiato .hljs-meta {
    color: #f5a97f;
}
.macchiato .hljs-section {
    color: #8aadf4;
}
.macchiato .hljs-tag {
    color: #8bd5ca;
}
.macchiato .hljs-name {
    color: #c6a0f6;
}
.macchiato .hljs-attr {
    color: #8aadf4;
}
.macchiato .hljs-attribute {
    color: #a6da95;
}
.macchiato .hljs-bullet {
    color: #8bd5ca;
}
.macchiato .hljs-code {
    color: #a6da95;
}
.macchiato .hljs-emphasis {
    color: #ed8796;
    font-style: italic;
}
.macchiato .hljs-strong {
    color: #ed8796;
    font-weight: bold;
}
.macchiato .hljs-formula {
    color: #8bd5ca;
}
.macchiato .hljs-link {
    color: #7dc4e4;
    font-style: italic;
}
.macchiato .hljs-quote {
    color: #a6da95;
    font-style: italic;
}
.macchiato .hljs-selector-tag {
    color: #eed49f;
}
.macchiato .hljs-selector-id {
    color: #8aadf4;
}
.macchiato .hljs-selector-class {
    color: #8bd5ca;
}
.macchiato .hljs-selector-attr {
    color: #c6a0f6;
}
.macchiato .hljs-selector-pseudo {
    color: #8bd5ca;
}
.macchiato .hljs-template-tag {
    color: #f0c6c6;
}
.macchiato .hljs-template-variable {
    color: #f0c6c6;
}
.macchiato .hljs-addition {
    color: #a6da95;
    background: rgba(166, 218, 149, 0.15);
}
.macchiato .hljs-deletion {
    color: #ed8796;
    background: rgba(237, 135, 150, 0.15);
}
.macchiato :is(h1, h2, h3, h4, h5, h6) a code {
    color: #cad3f5;
}
.macchiato a code {
    color: #8aadf4;
}
.macchiato code {
    color: #cad3f5;
    background: #1e2030;
}
.macchiato blockquote blockquote {
    border-top: 0.1em solid #5b6078;
    border-bottom: 0.1em solid #5b6078;
}
.macchiato hr {
    border-color: #5b6078;
    border-style: solid;
}
.macchiato del {
    color: #939ab7;
}
.macchiato .ace_gutter {
    color: #8087a2;
    background: #1e2030;
}
.macchiato .ace_gutter-active-line.ace_gutter-cell {
    color: #f5bde6;
    background: #1e2030;
}
.macchiato .tooltiptext {
    background: #1e2030;
    color: #cad3f5;
}

.mocha.hljs {
    color: #cdd6f4;
    background: #1e1e2e;
}
.mocha .hljs-keyword {
    color: #cba6f7;
}
.mocha .hljs-built_in {
    color: #f38ba8;
}
.mocha .hljs-type {
    color: #f9e2af;
}
.mocha .hljs-literal {
    color: #fab387;
}
.mocha .hljs-number {
    color: #fab387;
}
.mocha .hljs-operator {
    color: #89dceb;
}
.mocha .hljs-punctuation {
    color: #bac2de;
}
.mocha .hljs-property {
    color: #94e2d5;
}
.mocha .hljs-regexp {
    color: #f5c2e7;
}
.mocha .hljs-string {
    color: #a6e3a1;
}
.mocha .hljs-char.escape_ {
    color: #a6e3a1;
}
.mocha .hljs-subst {
    color: #a6adc8;
}
.mocha .hljs-symbol {
    color: #f2cdcd;
}
.mocha .hljs-variable {
    color: #cba6f7;
}
.mocha .hljs-variable.language_ {
    color: #cba6f7;
}
.mocha .hljs-variable.constant_ {
    color: #fab387;
}
.mocha .hljs-title {
    color: #89b4fa;
}
.mocha .hljs-title.class_ {
    color: #f9e2af;
}
.mocha .hljs-title.function_ {
    color: #89b4fa;
}
.mocha .hljs-params {
    color: #cdd6f4;
}
.mocha .hljs-comment {
    color: #9399b2;
}
.mocha .hljs-doctag {
    color: #f38ba8;
}
.mocha .hljs-meta {
    color: #fab387;
}
.mocha .hljs-section {
    color: #89b4fa;
}
.mocha .hljs-tag {
    color: #94e2d5;
}
.mocha .hljs-name {
    color: #cba6f7;
}
.mocha .hljs-attr {
    color: #89b4fa;
}
.mocha .hljs-attribute {
    color: #a6e3a1;
}
.mocha .hljs-bullet {
    color: #94e2d5;
}
.mocha .hljs-code {
    color: #a6e3a1;
}
.mocha .hljs-emphasis {
    color: #f38ba8;
    font-style: italic;
}
.mocha .hljs-strong {
    color: #f38ba8;
    font-weight: bold;
}
.mocha .hljs-formula {
    color: #94e2d5;
}
.mocha .hljs-link {
    color: #74c7ec;
    font-style: italic;
}
.mocha .hljs-quote {
    color: #a6e3a1;
    font-style: italic;
}
.mocha .hljs-selector-tag {
    color: #f9e2af;
}
.mocha .hljs-selector-id {
    color: #89b4fa;
}
.mocha .hljs-selector-class {
    color: #94e2d5;
}
.mocha .hljs-selector-attr {
    color: #cba6f7;
}
.mocha .hljs-selector-pseudo {
    color: #94e2d5;
}
.mocha .hljs-template-tag {
    color: #f2cdcd;
}
.mocha .hljs-template-variable {
    color: #f2cdcd;
}
.mocha .hljs-addition {
    color: #a6e3a1;
    background: rgba(166, 227, 161, 0.15);
}
.mocha .hljs-deletion {
    color: #f38ba8;
    background: rgba(243, 139, 168, 0.15);
}
.mocha :is(h1, h2, h3, h4, h5, h6) a code {
    color: #cdd6f4;
}
.mocha a code {
    color: #89b4fa;
}
.mocha code {
    color: #cdd6f4;
    background: #181825;
}
.mocha blockquote blockquote {
    border-top: 0.1em solid #585b70;
    border-bottom: 0.1em solid #585b70;
}
.mocha hr {
    border-color: #585b70;
    border-style: solid;
}
.mocha del {
    color: #9399b2;
}
.mocha .ace_gutter {
    color: #7f849c;
    background: #181825;
}
.mocha .ace_gutter-active-line.ace_gutter-cell {
    color: #f5c2e7;
    background: #181825;
}
.mocha .tooltiptext {
    background: #181825;
    color: #cdd6f4;
}

.latte {
    --bg: #eff1f5;
    --fg: #4c4f69;
    --sidebar-bg: #e6e9ef;
    --sidebar-fg: #4c4f69;
    --sidebar-non-existant: #9ca0b0;
    --sidebar-active: #1e66f5;
    --sidebar-spacer: #9ca0b0;
    --scrollbar: #9ca0b0;
    --icons: #9ca0b0;
    --icons-hover: #7c7f93;
    --links: #1e66f5;
    --inline-code-color: #4c4f69;
    --theme-popup-bg: #e6e9ef;
    --theme-popup-border: #9ca0b0;
    --theme-hover: #ccd0da;
    --quote-bg: #e6e9ef;
    --quote-border: #dce0e8;
    --table-border-color: #ccd0da;
    --table-header-bg: #e6e9ef;
    --table-alternate-bg: #e6e9ef;
    --searchbar-border-color: #ccd0da;
    --searchbar-bg: #e6e9ef;
    --searchbar-fg: #4c4f69;
    --searchbar-shadow-color: #dce0e8;
    --searchresults-header-fg: #4c4f69;
    --searchresults-border-color: #ccd0da;
    --searchresults-li-bg: #eff1f5;
    --search-mark-bg: #fe640b;
    --warning-border: #fe640b;
    --color-scheme: light;
    --copy-button-filter: brightness(0) saturate(100%) invert(47%) sepia(6%)
        saturate(1263%) hue-rotate(195deg) brightness(90%) contrast(81%);
    --copy-button-filter-hover: brightness(0) saturate(100%) invert(30%)
        sepia(80%) saturate(1850%) hue-rotate(209deg) brightness(94%)
        contrast(105%);
}

.frappe {
    --bg: #303446;
    --fg: #c6d0f5;
    --sidebar-bg: #292c3c;
    --sidebar-fg: #c6d0f5;
    --sidebar-non-existant: #737994;
    --sidebar-active: #8caaee;
    --sidebar-spacer: #737994;
    --scrollbar: #737994;
    --icons: #737994;
    --icons-hover: #949cbb;
    --links: #8caaee;
    --inline-code-color: #c6d0f5;
    --theme-popup-bg: #292c3c;
    --theme-popup-border: #737994;
    --theme-hover: #414559;
    --quote-bg: #292c3c;
    --quote-border: #232634;
    --table-border-color: #414559;
    --table-header-bg: #292c3c;
    --table-alternate-bg: #292c3c;
    --searchbar-border-color: #414559;
    --searchbar-bg: #292c3c;
    --searchbar-fg: #c6d0f5;
    --searchbar-shadow-color: #232634;
    --searchresults-header-fg: #c6d0f5;
    --searchresults-border-color: #414559;
    --searchresults-li-bg: #303446;
    --search-mark-bg: #ef9f76;
    --warning-border: #ef9f76;
    --color-scheme: dark;
    --copy-button-filter: brightness(0) saturate(100%) invert(82%) sepia(6%)
        saturate(1287%) hue-rotate(192deg) brightness(86%) contrast(85%);
    --copy-button-filter-hover: brightness(0) saturate(100%) invert(68%)
        sepia(16%) saturate(1070%) hue-rotate(185deg) brightness(96%)
        contrast(95%);
}

.macchiato {
    --bg: #24273a;
    --fg: #cad3f5;
    --sidebar-bg: #1e2030;
    --sidebar-fg: #cad3f5;
    --sidebar-non-existant: #6e738d;
    --sidebar-active: #8aadf4;
    --sidebar-spacer: #6e738d;
    --scrollbar: #6e738d;
    --icons: #6e738d;
    --icons-hover: #939ab7;
    --links: #8aadf4;
    --inline-code-color: #cad3f5;
    --theme-popup-bg: #1e2030;
    --theme-popup-border: #6e738d;
    --theme-hover: #363a4f;
    --quote-bg: #1e2030;
    --quote-border: #181926;
    --table-border-color: #363a4f;
    --table-header-bg: #1e2030;
    --table-alternate-bg: #1e2030;
    --searchbar-border-color: #363a4f;
    --searchbar-bg: #1e2030;
    --searchbar-fg: #cad3f5;
    --searchbar-shadow-color: #181926;
    --searchresults-header-fg: #cad3f5;
    --searchresults-border-color: #363a4f;
    --searchresults-li-bg: #24273a;
    --search-mark-bg: #f5a97f;
    --warning-border: #f5a97f;
    --color-scheme: dark;
    --copy-button-filter: brightness(0) saturate(100%) invert(75%) sepia(18%)
        saturate(361%) hue-rotate(190deg) brightness(91%) contrast(86%);
    --copy-button-filter-hover: brightness(0) saturate(100%) invert(67%)
        sepia(17%) saturate(1007%) hue-rotate(183deg) brightness(99%)
        contrast(94%);
}

.mocha {
    --bg: #1e1e2e;
    --fg: #cdd6f4;
    --sidebar-bg: #181825;
    --sidebar-fg: #cdd6f4;
    --sidebar-non-existant: #6c7086;
    --sidebar-active: #89b4fa;
    --sidebar-spacer: #6c7086;
    --scrollbar: #6c7086;
    --icons: #6c7086;
    --icons-hover: #9399b2;
    --links: #89b4fa;
    --inline-code-color: #cdd6f4;
    --theme-popup-bg: #181825;
    --theme-popup-border: #6c7086;
    --theme-hover: #313244;
    --quote-bg: #181825;
    --quote-border: #11111b;
    --table-border-color: #313244;
    --table-header-bg: #181825;
    --table-alternate-bg: #181825;
    --searchbar-border-color: #313244;
    --searchbar-bg: #181825;
    --searchbar-fg: #cdd6f4;
    --searchbar-shadow-color: #11111b;
    --searchresults-header-fg: #cdd6f4;
    --searchresults-border-color: #313244;
    --searchresults-li-bg: #1e1e2e;
    --search-mark-bg: #fab387;
    --warning-border: #fab387;
    --color-scheme: dark;
    --copy-button-filter: brightness(0) saturate(100%) invert(84%) sepia(9%)
        saturate(767%) hue-rotate(192deg) brightness(84%) contrast(84%);
    --copy-button-filter-hover: brightness(0) saturate(100%) invert(68%)
        sepia(18%) saturate(951%) hue-rotate(180deg) brightness(98%)
        contrast(100%);
}

/* Add Inter font family for entire documentation */
html,
body {
    font-family:
        "Inter",
        "SF Pro Display",
        -apple-system,
        BlinkMacSystemFont,
        "Segoe UI",
        Roboto,
        sans-serif;
}

/* Ensure links maintain proper cursor */
.sidebar a,
.content a,
button {
    cursor: pointer !important;
}

/* Ghostty-style sidebar improvements */
.sidebar {
    background-color: var(--sidebar-bg);
}

.sidebar .sidebar-scrollbox {
    padding: 0;
}

/* Logo container at top of sidebar menu */
.sidebar-logo {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    padding: 0;
    text-align: center;
    background-color: var(--sidebar-bg);
}

.sidebar-logo a {
    display: flex;
    justify-content: center;
    align-items: center;
    text-decoration: none;
    width: 100%;
}

.sidebar-logo img {
    display: block;
    max-width: 80%;
    height: auto;
    max-height: 80px;
    cursor: pointer;
    margin: 0 auto;
}

.sidebar ol.chapter {
    padding: 0;
    margin: 0;
    list-style: none;
}

.sidebar ol.chapter > li.chapter-item {
    padding: 0;
    margin: 0;
}

/* All chapter link wrappers */
.sidebar ol.chapter > li.chapter-item > span.chapter-link-wrapper {
    display: block;
    padding: 10px 16px;
    margin: 4px 8px;
    transition: background-color 0.15s ease;
    position: relative;
    cursor: pointer;
}

.sidebar ol.chapter > li.chapter-item > span.chapter-link-wrapper > a {
    display: block;
    width: 100%;
    height: 100%;
}

.sidebar ol.chapter > li.chapter-item > span.chapter-link-wrapper:hover {
    background-color: var(--theme-hover);
}

.sidebar ol.chapter > li.chapter-item > span.chapter-link-wrapper > a {
    font-weight: 500;
    color: var(--sidebar-fg);
    text-decoration: none;
    padding: 0;
    margin: 0;
}

/* Active parent chapter styling - don't highlight parent, only child */
.sidebar ol.chapter > li.chapter-item.active > span.chapter-link-wrapper {
    background-color: transparent;
}

.sidebar ol.chapter > li.chapter-item.active > span.chapter-link-wrapper > a {
    color: var(--sidebar-fg);
    font-weight: 500;
}

/* Nested items (sub-pages under a section) - ol.section */
.sidebar ol.section {
    padding-left: 0;
    list-style: none;
    margin: 4px 0;
}

.sidebar ol.section > li.chapter-item {
    padding: 0;
}

.sidebar ol.section > li.chapter-item > span.chapter-link-wrapper {
    display: block;
    padding: 8px 16px 8px 32px;
    transition: background-color 0.15s ease;
    cursor: pointer;
}

.sidebar ol.section > li.chapter-item > span.chapter-link-wrapper > a {
    font-weight: 400;
    font-size: 0.95em;
    color: var(--sidebar-fg);
    opacity: 0.85;
    text-decoration: none;
    display: block;
    width: 100%;
    height: 100%;
    padding: 0;
    margin: 0;
}

.sidebar ol.section > li.chapter-item > span.chapter-link-wrapper:hover {
    background-color: var(--theme-hover);
}

.sidebar ol.section > li.chapter-item > span.chapter-link-wrapper:hover > a {
    opacity: 1;
}

.sidebar ol.section > li.chapter-item.active > span.chapter-link-wrapper {
    background-color: var(--sidebar-active) !important;
    border-radius: 6px;
}

.sidebar ol.section > li.chapter-item.active > span.chapter-link-wrapper > a {
    opacity: 1 !important;
    color: var(--bg) !important;
    font-weight: 600 !important;
}

/* Spacer styling */
.sidebar .spacer {
    height: 1px;
    background-color: var(--sidebar-spacer);
    margin: 8px 0;
    opacity: 0.3;
}

/* Chapter section (part) headers */
.sidebar .part-title {
    padding: 12px 16px 4px 16px;
    font-size: 0.75em;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--sidebar-fg);
    opacity: 0.6;
    list-style: none;
}

/* Chevron styling for collapsible sections */
.chapter-chevron {
    float: right;
    transition: transform 0.2s ease;
    display: inline-block;
    opacity: 0.6;
    font-size: 1.2em;
    line-height: 1;
    user-select: none;
}

.sidebar .chapter > li > a:hover .chapter-chevron {
    opacity: 1;
}

/* Smooth expand/collapse animation for nested sections */
.sidebar ol.chapter > li.chapter-item > ol.section {
    overflow: hidden;
    transition:
        max-height 0.3s ease,
        opacity 0.2s ease;
}

/* Collapsed state */
.sidebar ol.chapter > li.chapter-item.collapsed > ol.section {
    max-height: 0;
    opacity: 0;
    display: none;
}

/* Expanded state */
.sidebar ol.chapter > li.chapter-item.expanded > ol.section {
    max-height: 1000px;
    opacity: 1;
    display: block;
}

/* Hide default mdBook fold toggle */
.sidebar .chapter-fold-toggle {
    display: none !important;
}

/* Improve spacing between sections */
.sidebar ol.chapter > li.chapter-item {
    margin-bottom: 2px;
}

.sidebar ol.chapter > li.chapter-item:last-child {
    margin-bottom: 0;
}

/* Better visual hierarchy for part titles */
.sidebar ol.chapter > li.part-title {
    margin-top: 16px;
    margin-bottom: 8px;
}

.sidebar ol.chapter > li.part-title:first-child {
    margin-top: 8px;
}

/* Items with nested sections get special styling via .collapsed/.expanded classes */
.sidebar ol.chapter > li.chapter-item.collapsed > span.chapter-link-wrapper,
.sidebar ol.chapter > li.chapter-item.expanded > span.chapter-link-wrapper {
    border-radius: 6px;
}
