xref: /webtrees/resources/css/fab.css (revision 4ff0652c9f716485ce1866f88c40897142051b8b)
1/**
2 * webtrees: online genealogy
3 * Copyright (C) 2021 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#indi_main_blocks,
375#tabs {
376    margin: 4px;
377    padding: 4px;
378    border-radius: 4px;
379}
380
381:focus {
382    outline-style: none;
383}
384
385.flash-messages {
386    clear: both;
387    text-align: center;
388}
389
390dl {
391    margin: 0;
392}
393
394dt {
395    float: left;
396    font-weight: bold;
397    margin-right: 10px;
398}
399
400.button {
401    width: 60px;
402}
403
404.alpha_index {
405    color: #999;
406}
407
408.news_box:target,
409#gedcom_stats:target {
410    background-color: #ffc;
411}
412
413/* families tab person box */
414table.center {
415    margin-left: auto;
416    margin-right: auto;
417}
418
419.list_table {
420    margin: 0 auto;
421}
422
423.list_label,
424.list_label_wrap {
425    background-color: #ccc;
426    font-weight: bold;
427    text-align: center;
428}
429
430.list_value,
431.list_value_wrap {
432    background-color: #ddd;
433    vertical-align: top;
434}
435
436.list_label,
437.list_value {
438    white-space: nowrap;
439}
440
441.list_label_wrap,
442.list_value_wrap {
443    white-space: normal;
444}
445
446div.fact_SHARED_NOTE {
447    clear: both;
448}
449
450/* Table of genealogical facts */
451.wt-facts-table caption {
452    caption-side: top;
453}
454
455.wt-facts-table th {
456    background-color: #ccc;
457    border-radius: 4px;
458    text-align: center;
459    font-weight: normal;
460    min-width: 20%;
461}
462
463.wt-facts-table td {
464    border-radius: 4px;
465    background-color: #ddd;
466}
467
468.wt-facts-table .wt-sex-m > td {
469    background-color: var(--sex-m-bg);
470}
471
472.wt-facts-table .wt-sex-f > td {
473    background-color: var(--sex-f-bg);
474}
475
476.wt-facts-table .wt-sex-u > td {
477    background-color: var(--sex-u-bg);
478}
479
480.wt-facts-table .wt-sex-x > td {
481    background-color: var(--sex-x-bg);
482}
483
484.details_label {
485    font-weight: bold;
486}
487
488.date {
489    color: #337;
490}
491
492.label {
493    font-weight: bold;
494}
495
496.error {
497    color: #f00;
498    font-weight: bold;
499}
500
501.indent {
502    padding-left: 7px;
503}
504
505.parentdeath {
506    padding: 1px;
507}
508
509.journal_box {
510    padding: 3pt;
511    border: thin solid #aaa;
512    overflow: visible;
513}
514
515.news_box {
516    background-color: #ccc;
517    border-top: none;
518    padding: 0.25rem;
519}
520
521.news_title {
522    font-weight: bold;
523    font-size: 14px;
524}
525
526.news_date {
527    margin-bottom: 12px;
528}
529
530.current_day {
531    font-weight: bold;
532    font-size: 16px;
533}
534
535.cal_day {
536    font-weight: bold;
537}
538
539.rtl_cal_day {
540    color: #00f;
541    font-weight: bold;
542}
543
544#user-page h1 {
545    margin: 0.25em auto 0.6em;
546}
547
548.tvertline {
549    vertical-align: bottom;
550}
551
552#childbox {
553    padding: 5px;
554    position: absolute;
555    display: none;
556    text-align: start;
557    white-space: nowrap;
558    top: 20px;
559    left: 0;
560}
561
562.layout3 #childbox {
563    top: auto;
564    bottom: 20px;
565}
566
567.person0 {
568    background-color: #aaf;
569    vertical-align: top;
570}
571
572.person1 {
573    background-color: #afa;
574    vertical-align: top;
575}
576
577.person2 {
578    background-color: #faa;
579    vertical-align: top;
580}
581
582.person3 {
583    background-color: #55f;
584    vertical-align: top;
585}
586
587.person4 {
588    background-color: #f55;
589    vertical-align: top;
590}
591
592.person5 {
593    background-color: #5f5;
594    vertical-align: top;
595}
596
597.starredname {
598    text-decoration: underline;
599}
600
601.search_hit {
602    background-color: #ff0;
603}
604
605.descriptionbox {
606    font-weight: bold;
607    background-color: #ccc;
608    vertical-align: top;
609}
610
611.descriptionbox {
612    font-size: 14px;
613    background-color: #ccc;
614    vertical-align: top;
615    padding: 3px;
616}
617
618.optionbox {
619    background-color: #ddd;
620    color: #000;
621    vertical-align: top;
622    white-space: nowrap;
623    padding: 3px;
624}
625
626.red {
627    color: #f00;
628}
629
630.wt-associate-fact,
631.wt-relation-fact,
632.wt-historic-fact {
633    opacity: 0.8;
634}
635
636.messagebox {
637    background-color: #bce;
638}
639
640/* ---Pending edits--- */
641.wt-new {
642    outline: solid #00f 1px;
643}
644
645.wt-old {
646    outline: solid #f00 1px;
647}
648
649.nowrap {
650    white-space: nowrap;
651}
652
653.wrap {
654    white-space: normal;
655}
656
657.statistics-page {
658    text-align: center;
659}
660
661.gchart {
662    border: 0;
663}
664
665#facts_content dd {
666    float: left;
667    width: 70%;
668}
669
670.filtersH,
671.filtersF {
672    margin: 4px;
673}
674
675.filtersH img {
676    margin-bottom: 2px;
677}
678
679.list-charts {
680    text-align: center;
681}
682
683#place-hierarchy h2,
684#place-hierarchy h4 {
685    text-align: center;
686}
687
688.user_welcome_block table,
689.gedcom_block_block table {
690    margin: auto;
691}
692
693.user_welcome_block td,
694.gedcom_block_block td {
695    width: 33%;
696    text-align: center;
697    vertical-align: top;
698}
699
700/* ==== FAQ table styles ===== */
701table.faq {
702    background-color: #ddd;
703    margin: 5px 0 50px 5px;
704    width: 98%;
705}
706
707table.faq tr:nth-child(odd) td {
708    background-color: #eee;
709}
710
711div.faq_title {
712    background-color: #ddd;
713    margin: 1em 0;
714    padding: .25em;
715    font-weight: bold;
716    width: 98%;
717}
718
719div.faq_body {
720    clear: both;
721    padding: 0 1em;
722}
723
724.faq_top {
725    float: right;
726}
727
728#indi_note {
729    margin: 0 0 5px;
730}
731
732.indi_table {
733    clear: left;
734}
735
736#indi_note .fact_NOTE {
737    float: left;
738    margin: 0 5px 0 0;
739}
740
741#indi_note .fact_SOUR {
742    margin: 3px 0;
743}
744
745#indi_note .fact_SOUR a {
746    font-size: 100%;
747}
748
749#indi_note .fact_NOTE,
750#indi_note .fact_SOUR {
751    clear: both;
752}
753
754.odometer {
755    font-family: courier, monospace;
756    font-weight: bold;
757    background: #000;
758    color: #fff;
759}
760
761.upcoming_events_block button,
762.todays_events_block button {
763    margin: 0 20px;
764}
765
766/* Sidebar - Family navigator */
767.wt-family-navigator-dropdown {
768    background: #eee;
769}
770
771.wt-family-navigator-dropdown-heading {
772    font-weight: bold;
773    font-size: inherit;
774    color: inherit;
775}
776
777/* Sidebar - Descendants */
778#sb_content_descendancy {
779    margin-top: 5px;
780}
781
782#sb_desc_content {
783    margin-left: 3px;
784    font-size: 0.8em;
785}
786
787#sb_desc_content ul {
788    padding: 0;
789    margin: 0;
790}
791
792.sb_desc_indi_li {
793    list-style-type: none;
794}
795
796/* Individuals and Families */
797#sidebar-content-individuals,
798#sidebar-content-families {
799    margin-top: 5px;
800}
801
802.sb_indi_surname_li,
803.sb_fam_surname_li {
804    list-style-image: url(icons/plus.png);
805}
806
807.name_tree_div ul {
808    padding: 0;
809    margin: 0;
810}
811
812.name_tree_div li {
813    list-style: none;
814    margin: 0;
815    padding: 0;
816}
817
818/* Clippings */
819#sb_clippings_content ul {
820    padding: 0;
821    margin: 0;
822}
823
824#sb_clippings_content li {
825    list-style: none;
826    margin: 0;
827    padding: 0;
828    white-space: nowrap;
829}
830
831/* Stories module */
832.story_title {
833    padding-top: 12px;
834    font-size: 13px;
835    height: 32px;
836    font-weight: bold;
837}
838
839.story_body {
840    padding: 20px;
841    white-space: normal;
842}
843
844.story_edit {
845    padding: 12px;
846}
847
848/*-- Fan chart ---- */
849.fan_chart_menu {
850    background: #fff;
851    position: absolute;
852    display: none;
853    z-index: 100;
854}
855
856#fan_chart ul {
857    list-style-type: none;
858    margin: 0;
859}
860
861/* Lifespans chart */
862.wt-lifespans-subtitle {
863    text-align: center;
864}
865
866.wt-lifespans-scale {
867    white-space: nowrap;
868}
869
870.wt-lifespans-decade {
871    width: 70px;
872    height: 60px;
873    display: inline-block;
874    background-image: url(images/lifespan-decade.png);
875    background-position-y: bottom;
876    background-repeat: no-repeat;
877    background-size: 70px 37px;
878}
879
880.wt-lifespans-individuals {
881    background: #fafafa;
882}
883
884.wt-lifespans-individual {
885
886}
887
888.wt-lifespans-summary {
889    background: #ffffff;
890    border: thin solid #000;
891    z-index: 1;
892}
893
894.wt-lifespans-summary-link {
895    font-weight: bold;
896}
897
898/*-- timeline  --*/
899#timeline_chart {
900    position: relative;
901    top: 0;
902    left: 0;
903}
904
905/*-- Relationship ---- */
906.wt-relationship-chart .hline-text,
907.wt-relationship-chart .vline-text {
908    font-size: 12px;
909}
910
911/*
912 * Any element that is loaded dynamically has the class wt-ajax-load.
913 * We can provide a "loading" placeholder for empty elements with this class.
914 */
915.wt-ajax-load:empty {
916    height: 32px;
917    background: url(images/loading-32x32.gif) no-repeat 50% 50%;
918}
919
920/*
921 * Default icons are provided by FontAwesome.
922 */
923.wt-icon-anniversary {
924}
925
926.wt-icon-arrow-down {
927}
928
929a > .wt-icon-arrow-down:hover {
930}
931
932.wt-icon-arrow-left {
933}
934
935a > .wt-icon-arrow-left:hover {
936}
937
938.wt-icon-arrow-right {
939}
940
941a > .wt-icon-arrow-right:hover {
942}
943
944.wt-icon-arrow-up {
945}
946
947a > .wt-icon-arrow-up:hover {
948}
949
950.wt-icon-bing-maps {
951}
952
953.wt-icon-calendar {
954}
955
956.wt-icon-collapse {
957}
958
959.wt-icon-coordinates {
960}
961
962.wt-icon-copy {
963}
964
965.wt-icon-delete {
966}
967
968.wt-icon-edit {
969}
970
971.wt-icon-expand {
972}
973
974.wt-icon-family {
975}
976
977.wt-icon-google-maps {
978}
979
980.wt-icon-help {
981}
982
983.wt-icon-individual {
984}
985
986.wt-icon-keyboard {
987}
988
989.wt-icon-media {
990}
991
992.wt-icon-note {
993}
994
995.wt-icon-openstreetmap {
996}
997
998.wt-icon-preferences {
999}
1000
1001.wt-icon-reorder {
1002}
1003
1004.wt-icon-repository {
1005}
1006
1007.wt-icon-sex-f {
1008    color: var(--sex-f-fg);
1009}
1010
1011.wt-icon-sex-m {
1012    color: var(--sex-m-fg);
1013}
1014
1015.wt-icon-sex-u {
1016    color: var(--sex-u-fg);
1017}
1018
1019.wt-icon-sex-x {
1020    color: var(--sex-u-fg);
1021}
1022
1023.wt-icon-source {
1024}
1025
1026.wt-icon-submitter {
1027}
1028
1029.wt-icon-warning {
1030}
1031
1032.wt-icon-zoom-in {
1033}
1034
1035.wt-icon-zoom-out {
1036}
1037
1038/* Miscellaneous images */
1039.icon-cfamily {
1040    content: url(fab/images/cfamily.png);
1041}
1042
1043.icon-childless {
1044    content: url(images/childless.png);
1045}
1046
1047.icon-children {
1048    content: url(images/children.png);
1049}
1050
1051.icon-edit_indi {
1052    content: url(fab/images/edit_indi.png);
1053}
1054
1055.icon-fam-list {
1056    content: url(fab/images/sfamily.png);
1057}
1058
1059.icon-indi-list {
1060    content: url(fab/images/indis.png);
1061}
1062
1063.icon-loading-small {
1064    content: url(images/indicator.gif);
1065}
1066
1067.icon-minus {
1068    content: url(icons/minus.png);
1069}
1070
1071.icon-mypage {
1072    content: url(fab/images/mypage.png);
1073}
1074
1075.icon-pin-in {
1076    content: url(fab/images/pin-in.png);
1077}
1078
1079.icon-pin-out {
1080    content: url(fab/images/pin-out.png);
1081}
1082
1083.icon-plus {
1084    content: url(icons/plus.png);
1085}
1086
1087.icon-resn-confidential {
1088    content: url(images/resn_confidential.png);
1089}
1090
1091.icon-resn-locked {
1092    content: url(images/resn_locked.png);
1093}
1094
1095.icon-resn-none {
1096    content: url(images/resn_none.png);
1097}
1098
1099.icon-resn-privacy {
1100    content: url(images/resn_privacy.png);
1101}
1102
1103.icon-rings {
1104    content: url(images/rings.png);
1105}
1106
1107.icon-selected {
1108    content: url(fab/images/selected.png);
1109}
1110
1111/* Silhouettes on charts */
1112.icon-silhouette-f {
1113    content: url(fab/images/silhouette_female_small.png);
1114}
1115
1116.icon-silhouette-m {
1117    content: url(fab/images/silhouette_male_small.png);
1118}
1119
1120.icon-silhouette-u,
1121.icon-silhouette-x {
1122    content: url(fab/images/silhouette_unknown_small.png);
1123}
1124
1125.menu-language li {
1126    text-align: left; /* The language menu is always LTR, even on RTL pages */
1127}
1128
1129.menu-theme li {
1130    text-align: left; /* The theme menu is always LTR, even on RTL pages */
1131}
1132
1133.icon-indis {
1134    content: url(fab/images/indis.png);
1135}
1136
1137.icon-patriarch {
1138    content: url(fab/images/patriarch.png);
1139}
1140
1141.icon-pedigree {
1142    content: url(fab/images/pedigree.png);
1143}
1144
1145.icon-sfamily {
1146    content: url(fab/images/sfamily.png);
1147}
1148
1149.icon-user_add {
1150    content: url(fab/images/user_add.png);
1151}
1152
1153/* Census assistant */
1154.wt-census-assistant-form-control:focus {
1155    min-width: 12rem;
1156}
1157
1158/* Some blocks show a reduced version on the right-hand side. */
1159.wt-side-blocks .wt-side-block-optional {
1160    display: none !important;
1161}
1162
1163/* my page chart enhancements */
1164.wt-block-content-charts {
1165    overflow: auto;
1166}
1167
1168/* Some charts are wider than the page. */
1169.wt-chart {
1170    overflow-x: auto;
1171    overflow-y: hidden;
1172}
1173
1174/* Some menus (e.g. languages) can be longer than a page */
1175.dropdown-menu {
1176    max-height: 30rem;
1177    overflow-x: hidden;
1178}
1179
1180/* Forms */
1181.col-form-label {
1182    font-weight: bold;
1183}
1184