body { font-family: 'IBM Plex Sans', sans-serif; }
code, pre { font-family: 'IBM Plex Mono', monospace; }
:root { --vyasa-code-bg: #e1e2e7; --vyasa-code-fg: #3760bf; --vyasa-code-border: rgba(55, 96, 191, 0.16); --vyasa-code-highlight-bg: rgba(245, 42, 101, 0.16); --vyasa-code-highlight-accent: #f52a65; --vyasa-code-comment: #848cb5; --vyasa-code-keyword: #9854f1; --vyasa-code-string: #587539; --vyasa-code-title: #2e7de9; --vyasa-code-number: #b15c00; }
.dark { --vyasa-code-bg: #1a1b26; --vyasa-code-fg: #d5d6db; --vyasa-code-border: rgba(122, 162, 247, 0.16); --vyasa-code-highlight-bg: rgba(247, 118, 142, 0.18); --vyasa-code-highlight-accent: #f7768e; --vyasa-code-comment: #848cb5; --vyasa-code-keyword: #bb9af7; --vyasa-code-string: #9ece6a; --vyasa-code-title: #7dcfff; --vyasa-code-number: #ff9e64; }

.chat-row-block { padding: 14px 0; }
.chat-panel {
    background: #ffffff;
    border: 1px solid #e2e8f0;
    border-radius: 16px;
    padding: 20px;
}

.folder-chevron {
    display: inline-block;
    width: 0.45rem;
    height: 0.45rem;
    border-right: 2px solid rgb(148 163 184);
    border-bottom: 2px solid rgb(148 163 184);
    transform: rotate(-45deg);
    transition: transform 0.2s;
}

details.is-open > summary .folder-chevron { transform: rotate(45deg); }
details { border: none !important; box-shadow: none !important; }
h1, h2, h3, h4, h5, h6 { scroll-margin-top: 7rem; }

* { scrollbar-width: thin; scrollbar-color: rgb(203 213 225) transparent; }
*::-webkit-scrollbar { width: 3px; height: 3px; }
*::-webkit-scrollbar-track { background: transparent; }
*::-webkit-scrollbar-thumb { background-color: rgb(203 213 225); border-radius: 2px; }
*::-webkit-scrollbar-thumb:hover { background-color: rgb(148 163 184); }
.dark *::-webkit-scrollbar-thumb { background-color: rgb(71 85 105); }
.dark *::-webkit-scrollbar-thumb:hover { background-color: rgb(100 116 139); }
.dark * { scrollbar-color: rgb(71 85 105) transparent; }

.sidebar-highlight { box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.35); transition: box-shadow 10s ease, background-color 10s ease; }
.sidebar-highlight.fade-out { box-shadow: 0 0 0 2px rgba(59, 130, 246, 0); }

body.pdf-focus { overflow: hidden; }
body.pdf-focus #site-navbar,
body.pdf-focus #site-footer,
body.pdf-focus #posts-sidebar,
body.pdf-focus #toc-sidebar,
body.pdf-focus #mobile-posts-panel,
body.pdf-focus #mobile-toc-panel { display: none !important; }
body.pdf-focus #content-with-sidebars { max-width: none !important; width: 100vw !important; padding: 0 !important; margin: 0 !important; gap: 0 !important; }
body.pdf-focus #main-content { padding: 1rem !important; }
body.pdf-focus .pdf-viewer { height: calc(100vh - 6rem) !important; }

body.iframe-fullscreen-open { overflow: hidden; }
.iframe-fullscreen-overlay { position: fixed; inset: 0; z-index: 1000; background: rgba(2, 6, 23, 0.85); display: flex; flex-direction: column; }
.iframe-fullscreen-header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 0.75rem 1rem; color: #e2e8f0; font-size: 0.9rem; background: rgba(15, 23, 42, 0.9); border-bottom: 1px solid rgba(148, 163, 184, 0.3); }
.iframe-fullscreen-body { flex: 1; padding: 0.75rem; }
.iframe-fullscreen-frame { width: 100%; height: 100%; border: 0; border-radius: 0.5rem; background: #0f172a; }

.layout-fluid {
    --layout-breakpoint: 1280px;
    --layout-blend: 240px;
    max-width: calc(100% - (100% - var(--layout-max-width)) * clamp(0, (100vw - var(--layout-breakpoint)) / var(--layout-blend), 1)) !important;
}

.tabs-container { margin: 2rem 0; border: 1px solid rgb(226 232 240); border-radius: 0.5rem; overflow: visible; box-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1); }
.dark .tabs-container { border-color: rgb(51 65 85); box-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.3); }
.tabs-header { display: flex; background: rgb(248 250 252); border-bottom: 1px solid rgb(226 232 240); gap: 0; }
.dark .tabs-header { background: rgb(15 23 42); border-bottom-color: rgb(51 65 85); }
.tab-button { flex: 1; padding: 0.875rem 1.5rem; background: transparent; border: none; border-bottom: 3px solid transparent; cursor: pointer; font-weight: 500; font-size: 0.9375rem; color: rgb(100 116 139); transition: all 0.15s ease; position: relative; margin-bottom: -1px; }
.dark .tab-button { color: rgb(148 163 184); }
.tab-button:hover:not(.active) { background: rgb(241 245 249); color: rgb(51 65 85); }
.dark .tab-button:hover:not(.active) { background: rgb(30 41 59); color: rgb(226 232 240); }
.tab-button.active { color: rgb(15 23 42); border-bottom-color: rgb(15 23 42); background: white; font-weight: 600; }
.dark .tab-button.active { color: rgb(248 250 252); border-bottom-color: rgb(248 250 252); background: rgb(2 6 23); }
.tabs-content { background: white; position: relative; overflow: visible; }
.dark .tabs-content { background: rgb(2 6 23); }
.tab-panel { padding: 1rem; animation: fadeIn 0.2s ease-in; position: absolute; top: 0; left: 0; right: 0; opacity: 0; visibility: hidden; pointer-events: none; overflow: visible; }
.tab-panel.active { position: relative; opacity: 1; visibility: visible; pointer-events: auto; }
@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }
.tab-panel > *:first-child { margin-top: 0 !important; }
.tab-panel > *:last-child { margin-bottom: 0 !important; }
.tab-panel pre { border-radius: 0.375rem; font-size: 0.875rem; }
.tab-panel code { font-family: 'IBM Plex Mono', monospace; }

