@charset "UTF-8";
/* 3579e85f0b2ba8e423c1ce18f36bad7ce059571a60246fd4a62ab86fb4994d5df7ce4ff34311b4b9ad6bfd84102aa438562eb41940f0fbafe3dc6297950d34ee <- doxysphinx hash digest for the original input css that leadsto the css below */
.doxygen-content {
  /**

Doxygen Awesome
https://github.com/jothepro/doxygen-awesome-css

MIT License

Copyright (c) 2021 - 2022 jothepro

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

*/
  /* dark mode variables are defined twice, to support both the dark-mode without and with doxygen-awesome-darkmode-toggle.js */
  /*
 Title and top navigation
 */
  /*
 Search box
 */
  /*
 Tree view
 */
  /*
 Contents
 */
  /*
 Table of Contents
 */
  /*
 Code & Fragments
 */
  /*
 dl warning, attention, note, deprecated, bug, ...
 */
  /*
 memitem
 */
  /*
 reflist
 */
  /*
 Table
 */
  /*
 Horizontal Rule
 */
  /*
 Directories
 */
  /*
 Class list
 */
  /*
 Class Index Doxygen 1.8
*/
  /*
  Footer and nav-path
 */
  /*
 Scrollbars for Webkit
*/
  /*
 Scrollbars for Firefox
*/
  /*
  Optional Dark mode toggle button
*/
  /*
 Optional fragment copy button
*/
  /*
 Optional paragraph link button
*/
}

html {
  /* primary theme color. This will affect the entire websites color scheme: links, arrows, labels, ... */
  --primary-color: #1779c4;
  --primary-dark-color: #335c80;
  --primary-light-color: #70b1e9;
  /* page base colors */
  --page-background-color: white;
  --page-foreground-color: #2f4153;
  --page-secondary-foreground-color: #637485;
  /* color for all separators on the website: hr, borders, ... */
  --separator-color: #dedede;
  /* border radius for all rounded components. Will affect many components, like dropdowns, memitems, codeblocks, ... */
  --border-radius-large: 8px;
  --border-radius-small: 4px;
  --border-radius-medium: 6px;
  /* default spacings. Most compontest reference these values for spacing, to provide uniform spacing on the page. */
  --spacing-small: 5px;
  --spacing-medium: 10px;
  --spacing-large: 16px;
  /* default box shadow used for raising an element above the normal content. Used in dropdowns, Searchresult, ... */
  --box-shadow: 0 2px 8px 0 rgba(0, 0, 0, .075);
  --odd-color: rgba(0, 0, 0, .028);
  /* font-families. will affect all text on the website
     * font-family: the normal font for text, headlines, menus
     * font-family-monospace: used for preformatted text in memtitle, code, fragments
     */
  --font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen, Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, sans-serif;
  --font-family-monospace: ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace;
  /* font sizes */
  --page-font-size: 15.6px;
  --navigation-font-size: 14.4px;
  --code-font-size: 14px;
  /* affects code, fragment */
  --title-font-size: 22px;
  /* content text properties. These only affect the page content, not the navigation or any other ui elements */
  --content-line-height: 27px;
  /* The content is centered and constraint in it's width. To make the content fill the whole page, set the variable to auto.*/
  --content-maxwidth: 1000px;
  /* colors for various content boxes: @warning, @note, @deprecated @bug */
  --warning-color: #f8d1cc;
  --warning-color-dark: #b61825;
  --warning-color-darker: #75070f;
  --note-color: #faf3d8;
  --note-color-dark: #f3a600;
  --note-color-darker: #5f4204;
  --todo-color: #e4f3ff;
  --todo-color-dark: #1879C4;
  --todo-color-darker: #274a5c;
  --deprecated-color: #ecf0f3;
  --deprecated-color-dark: #5b6269;
  --deprecated-color-darker: #43454a;
  --bug-color: #e4dafd;
  --bug-color-dark: #5b2bdd;
  --bug-color-darker: #2a0d72;
  --invariant-color: #d8f1e3;
  --invariant-color-dark: #44b86f;
  --invariant-color-darker: #265532;
  /* blockquote colors */
  --blockquote-background: #f8f9fa;
  --blockquote-foreground: #636568;
  /* table colors */
  --tablehead-background: #f1f1f1;
  --tablehead-foreground: var(--page-foreground-color);
  /* menu-display: block | none
     * Visibility of the top navigation on screens >= 768px. On smaller screen the menu is always visible.
     * `GENERATE_TREEVIEW` MUST be enabled!
     */
  --menu-display: block;
  --menu-focus-foreground: var(--page-background-color);
  --menu-focus-background: var(--primary-color);
  --menu-selected-background: rgba(0, 0, 0, .05);
  --header-background: var(--page-background-color);
  --header-foreground: var(--page-foreground-color);
  /* searchbar colors */
  --searchbar-background: var(--side-nav-background);
  --searchbar-foreground: var(--page-foreground-color);
  /* searchbar size
     * (`searchbar-width` is only applied on screens >= 768px.
     * on smaller screens the searchbar will always fill the entire screen width) */
  --searchbar-height: 33px;
  --searchbar-width: 210px;
  --searchbar-border-radius: var(--searchbar-height);
  /* code block colors */
  --code-background: #f5f5f5;
  --code-foreground: var(--page-foreground-color);
  /* fragment colors */
  --fragment-background: #F8F9FA;
  --fragment-foreground: #37474F;
  --fragment-keyword: #bb6bb2;
  --fragment-keywordtype: #8258b3;
  --fragment-keywordflow: #d67c3b;
  --fragment-token: #438a59;
  --fragment-comment: #969696;
  --fragment-link: #5383d6;
  --fragment-preprocessor: #46aaa5;
  --fragment-linenumber-color: #797979;
  --fragment-linenumber-background: #f4f4f5;
  --fragment-linenumber-border: #e3e5e7;
  --fragment-lineheight: 20px;
  /* sidebar navigation (treeview) colors */
  --side-nav-background: #fbfbfb;
  --side-nav-foreground: var(--page-foreground-color);
  --side-nav-arrow-opacity: 0;
  --side-nav-arrow-hover-opacity: 0.9;
  --toc-background: var(--side-nav-background);
  --toc-foreground: var(--side-nav-foreground);
  /* height of an item in any tree / collapsable table */
  --tree-item-height: 30px;
  --memname-font-size: var(--code-font-size);
  --memtitle-font-size: 18px;
  --webkit-scrollbar-size: 7px;
  --webkit-scrollbar-padding: 4px;
  --webkit-scrollbar-color: var(--separator-color);
}

@media screen and (max-width: 767px) {
  html {
    --page-font-size: 16px;
    --navigation-font-size: 16px;
    --code-font-size: 15px;
    /* affects code, fragment */
    --title-font-size: 22px;
  }
}

@media (prefers-color-scheme: dark) {
  .doxygen-content html:not(.light-mode) {
    color-scheme: dark;
    --primary-color: #1982d2;
    --primary-dark-color: #86a9c4;
    --primary-light-color: #4779ac;
    --box-shadow: 0 2px 8px 0 rgba(0, 0, 0, .35);
    --odd-color: rgba(100, 100, 100, .06);
    --menu-selected-background: rgba(0, 0, 0, .4);
    --page-background-color: #1C1D1F;
    --page-foreground-color: #d2dbde;
    --page-secondary-foreground-color: #859399;
    --separator-color: #38393b;
    --side-nav-background: #252628;
    --code-background: #2a2c2f;
    --tablehead-background: #2a2c2f;
    --blockquote-background: #222325;
    --blockquote-foreground: #7e8c92;
    --warning-color: #2e1917;
    --warning-color-dark: #ad2617;
    --warning-color-darker: #f5b1aa;
    --note-color: #3b2e04;
    --note-color-dark: #f1b602;
    --note-color-darker: #ceb670;
    --todo-color: #163750;
    --todo-color-dark: #1982D2;
    --todo-color-darker: #dcf0fa;
    --deprecated-color: #2e323b;
    --deprecated-color-dark: #738396;
    --deprecated-color-darker: #abb0bd;
    --bug-color: #2a2536;
    --bug-color-dark: #7661b3;
    --bug-color-darker: #ae9ed6;
    --invariant-color: #303a35;
    --invariant-color-dark: #76ce96;
    --invariant-color-darker: #cceed5;
    --fragment-background: #282c34;
    --fragment-foreground: #dbe4eb;
    --fragment-keyword: #cc99cd;
    --fragment-keywordtype: #ab99cd;
    --fragment-keywordflow: #e08000;
    --fragment-token: #7ec699;
    --fragment-comment: #999999;
    --fragment-link: #98c0e3;
    --fragment-preprocessor: #65cabe;
    --fragment-linenumber-color: #cccccc;
    --fragment-linenumber-background: #35393c;
    --fragment-linenumber-border: #1f1f1f;
  }
}

