@charset "UTF-8";
/* 61e9ad559247a6289ecd0003638200cd0ffee1f32734614e35d7e27464829282d110ed96bcb28b85dcf0f9f8e220a8eb10f3af5db00f22bf58a4aaf24fa35202 <- 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 - 2023 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
 */
  /* until Doxygen 1.9.4 */
  /* Doxygen 1.9.5 */
  /*
 Tree view
 */
  /*
 Contents
 */
  /* Wrap Graphviz graphs with the `interactive_dotgraph` class if `INTERACTIVE_SVG = YES` */
  /*
 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
*/
  /*
 Optional tab feature
*/
  /*
 Navigation Buttons
*/
}

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: #ffffff;
  --page-foreground-color: #2f4153;
  --page-secondary-foreground-color: #6f7e8e;
  /* 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 components 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, search result, ... */
  --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;
  --toc-font-size: 13.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: 1050px;
  --table-line-height: 24px;
  --toc-sticky-top: var(--spacing-medium);
  --toc-width: 200px;
  --toc-max-height: calc(100vh - 2 * var(--spacing-medium) - 85px);
  /* colors for various content boxes: @warning, @note, @deprecated @bug */
  --warning-color: #faf3d8;
  --warning-color-dark: #f3a600;
  --warning-color-darker: #5f4204;
  --note-color: #e4f3ff;
  --note-color-dark: #1879C4;
  --note-color-darker: #274a5c;
  --todo-color: #e4dafd;
  --todo-color-dark: #5b2bdd;
  --todo-color-darker: #2a0d72;
  --deprecated-color: #ecf0f3;
  --deprecated-color-dark: #5b6269;
  --deprecated-color-darker: #43454a;
  --bug-color: #f8d1cc;
  --bug-color-dark: #b61825;
  --bug-color-darker: #75070f;
  --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 / collapsible 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);
  --animation-duration: .12s
;
}

@media screen and (max-width: 767px) {
  html {
    --page-font-size: 16px;
    --navigation-font-size: 16px;
    --toc-font-size: 15px;
    --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: #3b2e04;
    --warning-color-dark: #f1b602;
    --warning-color-darker: #ceb670;
    --note-color: #163750;
    --note-color-dark: #1982D2;
    --note-color-darker: #dcf0fa;
    --todo-color: #2a2536;
    --todo-color-dark: #7661b3;
    --todo-color-darker: #ae9ed6;
    --deprecated-color: #2e323b;
    --deprecated-color-dark: #738396;
    --deprecated-color-darker: #abb0bd;
    --bug-color: #2e1917;
    --bug-color-dark: #ad2617;
    --bug-color-darker: #f5b1aa;
    --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: #3b2e04;
  --warning-color-dark: #f1b602;
  --warning-color-darker: #ceb670;
  --note-color: #163750;
  --note-color-dark: #1982D2;
  --note-color-darker: #dcf0fa;
  --todo-color: #2a2536;
  --todo-color-dark: #7661b3;
  --todo-color-darker: #ae9ed6;
  --deprecated-color: #2e323b;
  --deprecated-color-dark: #738396;
  --deprecated-color-darker: #abb0bd;
  --bug-color: #2e1917;
  --bug-color-dark: #ad2617;
  --bug-color-darker: #f5b1aa;
  --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, .doxygen-content p.reference, .doxygen-content p.definition, .doxygen-content div.toc li, .doxygen-content div.toc h3 {
  font-family: var(--font-family);
}

.doxygen-content h1, .doxygen-content h2, .doxygen-content h3, .doxygen-content h4, .doxygen-content h5 {
  margin-top: 1em;
  font-weight: 600;
  line-height: initial;
}

.doxygen-content p, .doxygen-content div, .doxygen-content table, .doxygen-content dl, .doxygen-content p.reference, .doxygen-content p.definition {
  font-size: var(--page-font-size);
}

.doxygen-content p.reference, .doxygen-content p.definition {
  color: var(--page-secondary-foreground-color);
}

.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;
  background: none;
}

.doxygen-content a.anchor {
  scroll-margin-top: var(--spacing-large);
  display: block;
}

.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;
}

.doxygen-content .main-menu-btn-icon, .doxygen-content .main-menu-btn-icon:before, .doxygen-content .main-menu-btn-icon:after {
  background: var(--page-secondary-foreground-color);
}