.vyasa-callout { --vyasa-callout-accent: rgb(37 99 235); background: linear-gradient(180deg, rgba(248, 250, 252, 0.9), rgba(241, 245, 249, 0.95)); border-color: rgba(148, 163, 184, 0.35); border-left: 4px solid var(--vyasa-callout-accent); box-shadow: 0 10px 30px rgba(15, 23, 42, 0.06); }
.dark .vyasa-callout { background: linear-gradient(180deg, rgba(15, 23, 42, 0.92), rgba(30, 41, 59, 0.96)); border-color: rgba(148, 163, 184, 0.2); box-shadow: 0 14px 34px rgba(2, 6, 23, 0.35); }
.vyasa-callout-summary { list-style: none; }
.vyasa-callout-summary::-webkit-details-marker { display: none; }
.vyasa-callout-summary .vyasa-callout-head { cursor: pointer; }
.vyasa-callout-head-with-body { margin-bottom: 0.75rem; }
.vyasa-callout-icon { color: var(--vyasa-callout-accent); display: inline-flex; align-items: center; justify-content: center; width: 1.25rem; height: 1.25rem; flex: 0 0 1.25rem; overflow: visible; }
.vyasa-callout-icon svg, .vyasa-callout-icon uk-icon { width: 1.125rem; height: 1.125rem; overflow: visible; stroke-linecap: round; stroke-linejoin: round; }
.vyasa-callout-chevron { margin-left: auto; width: 0.55rem; height: 0.55rem; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(-45deg); transition: transform 160ms ease; opacity: 0.65; }
details[open] > .vyasa-callout-summary .vyasa-callout-chevron { transform: rotate(45deg); }
.vyasa-callout-label { color: rgb(15 23 42); }
.dark .vyasa-callout-label { color: rgb(226 232 240); }
.vyasa-callout-body .vyasa-callout { position: relative; margin-top: 1rem; margin-bottom: 0; margin-left: 1.25rem; }
.vyasa-callout-body .vyasa-callout::before { content: ""; position: absolute; left: -0.875rem; top: 0.55rem; bottom: -0.25rem; width: 2px; border-radius: 999px; background: linear-gradient(180deg, color-mix(in srgb, var(--vyasa-callout-accent) 35%, transparent), color-mix(in srgb, var(--vyasa-callout-accent) 10%, transparent)); opacity: 0.8; }
.vyasa-callout-body .vyasa-callout:last-child::before { bottom: 0.75rem; }
.vyasa-callout-body > *:first-child { margin-top: 0 !important; }
.vyasa-callout-body > *:last-child { margin-bottom: 0 !important; }
.vyasa-callout-note, .vyasa-callout-info, .vyasa-callout-abstract { --vyasa-callout-accent: rgb(37 99 235); }
.vyasa-callout-tip, .vyasa-callout-success, .vyasa-callout-todo { --vyasa-callout-accent: rgb(22 163 74); }
.vyasa-callout-warning, .vyasa-callout-important, .vyasa-callout-question { --vyasa-callout-accent: rgb(217 119 6); }
.vyasa-callout-failure, .vyasa-callout-danger, .vyasa-callout-bug { --vyasa-callout-accent: rgb(220 38 38); }
.vyasa-callout-example, .vyasa-callout-quote { --vyasa-callout-accent: rgb(124 58 237); }
.vyasa-code-lines { display: block; white-space: normal !important; }
.vyasa-code-line { display: block; white-space: pre; margin: 0 -1rem; padding: 0 1rem; }
.code-block .vyasa-code-line-highlight { background: var(--vyasa-code-highlight-bg); box-shadow: inset 6px 0 0 var(--vyasa-code-highlight-accent); }
.vyasa-heading-permalink { opacity: 0; transition: opacity 120ms ease; }
.vyasa-heading-text:hover + .vyasa-heading-permalink, .vyasa-heading-permalink:hover, .vyasa-heading-permalink:focus { opacity: 1; }
.code-block pre, .code-block pre code, pre code.hljs { background: var(--vyasa-code-bg); color: var(--vyasa-code-fg); }
.code-block pre { border: 1px solid var(--vyasa-code-border); border-radius: 12px; }
.hljs-comment, .hljs-quote { color: var(--vyasa-code-comment); }
.hljs-keyword, .hljs-selector-tag, .hljs-literal { color: var(--vyasa-code-keyword); }
.hljs-string, .hljs-doctag, .hljs-regexp { color: var(--vyasa-code-string); }
.hljs-title, .hljs-title.function_, .hljs-section, .hljs-attribute { color: var(--vyasa-code-title); }
.hljs-number, .hljs-symbol, .hljs-variable, .hljs-template-variable, .hljs-type, .hljs-built_in { color: var(--vyasa-code-number); }