.doxygen-content html.dark-mode {
  color-scheme: dark;
  --primary-color: #1982d2;
  --primary-dark-color: #86a9c4;
  --primary-light-color: #4779ac;
  --box-shadow: 0 2px 8px 0 rgba(0, 0, 0, .30);
  --odd-color: rgba(100, 100, 100, .06);
  --menu-selected-background: rgba(0, 0, 0, .4);
  --page-background-color: #1C1D1F;
  --page-foreground-color: #d2dbde;
  --page-secondary-foreground-color: #859399;
  --separator-color: #38393b;
  --side-nav-background: #252628;
  --code-background: #2a2c2f;
  --tablehead-background: #2a2c2f;
  --blockquote-background: #222325;
  --blockquote-foreground: #7e8c92;
  --warning-color: #2e1917;
  --warning-color-dark: #ad2617;
  --warning-color-darker: #f5b1aa;
  --note-color: #3b2e04;
  --note-color-dark: #f1b602;
  --note-color-darker: #ceb670;
  --todo-color: #163750;
  --todo-color-dark: #1982D2;
  --todo-color-darker: #dcf0fa;
  --deprecated-color: #2e323b;
  --deprecated-color-dark: #738396;
  --deprecated-color-darker: #abb0bd;
  --bug-color: #2a2536;
  --bug-color-dark: #7661b3;
  --bug-color-darker: #ae9ed6;
  --invariant-color: #303a35;
  --invariant-color-dark: #76ce96;
  --invariant-color-darker: #cceed5;
  --fragment-background: #282c34;
  --fragment-foreground: #dbe4eb;
  --fragment-keyword: #cc99cd;
  --fragment-keywordtype: #ab99cd;
  --fragment-keywordflow: #e08000;
  --fragment-token: #7ec699;
  --fragment-comment: #999999;
  --fragment-link: #98c0e3;
  --fragment-preprocessor: #65cabe;
  --fragment-linenumber-color: #cccccc;
  --fragment-linenumber-background: #35393c;
  --fragment-linenumber-border: #1f1f1f;
}

.doxygen-content body {
  color: var(--page-foreground-color);
  background-color: var(--page-background-color);
  font-size: var(--page-font-size);
}

.doxygen-content body,
.doxygen-content table,
.doxygen-content div,
.doxygen-content p,
.doxygen-content dl,
.doxygen-content #nav-tree .label,
.doxygen-content .title,
.doxygen-content .sm-dox a,
.doxygen-content .sm-dox a:hover,
.doxygen-content .sm-dox a:focus,
.doxygen-content #projectname,
.doxygen-content .SelectItem,
.doxygen-content #MSearchField,
.doxygen-content .navpath li.navelem a,
.doxygen-content .navpath li.navelem a:hover {
  font-family: var(--font-family);
}

.doxygen-content h1,
.doxygen-content h2,
.doxygen-content h3,
.doxygen-content h4,
.doxygen-content h5 {
  margin-top: .9em;
  font-weight: 600;
  line-height: initial;
}

.doxygen-content p,
.doxygen-content div,
.doxygen-content table,
.doxygen-content dl {
  font-size: var(--page-font-size);
}

.doxygen-content a:link,
.doxygen-content a:visited,
.doxygen-content a:hover,
.doxygen-content a:focus,
.doxygen-content a:active {
  color: var(--primary-color) !important;
  font-weight: 500;
}

.doxygen-content a.anchor {
  scroll-margin-top: var(--spacing-large);
}

.doxygen-content #top {
  background: var(--header-background);
  border-bottom: 1px solid var(--separator-color);
}

@media screen and (min-width: 768px) {
  .doxygen-content #top {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
  }
}

.doxygen-content #main-nav {
  flex-grow: 5;
  padding: var(--spacing-small) var(--spacing-medium);
}

.doxygen-content #titlearea {
  width: auto;
  padding: var(--spacing-medium) var(--spacing-large);
  background: none;
  color: var(--header-foreground);
  border-bottom: none;
}

@media screen and (max-width: 767px) {
  .doxygen-content #titlearea {
    padding-bottom: var(--spacing-small);
  }
}

.doxygen-content #titlearea table tbody tr {
  height: auto !important;
}

.doxygen-content #projectname {
  font-size: var(--title-font-size);
  font-weight: 600;
}

.doxygen-content #projectnumber {
  font-family: inherit;
  font-size: 60%;
}

.doxygen-content #projectbrief {
  font-family: inherit;
  font-size: 80%;
}

.doxygen-content #projectlogo {
  vertical-align: middle;
}

.doxygen-content #projectlogo img {
  max-height: calc(var(--title-font-size) * 2);
  margin-right: var(--spacing-small);
}

.doxygen-content .sm-dox,
.doxygen-content .tabs,
.doxygen-content .tabs2,
.doxygen-content .tabs3 {
  background: none;
  padding: 0;
}

.doxygen-content .tabs,
.doxygen-content .tabs2,
.doxygen-content .tabs3 {
  border-bottom: 1px solid var(--separator-color);
  margin-bottom: -1px;
}

@media screen and (max-width: 767px) {
  .doxygen-content .sm-dox a span.sub-arrow {
    background: var(--code-background);
  }
  .doxygen-content #main-menu a.has-submenu span.sub-arrow {
    color: var(--page-secondary-foreground-color);
    border-radius: var(--border-radius-medium);
  }
  .doxygen-content #main-menu a.has-submenu:hover span.sub-arrow {
    color: var(--page-foreground-color);
  }
}

@media screen and (min-width: 768px) {
  .doxygen-content .sm-dox li,
.doxygen-content .tablist li {
    display: var(--menu-display);
  }
  .doxygen-content .sm-dox a span.sub-arrow {
    border-color: var(--header-foreground) transparent transparent transparent;
  }
  .doxygen-content .sm-dox a:hover span.sub-arrow {
    border-color: var(--menu-focus-foreground) transparent transparent transparent;
  }
  .doxygen-content .sm-dox ul a span.sub-arrow {
    border-color: transparent transparent transparent var(--page-foreground-color);
  }
  .doxygen-content .sm-dox ul a:hover span.sub-arrow {
    border-color: transparent transparent transparent var(--menu-focus-foreground);
  }
}

.doxygen-content .sm-dox ul {
  background: var(--page-background-color);
  box-shadow: var(--box-shadow);
  border: 1px solid var(--separator-color);
  border-radius: var(--border-radius-medium) !important;
  padding: var(--spacing-small);
  animation: ease-out 150ms slideInMenu;
}

@keyframes slideInMenu {
  from {
    opacity: 0;
    transform: translate(0px, -2px);
  }
  to {
    opacity: 1;
    transform: translate(0px, 0px);
  }
}

.doxygen-content .sm-dox ul a {
  color: var(--page-foreground-color) !important;
  background: var(--page-background-color);
  font-size: var(--navigation-font-size);
}

.doxygen-content .sm-dox > li > ul:after {
  border-bottom-color: var(--page-background-color) !important;
}

.doxygen-content .sm-dox > li > ul:before {
  border-bottom-color: var(--separator-color) !important;
}

