:root { --site-bg: #fcfcf9; --site-ink: #23302f; --site-muted: #62706b; --site-rule: #dce4de; --site-accent: #167263; }
:root[data-theme="dark"] { --site-bg: #14181b; --site-ink: #d9dfda; --site-muted: #98a39c; --site-rule: #2b3237; --site-accent: #5fc3ad; color-scheme: dark; }
:root[data-theme="light"] { color-scheme: light; }
.site-bar, .site-drawer { font: 16px/1.5 "Segoe UI", sans-serif; color: var(--site-ink); }
.site-bar { display: flex; align-items: center; gap: 16px; min-height: 76px; padding: 12px max(24px, calc((100vw - 1120px) / 2)); border-bottom: 1px solid var(--site-rule); background: var(--site-bg); }
.site-bar a { color: inherit; text-decoration: none; }
.site-bar { position: sticky; top: 0; z-index: 1030; }
.site-wordmark { font-weight: 600; margin-right: auto; line-height: 1.35; }
.site-bar > button { flex-shrink: 0; }
.site-bar button, .site-drawer button { font: inherit; color: inherit; cursor: pointer; }
.menu-trigger, .menu-close { width: 44px; height: 44px; border: 1px solid var(--site-rule); border-radius: 8px; background: transparent; font-size: 22px !important; }
.menu-trigger:hover, .menu-close:hover { background: color-mix(in srgb, var(--site-accent) 10%, transparent); }
.site-drawer { box-sizing: border-box; position: fixed; inset: 0 auto 0 0; margin: 0; width: min(370px, 90vw); height: 100dvh; max-height: none; max-width: none; padding: 24px; border: 0; border-right: 1px solid var(--site-rule); background: var(--site-bg); overflow-y: auto; }
.site-drawer[open] { animation: drawer-in .18s ease-out; }
.site-drawer::backdrop { background: rgb(0 0 0 / 35%); }
.drawer-heading { display: flex; align-items: center; justify-content: space-between; margin-bottom: 24px; font-weight: 600; }
.drawer-links { display: grid; gap: 4px; }
.drawer-links a { padding: 10px 12px; border-radius: 6px; color: var(--site-ink); text-decoration: none; }
.drawer-links a:hover, .drawer-links a[aria-current] { background: color-mix(in srgb, var(--site-accent) 10%, transparent); color: var(--site-accent); }
.drawer-theme { border-block: 1px solid var(--site-rule); padding: 20px 12px; margin: 20px 0 24px; }
.theme-switch { display: inline-flex; align-items: center; justify-content: space-between; gap: 16px; padding: 6px 0; border: 0; background: none; font-size: 14px !important; }
.drawer-theme .theme-switch { width: 100%; }
.theme-switch i { display: block; width: 34px; height: 20px; border-radius: 20px; background: var(--site-muted); padding: 3px; }
.theme-switch i::after { content: ''; display: block; height: 14px; width: 14px; border-radius: 50%; background: var(--site-bg); transition: transform .15s; }
.theme-switch[aria-checked="true"] i { background: var(--site-accent); }
.theme-switch[aria-checked="true"] i::after { transform: translateX(14px); }
.drawer-toc p { color: var(--site-muted); font-size: 12px; letter-spacing: .1em; text-transform: uppercase; }
.drawer-toc ul { list-style: none; padding-left: 0; }
.drawer-toc ul ul { padding-left: 14px; }
.drawer-toc li { margin: 12px 0; }
.drawer-toc a { color: var(--site-ink); text-decoration: none; font-size: 14px; }
.drawer-toc a:hover { color: var(--site-accent); text-decoration: underline; }
.menu-open { overflow: hidden; }
.site-navigation-ready #quarto-sidebar, .site-navigation-ready #quarto-sidebar-glass, .site-navigation-ready .quarto-color-scheme-toggle, .site-navigation-ready nav[aria-label="Site"] { display: none !important; }
body.site-article { display: block; }
.site-article #quarto-content { display: block; max-width: 960px; margin-inline: auto; padding: 40px 28px; }
.site-article #quarto-document-content { display: block; width: 100%; min-width: 0; margin: 0; }
.site-article #quarto-document-content .page-columns { display: block; }
.site-article #quarto-margin-sidebar { display: none; }
.site-article section[id] { scroll-margin-top: 100px; }
.site-bar :focus-visible, .site-drawer :focus-visible { outline: 2px solid var(--site-accent); outline-offset: 4px; }
@keyframes drawer-in { from { transform: translateX(-100%); } to { transform: translateX(0); } }
@media (max-width: 600px) { .site-wordmark { font-size: 12px; } .site-bar > .theme-switch span { display: none; } .site-bar { padding-inline: 20px; gap: 12px; } .site-article #quarto-content { padding: 28px 20px; } }
@media (prefers-reduced-motion: reduce) { .site-drawer[open] { animation: none; } .theme-switch i::after { transition: none; } }
