]> git.openstreetmap.org Git - rails.git/blob - app/assets/stylesheets/common.scss
Merge remote-tracking branch 'upstream/pull/2709'
[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   p {
698     padding: $lineheight;
699   }
700
701   input {
702     display: block;
703     margin-left: auto;
704     margin-right: auto;
705   }
706 }
707
708 #sidebar {
709   #sidebar_loader,
710   .search_more {
711     width: 100%;
712     margin: $lineheight auto;
713   }
714
715   .loader,
716   .load_more {
717     text-align: center;
718     margin: auto;
719     width: 40px;
720     display: block;
721   }
722 }
723
724 /* Rules for the search and direction forms */
725
726 header .search_forms,
727 .directions_form {
728   display: none;
729 }
730
731 .search_form,
732 .directions_form {
733   position: relative;
734   padding: $lineheight/2;
735   background-color: $lightgrey;
736
737   .query_wrapper {
738     position: relative;
739     overflow: hidden;
740     border-radius: 2px 0 0 2px;
741   }
742
743   input[type=text] {
744     width: 100%;
745     height: 30px;
746     transition: 300ms linear;
747   }
748
749   input[type=text].overflow {
750     border-right: none;
751     border-radius: 3px 0px 0px 3px;
752   }
753
754   input:focus {
755     outline: none;
756     box-shadow: 0px 0px 7px $vibrant-green;
757   }
758
759   input[type=submit].float {
760     float: right;
761     width: auto;
762     min-width: 0;
763     border-radius: 0 2px 2px 0;
764   }
765
766   input.error {
767     background-color: rgba($red, 0.4);
768   }
769
770   select {
771     /* this next line is to polyfill the vertical alignment of text within a select element,
772      * which is different between firefox and chrome. */
773     padding: 0.3em 0;
774   }
775
776   .query_options {
777     text-align: right;
778     font-size: 10px;
779     color: $blue;
780   }
781
782   .describe_location {
783     position: absolute;
784     top: 6px;
785     right: 6px;
786     font-size: 10px;
787     color: $blue;
788   }
789
790   .switch_link {
791     float: right;
792     width: auto;
793     min-width: 0;
794     margin-left: 6px;
795   }
796
797   img.button {
798     display: block;
799     width: 20px;
800     height: 20px;
801   }
802
803   span.force_width {
804     width: 100%;
805     padding-right: 25px;
806     display: block;
807   }
808
809   select.routing_engines {
810     min-height: 30px;
811     margin: 0px 0px 5px 25px;
812   }
813
814   input.routing_go {
815     min-width: 100px;
816     float: right;
817   }
818
819   div.header {
820     width: 100%;
821     height: 30px;
822   }
823
824   div.line {
825     width: 100%;
826     margin: 0px 0px 5px 0px;
827   }
828
829   div.loader_copy {
830     display: none;
831
832     img {
833       vertical-align: middle;
834     }
835   }
836
837   a.reverse_directions {
838     cursor: pointer;
839     margin: 0px 0px 5px 25px;
840   }
841 }
842
843 /* Rules for the map key which appears in the popout sidebar */
844
845 #mapkey {
846  .mapkey-table-key img {
847     display: block;
848     margin-left: auto;
849     margin-right: auto;
850   }
851 }
852
853 /* Rules for search sidebar */
854
855 #sidebar .search_results_entry {
856   ul li {
857     cursor: pointer;
858     &.selected { background: $list-highlight; }
859   }
860
861   .search_more .loader {
862     display: none;
863     width: 100%;
864   }
865 }
866
867 .search_results_error {
868   color: #f00;
869   padding: 10px 20px;
870 }
871
872 /* Rules for routing */
873
874 #sidebar_content>table {
875     padding: 5px 20px 10px 15px;
876     width: 100%;
877     border-collapse: separate;
878     border-spacing: 0;
879 }
880
881 div.direction {
882   background-image: image-url('routing-sprite.png');
883   width: 20px;
884   height: 20px;
885   background-repeat: no-repeat;
886 }
887 @for $i from 0 through 25 {
888 div.direction.i#{$i} { background-position: #{($i)*-20}px 0px; }
889 }
890
891 p#routing_summary {
892     padding: 0 $lineheight $lineheight/4;
893 }
894
895 td.instruction, td.distance {
896     padding-top: $lineheight/5;
897     padding-bottom: $lineheight/5;
898     border-bottom: 1px solid $grey;
899 }
900 td.distance {
901     color: $darkgrey;
902     text-align: right;
903     font-size: x-small;
904 }
905 tr.turn {
906     cursor: pointer;
907 }
908 tr.turn:hover {
909     background: $list-highlight;
910 }
911 .routing_engines, #route_from, #route_to { margin-left: 25px; }
912 .routing_marker { width: 15px; position: absolute; cursor: move; }
913
914 /* Rules for entity history */
915
916 #sidebar_content {
917   .browse_details {
918     position: relative;
919     border-bottom: $keyline;
920   }
921 }
922
923 .browse_status {
924   display: none;
925 }
926
927 /* Rules for the history sidebar */
928
929 #sidebar .changesets {
930   li {
931     cursor: pointer;
932
933     &.selected { background: $list-highlight; }
934     /* color is derived from changeset bbox fillColor in history.js */
935   }
936
937   .comments {
938     float: right;
939     color: $darkgrey;
940   }
941
942   .comments-0 {
943     opacity: 0.5;
944   }
945
946   .changeset_more .loader {
947     display: none;
948     width: 100%;
949   }
950 }
951
952 /* Rules for the browse sidebar */
953
954 #sidebar_content {
955   .browse-section {
956     padding: $lineheight/2 $lineheight;
957     border-bottom: 1px solid $grey;
958
959     h4:first-child {
960       margin-top: 0;
961       word-wrap: break-word;
962     }
963   }
964
965   .browse-section:last-of-type {
966     border-bottom: none;
967   }
968
969   .paginate {
970     float: right;
971     padding: 1px 6px;
972     border: 1px solid $lightgrey;
973     border-radius: 3px;
974   }
975
976   .browse-field {
977     margin-bottom: 10px;
978
979     h4 {
980       padding: 5px 0 5px 10px;
981       font-size: 12px;
982       border: 1px solid $grey;
983       border-radius: 4px 4px 0 0;
984       background-color: $offwhite;
985     }
986
987     p {
988       padding: 7px 10px;
989       font-size: 12px;
990       background-color: #FFF;
991       border: 1px solid $grey;
992       border-top: 0;
993       border-radius: 0 0 4px 4px;
994     }
995   }
996
997   .browse-tag-list {
998     background-color: $offwhite;
999     border: 1px solid $grey;
1000     border-radius: 3px;
1001     table-layout: fixed;
1002     border-collapse: separate;
1003     border-spacing: 0;
1004     width: 100%;
1005
1006     th, td {
1007       border-bottom: 1px solid $grey;
1008     }
1009
1010     tr:last-child th, tr:last-child td {
1011       border-bottom: 0;
1012     }
1013
1014     .browse-tag-k,
1015     .browse-tag-v {
1016       width: 50%;
1017       padding: 6px 10px;
1018       word-wrap: break-word;
1019       white-space: pre-wrap;
1020     }
1021
1022     .browse-tag-k {
1023       font-weight: 500;
1024       background-color: $offwhite;
1025     }
1026
1027     .browse-tag-v {
1028       border-left: 1px solid $grey;
1029       background-color: #fff;
1030     }
1031
1032     .colour-preview-box {
1033       float: right;
1034       width: 14px;
1035       height: 14px;
1036       margin: 4px 0px;
1037       border: 1px solid rgba(0, 0, 0, .1);
1038       // add color via inline css on element: background-color: <tag value>;
1039     }
1040   }
1041
1042   .warning {
1043     margin: 0 0 $lineheight/2 0;
1044     padding: 0 $lineheight/2;
1045   }
1046
1047   .note-comments li, .changeset-comments li {
1048     margin: $lineheight/2 0;
1049
1050     p {
1051       margin: 10px 6px 0 6px;
1052       line-height: 1.5;
1053     }
1054   }
1055
1056   .comments-header {
1057     float: left;
1058   }
1059
1060   .subscribe-buttons {
1061     float: left;
1062     margin: 18px 10px 10px;
1063     min-width: 80px;
1064   }
1065
1066   .subscribe-buttons input {
1067     font-size: 90%;
1068     line-height: 15px;
1069     min-height: 20px;
1070   }
1071
1072   span.action-button:hover {
1073     cursor: pointer;
1074     text-decoration: underline;
1075   }
1076
1077   .note-description {
1078     overflow: hidden;
1079     margin: 0 0 10px 10px;
1080   }
1081
1082   .query-intro p {
1083     padding: $lineheight $lineheight $lineheight/2;
1084   }
1085
1086   .query-results {
1087     display: none;
1088     padding-bottom: $lineheight/2;
1089
1090     h3 {
1091       padding: 0 $lineheight;
1092     }
1093
1094     ul {
1095       li {
1096         &.query-result {
1097           cursor: pointer;
1098         }
1099
1100         &.selected {
1101           background: $list-highlight;
1102         }
1103       }
1104     }
1105   }
1106 }
1107
1108 /* Rules for export sidebar */
1109
1110 .export_form {
1111   padding: $lineheight;
1112
1113   .export_area_inputs,
1114   .export_button {
1115     text-align: center;
1116   }
1117
1118   .export_area_inputs {
1119     margin-bottom: $lineheight/2;
1120     input[type="text"] {
1121       width: 80px;
1122       text-align: center;
1123       margin-bottom: 5px;
1124     }
1125   }
1126
1127   .export_boxy {
1128     background: $lightgrey;
1129     border: 1px solid $grey;
1130     border-radius: 3px;
1131
1132     #maxlat { margin-top: -1px; }
1133     #minlon {
1134       float: left;
1135       /* no-r2 */ margin-left: -1px;
1136     }
1137     #maxlon {
1138       float: right;
1139       /* no-r2 */ margin-right: -1px;
1140     }
1141     #minlat { margin-bottom: 0; }
1142   }
1143
1144   .export_bound {
1145     margin: $lineheight/4;
1146   }
1147
1148   .export_button {
1149     margin-top: $lineheight;
1150     margin-bottom: $lineheight;
1151   }
1152
1153   dl {
1154     padding-left: $lineheight/2;
1155     dd {
1156       margin-left: 0;
1157       margin-bottom: 10px;
1158     }
1159   }
1160 }
1161
1162 /* Rules for the routing sidebar */
1163
1164 #sidebar_content {
1165   #routing_credit {
1166     text-align: center;
1167     padding: 0.5em;
1168   }
1169 }
1170
1171 /* Rules for edit pages */
1172
1173 .site-edit {
1174   #content {
1175     position: absolute;
1176     top: $headerHeight;
1177     bottom: 0;
1178     width: 100%;
1179   }
1180
1181   #map {
1182     height: 100%;
1183     overflow: hidden;
1184   }
1185 }
1186
1187 /* Rules for non-map content pages */
1188
1189 .content-heading {
1190   background: $lightgrey;
1191 }
1192
1193 .content-inner {
1194   position: relative;
1195   max-width: 900px;
1196   margin: auto;
1197   padding: $lineheight;
1198 }
1199
1200 /* Overrides for pages that use new layout conventions */
1201
1202 .users-new,
1203 .users-create,
1204 .users-terms,
1205 .users-confirm {
1206   .content-heading .content-inner {
1207     height: 200px;
1208   }
1209 }
1210
1211 .header-illustration {
1212   background-position: 0 0;
1213   background-repeat: no-repeat;
1214   position: absolute;
1215   height: 200px;
1216   width: 100%;
1217   left: 0;
1218   bottom: 0;
1219
1220   &.new-user-main {
1221     background-image: image-url("sign-up-illustration.png");
1222   }
1223
1224   &.confirm-main {
1225     background-image: image-url("confirm-illustration.png");
1226   }
1227
1228   &.new-user-terms {
1229     background-image: image-url("terms-illustration.png");
1230   }
1231
1232   &.new-user-arm {
1233     height: 110px;
1234     width: 130px;
1235     left: 260px;
1236     top: 160px;
1237     background-image: image-url("sign-up-illustration-arm.png");
1238     z-index: 100;
1239   }
1240 }
1241
1242 [dir=rtl] .header-illustration {
1243   transform: scaleX(-1);
1244 }
1245
1246 #content.maximised {
1247   top: 0;
1248   left: 0;
1249   right: 0;
1250   bottom: 0;
1251   border: 0;
1252   z-index: 2000;
1253 }
1254
1255 /* Rules for small maps in content areas */
1256
1257 .content_map {
1258   height: 200px;
1259   border: 1px solid $grey;
1260   margin-bottom: $lineheight;
1261 }
1262
1263 @include media-breakpoint-up(md) {
1264   .content_map {
1265     height: 400px;
1266   }
1267 }
1268
1269 /* Rules for the new trace form */
1270
1271 #new_trace {
1272   input[type=text] {
1273     width: 50%;
1274     width: calc(100% - 150px);
1275     max-width: 500px;
1276   }
1277 }
1278
1279 /* Rules for the edit trace form */
1280
1281 .edit_trace {
1282   .standard-form-row p {
1283     margin-bottom: 0px;
1284   }
1285
1286   input[type=text] {
1287     width: 50%;
1288     width: calc(100% - 150px);
1289     max-width: 500px;
1290   }
1291 }
1292
1293 /* Rules for the user profile page */
1294
1295 #userinformation {
1296   min-height: 100px;
1297   .userinformation-inner {
1298     float: left;
1299   }
1300   .user-description {
1301     width: 100%;
1302     clear: both;
1303   }
1304 }
1305
1306 .admin-user-info small {
1307   margin-bottom: $lineheight/2;
1308   display: inline;
1309   margin-right: $lineheight;
1310 }
1311
1312 .contact-activity {
1313   margin-top: $lineheight;
1314   width: 100%;
1315 }
1316
1317 .activity-details p {
1318   margin-left: 70px;
1319   margin-bottom: 0;
1320 }
1321
1322 .users-show {
1323   // Silly exception; remove when user page is redesigned.
1324   .content-inner {
1325     max-width: none;
1326   }
1327   p#no_home_location {
1328     margin: $lineheight;
1329   }
1330   .user_thumbnail {
1331     margin-top: $lineheight/4;
1332     float: left;
1333   }
1334 }
1335
1336 /* Rules for the user map */
1337
1338 .content_map .leaflet-popup-content {
1339   margin: $lineheight/2;
1340   min-height: 50px;
1341 }
1342
1343 /* Rules for user popups on maps */
1344
1345 .user_popup {
1346   min-width: 200px;
1347   p {
1348     padding: 0 0 5px 0;
1349     margin-top: 0 0 0 60px;
1350     font-size: 12px;
1351   }
1352   img.user_thumbnail {
1353     float: left;
1354     margin: 0 $lineheight/2 0 0;
1355   }
1356 }
1357
1358 /* Rules for the user list */
1359
1360 #user_list {
1361   width: 100%;
1362
1363   tr {
1364     vertical-align: middle;
1365   }
1366
1367   p {
1368     margin-top: 0px;
1369     margin-bottom: 0px;
1370   }
1371 }
1372
1373 #user_list_actions {
1374   float: right;
1375   margin-top: $lineheight/2;
1376 }
1377
1378 /* Rules for the diary list page */
1379
1380 .diary_post {
1381   position: relative;
1382   padding-top: $lineheight;
1383   padding-bottom: $lineheight/2;
1384   border-top: 1px solid $grey;
1385
1386   &:first-of-type {
1387     margin-top: $lineheight/2;
1388   }
1389
1390   &.deleted {
1391     background-color: #fee;
1392   }
1393
1394   .post_heading {
1395     margin-bottom: $lineheight;
1396
1397     h2 {
1398       margin-top: 0;
1399       margin-bottom: $lineheight/2;
1400     }
1401   }
1402
1403   img.user_thumbnail {
1404     float: left;
1405   }
1406
1407   small.deemphasize {
1408     float: left;
1409     display: block;
1410   }
1411 }
1412
1413 .pagination {
1414   padding-top: $lineheight;
1415 }
1416
1417 /* Rules for the diary entry page */
1418
1419 .diary_entries {
1420   #map {
1421     position: relative;
1422     width: 90%;
1423     height: 400px;
1424     border: 1px solid $grey;
1425     display: none;
1426     margin-bottom: $lineheight;
1427   }
1428   #newcomment {
1429     border-top: 1px solid $grey;
1430     padding-top: $lineheight;
1431     margin-top: $lineheight/2;
1432   }
1433   .comments {
1434     max-width: 740px;
1435   }
1436   .diary-comment {
1437     border-top: 1px dashed $grey;
1438     padding-top: $lineheight/2;
1439     padding-bottom: $lineheight/2;
1440     &:first-child {
1441       margin-top: $lineheight/2;
1442       padding-top: $lineheight;
1443       border-top: 1px solid $grey;
1444     }
1445     &.deleted {
1446       background-color: #fee;
1447     }
1448     p {
1449       margin-bottom: $lineheight/2;
1450     }
1451     .comment-heading {
1452       margin-bottom: 0;
1453       margin-top: 0;
1454     }
1455   }
1456 }
1457
1458 .diary_entries-show img.user_thumbnail {
1459   float: left;
1460 }
1461
1462
1463 .diary-subscribe-buttons {
1464   position:relative;
1465   top: -30px;
1466   left: 130px;
1467 }
1468
1469 /* Rules for the log in page */
1470
1471 #login_auth_buttons {
1472   margin-bottom: 0;
1473 }
1474
1475 #login_auth_buttons li {
1476   float: left;
1477   padding: $lineheight/4 $lineheight/2;
1478 }
1479
1480 /* Rules for the account confirmation page */
1481
1482 .users-terms {
1483   .legale {
1484     border: 1px solid $grey;
1485     padding: $lineheight;
1486     margin-bottom: $lineheight;
1487     overflow: auto;
1488     height: 20em;
1489
1490     li {
1491       list-style: inherit;
1492     }
1493
1494     ol ol {
1495       list-style-type: lower-alpha;
1496     }
1497   }
1498
1499   #decline {
1500     background: $lightblue;
1501     &:hover {
1502       background: darken($lightblue, $hovercolor);
1503     }
1504   }
1505 }
1506
1507 /* Rules for the account settings page */
1508
1509 #accountForm .user_image {
1510   margin-bottom: 0;
1511 }
1512
1513 #accountForm #user_image {
1514   margin-left: 20px;
1515 }
1516
1517 #accountForm ul.accountImage-options {
1518   margin-left: 120px;
1519 }
1520
1521 .nohome .location {
1522   display: none;
1523 }
1524
1525 #homerow .message {
1526   display: none;
1527 }
1528
1529 .nohome .message {
1530   display: inline !important;
1531 }
1532
1533 /* Rules for the oauth settings page */
1534
1535 .oauth_clients .buttons .oauth-edit {
1536   border-radius: 2px 0 0 2px;
1537 }
1538
1539 .oauth_clients .buttons .oauth-delete {
1540   border-radius: 0 2px 2px 0;
1541 }
1542
1543 /* Rules for the oauth authorization page */
1544
1545 .oauth-authorize ul {
1546   list-style: none;
1547 }
1548
1549 /* Rules for messages pages */
1550
1551 .messages {
1552   input[type="submit"] {
1553     margin: auto;
1554   }
1555
1556   .inbox-row {
1557     background: $offwhite;
1558   }
1559
1560   .inbox-row-unread {
1561     background: #CBEEA7;
1562   }
1563
1564   .right {
1565     float: right;
1566   }
1567 }
1568
1569 .inbox-row .inbox-mark-read {
1570   display: none;
1571 }
1572
1573 .info-line {
1574   margin-bottom: $lineheight;
1575   padding: $lineheight/4 0px 4px 0px;
1576   border-bottom: 1px solid $grey;
1577
1578   form, form div {
1579     display: inline;
1580   }
1581 }
1582
1583 .info-line .user_thumbnail_tiny {
1584   vertical-align: middle;
1585 }
1586
1587 .inbox-sent {
1588   white-space: nowrap;
1589 }
1590
1591 .inbox-mark-unread,
1592 .inbox-mark-read,
1593 .inbox-delete {
1594   width: 1%;
1595 }
1596
1597 .inbox-row-unread .inbox-mark-unread {
1598   display: none;
1599 }
1600
1601 /* Rules for "flash" notice boxes shown at the top of the content area */
1602
1603 .flash {
1604   padding: $lineheight;
1605
1606   &.error {
1607     background-color: #ff7070;
1608   }
1609
1610   &.warning {
1611     background-color: #ffe0cc;
1612   }
1613
1614   &.notice {
1615     background-color: #CBEEA7;
1616   }
1617
1618   div.message {
1619     display: inline-block;
1620     margin-left: $lineheight / 2;
1621     vertical-align: middle;
1622
1623     p {
1624       margin-top: $lineheight * 0.5;
1625       margin-bottom: $lineheight * 0.5;
1626
1627       &:first-child {
1628         margin-top: 0px;
1629       }
1630
1631       &:last-child {
1632         margin-bottom: 0px;
1633       }
1634     }
1635   }
1636 }
1637
1638 /* Rules for highlighting fields with rails validation errors */
1639
1640 .formError {
1641   display: inline-block;
1642   padding: 5px 10px;
1643   margin-top: 5px;
1644   border-radius: 4px;
1645   font-size: 12px;
1646   color: #fff;
1647   background-color: #ff7070;
1648 }
1649
1650 /* Rules for rails validation error boxes */
1651
1652 #errorExplanation {
1653   width: 400px;
1654   border: 2px solid #ff7070;
1655   padding: 0 $lineheight/2;
1656   margin-bottom: $lineheight;
1657   background-color: #f0f0f0;
1658
1659   h2 {
1660     margin: 0 -10px 10px -10px;
1661     padding: $lineheight/4 $lineheight/4 $lineheight/4 15px;
1662     font-weight: bold;
1663     font-size: 12px;
1664     background-color: #c00;
1665     color: #fff;
1666     text-align: left;
1667   }
1668
1669   p {
1670     color: #333;
1671     margin-bottom: 0px;
1672     padding: $lineheight/4;
1673   }
1674 }
1675
1676 /* Rules for forms */
1677
1678 .standard-form {
1679   fieldset {
1680     margin-bottom: $lineheight;
1681   }
1682   label.standard-label {
1683     display: block;
1684     margin-bottom: $lineheight/4;
1685     font-size: $typeheight;
1686     font-weight: bold;
1687     line-height: 1.5;
1688   }
1689   label.standard-label.secondary {
1690     display: inline-block;
1691     font-weight: normal;
1692   }
1693   .form-help {
1694     font-weight: normal;
1695   }
1696   .form-column {
1697     float: left;
1698     margin-right: 20px;
1699   }
1700   .form-divider {
1701     margin-top: $lineheight;
1702     padding-top: $lineheight;
1703     border-top: 1px solid $lightgrey;
1704   }
1705   .horizontal-list .standard-form-row {
1706     float: left;
1707     padding-right: 10px;
1708   }
1709   .standard-form-row {
1710     margin-bottom: $lineheight/2;
1711   }
1712   .form-list {
1713     margin-bottom: 0;
1714   }
1715   .form-list li {
1716     margin-bottom: 5px;
1717     list-style-type: none;
1718   }
1719   input[type="checkbox"],
1720   input[type="radio"] {
1721     float: left;
1722     margin-top: 5px;
1723   }
1724 }
1725
1726 #remember_me_openid {
1727   display: block;
1728 }
1729
1730 select {
1731   padding: 2px;
1732 }
1733
1734 input[type="checkbox"],
1735 input[type="radio"] {
1736     margin-right: 5px;
1737 }
1738
1739 input[type="text"],
1740 input[type="email"],
1741 input[type="url"],
1742 input[type="password"],
1743 textarea {
1744   color: #222;
1745   background-color: #fff;
1746   border: 1px solid $grey;
1747   border-radius: 3px;
1748   padding: 2px 5px;
1749   margin: 0;
1750   width: 200px;
1751
1752   &.field_with_errors {
1753     border: 2px solid #ff7070;
1754   }
1755 }
1756
1757 textarea {
1758   padding: 5px;
1759   width: 100%;
1760   min-height: 50px;
1761   resize: vertical;
1762 }
1763
1764 /* Rules for user images */
1765
1766 img.user_image {
1767   max-width: 100px;
1768   max-height: 100px;
1769   border: 1px solid $grey;
1770   margin-bottom: $lineheight;
1771   float: left;
1772   margin-right: $lineheight;
1773 }
1774
1775 img.user_thumbnail {
1776   max-width: 50px;
1777   max-height: 50px;
1778   border: 1px solid $grey;
1779   margin-right: $lineheight;
1780 }
1781
1782 img.user_thumbnail_tiny {
1783   width: auto;
1784   height: auto;
1785   max-width: 25px;
1786   max-height: 25px;
1787   border: 1px solid $grey;
1788 }
1789
1790 /* Rules for geo microformats */
1791
1792 abbr.geo {
1793   border-bottom: none;
1794 }
1795
1796 /* General styles for action lists / subnavs / pager navs */
1797
1798 ul.secondary-actions {
1799   font-style: normal;
1800   margin-bottom: 0;
1801   margin-left: 0;
1802   padding: 0;
1803   &.pager {
1804     display: inline-block;
1805     margin-right: 60px;
1806   }
1807   > li {
1808     display: block;
1809     float: left;
1810     list-style: none;
1811     border-left: 1px solid $grey;
1812     padding-left: $lineheight/2;
1813     margin-right: $lineheight/2;
1814     &:first-child {
1815       border-left: 0;
1816       padding-left: 0;
1817     }
1818     &:last-child {
1819       margin-right: 0px;
1820     }
1821   }
1822 }
1823
1824 div.secondary-actions {
1825   padding: 10px;
1826   text-align: center;
1827 }
1828
1829 /* Utility for managing inner content areas */
1830
1831 .inner22 { padding: $lineheight;}
1832
1833 .inner12 { padding: $lineheight/2 $lineheight;}
1834
1835 .inner11 { padding: $lineheight/2;}
1836
1837 .inner20 { padding: $lineheight 0;}
1838
1839 .inner02 { padding: 0 $lineheight;}
1840
1841 /* Utility for general button styles */
1842
1843 input[type="button"],
1844 input[type="submit"],
1845 input[type="reset"],
1846 a.button {
1847   cursor: pointer;
1848   border: 0;
1849   display: inline-block;
1850   padding: $lineheight/4 $lineheight/2;
1851   min-height: 20px + $lineheight/2;
1852   min-width: 120px;
1853   margin: 0 0 $lineheight/2 0;
1854   color: white;
1855   background: $blue;
1856   text-align: center;
1857   border-radius: 2px;
1858   &:hover {
1859     background: darken($blue, $hovercolor);
1860     text-decoration: none;
1861   }
1862   &.deemphasize {
1863     background: $lightblue;
1864     &:hover {
1865       background: darken($lightblue, $hovercolor);
1866     }
1867   }
1868   &:disabled {
1869     background: $lightgrey;
1870     &:hover {
1871       background: $lightgrey;
1872     }
1873   }
1874   &:last-child {
1875     margin-bottom: 0;
1876   }
1877 }
1878
1879 input[type="button"],
1880 input[type="submit"],
1881 input[type="reset"] {
1882   line-height: normal;
1883 }
1884
1885 a.button {
1886   line-height: 20px;
1887 }
1888
1889 .buttons {
1890   min-width: 200px;
1891   input[type="submit"],
1892   input[type="button"],
1893   input[type="reset"],
1894   .button,
1895   .button_to {
1896     box-sizing: border-box;
1897     float: left;
1898     border-radius: 0;
1899     margin:0;
1900     min-width: 75px;
1901     max-width: 180px;
1902     border-right:1px solid white;
1903     text-overflow: ellipsis;
1904     white-space: nowrap;
1905     overflow: hidden;
1906   }
1907   input:first-child,
1908   .button:first-child,
1909   .button_to:first-child {
1910     border-radius:2px 0 0 2px;
1911   }
1912   input:last-child,
1913   .button:last-child,
1914   .button_to:last-child {
1915     border-radius:0 2px 2px 0;
1916     border-right-width: 0;
1917   }
1918   input:only-child,
1919   .button:only-child,
1920   .button_to:only-child,
1921   *[value="Hide"] + input:last-child,
1922   *[value="Hide"] + .button:last-child,
1923   *[value="Hide"] + .button_to:last-child {
1924     border-radius:2px;
1925     border-right-width: 0;
1926   }
1927     /* if a 3-button set has a hidden middle button */
1928   *[value="Hide"] + input:nth-child(3),
1929   *[value="Hide"] + .button:nth-child(3),
1930   *[value="Hide"] + .button_to:nth-child(3) {
1931     border-radius:0 2px 2px 0;
1932     border-right-width: 0;
1933   }
1934   /* if a 3-button set starts with a hidden button */
1935   *[value="Hide"] + input:nth-child(2):not(:last-child),
1936   *[value="Hide"] + .button:nth-child(2):not(:last-child),
1937   *[value="Hide"] + .button_to:nth-child(2):not(:last-child) {
1938     border-radius:2px 0 0 2px;
1939     border-right-width: 1px;
1940   }
1941 }
1942
1943 /* Customise the background colour of striped tables */
1944
1945 .table-striped > tbody > tr:nth-child(2n+1) > td,
1946 .table-striped > tbody > tr:nth-child(2n+1) > th {
1947    background-color: $offwhite;
1948 }
1949
1950 /* Rules for OpenID logo */
1951
1952 .openid_logo {
1953   vertical-align: text-bottom;
1954   border: 0;
1955 }
1956
1957 /* Rules for rich text */
1958
1959 .richtext,
1960 .prose {
1961   code {
1962     font-size: 13px;
1963     background: $lightgrey;
1964     padding: 2px 3px;
1965   }
1966
1967   pre {
1968     font-size: 13px;
1969     background: $lightgrey;
1970     padding: 2px 3px;
1971     white-space: pre-wrap;
1972
1973     code {
1974       padding: 0;
1975     }
1976   }
1977
1978   img {
1979     padding: $lineheight;
1980     background-color: $offwhite;
1981     display: block;
1982     max-width: 100%;
1983     margin: auto;
1984   }
1985
1986   blockquote {
1987     border-left: $lineheight solid $offwhite;
1988     padding-left: $lineheight;
1989     margin: 0;
1990     color: $darkgrey;
1991   }
1992 }
1993
1994 .diary_post .richtext {
1995     margin-top: $lineheight;
1996   }
1997
1998 .comments .richtext {
1999   margin-left: 70px;
2000   margin-top: 0;
2001 }
2002
2003 /* Rules for rich text editors */
2004
2005 input.richtext_title[type="text"] {
2006   width: 50%;
2007   width: calc(100% - 235px);
2008
2009   @media only screen and (max-width:768px) {
2010     width: 100%;
2011   }
2012 }
2013
2014 .richtext_container {
2015   margin-bottom: $lineheight;
2016
2017   .richtext_content {
2018     width: 50%;
2019     width: calc(100% - 235px);
2020     display: inline-block;
2021     vertical-align: top;
2022
2023     @media only screen and (max-width:768px) {
2024       width: 100%;
2025     }
2026
2027     .richtext_preview {
2028       display: inline-block;
2029       padding: $lineheight;
2030       background-color: $offwhite;
2031       overflow-x: auto;
2032
2033       &.loading {
2034         background-image: image-url("loading.gif");
2035         background-repeat: no-repeat;
2036         background-position: center;
2037       }
2038
2039       > :first-child {
2040         margin-top: 0px;
2041       }
2042     }
2043   }
2044
2045   .richtext_help {
2046     display: inline-block;
2047     vertical-align: top;
2048     margin-left: 15px;
2049     background-color: $offwhite;
2050     padding: $lineheight/2;
2051     width: 220px;
2052
2053     ul {
2054       margin-bottom: 0;
2055     }
2056
2057     h4.heading, li {
2058       border-bottom: 1px solid $grey;
2059       margin-bottom: $lineheight/4;
2060       padding-bottom: $lineheight/4;
2061     }
2062
2063     li h4, li span, li p {
2064       display: inline-block;
2065       vertical-align: top;
2066       font-size: 11px;
2067     }
2068
2069     li h4 {
2070       width: 40%;
2071       margin: 0;
2072     }
2073
2074     li span, li p {
2075       width: 50%;
2076       margin-left: $lineheight/2;
2077       margin-bottom: $lineheight/4;
2078       white-space: nowrap;
2079     }
2080   }
2081 }
2082
2083 /* Rules for the user notes list */
2084
2085 .note_list {
2086   tr.creator {
2087     background-color: $offwhite;
2088   }
2089 }
2090
2091 /* Rules for the iD editor */
2092
2093 .id-embed {
2094   width: 100%;
2095   height: 100%;
2096 }
2097
2098 /* Rules for the "Welcome" page */
2099 .site-welcome, .site-fixthemap {
2100   .center {
2101     text-align: center;
2102     .sprite {
2103       float: none;
2104       margin: auto;
2105     }
2106   }
2107
2108   .sprite {
2109     background-image: image-url("welcome-sprite.png");
2110     background-size: 500px 250px;
2111     display: block;
2112     float: left;
2113   }
2114
2115   .icon-list {
2116     padding-bottom: 20px;
2117     div {
2118       margin-bottom: 10px;
2119       p {
2120         padding-top: 10px;
2121       }
2122     }
2123   }
2124   .sprite.small {
2125     width: 50px;
2126     height: 50px;
2127   }
2128
2129   .sprite.x {
2130     /* no-r2 */ background-position: -50px 0;
2131   }
2132
2133   .sprite.term {
2134     margin-right: 10px;
2135     vertical-align: middle;
2136   }
2137
2138   .sprite.node {
2139     /* no-r2 */ background-position: -100px 0;
2140   }
2141
2142   .sprite.way {
2143     /* no-r2 */ background-position: -150px 0;
2144   }
2145
2146   .sprite.tag {
2147     /* no-r2 */ background-position: -200px 0;
2148   }
2149
2150   .sprite.editor {
2151     /* no-r2 */ background-position: -250px 0;
2152   }
2153
2154   .sprite.question {
2155     /* no-r2 */ background-position: -300px 0;
2156   }
2157
2158   .sprite.rules {
2159     /* no-r2 */ background-position: -350px 0;
2160   }
2161
2162   .start-mapping {
2163     margin: auto;
2164     cursor: pointer;
2165     border: none;
2166     padding: 20px 40px;
2167     font-size: 30px;
2168     text-decoration: none;
2169   }
2170
2171   .icon.note {
2172     background-color: #333;
2173     border-radius: 4px;
2174   }
2175 }
2176
2177 .site-about #content {
2178   background-color: $lightgrey;
2179   background-position: 50% 50%;
2180   background-repeat: no-repeat;
2181   background-size: cover;
2182   background-attachment: fixed;
2183
2184
2185   .content-inner {
2186     position: relative;
2187     color: #333;
2188     min-width: 320px;
2189     max-width: 640px;
2190   }
2191
2192   .text {
2193     background: white;
2194     padding: 40px;
2195   }
2196
2197   .attr {
2198     position: relative;
2199     padding: 170px 40px 20px;
2200     background: #333;
2201     background: rgba(0, 0, 0, .8);
2202     margin-bottom: 0;
2203     margin-top: -20px;
2204
2205     h1 {
2206       display: block;
2207       color: white;
2208       font-weight: 300;
2209       font-size: 28px;
2210       span {
2211         color: $vibrant-green;
2212       }
2213     }
2214
2215     @include media-breakpoint-up(sm) {
2216       h1 {
2217         font-size: 34px;
2218       }
2219     }
2220
2221     .user-image {
2222       position: absolute;
2223       top: 0px;
2224       right: 240px;
2225       left: 0px;
2226       height: 150px;
2227       background-position: 0 50%;
2228       background-repeat: no-repeat;
2229       background-image: image-url('about/osm.png');
2230       background-size: cover;
2231       background-color: $vibrant-green;
2232     }
2233
2234     .byosm {
2235       position: absolute;
2236       top: 0px;
2237       right: 0px;
2238       z-index: 1;
2239       width: 240px;
2240       height: 150px;
2241       padding: 20px 20px 20px 40px;
2242       font: 500 20px/24px Helvetica, Arial, sans-serif;
2243       white-space: nowrap;
2244       color: #fff;
2245       background: $vibrant-green;
2246     }
2247
2248     .byosm span {
2249       display: inline-block;
2250       width: 20px;
2251       margin-left: -20px;
2252     }
2253   }
2254
2255   .icon {
2256     width: 30px;
2257     height: 30px;
2258     margin-right: 10px;
2259     vertical-align: middle;
2260     background: 40px 40px image-url('about/sprite.png') no-repeat;
2261
2262     &.local {
2263       /* no-r2 */
2264       background-position: 0px 0px;
2265     }
2266     &.community {
2267       /* no-r2 */
2268       background-position: 0px -40px;
2269     }
2270     &.open {
2271       /* no-r2 */
2272       background-position: 0px -80px;
2273     }
2274     &.partners {
2275       /* no-r2 */
2276       background-position: 0px -120px;
2277     }
2278     &.infringement {
2279       /* no-r2 */
2280       background-position: 0px -160px;
2281     }
2282     &.legal {
2283       /* no-r2 */
2284       background-position: -45px -160px;
2285     }
2286   }
2287 }
2288
2289 @import 'browse';
2290
2291 @media only screen and (max-width:960px) {
2292   .header-illustration.new-user-arm {
2293     display: none;
2294   }
2295 }