.doxygen-content .sm-dox ul a:hover,
.doxygen-content .sm-dox ul a:active,
.doxygen-content .sm-dox ul a:focus {
  font-size: var(--navigation-font-size) !important;
  color: var(--menu-focus-foreground) !important;
  text-shadow: none;
  background-color: var(--menu-focus-background);
  border-radius: var(--border-radius-small) !important;
}

.doxygen-content .sm-dox a,
.doxygen-content .sm-dox a:focus,
.doxygen-content .tablist li,
.doxygen-content .tablist li a,
.doxygen-content .tablist li.current a {
  text-shadow: none;
  background: transparent;
  background-image: none !important;
  color: var(--header-foreground) !important;
  font-weight: normal;
  font-size: var(--navigation-font-size);
  border-radius: var(--border-radius-small) !important;
}

.doxygen-content .sm-dox a:focus {
  outline: auto;
}

.doxygen-content .sm-dox a:hover,
.doxygen-content .sm-dox a:active,
.doxygen-content .tablist li a:hover {
  text-shadow: none;
  font-weight: normal;
  background: var(--menu-focus-background);
  color: var(--menu-focus-foreground) !important;
  border-radius: var(--border-radius-small) !important;
  font-size: var(--navigation-font-size);
}

.doxygen-content .tablist li.current {
  border-radius: var(--border-radius-small);
  background: var(--menu-selected-background);
}

.doxygen-content .tablist li {
  margin: var(--spacing-small) 0 var(--spacing-small) var(--spacing-small);
}

.doxygen-content .tablist a {
  padding: 0 var(--spacing-large);
}

.doxygen-content #MSearchBox {
  height: var(--searchbar-height);
  background: var(--searchbar-background);
  border-radius: var(--searchbar-border-radius);
  border: 1px solid var(--separator-color);
  overflow: hidden;
  width: var(--searchbar-width);
  position: relative;
  box-shadow: none;
  display: block;
  margin-top: 0;
}

.doxygen-content .left #MSearchSelect {
  left: 0;
  user-select: none;
}

.doxygen-content .SelectionMark {
  user-select: none;
}

.doxygen-content .tabs .left #MSearchSelect {
  padding-left: 0;
}

.doxygen-content .tabs #MSearchBox {
  position: absolute;
  right: var(--spacing-medium);
}

@media screen and (max-width: 767px) {
  .doxygen-content .tabs #MSearchBox {
    position: relative;
    right: 0;
    margin-left: var(--spacing-medium);
    margin-top: 0;
  }
}

.doxygen-content #MSearchSelectWindow,
.doxygen-content #MSearchResultsWindow {
  z-index: 9999;
}

.doxygen-content #MSearchBox.MSearchBoxActive {
  border-color: var(--primary-color);
  box-shadow: inset 0 0 0 1px var(--primary-color);
}

.doxygen-content #main-menu > li:last-child {
  margin-right: 0;
}

@media screen and (max-width: 767px) {
  .doxygen-content #main-menu > li:last-child {
    height: 50px;
  }
}

.doxygen-content #MSearchField {
  font-size: var(--navigation-font-size);
  height: calc(var(--searchbar-height) - 2px);
  background: transparent;
  width: calc(var(--searchbar-width) - 64px);
}

.doxygen-content .MSearchBoxActive #MSearchField {
  color: var(--searchbar-foreground);
}

.doxygen-content #MSearchSelect {
  top: calc(calc(var(--searchbar-height) / 2) - 11px);
}

.doxygen-content .left #MSearchSelect {
  padding-left: 8px;
}

.doxygen-content #MSearchBox span.left,
.doxygen-content #MSearchBox span.right {
  background: none;
}

.doxygen-content #MSearchBox span.right {
  padding-top: calc(calc(var(--searchbar-height) / 2) - 12px);
  position: absolute;
  right: var(--spacing-small);
}

.doxygen-content .tabs #MSearchBox span.right {
  top: calc(calc(var(--searchbar-height) / 2) - 12px);
}

@keyframes slideInSearchResults {
  from {
    opacity: 0;
    transform: translate(0, 15px);
  }
  to {
    opacity: 1;
    transform: translate(0, 20px);
  }
}

.doxygen-content #MSearchResultsWindow {
  left: auto !important;
  right: var(--spacing-medium);
  border-radius: var(--border-radius-large);
  border: 1px solid var(--separator-color);
  transform: translate(0, 20px);
  box-shadow: var(--box-shadow);
  animation: ease-out 280ms slideInSearchResults;
  background: var(--page-background-color);
}

.doxygen-content iframe#MSearchResults {
  margin: 4px;
}

.doxygen-content iframe {
  color-scheme: normal;
}

@media (prefers-color-scheme: dark) {
  .doxygen-content html:not(.light-mode) iframe#MSearchResults {
    filter: invert() hue-rotate(180deg);
  }
}

.doxygen-content html.dark-mode iframe#MSearchResults {
  filter: invert() hue-rotate(180deg);
}

.doxygen-content #MSearchSelectWindow {
  border: 1px solid var(--separator-color);
  border-radius: var(--border-radius-medium);
  box-shadow: var(--box-shadow);
  background: var(--page-background-color);
  padding-top: var(--spacing-small);
  padding-bottom: var(--spacing-small);
}

.doxygen-content #MSearchSelectWindow a.SelectItem {
  font-size: var(--navigation-font-size);
  line-height: var(--content-line-height);
  margin: 0 var(--spacing-small);
  border-radius: var(--border-radius-small);
  color: var(--page-foreground-color) !important;
  font-weight: normal;
}

.doxygen-content #MSearchSelectWindow a.SelectItem:hover {
  background: var(--menu-focus-background);
  color: var(--menu-focus-foreground) !important;
}

@media screen and (max-width: 767px) {
  .doxygen-content {
    /*
     * Overwrites for fixing the searchbox on mobile in doxygen 1.9.2
     */
  }
  .doxygen-content #MSearchBox {
    margin-top: var(--spacing-medium);
    margin-bottom: var(--spacing-medium);
    width: calc(100vw - 30px);
  }
  .doxygen-content #main-menu > li:last-child {
    float: none !important;
  }
  .doxygen-content #MSearchField {
    width: calc(100vw - 110px);
  }
  @keyframes slideInSearchResultsMobile {
    from {
      opacity: 0;
      transform: translate(0, 15px);
    }
    to {
      opacity: 1;
      transform: translate(0, 20px);
    }
  }
  .doxygen-content #MSearchResultsWindow {
    left: var(--spacing-medium) !important;
    right: var(--spacing-medium);
    overflow: auto;
    transform: translate(0, 20px);
    animation: ease-out 280ms slideInSearchResultsMobile;
  }
  .doxygen-content label.main-menu-btn ~ #searchBoxPos1 {
    top: 3px !important;
    right: 6px !important;
    left: 45px;
    display: flex;
  }
  .doxygen-content label.main-menu-btn ~ #searchBoxPos1 > #MSearchBox {
    margin-top: 0;
    margin-bottom: 0;
    flex-grow: 2;
    float: left;
  }
}

.doxygen-content #side-nav {
  padding: 0 !important;
  background: var(--side-nav-background);
}

@media screen and (max-width: 767px) {
  .doxygen-content #side-nav {
    display: none;
  }
  .doxygen-content #doc-content {
    margin-left: 0 !important;
  }
}

.doxygen-content #nav-tree {
  background: transparent;
}

.doxygen-content #nav-tree .label {
  font-size: var(--navigation-font-size);
}

.doxygen-content #nav-tree .item {
  height: var(--tree-item-height);
  line-height: var(--tree-item-height);
}

.doxygen-content #nav-sync {
  bottom: 12px;
  right: 12px;
  top: auto !important;
  user-select: none;
}

.doxygen-content #nav-tree .selected {
  text-shadow: none;
  background-image: none;
  background-color: transparent;
  position: relative;
}

