{"version":3,"file":"styles/pydata-sphinx-theme.css","mappings":"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","sources":["webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/pydata-sphinx-theme.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/variables/_layout.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/variables/_fonts.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/variables/_icons.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/variables/_admonitions.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/variables/_versionmodified.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/base/_base.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/abstracts/_links.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/_variables.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/variables/_bootstrap.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/sections/_skip-link.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/variables/_color.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/sections/_container.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/mixins/_breakpoints.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/sections/_announcement.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/abstracts/_mixins.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/sections/_article.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/sections/_footer.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/sections/_footer-article.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/sections/_footer-content.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/sections/_header.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/sections/_header-article.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/sections/_sidebar-primary.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/mixins/_grid.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/sections/_sidebar-secondary.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/sections/_sidebar-toggle.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/components/_breadcrumbs.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/components/_icon-links.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/components/header/_header-logo.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/components/_navbar-links.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/components/_page-toc.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/components/_prev-next.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/components/_search.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/components/_searchbox.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/components/_switcher-theme.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/components/_switcher-version.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/components/_toc-inpage.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/components/_versionmodified.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/components/_indices.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/components/_readthedocs-switcher.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/content/_admonitions.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/abstracts/_color.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/content/_api.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/content/_code.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/content/_figures.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/content/_footnotes.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/content/_hacks.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/content/_lists.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/content/_quotes.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/content/_spans.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/content/_tables.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/content/_toctree.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/content/_math.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/extensions/_ablog.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/extensions/_bootstrap.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/extensions/_copybutton.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/extensions/_ethical-ads.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/extensions/_execution.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/extensions/_graphviz.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/extensions/_pydata.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/extensions/_sphinx_design.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/extensions/_togglebutton.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/extensions/_notebooks.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/extensions/_leaflet.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/pages/_search.scss"],"sourcesContent":["html{--pst-header-height: 4rem;--pst-header-article-height: calc(var(--pst-header-height) * 2 / 3);--pst-sidebar-secondary: 17rem}html{--pst-font-size-base: 1rem;--pst-font-size-h1: 2.5rem;--pst-font-size-h2: 2rem;--pst-font-size-h3: 1.75rem;--pst-font-size-h4: 1.5rem;--pst-font-size-h5: 1.25rem;--pst-font-size-h6: 1.1rem;--pst-font-size-milli: 0.9rem;--pst-sidebar-font-size: 0.9rem;--pst-sidebar-font-size-mobile: 1.1rem;--pst-sidebar-header-font-size: 1.2rem;--pst-sidebar-header-font-weight: 600;--pst-admonition-font-weight-heading: 600;--pst-font-weight-caption: 300;--pst-font-weight-heading: 400;--pst-font-family-base-system: -apple-system, \"BlinkMacSystemFont\", \"Segoe UI\", \"Helvetica Neue\", \"Arial\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";--pst-font-family-monospace-system: \"SFMono-Regular\", \"Menlo\", \"Consolas\", \"Monaco\", \"Liberation Mono\", \"Lucida Console\", monospace;--pst-font-family-base: var(--pst-font-family-base-system);--pst-font-family-heading: var(--pst-font-family-base-system);--pst-font-family-monospace: var(--pst-font-family-monospace-system)}html{--pst-font-size-icon: 1.5rem;--pst-icon-check-circle: \"\";--pst-icon-info-circle: \"\";--pst-icon-exclamation-triangle: \"\";--pst-icon-exclamation-circle: \"\";--pst-icon-times-circle: \"\";--pst-icon-lightbulb: \"\";--pst-icon-download: \"\";--pst-icon-angle-left: \"\";--pst-icon-angle-right: \"\";--pst-icon-external-link: \"\";--pst-icon-search-minus: \"\";--pst-icon-github: \"\";--pst-icon-gitlab: \"\";--pst-icon-share: \"\";--pst-icon-bell: \"\";--pst-icon-pencil: \"\";--pst-breadcrumb-divider: \"\"}html{--pst-icon-admonition-default: var(--pst-icon-bell);--pst-icon-admonition-note: var(--pst-icon-info-circle);--pst-icon-admonition-attention: var(--pst-icon-exclamation-circle);--pst-icon-admonition-caution: var(--pst-icon-exclamation-triangle);--pst-icon-admonition-warning: var(--pst-icon-exclamation-triangle);--pst-icon-admonition-danger: var(--pst-icon-exclamation-triangle);--pst-icon-admonition-error: var(--pst-icon-times-circle);--pst-icon-admonition-hint: var(--pst-icon-lightbulb);--pst-icon-admonition-tip: var(--pst-icon-lightbulb);--pst-icon-admonition-important: var(--pst-icon-exclamation-circle);--pst-icon-admonition-seealso: var(--pst-icon-share);--pst-icon-admonition-todo: var(--pst-icon-pencil)}html{--pst-icon-versionmodified-default: var(--pst-icon-exclamation-circle);--pst-icon-versionmodified-added: var(--pst-icon-exclamation-circle);--pst-icon-versionmodified-changed: var(--pst-icon-exclamation-circle);--pst-icon-versionmodified-deprecated: var(--pst-icon-exclamation-circle)}:root{--pst-teal-50: #f4fbfc;--pst-teal-100: #e9f6f8;--pst-teal-200: #d0ecf1;--pst-teal-300: #abdde6;--pst-teal-400: #3fb1c5;--pst-teal-500: #0a7d91;--pst-teal-600: #085d6c;--pst-teal-700: #064752;--pst-teal-800: #042c33;--pst-teal-900: #021b1f;--pst-violet-50: #f4eefb;--pst-violet-100: #e0c7ff;--pst-violet-200: #d5b4fd;--pst-violet-300: #b780ff;--pst-violet-400: #9c5ffd;--pst-violet-500: #8045e5;--pst-violet-600: #6432bd;--pst-violet-700: #4b258f;--pst-violet-800: #341a61;--pst-violet-900: #1e0e39;--pst-gray-50: #f9f9fa;--pst-gray-100: #f3f4f5;--pst-gray-200: #e5e7ea;--pst-gray-300: #d1d5da;--pst-gray-400: #9ca4af;--pst-gray-500: #677384;--pst-gray-600: #48566b;--pst-gray-700: #29313d;--pst-gray-800: #222832;--pst-gray-900: #14181e;--pst-pink-50: #fcf8fd;--pst-pink-100: #fcf0fa;--pst-pink-200: #f8dff5;--pst-pink-300: #f3c7ee;--pst-pink-400: #e47fd7;--pst-pink-500: #c132af;--pst-pink-600: #912583;--pst-pink-700: #6e1c64;--pst-pink-800: #46123f;--pst-pink-900: #2b0b27;--pst-foundation-white: #ffffff;--pst-foundation-black: #14181e}html:not([data-theme]){--pst-color-primary: #0a7d91;--pst-color-primary-bg: #d0ecf1;--pst-color-secondary: #8045e5;--pst-color-secondary-bg: #e0c7ff;--pst-color-accent: #c132af;--pst-color-accent-bg: #f8dff5;--pst-color-info: #276be9;--pst-color-info-bg: #dce7fc;--pst-color-warning: #f66a0a;--pst-color-warning-bg: #f8e3d0;--pst-color-success: #00843f;--pst-color-success-bg: #d6ece1;--pst-color-attention: var(--pst-color-warning);--pst-color-attention-bg: var(--pst-color-warning-bg);--pst-color-danger: #d72d47;--pst-color-danger-bg: #f9e1e4;--pst-color-text-base: #222832;--pst-color-text-muted: #48566b;--pst-color-heading-color: #fff;--pst-color-shadow: rgba(0, 0, 0, 0.1);--pst-color-border: #d1d5da;--pst-color-border-muted: rgba(23, 23, 26, 0.2);--pst-color-blockquote-notch: #677384;--pst-color-inline-code: #912583;--pst-color-inline-code-links: #085d6c;--pst-color-target: #f3cf95;--pst-color-table: #14181e;--pst-color-table-row-hover-bg: #b780ff;--pst-color-table-inner-border: #e5e7ea;--pst-color-background: #ffffff;--pst-color-on-background: #ffffff;--pst-color-surface: #f3f4f5;--pst-color-on-surface: #222832}html:not([data-theme]){--pst-color-link: var(--pst-color-primary);--pst-color-link-hover: var(--pst-color-secondary);--pst-color-table-outer-border: var(--pst-color-surface);--pst-color-table-heading-bg: var(--pst-color-surface);--pst-color-table-row-zebra-high-bg: var(--pst-color-on-background);--pst-color-table-row-zebra-low-bg: var(--pst-color-surface)}html:not([data-theme]) .only-dark,html:not([data-theme]) .only-dark~figcaption{display:none !important}html[data-theme=light]{--pst-color-primary: #0a7d91;--pst-color-primary-bg: #d0ecf1;--pst-color-secondary: #8045e5;--pst-color-secondary-bg: #e0c7ff;--pst-color-accent: #c132af;--pst-color-accent-bg: #f8dff5;--pst-color-info: #276be9;--pst-color-info-bg: #dce7fc;--pst-color-warning: #f66a0a;--pst-color-warning-bg: #f8e3d0;--pst-color-success: #00843f;--pst-color-success-bg: #d6ece1;--pst-color-attention: var(--pst-color-warning);--pst-color-attention-bg: var(--pst-color-warning-bg);--pst-color-danger: #d72d47;--pst-color-danger-bg: #f9e1e4;--pst-color-text-base: #222832;--pst-color-text-muted: #48566b;--pst-color-heading-color: #fff;--pst-color-shadow: rgba(0, 0, 0, 0.1);--pst-color-border: #d1d5da;--pst-color-border-muted: rgba(23, 23, 26, 0.2);--pst-color-blockquote-notch: #677384;--pst-color-inline-code: #912583;--pst-color-inline-code-links: #085d6c;--pst-color-target: #f3cf95;--pst-color-table: #14181e;--pst-color-table-row-hover-bg: #b780ff;--pst-color-table-inner-border: #e5e7ea;--pst-color-background: #ffffff;--pst-color-on-background: #ffffff;--pst-color-surface: #f3f4f5;--pst-color-on-surface: #222832;color-scheme:light}html[data-theme=light]{--pst-color-link: var(--pst-color-primary);--pst-color-link-hover: var(--pst-color-secondary);--pst-color-table-outer-border: var(--pst-color-surface);--pst-color-table-heading-bg: var(--pst-color-surface);--pst-color-table-row-zebra-high-bg: var(--pst-color-on-background);--pst-color-table-row-zebra-low-bg: var(--pst-color-surface)}html[data-theme=light] .only-dark,html[data-theme=light] .only-dark~figcaption{display:none !important}html[data-theme=dark]{--pst-color-primary: #3fb1c5;--pst-color-primary-bg: #042c33;--pst-color-secondary: #9c5ffd;--pst-color-secondary-bg: #341a61;--pst-color-accent: #e47fd7;--pst-color-accent-bg: #46123f;--pst-color-info: #79a3f2;--pst-color-info-bg: #06245d;--pst-color-warning: #ff9245;--pst-color-warning-bg: #652a02;--pst-color-success: #5fb488;--pst-color-success-bg: #002f17;--pst-color-attention: var(--pst-color-warning);--pst-color-attention-bg: var(--pst-color-warning-bg);--pst-color-danger: #e78894;--pst-color-danger-bg: #4e111b;--pst-color-text-base: #ced6dd;--pst-color-text-muted: #9ca4af;--pst-color-heading-color: #14181e;--pst-color-shadow: rgba(0, 0, 0, 0.2);--pst-color-border: #48566b;--pst-color-border-muted: #29313d;--pst-color-blockquote-notch: #9ca4af;--pst-color-inline-code: #f3c7ee;--pst-color-inline-code-links: #3fb1c5;--pst-color-target: #675c04;--pst-color-table: #ffffff;--pst-color-table-row-hover-bg: #6432bd;--pst-color-table-inner-border: #364150;--pst-color-background: #14181e;--pst-color-on-background: #222832;--pst-color-surface: #29313d;--pst-color-on-surface: #f3f4f5;color-scheme:dark}html[data-theme=dark]{--pst-color-link: var(--pst-color-primary);--pst-color-link-hover: var(--pst-color-secondary);--pst-color-table-outer-border: var(--pst-color-surface);--pst-color-table-heading-bg: var(--pst-color-surface);--pst-color-table-row-zebra-high-bg: var(--pst-color-on-background);--pst-color-table-row-zebra-low-bg: var(--pst-color-surface)}html[data-theme=dark] .only-light,html[data-theme=dark] .only-light~figcaption{display:none !important}html[data-theme=dark] img:not(.only-dark,.dark-light){filter:brightness(0.8) contrast(1.2)}html[data-theme=dark] .bd-content img:not(.only-dark,.dark-light){background-color:#fff;border-radius:.25rem}html[data-theme=dark] .MathJax_SVG *{fill:var(--pst-color-text-base)}.pst-color-primary{color:var(--pst-color-primary)}.pst-color-secondary{color:var(--pst-color-secondary)}.pst-color-accent{color:var(--pst-color-accent)}.pst-color-info{color:var(--pst-color-info)}.pst-color-warning{color:var(--pst-color-warning)}.pst-color-success{color:var(--pst-color-success)}.pst-color-attention{color:var(--pst-color-attention)}.pst-color-danger{color:var(--pst-color-danger)}.pst-color-text-base{color:var(--pst-color-text-base)}.pst-color-text-muted{color:var(--pst-color-text-muted)}.pst-color-heading-color{color:var(--pst-color-heading-color)}.pst-color-shadow{color:var(--pst-color-shadow)}.pst-color-border{color:var(--pst-color-border)}.pst-color-border-muted{color:var(--pst-color-border-muted)}.pst-color-blockquote-notch{color:var(--pst-color-blockquote-notch)}.pst-color-inline-code{color:var(--pst-color-inline-code)}.pst-color-inline-code-links{color:var(--pst-color-inline-code-links)}.pst-color-target{color:var(--pst-color-target)}.pst-color-table{color:var(--pst-color-table)}.pst-color-table-row-hover{color:var(--pst-color-table-row-hover)}.pst-color-table-inner-border{color:var(--pst-color-table-inner-border)}.pst-color-background{color:var(--pst-color-background)}.pst-color-on-background{color:var(--pst-color-on-background)}.pst-color-surface{color:var(--pst-color-surface)}.pst-color-on-surface{color:var(--pst-color-on-surface)}html{font-size:var(--pst-font-size-base);scroll-padding-top:calc(var(--pst-header-height) + 1rem)}body{background-color:var(--pst-color-background);font-family:var(--pst-font-family-base);font-weight:400;line-height:1.65;color:var(--pst-color-text-base);min-height:100vh;display:flex;flex-direction:column}body::-webkit-scrollbar-track{background-color:var(--pst-color-background)}p{margin-bottom:1.15rem;font-size:1em}p.rubric{border-bottom:1px solid var(--pst-color-border)}p.centered{text-align:center}a{word-wrap:break-word;color:var(--pst-color-link);text-decoration:underline;text-decoration-thickness:max(1px, .0625rem);text-underline-offset:.1578em}a:hover{color:var(--pst-color-link-hover);text-decoration-thickness:max(3px, .1875rem, .12em);text-decoration-skip-ink:none}a:active{color:var(--pst-color-link)}a:visited{color:var(--pst-color-link)}a:visited:hover{color:var(--pst-color-link-hover)}a.headerlink{color:var(--pst-color-secondary);opacity:.7;font-size:.8em;padding:0 4px;margin-left:.2em;text-decoration:none;transition:all .2s ease-out;user-select:none}a.headerlink:hover{opacity:1}a.github::before,a.gitlab::before{color:var(--pst-color-text-muted);font:var(--fa-font-brands);margin-right:.25rem}a.github::before{content:var(--pst-icon-github)}a.gitlab::before{content:var(--pst-icon-gitlab)}h6,h5,h4,h3,h2,h1{margin:2.75rem 0 1.05rem;font-family:var(--pst-font-family-heading);font-weight:var(--pst-font-weight-heading);line-height:1.15}h1{margin-top:0;font-size:var(--pst-font-size-h1);color:var(--pst-heading-color)}h2{font-size:var(--pst-font-size-h2);color:var(--pst-heading-color)}h3{font-size:var(--pst-font-size-h3);color:var(--pst-heading-color)}h4{font-size:var(--pst-font-size-h4);color:var(--pst-heading-color)}h5{font-size:var(--pst-font-size-h5);color:var(--pst-color-text-base)}h6{font-size:var(--pst-font-size-h6);color:var(--pst-color-text-base)}small,.text_small{font-size:var(--pst-font-size-milli)}hr{border:0;border-top:1px solid var(--pst-color-border)}pre,code,kbd,samp{font-family:var(--pst-font-family-monospace)}kbd{background-color:var(--pst-color-on-background);color:var(--pst-color-text-muted)}kbd:not(.compound){border:1px solid var(--pst-color-border);margin:0 .1rem;padding:.1rem .4rem;box-shadow:1px 1px 1px var(--pst-color-shadow)}code{color:var(--pst-color-inline-code)}pre{margin:1.5em 0;padding:1rem;background-color:var(--pst-color-surface);color:var(--pst-color-text-base);line-height:1.2em;border:1px solid var(--pst-color-border);border-radius:.25rem}pre .linenos{opacity:.8;padding-right:10px}#pst-back-to-top{z-index:1080;position:fixed;display:none;top:90vh;left:50vw;transform:translate(-50%);color:var(--pst-color-secondary-text);background-color:var(--pst-color-secondary);border:none}#pst-back-to-top .fa-arrow-up{margin-inline-end:.5em}#pst-back-to-top:hover{text-decoration:underline;text-decoration-thickness:max(1px, .0625rem);text-underline-offset:.1578em;text-decoration-thickness:max(3px, .1875rem, .12em);text-decoration-skip-ink:none;color:var(--pst-color-link-hover);text-decoration-thickness:1px;background-color:var(--pst-violet-600);color:var(--pst-color-secondary-text)}#pst-back-to-top:focus-visible{box-shadow:none;outline:var(--pst-color-accent) solid .1875rem;outline-color:var(--pst-color-secondary);outline-offset:.1875rem}:focus-visible{outline:var(--pst-color-accent) solid .1875rem;box-shadow:none}.skip-link{position:fixed;top:0;left:0;right:0;text-align:center;background-color:var(--pst-color-warning);padding:.5rem;z-index:1055;border-bottom:1px solid var(--pst-color-border);transform:translateY(-100%);transition:transform 150ms ease-in-out}.skip-link:focus-within{transform:translateY(0%)}.skip-link a{color:var(--pst-color-warning-text) !important}.skip-link a:focus-visible{outline-color:#14181e}.bd-container{flex-grow:1;display:flex;justify-content:center}.bd-container .bd-container__inner{display:flex}.bd-page-width{width:100%}@media(min-width: 960px){.bd-page-width{max-width:88rem}}.pst-async-banner-revealer{height:0;overflow:hidden;transition:height 300ms ease-in-out}@media(prefers-reduced-motion){.pst-async-banner-revealer{transition:none}}#bd-header-version-warning,.bd-header-announcement{min-height:3rem;width:100%;display:flex;position:relative;align-items:center;justify-content:center;text-align:center;padding:.5rem 12.5%}@media(max-width: 959.98px){#bd-header-version-warning,.bd-header-announcement{padding:.5rem 2%}}#bd-header-version-warning p,.bd-header-announcement p{font-weight:bold;margin:0}#bd-header-version-warning a,.bd-header-announcement a{color:var(--pst-color-inline-code-links)}#bd-header-version-warning .pst-button-link-to-stable-version,.bd-header-announcement .pst-button-link-to-stable-version{box-shadow:0 .2rem .5rem var(--pst-color-shadow),0 0 .0625rem var(--pst-color-shadow) !important;background-color:var(--pst-color-danger);border-color:var(--pst-color-danger);color:var(--pst-color-danger-text);border-radius:.25rem}#bd-header-version-warning .pst-button-link-to-stable-version:hover,.bd-header-announcement .pst-button-link-to-stable-version:hover{background-color:var(--pst-color-danger-highlight);border-color:var(--pst-color-danger-highlight);color:var(--pst-color-danger-text)}#bd-header-version-warning .pst-button-link-to-stable-version:focus-visible,.bd-header-announcement .pst-button-link-to-stable-version:focus-visible{outline:.1875rem solid var(--pst-color-danger);outline-offset:.1875rem}.bd-header-announcement{background-color:var(--pst-color-secondary-bg)}#bd-header-version-warning{background-color:var(--pst-color-danger-bg)}.bd-main{flex-grow:1;flex-direction:column;display:flex;min-width:0}.bd-main .bd-content{display:flex;justify-content:center;height:100%}.bd-main .bd-content .bd-article-container{justify-content:start;display:flex;flex-direction:column;width:100%;max-width:60em;overflow-x:auto;padding:1rem}@media(min-width: 1200px){.bd-main .bd-content .bd-article-container .bd-article{padding-top:1.5rem;padding-left:2rem}}.bd-footer{width:100%;border-top:1px solid var(--pst-color-border)}.bd-footer .bd-footer__inner{display:flex;flex-grow:1;padding:1rem;margin:auto}.bd-footer .footer-items__start,.bd-footer .footer-items__center,.bd-footer .footer-items__end{display:flex;flex-direction:column;gap:.5rem;justify-content:center;flex-grow:1}.bd-footer .footer-items__center{text-align:center}.bd-footer .footer-items__end{text-align:end}.bd-footer .footer-item p{margin-bottom:0}.bd-footer-article{margin-top:auto}.bd-footer-article .footer-article-items{display:flex;flex-direction:column}.bd-footer-content .footer-content-items{display:flex;flex-direction:column;margin-top:auto}.bd-header{position:sticky;top:0;z-index:1030;background-color:var(--pst-color-on-background) !important;box-shadow:0 .125rem .25rem 0 var(--pst-color-shadow);width:100%;padding:0;max-width:100vw;justify-content:center}.bd-header .bd-header__inner{display:flex;align-items:center;height:fit-content;padding-left:1rem;padding-right:1rem}.bd-header :focus-visible{border-radius:.125rem}.bd-header .navbar-item{height:var(--pst-header-height);max-height:var(--pst-header-height);display:flex;align-items:center}.bd-header .navbar-header-items{display:none;flex-shrink:1}@media(min-width: 960px){.bd-header .navbar-header-items{display:inherit;flex-grow:1;padding:0 0 0 .5rem}}.bd-header .navbar-header-items__end,.bd-header .navbar-header-items__center,.bd-header .navbar-header-items__start{display:flex;align-items:center;flex-flow:wrap;row-gap:0}.bd-header .navbar-header-items__end,.bd-header .navbar-header-items__center{column-gap:1rem}.bd-header .navbar-header-items__start{flex-shrink:0;margin-right:auto;gap:.5rem}.bd-header .navbar-header-items__end{justify-content:end}.bd-header ul.navbar-nav{display:flex}@media(min-width: 960px){.bd-header ul.navbar-nav{align-items:baseline}}.bd-header ul.navbar-nav>li.nav-item{margin-inline:2px}.bd-header ul.navbar-nav>li.nav-item>.nav-link{color:var(--pst-color-text-muted);position:relative;padding-inline:6px}.bd-header ul.navbar-nav>li.nav-item>.nav-link::before{content:\"\";display:block;position:absolute;inset:0;background-color:rgba(0,0,0,0);bottom:calc(-1*max(3px, .1875rem, .12em));margin:max(3px, .1875rem, .12em) 0}.bd-header ul.navbar-nav>li.nav-item>.nav-link:hover{color:var(--pst-color-secondary);text-decoration:none}.bd-header ul.navbar-nav>li.nav-item>.nav-link:hover::before{border-bottom:max(3px, .1875rem, .12em) solid var(--pst-color-secondary)}.bd-header ul.navbar-nav>li.nav-item>.nav-link:focus-visible{box-shadow:none;outline:3px solid var(--pst-color-accent);outline-offset:3px}.bd-header ul.navbar-nav>li.nav-item.current>.nav-link{color:var(--pst-color-primary)}.bd-header ul.navbar-nav>li.nav-item.current>.nav-link::before{border-bottom:3px solid var(--pst-color-primary)}.bd-header ul.navbar-nav>li.nav-item.dropdown{margin-inline:4px}.bd-header ul.navbar-nav>li.nav-item.dropdown button{padding-inline:8px}.bd-header ul.navbar-nav>li.nav-item.dropdown>.dropdown-toggle{border-radius:.125rem;color:var(--pst-color-text-muted)}.bd-header ul.navbar-nav>li.nav-item.dropdown>.dropdown-toggle:focus-visible{box-shadow:0 0 0 .1875rem var(--pst-color-accent)}.bd-header ul.navbar-nav>li.nav-item.dropdown>.dropdown-toggle:hover{text-decoration:none;box-shadow:0 0 0 .1875rem var(--pst-color-link-hover);color:var(--pst-color-text-base)}.bd-header ul.navbar-nav li a.nav-link.dropdown-item{color:var(--pst-color-text-muted);text-decoration:none}.bd-header ul.navbar-nav li a.nav-link.dropdown-item:hover{color:var(--pst-color-link-hover);text-decoration:underline;text-decoration-thickness:max(1px, .0625rem);text-underline-offset:.1578em;text-decoration-thickness:max(3px, .1875rem, .12em);text-decoration-skip-ink:none}.bd-header ul.navbar-nav .dropdown button{display:unset;border:none}.bd-header ul.navbar-nav .dropdown button:hover{text-decoration:underline;text-decoration-thickness:max(1px, .0625rem);text-underline-offset:.1578em;text-decoration-thickness:max(3px, .1875rem, .12em);text-decoration-skip-ink:none;color:var(--pst-color-link-hover)}.bd-header ul.navbar-nav .dropdown .dropdown-menu{z-index:1070;border:1px solid var(--pst-color-border);box-shadow:0 0 .3rem .1rem var(--pst-color-shadow);background-color:var(--pst-color-on-background);padding:.5rem 0;margin:.5rem 0;min-width:20rem}.bd-header ul.navbar-nav .dropdown .dropdown-menu .dropdown-item{padding:.25rem 1.5rem}.bd-header ul.navbar-nav .dropdown .dropdown-menu .dropdown-item:focus:not(:hover,:active){background-color:inherit}.bd-header ul.navbar-nav .dropdown .dropdown-menu .dropdown-item:focus-visible{z-index:10}.bd-header ul.navbar-nav .dropdown .dropdown-menu:not(.show){display:none}.bd-header button.sidebar-toggle{font-size:var(--pst-font-size-icon);color:var(--pst-color-muted);margin-bottom:0;background-color:inherit;padding:.5rem}.bd-header button.primary-toggle{margin-right:1rem}@media(min-width: 960px){.bd-header button.primary-toggle{display:none}}.bd-header button.secondary-toggle{margin-left:1rem}@media(min-width: 1200px){.bd-header button.secondary-toggle{display:none}}@media(min-width: 960px){.navbar-center-items .navbar-item{display:inline-block}}.nav-link{transition:none}.nav-link:hover{text-decoration:underline;text-decoration-thickness:max(1px, .0625rem);text-underline-offset:.1578em;text-decoration-thickness:max(3px, .1875rem, .12em);text-decoration-skip-ink:none;color:var(--pst-color-link-hover)}.nav-link.nav-external::after{font:var(--fa-font-solid);content:var(--pst-icon-external-link);font-size:.75em;margin-left:.3em}.bd-navbar-elements li.nav-item i{font-size:.7rem;padding-left:2px;vertical-align:middle}.navbar-persistent--mobile{margin-left:auto}@media(min-width: 960px){.navbar-persistent--mobile{display:none}}.navbar-persistent--container{display:none}@media(min-width: 960px){.navbar-persistent--container{display:flex}}.header-article__inner{display:flex;padding:0 .5rem}.header-article__inner .header-article-item{min-height:var(--pst-header-article-height);height:var(--pst-header-article-height)}.header-article__inner .header-article-items__start,.header-article__inner .header-article-items__end{display:flex;align-items:start;gap:.5rem}.header-article__inner .header-article-items__end{margin-left:auto}.bd-sidebar-primary{display:flex;flex-direction:column;gap:1rem;max-height:calc(100vh - var(--pst-header-height));position:sticky;top:var(--pst-header-height);flex:0 0 auto;width:25%;padding:2rem 1rem 1rem 1rem;border-right:1px solid var(--pst-color-border);background-color:var(--pst-color-background);overflow-y:auto;font-size:var(--pst-sidebar-font-size-mobile)}@media(min-width: 960px){.bd-sidebar-primary{font-size:var(--pst-sidebar-font-size)}}.bd-sidebar-primary :focus-visible{border-radius:.125rem}.bd-sidebar-primary .nav-link{font-size:var(--pst-sidebar-font-size-mobile)}.bd-sidebar-primary.no-sidebar{border-right:0}@media(min-width: 960px){.bd-sidebar-primary.hide-on-wide{display:none}}.bd-sidebar-primary h1,.bd-sidebar-primary h2,.bd-sidebar-primary h3,.bd-sidebar-primary h4{color:var(--pst-color-text-base)}.bd-sidebar-primary .sidebar-primary-items__start .sidebar-primary-item,.bd-sidebar-primary .sidebar-primary-items__end .sidebar-primary-item{padding:.5rem 0}.bd-sidebar-primary .sidebar-header-items{display:flex;flex-direction:column}.bd-sidebar-primary .sidebar-header-items .sidebar-header-items__title{font-weight:var(--pst-sidebar-header-font-weight);font-size:var(--pst-sidebar-header-font-size);color:var(--pst-color-text-base);margin-bottom:.5rem}.bd-sidebar-primary .sidebar-header-items .nav-item.dropdown button{display:none}.bd-sidebar-primary .sidebar-header-items .nav-item.dropdown .dropdown-menu{display:flex;flex-direction:column;padding:0;margin:0;border:none;background-color:inherit;font-size:inherit}.bd-sidebar-primary .sidebar-header-items .nav-item.dropdown .dropdown-menu .dropdown-item:hover,.bd-sidebar-primary .sidebar-header-items .nav-item.dropdown .dropdown-menu .dropdown-item:focus{background-color:unset}.bd-sidebar-primary .sidebar-header-items .bd-navbar-elements .nav-link:focus-visible{box-shadow:none;outline:var(--pst-color-accent) solid .1875rem;outline-offset:.1875rem}.bd-sidebar-primary .sidebar-header-items .sidebar-header-items__center{display:flex;flex-direction:column}.bd-sidebar-primary .sidebar-header-items .sidebar-header-items__end{display:flex;align-items:center;gap:1rem}@media(min-width: 960px){.bd-sidebar-primary .sidebar-header-items{display:none}}.bd-sidebar-primary .sidebar-primary-items__start{border-top:1px solid var(--pst-color-border)}@media(min-width: 960px){.bd-sidebar-primary .sidebar-primary-items__start{border-top:none}}.bd-sidebar-primary .sidebar-primary-items__end{margin-top:auto;margin-bottom:1em}.bd-sidebar-primary .list-caption{list-style:none;padding-left:0}.bd-sidebar-primary .list-caption li.toctree-l0.has-children>details>summary{position:relative;height:auto;width:auto;display:flex;justify-content:space-between;align-items:baseline}.bd-sidebar-primary .list-caption li.toctree-l0.has-children>details>summary .toctree-toggle{flex:0 0 auto}.bd-sidebar-primary .list-caption li.toctree-l0.has-children>details>summary .toctree-toggle .fa-chevron-down{font-size:1rem}.bd-sidebar-primary li.has-children{position:relative}.bd-sidebar-primary li.has-children>.reference,.bd-sidebar-primary li.has-children .caption{margin-right:calc(30px + .1875rem);padding-top:.25rem}.bd-sidebar-primary li.has-children>details>summary{list-style:none}.bd-sidebar-primary li.has-children>details>summary::-webkit-details-marker{display:none}.bd-sidebar-primary li.has-children>details>summary:focus-visible{outline:none}.bd-sidebar-primary li.has-children>details>summary:focus-visible>.toctree-toggle{outline:var(--pst-color-accent) solid .1875rem;outline-offset:-0.1875rem}.bd-sidebar-primary li.has-children>details>summary .toctree-toggle{cursor:pointer;position:absolute;top:0;right:0;width:30px;height:30px;display:inline-flex;justify-content:center;align-items:center}.bd-sidebar-primary li.has-children>details>summary .toctree-toggle .fa-chevron-down{font-size:.75rem}.bd-sidebar-primary li.has-children>details[open]>summary .fa-chevron-down{transform:rotate(180deg)}nav.bd-links{margin-right:-1rem}@media(min-width: 960px){nav.bd-links{display:block}}nav.bd-links ul{display:block;list-style:none}nav.bd-links ul ul{padding:0 0 0 1rem}nav.bd-links li>a{display:block;padding:.25rem .65rem;color:var(--pst-color-text-muted);text-decoration:none;box-shadow:none;margin-right:.1875rem}nav.bd-links li>a:hover{text-decoration:underline;background-color:rgba(0,0,0,0);color:var(--pst-color-link-hover);text-decoration-thickness:max(3px, .1875rem, .12em);text-decoration-skip-ink:none}nav.bd-links li>a:active{color:var(--pst-color-link-hover)}nav.bd-links li>a:focus-visible{box-shadow:0 0 0 .1875rem var(--pst-color-accent);outline:none;z-index:10}nav.bd-links li>a.reference.external::after{font:var(--fa-font-solid);content:var(--pst-icon-external-link);font-size:.75em;margin-left:.3em}nav.bd-links .current>a{font-weight:600;color:var(--pst-color-primary);box-shadow:inset max(3px, .1875rem, .12em) 0 0 var(--pst-color-primary);background-color:rgba(0,0,0,0)}nav.bd-links .current>a:focus-visible{box-shadow:inset max(3px, .1875rem, .12em) 0 0 var(--pst-color-primary),0 0 0 .1875rem var(--pst-color-accent);outline:none}nav.bd-links p.bd-links__title{font-size:var(--pst-sidebar-header-font-size);font-weight:var(--pst-sidebar-header-font-weight);margin-bottom:.5rem}nav.bd-links p.caption{font-weight:var(--pst-sidebar-header-font-weight);position:relative;margin-top:1.25rem;margin-bottom:.5rem;color:var(--pst-color-text-base);font-size:var(--pst-sidebar-font-size-mobile)}nav.bd-links p.caption:first-child{margin-top:0}@media(min-width: 960px){nav.bd-links p.caption{font-size:var(--pst-sidebar-font-size)}}.bd-sidebar-secondary{display:flex;order:2;flex-shrink:0;flex-direction:column;position:sticky;top:var(--pst-header-height);max-height:calc(100vh - var(--pst-header-height));padding:2rem 1rem 1rem;width:var(--pst-sidebar-secondary);font-size:var(--pst-sidebar-font-size-mobile);background-color:var(--pst-color-background);overflow-y:auto}@media(min-width: 1200px){.bd-sidebar-secondary{font-size:var(--pst-sidebar-font-size)}}.sidebar-secondary-item{padding:.5rem}@media(min-width: 1200px){.sidebar-secondary-item{border-left:1px solid var(--pst-color-border);padding-left:1rem}}.sidebar-secondary-item i{padding-right:.5rem}input.sidebar-toggle{display:none}label.overlay{background-color:#000;opacity:.5;height:0;width:0;position:fixed;top:0;left:0;transition:opacity 200ms ease-out;z-index:1050}input#pst-primary-sidebar-checkbox:checked+label.overlay.overlay-primary,input#pst-secondary-sidebar-checkbox:checked+label.overlay.overlay-secondary{height:100vh;width:100vw}input#pst-primary-sidebar-checkbox:checked~.bd-container .bd-sidebar-primary{visibility:visible;margin-left:0}input#pst-secondary-sidebar-checkbox:checked~.bd-container .bd-sidebar-secondary{visibility:visible;margin-right:0}@media(min-width: 960px){.sidebar-toggle.primary-toggle{display:none}input#pst-primary-sidebar-checkbox:checked+label.overlay.overlay-primary{height:0;width:0}.bd-sidebar-primary{margin-left:0;visibility:visible}}@media(max-width: 959.98px){.bd-sidebar-primary{position:fixed;top:0;z-index:1055;height:100vh;max-height:100vh;width:75%;flex-grow:.75;max-width:350px;transition:visibility 200ms ease-out,margin 200ms ease-out;visibility:hidden;margin-left:-75%;left:0}}@media(max-width: 1199.98px){.bd-sidebar-secondary{position:fixed;top:0;z-index:1055;height:100vh;max-height:100vh;width:75%;flex-grow:.75;max-width:350px;transition:visibility 200ms ease-out,margin 200ms ease-out;visibility:hidden;margin-right:-75%;right:0}}ul.bd-breadcrumbs{list-style:none;padding-left:0;display:flex;flex-wrap:wrap;font-size:.8rem}ul.bd-breadcrumbs li.breadcrumb-item{display:flex;align-items:center;font-weight:bold}ul.bd-breadcrumbs li.breadcrumb-item a{color:var(--pst-color-text-muted);text-decoration:none}ul.bd-breadcrumbs li.breadcrumb-item a:hover{color:var(--pst-color-link-hover);text-decoration:underline;text-decoration-thickness:max(1px, .0625rem);text-underline-offset:.1578em;text-decoration-thickness:max(3px, .1875rem, .12em);text-decoration-skip-ink:none}ul.bd-breadcrumbs li.breadcrumb-item:not(.breadcrumb-home)::before{font:var(--fa-font-solid);font-size:.8rem;content:var(--pst-breadcrumb-divider);color:var(--pst-color-text-muted);padding:0 .5rem}html .pst-navbar-icon{box-sizing:border-box;min-width:24px;min-height:24px;color:var(--pst-color-text-muted);position:relative;display:flex;align-items:center;justify-content:center;border-radius:0;border:none;font-size:1rem;line-height:1.65;padding:.25rem 0;height:2.15rem}html .pst-navbar-icon::before{content:\"\";display:block;position:absolute;inset:0;background-color:rgba(0,0,0,0);bottom:calc(-1*max(3px, .1875rem, .12em));margin:max(3px, .1875rem, .12em) 0}html .pst-navbar-icon:hover{color:var(--pst-color-secondary);text-decoration:none}html .pst-navbar-icon:hover::before{border-bottom:max(3px, .1875rem, .12em) solid var(--pst-color-secondary)}html .pst-navbar-icon:focus-visible{box-shadow:none;outline:3px solid var(--pst-color-accent);outline-offset:3px}ul.navbar-icon-links{display:flex;flex-flow:row wrap;column-gap:1rem;justify-content:space-evenly;align-items:center;padding-left:0;margin-bottom:0;list-style:none}ul.navbar-icon-links i.fa-brands,ul.navbar-icon-links i.fa-regular,ul.navbar-icon-links i.fa-solid{vertical-align:middle;font-style:normal;font-size:var(--pst-font-size-icon)}ul.navbar-icon-links i.fa-square-twitter::before{color:#55acee}ul.navbar-icon-links i.fa-square-gitlab::before{color:#548}ul.navbar-icon-links i.fa-bitbucket::before{color:#0052cc}ul.navbar-icon-links img.icon-link-image{height:1.5em;border-radius:.2rem}ul.navbar-icon-links .fa-pydata{stroke:var(--pst-color-background);stroke-linejoin:round;stroke-width:.35}.navbar-brand{position:relative;height:var(--pst-header-height);max-height:var(--pst-header-height);padding:.5rem 0;width:auto;margin:0;display:flex;flex-shrink:0;align-items:center;gap:.5rem}.navbar-brand p{color:var(--pst-color-text-base);margin-bottom:0}.navbar-brand img{max-width:100%;height:100%;width:auto}.navbar-brand:hover,.navbar-brand:visited:hover{text-decoration:underline;text-decoration-thickness:max(1px, .0625rem);text-underline-offset:.1578em;text-decoration-thickness:max(3px, .1875rem, .12em);text-decoration-skip-ink:none;color:var(--pst-color-link-hover);color:var(--pst-color-text-base)}ul.navbar-nav ul{padding:0 0 0 1rem}ul.navbar-nav li{display:flex;flex-direction:column}ul.navbar-nav li a{display:flex;align-items:center;height:100%;padding-top:.25rem;padding-bottom:.25rem;color:var(--pst-color-text-muted);text-decoration:none}ul.navbar-nav li a:hover{color:var(--pst-color-link-hover);text-decoration:underline;text-decoration-thickness:max(1px, .0625rem);text-underline-offset:.1578em;text-decoration-thickness:max(3px, .1875rem, .12em);text-decoration-skip-ink:none}.page-toc .section-nav{padding-left:0;border-bottom:none}.page-toc .section-nav ul{padding-left:1rem}.page-toc .nav-link{font-size:var(--pst-sidebar-font-size-mobile)}@media(min-width: 1200px){.page-toc .nav-link{font-size:var(--pst-sidebar-font-size)}}.page-toc .onthispage{color:var(--pst-color-text-base);font-weight:var(--pst-sidebar-header-font-weight);margin-bottom:.5rem}.prev-next-area{width:100%}.prev-next-area p{color:var(--pst-color-text-muted);margin:0 .3em;line-height:1.3em}.prev-next-area i{font-size:1.2em}.prev-next-area a{display:flex;align-items:center;border:none;padding:10px;max-width:45%;overflow-x:hidden;color:var(--pst-color-text-muted);text-decoration:none}.prev-next-area a p.prev-next-title{word-wrap:break-word;color:var(--pst-color-link);text-decoration:underline;text-decoration-thickness:max(1px, .0625rem);text-underline-offset:.1578em;font-weight:var(--pst-admonition-font-weight-heading);font-size:1.1em}.prev-next-area a p.prev-next-title:hover{color:var(--pst-color-link-hover);text-decoration-thickness:max(3px, .1875rem, .12em);text-decoration-skip-ink:none}.prev-next-area a p.prev-next-title:active{color:var(--pst-color-link)}.prev-next-area a p.prev-next-title:visited{color:var(--pst-color-link)}.prev-next-area a p.prev-next-title:visited:hover{color:var(--pst-color-link-hover)}.prev-next-area a:hover p.prev-next-title,.prev-next-area a:visited:hover p.prev-next-title{text-decoration:underline;text-decoration-thickness:max(1px, .0625rem);text-underline-offset:.1578em;text-decoration-thickness:max(3px, .1875rem, .12em);text-decoration-skip-ink:none;color:var(--pst-color-link-hover)}.prev-next-area a .prev-next-info{flex-direction:column;margin:0 .5em}.prev-next-area a .prev-next-info .prev-next-subtitle{text-transform:capitalize}.prev-next-area a.left-prev{float:left}.prev-next-area a.right-next{float:right}.prev-next-area a.right-next div.prev-next-info{text-align:right}.bd-search{position:relative;padding-left:.5rem;gap:.5rem;background-color:var(--pst-color-background);border-radius:.25rem;border:1px solid var(--pst-color-border);color:var(--pst-color-text-base)}.bd-search:active{background-color:var(--pst-color-background);color:var(--pst-color-text-muted)}.bd-search .icon{position:absolute;color:var(--pst-color-border);left:25px}.bd-search .fa-solid.fa-magnifying-glass{position:absolute;left:calc((2.5rem - .7em)/2);color:var(--pst-color-text-muted)}.bd-search input::placeholder{color:var(--pst-color-text-muted)}.bd-search input::-webkit-search-cancel-button,.bd-search input::-webkit-search-decoration{appearance:none}.bd-search .search-button__kbd-shortcut{display:flex;position:absolute;right:.5rem;color:var(--pst-color-border)}.form-control{background-color:var(--pst-color-background);color:var(--pst-color-text-base)}.form-control:focus,.form-control:focus-visible{border:none;background-color:var(--pst-color-background);color:var(--pst-color-text-muted)}.search-button i{font-size:1.3rem}.search-button__search-container,.search-button__overlay{display:none}.search-button__wrapper.show .search-button__search-container{display:flex;position:fixed;z-index:1055;top:30%;left:50%;transform:translate(-50%, -50%);right:1rem;margin-top:.5rem;width:90%;max-width:800px}.search-button__wrapper.show .search-button__overlay{display:flex;position:fixed;z-index:1050;background-color:#000;opacity:.5;width:100%;height:100%;top:0;left:0}.search-button__wrapper.show form.bd-search{flex-grow:1;padding-top:0;padding-bottom:0}.search-button__wrapper.show svg,.search-button__wrapper.show input{font-size:var(--pst-font-size-icon)}.search-button-field{display:inline-flex;align-items:center;border:var(--pst-color-border) solid 1px;border-radius:1.5em;color:var(--pst-color-text-muted);padding:.5em;background-color:var(--pst-color-surface)}.search-button-field:hover{box-shadow:0 0 0 .1875rem var(--pst-color-link-hover)}.search-button-field:focus-visible{border-radius:1.5em}.search-button-field .search-button__default-text{font-size:var(--bs-nav-link-font-size);font-weight:var(--bs-nav-link-font-weight);margin-right:.5em;margin-left:.5em}.search-button-field .kbd-shortcut__modifier{font-size:.75em}.search-button-field>*{align-items:center}.search-button-field>:not(svg){display:none}@media(min-width: 960px){.search-button-field>:not(svg){display:flex}}div#searchbox p.highlight-link{margin:1rem 0;width:fit-content;box-shadow:0 .2rem .5rem var(--pst-color-shadow),0 0 .0625rem var(--pst-color-shadow) !important}@media(min-width: 1200px){div#searchbox p.highlight-link{margin-left:2rem}}div#searchbox p.highlight-link a{border-radius:.25rem;font-size:1.25rem;padding:.75rem;background-color:var(--pst-color-primary);color:var(--pst-color-primary-text);text-decoration:none;transition:box-shadow .25s ease-out}div#searchbox p.highlight-link a:hover{box-shadow:inset 0 0 50px 50px rgba(0,0,0,.25)}div#searchbox p.highlight-link a::before{content:var(--pst-icon-search-minus);color:unset;font:var(--fa-font-solid);margin-right:.5rem}.theme-switch-button .theme-switch{display:none}.theme-switch-button .theme-switch:active{text-decoration:none;color:var(--pst-color-link-hover)}.theme-switch-button .theme-switch .fa-lg{aspect-ratio:1/1}html[data-mode=auto] .theme-switch-button .theme-switch[data-mode=auto]{display:inline}html[data-mode=light] .theme-switch-button .theme-switch[data-mode=light]{display:inline}html[data-mode=dark] .theme-switch-button .theme-switch[data-mode=dark]{display:inline}button.btn.version-switcher__button{border-color:var(--pst-color-border);color:var(--pst-color-text-base);margin-bottom:1em}@media(min-width: 960px){button.btn.version-switcher__button{margin-bottom:unset}}button.btn.version-switcher__button:hover{box-shadow:0 0 0 .1875rem var(--pst-color-secondary);border-color:rgba(0,0,0,0)}button.btn.version-switcher__button:active{color:var(--pst-color-text-base);border-color:var(--pst-color-border)}button.btn.version-switcher__button:focus-visible{border-color:rgba(0,0,0,0)}.version-switcher__menu{border-color:var(--pst-color-border);border-radius:var(--bs-dropdown-border-radius)}.version-switcher__menu a.list-group-item{background-color:var(--pst-color-on-background);color:var(--pst-color-text-base);padding:.75rem 1.25rem}.version-switcher__menu a.list-group-item:not(:last-child){border-bottom:1px solid var(--pst-color-border)}.version-switcher__menu a.list-group-item:hover{text-decoration:underline;text-decoration-thickness:max(1px, .0625rem);text-underline-offset:.1578em;text-decoration-thickness:max(3px, .1875rem, .12em);text-decoration-skip-ink:none;color:var(--pst-color-link-hover);background-color:var(--pst-color-surface)}.version-switcher__menu a.list-group-item.active{font-weight:600;color:var(--pst-color-primary);box-shadow:inset max(3px, .1875rem, .12em) 0 0 var(--pst-color-primary);position:relative;z-index:1}.version-switcher__menu a.list-group-item.active:focus-visible{box-shadow:inset max(3px, .1875rem, .12em) 0 0 var(--pst-color-primary),0 0 0 .1875rem var(--pst-color-accent);outline:none}.version-switcher__menu a.list-group-item.active span::before{content:\"\";width:100%;height:100%;position:absolute;z-index:-1;left:0;top:0}.version-switcher__menu a.list-group-item:focus-visible{z-index:10}button.version-switcher__button,.version-switcher__menu{font-size:1.1em;z-index:1055;box-sizing:border-box;min-width:24px;min-height:24px}@media(min-width: 960px){button.version-switcher__button,.version-switcher__menu{font-size:unset}}nav.page-toc{margin-bottom:1rem}.bd-toc .nav .nav{display:none}.bd-toc .nav .nav.visible{display:block}.bd-toc .nav>.active>ul{display:block}.toc-entry{display:block}.toc-entry a>code{color:var(--pst-color-text-muted)}.toc-entry a.nav-link{display:block;padding:.125rem 0;padding-left:1rem;margin-left:-1rem;color:var(--pst-color-text-muted);text-decoration:none}.toc-entry a.nav-link:hover{text-decoration:underline;background-color:rgba(0,0,0,0);color:var(--pst-color-link-hover);text-decoration-thickness:max(3px, .1875rem, .12em);text-decoration-skip-ink:none}.toc-entry a.nav-link:active{color:var(--pst-color-link-hover)}.toc-entry a.nav-link:focus-visible{box-shadow:0 0 0 .1875rem var(--pst-color-accent);outline:none;z-index:10}.toc-entry a.nav-link.active{font-weight:600;color:var(--pst-color-primary);box-shadow:inset max(3px, .1875rem, .12em) 0 0 var(--pst-color-primary);background-color:rgba(0,0,0,0)}.toc-entry a.nav-link.active:focus-visible{box-shadow:inset max(3px, .1875rem, .12em) 0 0 var(--pst-color-primary),0 0 0 .1875rem var(--pst-color-accent);outline:none}.toc-entry a.nav-link.active:hover{color:var(--pst-color-link-hover)}.toc-entry a.nav-link:focus-visible{border-radius:.125rem}div.versionadded,div.versionchanged,div.deprecated{vertical-align:middle;margin:1.5625em auto;padding:0 .6rem;overflow:hidden;page-break-inside:avoid;break-inside:avoid;border-left:.2rem solid;border-color:var(--pst-color-info);border-radius:.25rem;background-color:var(--pst-color-on-background);box-shadow:0 .2rem .5rem var(--pst-color-shadow),0 0 .0625rem var(--pst-color-shadow) !important;position:relative}div.versionadded>p,div.versionchanged>p,div.deprecated>p{margin-bottom:.6rem;margin-top:.6rem}div.versionadded{border-color:var(--pst-color-success);background-color:var(--pst-color-success-bg)}div.versionchanged{border-color:var(--pst-color-warning);background-color:var(--pst-color-warning-bg)}div.deprecated{border-color:var(--pst-color-danger);background-color:var(--pst-color-danger-bg)}span.versionmodified{font-weight:600}span.versionmodified::before{margin-right:.6rem;color:var(--pst-color-info);font:var(--fa-font-solid);content:var(--pst-icon-versionmodified-default)}span.versionmodified.added::before{color:var(--pst-color-success);content:var(--pst-icon-versionmodified-added)}span.versionmodified.changed::before{color:var(--pst-color-warning);content:var(--pst-icon-versionmodified-changed)}span.versionmodified.deprecated::before{color:var(--pst-color-danger);content:var(--pst-icon-versionmodified-deprecated)}.sidebar-indices-items{display:flex;flex-direction:column;border-top:1px solid var(--pst-color-border)}@media(min-width: 960px){.sidebar-indices-items{border-top:none}}.sidebar-indices-items .sidebar-indices-items__title{font-weight:var(--pst-sidebar-header-font-weight);font-size:var(--pst-sidebar-header-font-size);color:var(--pst-color-text-base);margin-bottom:.5rem}.sidebar-indices-items ul.indices-link{margin-right:-1rem;list-style:none;padding:0}.sidebar-indices-items ul.indices-link li>a{display:block;padding:.25rem 0;color:var(--pst-color-text-muted)}.sidebar-indices-items ul.indices-link li>a:hover{color:var(--pst-color-primary);text-decoration:none;background-color:rgba(0,0,0,0)}.bd-sidebar-primary div#rtd-footer-container{position:sticky;bottom:-1rem;margin:-1rem}.bd-sidebar-primary div#rtd-footer-container .rst-versions.rst-badge{position:unset;font-size:.9em;font-family:var(--pst-font-family-base);max-width:unset}.bd-sidebar-primary div#rtd-footer-container .rst-versions.rst-badge .rst-current-version{display:flex;align-items:center;gap:.2rem;height:2.5rem;transition:background-color .2s ease-out;background-color:var(--pst-color-background);color:var(--pst-color-success);border-top:1px solid var(--pst-color-border)}.bd-sidebar-primary div#rtd-footer-container .rst-versions.rst-badge .fa.fa-book{color:var(--pst-color-text-muted);margin-right:auto}.bd-sidebar-primary div#rtd-footer-container .rst-versions.rst-badge .fa.fa-book::after{color:var(--pst-color-text-base);content:\"Read The Docs\";font-family:var(--pst-font-family-base);font-weight:var(--pst-admonition-font-weight-heading)}.bd-sidebar-primary div#rtd-footer-container .rst-versions.rst-badge .fa.fa-caret-down{color:var(--pst-color-text-muted)}.bd-sidebar-primary div#rtd-footer-container .rst-versions.rst-badge.shift-up .rst-current-version{border-bottom:1px solid var(--pst-color-border)}.bd-sidebar-primary div#rtd-footer-container .rst-other-versions{background-color:var(--pst-color-surface);color:var(--pst-color-text-base)}.bd-sidebar-primary div#rtd-footer-container .rst-other-versions dl dd a{color:var(--pst-color-text-muted)}.bd-sidebar-primary div#rtd-footer-container .rst-other-versions hr{background-color:var(--pst-color-border)}.bd-sidebar-primary div#rtd-footer-container .rst-other-versions small a{color:var(--pst-color-link)}.bd-sidebar-primary div#rtd-footer-container .rst-other-versions input{padding-left:.5rem;border:1px solid var(--pst-color-border);background-color:var(--pst-color-surface)}div.admonition,.admonition{margin:1.5625em auto;padding:0 .6rem .8rem;overflow:hidden;page-break-inside:avoid;break-inside:avoid;border-left:.2rem solid;border-color:var(--pst-color-info);border-radius:.25rem;background-color:var(--pst-color-on-background);box-shadow:0 .2rem .5rem var(--pst-color-shadow),0 0 .0625rem var(--pst-color-shadow) !important}div.admonition *:last-child,.admonition *:last-child{margin-bottom:0}div.admonition p.admonition-title~*,.admonition p.admonition-title~*{margin-left:1.4rem;margin-right:1.4rem}div.admonition>ol,div.admonition>ul,.admonition>ol,.admonition>ul{margin-left:1em}div.admonition>.admonition-title,.admonition>.admonition-title{margin:0 -0.6rem;padding:.4rem .6rem .4rem 2rem;font-weight:var(--pst-admonition-font-weight-heading);position:relative;background-color:var(--pst-color-info-bg);z-index:1}div.admonition>.admonition-title::before,.admonition>.admonition-title::before{content:\"\";width:100%;height:100%;position:absolute;left:0;top:0;z-index:-1;pointer-events:none}div.admonition>.admonition-title::after,.admonition>.admonition-title::after{position:absolute;left:.5rem;width:1rem;height:1rem;color:var(--pst-color-info);font:var(--fa-font-solid);line-height:inherit;content:var(--pst-icon-admonition-default);opacity:1}div.admonition>.admonition-title+*,.admonition>.admonition-title+*{margin-top:.4em}div.admonition.attention,.admonition.attention{border-color:var(--pst-color-attention)}div.admonition.attention>.admonition-title,.admonition.attention>.admonition-title{background-color:var(--pst-color-attention-bg)}div.admonition.attention>.admonition-title::after,.admonition.attention>.admonition-title::after{color:var(--pst-color-attention);content:var(--pst-icon-admonition-attention)}div.admonition.caution,.admonition.caution{border-color:var(--pst-color-warning)}div.admonition.caution>.admonition-title,.admonition.caution>.admonition-title{background-color:var(--pst-color-warning-bg)}div.admonition.caution>.admonition-title::after,.admonition.caution>.admonition-title::after{color:var(--pst-color-warning);content:var(--pst-icon-admonition-caution)}div.admonition.warning,.admonition.warning{border-color:var(--pst-color-warning)}div.admonition.warning>.admonition-title,.admonition.warning>.admonition-title{background-color:var(--pst-color-warning-bg)}div.admonition.warning>.admonition-title::after,.admonition.warning>.admonition-title::after{color:var(--pst-color-warning);content:var(--pst-icon-admonition-warning)}div.admonition.danger,.admonition.danger{border-color:var(--pst-color-danger)}div.admonition.danger>.admonition-title,.admonition.danger>.admonition-title{background-color:var(--pst-color-danger-bg)}div.admonition.danger>.admonition-title::after,.admonition.danger>.admonition-title::after{color:var(--pst-color-danger);content:var(--pst-icon-admonition-danger)}div.admonition.error,.admonition.error{border-color:var(--pst-color-danger)}div.admonition.error>.admonition-title,.admonition.error>.admonition-title{background-color:var(--pst-color-danger-bg)}div.admonition.error>.admonition-title::after,.admonition.error>.admonition-title::after{color:var(--pst-color-danger);content:var(--pst-icon-admonition-error)}div.admonition.hint,.admonition.hint{border-color:var(--pst-color-success)}div.admonition.hint>.admonition-title,.admonition.hint>.admonition-title{background-color:var(--pst-color-success-bg)}div.admonition.hint>.admonition-title::after,.admonition.hint>.admonition-title::after{color:var(--pst-color-success);content:var(--pst-icon-admonition-hint)}div.admonition.tip,.admonition.tip{border-color:var(--pst-color-success)}div.admonition.tip>.admonition-title,.admonition.tip>.admonition-title{background-color:var(--pst-color-success-bg)}div.admonition.tip>.admonition-title::after,.admonition.tip>.admonition-title::after{color:var(--pst-color-success);content:var(--pst-icon-admonition-tip)}div.admonition.important,.admonition.important{border-color:var(--pst-color-attention)}div.admonition.important>.admonition-title,.admonition.important>.admonition-title{background-color:var(--pst-color-attention-bg)}div.admonition.important>.admonition-title::after,.admonition.important>.admonition-title::after{color:var(--pst-color-attention);content:var(--pst-icon-admonition-important)}div.admonition.note,.admonition.note{border-color:var(--pst-color-info)}div.admonition.note>.admonition-title,.admonition.note>.admonition-title{background-color:var(--pst-color-info-bg)}div.admonition.note>.admonition-title::after,.admonition.note>.admonition-title::after{color:var(--pst-color-info);content:var(--pst-icon-admonition-note)}div.admonition.seealso,.admonition.seealso{border-color:var(--pst-color-success)}div.admonition.seealso>.admonition-title,.admonition.seealso>.admonition-title{background-color:var(--pst-color-success-bg)}div.admonition.seealso>.admonition-title::after,.admonition.seealso>.admonition-title::after{color:var(--pst-color-success);content:var(--pst-icon-admonition-seealso)}div.admonition.admonition-todo,.admonition.admonition-todo{border-color:var(--pst-color-secondary)}div.admonition.admonition-todo>.admonition-title,.admonition.admonition-todo>.admonition-title{background-color:var(--pst-color-secondary-bg)}div.admonition.admonition-todo>.admonition-title::after,.admonition.admonition-todo>.admonition-title::after{color:var(--pst-color-secondary);content:var(--pst-icon-admonition-todo)}div.admonition.sidebar,.admonition.sidebar{max-width:40%;float:right;clear:both;margin-left:.5rem;margin-top:0;border-width:0 0 0 .2rem}div.admonition.sidebar.attention,div.admonition.sidebar.important,.admonition.sidebar.attention,.admonition.sidebar.important{border-color:var(--pst-color-attention)}div.admonition.sidebar.caution,div.admonition.sidebar.warning,.admonition.sidebar.caution,.admonition.sidebar.warning{border-color:var(--pst-color-warning)}div.admonition.sidebar.danger,div.admonition.sidebar.error,.admonition.sidebar.danger,.admonition.sidebar.error{border-color:var(--pst-color-danger)}div.admonition.sidebar.hint,div.admonition.sidebar.tip,div.admonition.sidebar.seealso,.admonition.sidebar.hint,.admonition.sidebar.tip,.admonition.sidebar.seealso{border-color:var(--pst-color-success)}div.admonition.sidebar.note,div.admonition.sidebar.todo,.admonition.sidebar.note,.admonition.sidebar.todo{border-color:var(--pst-color-info)}div.admonition.sidebar p.admonition-title~*,.admonition.sidebar p.admonition-title~*{margin-left:0;margin-right:0}div.topic,div.topic.contents,nav.contents,aside.topic{display:flex;flex-direction:column;background-color:var(--pst-color-surface);border-color:var(--pst-color-border);border-radius:.25rem;padding:1rem 1.25rem;box-shadow:0 .2rem .5rem var(--pst-color-shadow),0 0 .0625rem var(--pst-color-shadow) !important}div.topic .topic-title,div.topic.contents .topic-title,nav.contents .topic-title,aside.topic .topic-title{margin:0 0 .5rem}div.topic p,div.topic.contents p,nav.contents p,aside.topic p{color:var(--pst-color-on-surface) !important}div.topic ul.simple,div.topic.contents ul.simple,nav.contents ul.simple,aside.topic ul.simple{padding-left:1rem}div.topic ul.simple ul,div.topic.contents ul.simple ul,nav.contents ul.simple ul,aside.topic ul.simple ul{padding-left:2em}aside.sidebar{border:1px solid var(--pst-color-border);background-color:var(--pst-color-surface);border-radius:.25rem;margin-left:.5rem;padding:0}aside.sidebar>*:last-child{padding-bottom:1rem}aside.sidebar p.sidebar-title{position:relative;margin-bottom:0;padding-top:.5rem;padding-bottom:.5rem;border-bottom:1px solid var(--pst-color-border);font-family:var(--pst-font-family-heading);font-weight:var(--pst-admonition-font-weight-heading)}aside.sidebar>*:not(.sidebar-title):first-child,aside.sidebar>p.sidebar-title+*{margin-top:1rem}aside.sidebar>*{padding-left:1rem;padding-right:1rem}p.rubric{display:flex;flex-direction:column}.seealso dd{margin-top:0;margin-bottom:0}table.field-list{border-collapse:separate;border-spacing:10px;margin-left:1px}table.field-list th.field-name{padding:1px 8px 1px 5px;white-space:nowrap;background-color:var(--pst-color-surface)}table.field-list td.field-body p{font-style:italic}table.field-list td.field-body p>strong{font-style:normal}table.field-list td.field-body blockquote{border-left:none;margin:0 0 .3em;padding-left:30px}.table.autosummary td:first-child{white-space:nowrap}.sig{font-family:var(--pst-font-family-monospace)}.sig-inline.c-texpr,.sig-inline.cpp-texpr{font-family:unset}.sig.c .k,.sig.c .kt,.sig.cpp .k,.sig.cpp .kt{color:var(--pst-color-text-base)}.sig.c .m,.sig.cpp .m{color:var(--pst-color-text-base)}.sig.c .s,.sig.c .sc,.sig.cpp .s,.sig.cpp .sc{color:var(--pst-color-text-base)}.sig-name{color:var(--pst-color-inline-code)}.sig-param .o,.sig-param .default_value{color:var(--pst-color-text-muted);font-weight:normal}dt:target,span.highlighted{background-color:var(--pst-color-target)}.viewcode-back{font-family:var(--pst-font-family-base)}.viewcode-block:target{border-top:1px solid var(--pst-color-border);border-bottom:1px solid var(--pst-color-border);position:relative;background-color:var(--pst-color-target)}dl>dt>a:has(.viewcode-link){float:right}dl>dt>a:has(.viewcode-link) .viewcode-link{float:none}dl[class]:not(.option-list,.field-list,.footnote,.glossary,.simple){margin-bottom:3rem}dl[class]:not(.option-list,.field-list,.footnote,.glossary,.simple) dd{margin-left:2rem}dl[class]:not(.option-list,.field-list,.footnote,.glossary,.simple) dd>dl.simple>dt{display:flex}dl[class]:not(.option-list,.field-list,.footnote,.glossary,.simple) dl.field-list{display:grid;grid-template-columns:unset}dl[class]:not(.option-list,.field-list,.footnote,.glossary,.simple) dt.field-odd,dl[class]:not(.option-list,.field-list,.footnote,.glossary,.simple) dt.field-even{margin-top:.2rem;margin-bottom:.1rem;background-color:var(--pst-color-surface)}div[class*=highlight-],div.highlight,div.literal-block-wrapper{display:flex;flex-direction:column;width:unset;border-radius:.25rem;break-inside:avoid}div.literal-block-wrapper{border:1px solid var(--pst-color-border);border-radius:.25rem}div.literal-block-wrapper div.code-block-caption{margin:0;border-bottom:1px solid var(--pst-color-border);padding:.5rem;font-size:1rem;font-weight:var(--pst-font-weight-caption)}div.literal-block-wrapper div.code-block-caption a.headerlink{font-size:inherit}div.literal-block-wrapper div[class*=highlight-]{margin:0;border-radius:0}div.literal-block-wrapper div[class*=highlight-] pre{border:none;box-shadow:none}code.literal{padding:.1rem .25rem;background-color:var(--pst-color-surface);border:1px solid var(--pst-color-border);border-radius:.25rem}a>code{color:var(--pst-color-inline-code-links)}html[data-theme=light] .highlight .nf{color:#0078a1 !important}span.linenos{opacity:.8 !important}figure>a,figure>a>img,figure>img,figure>video{display:block;margin-left:auto;margin-right:auto}figure a.headerlink{position:absolute;font-size:inherit}figure:hover a.headerlink{visibility:visible}figure figcaption{font-family:var(--pst-font-family-heading);font-weight:var(--pst-font-weight-caption);color:var(--pst-color-text-muted);margin-left:auto;margin-right:auto;margin-top:.3rem;text-align:center}figure figcaption>p:last-child{margin-bottom:0}figure figcaption p{text-align:start;display:inline-block}figure figcaption table.table{width:fit-content;margin-left:auto;margin-right:auto}dt.label>span.brackets:not(:only-child)::before{content:\"[\"}dt.label>span.brackets:not(:only-child)::after{content:\"]\"}a.footnote-reference{vertical-align:super;font-size:small}aside.footnote{margin-bottom:.5rem}aside.footnote:last-child{margin-bottom:1rem}aside.footnote span.label,aside.footnote span.backrefs{font-weight:bold}aside.footnote:target{background-color:var(--pst-color-target)}table.highlighttable td.linenos,span.linenos,div.doctest>div.highlight span.gp{user-select:none}dd{margin-top:3px;margin-bottom:10px;margin-left:30px}ol,ul{padding-inline-start:2rem}ol li>p:first-child,ul li>p:first-child{margin-bottom:.25rem;margin-top:.25rem}blockquote{padding:1em;color:var(--pst-color-text-muted);border-left:.25em solid var(--pst-color-blockquote-notch);border-radius:.25rem;position:relative;background-color:var(--pst-color-surface)}blockquote p{color:var(--pst-color-text-base)}blockquote .line-block{margin:0}blockquote p:last-child{margin-bottom:0}blockquote::before{content:\"\";width:100%;height:100%;position:absolute;left:0;top:0;z-index:-1;pointer-events:none}blockquote a{color:var(--pst-color-inline-code-links)}blockquote::before{z-index:-1}span.guilabel{border:1px solid var(--pst-color-info);font-size:80%;font-weight:700;border-radius:4px;padding:2.4px 6px;margin:auto 2px;position:relative;background-color:var(--pst-color-info-bg)}span.guilabel::before{content:\"\";width:100%;height:100%;position:absolute;left:0;top:0;z-index:-1;pointer-events:none}a.reference.download::before{content:var(--pst-icon-download);font:var(--fa-font-solid);font-size:.8em;padding:0 .25em;color:var(--pst-color-text-muted)}table{margin-left:auto;margin-right:auto}table.table-right{margin-right:0}table.table-left{margin-left:0}table caption{text-align:center;caption-side:top;color:var(--pst-color-text-muted)}th.text-left,td.text-left{text-align:left}th.text-right,td.text-right{text-align:right}th.text-center,td.text-center{text-align:center}.table{color:var(--pst-color-table);border:1px solid var(--pst-color-table-outer-border);--bs-table-bg: transparent;--bs-table-color: var( --pst-color-text-base )}.table th~th,.table th~td,.table td~th,.table td~td{border-left:1px solid var(--pst-color-table-inner-border)}.table thead tr{background-color:var(--pst-color-table-heading-bg);border-bottom:2px solid var(--pst-color-primary)}.table tbody tr:nth-child(odd){background-color:var(--pst-color-table-row-zebra-low-bg)}.table tbody tr:nth-child(even){background-color:var(--pst-color-table-row-zebra-high-bg)}.table tbody tr:hover{background-color:var(--pst-color-table-row-hover-bg)}.pst-scrollable-table-container{overflow-x:auto}.toctree-wrapper p.caption{font-size:1.5em;margin-bottom:0}.toctree-wrapper>ul{padding-left:0}.toctree-wrapper li[class^=toctree-l]{list-style:none;margin-bottom:.2em}.toctree-wrapper li[class^=toctree-l]>a{list-style:none;font-size:1.1em}.toctree-wrapper li[class^=toctree-l]>ul{list-style:none;padding-inline-start:1.5em}.toctree-wrapper .toctree-l1>a{font-size:1.3em}div.topic.contents ul.simple,nav.contents ul.simple{list-style:none;padding-left:0}span.math,div.math{align-items:center;display:flex;max-width:100%;overflow:hidden}span.math{display:inline-flex}div.math{gap:.5em;flex-direction:row-reverse}div.math span.eqno a.headerlink{position:relative;font-size:1em}div.math mjx-container{flex-grow:1;padding-bottom:.2rem;overflow:auto}div.math mjx-container mjx-assistive-mml{height:0}.ablog-sidebar-item h2,.ablog-sidebar-item h3{font-size:var(--pst-sidebar-header-font-size);margin-top:.5rem}.ablog-sidebar-item h2 a,.ablog-sidebar-item h3 a{color:var(--pst-color-text-base)}.ablog-sidebar-item ul{list-style:none;padding-left:0;overflow-y:hidden;display:flex;flex-direction:column;gap:.5em;margin-bottom:0}.ablog-sidebar-item ul.ablog-cloud{flex-flow:row wrap;gap:.5rem}.ablog-sidebar-item ul.ablog-cloud li{display:flex;align-items:center}.ablog__prev-next{font-size:1.2em;display:flex;padding:1rem 0}.ablog__prev-next>span{display:flex;max-width:45%}.ablog__prev-next>span a{display:flex;align-items:center;margin-left:auto;gap:1rem;line-height:1.5rem}.ablog__prev-next>span a i::before{color:var(--pst-color-text-base)}.ablog__prev-next span.ablog__prev i.fa-arrow-circle-left::before{content:var(--pst-icon-angle-left)}.ablog__prev-next span.ablog__spacer{display:none}.ablog__prev-next span.ablog__next{margin-left:auto;text-align:right}.ablog__prev-next span.ablog__next i.fa-arrow-circle-right::before{content:var(--pst-icon-angle-right)}.ablog__collection,.postlist{padding-left:0}.ablog__collection .ablog-post,.postlist .ablog-post{list-style:none}.ablog__collection .ablog-post .ablog-archive,.postlist .ablog-post .ablog-archive{display:flex;flex-flow:row wrap;gap:1rem;list-style:none;font-size:.75rem;padding-left:0}.ablog__collection .ablog-post .ablog-post-title,.postlist .ablog-post .ablog-post-title{margin-top:0;font-size:1.25rem}.ablog__collection .ablog-post .ablog-post-title a,.postlist .ablog-post .ablog-post-title a{font-weight:bold}.ablog__collection .ablog-post .ablog-post-expand,.postlist .ablog-post .ablog-post-expand{margin-bottom:.5rem}.docutils.container{padding-left:unset;padding-right:unset;margin-left:unset;margin-right:unset;max-width:unset;width:unset}.btn{--bs-btn-focus-box-shadow: 0 0 0 0.1875rem var(--pst-color-accent)}div.highlight button.copybtn{display:flex;align-items:center;justify-content:center;border:none;background-color:var(--pst-color-surface)}div.highlight button.copybtn:not(.success){color:var(--pst-color-muted)}div.highlight button.copybtn:hover:not(.success){color:var(--pst-color-text);background-color:var(--pst-color-shadow)}div.highlight button.copybtn.o-tooltip--left::after{color:var(--pst-color-text);background-color:var(--pst-color-surface)}div.highlight button.copybtn:focus{opacity:1}div.highlight button.copybtn:focus-visible{outline:var(--pst-color-accent) solid .1875rem}div.highlight:has(button.copybtn){min-height:2em}#ethical-ad-placement .ethical-sidebar a,#ethical-ad-placement .ethical-sidebar a:visited,#ethical-ad-placement .ethical-sidebar a:hover,#ethical-ad-placement .ethical-sidebar a:active,#ethical-ad-placement .ethical-footer a,#ethical-ad-placement .ethical-footer a:visited,#ethical-ad-placement .ethical-footer a:hover,#ethical-ad-placement .ethical-footer a:active{color:var(--pst-color-text-base)}#ethical-ad-placement .ethical-sidebar,#ethical-ad-placement .ethical-footer{background-color:var(--pst-color-background);border:1px solid var(--pst-color-border);border-radius:5px;color:var(--pst-color-text-base);font-size:14px;line-height:20px}.bd-content div.jupyter_container{border:none;background-color:unset;box-shadow:none}.bd-content div.jupyter_container div.output,.bd-content div.jupyter_container div.highlight{border-radius:.25rem}.bd-content div.jupyter_container div.highlight{background-color:var(--pst-color-surface)}.bd-content div.jupyter_container .cell_input,.bd-content div.jupyter_container .cell_output{border-radius:.25rem}.bd-content div.jupyter_container .cell_input pre,.bd-content div.jupyter_container .cell_output pre{padding:1rem}html[data-theme=dark] div.graphviz>object.inheritance{filter:brightness(0.8) invert(0.82) contrast(1.2);color-scheme:normal}.xr-wrap[hidden]{display:block !important}.jp-OutputArea-output.lm-Widget{overflow:auto}:root{--pst-teal-50: #f4fbfc;--pst-teal-100: #e9f6f8;--pst-teal-200: #d0ecf1;--pst-teal-300: #abdde6;--pst-teal-400: #3fb1c5;--pst-teal-500: #0a7d91;--pst-teal-600: #085d6c;--pst-teal-700: #064752;--pst-teal-800: #042c33;--pst-teal-900: #021b1f;--pst-violet-50: #f4eefb;--pst-violet-100: #e0c7ff;--pst-violet-200: #d5b4fd;--pst-violet-300: #b780ff;--pst-violet-400: #9c5ffd;--pst-violet-500: #8045e5;--pst-violet-600: #6432bd;--pst-violet-700: #4b258f;--pst-violet-800: #341a61;--pst-violet-900: #1e0e39;--pst-gray-50: #f9f9fa;--pst-gray-100: #f3f4f5;--pst-gray-200: #e5e7ea;--pst-gray-300: #d1d5da;--pst-gray-400: #9ca4af;--pst-gray-500: #677384;--pst-gray-600: #48566b;--pst-gray-700: #29313d;--pst-gray-800: #222832;--pst-gray-900: #14181e;--pst-pink-50: #fcf8fd;--pst-pink-100: #fcf0fa;--pst-pink-200: #f8dff5;--pst-pink-300: #f3c7ee;--pst-pink-400: #e47fd7;--pst-pink-500: #c132af;--pst-pink-600: #912583;--pst-pink-700: #6e1c64;--pst-pink-800: #46123f;--pst-pink-900: #2b0b27;--pst-foundation-white: #ffffff;--pst-foundation-black: #14181e}html:not([data-theme]){--pst-color-primary: #0a7d91;--pst-color-primary-bg: #d0ecf1;--pst-color-secondary: #8045e5;--pst-color-secondary-bg: #e0c7ff;--pst-color-accent: #c132af;--pst-color-accent-bg: #f8dff5;--pst-color-info: #276be9;--pst-color-info-bg: #dce7fc;--pst-color-warning: #f66a0a;--pst-color-warning-bg: #f8e3d0;--pst-color-success: #00843f;--pst-color-success-bg: #d6ece1;--pst-color-attention: var(--pst-color-warning);--pst-color-attention-bg: var(--pst-color-warning-bg);--pst-color-danger: #d72d47;--pst-color-danger-bg: #f9e1e4;--pst-color-text-base: #222832;--pst-color-text-muted: #48566b;--pst-color-heading-color: #fff;--pst-color-shadow: rgba(0, 0, 0, 0.1);--pst-color-border: #d1d5da;--pst-color-border-muted: rgba(23, 23, 26, 0.2);--pst-color-blockquote-notch: #677384;--pst-color-inline-code: #912583;--pst-color-inline-code-links: #085d6c;--pst-color-target: #f3cf95;--pst-color-table: #14181e;--pst-color-table-row-hover-bg: #b780ff;--pst-color-table-inner-border: #e5e7ea;--pst-color-background: #ffffff;--pst-color-on-background: #ffffff;--pst-color-surface: #f3f4f5;--pst-color-on-surface: #222832}html:not([data-theme]){--pst-color-link: var(--pst-color-primary);--pst-color-link-hover: var(--pst-color-secondary);--pst-color-table-outer-border: var(--pst-color-surface);--pst-color-table-heading-bg: var(--pst-color-surface);--pst-color-table-row-zebra-high-bg: var(--pst-color-on-background);--pst-color-table-row-zebra-low-bg: var(--pst-color-surface)}html:not([data-theme]) .only-dark,html:not([data-theme]) .only-dark~figcaption{display:none !important}html[data-theme=light]{--pst-color-primary: #0a7d91;--pst-color-primary-bg: #d0ecf1;--pst-color-secondary: #8045e5;--pst-color-secondary-bg: #e0c7ff;--pst-color-accent: #c132af;--pst-color-accent-bg: #f8dff5;--pst-color-info: #276be9;--pst-color-info-bg: #dce7fc;--pst-color-warning: #f66a0a;--pst-color-warning-bg: #f8e3d0;--pst-color-success: #00843f;--pst-color-success-bg: #d6ece1;--pst-color-attention: var(--pst-color-warning);--pst-color-attention-bg: var(--pst-color-warning-bg);--pst-color-danger: #d72d47;--pst-color-danger-bg: #f9e1e4;--pst-color-text-base: #222832;--pst-color-text-muted: #48566b;--pst-color-heading-color: #fff;--pst-color-shadow: rgba(0, 0, 0, 0.1);--pst-color-border: #d1d5da;--pst-color-border-muted: rgba(23, 23, 26, 0.2);--pst-color-blockquote-notch: #677384;--pst-color-inline-code: #912583;--pst-color-inline-code-links: #085d6c;--pst-color-target: #f3cf95;--pst-color-table: #14181e;--pst-color-table-row-hover-bg: #b780ff;--pst-color-table-inner-border: #e5e7ea;--pst-color-background: #ffffff;--pst-color-on-background: #ffffff;--pst-color-surface: #f3f4f5;--pst-color-on-surface: #222832;color-scheme:light}html[data-theme=light]{--pst-color-link: var(--pst-color-primary);--pst-color-link-hover: var(--pst-color-secondary);--pst-color-table-outer-border: var(--pst-color-surface);--pst-color-table-heading-bg: var(--pst-color-surface);--pst-color-table-row-zebra-high-bg: var(--pst-color-on-background);--pst-color-table-row-zebra-low-bg: var(--pst-color-surface)}html[data-theme=light] .only-dark,html[data-theme=light] .only-dark~figcaption{display:none !important}html[data-theme=dark]{--pst-color-primary: #3fb1c5;--pst-color-primary-bg: #042c33;--pst-color-secondary: #9c5ffd;--pst-color-secondary-bg: #341a61;--pst-color-accent: #e47fd7;--pst-color-accent-bg: #46123f;--pst-color-info: #79a3f2;--pst-color-info-bg: #06245d;--pst-color-warning: #ff9245;--pst-color-warning-bg: #652a02;--pst-color-success: #5fb488;--pst-color-success-bg: #002f17;--pst-color-attention: var(--pst-color-warning);--pst-color-attention-bg: var(--pst-color-warning-bg);--pst-color-danger: #e78894;--pst-color-danger-bg: #4e111b;--pst-color-text-base: #ced6dd;--pst-color-text-muted: #9ca4af;--pst-color-heading-color: #14181e;--pst-color-shadow: rgba(0, 0, 0, 0.2);--pst-color-border: #48566b;--pst-color-border-muted: #29313d;--pst-color-blockquote-notch: #9ca4af;--pst-color-inline-code: #f3c7ee;--pst-color-inline-code-links: #3fb1c5;--pst-color-target: #675c04;--pst-color-table: #ffffff;--pst-color-table-row-hover-bg: #6432bd;--pst-color-table-inner-border: #364150;--pst-color-background: #14181e;--pst-color-on-background: #222832;--pst-color-surface: #29313d;--pst-color-on-surface: #f3f4f5;color-scheme:dark}html[data-theme=dark]{--pst-color-link: var(--pst-color-primary);--pst-color-link-hover: var(--pst-color-secondary);--pst-color-table-outer-border: var(--pst-color-surface);--pst-color-table-heading-bg: var(--pst-color-surface);--pst-color-table-row-zebra-high-bg: var(--pst-color-on-background);--pst-color-table-row-zebra-low-bg: var(--pst-color-surface)}html[data-theme=dark] .only-light,html[data-theme=dark] .only-light~figcaption{display:none !important}html[data-theme=dark] img:not(.only-dark,.dark-light){filter:brightness(0.8) contrast(1.2)}html[data-theme=dark] .bd-content img:not(.only-dark,.dark-light){background-color:#fff;border-radius:.25rem}html[data-theme=dark] .MathJax_SVG *{fill:var(--pst-color-text-base)}.pst-color-primary{color:var(--pst-color-primary)}.pst-color-secondary{color:var(--pst-color-secondary)}.pst-color-accent{color:var(--pst-color-accent)}.pst-color-info{color:var(--pst-color-info)}.pst-color-warning{color:var(--pst-color-warning)}.pst-color-success{color:var(--pst-color-success)}.pst-color-attention{color:var(--pst-color-attention)}.pst-color-danger{color:var(--pst-color-danger)}.pst-color-text-base{color:var(--pst-color-text-base)}.pst-color-text-muted{color:var(--pst-color-text-muted)}.pst-color-heading-color{color:var(--pst-color-heading-color)}.pst-color-shadow{color:var(--pst-color-shadow)}.pst-color-border{color:var(--pst-color-border)}.pst-color-border-muted{color:var(--pst-color-border-muted)}.pst-color-blockquote-notch{color:var(--pst-color-blockquote-notch)}.pst-color-inline-code{color:var(--pst-color-inline-code)}.pst-color-inline-code-links{color:var(--pst-color-inline-code-links)}.pst-color-target{color:var(--pst-color-target)}.pst-color-table{color:var(--pst-color-table)}.pst-color-table-row-hover{color:var(--pst-color-table-row-hover)}.pst-color-table-inner-border{color:var(--pst-color-table-inner-border)}.pst-color-background{color:var(--pst-color-background)}.pst-color-on-background{color:var(--pst-color-on-background)}.pst-color-surface{color:var(--pst-color-surface)}.pst-color-on-surface{color:var(--pst-color-on-surface)}html[data-theme=light]{--pst-color-primary: rgb(10, 125, 145);--pst-color-primary-text: #fff;--pst-color-primary-highlight: #053f49;--sd-color-primary: var(--pst-color-primary);--sd-color-primary-text: var(--pst-color-primary-text);--sd-color-primary-highlight: var(--pst-color-primary-highlight);--sd-color-primary-bg: #d0ecf1;--sd-color-primary-bg-text: #14181e;--pst-color-secondary: rgb(128, 69, 229);--pst-color-secondary-text: #fff;--pst-color-secondary-highlight: #591bc2;--sd-color-secondary: var(--pst-color-secondary);--sd-color-secondary-text: var(--pst-color-secondary-text);--sd-color-secondary-highlight: var(--pst-color-secondary-highlight);--sd-color-secondary-bg: #e0c7ff;--sd-color-secondary-bg-text: #14181e;--pst-color-success: #00843f;--pst-color-success-text: #fff;--pst-color-success-highlight: #00381a;--sd-color-success: var(--pst-color-success);--sd-color-success-text: var(--pst-color-success-text);--sd-color-success-highlight: var(--pst-color-success-highlight);--sd-color-success-bg: #d6ece1;--sd-color-success-bg-text: #14181e;--pst-color-info: #276be9;--pst-color-info-text: #fff;--pst-color-info-highlight: #124ab1;--sd-color-info: var(--pst-color-info);--sd-color-info-text: var(--pst-color-info-text);--sd-color-info-highlight: var(--pst-color-info-highlight);--sd-color-info-bg: #dce7fc;--sd-color-info-bg-text: #14181e;--pst-color-warning: #f66a0a;--pst-color-warning-text: #14181e;--pst-color-warning-highlight: #ad4a06;--sd-color-warning: var(--pst-color-warning);--sd-color-warning-text: var(--pst-color-warning-text);--sd-color-warning-highlight: var(--pst-color-warning-highlight);--sd-color-warning-bg: #f8e3d0;--sd-color-warning-bg-text: #14181e;--pst-color-danger: #d72d47;--pst-color-danger-text: #fff;--pst-color-danger-highlight: #9a1d30;--sd-color-danger: var(--pst-color-danger);--sd-color-danger-text: var(--pst-color-danger-text);--sd-color-danger-highlight: var(--pst-color-danger-highlight);--sd-color-danger-bg: #f9e1e4;--sd-color-danger-bg-text: #14181e;--pst-color-light: #f3f4f5;--pst-color-light-text: #14181e;--pst-color-light-highlight: #c9ced2;--sd-color-light: var(--pst-color-light);--sd-color-light-text: var(--pst-color-light-text);--sd-color-light-highlight: var(--pst-color-light-highlight);--sd-color-light-bg: #f7f7f8;--sd-color-light-bg-text: #14181e;--pst-color-muted: #29313d;--pst-color-muted-text: #fff;--pst-color-muted-highlight: #0a0c0f;--sd-color-muted: var(--pst-color-muted);--sd-color-muted-text: var(--pst-color-muted-text);--sd-color-muted-highlight: var(--pst-color-muted-highlight);--sd-color-muted-bg: #5a6c86;--sd-color-muted-bg-text: #fff;--pst-color-dark: #222832;--pst-color-dark-text: #fff;--pst-color-dark-highlight: #030404;--sd-color-dark: var(--pst-color-dark);--sd-color-dark-text: var(--pst-color-dark-text);--sd-color-dark-highlight: var(--pst-color-dark-highlight);--pst-color-black: #14181e;--pst-color-black-text: #fff;--pst-color-black-highlight: black;--sd-color-black: var(--pst-color-black);--sd-color-black-text: var(--pst-color-black-text);--sd-color-black-highlight: var(--pst-color-black-highlight);--pst-color-white: #fff;--pst-color-white-text: #14181e;--pst-color-white-highlight: #d9d9d9;--sd-color-white: var(--pst-color-white);--sd-color-white-text: var(--pst-color-white-text);--sd-color-white-highlight: var(--pst-color-white-highlight)}html[data-theme=dark]{--pst-color-primary: rgb(63, 177, 197);--pst-color-primary-text: #14181e;--pst-color-primary-highlight: #2b7e8d;--sd-color-primary: var(--pst-color-primary);--sd-color-primary-text: var(--pst-color-primary-text);--sd-color-primary-highlight: var(--pst-color-primary-highlight);--sd-color-primary-bg: #042c33;--sd-color-primary-bg-text: #fff;--pst-color-secondary: rgb(156, 95, 253);--pst-color-secondary-text: #14181e;--pst-color-secondary-highlight: #6d13fc;--sd-color-secondary: var(--pst-color-secondary);--sd-color-secondary-text: var(--pst-color-secondary-text);--sd-color-secondary-highlight: var(--pst-color-secondary-highlight);--sd-color-secondary-bg: #341a61;--sd-color-secondary-bg-text: #fff;--pst-color-success: #5fb488;--pst-color-success-text: #14181e;--pst-color-success-highlight: #3f8762;--sd-color-success: var(--pst-color-success);--sd-color-success-text: var(--pst-color-success-text);--sd-color-success-highlight: var(--pst-color-success-highlight);--sd-color-success-bg: #002f17;--sd-color-success-bg-text: #fff;--pst-color-info: #79a3f2;--pst-color-info-text: #14181e;--pst-color-info-highlight: #3373eb;--sd-color-info: var(--pst-color-info);--sd-color-info-text: var(--pst-color-info-text);--sd-color-info-highlight: var(--pst-color-info-highlight);--sd-color-info-bg: #06245d;--sd-color-info-bg-text: #fff;--pst-color-warning: #ff9245;--pst-color-warning-text: #14181e;--pst-color-warning-highlight: #f86600;--sd-color-warning: var(--pst-color-warning);--sd-color-warning-text: var(--pst-color-warning-text);--sd-color-warning-highlight: var(--pst-color-warning-highlight);--sd-color-warning-bg: #652a02;--sd-color-warning-bg-text: #fff;--pst-color-danger: #e78894;--pst-color-danger-text: #14181e;--pst-color-danger-highlight: #da485b;--sd-color-danger: var(--pst-color-danger);--sd-color-danger-text: var(--pst-color-danger-text);--sd-color-danger-highlight: var(--pst-color-danger-highlight);--sd-color-danger-bg: #4e111b;--sd-color-danger-bg-text: #fff;--pst-color-light: #f3f4f5;--pst-color-light-text: #14181e;--pst-color-light-highlight: #c9ced2;--sd-color-light: var(--pst-color-light);--sd-color-light-text: var(--pst-color-light-text);--sd-color-light-highlight: var(--pst-color-light-highlight);--sd-color-light-bg: #a3abb2;--sd-color-light-bg-text: #14181e;--pst-color-muted: #f3f4f5;--pst-color-muted-text: #14181e;--pst-color-muted-highlight: #c9ced2;--sd-color-muted: var(--pst-color-muted);--sd-color-muted-text: var(--pst-color-muted-text);--sd-color-muted-highlight: var(--pst-color-muted-highlight);--sd-color-muted-bg: #1d222b;--sd-color-muted-bg-text: #fff;--pst-color-dark: #222832;--pst-color-dark-text: #fff;--pst-color-dark-highlight: #030404;--sd-color-dark: var(--pst-color-dark);--sd-color-dark-text: var(--pst-color-dark-text);--sd-color-dark-highlight: var(--pst-color-dark-highlight);--pst-color-black: #14181e;--pst-color-black-text: #fff;--pst-color-black-highlight: black;--sd-color-black: var(--pst-color-black);--sd-color-black-text: var(--pst-color-black-text);--sd-color-black-highlight: var(--pst-color-black-highlight);--pst-color-white: #fff;--pst-color-white-text: #14181e;--pst-color-white-highlight: #d9d9d9;--sd-color-white: var(--pst-color-white);--sd-color-white-text: var(--pst-color-white-text);--sd-color-white-highlight: var(--pst-color-white-highlight)}html[data-theme=light]{--sd-color-card-border: var(--pst-color-border)}html[data-theme=dark]{--sd-color-card-border: var(--pst-color-border)}html[data-theme=light] .sd-shadow-xs,html[data-theme=light] .sd-shadow-sm,html[data-theme=light] .sd-shadow-md,html[data-theme=light] .sd-shadow-lg{box-shadow:0 .2rem .5rem var(--pst-color-shadow),0 0 .0625rem var(--pst-color-shadow) !important}.bd-content .sd-card{border:1px solid var(--pst-color-border)}.bd-content .sd-card .sd-card-header{background-color:var(--pst-color-panel-background);border-bottom:1px solid var(--pst-color-border)}.bd-content .sd-card .sd-card-footer{background-color:var(--pst-color-panel-background);border-top:1px solid var(--pst-color-border)}.bd-content .sd-card .sd-card-body{background-color:var(--pst-color-panel-background)}.bd-content .sd-card .sd-stretched-link:focus-visible{outline:none}.bd-content .sd-card .sd-stretched-link:focus-visible::after{outline:var(--pst-color-accent) solid .1875rem;border-radius:.25rem}.bd-content .sd-card.sd-card-hover:hover{border-color:var(--pst-color-link-hover)}.bd-content .sd-tab-set>input:checked+label{border-style:solid solid none;border-color:var(--pst-color-primary) var(--pst-color-primary) rgba(0,0,0,0);border-width:.125rem .125rem 0;border-radius:.125rem .125rem 0 0;background-color:var(--pst-color-on-background);transform:translateY(0.125rem);color:var(--pst-color-primary)}.bd-content .sd-tab-set>input:focus-visible+label{border:.125rem solid var(--pst-color-accent);border-radius:.125rem;background-color:var(--pst-color-accent-bg);color:var(--pst-color-on-surface)}.bd-content .sd-tab-set>input:not(:checked,:focus-visible)+label:hover{border-color:rgba(0,0,0,0);color:var(--pst-color-secondary);text-decoration-line:underline;text-decoration-thickness:max(3px, .1875rem, .12em)}.bd-content .sd-tab-set>label{color:var(--pst-color-on-surface);border:.125rem solid rgba(0,0,0,0);border-radius:.125rem .125rem 0 0;background-color:var(--pst-color-surface);padding:0 .75em;margin-inline-end:.25rem;line-height:1.95}html[data-theme=dark] .bd-content .sd-tab-set>label{background-color:var(--pst-color-on-background)}.bd-content .sd-tab-set .sd-tab-content{border:.125rem solid var(--pst-color-primary);border-radius:.1875rem;box-shadow:unset;padding:.625rem;background-color:var(--pst-color-on-background)}details.sd-dropdown{border:0 !important;box-shadow:0 .2rem .5rem var(--pst-color-shadow),0 0 .0625rem var(--pst-color-shadow) !important}details.sd-dropdown summary.sd-card-header{border:0 !important;display:flex;align-items:center;position:relative;font-weight:600;padding-top:.5rem;padding-bottom:.5rem;--pst-sd-dropdown-color: var(--pst-gray-500);--pst-sd-dropdown-bg-color: var(--pst-color-surface);background-color:var(--pst-sd-dropdown-bg-color) !important;border-left:.2rem solid var(--pst-sd-dropdown-color) !important}details.sd-dropdown summary.sd-card-header+div.sd-summary-content{border:0;--pst-sd-dropdown-color: var(--sd-color-card-border)}details.sd-dropdown summary.sd-card-header.sd-bg-primary{--pst-sd-dropdown-color: var(--sd-color-primary);--pst-sd-dropdown-bg-color: var(--sd-color-primary-bg)}details.sd-dropdown summary.sd-card-header.sd-bg-primary+div.sd-summary-content{--pst-sd-dropdown-color: var(--sd-color-primary);--pst-sd-dropdown-bg-color: var(--sd-color-primary-bg)}details.sd-dropdown summary.sd-card-header.sd-bg-text-primary{color:var(--sd-color-primary-bg-text) !important}details.sd-dropdown summary.sd-card-header.sd-bg-secondary{--pst-sd-dropdown-color: var(--sd-color-secondary);--pst-sd-dropdown-bg-color: var(--sd-color-secondary-bg)}details.sd-dropdown summary.sd-card-header.sd-bg-secondary+div.sd-summary-content{--pst-sd-dropdown-color: var(--sd-color-secondary);--pst-sd-dropdown-bg-color: var(--sd-color-secondary-bg)}details.sd-dropdown summary.sd-card-header.sd-bg-text-secondary{color:var(--sd-color-secondary-bg-text) !important}details.sd-dropdown summary.sd-card-header.sd-bg-success{--pst-sd-dropdown-color: var(--sd-color-success);--pst-sd-dropdown-bg-color: var(--sd-color-success-bg)}details.sd-dropdown summary.sd-card-header.sd-bg-success+div.sd-summary-content{--pst-sd-dropdown-color: var(--sd-color-success);--pst-sd-dropdown-bg-color: var(--sd-color-success-bg)}details.sd-dropdown summary.sd-card-header.sd-bg-text-success{color:var(--sd-color-success-bg-text) !important}details.sd-dropdown summary.sd-card-header.sd-bg-info{--pst-sd-dropdown-color: var(--sd-color-info);--pst-sd-dropdown-bg-color: var(--sd-color-info-bg)}details.sd-dropdown summary.sd-card-header.sd-bg-info+div.sd-summary-content{--pst-sd-dropdown-color: var(--sd-color-info);--pst-sd-dropdown-bg-color: var(--sd-color-info-bg)}details.sd-dropdown summary.sd-card-header.sd-bg-text-info{color:var(--sd-color-info-bg-text) !important}details.sd-dropdown summary.sd-card-header.sd-bg-warning{--pst-sd-dropdown-color: var(--sd-color-warning);--pst-sd-dropdown-bg-color: var(--sd-color-warning-bg)}details.sd-dropdown summary.sd-card-header.sd-bg-warning+div.sd-summary-content{--pst-sd-dropdown-color: var(--sd-color-warning);--pst-sd-dropdown-bg-color: var(--sd-color-warning-bg)}details.sd-dropdown summary.sd-card-header.sd-bg-text-warning{color:var(--sd-color-warning-bg-text) !important}details.sd-dropdown summary.sd-card-header.sd-bg-danger{--pst-sd-dropdown-color: var(--sd-color-danger);--pst-sd-dropdown-bg-color: var(--sd-color-danger-bg)}details.sd-dropdown summary.sd-card-header.sd-bg-danger+div.sd-summary-content{--pst-sd-dropdown-color: var(--sd-color-danger);--pst-sd-dropdown-bg-color: var(--sd-color-danger-bg)}details.sd-dropdown summary.sd-card-header.sd-bg-text-danger{color:var(--sd-color-danger-bg-text) !important}details.sd-dropdown summary.sd-card-header.sd-bg-light{--pst-sd-dropdown-color: var(--sd-color-light);--pst-sd-dropdown-bg-color: var(--sd-color-light-bg)}details.sd-dropdown summary.sd-card-header.sd-bg-light+div.sd-summary-content{--pst-sd-dropdown-color: var(--sd-color-light);--pst-sd-dropdown-bg-color: var(--sd-color-light-bg)}details.sd-dropdown summary.sd-card-header.sd-bg-text-light{color:var(--sd-color-light-bg-text) !important}details.sd-dropdown summary.sd-card-header.sd-bg-muted{--pst-sd-dropdown-color: var(--sd-color-muted);--pst-sd-dropdown-bg-color: var(--sd-color-muted-bg)}details.sd-dropdown summary.sd-card-header.sd-bg-muted+div.sd-summary-content{--pst-sd-dropdown-color: var(--sd-color-muted);--pst-sd-dropdown-bg-color: var(--sd-color-muted-bg)}details.sd-dropdown summary.sd-card-header.sd-bg-text-muted{color:var(--sd-color-muted-bg-text) !important}details.sd-dropdown summary.sd-card-header.sd-bg-dark{--pst-sd-dropdown-color: var(--sd-color-dark);--pst-sd-dropdown-bg-color: var(--sd-color-dark-bg)}details.sd-dropdown summary.sd-card-header.sd-bg-dark+div.sd-summary-content{--pst-sd-dropdown-color: var(--sd-color-dark);--pst-sd-dropdown-bg-color: var(--sd-color-dark-bg)}details.sd-dropdown summary.sd-card-header.sd-bg-text-dark{color:var(--sd-color-dark-bg-text) !important}details.sd-dropdown summary.sd-card-header.sd-bg-black{--pst-sd-dropdown-color: var(--sd-color-black);--pst-sd-dropdown-bg-color: var(--sd-color-black-bg)}details.sd-dropdown summary.sd-card-header.sd-bg-black+div.sd-summary-content{--pst-sd-dropdown-color: var(--sd-color-black);--pst-sd-dropdown-bg-color: var(--sd-color-black-bg)}details.sd-dropdown summary.sd-card-header.sd-bg-text-black{color:var(--sd-color-black-bg-text) !important}details.sd-dropdown summary.sd-card-header.sd-bg-white{--pst-sd-dropdown-color: var(--sd-color-white);--pst-sd-dropdown-bg-color: var(--sd-color-white-bg)}details.sd-dropdown summary.sd-card-header.sd-bg-white+div.sd-summary-content{--pst-sd-dropdown-color: var(--sd-color-white);--pst-sd-dropdown-bg-color: var(--sd-color-white-bg)}details.sd-dropdown summary.sd-card-header.sd-bg-text-white{color:var(--sd-color-white-bg-text) !important}details.sd-dropdown summary.sd-card-header::before{content:\"\";width:100%;height:100%;position:absolute;left:0;top:0;z-index:-1;pointer-events:none}details.sd-dropdown summary.sd-card-header+div.sd-summary-content{border-left:.2rem solid var(--pst-sd-dropdown-color) !important;border-bottom-left-radius:calc(.25rem - 1px);background-color:var(--pst-color-on-background)}details.sd-dropdown summary.sd-card-header span.sd-summary-icon{display:inline-flex;align-items:center;color:var(--pst-sd-dropdown-color) !important}details.sd-dropdown summary.sd-card-header span.sd-summary-icon svg{opacity:1}details.sd-dropdown summary.sd-card-header .sd-summary-up,details.sd-dropdown summary.sd-card-header .sd-summary-down{top:.7rem}details.sd-dropdown summary.sd-card-header:focus-visible{outline:var(--pst-color-accent) solid .1875rem;outline-offset:-0.1875rem}html .sd-btn{min-width:2.25rem;padding:.3125rem .75rem .4375rem}html .sd-btn:hover{text-decoration:underline;text-decoration-thickness:max(1px, .0625rem);text-underline-offset:.1578em;text-decoration-thickness:max(3px, .1875rem, .12em);text-decoration-skip-ink:none;color:var(--pst-color-link-hover);text-decoration-thickness:1px}html .sd-btn-primary:focus-visible,html .sd-btn-outline-primary:focus-visible{background-color:var(--sd-color-primary) !important;border-color:var(--sd-color-primary) !important;outline:var(--sd-color-primary) solid .1875rem;outline-offset:.1875rem}html .sd-btn-secondary:focus-visible,html .sd-btn-outline-secondary:focus-visible{background-color:var(--sd-color-secondary) !important;border-color:var(--sd-color-secondary) !important;outline:var(--sd-color-secondary) solid .1875rem;outline-offset:.1875rem}html .sd-btn-success:focus-visible,html .sd-btn-outline-success:focus-visible{background-color:var(--sd-color-success) !important;border-color:var(--sd-color-success) !important;outline:var(--sd-color-success) solid .1875rem;outline-offset:.1875rem}html .sd-btn-info:focus-visible,html .sd-btn-outline-info:focus-visible{background-color:var(--sd-color-info) !important;border-color:var(--sd-color-info) !important;outline:var(--sd-color-info) solid .1875rem;outline-offset:.1875rem}html .sd-btn-warning:focus-visible,html .sd-btn-outline-warning:focus-visible{background-color:var(--sd-color-warning) !important;border-color:var(--sd-color-warning) !important;outline:var(--sd-color-warning) solid .1875rem;outline-offset:.1875rem}html .sd-btn-danger:focus-visible,html .sd-btn-outline-danger:focus-visible{background-color:var(--sd-color-danger) !important;border-color:var(--sd-color-danger) !important;outline:var(--sd-color-danger) solid .1875rem;outline-offset:.1875rem}html .sd-btn-light:focus-visible,html .sd-btn-outline-light:focus-visible{background-color:var(--sd-color-light) !important;border-color:var(--sd-color-light) !important;outline:var(--sd-color-light) solid .1875rem;outline-offset:.1875rem}html .sd-btn-muted:focus-visible,html .sd-btn-outline-muted:focus-visible{background-color:var(--sd-color-muted) !important;border-color:var(--sd-color-muted) !important;outline:var(--sd-color-muted) solid .1875rem;outline-offset:.1875rem}html .sd-btn-dark:focus-visible,html .sd-btn-outline-dark:focus-visible{background-color:var(--sd-color-dark) !important;border-color:var(--sd-color-dark) !important;outline:var(--sd-color-dark) solid .1875rem;outline-offset:.1875rem}html .sd-btn-black:focus-visible,html .sd-btn-outline-black:focus-visible{background-color:var(--sd-color-black) !important;border-color:var(--sd-color-black) !important;outline:var(--sd-color-black) solid .1875rem;outline-offset:.1875rem}html .sd-btn-white:focus-visible,html .sd-btn-outline-white:focus-visible{background-color:var(--sd-color-white) !important;border-color:var(--sd-color-white) !important;outline:var(--sd-color-white) solid .1875rem;outline-offset:.1875rem}.bd-content .admonition button.toggle-button{color:inherit}.bd-content .admonition button.toggle-button.toggle-button-hidden .toggle-chevron-right{transform:rotate(90deg);transition:none}.bd-content .admonition button.toggle-button .toggle-chevron-right{transform:rotate(-90deg);transition:none}.bd-content .admonition:focus-within{overflow:visible}.bd-content .admonition:focus-within .admonition-title:focus-within::before{content:\"\";transform:translateX(-0.2rem);width:calc(100% + .2rem);height:100%;border:var(--pst-color-accent) solid .1875rem;border-radius:.1875rem}.bd-content .admonition:focus-within:not(.toggle-hidden) .admonition-title:focus-within::before{border-bottom-left-radius:0;border-bottom-right-radius:0}.bd-content details.toggle-details summary{border-left:3px solid var(--pst-color-primary)}.bd-content details.toggle-details summary .toggle-chevron-right{transform:rotate(90deg);transition:none}.bd-content details.toggle-details[open] .toggle-chevron-right{transform:rotate(-90deg);transition:none}.bd-content details.toggle-details[open] :focus-visible{border-bottom-left-radius:0;border-bottom-right-radius:0}html div.rendered_html,html .jp-RenderedHTMLCommon{margin:.1875rem}html div.rendered_html table,html .jp-RenderedHTMLCommon table{table-layout:auto}.bd-content .nboutput .output_area.rendered_html table.dataframe,.bd-content .nboutput .output_area .jp-RenderedHTMLCommon table.dataframe{color:var(--pst-color-table);border:1px solid var(--pst-color-table-outer-border)}.bd-content .nboutput .output_area.rendered_html table.dataframe th~th,.bd-content .nboutput .output_area.rendered_html table.dataframe th~td,.bd-content .nboutput .output_area.rendered_html table.dataframe td~th,.bd-content .nboutput .output_area.rendered_html table.dataframe td~td,.bd-content .nboutput .output_area .jp-RenderedHTMLCommon table.dataframe th~th,.bd-content .nboutput .output_area .jp-RenderedHTMLCommon table.dataframe th~td,.bd-content .nboutput .output_area .jp-RenderedHTMLCommon table.dataframe td~th,.bd-content .nboutput .output_area .jp-RenderedHTMLCommon table.dataframe td~td{border-left:1px solid var(--pst-color-table-inner-border)}.bd-content .nboutput .output_area.rendered_html table.dataframe thead tr,.bd-content .nboutput .output_area .jp-RenderedHTMLCommon table.dataframe thead tr{background-color:var(--pst-color-table-heading-bg);border-bottom:2px solid var(--pst-color-primary)}.bd-content .nboutput .output_area.rendered_html table.dataframe tbody tr:nth-child(odd),.bd-content .nboutput .output_area .jp-RenderedHTMLCommon table.dataframe tbody tr:nth-child(odd){background-color:var(--pst-color-table-row-zebra-low-bg)}.bd-content .nboutput .output_area.rendered_html table.dataframe tbody tr:nth-child(even),.bd-content .nboutput .output_area .jp-RenderedHTMLCommon table.dataframe tbody tr:nth-child(even){background-color:var(--pst-color-table-row-zebra-high-bg)}.bd-content .nboutput .output_area.rendered_html table.dataframe tbody tr:hover,.bd-content .nboutput .output_area .jp-RenderedHTMLCommon table.dataframe tbody tr:hover{background-color:var(--pst-color-table-row-hover-bg)}html[data-theme=dark] .bd-content .nboutput .output_area.rendered_html:not(:has(table.dataframe)),html[data-theme=dark] .bd-content .nboutput .output_area .widget-subarea{color:var(--pst-color-on-background);background-color:var(--pst-color-text-base);border-radius:.25rem;padding:.5rem}html[data-theme=dark] .bd-content .nboutput .output_area.stderr{background-color:var(--pst-color-danger)}div.nblast.container{margin-bottom:1rem}div.cell_output .output{max-width:100%;overflow-x:auto}.bd-content div.cell_output table.dataframe{color:var(--pst-color-table);border:1px solid var(--pst-color-table-outer-border)}.bd-content div.cell_output table.dataframe th~th,.bd-content div.cell_output table.dataframe th~td,.bd-content div.cell_output table.dataframe td~th,.bd-content div.cell_output table.dataframe td~td{border-left:1px solid var(--pst-color-table-inner-border)}.bd-content div.cell_output table.dataframe thead tr{background-color:var(--pst-color-table-heading-bg);border-bottom:2px solid var(--pst-color-primary)}.bd-content div.cell_output table.dataframe tbody tr:nth-child(odd){background-color:var(--pst-color-table-row-zebra-low-bg)}.bd-content div.cell_output table.dataframe tbody tr:nth-child(even){background-color:var(--pst-color-table-row-zebra-high-bg)}.bd-content div.cell_output table.dataframe tbody tr:hover{background-color:var(--pst-color-table-row-hover-bg)}html[data-theme=dark] .bd-content div.cell_output img,html[data-theme=dark] .bd-content div.cell_output .text_html:not(:has(table.dataframe)),html[data-theme=dark] .bd-content div.cell_output .widget-subarea{color:var(--pst-color-on-background);background-color:var(--pst-color-text-base);border-radius:.25rem;padding:.5rem}.bd-content div.cell_input{display:flex;flex-direction:column;justify-content:stretch}.bd-content div.cell_input,.bd-content div.output{border-radius:.25rem}.bd-content div.output table{table-layout:auto}html[data-theme=dark] .bd-content img.leaflet-tile.leaflet-tile-loaded{border-radius:0;padding:0}.bd-search-container div#search-results>h2{font-size:var(--pst-font-size-icon);margin-top:1rem}.bd-search-container div#search-results p.search-summary{color:var(--pst-color-text-muted)}.bd-search-container ul.search{margin:0;list-style:none}.bd-search-container ul.search li{background-image:none;padding:1rem 0;margin:1rem 0;border-top:1px solid var(--pst-color-text-muted)}.bd-search-container ul.search li>a{font-size:1.2em}.bd-search-container ul.search li div.context,.bd-search-container ul.search li p.context{color:var(--pst-color-text-base);margin:.5em 0 0}.bd-search-container ul.search li div.context a::before,.bd-search-container ul.search li p.context a::before{content:\"#\";padding-right:.2em;color:var(--pst-color-text-muted)}","html {\n  /*****************************************************************************\n  * Overall Layout Variables\n  */\n\n  // Header height will impact the top offset for many sections\n  // Article header is 66% of Header\n  --pst-header-height: 4rem;\n  --pst-header-article-height: calc(var(--pst-header-height) * 2 / 3);\n  --pst-sidebar-secondary: 17rem;\n}\n\n/*******************************************************************************\n* Breakpoints that trigger UI changes\n*\n* Note that media-breakpoint-down begins at the next highest level!\n* So we should choose a media-breakpoint-down one *lower* than when we want to start\n* example: media-breakpoint-up(md) and media-breakpoint-down(sm) trigger at the same time\n* ref: https://github.com/twbs/bootstrap/issues/31214\n*/\n$breakpoint-sidebar-primary: lg; // When we collapse the primary sidebar\n$breakpoint-sidebar-secondary: xl; // When we collapse the secondary sidebar\n$breakpoint-page-width: 88rem; // taken from sphinx-basic-ng, which we are ultimately going to inherit\n\n/*******************************************************************************\n* Define the animation behaviour\n*/\n$animation-time: 200ms;\n\n/*******************************************************************************\n* UI shaping and padding\n*/\n$admonition-border-radius: 0.25rem;\n\n// In this theme, some focus rings have rounded corners while others do not.\n// This variable sets the border radius for the rounded focus rings.\n$focus-ring-radius: 0.125rem; // 2px at 100% zoom and 16px base font.\n\n$navbar-link-padding-y: 0.25rem;\n","html {\n  /*****************************************************************************\n  * Font features used in this theme\n  */\n\n  // base font size - applied at body/html level\n  --pst-font-size-base: 1rem;\n\n  // heading font sizes based on bootstrap sizing\n  --pst-font-size-h1: 2.5rem;\n  --pst-font-size-h2: 2rem;\n  --pst-font-size-h3: 1.75rem;\n  --pst-font-size-h4: 1.5rem;\n  --pst-font-size-h5: 1.25rem;\n  --pst-font-size-h6: 1.1rem;\n\n  // smaller than heading font sizes\n  --pst-font-size-milli: 0.9rem;\n\n  // Sidebar styles\n  --pst-sidebar-font-size: 0.9rem;\n  --pst-sidebar-font-size-mobile: 1.1rem;\n  --pst-sidebar-header-font-size: 1.2rem;\n  --pst-sidebar-header-font-weight: 600;\n\n  // Admonition styles\n  --pst-admonition-font-weight-heading: 600;\n\n  // Font weights\n  --pst-font-weight-caption: 300;\n  --pst-font-weight-heading: 400;\n\n  // Font family\n  // These are adapted from https://systemfontstack.com/ */\n  --pst-font-family-base-system: -apple-system, \"BlinkMacSystemFont\", \"Segoe UI\",\n    \"Helvetica Neue\", \"Arial\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\",\n    \"Segoe UI Symbol\";\n  --pst-font-family-monospace-system: \"SFMono-Regular\", \"Menlo\", \"Consolas\",\n    \"Monaco\", \"Liberation Mono\", \"Lucida Console\", monospace;\n  --pst-font-family-base: var(--pst-font-family-base-system);\n  --pst-font-family-heading: var(--pst-font-family-base-system);\n  --pst-font-family-monospace: var(--pst-font-family-monospace-system);\n}\n\n$line-height-body: 1.65;\n","html {\n  /*****************************************************************************\n  * Icon\n  */\n\n  // Font size across all icons\n  --pst-font-size-icon: 1.5rem;\n\n  // Font Awesome default icons\n  --pst-icon-check-circle: \"\\f058\"; // fa-solid fa-circle-check\n  --pst-icon-info-circle: \"\\f05a\"; // fa-solid fa-circle-info\n  --pst-icon-exclamation-triangle: \"\\f071\"; // fa-solid fa-triangle-exclamation\n  --pst-icon-exclamation-circle: \"\\f06a\"; // fa-solid fa-circle-exclamation\n  --pst-icon-times-circle: \"\\f057\"; // fa-solid fa-circle-xmark\n  --pst-icon-lightbulb: \"\\f0eb\"; // fa-solid fa-lightbulb\n  --pst-icon-download: \"\\f019\"; // fa-solid fa-download\n  --pst-icon-angle-left: \"\\f104\"; // fa-solid fa-angle-left\n  --pst-icon-angle-right: \"\\f105\"; // fa-solid fa-angle-right\n  --pst-icon-external-link: \"\\f35d\"; // fa-solid fa-up-right-from-square\n  --pst-icon-search-minus: \"\\f010\"; // fa-solid fa-magnifying-glass-minus\n  --pst-icon-github: \"\\f09b\"; // fa-brands fa-github\n  --pst-icon-gitlab: \"\\f296\"; // fa-brands fa-gitlab\n  --pst-icon-share: \"\\f064\"; // fa-solid fa-share\n  --pst-icon-bell: \"\\f0f3\"; // fa-solid fa-bell\n  --pst-icon-pencil: \"\\f303\"; // fa-solid fa-pencil\n\n  // Bootstrap icons\n  --pst-breadcrumb-divider: \"\\f105\";\n}\n","html {\n  /*****************************************************************************\n  * Admonitions\n  **/\n\n  --pst-icon-admonition-default: var(--pst-icon-bell);\n  --pst-icon-admonition-note: var(--pst-icon-info-circle);\n  --pst-icon-admonition-attention: var(--pst-icon-exclamation-circle);\n  --pst-icon-admonition-caution: var(--pst-icon-exclamation-triangle);\n  --pst-icon-admonition-warning: var(--pst-icon-exclamation-triangle);\n  --pst-icon-admonition-danger: var(--pst-icon-exclamation-triangle);\n  --pst-icon-admonition-error: var(--pst-icon-times-circle);\n  --pst-icon-admonition-hint: var(--pst-icon-lightbulb);\n  --pst-icon-admonition-tip: var(--pst-icon-lightbulb);\n  --pst-icon-admonition-important: var(--pst-icon-exclamation-circle);\n  --pst-icon-admonition-seealso: var(--pst-icon-share);\n  --pst-icon-admonition-todo: var(--pst-icon-pencil);\n}\n","html {\n  /*****************************************************************************\n  * versionmodified\n  **/\n\n  --pst-icon-versionmodified-default: var(--pst-icon-exclamation-circle);\n  --pst-icon-versionmodified-added: var(--pst-icon-exclamation-circle);\n  --pst-icon-versionmodified-changed: var(--pst-icon-exclamation-circle);\n  --pst-icon-versionmodified-deprecated: var(--pst-icon-exclamation-circle);\n}\n","html {\n  font-size: var(--pst-font-size-base);\n  scroll-padding-top: calc(var(--pst-header-height) + 1rem);\n}\n\nbody {\n  background-color: var(--pst-color-background);\n  font-family: var(--pst-font-family-base);\n  font-weight: 400;\n  line-height: $line-height-body;\n  color: var(--pst-color-text-base);\n  min-height: 100vh;\n  display: flex;\n  flex-direction: column;\n\n  // hack to avoid the black background on some browser including Safari\n  &::-webkit-scrollbar-track {\n    background-color: var(--pst-color-background);\n  }\n}\n\np {\n  margin-bottom: 1.15rem;\n  font-size: 1em;\n\n  /* section header in docstring pages */\n  &.rubric {\n    border-bottom: 1px solid var(--pst-color-border);\n  }\n\n  &.centered {\n    text-align: center;\n  }\n}\n\na {\n  @include link-style-default;\n\n  // The # anchor that appears on hover over headings\n  &.headerlink {\n    color: var(--pst-color-secondary);\n    opacity: 0.7;\n    font-size: 0.8em;\n    padding: 0 4px;\n    margin-left: 0.2em;\n    text-decoration: none;\n    transition: all 0.2s ease-out;\n    user-select: none;\n\n    &:hover {\n      opacity: 1;\n    }\n  }\n\n  // set up a icon next to the shorten links from github and gitlab\n  &.github,\n  &.gitlab {\n    &::before {\n      color: var(--pst-color-text-muted);\n      font: var(--fa-font-brands);\n      margin-right: 0.25rem;\n    }\n  }\n\n  &.github::before {\n    content: var(--pst-icon-github);\n  }\n\n  &.gitlab::before {\n    content: var(--pst-icon-gitlab);\n  }\n}\n\n%heading-style {\n  margin: 2.75rem 0 1.05rem;\n  font-family: var(--pst-font-family-heading);\n  font-weight: var(--pst-font-weight-heading);\n  line-height: 1.15;\n}\n\nh1 {\n  @extend %heading-style;\n\n  margin-top: 0;\n  font-size: var(--pst-font-size-h1);\n  color: var(--pst-heading-color);\n}\n\nh2 {\n  @extend %heading-style;\n\n  font-size: var(--pst-font-size-h2);\n  color: var(--pst-heading-color);\n}\n\nh3 {\n  @extend %heading-style;\n\n  font-size: var(--pst-font-size-h3);\n  color: var(--pst-heading-color);\n}\n\nh4 {\n  @extend %heading-style;\n\n  font-size: var(--pst-font-size-h4);\n  color: var(--pst-heading-color);\n}\n\nh5 {\n  @extend %heading-style;\n\n  font-size: var(--pst-font-size-h5);\n  color: var(--pst-color-text-base);\n}\n\nh6 {\n  @extend %heading-style;\n\n  font-size: var(--pst-font-size-h6);\n  color: var(--pst-color-text-base);\n}\n\nsmall,\n.text_small {\n  font-size: var(--pst-font-size-milli);\n}\n\nhr {\n  border: 0;\n  border-top: 1px solid var(--pst-color-border);\n}\n\npre,\ncode,\nkbd,\nsamp {\n  font-family: var(--pst-font-family-monospace);\n}\n\nkbd {\n  // use theme negative\n  background-color: var(--pst-color-on-background);\n  color: var(--pst-color-text-muted);\n\n  // Compound keyboard elements will have nested kbd in them, so this prevents double lines\n  &:not(.compound) {\n    border: 1px solid var(--pst-color-border);\n    margin: 0 0.1rem;\n    padding: 0.1rem 0.4rem;\n    box-shadow: 1px 1px 1px var(--pst-color-shadow);\n  }\n}\n\ncode {\n  color: var(--pst-color-inline-code);\n}\n\npre {\n  margin: 1.5em 0;\n  padding: 1rem;\n  background-color: var(--pst-color-surface);\n  color: var(--pst-color-text-base);\n  line-height: 1.2em;\n  border: 1px solid var(--pst-color-border);\n  border-radius: $admonition-border-radius;\n\n  .linenos {\n    // minimum opacity to make the line numbers WCAG AA conformant\n    opacity: 0.8;\n    padding-right: 10px;\n  }\n}\n\n// the back to top btn\n#pst-back-to-top {\n  z-index: $zindex-tooltip;\n  position: fixed;\n  display: none;\n  top: 90vh;\n  left: 50vw;\n  transform: translate(-50%);\n  color: var(--pst-color-secondary-text);\n  background-color: var(--pst-color-secondary);\n  border: none;\n\n  .fa-arrow-up {\n    // Using margin instead of a space character prevents the space between the\n    // icon and the text from being underlined when the button is hovered.\n    margin-inline-end: 0.5em;\n  }\n\n  &:hover {\n    @include link-style-hover;\n\n    text-decoration-thickness: 1px;\n    background-color: var(--pst-violet-600);\n    color: var(--pst-color-secondary-text);\n  }\n\n  &:focus-visible {\n    box-shadow: none;\n    outline: $focus-ring-outline;\n    outline-color: var(--pst-color-secondary);\n    outline-offset: $focus-ring-width;\n  }\n}\n\n// Focus ring\n// ----------\n// Note: The Bootstrap stylesheet provides the focus ring (customized by this\n// theme via Sass variables in _bootstrap.scss) in some cases. This rule covers\n// all other cases.\n:focus-visible {\n  outline: $focus-ring-outline;\n  box-shadow: none; // override Bootstrap\n}\n","// Consistent styling for links\n// ============================\n\n@use \"sass:string\";\n\n// Define some useful variables for links styling consistency\n\n// The default thickness of the underline for links will be either:\n//  - 1px\n//  - 0.0625rem if it's thicker than 1px because the user has changed the text\n//    size in their browser\n$link-underline-thickness: string.unquote(\"max(1px, .0625rem)\") !default;\n\n// Offset of link underlines from text baseline\n// The default is 3px expressed as ems, as calculated against the default body\n// font size (on desktop).\n$link-underline-offset: 0.1578em !default;\n\n// Thickness of link underlines in hover state\n// The default for each link will be the thickest of the following:\n//  - 3px\n//  - 0.1875rem, if it's thicker than 3px because the user has changed the text\n//    size in their browser\n//  - 0.12em (relative to the link's text size)\n$link-hover-decoration-thickness: string.unquote(\n  \"max(3px, .1875rem, .12em)\"\n) !default;\n\n// Ensures links have an underline decoration by default - needed to meet\n// WCAG SC 1.4.1\n@mixin link-decoration {\n  text-decoration: underline;\n\n  @if $link-underline-thickness {\n    text-decoration-thickness: $link-underline-thickness;\n  }\n\n  @if $link-underline-offset {\n    text-underline-offset: $link-underline-offset;\n  }\n}\n\n// Ensures links have an underline decoration on hover - distinct from the\n// default behaviour\n@mixin link-decoration-hover {\n  @if $link-hover-decoration-thickness {\n    text-decoration-thickness: $link-hover-decoration-thickness;\n\n    // Disable ink skipping on underlines on hover.\n    text-decoration-skip-ink: none;\n  }\n}\n\n// Simple hover style - can be used alone or in conjunction with other mixins\n// Add the text underline and change in thickness on hover.\n// Intended for use with the `:hover` pseudo-class.\n@mixin link-style-hover {\n  @include link-decoration;\n  @include link-decoration-hover;\n\n  color: var(--pst-color-link-hover);\n}\n\n// Default link styles\n// -------------------\n// Defines: default unvisited, visited, hover, and active.\n// TODO: @trallard to improve focus styles in subsequent PR\n@mixin link-style-default {\n  // So that really long links don't spill out of their container\n  word-wrap: break-word;\n  color: var(--pst-color-link);\n\n  @include link-decoration;\n\n  &:hover {\n    color: var(--pst-color-link-hover);\n\n    @include link-decoration-hover;\n  }\n\n  // TODO: @trallard to add active styles in subsequent PR\n  &:active {\n    color: var(--pst-color-link);\n  }\n\n  // Visited should still be hoverable\n  &:visited {\n    color: var(--pst-color-link);\n\n    &:hover {\n      color: var(--pst-color-link-hover);\n    }\n  }\n}\n\n// Text link styles\n// ----------------\n// Makes links use the muted text colour and removes the underline.\n// Use this mixin for navigation bar links.\n@mixin link-style-text {\n  color: var(--pst-color-text-muted);\n  text-decoration: none;\n\n  &:hover {\n    color: var(--pst-color-link-hover);\n\n    @include link-decoration;\n    @include link-decoration-hover;\n  }\n}\n\n// Sidebar and TOC links\n// ---------------------\n// Makes links use the muted text colour and removes the underline.\n// Use this mixin for navigation the primary sidebar and table of contents.\n// Active and hover should work together rather than one overriding the other.\n@mixin link-sidebar {\n  color: var(--pst-color-text-muted);\n  text-decoration: none;\n\n  &:hover {\n    text-decoration: underline;\n    background-color: transparent;\n    color: var(--pst-color-link-hover);\n\n    @include link-decoration-hover;\n  }\n\n  // TODO: @trallard to update active styles in subsequent PR\n  &:active {\n    color: var(--pst-color-link-hover);\n  }\n\n  &:focus-visible {\n    box-shadow: $focus-ring-box-shadow;\n    outline: none;\n    z-index: 10; // keep focus ring on top (prevent the link-sidebar-current notch from lying on top of the ring)\n  }\n}\n\n// Sidebar current page link styles\n// --------------------------------\n// Adds a vertical line on the left hand side of the link to indicate that\n// it's the current page. Note this is distinct from an active state.\n// Used on the primary sidebar and the TOC.\n// We want the side box shadow to have the same thickness as the hover underline\n@mixin link-sidebar-current {\n  font-weight: 600;\n  color: var(--pst-color-primary);\n\n  @if $link-hover-decoration-thickness {\n    $notch-shadow: inset\n      $link-hover-decoration-thickness\n      0\n      0\n      var(--pst-color-primary);\n\n    box-shadow: $notch-shadow;\n\n    &:focus-visible {\n      box-shadow: $notch-shadow, $focus-ring-box-shadow;\n      outline: none;\n    }\n  }\n}\n\n// Heaver navbar text and icon links\n// ---------------------------------\n// (includes light/dark mode button)\n\n// This mixin makes it possible to show hover/underline and focus/ring styles at\n// the same time. The trick is to use:\n//    - a pseudo-element with bottom border for the hover underline\n//    - a CSS outline for the focus ring.\n\n// Normally we use box-shadow for underline and outline for focus ring. But we\n// cannot apply box-shadow and outline together on the same element because the\n// border-radius value that we use to round the outline will also round the\n// box-shadow used for the underline. We also cannot use text-underline because\n// it does not work on non-text links, nor do we want to use it on text links\n// that we want to treat as blocks, such as the header nav links because the\n// underline will wrap across two lines if the link text also wraps across two\n// lines.\n@mixin link-style-block {\n  color: var(--pst-color-text-muted);\n\n  // Set position relative so that the child ::before pseudo-element's absolute\n  // position is relative to this element.\n  position: relative;\n\n  // Set up pseudo-element used for hover underline styles\n  &::before {\n    content: \"\";\n    display: block;\n    position: absolute;\n    inset: 0;\n    background-color: transparent;\n\n    @if $link-hover-decoration-thickness {\n      bottom: calc(-1 * $link-hover-decoration-thickness);\n      margin: $link-hover-decoration-thickness 0;\n    }\n  }\n\n  &:hover {\n    color: var(--pst-color-secondary);\n    text-decoration: none; // override the link-style-hover mixin\n    &::before {\n      @if $link-hover-decoration-thickness {\n        border-bottom: $link-hover-decoration-thickness\n          solid\n          var(--pst-color-secondary);\n      }\n    }\n  }\n\n  &:focus-visible {\n    box-shadow: none; // override Bootstrap\n    outline: 3px solid var(--pst-color-accent);\n    outline-offset: 3px;\n  }\n}\n","// Variables\n//\n// Variables should follow the `$component-state-property-size` formula for\n// consistent naming. Ex: $nav-link-disabled-color and $modal-content-box-shadow-xs.\n\n// Color system\n\n// scss-docs-start gray-color-variables\n$white:    #fff !default;\n$gray-100: #f8f9fa !default;\n$gray-200: #e9ecef !default;\n$gray-300: #dee2e6 !default;\n$gray-400: #ced4da !default;\n$gray-500: #adb5bd !default;\n$gray-600: #6c757d !default;\n$gray-700: #495057 !default;\n$gray-800: #343a40 !default;\n$gray-900: #212529 !default;\n$black:    #000 !default;\n// scss-docs-end gray-color-variables\n\n// fusv-disable\n// scss-docs-start gray-colors-map\n$grays: (\n  \"100\": $gray-100,\n  \"200\": $gray-200,\n  \"300\": $gray-300,\n  \"400\": $gray-400,\n  \"500\": $gray-500,\n  \"600\": $gray-600,\n  \"700\": $gray-700,\n  \"800\": $gray-800,\n  \"900\": $gray-900\n) !default;\n// scss-docs-end gray-colors-map\n// fusv-enable\n\n// scss-docs-start color-variables\n$blue:    #0d6efd !default;\n$indigo:  #6610f2 !default;\n$purple:  #6f42c1 !default;\n$pink:    #d63384 !default;\n$red:     #dc3545 !default;\n$orange:  #fd7e14 !default;\n$yellow:  #ffc107 !default;\n$green:   #198754 !default;\n$teal:    #20c997 !default;\n$cyan:    #0dcaf0 !default;\n// scss-docs-end color-variables\n\n// scss-docs-start colors-map\n$colors: (\n  \"blue\":       $blue,\n  \"indigo\":     $indigo,\n  \"purple\":     $purple,\n  \"pink\":       $pink,\n  \"red\":        $red,\n  \"orange\":     $orange,\n  \"yellow\":     $yellow,\n  \"green\":      $green,\n  \"teal\":       $teal,\n  \"cyan\":       $cyan,\n  \"black\":      $black,\n  \"white\":      $white,\n  \"gray\":       $gray-600,\n  \"gray-dark\":  $gray-800\n) !default;\n// scss-docs-end colors-map\n\n// The contrast ratio to reach against white, to determine if color changes from \"light\" to \"dark\". Acceptable values for WCAG 2.0 are 3, 4.5 and 7.\n// See https://www.w3.org/TR/WCAG20/#visual-audio-contrast-contrast\n$min-contrast-ratio:   4.5 !default;\n\n// Customize the light and dark text colors for use in our color contrast function.\n$color-contrast-dark:      $black !default;\n$color-contrast-light:     $white !default;\n\n// fusv-disable\n$blue-100: tint-color($blue, 80%) !default;\n$blue-200: tint-color($blue, 60%) !default;\n$blue-300: tint-color($blue, 40%) !default;\n$blue-400: tint-color($blue, 20%) !default;\n$blue-500: $blue !default;\n$blue-600: shade-color($blue, 20%) !default;\n$blue-700: shade-color($blue, 40%) !default;\n$blue-800: shade-color($blue, 60%) !default;\n$blue-900: shade-color($blue, 80%) !default;\n\n$indigo-100: tint-color($indigo, 80%) !default;\n$indigo-200: tint-color($indigo, 60%) !default;\n$indigo-300: tint-color($indigo, 40%) !default;\n$indigo-400: tint-color($indigo, 20%) !default;\n$indigo-500: $indigo !default;\n$indigo-600: shade-color($indigo, 20%) !default;\n$indigo-700: shade-color($indigo, 40%) !default;\n$indigo-800: shade-color($indigo, 60%) !default;\n$indigo-900: shade-color($indigo, 80%) !default;\n\n$purple-100: tint-color($purple, 80%) !default;\n$purple-200: tint-color($purple, 60%) !default;\n$purple-300: tint-color($purple, 40%) !default;\n$purple-400: tint-color($purple, 20%) !default;\n$purple-500: $purple !default;\n$purple-600: shade-color($purple, 20%) !default;\n$purple-700: shade-color($purple, 40%) !default;\n$purple-800: shade-color($purple, 60%) !default;\n$purple-900: shade-color($purple, 80%) !default;\n\n$pink-100: tint-color($pink, 80%) !default;\n$pink-200: tint-color($pink, 60%) !default;\n$pink-300: tint-color($pink, 40%) !default;\n$pink-400: tint-color($pink, 20%) !default;\n$pink-500: $pink !default;\n$pink-600: shade-color($pink, 20%) !default;\n$pink-700: shade-color($pink, 40%) !default;\n$pink-800: shade-color($pink, 60%) !default;\n$pink-900: shade-color($pink, 80%) !default;\n\n$red-100: tint-color($red, 80%) !default;\n$red-200: tint-color($red, 60%) !default;\n$red-300: tint-color($red, 40%) !default;\n$red-400: tint-color($red, 20%) !default;\n$red-500: $red !default;\n$red-600: shade-color($red, 20%) !default;\n$red-700: shade-color($red, 40%) !default;\n$red-800: shade-color($red, 60%) !default;\n$red-900: shade-color($red, 80%) !default;\n\n$orange-100: tint-color($orange, 80%) !default;\n$orange-200: tint-color($orange, 60%) !default;\n$orange-300: tint-color($orange, 40%) !default;\n$orange-400: tint-color($orange, 20%) !default;\n$orange-500: $orange !default;\n$orange-600: shade-color($orange, 20%) !default;\n$orange-700: shade-color($orange, 40%) !default;\n$orange-800: shade-color($orange, 60%) !default;\n$orange-900: shade-color($orange, 80%) !default;\n\n$yellow-100: tint-color($yellow, 80%) !default;\n$yellow-200: tint-color($yellow, 60%) !default;\n$yellow-300: tint-color($yellow, 40%) !default;\n$yellow-400: tint-color($yellow, 20%) !default;\n$yellow-500: $yellow !default;\n$yellow-600: shade-color($yellow, 20%) !default;\n$yellow-700: shade-color($yellow, 40%) !default;\n$yellow-800: shade-color($yellow, 60%) !default;\n$yellow-900: shade-color($yellow, 80%) !default;\n\n$green-100: tint-color($green, 80%) !default;\n$green-200: tint-color($green, 60%) !default;\n$green-300: tint-color($green, 40%) !default;\n$green-400: tint-color($green, 20%) !default;\n$green-500: $green !default;\n$green-600: shade-color($green, 20%) !default;\n$green-700: shade-color($green, 40%) !default;\n$green-800: shade-color($green, 60%) !default;\n$green-900: shade-color($green, 80%) !default;\n\n$teal-100: tint-color($teal, 80%) !default;\n$teal-200: tint-color($teal, 60%) !default;\n$teal-300: tint-color($teal, 40%) !default;\n$teal-400: tint-color($teal, 20%) !default;\n$teal-500: $teal !default;\n$teal-600: shade-color($teal, 20%) !default;\n$teal-700: shade-color($teal, 40%) !default;\n$teal-800: shade-color($teal, 60%) !default;\n$teal-900: shade-color($teal, 80%) !default;\n\n$cyan-100: tint-color($cyan, 80%) !default;\n$cyan-200: tint-color($cyan, 60%) !default;\n$cyan-300: tint-color($cyan, 40%) !default;\n$cyan-400: tint-color($cyan, 20%) !default;\n$cyan-500: $cyan !default;\n$cyan-600: shade-color($cyan, 20%) !default;\n$cyan-700: shade-color($cyan, 40%) !default;\n$cyan-800: shade-color($cyan, 60%) !default;\n$cyan-900: shade-color($cyan, 80%) !default;\n\n$blues: (\n  \"blue-100\": $blue-100,\n  \"blue-200\": $blue-200,\n  \"blue-300\": $blue-300,\n  \"blue-400\": $blue-400,\n  \"blue-500\": $blue-500,\n  \"blue-600\": $blue-600,\n  \"blue-700\": $blue-700,\n  \"blue-800\": $blue-800,\n  \"blue-900\": $blue-900\n) !default;\n\n$indigos: (\n  \"indigo-100\": $indigo-100,\n  \"indigo-200\": $indigo-200,\n  \"indigo-300\": $indigo-300,\n  \"indigo-400\": $indigo-400,\n  \"indigo-500\": $indigo-500,\n  \"indigo-600\": $indigo-600,\n  \"indigo-700\": $indigo-700,\n  \"indigo-800\": $indigo-800,\n  \"indigo-900\": $indigo-900\n) !default;\n\n$purples: (\n  \"purple-100\": $purple-100,\n  \"purple-200\": $purple-200,\n  \"purple-300\": $purple-300,\n  \"purple-400\": $purple-400,\n  \"purple-500\": $purple-500,\n  \"purple-600\": $purple-600,\n  \"purple-700\": $purple-700,\n  \"purple-800\": $purple-800,\n  \"purple-900\": $purple-900\n) !default;\n\n$pinks: (\n  \"pink-100\": $pink-100,\n  \"pink-200\": $pink-200,\n  \"pink-300\": $pink-300,\n  \"pink-400\": $pink-400,\n  \"pink-500\": $pink-500,\n  \"pink-600\": $pink-600,\n  \"pink-700\": $pink-700,\n  \"pink-800\": $pink-800,\n  \"pink-900\": $pink-900\n) !default;\n\n$reds: (\n  \"red-100\": $red-100,\n  \"red-200\": $red-200,\n  \"red-300\": $red-300,\n  \"red-400\": $red-400,\n  \"red-500\": $red-500,\n  \"red-600\": $red-600,\n  \"red-700\": $red-700,\n  \"red-800\": $red-800,\n  \"red-900\": $red-900\n) !default;\n\n$oranges: (\n  \"orange-100\": $orange-100,\n  \"orange-200\": $orange-200,\n  \"orange-300\": $orange-300,\n  \"orange-400\": $orange-400,\n  \"orange-500\": $orange-500,\n  \"orange-600\": $orange-600,\n  \"orange-700\": $orange-700,\n  \"orange-800\": $orange-800,\n  \"orange-900\": $orange-900\n) !default;\n\n$yellows: (\n  \"yellow-100\": $yellow-100,\n  \"yellow-200\": $yellow-200,\n  \"yellow-300\": $yellow-300,\n  \"yellow-400\": $yellow-400,\n  \"yellow-500\": $yellow-500,\n  \"yellow-600\": $yellow-600,\n  \"yellow-700\": $yellow-700,\n  \"yellow-800\": $yellow-800,\n  \"yellow-900\": $yellow-900\n) !default;\n\n$greens: (\n  \"green-100\": $green-100,\n  \"green-200\": $green-200,\n  \"green-300\": $green-300,\n  \"green-400\": $green-400,\n  \"green-500\": $green-500,\n  \"green-600\": $green-600,\n  \"green-700\": $green-700,\n  \"green-800\": $green-800,\n  \"green-900\": $green-900\n) !default;\n\n$teals: (\n  \"teal-100\": $teal-100,\n  \"teal-200\": $teal-200,\n  \"teal-300\": $teal-300,\n  \"teal-400\": $teal-400,\n  \"teal-500\": $teal-500,\n  \"teal-600\": $teal-600,\n  \"teal-700\": $teal-700,\n  \"teal-800\": $teal-800,\n  \"teal-900\": $teal-900\n) !default;\n\n$cyans: (\n  \"cyan-100\": $cyan-100,\n  \"cyan-200\": $cyan-200,\n  \"cyan-300\": $cyan-300,\n  \"cyan-400\": $cyan-400,\n  \"cyan-500\": $cyan-500,\n  \"cyan-600\": $cyan-600,\n  \"cyan-700\": $cyan-700,\n  \"cyan-800\": $cyan-800,\n  \"cyan-900\": $cyan-900\n) !default;\n// fusv-enable\n\n// scss-docs-start theme-color-variables\n$primary:       $blue !default;\n$secondary:     $gray-600 !default;\n$success:       $green !default;\n$info:          $cyan !default;\n$warning:       $yellow !default;\n$danger:        $red !default;\n$light:         $gray-100 !default;\n$dark:          $gray-900 !default;\n// scss-docs-end theme-color-variables\n\n// scss-docs-start theme-colors-map\n$theme-colors: (\n  \"primary\":    $primary,\n  \"secondary\":  $secondary,\n  \"success\":    $success,\n  \"info\":       $info,\n  \"warning\":    $warning,\n  \"danger\":     $danger,\n  \"light\":      $light,\n  \"dark\":       $dark\n) !default;\n// scss-docs-end theme-colors-map\n\n// scss-docs-start theme-text-variables\n$primary-text-emphasis:   shade-color($primary, 60%) !default;\n$secondary-text-emphasis: shade-color($secondary, 60%) !default;\n$success-text-emphasis:   shade-color($success, 60%) !default;\n$info-text-emphasis:      shade-color($info, 60%) !default;\n$warning-text-emphasis:   shade-color($warning, 60%) !default;\n$danger-text-emphasis:    shade-color($danger, 60%) !default;\n$light-text-emphasis:     $gray-700 !default;\n$dark-text-emphasis:      $gray-700 !default;\n// scss-docs-end theme-text-variables\n\n// scss-docs-start theme-bg-subtle-variables\n$primary-bg-subtle:       tint-color($primary, 80%) !default;\n$secondary-bg-subtle:     tint-color($secondary, 80%) !default;\n$success-bg-subtle:       tint-color($success, 80%) !default;\n$info-bg-subtle:          tint-color($info, 80%) !default;\n$warning-bg-subtle:       tint-color($warning, 80%) !default;\n$danger-bg-subtle:        tint-color($danger, 80%) !default;\n$light-bg-subtle:         mix($gray-100, $white) !default;\n$dark-bg-subtle:          $gray-400 !default;\n// scss-docs-end theme-bg-subtle-variables\n\n// scss-docs-start theme-border-subtle-variables\n$primary-border-subtle:   tint-color($primary, 60%) !default;\n$secondary-border-subtle: tint-color($secondary, 60%) !default;\n$success-border-subtle:   tint-color($success, 60%) !default;\n$info-border-subtle:      tint-color($info, 60%) !default;\n$warning-border-subtle:   tint-color($warning, 60%) !default;\n$danger-border-subtle:    tint-color($danger, 60%) !default;\n$light-border-subtle:     $gray-200 !default;\n$dark-border-subtle:      $gray-500 !default;\n// scss-docs-end theme-border-subtle-variables\n\n// Characters which are escaped by the escape-svg function\n$escaped-characters: (\n  (\"<\", \"%3c\"),\n  (\">\", \"%3e\"),\n  (\"#\", \"%23\"),\n  (\"(\", \"%28\"),\n  (\")\", \"%29\"),\n) !default;\n\n// Options\n//\n// Quickly modify global styling by enabling or disabling optional features.\n\n$enable-caret:                true !default;\n$enable-rounded:              true !default;\n$enable-shadows:              false !default;\n$enable-gradients:            false !default;\n$enable-transitions:          true !default;\n$enable-reduced-motion:       true !default;\n$enable-smooth-scroll:        true !default;\n$enable-grid-classes:         true !default;\n$enable-container-classes:    true !default;\n$enable-cssgrid:              false !default;\n$enable-button-pointers:      true !default;\n$enable-rfs:                  true !default;\n$enable-validation-icons:     true !default;\n$enable-negative-margins:     false !default;\n$enable-deprecation-messages: true !default;\n$enable-important-utilities:  true !default;\n\n$enable-dark-mode:            true !default;\n$color-mode-type:             data !default; // `data` or `media-query`\n\n// Prefix for :root CSS variables\n\n$variable-prefix:             bs- !default; // Deprecated in v5.2.0 for the shorter `$prefix`\n$prefix:                      $variable-prefix !default;\n\n// Gradient\n//\n// The gradient which is added to components if `$enable-gradients` is `true`\n// This gradient is also added to elements with `.bg-gradient`\n// scss-docs-start variable-gradient\n$gradient: linear-gradient(180deg, rgba($white, .15), rgba($white, 0)) !default;\n// scss-docs-end variable-gradient\n\n// Spacing\n//\n// Control the default styling of most Bootstrap elements by modifying these\n// variables. Mostly focused on spacing.\n// You can add more entries to the $spacers map, should you need more variation.\n\n// scss-docs-start spacer-variables-maps\n$spacer: 1rem !default;\n$spacers: (\n  0: 0,\n  1: $spacer * .25,\n  2: $spacer * .5,\n  3: $spacer,\n  4: $spacer * 1.5,\n  5: $spacer * 3,\n) !default;\n// scss-docs-end spacer-variables-maps\n\n// Position\n//\n// Define the edge positioning anchors of the position utilities.\n\n// scss-docs-start position-map\n$position-values: (\n  0: 0,\n  50: 50%,\n  100: 100%\n) !default;\n// scss-docs-end position-map\n\n// Body\n//\n// Settings for the `<body>` element.\n\n$body-text-align:           null !default;\n$body-color:                $gray-900 !default;\n$body-bg:                   $white !default;\n\n$body-secondary-color:      rgba($body-color, .75) !default;\n$body-secondary-bg:         $gray-200 !default;\n\n$body-tertiary-color:       rgba($body-color, .5) !default;\n$body-tertiary-bg:          $gray-100 !default;\n\n$body-emphasis-color:       $black !default;\n\n// Links\n//\n// Style anchor elements.\n\n$link-color:                              $primary !default;\n$link-decoration:                         underline !default;\n$link-shade-percentage:                   20% !default;\n$link-hover-color:                        shift-color($link-color, $link-shade-percentage) !default;\n$link-hover-decoration:                   null !default;\n\n$stretched-link-pseudo-element:           after !default;\n$stretched-link-z-index:                  1 !default;\n\n// Icon links\n// scss-docs-start icon-link-variables\n$icon-link-gap:               .375rem !default;\n$icon-link-underline-offset:  .25em !default;\n$icon-link-icon-size:         1em !default;\n$icon-link-icon-transition:   .2s ease-in-out transform !default;\n$icon-link-icon-transform:    translate3d(.25em, 0, 0) !default;\n// scss-docs-end icon-link-variables\n\n// Paragraphs\n//\n// Style p element.\n\n$paragraph-margin-bottom:   1rem !default;\n\n\n// Grid breakpoints\n//\n// Define the minimum dimensions at which your layout will change,\n// adapting to different screen sizes, for use in media queries.\n\n// scss-docs-start grid-breakpoints\n$grid-breakpoints: (\n  xs: 0,\n  sm: 576px,\n  md: 768px,\n  lg: 992px,\n  xl: 1200px,\n  xxl: 1400px\n) !default;\n// scss-docs-end grid-breakpoints\n\n@include _assert-ascending($grid-breakpoints, \"$grid-breakpoints\");\n@include _assert-starts-at-zero($grid-breakpoints, \"$grid-breakpoints\");\n\n\n// Grid containers\n//\n// Define the maximum width of `.container` for different screen sizes.\n\n// scss-docs-start container-max-widths\n$container-max-widths: (\n  sm: 540px,\n  md: 720px,\n  lg: 960px,\n  xl: 1140px,\n  xxl: 1320px\n) !default;\n// scss-docs-end container-max-widths\n\n@include _assert-ascending($container-max-widths, \"$container-max-widths\");\n\n\n// Grid columns\n//\n// Set the number of columns and specify the width of the gutters.\n\n$grid-columns:                12 !default;\n$grid-gutter-width:           1.5rem !default;\n$grid-row-columns:            6 !default;\n\n// Container padding\n\n$container-padding-x: $grid-gutter-width !default;\n\n\n// Components\n//\n// Define common padding and border radius sizes and more.\n\n// scss-docs-start border-variables\n$border-width:                1px !default;\n$border-widths: (\n  1: 1px,\n  2: 2px,\n  3: 3px,\n  4: 4px,\n  5: 5px\n) !default;\n$border-style:                solid !default;\n$border-color:                $gray-300 !default;\n$border-color-translucent:    rgba($black, .175) !default;\n// scss-docs-end border-variables\n\n// scss-docs-start border-radius-variables\n$border-radius:               .375rem !default;\n$border-radius-sm:            .25rem !default;\n$border-radius-lg:            .5rem !default;\n$border-radius-xl:            1rem !default;\n$border-radius-xxl:           2rem !default;\n$border-radius-pill:          50rem !default;\n// scss-docs-end border-radius-variables\n// fusv-disable\n$border-radius-2xl:           $border-radius-xxl !default; // Deprecated in v5.3.0\n// fusv-enable\n\n// scss-docs-start box-shadow-variables\n$box-shadow:                  0 .5rem 1rem rgba($black, .15) !default;\n$box-shadow-sm:               0 .125rem .25rem rgba($black, .075) !default;\n$box-shadow-lg:               0 1rem 3rem rgba($black, .175) !default;\n$box-shadow-inset:            inset 0 1px 2px rgba($black, .075) !default;\n// scss-docs-end box-shadow-variables\n\n$component-active-color:      $white !default;\n$component-active-bg:         $primary !default;\n\n// scss-docs-start focus-ring-variables\n$focus-ring-width:      .25rem !default;\n$focus-ring-opacity:    .25 !default;\n$focus-ring-color:      rgba($primary, $focus-ring-opacity) !default;\n$focus-ring-blur:       0 !default;\n$focus-ring-box-shadow: 0 0 $focus-ring-blur $focus-ring-width $focus-ring-color !default;\n// scss-docs-end focus-ring-variables\n\n// scss-docs-start caret-variables\n$caret-width:                 .3em !default;\n$caret-vertical-align:        $caret-width * .85 !default;\n$caret-spacing:               $caret-width * .85 !default;\n// scss-docs-end caret-variables\n\n$transition-base:             all .2s ease-in-out !default;\n$transition-fade:             opacity .15s linear !default;\n// scss-docs-start collapse-transition\n$transition-collapse:         height .35s ease !default;\n$transition-collapse-width:   width .35s ease !default;\n// scss-docs-end collapse-transition\n\n// stylelint-disable function-disallowed-list\n// scss-docs-start aspect-ratios\n$aspect-ratios: (\n  \"1x1\": 100%,\n  \"4x3\": calc(3 / 4 * 100%),\n  \"16x9\": calc(9 / 16 * 100%),\n  \"21x9\": calc(9 / 21 * 100%)\n) !default;\n// scss-docs-end aspect-ratios\n// stylelint-enable function-disallowed-list\n\n// Typography\n//\n// Font, line-height, and color for body text, headings, and more.\n\n// scss-docs-start font-variables\n// stylelint-disable value-keyword-case\n$font-family-sans-serif:      system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", \"Liberation Sans\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\" !default;\n$font-family-monospace:       SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace !default;\n// stylelint-enable value-keyword-case\n$font-family-base:            var(--#{$prefix}font-sans-serif) !default;\n$font-family-code:            var(--#{$prefix}font-monospace) !default;\n\n// $font-size-root affects the value of `rem`, which is used for as well font sizes, paddings, and margins\n// $font-size-base affects the font size of the body text\n$font-size-root:              null !default;\n$font-size-base:              1rem !default; // Assumes the browser default, typically `16px`\n$font-size-sm:                $font-size-base * .875 !default;\n$font-size-lg:                $font-size-base * 1.25 !default;\n\n$font-weight-lighter:         lighter !default;\n$font-weight-light:           300 !default;\n$font-weight-normal:          400 !default;\n$font-weight-medium:          500 !default;\n$font-weight-semibold:        600 !default;\n$font-weight-bold:            700 !default;\n$font-weight-bolder:          bolder !default;\n\n$font-weight-base:            $font-weight-normal !default;\n\n$line-height-base:            1.5 !default;\n$line-height-sm:              1.25 !default;\n$line-height-lg:              2 !default;\n\n$h1-font-size:                $font-size-base * 2.5 !default;\n$h2-font-size:                $font-size-base * 2 !default;\n$h3-font-size:                $font-size-base * 1.75 !default;\n$h4-font-size:                $font-size-base * 1.5 !default;\n$h5-font-size:                $font-size-base * 1.25 !default;\n$h6-font-size:                $font-size-base !default;\n// scss-docs-end font-variables\n\n// scss-docs-start font-sizes\n$font-sizes: (\n  1: $h1-font-size,\n  2: $h2-font-size,\n  3: $h3-font-size,\n  4: $h4-font-size,\n  5: $h5-font-size,\n  6: $h6-font-size\n) !default;\n// scss-docs-end font-sizes\n\n// scss-docs-start headings-variables\n$headings-margin-bottom:      $spacer * .5 !default;\n$headings-font-family:        null !default;\n$headings-font-style:         null !default;\n$headings-font-weight:        500 !default;\n$headings-line-height:        1.2 !default;\n$headings-color:              inherit !default;\n// scss-docs-end headings-variables\n\n// scss-docs-start display-headings\n$display-font-sizes: (\n  1: 5rem,\n  2: 4.5rem,\n  3: 4rem,\n  4: 3.5rem,\n  5: 3rem,\n  6: 2.5rem\n) !default;\n\n$display-font-family: null !default;\n$display-font-style:  null !default;\n$display-font-weight: 300 !default;\n$display-line-height: $headings-line-height !default;\n// scss-docs-end display-headings\n\n// scss-docs-start type-variables\n$lead-font-size:              $font-size-base * 1.25 !default;\n$lead-font-weight:            300 !default;\n\n$small-font-size:             .875em !default;\n\n$sub-sup-font-size:           .75em !default;\n\n// fusv-disable\n$text-muted:                  var(--#{$prefix}secondary-color) !default; // Deprecated in 5.3.0\n// fusv-enable\n\n$initialism-font-size:        $small-font-size !default;\n\n$blockquote-margin-y:         $spacer !default;\n$blockquote-font-size:        $font-size-base * 1.25 !default;\n$blockquote-footer-color:     $gray-600 !default;\n$blockquote-footer-font-size: $small-font-size !default;\n\n$hr-margin-y:                 $spacer !default;\n$hr-color:                    inherit !default;\n\n// fusv-disable\n$hr-bg-color:                 null !default; // Deprecated in v5.2.0\n$hr-height:                   null !default; // Deprecated in v5.2.0\n// fusv-enable\n\n$hr-border-color:             null !default; // Allows for inherited colors\n$hr-border-width:             var(--#{$prefix}border-width) !default;\n$hr-opacity:                  .25 !default;\n\n// scss-docs-start vr-variables\n$vr-border-width:             var(--#{$prefix}border-width) !default;\n// scss-docs-end vr-variables\n\n$legend-margin-bottom:        .5rem !default;\n$legend-font-size:            1.5rem !default;\n$legend-font-weight:          null !default;\n\n$dt-font-weight:              $font-weight-bold !default;\n\n$list-inline-padding:         .5rem !default;\n\n$mark-padding:                .1875em !default;\n$mark-color:                  $body-color !default;\n$mark-bg:                     $yellow-100 !default;\n// scss-docs-end type-variables\n\n\n// Tables\n//\n// Customizes the `.table` component with basic values, each used across all table variations.\n\n// scss-docs-start table-variables\n$table-cell-padding-y:        .5rem !default;\n$table-cell-padding-x:        .5rem !default;\n$table-cell-padding-y-sm:     .25rem !default;\n$table-cell-padding-x-sm:     .25rem !default;\n\n$table-cell-vertical-align:   top !default;\n\n$table-color:                 var(--#{$prefix}emphasis-color) !default;\n$table-bg:                    var(--#{$prefix}body-bg) !default;\n$table-accent-bg:             transparent !default;\n\n$table-th-font-weight:        null !default;\n\n$table-striped-color:         $table-color !default;\n$table-striped-bg-factor:     .05 !default;\n$table-striped-bg:            rgba(var(--#{$prefix}emphasis-color-rgb), $table-striped-bg-factor) !default;\n\n$table-active-color:          $table-color !default;\n$table-active-bg-factor:      .1 !default;\n$table-active-bg:             rgba(var(--#{$prefix}emphasis-color-rgb), $table-active-bg-factor) !default;\n\n$table-hover-color:           $table-color !default;\n$table-hover-bg-factor:       .075 !default;\n$table-hover-bg:              rgba(var(--#{$prefix}emphasis-color-rgb), $table-hover-bg-factor) !default;\n\n$table-border-factor:         .2 !default;\n$table-border-width:          var(--#{$prefix}border-width) !default;\n$table-border-color:          var(--#{$prefix}border-color) !default;\n\n$table-striped-order:         odd !default;\n$table-striped-columns-order: even !default;\n\n$table-group-separator-color: currentcolor !default;\n\n$table-caption-color:         var(--#{$prefix}secondary-color) !default;\n\n$table-bg-scale:              -80% !default;\n// scss-docs-end table-variables\n\n// scss-docs-start table-loop\n$table-variants: (\n  \"primary\":    shift-color($primary, $table-bg-scale),\n  \"secondary\":  shift-color($secondary, $table-bg-scale),\n  \"success\":    shift-color($success, $table-bg-scale),\n  \"info\":       shift-color($info, $table-bg-scale),\n  \"warning\":    shift-color($warning, $table-bg-scale),\n  \"danger\":     shift-color($danger, $table-bg-scale),\n  \"light\":      $light,\n  \"dark\":       $dark,\n) !default;\n// scss-docs-end table-loop\n\n\n// Buttons + Forms\n//\n// Shared variables that are reassigned to `$input-` and `$btn-` specific variables.\n\n// scss-docs-start input-btn-variables\n$input-btn-padding-y:         .375rem !default;\n$input-btn-padding-x:         .75rem !default;\n$input-btn-font-family:       null !default;\n$input-btn-font-size:         $font-size-base !default;\n$input-btn-line-height:       $line-height-base !default;\n\n$input-btn-focus-width:         $focus-ring-width !default;\n$input-btn-focus-color-opacity: $focus-ring-opacity !default;\n$input-btn-focus-color:         $focus-ring-color !default;\n$input-btn-focus-blur:          $focus-ring-blur !default;\n$input-btn-focus-box-shadow:    $focus-ring-box-shadow !default;\n\n$input-btn-padding-y-sm:      .25rem !default;\n$input-btn-padding-x-sm:      .5rem !default;\n$input-btn-font-size-sm:      $font-size-sm !default;\n\n$input-btn-padding-y-lg:      .5rem !default;\n$input-btn-padding-x-lg:      1rem !default;\n$input-btn-font-size-lg:      $font-size-lg !default;\n\n$input-btn-border-width:      var(--#{$prefix}border-width) !default;\n// scss-docs-end input-btn-variables\n\n\n// Buttons\n//\n// For each of Bootstrap's buttons, define text, background, and border color.\n\n// scss-docs-start btn-variables\n$btn-color:                   var(--#{$prefix}body-color) !default;\n$btn-padding-y:               $input-btn-padding-y !default;\n$btn-padding-x:               $input-btn-padding-x !default;\n$btn-font-family:             $input-btn-font-family !default;\n$btn-font-size:               $input-btn-font-size !default;\n$btn-line-height:             $input-btn-line-height !default;\n$btn-white-space:             null !default; // Set to `nowrap` to prevent text wrapping\n\n$btn-padding-y-sm:            $input-btn-padding-y-sm !default;\n$btn-padding-x-sm:            $input-btn-padding-x-sm !default;\n$btn-font-size-sm:            $input-btn-font-size-sm !default;\n\n$btn-padding-y-lg:            $input-btn-padding-y-lg !default;\n$btn-padding-x-lg:            $input-btn-padding-x-lg !default;\n$btn-font-size-lg:            $input-btn-font-size-lg !default;\n\n$btn-border-width:            $input-btn-border-width !default;\n\n$btn-font-weight:             $font-weight-normal !default;\n$btn-box-shadow:              inset 0 1px 0 rgba($white, .15), 0 1px 1px rgba($black, .075) !default;\n$btn-focus-width:             $input-btn-focus-width !default;\n$btn-focus-box-shadow:        $input-btn-focus-box-shadow !default;\n$btn-disabled-opacity:        .65 !default;\n$btn-active-box-shadow:       inset 0 3px 5px rgba($black, .125) !default;\n\n$btn-link-color:              var(--#{$prefix}link-color) !default;\n$btn-link-hover-color:        var(--#{$prefix}link-hover-color) !default;\n$btn-link-disabled-color:     $gray-600 !default;\n$btn-link-focus-shadow-rgb:   to-rgb(mix(color-contrast($link-color), $link-color, 15%)) !default;\n\n// Allows for customizing button radius independently from global border radius\n$btn-border-radius:           var(--#{$prefix}border-radius) !default;\n$btn-border-radius-sm:        var(--#{$prefix}border-radius-sm) !default;\n$btn-border-radius-lg:        var(--#{$prefix}border-radius-lg) !default;\n\n$btn-transition:              color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n$btn-hover-bg-shade-amount:       15% !default;\n$btn-hover-bg-tint-amount:        15% !default;\n$btn-hover-border-shade-amount:   20% !default;\n$btn-hover-border-tint-amount:    10% !default;\n$btn-active-bg-shade-amount:      20% !default;\n$btn-active-bg-tint-amount:       20% !default;\n$btn-active-border-shade-amount:  25% !default;\n$btn-active-border-tint-amount:   10% !default;\n// scss-docs-end btn-variables\n\n\n// Forms\n\n// scss-docs-start form-text-variables\n$form-text-margin-top:                  .25rem !default;\n$form-text-font-size:                   $small-font-size !default;\n$form-text-font-style:                  null !default;\n$form-text-font-weight:                 null !default;\n$form-text-color:                       var(--#{$prefix}secondary-color) !default;\n// scss-docs-end form-text-variables\n\n// scss-docs-start form-label-variables\n$form-label-margin-bottom:              .5rem !default;\n$form-label-font-size:                  null !default;\n$form-label-font-style:                 null !default;\n$form-label-font-weight:                null !default;\n$form-label-color:                      null !default;\n// scss-docs-end form-label-variables\n\n// scss-docs-start form-input-variables\n$input-padding-y:                       $input-btn-padding-y !default;\n$input-padding-x:                       $input-btn-padding-x !default;\n$input-font-family:                     $input-btn-font-family !default;\n$input-font-size:                       $input-btn-font-size !default;\n$input-font-weight:                     $font-weight-base !default;\n$input-line-height:                     $input-btn-line-height !default;\n\n$input-padding-y-sm:                    $input-btn-padding-y-sm !default;\n$input-padding-x-sm:                    $input-btn-padding-x-sm !default;\n$input-font-size-sm:                    $input-btn-font-size-sm !default;\n\n$input-padding-y-lg:                    $input-btn-padding-y-lg !default;\n$input-padding-x-lg:                    $input-btn-padding-x-lg !default;\n$input-font-size-lg:                    $input-btn-font-size-lg !default;\n\n$input-bg:                              var(--#{$prefix}body-bg) !default;\n$input-disabled-color:                  null !default;\n$input-disabled-bg:                     var(--#{$prefix}secondary-bg) !default;\n$input-disabled-border-color:           null !default;\n\n$input-color:                           var(--#{$prefix}body-color) !default;\n$input-border-color:                    var(--#{$prefix}border-color) !default;\n$input-border-width:                    $input-btn-border-width !default;\n$input-box-shadow:                      var(--#{$prefix}box-shadow-inset) !default;\n\n$input-border-radius:                   var(--#{$prefix}border-radius) !default;\n$input-border-radius-sm:                var(--#{$prefix}border-radius-sm) !default;\n$input-border-radius-lg:                var(--#{$prefix}border-radius-lg) !default;\n\n$input-focus-bg:                        $input-bg !default;\n$input-focus-border-color:              tint-color($component-active-bg, 50%) !default;\n$input-focus-color:                     $input-color !default;\n$input-focus-width:                     $input-btn-focus-width !default;\n$input-focus-box-shadow:                $input-btn-focus-box-shadow !default;\n\n$input-placeholder-color:               var(--#{$prefix}secondary-color) !default;\n$input-plaintext-color:                 var(--#{$prefix}body-color) !default;\n\n$input-height-border:                   calc(#{$input-border-width} * 2) !default; // stylelint-disable-line function-disallowed-list\n\n$input-height-inner:                    add($input-line-height * 1em, $input-padding-y * 2) !default;\n$input-height-inner-half:               add($input-line-height * .5em, $input-padding-y) !default;\n$input-height-inner-quarter:            add($input-line-height * .25em, $input-padding-y * .5) !default;\n\n$input-height:                          add($input-line-height * 1em, add($input-padding-y * 2, $input-height-border, false)) !default;\n$input-height-sm:                       add($input-line-height * 1em, add($input-padding-y-sm * 2, $input-height-border, false)) !default;\n$input-height-lg:                       add($input-line-height * 1em, add($input-padding-y-lg * 2, $input-height-border, false)) !default;\n\n$input-transition:                      border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n$form-color-width:                      3rem !default;\n// scss-docs-end form-input-variables\n\n// scss-docs-start form-check-variables\n$form-check-input-width:                  1em !default;\n$form-check-min-height:                   $font-size-base * $line-height-base !default;\n$form-check-padding-start:                $form-check-input-width + .5em !default;\n$form-check-margin-bottom:                .125rem !default;\n$form-check-label-color:                  null !default;\n$form-check-label-cursor:                 null !default;\n$form-check-transition:                   null !default;\n\n$form-check-input-active-filter:          brightness(90%) !default;\n\n$form-check-input-bg:                     $input-bg !default;\n$form-check-input-border:                 var(--#{$prefix}border-width) solid var(--#{$prefix}border-color) !default;\n$form-check-input-border-radius:          .25em !default;\n$form-check-radio-border-radius:          50% !default;\n$form-check-input-focus-border:           $input-focus-border-color !default;\n$form-check-input-focus-box-shadow:       $focus-ring-box-shadow !default;\n\n$form-check-input-checked-color:          $component-active-color !default;\n$form-check-input-checked-bg-color:       $component-active-bg !default;\n$form-check-input-checked-border-color:   $form-check-input-checked-bg-color !default;\n$form-check-input-checked-bg-image:       url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'><path fill='none' stroke='#{$form-check-input-checked-color}' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/></svg>\") !default;\n$form-check-radio-checked-bg-image:       url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'><circle r='2' fill='#{$form-check-input-checked-color}'/></svg>\") !default;\n\n$form-check-input-indeterminate-color:          $component-active-color !default;\n$form-check-input-indeterminate-bg-color:       $component-active-bg !default;\n$form-check-input-indeterminate-border-color:   $form-check-input-indeterminate-bg-color !default;\n$form-check-input-indeterminate-bg-image:       url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'><path fill='none' stroke='#{$form-check-input-indeterminate-color}' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/></svg>\") !default;\n\n$form-check-input-disabled-opacity:        .5 !default;\n$form-check-label-disabled-opacity:        $form-check-input-disabled-opacity !default;\n$form-check-btn-check-disabled-opacity:    $btn-disabled-opacity !default;\n\n$form-check-inline-margin-end:    1rem !default;\n// scss-docs-end form-check-variables\n\n// scss-docs-start form-switch-variables\n$form-switch-color:               rgba($black, .25) !default;\n$form-switch-width:               2em !default;\n$form-switch-padding-start:       $form-switch-width + .5em !default;\n$form-switch-bg-image:            url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'><circle r='3' fill='#{$form-switch-color}'/></svg>\") !default;\n$form-switch-border-radius:       $form-switch-width !default;\n$form-switch-transition:          background-position .15s ease-in-out !default;\n\n$form-switch-focus-color:         $input-focus-border-color !default;\n$form-switch-focus-bg-image:      url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'><circle r='3' fill='#{$form-switch-focus-color}'/></svg>\") !default;\n\n$form-switch-checked-color:       $component-active-color !default;\n$form-switch-checked-bg-image:    url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'><circle r='3' fill='#{$form-switch-checked-color}'/></svg>\") !default;\n$form-switch-checked-bg-position: right center !default;\n// scss-docs-end form-switch-variables\n\n// scss-docs-start input-group-variables\n$input-group-addon-padding-y:           $input-padding-y !default;\n$input-group-addon-padding-x:           $input-padding-x !default;\n$input-group-addon-font-weight:         $input-font-weight !default;\n$input-group-addon-color:               $input-color !default;\n$input-group-addon-bg:                  var(--#{$prefix}tertiary-bg) !default;\n$input-group-addon-border-color:        $input-border-color !default;\n// scss-docs-end input-group-variables\n\n// scss-docs-start form-select-variables\n$form-select-padding-y:             $input-padding-y !default;\n$form-select-padding-x:             $input-padding-x !default;\n$form-select-font-family:           $input-font-family !default;\n$form-select-font-size:             $input-font-size !default;\n$form-select-indicator-padding:     $form-select-padding-x * 3 !default; // Extra padding for background-image\n$form-select-font-weight:           $input-font-weight !default;\n$form-select-line-height:           $input-line-height !default;\n$form-select-color:                 $input-color !default;\n$form-select-bg:                    $input-bg !default;\n$form-select-disabled-color:        null !default;\n$form-select-disabled-bg:           $input-disabled-bg !default;\n$form-select-disabled-border-color: $input-disabled-border-color !default;\n$form-select-bg-position:           right $form-select-padding-x center !default;\n$form-select-bg-size:               16px 12px !default; // In pixels because image dimensions\n$form-select-indicator-color:       $gray-800 !default;\n$form-select-indicator:             url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path fill='none' stroke='#{$form-select-indicator-color}' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/></svg>\") !default;\n\n$form-select-feedback-icon-padding-end: $form-select-padding-x * 2.5 + $form-select-indicator-padding !default;\n$form-select-feedback-icon-position:    center right $form-select-indicator-padding !default;\n$form-select-feedback-icon-size:        $input-height-inner-half $input-height-inner-half !default;\n\n$form-select-border-width:        $input-border-width !default;\n$form-select-border-color:        $input-border-color !default;\n$form-select-border-radius:       $input-border-radius !default;\n$form-select-box-shadow:          var(--#{$prefix}box-shadow-inset) !default;\n\n$form-select-focus-border-color:  $input-focus-border-color !default;\n$form-select-focus-width:         $input-focus-width !default;\n$form-select-focus-box-shadow:    0 0 0 $form-select-focus-width $input-btn-focus-color !default;\n\n$form-select-padding-y-sm:        $input-padding-y-sm !default;\n$form-select-padding-x-sm:        $input-padding-x-sm !default;\n$form-select-font-size-sm:        $input-font-size-sm !default;\n$form-select-border-radius-sm:    $input-border-radius-sm !default;\n\n$form-select-padding-y-lg:        $input-padding-y-lg !default;\n$form-select-padding-x-lg:        $input-padding-x-lg !default;\n$form-select-font-size-lg:        $input-font-size-lg !default;\n$form-select-border-radius-lg:    $input-border-radius-lg !default;\n\n$form-select-transition:          $input-transition !default;\n// scss-docs-end form-select-variables\n\n// scss-docs-start form-range-variables\n$form-range-track-width:          100% !default;\n$form-range-track-height:         .5rem !default;\n$form-range-track-cursor:         pointer !default;\n$form-range-track-bg:             var(--#{$prefix}secondary-bg) !default;\n$form-range-track-border-radius:  1rem !default;\n$form-range-track-box-shadow:     var(--#{$prefix}box-shadow-inset) !default;\n\n$form-range-thumb-width:                   1rem !default;\n$form-range-thumb-height:                  $form-range-thumb-width !default;\n$form-range-thumb-bg:                      $component-active-bg !default;\n$form-range-thumb-border:                  0 !default;\n$form-range-thumb-border-radius:           1rem !default;\n$form-range-thumb-box-shadow:              0 .1rem .25rem rgba($black, .1) !default;\n$form-range-thumb-focus-box-shadow:        0 0 0 1px $body-bg, $input-focus-box-shadow !default;\n$form-range-thumb-focus-box-shadow-width:  $input-focus-width !default; // For focus box shadow issue in Edge\n$form-range-thumb-active-bg:               tint-color($component-active-bg, 70%) !default;\n$form-range-thumb-disabled-bg:             var(--#{$prefix}secondary-color) !default;\n$form-range-thumb-transition:              background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n// scss-docs-end form-range-variables\n\n// scss-docs-start form-file-variables\n$form-file-button-color:          $input-color !default;\n$form-file-button-bg:             var(--#{$prefix}tertiary-bg) !default;\n$form-file-button-hover-bg:       var(--#{$prefix}secondary-bg) !default;\n// scss-docs-end form-file-variables\n\n// scss-docs-start form-floating-variables\n$form-floating-height:                  add(3.5rem, $input-height-border) !default;\n$form-floating-line-height:             1.25 !default;\n$form-floating-padding-x:               $input-padding-x !default;\n$form-floating-padding-y:               1rem !default;\n$form-floating-input-padding-t:         1.625rem !default;\n$form-floating-input-padding-b:         .625rem !default;\n$form-floating-label-height:            1.5em !default;\n$form-floating-label-opacity:           .65 !default;\n$form-floating-label-transform:         scale(.85) translateY(-.5rem) translateX(.15rem) !default;\n$form-floating-label-disabled-color:    $gray-600 !default;\n$form-floating-transition:              opacity .1s ease-in-out, transform .1s ease-in-out !default;\n// scss-docs-end form-floating-variables\n\n// Form validation\n\n// scss-docs-start form-feedback-variables\n$form-feedback-margin-top:          $form-text-margin-top !default;\n$form-feedback-font-size:           $form-text-font-size !default;\n$form-feedback-font-style:          $form-text-font-style !default;\n$form-feedback-valid-color:         $success !default;\n$form-feedback-invalid-color:       $danger !default;\n\n$form-feedback-icon-valid-color:    $form-feedback-valid-color !default;\n$form-feedback-icon-valid:          url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'><path fill='#{$form-feedback-icon-valid-color}' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/></svg>\") !default;\n$form-feedback-icon-invalid-color:  $form-feedback-invalid-color !default;\n$form-feedback-icon-invalid:        url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='#{$form-feedback-icon-invalid-color}'><circle cx='6' cy='6' r='4.5'/><path stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/><circle cx='6' cy='8.2' r='.6' fill='#{$form-feedback-icon-invalid-color}' stroke='none'/></svg>\") !default;\n// scss-docs-end form-feedback-variables\n\n// scss-docs-start form-validation-colors\n$form-valid-color:                  $form-feedback-valid-color !default;\n$form-valid-border-color:           $form-feedback-valid-color !default;\n$form-invalid-color:                $form-feedback-invalid-color !default;\n$form-invalid-border-color:         $form-feedback-invalid-color !default;\n// scss-docs-end form-validation-colors\n\n// scss-docs-start form-validation-states\n$form-validation-states: (\n  \"valid\": (\n    \"color\": var(--#{$prefix}form-valid-color),\n    \"icon\": $form-feedback-icon-valid,\n    \"tooltip-color\": #fff,\n    \"tooltip-bg-color\": var(--#{$prefix}success),\n    \"focus-box-shadow\": 0 0 $input-btn-focus-blur $input-focus-width rgba(var(--#{$prefix}success-rgb), $input-btn-focus-color-opacity),\n    \"border-color\": var(--#{$prefix}form-valid-border-color),\n  ),\n  \"invalid\": (\n    \"color\": var(--#{$prefix}form-invalid-color),\n    \"icon\": $form-feedback-icon-invalid,\n    \"tooltip-color\": #fff,\n    \"tooltip-bg-color\": var(--#{$prefix}danger),\n    \"focus-box-shadow\": 0 0 $input-btn-focus-blur $input-focus-width rgba(var(--#{$prefix}danger-rgb), $input-btn-focus-color-opacity),\n    \"border-color\": var(--#{$prefix}form-invalid-border-color),\n  )\n) !default;\n// scss-docs-end form-validation-states\n\n// Z-index master list\n//\n// Warning: Avoid customizing these values. They're used for a bird's eye view\n// of components dependent on the z-axis and are designed to all work together.\n\n// scss-docs-start zindex-stack\n$zindex-dropdown:                   1000 !default;\n$zindex-sticky:                     1020 !default;\n$zindex-fixed:                      1030 !default;\n$zindex-offcanvas-backdrop:         1040 !default;\n$zindex-offcanvas:                  1045 !default;\n$zindex-modal-backdrop:             1050 !default;\n$zindex-modal:                      1055 !default;\n$zindex-popover:                    1070 !default;\n$zindex-tooltip:                    1080 !default;\n$zindex-toast:                      1090 !default;\n// scss-docs-end zindex-stack\n\n// scss-docs-start zindex-levels-map\n$zindex-levels: (\n  n1: -1,\n  0: 0,\n  1: 1,\n  2: 2,\n  3: 3\n) !default;\n// scss-docs-end zindex-levels-map\n\n\n// Navs\n\n// scss-docs-start nav-variables\n$nav-link-padding-y:                .5rem !default;\n$nav-link-padding-x:                1rem !default;\n$nav-link-font-size:                null !default;\n$nav-link-font-weight:              null !default;\n$nav-link-color:                    var(--#{$prefix}link-color) !default;\n$nav-link-hover-color:              var(--#{$prefix}link-hover-color) !default;\n$nav-link-transition:               color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out !default;\n$nav-link-disabled-color:           var(--#{$prefix}secondary-color) !default;\n$nav-link-focus-box-shadow:         $focus-ring-box-shadow !default;\n\n$nav-tabs-border-color:             var(--#{$prefix}border-color) !default;\n$nav-tabs-border-width:             var(--#{$prefix}border-width) !default;\n$nav-tabs-border-radius:            var(--#{$prefix}border-radius) !default;\n$nav-tabs-link-hover-border-color:  var(--#{$prefix}secondary-bg) var(--#{$prefix}secondary-bg) $nav-tabs-border-color !default;\n$nav-tabs-link-active-color:        var(--#{$prefix}emphasis-color) !default;\n$nav-tabs-link-active-bg:           var(--#{$prefix}body-bg) !default;\n$nav-tabs-link-active-border-color: var(--#{$prefix}border-color) var(--#{$prefix}border-color) $nav-tabs-link-active-bg !default;\n\n$nav-pills-border-radius:           var(--#{$prefix}border-radius) !default;\n$nav-pills-link-active-color:       $component-active-color !default;\n$nav-pills-link-active-bg:          $component-active-bg !default;\n\n$nav-underline-gap:                 1rem !default;\n$nav-underline-border-width:        .125rem !default;\n$nav-underline-link-active-color:   var(--#{$prefix}emphasis-color) !default;\n// scss-docs-end nav-variables\n\n\n// Navbar\n\n// scss-docs-start navbar-variables\n$navbar-padding-y:                  $spacer * .5 !default;\n$navbar-padding-x:                  null !default;\n\n$navbar-nav-link-padding-x:         .5rem !default;\n\n$navbar-brand-font-size:            $font-size-lg !default;\n// Compute the navbar-brand padding-y so the navbar-brand will have the same height as navbar-text and nav-link\n$nav-link-height:                   $font-size-base * $line-height-base + $nav-link-padding-y * 2 !default;\n$navbar-brand-height:               $navbar-brand-font-size * $line-height-base !default;\n$navbar-brand-padding-y:            ($nav-link-height - $navbar-brand-height) * .5 !default;\n$navbar-brand-margin-end:           1rem !default;\n\n$navbar-toggler-padding-y:          .25rem !default;\n$navbar-toggler-padding-x:          .75rem !default;\n$navbar-toggler-font-size:          $font-size-lg !default;\n$navbar-toggler-border-radius:      $btn-border-radius !default;\n$navbar-toggler-focus-width:        $btn-focus-width !default;\n$navbar-toggler-transition:         box-shadow .15s ease-in-out !default;\n\n$navbar-light-color:                rgba(var(--#{$prefix}emphasis-color-rgb), .65) !default;\n$navbar-light-hover-color:          rgba(var(--#{$prefix}emphasis-color-rgb), .8) !default;\n$navbar-light-active-color:         rgba(var(--#{$prefix}emphasis-color-rgb), 1) !default;\n$navbar-light-disabled-color:       rgba(var(--#{$prefix}emphasis-color-rgb), .3) !default;\n$navbar-light-icon-color:           rgba($body-color, .75) !default;\n$navbar-light-toggler-icon-bg:      url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'><path stroke='#{$navbar-light-icon-color}' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/></svg>\") !default;\n$navbar-light-toggler-border-color: rgba(var(--#{$prefix}emphasis-color-rgb), .15) !default;\n$navbar-light-brand-color:          $navbar-light-active-color !default;\n$navbar-light-brand-hover-color:    $navbar-light-active-color !default;\n// scss-docs-end navbar-variables\n\n// scss-docs-start navbar-dark-variables\n$navbar-dark-color:                 rgba($white, .55) !default;\n$navbar-dark-hover-color:           rgba($white, .75) !default;\n$navbar-dark-active-color:          $white !default;\n$navbar-dark-disabled-color:        rgba($white, .25) !default;\n$navbar-dark-icon-color:            $navbar-dark-color !default;\n$navbar-dark-toggler-icon-bg:       url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'><path stroke='#{$navbar-dark-icon-color}' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/></svg>\") !default;\n$navbar-dark-toggler-border-color:  rgba($white, .1) !default;\n$navbar-dark-brand-color:           $navbar-dark-active-color !default;\n$navbar-dark-brand-hover-color:     $navbar-dark-active-color !default;\n// scss-docs-end navbar-dark-variables\n\n\n// Dropdowns\n//\n// Dropdown menu container and contents.\n\n// scss-docs-start dropdown-variables\n$dropdown-min-width:                10rem !default;\n$dropdown-padding-x:                0 !default;\n$dropdown-padding-y:                .5rem !default;\n$dropdown-spacer:                   .125rem !default;\n$dropdown-font-size:                $font-size-base !default;\n$dropdown-color:                    var(--#{$prefix}body-color) !default;\n$dropdown-bg:                       var(--#{$prefix}body-bg) !default;\n$dropdown-border-color:             var(--#{$prefix}border-color-translucent) !default;\n$dropdown-border-radius:            var(--#{$prefix}border-radius) !default;\n$dropdown-border-width:             var(--#{$prefix}border-width) !default;\n$dropdown-inner-border-radius:      calc(#{$dropdown-border-radius} - #{$dropdown-border-width}) !default; // stylelint-disable-line function-disallowed-list\n$dropdown-divider-bg:               $dropdown-border-color !default;\n$dropdown-divider-margin-y:         $spacer * .5 !default;\n$dropdown-box-shadow:               var(--#{$prefix}box-shadow) !default;\n\n$dropdown-link-color:               var(--#{$prefix}body-color) !default;\n$dropdown-link-hover-color:         $dropdown-link-color !default;\n$dropdown-link-hover-bg:            var(--#{$prefix}tertiary-bg) !default;\n\n$dropdown-link-active-color:        $component-active-color !default;\n$dropdown-link-active-bg:           $component-active-bg !default;\n\n$dropdown-link-disabled-color:      var(--#{$prefix}tertiary-color) !default;\n\n$dropdown-item-padding-y:           $spacer * .25 !default;\n$dropdown-item-padding-x:           $spacer !default;\n\n$dropdown-header-color:             $gray-600 !default;\n$dropdown-header-padding-x:         $dropdown-item-padding-x !default;\n$dropdown-header-padding-y:         $dropdown-padding-y !default;\n// fusv-disable\n$dropdown-header-padding:           $dropdown-header-padding-y $dropdown-header-padding-x !default; // Deprecated in v5.2.0\n// fusv-enable\n// scss-docs-end dropdown-variables\n\n// scss-docs-start dropdown-dark-variables\n$dropdown-dark-color:               $gray-300 !default;\n$dropdown-dark-bg:                  $gray-800 !default;\n$dropdown-dark-border-color:        $dropdown-border-color !default;\n$dropdown-dark-divider-bg:          $dropdown-divider-bg !default;\n$dropdown-dark-box-shadow:          null !default;\n$dropdown-dark-link-color:          $dropdown-dark-color !default;\n$dropdown-dark-link-hover-color:    $white !default;\n$dropdown-dark-link-hover-bg:       rgba($white, .15) !default;\n$dropdown-dark-link-active-color:   $dropdown-link-active-color !default;\n$dropdown-dark-link-active-bg:      $dropdown-link-active-bg !default;\n$dropdown-dark-link-disabled-color: $gray-500 !default;\n$dropdown-dark-header-color:        $gray-500 !default;\n// scss-docs-end dropdown-dark-variables\n\n\n// Pagination\n\n// scss-docs-start pagination-variables\n$pagination-padding-y:              .375rem !default;\n$pagination-padding-x:              .75rem !default;\n$pagination-padding-y-sm:           .25rem !default;\n$pagination-padding-x-sm:           .5rem !default;\n$pagination-padding-y-lg:           .75rem !default;\n$pagination-padding-x-lg:           1.5rem !default;\n\n$pagination-font-size:              $font-size-base !default;\n\n$pagination-color:                  var(--#{$prefix}link-color) !default;\n$pagination-bg:                     var(--#{$prefix}body-bg) !default;\n$pagination-border-radius:          var(--#{$prefix}border-radius) !default;\n$pagination-border-width:           var(--#{$prefix}border-width) !default;\n$pagination-margin-start:           calc(#{$pagination-border-width} * -1) !default; // stylelint-disable-line function-disallowed-list\n$pagination-border-color:           var(--#{$prefix}border-color) !default;\n\n$pagination-focus-color:            var(--#{$prefix}link-hover-color) !default;\n$pagination-focus-bg:               var(--#{$prefix}secondary-bg) !default;\n$pagination-focus-box-shadow:       $focus-ring-box-shadow !default;\n$pagination-focus-outline:          0 !default;\n\n$pagination-hover-color:            var(--#{$prefix}link-hover-color) !default;\n$pagination-hover-bg:               var(--#{$prefix}tertiary-bg) !default;\n$pagination-hover-border-color:     var(--#{$prefix}border-color) !default; // Todo in v6: remove this?\n\n$pagination-active-color:           $component-active-color !default;\n$pagination-active-bg:              $component-active-bg !default;\n$pagination-active-border-color:    $component-active-bg !default;\n\n$pagination-disabled-color:         var(--#{$prefix}secondary-color) !default;\n$pagination-disabled-bg:            var(--#{$prefix}secondary-bg) !default;\n$pagination-disabled-border-color:  var(--#{$prefix}border-color) !default;\n\n$pagination-transition:              color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n$pagination-border-radius-sm:       var(--#{$prefix}border-radius-sm) !default;\n$pagination-border-radius-lg:       var(--#{$prefix}border-radius-lg) !default;\n// scss-docs-end pagination-variables\n\n\n// Placeholders\n\n// scss-docs-start placeholders\n$placeholder-opacity-max:           .5 !default;\n$placeholder-opacity-min:           .2 !default;\n// scss-docs-end placeholders\n\n// Cards\n\n// scss-docs-start card-variables\n$card-spacer-y:                     $spacer !default;\n$card-spacer-x:                     $spacer !default;\n$card-title-spacer-y:               $spacer * .5 !default;\n$card-title-color:                  null !default;\n$card-subtitle-color:               null !default;\n$card-border-width:                 var(--#{$prefix}border-width) !default;\n$card-border-color:                 var(--#{$prefix}border-color-translucent) !default;\n$card-border-radius:                var(--#{$prefix}border-radius) !default;\n$card-box-shadow:                   null !default;\n$card-inner-border-radius:          subtract($card-border-radius, $card-border-width) !default;\n$card-cap-padding-y:                $card-spacer-y * .5 !default;\n$card-cap-padding-x:                $card-spacer-x !default;\n$card-cap-bg:                       rgba(var(--#{$prefix}body-color-rgb), .03) !default;\n$card-cap-color:                    null !default;\n$card-height:                       null !default;\n$card-color:                        null !default;\n$card-bg:                           var(--#{$prefix}body-bg) !default;\n$card-img-overlay-padding:          $spacer !default;\n$card-group-margin:                 $grid-gutter-width * .5 !default;\n// scss-docs-end card-variables\n\n// Accordion\n\n// scss-docs-start accordion-variables\n$accordion-padding-y:                     1rem !default;\n$accordion-padding-x:                     1.25rem !default;\n$accordion-color:                         var(--#{$prefix}body-color) !default;\n$accordion-bg:                            var(--#{$prefix}body-bg) !default;\n$accordion-border-width:                  var(--#{$prefix}border-width) !default;\n$accordion-border-color:                  var(--#{$prefix}border-color) !default;\n$accordion-border-radius:                 var(--#{$prefix}border-radius) !default;\n$accordion-inner-border-radius:           subtract($accordion-border-radius, $accordion-border-width) !default;\n\n$accordion-body-padding-y:                $accordion-padding-y !default;\n$accordion-body-padding-x:                $accordion-padding-x !default;\n\n$accordion-button-padding-y:              $accordion-padding-y !default;\n$accordion-button-padding-x:              $accordion-padding-x !default;\n$accordion-button-color:                  var(--#{$prefix}body-color) !default;\n$accordion-button-bg:                     var(--#{$prefix}accordion-bg) !default;\n$accordion-transition:                    $btn-transition, border-radius .15s ease !default;\n$accordion-button-active-bg:              var(--#{$prefix}primary-bg-subtle) !default;\n$accordion-button-active-color:           var(--#{$prefix}primary-text-emphasis) !default;\n\n// fusv-disable\n$accordion-button-focus-border-color:     $input-focus-border-color !default; // Deprecated in v5.3.3\n// fusv-enable\n$accordion-button-focus-box-shadow:       $btn-focus-box-shadow !default;\n\n$accordion-icon-width:                    1.25rem !default;\n$accordion-icon-color:                    $body-color !default;\n$accordion-icon-active-color:             $primary-text-emphasis !default;\n$accordion-icon-transition:               transform .2s ease-in-out !default;\n$accordion-icon-transform:                rotate(-180deg) !default;\n\n$accordion-button-icon:         url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='#{$accordion-icon-color}' stroke-linecap='round' stroke-linejoin='round'><path d='M2 5L8 11L14 5'/></svg>\") !default;\n$accordion-button-active-icon:  url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='#{$accordion-icon-active-color}' stroke-linecap='round' stroke-linejoin='round'><path d='M2 5L8 11L14 5'/></svg>\") !default;\n// scss-docs-end accordion-variables\n\n// Tooltips\n\n// scss-docs-start tooltip-variables\n$tooltip-font-size:                 $font-size-sm !default;\n$tooltip-max-width:                 200px !default;\n$tooltip-color:                     var(--#{$prefix}body-bg) !default;\n$tooltip-bg:                        var(--#{$prefix}emphasis-color) !default;\n$tooltip-border-radius:             var(--#{$prefix}border-radius) !default;\n$tooltip-opacity:                   .9 !default;\n$tooltip-padding-y:                 $spacer * .25 !default;\n$tooltip-padding-x:                 $spacer * .5 !default;\n$tooltip-margin:                    null !default; // TODO: remove this in v6\n\n$tooltip-arrow-width:               .8rem !default;\n$tooltip-arrow-height:              .4rem !default;\n// fusv-disable\n$tooltip-arrow-color:               null !default; // Deprecated in Bootstrap 5.2.0 for CSS variables\n// fusv-enable\n// scss-docs-end tooltip-variables\n\n// Form tooltips must come after regular tooltips\n// scss-docs-start tooltip-feedback-variables\n$form-feedback-tooltip-padding-y:     $tooltip-padding-y !default;\n$form-feedback-tooltip-padding-x:     $tooltip-padding-x !default;\n$form-feedback-tooltip-font-size:     $tooltip-font-size !default;\n$form-feedback-tooltip-line-height:   null !default;\n$form-feedback-tooltip-opacity:       $tooltip-opacity !default;\n$form-feedback-tooltip-border-radius: $tooltip-border-radius !default;\n// scss-docs-end tooltip-feedback-variables\n\n\n// Popovers\n\n// scss-docs-start popover-variables\n$popover-font-size:                 $font-size-sm !default;\n$popover-bg:                        var(--#{$prefix}body-bg) !default;\n$popover-max-width:                 276px !default;\n$popover-border-width:              var(--#{$prefix}border-width) !default;\n$popover-border-color:              var(--#{$prefix}border-color-translucent) !default;\n$popover-border-radius:             var(--#{$prefix}border-radius-lg) !default;\n$popover-inner-border-radius:       calc(#{$popover-border-radius} - #{$popover-border-width}) !default; // stylelint-disable-line function-disallowed-list\n$popover-box-shadow:                var(--#{$prefix}box-shadow) !default;\n\n$popover-header-font-size:          $font-size-base !default;\n$popover-header-bg:                 var(--#{$prefix}secondary-bg) !default;\n$popover-header-color:              $headings-color !default;\n$popover-header-padding-y:          .5rem !default;\n$popover-header-padding-x:          $spacer !default;\n\n$popover-body-color:                var(--#{$prefix}body-color) !default;\n$popover-body-padding-y:            $spacer !default;\n$popover-body-padding-x:            $spacer !default;\n\n$popover-arrow-width:               1rem !default;\n$popover-arrow-height:              .5rem !default;\n// scss-docs-end popover-variables\n\n// fusv-disable\n// Deprecated in Bootstrap 5.2.0 for CSS variables\n$popover-arrow-color:               $popover-bg !default;\n$popover-arrow-outer-color:         var(--#{$prefix}border-color-translucent) !default;\n// fusv-enable\n\n\n// Toasts\n\n// scss-docs-start toast-variables\n$toast-max-width:                   350px !default;\n$toast-padding-x:                   .75rem !default;\n$toast-padding-y:                   .5rem !default;\n$toast-font-size:                   .875rem !default;\n$toast-color:                       null !default;\n$toast-background-color:            rgba(var(--#{$prefix}body-bg-rgb), .85) !default;\n$toast-border-width:                var(--#{$prefix}border-width) !default;\n$toast-border-color:                var(--#{$prefix}border-color-translucent) !default;\n$toast-border-radius:               var(--#{$prefix}border-radius) !default;\n$toast-box-shadow:                  var(--#{$prefix}box-shadow) !default;\n$toast-spacing:                     $container-padding-x !default;\n\n$toast-header-color:                var(--#{$prefix}secondary-color) !default;\n$toast-header-background-color:     rgba(var(--#{$prefix}body-bg-rgb), .85) !default;\n$toast-header-border-color:         $toast-border-color !default;\n// scss-docs-end toast-variables\n\n\n// Badges\n\n// scss-docs-start badge-variables\n$badge-font-size:                   .75em !default;\n$badge-font-weight:                 $font-weight-bold !default;\n$badge-color:                       $white !default;\n$badge-padding-y:                   .35em !default;\n$badge-padding-x:                   .65em !default;\n$badge-border-radius:               var(--#{$prefix}border-radius) !default;\n// scss-docs-end badge-variables\n\n\n// Modals\n\n// scss-docs-start modal-variables\n$modal-inner-padding:               $spacer !default;\n\n$modal-footer-margin-between:       .5rem !default;\n\n$modal-dialog-margin:               .5rem !default;\n$modal-dialog-margin-y-sm-up:       1.75rem !default;\n\n$modal-title-line-height:           $line-height-base !default;\n\n$modal-content-color:               null !default;\n$modal-content-bg:                  var(--#{$prefix}body-bg) !default;\n$modal-content-border-color:        var(--#{$prefix}border-color-translucent) !default;\n$modal-content-border-width:        var(--#{$prefix}border-width) !default;\n$modal-content-border-radius:       var(--#{$prefix}border-radius-lg) !default;\n$modal-content-inner-border-radius: subtract($modal-content-border-radius, $modal-content-border-width) !default;\n$modal-content-box-shadow-xs:       var(--#{$prefix}box-shadow-sm) !default;\n$modal-content-box-shadow-sm-up:    var(--#{$prefix}box-shadow) !default;\n\n$modal-backdrop-bg:                 $black !default;\n$modal-backdrop-opacity:            .5 !default;\n\n$modal-header-border-color:         var(--#{$prefix}border-color) !default;\n$modal-header-border-width:         $modal-content-border-width !default;\n$modal-header-padding-y:            $modal-inner-padding !default;\n$modal-header-padding-x:            $modal-inner-padding !default;\n$modal-header-padding:              $modal-header-padding-y $modal-header-padding-x !default; // Keep this for backwards compatibility\n\n$modal-footer-bg:                   null !default;\n$modal-footer-border-color:         $modal-header-border-color !default;\n$modal-footer-border-width:         $modal-header-border-width !default;\n\n$modal-sm:                          300px !default;\n$modal-md:                          500px !default;\n$modal-lg:                          800px !default;\n$modal-xl:                          1140px !default;\n\n$modal-fade-transform:              translate(0, -50px) !default;\n$modal-show-transform:              none !default;\n$modal-transition:                  transform .3s ease-out !default;\n$modal-scale-transform:             scale(1.02) !default;\n// scss-docs-end modal-variables\n\n\n// Alerts\n//\n// Define alert colors, border radius, and padding.\n\n// scss-docs-start alert-variables\n$alert-padding-y:               $spacer !default;\n$alert-padding-x:               $spacer !default;\n$alert-margin-bottom:           1rem !default;\n$alert-border-radius:           var(--#{$prefix}border-radius) !default;\n$alert-link-font-weight:        $font-weight-bold !default;\n$alert-border-width:            var(--#{$prefix}border-width) !default;\n$alert-dismissible-padding-r:   $alert-padding-x * 3 !default; // 3x covers width of x plus default padding on either side\n// scss-docs-end alert-variables\n\n// fusv-disable\n$alert-bg-scale:                -80% !default; // Deprecated in v5.2.0, to be removed in v6\n$alert-border-scale:            -70% !default; // Deprecated in v5.2.0, to be removed in v6\n$alert-color-scale:             40% !default; // Deprecated in v5.2.0, to be removed in v6\n// fusv-enable\n\n// Progress bars\n\n// scss-docs-start progress-variables\n$progress-height:                   1rem !default;\n$progress-font-size:                $font-size-base * .75 !default;\n$progress-bg:                       var(--#{$prefix}secondary-bg) !default;\n$progress-border-radius:            var(--#{$prefix}border-radius) !default;\n$progress-box-shadow:               var(--#{$prefix}box-shadow-inset) !default;\n$progress-bar-color:                $white !default;\n$progress-bar-bg:                   $primary !default;\n$progress-bar-animation-timing:     1s linear infinite !default;\n$progress-bar-transition:           width .6s ease !default;\n// scss-docs-end progress-variables\n\n\n// List group\n\n// scss-docs-start list-group-variables\n$list-group-color:                  var(--#{$prefix}body-color) !default;\n$list-group-bg:                     var(--#{$prefix}body-bg) !default;\n$list-group-border-color:           var(--#{$prefix}border-color) !default;\n$list-group-border-width:           var(--#{$prefix}border-width) !default;\n$list-group-border-radius:          var(--#{$prefix}border-radius) !default;\n\n$list-group-item-padding-y:         $spacer * .5 !default;\n$list-group-item-padding-x:         $spacer !default;\n// fusv-disable\n$list-group-item-bg-scale:          -80% !default; // Deprecated in v5.3.0\n$list-group-item-color-scale:       40% !default; // Deprecated in v5.3.0\n// fusv-enable\n\n$list-group-hover-bg:               var(--#{$prefix}tertiary-bg) !default;\n$list-group-active-color:           $component-active-color !default;\n$list-group-active-bg:              $component-active-bg !default;\n$list-group-active-border-color:    $list-group-active-bg !default;\n\n$list-group-disabled-color:         var(--#{$prefix}secondary-color) !default;\n$list-group-disabled-bg:            $list-group-bg !default;\n\n$list-group-action-color:           var(--#{$prefix}secondary-color) !default;\n$list-group-action-hover-color:     var(--#{$prefix}emphasis-color) !default;\n\n$list-group-action-active-color:    var(--#{$prefix}body-color) !default;\n$list-group-action-active-bg:       var(--#{$prefix}secondary-bg) !default;\n// scss-docs-end list-group-variables\n\n\n// Image thumbnails\n\n// scss-docs-start thumbnail-variables\n$thumbnail-padding:                 .25rem !default;\n$thumbnail-bg:                      var(--#{$prefix}body-bg) !default;\n$thumbnail-border-width:            var(--#{$prefix}border-width) !default;\n$thumbnail-border-color:            var(--#{$prefix}border-color) !default;\n$thumbnail-border-radius:           var(--#{$prefix}border-radius) !default;\n$thumbnail-box-shadow:              var(--#{$prefix}box-shadow-sm) !default;\n// scss-docs-end thumbnail-variables\n\n\n// Figures\n\n// scss-docs-start figure-variables\n$figure-caption-font-size:          $small-font-size !default;\n$figure-caption-color:              var(--#{$prefix}secondary-color) !default;\n// scss-docs-end figure-variables\n\n\n// Breadcrumbs\n\n// scss-docs-start breadcrumb-variables\n$breadcrumb-font-size:              null !default;\n$breadcrumb-padding-y:              0 !default;\n$breadcrumb-padding-x:              0 !default;\n$breadcrumb-item-padding-x:         .5rem !default;\n$breadcrumb-margin-bottom:          1rem !default;\n$breadcrumb-bg:                     null !default;\n$breadcrumb-divider-color:          var(--#{$prefix}secondary-color) !default;\n$breadcrumb-active-color:           var(--#{$prefix}secondary-color) !default;\n$breadcrumb-divider:                quote(\"/\") !default;\n$breadcrumb-divider-flipped:        $breadcrumb-divider !default;\n$breadcrumb-border-radius:          null !default;\n// scss-docs-end breadcrumb-variables\n\n// Carousel\n\n// scss-docs-start carousel-variables\n$carousel-control-color:             $white !default;\n$carousel-control-width:             15% !default;\n$carousel-control-opacity:           .5 !default;\n$carousel-control-hover-opacity:     .9 !default;\n$carousel-control-transition:        opacity .15s ease !default;\n\n$carousel-indicator-width:           30px !default;\n$carousel-indicator-height:          3px !default;\n$carousel-indicator-hit-area-height: 10px !default;\n$carousel-indicator-spacer:          3px !default;\n$carousel-indicator-opacity:         .5 !default;\n$carousel-indicator-active-bg:       $white !default;\n$carousel-indicator-active-opacity:  1 !default;\n$carousel-indicator-transition:      opacity .6s ease !default;\n\n$carousel-caption-width:             70% !default;\n$carousel-caption-color:             $white !default;\n$carousel-caption-padding-y:         1.25rem !default;\n$carousel-caption-spacer:            1.25rem !default;\n\n$carousel-control-icon-width:        2rem !default;\n\n$carousel-control-prev-icon-bg:      url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$carousel-control-color}'><path d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/></svg>\") !default;\n$carousel-control-next-icon-bg:      url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$carousel-control-color}'><path d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/></svg>\") !default;\n\n$carousel-transition-duration:       .6s !default;\n$carousel-transition:                transform $carousel-transition-duration ease-in-out !default; // Define transform transition first if using multiple transitions (e.g., `transform 2s ease, opacity .5s ease-out`)\n// scss-docs-end carousel-variables\n\n// scss-docs-start carousel-dark-variables\n$carousel-dark-indicator-active-bg:  $black !default;\n$carousel-dark-caption-color:        $black !default;\n$carousel-dark-control-icon-filter:  invert(1) grayscale(100) !default;\n// scss-docs-end carousel-dark-variables\n\n\n// Spinners\n\n// scss-docs-start spinner-variables\n$spinner-width:           2rem !default;\n$spinner-height:          $spinner-width !default;\n$spinner-vertical-align:  -.125em !default;\n$spinner-border-width:    .25em !default;\n$spinner-animation-speed: .75s !default;\n\n$spinner-width-sm:        1rem !default;\n$spinner-height-sm:       $spinner-width-sm !default;\n$spinner-border-width-sm: .2em !default;\n// scss-docs-end spinner-variables\n\n\n// Close\n\n// scss-docs-start close-variables\n$btn-close-width:            1em !default;\n$btn-close-height:           $btn-close-width !default;\n$btn-close-padding-x:        .25em !default;\n$btn-close-padding-y:        $btn-close-padding-x !default;\n$btn-close-color:            $black !default;\n$btn-close-bg:               url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$btn-close-color}'><path d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/></svg>\") !default;\n$btn-close-focus-shadow:     $focus-ring-box-shadow !default;\n$btn-close-opacity:          .5 !default;\n$btn-close-hover-opacity:    .75 !default;\n$btn-close-focus-opacity:    1 !default;\n$btn-close-disabled-opacity: .25 !default;\n$btn-close-white-filter:     invert(1) grayscale(100%) brightness(200%) !default;\n// scss-docs-end close-variables\n\n\n// Offcanvas\n\n// scss-docs-start offcanvas-variables\n$offcanvas-padding-y:               $modal-inner-padding !default;\n$offcanvas-padding-x:               $modal-inner-padding !default;\n$offcanvas-horizontal-width:        400px !default;\n$offcanvas-vertical-height:         30vh !default;\n$offcanvas-transition-duration:     .3s !default;\n$offcanvas-border-color:            $modal-content-border-color !default;\n$offcanvas-border-width:            $modal-content-border-width !default;\n$offcanvas-title-line-height:       $modal-title-line-height !default;\n$offcanvas-bg-color:                var(--#{$prefix}body-bg) !default;\n$offcanvas-color:                   var(--#{$prefix}body-color) !default;\n$offcanvas-box-shadow:              $modal-content-box-shadow-xs !default;\n$offcanvas-backdrop-bg:             $modal-backdrop-bg !default;\n$offcanvas-backdrop-opacity:        $modal-backdrop-opacity !default;\n// scss-docs-end offcanvas-variables\n\n// Code\n\n$code-font-size:                    $small-font-size !default;\n$code-color:                        $pink !default;\n\n$kbd-padding-y:                     .1875rem !default;\n$kbd-padding-x:                     .375rem !default;\n$kbd-font-size:                     $code-font-size !default;\n$kbd-color:                         var(--#{$prefix}body-bg) !default;\n$kbd-bg:                            var(--#{$prefix}body-color) !default;\n$nested-kbd-font-weight:            null !default; // Deprecated in v5.2.0, removing in v6\n\n$pre-color:                         null !default;\n\n@import \"variables-dark\"; // TODO: can be removed safely in v6, only here to avoid breaking changes in v5.3\n","// Override bootstrap variables\n$spacer: 1rem;\n$container-max-widths: (\n  sm: 540px,\n  md: 720px,\n  lg: 960px,\n  xl: 1400px,\n);\n$grid-breakpoints: (\n  xs: 0,\n  sm: 540px,\n  md: 720px,\n  lg: 960px,\n  xl: 1200px,\n);\n$dropdown-link-hover-bg: var(--pst-color-surface);\n\n// --pst-color-surface can also be assigned to the dark variant because it is\n// scoped to different values depending on light/dark theme\n$dropdown-dark-link-hover-bg: var(--pst-color-surface);\n$dropdown-link-active-bg: var(--pst-color-surface);\n$dropdown-dark-link-active-bg: var(--pst-color-surface);\n$focus-ring-width: 0.1875rem; // 3px at 100% zoom (0.1875 * 16px base font = 3px)\n$focus-ring-opacity: 1;\n$focus-ring-color: var(--pst-color-accent);\n$focus-ring-blur: 0;\n$focus-ring-box-shadow: 0 0 $focus-ring-blur $focus-ring-width $focus-ring-color;\n\n// outline creates the same style of focus ring, it just uses CSS outline instead of box shadow\n$focus-ring-outline: $focus-ring-color solid $focus-ring-width;\n$btn-focus-box-shadow: $focus-ring-box-shadow;\n","/***\n * Rules for the UX/UI of skip navigation link btn.\n * It's only visible to people\n * navigating with keyboard for accessibility purposes\n * ref: https://www.youtube.com/watch?v=VUR0I5mqq7I\n ***/\n\n.skip-link {\n  position: fixed;\n  top: 0;\n  left: 0;\n  right: 0;\n  text-align: center;\n  background-color: var(--pst-color-warning);\n  padding: 0.5rem;\n  z-index: $zindex-modal;\n  border-bottom: 1px solid var(--pst-color-border);\n\n  // This shows / hides the button\n  transform: translateY(-100%);\n  transition: transform 150ms ease-in-out;\n\n  &:focus-within {\n    transform: translateY(0%);\n  }\n\n  a {\n    // Ensure we are using a WCAG conformant colour\n    color: var(--pst-color-warning-text) !important;\n\n    &:focus-visible {\n      // use color with sufficient contrast\n      outline-color: $foundation-black;\n    }\n  }\n}\n","/*******************************************************************************\n* master color map. Only the colors that actually differ between light and dark\n* themes are specified separately.\n*\n* To see the full list of colors see https://www.figma.com/file/rUrrHGhUBBIAAjQ82x6pz9/PyData-Design-system---proposal-for-implementation-(2)?node-id=1234%3A765&t=ifcFT1JtnrSshGfi-1\n*/\n\n@use \"sass:map\";\n@use \"sass:meta\";\n@use \"sass:string\";\n\n/**\n* Function to get items from nested maps\n*/\n// @param {Map} $map - Map\n// @param {Arglist} $keys - Keys to fetch\n// @return {*}\n@function map-deep-get($map, $keys...) {\n  @each $key in $keys {\n    $map: map.get($map, $key);\n  }\n\n  @return $map;\n}\n\n/* Assign base colors for the PyData theme */\n$color-palette: (\n  // Primary color\n  \"teal\":\n    (\n      \"50\": #f4fbfc,\n      \"100\": #e9f6f8,\n      \"200\": #d0ecf1,\n      \"300\": #abdde6,\n      \"400\": #3fb1c5,\n      \"500\": #0a7d91,\n      \"600\": #085d6c,\n      \"700\": #064752,\n      \"800\": #042c33,\n      \"900\": #021b1f,\n    ),\n  // Secondary color\n  \"violet\":\n    (\n      \"50\": #f4eefb,\n      \"100\": #e0c7ff,\n      \"200\": #d5b4fd,\n      \"300\": #b780ff,\n      \"400\": #9c5ffd,\n      \"500\": #8045e5,\n      \"600\": #6432bd,\n      \"700\": #4b258f,\n      \"800\": #341a61,\n      \"900\": #1e0e39,\n    ),\n  // Neutrals\n  \"gray\":\n    (\n      \"50\": #f9f9fa,\n      \"100\": #f3f4f5,\n      \"200\": #e5e7ea,\n      \"300\": #d1d5da,\n      \"400\": #9ca4af,\n      \"500\": #677384,\n      \"600\": #48566b,\n      \"700\": #29313d,\n      \"800\": #222832,\n      \"900\": #14181e,\n    ),\n  // Accent color\n  \"pink\":\n    (\n      \"50\": #fcf8fd,\n      \"100\": #fcf0fa,\n      \"200\": #f8dff5,\n      \"300\": #f3c7ee,\n      \"400\": #e47fd7,\n      \"500\": #c132af,\n      \"600\": #912583,\n      \"700\": #6e1c64,\n      \"800\": #46123f,\n      \"900\": #2b0b27,\n    ),\n  \"foundation\": (\n    \"white\": #ffffff,\n    // gray-900\n    \"black\": #14181e,\n  )\n);\n\n:root {\n  // Add theme colours to the html root element\n  @each $group-color, $color in $color-palette {\n    @each $color-name, $definition in $color {\n      --pst-#{$group-color}-#{$color-name}: #{$definition};\n    }\n  }\n}\n\n// Static SCSS variables used thoroughout the theme\n// Minimum contrast ratio used for the theme.\n// Acceptable values for WCAG 2.0 are 3, 4.5 and 7.\n// See https://www.w3.org/TR/WCAG20/#visual-audio-contrast-contrast\n// 4.5 - is for text that is 14pt or less\n$min-contrast-ratio-4: 4.5;\n\n// 3 is for text that is 18pt or bold, or for non-text elements\n$min-contrast-ratio-3: 3;\n\n// Customize the light and dark text colors for use in our color contrast function.\n$foundation-black: #14181e;\n$foundation-white: #fff;\n\n// This is a custom - calculated  color between gray 100 and 200 - to reduce\n// the contrast ratio (avoid a jarring effect)\n$base-light-text: #ced6dd;\n\n// used in sphinx_design - gray 100\n$foundation-light-gray: #f3f4f5;\n\n// used in sphinx_design - gray 700\n$foundation-muted-gray: #29313d;\n\n// used in sphinx_design - gray 800\n$foundation-dark-gray: #222832;\n$pst-semantic-colors: (\n  \"primary\": (\n    \"light\": #{map-deep-get($color-palette, \"teal\", \"500\")},\n    \"bg-light\": #{map-deep-get($color-palette, \"teal\", \"200\")},\n    \"dark\": #{map-deep-get($color-palette, \"teal\", \"400\")},\n    \"bg-dark\": #{map-deep-get($color-palette, \"teal\", \"800\")},\n  ),\n  \"secondary\": (\n    \"light\": #{map-deep-get($color-palette, \"violet\", \"500\")},\n    \"bg-light\": #{map-deep-get($color-palette, \"violet\", \"100\")},\n    \"dark\": #{map-deep-get($color-palette, \"violet\", \"400\")},\n    \"bg-dark\": #{map-deep-get($color-palette, \"violet\", \"800\")},\n  ),\n  \"accent\": (\n    \"light\": #{map-deep-get($color-palette, \"pink\", \"500\")},\n    \"bg-light\": #{map-deep-get($color-palette, \"pink\", \"200\")},\n    \"dark\": #{map-deep-get($color-palette, \"pink\", \"400\")},\n    \"bg-dark\": #{map-deep-get($color-palette, \"pink\", \"800\")},\n  ),\n  \"info\": (\n    \"light\": #276be9,\n    \"bg-light\": #dce7fc,\n    \"dark\": #79a3f2,\n    \"bg-dark\": #06245d,\n  ),\n  \"warning\": (\n    \"light\": #f66a0a,\n    \"bg-light\": #f8e3d0,\n    \"dark\": #ff9245,\n    \"bg-dark\": #652a02,\n  ),\n  \"success\": (\n    \"light\": #00843f,\n    \"bg-light\": #d6ece1,\n    \"dark\": #5fb488,\n    \"bg-dark\": #002f17,\n  ),\n  // This is based on the warning color\n  \"attention\":\n    (\n      \"light\": var(--pst-color-warning),\n      \"bg-light\": var(--pst-color-warning-bg),\n      \"dark\": var(--pst-color-warning),\n      \"bg-dark\": var(--pst-color-warning-bg),\n    ),\n  \"danger\": (\n    \"light\": #d72d47,\n    \"bg-light\": #f9e1e4,\n    \"dark\": #e78894,\n    \"bg-dark\": #4e111b,\n  ),\n  \"text-base\": (\n    \"light\": #{map-deep-get($color-palette, \"gray\", \"800\")},\n    \"dark\": $base-light-text,\n  ),\n  \"text-muted\": (\n    \"light\": #{map-deep-get($color-palette, \"gray\", \"600\")},\n    \"dark\": #{map-deep-get($color-palette, \"gray\", \"400\")},\n  ),\n  \"heading-color\": (\n    \"light\": #{$foundation-white},\n    \"dark\": #{$foundation-black},\n  ),\n  \"shadow\": (\n    \"light\": rgba(0, 0, 0, 0.1),\n    \"dark\": rgba(0, 0, 0, 0.2),\n  ),\n  \"border\": (\n    \"light\": #{map-deep-get($color-palette, \"gray\", \"300\")},\n    \"dark\": #{map-deep-get($color-palette, \"gray\", \"600\")},\n  ),\n  \"border-muted\": (\n    \"light\": rgba(23, 23, 26, 0.2),\n    \"dark\": #{map-deep-get($color-palette, \"gray\", \"700\")},\n  ),\n  \"blockquote-notch\": (\n    // These colors have a contrast ratio > 3.0 against both the background and\n    // surface colors that the notch is sandwiched between\n    \"light\": #{map-deep-get($color-palette, \"gray\", \"500\")},\n    \"dark\": #{map-deep-get($color-palette, \"gray\", \"400\")},\n  ),\n  \"inline-code\": (\n    \"light\": #{map-deep-get($color-palette, \"pink\", \"600\")},\n    \"dark\": #{map-deep-get($color-palette, \"pink\", \"300\")},\n  ),\n  \"inline-code-links\": (\n    // need to make sure there is enough contrast against the code bg\n    \"light\": #{map-deep-get($color-palette, \"teal\", \"600\")},\n    // keep primary color for dark mode\n    \"dark\": #{map-deep-get($color-palette, \"teal\", \"400\")},\n  ),\n  \"target\": (\n    \"light\": #f3cf95,\n    \"dark\": #675c04,\n  ),\n  \"table\": (\n    \"light\": #{map-deep-get($color-palette, \"foundation\", \"black\")},\n    \"dark\": #{map-deep-get($color-palette, \"foundation\", \"white\")},\n  ),\n  \"table-row-hover\": (\n    \"bg-light\": #{map-deep-get($color-palette, \"violet\", \"300\")},\n    \"bg-dark\": #{map-deep-get($color-palette, \"violet\", \"600\")},\n  ),\n  \"table-inner-border\": (\n    \"light\": #{map-deep-get($color-palette, \"gray\", \"200\")},\n    \"dark\": #364150,\n  ),\n  // DEPTH COLORS - you can see the elevation colours and shades\n  // in the Figma file https://www.figma.com/file/rUrrHGhUBBIAAjQ82x6pz9/PyData-Design-system---proposal-for-implementation-(2)?node-id=1492%3A922&t=sQeQZehkOzposYEg-1\n  // background: color of the canvas / the furthest back layer\n  \"background\":\n    (\n      \"light\": #{map-deep-get($color-palette, \"foundation\", \"white\")},\n      \"dark\": #{map-deep-get($color-palette, \"foundation\", \"black\")},\n    ),\n  // on-background: provides slight contrast against background\n  // (by use of shadows in light theme)\n  \"on-background\":\n    (\n      \"light\": #{map-deep-get($color-palette, \"foundation\", \"white\")},\n      \"dark\": #{map-deep-get($color-palette, \"gray\", \"800\")},\n    ),\n  \"surface\": (\n    \"light\": #{map-deep-get($color-palette, \"gray\", \"100\")},\n    \"dark\": #{map-deep-get($color-palette, \"gray\", \"700\")},\n  ),\n  // on_surface: object on top of surface object (without shadows)\n  \"on-surface\":\n    (\n      \"light\": #{map-deep-get($color-palette, \"gray\", \"800\")},\n      \"dark\": $foundation-light-gray,\n    ),\n);\n\n/*******************************************************************************\n* write the color rules for each theme (light/dark)\n*/\n\n/* NOTE:\n * Mixins enable us to reuse the same definitions for the different modes\n * https://sass-lang.com/documentation/at-rules/mixin\n * #{something} inserts a variable into a CSS selector or property name\n * https://sass-lang.com/documentation/interpolation\n */\n@mixin theme-colors($mode) {\n  // check if this color is defined differently for light/dark\n  @each $col-name, $definition in $pst-semantic-colors {\n    @if meta.type-of($definition) == map {\n      @each $key, $val in $definition {\n        @if string.index($key, $mode) {\n          // since now we define the bg colours in the semantic colours and not\n          // by changing opacity, we need to check if the key contains bg and the\n          // correct mode (light/dark)\n          @if string.index($key, \"bg\") {\n            --pst-color-#{$col-name}-bg: #{$val};\n          } @else {\n            --pst-color-#{$col-name}: #{$val};\n          }\n        }\n      }\n    } @else {\n      --pst-color-#{$col-name}: #{$definition};\n    }\n  }\n\n  // assign the \"duplicate\" colors (ones that just reference other variables)\n  & {\n    --pst-color-link: var(--pst-color-primary);\n    --pst-color-link-hover: var(--pst-color-secondary);\n    --pst-color-table-outer-border: var(--pst-color-surface);\n    --pst-color-table-heading-bg: var(--pst-color-surface);\n    --pst-color-table-row-zebra-high-bg: var(--pst-color-on-background);\n    --pst-color-table-row-zebra-low-bg: var(--pst-color-surface);\n  }\n\n  // adapt to light/dark-specific content\n  @if $mode == \"light\" {\n    .only-dark,\n    .only-dark ~ figcaption {\n      display: none !important;\n    }\n  } @else {\n    .only-light,\n    .only-light ~ figcaption {\n      display: none !important;\n    }\n\n    /* Adjust images in dark mode (unless they have class .only-dark or\n     * .dark-light, in which case assume they're already optimized for dark\n     * mode).\n     */\n    img:not(.only-dark, .dark-light) {\n      filter: brightness(0.8) contrast(1.2);\n    }\n\n    /* Give images a light background in dark mode in case they have\n    *  transparency and black text (unless they have class .only-dark or .dark-light, in\n    *  which case assume they're already optimized for dark mode).\n    */\n    .bd-content img:not(.only-dark, .dark-light) {\n      background-color: rgb(255 255 255);\n      border-radius: 0.25rem;\n    }\n\n    // MathJax SVG outputs should be filled to same color as text.\n    .MathJax_SVG * {\n      fill: var(--pst-color-text-base);\n    }\n  }\n}\n\n/* Defaults to light mode if data-theme is not set */\nhtml:not([data-theme]) {\n  @include theme-colors(\"light\");\n}\n\n/* NOTE: @each {...} is like a for-loop\n * https://sass-lang.com/documentation/at-rules/control/each\n */\n@each $mode in (light, dark) {\n  html[data-theme=\"#{$mode}\"] {\n    @include theme-colors($mode);\n\n    color-scheme: $mode;\n  }\n}\n\n// assign classes too, for runtime use of theme colors\n@each $col-name, $definition in $pst-semantic-colors {\n  .pst-color-#{$col-name} {\n    color: var(--pst-color-#{$col-name});\n  }\n}\n",".bd-container {\n  flex-grow: 1;\n  display: flex;\n  justify-content: center;\n\n  .bd-container__inner {\n    display: flex;\n  }\n}\n\n.bd-page-width {\n  width: 100%;\n\n  @include media-breakpoint-up(lg) {\n    max-width: $breakpoint-page-width;\n  }\n}\n","// Breakpoint viewport sizes and media queries.\n//\n// Breakpoints are defined as a map of (name: minimum width), order from small to large:\n//\n//    (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px, xxl: 1400px)\n//\n// The map defined in the `$grid-breakpoints` global variable is used as the `$breakpoints` argument by default.\n\n// Name of the next breakpoint, or null for the last breakpoint.\n//\n//    >> breakpoint-next(sm)\n//    md\n//    >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px, xxl: 1400px))\n//    md\n//    >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl xxl))\n//    md\n@function breakpoint-next($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map-keys($breakpoints)) {\n  $n: index($breakpoint-names, $name);\n  @if not $n {\n    @error \"breakpoint `#{$name}` not found in `#{$breakpoints}`\";\n  }\n  @return if($n < length($breakpoint-names), nth($breakpoint-names, $n + 1), null);\n}\n\n// Minimum breakpoint width. Null for the smallest (first) breakpoint.\n//\n//    >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px, xxl: 1400px))\n//    576px\n@function breakpoint-min($name, $breakpoints: $grid-breakpoints) {\n  $min: map-get($breakpoints, $name);\n  @return if($min != 0, $min, null);\n}\n\n// Maximum breakpoint width.\n// The maximum value is reduced by 0.02px to work around the limitations of\n// `min-` and `max-` prefixes and viewports with fractional widths.\n// See https://www.w3.org/TR/mediaqueries-4/#mq-min-max\n// Uses 0.02px rather than 0.01px to work around a current rounding bug in Safari.\n// See https://bugs.webkit.org/show_bug.cgi?id=178261\n//\n//    >> breakpoint-max(md, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px, xxl: 1400px))\n//    767.98px\n@function breakpoint-max($name, $breakpoints: $grid-breakpoints) {\n  $max: map-get($breakpoints, $name);\n  @return if($max and $max > 0, $max - .02, null);\n}\n\n// Returns a blank string if smallest breakpoint, otherwise returns the name with a dash in front.\n// Useful for making responsive utilities.\n//\n//    >> breakpoint-infix(xs, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px, xxl: 1400px))\n//    \"\"  (Returns a blank string)\n//    >> breakpoint-infix(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px, xxl: 1400px))\n//    \"-sm\"\n@function breakpoint-infix($name, $breakpoints: $grid-breakpoints) {\n  @return if(breakpoint-min($name, $breakpoints) == null, \"\", \"-#{$name}\");\n}\n\n// Media of at least the minimum breakpoint width. No query for the smallest breakpoint.\n// Makes the @content apply to the given breakpoint and wider.\n@mixin media-breakpoint-up($name, $breakpoints: $grid-breakpoints) {\n  $min: breakpoint-min($name, $breakpoints);\n  @if $min {\n    @media (min-width: $min) {\n      @content;\n    }\n  } @else {\n    @content;\n  }\n}\n\n// Media of at most the maximum breakpoint width. No query for the largest breakpoint.\n// Makes the @content apply to the given breakpoint and narrower.\n@mixin media-breakpoint-down($name, $breakpoints: $grid-breakpoints) {\n  $max: breakpoint-max($name, $breakpoints);\n  @if $max {\n    @media (max-width: $max) {\n      @content;\n    }\n  } @else {\n    @content;\n  }\n}\n\n// Media that spans multiple breakpoint widths.\n// Makes the @content apply between the min and max breakpoints\n@mixin media-breakpoint-between($lower, $upper, $breakpoints: $grid-breakpoints) {\n  $min: breakpoint-min($lower, $breakpoints);\n  $max: breakpoint-max($upper, $breakpoints);\n\n  @if $min != null and $max != null {\n    @media (min-width: $min) and (max-width: $max) {\n      @content;\n    }\n  } @else if $max == null {\n    @include media-breakpoint-up($lower, $breakpoints) {\n      @content;\n    }\n  } @else if $min == null {\n    @include media-breakpoint-down($upper, $breakpoints) {\n      @content;\n    }\n  }\n}\n\n// Media between the breakpoint's minimum and maximum widths.\n// No minimum for the smallest breakpoint, and no maximum for the largest one.\n// Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.\n@mixin media-breakpoint-only($name, $breakpoints: $grid-breakpoints) {\n  $min:  breakpoint-min($name, $breakpoints);\n  $next: breakpoint-next($name, $breakpoints);\n  $max:  breakpoint-max($next, $breakpoints);\n\n  @if $min != null and $max != null {\n    @media (min-width: $min) and (max-width: $max) {\n      @content;\n    }\n  } @else if $max == null {\n    @include media-breakpoint-up($name, $breakpoints) {\n      @content;\n    }\n  } @else if $min == null {\n    @include media-breakpoint-down($next, $breakpoints) {\n      @content;\n    }\n  }\n}\n",".pst-async-banner-revealer {\n  // Setting height to 0 and overflow to hidden allows us to add up the heights\n  // of this element's children before revealing them.\n  height: 0;\n  overflow: hidden;\n\n  // Height to be set by JavaScript, which should trigger the following\n  // transition rule (unless the user has set their system to reduce motion).\n  transition: height 300ms ease-in-out;\n\n  @media (prefers-reduced-motion) {\n    transition: none;\n  }\n}\n\n#bd-header-version-warning,\n.bd-header-announcement {\n  min-height: 3rem;\n  width: 100%;\n  display: flex;\n  position: relative;\n  align-items: center;\n  justify-content: center;\n  text-align: center;\n  padding: 0.5rem 12.5%; // Horizontal padding so the width is 75%\n  // One breakpoint less than $breakpoint-sidebar-primary. See variables/_layout.scss for more info.\n  @include media-breakpoint-down(lg) {\n    // Announcements can take a bit more width on mobile\n    padding: 0.5rem 2%;\n  }\n\n  p {\n    font-weight: bold;\n    margin: 0;\n  }\n\n  // Ensure there is enough contrast against the background\n  a {\n    color: var(--pst-color-inline-code-links);\n  }\n\n  // The \"Switch to stable version\" link (styled like a button)\n  .pst-button-link-to-stable-version {\n    @include box-shadow;\n\n    $background-color: var(--pst-color-danger);\n    $hover-background-color: var(--pst-color-danger-highlight);\n    $color: var(--pst-color-danger-text);\n\n    background-color: $background-color;\n    border-color: $background-color;\n    color: $color;\n    border-radius: 0.25rem;\n\n    &:hover {\n      background-color: $hover-background-color;\n      border-color: $hover-background-color;\n      color: $color;\n    }\n\n    &:focus-visible {\n      outline: $focus-ring-width solid $background-color;\n      outline-offset: $focus-ring-width;\n    }\n  }\n}\n\n// Bg color is now defined in the theme color palette - using our secondary color\n.bd-header-announcement {\n  background-color: var(--pst-color-secondary-bg);\n}\n\n#bd-header-version-warning {\n  background-color: var(--pst-color-danger-bg);\n}\n","/*********************************************\n* SASS Mixins\n*********************************************/\n\n/**\n * A consistent box shadow style we apply across elements.\n */\n@mixin box-shadow() {\n  box-shadow:\n    0 0.2rem 0.5rem var(--pst-color-shadow),\n    0 0 0.0625rem var(--pst-color-shadow) !important;\n}\n\n/**\n   * Set background of some cell outputs to white-ish to make sure colors work\n   * This is because many libraries make output that only looks good on white\n   */\n@mixin cell-output-background {\n  color: var(--pst-color-on-background);\n  background-color: var(--pst-color-text-base);\n  border-radius: 0.25rem;\n  padding: 0.5rem;\n}\n\n@mixin table-colors {\n  color: var(--pst-color-table);\n  border: 1px solid var(--pst-color-table-outer-border);\n\n  th,\n  td {\n    ~ th,\n    ~ td {\n      border-left: 1px solid var(--pst-color-table-inner-border);\n    }\n  }\n\n  thead {\n    tr {\n      background-color: var(--pst-color-table-heading-bg);\n      border-bottom: 2px solid var(--pst-color-primary);\n    }\n  }\n\n  tbody {\n    tr {\n      &:nth-child(odd) {\n        background-color: var(--pst-color-table-row-zebra-low-bg);\n      }\n\n      &:nth-child(even) {\n        background-color: var(--pst-color-table-row-zebra-high-bg);\n      }\n\n      &:hover {\n        background-color: var(--pst-color-table-row-hover-bg);\n      }\n    }\n  }\n}\n\n// Minimum mouse hit area\n// ----------------------\n// Ensures that the element has a minimum hit area that conforms to\n// accessibility guidelines. For WCAG AA, we need 24px x 24px, see:\n// https://www.w3.org/WAI/WCAG22/Understanding/target-size-minimum.html\n@mixin min-hit-area() {\n  box-sizing: border-box;\n  min-width: 24px;\n  min-height: 24px;\n}\n","/**\n * Main content area\n */\n.bd-main {\n  flex-grow: 1;\n  flex-direction: column;\n  display: flex;\n  min-width: 0;\n\n  .bd-content {\n    display: flex;\n    justify-content: center;\n    height: 100%;\n\n    .bd-article-container {\n      justify-content: start;\n      display: flex;\n      flex-direction: column;\n\n      // Max-width is slightly more than the W3 since our docs often have images.\n      // We shoot for about 100 characters per line instead of 80.\n      // ref: https://www.w3.org/WAI/tutorials/page-structure/styling/#line-length\n      width: 100%;\n      max-width: 60em;\n      overflow-x: auto; // Prevent wide content from pushing off the secondary sidebar\n      padding: 1rem;\n\n      .bd-article {\n        // Give a bit more verticle spacing on wide screens\n        @include media-breakpoint-up($breakpoint-sidebar-secondary) {\n          padding-top: 1.5rem;\n          padding-left: 2rem;\n        }\n      }\n    }\n  }\n}\n",".bd-footer {\n  width: 100%;\n  border-top: 1px solid var(--pst-color-border);\n\n  .bd-footer__inner {\n    display: flex;\n    flex-grow: 1;\n    padding: 1rem;\n    margin: auto;\n  }\n\n  .footer-items__start,\n  .footer-items__center,\n  .footer-items__end {\n    display: flex;\n    flex-direction: column;\n    gap: 0.5rem;\n    justify-content: center;\n    flex-grow: 1;\n  }\n\n  .footer-items__center {\n    text-align: center;\n  }\n\n  .footer-items__end {\n    text-align: end;\n  }\n\n  // So that paragraphs don't take up extra room\n  .footer-item p {\n    margin-bottom: 0;\n  }\n}\n",".bd-footer-article {\n  margin-top: auto;\n\n  .footer-article-items {\n    display: flex;\n    flex-direction: column;\n  }\n}\n",".bd-footer-content {\n  .footer-content-items {\n    display: flex;\n    flex-direction: column;\n    margin-top: auto;\n  }\n}\n","/**\n * Header at the top of the page\n * It includes the announcement bar and the navigation bar.\n */\n\n// Styling for the Icon links can be found in components/_icon-links.scss\n\n// If we want the shadow to only point downward in the future, set\n// box-shadow to: 0 0.125rem 0.25rem -0.125rem rgba(0, 0, 0, 0.11);\n.bd-header {\n  position: sticky;\n  top: 0;\n  z-index: $zindex-fixed;\n\n  // Overrides bootstrap\n  background-color: var(--pst-color-on-background) !important;\n  box-shadow: 0 0.125rem 0.25rem 0 var(--pst-color-shadow);\n  width: 100%;\n  padding: 0;\n  max-width: 100vw;\n  justify-content: center;\n\n  .bd-header__inner {\n    display: flex;\n    align-items: center;\n    height: fit-content;\n    padding-left: 1rem;\n    padding-right: 1rem;\n  }\n\n  :focus-visible {\n    border-radius: $focus-ring-radius;\n  }\n\n  // These items will define the height of the header\n  .navbar-item {\n    height: var(--pst-header-height);\n    max-height: var(--pst-header-height);\n    display: flex;\n    align-items: center;\n  }\n\n  // Hide the navbar header items on mobile because they're in the sidebar\n  .navbar-header-items {\n    display: none;\n    flex-shrink: 1;\n\n    @include media-breakpoint-up($breakpoint-sidebar-primary) {\n      display: inherit;\n      flex-grow: 1;\n      padding: 0 0 0 0.5rem;\n    }\n  }\n\n  .navbar-header-items__end,\n  .navbar-header-items__center,\n  .navbar-header-items__start {\n    display: flex;\n    align-items: center;\n    flex-flow: wrap;\n\n    // In case we wrap our items to multiple rows on small screens\n    row-gap: 0;\n  }\n\n  .navbar-header-items__end,\n  .navbar-header-items__center {\n    column-gap: 1rem;\n  }\n\n  // A little smaller because this is displayed by default on mobile\n  .navbar-header-items__start {\n    flex-shrink: 0;\n    margin-right: auto;\n    gap: 0.5rem;\n  }\n\n  .navbar-header-items__end {\n    // End navbar items should snap to the right\n    justify-content: end;\n  }\n\n  // Contains the navigation links within the navbar\n  ul.navbar-nav {\n    display: flex;\n\n    @include media-breakpoint-up($breakpoint-sidebar-primary) {\n      // Align on wide screens so the dropdown button is centered properly\n      align-items: baseline;\n    }\n\n    > li.nav-item {\n      margin-inline: 2px; // breathing room so hover and focus styles do not overlap\n\n      > .nav-link {\n        @include link-style-block;\n\n        padding-inline: 6px;\n      }\n\n      &.current {\n        > .nav-link {\n          color: var(--pst-color-primary);\n\n          // Underline the current navbar item\n          &::before {\n            border-bottom: 3px solid var(--pst-color-primary);\n          }\n        }\n      }\n\n      &.dropdown {\n        margin-inline: 4px;\n\n        button {\n          padding-inline: 8px;\n        }\n\n        > .dropdown-toggle {\n          border-radius: $focus-ring-radius; // make border radius the same for both hover ring and focus ring\n          color: var(--pst-color-text-muted);\n\n          &:focus-visible {\n            box-shadow: $focus-ring-box-shadow;\n          }\n\n          &:hover {\n            text-decoration: none;\n            box-shadow: 0 0 0 $focus-ring-width var(--pst-color-link-hover); // purple focus ring\n            // Brighten the text on hover (muted -> base)\n            color: var(--pst-color-text-base);\n          }\n        }\n      }\n    }\n\n    li a.nav-link.dropdown-item {\n      @include link-style-text;\n    }\n\n    // Dropdowns for the extra links\n    .dropdown {\n      button {\n        display: unset;\n        border: none;\n\n        &:hover {\n          @include link-style-hover;\n        }\n      }\n\n      .dropdown-menu {\n        z-index: $zindex-popover;\n        border: 1px solid var(--pst-color-border);\n        box-shadow: 0 0 0.3rem 0.1rem var(--pst-color-shadow);\n        background-color: var(--pst-color-on-background);\n        padding: 0.5rem 0;\n        margin: 0.5rem 0;\n        min-width: 20rem;\n\n        .dropdown-item {\n          // Give the items in the dropdown some breathing room but let the hit\n          // and hover area of the items extend to the edges of the menu\n          padding: 0.25rem 1.5rem;\n\n          // Override Bootstrap\n          &:focus:not(:hover, :active) {\n            background-color: inherit;\n          }\n\n          &:focus-visible {\n            z-index: 10; // keep focus ring on top (prevent the hover background of the next dropdown item from covering the ring)\n          }\n        }\n\n        // Hide the menu unless show has been clicked\n        &:not(.show) {\n          display: none;\n        }\n      }\n    }\n  }\n\n  // **************************************************************\n  // Showing and hiding the sidebar toggle buttons and header items\n  // **************************************************************\n\n  // Toggle buttons\n  button.sidebar-toggle {\n    font-size: var(--pst-font-size-icon);\n    color: var(--pst-color-muted);\n    margin-bottom: 0;\n    background-color: inherit;\n    padding: 0.5rem;\n  }\n\n  button.primary-toggle {\n    margin-right: 1rem;\n\n    @include media-breakpoint-up($breakpoint-sidebar-primary) {\n      display: none;\n    }\n  }\n\n  button.secondary-toggle {\n    margin-left: 1rem;\n\n    @include media-breakpoint-up($breakpoint-sidebar-secondary) {\n      display: none;\n    }\n  }\n}\n\n// inline the element in the navbar as long as they fit and use display block when collapsing\n@include media-breakpoint-up($breakpoint-sidebar-primary) {\n  .navbar-center-items .navbar-item {\n    display: inline-block;\n  }\n}\n\n.nav-link {\n  &:hover {\n    @include link-style-hover;\n  }\n\n  // Override Bootstrap\n  transition: none;\n\n  &.nav-external::after {\n    font: var(--fa-font-solid);\n    content: var(--pst-icon-external-link);\n    font-size: 0.75em;\n    margin-left: 0.3em;\n  }\n}\n\n.bd-navbar-elements li.nav-item i {\n  font-size: 0.7rem;\n  padding-left: 2px;\n  vertical-align: middle;\n}\n\n// THe elements next to the hamburger menu only show on narrow screens\n.navbar-persistent--mobile {\n  margin-left: auto;\n\n  @include media-breakpoint-up($breakpoint-sidebar-primary) {\n    display: none;\n  }\n}\n\n// The navbar-persistent content should only show on wide screens\n.navbar-persistent--container {\n  display: none;\n\n  @include media-breakpoint-up($breakpoint-sidebar-primary) {\n    display: flex;\n  }\n}\n",".header-article__inner {\n  display: flex;\n  padding: 0 0.5rem;\n\n  // The items define the height so that it disappears if there are no items\n  .header-article-item {\n    min-height: var(--pst-header-article-height);\n    height: var(--pst-header-article-height);\n  }\n\n  .header-article-items__start,\n  .header-article-items__end {\n    display: flex;\n    align-items: start;\n    gap: 0.5rem;\n  }\n\n  .header-article-items__end {\n    margin-left: auto;\n  }\n}\n","/**\n * The primary sidebar on the left.\n * e.g., between-pages navigation.\n */\n\n$sidebar-padding-right: 1rem;\n\n.bd-sidebar-primary {\n  display: flex;\n  flex-direction: column;\n  gap: 1rem;\n  max-height: calc(100vh - var(--pst-header-height));\n  position: sticky;\n  top: var(--pst-header-height);\n\n  @include make-col(3);\n\n  // Borders padding and whitespace\n  padding: 2rem $sidebar-padding-right 1rem 1rem;\n  border-right: 1px solid var(--pst-color-border);\n  background-color: var(--pst-color-background);\n  overflow-y: auto;\n  font-size: var(--pst-sidebar-font-size-mobile);\n\n  @include media-breakpoint-up($breakpoint-sidebar-primary) {\n    font-size: var(--pst-sidebar-font-size);\n  }\n\n  :focus-visible {\n    border-radius: $focus-ring-radius;\n  }\n\n  // override bootstrap when navlink are displayed in the sidebar\n  .nav-link {\n    font-size: var(--pst-sidebar-font-size-mobile);\n  }\n\n  &.no-sidebar {\n    border-right: 0;\n  }\n\n  &.hide-on-wide {\n    @include media-breakpoint-up($breakpoint-sidebar-primary) {\n      display: none;\n    }\n  }\n\n  // Headers shouldn't be colored in the sidebars and some extensions add headers\n  h1,\n  h2,\n  h3,\n  h4 {\n    color: var(--pst-color-text-base);\n  }\n\n  .sidebar-primary-items__start,\n  .sidebar-primary-items__end {\n    .sidebar-primary-item {\n      padding: 0.5rem 0;\n    }\n  }\n\n  // Hide the sidebar header items on widescreen since they are visible in the header\n  .sidebar-header-items {\n    display: flex;\n    flex-direction: column;\n\n    .sidebar-header-items__title {\n      font-weight: var(--pst-sidebar-header-font-weight);\n      font-size: var(--pst-sidebar-header-font-size);\n      color: var(--pst-color-text-base);\n      margin-bottom: 0.5rem;\n    }\n\n    // The dropdown toggle for extra links just shows them all instead.\n    .nav-item.dropdown {\n      // On mobile, the dropdown behaves like any other link, no hiding\n      button {\n        display: none;\n      }\n\n      .dropdown-menu {\n        display: flex;\n        flex-direction: column;\n        padding: 0;\n        margin: 0;\n        border: none;\n        background-color: inherit;\n        font-size: inherit;\n\n        .dropdown-item {\n          &:hover,\n          &:focus {\n            // In the mobile sidebar, the dropdown menu is inlined with the\n            // other links, which do not have background-color changes on hover\n            // and focus\n            background-color: unset;\n          }\n        }\n      }\n    }\n\n    .bd-navbar-elements {\n      .nav-link {\n        &:focus-visible {\n          box-shadow: none; // Override Bootstrap\n          outline: $focus-ring-outline;\n          outline-offset: $focus-ring-width;\n        }\n      }\n    }\n\n    // Center header items get displayed vertically, end items are displayed horizontally\n    .sidebar-header-items__center {\n      display: flex;\n      flex-direction: column;\n    }\n\n    // Positioning end items\n    .sidebar-header-items__end {\n      display: flex;\n      align-items: center;\n      gap: 1rem;\n    }\n\n    @include media-breakpoint-up($breakpoint-sidebar-primary) {\n      display: none;\n    }\n  }\n\n  .sidebar-primary-items__start {\n    // Add a border on mobile to separate it from the header sidebar area\n    border-top: 1px solid var(--pst-color-border);\n\n    @include media-breakpoint-up($breakpoint-sidebar-primary) {\n      border-top: none;\n    }\n  }\n\n  .sidebar-primary-items__end {\n    margin-top: auto;\n    margin-bottom: 1em;\n  }\n\n  .list-caption {\n    list-style: none;\n    padding-left: 0;\n\n    // Level 0 TOC heading is put inside the <summary> tag\n    // so let the <summary> tag take up more space\n    li.toctree-l0.has-children {\n      > details {\n        > summary {\n          position: relative;\n          height: auto;\n          width: auto;\n          display: flex;\n          justify-content: space-between;\n          align-items: baseline;\n\n          .toctree-toggle {\n            // Prevent toggle icon from getting squished by summary being a\n            // flexbox\n            flex: 0 0 auto;\n\n            // Make the level 0 chevron icon slightly bigger than descendant\n            // levels\n            .fa-chevron-down {\n              font-size: 1rem;\n            }\n          }\n        }\n      }\n    }\n  }\n\n  li.has-children {\n    $toctree-toggle-width: 30px;\n\n    position: relative;\n\n    > .reference,\n    .caption {\n      margin-right: calc(\n        $toctree-toggle-width + $focus-ring-width\n      ); // keep clear of the toggle icon\n\n      padding-top: 0.25rem; // align caption text with toggle chevron\n    }\n\n    > details {\n      > summary {\n        // Remove browser default toggle icon\n        list-style: none;\n\n        &::-webkit-details-marker {\n          display: none;\n        }\n\n        // The summary element is natively focusable, but delegate the focus state to the toggle icon\n        &:focus-visible {\n          outline: none;\n\n          > .toctree-toggle {\n            outline: $focus-ring-outline;\n            outline-offset: -$focus-ring-width; // Prevent right side of focus ring from disappearing underneath the sidebar's right edge\n          }\n        }\n\n        // Container for expand/collapse chevron icon\n        .toctree-toggle {\n          cursor: pointer;\n\n          // Position it so that it's aligned with the top right corner of the\n          // last positioned element, in this case the li.has-children\n          position: absolute;\n          top: 0;\n          right: 0;\n\n          // Give it dimensions\n          width: $toctree-toggle-width;\n          height: $toctree-toggle-width; // make it square\n\n          // Vertically and horizontally center the icon within the container\n          display: inline-flex;\n          justify-content: center;\n          align-items: center;\n\n          .fa-chevron-down {\n            font-size: 0.75rem;\n          }\n        }\n      }\n\n      // The section is open/expanded, rotate the toggle icon (chevron) so it\n      // points up instead of down\n      &[open] {\n        > summary {\n          .fa-chevron-down {\n            transform: rotate(180deg);\n          }\n        }\n      }\n    }\n  }\n}\n\n/* Between-page links and captions */\nnav.bd-links {\n  margin-right: -$sidebar-padding-right; // align toctree toggle chevrons with right edge of sidebar and allow text to flow closer to the right edge\n\n  @include media-breakpoint-up($breakpoint-sidebar-primary) {\n    display: block;\n  }\n\n  ul {\n    display: block;\n    list-style: none;\n\n    // Reduce padding of nested `ul` items a bit\n    ul {\n      padding: 0 0 0 1rem;\n    }\n  }\n\n  li > a {\n    display: block;\n    padding: 0.25rem 0.65rem;\n\n    @include link-sidebar;\n\n    box-shadow: none;\n    margin-right: $focus-ring-width; // prevent the right side focus ring from disappearing under the sidebar right edge\n\n    &.reference.external {\n      &::after {\n        font: var(--fa-font-solid);\n        content: var(--pst-icon-external-link);\n        font-size: 0.75em;\n        margin-left: 0.3em;\n      }\n    }\n  }\n\n  .current > a {\n    @include link-sidebar-current;\n\n    background-color: transparent;\n  }\n\n  // Title\n  p.bd-links__title {\n    font-size: var(--pst-sidebar-header-font-size);\n    font-weight: var(--pst-sidebar-header-font-weight);\n    margin-bottom: 0.5rem;\n  }\n\n  // Toctree captions\n  p.caption {\n    font-weight: var(--pst-sidebar-header-font-weight);\n    position: relative;\n    margin-top: 1.25rem;\n    margin-bottom: 0.5rem;\n    color: var(--pst-color-text-base);\n\n    &:first-child {\n      margin-top: 0;\n    }\n\n    font-size: var(--pst-sidebar-font-size-mobile);\n\n    @include media-breakpoint-up($breakpoint-sidebar-primary) {\n      font-size: var(--pst-sidebar-font-size);\n    }\n  }\n}\n","// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n@mixin make-row($gutter: $grid-gutter-width) {\n  --#{$prefix}gutter-x: #{$gutter};\n  --#{$prefix}gutter-y: 0;\n  display: flex;\n  flex-wrap: wrap;\n  // TODO: Revisit calc order after https://github.com/react-bootstrap/react-bootstrap/issues/6039 is fixed\n  margin-top: calc(-1 * var(--#{$prefix}gutter-y)); // stylelint-disable-line function-disallowed-list\n  margin-right: calc(-.5 * var(--#{$prefix}gutter-x)); // stylelint-disable-line function-disallowed-list\n  margin-left: calc(-.5 * var(--#{$prefix}gutter-x)); // stylelint-disable-line function-disallowed-list\n}\n\n@mixin make-col-ready() {\n  // Add box sizing if only the grid is loaded\n  box-sizing: if(variable-exists(include-column-box-sizing) and $include-column-box-sizing, border-box, null);\n  // Prevent columns from becoming too narrow when at smaller grid tiers by\n  // always setting `width: 100%;`. This works because we set the width\n  // later on to override this initial width.\n  flex-shrink: 0;\n  width: 100%;\n  max-width: 100%; // Prevent `.col-auto`, `.col` (& responsive variants) from breaking out the grid\n  padding-right: calc(var(--#{$prefix}gutter-x) * .5); // stylelint-disable-line function-disallowed-list\n  padding-left: calc(var(--#{$prefix}gutter-x) * .5); // stylelint-disable-line function-disallowed-list\n  margin-top: var(--#{$prefix}gutter-y);\n}\n\n@mixin make-col($size: false, $columns: $grid-columns) {\n  @if $size {\n    flex: 0 0 auto;\n    width: percentage(divide($size, $columns));\n\n  } @else {\n    flex: 1 1 0;\n    max-width: 100%;\n  }\n}\n\n@mixin make-col-auto() {\n  flex: 0 0 auto;\n  width: auto;\n}\n\n@mixin make-col-offset($size, $columns: $grid-columns) {\n  $num: divide($size, $columns);\n  margin-left: if($num == 0, 0, percentage($num));\n}\n\n// Row columns\n//\n// Specify on a parent element(e.g., .row) to force immediate children into NN\n// number of columns. Supports wrapping to new lines, but does not do a Masonry\n// style grid.\n@mixin row-cols($count) {\n  > * {\n    flex: 0 0 auto;\n    width: percentage(divide(1, $count));\n  }\n}\n\n// Framework grid generation\n//\n// Used only by Bootstrap to generate the correct number of grid classes given\n// any value of `$grid-columns`.\n\n@mixin make-grid-columns($columns: $grid-columns, $gutter: $grid-gutter-width, $breakpoints: $grid-breakpoints) {\n  @each $breakpoint in map-keys($breakpoints) {\n    $infix: breakpoint-infix($breakpoint, $breakpoints);\n\n    @include media-breakpoint-up($breakpoint, $breakpoints) {\n      // Provide basic `.col-{bp}` classes for equal-width flexbox columns\n      .col#{$infix} {\n        flex: 1 0 0%; // Flexbugs #4: https://github.com/philipwalton/flexbugs#flexbug-4\n      }\n\n      .row-cols#{$infix}-auto > * {\n        @include make-col-auto();\n      }\n\n      @if $grid-row-columns > 0 {\n        @for $i from 1 through $grid-row-columns {\n          .row-cols#{$infix}-#{$i} {\n            @include row-cols($i);\n          }\n        }\n      }\n\n      .col#{$infix}-auto {\n        @include make-col-auto();\n      }\n\n      @if $columns > 0 {\n        @for $i from 1 through $columns {\n          .col#{$infix}-#{$i} {\n            @include make-col($i, $columns);\n          }\n        }\n\n        // `$columns - 1` because offsetting by the width of an entire row isn't possible\n        @for $i from 0 through ($columns - 1) {\n          @if not ($infix == \"\" and $i == 0) { // Avoid emitting useless .offset-0\n            .offset#{$infix}-#{$i} {\n              @include make-col-offset($i, $columns);\n            }\n          }\n        }\n      }\n\n      // Gutters\n      //\n      // Make use of `.g-*`, `.gx-*` or `.gy-*` utilities to change spacing between the columns.\n      @each $key, $value in $gutters {\n        .g#{$infix}-#{$key},\n        .gx#{$infix}-#{$key} {\n          --#{$prefix}gutter-x: #{$value};\n        }\n\n        .g#{$infix}-#{$key},\n        .gy#{$infix}-#{$key} {\n          --#{$prefix}gutter-y: #{$value};\n        }\n      }\n    }\n  }\n}\n\n@mixin make-cssgrid($columns: $grid-columns, $breakpoints: $grid-breakpoints) {\n  @each $breakpoint in map-keys($breakpoints) {\n    $infix: breakpoint-infix($breakpoint, $breakpoints);\n\n    @include media-breakpoint-up($breakpoint, $breakpoints) {\n      @if $columns > 0 {\n        @for $i from 1 through $columns {\n          .g-col#{$infix}-#{$i} {\n            grid-column: auto / span $i;\n          }\n        }\n\n        // Start with `1` because `0` is an invalid value.\n        // Ends with `$columns - 1` because offsetting by the width of an entire row isn't possible.\n        @for $i from 1 through ($columns - 1) {\n          .g-start#{$infix}-#{$i} {\n            grid-column-start: $i;\n          }\n        }\n      }\n    }\n  }\n}\n","/**\n * Secondary sidebar on the right.\n * e.g., in-page table of contents.\n */\n.bd-sidebar-secondary {\n  display: flex;\n  order: 2;\n  flex-shrink: 0;\n  flex-direction: column;\n  position: sticky;\n  top: var(--pst-header-height);\n  max-height: calc(100vh - var(--pst-header-height));\n  padding: 2rem 1rem 1rem;\n  width: var(--pst-sidebar-secondary);\n  font-size: var(--pst-sidebar-font-size-mobile);\n\n  @include media-breakpoint-up($breakpoint-sidebar-secondary) {\n    font-size: var(--pst-sidebar-font-size);\n  }\n\n  // Color and border\n  background-color: var(--pst-color-background);\n  overflow-y: auto;\n}\n\n.sidebar-secondary-item {\n  padding: 0.5rem;\n\n  @include media-breakpoint-up($breakpoint-sidebar-secondary) {\n    border-left: 1px solid var(--pst-color-border);\n    padding-left: 1rem;\n  }\n\n  i {\n    padding-right: 0.5rem;\n  }\n}\n","/*******************************************************************************\n* Rules for the UX/UI of sidebar sliding drawers on mobile\n* Note that this sheet controls styles across many parts of the theme\n* It is aggregated into this one sheet instead of being split across\n* components in order to keep it easier to debug in one place.\n* It is broken up into major sections below.\n*/\n\n/*******************************************************************************\n* Buttons and overlays\n*/\ninput.sidebar-toggle {\n  display: none;\n}\n\n// Background overlays\nlabel.overlay {\n  background-color: black;\n  opacity: 0.5;\n  height: 0;\n  width: 0;\n  position: fixed;\n  top: 0;\n  left: 0;\n  transition: opacity $animation-time ease-out;\n  z-index: $zindex-modal-backdrop;\n}\n\ninput {\n  // Show the correct overlay when its input is checked\n  &#pst-primary-sidebar-checkbox:checked + label.overlay.overlay-primary,\n  &#pst-secondary-sidebar-checkbox:checked + label.overlay.overlay-secondary {\n    height: 100vh;\n    width: 100vw;\n  }\n\n  // Primary sidebar slides in from the left\n  &#pst-primary-sidebar-checkbox:checked ~ .bd-container .bd-sidebar-primary {\n    visibility: visible;\n    margin-left: 0;\n  }\n\n  // Secondary sidebar slides in from the right\n  &#pst-secondary-sidebar-checkbox:checked\n    ~ .bd-container\n    .bd-sidebar-secondary {\n    visibility: visible;\n    margin-right: 0;\n  }\n}\n\n/*******************************************************************************\n* Sidebar drawer behavior\n*/\n\n/**\n * Behavior for sliding drawer elements that will be toggled with an input\n *\n * NOTE: We use this mixin to define the toggle behavior on narrow screens,\n * And the wide-screen behavior of the sections is defined in their own section\n * .scss files.\n */\n@mixin sliding-drawer($side: \"left\") {\n  position: fixed;\n  top: 0;\n  z-index: $zindex-modal;\n  height: 100vh;\n  max-height: 100vh;\n  width: 75%;\n  flex-grow: 0.75;\n  max-width: 350px;\n  transition:\n    visibility $animation-time ease-out,\n    margin $animation-time ease-out;\n  visibility: hidden;\n\n  @if $side == \"right\" {\n    margin-right: -75%;\n    right: 0;\n  } @else {\n    margin-left: -75%;\n    left: 0;\n  }\n}\n\n// Primary sidebar hides/shows at earlier widths\n@include media-breakpoint-up($breakpoint-sidebar-primary) {\n  .sidebar-toggle.primary-toggle {\n    display: none;\n  }\n\n  input#pst-primary-sidebar-checkbox {\n    &:checked + label.overlay.overlay-primary {\n      height: 0;\n      width: 0;\n    }\n  }\n\n  .bd-sidebar-primary {\n    margin-left: 0;\n    visibility: visible;\n  }\n}\n\n.bd-sidebar-primary {\n  @include media-breakpoint-down($breakpoint-sidebar-primary) {\n    @include sliding-drawer(\"left\");\n  }\n}\n\n.bd-sidebar-secondary {\n  @include media-breakpoint-down($breakpoint-sidebar-secondary) {\n    @include sliding-drawer(\"right\");\n  }\n}\n","/**\n * Breadcrumbs for parent pages meant for the article header\n */\nul.bd-breadcrumbs {\n  list-style: none;\n  padding-left: 0;\n  display: flex;\n  flex-wrap: wrap;\n\n  // Font size slightly smaller to avoid cluttering up space too much\n  font-size: 0.8rem;\n\n  li.breadcrumb-item {\n    display: flex;\n    align-items: center;\n\n    // Style should look like heavier in-page links\n    // keeping visited in the default link colour\n    font-weight: bold;\n\n    a {\n      @include link-style-text;\n    }\n\n    // Items that aren't the home have a caret to the left\n    &:not(.breadcrumb-home)::before {\n      font: var(--fa-font-solid);\n      font-size: 0.8rem;\n      content: var(--pst-breadcrumb-divider);\n      color: var(--pst-color-text-muted);\n      padding: 0 0.5rem;\n    }\n  }\n}\n","/**\n * Icon links in the navbar\n */\n\n.pst-navbar-icon {\n  // Extra specificity needed for overrides\n  html & {\n    @include min-hit-area;\n    @include link-style-block;\n\n    display: flex;\n    align-items: center;\n    justify-content: center;\n\n    // Bootstrap overrides\n    border-radius: 0;\n    border: none;\n    font-size: 1rem;\n    line-height: $line-height-body; // Override Boostrap, which defines a separate line-height for buttons\n    padding: $navbar-link-padding-y 0; // Horizontal white space in nav bar between items is controlled via column gap rule on the container.\n\n    // Make the navbar icon links have the same size as the navbar text links\n    height: calc(2 * $navbar-link-padding-y + $line-height-body * 1rem);\n  }\n}\n\nul.navbar-icon-links {\n  display: flex;\n  flex-flow: row wrap;\n  column-gap: 1rem;\n  justify-content: space-evenly;\n  align-items: center;\n  padding-left: 0;\n  margin-bottom: 0;\n  list-style: none;\n\n  // Icons styling\n  i {\n    &.fa-brands,\n    &.fa-regular,\n    &.fa-solid {\n      vertical-align: middle;\n      font-style: normal;\n      font-size: var(--pst-font-size-icon);\n    }\n\n    /* Social media buttons hard-code the brand color */\n    &.fa-square-twitter::before {\n      color: #55acee;\n    }\n\n    &.fa-square-gitlab::before {\n      color: #548;\n    }\n\n    &.fa-bitbucket::before {\n      color: #0052cc;\n    }\n  }\n\n  // Force images to be icon-sized\n  img.icon-link-image {\n    height: 1.5em;\n    border-radius: 0.2rem;\n  }\n\n  .fa-pydata {\n    stroke: var(--pst-color-background);\n    stroke-linejoin: round;\n    stroke-width: 0.35;\n  }\n}\n","/**\n * Logo in the navbar\n */\n\n.navbar-brand {\n  position: relative;\n  height: var(--pst-header-height);\n  max-height: var(--pst-header-height);\n  padding: 0.5rem 0;\n  width: auto;\n  margin: 0;\n  display: flex;\n\n  // Ensure that the logo stays the same length while other content shrinks\n  flex-shrink: 0;\n  align-items: center;\n  gap: 0.5rem;\n\n  // If there's no logo image, we use a p element w/ the site title\n  p {\n    color: var(--pst-color-text-base);\n    margin-bottom: 0;\n  }\n\n  // If there's a logo, it'll be in an img block\n  img {\n    max-width: 100%;\n    height: 100%;\n    width: auto;\n  }\n\n  &:hover,\n  &:visited:hover {\n    @include link-style-hover;\n\n    color: var(--pst-color-text-base);\n  }\n}\n","/**\n * Navigation links in the navbar and icon links\n */\nul.navbar-nav {\n  // Reduce padding of nested `ul` items a bit\n  ul {\n    padding: 0 0 0 1rem;\n  }\n\n  // Navbar links - do not have an underline by default\n  li {\n    display: flex;\n    flex-direction: column;\n\n    a {\n      display: flex;\n      align-items: center;\n      height: 100%;\n      padding-top: $navbar-link-padding-y;\n      padding-bottom: $navbar-link-padding-y;\n\n      @include link-style-text;\n    }\n  }\n}\n","/**\n * The list of in-page TOC links\n */\n.page-toc {\n  .section-nav {\n    padding-left: 0;\n    border-bottom: none;\n\n    ul {\n      padding-left: 1rem;\n    }\n  }\n\n  // override bootstrap settings\n  .nav-link {\n    font-size: var(--pst-sidebar-font-size-mobile);\n\n    @include media-breakpoint-up($breakpoint-sidebar-secondary) {\n      font-size: var(--pst-sidebar-font-size);\n    }\n  }\n\n  .onthispage {\n    color: var(--pst-color-text-base);\n    font-weight: var(--pst-sidebar-header-font-weight);\n    margin-bottom: 0.5rem;\n  }\n}\n","/**\n* Previous / Next navigation buttons\n**/\n.prev-next-area {\n  width: 100%;\n\n  p {\n    color: var(--pst-color-text-muted);\n    margin: 0 0.3em;\n    line-height: 1.3em;\n  }\n\n  i {\n    font-size: 1.2em;\n  }\n\n  a {\n    // So that buttons align with icons\n    display: flex;\n    align-items: center;\n    border: none;\n    padding: 10px;\n    max-width: 45%;\n    overflow-x: hidden;\n    color: var(--pst-color-text-muted);\n    text-decoration: none;\n\n    p.prev-next-title {\n      @include link-style-default;\n\n      font-weight: var(--pst-admonition-font-weight-heading);\n      font-size: 1.1em;\n    }\n\n    &:hover,\n    &:visited:hover {\n      p.prev-next-title {\n        @include link-style-hover;\n      }\n    }\n\n    .prev-next-info {\n      flex-direction: column;\n      margin: 0 0.5em;\n\n      .prev-next-subtitle {\n        text-transform: capitalize;\n      }\n    }\n\n    &.left-prev {\n      float: left;\n    }\n\n    &.right-next {\n      float: right;\n\n      div.prev-next-info {\n        text-align: right;\n      }\n    }\n  }\n}\n","/**\n * Search field\n **/\n.bd-search {\n  position: relative;\n  padding-left: 0.5rem;\n  gap: 0.5rem;\n  background-color: var(--pst-color-background);\n  border-radius: $admonition-border-radius;\n  border: 1px solid var(--pst-color-border);\n  color: var(--pst-color-text-base);\n\n  // Background should always be same color regardless of active or not\n  &:active {\n    background-color: var(--pst-color-background);\n    color: var(--pst-color-text-muted);\n  }\n\n  .icon {\n    position: absolute;\n    color: var(--pst-color-border);\n    left: 25px;\n  }\n\n  .fa-solid.fa-magnifying-glass {\n    position: absolute;\n    left: calc((2.5rem - 0.7em) / 2);\n    color: var(--pst-color-text-muted);\n  }\n\n  input {\n    // Inner-text of the search bar\n    &::placeholder {\n      color: var(--pst-color-text-muted);\n    }\n\n    // Remove the little \"x\" that pops up when you start typing\n    &::-webkit-search-cancel-button,\n    &::-webkit-search-decoration {\n      appearance: none;\n    }\n  }\n\n  // Shows off the keyboard shortcuts for the button\n  .search-button__kbd-shortcut {\n    display: flex;\n    position: absolute;\n    right: 0.5rem;\n    color: var(--pst-color-border);\n  }\n}\n\n.form-control {\n  background-color: var(--pst-color-background);\n  color: var(--pst-color-text-base);\n\n  &:focus,\n  &:focus-visible {\n    border: none;\n    background-color: var(--pst-color-background);\n    color: var(--pst-color-text-muted);\n  }\n}\n\n/**\n * Search button - located in the navbar\n */\n\n// Search link icon should be a bit bigger since it is separate from icon links\n.search-button i {\n  font-size: 1.3rem;\n}\n\n// __search-container will only show up when we use the search pop-up bar\n.search-button__search-container,\n.search-button__overlay {\n  display: none;\n}\n\n.search-button__wrapper.show {\n  .search-button__search-container {\n    display: flex;\n\n    // Center in middle of screen just underneath header\n    position: fixed;\n    z-index: $zindex-modal;\n    top: 30%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    right: 1rem;\n    margin-top: 0.5rem;\n    width: 90%;\n    max-width: 800px;\n  }\n\n  .search-button__overlay {\n    display: flex;\n    position: fixed;\n    z-index: $zindex-modal-backdrop;\n    background-color: black;\n    opacity: 0.5;\n    width: 100%;\n    height: 100%;\n    top: 0;\n    left: 0;\n  }\n\n  form.bd-search {\n    flex-grow: 1;\n    padding-top: 0;\n    padding-bottom: 0;\n  }\n\n  // Font and input text a bit bigger\n  svg,\n  input {\n    font-size: var(--pst-font-size-icon);\n  }\n}\n\n/**\n * The search button component that looks like a field.\n * Lives at components/search-button-field.html\n */\n.search-button-field {\n  $search-button-border-radius: 1.5em;\n\n  display: inline-flex;\n  align-items: center;\n  border: var(--pst-color-border) solid 1px;\n  border-radius: $search-button-border-radius;\n  color: var(--pst-color-text-muted);\n  padding: 0.5em;\n  background-color: var(--pst-color-surface);\n\n  &:hover {\n    box-shadow: 0 0 0 $focus-ring-width var(--pst-color-link-hover);\n  }\n\n  &:focus-visible {\n    border-radius: $search-button-border-radius;\n  }\n\n  // The keyboard shotcut text\n  .search-button__default-text {\n    font-size: var(--bs-nav-link-font-size);\n    font-weight: var(--bs-nav-link-font-weight);\n    margin-right: 0.5em;\n    margin-left: 0.5em;\n  }\n\n  .kbd-shortcut__modifier {\n    font-size: 0.75em;\n  }\n\n  // Ensures that all the text lines up in the middle\n  > * {\n    align-items: center;\n  }\n\n  // Only the icon should be visible on narrow screens\n  > :not(svg) {\n    display: none;\n\n    @include media-breakpoint-up(lg) {\n      display: flex;\n    }\n  }\n}\n","/**\n * The 'Hide Search Matches' button.\n * This only shows up when a person lands on a page after clicking a search result.\n * Clicking it removes the highlighting of the search term from the page.\n * We want it to behave like a button.\n */\ndiv#searchbox {\n  // Leave `#searchbox` rules empty so that it doesn't show at all when it is empty\n  p.highlight-link {\n    margin: 1rem 0;\n    width: fit-content;\n\n    // A bit more margin on wide screens to mimic article behavior\n    @include media-breakpoint-up($breakpoint-sidebar-secondary) {\n      margin-left: 2rem;\n    }\n\n    // Put outer shadow on this one so that we can darken the link w/ an inner shadow\n    @include box-shadow;\n\n    // Style the button to look like a Sphinx Design button\n    a {\n      border-radius: 0.25rem;\n      font-size: 1.25rem;\n      padding: 0.75rem;\n      background-color: var(--pst-color-primary);\n      color: var(--pst-color-primary-text);\n      text-decoration: none;\n\n      // The box shadow is inset so that it darkens the button on hover\n      transition: box-shadow 0.25s ease-out;\n\n      &:hover {\n        box-shadow: inset 0 0 50px 50px rgb(0 0 0 / 25%);\n      }\n\n      &::before {\n        content: var(--pst-icon-search-minus);\n        color: unset;\n        font: var(--fa-font-solid);\n        margin-right: 0.5rem;\n      }\n    }\n  }\n}\n","/**\n * Light/dark theme switcher\n */\n\n.theme-switch-button {\n  .theme-switch {\n    display: none;\n\n    &:active {\n      text-decoration: none;\n      color: var(--pst-color-link-hover);\n    }\n\n    .fa-lg {\n      aspect-ratio: 1 / 1;\n    }\n  }\n}\n\n@each $mode in auto, light, dark {\n  html[data-mode=\"#{$mode}\"]\n    .theme-switch-button\n    .theme-switch[data-mode=\"#{$mode}\"] {\n    display: inline; // inline needed for span height to be calculated using inherited font size and line height\n  }\n}\n","button.btn.version-switcher__button {\n  border-color: var(--pst-color-border);\n  color: var(--pst-color-text-base);\n\n  // Add a margin on narrow screens to avoid feeling cramped\n  margin-bottom: 1em;\n\n  @include media-breakpoint-up($breakpoint-sidebar-primary) {\n    margin-bottom: unset;\n  }\n\n  &:hover {\n    box-shadow: 0 0 0 $focus-ring-width var(--pst-color-secondary);\n    border-color: transparent;\n  }\n\n  &:active {\n    color: var(--pst-color-text-base);\n    border-color: var(--pst-color-border);\n  }\n\n  &:focus-visible {\n    border-color: transparent;\n  }\n}\n\n.version-switcher__menu {\n  border-color: var(--pst-color-border);\n  border-radius: var(--bs-dropdown-border-radius);\n\n  a.list-group-item {\n    background-color: var(--pst-color-on-background);\n    color: var(--pst-color-text-base);\n    padding: 0.75rem 1.25rem;\n\n    &:not(:last-child) {\n      border-bottom: 1px solid var(--pst-color-border);\n    }\n\n    &:hover {\n      @include link-style-hover;\n\n      background-color: var(--pst-color-surface);\n    }\n\n    &.active {\n      @include link-sidebar-current;\n\n      position: relative;\n      z-index: 1;\n\n      span::before {\n        content: \"\";\n        width: 100%;\n        height: 100%;\n        position: absolute;\n        z-index: -1;\n        left: 0;\n        top: 0;\n      }\n    }\n\n    &:focus-visible {\n      z-index: 10; // keep focus ring on top (prevent the hover background of the next dropdown item from covering the ring)\n    }\n  }\n}\n\n// Font behavior on mobile\nbutton.version-switcher__button,\n.version-switcher__menu {\n  font-size: 1.1em; // A bit smaller than other menu font\n  z-index: $zindex-modal; // higher than the sidebars\n\n  // Make sure it meets WCAG target size requirement no matter the version\n  // string displayed in the button\n  @include min-hit-area;\n\n  @include media-breakpoint-up($breakpoint-sidebar-primary) {\n    font-size: unset;\n  }\n}\n","/* Collapsing of the TOC sidebar while scrolling */\n\n/* Nav: hide second level (shown on .active) */\n\nnav.page-toc {\n  // A little extra space before the buttons\n  margin-bottom: 1rem;\n}\n\n.bd-toc .nav {\n  .nav {\n    display: none;\n\n    // So we can manually specify a level as visible in the config\n    &.visible {\n      display: block;\n    }\n  }\n\n  > .active > ul {\n    display: block;\n  }\n}\n\n// Each entry of the in-page TOC\n.toc-entry {\n  display: block;\n\n  a > code {\n    color: var(--pst-color-text-muted);\n  }\n\n  a.nav-link {\n    display: block;\n    padding: 0.125rem 0;\n\n    // Padding w/ negative margin so the top TOC item highlight overlaps w/ the TOC border\n    padding-left: 1rem;\n    margin-left: -1rem;\n\n    @include link-sidebar;\n\n    &.active {\n      @include link-sidebar-current;\n\n      background-color: transparent;\n\n      &:hover {\n        color: var(--pst-color-link-hover);\n      }\n    }\n\n    &:focus-visible {\n      border-radius: $focus-ring-radius;\n    }\n  }\n}\n","div.versionadded,\ndiv.versionchanged,\ndiv.deprecated {\n  vertical-align: middle;\n  margin: 1.5625em auto;\n  padding: 0 0.6rem;\n  overflow: hidden;\n\n  /* break-inside has replaced page-break-inside and is widely usable since 2019 */\n  page-break-inside: avoid;\n  break-inside: avoid;\n  border-left: 0.2rem solid;\n  border-color: var(--pst-color-info);\n  border-radius: $admonition-border-radius;\n  background-color: var(--pst-color-on-background);\n\n  @include box-shadow;\n\n  position: relative;\n\n  > p {\n    margin-bottom: 0.6rem;\n    margin-top: 0.6rem;\n  }\n}\n\ndiv.versionadded {\n  border-color: var(--pst-color-success);\n  background-color: var(--pst-color-success-bg);\n}\n\ndiv.versionchanged {\n  border-color: var(--pst-color-warning);\n  background-color: var(--pst-color-warning-bg);\n}\n\ndiv.deprecated {\n  border-color: var(--pst-color-danger);\n  background-color: var(--pst-color-danger-bg);\n}\n\nspan.versionmodified {\n  font-weight: 600;\n\n  &::before {\n    margin-right: 0.6rem;\n    color: var(--pst-color-info);\n    font: var(--fa-font-solid);\n    content: var(--pst-icon-versionmodified-default);\n  }\n}\n\nspan.versionmodified.added {\n  &::before {\n    color: var(--pst-color-success);\n    content: var(--pst-icon-versionmodified-added);\n  }\n}\n\nspan.versionmodified.changed {\n  &::before {\n    color: var(--pst-color-warning);\n    content: var(--pst-icon-versionmodified-changed);\n  }\n}\n\nspan.versionmodified.deprecated {\n  &::before {\n    color: var(--pst-color-danger);\n    content: var(--pst-icon-versionmodified-deprecated);\n  }\n}\n",".sidebar-indices-items {\n  display: flex;\n  flex-direction: column;\n  border-top: 1px solid var(--pst-color-border);\n\n  @include media-breakpoint-up($breakpoint-sidebar-primary) {\n    border-top: none;\n  }\n\n  .sidebar-indices-items__title {\n    font-weight: var(--pst-sidebar-header-font-weight);\n    font-size: var(--pst-sidebar-header-font-size);\n    color: var(--pst-color-text-base);\n    margin-bottom: 0.5rem;\n  }\n\n  ul.indices-link {\n    margin-right: -1rem;\n    list-style: none;\n    padding: 0;\n\n    li > a {\n      display: block;\n      padding: 0.25rem 0;\n      color: var(--pst-color-text-muted);\n\n      &:hover {\n        color: var(--pst-color-primary);\n        text-decoration: none;\n        background-color: transparent;\n      }\n    }\n  }\n}\n",".bd-sidebar-primary div#rtd-footer-container {\n  position: sticky;\n  bottom: -1rem;\n  margin: -1rem; // ignore sidebar padding\n\n  .rst-versions.rst-badge {\n    position: unset;\n    font-size: 0.9em;\n    font-family: var(--pst-font-family-base);\n    max-width: unset;\n\n    .rst-current-version {\n      display: flex;\n      align-items: center;\n      gap: 0.2rem;\n      height: 2.5rem;\n      transition: background-color 0.2s ease-out;\n      background-color: var(--pst-color-background);\n      color: var(--pst-color-success);\n      border-top: 1px solid var(--pst-color-border);\n    }\n\n    .fa.fa-book {\n      color: var(--pst-color-text-muted);\n      margin-right: auto;\n\n      &::after {\n        color: var(--pst-color-text-base);\n        content: \"Read The Docs\";\n        font-family: var(--pst-font-family-base);\n        font-weight: var(--pst-admonition-font-weight-heading);\n      }\n    }\n\n    .fa.fa-caret-down {\n      color: var(--pst-color-text-muted);\n    }\n  }\n\n  .rst-versions.rst-badge.shift-up {\n    .rst-current-version {\n      border-bottom: 1px solid var(--pst-color-border);\n    }\n  }\n\n  .rst-other-versions {\n    background-color: var(--pst-color-surface);\n    color: var(--pst-color-text-base);\n\n    dl {\n      dd a {\n        color: var(--pst-color-text-muted);\n      }\n    }\n\n    hr {\n      background-color: var(--pst-color-border);\n    }\n\n    small a {\n      color: var(--pst-color-link);\n    }\n\n    input {\n      padding-left: 0.5rem;\n      border: 1px solid var(--pst-color-border);\n      background-color: var(--pst-color-surface);\n    }\n  }\n}\n","/**\n * Admonitions and blocks of styled content.\n * Admonitions CSS originally inspired by https://squidfunk.github.io/mkdocs-material/getting-started/\n */\n$admonition-border-radius: 0.25rem;\n$admonition-left-border-width: 0.2rem;\n\ndiv.admonition,\n.admonition {\n  margin: 1.5625em auto;\n  padding: 0 0.6rem 0.8rem;\n  overflow: hidden;\n\n  /* break-inside has replaced page-break-inside and is widely usable since 2019 */\n  page-break-inside: avoid;\n  break-inside: avoid;\n  border-left: $admonition-left-border-width solid;\n  border-color: var(--pst-color-info);\n  border-radius: $admonition-border-radius;\n  background-color: var(--pst-color-on-background);\n\n  @include box-shadow;\n\n  // Last item should have no spacing since we'll control that w/ padding\n  *:last-child {\n    margin-bottom: 0;\n  }\n\n  // Items after the title should be indented\n  p.admonition-title ~ * {\n    margin-left: 1.4rem;\n    margin-right: 1.4rem;\n  }\n\n  // Lists need to have left margin so they don't spill into it\n  > ol,\n  > ul {\n    margin-left: 1em;\n  }\n\n  // Defaults for all admonitions\n  > .admonition-title {\n    margin: 0 -0.6rem;\n    padding: 0.4rem 0.6rem 0.4rem 2rem;\n    font-weight: var(--pst-admonition-font-weight-heading);\n    position: relative;\n\n    @include legacy-backdrop-placeholder;\n\n    background-color: var(--pst-color-info-bg);\n\n    // now that we use solid colors we want the title on top\n    z-index: 1;\n\n    &::after {\n      position: absolute;\n      left: 0.5rem;\n      width: 1rem;\n      height: 1rem;\n      color: var(--pst-color-info);\n      font: var(--fa-font-solid);\n      line-height: inherit;\n      content: var(--pst-icon-admonition-default);\n      opacity: 1;\n    }\n\n    // Next element after title needs some extra upper-space\n    + * {\n      margin-top: 0.4em;\n    }\n  }\n\n  &.attention {\n    border-color: var(--pst-color-attention);\n\n    > .admonition-title {\n      background-color: var(--pst-color-attention-bg);\n\n      &::after {\n        color: var(--pst-color-attention);\n        content: var(--pst-icon-admonition-attention);\n      }\n    }\n  }\n\n  &.caution {\n    border-color: var(--pst-color-warning);\n\n    > .admonition-title {\n      background-color: var(--pst-color-warning-bg);\n\n      &::after {\n        color: var(--pst-color-warning);\n        content: var(--pst-icon-admonition-caution);\n      }\n    }\n  }\n\n  &.warning {\n    border-color: var(--pst-color-warning);\n\n    > .admonition-title {\n      background-color: var(--pst-color-warning-bg);\n\n      &::after {\n        color: var(--pst-color-warning);\n        content: var(--pst-icon-admonition-warning);\n      }\n    }\n  }\n\n  &.danger {\n    border-color: var(--pst-color-danger);\n\n    > .admonition-title {\n      background-color: var(--pst-color-danger-bg);\n\n      &::after {\n        color: var(--pst-color-danger);\n        content: var(--pst-icon-admonition-danger);\n      }\n    }\n  }\n\n  &.error {\n    border-color: var(--pst-color-danger);\n\n    > .admonition-title {\n      background-color: var(--pst-color-danger-bg);\n\n      &::after {\n        color: var(--pst-color-danger);\n        content: var(--pst-icon-admonition-error);\n      }\n    }\n  }\n\n  &.hint {\n    border-color: var(--pst-color-success);\n\n    > .admonition-title {\n      background-color: var(--pst-color-success-bg);\n\n      &::after {\n        color: var(--pst-color-success);\n        content: var(--pst-icon-admonition-hint);\n      }\n    }\n  }\n\n  &.tip {\n    border-color: var(--pst-color-success);\n\n    > .admonition-title {\n      background-color: var(--pst-color-success-bg);\n\n      &::after {\n        color: var(--pst-color-success);\n        content: var(--pst-icon-admonition-tip);\n      }\n    }\n  }\n\n  &.important {\n    border-color: var(--pst-color-attention);\n\n    > .admonition-title {\n      background-color: var(--pst-color-attention-bg);\n\n      &::after {\n        color: var(--pst-color-attention);\n        content: var(--pst-icon-admonition-important);\n      }\n    }\n  }\n\n  &.note {\n    border-color: var(--pst-color-info);\n\n    > .admonition-title {\n      background-color: var(--pst-color-info-bg);\n\n      &::after {\n        color: var(--pst-color-info);\n        content: var(--pst-icon-admonition-note);\n      }\n    }\n  }\n\n  &.seealso {\n    border-color: var(--pst-color-success);\n\n    > .admonition-title {\n      background-color: var(--pst-color-success-bg);\n\n      &::after {\n        color: var(--pst-color-success);\n        content: var(--pst-icon-admonition-seealso);\n      }\n    }\n  }\n\n  &.admonition-todo {\n    border-color: var(--pst-color-secondary);\n\n    > .admonition-title {\n      background-color: var(--pst-color-secondary-bg);\n\n      &::after {\n        color: var(--pst-color-secondary);\n        content: var(--pst-icon-admonition-todo);\n      }\n    }\n  }\n\n  /**\n   * Special-case for a `sidebar` class that makes the admonition float to\n   * the right like the {sidebar} directive.\n   */\n  &.sidebar {\n    max-width: 40%;\n    float: right;\n    clear: both;\n    margin-left: 0.5rem;\n    margin-top: 0;\n\n    // Undo the .sidebar directive border\n    border-width: 0 0 0 $admonition-left-border-width;\n\n    // TODO: these semantic-color-names border-color rules might no longer be\n    //       needed when we drop support for Sphinx 4 / docutils 0.17\n    &.attention,\n    &.important {\n      border-color: var(--pst-color-attention);\n    }\n\n    &.caution,\n    &.warning {\n      border-color: var(--pst-color-warning);\n    }\n\n    &.danger,\n    &.error {\n      border-color: var(--pst-color-danger);\n    }\n\n    &.hint,\n    &.tip,\n    &.seealso {\n      border-color: var(--pst-color-success);\n    }\n\n    &.note,\n    &.todo {\n      border-color: var(--pst-color-info);\n    }\n\n    // No inner margin since we have less horizontal space w/ the sidebar\n    p.admonition-title ~ * {\n      margin-left: 0;\n      margin-right: 0;\n    }\n  }\n}\n\n/**************************************************************\n * Similar content blocks that are not technically admonitions.\n */\n\n/**\n * Topics and the {contents} directive\n */\n// Docutils <= 0.17\ndiv.topic,\ndiv.topic.contents,\n// Docutils >= 0.18\nnav.contents,\naside.topic {\n  display: flex;\n  flex-direction: column;\n  background-color: var(--pst-color-surface);\n  border-color: var(--pst-color-border);\n  border-radius: $admonition-border-radius;\n  padding: 1rem 1.25rem;\n\n  @include box-shadow;\n\n  .topic-title {\n    margin: 0 0 0.5rem;\n  }\n\n  // Over-ride text color to ensure enough contrast\n  p {\n    color: var(--pst-color-on-surface) !important;\n  }\n\n  // Over-ride large default padding\n  ul.simple {\n    padding-left: 1rem;\n\n    ul {\n      // So that sub-lists will have a bit less padding\n      padding-left: 2em;\n    }\n  }\n}\n\n/**\n * Sidebar directive\n */\naside.sidebar {\n  border: 1px solid var(--pst-color-border);\n  background-color: var(--pst-color-surface);\n  border-radius: $admonition-border-radius;\n\n  // to match the admonition-styled sidebars:\n  margin-left: 0.5rem;\n  padding: 0;\n\n  > *:last-child {\n    padding-bottom: 1rem;\n  }\n\n  p.sidebar-title {\n    position: relative;\n    margin-bottom: 0;\n    padding-top: 0.5rem;\n    padding-bottom: 0.5rem;\n    border-bottom: 1px solid var(--pst-color-border);\n    font-family: var(--pst-font-family-heading);\n    font-weight: var(--pst-admonition-font-weight-heading);\n  }\n\n  // Add margin to the first non-`.sidebar-title` item\n  > *:not(.sidebar-title):first-child,\n  > p.sidebar-title + * {\n    margin-top: 1rem;\n  }\n\n  > * {\n    padding-left: 1rem;\n    padding-right: 1rem;\n  }\n}\n\n/**\n * Rubrics look kind of like section headers\n */\np.rubric {\n  display: flex;\n  flex-direction: column;\n}\n\n/**\n * Seealso is kind of like a vertically-collapsed admonition\n */\n.seealso dd {\n  margin-top: 0;\n  margin-bottom: 0;\n}\n","/**\n * Miscellaneous color functions and mixins\n**/\n\n@use \"sass:list\";\n@use \"sass:map\";\n@use \"sass:meta\";\n@use \"sass:math\";\n@use \"sass:string\";\n\n// We must add ::before pseudo-element to some theme components (such as admonitions)\n// because users were instructed to customize the background color this way.\n@mixin legacy-backdrop-placeholder {\n  &::before {\n    content: \"\";\n    width: 100%;\n    height: 100%;\n    position: absolute;\n    left: 0;\n    top: 0;\n    z-index: -1;\n\n    // So that hovering over the text within background is still possible.\n    // Otherwise the background overlays the text and you cannot click or select easily.\n    // ref: https://developer.mozilla.org/en-US/docs/Web/CSS/pointer-events\n    pointer-events: none;\n  }\n}\n\n/**\n* Function to get items from nested maps\n*/\n// @param {Map} $map - Map\n// @param {Arglist} $keys - Keys to fetc\n// @return {*}\n@function map-deep-get($map, $keys...) {\n  @each $key in $keys {\n    $map: map.get($map, $key);\n  }\n\n  @return $map;\n}\n\n/**\n  * Function to check if the color needs converting to a \"color\" type\n  * if it is a string we cannot use other color manipulation functions\n  * It is used to create the sphinx-design colours as these are often interpolated\n  */\n// @param {String/Color} $color - Color definition from map\n// @return {Color} - Color type (in hex)\n@function check-color($color) {\n  @if meta.type-of($color) == string {\n    $color: from-hex($color);\n  }\n\n  @return $color;\n}\n\n/**\n  * Function to convert the string representation of a color to a color type (hex)\n  */\n// @param {String} $string - String representation of a color\n@function from-hex($string) {\n  $string-lower: string.to-lower-case($string);\n  $r: \"\";\n  $g: \"\";\n  $b: \"\";\n  $hex: \"0\" \"1\" \"2\" \"3\" \"4\" \"5\" \"6\" \"7\" \"8\" \"9\" \"a\" \"b\" \"c\" \"d\" \"e\" \"f\";\n  $length: string.length($string);\n  $max: if($length == 4, 1, 2);\n\n  // Check for length accuracy\n  @if $length != 4 and $length != 7 {\n    @return $string;\n  }\n\n  // Loop from the second character (omitting #)\n  @for $i from 2 through $length {\n    $c: string.slice($string-lower, $i, $i);\n\n    // If wrong character, return\n    @if not list.index($hex, $c) {\n      @return $string;\n    }\n\n    @if string.length($r) < $max {\n      $r: $r + $c;\n    } @else if string.length($g) < $max {\n      $g: $g + $c;\n    } @else if string.length($b) < $max {\n      $b: $b + $c;\n    }\n  }\n\n  @if $length == 4 {\n    $r: $r + $r;\n    $g: $g + $g;\n    $b: $b + $b;\n  }\n\n  @return rgb(hex-to-dec($r), hex-to-dec($g), hex-to-dec($b));\n}\n\n@function hex-to-dec($string) {\n  $hex: \"0\" \"1\" \"2\" \"3\" \"4\" \"5\" \"6\" \"7\" \"8\" \"9\" \"a\" \"b\" \"c\" \"d\" \"e\" \"f\";\n  $string: string.to-lower-case($string);\n  $length: string.length($string);\n  $dec: 0;\n\n  @for $i from 1 through $length {\n    $factor: 1 + (15 * ($length - $i));\n    $index: list.index($hex, string.slice($string, $i, $i));\n    $dec: $dec + $factor * ($index - 1);\n  }\n\n  @return $dec;\n}\n","// Style API docs from sphinx' autodoc / autosummary\n\n/*******************************************************************************\n* Styling for field lists\n*/\n\n/* grey highlighting of 'parameter' and 'returns' field */\ntable.field-list {\n  border-collapse: separate;\n  border-spacing: 10px;\n  margin-left: 1px;\n\n  th.field-name {\n    padding: 1px 8px 1px 5px;\n    white-space: nowrap;\n    background-color: var(--pst-color-surface);\n  }\n\n  /* italic font for parameter types */\n  td.field-body {\n    p {\n      font-style: italic;\n\n      > strong {\n        font-style: normal;\n      }\n    }\n\n    /* reduced space around parameter description */\n    blockquote {\n      border-left: none;\n      margin: 0 0 0.3em;\n      padding-left: 30px;\n    }\n  }\n}\n\n/*******************************************************************************\n* Styling for autosummary tables\n*/\n\n.table.autosummary {\n  // The first column (with the signature) should not wrap\n  td:first-child {\n    white-space: nowrap;\n  }\n}\n\n/* overriding basic.css to use our own monospace font */\n.sig {\n  font-family: var(--pst-font-family-monospace);\n}\n\n/* C++ specific styling - overriding the basic.css to avoid custom colors */\n\n.sig-inline.c-texpr,\n.sig-inline.cpp-texpr {\n  font-family: unset;\n}\n\n.sig.c .k,\n.sig.c .kt,\n.sig.cpp .k,\n.sig.cpp .kt {\n  color: var(--pst-color-text-base);\n}\n\n.sig.c .m,\n.sig.cpp .m {\n  color: var(--pst-color-text-base);\n}\n\n.sig.c .s,\n.sig.c .sc,\n.sig.cpp .s,\n.sig.cpp .sc {\n  color: var(--pst-color-text-base);\n}\n\n// addition\n\n// .sig.c .sig-name .n,\n// .sig.cpp .sig-name .n {\n//   color: var(--pst-color-inline-code);\n// }\n\n.sig-name {\n  color: var(--pst-color-inline-code);\n}\n\n.sig-param .o,\n.sig-param .default_value {\n  color: var(--pst-color-text-muted);\n  font-weight: normal;\n}\n\n// change target color for dark theme\ndt:target,\nspan.highlighted {\n  background-color: var(--pst-color-target);\n}\n\n.viewcode-back {\n  font-family: var(--pst-font-family-base);\n}\n\n.viewcode-block:target {\n  border-top: 1px solid var(--pst-color-border);\n  border-bottom: 1px solid var(--pst-color-border);\n  position: relative;\n  background-color: var(--pst-color-target);\n}\n\ndl > dt > a:has(.viewcode-link) {\n  // Sphinx applies a `float:right` rule to the .viewcode-line span, which\n  // exposes a browser glitch in the focus ring. It seems the browser creates\n  // two separate boxes, an empty box where the anchor element gets laid out and\n  // then another box around the anchor's contents that have been floated right.\n  // Firefox draws the focus ring around the empty anchor element box. Chrome\n  // draws two focus rings: one around the empty anchor and one around the\n  // floated-right element. To fix the glitch, we apply the float rule on the\n  // parent rather than the child.\n  float: right;\n\n  .viewcode-link {\n    float: none;\n  }\n}\n\n/*******************************************************************************\n* Styling for autosummary titles like \"parameters\" and \"returns\"\n*/\n\n// the API selector\n// from https://github.com/pradyunsg/furo/blob/main/src/furo/assets/styles/content/_api.sass#L6)\ndl[class]:not(.option-list, .field-list, .footnote, .glossary, .simple) {\n  // increase margin bottom after the dl elements\n  margin-bottom: 3rem;\n\n  dd {\n    margin-left: 2rem;\n\n    // Fix until this will be solved to Sphinx https://github.com/sphinx-doc/sphinx/issues/10815\n    & > dl.simple > dt {\n      display: flex;\n    }\n  }\n\n  dl.field-list {\n    display: grid;\n    grid-template-columns: unset;\n  }\n\n  dt.field-odd,\n  dt.field-even {\n    margin-top: 0.2rem;\n    margin-bottom: 0.1rem;\n    background-color: var(--pst-color-surface);\n  }\n}\n","/**\n * Code block styling\n * Note that we inherit a lot of styling from Bootstrap so not many rules here.\n */\n\n// General code block behavior\n// Unset bootstrap behavior\ndiv[class*=\"highlight-\"],\ndiv.highlight,\ndiv.literal-block-wrapper {\n  display: flex;\n  flex-direction: column;\n  width: unset;\n  border-radius: $admonition-border-radius;\n  break-inside: avoid;\n}\n\n// Code blocks with captions\n// There's a wrapper when the code block has a title\ndiv.literal-block-wrapper {\n  border: 1px solid var(--pst-color-border);\n  border-radius: $admonition-border-radius;\n\n  // This is where the title goes\n  div.code-block-caption {\n    margin: 0;\n    border-bottom: 1px solid var(--pst-color-border);\n    padding: 0.5rem;\n    font-size: 1rem;\n    font-weight: var(--pst-font-weight-caption);\n\n    a.headerlink {\n      font-size: inherit;\n    }\n  }\n\n  // Remove the upper border radius since we want it to connect with the title\n  // Remove the box shadow so the wrapper gets the shadow instead\n  div[class*=\"highlight-\"] {\n    margin: 0;\n    border-radius: 0;\n\n    pre {\n      border: none;\n      box-shadow: none;\n    }\n  }\n}\n\n/**\n * In-line code\n */\ncode.literal {\n  padding: 0.1rem 0.25rem;\n  background-color: var(--pst-color-surface);\n  border: 1px solid var(--pst-color-border);\n  border-radius: 0.25rem;\n}\n\na > code {\n  color: var(--pst-color-inline-code-links);\n}\n\n// Fix for Sphinx's \"highlight\" directive - this is an issue with our accessible pygments theme\n// and the colour we are using for the background of the code blocks.\nhtml[data-theme=\"light\"] .highlight .nf {\n  color: #0078a1 !important;\n}\n\n// Minimum opacity needed for linenos to be WCAG AA conformant\nspan.linenos {\n  opacity: 0.8 !important;\n}\n","figure > a,\nfigure > a > img,\nfigure > img,\nfigure > video {\n  display: block;\n  margin-left: auto;\n  margin-right: auto;\n}\n\nfigure {\n  a.headerlink {\n    // So that header link doesn't push caption to be off-center.\n    position: absolute;\n    font-size: inherit;\n  }\n\n  // Default headerlink hover doesn't trigger on figures\n  &:hover a.headerlink {\n    visibility: visible;\n  }\n\n  figcaption {\n    font-family: var(--pst-font-family-heading);\n    font-weight: var(--pst-font-weight-caption);\n    color: var(--pst-color-text-muted);\n    margin-left: auto;\n    margin-right: auto;\n    margin-top: 0.3rem;\n    text-align: center;\n\n    & > p:last-child {\n      // Don't add extra margin to already existing figure bottom margin\n      margin-bottom: 0;\n    }\n\n    p {\n      text-align: start;\n      display: inline-block;\n    }\n\n    table.table {\n      width: fit-content;\n      margin-left: auto;\n      margin-right: auto;\n    }\n  }\n}\n","// For consistency, add bracket around footnotes/citations which are\n// cited more than once. E.g. [Newton](1,2) instead of Newton(1,2)\ndt.label > span.brackets:not(:only-child)::before {\n  content: \"[\";\n}\n\ndt.label > span.brackets:not(:only-child)::after {\n  content: \"]\";\n}\n\n// Make footnote as a superscript\na.footnote-reference {\n  vertical-align: super;\n  font-size: small;\n}\n\n// Docutils 0.18 uses an `aside.footnote` container with different internal structure\naside.footnote {\n  margin-bottom: 0.5rem;\n\n  &:last-child {\n    margin-bottom: 1rem;\n  }\n\n  span.label,\n  span.backrefs {\n    font-weight: bold;\n  }\n\n  &:target {\n    background-color: var(--pst-color-target);\n  }\n}\n","/**\n * Hacky fixes that don't fit cleanly into other sections\n */\n\n// Ensure user highlighting/selecting behaves properly\n// From https://stackoverflow.com/a/34372191\ntable.highlighttable td.linenos,\nspan.linenos,\ndiv.doctest > div.highlight span.gp {\n  /* gp: Generic.Prompt */\n  user-select: none;\n}\n","// Override bootstrap by restoring the basic theme default.\ndd {\n  margin-top: 3px;\n  margin-bottom: 10px;\n  margin-left: 30px;\n}\n\nol,\nul {\n  padding-inline-start: 2rem;\n\n  li > p:first-child {\n    margin-bottom: 0.25rem;\n    margin-top: 0.25rem;\n  }\n}\n","// GitHub blockquote style\nblockquote {\n  padding: 1em;\n  color: var(--pst-color-text-muted);\n  border-left: 0.25em solid var(--pst-color-blockquote-notch);\n  border-radius: $admonition-border-radius;\n  position: relative;\n\n  p {\n    color: var(--pst-color-text-base);\n  }\n\n  // remove padding from included line-block to avoid duplication\n  .line-block {\n    margin: 0;\n  }\n\n  // remove margin bottom for the last p\n  p:last-child {\n    margin-bottom: 0;\n  }\n\n  @include legacy-backdrop-placeholder;\n\n  background-color: var(--pst-color-surface);\n\n  // Ensure there is enough contrast against the background\n  a {\n    color: var(--pst-color-inline-code-links);\n  }\n\n  // hack to make the text in the blockquote selectable\n  &::before {\n    z-index: -1;\n  }\n}\n","/**\n * Span-level styling within content\n */\n\nspan.guilabel {\n  border: 1px solid var(--pst-color-info);\n  font-size: 80%;\n  font-weight: 700;\n  border-radius: 4px;\n  padding: 2.4px 6px;\n  margin: auto 2px;\n  position: relative;\n\n  @include legacy-backdrop-placeholder;\n\n  background-color: var(--pst-color-info-bg);\n}\n\na.reference.download::before {\n  content: var(--pst-icon-download);\n  font: var(--fa-font-solid);\n  font-size: 0.8em;\n  padding: 0 0.25em;\n  color: var(--pst-color-text-muted);\n}\n","/**\n * Tables\n */\n\ntable {\n  // default to table-center\n  margin-left: auto;\n  margin-right: auto;\n\n  &.table-right {\n    margin-right: 0;\n  }\n\n  &.table-left {\n    margin-left: 0;\n  }\n}\n\n// customize table caption from bootstrap\n// to display them on top and centered\ntable caption {\n  text-align: center;\n  caption-side: top;\n  color: var(--pst-color-text-muted);\n}\n\n// MyST Markdown tables use these classes to control alignment\nth,\ntd {\n  &.text-left {\n    text-align: left;\n  }\n\n  &.text-right {\n    text-align: right;\n  }\n\n  &.text-center {\n    text-align: center;\n  }\n}\n\n// override bootstrap table colors\n.table {\n  @include table-colors;\n\n  --bs-table-bg: transparent; // background\n  --bs-table-color: var(\n    --pst-color-text-base\n  ); // ensure text and bullets are visible\n}\n\n.pst-scrollable-table-container {\n  // Put a horizontal scrollbar just below tables that are too wide to fit\n  // within the main column\n  overflow-x: auto;\n}\n","/**\n * Style the toctree component in pages (avoid modifying the navbars)\n */\n.toctree-wrapper {\n  p.caption {\n    font-size: 1.5em;\n    margin-bottom: 0;\n  }\n\n  & > ul {\n    padding-left: 0;\n  }\n\n  li[class^=\"toctree-l\"] {\n    list-style: none;\n    margin-bottom: 0.2em;\n\n    & > a {\n      list-style: none;\n      font-size: 1.1em;\n    }\n\n    & > ul {\n      list-style: none;\n      padding-inline-start: 1.5em;\n    }\n  }\n\n  // slightly bigger font for l1\n  .toctree-l1 > a {\n    font-size: 1.3em;\n  }\n}\n\ndiv.topic.contents,  // Docutils <= 0.17\nnav.contents  // Docutils >= 0.18\n{\n  // Style similarly to toctree\n  ul.simple {\n    list-style: none;\n    padding-left: 0;\n  }\n}\n","/**\n * Mathematics via MathJax.\n *\n * This is designed for MathJax v3\n * ref: https://www.sphinx-doc.org/en/master/usage/extensions/math.html#module-sphinx.ext.mathjax\n */\n\n// Applies to all math elements\nspan.math,\ndiv.math {\n  align-items: center;\n  display: flex;\n  max-width: 100%;\n\n  // This will be over-ridden for the y-direction and divs\n  overflow: hidden;\n}\n\n// Inline-only\nspan.math {\n  display: inline-flex;\n}\n\n// Block-level only\ndiv.math {\n  gap: 0.5em;\n\n  // So that the eqno shows up after the equation\n  flex-direction: row-reverse;\n\n  // The equation number / link\n  span.eqno a.headerlink {\n    position: relative;\n    font-size: 1em;\n  }\n\n  // The math container\n  mjx-container {\n    flex-grow: 1;\n    padding-bottom: 0.2rem;\n    overflow: auto;\n\n    // Set height to 0 so that it does not cause scrollbars to appear\n    // ref: https://github.com/mathjax/MathJax/issues/2521\n    mjx-assistive-mml {\n      height: 0;\n    }\n  }\n}\n","/**\n * ABlog\n * ref: https://ablog.readthedocs.io/\n */\n\n/**\n * Sidebar template components\n */\n.ablog-sidebar-item {\n  h2,\n  h3 {\n    font-size: var(--pst-sidebar-header-font-size);\n\n    // Remove unnecessary vertical whitespace\n    margin-top: 0.5rem;\n\n    // The headers are all links, but this makes them hard to parse\n    // So we change the colors to make them look like headers\n    a {\n      color: var(--pst-color-text-base);\n    }\n  }\n\n  ul {\n    // No bullet points for the primary sidebar items\n    list-style: none;\n    padding-left: 0;\n\n    // Otherwise a scrollbar randomly shows up\n    overflow-y: hidden;\n\n    // List of recent post items\n    display: flex;\n    flex-direction: column;\n    gap: 0.5em;\n    margin-bottom: 0;\n\n    // The ablog cloud should move horizontally\n    &.ablog-cloud {\n      flex-flow: row wrap;\n      gap: 0.5rem;\n\n      // Vertical-align tag clouds\n      li {\n        // Center the tag cloud items\n        display: flex;\n        align-items: center;\n      }\n    }\n  }\n}\n\n/**\n * Previous / next buttons at the bottom\n */\n.ablog__prev-next {\n  font-size: 1.2em;\n  display: flex;\n  padding: 1rem 0;\n\n  // The bottom previous / next arrows\n  > span {\n    // To ensure that the whole thing fits on one line even if there are long titles\n    display: flex;\n    max-width: 45%;\n\n    // Links within each span have the collection of icon + text\n    a {\n      display: flex;\n      align-items: center;\n      margin-left: auto;\n      gap: 1rem;\n      line-height: 1.5rem;\n\n      i::before {\n        color: var(--pst-color-text-base);\n      }\n    }\n  }\n\n  // The first span is for the previous page and aligns to the left\n  span.ablog__prev {\n    i.fa-arrow-circle-left::before {\n      content: var(--pst-icon-angle-left);\n    }\n  }\n\n  // The second span is just an empty space so we remove it because we're\n  // positioning with flex\n  span.ablog__spacer {\n    display: none;\n  }\n\n  // The third span is aligned to the right\n  span.ablog__next {\n    margin-left: auto;\n    text-align: right;\n\n    i.fa-arrow-circle-right::before {\n      content: var(--pst-icon-angle-right);\n    }\n  }\n}\n\n/**\n * {postlist} directive and posts page\n */\n.ablog__collection,\n.postlist {\n  padding-left: 0;\n\n  .ablog-post {\n    list-style: none;\n\n    // Post metadata tags (author, links ,etc) should be a bit smaller\n    .ablog-archive {\n      display: flex;\n      flex-flow: row wrap;\n      gap: 1rem;\n      list-style: none;\n      font-size: 0.75rem;\n      padding-left: 0;\n    }\n\n    // Title line should be a bit bigger and bold to stand out\n    .ablog-post-title {\n      margin-top: 0;\n      font-size: 1.25rem;\n\n      a {\n        font-weight: bold;\n      }\n    }\n\n    // Read more button should be a bit bigger\n    .ablog-post-expand {\n      margin-bottom: 0.5rem;\n    }\n  }\n}\n","/**\n * Special cases for Bootstrap functionality\n */\n\n// Bootstrap adds margin to their general container class. However, sphinx/docutils\n// can also generate output with the container class, but in those cases we should\n// not add the margin from bootstrap. Same for max-width.\n.docutils.container {\n  padding-left: unset;\n  padding-right: unset;\n  margin-left: unset;\n  margin-right: unset;\n  max-width: unset;\n  width: unset;\n}\n\n.btn {\n  --bs-btn-focus-box-shadow: #{$btn-focus-box-shadow};\n}\n","/**\n * Sphinx Copybutton\n * ref: https://sphinx-copybutton.readthedocs.io/\n */\n\ndiv.highlight button.copybtn {\n  // Nicer spacing\n  display: flex;\n  align-items: center;\n  justify-content: center;\n\n  // Don't over-ride the success color\n  &:not(.success) {\n    color: var(--pst-color-muted);\n  }\n\n  border: none;\n  background-color: var(--pst-color-surface);\n\n  &:hover {\n    &:not(.success) {\n      color: var(--pst-color-text);\n      background-color: var(--pst-color-shadow);\n    }\n  }\n\n  // Tooltip styling\n  &.o-tooltip--left::after {\n    color: var(--pst-color-text);\n    background-color: var(--pst-color-surface);\n  }\n\n  &:focus {\n    // For keyboard users, make the copy button visible when focussed.\n    opacity: 1;\n  }\n\n  &:focus-visible {\n    outline: $focus-ring-outline;\n  }\n}\n\ndiv.highlight:has(button.copybtn) {\n  // Make sure the code block has enough height for the copy button.\n  // Sphinx-copybutton sets 0.3em top offset plus 1.7em height:\n  // https://github.com/executablebooks/sphinx-copybutton/blob/master/sphinx_copybutton/_static/copybutton.css\n  min-height: 2em;\n}\n","// adapt ethical ad to the theme\n#ethical-ad-placement {\n  .ethical-sidebar a,\n  .ethical-sidebar a:visited,\n  .ethical-sidebar a:hover,\n  .ethical-sidebar a:active,\n  .ethical-footer a,\n  .ethical-footer a:visited,\n  .ethical-footer a:hover,\n  .ethical-footer a:active {\n    color: var(--pst-color-text-base);\n  }\n\n  .ethical-sidebar,\n  .ethical-footer {\n    background-color: var(--pst-color-background);\n    border: 1px solid var(--pst-color-border);\n    border-radius: 5px;\n    color: var(--pst-color-text-base);\n    font-size: 14px;\n    line-height: 20px;\n  }\n}\n","/**\n * Styles for various Sphinx execution libraries.\n * For now, where these define output sections, we simply revert their background\n * to be a \"light theme\" background. This ensures that inputs/outputs behave similarly,\n * because the CSS is often controlled by each package.\n * In the future, we might add dark theme support for specific packages.\n */\n\n/******************************************************************************\n * Jupyter Sphinx\n */\n\n.bd-content div.jupyter_container {\n  // We don't want borders around the whole container, just around code cells\n  border: none;\n  background-color: unset;\n  box-shadow: none;\n\n  // Code cells should have the same style as our other code objects\n  div.output,\n  div.highlight {\n    border-radius: 0.25rem;\n  }\n\n  div.highlight {\n    background-color: var(--pst-color-surface);\n  }\n\n  // Ensure the style is the same as our code cells. Jupyter Sphinx makes it tiny.\n  .cell_input,\n  .cell_output {\n    border-radius: 0.25rem;\n\n    pre {\n      padding: 1rem;\n    }\n  }\n}\n","/* Styles for graphviz generated output from Sphinx */\n\n/* Style the inheritance diagram such that it has a dark mode */\nhtml[data-theme=\"dark\"] div.graphviz > object.inheritance {\n  filter: brightness(0.8) invert(0.82) contrast(1.2);\n  color-scheme: normal;\n}\n","/**\n * Special-cases for packages in the PyData ecosystem\n */\n\n// xarray output display in bootstrap\n.xr-wrap[hidden] {\n  display: block !important;\n}\n\n// ipywidgets\n.jp-OutputArea-output.lm-Widget {\n  // override overflow:hidden rule from Lumino (.lm-Widget) to allow scrolling\n  overflow: auto;\n}\n","/*******************************************************************************\n * Special-cases for the sphinx-design library, mainly to make it compatible\n * with the dark/light themes of pydata-sphinx-theme.\n *\n * NOTE: sphinx-design uses !important quite liberally, so here we must do the\n * same for our overrides to have any effect.\n */\n@use \"../variables/color\" as pst-color;\n@use \"sass:color\";\n@use \"sass:map\";\n@use \"sass:meta\";\n@use \"sass:string\";\n\n/*******************************************************************************\n  * Color and variables\n  *\n  * This is a list of the semantic color names from sphinx-design (we only\n  * need to override variables that sphinx-design has actually defined).\n  * https://github.com/executablebooks/sphinx-design/blob/9226a12a/style/_colors.scss#L31-L43\n  */\n$sd-semantic-color-names: (\n  \"primary\",\n  \"secondary\",\n  \"success\",\n  \"info\",\n  \"warning\",\n  \"danger\",\n  \"light\",\n  \"muted\",\n  \"dark\",\n  \"black\",\n  \"white\"\n);\n\n/**\n  * Here we create some extra --pst-color-* variables and use\n  * them to override the value of the corresponding sphinx-design variables.\n  * This is easier than re-writing the sphinx-design rules. Even easier would be\n  * directly assigning our values to the --sd-color-* variables, but then our\n  * downstream users couldn't override *our* colors and have it affect buttons\n  * and badges.\n  *\n  * First, define the extra keys needed to cover the full range of semantic\n  * color names used in sphinx-design, then merge them with the names we\n  * already define for our own needs.\n  * see https://sphinx-design.readthedocs.io/en/latest/css_variables.html\n  */\n$extra-semantic-colors: (\n  \"white\": $foundation-white,\n  \"light\": (\n    light: $foundation-light-gray,\n    bg-light: color.scale($foundation-light-gray, $lightness: 30%),\n    dark: $foundation-light-gray,\n    bg-dark: color.scale($foundation-light-gray, $lightness: -30%),\n  ),\n  \"muted\": (\n    light: $foundation-muted-gray,\n    bg-light: color.scale($foundation-muted-gray, $lightness: 30%),\n    dark: $foundation-light-gray,\n    bg-dark: color.scale($foundation-muted-gray, $lightness: -30%),\n  ),\n  \"dark\": $foundation-dark-gray,\n  \"black\": $foundation-black,\n);\n$all-colors: map.merge($pst-semantic-colors, $extra-semantic-colors);\n\n@mixin create-sd-colors($value, $name) {\n  // define the pst variables, so that downstream user overrides will work\n  --pst-color-#{$name}: #{$value};\n\n  // we are now using a11y-combination to calculate the text color - this is based\n  // on the WCAG color contrast guidelines\n  --pst-color-#{$name}-text: #{a11y-combination($value)};\n\n  // TODO: highlight seems to be used for buttons @trallard to fix on a11y follow-up work\n  --pst-color-#{$name}-highlight: #{color.adjust($value, $lightness: -15%)};\n\n  // override the sphinx-design variables\n  --sd-color-#{$name}: var(--pst-color-#{$name});\n  --sd-color-#{$name}-text: var(--pst-color-#{$name}-text);\n\n  // TODO: highlight seems to be used for buttons @trallard to fix on a11y follow-up work\n  --sd-color-#{$name}-highlight: var(--pst-color-#{$name}-highlight);\n}\n\n// Now we override the --sd-color-* variables.\n@each $mode in (light, dark) {\n  html[data-theme=\"#{$mode}\"] {\n    // check if this color is defined differently for light/dark\n    @each $name in $sd-semantic-color-names {\n      $definition: map.get($all-colors, $name);\n\n      @if meta.type-of($definition) == map {\n        @each $key, $value in $definition {\n          @if string.index($key, $mode) {\n            // since now we define the bg colours in the semantic colours and not\n            // by changing opacity, we need to check if the key contains bg and the\n            // correct mode (light/dark)\n            @if string.index($key, \"bg\") {\n              --sd-color-#{$name}-bg: #{$value};\n\n              // create local variable\n              $value: check-color($value);\n\n              --sd-color-#{$name}-bg-text: #{a11y-combination($value)};\n            } @else {\n              $value: check-color($value);\n\n              @include create-sd-colors($value, $name);\n            }\n          }\n        }\n      } @else {\n        $value: map.get($all-colors, $name);\n\n        @include create-sd-colors($value, $name);\n      }\n    }\n  }\n}\n\n// Make sure the color border variables are set using our variables\n@each $mode in (light, dark) {\n  html[data-theme=\"#{$mode}\"] {\n    --sd-color-card-border: var(--pst-color-border);\n  }\n}\n\n/*******************************************************************************\n  * shadows\n  */\nhtml[data-theme=\"light\"] {\n  .sd-shadow-xs,\n  .sd-shadow-sm,\n  .sd-shadow-md,\n  .sd-shadow-lg {\n    @include box-shadow;\n  }\n}\n\n/*******************************************************************************\n  * cards\n  */\n\n.bd-content .sd-card {\n  border: 1px solid var(--pst-color-border);\n\n  // TODO - --pst-color-panel-background is not defined... where is this coming from?\n  .sd-card-header {\n    background-color: var(--pst-color-panel-background);\n    border-bottom: 1px solid var(--pst-color-border);\n  }\n\n  .sd-card-footer {\n    background-color: var(--pst-color-panel-background);\n    border-top: 1px solid var(--pst-color-border);\n  }\n\n  .sd-card-body {\n    background-color: var(--pst-color-panel-background);\n  }\n\n  // Focus ring for link-cards\n  .sd-stretched-link:focus-visible {\n    // Don't put the focus ring on the <a> element (it has zero height in Sphinx Design cards)\n    outline: none;\n\n    // Put the focus ring on the <a> element's ::after pseudo-element\n    &::after {\n      outline: $focus-ring-outline;\n      border-radius: 0.25rem; // copied from Sphinx Design CSS for .sd-card\n    }\n  }\n\n  &.sd-card-hover:hover {\n    border-color: var(--pst-color-link-hover);\n  }\n}\n\n/*******************************************************************************\n  * tabs\n  */\n\n.bd-content .sd-tab-set {\n  > input {\n    // Active tab label\n    &:checked + label {\n      border-style: solid solid none;\n      border-color: var(--pst-color-primary) var(--pst-color-primary)\n        transparent; // top LR bottom\n\n      border-width: 0.125rem 0.125rem 0;\n      border-radius: 0.125rem 0.125rem 0 0;\n      background-color: var(--pst-color-on-background);\n      transform: translateY(0.125rem);\n      color: var(--pst-color-primary);\n    }\n\n    &:focus-visible + label {\n      border: 0.125rem solid var(--pst-color-accent);\n      border-radius: 0.125rem;\n      background-color: var(--pst-color-accent-bg);\n      color: var(--pst-color-on-surface);\n    }\n\n    // Hover label\n    &:not(:checked, :focus-visible) + label:hover {\n      border-color: transparent;\n      color: var(--pst-color-secondary);\n      text-decoration-line: underline;\n      text-decoration-thickness: $link-hover-decoration-thickness;\n    }\n  }\n\n  // Tab label\n  > label {\n    color: var(--pst-color-on-surface);\n    border: 0.125rem solid transparent;\n    border-radius: 0.125rem 0.125rem 0 0;\n    background-color: var(--pst-color-surface);\n    padding: 0 0.75em;\n    margin-inline-end: 0.25rem;\n    line-height: 1.95;\n\n    html[data-theme=\"dark\"] & {\n      background-color: var(--pst-color-on-background);\n    }\n  }\n\n  // panel\n  .sd-tab-content {\n    border: 0.125rem solid var(--pst-color-primary);\n    border-radius: 0.1875rem;\n    box-shadow: unset;\n    padding: 0.625rem;\n    background-color: var(--pst-color-on-background);\n  }\n}\n\n/*******************************************************************************\n* Dropdowns\n*/\n\ndetails.sd-dropdown {\n  // Remove all borders to over-ride SD behavior, and we'll add our own later\n  border: 0 !important;\n\n  // Drop shadow should behave same as admonitions\n  @include box-shadow;\n\n  // Header is where the \"clickable\" box goes\n  summary.sd-card-header {\n    border: 0 !important;\n    display: flex;\n    align-items: center;\n    position: relative; // So background color works\n    font-weight: 600;\n    padding-top: 0.5rem;\n    padding-bottom: 0.5rem;\n\n    // Set a variable that we can re-use for colors later\n    // We must set this in the current and content sibling container\n    // so that it is defined in both places\n    --pst-sd-dropdown-color: var(--pst-gray-500);\n    --pst-sd-dropdown-bg-color: var(--pst-color-surface);\n\n    & + div.sd-summary-content {\n      border: 0;\n\n      --pst-sd-dropdown-color: var(--sd-color-card-border);\n    }\n\n    @each $name in $sd-semantic-color-names {\n      &.sd-bg-#{$name} {\n        --pst-sd-dropdown-color: var(--sd-color-#{$name});\n        --pst-sd-dropdown-bg-color: var(--sd-color-#{$name}-bg);\n\n        // Otherwise it won't be defined in the sibling element\n        & + div.sd-summary-content {\n          --pst-sd-dropdown-color: var(--sd-color-#{$name});\n          --pst-sd-dropdown-bg-color: var(--sd-color-#{$name}-bg);\n        }\n      }\n      &.sd-bg-text-#{$name} {\n        // Use the WCAG conformant text color\n        color: var(--sd-color-#{$name}-bg-text) !important;\n      }\n    }\n\n    @include legacy-backdrop-placeholder;\n\n    background-color: var(--pst-sd-dropdown-bg-color) !important;\n\n    // Add a left border with the same structure as our admonitions\n    border-left: 0.2rem solid var(--pst-sd-dropdown-color) !important;\n\n    // stylelint-disable-next-line no-duplicate-selectors\n    & + div.sd-summary-content {\n      border-left: 0.2rem solid var(--pst-sd-dropdown-color) !important;\n      border-bottom-left-radius: calc(0.25rem - 1px);\n      background-color: var(--pst-color-on-background);\n    }\n\n    span.sd-summary-icon {\n      display: inline-flex;\n      align-items: center;\n      color: var(--pst-sd-dropdown-color) !important;\n\n      svg {\n        opacity: 1;\n      }\n    }\n\n    // Positioning of the caret\n    .sd-summary-up,\n    .sd-summary-down {\n      top: 0.7rem;\n    }\n\n    // Focus ring\n    &:focus-visible {\n      outline: $focus-ring-outline;\n      outline-offset: -$focus-ring-width;\n    }\n  }\n}\n\n/*******************************************************************************\n* Buttons (which in Sphinx Design are actually links that look like buttons)\n* ref: https://sphinx-design.readthedocs.io/en/pydata-theme/badges_buttons.html#buttons\n*/\nhtml {\n  .sd-btn {\n    min-width: 2.25rem;\n    padding: 0.3125rem 0.75rem 0.4375rem; // 5px 12px 7px\n\n    &:hover {\n      @include link-style-hover; // override Sphinx Design\n\n      text-decoration-thickness: 1px;\n    }\n  }\n\n  @each $name in $sd-semantic-color-names {\n    .sd-btn-#{$name},\n    .sd-btn-outline-#{$name} {\n      &:focus-visible {\n        // Override Sphinx Design's use of -highlight colors. The -highlight\n        // colors are 15% darker, so this would create the effect of darkening\n        // the button when focused but we just want the button to have a focus\n        // ring of the same (non-highlight) color.\n        background-color: var(--sd-color-#{$name}) !important;\n        border-color: var(--sd-color-#{$name}) !important;\n        outline: var(--sd-color-#{$name}) solid $focus-ring-width;\n        outline-offset: $focus-ring-width;\n      }\n    }\n  }\n}\n","/**\n * Sphinx togglebutton\n */\n\n.bd-content {\n  @mixin chevron-down {\n    .toggle-chevron-right {\n      transform: rotate(90deg); // point chevron down\n      transition: none; // match non-animated behavior of other chevrons on site\n    }\n  }\n\n  @mixin chevron-up {\n    .toggle-chevron-right {\n      transform: rotate(-90deg); // point chevron up\n      transition: none; // match non-animated behavior of other chevrons on site\n    }\n  }\n\n  // Admonition toggles\n  .admonition {\n    button.toggle-button {\n      color: inherit;\n\n      // When disclosure widget is closed\n      &.toggle-button-hidden {\n        @include chevron-down;\n      }\n\n      // When open\n      @include chevron-up;\n    }\n\n    // Focus ring\n    // ----------\n    // Sphinx-togglebutton makes the entire admonition header clickable, but\n    // only the button within the header is focusable. We want the entire\n    // clickable area to be surrounded with a focus ring, so that's why we use\n    // the :focus-within selector, rather than a :focus-visible selector on the\n    // button.\n    &:focus-within {\n      overflow: visible;\n\n      // The complicated focus ring styles here are a consequence of the markup\n      // and border styles for this particular admonition class. (For the other\n      // type of admonition on this site, the focus ring style is achieved with\n      // simple `outline` and `outline-offset` rules on the admonition's\n      // header.) The problem is that Sphinx-togglebutton puts the admonition's\n      // left border on the outermost container (rather than separately setting\n      // the left border on the container's children). This makes it complicated\n      // to get the focus ring to simultaneously cover the left border in the\n      // header and align perfectly on the right with the body.\n      .admonition-title:focus-within::before {\n        content: \"\";\n        transform: translateX(\n          -$admonition-left-border-width\n        ); // align left edges of admonition and ring\n\n        width: calc(100% + $admonition-left-border-width); // align right edges\n        height: 100%;\n        border: $focus-ring-outline;\n        border-radius: $focus-ring-width;\n      }\n\n      // When expanded, sharpen the bottom left and right corners of the focus ring\n      &:not(.toggle-hidden) .admonition-title:focus-within::before {\n        border-bottom-left-radius: 0;\n        border-bottom-right-radius: 0;\n      }\n    }\n  }\n\n  // Details buttons\n  details.toggle-details {\n    // Over-ride border color to re-use our primary color\n    summary {\n      border-left: 3px solid var(--pst-color-primary);\n\n      @include chevron-down;\n    }\n\n    // When expanded, sharpen the bottom left and right corners of the focus ring\n    &[open] {\n      @include chevron-up;\n\n      :focus-visible {\n        border-bottom-left-radius: 0;\n        border-bottom-right-radius: 0;\n      }\n    }\n  }\n}\n","/**\n * Styles for various Sphinx execution libraries to display pre-executed notebooks.\n * For now, where these define output sections, we simply revert their background\n * to be a \"light theme\" background. This ensures that inputs/outputs behave similarly,\n * because the CSS is often controlled by each package.\n * In the future, we might add dark theme support for specific packages.\n */\n\n/*******************************************************************************\n * nbsphinx\n */\nhtml div.rendered_html,\n// NBsphinx ipywidgets output selector\nhtml .jp-RenderedHTMLCommon {\n  // Add some margin around the element box for the focus ring. Otherwise the\n  // focus ring gets clipped because the containing elements have `overflow:\n  // hidden` applied to them (via the `.lm-Widget` selector)\n  margin: $focus-ring-width;\n\n  table {\n    table-layout: auto;\n  }\n}\n\n.bd-content .nboutput {\n  .output_area {\n    &.rendered_html,\n    .jp-RenderedHTMLCommon {\n      // pandas\n      table.dataframe {\n        @include table-colors;\n      }\n    }\n\n    // Dark theme special-cases\n    html[data-theme=\"dark\"] & {\n      &.rendered_html:not(:has(table.dataframe)),\n      // ipywidgets\n      .widget-subarea {\n        @include cell-output-background;\n      }\n\n      &.stderr {\n        background-color: var(--pst-color-danger);\n      }\n    }\n  }\n}\n\n// Add extra padding to the final item in an nbsphinx container\ndiv.nblast.container {\n  margin-bottom: 1rem;\n}\n\n/*******************************************************************************\n * myst NB\n */\n\ndiv.cell_output .output {\n  max-width: 100%;\n  overflow-x: auto;\n}\n\n.bd-content div.cell_output {\n  // pandas\n  table.dataframe {\n    @include table-colors;\n  }\n\n  html[data-theme=\"dark\"] & {\n    img,\n    .text_html:not(:has(table.dataframe)),\n    // ipywidgets\n    .widget-subarea {\n      @include cell-output-background;\n    }\n  }\n}\n\n// Prevent tables from scrunching together\n.bd-content {\n  div.cell_input {\n    display: flex;\n    flex-direction: column;\n    justify-content: stretch;\n  }\n\n  div.cell_input,\n  div.output {\n    border-radius: $admonition-border-radius;\n  }\n\n  div.output {\n    table {\n      table-layout: auto;\n    }\n  }\n}\n","/**\n * style for the various mapping libs based on leaflet (folium, geemap, ipyleaflet)\n * mainly ensure the good display of the maps in both themes and avoid the customization\n * of the tiles\n */\n\n/**\n * avoid border override from pydata-sphinx-theme\n * minimal selctor to get the priority\n */\nhtml[data-theme=\"dark\"] .bd-content img.leaflet-tile.leaflet-tile-loaded {\n  border-radius: 0;\n  padding: 0;\n}\n","/**\n * /search.html page special-cases\n */\n\n.bd-search-container {\n  /*******************************************\n  * Search results\n  */\n  // Whitespace\n  div#search-results {\n    > h2 {\n      font-size: var(--pst-font-size-icon);\n      margin-top: 1rem;\n    }\n\n    p.search-summary {\n      color: var(--pst-color-text-muted);\n    }\n  }\n\n  ul.search {\n    margin: 0;\n    list-style: none;\n\n    li {\n      background-image: none;\n      padding: 1rem 0;\n      margin: 1rem 0;\n      border-top: 1px solid var(--pst-color-text-muted);\n\n      // First link is the page title, it should be a bit bigger\n      > a {\n        font-size: 1.2em;\n      }\n\n      div.context,\n      p.context {\n        color: var(--pst-color-text-base);\n        margin: 0.5em 0 0;\n\n        // Add a # before page section titles to make it clear they are sections\n        a::before {\n          content: \"#\";\n          padding-right: 0.2em;\n          color: var(--pst-color-text-muted);\n        }\n      }\n    }\n  }\n}\n"],"names":[],"sourceRoot":""}