@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 img#MSearchSelect {
  left: 0;
  user-select: none;
  padding-left: 8px;
}

.doxygen-content .left span#MSearchSelect {
  left: 0;
  user-select: none;
  margin-left: 8px;
  padding: 0;
}

.doxygen-content .left #MSearchSelect[src$=".png"] {
  padding-left: 0;
}

.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 #MSearchBox span.left, .doxygen-content #MSearchBox span.right {
  background: none;
  background-image: 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 #MSearchResults .SRPage {
  background-color: transparent;
}

.doxygen-content #MSearchResults .SRPage .SREntry {
  font-size: 10pt;
  padding: var(--spacing-small) var(--spacing-medium);
}

.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;
    width: auto !important;
  }
  .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);
  min-width: 8px;
  max-width: 50vw;
}

@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;
  margin-right: 1px;
}

.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-tree .item > a:focus {
  outline: none;
}

.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);
  background: none;
}

.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 {
  width: 4px;
  background: transparent;
  box-shadow: inset -1px 0 0 0 var(--separator-color);
}

.doxygen-content div.header {
  border-bottom: 1px solid var(--separator-color);
  background-color: var(--page-background-color);
  background-image: none;
}

@media screen and (min-width: 1000px) {
  .doxygen-content #doc-content > div > div.contents,
.doxygen-content .PageDoc > div.contents {
    display: flex;
    flex-direction: row-reverse;
    flex-wrap: nowrap;
    align-items: flex-start;
  }
  .doxygen-content div.contents .textblock {
    min-width: 200px;
    flex-grow: 1;
  }
}

.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: 225%;
  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,
.doxygen-content html:not(.light-mode) div.contents .dotgraph iframe {
    filter: brightness(89%) 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,
.doxygen-content html.dark-mode div.contents .dotgraph iframe {
  filter: brightness(89%) 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), 900px 0 var(--page-background-color), -900px 0 var(--page-background-color), 900px 0.75px var(--separator-color), -900px 0.75px var(--separator-color), 1400px 0 var(--page-background-color), -1400px 0 var(--page-background-color), 1400px 0.75px var(--separator-color), -1400px 0.75px var(--separator-color), 1900px 0 var(--page-background-color), -1900px 0 var(--page-background-color), 1900px 0.75px var(--separator-color), -1900px 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, .doxygen-content .paramname em {
  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);
  line-height: var(--table-line-height);
}

.doxygen-content h1.glow, .doxygen-content h2.glow, .doxygen-content h3.glow, .doxygen-content h4.glow, .doxygen-content h5.glow, .doxygen-content h6.glow {
  text-shadow: 0 0 15px var(--primary-light-color);
}

.doxygen-content .alphachar a {
  color: var(--page-foreground-color);
}

.doxygen-content .dotgraph {
  max-width: 100%;
  overflow-x: scroll;
}

.doxygen-content .dotgraph .caption {
  position: sticky;
  left: 0;
}

.doxygen-content .interactive_dotgraph .dotgraph iframe {
  max-width: 100%;
}

.doxygen-content div.contents .toc {
  max-height: var(--toc-max-height);
  min-width: var(--toc-width);
  border: 0;
  border-left: 1px solid var(--separator-color);
  border-radius: 0;
  background-color: var(--page-background-color);
  box-shadow: none;
  position: sticky;
  top: var(--toc-sticky-top);
  padding: 0 var(--spacing-large);
  margin: var(--spacing-small) 0 var(--spacing-large) var(--spacing-large);
}

.doxygen-content div.toc h3 {
  color: var(--toc-foreground);
  font-size: var(--navigation-font-size);
  margin: var(--spacing-large) 0 var(--spacing-medium) 0;
}

.doxygen-content div.toc li {
  padding: 0;
  background: none;
  line-height: var(--toc-font-size);
  margin: var(--toc-font-size) 0 0 0;
}

.doxygen-content div.toc li::before {
  display: none;
}

.doxygen-content div.toc ul {
  margin-top: 0;
}

.doxygen-content div.toc li a {
  font-size: var(--toc-font-size);
  color: var(--page-foreground-color) !important;
  text-decoration: none;
}

.doxygen-content div.toc li a:hover, .doxygen-content div.toc li a.active {
  color: var(--primary-color) !important;
}

