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