:root { --book-green:#186254; --book-line:#d9e3db; --book-paper:#fcfcf9; --book-toolbar:56px; }
html { scroll-padding-top:80px; }
body:not(.license-page) { padding-top:var(--book-toolbar) !important; overflow-x:clip; }
#quarto-header, #quarto-sidebar-glass { display:none !important; }
.book-toolbar { position:fixed; inset:0 0 auto; height:var(--book-toolbar); display:flex; gap:.8rem; align-items:center; padding:0 1.25rem; background:var(--book-paper); border-bottom:1px solid var(--book-line); z-index:1030; }
.book-brand { display:flex; flex-wrap:wrap; align-items:baseline; gap:0 .65rem; min-width:0; line-height:1.25; font-weight:650; color:var(--book-green); margin-right:auto; text-decoration:none; white-space:nowrap; }
.book-last-modified { font-size:12px; font-weight:400; color:#52675f; white-space:nowrap; }
.book-toolbar button, .drawer-close, .code-toolbar button { border:1px solid #b9cabe; border-radius:5px; padding:.3rem .7rem; background:#fff; color:#244e43; font:inherit; cursor:pointer; }
.book-toolbar button { flex-shrink:0; white-space:nowrap; font-size:.85rem; }
button:focus-visible, a:focus-visible { outline:3px solid #317baf; outline-offset:3px; }
#quarto-content { display:grid !important; grid-template-columns:360px minmax(0,860px) !important; grid-template-rows:auto auto !important; column-gap:32px; width:100%; max-width:1300px; margin:0 auto !important; padding:32px 24px 0; }
#quarto-content > main.content { grid-column:2 !important; grid-row:1 !important; margin:0 !important; padding:0 0 3rem; width:100%; min-width:0; max-width:860px; }
#quarto-content > .page-navigation { grid-column:2 !important; grid-row:2 !important; width:100%; min-width:0; }
#quarto-sidebar { display:flex !important; flex-direction:column; position:sticky !important; top:80px !important; left:auto !important; transform:none !important; width:360px !important; min-width:0 !important; min-height:0 !important; max-height:calc(100vh - 100px) !important; height:auto !important; margin:0 !important; overflow:hidden !important; align-self:start; padding:0 12px 14px 0 !important; background:var(--book-paper); transition:none !important; grid-column:1 !important; grid-row:1 !important; border-right:0; }
#quarto-margin-sidebar { display:none !important; }
#quarto-sidebar .sidebar-header { flex-shrink:0; margin:0 0 .7rem !important; }
#quarto-sidebar .sidebar-menu-container { min-width:0; min-height:0; max-width:100%; padding-top:0; overflow:auto; overscroll-behavior:contain; scrollbar-width:thin; }
#quarto-sidebar .book-tree { width:max-content; min-width:100%; padding:0; margin:0; }
#quarto-sidebar .book-tree ul { list-style:none; padding:0 0 0 1.1rem; margin:0 0 .2rem; }
#quarto-sidebar .book-tree details { margin:0; }
#quarto-sidebar .book-tree li { list-style:none; margin:0; }
#quarto-sidebar .book-tree summary { display:flex; align-items:center; list-style:none; cursor:pointer; padding:0; border-radius:4px; }
#quarto-sidebar .book-tree summary::-webkit-details-marker { display:none; }
#quarto-sidebar .book-tree summary::before { content:""; display:block; flex:none; width:.38rem; height:.38rem; border-right:1.5px solid #658475; border-bottom:1.5px solid #658475; transform:rotate(-45deg); margin:0 .55rem 0 .25rem; }
#quarto-sidebar .book-tree details[open] > summary::before { transform:rotate(45deg); }
#quarto-sidebar .book-tree summary:hover, #quarto-sidebar .book-nav-link:hover { background:#edf3ee; }
#quarto-sidebar .book-tree summary:focus-visible, #quarto-sidebar .sidebar-menu-container:focus-visible { outline:2px solid #317baf; outline-offset:-2px; }
#quarto-sidebar .book-nav-link { display:block; flex:1; padding:.28rem .4rem; border-radius:4px; font-size:15px; line-height:1.65; color:#425b50; text-decoration:none; white-space:nowrap; overflow-wrap:normal; word-break:normal; }
#quarto-sidebar .book-chapter-link { font-size:16px; font-weight:600; }
#quarto-sidebar .book-nav-leaf { padding-left:1.2rem; }
#quarto-sidebar .book-chapter-link[aria-current="page"] { color:var(--book-green); background:#eaf2ec; font-weight:750; }
#quarto-sidebar .book-section-link.is-active { color:#124e42; background:#dcece2; box-shadow:inset 3px 0 var(--book-green); font-weight:650; }
#quarto-sidebar .book-section-link.is-active-parent { color:var(--book-green); font-weight:650; }
#quarto-sidebar .book-tree > li { margin-bottom:.22rem; }
#quarto-content.page-columns .book-drawer { z-index:1040 !important; }
main .code-copy-outer-scaffold > .code-copy-button { display:none !important; }
.book-menu-button, .drawer-close { display:none; }
.book-shade { position:fixed; inset:var(--book-toolbar) 0 0; z-index:1038; background:#102c2866; border:0; }
.book-shade[hidden] { display:none; }
body.book-drawer-open { overflow:hidden; }
@media (max-width:1099px) {
 #quarto-content { grid-template-columns:minmax(0,860px) !important; padding:24px 20px 0; justify-content:center; }
 #quarto-content > main.content, #quarto-content > .page-navigation { grid-column:1 !important; }
 #quarto-sidebar { display:none !important; }
 .book-menu-button { display:inline-block; }
 #quarto-sidebar.book-drawer { display:flex !important; position:fixed !important; inset:var(--book-toolbar) auto 0 0 !important; width:min(400px,94vw) !important; max-height:none !important; height:calc(100dvh - var(--book-toolbar)) !important; padding:18px !important; z-index:1040; box-shadow:5px 0 24px #183c3826; }
 #quarto-sidebar.book-drawer .drawer-close { display:block; flex-shrink:0; padding:.3rem .7rem; margin:0 0 .7rem auto; }
}
@media (max-width:599px) {
 .book-brand { font-size:.85rem; }
 .book-toolbar { gap:.35rem; padding:0 .65rem; }
 .book-toolbar button { padding:.3rem .45rem; font-size:.75rem; }
 #quarto-content { padding-inline:16px; }
}
main.content, main.content section { min-width:0; max-width:100%; }
main.content { font-size:18px; }
main.content p, main.content li { overflow-wrap:anywhere; }
main.content :not(pre) > code:not(.sourceCode) { white-space:normal; overflow-wrap:anywhere; }
.quarto-title-block .title { font-size:clamp(1.8rem,2.6vw,2.4rem); line-height:1.4; }
.quarto-title-block .chapter-last-modified { margin:.5rem 0 0; font-size:13px; line-height:1.6; font-weight:400; color:#52675f; }
main h2 { margin-top:2.8rem; padding-bottom:.5rem; line-height:1.5; }
main h3 { margin-top:2rem; line-height:1.5; }
main.content section.level3 > h3 { border-left:4px solid var(--book-green); padding-left:.65rem; }
main h4 { margin-top:1.6rem; font-size:20px; font-weight:650; line-height:1.5; }
main.content section.level4 > h4 { position:relative; padding-left:.85em; }
main.content section.level4 > h4::before { content:""; position:absolute; left:0; top:.6em; width:.32em; height:.32em; background:var(--book-green); border-radius:1px; }
main.content section.level5 > h5 { margin-top:1.4rem; margin-bottom:.6rem; font-size:18px; font-weight:650; line-height:1.5; }
.chapter-number { color:#658475; }
.hero-book { background:#163f38; color:#fff; padding:2rem; border-radius:10px; margin:1.5rem 0 2rem; }
.hero-book .eyebrow { color:#c0dbce; letter-spacing:.12em; font-size:.72rem; font-weight:700; }
.hero-book h2 { color:#fff; border:0; padding:0; margin:.8rem 0; font-size:1.6rem; }
.hero-book p, .hero-book a { color:#f3f8f5; }
figure { margin:1.8rem auto; }
figure img { max-width:100%; height:auto; border-radius:4px; }
/* Cap the image itself: Quarto also copies image styles to the figure wrapper. */
img.book-image-width-cap, .book-image-width-cap img {
  max-width:var(--book-image-max-width, 100%);
}
figcaption { color:#4c6257; line-height:1.65; font-size:.85rem; }
main.content .quarto-figure > figure > figcaption { text-align:center; overflow-wrap:anywhere; }
main.content .footnotes { margin-top:2.4rem; font-size:16px; line-height:1.65; }
main.content a.footnote-ref, main.content a.footnote-back { scroll-margin-top:80px; }
main.content .footnotes li { margin-bottom:.8rem; }
main.content .book-table-scroll { width:100%; max-width:100%; overflow-x:auto; margin:1rem 0; }
main.content .book-table-scroll:focus-visible { outline:2px solid #317baf; outline-offset:2px; }
main.content .book-table-scroll > table { display:table; width:auto; max-width:100%; margin:0 auto; font-size:.9rem; }
main.content .book-table-compact > table td,
main.content .book-table-compact > table th { padding-top:.14rem; padding-bottom:.14rem; line-height:1.25; }
blockquote { border-left:3px solid #90b29c; color:#425b50; }
.book-placeholder { color:#637167; border-left:2px solid #cbd5cd; padding:.35rem .8rem; font-size:.83rem; margin:1.2rem 0; }
.book-placeholder p { margin:0; }
.book-prose { margin:1rem 0; }
.callout { margin:1.5rem 0; }
.callout.book-core { border-color:#87b5a0 !important; background:#eff7f1; }
.callout.book-warning { border-color:#ca9b47 !important; background:#fff8e9; }
.callout.book-example { border-color:#85aeca !important; background:#f0f6fc; }
.callout.book-extension { border-color:#b2babc !important; background:#f4f5f5; }
.callout[class*="book-"] { border-left-width:4px !important; border-radius:7px; padding:.8rem 1rem; }
.callout[class*="book-"] .callout-header { background:transparent !important; padding:.1rem 0 .6rem; font-weight:650; }
.callout[class*="book-"] .callout-body { font-size:18px; line-height:1.75; }
.callout-body { min-width:0; }
/* Preserve MathJax's natural baseline. Only genuinely oversized expressions scroll. */
span.math.inline { display:inline; vertical-align:baseline; }
span.math.inline mjx-container[jax="CHTML"] { max-width:none; overflow:visible; }
span.math.inline.book-math-scroll { display:block; max-width:100%; overflow-x:auto; overflow-y:hidden; white-space:nowrap; margin:.35em 0; padding:.5em 0; scrollbar-width:thin; }
span.math.inline.book-math-scroll:focus-visible { outline:2px solid #317baf; outline-offset:2px; }
.callout .callout-body pre, .callout .callout-body .code-viewport { max-width:100%; overflow-x:auto; }
.callout[class*="book-"] .callout-body > :last-child { margin-bottom:0; }
.book-equation { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:16px; width:100%; margin:1.5rem 0; }
.equation-scroll { display:block; min-width:0; overflow-x:auto; overflow-y:hidden; padding:.5rem 0; }
.equation-scroll .math.display { display:block; min-width:0; }
.equation-scroll mjx-container[display="true"] { margin:.6rem 0 !important; min-width:0 !important; }
.equation-label { color:#334f46; text-decoration:none; white-space:nowrap; font-family:Georgia,"Times New Roman",serif; font-variant-numeric:tabular-nums; padding:0 .2rem; }
.equation-label:hover { text-decoration:underline; }
.code-panel { border:1px solid #cbd4d8; border-radius:7px; background:#f3f5f7; margin:1.35rem 0; overflow:hidden; min-width:0; max-width:100%; }
.code-toolbar { display:flex; flex-wrap:wrap; align-items:center; gap:.45rem; padding:.45rem .7rem; border-bottom:1px solid #d7dfe2; background:#e9eef1; font-size:.75rem; line-height:1.5; }
.code-label { font-weight:650; color:#334b5c; margin-right:auto; }
.code-toolbar button { padding:.18rem .55rem; font-size:.72rem; }
.code-toolbar .copy-status { color:#17624d; }
.code-viewport { overflow-x:auto; scrollbar-width:thin; }
.code-panel div.sourceCode { margin:0 !important; border:0 !important; background:transparent !important; overflow:visible !important; }
.code-panel pre, .code-dialog pre { background:transparent !important; border:0 !important; border-radius:0; margin:0 !important; padding:1rem !important; overflow:visible !important; width:max-content; min-width:100%; max-width:none; max-height:none; font-size:15.5px; line-height:1.55; }
.code-panel pre.numberSource { padding-left:3.8em !important; }
.code-panel pre code, .code-dialog pre code { font-family:SFMono-Regular,Menlo,Consolas,"Liberation Mono",monospace; white-space:pre !important; overflow-wrap:normal !important; font-size:inherit; line-height:inherit; color:#263744; }
.code-panel pre > code.sourceCode > span { line-height:1.55; min-height:1.55em; }
.code-panel .code-copy-button { display:none !important; }
.code-panel pre > code > span.book-focus-line { display:inline-block; min-width:100%; background:#deeee5; box-shadow:inset 3px 0 #368060; }
.code-panel.book-output, .code-panel.book-data, .code-panel.book-pseudocode { background:#fafafa; }
.code-panel.book-output .code-toolbar, .code-panel.book-data .code-toolbar, .code-panel.book-pseudocode .code-toolbar { background:#f0f1f0; }
.code-dialog { width:calc(100vw - 48px); max-width:1600px; max-height:calc(100dvh - 48px); padding:0; color:inherit; border:1px solid #b9cabe; border-radius:9px; }
.code-dialog::backdrop { background:#102c2880; }
.code-dialog .code-viewport { max-height:calc(100dvh - 130px); overflow:auto; }
.nav-footer { font-size:.8rem; }
.back-top { position:fixed; right:1rem; bottom:1rem; border:1px solid #b9cabe; border-radius:50%; width:2.5rem; height:2.5rem; background:#fff; color:#186254; z-index:1010; cursor:pointer; }
@media print {
 body:not(.license-page) { padding:0 !important; }
 .book-toolbar, #quarto-sidebar, #quarto-margin-sidebar, .back-top, .code-toolbar button { display:none !important; }
 #quarto-content { display:block !important; max-width:none; padding:0; }
 #quarto-content > main.content { max-width:none; }
 .hero-book { background:none; color:inherit; border:1px solid #aaa; }
 .hero-book h2, .hero-book p, .hero-book a { color:inherit; }
}
body.license-page { margin:0; background:#fcfcf9; color:#263b3d; font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif; line-height:1.75; }
.license-page main { max-width:850px; margin:2rem auto; padding:0 1.5rem 3rem; }
.license-page a { color:#176859; }
.license-page .license-text { white-space:pre-wrap; overflow-wrap:anywhere; }