.doxygen-content div.toc li a.aboveActive {
  color: var(--page-secondary-foreground-color) !important;
}

@media screen and (max-width: 999px) {
  .doxygen-content div.contents .toc {
    max-height: 45vh;
    float: none;
    width: auto;
    margin: 0 0 var(--spacing-medium) 0;
    position: relative;
    top: 0;
    position: relative;
    border: 1px solid var(--separator-color);
    border-radius: var(--border-radius-medium);
    background-color: var(--toc-background);
    box-shadow: var(--box-shadow);
  }
  .doxygen-content div.contents .toc.interactive {
    max-height: calc(var(--navigation-font-size) + 2 * var(--spacing-large));
    overflow: hidden;
  }
  .doxygen-content div.contents .toc > h3 {
    -webkit-tap-highlight-color: transparent;
    cursor: pointer;
    position: sticky;
    top: 0;
    background-color: var(--toc-background);
    margin: 0;
    padding: var(--spacing-large) 0;
    display: block;
  }
  .doxygen-content div.contents .toc.interactive > h3::before {
    content: "";
    width: 0;
    height: 0;
    border-left: 4px solid transparent;
    border-right: 4px solid transparent;
    border-top: 5px solid var(--primary-color);
    display: inline-block;
    margin-right: var(--spacing-small);
    margin-bottom: calc(var(--navigation-font-size) / 4);
    transform: rotate(-90deg);
    transition: transform var(--animation-duration) ease-out;
  }
  .doxygen-content div.contents .toc.interactive.open > h3::before {
    transform: rotate(0deg);
  }
  .doxygen-content div.contents .toc.interactive.open {
    max-height: 45vh;
    overflow: auto;
    transition: max-height 0.2s ease-in-out;
  }
  .doxygen-content div.contents .toc a, .doxygen-content div.contents .toc a.active {
    color: var(--primary-color) !important;
  }
  .doxygen-content div.contents .toc a:hover {
    text-decoration: underline;
  }
}

.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;
}

.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 .textblock > .tabbed > ul > li > div.fragment,
.doxygen-content .textblock > .tabbed > ul > li > 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,
.doxygen-content .textblock > .tabbed > ul > li > .doxygen-awesome-fragment-wrapper > div.fragment,
.doxygen-content .textblock > .tabbed > ul > li > .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);
  background-color: var(--fragment-linenumber-background) !important;
}

.doxygen-content div.line {
  border-radius: var(--border-radius-small);
}

.doxygen-content div.line.glow {
  background-color: var(--primary-light-color);
  box-shadow: none;
}

.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.post, .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 a {
  color: var(--todo-color-dark) !important;
}

.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, .doxygen-content dl.post {
  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, .doxygen-content dl.post 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);
}

.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);
  text-shadow: none;
}

.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;
  text-shadow: none;
}

.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),
.doxygen-content .contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) tbody {
  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.fieldtable,
.doxygen-content table.markdownTable tbody,
.doxygen-content table.doxtable tbody {
  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.markdownTable, .doxygen-content table.doxtable, .doxygen-content table.fieldtable {
  padding: 1px;
}

.doxygen-content table.doxtable caption {
  display: block;
}

.doxygen-content table.fieldtable {
  border-collapse: collapse;
  width: 100%;
}

.doxygen-content th.markdownTableHeadLeft,
.doxygen-content th.markdownTableHeadRight,
.doxygen-content th.markdownTableHeadCenter,
.doxygen-content th.markdownTableHeadNone,
.doxygen-content table.doxtable th {
  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,
.doxygen-content table.doxtable tr th: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,
.doxygen-content table.doxtable tr th:last-child {
  border-top-right-radius: var(--border-radius-small);
}

.doxygen-content table.markdownTable td,
.doxygen-content table.markdownTable th,
.doxygen-content table.fieldtable td,
.doxygen-content table.fieldtable th,
.doxygen-content table.doxtable td,
.doxygen-content table.doxtable th {
  border: 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 td:last-child,
.doxygen-content table.fieldtable th:last-child,
.doxygen-content table.doxtable td:last-child,
.doxygen-content table.doxtable th:last-child {
  border-right: none;
}

.doxygen-content table.markdownTable td:first-child,
.doxygen-content table.markdownTable th:first-child,
.doxygen-content table.fieldtable td:first-child,
.doxygen-content table.fieldtable th:first-child,
.doxygen-content table.doxtable td:first-child,
.doxygen-content table.doxtable th:first-child {
  border-left: none;
}

.doxygen-content table.markdownTable tr:first-child td,
.doxygen-content table.markdownTable tr:first-child th,
.doxygen-content table.fieldtable tr:first-child td,
.doxygen-content table.fieldtable tr:first-child th,
.doxygen-content table.doxtable tr:first-child td,
.doxygen-content table.doxtable tr:first-child th {
  border-top: none;
}

.doxygen-content table.markdownTable tr:last-child td,
.doxygen-content table.markdownTable tr:last-child th,
.doxygen-content table.fieldtable tr:last-child td,
.doxygen-content table.fieldtable tr:last-child th,
.doxygen-content table.doxtable tr:last-child td,
.doxygen-content table.doxtable tr:last-child th {
  border-bottom: none;
}

.doxygen-content table.markdownTable tr, .doxygen-content table.doxtable tr {
  border-bottom: 1px solid var(--separator-color);
}

.doxygen-content table.markdownTable tr:last-child, .doxygen-content table.doxtable tr:last-child {
  border-bottom: none;
}

.doxygen-content .full_width_table table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) {
  display: block;
}

.doxygen-content .full_width_table table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) tbody {
  display: table;
  width: 100%;
}

.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);
}