.doxygen-content #nav-tree .selected::after {
  content: "";
  position: absolute;
  top: 1px;
  bottom: 1px;
  left: 0;
  width: 4px;
  border-radius: 0 var(--border-radius-small) var(--border-radius-small) 0;
  background: var(--primary-color);
}

.doxygen-content #nav-tree a {
  color: var(--side-nav-foreground) !important;
  font-weight: normal;
}

.doxygen-content #nav-tree a:focus {
  outline-style: auto;
}

.doxygen-content #nav-tree .arrow {
  opacity: var(--side-nav-arrow-opacity);
}

.doxygen-content .arrow {
  color: inherit;
  cursor: pointer;
  font-size: 45%;
  vertical-align: middle;
  margin-right: 2px;
  font-family: serif;
  height: auto;
  text-align: right;
}

.doxygen-content #nav-tree div.item:hover .arrow,
.doxygen-content #nav-tree a:focus .arrow {
  opacity: var(--side-nav-arrow-hover-opacity);
}

.doxygen-content #nav-tree .selected a {
  color: var(--primary-color) !important;
  font-weight: bolder;
  font-weight: 600;
}

.doxygen-content .ui-resizable-e {
  background: var(--separator-color);
  width: 1px;
}

.doxygen-content div.header {
  border-bottom: 1px solid var(--separator-color);
  background-color: var(--page-background-color);
  background-image: none;
}

.doxygen-content div.contents,
.doxygen-content div.header .title,
.doxygen-content div.header .summary {
  max-width: var(--content-maxwidth);
}

.doxygen-content div.contents,
.doxygen-content div.header .title {
  line-height: initial;
  margin: calc(var(--spacing-medium) + .2em) auto var(--spacing-medium) auto;
}

.doxygen-content div.header .summary {
  margin: var(--spacing-medium) auto 0 auto;
}

.doxygen-content div.headertitle {
  padding: 0;
}

.doxygen-content div.header .title {
  font-weight: 600;
  font-size: 210%;
  padding: var(--spacing-medium) var(--spacing-large);
  word-break: break-word;
}

.doxygen-content div.header .summary {
  width: auto;
  display: block;
  float: none;
  padding: 0 var(--spacing-large);
}

.doxygen-content td.memSeparator {
  border-color: var(--separator-color);
}

.doxygen-content span.mlabel {
  background: var(--primary-color);
  border: none;
  padding: 4px 9px;
  border-radius: 12px;
  margin-right: var(--spacing-medium);
}

.doxygen-content span.mlabel:last-of-type {
  margin-right: 2px;
}

.doxygen-content div.contents {
  padding: 0 var(--spacing-large);
}

.doxygen-content div.contents p,
.doxygen-content div.contents li {
  line-height: var(--content-line-height);
}

.doxygen-content div.contents div.dyncontent {
  margin: var(--spacing-medium) 0;
}

@media (prefers-color-scheme: dark) {
  .doxygen-content html:not(.light-mode) div.contents div.dyncontent img,
.doxygen-content html:not(.light-mode) div.contents center img,
.doxygen-content html:not(.light-mode) div.contents table img,
.doxygen-content html:not(.light-mode) div.contents div.dyncontent iframe,
.doxygen-content html:not(.light-mode) div.contents center iframe,
.doxygen-content html:not(.light-mode) div.contents table iframe {
    filter: hue-rotate(180deg) invert();
  }
}

.doxygen-content html.dark-mode div.contents div.dyncontent img,
.doxygen-content html.dark-mode div.contents center img,
.doxygen-content html.dark-mode div.contents table img,
.doxygen-content html.dark-mode div.contents div.dyncontent iframe,
.doxygen-content html.dark-mode div.contents center iframe,
.doxygen-content html.dark-mode div.contents table iframe {
  filter: hue-rotate(180deg) invert();
}

.doxygen-content h2.groupheader {
  border-bottom: 0px;
  color: var(--page-foreground-color);
  box-shadow: 100px 0 var(--page-background-color), -100px 0 var(--page-background-color), 100px 0.75px var(--separator-color), -100px 0.75px var(--separator-color), 500px 0 var(--page-background-color), -500px 0 var(--page-background-color), 500px 0.75px var(--separator-color), -500px 0.75px var(--separator-color), 1500px 0 var(--page-background-color), -1500px 0 var(--page-background-color), 1500px 0.75px var(--separator-color), -1500px 0.75px var(--separator-color), 2000px 0 var(--page-background-color), -2000px 0 var(--page-background-color), 2000px 0.75px var(--separator-color), -2000px 0.75px var(--separator-color);
}

.doxygen-content blockquote {
  margin: 0 var(--spacing-medium) 0 var(--spacing-medium);
  padding: var(--spacing-small) var(--spacing-large);
  background: var(--blockquote-background);
  color: var(--blockquote-foreground);
  border-left: 0;
  overflow: visible;
  border-radius: var(--border-radius-medium);
  overflow: visible;
  position: relative;
}

.doxygen-content blockquote::before,
.doxygen-content blockquote::after {
  font-weight: bold;
  font-family: serif;
  font-size: 360%;
  opacity: .15;
  position: absolute;
}

.doxygen-content blockquote::before {
  content: "“";
  left: -10px;
  top: 4px;
}

.doxygen-content blockquote::after {
  content: "”";
  right: -8px;
  bottom: -25px;
}

.doxygen-content blockquote p {
  margin: var(--spacing-small) 0 var(--spacing-medium) 0;
}

.doxygen-content .paramname {
  font-weight: 600;
  color: var(--primary-dark-color);
}

.doxygen-content .paramname > code {
  border: 0;
}

.doxygen-content table.params .paramname {
  font-weight: 600;
  font-family: var(--font-family-monospace);
  font-size: var(--code-font-size);
  padding-right: var(--spacing-small);
}

.doxygen-content .glow {
  text-shadow: 0 0 15px var(--primary-light-color) !important;
}

.doxygen-content .alphachar a {
  color: var(--page-foreground-color);
}

.doxygen-content div.toc {
  z-index: 10;
  position: relative;
  background-color: var(--toc-background);
  border: 1px solid var(--separator-color);
  border-radius: var(--border-radius-medium);
  box-shadow: var(--box-shadow);
  padding: 0 var(--spacing-large);
  margin: 0 0 var(--spacing-medium) var(--spacing-medium);
}

.doxygen-content div.toc h3 {
  color: var(--toc-foreground);
  font-size: var(--navigation-font-size);
  margin: var(--spacing-large) 0;
}

.doxygen-content div.toc li {
  font-size: var(--navigation-font-size);
  padding: 0;
  background: none;
}

.doxygen-content div.toc li:before {
  content: '↓';
  font-weight: 800;
  font-family: var(--font-family);
  margin-right: var(--spacing-small);
  color: var(--toc-foreground);
  opacity: .4;
}

.doxygen-content div.toc ul li.level1 {
  margin: 0;
}

.doxygen-content div.toc ul li.level2,
.doxygen-content div.toc ul li.level3 {
  margin-top: 0;
}

@media screen and (max-width: 767px) {
  .doxygen-content div.toc {
    float: none;
    width: auto;
    margin: 0 0 var(--spacing-medium) 0;
  }
}

.doxygen-content code,
.doxygen-content div.fragment,
.doxygen-content pre.fragment {
  border-radius: var(--border-radius-small);
  border: 1px solid var(--separator-color);
  overflow: hidden;
}

.doxygen-content code {
  display: inline;
  background: var(--code-background);
  color: var(--code-foreground);
  padding: 2px 6px;
  word-break: break-word;
}

.doxygen-content div.fragment,
.doxygen-content pre.fragment {
  margin: var(--spacing-medium) 0;
  padding: calc(var(--spacing-large) - (var(--spacing-large) / 6)) var(--spacing-large);
  background: var(--fragment-background);
  color: var(--fragment-foreground);
  overflow-x: auto;
}

