xref: /webtrees/resources/css/fab.css (revision e2cc95c42d081c6b0af1e168930a0d69464e8221)
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/*
905 * Any element that is loaded dynamically has the class wt-ajax-load.
906 * We can provide a "loading" placeholder for empty elements with this class.
907 */
908.wt-ajax-load:empty {
909    height: 32px;
910    background: url(images/loading-32x32.gif) no-repeat 50% 50%;
911}
912
913/*
914 * Default icons are provided by FontAwesome.
915 */
916.wt-icon-anniversary {
917}
918
919.wt-icon-arrow-down {
920}
921
922a > .wt-icon-arrow-down:hover {
923}
924
925.wt-icon-arrow-left {
926}
927
928a > .wt-icon-arrow-left:hover {
929}
930
931.wt-icon-arrow-right {
932}
933
934a > .wt-icon-arrow-right:hover {
935}
936
937.wt-icon-arrow-up {
938}
939
940a > .wt-icon-arrow-up:hover {
941}
942
943.wt-icon-bing-maps {
944}
945
946.wt-icon-calendar {
947}
948
949.wt-icon-collapse {
950}
951
952.wt-icon-coordinates {
953}
954
955.wt-icon-copy {
956}
957
958.wt-icon-delete {
959}
960
961.wt-icon-edit {
962}
963
964.wt-icon-expand {
965}
966
967.wt-icon-family {
968}
969
970.wt-icon-google-maps {
971}
972
973.wt-icon-help {
974}
975
976.wt-icon-individual {
977}
978
979.wt-icon-keyboard {
980}
981
982.wt-icon-media {
983}
984
985.wt-icon-note {
986}
987
988.wt-icon-openstreetmap {
989}
990
991.wt-icon-preferences {
992}
993
994.wt-icon-reorder {
995}
996
997.wt-icon-repository {
998}
999
1000.wt-icon-sex-f {
1001    color: var(--sex-f-fg);
1002}
1003
1004.wt-icon-sex-m {
1005    color: var(--sex-m-fg);
1006}
1007
1008.wt-icon-sex-u {
1009    color: var(--sex-u-fg);
1010}
1011
1012.wt-icon-sex-x {
1013    color: var(--sex-u-fg);
1014}
1015
1016.wt-icon-source {
1017}
1018
1019.wt-icon-submitter {
1020}
1021
1022.wt-icon-warning {
1023}
1024
1025.wt-icon-zoom-in {
1026}
1027
1028.wt-icon-zoom-out {
1029}
1030
1031/* Miscellaneous images */
1032.icon-cfamily {
1033    content: url(fab/images/cfamily.png);
1034}
1035
1036.icon-childless {
1037    content: url(images/childless.png);
1038}
1039
1040.icon-children {
1041    content: url(images/children.png);
1042}
1043
1044.icon-edit_indi {
1045    content: url(fab/images/edit_indi.png);
1046}
1047
1048.icon-fam-list {
1049    content: url(fab/images/sfamily.png);
1050}
1051
1052.icon-indi-list {
1053    content: url(fab/images/indis.png);
1054}
1055
1056.icon-loading-small {
1057    content: url(images/indicator.gif);
1058}
1059
1060.icon-minus {
1061    content: url(icons/minus.png);
1062}
1063
1064.icon-mypage {
1065    content: url(fab/images/mypage.png);
1066}
1067
1068.icon-pin-in {
1069    content: url(fab/images/pin-in.png);
1070}
1071
1072.icon-pin-out {
1073    content: url(fab/images/pin-out.png);
1074}
1075
1076.icon-plus {
1077    content: url(icons/plus.png);
1078}
1079
1080.icon-resn-confidential {
1081    content: url(images/resn_confidential.png);
1082}
1083
1084.icon-resn-locked {
1085    content: url(images/resn_locked.png);
1086}
1087
1088.icon-resn-none {
1089    content: url(images/resn_none.png);
1090}
1091
1092.icon-resn-privacy {
1093    content: url(images/resn_privacy.png);
1094}
1095
1096.icon-rings {
1097    content: url(images/rings.png);
1098}
1099
1100.icon-selected {
1101    content: url(fab/images/selected.png);
1102}
1103
1104/* Silhouettes on charts */
1105.icon-silhouette-f {
1106    content: url(fab/images/silhouette_female_small.png);
1107}
1108
1109.icon-silhouette-m {
1110    content: url(fab/images/silhouette_male_small.png);
1111}
1112
1113.icon-silhouette-u,
1114.icon-silhouette-x {
1115    content: url(fab/images/silhouette_unknown_small.png);
1116}
1117
1118.menu-language li {
1119    text-align: left; /* The language menu is always LTR, even on RTL pages */
1120}
1121
1122.menu-theme li {
1123    text-align: left; /* The theme menu is always LTR, even on RTL pages */
1124}
1125
1126.icon-indis {
1127    content: url(fab/images/indis.png);
1128}
1129
1130.icon-patriarch {
1131    content: url(fab/images/patriarch.png);
1132}
1133
1134.icon-pedigree {
1135    content: url(fab/images/pedigree.png);
1136}
1137
1138.icon-sfamily {
1139    content: url(fab/images/sfamily.png);
1140}
1141
1142.icon-user_add {
1143    content: url(fab/images/user_add.png);
1144}
1145
1146/* Census assistant */
1147.wt-census-assistant-form-control:focus {
1148    min-width: 12rem;
1149}
1150
1151/* Some blocks show a reduced version on the right-hand side. */
1152.wt-side-blocks .wt-side-block-optional {
1153    display: none !important;
1154}
1155
1156/* my page chart enhancements */
1157.wt-block-content-charts {
1158    overflow: auto;
1159}
1160
1161/* Some charts are wider than the page. */
1162.wt-chart {
1163    overflow-x: auto;
1164    overflow-y: hidden;
1165}
1166
1167/* Some menus (e.g. languages) can be longer than a page */
1168.dropdown-menu {
1169    max-height: 30rem;
1170    overflow-x: hidden;
1171}
1172
1173/* Forms */
1174.col-form-label {
1175    font-weight: bold;
1176}
1177