xref: /webtrees/resources/css/fab.css (revision 6930e9b42b9925bfc3a874fc2aaa59aabd0d2418)
1/**
2 * webtrees: online genealogy
3 * Copyright (C) 2022 webtrees development team
4 * This program is free software: you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation, either version 3 of the License, or
7 * (at your option) any later version.
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 * You should have received a copy of the GNU General Public License
13 * along with this program. If not, see <https://www.gnu.org/licenses/>.
14 */
15
16/* The FAB theme */
17@import "_base.css";
18
19:root {
20    --chart-line-radius: 1rem;
21    --chart-line: solid gray thin;
22    --link-color-hover: #f00;
23    --link-color: #369;
24    --link-decoration-hover: underline;
25    --link-decoration: none;
26    --sex-f-bg: #ffdddd;
27    --sex-f-fg: #ff8888;
28    --sex-m-bg: #ddddff;
29    --sex-m-fg: #8888ff;
30    --sex-u-bg: #ddffdd;
31    --sex-u-fg: #88ff88;
32    --sex-x-bg: #fceaa1;
33    --sex-x-fg: #ffab57;
34}
35
36/* Override Bootstrap format    --sex-u-bg: #ddffdd;
37    --sex-u-fg: #88ff88;
38ting */
39.btn-link {
40    padding-left: 0.25rem;
41    padding-right: 0.25rem;
42}
43
44.table-given-name {
45    overflow-x: hidden;
46}
47
48.container-fluid {
49    padding-left: 5px;
50    padding-right: 5px;
51}
52
53table {
54    border-collapse: separate;
55}
56
57/*
58 * Pages have the following high-level structure:
59 *
60 * wt-global wt-theme-<THEME> wt-route-<ROUTE>
61 * +---wt-header-wrapper
62 * |   +---wt-header-container
63 * |       +---wt-header-content
64 * |           +---wt-accessibility-links
65 * |           +---wt-site-logo
66 * |           +---wt-site-title
67 * |           +---wt-header-search
68 * |           |   +---wt-header-search-form
69 * |           |       +---wt-header-search-field
70 * |           |       +---wt-header-search-button
71 * |           +---wt-secondary-navigation
72 * |           |   +---wt-user-menu
73 * |           +---wt-primary-navigation
74 * |               +---wt-genealogy-menu
75 * +---wt-main-wrapper
76 * |   +---wt-main-container
77 * |       +---wt-main-content
78 * |           +---wt-messages
79 * |           +---wt-page-title
80 * |           +---wt-page-options wt-page-options-xxxxx
81 * |           +---wt-page-content
82 * +---wt-footers
83 *     +---wt-footer wt-footer-xxxxx
84 */
85
86.wt-global {
87    color: #555;
88}
89
90.wt-header-wrapper {
91}
92
93.wt-header-container {
94    background-color: #eee;
95}
96
97.wt-header-content {
98}
99
100.wt-accessibility-links {
101}
102
103.wt-site-logo {
104    display: none;
105}
106
107.wt-site-title {
108    order: 1;
109    flex: 1 1 auto;
110    width: auto;
111    font-size: 1.5rem;
112    color: #888;
113}
114
115.wt-header-search {
116    order: 3;
117    flex: 0 0 15rem;
118}
119
120.wt-header-search-form {
121}
122
123.wt-header-search-field {
124}
125
126.wt-header-search-button {
127}
128
129.wt-secondary-navigation {
130    order: 2;
131    flex: 0 0 auto;
132    width: auto;
133    white-space: nowrap;
134}
135
136.wt-user-menu {
137    flex-wrap: nowrap;
138}
139
140.wt-user-menu .nav-link {
141    display: inline-block;
142    padding: 0.5rem;
143}
144
145.wt-user-menu .nav-item::after {
146    content: "|";
147}
148
149.wt-user-menu .dropdown-toggle::after {
150    display: none;
151}
152
153.wt-primary-navigation {
154    order: 4;
155    flex: 0 0 100%;
156    background-color: #eee;
157}
158
159.wt-genealogy-menu {
160    justify-content: center;
161}
162
163.wt-genealogy-menu .dropdown-toggle::after {
164    display: none;
165}
166
167.wt-genealogy-menu .nav-link {
168    white-space: nowrap;
169    display: inline-block;
170    padding: 0.5rem;
171}
172
173.wt-genealogy-menu .nav-item + .nav-item::before {
174    content: "|";
175}
176
177.wt-main-container {
178    /* Space between the header/footer and the main content. */
179    padding-top: 1rem;
180    padding-bottom: 1rem;
181}
182
183.wt-main {
184}
185
186.wt-messages {
187}
188
189.wt-page-title {
190    text-align: center;
191}
192
193.wt-page-options .form-group {
194    margin-bottom: 0;
195}
196
197.wt-page-options-label {
198    background-color: #ccc;
199    border-left: 2px solid transparent;
200    border-right: 2px solid transparent;
201    Color: #555;
202    font-weight: bold;
203}
204
205.wt-page-options-value {
206    background-color: #ddd;
207    border: 1px solid #fff;
208    border-top: 1px solid #ddd;
209
210    padding: 0.25rem 0.75rem;
211}
212
213.wt-page-content {
214    margin-top: 1rem;
215}
216
217.wt-footers {
218}
219
220.wt-footer {
221}
222
223.wt-footer-contact {
224}
225
226.wt-footer-cookies {
227    background: #aaa;
228    color: #fff;
229    transition: height 0.5s;
230}
231
232.wt-footer-page-views {
233}
234
235.wt-footer-powered-by {
236}
237
238.wt-footer-powered-by-webtrees {
239    width: 100px;
240    height: 21px;
241    content: url(images/powered-by-webtrees.png);
242}
243
244/*
245 * The tree/user home pages
246 *
247 * wt-home-page / wt-user-page
248 * +---wt-main-blocks
249 * |   +---wt-block, wt-block-AAA
250 * |   +---wt-block, wt-block-BBB
251 * |   +---wt-block, wt-block-CCC
252 * +---wt-side-blocks
253 *     +---wt-block, wt-block-XXX
254 *     +---wt-block, wt-block-YYY
255 *     +---wt-block, wt-block-ZZZ
256 *
257 * Each block as the structure
258 * wt-block, wt-block-XXX
259 * +---wt-block-header, wt-block-header-XXX
260 * +---wt-block-content, wt-block-content-XXX
261 */
262
263.wt-block {
264    background-color: #eee;
265    padding: 3px;
266    vertical-align: top;
267}
268
269.wt-block-header {
270    background-color: #eee;
271    border-bottom: 0;
272    font-weight: bold;
273}
274
275.wt-block-content {
276}
277
278.wt-block-content .list_table {
279    border-spacing: 1px;
280    border: solid #000 1px;
281    border-right: 0;
282}
283
284.wt-block-content .list_value,
285.wt-block-content .list_value_wrap {
286    border: 0;
287}
288
289/*
290 * The individual page.
291 *
292 * wt-route-individual
293 * +---wt-header-wrapper
294 */
295.wt-individual-silhouette-f {
296    content: url(images/individual-silhouette-female.png);
297}
298
299.wt-individual-silhouette-m {
300    content: url(images/individual-silhouette-male.png);
301}
302
303.wt-individual-silhouette-u,
304.wt-individual-silhouette-x {
305    content: url(images/individual-silhouette-unknown.png);
306}
307
308/*
309 * Chart-boxes are used to build the various charts.
310 * Each type of chart will set its own size and hide/show content.
311 *
312 * wt-chart-box
313 * +--- wt-chart-box-thumbnail
314 * +--- wt-chart-box-extra
315 *      +--- wt-chart-box-zoom
316 *           +--- wt-chart-box-icon
317 *           +--- wt-chart-box-dropdown wt-chart-box-zoom-dropdown
318 *      +--- wt-chart-box-links
319 *           +--- wt-chart-box-icon
320 *           +--- wt-chart-box-dropdown wt-chart-box-links-dropdown
321 * +--- wt-chart-box-name
322 * +--- wt-chart-box-lifespan
323 * +--- wt-chart-box-facts
324 *     +--- wt-chart-box-fact
325 */
326
327.wt-chart-box {
328    height: 5rem;
329    padding: 2px;
330    line-height: 1.1;
331    border: none;
332    border-radius: 4px;
333}
334
335.wt-chart-box-f,
336.wt-chart-box-f .wt-chart-box-dropdown {
337    background: var(--sex-f-bg);
338    border: solid var(--sex-f-fg) thin;
339}
340
341.wt-chart-box-m,
342.wt-chart-box-m .wt-chart-box-dropdown {
343    background: var(--sex-m-bg);
344    border: solid var(--sex-m-fg) thin;
345}
346
347.wt-chart-box-u,
348.wt-chart-box-u .wt-chart-box-dropdown {
349    background: var(--sex-u-bg);
350    border: solid var(--sex-u-fg) thin;
351}
352
353.wt-chart-box-x,
354.wt-chart-box-x .wt-chart-box-dropdown {
355    background: var(--sex-x-bg);
356    border: solid var(--sex-x-fg) thin;
357}
358
359/* ====== Round Corners ======== */
360.block,
361.descriptionbox,
362.list_label,
363.list_label_wrap,
364.list_value,
365.list_value_wrap,
366.messagebox,
367.optionbox,
368.person0,
369.person1,
370.person2,
371.person3,
372.person4,
373.person5,
374#tabs {
375    margin: 4px;
376    padding: 4px;
377    border-radius: 4px;
378}
379
380:focus {
381    outline-style: none;
382}
383
384.flash-messages {
385    clear: both;
386    text-align: center;
387}
388
389dl {
390    margin: 0;
391}
392
393dt {
394    float: left;
395    font-weight: bold;
396    margin-right: 10px;
397}
398
399.button {
400    width: 60px;
401}
402
403.alpha_index {
404    color: #999;
405}
406
407.news_box:target,
408#gedcom_stats:target {
409    background-color: #ffc;
410}
411
412/* families tab person box */
413table.center {
414    margin-left: auto;
415    margin-right: auto;
416}
417
418.list_table {
419    margin: 0 auto;
420}
421
422.list_label,
423.list_label_wrap {
424    background-color: #ccc;
425    font-weight: bold;
426    text-align: center;
427}
428
429.list_value,
430.list_value_wrap {
431    background-color: #ddd;
432    vertical-align: top;
433}
434
435.list_label,
436.list_value {
437    white-space: nowrap;
438}
439
440.list_label_wrap,
441.list_value_wrap {
442    white-space: normal;
443}
444
445div.fact_SHARED_NOTE {
446    clear: both;
447}
448
449/* Table of genealogical facts */
450.wt-facts-table caption {
451    caption-side: top;
452}
453
454.wt-facts-table th {
455    background-color: #ccc;
456    border-radius: 4px;
457    text-align: center;
458    font-weight: normal;
459    min-width: 20%;
460}
461
462.wt-facts-table td {
463    border-radius: 4px;
464    background-color: #ddd;
465}
466
467.wt-facts-table .wt-sex-m > td {
468    background-color: var(--sex-m-bg);
469}
470
471.wt-facts-table .wt-sex-f > td {
472    background-color: var(--sex-f-bg);
473}
474
475.wt-facts-table .wt-sex-u > td {
476    background-color: var(--sex-u-bg);
477}
478
479.wt-facts-table .wt-sex-x > td {
480    background-color: var(--sex-x-bg);
481}
482
483.details_label {
484    font-weight: bold;
485}
486
487.date {
488    color: #337;
489}
490
491.label {
492    font-weight: bold;
493}
494
495.error {
496    color: #f00;
497    font-weight: bold;
498}
499
500.indent {
501    padding-left: 7px;
502}
503
504.parentdeath {
505    padding: 1px;
506}
507
508.journal_box {
509    padding: 3pt;
510    border: thin solid #aaa;
511    overflow: visible;
512}
513
514.news_box {
515    background-color: #ccc;
516    border-top: none;
517    padding: 0.25rem;
518}
519
520.news_title {
521    font-weight: bold;
522    font-size: 14px;
523}
524
525.news_date {
526    margin-bottom: 12px;
527}
528
529.current_day {
530    font-weight: bold;
531    font-size: 16px;
532}
533
534.cal_day {
535    font-weight: bold;
536}
537
538.rtl_cal_day {
539    color: #00f;
540    font-weight: bold;
541}
542
543#user-page h1 {
544    margin: 0.25em auto 0.6em;
545}
546
547.tvertline {
548    vertical-align: bottom;
549}
550
551#childbox {
552    padding: 5px;
553    position: absolute;
554    display: none;
555    text-align: start;
556    white-space: nowrap;
557    top: 20px;
558    left: 0;
559}
560
561.layout3 #childbox {
562    top: auto;
563    bottom: 20px;
564}
565
566.person0 {
567    background-color: #aaf;
568    vertical-align: top;
569}
570
571.person1 {
572    background-color: #afa;
573    vertical-align: top;
574}
575
576.person2 {
577    background-color: #faa;
578    vertical-align: top;
579}
580
581.person3 {
582    background-color: #55f;
583    vertical-align: top;
584}
585
586.person4 {
587    background-color: #f55;
588    vertical-align: top;
589}
590
591.person5 {
592    background-color: #5f5;
593    vertical-align: top;
594}
595
596.starredname {
597    text-decoration: underline;
598}
599
600.search_hit {
601    background-color: #ff0;
602}
603
604.descriptionbox {
605    font-weight: bold;
606    background-color: #ccc;
607    vertical-align: top;
608}
609
610.descriptionbox {
611    font-size: 14px;
612    background-color: #ccc;
613    vertical-align: top;
614    padding: 3px;
615}
616
617.optionbox {
618    background-color: #ddd;
619    color: #000;
620    vertical-align: top;
621    white-space: nowrap;
622    padding: 3px;
623}
624
625.red {
626    color: #f00;
627}
628
629.wt-associate-fact,
630.wt-relation-fact,
631.wt-historic-fact {
632    opacity: 0.8;
633}
634
635.messagebox {
636    background-color: #bce;
637}
638
639/* ---Pending edits--- */
640.wt-new {
641    outline: solid #00f 1px;
642}
643
644.wt-old {
645    outline: solid #f00 1px;
646}
647
648.nowrap {
649    white-space: nowrap;
650}
651
652.wrap {
653    white-space: normal;
654}
655
656.statistics-page {
657    text-align: center;
658}
659
660.gchart {
661    border: 0;
662}
663
664#facts_content dd {
665    float: left;
666    width: 70%;
667}
668
669.filtersH,
670.filtersF {
671    margin: 4px;
672}
673
674.filtersH img {
675    margin-bottom: 2px;
676}
677
678.list-charts {
679    text-align: center;
680}
681
682#place-hierarchy h2,
683#place-hierarchy h4 {
684    text-align: center;
685}
686
687.user_welcome_block table,
688.gedcom_block_block table {
689    margin: auto;
690}
691
692.user_welcome_block td,
693.gedcom_block_block td {
694    width: 33%;
695    text-align: center;
696    vertical-align: top;
697}
698
699/* ==== FAQ table styles ===== */
700table.faq {
701    background-color: #ddd;
702    margin: 5px 0 50px 5px;
703    width: 98%;
704}
705
706table.faq tr:nth-child(odd) td {
707    background-color: #eee;
708}
709
710div.faq_title {
711    background-color: #ddd;
712    margin: 1em 0;
713    padding: .25em;
714    font-weight: bold;
715    width: 98%;
716}
717
718div.faq_body {
719    clear: both;
720    padding: 0 1em;
721}
722
723.faq_top {
724    float: right;
725}
726
727#indi_note {
728    margin: 0 0 5px;
729}
730
731.indi_table {
732    clear: left;
733}
734
735#indi_note .fact_NOTE {
736    float: left;
737    margin: 0 5px 0 0;
738}
739
740#indi_note .fact_SOUR {
741    margin: 3px 0;
742}
743
744#indi_note .fact_SOUR a {
745    font-size: 100%;
746}
747
748#indi_note .fact_NOTE,
749#indi_note .fact_SOUR {
750    clear: both;
751}
752
753.odometer {
754    font-family: courier, monospace;
755    font-weight: bold;
756    background: #000;
757    color: #fff;
758}
759
760.upcoming_events_block button,
761.todays_events_block button {
762    margin: 0 20px;
763}
764
765/* Sidebar - Family navigator */
766.wt-family-navigator-dropdown {
767    background: #eee;
768}
769
770.wt-family-navigator-dropdown-heading {
771    font-weight: bold;
772    font-size: inherit;
773    color: inherit;
774}
775
776/* Sidebar - Descendants */
777#sb_content_descendancy {
778    margin-top: 5px;
779}
780
781#sb_desc_content {
782    margin-left: 3px;
783    font-size: 0.8em;
784}
785
786#sb_desc_content ul {
787    padding: 0;
788    margin: 0;
789}
790
791.sb_desc_indi_li {
792    list-style-type: none;
793}
794
795/* Individuals and Families */
796#sidebar-content-individuals,
797#sidebar-content-families {
798    margin-top: 5px;
799}
800
801.sb_indi_surname_li,
802.sb_fam_surname_li {
803    list-style-image: url(icons/plus.png);
804}
805
806.name_tree_div ul {
807    padding: 0;
808    margin: 0;
809}
810
811.name_tree_div li {
812    list-style: none;
813    margin: 0;
814    padding: 0;
815}
816
817/* Clippings */
818#sb_clippings_content ul {
819    padding: 0;
820    margin: 0;
821}
822
823#sb_clippings_content li {
824    list-style: none;
825    margin: 0;
826    padding: 0;
827    white-space: nowrap;
828}
829
830/* Stories module */
831.story_title {
832    padding-top: 12px;
833    font-size: 13px;
834    height: 32px;
835    font-weight: bold;
836}
837
838.story_body {
839    padding: 20px;
840    white-space: normal;
841}
842
843.story_edit {
844    padding: 12px;
845}
846
847/*-- Fan chart ---- */
848.fan_chart_menu {
849    background: #fff;
850    position: absolute;
851    display: none;
852    z-index: 100;
853}
854
855#fan_chart ul {
856    list-style-type: none;
857    margin: 0;
858}
859
860/* Lifespans chart */
861.wt-lifespans-subtitle {
862    text-align: center;
863}
864
865.wt-lifespans-scale {
866    white-space: nowrap;
867}
868
869.wt-lifespans-decade {
870    width: 70px;
871    height: 60px;
872    display: inline-block;
873    background-image: url(images/lifespan-decade.png);
874    background-position-y: bottom;
875    background-repeat: no-repeat;
876    background-size: 70px 37px;
877}
878
879.wt-lifespans-individuals {
880    background: #fafafa;
881}
882
883.wt-lifespans-individual {
884
885}
886
887.wt-lifespans-summary {
888    background: #ffffff;
889    border: thin solid #000;
890    z-index: 1;
891}
892
893.wt-lifespans-summary-link {
894    font-weight: bold;
895}
896
897/*-- timeline  --*/
898#timeline_chart {
899    position: relative;
900    top: 0;
901    left: 0;
902}
903
904/*-- Relationship ---- */
905.wt-relationship-chart .hline-text,
906.wt-relationship-chart .vline-text {
907    font-size: 12px;
908}
909
910/*
911 * Any element that is loaded dynamically has the class wt-ajax-load.
912 * We can provide a "loading" placeholder for empty elements with this class.
913 */
914.wt-ajax-load:empty {
915    height: 32px;
916    background: url(images/loading-32x32.gif) no-repeat 50% 50%;
917}
918
919/*
920 * Default icons are provided by FontAwesome.
921 */
922.wt-icon-anniversary {
923}
924
925.wt-icon-arrow-down {
926}
927
928a > .wt-icon-arrow-down:hover {
929}
930
931.wt-icon-arrow-left {
932}
933
934a > .wt-icon-arrow-left:hover {
935}
936
937.wt-icon-arrow-right {
938}
939
940a > .wt-icon-arrow-right:hover {
941}
942
943.wt-icon-arrow-up {
944}
945
946a > .wt-icon-arrow-up:hover {
947}
948
949.wt-icon-bing-maps {
950}
951
952.wt-icon-calendar {
953}
954
955.wt-icon-collapse {
956}
957
958.wt-icon-coordinates {
959}
960
961.wt-icon-copy {
962}
963
964.wt-icon-delete {
965}
966
967.wt-icon-edit {
968}
969
970.wt-icon-expand {
971}
972
973.wt-icon-family {
974}
975
976.wt-icon-google-maps {
977}
978
979.wt-icon-help {
980}
981
982.wt-icon-individual {
983}
984
985.wt-icon-keyboard {
986}
987
988.wt-icon-media {
989}
990
991.wt-icon-note {
992}
993
994.wt-icon-openstreetmap {
995}
996
997.wt-icon-preferences {
998}
999
1000.wt-icon-reorder {
1001}
1002
1003.wt-icon-repository {
1004}
1005
1006.wt-icon-sex-f {
1007    color: var(--sex-f-fg);
1008}
1009
1010.wt-icon-sex-m {
1011    color: var(--sex-m-fg);
1012}
1013
1014.wt-icon-sex-u {
1015    color: var(--sex-u-fg);
1016}
1017
1018.wt-icon-sex-x {
1019    color: var(--sex-u-fg);
1020}
1021
1022.wt-icon-source {
1023}
1024
1025.wt-icon-submitter {
1026}
1027
1028.wt-icon-warning {
1029}
1030
1031.wt-icon-zoom-in {
1032}
1033
1034.wt-icon-zoom-out {
1035}
1036
1037/* Miscellaneous images */
1038.icon-cfamily {
1039    content: url(fab/images/cfamily.png);
1040}
1041
1042.icon-childless {
1043    content: url(images/childless.png);
1044}
1045
1046.icon-children {
1047    content: url(images/children.png);
1048}
1049
1050.icon-edit_indi {
1051    content: url(fab/images/edit_indi.png);
1052}
1053
1054.icon-fam-list {
1055    content: url(fab/images/sfamily.png);
1056}
1057
1058.icon-indi-list {
1059    content: url(fab/images/indis.png);
1060}
1061
1062.icon-loading-small {
1063    content: url(images/indicator.gif);
1064}
1065
1066.icon-minus {
1067    content: url(icons/minus.png);
1068}
1069
1070.icon-mypage {
1071    content: url(fab/images/mypage.png);
1072}
1073
1074.icon-pin-in {
1075    content: url(fab/images/pin-in.png);
1076}
1077
1078.icon-pin-out {
1079    content: url(fab/images/pin-out.png);
1080}
1081
1082.icon-plus {
1083    content: url(icons/plus.png);
1084}
1085
1086.icon-resn-confidential {
1087    content: url(images/resn_confidential.png);
1088}
1089
1090.icon-resn-locked {
1091    content: url(images/resn_locked.png);
1092}
1093
1094.icon-resn-none {
1095    content: url(images/resn_none.png);
1096}
1097
1098.icon-resn-privacy {
1099    content: url(images/resn_privacy.png);
1100}
1101
1102.icon-rings {
1103    content: url(images/rings.png);
1104}
1105
1106.icon-selected {
1107    content: url(fab/images/selected.png);
1108}
1109
1110/* Silhouettes on charts */
1111.icon-silhouette-f {
1112    content: url(fab/images/silhouette_female_small.png);
1113}
1114
1115.icon-silhouette-m {
1116    content: url(fab/images/silhouette_male_small.png);
1117}
1118
1119.icon-silhouette-u,
1120.icon-silhouette-x {
1121    content: url(fab/images/silhouette_unknown_small.png);
1122}
1123
1124.menu-language li {
1125    text-align: left; /* The language menu is always LTR, even on RTL pages */
1126}
1127
1128.menu-theme li {
1129    text-align: left; /* The theme menu is always LTR, even on RTL pages */
1130}
1131
1132.icon-indis {
1133    content: url(fab/images/indis.png);
1134}
1135
1136.icon-patriarch {
1137    content: url(fab/images/patriarch.png);
1138}
1139
1140.icon-pedigree {
1141    content: url(fab/images/pedigree.png);
1142}
1143
1144.icon-sfamily {
1145    content: url(fab/images/sfamily.png);
1146}
1147
1148.icon-user_add {
1149    content: url(fab/images/user_add.png);
1150}
1151
1152/* Census assistant */
1153.wt-census-assistant-form-control:focus {
1154    min-width: 12rem;
1155}
1156
1157/* Some blocks show a reduced version on the right-hand side. */
1158.wt-side-blocks .wt-side-block-optional {
1159    display: none !important;
1160}
1161
1162/* my page chart enhancements */
1163.wt-block-content-charts {
1164    overflow: auto;
1165}
1166
1167/* Some charts are wider than the page. */
1168.wt-chart {
1169    overflow-x: auto;
1170    overflow-y: hidden;
1171}
1172
1173/* Some menus (e.g. languages) can be longer than a page */
1174.dropdown-menu {
1175    max-height: 30rem;
1176    overflow-x: hidden;
1177}
1178
1179/* Forms */
1180.col-form-label {
1181    font-weight: bold;
1182}
1183