@media screen and (max-width: 767px) {
  .doxygen-content div.fragment,
.doxygen-content pre.fragment {
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
    border-right: 0;
  }
  .doxygen-content .contents > div.fragment,
.doxygen-content .textblock > div.fragment,
.doxygen-content .textblock > pre.fragment,
.doxygen-content .contents > .doxygen-awesome-fragment-wrapper > div.fragment,
.doxygen-content .textblock > .doxygen-awesome-fragment-wrapper > div.fragment,
.doxygen-content .textblock > .doxygen-awesome-fragment-wrapper > pre.fragment {
    margin: var(--spacing-medium) calc(0px - var(--spacing-large));
    border-radius: 0;
    border-left: 0;
  }
  .doxygen-content .textblock li > .fragment,
.doxygen-content .textblock li > .doxygen-awesome-fragment-wrapper > .fragment {
    margin: var(--spacing-medium) calc(0px - var(--spacing-large));
  }
  .doxygen-content .memdoc li > .fragment,
.doxygen-content .memdoc li > .doxygen-awesome-fragment-wrapper > .fragment {
    margin: var(--spacing-medium) calc(0px - var(--spacing-medium));
  }
  .doxygen-content .textblock ul,
.doxygen-content .memdoc ul {
    overflow: initial;
  }
  .doxygen-content .memdoc > div.fragment,
.doxygen-content .memdoc > pre.fragment,
.doxygen-content dl dd > div.fragment,
.doxygen-content dl dd pre.fragment,
.doxygen-content .memdoc > .doxygen-awesome-fragment-wrapper > div.fragment,
.doxygen-content .memdoc > .doxygen-awesome-fragment-wrapper > pre.fragment,
.doxygen-content dl dd > .doxygen-awesome-fragment-wrapper > div.fragment,
.doxygen-content dl dd .doxygen-awesome-fragment-wrapper > pre.fragment {
    margin: var(--spacing-medium) calc(0px - var(--spacing-medium));
    border-radius: 0;
    border-left: 0;
  }
}

.doxygen-content code,
.doxygen-content code a,
.doxygen-content pre.fragment,
.doxygen-content div.fragment,
.doxygen-content div.fragment .line,
.doxygen-content div.fragment span,
.doxygen-content div.fragment .line a,
.doxygen-content div.fragment .line span {
  font-family: var(--font-family-monospace);
  font-size: var(--code-font-size) !important;
}

.doxygen-content div.line:after {
  margin-right: var(--spacing-medium);
}

.doxygen-content div.fragment .line,
.doxygen-content pre.fragment {
  white-space: pre;
  word-wrap: initial;
  line-height: var(--fragment-lineheight);
}

.doxygen-content div.fragment span.keyword {
  color: var(--fragment-keyword);
}

.doxygen-content div.fragment span.keywordtype {
  color: var(--fragment-keywordtype);
}

.doxygen-content div.fragment span.keywordflow {
  color: var(--fragment-keywordflow);
}

.doxygen-content div.fragment span.stringliteral {
  color: var(--fragment-token);
}

.doxygen-content div.fragment span.comment {
  color: var(--fragment-comment);
}

.doxygen-content div.fragment a.code {
  color: var(--fragment-link) !important;
}

.doxygen-content div.fragment span.preprocessor {
  color: var(--fragment-preprocessor);
}

.doxygen-content div.fragment span.lineno {
  display: inline-block;
  width: 27px;
  border-right: none;
  background: var(--fragment-linenumber-background);
  color: var(--fragment-linenumber-color);
}

.doxygen-content div.fragment span.lineno a {
  background: none;
  color: var(--fragment-link) !important;
}

.doxygen-content div.fragment .line:first-child .lineno {
  box-shadow: -999999px 0px 0 999999px var(--fragment-linenumber-background), -999998px 0px 0 999999px var(--fragment-linenumber-border);
}

.doxygen-content dl.bug dt a,
.doxygen-content dl.deprecated dt a,
.doxygen-content dl.todo dt a {
  font-weight: bold !important;
}

.doxygen-content dl.warning,
.doxygen-content dl.attention,
.doxygen-content dl.note,
.doxygen-content dl.deprecated,
.doxygen-content dl.bug,
.doxygen-content dl.invariant,
.doxygen-content dl.pre,
.doxygen-content dl.todo,
.doxygen-content dl.remark {
  padding: var(--spacing-medium);
  margin: var(--spacing-medium) 0;
  color: var(--page-background-color);
  overflow: hidden;
  margin-left: 0;
  border-radius: var(--border-radius-small);
}

.doxygen-content dl.section dd {
  margin-bottom: 2px;
}

.doxygen-content dl.warning,
.doxygen-content dl.attention {
  background: var(--warning-color);
  border-left: 8px solid var(--warning-color-dark);
  color: var(--warning-color-darker);
}

.doxygen-content dl.warning dt,
.doxygen-content dl.attention dt {
  color: var(--warning-color-dark);
}

.doxygen-content dl.note,
.doxygen-content dl.remark {
  background: var(--note-color);
  border-left: 8px solid var(--note-color-dark);
  color: var(--note-color-darker);
}

.doxygen-content dl.note dt,
.doxygen-content dl.remark dt {
  color: var(--note-color-dark);
}

.doxygen-content dl.todo {
  background: var(--todo-color);
  border-left: 8px solid var(--todo-color-dark);
  color: var(--todo-color-darker);
}

.doxygen-content dl.todo dt {
  color: var(--todo-color-dark);
}

.doxygen-content dl.bug dt a {
  color: var(--todo-color-dark) !important;
}

.doxygen-content dl.bug {
  background: var(--bug-color);
  border-left: 8px solid var(--bug-color-dark);
  color: var(--bug-color-darker);
}

.doxygen-content dl.bug dt a {
  color: var(--bug-color-dark) !important;
}

.doxygen-content dl.deprecated {
  background: var(--deprecated-color);
  border-left: 8px solid var(--deprecated-color-dark);
  color: var(--deprecated-color-darker);
}

.doxygen-content dl.deprecated dt a {
  color: var(--deprecated-color-dark) !important;
}

.doxygen-content dl.section dd,
.doxygen-content dl.bug dd,
.doxygen-content dl.deprecated dd,
.doxygen-content dl.todo dd {
  margin-inline-start: 0px;
}

.doxygen-content dl.invariant,
.doxygen-content dl.pre {
  background: var(--invariant-color);
  border-left: 8px solid var(--invariant-color-dark);
  color: var(--invariant-color-darker);
}

.doxygen-content dl.invariant dt,
.doxygen-content dl.pre dt {
  color: var(--invariant-color-dark);
}

.doxygen-content div.memdoc,
.doxygen-content div.memproto,
.doxygen-content h2.memtitle {
  box-shadow: none;
  background-image: none;
  border: none;
}

.doxygen-content div.memdoc {
  padding: 0 var(--spacing-medium);
  background: var(--page-background-color);
}

.doxygen-content h2.memtitle,
.doxygen-content div.memitem {
  border: 1px solid var(--separator-color);
  box-shadow: var(--box-shadow);
}

.doxygen-content h2.memtitle {
  box-shadow: 0px var(--spacing-medium) 0 -1px var(--fragment-background), var(--box-shadow);
}

.doxygen-content div.memitem {
  transition: none;
}

.doxygen-content div.memproto,
.doxygen-content h2.memtitle {
  background: var(--fragment-background);
  text-shadow: none;
}

.doxygen-content h2.memtitle {
  font-weight: 500;
  font-size: var(--memtitle-font-size);
  font-family: var(--font-family-monospace);
  border-bottom: none;
  border-top-left-radius: var(--border-radius-medium);
  border-top-right-radius: var(--border-radius-medium);
  word-break: break-all;
  position: relative;
}

.doxygen-content h2.memtitle:after {
  content: "";
  display: block;
  background: var(--fragment-background);
  height: var(--spacing-medium);
  bottom: calc(0px - var(--spacing-medium));
  left: 0;
  right: -14px;
  position: absolute;
  border-top-right-radius: var(--border-radius-medium);
}

.doxygen-content h2.memtitle > span.permalink {
  font-size: inherit;
}