.doxygen-content table.fieldtable td.fieldtype, .doxygen-content .fieldtable td.fieldname, .doxygen-content .fieldtable td.fielddoc, .doxygen-content .fieldtable th {
  border-bottom: 1px solid var(--separator-color);
  border-right: 1px solid var(--separator-color);
}

.doxygen-content table.fieldtable tr:last-child td:first-child {
  border-bottom-left-radius: var(--border-radius-small);
}

.doxygen-content table.fieldtable tr:last-child td:last-child {
  border-bottom-right-radius: var(--border-radius-small);
}

.doxygen-content .memberdecls td.glow, .doxygen-content .fieldtable tr.glow {
  background-color: var(--primary-light-color);
  box-shadow: none;
}

.doxygen-content table.memberdecls {
  display: block;
  -webkit-tap-highlight-color: transparent;
}

.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);
  white-space: normal;
}

.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: var(--spacing-small);
}

.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);
  padding-left: 0;
  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 .memItemLeft,
.doxygen-content table.memberdecls .memTemplItemLeft {
  padding-right: var(--spacing-medium);
}

.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;
  color: var(--page-secondary-foreground-color);
}

.doxygen-content table.memberdecls img[src="closed.png"],
.doxygen-content table.memberdecls img[src="open.png"],
.doxygen-content div.dynheader img[src="open.png"],
.doxygen-content div.dynheader img[src="closed.png"] {
  width: 0;
  height: 0;
  border-left: 4px solid transparent;
  border-right: 4px solid transparent;
  border-top: 5px solid var(--primary-color);
  margin-top: 8px;
  display: block;
  float: left;
  margin-left: -10px;
  transition: transform var(--animation-duration) ease-out;
}

.doxygen-content table.memberdecls img {
  margin-right: 10px;
}

.doxygen-content table.memberdecls img[src="closed.png"],
.doxygen-content div.dynheader img[src="closed.png"] {
  transform: rotate(-90deg);
}

.doxygen-content .compoundTemplParams {
  font-family: var(--font-family-monospace);
  color: var(--primary-dark-color);
  font-size: var(--code-font-size);
}

@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;
    white-space: normal;
  }
  .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-bottom: 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 var(--separator-color), -100px 0 var(--separator-color), 500px 0 var(--separator-color), -500px 0 var(--separator-color), 900px 0 var(--separator-color), -900px 0 var(--separator-color), 1400px 0 var(--separator-color), -1400px 0 var(--separator-color), 1900px 0 var(--separator-color), -1900px 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, .doxygen-content table.directory td.desc {
  padding: calc(var(--spacing-small) / 2) var(--spacing-small);
  line-height: var(--table-line-height);
}

.doxygen-content table.directory tr.even td:last-child {
  border-radius: 0 var(--border-radius-small) var(--border-radius-small) 0;
}

.doxygen-content table.directory tr.even td:first-child {
  border-radius: var(--border-radius-small) 0 0 var(--border-radius-small);
}

