1/**
2 * Copyright (c) 2019-2020, Juan Linietsky, Ariel Manzur and the Godot community
3 * Copyright (c) 2021, Teslabs Engineering S.L.
4 * Copyright (c) 2023-2025, The Linux Foundation.
5 * SPDX-License-Identifier: CC-BY-3.0
6 *
7 * Various tweaks to the Read the Docs theme to better conform with Zephyr's
8 * visual identity. Many colors are also overridden to use CSS variables.
9 */
10
11 :root {
12     /* Use system font stacks for better performance (no Web fonts required) */
13     --system-font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
14     --header-font-family: Seravek, 'Gill Sans Nova', Ubuntu, Calibri, 'DejaVu Sans', source-sans-pro, sans-serif;
15     --monospace-font-family: 'SF Mono', 'Monaco', 'Inconsolata', 'Fira Mono', 'Droid Sans Mono', 'Source Code Pro', monospace;
16 }
17
18body,
19h1,
20h2,
21h3,
22h4,
23h5,
24h6,
25input[type="text"],
26input[type="button"],
27input[type="reset"],
28input[type="submit"],
29textarea,
30legend,
31.btn,
32.rst-content .toctree-wrapper p.caption,
33.rst-versions {
34    font-family: var(--system-font-family);
35}
36
37h1,
38h2,
39h3,
40h4,
41h5,
42h6,
43legend,
44.rst-content .toctree-wrapper p.caption {
45    /* Use a lighter font for headers (Semi-Bold instead of Bold) */
46    font-weight: 600;
47    font-family: var(--header-font-family);
48}
49
50.rst-content div.figure p.caption {
51    /* Tweak caption styling to be closer to typical captions */
52    text-align: center;
53    margin-top: 8px;
54    opacity: 0.75;
55}
56
57.rst-content div.figure.figure-w480 {
58    max-width: 480px;
59}
60
61p,
62article ul,
63article ol,
64.wy-plain-list-disc,
65.wy-plain-list-decimal,
66.rst-content ol.arabic,
67.rst-content .section ul,
68.rst-content .toctree-wrapper ul,
69.rst-content .section ol {
70    /* Increase the line height slightly to account for the different font */
71    line-height: 25px;
72}
73
74body,
75.rst-content table.docutils thead {
76    color: var(--body-color);
77}
78
79a {
80    color: var(--link-color);
81}
82
83a:hover {
84    color: var(--link-color-hover);
85    text-decoration: underline;
86}
87
88a:active {
89    /* Add visual feedback when clicking on a link */
90    color: var(--link-color-active);
91}
92
93a:visited {
94    color: var(--link-color-visited);
95}
96
97a.btn:hover {
98    text-decoration: none;
99}
100
101.sphinx-tabs .sphinx-menu a.item {
102    /* Original definition has `!important` */
103    color: var(--link-color) !important;
104}
105
106.rst-content .toc-backref {
107    color: var(--link-color);
108}
109
110/* Style external links differently to make them easier to distinguish from internal links. */
111.reference.external {
112    background-position: center right;
113    background-repeat: no-repeat;
114    background-image: var(--external-reference-icon);
115    padding-right: 13px;
116}
117
118hr,
119#search-results .search li:first-child,
120#search-results .search li {
121    border-color: var(--hr-color);
122}
123
124
125footer,
126#search-results .context {
127    color: var(--footer-color);
128}
129
130/* Icon tweaks */
131a.icon-home,
132a.icon-home:visited {
133    color: var(--navbar-level-1-color);
134}
135
136/* Main sections */
137
138.wy-nav-content-wrap {
139    background-color: var(--content-wrap-background-color);
140}
141
142.wy-nav-content {
143    background-color: var(--content-background-color);
144    min-height: 100vh;
145    min-height: 100dvh;
146    display: flex;
147}
148
149.wy-body-for-nav {
150    background-color: var(--content-wrap-background-color);
151}
152
153@media only screen and (min-width: 769px) {
154    .wy-nav-content {
155        max-width: 915px;
156    }
157}
158
159/* Table display tweaks */
160
161.rst-content table.docutils,
162.wy-table-bordered-all td,
163.rst-content table.docutils td,
164.wy-table thead th,
165.rst-content table.docutils thead th,
166.rst-content table.field-list thead th {
167    border-color: var(--code-border-color);
168}
169
170.rst-content table.docutils caption, .rst-content table.field-list caption, .wy-table caption {
171    color: var(--body-color);
172}
173.wy-table-odd td,
174.wy-table-striped tr:nth-child(2n-1) td,
175.rst-content table.docutils:not(.field-list) tr:nth-child(2n-1) td {
176    background-color: var(--table-row-odd-background-color);
177}
178
179/* Override table no-wrap */
180/* The first column cells are not verbose, no need to wrap them */
181.wy-table-responsive table td:not(:nth-child(1)),
182.wy-table-responsive table th:not(:nth-child(1)) {
183    white-space: normal;
184}
185
186/* Allow to control wrapping behavior per table */
187.wy-table-responsive table.wrap-normal td,
188.wy-table-responsive table.wrap-normal th {
189    white-space: normal;
190}
191
192/* Make sure not to wrap keyboard shortcuts */
193.wy-table-responsive table td kbd {
194    white-space: nowrap;
195}
196
197/* Force table content font-size in responsive tables to be 100%
198 * fixing larger font size for paragraphs in the kconfig tables */
199 .wy-table-responsive td p {
200    font-size: 100%;
201}
202
203/* Code display tweaks */
204
205code,
206.rst-content tt,
207.rst-content code {
208    font-size: 14px;
209    background-color: var(--code-background-color);
210    border: 1px solid var(--code-border-color);
211}
212
213.rst-content tt.literal,
214.rst-content code.literal {
215    color: var(--code-literal-color);
216}
217
218.rst-content div[class^="highlight"] {
219    border-color: none;
220    border: none;
221}
222
223.rst-content pre.literal-block,
224.rst-content div[class^="highlight"] pre,
225.rst-content .linenodiv pre {
226    /* Increase the font size and line height in code blocks */
227    font-size: 14px;
228    line-height: 1.5;
229}
230
231.rst-content pre.literal-block {
232    border: none;
233    border-radius: 0.25rem;
234    background-color: var(--code-background-color);
235}
236
237/* Code tab display tweaks */
238
239.ui.tabular.menu .active.item,
240.ui.segment,
241.sphinx-tabs-panel {
242    background-color: var(--code-background-color) !important;
243}
244
245.sphinx-tabs-tab {
246    color: var(--link-color) !important;
247}
248
249.sphinx-tabs-tab[aria-selected="true"] {
250    background-color: var(--code-background-color) !important;
251    border-bottom: 1px solid var(--code-background-color) !important;
252}
253
254/* Code literals */
255a.internal code.literal {
256    color: var(--link-color);
257}
258
259a.internal:visited code.literal {
260    color: var(--link-color-visited);
261}
262
263/* Syntax highlighting */
264
265.tab div[class^='highlight']:last-child {
266    margin-bottom: 1em;
267}
268
269.rst-content tt.literal, .rst-content code.literal, .highlight {
270    border-radius: 0.25rem;
271}
272
273.highlight {
274    background-color: var(--highlight-background-color);
275}
276
277/* Emphasized lines */
278.highlight .hll {
279    background-color: var(--highlight-background-emph-color);
280}
281
282.highlight .gh /* Generic.Heading */,
283.highlight .gu /* Generic.Subheading */,
284.highlight .go /* Generic.Output */,
285.highlight .gt /* Generic.Traceback */ {
286    color: var(--highlight-default-color);
287}
288
289.highlight .c  /* Comment */,
290.highlight .c1 /* Comment.Single */,
291.highlight .cm /* Comment.Multiline */,
292.highlight .cs /* Comment.Special */ {
293    color: var(--highlight-comment-color);
294}
295
296.highlight .bp /* Name.Builtin.Pseudo */,
297.highlight .k  /* Keyword */,
298.highlight .kc /* Keyword.Constant */,
299.highlight .kd /* Keyword.Declaration */,
300.highlight .kn /* Keyword.Namespace */,
301.highlight .kp /* Keyword.Pseudo */,
302.highlight .kr /* Keyword.Reserved */,
303.highlight .kt /* Keyword.Type */,
304.highlight .ow /* Operator.Word */ {
305    color: var(--highlight-keyword-color);
306}
307
308.highlight .ch /* Comment.Hashbang */,
309.highlight .cp /* Comment.Preproc */ {
310    color: var(--highlight-keyword2-color);
311}
312
313.highlight .m  /* Literal.Number */,
314.highlight .mf /* Literal.Number.Float */,
315.highlight .mi /* Literal.Number.Integer */,
316.highlight .il /* Literal.Number.Integer.Long */,
317.highlight .mb /* Literal.Number.Bin */,
318.highlight .mh /* Literal.Number.Hex */,
319.highlight .mo /* Literal.Number.Oct */ {
320    color: var(--highlight-number-color);
321}
322
323.highlight .na /* Name.Attribute */,
324.highlight .nd /* Name.Decorator */,
325.highlight .ni /* Name.Entity */,
326.highlight .nl /* Name.Label */ {
327    color: var(--highlight-decorator-color);
328}
329
330.highlight .nb /* Name.Builtin */,
331.highlight .ne /* Name.Exception */ {
332    color: var(--highlight-type-color);
333}
334
335.highlight .nc /* Name.Class */,
336.highlight .nn /* Name.Namespace */,
337.highlight .no /* Name.Constant */,
338.highlight .nv /* Name.Variable */,
339.highlight .vc /* Name.Variable.Class */,
340.highlight .vg /* Name.Variable.Global */,
341.highlight .vi /* Name.Variable.Instance */,
342.highlight .vm /* Name.Variable.Magic */ {
343    color: var(--highlight-type2-color);
344}
345
346.highlight .nf /* Name.Function */,
347.highlight .fm /* Name.Function.Magic */,
348.highlight .nt /* Name.Tag */ {
349    color: var(--highlight-function-color);
350}
351
352.highlight .o  /* Operator */,
353.highlight .si /* Literal.String.Interpol */,
354.highlight .sx /* Literal.String.Other */,
355.highlight .sr /* Literal.String.Regex */,
356.highlight .ss /* Literal.String.Symbol */ {
357    color: var(--highlight-operator-color);
358}
359
360.highlight .cpf/* Comment.PreprocFile */,
361.highlight .s  /* Literal.String */,
362.highlight .s1 /* Literal.String.Single */,
363.highlight .s2 /* Literal.String.Double */,
364.highlight .sc /* Literal.String.Char */,
365.highlight .se /* Literal.String.Escape */,
366.highlight .sa /* Literal.String.Affix */,
367.highlight .sb /* Literal.String.Backtick */,
368.highlight .dl /* Literal.String.Delimiter */,
369.highlight .sd /* Literal.String.Doc */,
370.highlight .sh /* Literal.String.Heredoc */ {
371    color: var(--highlight-string-color);
372}
373
374/* Admonition tweaks */
375
376.rst-content .admonition,
377.rst-content .admonition.note,
378.rst-content .admonition.seealso {
379    background-color: var(--admonition-note-background-color);
380    color: var(--admonition-note-color);
381    overflow: auto;
382}
383
384.rst-content .admonition .admonition-title,
385.rst-content .admonition.note .admonition-title,
386.rst-content .admonition.seealso .admonition-title {
387    background-color: var(--admonition-note-title-background-color);
388    color: var(--admonition-note-title-color);
389}
390
391.rst-content .admonition.attention,
392.rst-content .admonition.caution,
393.rst-content .admonition.warning {
394    background-color: var(--admonition-attention-background-color);
395    color: var(--admonition-attention-color);
396    overflow: auto;
397}
398
399.rst-content .admonition.attention .admonition-title,
400.rst-content .admonition.caution .admonition-title,
401.rst-content .admonition.warning .admonition-title {
402    background-color: var(--admonition-attention-title-background-color);
403    color: var(--admonition-attention-title-color);
404}
405
406.rst-content .admonition.danger {
407    background-color: var(--admonition-danger-background-color);
408    color: var(--admonition-danger-color);
409    overflow: auto;
410}
411
412.rst-content .admonition.danger .admonition-title {
413    background-color: var(--admonition-danger-title-background-color);
414    color: var(--admonition-danger-title-color);
415}
416
417.rst-content .admonition.tip,
418.rst-content .admonition.important {
419    background-color: var(--admonition-tip-background-color);
420    color: var(--admonition-tip-color);
421    overflow: auto;
422}
423
424.rst-content .admonition.tip .admonition-title,
425.rst-content .admonition.important .admonition-title {
426    background-color: var(--admonition-tip-title-background-color);
427    color: var(--admonition-tip-title-color);
428}
429
430/* Admonition tweaks - sphinx_togglebutton */
431
432.rst-content .admonition.toggle {
433    overflow: visible;
434}
435
436.rst-content .admonition.toggle button {
437    display: inline-flex;
438    color: var(--admonition-note-title-color);
439}
440
441.rst-content .admonition.toggle .tb-icon {
442    height: 1em;
443    width: 1em;
444}
445
446/* Keyboard shortcuts tweaks */
447kbd, .kbd,
448.rst-content :not(dl.option-list) > :not(dt):not(kbd):not(.kbd) > kbd,
449.rst-content :not(dl.option-list) > :not(dt):not(kbd):not(.kbd) > .kbd {
450    background-color: var(--kbd-background-color);
451    border: 1px solid var(--kbd-outline-color);
452    border-radius: 3px;
453    box-shadow: inset 0 -1px 0 var(--kbd-shadow-color);
454    color: var(--kbd-text-color);
455    display: inline-block;
456    font-size: 12px;
457    line-height: 11px;
458    padding: 4px 5px;
459    vertical-align: middle;
460}
461
462/* guilabel and menuselection tweaks */
463.rst-content .guilabel,
464.rst-content .menuselection {
465    color: var(--body-color);
466    background-color: var(--guiitems-background-color);
467    border-color: var(--guiitems-border-color);
468}
469
470/* heading tweaks to make document hierarchy easier to grasp */
471
472.rst-content section > h1 {
473    font-weight: 700;
474    margin-bottom: 2.5rem;
475    position: relative;
476    line-height: 1;
477    z-index: 1;
478}
479
480.rst-content section > h1::before {
481    content: '';
482    position: absolute;
483    z-index:-1;
484    left: 0;
485    right: 0;
486    height: 4px;
487    bottom: -1px;
488    background: linear-gradient(to right, var(--admonition-note-title-background-color), var(--admonition-note-title-background-color) 50%, var(--admonition-note-background-color) 80%, transparent); /* Example gradient */
489    opacity:50%;
490}
491
492.rst-content section > h2,
493.rst-content section > h3,
494.rst-content section > h4,
495.rst-content section > h5 {
496    font-weight: 500;
497    padding-inline-start: 8px;
498    margin-inline-start: 0px;
499    border-inline-start: 8px solid;
500    padding-top: 0.2em;
501    padding-bottom: 0.2em;
502}
503
504.rst-content section > h2 {
505    border-color: var(--admonition-note-title-background-color);
506}
507
508.rst-content section > h3 {
509    border-color: var(--admonition-note-background-color);
510}
511
512.rst-content section > h4 {
513    border-color: transparent;
514    font-weight: 400;
515}
516
517.rst-content section > h5 {
518    border-color: transparent;
519    font-weight: 100;
520}
521
522/* Definition lists */
523.rst-content dl {
524    border-left: 4px solid var(--admonition-note-background-color);
525}
526
527.rst-content dl:not(.field-list) > dt {
528    position: relative;
529    padding-left: 1rem;
530    line-height: 1.8rem;
531    background: var(--highlight-background-color);
532    border-radius: 0 16px 16px 0;
533}
534
535.rst-content dl:not(.field-list) > dt::before {
536    content: '';
537    position: absolute;
538    left: -10px;
539    top: 6px;
540    width: 16px;
541    height: 16px;
542    background: var(--admonition-note-title-background-color);
543    border-radius: 50%;
544    border: 4px solid var(--content-background-color);
545}
546
547/* Buttons */
548
549.btn-neutral {
550    background-color: var(--btn-neutral-background-color) !important;
551    color: var(--body-color) !important;
552}
553
554.btn-neutral:hover {
555    background-color: var(--btn-neutral-hover-background-color) !important;
556}
557
558.btn-neutral:visited {
559    color: var(--body-color) !important;
560}
561
562/* Navigation bar logo and search */
563
564.logo {
565    opacity: var(--logo-opacity);
566}
567
568.wy-side-nav-search > a img.logo {
569    /* Fixed size to prevent reflows and support hiDPI displays */
570    /* A 5 pixel margin is added on each side. The logo itself displays at 200×100 at 100% scaling. */
571    width: 210px;
572    height: 105px;
573}
574
575.wy-side-nav-search {
576    background-color: var(--navbar-background-color);
577}
578
579.wy-side-nav-search.fixed {
580    position: fixed;
581}
582
583@media only screen and (min-width: 769px) {
584    /* Simulate a drop shadow that only affects the bottom edge */
585    /* This is used to indicate the search bar is fixed */
586    .wy-side-nav-search.fixed-and-scrolled::after {
587        content: '';
588        position: absolute;
589        left: 0;
590        bottom: -8px;
591        width: 300px;
592        height: 8px;
593        pointer-events: none;
594        background: linear-gradient(hsla(0, 0%, 0%, 0.2), transparent);
595    }
596}
597
598.wy-side-nav-search > a:hover,
599.wy-side-nav-search .wy-dropdown > a:hover {
600    background-color: var(--navbar-background-color-hover);
601}
602
603.wy-side-nav-search > a:active,
604.wy-side-nav-search .wy-dropdown > a:active {
605    background-color: var(--navbar-background-color-active);
606}
607
608.wy-side-nav-search input[type=search] {
609    width: 100%;
610    border-radius: 50px;
611    padding: 6px 12px;
612    background-color: var(--input-background-color);
613    color: var(--body-color);
614    /* Avoid reflowing when toggling the focus state */
615    border: 2px solid transparent;
616    box-shadow: none;
617    /* Make visual feedback instant */
618    transition: none;
619    font-size: 14px;
620}
621
622.wy-side-nav-search input[type="search"]:focus {
623    border: 2px solid var(--input-focus-border-color);
624}
625
626.wy-side-nav-search input[type="search"]::placeholder {
627    color: var(--body-color);
628    opacity: 0.55;
629}
630
631/* Navigation bar */
632
633.wy-nav-side {
634    background-color: var(--navbar-background-color);
635}
636
637.wy-menu-vertical header,
638.wy-menu-vertical p.caption {
639    color: var(--navbar-heading-color);
640
641    /* Improves the appearance of uppercase text */
642    letter-spacing: 0.75px;
643}
644
645/* Mobile navigation */
646
647.wy-nav-top,
648.wy-nav-top a {
649    background-color: var(--navbar-background-color);
650    color: var(--navbar-level-1-color);
651}
652
653/* Version branch label below the logo */
654.wy-side-nav-search > div.version {
655    color: var(--navbar-level-3-color);
656    opacity: 0.9;
657}
658
659/* First level of navigation items */
660
661.wy-menu-vertical a {
662    color: var(--navbar-level-1-color);
663}
664
665.wy-menu-vertical a:hover {
666    background-color: var(--navbar-background-color-hover);
667    color: var(--navbar-level-1-color);
668}
669
670.wy-menu-vertical a:active {
671    background-color: var(--navbar-background-color-active);
672}
673
674.wy-menu-vertical li.toctree-l1.current > a {
675    border: none;
676}
677
678.wy-menu-vertical a button.toctree-expand,
679.wy-menu-vertical li.toctree-l2 a button.toctree-expand {
680    color: var(--navbar-level-3-color);
681    opacity: 0.9;
682    margin-right: 6px;
683}
684
685.wy-menu-vertical a:hover button.toctree-expand,
686.wy-menu-vertical li.toctree-l2 a:hover button.toctree-expand {
687    color: var(--navbar-level-2-color);
688    opacity: 1;
689}
690
691.wy-menu-vertical a:active button.toctree-expand,
692.wy-menu-vertical li.toctree-l2 a:active button.toctree-expand {
693    color: var(--navbar-level-1-color);
694    opacity: 1;
695}
696
697/* Second (and higher) levels of navigation items */
698
699.wy-menu-vertical li.current a {
700    /* Make long words always display on a single line, keep wrapping for multiple words */
701    /* This fixes the class reference titles' display with very long class names */
702    display: flex;
703}
704
705.wy-menu-vertical li.current a,
706.wy-menu-vertical li.toctree-l2.current > a,
707.wy-menu-vertical li.toctree-l2.current li.toctree-l3 > a,
708.wy-menu-vertical li.toctree-l2.current li.toctree-l4 > a {
709    background-color: var(--navbar-current-background-color);
710    color: var(--navbar-level-2-color);
711    border-color: var(--navbar-current-background-color);
712}
713
714.wy-menu-vertical li.current a:hover,
715.wy-menu-vertical li.toctree-l2.current > a:hover,
716.wy-menu-vertical li.toctree-l2.current li.toctree-l3 > a:hover,
717.wy-menu-vertical li.toctree-l3.current li.toctree-l4 > a:hover {
718    background-color: var(--navbar-current-background-color-hover);
719}
720
721.wy-menu-vertical li.current a:active,
722.wy-menu-vertical li.toctree-l2.current > a:active,
723.wy-menu-vertical li.toctree-l2.current li.toctree-l3 > a:active,
724.wy-menu-vertical li.toctree-l3.current li.toctree-l4 > a:active {
725    background-color: var(--navbar-current-background-color-active);
726}
727
728.wy-menu-vertical a {
729    /* This overrides 8px margin added in other multi-selector rules */
730    margin-right: 0;
731}
732
733/* Banner panel in sidebar */
734.wy-nav-side .ethical-rtd.fixed {
735    position: fixed;
736}
737
738/* Version selector (only visible on Read the Docs) */
739
740.rst-versions {
741    background-color: var(--navbar-current-background-color);
742}
743
744.rst-versions a,
745.rst-versions .rst-current-version,
746.rst-versions .rst-current-version .fa,
747.rst-versions .rst-other-versions dd a {
748    color: var(--navbar-level-1-color);
749}
750
751.rst-versions .rst-other-versions small {
752    color: var(--navbar-level-3-color);
753}
754
755.rst-versions .rst-other-versions dd a:hover {
756    text-decoration: underline;
757}
758
759.rst-versions .rst-other-versions {
760    color: var(--navbar-heading-color);
761}
762
763.rst-versions .rst-current-version {
764    background-color: var(--navbar-current-background-color);
765}
766
767.rst-versions .rst-current-version:hover {
768    background-color: var(--navbar-current-background-color-hover);
769}
770
771.rst-versions .rst-current-version:active {
772    background-color: var(--navbar-current-background-color-active);
773}
774
775.rst-versions.shift-up {
776    overflow-y: auto;
777}
778
779/* Hide the obnoxious automatic highlight in search results */
780.rst-content .highlighted {
781    background-color: transparent;
782    font-weight: inherit;
783    padding: 0;
784}
785
786/* Allows the scrollbar to be shown in the sidebar */
787@media only screen and (min-width: 769px) {
788    .wy-side-scroll {
789        overflow: hidden;
790    }
791
792    .wy-nav-side .wy-side-scroll .ethical-rtd {
793        width: calc(300px - 1.25em);
794        padding: 0 0 0 1em;
795    }
796}
797.wy-menu.wy-menu-vertical {
798    overflow-y: auto;
799    overflow-x: hidden;
800    max-height: calc(100% - 243px);
801}
802@media screen and (max-width: 768px) {
803    .wy-nav-side {
804        padding-bottom: 44px;
805    }
806    .wy-menu.wy-menu-vertical {
807        overflow-y: initial;
808        max-height: initial;
809    }
810    .wy-nav-content {
811        min-height: calc(100vh - 64px);
812        min-height: calc(100dvh - 64px);
813    }
814}
815
816/* Scrollbar styling */
817.wy-menu.wy-menu-vertical {
818    scrollbar-color: var(--navbar-scrollbar-color) var(--navbar-scrollbar-background);
819}
820.wy-menu.wy-menu-vertical::-webkit-scrollbar {
821    width: .75rem;
822}
823.wy-menu.wy-menu-vertical::-webkit-scrollbar-track {
824    background-color: var(--navbar-scrollbar-background);
825}
826.wy-menu.wy-menu-vertical::-webkit-scrollbar-thumb {
827    background-color: var(--navbar-scrollbar-color);
828}
829/* Firefox does the dimming on hover automatically. We emulate it for Webkit-based browsers. */
830.wy-menu.wy-menu-vertical::-webkit-scrollbar-thumb:hover {
831    background-color: var(--navbar-scrollbar-hover-color);
832}
833.wy-menu.wy-menu-vertical::-webkit-scrollbar-thumb:active {
834    background-color: var(--navbar-scrollbar-active-color);
835}
836
837/* Misc tweaks */
838
839.rst-columns {
840    column-width: 18em;
841}
842
843.rst-content div.figure, .rst-content figure {
844    text-align: center;
845}
846
847.wy-alert.wy-alert-danger {
848    background-color: var(--admonition-danger-background-color);
849}
850
851
852dark-mode-toggle::part(fieldset) {
853  padding-inline: 0.75rem;
854  padding-block: 0;
855}
856
857dark-mode-toggle::part(darkLabel),
858dark-mode-toggle::part(lightLabel),
859dark-mode-toggle::part(toggleLabel){
860  font-size: unset;
861}
862
863div.graphviz > object {
864    filter: var(--graphviz-filter);
865}
866
867/* Sidebar */
868.rst-content .sidebar {
869    border-radius: 12px;
870    padding: 0px;
871    background: var(--admonition-note-background-color);
872    color: var(--admonition-note-title-color);
873    border-color: var(--admonition-note-title-background-color);
874}
875
876@media screen and (max-width: 480px) {
877    .rst-content .sidebar {
878        float: none;
879        margin-left: 0;
880    }
881}
882
883.rst-content .sidebar {
884    color: var(--admonition-note-color);
885}
886
887.rst-content .sidebar .sidebar-title {
888    font-family: var(--header-font-family);
889    background: var(--admonition-note-title-background-color);
890    color: var(--admonition-note-title-color);
891    border-radius: 12px 12px 0px 0px;
892    margin: 0px;
893    text-align: center;
894}
895
896.rst-content .sidebar figure {
897    padding: 1rem;
898    margin-bottom: -1rem;
899}
900
901.rst-content .sidebar figure img {
902    height: auto !important;
903}
904
905.rst-content .sidebar figure figcaption p {
906    margin-bottom: 0px;
907}
908
909.rst-content .sidebar dl.field-list {
910    align-items: center;
911    margin-top: 12px !important;
912    margin-bottom: 12px !important;
913    grid-template-columns: auto 1fr !important;
914    padding-right: 1em;
915}
916
917.rst-content .sidebar dl.field-list>dt {
918    background: transparent !important;
919}
920
921.rst-content .sidebar dl.field-list>dd {
922    margin-left: 1em;
923    text-overflow: ellipsis;
924    overflow: hidden;
925}
926
927.rst-content .sidebar dl.field-list>dd code {
928    font-size: 0.9em;
929}
930
931/* Home page grid display */
932.grid {
933    list-style-type: none !important;
934    display: -webkit-box;
935    display: -ms-flexbox;
936    display: flex;
937    -ms-flex-wrap: wrap;
938        flex-wrap: wrap;
939    -webkit-box-pack: center;
940        -ms-flex-pack: center;
941            justify-content: center;
942    margin: 1rem auto;
943    max-width: calc((160px + 2rem) * 4);
944}
945
946.grid-item {
947    list-style-type: none !important;
948    -webkit-box-flex: 0;
949        -ms-flex: 0 0 auto;
950            flex: 0 0 auto;
951    width: 150px;
952    text-align: center;
953    margin: 1rem;
954}
955
956.grid-item a {
957    display: block;
958    width: 150px;
959    height: 150px;
960    padding: 20px;
961    display: -webkit-box;
962    display: -ms-flexbox;
963    display: flex;
964    -webkit-box-orient: vertical;
965    -webkit-box-direction: normal;
966        -ms-flex-direction: column;
967            flex-direction: column;
968    -webkit-box-pack: center;
969        -ms-flex-pack: center;
970            justify-content: center;
971    -webkit-box-align: center;
972        -ms-flex-align: center;
973            align-items: center;
974    border-radius: 1rem;
975    background: linear-gradient(135deg, #0070c5 0%, #5c13a5 100%);
976    color: white;
977}
978
979.grid-item h2 {
980    font-size: 1rem;
981}
982
983.grid-item img {
984    margin-bottom: 1rem;
985    max-width: 75%;
986}
987
988.grid-item a:hover {
989    text-decoration: none;
990}
991
992.grid-item p {
993    font-size: 0.9rem;
994    margin-top: 0.5rem;
995    color: var(--body-color);
996    font-weight: 200;
997    margin-left: -0.9em;
998    margin-right: -0.9em;
999    line-height: 1.4rem;
1000}
1001
1002.grid-icon {
1003   line-height: 1.5;
1004   font-size: 3rem;
1005   color: white;
1006}
1007
1008.lastupdated {
1009    font-weight: 200;
1010    font-size: 0.9rem;
1011}
1012
1013/* Make actual document take all vertical space available so that footer is always at the bottom */
1014
1015.rst-content {
1016    flex: 1;
1017    display: flex;
1018    flex-direction: column;
1019    width: 100%;
1020}
1021
1022.document {
1023    flex-grow: 1;
1024}
1025
1026/* Custom search box, including search engine selection */
1027
1028.search-container {
1029    position: relative;
1030}
1031
1032#search-se-settings-icon {
1033    position: absolute;
1034    color: var(--body-color);
1035    right: 10px;
1036    top: 50%;
1037    transform: translateY(-50%);
1038    cursor: pointer;
1039    opacity: 0.8;
1040    padding: 10px;
1041}
1042
1043#search-se-menu {
1044    display: none;
1045    position: absolute;
1046    font-size: 11px;
1047    background-color: var(--input-background-color);
1048    color: var(--body-color);
1049    right: 0px;
1050    top: 36px;
1051    border: solid 1px var(--body-color);
1052    border-radius: 10px;
1053    z-index: 1000;
1054}
1055
1056#search-se-menu ul {
1057    list-style: none;
1058    margin: 0;
1059    padding: 2px;
1060}
1061
1062#search-se-menu ul li {
1063    padding: 8px 12px;
1064    cursor: pointer;
1065    display: flex;
1066    justify-content: space-between;
1067    align-items: center;
1068    gap: 1em;
1069}
1070
1071#search-se-menu [role="menuitemradio"]:focus {
1072    background-color: var(--navbar-current-background-color-hover);
1073    color: var(--navbar-level-1-color);
1074    border-radius: 10px;
1075}
1076
1077#search-se-menu ul li .fa-check {
1078    display: none;
1079  }
1080
1081  #search-se-menu ul li.selected .fa-check {
1082    display: inline;
1083  }
1084
1085.doxygroup::after {
1086    content: 'Doxygen';
1087    display: inline-block;
1088    background-color: var(--admonition-note-title-background-color);
1089    color: var(--admonition-note-title-color);
1090    padding: 2px 8px;
1091    border-radius: 12px;
1092    margin-left: 8px;
1093    font-size: 0.875em;
1094    font-weight: bold;
1095}
1096
1097.code-sample-list li {
1098    margin-bottom: 0.25em;
1099}
1100.code-sample-name {
1101    font-weight: bold;
1102    padding-right: 0.5em;
1103}
1104
1105.code-sample-description {
1106    font-weight: 300;
1107}
1108
1109.code-sample-description::before {
1110    content: '\F0A9'; /* arrow-circle-right */
1111    font-family: 'FontAwesome';
1112    padding-right: 0.5em;
1113}
1114
1115li>a.code-sample-link.reference.internal {
1116    font-weight: 100;
1117}
1118
1119li>a.code-sample-link.reference.internal.current {
1120    text-decoration: underline;
1121}
1122