.doxygen-content h2.memtitle > span.permalink > a {
  text-decoration: none;
  padding-left: 3px;
  margin-right: -4px;
  user-select: none;
  display: inline-block;
  margin-top: -6px;
}

.doxygen-content h2.memtitle > span.permalink > a:hover {
  color: var(--primary-dark-color) !important;
}

.doxygen-content a:target + h2.memtitle,
.doxygen-content a:target + h2.memtitle + div.memitem {
  border-color: var(--primary-light-color);
}

.doxygen-content div.memitem {
  border-top-right-radius: var(--border-radius-medium);
  border-bottom-right-radius: var(--border-radius-medium);
  border-bottom-left-radius: var(--border-radius-medium);
  overflow: hidden;
  display: block !important;
}

.doxygen-content div.memdoc {
  border-radius: 0;
}

.doxygen-content div.memproto {
  border-radius: 0 var(--border-radius-small) 0 0;
  overflow: auto;
  border-bottom: 1px solid var(--separator-color);
  padding: var(--spacing-medium);
  margin-bottom: -1px;
}

.doxygen-content div.memtitle {
  border-top-right-radius: var(--border-radius-medium);
  border-top-left-radius: var(--border-radius-medium);
}

.doxygen-content div.memproto table.memname {
  font-family: var(--font-family-monospace);
  color: var(--page-foreground-color);
  font-size: var(--memname-font-size);
}

.doxygen-content div.memproto div.memtemplate {
  font-family: var(--font-family-monospace);
  color: var(--primary-dark-color);
  font-size: var(--memname-font-size);
  margin-left: 2px;
}

.doxygen-content table.mlabels,
.doxygen-content table.mlabels > tbody {
  display: block;
}

.doxygen-content td.mlabels-left {
  width: auto;
}

.doxygen-content td.mlabels-right {
  margin-top: 3px;
  position: sticky;
  left: 0;
}

.doxygen-content table.mlabels > tbody > tr:first-child {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
}

.doxygen-content .memname,
.doxygen-content .memitem span.mlabels {
  margin: 0;
}

.doxygen-content dl.reflist {
  box-shadow: var(--box-shadow);
  border-radius: var(--border-radius-medium);
  border: 1px solid var(--separator-color);
  overflow: hidden;
  padding: 0;
}

.doxygen-content dl.reflist dt,
.doxygen-content dl.reflist dd {
  box-shadow: none;
  text-shadow: none;
  background-image: none;
  border: none;
  padding: 12px;
}

.doxygen-content dl.reflist dt {
  font-weight: 500;
  border-radius: 0;
  background: var(--code-background);
  border-bottom: 1px solid var(--separator-color);
  color: var(--page-foreground-color);
}

.doxygen-content dl.reflist dd {
  background: none;
}

.doxygen-content .contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) {
  display: inline-block;
  max-width: 100%;
}

.doxygen-content .contents > table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname):not(.classindex) {
  margin-left: calc(0px - var(--spacing-large));
  margin-right: calc(0px - var(--spacing-large));
  max-width: calc(100% + 2 * var(--spacing-large));
}

.doxygen-content table.markdownTable,
.doxygen-content table.fieldtable {
  border: none;
  margin: var(--spacing-medium) 0;
  box-shadow: 0 0 0 1px var(--separator-color);
  border-radius: var(--border-radius-small);
}

.doxygen-content table.fieldtable {
  width: 100%;
}

.doxygen-content th.markdownTableHeadLeft,
.doxygen-content th.markdownTableHeadRight,
.doxygen-content th.markdownTableHeadCenter,
.doxygen-content th.markdownTableHeadNone {
  background: var(--tablehead-background);
  color: var(--tablehead-foreground);
  font-weight: 600;
  font-size: var(--page-font-size);
}

.doxygen-content th.markdownTableHeadLeft:first-child,
.doxygen-content th.markdownTableHeadRight:first-child,
.doxygen-content th.markdownTableHeadCenter:first-child,
.doxygen-content th.markdownTableHeadNone:first-child {
  border-top-left-radius: var(--border-radius-small);
}

.doxygen-content th.markdownTableHeadLeft:last-child,
.doxygen-content th.markdownTableHeadRight:last-child,
.doxygen-content th.markdownTableHeadCenter:last-child,
.doxygen-content th.markdownTableHeadNone:last-child {
  border-top-right-radius: var(--border-radius-small);
}

.doxygen-content table.markdownTable td,
.doxygen-content table.markdownTable th,
.doxygen-content table.fieldtable dt {
  border: none;
  border-right: 1px solid var(--separator-color);
  padding: var(--spacing-small) var(--spacing-medium);
}

.doxygen-content table.markdownTable td:last-child,
.doxygen-content table.markdownTable th:last-child,
.doxygen-content table.fieldtable dt:last-child {
  border: none;
}

.doxygen-content table.markdownTable tr,
.doxygen-content table.markdownTable tr {
  border-bottom: 1px solid var(--separator-color);
}

.doxygen-content table.markdownTable tr:last-child,
.doxygen-content table.markdownTable tr:last-child {
  border-bottom: none;
}

.doxygen-content table.fieldtable th {
  font-size: var(--page-font-size);
  font-weight: 600;
  background-image: none;
  background-color: var(--tablehead-background);
  color: var(--tablehead-foreground);
  border-bottom: 1px solid var(--separator-color);
}

.doxygen-content .fieldtable td.fieldtype,
.doxygen-content .fieldtable td.fieldname {
  border-bottom: 1px solid var(--separator-color);
  border-right: 1px solid var(--separator-color);
}

.doxygen-content .fieldtable td.fielddoc {
  border-bottom: 1px solid var(--separator-color);
}

.doxygen-content .memberdecls td.glow,
.doxygen-content .fieldtable tr.glow {
  background-color: var(--primary-light-color);
  box-shadow: 0 0 15px var(--primary-light-color);
}

.doxygen-content table.memberdecls {
  display: block;
}

.doxygen-content table.memberdecls tr[class^='memitem'] {
  font-family: var(--font-family-monospace);
  font-size: var(--code-font-size);
}

.doxygen-content table.memberdecls tr[class^='memitem'] .memTemplParams {
  font-family: var(--font-family-monospace);
  font-size: var(--code-font-size);
  color: var(--primary-dark-color);
}

.doxygen-content table.memberdecls .memItemLeft,
.doxygen-content table.memberdecls .memItemRight,
.doxygen-content table.memberdecls .memTemplItemLeft,
.doxygen-content table.memberdecls .memTemplItemRight,
.doxygen-content table.memberdecls .memTemplParams {
  transition: none;
  padding-top: var(--spacing-small);
  padding-bottom: var(--spacing-small);
  border-top: 1px solid var(--separator-color);
  border-bottom: 1px solid var(--separator-color);
  background-color: var(--fragment-background);
}

.doxygen-content table.memberdecls .memTemplItemLeft,
.doxygen-content table.memberdecls .memTemplItemRight {
  padding-top: 2px;
}

.doxygen-content table.memberdecls .memTemplParams {
  border-bottom: 0;
  border-left: 1px solid var(--separator-color);
  border-right: 1px solid var(--separator-color);
  border-radius: var(--border-radius-small) var(--border-radius-small) 0 0;
  padding-bottom: 0;
}

.doxygen-content table.memberdecls .memTemplItemLeft {
  border-radius: 0 0 0 var(--border-radius-small);
  border-left: 1px solid var(--separator-color);
  border-top: 0;
}

.doxygen-content table.memberdecls .memTemplItemRight {
  border-radius: 0 0 var(--border-radius-small) 0;
  border-right: 1px solid var(--separator-color);
  border-top: 0;
}

.doxygen-content table.memberdecls .memItemLeft {
  border-radius: var(--border-radius-small) 0 0 var(--border-radius-small);
  border-left: 1px solid var(--separator-color);
  padding-left: var(--spacing-medium);
  padding-right: 0;
}

.doxygen-content table.memberdecls .memItemRight {
  border-radius: 0 var(--border-radius-small) var(--border-radius-small) 0;
  border-right: 1px solid var(--separator-color);
  padding-right: var(--spacing-medium);
  padding-left: 0;
}

