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