.doxygen-content table.directory tr.even:last-child td:last-child {
  border-radius: 0 var(--border-radius-small) 0 0;
}

.doxygen-content table.directory tr.even:last-child td:first-child {
  border-radius: var(--border-radius-small) 0 0 0;
}

.doxygen-content table.directory td.desc {
  min-width: 250px;
}

.doxygen-content table.directory tr.even {
  background-color: var(--odd-color);
}

.doxygen-content table.directory tr.odd {
  background-color: transparent;
}

.doxygen-content .icona {
  width: auto;
  height: auto;
  margin: 0 var(--spacing-small);
}

.doxygen-content .icon {
  background: var(--primary-color);
  border-radius: var(--border-radius-small);
  font-size: var(--page-font-size);
  padding: calc(var(--page-font-size) / 5);
  line-height: var(--page-font-size);
  transform: scale(0.8);
  height: auto;
  width: var(--page-font-size);
  user-select: none;
}

.doxygen-content .iconfopen, .doxygen-content .icondoc, .doxygen-content .iconfclosed {
  background-position: center;
  margin-bottom: 0;
  height: var(--table-line-height);
}

.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 .classindex dl.even {
  background-color: transparent;
}

.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) tbody::-webkit-scrollbar,
.doxygen-content div.contents .toc::-webkit-scrollbar,
.doxygen-content .contents .dotgraph::-webkit-scrollbar,
.doxygen-content .contents .tabs-overview-container::-webkit-scrollbar {
  background: transparent;
  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) tbody::-webkit-scrollbar-thumb,
.doxygen-content div.contents .toc::-webkit-scrollbar-thumb,
.doxygen-content .contents .dotgraph::-webkit-scrollbar-thumb,
.doxygen-content .contents .tabs-overview-container::-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) tbody:hover::-webkit-scrollbar-thumb,
.doxygen-content div.contents .toc:hover::-webkit-scrollbar-thumb,
.doxygen-content .contents .dotgraph:hover::-webkit-scrollbar-thumb,
.doxygen-content .contents .tabs-overview-container: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) tbody::-webkit-scrollbar-track,
.doxygen-content div.contents .toc::-webkit-scrollbar-track,
.doxygen-content .contents .dotgraph::-webkit-scrollbar-track,
.doxygen-content .contents .tabs-overview-container::-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) tbody,
.doxygen-content div.contents .toc {
  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) tbody,
.doxygen-content div.contents .toc,
.doxygen-content .contents .dotgraph,
.doxygen-content .contents .tabs-overview-container {
  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 var(--animation-duration) 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 var(--animation-duration) ease-in-out, color var(--animation-duration) 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;
}

.doxygen-content .tabbed > ul {
  padding-inline-start: 0px;
  margin: 0;
  padding: var(--spacing-small) 0;
}

.doxygen-content .tabbed > ul > li {
  display: none;
}

.doxygen-content .tabbed > ul > li.selected {
  display: block;
}

.doxygen-content .tabs-overview-container {
  overflow-x: auto;
  display: block;
  overflow-y: visible;
}

.doxygen-content .tabs-overview {
  border-bottom: 1px solid var(--separator-color);
  display: flex;
  flex-direction: row;
}

@media screen and (max-width: 767px) {
  .doxygen-content .tabs-overview-container {
    margin: 0 calc(0px - var(--spacing-large));
  }
  .doxygen-content .tabs-overview {
    padding: 0 var(--spacing-large);
  }
}

.doxygen-content .tabs-overview button.tab-button {
  color: var(--page-foreground-color);
  margin: 0;
  border: none;
  background: transparent;
  padding: calc(var(--spacing-large) / 2) 0;
  display: inline-block;
  font-size: var(--page-font-size);
  cursor: pointer;
  box-shadow: 0 1px 0 0 var(--separator-color);
  position: relative;
  -webkit-tap-highlight-color: transparent;
}

.doxygen-content .tabs-overview button.tab-button .tab-title::before {
  display: block;
  content: attr(title);
  font-weight: 600;
  height: 0;
  overflow: hidden;
  visibility: hidden;
}

.doxygen-content .tabs-overview button.tab-button .tab-title {
  float: left;
  white-space: nowrap;
  font-weight: normal;
  padding: calc(var(--spacing-large) / 2) var(--spacing-large);
  border-radius: var(--border-radius-medium);
  transition: background-color var(--animation-duration) ease-in-out, font-weight var(--animation-duration) ease-in-out;
}