.doxygen-content table.memberdecls .mdescLeft,
.doxygen-content table.memberdecls .mdescRight {
  background: none;
  color: var(--page-foreground-color);
  padding: var(--spacing-small) 0;
}

.doxygen-content table.memberdecls .memSeparator {
  background: var(--page-background-color);
  height: var(--spacing-large);
  border: 0;
  transition: none;
}

.doxygen-content table.memberdecls .groupheader {
  margin-bottom: var(--spacing-large);
}

.doxygen-content table.memberdecls .inherit_header td {
  padding: 0 0 var(--spacing-medium) 0;
  text-indent: -12px;
  line-height: 1.5em;
  color: var(--page-secondary-foreground-color);
}

@media screen and (max-width: 767px) {
  .doxygen-content table.memberdecls .memItemLeft,
.doxygen-content table.memberdecls .memItemRight,
.doxygen-content table.memberdecls .mdescLeft,
.doxygen-content table.memberdecls .mdescRight,
.doxygen-content table.memberdecls .memTemplItemLeft,
.doxygen-content table.memberdecls .memTemplItemRight,
.doxygen-content table.memberdecls .memTemplParams {
    display: block;
    text-align: left;
    padding-left: var(--spacing-large);
    margin: 0 calc(0px - var(--spacing-large)) 0 calc(0px - var(--spacing-large));
    border-right: none;
    border-left: none;
    border-radius: 0;
  }
  .doxygen-content table.memberdecls .memItemLeft,
.doxygen-content table.memberdecls .mdescLeft,
.doxygen-content table.memberdecls .memTemplItemLeft {
    border-bottom: 0;
    padding-bottom: 0;
  }
  .doxygen-content table.memberdecls .memTemplItemLeft {
    padding-top: 0;
  }
  .doxygen-content table.memberdecls .mdescLeft {
    margin-top: calc(0px - var(--page-font-size));
  }
  .doxygen-content table.memberdecls .memItemRight,
.doxygen-content table.memberdecls .mdescRight,
.doxygen-content table.memberdecls .memTemplItemRight {
    border-top: 0;
    padding-top: 0;
    padding-right: var(--spacing-large);
    overflow-x: auto;
  }
  .doxygen-content table.memberdecls tr[class^='memitem']:not(.inherit) {
    display: block;
    width: calc(100vw - 2 * var(--spacing-large));
  }
  .doxygen-content table.memberdecls .mdescRight {
    color: var(--page-foreground-color);
  }
  .doxygen-content table.memberdecls tr.inherit {
    visibility: hidden;
  }
  .doxygen-content table.memberdecls tr[style="display: table-row;"] {
    display: block !important;
    visibility: visible;
    width: calc(100vw - 2 * var(--spacing-large));
    animation: fade .5s;
  }
  @keyframes fade {
    0% {
      opacity: 0;
      max-height: 0;
    }
    100% {
      opacity: 1;
      max-height: 200px;
    }
  }
}

.doxygen-content hr {
  margin-top: var(--spacing-large);
  margin-bottom: var(--spacing-large);
  height: 1px;
  background-color: var(--separator-color);
  border: 0;
}

.doxygen-content .contents hr {
  box-shadow: 100px 0 0 var(--separator-color), -100px 0 0 var(--separator-color), 500px 0 0 var(--separator-color), -500px 0 0 var(--separator-color), 1500px 0 0 var(--separator-color), -1500px 0 0 var(--separator-color), 2000px 0 0 var(--separator-color), -2000px 0 0 var(--separator-color);
}

.doxygen-content .contents img,
.doxygen-content .contents .center,
.doxygen-content .contents center,
.doxygen-content .contents div.image object {
  max-width: 100%;
  overflow: auto;
}

@media screen and (max-width: 767px) {
  .doxygen-content .contents .dyncontent > .center,
.doxygen-content .contents > center {
    margin-left: calc(0px - var(--spacing-large));
    margin-right: calc(0px - var(--spacing-large));
    max-width: calc(100% + 2 * var(--spacing-large));
  }
}

.doxygen-content div.directory {
  border-top: 1px solid var(--separator-color);
  border-bottom: 1px solid var(--separator-color);
  width: auto;
}

.doxygen-content table.directory {
  font-family: var(--font-family);
  font-size: var(--page-font-size);
  font-weight: normal;
  width: 100%;
}

.doxygen-content table.directory td.entry {
  padding: var(--spacing-small);
}

.doxygen-content table.directory td.desc {
  min-width: 250px;
}

.doxygen-content table.directory tr.even {
  background-color: var(--odd-color);
}

.doxygen-content .icona {
  width: auto;
  height: auto;
  margin: 0 var(--spacing-small);
}

.doxygen-content .icon {
  background: var(--primary-color);
  width: 18px;
  height: 18px;
  line-height: 18px;
}

.doxygen-content .iconfopen,
.doxygen-content .icondoc,
.doxygen-content .iconfclosed {
  background-position: center;
  margin-bottom: 0;
}

.doxygen-content .icondoc {
  filter: saturate(0.2);
}

@media screen and (max-width: 767px) {
  .doxygen-content div.directory {
    margin-left: calc(0px - var(--spacing-large));
    margin-right: calc(0px - var(--spacing-large));
  }
}

@media (prefers-color-scheme: dark) {
  .doxygen-content html:not(.light-mode) .iconfopen,
.doxygen-content html:not(.light-mode) .iconfclosed {
    filter: hue-rotate(180deg) invert();
  }
}

.doxygen-content html.dark-mode .iconfopen,
.doxygen-content html.dark-mode .iconfclosed {
  filter: hue-rotate(180deg) invert();
}

.doxygen-content .classindex dl.odd {
  background: var(--odd-color);
  border-radius: var(--border-radius-small);
}

.doxygen-content table.classindex {
  margin-left: 0;
  margin-right: 0;
  width: 100%;
}

.doxygen-content table.classindex table div.ah {
  background-image: none;
  background-color: initial;
  border-color: var(--separator-color);
  color: var(--page-foreground-color);
  box-shadow: var(--box-shadow);
  border-radius: var(--border-radius-large);
  padding: var(--spacing-small);
}

.doxygen-content div.qindex {
  background-color: var(--odd-color);
  border-radius: var(--border-radius-small);
  border: 1px solid var(--separator-color);
  padding: var(--spacing-small) 0;
}

.doxygen-content #nav-path {
  width: 100%;
}

.doxygen-content #nav-path ul {
  background-image: none;
  background: var(--page-background-color);
  border: none;
  border-top: 1px solid var(--separator-color);
  border-bottom: 1px solid var(--separator-color);
  border-bottom: 0;
  box-shadow: 0 0.75px 0 var(--separator-color);
  font-size: var(--navigation-font-size);
}

.doxygen-content img.footer {
  width: 60px;
}

.doxygen-content .navpath li.footer {
  color: var(--page-secondary-foreground-color);
}

.doxygen-content address.footer {
  color: var(--page-secondary-foreground-color);
  margin-bottom: var(--spacing-large);
}

.doxygen-content #nav-path li.navelem {
  background-image: none;
  display: flex;
  align-items: center;
}

.doxygen-content .navpath li.navelem a {
  text-shadow: none;
  display: inline-block;
  color: var(--primary-color) !important;
}

.doxygen-content .navpath li.navelem b {
  color: var(--primary-dark-color);
  font-weight: 500;
}

.doxygen-content li.navelem {
  padding: 0;
  margin-left: -8px;
}

.doxygen-content li.navelem:first-child {
  margin-left: var(--spacing-large);
}

.doxygen-content li.navelem:first-child:before {
  display: none;
}

.doxygen-content #nav-path li.navelem:after {
  content: '';
  border: 5px solid var(--page-background-color);
  border-bottom-color: transparent;
  border-right-color: transparent;
  border-top-color: transparent;
  transform: translateY(-1px) scaleY(4.2);
  z-index: 10;
  margin-left: 6px;
}

