]> git.openstreetmap.org Git - rails.git/blob - app/assets/stylesheets/common.scss
Merge remote-tracking branch 'upstream/pull/2695'
[rails.git] / app / assets / stylesheets / common.scss
1 @import "parameters";
2 @import "bootstrap";
3
4 /* Styles common to large and small screens */
5
6 .fillL { background-color: white; }
7
8 /* Default rules for the body of every page */
9
10 body {
11   font-family: 'Helvetica Neue',Arial,sans-serif;
12   font-size: $typeheight;
13   line-height: 1.6666;
14   color: #222;
15   background-color: #fff;
16   margin: 0px;
17   padding: 0px;
18   text-align: left;
19   height: 100%;
20 }
21
22 p > img {
23   width: auto;
24   max-width: 100%;
25 }
26
27 small, aside {
28   font-size: 12px;
29 }
30
31 #container { position: relative; }
32
33 .small_icon {
34   vertical-align: middle;
35   margin-right: $lineheight/4;
36 }
37
38 [dir=rtl] { /* no-r2 */ text-align: right; }
39
40 [dir=ltr] { /* no-r2 */ text-align: left; }
41
42 /* Rules for icons */
43
44 .icon {
45   display: inline-block;
46   vertical-align: top;
47   width: 20px;
48   height: 20px;
49   background: transparent image-url("sprite.png") no-repeat 0 0;
50   background-image: image-url("sprite.svg");
51   text-indent: -9999px;
52   overflow: hidden;
53 }
54
55 .icon.search      { /* no-r2 */ background-position: 0 0; }
56 .icon.donate      { /* no-r2 */ background-position: -20px 0; }
57 .icon.zoomin      { /* no-r2 */ background-position: -40px 0; }
58 .icon.zoomout     { /* no-r2 */ background-position: -60px 0; }
59 .icon.geolocate   { /* no-r2 */ background-position: -80px 0; }
60 .active .icon.geolocate   { /* no-r2 */ background-position: -80px -20px; }
61 .icon.layers      { /* no-r2 */ background-position: -100px 0; }
62 .icon.key         { /* no-r2 */ background-position: -120px 0; }
63 .icon.share       { /* no-r2 */ background-position: -140px 0; }
64 .icon.clipboard   { /* no-r2 */ background-position: -160px 0; }
65 .icon.link        { /* no-r2 */ background-position: -180px 0; }
66 .icon.close       { /* no-r2 */ background-position: -200px 0; }
67 .close-wrap:hover .icon.close,
68 .icon.close:hover { /* no-r2 */ background-position: -200px -20px; }
69 .icon.check       { /* no-r2 */ background-position: -220px 0; }
70 .icon.note        { /* no-r2 */ background-position: -240px 0; }
71 .icon.note.grey   { /* no-r2 */ background-position: -240px -20px; }
72 .icon.query       { /* no-r2 */ background-position: -260px 0; }
73
74 /* Rules for links */
75
76 a {
77   color: #24d;
78   text-decoration: none;
79   outline: 0;
80   &:hover {
81     text-decoration: underline;
82   }
83 }
84
85 /* Utility for de-emphasizing content */
86
87 .deemphasize {
88   color: $darkgrey;
89   a {
90     color: $blue;
91   }
92 }
93
94 .text-muted a {
95   color: $blue;
96 }
97
98 /* Rules for the header */
99
100 #menu-icon {
101   display: none !important;
102   float: right;
103   background: image-url("menu-icon.png") no-repeat;
104   background-size: 30px 30px;
105   display: block;
106   width: 30px;
107   height: 30px;
108   margin: 14px 10px 0 0;
109   opacity: 0.6;
110 }
111
112 header {
113   height: $headerHeight;
114   position: relative;
115   z-index: 1001;
116   font-size: 14px;
117
118   h1, nav, nav > ul, nav > ul > li {
119     display: inline-block;
120   }
121
122   > * {
123     height: 100%;
124     padding: $lineheight/2;
125   }
126
127   h1, nav.primary {
128     float: left;
129   }
130
131   a, a:hover {
132     text-decoration: none;
133   }
134
135   img.logo {
136     width: 30px;
137     height: 30px;
138     margin-top: -2px;
139     vertical-align: middle;
140   }
141
142   h1 {
143     font-size: 18px;
144     font-weight: 600;
145     line-height: 1.2;
146     margin: 0;
147     padding-top: 15px;
148
149     a {
150       color: #000;
151     }
152
153     a:hover {
154       color: #000;
155     }
156   }
157
158   .btn {
159     font-size: 14px;
160   }
161 }
162
163
164 nav.primary {
165   .btn-outline-primary {
166     @include button-outline-variant($green, $white);
167   }
168
169   .disabled {
170     .btn-outline-primary {
171       color: $grey;
172       cursor: default;
173
174       .caret {
175         border-top-color: $grey;
176       }
177
178       &:hover {
179         background-color: lighten($green, 30%);
180       }
181     }
182   }
183
184   // Small tweaks to the toggle to stop the primary colour showing through
185   // when the menu is shown
186   .show > .btn-outline-primary.dropdown-toggle {
187     background-color: $green;
188     border-color: $green;
189
190     &:focus {
191       box-shadow: 0 0 0 0.2rem fade-out($green, 0.5);
192     }
193   }
194 }
195
196 nav.secondary {
197   position: absolute;
198   right: 0;
199
200   .nav-link {
201     padding: 0.2rem;
202     color: $darkgrey;
203   }
204
205   > ul li.current a {
206     color: darken($darkgrey, 25%);
207   }
208
209   .login-menu {
210     .btn-outline-secondary {
211       @include button-outline-variant($darkgrey);
212     }
213   }
214
215   .user-menu {
216     .btn-outline-secondary {
217       @include button-outline-variant($darkgrey, $darkgrey, white, $darkgrey);
218       border-color: $grey;
219       &:hover {
220         border-color: $grey;
221       }
222       &:focus {
223         background-color: white;
224         box-shadow: none;
225       }
226     }
227     &.show .btn-outline-secondary {
228       background-color: white;
229       &:focus {
230         box-shadow: none;
231       }
232     }
233   }
234
235   img.user_thumbnail_tiny {
236     border: 0;
237     border-radius: 3px;
238   }
239
240   #inboxanchor {
241     display: inline-block;
242     height: 25px;
243     margin: 3px 0 3px 3px;
244     background-color: lighten($grey, 10%);
245     line-height: 20px;
246     border-radius: 3;
247   }
248
249   .dropdown-menu {
250     .count-number {
251       font-size: 14px;
252     }
253   }
254 }
255
256 nav.primary, nav.secondary {
257   .dropdown-item {
258     &:hover, &:active {
259       background-color: $green;
260       color: white;
261     }
262   }
263 }
264
265 #compact-secondary-nav {
266   display: none;
267 }
268
269 body.compact-nav {
270   #compact-secondary-nav {
271     display: inline-block;
272   }
273   .compact-hide {
274     display: none;
275   }
276 }
277
278 /* Utility for styling notification numbers */
279
280 .count-number {
281   padding: 2px $lineheight/4;
282   border-radius: 2px;
283   background: lighten($green, 30%);
284   margin: 0 2px;
285   font-size: 11px;
286   color: #333;
287 }
288
289 /* Rules for the message shown in place of the map when javascript is disabled */
290
291 #noscript {
292   z-index: 20000000;
293   margin-left: 400px;
294   margin-top: 50px;
295 }
296
297 /* Rules for Leaflet maps */
298
299 .leaflet-control .control-button {
300   display: block;
301   height: 40px;
302   width: 40px;
303   background-color: #333;
304   background-color: rgba(0,0,0,.6);
305   border-radius: 4px 0 0 4px;
306   margin-bottom: 10px;
307   outline: none;
308
309   &:hover {
310     background-color: black;
311   }
312
313   &.disabled,
314   &.leaflet-disabled {
315     background-color: #333;
316     background-color: rgba(0,0,0,.5);
317     cursor: default;
318   }
319
320   &.active {
321     background-color: $vibrant-green;
322   }
323
324   .icon {
325     margin: 10px;
326   }
327 }
328
329 .leaflet-control .zoomin,
330 .control-layers .control-button {
331   margin-bottom: 0px;
332   border-radius: 4px 0 0 0;
333 }
334
335 .leaflet-control .zoomout,
336 .control-key .control-button {
337   margin-bottom: 0;
338   border-radius: 0;
339 }
340
341 .control-locate .control-button,
342 .control-share .control-button {
343   border-radius: 0 0 0 4px;
344 }
345
346 /* Rules for the sidebar and main map area */
347
348 .map-layout {
349   #content {
350     overflow: hidden;
351     position: absolute;
352     top: $headerHeight;
353     bottom: 0;
354     width: 100%;
355   }
356
357   #sidebar, #map {
358     position: relative;
359     height: 100%;
360     overflow-x: hidden;
361     overflow-y: auto;
362   }
363
364   #sidebar {
365     float: left;
366     width: $sidebarWidth;
367     background: #fff;
368
369     #sidebar_loader {
370       display: none;
371     }
372
373     > div {
374       position: relative;
375       float: left;
376       clear: both;
377       width: 100%;
378     }
379
380     h2 {
381       padding: $lineheight $lineheight $lineheight/2;
382       font-size: 1.5rem;
383     }
384
385     h3, h4 {
386       margin-top: $lineheight;
387       margin-bottom: $lineheight/2;
388       font-size: 1.25rem;
389     }
390
391     .close-wrap {
392       cursor: pointer;
393       position: absolute;
394       top: 0;
395       right: 0;
396       width: 60px;
397       height: 60px;
398
399       .icon.close {
400         pointer-events: none;
401         position: absolute;
402         right: 20px;
403         top: 20px;
404       }
405     }
406
407     .icon.close {
408       float: right;
409       cursor: pointer;
410     }
411
412     .flash {
413       padding: 15px;
414
415       picture {
416         margin-right: -25px;
417       }
418
419       div.message {
420         margin-left: 30px;
421       }
422     }
423   }
424
425   .overlay-sidebar #sidebar {
426     position: absolute;
427     z-index: 1000;
428     height: auto;
429     overflow: hidden;
430
431     #banner {
432       display: block;
433     }
434
435     .welcome {
436       display: none;
437
438       &.visible {
439         display: block;
440       }
441     }
442
443     #sidebar_content {
444       display: none;
445     }
446   }
447
448   .welcome {
449     display: none;
450     padding-bottom: 5px;
451
452     p {
453       padding: $lineheight/2 $lineheight $lineheight;
454       font-size: 110%;
455       font-weight: 300;
456     }
457
458     .button {
459       width: 50%;
460       float: left;
461       margin: 0;
462       border-radius: 0;
463       font-weight: normal;
464       padding: .6em;
465
466       &.learn-more {
467         border-right: 1px solid #fff;
468       }
469     }
470   }
471
472   #banner {
473     display: none;
474
475     img {
476       display: block;
477       width: $sidebarWidth;
478     }
479   }
480
481   #map {
482     height: 100%;
483     overflow: hidden;
484
485     &.query-active {
486       cursor: help;
487     }
488
489     &.query-disabled {
490       cursor: not-allowed;
491     }
492
493     .leaflet-marker-draggable {
494       cursor: move;
495     }
496   }
497
498   #map-ui {
499     display: none;
500     position: relative;
501     float: right;
502     width: 250px;
503     height: 100%;
504     background: white;
505     overflow: auto;
506
507     .section {
508       border-bottom: 1px solid $grey;
509       padding: 10px 20px;
510     }
511
512     a.close-button {
513       float: right;
514       padding:5px;
515       font-size:20px;
516       line-height:10px;
517       color:#222;
518       border:1px solid $grey;
519     }
520
521     .tooltip {
522       opacity: 1;
523       border: 1px solid $grey;
524       .tooltip-arrow {
525         border-top-color: $grey;
526       }
527     }
528   }
529 }
530
531 .layers-ui,
532 .share-ui {
533   li:last-child {
534     margin-bottom: 0;
535   }
536 }
537
538 .layers-ui {
539   .base-layers {
540     .leaflet-container {
541       width: 100%;
542       height: 50px;
543       cursor: pointer;
544     }
545
546     li  {
547       overflow: hidden;
548       border-radius: 3px;
549       border: 2px solid #fff;
550       margin-bottom: 8px;
551       position: relative;
552       transition: border-color 0.08s ease-in;
553
554       label {
555         position: absolute;
556         top: 0;
557         left: 0;
558         padding: 2px 6px;
559         border-bottom-right-radius: 3px;
560         cursor: pointer;
561         font-weight: 600;
562         font-size: 16px;
563         text-stroke: 2px #fff;
564         background: rgba(255,255,255,.9);
565         z-index: 1000;
566         input[type="radio"] {
567           display: none;
568         }
569       }
570
571       &.active { border-color: darken($green, 10%); }
572       &:hover {
573         border-color: $grey;
574         &.active { border-color: darken($green, 20%); }
575       }
576     }
577   }
578
579   .overlay-layers {
580     p {
581       font-size: 13px;
582       margin-bottom: 8px;
583     }
584     li.disabled { color: $darkgrey; }
585   }
586 }
587
588 .share-ui {
589   .share-tabs {
590     margin-bottom: 10px;
591
592     a {
593       color: #fff;
594       text-decoration: none;
595       background-color: $lightblue;
596       padding: 5px 10px;
597       border-right: 1px solid #fff;
598     }
599
600     a:first-child {
601       border-right: 1px solid #fff;
602       border-radius: 4px 0 0 4px;
603     }
604
605     a:last-child {
606       border-radius: 0 4px 4px 0;
607     }
608
609     a.active {
610       background-color: $blue;
611     }
612   }
613
614   .share-tab {
615     display: none;
616   }
617
618   .share-link {
619     input[type=text],
620     textarea {
621       width: 100%;
622       font-family: monospace;
623       font-size: small;
624       line-height: 1.3;
625     }
626   }
627
628   .share-image {
629     label {
630       margin-right: 10px;
631     }
632   }
633
634   #embed_html {
635     resize: vertical;
636   }
637
638   #mapnik_scale {
639     width: 100px;
640   }
641 }
642
643 .leaflet-top {
644   top: $lineheight/2 !important;
645   .leaflet-control {
646     margin-right: 0px !important;
647     margin-top: 0px !important;
648   }
649 }
650
651 .leaflet-popup-scrolled {
652   padding-right: $lineheight;
653   border-bottom: 0px !important;
654   border-top: 0px !important;
655 }
656
657 .leaflet-popup-content-wrapper {
658   border-radius: 4px !important;
659 }
660
661 /* Rules for attribution text under the main map shown on printouts */
662
663 #attribution {
664   display: none;
665
666   table {
667     width: 100%
668   }
669 }
670
671 .attribution_license,
672 .attribution_project {
673   text-align: left;
674 }
675
676 .attribution_notice {
677   text-align: center;
678 }
679
680 .donate-attr { color: darken($green, 10%) !important; }
681
682 /* Rules for the sidebar */
683
684 .sidebar_heading {
685   position: relative;
686   padding: $lineheight/2 $lineheight;
687   // background: $offwhite;
688   // border-bottom: 1px solid $grey;
689   > .close {
690     float: right;
691     margin-top: 2px;
692     cursor: pointer;
693   }
694 }
695
696 #browse_status {
697   input {
698     display: block;
699     margin-left: auto;
700     margin-right: auto;
701   }
702 }
703
704 #sidebar {
705   #sidebar_loader,
706   .search_more {
707     width: 100%;
708     margin: $lineheight auto;
709   }
710
711   .loader,
712   .load_more {
713     text-align: center;
714     margin: auto;
715     width: 40px;
716     display: block;
717   }
718 }
719
720 /* Rules for the search and direction forms */
721
722 header .search_forms,
723 .directions_form {
724   display: none;
725 }
726
727 .search_form,
728 .directions_form {
729   position: relative;
730   padding: $lineheight/2;
731   background-color: $lightgrey;
732
733   .query_wrapper {
734     position: relative;
735     overflow: hidden;
736     border-radius: 2px 0 0 2px;
737   }
738
739   input[type=text] {
740     width: 100%;
741     height: 30px;
742     transition: 300ms linear;
743   }
744
745   input[type=text].overflow {
746     border-right: none;
747     border-radius: 3px 0px 0px 3px;
748   }
749
750   input:focus {
751     outline: none;
752     box-shadow: 0px 0px 7px $vibrant-green;
753   }
754
755   input[type=submit].float {
756     float: right;
757     width: auto;
758     min-width: 0;
759     border-radius: 0 2px 2px 0;
760   }
761
762   input.error {
763     background-color: rgba($red, 0.4);
764   }
765
766   select {
767     /* this next line is to polyfill the vertical alignment of text within a select element,
768      * which is different between firefox and chrome. */
769     padding: 0.3em 0;
770   }
771
772   .query_options {
773     text-align: right;
774     font-size: 10px;
775     color: $blue;
776   }
777
778   .describe_location {
779     position: absolute;
780     top: 6px;
781     right: 6px;
782     font-size: 10px;
783     color: $blue;
784   }
785
786   .switch_link {
787     float: right;
788     width: auto;
789     min-width: 0;
790     margin-left: 6px;
791   }
792
793   img.button {
794     display: block;
795     width: 20px;
796     height: 20px;
797   }
798
799   span.force_width {
800     width: 100%;
801     padding-right: 25px;
802     display: block;
803   }
804
805   select.routing_engines {
806     min-height: 30px;
807     margin: 0px 0px 5px 25px;
808   }
809
810   input.routing_go {
811     min-width: 100px;
812     float: right;
813   }
814
815   div.header {
816     width: 100%;
817     height: 30px;
818   }
819
820   div.line {
821     width: 100%;
822     margin: 0px 0px 5px 0px;
823   }
824
825   div.loader_copy {
826     display: none;
827
828     img {
829       vertical-align: middle;
830     }
831   }
832
833   a.reverse_directions {
834     cursor: pointer;
835     margin: 0px 0px 5px 25px;
836   }
837 }
838
839 /* Rules for the map key which appears in the popout sidebar */
840
841 #mapkey {
842  .mapkey-table-key img {
843     display: block;
844     margin-left: auto;
845     margin-right: auto;
846   }
847 }
848
849 /* Rules for search sidebar */
850
851 #sidebar .search_results_entry {
852   ul li {
853     cursor: pointer;
854     &.selected { background: $list-highlight; }
855   }
856
857   .search_more .loader {
858     display: none;
859     width: 100%;
860   }
861 }
862
863 .search_results_error {
864   color: #f00;
865   padding: 10px 20px;
866 }
867
868 /* Rules for routing */
869
870 #sidebar_content>table {
871     padding: 5px 20px 10px 15px;
872     width: 100%;
873     border-collapse: separate;
874     border-spacing: 0;
875 }
876
877 div.direction {
878   background-image: image-url('routing-sprite.png');
879   width: 20px;
880   height: 20px;
881   background-repeat: no-repeat;
882 }
883 @for $i from 0 through 25 {
884 div.direction.i#{$i} { background-position: #{($i)*-20}px 0px; }
885 }
886
887 p#routing_summary {
888     padding: 0 $lineheight $lineheight/4;
889 }
890
891 td.instruction, td.distance {
892     padding-top: $lineheight/5;
893     padding-bottom: $lineheight/5;
894     border-bottom: 1px solid $grey;
895 }
896 td.distance {
897     color: $darkgrey;
898     text-align: right;
899     font-size: x-small;
900 }
901 tr.turn {
902     cursor: pointer;
903 }
904 tr.turn:hover {
905     background: $list-highlight;
906 }
907 .routing_engines, #route_from, #route_to { margin-left: 25px; }
908 .routing_marker { width: 15px; position: absolute; cursor: move; }
909
910 /* Rules for entity history */
911
912 #sidebar_content {
913   .browse_details {
914     position: relative;
915     border-bottom: $keyline;
916   }
917 }
918
919 .browse_status {
920   display: none;
921 }
922
923 /* Rules for the history sidebar */
924
925 #sidebar .changesets {
926   li {
927     cursor: pointer;
928
929     &.selected { background: $list-highlight; }
930     /* color is derived from changeset bbox fillColor in history.js */
931   }
932
933   .comments {
934     float: right;
935     color: $darkgrey;
936   }
937
938   .comments-0 {
939     opacity: 0.5;
940   }
941
942   .changeset_more .loader {
943     display: none;
944     width: 100%;
945   }
946 }
947
948 /* Rules for the browse sidebar */
949
950 #sidebar_content {
951   .browse-section {
952     padding: $lineheight/2 $lineheight;
953     border-bottom: 1px solid $grey;
954
955     h4:first-child {
956       margin-top: 0;
957       word-wrap: break-word;
958     }
959   }
960
961   .browse-section:last-of-type {
962     border-bottom: none;
963   }
964
965   .paginate {
966     float: right;
967     padding: 1px 6px;
968     border: 1px solid $lightgrey;
969     border-radius: 3px;
970   }
971
972   .browse-field {
973     margin-bottom: 10px;
974
975     h4 {
976       padding: 5px 0 5px 10px;
977       font-size: 12px;
978       border: 1px solid $grey;
979       border-radius: 4px 4px 0 0;
980       background-color: $offwhite;
981     }
982
983     p {
984       padding: 7px 10px;
985       font-size: 12px;
986       background-color: #FFF;
987       border: 1px solid $grey;
988       border-top: 0;
989       border-radius: 0 0 4px 4px;
990     }
991   }
992
993   .browse-tag-list {
994     background-color: $offwhite;
995     border: 1px solid $grey;
996     border-radius: 3px;
997     table-layout: fixed;
998     border-collapse: separate;
999     border-spacing: 0;
1000     width: 100%;
1001
1002     th, td {
1003       border-bottom: 1px solid $grey;
1004     }
1005
1006     tr:last-child th, tr:last-child td {
1007       border-bottom: 0;
1008     }
1009
1010     .browse-tag-k,
1011     .browse-tag-v {
1012       width: 50%;
1013       padding: 6px 10px;
1014       word-wrap: break-word;
1015       white-space: pre-wrap;
1016     }
1017
1018     .browse-tag-k {
1019       font-weight: 500;
1020       background-color: $offwhite;
1021     }
1022
1023     .browse-tag-v {
1024       border-left: 1px solid $grey;
1025       background-color: #fff;
1026     }
1027
1028     .colour-preview-box {
1029       float: right;
1030       width: 14px;
1031       height: 14px;
1032       margin: 4px 0px;
1033       border: 1px solid rgba(0, 0, 0, .1);
1034       // add color via inline css on element: background-color: <tag value>;
1035     }
1036   }
1037
1038   .note-comments li, .changeset-comments li {
1039     margin: $lineheight/2 0;
1040
1041     p {
1042       margin: 10px 6px 0 6px;
1043       line-height: 1.5;
1044     }
1045   }
1046
1047   .comments-header {
1048     float: left;
1049   }
1050
1051   .subscribe-buttons {
1052     float: left;
1053     margin: 18px 10px 10px;
1054     min-width: 80px;
1055   }
1056
1057   .subscribe-buttons input {
1058     font-size: 90%;
1059     line-height: 15px;
1060     min-height: 20px;
1061   }
1062
1063   span.action-button:hover {
1064     cursor: pointer;
1065     text-decoration: underline;
1066   }
1067
1068   .note-description {
1069     overflow: hidden;
1070     margin: 0 0 10px 10px;
1071   }
1072
1073   .query-intro p {
1074     padding: $lineheight $lineheight $lineheight/2;
1075   }
1076
1077   .query-results {
1078     display: none;
1079     padding-bottom: $lineheight/2;
1080
1081     h3 {
1082       padding: 0 $lineheight;
1083     }
1084
1085     ul {
1086       li {
1087         &.query-result {
1088           cursor: pointer;
1089         }
1090
1091         &.selected {
1092           background: $list-highlight;
1093         }
1094       }
1095     }
1096   }
1097 }
1098
1099 /* Rules for export sidebar */
1100
1101 .export_form {
1102   padding: $lineheight;
1103
1104   .export_area_inputs,
1105   .export_button {
1106     text-align: center;
1107   }
1108
1109   .export_area_inputs {
1110     margin-bottom: $lineheight/2;
1111     input[type="text"] {
1112       width: 80px;
1113       text-align: center;
1114       margin-bottom: 5px;
1115     }
1116   }
1117
1118   .export_boxy {
1119     background: $lightgrey;
1120     border: 1px solid $grey;
1121     border-radius: 3px;
1122
1123     #maxlat { margin-top: -1px; }
1124     #minlon {
1125       float: left;
1126       /* no-r2 */ margin-left: -1px;
1127     }
1128     #maxlon {
1129       float: right;
1130       /* no-r2 */ margin-right: -1px;
1131     }
1132     #minlat { margin-bottom: 0; }
1133   }
1134
1135   .export_bound {
1136     margin: $lineheight/4;
1137   }
1138
1139   .export_button {
1140     margin-top: $lineheight;
1141     margin-bottom: $lineheight;
1142   }
1143
1144   dl {
1145     padding-left: $lineheight/2;
1146     dd {
1147       margin-left: 0;
1148       margin-bottom: 10px;
1149     }
1150   }
1151 }
1152
1153 /* Rules for the routing sidebar */
1154
1155 #sidebar_content {
1156   #routing_credit {
1157     text-align: center;
1158     padding: 0.5em;
1159   }
1160 }
1161
1162 /* Rules for edit pages */
1163
1164 .site-edit {
1165   #content {
1166     position: absolute;
1167     top: $headerHeight;
1168     bottom: 0;
1169     width: 100%;
1170   }
1171
1172   #map {
1173     height: 100%;
1174     overflow: hidden;
1175   }
1176 }
1177
1178 /* Rules for non-map content pages */
1179
1180 .content-heading {
1181   background: $lightgrey;
1182 }
1183
1184 .content-inner {
1185   position: relative;
1186   max-width: 900px;
1187   margin: auto;
1188   padding: $lineheight;
1189 }
1190
1191 /* Overrides for pages that use new layout conventions */
1192
1193 .users-new,
1194 .users-create,
1195 .users-terms,
1196 .users-confirm {
1197   .content-heading .content-inner {
1198     height: 200px;
1199   }
1200 }
1201
1202 .header-illustration {
1203   background-position: 0 0;
1204   background-repeat: no-repeat;
1205   position: absolute;
1206   height: 200px;
1207   width: 100%;
1208   left: 0;
1209   bottom: 0;
1210
1211   &.new-user-main {
1212     background-image: image-url("sign-up-illustration.png");
1213   }
1214
1215   &.confirm-main {
1216     background-image: image-url("confirm-illustration.png");
1217   }
1218
1219   &.new-user-terms {
1220     background-image: image-url("terms-illustration.png");
1221   }
1222
1223   &.new-user-arm {
1224     height: 110px;
1225     width: 130px;
1226     left: 260px;
1227     top: 160px;
1228     background-image: image-url("sign-up-illustration-arm.png");
1229     z-index: 100;
1230   }
1231 }
1232
1233 [dir=rtl] .header-illustration {
1234   transform: scaleX(-1);
1235 }
1236
1237 #content.maximised {
1238   top: 0;
1239   left: 0;
1240   right: 0;
1241   bottom: 0;
1242   border: 0;
1243   z-index: 2000;
1244 }
1245
1246 /* Rules for small maps in content areas */
1247
1248 .content_map {
1249   height: 200px;
1250   border: 1px solid $grey;
1251   margin-bottom: $lineheight;
1252 }
1253
1254 @include media-breakpoint-up(md) {
1255   .content_map {
1256     height: 400px;
1257   }
1258 }
1259
1260 /* Rules for the new trace form */
1261
1262 #new_trace {
1263   input[type=text] {
1264     width: 50%;
1265     width: calc(100% - 150px);
1266     max-width: 500px;
1267   }
1268 }
1269
1270 /* Rules for the edit trace form */
1271
1272 .edit_trace {
1273   .standard-form-row p {
1274     margin-bottom: 0px;
1275   }
1276
1277   input[type=text] {
1278     width: 50%;
1279     width: calc(100% - 150px);
1280     max-width: 500px;
1281   }
1282 }
1283
1284 /* Rules for the user profile page */
1285
1286 #userinformation {
1287   min-height: 100px;
1288   .userinformation-inner {
1289     float: left;
1290   }
1291   .user-description {
1292     width: 100%;
1293     clear: both;
1294   }
1295 }
1296
1297 .admin-user-info small {
1298   margin-bottom: $lineheight/2;
1299   display: inline;
1300   margin-right: $lineheight;
1301 }
1302
1303 .contact-activity {
1304   margin-top: $lineheight;
1305   width: 100%;
1306 }
1307
1308 .activity-details p {
1309   margin-left: 70px;
1310   margin-bottom: 0;
1311 }
1312
1313 .users-show {
1314   // Silly exception; remove when user page is redesigned.
1315   .content-inner {
1316     max-width: none;
1317   }
1318   p#no_home_location {
1319     margin: $lineheight;
1320   }
1321   .user_thumbnail {
1322     margin-top: $lineheight/4;
1323     float: left;
1324   }
1325 }
1326
1327 /* Rules for the user map */
1328
1329 .content_map .leaflet-popup-content {
1330   margin: $lineheight/2;
1331   min-height: 50px;
1332 }
1333
1334 /* Rules for user popups on maps */
1335
1336 .user_popup {
1337   min-width: 200px;
1338   p {
1339     padding: 0 0 5px 0;
1340     margin-top: 0 0 0 60px;
1341     font-size: 12px;
1342   }
1343   img.user_thumbnail {
1344     float: left;
1345     margin: 0 $lineheight/2 0 0;
1346   }
1347 }
1348
1349 /* Rules for the user list */
1350
1351 #user_list {
1352   width: 100%;
1353
1354   tr {
1355     vertical-align: middle;
1356   }
1357
1358   p {
1359     margin-top: 0px;
1360     margin-bottom: 0px;
1361   }
1362 }
1363
1364 #user_list_actions {
1365   float: right;
1366   margin-top: $lineheight/2;
1367 }
1368
1369 /* Rules for the diary list page */
1370
1371 .diary_post {
1372   position: relative;
1373   padding-top: $lineheight;
1374   padding-bottom: $lineheight/2;
1375   border-top: 1px solid $grey;
1376
1377   &:first-of-type {
1378     margin-top: $lineheight/2;
1379   }
1380
1381   &.deleted {
1382     background-color: #fee;
1383   }
1384
1385   .post_heading {
1386     margin-bottom: $lineheight;
1387
1388     h2 {
1389       margin-top: 0;
1390       margin-bottom: $lineheight/2;
1391     }
1392   }
1393
1394   img.user_thumbnail {
1395     float: left;
1396   }
1397
1398   small.deemphasize {
1399     float: left;
1400     display: block;
1401   }
1402 }
1403
1404 .pagination {
1405   padding-top: $lineheight;
1406 }
1407
1408 /* Rules for the diary entry page */
1409
1410 .diary_entries {
1411   #map {
1412     position: relative;
1413     width: 90%;
1414     height: 400px;
1415     border: 1px solid $grey;
1416     display: none;
1417     margin-bottom: $lineheight;
1418   }
1419   #newcomment {
1420     border-top: 1px solid $grey;
1421     padding-top: $lineheight;
1422     margin-top: $lineheight/2;
1423   }
1424   .comments {
1425     max-width: 740px;
1426   }
1427   .diary-comment {
1428     border-top: 1px dashed $grey;
1429     padding-top: $lineheight/2;
1430     padding-bottom: $lineheight/2;
1431     &:first-child {
1432       margin-top: $lineheight/2;
1433       padding-top: $lineheight;
1434       border-top: 1px solid $grey;
1435     }
1436     &.deleted {
1437       background-color: #fee;
1438     }
1439     p {
1440       margin-bottom: $lineheight/2;
1441     }
1442     .comment-heading {
1443       margin-bottom: 0;
1444       margin-top: 0;
1445     }
1446   }
1447 }
1448
1449 .diary_entries-show img.user_thumbnail {
1450   float: left;
1451 }
1452
1453
1454 .diary-subscribe-buttons {
1455   position:relative;
1456   top: -30px;
1457   left: 130px;
1458 }
1459
1460 /* Rules for the log in page */
1461
1462 #login_auth_buttons {
1463   margin-bottom: 0;
1464 }
1465
1466 #login_auth_buttons li {
1467   float: left;
1468   padding: $lineheight/4 $lineheight/2;
1469 }
1470
1471 /* Rules for the account confirmation page */
1472
1473 .users-terms {
1474   .legale {
1475     border: 1px solid $grey;
1476     padding: $lineheight;
1477     margin-bottom: $lineheight;
1478     overflow: auto;
1479     height: 20em;
1480
1481     li {
1482       list-style: inherit;
1483     }
1484
1485     ol ol {
1486       list-style-type: lower-alpha;
1487     }
1488   }
1489
1490   #decline {
1491     background: $lightblue;
1492     &:hover {
1493       background: darken($lightblue, $hovercolor);
1494     }
1495   }
1496 }
1497
1498 /* Rules for the account settings page */
1499
1500 #accountForm .user_image {
1501   margin-bottom: 0;
1502 }
1503
1504 #accountForm #user_image {
1505   margin-left: 20px;
1506 }
1507
1508 #accountForm ul.accountImage-options {
1509   margin-left: 120px;
1510 }
1511
1512 .nohome .location {
1513   display: none;
1514 }
1515
1516 #homerow .message {
1517   display: none;
1518 }
1519
1520 .nohome .message {
1521   display: inline !important;
1522 }
1523
1524 /* Rules for the oauth settings page */
1525
1526 .oauth_clients .buttons .oauth-edit {
1527   border-radius: 2px 0 0 2px;
1528 }
1529
1530 .oauth_clients .buttons .oauth-delete {
1531   border-radius: 0 2px 2px 0;
1532 }
1533
1534 /* Rules for the oauth authorization page */
1535
1536 .oauth-authorize ul {
1537   list-style: none;
1538 }
1539
1540 /* Rules for messages pages */
1541
1542 .messages {
1543   input[type="submit"] {
1544     margin: auto;
1545   }
1546
1547   .inbox-row {
1548     background: $offwhite;
1549   }
1550
1551   .inbox-row-unread {
1552     background: #CBEEA7;
1553   }
1554
1555   .right {
1556     float: right;
1557   }
1558 }
1559
1560 .inbox-row .inbox-mark-read {
1561   display: none;
1562 }
1563
1564 .info-line {
1565   margin-bottom: $lineheight;
1566   padding: $lineheight/4 0px 4px 0px;
1567   border-bottom: 1px solid $grey;
1568
1569   form, form div {
1570     display: inline;
1571   }
1572 }
1573
1574 .info-line .user_thumbnail_tiny {
1575   vertical-align: middle;
1576 }
1577
1578 .inbox-sent {
1579   white-space: nowrap;
1580 }
1581
1582 .inbox-mark-unread,
1583 .inbox-mark-read,
1584 .inbox-delete {
1585   width: 1%;
1586 }
1587
1588 .inbox-row-unread .inbox-mark-unread {
1589   display: none;
1590 }
1591
1592 /* Rules for "flash" notice boxes shown at the top of the content area */
1593
1594 .flash {
1595   padding: $lineheight;
1596
1597   &.error {
1598     background-color: #ff7070;
1599   }
1600
1601   &.warning {
1602     background-color: #ffe0cc;
1603   }
1604
1605   &.notice {
1606     background-color: #CBEEA7;
1607   }
1608
1609   div.message {
1610     display: inline-block;
1611     margin-left: $lineheight / 2;
1612     vertical-align: middle;
1613
1614     p {
1615       margin-top: $lineheight * 0.5;
1616       margin-bottom: $lineheight * 0.5;
1617
1618       &:first-child {
1619         margin-top: 0px;
1620       }
1621
1622       &:last-child {
1623         margin-bottom: 0px;
1624       }
1625     }
1626   }
1627 }
1628
1629 /* Rules for highlighting fields with rails validation errors */
1630
1631 .formError {
1632   display: inline-block;
1633   padding: 5px 10px;
1634   margin-top: 5px;
1635   border-radius: 4px;
1636   font-size: 12px;
1637   color: #fff;
1638   background-color: #ff7070;
1639 }
1640
1641 /* Rules for rails validation error boxes */
1642
1643 #errorExplanation {
1644   width: 400px;
1645   border: 2px solid #ff7070;
1646   padding: 0 $lineheight/2;
1647   margin-bottom: $lineheight;
1648   background-color: #f0f0f0;
1649
1650   h2 {
1651     margin: 0 -10px 10px -10px;
1652     padding: $lineheight/4 $lineheight/4 $lineheight/4 15px;
1653     font-weight: bold;
1654     font-size: 12px;
1655     background-color: #c00;
1656     color: #fff;
1657     text-align: left;
1658   }
1659
1660   p {
1661     color: #333;
1662     margin-bottom: 0px;
1663     padding: $lineheight/4;
1664   }
1665 }
1666
1667 /* Rules for forms */
1668
1669 .standard-form {
1670   fieldset {
1671     margin-bottom: $lineheight;
1672   }
1673   label.standard-label {
1674     display: block;
1675     margin-bottom: $lineheight/4;
1676     font-size: $typeheight;
1677     font-weight: bold;
1678     line-height: 1.5;
1679   }
1680   label.standard-label.secondary {
1681     display: inline-block;
1682     font-weight: normal;
1683   }
1684   .form-help {
1685     font-weight: normal;
1686   }
1687   .form-column {
1688     float: left;
1689     margin-right: 20px;
1690   }
1691   .form-divider {
1692     margin-top: $lineheight;
1693     padding-top: $lineheight;
1694     border-top: 1px solid $lightgrey;
1695   }
1696   .horizontal-list .standard-form-row {
1697     float: left;
1698     padding-right: 10px;
1699   }
1700   .standard-form-row {
1701     margin-bottom: $lineheight/2;
1702   }
1703   .form-list {
1704     margin-bottom: 0;
1705   }
1706   .form-list li {
1707     margin-bottom: 5px;
1708     list-style-type: none;
1709   }
1710   input[type="checkbox"],
1711   input[type="radio"] {
1712     float: left;
1713     margin-top: 5px;
1714   }
1715 }
1716
1717 #remember_me_openid {
1718   display: block;
1719 }
1720
1721 select {
1722   padding: 2px;
1723 }
1724
1725 input[type="checkbox"],
1726 input[type="radio"] {
1727     margin-right: 5px;
1728 }
1729
1730 input[type="text"],
1731 input[type="email"],
1732 input[type="url"],
1733 input[type="password"],
1734 textarea {
1735   color: #222;
1736   background-color: #fff;
1737   border: 1px solid $grey;
1738   border-radius: 3px;
1739   padding: 2px 5px;
1740   margin: 0;
1741   width: 200px;
1742
1743   &.field_with_errors {
1744     border: 2px solid #ff7070;
1745   }
1746 }
1747
1748 textarea {
1749   padding: 5px;
1750   width: 100%;
1751   min-height: 50px;
1752   resize: vertical;
1753 }
1754
1755 /* Rules for user images */
1756
1757 img.user_image {
1758   max-width: 100px;
1759   max-height: 100px;
1760   border: 1px solid $grey;
1761   margin-bottom: $lineheight;
1762   float: left;
1763   margin-right: $lineheight;
1764 }
1765
1766 img.user_thumbnail {
1767   max-width: 50px;
1768   max-height: 50px;
1769   border: 1px solid $grey;
1770   margin-right: $lineheight;
1771 }
1772
1773 img.user_thumbnail_tiny {
1774   width: auto;
1775   height: auto;
1776   max-width: 25px;
1777   max-height: 25px;
1778   border: 1px solid $grey;
1779 }
1780
1781 /* Rules for geo microformats */
1782
1783 abbr.geo {
1784   border-bottom: none;
1785 }
1786
1787 /* General styles for action lists / subnavs / pager navs */
1788
1789 ul.secondary-actions {
1790   font-style: normal;
1791   margin-bottom: 0;
1792   margin-left: 0;
1793   padding: 0;
1794   &.pager {
1795     display: inline-block;
1796     margin-right: 60px;
1797   }
1798   > li {
1799     display: block;
1800     float: left;
1801     list-style: none;
1802     border-left: 1px solid $grey;
1803     padding-left: $lineheight/2;
1804     margin-right: $lineheight/2;
1805     &:first-child {
1806       border-left: 0;
1807       padding-left: 0;
1808     }
1809     &:last-child {
1810       margin-right: 0px;
1811     }
1812   }
1813 }
1814
1815 div.secondary-actions {
1816   padding: 10px;
1817   text-align: center;
1818 }
1819
1820 /* Utility for managing inner content areas */
1821
1822 .inner22 { padding: $lineheight;}
1823
1824 .inner12 { padding: $lineheight/2 $lineheight;}
1825
1826 .inner11 { padding: $lineheight/2;}
1827
1828 .inner20 { padding: $lineheight 0;}
1829
1830 .inner02 { padding: 0 $lineheight;}
1831
1832 /* Utility for general button styles */
1833
1834 input[type="button"],
1835 input[type="submit"],
1836 input[type="reset"],
1837 a.button {
1838   cursor: pointer;
1839   border: 0;
1840   display: inline-block;
1841   padding: $lineheight/4 $lineheight/2;
1842   min-height: 20px + $lineheight/2;
1843   min-width: 120px;
1844   margin: 0 0 $lineheight/2 0;
1845   color: white;
1846   background: $blue;
1847   text-align: center;
1848   border-radius: 2px;
1849   &:hover {
1850     background: darken($blue, $hovercolor);
1851     text-decoration: none;
1852   }
1853   &.deemphasize {
1854     background: $lightblue;
1855     &:hover {
1856       background: darken($lightblue, $hovercolor);
1857     }
1858   }
1859   &:disabled {
1860     background: $lightgrey;
1861     &:hover {
1862       background: $lightgrey;
1863     }
1864   }
1865   &:last-child {
1866     margin-bottom: 0;
1867   }
1868 }
1869
1870 input[type="button"],
1871 input[type="submit"],
1872 input[type="reset"] {
1873   line-height: normal;
1874 }
1875
1876 a.button {
1877   line-height: 20px;
1878 }
1879
1880 .buttons {
1881   min-width: 200px;
1882   input[type="submit"],
1883   input[type="button"],
1884   input[type="reset"],
1885   .button,
1886   .button_to {
1887     box-sizing: border-box;
1888     float: left;
1889     border-radius: 0;
1890     margin:0;
1891     min-width: 75px;
1892     max-width: 180px;
1893     border-right:1px solid white;
1894     text-overflow: ellipsis;
1895     white-space: nowrap;
1896     overflow: hidden;
1897   }
1898   input:first-child,
1899   .button:first-child,
1900   .button_to:first-child {
1901     border-radius:2px 0 0 2px;
1902   }
1903   input:last-child,
1904   .button:last-child,
1905   .button_to:last-child {
1906     border-radius:0 2px 2px 0;
1907     border-right-width: 0;
1908   }
1909   input:only-child,
1910   .button:only-child,
1911   .button_to:only-child,
1912   *[value="Hide"] + input:last-child,
1913   *[value="Hide"] + .button:last-child,
1914   *[value="Hide"] + .button_to:last-child {
1915     border-radius:2px;
1916     border-right-width: 0;
1917   }
1918     /* if a 3-button set has a hidden middle button */
1919   *[value="Hide"] + input:nth-child(3),
1920   *[value="Hide"] + .button:nth-child(3),
1921   *[value="Hide"] + .button_to:nth-child(3) {
1922     border-radius:0 2px 2px 0;
1923     border-right-width: 0;
1924   }
1925   /* if a 3-button set starts with a hidden button */
1926   *[value="Hide"] + input:nth-child(2):not(:last-child),
1927   *[value="Hide"] + .button:nth-child(2):not(:last-child),
1928   *[value="Hide"] + .button_to:nth-child(2):not(:last-child) {
1929     border-radius:2px 0 0 2px;
1930     border-right-width: 1px;
1931   }
1932 }
1933
1934 /* Customise the background colour of striped tables */
1935
1936 .table-striped > tbody > tr:nth-child(2n+1) > td,
1937 .table-striped > tbody > tr:nth-child(2n+1) > th {
1938    background-color: $offwhite;
1939 }
1940
1941 /* Rules for OpenID logo */
1942
1943 .openid_logo {
1944   vertical-align: text-bottom;
1945   border: 0;
1946 }
1947
1948 /* Rules for rich text */
1949
1950 .richtext,
1951 .prose {
1952   code {
1953     font-size: 13px;
1954     background: $lightgrey;
1955     padding: 2px 3px;
1956   }
1957
1958   pre {
1959     font-size: 13px;
1960     background: $lightgrey;
1961     padding: 2px 3px;
1962     white-space: pre-wrap;
1963
1964     code {
1965       padding: 0;
1966     }
1967   }
1968
1969   img {
1970     padding: $lineheight;
1971     background-color: $offwhite;
1972     display: block;
1973     max-width: 100%;
1974     margin: auto;
1975   }
1976
1977   blockquote {
1978     border-left: $lineheight solid $offwhite;
1979     padding-left: $lineheight;
1980     margin: 0;
1981     color: $darkgrey;
1982   }
1983 }
1984
1985 .diary_post .richtext {
1986     margin-top: $lineheight;
1987   }
1988
1989 .comments .richtext {
1990   margin-left: 70px;
1991   margin-top: 0;
1992 }
1993
1994 /* Rules for rich text editors */
1995
1996 input.richtext_title[type="text"] {
1997   width: 50%;
1998   width: calc(100% - 235px);
1999
2000   @media only screen and (max-width:768px) {
2001     width: 100%;
2002   }
2003 }
2004
2005 .richtext_container {
2006   margin-bottom: $lineheight;
2007
2008   .richtext_content {
2009     width: 50%;
2010     width: calc(100% - 235px);
2011     display: inline-block;
2012     vertical-align: top;
2013
2014     @media only screen and (max-width:768px) {
2015       width: 100%;
2016     }
2017
2018     .richtext_preview {
2019       display: inline-block;
2020       padding: $lineheight;
2021       background-color: $offwhite;
2022       overflow-x: auto;
2023
2024       &.loading {
2025         background-image: image-url("loading.gif");
2026         background-repeat: no-repeat;
2027         background-position: center;
2028       }
2029
2030       > :first-child {
2031         margin-top: 0px;
2032       }
2033     }
2034   }
2035
2036   .richtext_help {
2037     display: inline-block;
2038     vertical-align: top;
2039     margin-left: 15px;
2040     background-color: $offwhite;
2041     padding: $lineheight/2;
2042     width: 220px;
2043
2044     ul {
2045       margin-bottom: 0;
2046     }
2047
2048     h4.heading, li {
2049       border-bottom: 1px solid $grey;
2050       margin-bottom: $lineheight/4;
2051       padding-bottom: $lineheight/4;
2052     }
2053
2054     li h4, li span, li p {
2055       display: inline-block;
2056       vertical-align: top;
2057       font-size: 11px;
2058     }
2059
2060     li h4 {
2061       width: 40%;
2062       margin: 0;
2063     }
2064
2065     li span, li p {
2066       width: 50%;
2067       margin-left: $lineheight/2;
2068       margin-bottom: $lineheight/4;
2069       white-space: nowrap;
2070     }
2071   }
2072 }
2073
2074 /* Rules for the user notes list */
2075
2076 .note_list {
2077   tr.creator {
2078     background-color: $offwhite;
2079   }
2080 }
2081
2082 /* Rules for the iD editor */
2083
2084 .id-embed {
2085   width: 100%;
2086   height: 100%;
2087 }
2088
2089 /* Rules for the "Welcome" page */
2090 .site-welcome, .site-fixthemap {
2091   .center {
2092     text-align: center;
2093     .sprite {
2094       float: none;
2095       margin: auto;
2096     }
2097   }
2098
2099   .sprite {
2100     background-image: image-url("welcome-sprite.png");
2101     background-size: 500px 250px;
2102     display: block;
2103     float: left;
2104   }
2105
2106   .icon-list {
2107     padding-bottom: 20px;
2108     div {
2109       margin-bottom: 10px;
2110       p {
2111         padding-top: 10px;
2112       }
2113     }
2114   }
2115   .sprite.small {
2116     width: 50px;
2117     height: 50px;
2118   }
2119
2120   .sprite.x {
2121     /* no-r2 */ background-position: -50px 0;
2122   }
2123
2124   .sprite.term {
2125     margin-right: 10px;
2126     vertical-align: middle;
2127   }
2128
2129   .sprite.node {
2130     /* no-r2 */ background-position: -100px 0;
2131   }
2132
2133   .sprite.way {
2134     /* no-r2 */ background-position: -150px 0;
2135   }
2136
2137   .sprite.tag {
2138     /* no-r2 */ background-position: -200px 0;
2139   }
2140
2141   .sprite.editor {
2142     /* no-r2 */ background-position: -250px 0;
2143   }
2144
2145   .sprite.question {
2146     /* no-r2 */ background-position: -300px 0;
2147   }
2148
2149   .sprite.rules {
2150     /* no-r2 */ background-position: -350px 0;
2151   }
2152
2153   .start-mapping {
2154     margin: auto;
2155     cursor: pointer;
2156     border: none;
2157     padding: 20px 40px;
2158     font-size: 30px;
2159     text-decoration: none;
2160   }
2161
2162   .icon.note {
2163     background-color: #333;
2164     border-radius: 4px;
2165   }
2166 }
2167
2168 .site-about #content {
2169   background-color: $lightgrey;
2170   background-position: 50% 50%;
2171   background-repeat: no-repeat;
2172   background-size: cover;
2173   background-attachment: fixed;
2174
2175
2176   .content-inner {
2177     position: relative;
2178     color: #333;
2179     min-width: 320px;
2180     max-width: 640px;
2181   }
2182
2183   .text {
2184     background: white;
2185     padding: 40px;
2186   }
2187
2188   .attr {
2189     position: relative;
2190     padding: 170px 40px 20px;
2191     background: #333;
2192     background: rgba(0, 0, 0, .8);
2193     margin-bottom: 0;
2194     margin-top: -20px;
2195
2196     h1 {
2197       display: block;
2198       color: white;
2199       font-weight: 300;
2200       font-size: 28px;
2201       span {
2202         color: $vibrant-green;
2203       }
2204     }
2205
2206     @include media-breakpoint-up(sm) {
2207       h1 {
2208         font-size: 34px;
2209       }
2210     }
2211
2212     .user-image {
2213       position: absolute;
2214       top: 0px;
2215       right: 240px;
2216       left: 0px;
2217       height: 150px;
2218       background-position: 0 50%;
2219       background-repeat: no-repeat;
2220       background-image: image-url('about/osm.png');
2221       background-size: cover;
2222       background-color: $vibrant-green;
2223     }
2224
2225     .byosm {
2226       position: absolute;
2227       top: 0px;
2228       right: 0px;
2229       z-index: 1;
2230       width: 240px;
2231       height: 150px;
2232       padding: 20px 20px 20px 40px;
2233       font: 500 20px/24px Helvetica, Arial, sans-serif;
2234       white-space: nowrap;
2235       color: #fff;
2236       background: $vibrant-green;
2237     }
2238
2239     .byosm span {
2240       display: inline-block;
2241       width: 20px;
2242       margin-left: -20px;
2243     }
2244   }
2245
2246   .icon {
2247     width: 30px;
2248     height: 30px;
2249     margin-right: 10px;
2250     vertical-align: middle;
2251     background: 40px 40px image-url('about/sprite.png') no-repeat;
2252
2253     &.local {
2254       /* no-r2 */
2255       background-position: 0px 0px;
2256     }
2257     &.community {
2258       /* no-r2 */
2259       background-position: 0px -40px;
2260     }
2261     &.open {
2262       /* no-r2 */
2263       background-position: 0px -80px;
2264     }
2265     &.partners {
2266       /* no-r2 */
2267       background-position: 0px -120px;
2268     }
2269     &.infringement {
2270       /* no-r2 */
2271       background-position: 0px -160px;
2272     }
2273     &.legal {
2274       /* no-r2 */
2275       background-position: -45px -160px;
2276     }
2277   }
2278 }
2279
2280 @import 'browse';
2281
2282 @media only screen and (max-width:960px) {
2283   .header-illustration.new-user-arm {
2284     display: none;
2285   }
2286 }