.vyasa-table-scroll { width: 100%; max-width: 100%; position: static; left: auto; transform: none; margin: 1.5rem 0; overflow-x: auto; overflow-y: hidden; -webkit-overflow-scrolling: touch; scrollbar-gutter: stable both-edges; box-shadow: none; transition: box-shadow 160ms ease; }
.vyasa-table-scroll.vyasa-table-breakout { width: min(var(--vyasa-breakout-width, 80vw), 80vw); max-width: 80vw; position: relative; left: 50%; transform: translateX(-50%); }
.vyasa-table-scroll.has-right-overflow { box-shadow: inset -18px 0 16px -14px rgba(15, 23, 42, 0.32); }
.vyasa-table-scroll.has-left-overflow { box-shadow: inset 18px 0 16px -14px rgba(15, 23, 42, 0.32); }
.vyasa-table-scroll.has-left-overflow.has-right-overflow { box-shadow: inset 18px 0 16px -14px rgba(15, 23, 42, 0.32), inset -18px 0 16px -14px rgba(15, 23, 42, 0.32); }
.dark .vyasa-table-scroll.has-right-overflow { box-shadow: inset -18px 0 16px -14px rgba(2, 6, 23, 0.62); }
.dark .vyasa-table-scroll.has-left-overflow { box-shadow: inset 18px 0 16px -14px rgba(2, 6, 23, 0.62); }
.dark .vyasa-table-scroll.has-left-overflow.has-right-overflow { box-shadow: inset 18px 0 16px -14px rgba(2, 6, 23, 0.62), inset -18px 0 16px -14px rgba(2, 6, 23, 0.62); }
.vyasa-table-scroll > table, .vyasa-table-scroll > .uk-table { width: max-content !important; min-width: 0; table-layout: auto; margin: 0 auto; }
.uk-table-striped tbody tr:nth-of-type(odd) { background-color: rgba(71, 85, 105, 0.08); }
.dark .uk-table-striped tbody tr:nth-of-type(odd) { background-color: rgba(148, 163, 184, 0.12); }
.uk-table-striped tbody tr:hover { background-color: rgba(59, 130, 246, 0.1); }
.dark .uk-table-striped tbody tr:hover { background-color: rgba(59, 130, 246, 0.15); }
.uk-table thead { border-bottom: 2px solid rgba(71, 85, 105, 0.3); }
.dark .uk-table thead { border-bottom: 2px solid rgba(148, 163, 184, 0.4); }
.uk-table thead th { font-weight: 600; font-size: 1.25rem; color: rgb(51, 65, 85); }
.dark .uk-table thead th { color: rgb(226, 232, 240); }
.uk-table th:not(:last-child), .uk-table td:not(:last-child) { border-right: 1px solid rgba(71, 85, 105, 0.15); }
.dark .uk-table th:not(:last-child), .dark .uk-table td:not(:last-child) { border-right: 1px solid rgba(148, 163, 184, 0.2); }
