1/**
2
3Doxygen Awesome
4https://github.com/jothepro/doxygen-awesome-css
5
6MIT License
7
8Copyright (c) 2021 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: #00559f;
34    --primary-light-color: #7aabd6;
35    --primary-lighter-color: #cae1f1;
36    --primary-lightest-color: #e9f1f8;
37
38    /* page base colors */
39    --page-background-color: white;
40    --page-foreground-color: #2c3e50;
41    --page-secondary-foreground-color: #67727e;
42
43    /* color for all separators on the website: hr, borders, ... */
44    --separator-color: #dedede;
45
46    /* border radius for all rounded components. Will affect many components, like dropdowns, memitems, codeblocks, ... */
47    --border-radius-large: 8px;
48    --border-radius-small: 4px;
49    --border-radius-medium: 6px;
50
51    /* default spacings. Most components reference these values for spacing, to provide uniform spacing on the page. */
52    --spacing-small: 5px;
53    --spacing-medium: 10px;
54    --spacing-large: 16px;
55
56    /* default box shadow used for raising an element above the normal content. Used in dropdowns, Searchresult, ... */
57    --box-shadow: 0 2px 10px 0 rgba(0,0,0,.1);
58
59    --odd-color: rgba(0,0,0,.03);
60
61    /* font-families. will affect all text on the website
62     * font-family: the normal font for text, headlines, menus
63     * font-family-monospace: used for preformatted text in memtitle, code, fragments
64     */
65    --font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;
66    --font-family-monospace: source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace;
67
68    /* font sizes */
69    --page-font-size: 15.6px;
70    --navigation-font-size: 14.4px;
71    --code-font-size: 14.4px; /* affects code, fragment */
72    --title-font-size: 22px;
73
74    /* content text properties. These only affect the page content, not the navigation or any other ui elements */
75    --content-line-height: 27px;
76    /* The content is centered and constraint in it's width. To make the content fill the whole page, set the variable to auto.*/
77    --content-maxwidth: 1000px;
78
79    /* colors for various content boxes: @warning, @note, @deprecated @bug */
80    --warning-color: #fca49b;
81    --warning-color-dark: #b61825;
82    --warning-color-darker: #75070f;
83    --note-color: rgba(255,229,100,.3);
84    --note-color-dark: #c39900;
85    --note-color-darker: #8d7400;
86    --deprecated-color: rgb(214, 216, 224);
87    --deprecated-color-dark: #5b6269;
88    --deprecated-color-darker: #43454a;
89    --bug-color: rgb(246, 208, 178);
90    --bug-color-dark: #a53a00;
91    --bug-color-darker: #5b1d00;
92    --invariant-color: #b7f8d0;
93    --invariant-color-dark: #00ba44;
94    --invariant-color-darker: #008622;
95
96    /* blockquote colors */
97    --blockquote-background: #f5f5f5;
98    --blockquote-foreground: #727272;
99
100    /* table colors */
101    --tablehead-background: #f1f1f1;
102    --tablehead-foreground: var(--page-foreground-color);
103
104    /* menu-display: block | none
105     * Visibility of the top navigation on screens >= 768px. On smaller screen the menu is always visible.
106     * `GENERATE_TREEVIEW` MUST be enabled!
107     */
108    --menu-display: block;
109
110    --menu-focus-foreground: var(--page-background-color);
111    --menu-focus-background: var(--primary-color);
112    --menu-selected-background: rgba(0,0,0,.05);
113
114
115    --header-background: var(--page-background-color);
116    --header-foreground: var(--page-foreground-color);
117
118    /* searchbar colors */
119    --searchbar-background: var(--side-nav-background);
120    --searchbar-foreground: var(--page-foreground-color);
121
122    /* searchbar size
123     * (`searchbar-width` is only applied on screens >= 768px.
124     * on smaller screens the searchbar will always fill the entire screen width) */
125    --searchbar-height: 33px;
126    --searchbar-width: 210px;
127
128    /* code block colors */
129    --code-background: #f5f5f5;
130    --code-foreground: var(--page-foreground-color);
131
132    /* fragment colors */
133    --fragment-background: #282c34;
134    --fragment-foreground: #ffffff;
135    --fragment-keyword: #cc99cd;
136    --fragment-keywordtype: #ab99cd;
137    --fragment-keywordflow: #e08000;
138    --fragment-token: #7ec699;
139    --fragment-comment: #999999;
140    --fragment-link: #98c0e3;
141    --fragment-preprocessor: #65cabe;
142    --fragment-linenumber-color: #cccccc;
143    --fragment-linenumber-background: #35393c;
144    --fragment-linenumber-border: #1f1f1f;
145    --fragment-lineheight: 20px;
146
147    /* sidebar navigation (treeview) colors */
148    --side-nav-background: #fbfbfb;
149    --side-nav-foreground: var(--page-foreground-color);
150    --side-nav-arrow-opacity: 0;
151    --side-nav-arrow-hover-opacity: 0.9;
152
153    /* height of an item in any tree / collapsable table */
154    --tree-item-height: 30px;
155
156    --darkmode-toggle-button-icon: '☀️'
157}
158
159@media screen and (max-width: 767px) {
160    html {
161        --page-font-size: 16px;
162        --navigation-font-size: 16px;
163        --code-font-size: 15px; /* affects code, fragment */
164        --title-font-size: 22px;
165    }
166}
167
168@media (prefers-color-scheme: dark) {
169    html:not(.light-mode) {
170        color-scheme: dark;
171
172        --primary-color: #1982d2;
173        --primary-dark-color: #5ca8e2;
174        --primary-light-color: #4779ac;
175        --primary-lighter-color: #191e21;
176        --primary-lightest-color: #191a1c;
177
178        --box-shadow: 0 2px 10px 0 rgba(0,0,0,.35);
179
180        --odd-color: rgba(0,0,0,.1);
181
182        --menu-selected-background: rgba(0,0,0,.4);
183
184        --page-background-color: #1C1D1F;
185        --page-foreground-color: #d2dbde;
186        --page-secondary-foreground-color: #859399;
187        --separator-color: #000000;
188        --side-nav-background: #252628;
189
190        --code-background: #2a2c2f;
191
192        --tablehead-background: #2a2c2f;
193
194        --blockquote-background: #1f2022;
195        --blockquote-foreground: #77848a;
196
197        --warning-color: #b61825;
198        --warning-color-dark: #510a02;
199        --warning-color-darker: #f5b1aa;
200        --note-color: rgb(255, 183, 0);
201        --note-color-dark: #9f7300;
202        --note-color-darker: #645b39;
203        --deprecated-color: rgb(88, 90, 96);
204        --deprecated-color-dark: #262e37;
205        --deprecated-color-darker: #a0a5b0;
206        --bug-color: rgb(248, 113, 0);
207        --bug-color-dark: #812a00;
208        --bug-color-darker: #ffd3be;
209
210        --darkmode-toggle-button-icon: '��';
211    }
212}
213
214/* dark mode variables are defined twice, to support both the dark-mode without and with doxygen-awesome-darkmode-toggle.js */
215html.dark-mode {
216    color-scheme: dark;
217
218    --primary-color: #1982d2;
219    --primary-dark-color: #5ca8e2;
220    --primary-light-color: #4779ac;
221    --primary-lighter-color: #191e21;
222    --primary-lightest-color: #191a1c;
223
224    --box-shadow: 0 2px 10px 0 rgba(0,0,0,.35);
225
226    --odd-color: rgba(0,0,0,.1);
227
228    --menu-selected-background: rgba(0,0,0,.4);
229
230    --page-background-color: #1C1D1F;
231    --page-foreground-color: #d2dbde;
232    --page-secondary-foreground-color: #859399;
233    --separator-color: #000000;
234    --side-nav-background: #252628;
235
236    --code-background: #2a2c2f;
237
238    --tablehead-background: #2a2c2f;
239
240    --blockquote-background: #1f2022;
241    --blockquote-foreground: #77848a;
242
243    --warning-color: #b61825;
244    --warning-color-dark: #510a02;
245    --warning-color-darker: #f5b1aa;
246    --note-color: rgb(255, 183, 0);
247    --note-color-dark: #9f7300;
248    --note-color-darker: #645b39;
249    --deprecated-color: rgb(88, 90, 96);
250    --deprecated-color-dark: #262e37;
251    --deprecated-color-darker: #a0a5b0;
252    --bug-color: rgb(248, 113, 0);
253    --bug-color-dark: #812a00;
254    --bug-color-darker: #ffd3be;
255
256    --darkmode-toggle-button-icon: '��';
257}
258
259body {
260    color: var(--page-foreground-color);
261    background-color: var(--page-background-color);
262    font-size: var(--page-font-size);
263}
264
265body, table, div, p, dl, #nav-tree .label, .title, .sm-dox a, .sm-dox a:hover, .sm-dox a:focus, #projectname, .SelectItem, #MSearchField, .navpath li.navelem a, .navpath li.navelem a:hover {
266    font-family: var(--font-family);
267}
268
269h1, h2, h3, h4, h5 {
270    margin-top: .9em;
271    font-weight: 600;
272    line-height: initial;
273}
274
275p, div, table, dl {
276    font-size: var(--page-font-size);
277}
278
279a:link, a:visited, a:hover, a:focus, a:active {
280    color: var(--primary-color) !important;
281    font-weight: 500;
282}
283
284/*
285 Title and top navigation
286 */
287
288#top {
289    background: var(--header-background);
290    border-bottom: 1px solid var(--separator-color);
291}
292
293@media screen and (min-width: 768px) {
294    #top {
295        display: flex;
296        flex-wrap: wrap;
297        justify-content: space-between;
298        align-items: center;
299    }
300}
301
302#main-nav {
303    flex-grow: 5;
304    padding: var(--spacing-small) var(--spacing-medium);
305}
306
307#titlearea {
308    width: auto;
309    padding: var(--spacing-medium) var(--spacing-large);
310    background: none;
311    color: var(--header-foreground);
312    border-bottom: none;
313}
314
315@media screen and (max-width: 767px) {
316    #titlearea {
317        padding-bottom: var(--spacing-small);
318    }
319}
320
321#titlearea table tbody tr {
322    height: auto !important;
323}
324
325#projectname {
326    font-size: var(--title-font-size);
327    font-weight: 600;
328}
329
330#projectnumber {
331    font-family: inherit;
332    font-size: 60%;
333}
334
335#projectbrief {
336    font-family: inherit;
337    font-size: 80%;
338}
339
340#projectlogo {
341    vertical-align: middle;
342}
343
344#projectlogo img {
345    max-height: calc(var(--title-font-size) * 2);
346    margin-right: var(--spacing-small);
347}
348
349.sm-dox, .tabs, .tabs2, .tabs3 {
350    background: none;
351    padding: 0;
352}
353
354.tabs, .tabs2, .tabs3 {
355    border-bottom: 1px solid var(--separator-color);
356    margin-bottom: -1px;
357}
358
359@media screen and (max-width: 767px) {
360    .sm-dox a span.sub-arrow {
361        background: var(--code-background);
362    }
363}
364
365@media screen and (min-width: 768px) {
366    .sm-dox li, .tablist li {
367        display: var(--menu-display);
368    }
369
370    .sm-dox a span.sub-arrow {
371        border-color: var(--header-foreground) transparent transparent transparent;
372    }
373
374    .sm-dox a:hover span.sub-arrow {
375        border-color: var(--menu-focus-foreground) transparent transparent transparent;
376    }
377
378    .sm-dox ul a span.sub-arrow {
379        border-color: transparent transparent transparent var(--page-foreground-color);
380    }
381
382    .sm-dox ul a:hover span.sub-arrow {
383        border-color: transparent transparent transparent var(--menu-focus-foreground);
384    }
385}
386
387.sm-dox ul {
388    background: var(--page-background-color);
389    box-shadow: var(--box-shadow);
390    border: 1px solid var(--separator-color);
391    border-radius: var(--border-radius-medium) !important;
392    padding: var(--spacing-small);
393    animation: ease-out 150ms slideInMenu;
394}
395
396@keyframes slideInMenu {
397    from {
398        opacity: 0;
399        transform: translate(0px, -2px);
400    }
401
402    to {
403        opacity: 1;
404        transform: translate(0px, 0px);
405    }
406}
407
408.sm-dox ul a {
409    color: var(--page-foreground-color) !important;
410    background: var(--page-background-color);
411    font-size: var(--navigation-font-size);
412}
413
414.sm-dox>li>ul:after {
415    border-bottom-color: var(--page-background-color) !important;
416}
417
418.sm-dox>li>ul:before {
419    border-bottom-color: var(--separator-color) !important;
420}
421
422.sm-dox ul a:hover, .sm-dox ul a:active, .sm-dox ul a:focus {
423    font-size: var(--navigation-font-size) !important;
424    color: var(--menu-focus-foreground) !important;
425    text-shadow: none;
426    background-color: var(--menu-focus-background);
427    border-radius: var(--border-radius-small) !important;
428}
429
430.sm-dox a, .sm-dox a:focus, .tablist li, .tablist li a, .tablist li.current a {
431    text-shadow: none;
432    background: transparent;
433    background-image: none !important;
434    color: var(--header-foreground) !important;
435    font-weight: normal;
436    font-size: var(--navigation-font-size);
437}
438
439.sm-dox a:focus {
440    outline: auto;
441}
442
443.sm-dox a:hover, .sm-dox a:active, .tablist li a:hover {
444    text-shadow: none;
445    font-weight: normal;
446    background: var(--menu-focus-background);
447    color: var(--menu-focus-foreground) !important;
448    border-radius: var(--border-radius-small) !important;
449    font-size: var(--navigation-font-size);
450}
451
452.tablist li.current {
453    border-radius: var(--border-radius-small);
454    background: var(--menu-selected-background);
455}
456
457.tablist li {
458    margin: var(--spacing-small) 0 var(--spacing-small) var(--spacing-small);
459}
460
461.tablist a {
462    padding: 0 var(--spacing-large);
463}
464
465
466/*
467 Search box
468 */
469
470#MSearchBox {
471    height: var(--searchbar-height);
472    background: var(--searchbar-background);
473    border-radius: var(--searchbar-height);
474    border: 1px solid var(--separator-color);
475    overflow: hidden;
476    width: var(--searchbar-width);
477    position: relative;
478    box-shadow: none;
479    display: block;
480    margin-top: 0;
481}
482
483.left #MSearchSelect {
484    left: 0;
485}
486
487.tabs .left #MSearchSelect {
488    padding-left: 0;
489}
490
491.tabs #MSearchBox {
492    position: absolute;
493    right: var(--spacing-medium);
494}
495
496@media screen and (max-width: 767px) {
497    .tabs #MSearchBox {
498        position: relative;
499        right: 0;
500        margin-left: var(--spacing-medium);
501        margin-top: 0;
502    }
503}
504
505#MSearchSelectWindow, #MSearchResultsWindow {
506    z-index: 9999;
507}
508
509#MSearchBox.MSearchBoxActive {
510    border-color: var(--primary-color);
511    box-shadow: inset 0 0 0 1px var(--primary-color);
512}
513
514#main-menu > li:last-child {
515    margin-right: 0;
516}
517
518@media screen and (max-width: 767px) {
519    #main-menu > li:last-child {
520        height: 50px;
521    }
522}
523
524#MSearchField {
525    font-size: var(--navigation-font-size);
526    height: calc(var(--searchbar-height) - 2px);
527    background: transparent;
528    width: calc(var(--searchbar-width) - 64px);
529}
530
531.MSearchBoxActive #MSearchField {
532    color: var(--searchbar-foreground);
533}
534
535#MSearchSelect {
536    top: calc(calc(var(--searchbar-height) / 2) - 11px);
537}
538
539.left #MSearchSelect {
540    padding-left: 8px;
541}
542
543#MSearchBox span.left, #MSearchBox span.right {
544    background: none;
545}
546
547#MSearchBox span.right {
548    padding-top: calc(calc(var(--searchbar-height) / 2) - 12px);
549    position: absolute;
550    right: var(--spacing-small);
551}
552
553.tabs #MSearchBox span.right {
554    top: calc(calc(var(--searchbar-height) / 2) - 12px);
555}
556
557@keyframes slideInSearchResults {
558    from {
559        opacity: 0;
560        transform: translate(0, 15px);
561    }
562
563    to {
564        opacity: 1;
565        transform: translate(0, 20px);
566    }
567}
568
569#MSearchResultsWindow {
570    left: auto !important;
571    right: var(--spacing-medium);
572    border-radius: var(--border-radius-large);
573    border: 1px solid var(--separator-color);
574    transform: translate(0, 20px);
575    box-shadow: var(--box-shadow);
576    animation: ease-out 280ms slideInSearchResults;
577    background: var(--page-background-color);
578}
579
580iframe#MSearchResults {
581    margin: 4px;
582}
583
584iframe {
585    color-scheme: normal;
586}
587
588@media (prefers-color-scheme: dark) {
589    html:not(.light-mode) iframe#MSearchResults {
590        filter: invert() hue-rotate(180deg);
591    }
592}
593
594html.dark-mode iframe#MSearchResults {
595    filter: invert() hue-rotate(180deg);
596}
597
598#MSearchSelectWindow {
599    border: 1px solid var(--separator-color);
600    border-radius: var(--border-radius-medium);
601    box-shadow: var(--box-shadow);
602    background: var(--page-background-color);
603}
604
605#MSearchSelectWindow a.SelectItem {
606    font-size: var(--navigation-font-size);
607    line-height: var(--content-line-height);
608    margin: 0 var(--spacing-small);
609    border-radius: var(--border-radius-small);
610    color: var(--page-foreground-color) !important;
611    font-weight: normal;
612}
613
614#MSearchSelectWindow a.SelectItem:hover {
615    background: var(--menu-focus-background);
616    color: var(--menu-focus-foreground) !important;
617}
618
619@media screen and (max-width: 767px) {
620    #MSearchBox {
621        margin-top: var(--spacing-medium);
622        margin-bottom: var(--spacing-medium);
623        width: calc(100vw - 30px);
624    }
625
626    #main-menu > li:last-child {
627        float: none !important;
628    }
629
630    #MSearchField {
631        width: calc(100vw - 110px);
632    }
633
634    @keyframes slideInSearchResultsMobile {
635        from {
636            opacity: 0;
637            transform: translate(0, 15px);
638        }
639
640        to {
641            opacity: 1;
642            transform: translate(0, 20px);
643        }
644    }
645
646    #MSearchResultsWindow {
647        left: var(--spacing-medium) !important;
648        right: var(--spacing-medium);
649        overflow: auto;
650        transform: translate(0, 20px);
651        animation: ease-out 280ms slideInSearchResultsMobile;
652    }
653
654    /*
655     * Overwrites for fixing the searchbox on mobile in doxygen 1.9.2
656     */
657    label.main-menu-btn ~ #searchBoxPos1 {
658        top: 3px !important;
659        right: 6px !important;
660        left: 45px;
661        display: flex;
662    }
663
664    label.main-menu-btn ~ #searchBoxPos1 > #MSearchBox {
665        margin-top: 0;
666        margin-bottom: 0;
667        flex-grow: 2;
668        float: left;
669    }
670}
671
672/*
673 Tree view
674 */
675
676#side-nav {
677    padding: 0 !important;
678    background: var(--side-nav-background);
679}
680
681@media screen and (max-width: 767px) {
682    #side-nav {
683        display: none;
684    }
685
686    #doc-content {
687        margin-left: 0 !important;
688        height: auto !important;
689        padding-bottom: calc(2 * var(--spacing-large));
690    }
691}
692
693#nav-tree {
694    background: transparent;
695}
696
697#nav-tree .label {
698    font-size: var(--navigation-font-size);
699}
700
701#nav-tree .item {
702    height: var(--tree-item-height);
703    line-height: var(--tree-item-height);
704}
705
706#nav-sync {
707    top: 12px !important;
708    right: 12px;
709}
710
711#nav-tree .selected {
712    text-shadow: none;
713    background-image: none;
714    background-color: transparent;
715    box-shadow: inset 4px 0 0 0 var(--primary-color);
716}
717
718#nav-tree a {
719    color: var(--side-nav-foreground) !important;
720    font-weight: normal;
721}
722
723#nav-tree a:focus {
724    outline-style: auto;
725}
726
727#nav-tree .arrow {
728    opacity: var(--side-nav-arrow-opacity);
729}
730
731.arrow {
732    color: inherit;
733    cursor: pointer;
734    font-size: 45%;
735    vertical-align: middle;
736    margin-right: 2px;
737    font-family: serif;
738    height: auto;
739    text-align: right;
740}
741
742#nav-tree div.item:hover .arrow, #nav-tree a:focus .arrow {
743    opacity: var(--side-nav-arrow-hover-opacity);
744}
745
746#nav-tree .selected a {
747    color: var(--primary-color) !important;
748    font-weight: bolder;
749    font-weight: 600;
750}
751
752.ui-resizable-e {
753    background: var(--separator-color);
754    width: 1px;
755}
756
757/*
758 Contents
759 */
760
761div.header {
762    border-bottom: 1px solid var(--separator-color);
763    background-color: var(--page-background-color);
764    background-image: none;
765}
766
767div.contents, div.header .title, div.header .summary {
768    max-width: var(--content-maxwidth);
769}
770
771div.contents, div.header .title  {
772    line-height: initial;
773    margin: calc(var(--spacing-medium) + .2em) auto var(--spacing-medium) auto;
774}
775
776div.header .summary {
777    margin: var(--spacing-medium) auto 0 auto;
778}
779
780div.headertitle {
781    padding: 0;
782}
783
784div.header .title {
785    font-weight: 600;
786    font-size: 210%;
787    padding: var(--spacing-medium) var(--spacing-large);
788    word-break: break-word;
789}
790
791div.header .summary {
792    width: auto;
793    display: block;
794    float: none;
795    padding: 0 var(--spacing-large);
796}
797
798td.memSeparator {
799    border-color: var(--separator-color);
800}
801
802.mdescLeft, .mdescRight, .memItemLeft, .memItemRight, .memTemplItemLeft, .memTemplItemRight, .memTemplParams {
803    background: var(--code-background);
804}
805
806.mdescRight {
807    color: var(--page-secondary-foreground-color);
808}
809
810span.mlabel {
811    background: var(--primary-color);
812    border: none;
813    padding: 4px 9px;
814    border-radius: 12px;
815    margin-right: var(--spacing-medium);
816}
817
818span.mlabel:last-of-type {
819    margin-right: 2px;
820}
821
822div.contents {
823    padding: 0 var(--spacing-large);
824}
825
826div.contents p, div.contents li {
827    line-height: var(--content-line-height);
828}
829
830div.contents div.dyncontent {
831    margin: var(--spacing-medium) 0;
832}
833
834@media (prefers-color-scheme: dark) {
835    html:not(.light-mode) div.contents div.dyncontent img,
836    html:not(.light-mode) div.contents center img,
837    html:not(.light-mode) div.contents table img,
838    html:not(.light-mode) div.contents div.dyncontent iframe,
839    html:not(.light-mode) div.contents center iframe,
840    html:not(.light-mode) div.contents table iframe {
841        filter: hue-rotate(180deg) invert();
842    }
843}
844
845html.dark-mode div.contents div.dyncontent img,
846html.dark-mode div.contents center img,
847html.dark-mode div.contents table img,
848html.dark-mode div.contents div.dyncontent iframe,
849html.dark-mode div.contents center iframe,
850html.dark-mode div.contents table iframe {
851    filter: hue-rotate(180deg) invert();
852}
853
854h2.groupheader {
855    border-bottom: 1px solid var(--separator-color);
856    color: var(--page-foreground-color);
857}
858
859blockquote {
860    padding: var(--spacing-small) var(--spacing-medium);
861    background: var(--blockquote-background);
862    color: var(--blockquote-foreground);
863    border-left: 2px solid var(--blockquote-foreground);
864    margin: 0;
865}
866
867blockquote p {
868    margin: var(--spacing-small) 0 var(--spacing-medium) 0;
869}
870.paramname {
871    font-weight: 600;
872    color: var(--primary-dark-color);
873}
874
875.glow {
876    text-shadow: 0 0 15px var(--primary-light-color) !important;
877}
878
879.alphachar a {
880    color: var(--page-foreground-color);
881}
882
883/*
884 Table of Contents
885 */
886
887div.toc {
888    background-color: var(--side-nav-background);
889    border: 1px solid var(--separator-color);
890    border-radius: var(--border-radius-medium);
891    box-shadow: var(--box-shadow);
892    padding: 0 var(--spacing-large);
893    margin: 0 0 var(--spacing-medium) var(--spacing-medium);
894}
895
896div.toc h3 {
897    color: var(--side-nav-foreground);
898    font-size: var(--navigation-font-size);
899    margin: var(--spacing-large) 0;
900}
901
902div.toc li {
903    font-size: var(--navigation-font-size);
904    padding: 0;
905    background: none;
906}
907
908div.toc li:before {
909    content: '↓';
910    font-weight: 800;
911    font-family: var(--font-family);
912    margin-right: var(--spacing-small);
913    color: var(--side-nav-foreground);
914    opacity: .4;
915}
916
917div.toc ul li.level1 {
918    margin: 0;
919}
920
921div.toc ul li.level2, div.toc ul li.level3 {
922    margin-top: 0;
923}
924
925
926@media screen and (max-width: 767px) {
927    div.toc {
928        float: none;
929        width: auto;
930        margin: 0 0 var(--spacing-medium) 0;
931    }
932}
933
934/*
935 Code & Fragments
936 */
937
938code, div.fragment, pre.fragment {
939    border-radius: var(--border-radius-small);
940    border: none;
941    overflow: hidden;
942}
943
944code {
945    display: inline;
946    background: var(--code-background);
947    color: var(--code-foreground);
948    padding: 2px 6px;
949    word-break: break-word;
950}
951
952div.fragment, pre.fragment {
953    margin: var(--spacing-medium) 0;
954    padding: 14px 16px;
955    background: var(--fragment-background);
956    color: var(--fragment-foreground);
957    overflow-x: auto;
958}
959
960@media screen and (max-width: 767px) {
961    div.fragment, pre.fragment {
962        border-top-right-radius: 0;
963        border-bottom-right-radius: 0;
964    }
965
966    .contents > div.fragment, .textblock > div.fragment, .textblock > pre.fragment {
967        margin: var(--spacing-medium) calc(0px - var(--spacing-large));
968        border-radius: 0;
969    }
970
971    .textblock li > .fragment {
972        margin: var(--spacing-medium) calc(0px - var(--spacing-large));
973    }
974
975    .memdoc li > .fragment {
976        margin: var(--spacing-medium) calc(0px - var(--spacing-medium));
977    }
978
979    .memdoc > div.fragment, .memdoc > pre.fragment, dl dd > div.fragment, dl dd pre.fragment {
980        margin: var(--spacing-medium) calc(0px - var(--spacing-medium));
981        border-radius: 0;
982    }
983}
984
985code, code a, pre.fragment, div.fragment, div.fragment .line, div.fragment span, div.fragment .line a, div.fragment .line span {
986    font-family: var(--font-family-monospace);
987    font-size: var(--code-font-size) !important;
988}
989
990div.line:after {
991    margin-right: var(--spacing-medium);
992}
993
994div.fragment .line, pre.fragment {
995    white-space: pre;
996    word-wrap: initial;
997    line-height: var(--fragment-lineheight);
998}
999
1000div.fragment span.keyword {
1001    color: var(--fragment-keyword);
1002}
1003
1004div.fragment span.keywordtype {
1005    color: var(--fragment-keywordtype);
1006}
1007
1008div.fragment span.keywordflow {
1009    color: var(--fragment-keywordflow);
1010}
1011
1012div.fragment span.stringliteral {
1013    color: var(--fragment-token)
1014}
1015
1016div.fragment span.comment {
1017    color: var(--fragment-comment);
1018}
1019
1020div.fragment a.code {
1021    color: var(--fragment-link) !important;
1022}
1023
1024div.fragment span.preprocessor {
1025    color: var(--fragment-preprocessor);
1026}
1027
1028div.fragment span.lineno {
1029    display: inline-block;
1030    width: 27px;
1031    border-right: none;
1032    background: var(--fragment-linenumber-background);
1033    color: var(--fragment-linenumber-color);
1034}
1035
1036div.fragment span.lineno a {
1037    background: none;
1038    color: var(--fragment-link) !important;
1039}
1040
1041div.fragment .line:first-child .lineno {
1042    box-shadow: -999999px 0px 0 999999px var(--fragment-linenumber-background), -999998px 0px 0 999999px var(--fragment-linenumber-border);
1043}
1044
1045/*
1046 dl warning, attention, note, deprecated, bug, ...
1047 */
1048
1049dl.warning, dl.attention, dl.note, dl.deprecated, dl.bug, dl.invariant, dl.pre {
1050    padding: var(--spacing-medium);
1051    margin: var(--spacing-medium) 0;
1052    color: var(--page-background-color);
1053    overflow: hidden;
1054    margin-left: 0;
1055    border-radius: var(--border-radius-small);
1056}
1057
1058dl.section dd {
1059    margin-bottom: 2px;
1060}
1061
1062dl.warning, dl.attention {
1063    background: var(--warning-color);
1064    border-left: 8px solid var(--warning-color-dark);
1065    color: var(--warning-color-darker);
1066}
1067
1068dl.warning dt, dl.attention dt {
1069    color: var(--warning-color-dark);
1070}
1071
1072dl.note {
1073    background: var(--note-color);
1074    border-left: 8px solid var(--note-color-dark);
1075    color: var(--note-color-darker);
1076}
1077
1078dl.note dt {
1079    color: var(--note-color-dark);
1080}
1081
1082dl.bug {
1083    background: var(--bug-color);
1084    border-left: 8px solid var(--bug-color-dark);
1085    color: var(--bug-color-darker);
1086}
1087
1088dl.bug dt a {
1089    color: var(--bug-color-dark) !important;
1090}
1091
1092dl.deprecated {
1093    background: var(--deprecated-color);
1094    border-left: 8px solid var(--deprecated-color-dark);
1095    color: var(--deprecated-color-darker);
1096}
1097
1098dl.deprecated dt a {
1099    color: var(--deprecated-color-dark) !important;
1100}
1101
1102dl.section dd, dl.bug dd, dl.deprecated dd {
1103    margin-inline-start: 0px;
1104}
1105
1106dl.invariant, dl.pre {
1107    background: var(--invariant-color);
1108    border-left: 8px solid var(--invariant-color-dark);
1109    color: var(--invariant-color-darker);
1110}
1111
1112/*
1113 memitem
1114 */
1115
1116div.memdoc, div.memproto, h2.memtitle {
1117    box-shadow: none;
1118    background-image: none;
1119    border: none;
1120}
1121
1122div.memdoc {
1123    padding: 0 var(--spacing-medium);
1124    background: var(--page-background-color);
1125}
1126
1127h2.memtitle, div.memitem {
1128    border: 1px solid var(--separator-color);
1129}
1130
1131div.memproto, h2.memtitle {
1132    background: var(--code-background);
1133    text-shadow: none;
1134}
1135
1136h2.memtitle {
1137    font-weight: 500;
1138    font-family: monospace, fixed;
1139    border-bottom: none;
1140    border-top-left-radius: var(--border-radius-medium);
1141    border-top-right-radius: var(--border-radius-medium);
1142    word-break: break-all;
1143}
1144
1145a:target + h2.memtitle, a:target + h2.memtitle + div.memitem {
1146    border-color: var(--primary-light-color);
1147}
1148
1149a:target + h2.memtitle {
1150    box-shadow: -3px -3px 3px 0 var(--primary-lightest-color), 3px -3px 3px 0 var(--primary-lightest-color);
1151}
1152
1153a:target + h2.memtitle + div.memitem {
1154    box-shadow: 0 0 10px 0 var(--primary-lighter-color);
1155}
1156
1157div.memitem {
1158    border-top-right-radius: var(--border-radius-medium);
1159    border-bottom-right-radius: var(--border-radius-medium);
1160    border-bottom-left-radius: var(--border-radius-medium);
1161    overflow: hidden;
1162    display: block !important;
1163}
1164
1165div.memdoc {
1166    border-radius: 0;
1167}
1168
1169div.memproto {
1170    border-radius: 0 var(--border-radius-small) 0 0;
1171    overflow: auto;
1172    border-bottom: 1px solid var(--separator-color);
1173    padding: var(--spacing-medium);
1174    margin-bottom: -1px;
1175}
1176
1177div.memtitle {
1178    border-top-right-radius: var(--border-radius-medium);
1179    border-top-left-radius: var(--border-radius-medium);
1180}
1181
1182div.memproto table.memname {
1183    font-family: monospace, fixed;
1184    color: var(--page-foreground-color);
1185}
1186
1187table.mlabels, table.mlabels > tbody {
1188    display: block;
1189}
1190
1191td.mlabels-left {
1192    width: auto;
1193}
1194
1195table.mlabels > tbody > tr:first-child {
1196    display: flex;
1197    justify-content: space-between;
1198    flex-wrap: wrap;
1199}
1200
1201.memname, .memitem span.mlabels {
1202    margin: 0
1203}
1204
1205/*
1206 reflist
1207 */
1208
1209dl.reflist {
1210    box-shadow: var(--box-shadow);
1211    border-radius: var(--border-radius-medium);
1212    border: 1px solid var(--separator-color);
1213    overflow: hidden;
1214    padding: 0;
1215}
1216
1217
1218dl.reflist dt, dl.reflist dd {
1219    box-shadow: none;
1220    text-shadow: none;
1221    background-image: none;
1222    border: none;
1223    padding: 12px;
1224}
1225
1226
1227dl.reflist dt {
1228    font-weight: 500;
1229    border-radius: 0;
1230    background: var(--code-background);
1231    border-bottom: 1px solid var(--separator-color);
1232    color: var(--page-foreground-color)
1233}
1234
1235
1236dl.reflist dd {
1237    background: none;
1238}
1239
1240/*
1241 Table
1242 */
1243
1244table.markdownTable, table.fieldtable {
1245    width: 100%;
1246    border: 1px solid var(--separator-color);
1247    margin: var(--spacing-medium) 0;
1248}
1249
1250table.fieldtable {
1251    box-shadow: none;
1252    border-radius: var(--border-radius-small);
1253}
1254
1255th.markdownTableHeadLeft, th.markdownTableHeadRight, th.markdownTableHeadCenter, th.markdownTableHeadNone {
1256    background: var(--tablehead-background);
1257    color: var(--tablehead-foreground);
1258    font-weight: 600;
1259    font-size: var(--page-font-size);
1260}
1261
1262table.markdownTable td, table.markdownTable th, table.fieldtable dt {
1263    border: 1px solid var(--separator-color);
1264    padding: var(--spacing-small) var(--spacing-medium);
1265}
1266
1267table.fieldtable th {
1268    font-size: var(--page-font-size);
1269    font-weight: 600;
1270    background-image: none;
1271    background-color: var(--tablehead-background);
1272    color: var(--tablehead-foreground);
1273    border-bottom: 1px solid var(--separator-color);
1274}
1275
1276.fieldtable td.fieldtype, .fieldtable td.fieldname {
1277    border-bottom: 1px solid var(--separator-color);
1278    border-right: 1px solid var(--separator-color);
1279}
1280
1281.fieldtable td.fielddoc {
1282    border-bottom: 1px solid var(--separator-color);
1283}
1284
1285.memberdecls td.glow, .fieldtable tr.glow {
1286    background-color: var(--primary-light-color);
1287    box-shadow: 0 0 15px var(--primary-lighter-color);
1288}
1289
1290table.memberdecls {
1291    display: block;
1292    overflow-x: auto;
1293    overflow-y: hidden;
1294}
1295
1296
1297/*
1298 Horizontal Rule
1299 */
1300
1301hr {
1302    margin-top: var(--spacing-large);
1303    margin-bottom: var(--spacing-large);
1304    border-top:1px solid var(--separator-color);
1305}
1306
1307.contents hr {
1308    box-shadow: var(--content-maxwidth) 0 0 0 var(--separator-color), calc(0px - var(--content-maxwidth)) 0 0 0 var(--separator-color);
1309}
1310
1311.contents img {
1312    max-width: 100%;
1313}
1314
1315/*
1316 Directories
1317 */
1318div.directory {
1319    border-top: 1px solid var(--separator-color);
1320    border-bottom: 1px solid var(--separator-color);
1321    width: auto;
1322}
1323
1324table.directory {
1325    font-family: var(--font-family);
1326    font-size: var(--page-font-size);
1327    font-weight: normal;
1328}
1329
1330.directory td.entry {
1331    padding: var(--spacing-small);
1332    display: flex;
1333    align-items: center;
1334}
1335
1336.directory tr.even {
1337    background-color: var(--odd-color);
1338}
1339
1340.icona {
1341    width: auto;
1342    height: auto;
1343    margin: 0 var(--spacing-small);
1344}
1345
1346.icon {
1347    background: var(--primary-color);
1348    width: 18px;
1349    height: 18px;
1350    line-height: 18px;
1351}
1352
1353.iconfopen, .icondoc, .iconfclosed {
1354    background-position: center;
1355    margin-bottom: 0;
1356}
1357
1358.icondoc {
1359    filter: saturate(0.2);
1360}
1361
1362@media screen and (max-width: 767px) {
1363    div.directory {
1364        margin-left: calc(0px - var(--spacing-medium));
1365        margin-right: calc(0px - var(--spacing-medium));
1366    }
1367}
1368
1369@media (prefers-color-scheme: dark) {
1370    html:not(.light-mode) .iconfopen, html:not(.light-mode) .iconfclosed {
1371        filter: hue-rotate(180deg) invert();
1372    }
1373}
1374
1375html.dark-mode .iconfopen, html.dark-mode .iconfclosed {
1376    filter: hue-rotate(180deg) invert();
1377}
1378
1379/*
1380 Class list
1381 */
1382
1383.classindex dl.odd {
1384    background: var(--odd-color);
1385    border-radius: var(--border-radius-small);
1386}
1387
1388@media screen and (max-width: 767px) {
1389    .classindex {
1390        margin: 0 calc(0px - var(--spacing-small));
1391    }
1392}
1393
1394/*
1395  Footer and nav-path
1396 */
1397
1398#nav-path {
1399    margin-bottom: -1px;
1400    width: 100%;
1401}
1402
1403#nav-path ul {
1404    background-image: none;
1405    background: var(--page-background-color);
1406    border: none;
1407    border-top: 1px solid var(--separator-color);
1408    border-bottom: 1px solid var(--separator-color);
1409    font-size: var(--navigation-font-size);
1410}
1411
1412img.footer {
1413    width: 60px;
1414}
1415
1416.navpath li.footer {
1417    color: var(--page-secondary-foreground-color);
1418}
1419
1420address.footer {
1421    margin-bottom: var(--spacing-large);
1422}
1423
1424#nav-path li.navelem {
1425    background-image: none;
1426    display: flex;
1427    align-items: center;
1428}
1429
1430.navpath li.navelem a {
1431    text-shadow: none;
1432    display: inline-block;
1433    color: var(--primary-color) !important;
1434}
1435
1436.navpath li.navelem b {
1437    color: var(--primary-dark-color);
1438    font-weight: 500;
1439}
1440
1441li.navelem {
1442    padding: 0;
1443    margin-left: -8px;
1444}
1445
1446li.navelem:first-child {
1447    margin-left: var(--spacing-large);
1448}
1449
1450li.navelem:first-child:before {
1451    display: none;
1452}
1453
1454#nav-path li.navelem:after {
1455    content: '';
1456    border: 5px solid var(--page-background-color);
1457    border-bottom-color: transparent;
1458    border-right-color: transparent;
1459    border-top-color: transparent;
1460    transform: scaleY(4.2);
1461    z-index: 10;
1462    margin-left: 6px;
1463}
1464
1465#nav-path li.navelem:before {
1466    content: '';
1467    border: 5px solid var(--separator-color);
1468    border-bottom-color: transparent;
1469    border-right-color: transparent;
1470    border-top-color: transparent;
1471    transform: scaleY(3.2);
1472    margin-right: var(--spacing-small);
1473}
1474
1475.navpath li.navelem a:hover {
1476    color: var(--primary-color);
1477}
1478
1479/*
1480  Optional Dark mode toggle button
1481*/
1482
1483doxygen-awesome-dark-mode-toggle {
1484    display: inline-block;
1485    margin: 0 0 0 var(--spacing-small);
1486    padding: 0;
1487    width: var(--searchbar-height);
1488    height: var(--searchbar-height);
1489    background: none;
1490    border: none;
1491    font-size: 23px;
1492    border-radius: var(--border-radius-medium);
1493    vertical-align: middle;
1494    text-align: center;
1495    line-height: var(--searchbar-height);
1496}
1497
1498doxygen-awesome-dark-mode-toggle:hover {
1499    background: var(--separator-color);
1500}
1501
1502doxygen-awesome-dark-mode-toggle:after {
1503    content: var(--darkmode-toggle-button-icon)
1504}
1505