.doxygen-content #nav-path li.navelem:before {
  content: '';
  border: 5px solid var(--separator-color);
  border-bottom-color: transparent;
  border-right-color: transparent;
  border-top-color: transparent;
  transform: translateY(-1px) scaleY(3.2);
  margin-right: var(--spacing-small);
}

.doxygen-content .navpath li.navelem a:hover {
  color: var(--primary-color);
}

.doxygen-content #nav-tree::-webkit-scrollbar,
.doxygen-content div.fragment::-webkit-scrollbar,
.doxygen-content pre.fragment::-webkit-scrollbar,
.doxygen-content div.memproto::-webkit-scrollbar,
.doxygen-content .contents center::-webkit-scrollbar,
.doxygen-content .contents .center::-webkit-scrollbar,
.doxygen-content .contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname)::-webkit-scrollbar {
  width: calc(var(--webkit-scrollbar-size) + var(--webkit-scrollbar-padding) + var(--webkit-scrollbar-padding));
  height: calc(var(--webkit-scrollbar-size) + var(--webkit-scrollbar-padding) + var(--webkit-scrollbar-padding));
}

.doxygen-content #nav-tree::-webkit-scrollbar-thumb,
.doxygen-content div.fragment::-webkit-scrollbar-thumb,
.doxygen-content pre.fragment::-webkit-scrollbar-thumb,
.doxygen-content div.memproto::-webkit-scrollbar-thumb,
.doxygen-content .contents center::-webkit-scrollbar-thumb,
.doxygen-content .contents .center::-webkit-scrollbar-thumb,
.doxygen-content .contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname)::-webkit-scrollbar-thumb {
  background-color: transparent;
  border: var(--webkit-scrollbar-padding) solid transparent;
  border-radius: calc(var(--webkit-scrollbar-padding) + var(--webkit-scrollbar-padding));
  background-clip: padding-box;
}

.doxygen-content #nav-tree:hover::-webkit-scrollbar-thumb,
.doxygen-content div.fragment:hover::-webkit-scrollbar-thumb,
.doxygen-content pre.fragment:hover::-webkit-scrollbar-thumb,
.doxygen-content div.memproto:hover::-webkit-scrollbar-thumb,
.doxygen-content .contents center:hover::-webkit-scrollbar-thumb,
.doxygen-content .contents .center:hover::-webkit-scrollbar-thumb,
.doxygen-content .contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname):hover::-webkit-scrollbar-thumb {
  background-color: var(--webkit-scrollbar-color);
}

.doxygen-content #nav-tree::-webkit-scrollbar-track,
.doxygen-content div.fragment::-webkit-scrollbar-track,
.doxygen-content pre.fragment::-webkit-scrollbar-track,
.doxygen-content div.memproto::-webkit-scrollbar-track,
.doxygen-content .contents center::-webkit-scrollbar-track,
.doxygen-content .contents .center::-webkit-scrollbar-track,
.doxygen-content .contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname)::-webkit-scrollbar-track {
  background: transparent;
}

.doxygen-content #nav-tree::-webkit-scrollbar-corner {
  background-color: var(--side-nav-background);
}

.doxygen-content #nav-tree,
.doxygen-content div.fragment,
.doxygen-content pre.fragment,
.doxygen-content div.memproto,
.doxygen-content .contents center,
.doxygen-content .contents .center,
.doxygen-content .contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) {
  overflow-x: auto;
  overflow-x: overlay;
}

.doxygen-content #nav-tree {
  overflow-x: auto;
  overflow-y: auto;
  overflow-y: overlay;
}

.doxygen-content #nav-tree,
.doxygen-content div.fragment,
.doxygen-content pre.fragment,
.doxygen-content div.memproto,
.doxygen-content .contents center,
.doxygen-content .contents .center,
.doxygen-content .contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) {
  scrollbar-width: thin;
}

.doxygen-content doxygen-awesome-dark-mode-toggle {
  display: inline-block;
  margin: 0 0 0 var(--spacing-small);
  padding: 0;
  width: var(--searchbar-height);
  height: var(--searchbar-height);
  background: none;
  border: none;
  border-radius: var(--searchbar-height);
  vertical-align: middle;
  text-align: center;
  line-height: var(--searchbar-height);
  font-size: 22px;
  display: flex;
  align-items: center;
  justify-content: center;
  user-select: none;
  cursor: pointer;
}

.doxygen-content doxygen-awesome-dark-mode-toggle > svg {
  transition: transform .1s ease-in-out;
}

.doxygen-content doxygen-awesome-dark-mode-toggle:active > svg {
  transform: scale(0.5);
}

.doxygen-content doxygen-awesome-dark-mode-toggle:hover {
  background-color: rgba(0, 0, 0, 0.03);
}

.doxygen-content html.dark-mode doxygen-awesome-dark-mode-toggle:hover {
  background-color: rgba(0, 0, 0, 0.18);
}

.doxygen-content .doxygen-awesome-fragment-wrapper {
  position: relative;
}

.doxygen-content doxygen-awesome-fragment-copy-button {
  opacity: 0;
  background: var(--fragment-background);
  width: 28px;
  height: 28px;
  position: absolute;
  right: calc(var(--spacing-large) - (var(--spacing-large) / 2.5));
  top: calc(var(--spacing-large) - (var(--spacing-large) / 2.5));
  border: 1px solid var(--fragment-foreground);
  cursor: pointer;
  border-radius: var(--border-radius-small);
  display: flex;
  justify-content: center;
  align-items: center;
}

.doxygen-content .doxygen-awesome-fragment-wrapper:hover doxygen-awesome-fragment-copy-button,
.doxygen-content doxygen-awesome-fragment-copy-button.success {
  opacity: .28;
}

.doxygen-content doxygen-awesome-fragment-copy-button:hover,
.doxygen-content doxygen-awesome-fragment-copy-button.success {
  opacity: 1 !important;
}

.doxygen-content doxygen-awesome-fragment-copy-button:active:not([class~=success]) svg {
  transform: scale(0.91);
}

.doxygen-content doxygen-awesome-fragment-copy-button svg {
  fill: var(--fragment-foreground);
  width: 18px;
  height: 18px;
}

.doxygen-content doxygen-awesome-fragment-copy-button.success svg {
  fill: #0ea80e;
}

.doxygen-content doxygen-awesome-fragment-copy-button.success {
  border-color: #0ea80e;
}

@media screen and (max-width: 767px) {
  .doxygen-content .textblock > .doxygen-awesome-fragment-wrapper > doxygen-awesome-fragment-copy-button,
.doxygen-content .textblock li > .doxygen-awesome-fragment-wrapper > doxygen-awesome-fragment-copy-button,
.doxygen-content .memdoc li > .doxygen-awesome-fragment-wrapper > doxygen-awesome-fragment-copy-button,
.doxygen-content .memdoc > .doxygen-awesome-fragment-wrapper > doxygen-awesome-fragment-copy-button,
.doxygen-content dl dd > .doxygen-awesome-fragment-wrapper > doxygen-awesome-fragment-copy-button {
    right: 0;
  }
}

.doxygen-content a.anchorlink {
  font-size: 90%;
  margin-left: var(--spacing-small);
  color: var(--page-foreground-color) !important;
  text-decoration: none;
  opacity: .15;
  display: none;
  transition: opacity .1s ease-in-out, color .1s ease-in-out;
}

.doxygen-content a.anchorlink svg {
  fill: var(--page-foreground-color);
}

.doxygen-content h3 a.anchorlink svg,
.doxygen-content h4 a.anchorlink svg {
  margin-bottom: -3px;
  margin-top: -4px;
}

.doxygen-content a.anchorlink:hover {
  opacity: .45;
}

.doxygen-content h2:hover a.anchorlink,
.doxygen-content h1:hover a.anchorlink,
.doxygen-content h3:hover a.anchorlink,
.doxygen-content h4:hover a.anchorlink {
  display: inline-block;
}