.doxygen-content .tabs-overview button.tab-button:not(:last-child) .tab-title {
  box-shadow: 8px 0 0 -7px var(--separator-color);
}

.doxygen-content .tabs-overview button.tab-button:hover .tab-title {
  background: var(--separator-color);
  box-shadow: none;
}

.doxygen-content .tabs-overview button.tab-button.active .tab-title {
  font-weight: 600;
}

.doxygen-content .tabs-overview button.tab-button::after {
  content: '';
  display: block;
  position: absolute;
  left: 0;
  bottom: 0;
  right: 0;
  height: 0;
  width: 0%;
  margin: 0 auto;
  border-radius: var(--border-radius-small) var(--border-radius-small) 0 0;
  background-color: var(--primary-color);
  transition: width var(--animation-duration) ease-in-out, height var(--animation-duration) ease-in-out;
}

.doxygen-content .tabs-overview button.tab-button.active::after {
  width: 100%;
  box-sizing: border-box;
  height: 3px;
}

.doxygen-content .section_buttons:not(:empty) {
  margin-top: calc(var(--spacing-large) * 3);
}

.doxygen-content .section_buttons table.markdownTable {
  display: block;
  width: 100%;
}

.doxygen-content .section_buttons table.markdownTable tbody {
  display: table !important;
  width: 100%;
  box-shadow: none;
  border-spacing: 10px;
}

.doxygen-content .section_buttons table.markdownTable td {
  padding: 0;
}

.doxygen-content .section_buttons table.markdownTable th {
  display: none;
}

.doxygen-content .section_buttons table.markdownTable tr.markdownTableHead {
  border: none;
}

.doxygen-content .section_buttons tr th, .doxygen-content .section_buttons tr td {
  background: none;
  border: none;
  padding: var(--spacing-large) 0 var(--spacing-small);
}

.doxygen-content .section_buttons a {
  display: inline-block;
  border: 1px solid var(--separator-color);
  border-radius: var(--border-radius-medium);
  color: var(--page-secondary-foreground-color) !important;
  text-decoration: none;
  transition: color var(--animation-duration) ease-in-out, background-color var(--animation-duration) ease-in-out;
}

.doxygen-content .section_buttons a:hover {
  color: var(--page-foreground-color) !important;
  background-color: var(--odd-color);
}

.doxygen-content .section_buttons tr td.markdownTableBodyLeft a {
  padding: var(--spacing-medium) var(--spacing-large) var(--spacing-medium) calc(var(--spacing-large) / 2);
}

.doxygen-content .section_buttons tr td.markdownTableBodyRight a {
  padding: var(--spacing-medium) calc(var(--spacing-large) / 2) var(--spacing-medium) var(--spacing-large);
}

.doxygen-content .section_buttons tr td.markdownTableBodyLeft a::before,
.doxygen-content .section_buttons tr td.markdownTableBodyRight a::after {
  color: var(--page-secondary-foreground-color) !important;
  display: inline-block;
  transition: color .08s ease-in-out, transform .09s ease-in-out;
}

.doxygen-content .section_buttons tr td.markdownTableBodyLeft a::before {
  content: '〈';
  padding-right: var(--spacing-large);
}

.doxygen-content .section_buttons tr td.markdownTableBodyRight a::after {
  content: '〉';
  padding-left: var(--spacing-large);
}

.doxygen-content .section_buttons tr td.markdownTableBodyLeft a:hover::before {
  color: var(--page-foreground-color) !important;
  transform: translateX(-3px);
}

.doxygen-content .section_buttons tr td.markdownTableBodyRight a:hover::after {
  color: var(--page-foreground-color) !important;
  transform: translateX(3px);
}

@media screen and (max-width: 450px) {
  .doxygen-content .section_buttons a {
    width: 100%;
    box-sizing: border-box;
  }
  .doxygen-content .section_buttons tr td:nth-of-type(1).markdownTableBodyLeft a {
    border-radius: var(--border-radius-medium) 0 0 var(--border-radius-medium);
    border-right: none;
  }
  .doxygen-content .section_buttons tr td:nth-of-type(2).markdownTableBodyRight a {
    border-radius: 0 var(--border-radius-medium) var(--border-radius-medium) 0;
  }
}
