1/**
2
3Doxygen Awesome
4https://github.com/jothepro/doxygen-awesome-css
5
6MIT License
7
8Copyright (c) 2021 - 2023 jothepro
9
10Permission is hereby granted, free of charge, to any person obtaining a copy
11of this software and associated documentation files (the "Software"), to deal
12in the Software without restriction, including without limitation the rights
13to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
14copies of the Software, and to permit persons to whom the Software is
15furnished to do so, subject to the following conditions:
16
17The above copyright notice and this permission notice shall be included in all
18copies or substantial portions of the Software.
19
20THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
21IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
22FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
23AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
24LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
25OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
26SOFTWARE.
27
28*/
29
30html {
31    /* primary theme color. This will affect the entire websites color scheme: links, arrows, labels, ... */
32    --primary-color: #1779c4;
33    --primary-dark-color: #335c80;
34    --primary-light-color: #70b1e9;
35
36    /* page base colors */
37    --page-background-color: #ffffff;
38    --page-foreground-color: #2f4153;
39    --page-secondary-foreground-color: #6f7e8e;
40
41    /* color for all separators on the website: hr, borders, ... */
42    --separator-color: #dedede;
43
44    /* border radius for all rounded components. Will affect many components, like dropdowns, memitems, codeblocks, ... */
45    --border-radius-large: 8px;
46    --border-radius-small: 4px;
47    --border-radius-medium: 6px;
48
49    /* default spacings. Most components reference these values for spacing, to provide uniform spacing on the page. */
50    --spacing-small: 5px;
51    --spacing-medium: 10px;
52    --spacing-large: 16px;
53
54    /* default box shadow used for raising an element above the normal content. Used in dropdowns, search result, ... */
55    --box-shadow: 0 2px 8px 0 rgba(0,0,0,.075);
56
57    --odd-color: rgba(0,0,0,.028);
58
59    /* font-families. will affect all text on the website
60     * font-family: the normal font for text, headlines, menus
61     * font-family-monospace: used for preformatted text in memtitle, code, fragments
62     */
63    --font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;
64    --font-family-monospace: ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;
65
66    /* font sizes */
67    --page-font-size: 15.6px;
68    --navigation-font-size: 14.4px;
69    --toc-font-size: 13.4px;
70    --code-font-size: 14px; /* affects code, fragment */
71    --title-font-size: 22px;
72
73    /* content text properties. These only affect the page content, not the navigation or any other ui elements */
74    --content-line-height: 27px;
75    /* The content is centered and constraint in it's width. To make the content fill the whole page, set the variable to auto.*/
76    --content-maxwidth: 1050px;
77    --table-line-height: 24px;
78    --toc-sticky-top: var(--spacing-medium);
79    --toc-width: 200px;
80    --toc-max-height: calc(100vh - 2 * var(--spacing-medium) - 85px);
81
82    /* colors for various content boxes: @warning, @note, @deprecated @bug */
83    --warning-color: #faf3d8;
84    --warning-color-dark: #f3a600;
85    --warning-color-darker: #5f4204;
86    --note-color: #e4f3ff;
87    --note-color-dark: #1879C4;
88    --note-color-darker: #274a5c;
89    --todo-color: #e4dafd;
90    --todo-color-dark: #5b2bdd;
91    --todo-color-darker: #2a0d72;
92    --deprecated-color: #ecf0f3;
93    --deprecated-color-dark: #5b6269;
94    --deprecated-color-darker: #43454a;
95    --bug-color: #f8d1cc;
96    --bug-color-dark: #b61825;
97    --bug-color-darker: #75070f;
98    --invariant-color: #d8f1e3;
99    --invariant-color-dark: #44b86f;
100    --invariant-color-darker: #265532;
101
102    /* blockquote colors */
103    --blockquote-background: #f8f9fa;
104    --blockquote-foreground: #636568;
105
106    /* table colors */
107    --tablehead-background: #f1f1f1;
108    --tablehead-foreground: var(--page-foreground-color);
109
110    /* menu-display: block | none
111     * Visibility of the top navigation on screens >= 768px. On smaller screen the menu is always visible.
112     * `GENERATE_TREEVIEW` MUST be enabled!
113     */
114    --menu-display: block;
115
116    --menu-focus-foreground: var(--page-background-color);
117    --menu-focus-background: var(--primary-color);
118    --menu-selected-background: rgba(0,0,0,.05);
119
120
121    --header-background: var(--page-background-color);
122    --header-foreground: var(--page-foreground-color);
123
124    /* searchbar colors */
125    --searchbar-background: var(--side-nav-background);
126    --searchbar-foreground: var(--page-foreground-color);
127
128    /* searchbar size
129     * (`searchbar-width` is only applied on screens >= 768px.
130     * on smaller screens the searchbar will always fill the entire screen width) */
131    --searchbar-height: 33px;
132    --searchbar-width: 210px;
133    --searchbar-border-radius: var(--searchbar-height);
134
135    /* code block colors */
136    --code-background: #f5f5f5;
137    --code-foreground: var(--page-foreground-color);
138
139    /* fragment colors */
140    --fragment-background: #F8F9FA;
141    --fragment-foreground: #37474F;
142    --fragment-keyword: #bb6bb2;
143    --fragment-keywordtype: #8258b3;
144    --fragment-keywordflow: #d67c3b;
145    --fragment-token: #438a59;
146    --fragment-comment: #969696;
147    --fragment-link: #5383d6;
148    --fragment-preprocessor: #46aaa5;
149    --fragment-linenumber-color: #797979;
150    --fragment-linenumber-background: #f4f4f5;
151    --fragment-linenumber-border: #e3e5e7;
152    --fragment-lineheight: 20px;
153
154    /* sidebar navigation (treeview) colors */
155    --side-nav-background: #fbfbfb;
156    --side-nav-foreground: var(--page-foreground-color);
157    --side-nav-arrow-opacity: 0;
158    --side-nav-arrow-hover-opacity: 0.9;
159
160    --toc-background: var(--side-nav-background);
161    --toc-foreground: var(--side-nav-foreground);
162
163    /* height of an item in any tree / collapsible table */
164    --tree-item-height: 30px;
165
166    --memname-font-size: var(--code-font-size);
167    --memtitle-font-size: 18px;
168
169    --webkit-scrollbar-size: 7px;
170    --webkit-scrollbar-padding: 4px;
171    --webkit-scrollbar-color: var(--separator-color);
172
173    --animation-duration: .12s
174}
175
176@media screen and (max-width: 767px) {
177    html {
178        --page-font-size: 16px;
179        --navigation-font-size: 16px;
180        --toc-font-size: 15px;
181        --code-font-size: 15px; /* affects code, fragment */
182        --title-font-size: 22px;
183    }
184}
185
186@media (prefers-color-scheme: dark) {
187    html:not(.light-mode) {
188        color-scheme: dark;
189
190        --primary-color: #1982d2;
191        --primary-dark-color: #86a9c4;
192        --primary-light-color: #4779ac;
193
194        --box-shadow: 0 2px 8px 0 rgba(0,0,0,.35);
195
196        --odd-color: rgba(100,100,100,.06);
197
198        --menu-selected-background: rgba(0,0,0,.4);
199
200        --page-background-color: #1C1D1F;
201        --page-foreground-color: #d2dbde;
202        --page-secondary-foreground-color: #859399;
203        --separator-color: #38393b;
204        --side-nav-background: #252628;
205
206        --code-background: #2a2c2f;
207
208        --tablehead-background: #2a2c2f;
209
210        --blockquote-background: #222325;
211        --blockquote-foreground: #7e8c92;
212
213        --warning-color: #3b2e04;
214        --warning-color-dark: #f1b602;
215        --warning-color-darker: #ceb670;
216        --note-color: #163750;
217        --note-color-dark: #1982D2;
218        --note-color-darker: #dcf0fa;
219        --todo-color: #2a2536;
220        --todo-color-dark: #7661b3;
221        --todo-color-darker: #ae9ed6;
222        --deprecated-color: #2e323b;
223        --deprecated-color-dark: #738396;
224        --deprecated-color-darker: #abb0bd;
225        --bug-color: #2e1917;
226        --bug-color-dark: #ad2617;
227        --bug-color-darker: #f5b1aa;
228        --invariant-color: #303a35;
229        --invariant-color-dark: #76ce96;
230        --invariant-color-darker: #cceed5;
231
232        --fragment-background: #282c34;
233        --fragment-foreground: #dbe4eb;
234        --fragment-keyword: #cc99cd;
235        --fragment-keywordtype: #ab99cd;
236        --fragment-keywordflow: #e08000;
237        --fragment-token: #7ec699;
238        --fragment-comment: #999999;
239        --fragment-link: #98c0e3;
240        --fragment-preprocessor: #65cabe;
241        --fragment-linenumber-color: #cccccc;
242        --fragment-linenumber-background: #35393c;
243        --fragment-linenumber-border: #1f1f1f;
244    }
245}
246
247/* dark mode variables are defined twice, to support both the dark-mode without and with doxygen-awesome-darkmode-toggle.js */
248html.dark-mode {
249    color-scheme: dark;
250
251    --primary-color: #1982d2;
252    --primary-dark-color: #86a9c4;
253    --primary-light-color: #4779ac;
254
255    --box-shadow: 0 2px 8px 0 rgba(0,0,0,.30);
256
257    --odd-color: rgba(100,100,100,.06);
258
259    --menu-selected-background: rgba(0,0,0,.4);
260
261    --page-background-color: #1C1D1F;
262    --page-foreground-color: #d2dbde;
263    --page-secondary-foreground-color: #859399;
264    --separator-color: #38393b;
265    --side-nav-background: #252628;
266
267    --code-background: #2a2c2f;
268
269    --tablehead-background: #2a2c2f;
270
271    --blockquote-background: #222325;
272    --blockquote-foreground: #7e8c92;
273
274    --warning-color: #3b2e04;
275    --warning-color-dark: #f1b602;
276    --warning-color-darker: #ceb670;
277    --note-color: #163750;
278    --note-color-dark: #1982D2;
279    --note-color-darker: #dcf0fa;
280    --todo-color: #2a2536;
281    --todo-color-dark: #7661b3;
282    --todo-color-darker: #ae9ed6;
283    --deprecated-color: #2e323b;
284    --deprecated-color-dark: #738396;
285    --deprecated-color-darker: #abb0bd;
286    --bug-color: #2e1917;
287    --bug-color-dark: #ad2617;
288    --bug-color-darker: #f5b1aa;
289    --invariant-color: #303a35;
290    --invariant-color-dark: #76ce96;
291    --invariant-color-darker: #cceed5;
292
293    --fragment-background: #282c34;
294    --fragment-foreground: #dbe4eb;
295    --fragment-keyword: #cc99cd;
296    --fragment-keywordtype: #ab99cd;
297    --fragment-keywordflow: #e08000;
298    --fragment-token: #7ec699;
299    --fragment-comment: #999999;
300    --fragment-link: #98c0e3;
301    --fragment-preprocessor: #65cabe;
302    --fragment-linenumber-color: #cccccc;
303    --fragment-linenumber-background: #35393c;
304    --fragment-linenumber-border: #1f1f1f;
305}
306
307body {
308    color: var(--page-foreground-color);
309    background-color: var(--page-background-color);
310    font-size: var(--page-font-size);
311}
312
313body, table, div, p, dl, #nav-tree .label, .title,
314.sm-dox a, .sm-dox a:hover, .sm-dox a:focus, #projectname,
315.SelectItem, #MSearchField, .navpath li.navelem a,
316.navpath li.navelem a:hover, p.reference, p.definition, div.toc li, div.toc h3 {
317    font-family: var(--font-family);
318}
319
320h1, h2, h3, h4, h5 {
321    margin-top: 1em;
322    font-weight: 600;
323    line-height: initial;
324}
325
326p, div, table, dl, p.reference, p.definition {
327    font-size: var(--page-font-size);
328}
329
330p.reference, p.definition {
331    color: var(--page-secondary-foreground-color);
332}
333
334a:link, a:visited, a:hover, a:focus, a:active {
335    color: var(--primary-color) !important;
336    font-weight: 500;
337    background: none;
338}
339
340a.anchor {
341    scroll-margin-top: var(--spacing-large);
342    display: block;
343}
344
345/*
346 Title and top navigation
347 */
348
349#top {
350    background: var(--header-background);
351    border-bottom: 1px solid var(--separator-color);
352}
353
354@media screen and (min-width: 768px) {
355    #top {
356        display: flex;
357        flex-wrap: wrap;
358        justify-content: space-between;
359        align-items: center;
360    }
361}
362
363#main-nav {
364    flex-grow: 5;
365    padding: var(--spacing-small) var(--spacing-medium);
366}
367
368#titlearea {
369    width: auto;
370    padding: var(--spacing-medium) var(--spacing-large);
371    background: none;
372    color: var(--header-foreground);
373    border-bottom: none;
374}
375
376@media screen and (max-width: 767px) {
377    #titlearea {
378        padding-bottom: var(--spacing-small);
379    }
380}
381
382#titlearea table tbody tr {
383    height: auto !important;
384}
385
386#projectname {
387    font-size: var(--title-font-size);
388    font-weight: 600;
389}
390
391#projectnumber {
392    font-family: inherit;
393    font-size: 60%;
394}
395
396#projectbrief {
397    font-family: inherit;
398    font-size: 80%;
399}
400
401#projectlogo {
402    vertical-align: middle;
403}
404
405#projectlogo img {
406    max-height: calc(var(--title-font-size) * 2);
407    margin-right: var(--spacing-small);
408}
409
410.sm-dox, .tabs, .tabs2, .tabs3 {
411    background: none;
412    padding: 0;
413}
414
415.tabs, .tabs2, .tabs3 {
416    border-bottom: 1px solid var(--separator-color);
417    margin-bottom: -1px;
418}
419
420.main-menu-btn-icon, .main-menu-btn-icon:before, .main-menu-btn-icon:after {
421    background: var(--page-secondary-foreground-color);
422}
423
424@media screen and (max-width: 767px) {
425    .sm-dox a span.sub-arrow {
426        background: var(--code-background);
427    }
428
429    #main-menu a.has-submenu span.sub-arrow {
430        color: var(--page-secondary-foreground-color);
431        border-radius: var(--border-radius-medium);
432    }
433
434    #main-menu a.has-submenu:hover span.sub-arrow {
435        color: var(--page-foreground-color);
436    }
437}
438
439@media screen and (min-width: 768px) {
440    .sm-dox li, .tablist li {
441        display: var(--menu-display);
442    }
443
444    .sm-dox a span.sub-arrow {
445        border-color: var(--header-foreground) transparent transparent transparent;
446    }
447
448    .sm-dox a:hover span.sub-arrow {
449        border-color: var(--menu-focus-foreground) transparent transparent transparent;
450    }
451
452    .sm-dox ul a span.sub-arrow {
453        border-color: transparent transparent transparent var(--page-foreground-color);
454    }
455
456    .sm-dox ul a:hover span.sub-arrow {
457        border-color: transparent transparent transparent var(--menu-focus-foreground);
458    }
459}
460
461.sm-dox ul {
462    background: var(--page-background-color);
463    box-shadow: var(--box-shadow);
464    border: 1px solid var(--separator-color);
465    border-radius: var(--border-radius-medium) !important;
466    padding: var(--spacing-small);
467    animation: ease-out 150ms slideInMenu;
468}
469
470@keyframes slideInMenu {
471    from {
472        opacity: 0;
473        transform: translate(0px, -2px);
474    }
475
476    to {
477        opacity: 1;
478        transform: translate(0px, 0px);
479    }
480}
481
482.sm-dox ul a {
483    color: var(--page-foreground-color) !important;
484    background: var(--page-background-color);
485    font-size: var(--navigation-font-size);
486}
487
488.sm-dox>li>ul:after {
489    border-bottom-color: var(--page-background-color) !important;
490}
491
492.sm-dox>li>ul:before {
493    border-bottom-color: var(--separator-color) !important;
494}
495
496.sm-dox ul a:hover, .sm-dox ul a:active, .sm-dox ul a:focus {
497    font-size: var(--navigation-font-size) !important;
498    color: var(--menu-focus-foreground) !important;
499    text-shadow: none;
500    background-color: var(--menu-focus-background);
501    border-radius: var(--border-radius-small) !important;
502}
503
504.sm-dox a, .sm-dox a:focus, .tablist li, .tablist li a, .tablist li.current a {
505    text-shadow: none;
506    background: transparent;
507    background-image: none !important;
508    color: var(--header-foreground) !important;
509    font-weight: normal;
510    font-size: var(--navigation-font-size);
511    border-radius: var(--border-radius-small) !important;
512}
513
514.sm-dox a:focus {
515    outline: auto;
516}
517
518.sm-dox a:hover, .sm-dox a:active, .tablist li a:hover {
519    text-shadow: none;
520    font-weight: normal;
521    background: var(--menu-focus-background);
522    color: var(--menu-focus-foreground) !important;
523    border-radius: var(--border-radius-small) !important;
524    font-size: var(--navigation-font-size);
525}
526
527.tablist li.current {
528    border-radius: var(--border-radius-small);
529    background: var(--menu-selected-background);
530}
531
532.tablist li {
533    margin: var(--spacing-small) 0 var(--spacing-small) var(--spacing-small);
534}
535
536.tablist a {
537    padding: 0 var(--spacing-large);
538}
539
540
541/*
542 Search box
543 */
544
545#MSearchBox {
546    height: var(--searchbar-height);
547    background: var(--searchbar-background);
548    border-radius: var(--searchbar-border-radius);
549    border: 1px solid var(--separator-color);
550    overflow: hidden;
551    width: var(--searchbar-width);
552    position: relative;
553    box-shadow: none;
554    display: block;
555    margin-top: 0;
556}
557
558/* until Doxygen 1.9.4 */
559.left img#MSearchSelect {
560    left: 0;
561    user-select: none;
562    padding-left: 8px;
563}
564
565/* Doxygen 1.9.5 */
566.left span#MSearchSelect {
567    left: 0;
568    user-select: none;
569    margin-left: 8px;
570    padding: 0;
571}
572
573.left #MSearchSelect[src$=".png"] {
574    padding-left: 0
575}
576
577.SelectionMark {
578    user-select: none;
579}
580
581.tabs .left #MSearchSelect {
582    padding-left: 0;
583}
584
585.tabs #MSearchBox {
586    position: absolute;
587    right: var(--spacing-medium);
588}
589
590@media screen and (max-width: 767px) {
591    .tabs #MSearchBox {
592        position: relative;
593        right: 0;
594        margin-left: var(--spacing-medium);
595        margin-top: 0;
596    }
597}
598
599#MSearchSelectWindow, #MSearchResultsWindow {
600    z-index: 9999;
601}
602
603#MSearchBox.MSearchBoxActive {
604    border-color: var(--primary-color);
605    box-shadow: inset 0 0 0 1px var(--primary-color);
606}
607
608#main-menu > li:last-child {
609    margin-right: 0;
610}
611
612@media screen and (max-width: 767px) {
613    #main-menu > li:last-child {
614        height: 50px;
615    }
616}
617
618#MSearchField {
619    font-size: var(--navigation-font-size);
620    height: calc(var(--searchbar-height) - 2px);
621    background: transparent;
622    width: calc(var(--searchbar-width) - 64px);
623}
624
625.MSearchBoxActive #MSearchField {
626    color: var(--searchbar-foreground);
627}
628
629#MSearchSelect {
630    top: calc(calc(var(--searchbar-height) / 2) - 11px);
631}
632
633#MSearchBox span.left, #MSearchBox span.right {
634    background: none;
635    background-image: none;
636}
637
638#MSearchBox span.right {
639    padding-top: calc(calc(var(--searchbar-height) / 2) - 12px);
640    position: absolute;
641    right: var(--spacing-small);
642}
643
644.tabs #MSearchBox span.right {
645    top: calc(calc(var(--searchbar-height) / 2) - 12px);
646}
647
648@keyframes slideInSearchResults {
649    from {
650        opacity: 0;
651        transform: translate(0, 15px);
652    }
653
654    to {
655        opacity: 1;
656        transform: translate(0, 20px);
657    }
658}
659
660#MSearchResultsWindow {
661    left: auto !important;
662    right: var(--spacing-medium);
663    border-radius: var(--border-radius-large);
664    border: 1px solid var(--separator-color);
665    transform: translate(0, 20px);
666    box-shadow: var(--box-shadow);
667    animation: ease-out 280ms slideInSearchResults;
668    background: var(--page-background-color);
669}
670
671iframe#MSearchResults {
672    margin: 4px;
673}
674
675iframe {
676    color-scheme: normal;
677}
678
679@media (prefers-color-scheme: dark) {
680    html:not(.light-mode) iframe#MSearchResults {
681        filter: invert() hue-rotate(180deg);
682    }
683}
684
685html.dark-mode iframe#MSearchResults {
686    filter: invert() hue-rotate(180deg);
687}
688
689#MSearchResults .SRPage {
690    background-color: transparent;
691}
692
693#MSearchResults .SRPage .SREntry {
694    font-size: 10pt;
695    padding: var(--spacing-small) var(--spacing-medium);
696}
697
698#MSearchSelectWindow {
699    border: 1px solid var(--separator-color);
700    border-radius: var(--border-radius-medium);
701    box-shadow: var(--box-shadow);
702    background: var(--page-background-color);
703    padding-top: var(--spacing-small);
704    padding-bottom: var(--spacing-small);
705}
706
707#MSearchSelectWindow a.SelectItem {
708    font-size: var(--navigation-font-size);
709    line-height: var(--content-line-height);
710    margin: 0 var(--spacing-small);
711    border-radius: var(--border-radius-small);
712    color: var(--page-foreground-color) !important;
713    font-weight: normal;
714}
715
716#MSearchSelectWindow a.SelectItem:hover {
717    background: var(--menu-focus-background);
718    color: var(--menu-focus-foreground) !important;
719}
720
721@media screen and (max-width: 767px) {
722    #MSearchBox {
723        margin-top: var(--spacing-medium);
724        margin-bottom: var(--spacing-medium);
725        width: calc(100vw - 30px);
726    }
727
728    #main-menu > li:last-child {
729        float: none !important;
730    }
731
732    #MSearchField {
733        width: calc(100vw - 110px);
734    }
735
736    @keyframes slideInSearchResultsMobile {
737        from {
738            opacity: 0;
739            transform: translate(0, 15px);
740        }
741
742        to {
743            opacity: 1;
744            transform: translate(0, 20px);
745        }
746    }
747
748    #MSearchResultsWindow {
749        left: var(--spacing-medium) !important;
750        right: var(--spacing-medium);
751        overflow: auto;
752        transform: translate(0, 20px);
753        animation: ease-out 280ms slideInSearchResultsMobile;
754        width: auto !important;
755    }
756
757    /*
758     * Overwrites for fixing the searchbox on mobile in doxygen 1.9.2
759     */
760    label.main-menu-btn ~ #searchBoxPos1 {
761        top: 3px !important;
762        right: 6px !important;
763        left: 45px;
764        display: flex;
765    }
766
767    label.main-menu-btn ~ #searchBoxPos1 > #MSearchBox {
768        margin-top: 0;
769        margin-bottom: 0;
770        flex-grow: 2;
771        float: left;
772    }
773}
774
775/*
776 Tree view
777 */
778
779#side-nav {
780    padding: 0 !important;
781    background: var(--side-nav-background);
782    min-width: 8px;
783    max-width: 50vw;
784}
785
786@media screen and (max-width: 767px) {
787    #side-nav {
788        display: none;
789    }
790
791    #doc-content {
792        margin-left: 0 !important;
793    }
794}
795
796#nav-tree {
797    background: transparent;
798    margin-right: 1px;
799}
800
801#nav-tree .label {
802    font-size: var(--navigation-font-size);
803}
804
805#nav-tree .item {
806    height: var(--tree-item-height);
807    line-height: var(--tree-item-height);
808}
809
810#nav-tree .item > a:focus {
811    outline: none;
812}
813
814#nav-sync {
815    bottom: 12px;
816    right: 12px;
817    top: auto !important;
818    user-select: none;
819}
820
821#nav-tree .selected {
822    text-shadow: none;
823    background-image: none;
824    background-color: transparent;
825    position: relative;
826}
827
828#nav-tree .selected::after {
829    content: "";
830    position: absolute;
831    top: 1px;
832    bottom: 1px;
833    left: 0;
834    width: 4px;
835    border-radius: 0 var(--border-radius-small) var(--border-radius-small) 0;
836    background: var(--primary-color);
837}
838
839
840#nav-tree a {
841    color: var(--side-nav-foreground) !important;
842    font-weight: normal;
843}
844
845#nav-tree a:focus {
846    outline-style: auto;
847}
848
849#nav-tree .arrow {
850    opacity: var(--side-nav-arrow-opacity);
851    background: none;
852}
853
854.arrow {
855    color: inherit;
856    cursor: pointer;
857    font-size: 45%;
858    vertical-align: middle;
859    margin-right: 2px;
860    font-family: serif;
861    height: auto;
862    text-align: right;
863}
864
865#nav-tree div.item:hover .arrow, #nav-tree a:focus .arrow {
866    opacity: var(--side-nav-arrow-hover-opacity);
867}
868
869#nav-tree .selected a {
870    color: var(--primary-color) !important;
871    font-weight: bolder;
872    font-weight: 600;
873}
874
875.ui-resizable-e {
876    width: 4px;
877    background: transparent;
878    box-shadow: inset -1px 0 0 0 var(--separator-color);
879}
880
881/*
882 Contents
883 */
884
885div.header {
886    border-bottom: 1px solid var(--separator-color);
887    background-color: var(--page-background-color);
888    background-image: none;
889}
890
891@media screen and (min-width: 1000px) {
892    #doc-content > div > div.contents,
893    .PageDoc > div.contents {
894        display: flex;
895        flex-direction: row-reverse;
896        flex-wrap: nowrap;
897        align-items: flex-start;
898    }
899
900    div.contents .textblock {
901        min-width: 200px;
902        flex-grow: 1;
903    }
904}
905
906div.contents, div.header .title, div.header .summary {
907    max-width: var(--content-maxwidth);
908}
909
910div.contents, div.header .title  {
911    line-height: initial;
912    margin: calc(var(--spacing-medium) + .2em) auto var(--spacing-medium) auto;
913}
914
915div.header .summary {
916    margin: var(--spacing-medium) auto 0 auto;
917}
918
919div.headertitle {
920    padding: 0;
921}
922
923div.header .title {
924    font-weight: 600;
925    font-size: 225%;
926    padding: var(--spacing-medium) var(--spacing-large);
927    word-break: break-word;
928}
929
930div.header .summary {
931    width: auto;
932    display: block;
933    float: none;
934    padding: 0 var(--spacing-large);
935}
936
937td.memSeparator {
938    border-color: var(--separator-color);
939}
940
941span.mlabel {
942    background: var(--primary-color);
943    border: none;
944    padding: 4px 9px;
945    border-radius: 12px;
946    margin-right: var(--spacing-medium);
947}
948
949span.mlabel:last-of-type {
950    margin-right: 2px;
951}
952
953div.contents {
954    padding: 0 var(--spacing-large);
955}
956
957div.contents p, div.contents li {
958    line-height: var(--content-line-height);
959}
960
961div.contents div.dyncontent {
962    margin: var(--spacing-medium) 0;
963}
964
965@media (prefers-color-scheme: dark) {
966    html:not(.light-mode) div.contents div.dyncontent img,
967    html:not(.light-mode) div.contents center img,
968    html:not(.light-mode) div.contents > table img,
969    html:not(.light-mode) div.contents div.dyncontent iframe,
970    html:not(.light-mode) div.contents center iframe,
971    html:not(.light-mode) div.contents table iframe,
972    html:not(.light-mode) div.contents .dotgraph iframe {
973        filter: brightness(89%) hue-rotate(180deg) invert();
974    }
975}
976
977html.dark-mode div.contents div.dyncontent img,
978html.dark-mode div.contents center img,
979html.dark-mode div.contents > table img,
980html.dark-mode div.contents div.dyncontent iframe,
981html.dark-mode div.contents center iframe,
982html.dark-mode div.contents table iframe,
983html.dark-mode div.contents .dotgraph iframe
984 {
985    filter: brightness(89%) hue-rotate(180deg) invert();
986}
987
988h2.groupheader {
989    border-bottom: 0px;
990    color: var(--page-foreground-color);
991    box-shadow:
992        100px 0 var(--page-background-color),
993        -100px 0 var(--page-background-color),
994        100px 0.75px var(--separator-color),
995        -100px 0.75px var(--separator-color),
996        500px 0 var(--page-background-color),
997        -500px 0 var(--page-background-color),
998        500px 0.75px var(--separator-color),
999        -500px 0.75px var(--separator-color),
1000        900px 0 var(--page-background-color),
1001        -900px 0 var(--page-background-color),
1002        900px 0.75px var(--separator-color),
1003        -900px 0.75px var(--separator-color),
1004        1400px 0 var(--page-background-color),
1005        -1400px 0 var(--page-background-color),
1006        1400px 0.75px var(--separator-color),
1007        -1400px 0.75px var(--separator-color),
1008        1900px 0 var(--page-background-color),
1009        -1900px 0 var(--page-background-color),
1010        1900px 0.75px var(--separator-color),
1011        -1900px 0.75px var(--separator-color);
1012}
1013
1014blockquote {
1015    margin: 0 var(--spacing-medium) 0 var(--spacing-medium);
1016    padding: var(--spacing-small) var(--spacing-large);
1017    background: var(--blockquote-background);
1018    color: var(--blockquote-foreground);
1019    border-left: 0;
1020    overflow: visible;
1021    border-radius: var(--border-radius-medium);
1022    overflow: visible;
1023    position: relative;
1024}
1025
1026blockquote::before, blockquote::after {
1027    font-weight: bold;
1028    font-family: serif;
1029    font-size: 360%;
1030    opacity: .15;
1031    position: absolute;
1032}
1033
1034blockquote::before {
1035    content: "“";
1036    left: -10px;
1037    top: 4px;
1038}
1039
1040blockquote::after {
1041    content: "”";
1042    right: -8px;
1043    bottom: -25px;
1044}
1045
1046blockquote p {
1047    margin: var(--spacing-small) 0 var(--spacing-medium) 0;
1048}
1049.paramname, .paramname em {
1050    font-weight: 600;
1051    color: var(--primary-dark-color);
1052}
1053
1054.paramname > code {
1055    border: 0;
1056}
1057
1058table.params .paramname {
1059    font-weight: 600;
1060    font-family: var(--font-family-monospace);
1061    font-size: var(--code-font-size);
1062    padding-right: var(--spacing-small);
1063    line-height: var(--table-line-height);
1064}
1065
1066h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow {
1067    text-shadow: 0 0 15px var(--primary-light-color);
1068}
1069
1070.alphachar a {
1071    color: var(--page-foreground-color);
1072}
1073
1074.dotgraph {
1075    max-width: 100%;
1076    overflow-x: scroll;
1077}
1078
1079.dotgraph .caption {
1080    position: sticky;
1081    left: 0;
1082}
1083
1084/* Wrap Graphviz graphs with the `interactive_dotgraph` class if `INTERACTIVE_SVG = YES` */
1085.interactive_dotgraph .dotgraph iframe {
1086    max-width: 100%;
1087}
1088
1089/*
1090 Table of Contents
1091 */
1092
1093div.contents .toc {
1094    max-height: var(--toc-max-height);
1095    min-width: var(--toc-width);
1096    border: 0;
1097    border-left: 1px solid var(--separator-color);
1098    border-radius: 0;
1099    background-color: var(--page-background-color);
1100    box-shadow: none;
1101    position: sticky;
1102    top: var(--toc-sticky-top);
1103    padding: 0 var(--spacing-large);
1104    margin: var(--spacing-small) 0 var(--spacing-large) var(--spacing-large);
1105}
1106
1107div.toc h3 {
1108    color: var(--toc-foreground);
1109    font-size: var(--navigation-font-size);
1110    margin: var(--spacing-large) 0 var(--spacing-medium) 0;
1111}
1112
1113div.toc li {
1114    padding: 0;
1115    background: none;
1116    line-height: var(--toc-font-size);
1117    margin: var(--toc-font-size) 0 0 0;
1118}
1119
1120div.toc li::before {
1121    display: none;
1122}
1123
1124div.toc ul {
1125    margin-top: 0
1126}
1127
1128div.toc li a {
1129    font-size: var(--toc-font-size);
1130    color: var(--page-foreground-color) !important;
1131    text-decoration: none;
1132}
1133
1134div.toc li a:hover, div.toc li a.active {
1135    color: var(--primary-color) !important;
1136}
1137
1138div.toc li a.aboveActive {
1139    color: var(--page-secondary-foreground-color) !important;
1140}
1141
1142
1143@media screen and (max-width: 999px) {
1144    div.contents .toc {
1145        max-height: 45vh;
1146        float: none;
1147        width: auto;
1148        margin: 0 0 var(--spacing-medium) 0;
1149        position: relative;
1150        top: 0;
1151        position: relative;
1152        border: 1px solid var(--separator-color);
1153        border-radius: var(--border-radius-medium);
1154        background-color: var(--toc-background);
1155        box-shadow: var(--box-shadow);
1156    }
1157
1158    div.contents .toc.interactive {
1159        max-height: calc(var(--navigation-font-size) + 2 * var(--spacing-large));
1160        overflow: hidden;
1161    }
1162
1163    div.contents .toc > h3 {
1164        -webkit-tap-highlight-color: transparent;
1165        cursor: pointer;
1166        position: sticky;
1167        top: 0;
1168        background-color: var(--toc-background);
1169        margin: 0;
1170        padding: var(--spacing-large) 0;
1171        display: block;
1172    }
1173
1174    div.contents .toc.interactive > h3::before {
1175        content: "";
1176        width: 0;
1177        height: 0;
1178        border-left: 4px solid transparent;
1179        border-right: 4px solid transparent;
1180        border-top: 5px solid var(--primary-color);
1181        display: inline-block;
1182        margin-right: var(--spacing-small);
1183        margin-bottom: calc(var(--navigation-font-size) / 4);
1184        transform: rotate(-90deg);
1185        transition: transform var(--animation-duration) ease-out;
1186    }
1187
1188    div.contents .toc.interactive.open > h3::before {
1189        transform: rotate(0deg);
1190    }
1191
1192    div.contents .toc.interactive.open {
1193        max-height: 45vh;
1194        overflow: auto;
1195        transition: max-height 0.2s ease-in-out;
1196    }
1197
1198    div.contents .toc a, div.contents .toc a.active {
1199        color: var(--primary-color) !important;
1200    }
1201
1202    div.contents .toc a:hover {
1203        text-decoration: underline;
1204    }
1205}
1206
1207/*
1208 Code & Fragments
1209 */
1210
1211code, div.fragment, pre.fragment {
1212    border-radius: var(--border-radius-small);
1213    border: 1px solid var(--separator-color);
1214    overflow: hidden;
1215}
1216
1217code {
1218    display: inline;
1219    background: var(--code-background);
1220    color: var(--code-foreground);
1221    padding: 2px 6px;
1222}
1223
1224div.fragment, pre.fragment {
1225    margin: var(--spacing-medium) 0;
1226    padding: calc(var(--spacing-large) - (var(--spacing-large) / 6)) var(--spacing-large);
1227    background: var(--fragment-background);
1228    color: var(--fragment-foreground);
1229    overflow-x: auto;
1230}
1231
1232@media screen and (max-width: 767px) {
1233    div.fragment, pre.fragment {
1234        border-top-right-radius: 0;
1235        border-bottom-right-radius: 0;
1236        border-right: 0;
1237    }
1238
1239    .contents > div.fragment,
1240    .textblock > div.fragment,
1241    .textblock > pre.fragment,
1242    .textblock > .tabbed > ul > li > div.fragment,
1243    .textblock > .tabbed > ul > li > pre.fragment,
1244    .contents > .doxygen-awesome-fragment-wrapper > div.fragment,
1245    .textblock > .doxygen-awesome-fragment-wrapper > div.fragment,
1246    .textblock > .doxygen-awesome-fragment-wrapper > pre.fragment,
1247    .textblock > .tabbed > ul > li > .doxygen-awesome-fragment-wrapper > div.fragment,
1248    .textblock > .tabbed > ul > li > .doxygen-awesome-fragment-wrapper > pre.fragment {
1249        margin: var(--spacing-medium) calc(0px - var(--spacing-large));
1250        border-radius: 0;
1251        border-left: 0;
1252    }
1253
1254    .textblock li > .fragment,
1255    .textblock li > .doxygen-awesome-fragment-wrapper > .fragment {
1256        margin: var(--spacing-medium) calc(0px - var(--spacing-large));
1257    }
1258
1259    .memdoc li > .fragment,
1260    .memdoc li > .doxygen-awesome-fragment-wrapper > .fragment {
1261        margin: var(--spacing-medium) calc(0px - var(--spacing-medium));
1262    }
1263
1264    .textblock ul, .memdoc ul {
1265        overflow: initial;
1266    }
1267
1268    .memdoc > div.fragment,
1269    .memdoc > pre.fragment,
1270    dl dd > div.fragment,
1271    dl dd pre.fragment,
1272    .memdoc > .doxygen-awesome-fragment-wrapper > div.fragment,
1273    .memdoc > .doxygen-awesome-fragment-wrapper > pre.fragment,
1274    dl dd > .doxygen-awesome-fragment-wrapper > div.fragment,
1275    dl dd .doxygen-awesome-fragment-wrapper > pre.fragment {
1276        margin: var(--spacing-medium) calc(0px - var(--spacing-medium));
1277        border-radius: 0;
1278        border-left: 0;
1279    }
1280}
1281
1282code, code a, pre.fragment, div.fragment, div.fragment .line, div.fragment span, div.fragment .line a, div.fragment .line span {
1283    font-family: var(--font-family-monospace);
1284    font-size: var(--code-font-size) !important;
1285}
1286
1287div.line:after {
1288    margin-right: var(--spacing-medium);
1289}
1290
1291div.fragment .line, pre.fragment {
1292    white-space: pre;
1293    word-wrap: initial;
1294    line-height: var(--fragment-lineheight);
1295}
1296
1297div.fragment span.keyword {
1298    color: var(--fragment-keyword);
1299}
1300
1301div.fragment span.keywordtype {
1302    color: var(--fragment-keywordtype);
1303}
1304
1305div.fragment span.keywordflow {
1306    color: var(--fragment-keywordflow);
1307}
1308
1309div.fragment span.stringliteral {
1310    color: var(--fragment-token)
1311}
1312
1313div.fragment span.comment {
1314    color: var(--fragment-comment);
1315}
1316
1317div.fragment a.code {
1318    color: var(--fragment-link) !important;
1319}
1320
1321div.fragment span.preprocessor {
1322    color: var(--fragment-preprocessor);
1323}
1324
1325div.fragment span.lineno {
1326    display: inline-block;
1327    width: 27px;
1328    border-right: none;
1329    background: var(--fragment-linenumber-background);
1330    color: var(--fragment-linenumber-color);
1331}
1332
1333div.fragment span.lineno a {
1334    background: none;
1335    color: var(--fragment-link) !important;
1336}
1337
1338div.fragment > .line:first-child .lineno {
1339    box-shadow: -999999px 0px 0 999999px var(--fragment-linenumber-background), -999998px 0px 0 999999px var(--fragment-linenumber-border);
1340    background-color: var(--fragment-linenumber-background) !important;
1341}
1342
1343div.line {
1344    border-radius: var(--border-radius-small);
1345}
1346
1347div.line.glow {
1348    background-color: var(--primary-light-color);
1349    box-shadow: none;
1350}
1351
1352/*
1353 dl warning, attention, note, deprecated, bug, ...
1354 */
1355
1356dl.bug dt a, dl.deprecated dt a, dl.todo dt a {
1357    font-weight: bold !important;
1358}
1359
1360dl.warning, dl.attention, dl.note, dl.deprecated, dl.bug, dl.invariant, dl.pre, dl.post, dl.todo, dl.remark {
1361    padding: var(--spacing-medium);
1362    margin: var(--spacing-medium) 0;
1363    color: var(--page-background-color);
1364    overflow: hidden;
1365    margin-left: 0;
1366    border-radius: var(--border-radius-small);
1367}
1368
1369dl.section dd {
1370    margin-bottom: 2px;
1371}
1372
1373dl.warning, dl.attention {
1374    background: var(--warning-color);
1375    border-left: 8px solid var(--warning-color-dark);
1376    color: var(--warning-color-darker);
1377}
1378
1379dl.warning dt, dl.attention dt {
1380    color: var(--warning-color-dark);
1381}
1382
1383dl.note, dl.remark {
1384    background: var(--note-color);
1385    border-left: 8px solid var(--note-color-dark);
1386    color: var(--note-color-darker);
1387}
1388
1389dl.note dt, dl.remark dt {
1390    color: var(--note-color-dark);
1391}
1392
1393dl.todo {
1394    background: var(--todo-color);
1395    border-left: 8px solid var(--todo-color-dark);
1396    color: var(--todo-color-darker);
1397}
1398
1399dl.todo dt a {
1400    color: var(--todo-color-dark) !important;
1401}
1402
1403dl.bug dt a {
1404    color: var(--todo-color-dark) !important;
1405}
1406
1407dl.bug {
1408    background: var(--bug-color);
1409    border-left: 8px solid var(--bug-color-dark);
1410    color: var(--bug-color-darker);
1411}
1412
1413dl.bug dt a {
1414    color: var(--bug-color-dark) !important;
1415}
1416
1417dl.deprecated {
1418    background: var(--deprecated-color);
1419    border-left: 8px solid var(--deprecated-color-dark);
1420    color: var(--deprecated-color-darker);
1421}
1422
1423dl.deprecated dt a {
1424    color: var(--deprecated-color-dark) !important;
1425}
1426
1427dl.section dd, dl.bug dd, dl.deprecated dd, dl.todo dd {
1428    margin-inline-start: 0px;
1429}
1430
1431dl.invariant, dl.pre, dl.post {
1432    background: var(--invariant-color);
1433    border-left: 8px solid var(--invariant-color-dark);
1434    color: var(--invariant-color-darker);
1435}
1436
1437dl.invariant dt, dl.pre dt, dl.post dt {
1438    color: var(--invariant-color-dark);
1439}
1440
1441/*
1442 memitem
1443 */
1444
1445div.memdoc, div.memproto, h2.memtitle {
1446    box-shadow: none;
1447    background-image: none;
1448    border: none;
1449}
1450
1451div.memdoc {
1452    padding: 0 var(--spacing-medium);
1453    background: var(--page-background-color);
1454}
1455
1456h2.memtitle, div.memitem {
1457    border: 1px solid var(--separator-color);
1458    box-shadow: var(--box-shadow);
1459}
1460
1461h2.memtitle {
1462    box-shadow: 0px var(--spacing-medium) 0 -1px var(--fragment-background), var(--box-shadow);
1463}
1464
1465div.memitem {
1466    transition: none;
1467}
1468
1469div.memproto, h2.memtitle {
1470    background: var(--fragment-background);
1471}
1472
1473h2.memtitle {
1474    font-weight: 500;
1475    font-size: var(--memtitle-font-size);
1476    font-family: var(--font-family-monospace);
1477    border-bottom: none;
1478    border-top-left-radius: var(--border-radius-medium);
1479    border-top-right-radius: var(--border-radius-medium);
1480    word-break: break-all;
1481    position: relative;
1482}
1483
1484h2.memtitle:after {
1485    content: "";
1486    display: block;
1487    background: var(--fragment-background);
1488    height: var(--spacing-medium);
1489    bottom: calc(0px - var(--spacing-medium));
1490    left: 0;
1491    right: -14px;
1492    position: absolute;
1493    border-top-right-radius: var(--border-radius-medium);
1494}
1495
1496h2.memtitle > span.permalink {
1497    font-size: inherit;
1498}
1499
1500h2.memtitle > span.permalink > a {
1501    text-decoration: none;
1502    padding-left: 3px;
1503    margin-right: -4px;
1504    user-select: none;
1505    display: inline-block;
1506    margin-top: -6px;
1507}
1508
1509h2.memtitle > span.permalink > a:hover {
1510    color: var(--primary-dark-color) !important;
1511}
1512
1513a:target + h2.memtitle, a:target + h2.memtitle + div.memitem {
1514    border-color: var(--primary-light-color);
1515}
1516
1517div.memitem {
1518    border-top-right-radius: var(--border-radius-medium);
1519    border-bottom-right-radius: var(--border-radius-medium);
1520    border-bottom-left-radius: var(--border-radius-medium);
1521    overflow: hidden;
1522    display: block !important;
1523}
1524
1525div.memdoc {
1526    border-radius: 0;
1527}
1528
1529div.memproto {
1530    border-radius: 0 var(--border-radius-small) 0 0;
1531    overflow: auto;
1532    border-bottom: 1px solid var(--separator-color);
1533    padding: var(--spacing-medium);
1534    margin-bottom: -1px;
1535}
1536
1537div.memtitle {
1538    border-top-right-radius: var(--border-radius-medium);
1539    border-top-left-radius: var(--border-radius-medium);
1540}
1541
1542div.memproto table.memname {
1543    font-family: var(--font-family-monospace);
1544    color: var(--page-foreground-color);
1545    font-size: var(--memname-font-size);
1546    text-shadow: none;
1547}
1548
1549div.memproto div.memtemplate {
1550    font-family: var(--font-family-monospace);
1551    color: var(--primary-dark-color);
1552    font-size: var(--memname-font-size);
1553    margin-left: 2px;
1554    text-shadow: none;
1555}
1556
1557table.mlabels, table.mlabels > tbody {
1558    display: block;
1559}
1560
1561td.mlabels-left {
1562    width: auto;
1563}
1564
1565td.mlabels-right {
1566    margin-top: 3px;
1567    position: sticky;
1568    left: 0;
1569}
1570
1571table.mlabels > tbody > tr:first-child {
1572    display: flex;
1573    justify-content: space-between;
1574    flex-wrap: wrap;
1575}
1576
1577.memname, .memitem span.mlabels {
1578    margin: 0
1579}
1580
1581/*
1582 reflist
1583 */
1584
1585dl.reflist {
1586    box-shadow: var(--box-shadow);
1587    border-radius: var(--border-radius-medium);
1588    border: 1px solid var(--separator-color);
1589    overflow: hidden;
1590    padding: 0;
1591}
1592
1593
1594dl.reflist dt, dl.reflist dd {
1595    box-shadow: none;
1596    text-shadow: none;
1597    background-image: none;
1598    border: none;
1599    padding: 12px;
1600}
1601
1602
1603dl.reflist dt {
1604    font-weight: 500;
1605    border-radius: 0;
1606    background: var(--code-background);
1607    border-bottom: 1px solid var(--separator-color);
1608    color: var(--page-foreground-color)
1609}
1610
1611
1612dl.reflist dd {
1613    background: none;
1614}
1615
1616/*
1617 Table
1618 */
1619
1620.contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname),
1621.contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) tbody {
1622    display: inline-block;
1623    max-width: 100%;
1624}
1625
1626.contents > table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname):not(.classindex) {
1627    margin-left: calc(0px - var(--spacing-large));
1628    margin-right: calc(0px - var(--spacing-large));
1629    max-width: calc(100% + 2 * var(--spacing-large));
1630}
1631
1632table.fieldtable,
1633table.markdownTable tbody,
1634table.doxtable tbody {
1635    border: none;
1636    margin: var(--spacing-medium) 0;
1637    box-shadow: 0 0 0 1px var(--separator-color);
1638    border-radius: var(--border-radius-small);
1639}
1640
1641table.markdownTable, table.doxtable, table.fieldtable {
1642    padding: 1px;
1643}
1644
1645table.doxtable caption {
1646    display: block;
1647}
1648
1649table.fieldtable {
1650    border-collapse: collapse;
1651    width: 100%;
1652}
1653
1654th.markdownTableHeadLeft,
1655th.markdownTableHeadRight,
1656th.markdownTableHeadCenter,
1657th.markdownTableHeadNone,
1658table.doxtable th {
1659    background: var(--tablehead-background);
1660    color: var(--tablehead-foreground);
1661    font-weight: 600;
1662    font-size: var(--page-font-size);
1663}
1664
1665th.markdownTableHeadLeft:first-child,
1666th.markdownTableHeadRight:first-child,
1667th.markdownTableHeadCenter:first-child,
1668th.markdownTableHeadNone:first-child,
1669table.doxtable tr th:first-child {
1670    border-top-left-radius: var(--border-radius-small);
1671}
1672
1673th.markdownTableHeadLeft:last-child,
1674th.markdownTableHeadRight:last-child,
1675th.markdownTableHeadCenter:last-child,
1676th.markdownTableHeadNone:last-child,
1677table.doxtable tr th:last-child {
1678    border-top-right-radius: var(--border-radius-small);
1679}
1680
1681table.markdownTable td,
1682table.markdownTable th,
1683table.fieldtable td,
1684table.fieldtable th,
1685table.doxtable td,
1686table.doxtable th {
1687    border: 1px solid var(--separator-color);
1688    padding: var(--spacing-small) var(--spacing-medium);
1689}
1690
1691table.markdownTable td:last-child,
1692table.markdownTable th:last-child,
1693table.fieldtable td:last-child,
1694table.fieldtable th:last-child,
1695table.doxtable td:last-child,
1696table.doxtable th:last-child {
1697    border-right: none;
1698}
1699
1700table.markdownTable td:first-child,
1701table.markdownTable th:first-child,
1702table.fieldtable td:first-child,
1703table.fieldtable th:first-child,
1704table.doxtable td:first-child,
1705table.doxtable th:first-child {
1706    border-left: none;
1707}
1708
1709table.markdownTable tr:first-child td,
1710table.markdownTable tr:first-child th,
1711table.fieldtable tr:first-child td,
1712table.fieldtable tr:first-child th,
1713table.doxtable tr:first-child td,
1714table.doxtable tr:first-child th {
1715    border-top: none;
1716}
1717
1718table.markdownTable tr:last-child td,
1719table.markdownTable tr:last-child th,
1720table.fieldtable tr:last-child td,
1721table.fieldtable tr:last-child th,
1722table.doxtable tr:last-child td,
1723table.doxtable tr:last-child th {
1724    border-bottom: none;
1725}
1726
1727table.markdownTable tr, table.doxtable tr {
1728    border-bottom: 1px solid var(--separator-color);
1729}
1730
1731table.markdownTable tr:last-child, table.doxtable tr:last-child {
1732    border-bottom: none;
1733}
1734
1735.full_width_table table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) {
1736    display: block;
1737}
1738
1739.full_width_table table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) tbody {
1740    display: table;
1741    width: 100%;
1742}
1743
1744table.fieldtable th {
1745    font-size: var(--page-font-size);
1746    font-weight: 600;
1747    background-image: none;
1748    background-color: var(--tablehead-background);
1749    color: var(--tablehead-foreground);
1750}
1751
1752table.fieldtable td.fieldtype, .fieldtable td.fieldname, .fieldtable td.fielddoc, .fieldtable th {
1753    border-bottom: 1px solid var(--separator-color);
1754    border-right: 1px solid var(--separator-color);
1755}
1756
1757table.fieldtable tr:last-child td:first-child {
1758    border-bottom-left-radius: var(--border-radius-small);
1759}
1760
1761table.fieldtable tr:last-child td:last-child {
1762    border-bottom-right-radius: var(--border-radius-small);
1763}
1764
1765.memberdecls td.glow, .fieldtable tr.glow {
1766    background-color: var(--primary-light-color);
1767    box-shadow: none;
1768}
1769
1770table.memberdecls {
1771    display: block;
1772    -webkit-tap-highlight-color: transparent;
1773}
1774
1775table.memberdecls tr[class^='memitem'] {
1776    font-family: var(--font-family-monospace);
1777    font-size: var(--code-font-size);
1778}
1779
1780table.memberdecls tr[class^='memitem'] .memTemplParams {
1781    font-family: var(--font-family-monospace);
1782    font-size: var(--code-font-size);
1783    color: var(--primary-dark-color);
1784    white-space: normal;
1785}
1786
1787table.memberdecls .memItemLeft,
1788table.memberdecls .memItemRight,
1789table.memberdecls .memTemplItemLeft,
1790table.memberdecls .memTemplItemRight,
1791table.memberdecls .memTemplParams {
1792    transition: none;
1793    padding-top: var(--spacing-small);
1794    padding-bottom: var(--spacing-small);
1795    border-top: 1px solid var(--separator-color);
1796    border-bottom: 1px solid var(--separator-color);
1797    background-color: var(--fragment-background);
1798}
1799
1800table.memberdecls .memTemplItemLeft,
1801table.memberdecls .memTemplItemRight {
1802    padding-top: 2px;
1803}
1804
1805table.memberdecls .memTemplParams {
1806    border-bottom: 0;
1807    border-left: 1px solid var(--separator-color);
1808    border-right: 1px solid var(--separator-color);
1809    border-radius: var(--border-radius-small) var(--border-radius-small) 0 0;
1810    padding-bottom: var(--spacing-small);
1811}
1812
1813table.memberdecls .memTemplItemLeft {
1814    border-radius: 0 0 0 var(--border-radius-small);
1815    border-left: 1px solid var(--separator-color);
1816    border-top: 0;
1817}
1818
1819table.memberdecls .memTemplItemRight {
1820    border-radius: 0 0 var(--border-radius-small) 0;
1821    border-right: 1px solid var(--separator-color);
1822    padding-left: 0;
1823    border-top: 0;
1824}
1825
1826table.memberdecls .memItemLeft {
1827    border-radius: var(--border-radius-small) 0 0 var(--border-radius-small);
1828    border-left: 1px solid var(--separator-color);
1829    padding-left: var(--spacing-medium);
1830    padding-right: 0;
1831}
1832
1833table.memberdecls .memItemRight  {
1834    border-radius: 0 var(--border-radius-small) var(--border-radius-small) 0;
1835    border-right: 1px solid var(--separator-color);
1836    padding-right: var(--spacing-medium);
1837    padding-left: 0;
1838
1839}
1840
1841table.memberdecls .mdescLeft, table.memberdecls .mdescRight {
1842    background: none;
1843    color: var(--page-foreground-color);
1844    padding: var(--spacing-small) 0;
1845}
1846
1847table.memberdecls .memItemLeft,
1848table.memberdecls .memTemplItemLeft {
1849    padding-right: var(--spacing-medium);
1850}
1851
1852table.memberdecls .memSeparator {
1853    background: var(--page-background-color);
1854    height: var(--spacing-large);
1855    border: 0;
1856    transition: none;
1857}
1858
1859table.memberdecls .groupheader {
1860    margin-bottom: var(--spacing-large);
1861}
1862
1863table.memberdecls .inherit_header td {
1864    padding: 0 0 var(--spacing-medium) 0;
1865    text-indent: -12px;
1866    color: var(--page-secondary-foreground-color);
1867}
1868
1869table.memberdecls img[src="closed.png"],
1870table.memberdecls img[src="open.png"],
1871div.dynheader img[src="open.png"],
1872div.dynheader img[src="closed.png"] {
1873    width: 0;
1874    height: 0;
1875    border-left: 4px solid transparent;
1876    border-right: 4px solid transparent;
1877    border-top: 5px solid var(--primary-color);
1878    margin-top: 8px;
1879    display: block;
1880    float: left;
1881    margin-left: -10px;
1882    transition: transform var(--animation-duration) ease-out;
1883}
1884
1885table.memberdecls img {
1886    margin-right: 10px;
1887}
1888
1889table.memberdecls img[src="closed.png"],
1890div.dynheader img[src="closed.png"] {
1891    transform: rotate(-90deg);
1892
1893}
1894
1895.compoundTemplParams {
1896    font-family: var(--font-family-monospace);
1897    color: var(--primary-dark-color);
1898    font-size: var(--code-font-size);
1899}
1900
1901@media screen and (max-width: 767px) {
1902
1903    table.memberdecls .memItemLeft,
1904    table.memberdecls .memItemRight,
1905    table.memberdecls .mdescLeft,
1906    table.memberdecls .mdescRight,
1907    table.memberdecls .memTemplItemLeft,
1908    table.memberdecls .memTemplItemRight,
1909    table.memberdecls .memTemplParams {
1910        display: block;
1911        text-align: left;
1912        padding-left: var(--spacing-large);
1913        margin: 0 calc(0px - var(--spacing-large)) 0 calc(0px - var(--spacing-large));
1914        border-right: none;
1915        border-left: none;
1916        border-radius: 0;
1917        white-space: normal;
1918    }
1919
1920    table.memberdecls .memItemLeft,
1921    table.memberdecls .mdescLeft,
1922    table.memberdecls .memTemplItemLeft {
1923        border-bottom: 0;
1924        padding-bottom: 0;
1925    }
1926
1927    table.memberdecls .memTemplItemLeft {
1928        padding-top: 0;
1929    }
1930
1931    table.memberdecls .mdescLeft {
1932        margin-bottom: calc(0px - var(--page-font-size));
1933    }
1934
1935    table.memberdecls .memItemRight,
1936    table.memberdecls .mdescRight,
1937    table.memberdecls .memTemplItemRight {
1938        border-top: 0;
1939        padding-top: 0;
1940        padding-right: var(--spacing-large);
1941        overflow-x: auto;
1942    }
1943
1944    table.memberdecls tr[class^='memitem']:not(.inherit) {
1945        display: block;
1946        width: calc(100vw - 2 * var(--spacing-large));
1947    }
1948
1949    table.memberdecls .mdescRight {
1950        color: var(--page-foreground-color);
1951    }
1952
1953    table.memberdecls tr.inherit {
1954        visibility: hidden;
1955    }
1956
1957    table.memberdecls tr[style="display: table-row;"] {
1958        display: block !important;
1959        visibility: visible;
1960        width: calc(100vw - 2 * var(--spacing-large));
1961        animation: fade .5s;
1962    }
1963
1964    @keyframes fade {
1965        0% {
1966            opacity: 0;
1967            max-height: 0;
1968        }
1969
1970        100% {
1971            opacity: 1;
1972            max-height: 200px;
1973        }
1974    }
1975}
1976
1977
1978/*
1979 Horizontal Rule
1980 */
1981
1982hr {
1983    margin-top: var(--spacing-large);
1984    margin-bottom: var(--spacing-large);
1985    height: 1px;
1986    background-color: var(--separator-color);
1987    border: 0;
1988}
1989
1990.contents hr {
1991    box-shadow: 100px 0 var(--separator-color),
1992                -100px 0 var(--separator-color),
1993                500px 0 var(--separator-color),
1994                -500px 0 var(--separator-color),
1995                900px 0 var(--separator-color),
1996                -900px 0 var(--separator-color),
1997                1400px 0 var(--separator-color),
1998                -1400px 0 var(--separator-color),
1999                1900px 0 var(--separator-color),
2000                -1900px 0 var(--separator-color);
2001}
2002
2003.contents img, .contents .center, .contents center, .contents div.image object {
2004    max-width: 100%;
2005    overflow: auto;
2006}
2007
2008@media screen and (max-width: 767px) {
2009    .contents .dyncontent > .center, .contents > center {
2010        margin-left: calc(0px - var(--spacing-large));
2011        margin-right: calc(0px - var(--spacing-large));
2012        max-width: calc(100% + 2 * var(--spacing-large));
2013    }
2014}
2015
2016/*
2017 Directories
2018 */
2019div.directory {
2020    border-top: 1px solid var(--separator-color);
2021    border-bottom: 1px solid var(--separator-color);
2022    width: auto;
2023}
2024
2025table.directory {
2026    font-family: var(--font-family);
2027    font-size: var(--page-font-size);
2028    font-weight: normal;
2029    width: 100%;
2030}
2031
2032table.directory td.entry, table.directory td.desc {
2033    padding: calc(var(--spacing-small) / 2) var(--spacing-small);
2034    line-height: var(--table-line-height);
2035}
2036
2037table.directory tr.even td:last-child {
2038    border-radius: 0 var(--border-radius-small) var(--border-radius-small) 0;
2039}
2040
2041table.directory tr.even td:first-child {
2042    border-radius: var(--border-radius-small) 0 0 var(--border-radius-small);
2043}
2044
2045table.directory tr.even:last-child td:last-child {
2046    border-radius: 0 var(--border-radius-small) 0 0;
2047}
2048
2049table.directory tr.even:last-child td:first-child {
2050    border-radius: var(--border-radius-small) 0 0 0;
2051}
2052
2053table.directory td.desc {
2054    min-width: 250px;
2055}
2056
2057table.directory tr.even {
2058    background-color: var(--odd-color);
2059}
2060
2061table.directory tr.odd {
2062    background-color: transparent;
2063}
2064
2065.icona {
2066    width: auto;
2067    height: auto;
2068    margin: 0 var(--spacing-small);
2069}
2070
2071.icon {
2072    background: var(--primary-color);
2073    border-radius: var(--border-radius-small);
2074    font-size: var(--page-font-size);
2075    padding: calc(var(--page-font-size) / 5);
2076    line-height: var(--page-font-size);
2077    transform: scale(0.8);
2078    height: auto;
2079    width: var(--page-font-size);
2080    user-select: none;
2081}
2082
2083.iconfopen, .icondoc, .iconfclosed {
2084    background-position: center;
2085    margin-bottom: 0;
2086    height: var(--table-line-height);
2087}
2088
2089.icondoc {
2090    filter: saturate(0.2);
2091}
2092
2093@media screen and (max-width: 767px) {
2094    div.directory {
2095        margin-left: calc(0px - var(--spacing-large));
2096        margin-right: calc(0px - var(--spacing-large));
2097    }
2098}
2099
2100@media (prefers-color-scheme: dark) {
2101    html:not(.light-mode) .iconfopen, html:not(.light-mode) .iconfclosed {
2102        filter: hue-rotate(180deg) invert();
2103    }
2104}
2105
2106html.dark-mode .iconfopen, html.dark-mode .iconfclosed {
2107    filter: hue-rotate(180deg) invert();
2108}
2109
2110/*
2111 Class list
2112 */
2113
2114.classindex dl.odd {
2115    background: var(--odd-color);
2116    border-radius: var(--border-radius-small);
2117}
2118
2119.classindex dl.even {
2120    background-color: transparent;
2121}
2122
2123/*
2124 Class Index Doxygen 1.8
2125*/
2126
2127table.classindex {
2128    margin-left: 0;
2129    margin-right: 0;
2130    width: 100%;
2131}
2132
2133table.classindex table div.ah {
2134    background-image: none;
2135    background-color: initial;
2136    border-color: var(--separator-color);
2137    color: var(--page-foreground-color);
2138    box-shadow: var(--box-shadow);
2139    border-radius: var(--border-radius-large);
2140    padding: var(--spacing-small);
2141}
2142
2143div.qindex {
2144    background-color: var(--odd-color);
2145    border-radius: var(--border-radius-small);
2146    border: 1px solid var(--separator-color);
2147    padding: var(--spacing-small) 0;
2148}
2149
2150/*
2151  Footer and nav-path
2152 */
2153
2154#nav-path {
2155    width: 100%;
2156}
2157
2158#nav-path ul {
2159    background-image: none;
2160    background: var(--page-background-color);
2161    border: none;
2162    border-top: 1px solid var(--separator-color);
2163    border-bottom: 1px solid var(--separator-color);
2164    border-bottom: 0;
2165    box-shadow: 0 0.75px 0 var(--separator-color);
2166    font-size: var(--navigation-font-size);
2167}
2168
2169img.footer {
2170    width: 60px;
2171}
2172
2173.navpath li.footer {
2174    color: var(--page-secondary-foreground-color);
2175}
2176
2177address.footer {
2178    color: var(--page-secondary-foreground-color);
2179    margin-bottom: var(--spacing-large);
2180}
2181
2182#nav-path li.navelem {
2183    background-image: none;
2184    display: flex;
2185    align-items: center;
2186}
2187
2188.navpath li.navelem a {
2189    text-shadow: none;
2190    display: inline-block;
2191    color: var(--primary-color) !important;
2192}
2193
2194.navpath li.navelem b {
2195    color: var(--primary-dark-color);
2196    font-weight: 500;
2197}
2198
2199li.navelem {
2200    padding: 0;
2201    margin-left: -8px;
2202}
2203
2204li.navelem:first-child {
2205    margin-left: var(--spacing-large);
2206}
2207
2208li.navelem:first-child:before {
2209    display: none;
2210}
2211
2212#nav-path li.navelem:after {
2213    content: '';
2214    border: 5px solid var(--page-background-color);
2215    border-bottom-color: transparent;
2216    border-right-color: transparent;
2217    border-top-color: transparent;
2218    transform: translateY(-1px) scaleY(4.2);
2219    z-index: 10;
2220    margin-left: 6px;
2221}
2222
2223#nav-path li.navelem:before {
2224    content: '';
2225    border: 5px solid var(--separator-color);
2226    border-bottom-color: transparent;
2227    border-right-color: transparent;
2228    border-top-color: transparent;
2229    transform: translateY(-1px) scaleY(3.2);
2230    margin-right: var(--spacing-small);
2231}
2232
2233.navpath li.navelem a:hover {
2234    color: var(--primary-color);
2235}
2236
2237/*
2238 Scrollbars for Webkit
2239*/
2240
2241#nav-tree::-webkit-scrollbar,
2242div.fragment::-webkit-scrollbar,
2243pre.fragment::-webkit-scrollbar,
2244div.memproto::-webkit-scrollbar,
2245.contents center::-webkit-scrollbar,
2246.contents .center::-webkit-scrollbar,
2247.contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) tbody::-webkit-scrollbar,
2248div.contents .toc::-webkit-scrollbar,
2249.contents .dotgraph::-webkit-scrollbar,
2250.contents .tabs-overview-container::-webkit-scrollbar {
2251    background: transparent;
2252    width: calc(var(--webkit-scrollbar-size) + var(--webkit-scrollbar-padding) + var(--webkit-scrollbar-padding));
2253    height: calc(var(--webkit-scrollbar-size) + var(--webkit-scrollbar-padding) + var(--webkit-scrollbar-padding));
2254}
2255
2256#nav-tree::-webkit-scrollbar-thumb,
2257div.fragment::-webkit-scrollbar-thumb,
2258pre.fragment::-webkit-scrollbar-thumb,
2259div.memproto::-webkit-scrollbar-thumb,
2260.contents center::-webkit-scrollbar-thumb,
2261.contents .center::-webkit-scrollbar-thumb,
2262.contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) tbody::-webkit-scrollbar-thumb,
2263div.contents .toc::-webkit-scrollbar-thumb,
2264.contents .dotgraph::-webkit-scrollbar-thumb,
2265.contents .tabs-overview-container::-webkit-scrollbar-thumb {
2266    background-color: transparent;
2267    border: var(--webkit-scrollbar-padding) solid transparent;
2268    border-radius: calc(var(--webkit-scrollbar-padding) + var(--webkit-scrollbar-padding));
2269    background-clip: padding-box;
2270}
2271
2272#nav-tree:hover::-webkit-scrollbar-thumb,
2273div.fragment:hover::-webkit-scrollbar-thumb,
2274pre.fragment:hover::-webkit-scrollbar-thumb,
2275div.memproto:hover::-webkit-scrollbar-thumb,
2276.contents center:hover::-webkit-scrollbar-thumb,
2277.contents .center:hover::-webkit-scrollbar-thumb,
2278.contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) tbody:hover::-webkit-scrollbar-thumb,
2279div.contents .toc:hover::-webkit-scrollbar-thumb,
2280.contents .dotgraph:hover::-webkit-scrollbar-thumb,
2281.contents .tabs-overview-container:hover::-webkit-scrollbar-thumb {
2282    background-color: var(--webkit-scrollbar-color);
2283}
2284
2285#nav-tree::-webkit-scrollbar-track,
2286div.fragment::-webkit-scrollbar-track,
2287pre.fragment::-webkit-scrollbar-track,
2288div.memproto::-webkit-scrollbar-track,
2289.contents center::-webkit-scrollbar-track,
2290.contents .center::-webkit-scrollbar-track,
2291.contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) tbody::-webkit-scrollbar-track,
2292div.contents .toc::-webkit-scrollbar-track,
2293.contents .dotgraph::-webkit-scrollbar-track,
2294.contents .tabs-overview-container::-webkit-scrollbar-track {
2295    background: transparent;
2296}
2297
2298#nav-tree::-webkit-scrollbar-corner {
2299    background-color: var(--side-nav-background);
2300}
2301
2302#nav-tree,
2303div.fragment,
2304pre.fragment,
2305div.memproto,
2306.contents center,
2307.contents .center,
2308.contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) tbody,
2309div.contents .toc {
2310    overflow-x: auto;
2311    overflow-x: overlay;
2312}
2313
2314#nav-tree {
2315    overflow-x: auto;
2316    overflow-y: auto;
2317    overflow-y: overlay;
2318}
2319
2320/*
2321 Scrollbars for Firefox
2322*/
2323
2324#nav-tree,
2325div.fragment,
2326pre.fragment,
2327div.memproto,
2328.contents center,
2329.contents .center,
2330.contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) tbody,
2331div.contents .toc,
2332.contents .dotgraph,
2333.contents .tabs-overview-container {
2334    scrollbar-width: thin;
2335}
2336
2337/*
2338  Optional Dark mode toggle button
2339*/
2340
2341doxygen-awesome-dark-mode-toggle {
2342    display: inline-block;
2343    margin: 0 0 0 var(--spacing-small);
2344    padding: 0;
2345    width: var(--searchbar-height);
2346    height: var(--searchbar-height);
2347    background: none;
2348    border: none;
2349    border-radius: var(--searchbar-height);
2350    vertical-align: middle;
2351    text-align: center;
2352    line-height: var(--searchbar-height);
2353    font-size: 22px;
2354    display: flex;
2355    align-items: center;
2356    justify-content: center;
2357    user-select: none;
2358    cursor: pointer;
2359}
2360
2361doxygen-awesome-dark-mode-toggle > svg {
2362    transition: transform var(--animation-duration) ease-in-out;
2363}
2364
2365doxygen-awesome-dark-mode-toggle:active > svg {
2366    transform: scale(.5);
2367}
2368
2369doxygen-awesome-dark-mode-toggle:hover {
2370    background-color: rgba(0,0,0,.03);
2371}
2372
2373html.dark-mode doxygen-awesome-dark-mode-toggle:hover {
2374    background-color: rgba(0,0,0,.18);
2375}
2376
2377/*
2378 Optional fragment copy button
2379*/
2380.doxygen-awesome-fragment-wrapper {
2381    position: relative;
2382}
2383
2384doxygen-awesome-fragment-copy-button {
2385    opacity: 0;
2386    background: var(--fragment-background);
2387    width: 28px;
2388    height: 28px;
2389    position: absolute;
2390    right: calc(var(--spacing-large) - (var(--spacing-large) / 2.5));
2391    top: calc(var(--spacing-large) - (var(--spacing-large) / 2.5));
2392    border: 1px solid var(--fragment-foreground);
2393    cursor: pointer;
2394    border-radius: var(--border-radius-small);
2395    display: flex;
2396    justify-content: center;
2397    align-items: center;
2398}
2399
2400.doxygen-awesome-fragment-wrapper:hover doxygen-awesome-fragment-copy-button, doxygen-awesome-fragment-copy-button.success {
2401    opacity: .28;
2402}
2403
2404doxygen-awesome-fragment-copy-button:hover, doxygen-awesome-fragment-copy-button.success {
2405    opacity: 1 !important;
2406}
2407
2408doxygen-awesome-fragment-copy-button:active:not([class~=success]) svg {
2409    transform: scale(.91);
2410}
2411
2412doxygen-awesome-fragment-copy-button svg {
2413    fill: var(--fragment-foreground);
2414    width: 18px;
2415    height: 18px;
2416}
2417
2418doxygen-awesome-fragment-copy-button.success svg {
2419    fill: rgb(14, 168, 14);
2420}
2421
2422doxygen-awesome-fragment-copy-button.success {
2423    border-color: rgb(14, 168, 14);
2424}
2425
2426@media screen and (max-width: 767px) {
2427    .textblock > .doxygen-awesome-fragment-wrapper > doxygen-awesome-fragment-copy-button,
2428    .textblock li > .doxygen-awesome-fragment-wrapper > doxygen-awesome-fragment-copy-button,
2429    .memdoc li > .doxygen-awesome-fragment-wrapper > doxygen-awesome-fragment-copy-button,
2430    .memdoc > .doxygen-awesome-fragment-wrapper > doxygen-awesome-fragment-copy-button,
2431    dl dd > .doxygen-awesome-fragment-wrapper > doxygen-awesome-fragment-copy-button {
2432        right: 0;
2433    }
2434}
2435
2436/*
2437 Optional paragraph link button
2438*/
2439
2440a.anchorlink {
2441    font-size: 90%;
2442    margin-left: var(--spacing-small);
2443    color: var(--page-foreground-color) !important;
2444    text-decoration: none;
2445    opacity: .15;
2446    display: none;
2447    transition: opacity var(--animation-duration) ease-in-out, color var(--animation-duration) ease-in-out;
2448}
2449
2450a.anchorlink svg {
2451    fill: var(--page-foreground-color);
2452}
2453
2454h3 a.anchorlink svg, h4 a.anchorlink svg {
2455    margin-bottom: -3px;
2456    margin-top: -4px;
2457}
2458
2459a.anchorlink:hover {
2460    opacity: .45;
2461}
2462
2463h2:hover a.anchorlink, h1:hover a.anchorlink, h3:hover a.anchorlink, h4:hover a.anchorlink  {
2464    display: inline-block;
2465}
2466
2467/*
2468 Optional tab feature
2469*/
2470
2471.tabbed > ul {
2472    padding-inline-start: 0px;
2473    margin: 0;
2474    padding: var(--spacing-small) 0;
2475}
2476
2477.tabbed > ul > li {
2478    display: none;
2479}
2480
2481.tabbed > ul > li.selected {
2482    display: block;
2483}
2484
2485.tabs-overview-container {
2486    overflow-x: auto;
2487    display: block;
2488    overflow-y: visible;
2489}
2490
2491.tabs-overview {
2492    border-bottom: 1px solid var(--separator-color);
2493    display: flex;
2494    flex-direction: row;
2495}
2496
2497@media screen and (max-width: 767px) {
2498    .tabs-overview-container {
2499        margin: 0 calc(0px - var(--spacing-large));
2500    }
2501    .tabs-overview {
2502        padding: 0 var(--spacing-large)
2503    }
2504}
2505
2506.tabs-overview button.tab-button {
2507    color: var(--page-foreground-color);
2508    margin: 0;
2509    border: none;
2510    background: transparent;
2511    padding: calc(var(--spacing-large) / 2) 0;
2512    display: inline-block;
2513    font-size: var(--page-font-size);
2514    cursor: pointer;
2515    box-shadow: 0 1px 0 0 var(--separator-color);
2516    position: relative;
2517
2518    -webkit-tap-highlight-color: transparent;
2519}
2520
2521.tabs-overview button.tab-button .tab-title::before {
2522    display: block;
2523    content: attr(title);
2524    font-weight: 600;
2525    height: 0;
2526    overflow: hidden;
2527    visibility: hidden;
2528}
2529
2530.tabs-overview button.tab-button .tab-title {
2531    float: left;
2532    white-space: nowrap;
2533    font-weight: normal;
2534    padding: calc(var(--spacing-large) / 2) var(--spacing-large);
2535    border-radius: var(--border-radius-medium);
2536    transition: background-color var(--animation-duration) ease-in-out, font-weight var(--animation-duration) ease-in-out;
2537}
2538
2539.tabs-overview button.tab-button:not(:last-child) .tab-title {
2540    box-shadow: 8px 0 0 -7px var(--separator-color);
2541}
2542
2543.tabs-overview button.tab-button:hover .tab-title {
2544    background: var(--separator-color);
2545    box-shadow: none;
2546}
2547
2548.tabs-overview button.tab-button.active .tab-title {
2549    font-weight: 600;
2550}
2551
2552.tabs-overview button.tab-button::after {
2553    content: '';
2554    display: block;
2555    position: absolute;
2556    left: 0;
2557    bottom: 0;
2558    right: 0;
2559    height: 0;
2560    width: 0%;
2561    margin: 0 auto;
2562    border-radius: var(--border-radius-small) var(--border-radius-small) 0 0;
2563    background-color: var(--primary-color);
2564    transition: width var(--animation-duration) ease-in-out, height var(--animation-duration) ease-in-out;
2565}
2566
2567.tabs-overview button.tab-button.active::after {
2568    width: 100%;
2569    box-sizing: border-box;
2570    height: 3px;
2571}
2572
2573
2574/*
2575 Navigation Buttons
2576*/
2577
2578.section_buttons:not(:empty) {
2579    margin-top: calc(var(--spacing-large) * 3);
2580}
2581
2582.section_buttons table.markdownTable {
2583    display: block;
2584    width: 100%;
2585}
2586
2587.section_buttons table.markdownTable tbody {
2588    display: table !important;
2589    width: 100%;
2590    box-shadow: none;
2591    border-spacing: 10px;
2592}
2593
2594.section_buttons table.markdownTable td {
2595    padding: 0;
2596}
2597
2598.section_buttons table.markdownTable th {
2599    display: none;
2600}
2601
2602.section_buttons table.markdownTable tr.markdownTableHead {
2603    border: none;
2604}
2605
2606.section_buttons tr th, .section_buttons tr td {
2607    background: none;
2608    border: none;
2609    padding: var(--spacing-large) 0 var(--spacing-small);
2610}
2611
2612.section_buttons a {
2613    display: inline-block;
2614    border: 1px solid var(--separator-color);
2615    border-radius: var(--border-radius-medium);
2616    color: var(--page-secondary-foreground-color) !important;
2617    text-decoration: none;
2618    transition: color var(--animation-duration) ease-in-out, background-color var(--animation-duration) ease-in-out;
2619}
2620
2621.section_buttons a:hover {
2622    color: var(--page-foreground-color) !important;
2623    background-color: var(--odd-color);
2624}
2625
2626.section_buttons tr td.markdownTableBodyLeft a {
2627    padding: var(--spacing-medium) var(--spacing-large) var(--spacing-medium) calc(var(--spacing-large) / 2);
2628}
2629
2630.section_buttons tr td.markdownTableBodyRight a {
2631    padding: var(--spacing-medium) calc(var(--spacing-large) / 2) var(--spacing-medium) var(--spacing-large);
2632}
2633
2634.section_buttons tr td.markdownTableBodyLeft a::before,
2635.section_buttons tr td.markdownTableBodyRight a::after {
2636    color: var(--page-secondary-foreground-color) !important;
2637    display: inline-block;
2638    transition: color .08s ease-in-out, transform .09s ease-in-out;
2639}
2640
2641.section_buttons tr td.markdownTableBodyLeft a::before {
2642    content: '〈';
2643    padding-right: var(--spacing-large);
2644}
2645
2646
2647.section_buttons tr td.markdownTableBodyRight a::after {
2648    content: '〉';
2649    padding-left: var(--spacing-large);
2650}
2651
2652
2653.section_buttons tr td.markdownTableBodyLeft a:hover::before {
2654    color: var(--page-foreground-color) !important;
2655    transform: translateX(-3px);
2656}
2657
2658.section_buttons tr td.markdownTableBodyRight a:hover::after {
2659    color: var(--page-foreground-color) !important;
2660    transform: translateX(3px);
2661}
2662
2663@media screen and (max-width: 450px) {
2664    .section_buttons a {
2665        width: 100%;
2666        box-sizing: border-box;
2667    }
2668
2669    .section_buttons tr td:nth-of-type(1).markdownTableBodyLeft a {
2670        border-radius: var(--border-radius-medium) 0 0 var(--border-radius-medium);
2671        border-right: none;
2672    }
2673
2674    .section_buttons tr td:nth-of-type(2).markdownTableBodyRight a {
2675        border-radius: 0 var(--border-radius-medium) var(--border-radius-medium) 0;
2676    }
2677}
2678