]> git.openstreetmap.org Git - rails.git/blobdiff - vendor/assets/iD/iD.css.erb
Update to iD v2.2.0
[rails.git] / vendor / assets / iD / iD.css.erb
index cce5fb89a267a65c14e11e9fdfad9cbdd0f6f077..797ec6189d977656f040440bea3dd13fbe779674 100644 (file)
@@ -195,7 +195,7 @@ g.point .stroke {
 g.point .shadow {
     fill: none;
     stroke: #f6634f;
-    stroke-width: 8;
+    stroke-width: 16;
     stroke-opacity: 0;
 }
 
@@ -212,6 +212,15 @@ g.point.active, g.point.active * {
     pointer-events: none;
 }
 
+g.point ellipse.stroke {
+    display: none;
+}
+
+.mode-drag-node g.point.active ellipse.stroke {
+    display: block;
+}
+
+
 /* vertices and midpoints */
 
 g.vertex .fill {
@@ -225,7 +234,7 @@ g.vertex .stroke {
 }
 
 g.vertex.shared .stroke {
-    fill: #aaa;
+    fill: #bbb;
 }
 
 g.midpoint .fill {
@@ -237,6 +246,7 @@ g.midpoint .fill {
 
 g.vertex .shadow,
 g.midpoint .shadow {
+    stroke-width: 6;
     fill: #f6634f;
     fill-opacity: 0;
 }
@@ -254,6 +264,15 @@ g.vertex.vertex-hover {
     display: block;
 }
 
+.mode-draw-area .hover-disabled g.vertex.vertex-hover,
+.mode-draw-line .hover-disabled g.vertex.vertex-hover,
+.mode-add-area  .hover-disabled g.vertex.vertex-hover,
+.mode-add-line  .hover-disabled g.vertex.vertex-hover,
+.mode-add-point .hover-disabled g.vertex.vertex-hover,
+.mode-drag-node .hover-disabled g.vertex.vertex-hover {
+    display: none;
+}
+
 g.vertex.related:not(.selected) .shadow,
 g.vertex.hover:not(.selected) .shadow,
 g.midpoint.related:not(.selected) .shadow,
@@ -292,7 +311,7 @@ path.stroke {
 
 path.shadow {
     stroke: #f6634f;
-    stroke-width: 10;
+    stroke-width: 16;
     stroke-opacity: 0;
 }
 
@@ -430,6 +449,12 @@ path.area.fill {
     background-color: rgba(170, 170, 170, 0.3);
 }
 
+path.shadow.old-multipolygon,
+path.stroke.old-multipolygon {
+    stroke-dasharray: 100, 5;
+    stroke-linecap: butt;
+}
+
 path.stroke.tag-natural {
     stroke: rgb(182, 225, 153);
 }
@@ -480,6 +505,7 @@ path.stroke.tag-leisure-swimming_pool,
 path.stroke.tag-natural-water,
 path.stroke.tag-landuse-aquaculture,
 path.stroke.tag-landuse-basin,
+path.stroke.tag-landuse-harbour,
 path.stroke.tag-landuse-reservoir {
     stroke: rgb(119, 211, 222);
 }
@@ -487,6 +513,7 @@ path.fill.tag-amenity-swimming_pool,
 path.fill.tag-leisure-swimming_pool,
 path.fill.tag-landuse-aquaculture,
 path.fill.tag-landuse-basin,
+path.fill.tag-landuse-harbour,
 path.fill.tag-landuse-reservoir,
 path.fill.tag-natural-water {
     stroke: rgba(119, 211, 222, 0.3);
@@ -496,6 +523,7 @@ path.fill.tag-natural-water {
 .preset-icon-fill-area.tag-leisure-swimming_pool,
 .preset-icon-fill-area.tag-landuse-aquaculture,
 .preset-icon-fill-area.tag-landuse-basin,
+.preset-icon-fill-area.tag-landuse-harbour,
 .preset-icon-fill-area.tag-landuse-reservoir,
 .preset-icon-fill-area.tag-natural-water {
     border-color: rgb(119, 211, 222);
@@ -570,17 +598,20 @@ path.fill.tag-power-plant {
 
 path.stroke.tag-natural-bare_rock,
 path.stroke.tag-natural-scree,
+path.stroke.tag-landuse-railway,
 path.stroke.tag-landuse-quarry {
     stroke: rgb(166, 149, 123);
 }
 path.fill.tag-natural-bare_rock,
 path.fill.tag-natural-scree,
+path.fill.tag-landuse-railway,
 path.fill.tag-landuse-quarry {
     stroke: rgba(166, 149, 123, 0.2);
     fill: rgba(166, 149, 123, 0.2);
 }
 .preset-icon-fill-area.tag-natural-bare_rock,
 .preset-icon-fill-area.tag-natural-scree,
+.preset-icon-fill-area.tag-landuse-railway,
 .preset-icon-fill-area.tag-landuse-quarry {
     border-color: rgb(166, 149, 123);
     background-color: rgba(166, 149, 123, 0.2);
@@ -694,7 +725,7 @@ path.fill.tag-landuse-farmyard {
     fill: rgba(245, 220, 186, 0.3);
 }
 .preset-icon-fill-area.tag-landuse-farmyard {
-    border-color: rgb(245, 220, 186);
+    border-color: rgb(226, 177, 111);
     background: rgba(245, 220, 186, 0.3);
 }
 
@@ -725,40 +756,45 @@ path.fill.tag-amenity-parking {
 
 /* highways */
 
+.preset-icon .icon.tag-highway.other-line {
+    color: #fff;
+    fill: #777;
+}
+path.casing.tag-highway {
+    stroke: #444;
+}
+path.stroke.tag-highway {
+    stroke: #ccc;
+}
+
 /* highway areas */
+
 path.stroke.area.tag-highway {
-    stroke:#fff;
+    stroke: #fff;
     stroke-dasharray: none;
     stroke-width: 2;
 }
 
 /* wide highways */
 
-.preset-icon .icon.tag-highway.other-line {
-    color: #fff;
-    fill: #777;
-}
-
 path.shadow.tag-highway {
-    stroke-width:16;
+    stroke-width: 20;
 }
 path.casing.tag-highway {
-    stroke:#444;
-    stroke-width:10;
+    stroke-width: 10;
 }
 path.stroke.tag-highway {
-    stroke:#ccc;
-    stroke-width:8;
+    stroke-width: 8;
 }
 
 .low-zoom path.shadow.tag-highway {
-    stroke-width:12;
+    stroke-width: 16;
 }
 .low-zoom path.casing.tag-highway {
-    stroke-width:6;
+    stroke-width: 7;
 }
 .low-zoom path.stroke.tag-highway {
-    stroke-width:4;
+    stroke-width: 5;
 }
 
 .preset-icon .icon.highway-motorway,
@@ -949,33 +985,54 @@ path.casing.tag-unclassified {
 
 
 /* narrow highways */
+
+path.shadow.tag-highway-living_street,
+path.shadow.tag-highway-service,
+path.shadow.tag-highway-track,
+path.shadow.tag-highway-road,
+path.shadow.tag-living_street,
+path.shadow.tag-service,
+path.shadow.tag-track,
+path.shadow.tag-road {
+    stroke-width: 16;
+}
+path.casing.tag-highway-living_street,
+path.casing.tag-highway-service,
+path.casing.tag-highway-track,
+path.casing.tag-highway-road,
+path.casing.tag-living_street,
+path.casing.tag-service,
+path.casing.tag-track,
+path.casing.tag-road {
+    stroke-width: 7;
+}
 path.stroke.tag-highway-living_street,
 path.stroke.tag-highway-service,
 path.stroke.tag-highway-track,
-path.stroke.tag-highway-path,
-path.stroke.tag-highway-footway,
-path.stroke.tag-highway-cycleway,
-path.stroke.tag-highway-bridleway,
-path.stroke.tag-highway-corridor,
-path.stroke.tag-highway-pedestrian,
-path.stroke.tag-highway-steps,
 path.stroke.tag-highway-road,
 path.stroke.tag-living_street,
 path.stroke.tag-service,
 path.stroke.tag-track,
-path.stroke.tag-path,
-path.stroke.tag-footway,
-path.stroke.tag-cycleway,
-path.stroke.tag-bridleway,
-path.stroke.tag-corridor,
-path.stroke.tag-pedestrian,
-path.stroke.tag-steps,
 path.stroke.tag-road {
-    stroke-width:4;
+    stroke-width: 5;
+}
+
+path.shadow.tag-highway-path,
+path.shadow.tag-highway-footway,
+path.shadow.tag-highway-cycleway,
+path.shadow.tag-highway-bridleway,
+path.shadow.tag-highway-corridor,
+path.shadow.tag-highway-pedestrian,
+path.shadow.tag-highway-steps,
+path.shadow.tag-path,
+path.shadow.tag-footway,
+path.shadow.tag-cycleway,
+path.shadow.tag-bridleway,
+path.shadow.tag-corridor,
+path.shadow.tag-pedestrian,
+path.shadow.tag-steps {
+    stroke-width: 16;
 }
-path.casing.tag-highway-living_street,
-path.casing.tag-highway-service,
-path.casing.tag-highway-track,
 path.casing.tag-highway-path,
 path.casing.tag-highway-footway,
 path.casing.tag-highway-cycleway,
@@ -983,48 +1040,79 @@ path.casing.tag-highway-bridleway,
 path.casing.tag-highway-corridor,
 path.casing.tag-highway-pedestrian,
 path.casing.tag-highway-steps,
-path.casing.tag-highway-road,
-path.casing.tag-living_street,
-path.casing.tag-service,
-path.casing.tag-track,
 path.casing.tag-path,
 path.casing.tag-footway,
 path.casing.tag-cycleway,
 path.casing.tag-bridleway,
 path.casing.tag-corridor,
 path.casing.tag-pedestrian,
-path.casing.tag-steps,
-path.casing.tag-road {
-    stroke-width:6;
+path.casing.tag-steps {
+    stroke-width: 5;
+}
+path.stroke.tag-highway-path,
+path.stroke.tag-highway-footway,
+path.stroke.tag-highway-cycleway,
+path.stroke.tag-highway-bridleway,
+path.stroke.tag-highway-corridor,
+path.stroke.tag-highway-pedestrian,
+path.stroke.tag-highway-steps,
+path.stroke.tag-path,
+path.stroke.tag-footway,
+path.stroke.tag-cycleway,
+path.stroke.tag-bridleway,
+path.stroke.tag-corridor,
+path.stroke.tag-pedestrian,
+path.stroke.tag-steps {
+    stroke-width: 3;
 }
 
+.low-zoom path.shadow.tag-highway-living_street,
+.low-zoom path.shadow.tag-highway-service,
+.low-zoom path.shadow.tag-highway-track,
+.low-zoom path.shadow.tag-highway-road,
+.low-zoom path.shadow.tag-living_street,
+.low-zoom path.shadow.tag-service,
+.low-zoom path.shadow.tag-track,
+.low-zoom path.shadow.tag-road {
+    stroke-width: 12;
+}
+.low-zoom path.casing.tag-highway-living_street,
+.low-zoom path.casing.tag-highway-service,
+.low-zoom path.casing.tag-highway-track,
+.low-zoom path.casing.tag-highway-road,
+.low-zoom path.casing.tag-living_street,
+.low-zoom path.casing.tag-service,
+.low-zoom path.casing.tag-track,
+.low-zoom path.casing.tag-road {
+    stroke-width: 5;
+}
 .low-zoom path.stroke.tag-highway-living_street,
 .low-zoom path.stroke.tag-highway-service,
 .low-zoom path.stroke.tag-highway-track,
-.low-zoom path.stroke.tag-highway-path,
-.low-zoom path.stroke.tag-highway-footway,
-.low-zoom path.stroke.tag-highway-cycleway,
-.low-zoom path.stroke.tag-highway-bridleway,
-.low-zoom path.stroke.tag-highway-corridor,
-.low-zoom path.stroke.tag-highway-pedestrian,
-.low-zoom path.stroke.tag-highway-steps,
 .low-zoom path.stroke.tag-highway-road,
 .low-zoom path.stroke.tag-living_street,
 .low-zoom path.stroke.tag-service,
 .low-zoom path.stroke.tag-track,
-.low-zoom path.stroke.tag-path,
-.low-zoom path.stroke.tag-footway,
-.low-zoom path.stroke.tag-cycleway,
-.low-zoom path.stroke.tag-bridleway,
-.low-zoom path.stroke.tag-corridor,
-.low-zoom path.stroke.tag-pedestrian,
-.low-zoom path.stroke.tag-steps,
 .low-zoom path.stroke.tag-road {
-    stroke-width:2;
+    stroke-width: 3;
+}
+
+.low-zoom path.shadow.tag-highway-path,
+.low-zoom path.shadow.tag-highway-footway,
+.low-zoom path.shadow.tag-highway-cycleway,
+.low-zoom path.shadow.tag-highway-bridleway,
+.low-zoom path.shadow.tag-highway-corridor,
+.low-zoom path.shadow.tag-highway-pedestrian,
+.low-zoom path.shadow.tag-highway-steps,
+.low-zoom path.shadow.tag-path,
+.low-zoom path.shadow.tag-footway,
+.low-zoom path.shadow.tag-cycleway,
+.low-zoom path.shadow.tag-bridleway,
+.low-zoom path.shadow.tag-corridor,
+.low-zoom path.shadow.tag-pedestrian,
+.low-zoom path.shadow.tag-steps {
+    stroke-width: 12;
 }
-.low-zoom path.casing.tag-highway-living_street,
-.low-zoom path.casing.tag-highway-service,
-.low-zoom path.casing.tag-highway-track,
 .low-zoom path.casing.tag-highway-path,
 .low-zoom path.casing.tag-highway-footway,
 .low-zoom path.casing.tag-highway-cycleway,
@@ -1032,21 +1120,33 @@ path.casing.tag-road {
 .low-zoom path.casing.tag-highway-corridor,
 .low-zoom path.casing.tag-highway-pedestrian,
 .low-zoom path.casing.tag-highway-steps,
-.low-zoom path.casing.tag-highway-road,
-.low-zoom path.casing.tag-living_street,
-.low-zoom path.casing.tag-service,
-.low-zoom path.casing.tag-track,
 .low-zoom path.casing.tag-path,
 .low-zoom path.casing.tag-footway,
 .low-zoom path.casing.tag-cycleway,
 .low-zoom path.casing.tag-bridleway,
 .low-zoom path.casing.tag-corridor,
 .low-zoom path.casing.tag-pedestrian,
-.low-zoom path.casing.tag-steps,
-.low-zoom path.casing.tag-road {
-    stroke-width:4;
+.low-zoom path.casing.tag-steps {
+    stroke-width: 3;
+}
+.low-zoom path.stroke.tag-highway-path,
+.low-zoom path.stroke.tag-highway-footway,
+.low-zoom path.stroke.tag-highway-cycleway,
+.low-zoom path.stroke.tag-highway-bridleway,
+.low-zoom path.stroke.tag-highway-corridor,
+.low-zoom path.stroke.tag-highway-pedestrian,
+.low-zoom path.stroke.tag-highway-steps,
+.low-zoom path.stroke.tag-path,
+.low-zoom path.stroke.tag-footway,
+.low-zoom path.stroke.tag-cycleway,
+.low-zoom path.stroke.tag-bridleway,
+.low-zoom path.stroke.tag-corridor,
+.low-zoom path.stroke.tag-pedestrian,
+.low-zoom path.stroke.tag-steps {
+    stroke-width: 1;
 }
 
+
 .preset-icon .icon.highway-living-street {
     color: #bbb;
     fill: #ddd;
@@ -1072,6 +1172,12 @@ path.stroke.tag-pedestrian {
     stroke:#fff;
     stroke-dasharray: 2, 8;
 }
+.low-zoom path.stroke.tag-highway-corridor,
+.low-zoom path.stroke.tag-highway-pedestrian,
+.low-zoom path.stroke.tag-corridor,
+.low-zoom path.stroke.tag-pedestrian {
+    stroke-dasharray: 1, 4;
+}
 path.casing.tag-highway-corridor,
 path.casing.tag-highway-pedestrian,
 path.casing.tag-corridor,
@@ -1131,6 +1237,13 @@ path.stroke.tag-highway-bridleway {
     stroke-linecap: butt;
     stroke-dasharray: 6, 6;
 }
+.low-zoom path.stroke.tag-highway-path,
+.low-zoom path.stroke.tag-highway-footway,
+.low-zoom path.stroke.tag-highway-cycleway,
+.low-zoom path.stroke.tag-highway-bridleway {
+    stroke-linecap: butt;
+    stroke-dasharray: 3, 3;
+}
 
 path.casing.tag-highway-path,
 path.casing.tag-highway-path.tag-unpaved {
@@ -1175,6 +1288,9 @@ path.stroke.tag-highway-footway.tag-crossing {
     stroke: #444;
     stroke-dasharray: 6, 4;
 }
+.low-zoom path.stroke.tag-highway-footway.tag-crossing {
+    stroke-dasharray: 3, 2;
+}
 
 .preset-icon .icon.tag-route-bicycle,
 .preset-icon .icon.highway-cycleway {
@@ -1203,6 +1319,9 @@ path.stroke.tag-highway-steps {
     stroke-linecap: butt;
     stroke-dasharray: 3, 3;
 }
+.low-zoom path.stroke.tag-highway-steps {
+    stroke-dasharray: 2, 2;
+}
 path.casing.tag-highway-steps,
 path.casing.tag-highway-steps.tag-unpaved {
     stroke: #fff;
@@ -1233,23 +1352,32 @@ path.stroke.area.tag-aeroway {
     stroke-width: 2;
 }
 
-/* lines */
-path.stroke.tag-aeroway-taxiway,
-path.stroke.tag-taxiway {
-    stroke-width: 4;
+/* narrow aeroways (taxiway) */
+
+path.shadow.tag-aeroway-taxiway,
+path.shadow.tag-taxiway {
+    stroke-width: 16;
 }
 path.casing.tag-aeroway-taxiway,
 path.casing.tag-taxiway {
-    stroke-width: 6;
+    stroke-width: 7;
+}
+path.stroke.tag-aeroway-taxiway,
+path.stroke.tag-taxiway {
+    stroke-width: 5;
 }
 
-.low-zoom path.stroke.tag-aeroway-taxiway,
-.low-zoom path.stroke.tag-taxiway {
-    stroke-width: 2;
+.low-zoom path.shadow.tag-aeroway-taxiway,
+.low-zoom path.shadow.tag-taxiway {
+    stroke-width: 12;
 }
 .low-zoom path.casing.tag-aeroway-taxiway,
 .low-zoom path.casing.tag-taxiway {
-    stroke-width: 4;
+    stroke-width: 5;
+}
+.low-zoom path.stroke.tag-aeroway-taxiway,
+.low-zoom path.stroke.tag-taxiway {
+    stroke-width: 3;
 }
 
 .preset-icon .icon.tag-aeroway-taxiway,
@@ -1266,6 +1394,9 @@ path.casing.tag-taxiway {
     stroke: #666;
 }
 
+
+/* wide aeroways (runway) */
+
 .preset-icon .icon.tag-aeroway-runway,
 .preset-icon .icon.tag-runway {
     color: #444;
@@ -1274,17 +1405,29 @@ path.casing.tag-taxiway {
 path.shadow.tag-aeroway-runway {
     stroke-width: 20;
 }
+path.casing.tag-aeroway-runway {
+    stroke-width: 10;
+    stroke: #000;
+    stroke-linecap: square;
+}
 path.stroke.tag-aeroway-runway {
     stroke: #fff;
     stroke-width: 2;
     stroke-linecap: butt;
     stroke-dasharray: 24, 48;
 }
-path.casing.tag-aeroway-runway {
-    stroke-width: 10;
-    stroke: #000;
-    stroke-linecap: square;
+
+.low-zoom path.shadow.tag-aeroway-runway {
+    stroke-width: 16;
+}
+.low-zoom path.casing.tag-aeroway-runway {
+    stroke-width: 7;
 }
+.low-zoom path.stroke.tag-aeroway-runway {
+    stroke-width: 2;
+    stroke-dasharray: 12, 24;
+}
+
 path.fill.tag-aeroway-runway {
     stroke: rgba(0, 0, 0, 0.6);
     fill: rgba(0, 0, 0, 0.6);
@@ -1300,48 +1443,77 @@ path.fill.tag-aeroway-runway {
     color: #555;
     fill: #eee;
 }
+
+/* narrow widths */
+
+path.shadow.tag-railway {
+    stroke-width: 16;
+}
+path.casing.tag-railway {
+    stroke-width: 7;
+}
 path.stroke.tag-railway {
-    stroke: #eee;
     stroke-width: 2;
     stroke-linecap: butt;
     stroke-dasharray: 12,12;
 }
+
+.low-zoom path.shadow.tag-railway {
+    stroke-width: 12;
+}
+.low-zoom path.casing.tag-railway {
+    stroke-width: 5;
+}
+.low-zoom path.stroke.tag-railway {
+    stroke-width: 2;
+    stroke-dasharray: 6,6;
+}
+
+
+/* styles */
+
 path.casing.tag-railway {
     stroke: #555;
-    stroke-width: 4;
 }
+path.stroke.tag-railway {
+    stroke: #eee;
+}
+
 
 .preset-icon .icon.tag-railway-disused,
 .preset-icon .icon.tag-railway-abandoned {
     color: #999;
     fill: #eee;
 }
-path.stroke.tag-railway-abandoned {
-    stroke: #eee;
-}
 path.casing.tag-railway-abandoned {
     stroke: #999;
 }
+path.stroke.tag-railway-abandoned {
+    stroke: #eee;
+}
+
 
 .preset-icon .icon.tag-railway-subway {
     color: #222;
     fill: #bbb;
 }
-path.stroke.tag-railway-subway {
-    stroke: #bbb;
-}
 path.casing.tag-railway-subway {
     stroke: #222;
 }
+path.stroke.tag-railway-subway {
+    stroke: #bbb;
+}
+
 
+path.casing.tag-railway-platform {
+    stroke: none;
+}
 path.stroke.tag-railway-platform {
     stroke: #999;
     stroke-width: 4;
     stroke-dasharray: none;
 }
-path.casing.tag-railway-platform {
-    stroke: none;
-}
+
 
 .area.stroke.tag-railway {
     stroke: white;
@@ -1368,35 +1540,72 @@ path.fill.tag-waterway {
     stroke: rgba(119, 211, 222, 0.3);
     fill: rgba(119, 211, 222, 0.3);
 }
-
+path.casing.tag-waterway {
+    stroke: #3d6c71;
+}
 path.stroke.tag-waterway {
     stroke: #77d3de;
-    stroke-width: 2;
+}
+
+
+/* narrow waterways (default) */
+
+path.shadow.tag-waterway {
+    stroke-width: 16;
 }
 path.casing.tag-waterway {
-    stroke: #77d3de;
-    stroke-width: 4;
+    stroke-width: 7;
+}
+path.stroke.tag-waterway {
+    stroke-width: 5;
 }
 
-path.stroke.tag-waterway-river {
-    stroke-width: 4;
+.low-zoom path.shadow.tag-waterway {
+    stroke-width: 12;
+}
+.low-zoom path.casing.tag-waterway {
+    stroke-width: 5;
+}
+.low-zoom path.stroke.tag-waterway {
+    stroke-width: 3;
+}
+
+
+/* wide waterways (river) */
+
+path.shadow.tag-waterway-river {
+    stroke-width: 20;
 }
 path.casing.tag-waterway-river {
-    stroke-width: 6;
+    stroke-width: 10;
+}
+path.stroke.tag-waterway-river {
+    stroke-width: 8;
+}
+
+.low-zoom path.shadow.tag-waterway-river {
+    stroke-width: 16;
+}
+.low-zoom path.casing.tag-waterway-river {
+    stroke-width: 7;
+}
+.low-zoom path.stroke.tag-waterway-river {
+    stroke-width: 5;
 }
 
+
+/* ditch */
+
 .preset-icon .icon.tag-waterway-ditch {
-    color: #6591ff;
+    color: #8eabf3;
 }
 path.stroke.tag-waterway-ditch {
-    stroke: #6591ff;
-    stroke-width: 1;
-}
-path.casing.tag-waterway-ditch {
-    stroke: #6591ff;
-    stroke-width: 3;
+    stroke: #8eabf3;
 }
 
+
+/* waterway areas */
+
 path.area.stroke.tag-waterway-dock,
 path.area.stroke.tag-waterway-boatyard,
 path.area.stroke.tag-waterway-fuel {
@@ -1465,7 +1674,6 @@ path.stroke.tag-barrier {
 
 /* bridges */
 path.casing.tag-bridge {
-    stroke-width: 16;
     stroke-opacity: 0.6;
     stroke: #000;
     stroke-linecap: butt;
@@ -1473,21 +1681,18 @@ path.casing.tag-bridge {
 }
 
 path.shadow.tag-bridge {
-    stroke-width: 22;
+    stroke-width: 24;
 }
-path.casing.line.tag-railway.tag-bridge,
-path.casing.tag-highway-living_street.tag-bridge,
-path.casing.tag-highway-path.tag-bridge,
-path.casing.tag-highway-corridor.tag-bridge,
-path.casing.line.tag-highway-pedestrian.tag-bridge,
-path.casing.tag-highway-service.tag-bridge,
-path.casing.tag-highway-track.tag-bridge,
-path.casing.tag-highway-steps.tag-bridge,
-path.casing.tag-highway-footway.tag-bridge,
-path.casing.tag-highway-cycleway.tag-bridge,
-path.casing.tag-highway-bridleway.tag-bridge {
+path.casing.tag-bridge {
+    stroke-width: 16;
+}
+.low-zoom path.shadow.tag-bridge {
+    stroke-width: 16;
+}
+.low-zoom path.casing.tag-bridge {
     stroke-width: 10;
 }
+
 path.shadow.line.tag-railway.tag-bridge,
 path.shadow.tag-highway-living_street.tag-bridge,
 path.shadow.tag-highway-path.tag-bridge,
@@ -1499,15 +1704,35 @@ path.shadow.tag-highway-steps.tag-bridge,
 path.shadow.tag-highway-footway.tag-bridge,
 path.shadow.tag-highway-cycleway.tag-bridge,
 path.shadow.tag-highway-bridleway.tag-bridge {
-    stroke-width: 17;
+    stroke-width: 18;
 }
-.low-zoom path.casing.tag-bridge {
+path.casing.line.tag-railway.tag-bridge,
+path.casing.tag-highway-living_street.tag-bridge,
+path.casing.tag-highway-path.tag-bridge,
+path.casing.tag-highway-corridor.tag-bridge,
+path.casing.line.tag-highway-pedestrian.tag-bridge,
+path.casing.tag-highway-service.tag-bridge,
+path.casing.tag-highway-track.tag-bridge,
+path.casing.tag-highway-steps.tag-bridge,
+path.casing.tag-highway-footway.tag-bridge,
+path.casing.tag-highway-cycleway.tag-bridge,
+path.casing.tag-highway-bridleway.tag-bridge {
     stroke-width: 10;
 }
-.low-zoom path.shadow.tag-bridge {
+
+.low-zoom path.shadow.line.tag-railway.tag-bridge,
+.low-zoom path.shadow.tag-highway-living_street.tag-bridge,
+.low-zoom path.shadow.tag-highway-path.tag-bridge,
+.low-zoom path.shadow.tag-highway-corridor.tag-bridge,
+.low-zoom path.shadow.line.tag-highway-pedestrian.tag-bridge,
+.low-zoom path.shadow.tag-highway-service.tag-bridge,
+.low-zoom path.shadow.tag-highway-track.tag-bridge,
+.low-zoom path.shadow.tag-highway-steps.tag-bridge,
+.low-zoom path.shadow.tag-highway-footway.tag-bridge,
+.low-zoom path.shadow.tag-highway-cycleway.tag-bridge,
+.low-zoom path.shadow.tag-highway-bridleway.tag-bridge {
     stroke-width: 14;
 }
-
 .low-zoom path.casing.line.tag-railway.tag-bridge,
 .low-zoom path.casing.tag-highway-living_street.tag-bridge,
 .low-zoom path.casing.tag-highway-path.tag-bridge,
@@ -1522,20 +1747,6 @@ path.shadow.tag-highway-bridleway.tag-bridge {
     stroke-width: 6;
 }
 
-.low-zoom path.shadow.line.tag-railway.tag-bridge,
-.low-zoom path.shadow.tag-highway-living_street.tag-bridge,
-.low-zoom path.shadow.tag-highway-path.tag-bridge,
-.low-zoom path.shadow.tag-highway-corridor.tag-bridge,
-.low-zoom path.shadow.line.tag-highway-pedestrian.tag-bridge,
-.low-zoom path.shadow.tag-highway-service.tag-bridge,
-.low-zoom path.shadow.tag-highway-track.tag-bridge,
-.low-zoom path.shadow.tag-highway-steps.tag-bridge,
-.low-zoom path.shadow.tag-highway-footway.tag-bridge,
-.low-zoom path.shadow.tag-highway-cycleway.tag-bridge,
-.low-zoom path.shadow.tag-highway-bridleway.tag-bridge {
-    stroke-width: 13;
-}
-
 
 /* tunnels */
 path.stroke.tag-tunnel {
@@ -1549,6 +1760,10 @@ path.casing.tag-tunnel {
 
 
 /* embankments / cuttings */
+path.shadow.tag-embankment,
+path.shadow.tag-cutting {
+    stroke-width: 28;
+}
 path.casing.tag-embankment,
 path.casing.tag-cutting {
     stroke-opacity: 0.5;
@@ -1558,21 +1773,15 @@ path.casing.tag-cutting {
     stroke-linecap: butt;
 }
 
-path.shadow.tag-embankment,
-path.shadow.tag-cutting {
-    stroke-width: 28;
+.low-zoom path.shadow.tag-embankment,
+.low-zoom path.shadow.tag-cutting {
+    stroke-width: 14;
 }
-
 .low-zoom path.casing.tag-embankment,
 .low-zoom path.casing.tag-cutting {
     stroke-width: 10;
 }
 
-.low-zoom path.shadow.tag-embankment,
-.low-zoom path.shadow.tag-cutting {
-    stroke-width: 14;
-}
-
 
 /* Surface - unpaved */
 path.casing.tag-unpaved {
@@ -1815,15 +2024,15 @@ path.fill.tag-amenity-shelter {
 
 .low-zoom.fill-wireframe path.shadow,
 .fill-wireframe path.shadow {
-    stroke-width: 8 !important;
+    stroke-width: 12;
 }
 
 .fill-wireframe path.shadow.related:not(.selected),
 .fill-wireframe path.shadow.hover:not(.selected) {
-    stroke-opacity: 0.4 !important;
+    stroke-opacity: 0.4;
 }
 .fill-wireframe path.shadow.selected {
-    stroke-opacity: 0.6 !important;
+    stroke-opacity: 0.6;
 }
 
 .fill-wireframe .point,
@@ -1877,7 +2086,7 @@ html, body {
 }
 
 body {
-    font: normal 12px/1.6667 -apple-system, BlinkMacSystemFont,
+    font: normal 12px/1.6667 "-apple-system", BlinkMacSystemFont,
         "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell",
         "Fira Sans", "Droid Sans", "Helvetica Neue", "Arial",
         sans-serif;
@@ -1886,6 +2095,7 @@ body {
     min-width: 768px;
     color:#333;
     overflow: hidden;
+    -ms-user-select: none;
 }
 
 .unsupported {
@@ -1942,6 +2152,9 @@ body {
     opacity: .5;
     float: right;
 }
+[dir='rtl'] .spinner {
+    float: left;
+}
 
 .spinner img {
     height: 40px;
@@ -1950,6 +2163,17 @@ body {
     margin-right: 10px;
     background: black;
 }
+[dir='rtl'] .spinner img {
+    margin-left: 10px;
+    margin-right: auto;
+    -moz-transform: scaleX(-1);
+    -o-transform: scaleX(-1);
+    -webkit-transform: scaleX(-1);
+    transform: scaleX(-1);
+    filter: FlipH;
+    -ms-filter: "FlipH";
+}
+
 
 div, textarea, label, input, form, span, ul, li, ol, a, button, h1, h2, h3, h4, h5, p, img {
     -moz-box-sizing: border-box;
@@ -2031,7 +2255,7 @@ a:hover {
 
 textarea  {
     resize: vertical;
-    font:normal 12px/20px -apple-system, BlinkMacSystemFont,
+    font:normal 12px/20px "-apple-system", BlinkMacSystemFont,
         "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell",
         "Fira Sans", "Droid Sans", "Helvetica Neue", "Arial",
         sans-serif;
@@ -2047,12 +2271,21 @@ input[type=email] {
     background-color: white;
     color: #333;
     border:1px solid #ccc;
-    padding:5px 10px;
+    padding:5px 20px 5px 10px;
     height:30px;
     width: 100%;
     border-radius:4px;
     text-overflow: ellipsis;
 }
+[dir='rtl'] textarea,
+[dir='rtl'] input[type=text],
+[dir='rtl'] input[type=search],
+[dir='rtl'] input[type=number],
+[dir='rtl'] input[type=url],
+[dir='rtl'] input[type=tel],
+[dir='rtl'] input[type=email] {
+    padding:5px 10px 5px 20px;
+}
 
 textarea:focus,
 input:focus {
@@ -2270,6 +2503,9 @@ button.minor {
     border-radius: 0;
     background-color: #fafafa;
 }
+[dir='rtl'] button.minor {
+    right: auto;
+}
 
 button.minor .icon {
     opacity: .5;
@@ -2430,6 +2666,7 @@ button.save.has-count .count::before {
     min-width: 768px;
 }
 
+
 /* Header for modals / panes
 ------------------------------------------------------- */
 
@@ -2515,6 +2752,7 @@ button.save.has-count .count::before {
     overflow: hidden;
     z-index: 10;
     background: #f6f6f6;
+    -ms-user-select: element;
 }
 
 .sidebar-component {
@@ -2544,8 +2782,6 @@ button.save.has-count .count::before {
 }
 
 
-
-
 .feature-list-pane .inspector-body {
     top: 120px;
 }
@@ -2693,6 +2929,24 @@ button.save.has-count .count::before {
     top: 10px;
 }
 
+.preset-icon-fill-vertex {
+    height: 40px;
+    width: 40px;
+    margin: auto;
+    position: absolute;
+    left: 10px;
+    top: 10px;
+    border: 1.5px solid #333;
+    border-radius: 20px;
+    background-color: #efefef;
+}
+
+[dir='rtl'] .preset-icon-fill-vertex,
+[dir='rtl'] .preset-icon-fill-area {
+  left: auto;
+  right: 10px;
+}
+
 .preset-icon-frame {
     position: absolute;
     top: 7px;
@@ -2701,6 +2955,10 @@ button.save.has-count .count::before {
     width: 42px;
     margin: auto;
 }
+[dir='rtl'] .preset-icon-frame {
+  left: auto;
+  right: 7px;
+}
 
 .preset-icon-frame .icon {
     width: 46px;
@@ -2881,6 +3139,9 @@ button.save.has-count .count::before {
     border-radius: 4px 4px 0 0;
     overflow: hidden;
 }
+[dir='rtl'] .form-label {
+    padding: 5px 10px 5px 0;
+}
 
 .form-label-button-wrap {
     position: absolute;
@@ -2891,6 +3152,9 @@ button.save.has-count .count::before {
     background: transparent;
     text-align: right;
 }
+[dir='rtl'] .form-label-button-wrap {
+    text-align: left;
+}
 
 .form-label-button-wrap .tag-reference-button {
     border-radius: 0 3px 0 0;
@@ -2907,6 +3171,11 @@ button.save.has-count .count::before {
     border-radius: 0;
     background: #f6f6f6;
 }
+[dir='rtl'] .form-label button {
+    border-left: none;
+    border-right: 1px solid #CCC;
+    border-radius: 4px 0 0 0;
+}
 .form-label button:hover {
     background: #f1f1f1;
 }
@@ -2944,6 +3213,7 @@ button.save.has-count .count::before {
 .inspector-hover .checkselect label:last-of-type,
 .inspector-hover .preset-input-wrap .label,
 .inspector-hover .form-field-multicombo,
+.inspector-hover .structure-extras-wrap,
 .inspector-hover input,
 .inspector-hover label {
     background: #ececec;
@@ -3002,14 +3272,26 @@ button.save.has-count .count::before {
 .inspector-hover .tag-row:first-child input.value {
     border-top-right-radius: 4px;
 }
+[dir='rtl'] .inspector-hover .tag-row:first-child input.value {
+    border-top-right-radius: 0;
+    border-top-left-radius: 4px;
+}
 
 .inspector-hover .tag-row:last-child input.value {
     border-bottom-right-radius: 4px;
 }
+[dir='rtl'] .inspector-hover .tag-row:last-child input.value {
+    border-bottom-right-radius: 0;
+    border-bottom-left-radius: 4px;
+}
 
 .inspector-hover .tag-row:last-child input.key {
     border-bottom-left-radius: 4px;
 }
+[dir='rtl'] .inspector-hover .tag-row:last-child input.key {
+    border-bottom-left-radius: 0;
+    border-bottom-right-radius: 4px;
+}
 
 .inspector-hover .more-fields {
     max-height: 0;
@@ -3057,12 +3339,21 @@ button.save.has-count .count::before {
     font-weight: bold;
 }
 
+.more-fields label {
+    display: flex;
+    flex-flow: row nowrap;
+    justify-content: space-between;
+    align-items: center;
+}
+
 .more-fields input {
     margin-left: 10px;
-    width: 50%;
+    flex: 1 1 50%;
+}
+[dir='rtl'] .more-fields input {
+    margin-left: auto;
+    margin-right: 10px;
 }
-
-/* preset form access */
 
 .preset-input-wrap .label {
     height: 30px;
@@ -3070,23 +3361,51 @@ button.save.has-count .count::before {
     padding: 5px 10px;
 }
 
+
+
+/* preset form access */
+/* preset form cycleway */
+
+.form-field-structure .structure-extras-wrap li,
+.form-field-cycleway .preset-input-wrap li,
 .form-field-access .preset-input-wrap li {
-    border-bottom: 1px solid #CCC;
+    border-bottom: 1px solid #ccc;
 }
+.form-field-structure .structure-extras-wrap li:last-child,
+.form-field-cycleway .preset-input-wrap li:last-child,
 .form-field-access .preset-input-wrap li:last-child {
     border-bottom: 0;
 }
-
+.structure-input-type-wrap input,
+.structure-input-layer-wrap input,
+.preset-input-cycleway-wrap input,
 .preset-input-access-wrap input {
     border-radius: 0;
     border-width: 0;
     border-left-width: 1px;
 }
+[dir='rtl'] .structure-input-type-wrap input,
+[dir='rtl'] .structure-input-layer-wrap input,
+[dir='rtl'] .preset-input-cycleway-wrap input,
+[dir='rtl'] .preset-input-access-wrap input {
+    border-left-width: 0;
+    border-right-width: 1px;
+}
 
 .preset-input-wrap li:last-child input {
     border-bottom-right-radius: 4px;
 }
 
+.structure-extras-wrap {
+    padding: 10px 10px;
+    background: #fff;
+}
+.structure-extras-wrap ul {
+    border: 1px solid #ccc;
+    border-radius: 4px;
+}
+
+
 /* preset form multicombo */
 
 .form-field-multicombo {
@@ -3144,20 +3463,6 @@ button.save.has-count .count::before {
     border-radius: 4px !important;
 }
 
-/* preset form cycleway */
-
-.form-field-cycleway .preset-input-wrap li {
-    border-bottom: 1px solid #CCC;
-}
-.form-field-cycleway .preset-input-wrap li:last-child {
-    border-bottom: 0;
-}
-
-.preset-input-cycleway-wrap input {
-    border-radius: 0;
-    border-width: 0;
-    border-left-width: 1px;
-}
 
 /* preset form numbers */
 
@@ -3232,6 +3537,21 @@ input[type=number] {
     opacity: .5;
 }
 
+.checkselect .reverser.button {
+    display: block;
+    float: right;
+    background-color: #eff2f7;
+    border: 1px solid #ccd5e3;
+    border-radius: 2px;
+    padding: 0px 8px;
+}
+[dir='rtl'] .checkselect .reverser.button {
+    float: left;
+}
+.checkselect .reverser.button.hide {
+    display: none;
+}
+
 /* Preset form radio button */
 
 .toggle-list button.remove {
@@ -3247,45 +3567,52 @@ input[type=number] {
     content: none;
 }
 
-.form-field .wiki-lang {
-    border-radius: 0;
-}
-
-.form-field .wiki-title {
-    padding-right: 10%;
-}
-
-.form-field .wiki-title ~ .combobox-caret {
-    margin-left: -18%;
-    margin-right: 9%;
-}
-
-.form-field .wiki-link {
-    float: right;
-    background: #fafafa;
-    padding: 5px;
-    text-align: center;
-}
-
-.form-field .wiki-link:hover {
-    background: #f1f1f1;
-}
-
 #preset-input-maxspeed {
     border-right: none;
     border-radius: 0 0 0 4px;
     width: 80%;
 }
+[dir='rtl'] #preset-input-maxspeed {
+    border-right: 1px solid #ccc;
+    border-radius: 0 0 4px 0;
+}
 
 .form-field .maxspeed-unit {
     border-radius: 0 0 4px 0;
     width: 20%;
 }
+[dir='rtl'] .form-field .maxspeed-unit {
+    border-right: 0;
+    border-radius: 0 0 0 4px;
+}
+
+/* Wikipedia field */
+.form-field .wiki-lang {
+    border-radius: 0;
+}
+.form-field .wiki-title {
+    padding-right: 20%;
+}
+[dir='rtl'] .form-field .wiki-title {
+    padding-left: 20%;
+    padding-right: 10px;
+}
 
-/* Name + translate form */
+.form-field .wiki-title ~ .combobox-caret {
+    right: 10%;
+}
+[dir='rtl'] .form-field .wiki-title ~ .combobox-caret {
+    right: auto;
+    left: 10%;
+}
 
+/* Localized field */
 .form-field .localized-main {
-    padding-right: 10%;
+    padding-right: 12%;
+}
+[dir='rtl'] .form-field .localized-main {
+    padding-left: 12%;
+    padding-right: 10px;
 }
 
 .form-field .button-input-action {
@@ -3300,6 +3627,12 @@ input[type=number] {
     height: 30px;
     vertical-align: top;
 }
+[dir='rtl'] .form-field .button-input-action {
+    margin-left: 0;
+    margin-right: -10%;
+    border-right-width: 1px;
+    border-radius: 0 0 0 4px;
+}
 
 .form-field .localized-wrap {
     padding: 0 10px;
@@ -3343,6 +3676,10 @@ input[type=number] {
     border-right: 0;
     border-bottom: 0;
 }
+[dir='rtl'] .addr-row input {
+    border-right: 1px solid #ccc;
+    border-left: 0;
+}
 
 .addr-row:first-of-type input {
     border-top: 0;
@@ -3351,6 +3688,9 @@ input[type=number] {
 .addr-row input:first-of-type {
     border-left: 0;
 }
+[dir='rtl'] .addr-row input:first-of-type {
+    border-right: 0;
+}
 
 .addr-row input {
     border-radius: 0;
@@ -3359,10 +3699,16 @@ input[type=number] {
 .addr-row:last-of-type input:first-of-type {
     border-radius: 0 0 0 4px;
 }
+[dir='rtl'] .addr-row:last-of-type input:first-of-type {
+    border-radius: 0 0 4px 0;
+}
 
 .addr-row:last-of-type input:last-of-type {
     border-radius: 0 0 4px 0;
 }
+[dir='rtl'] .addr-row:last-of-type input:last-of-type {
+    border-radius: 0 0 0 4px;
+}
 
 /* Restrictions editor */
 
@@ -3371,7 +3717,7 @@ input[type=number] {
     height: 300px;
 }
 
-.form-field-restrictions svg {
+.form-field-restrictions svg.surface {
     width: 100%;
     height: 100%;
 }
@@ -3453,6 +3799,15 @@ div.combobox {
     clear: both;
 }
 
+.tag-row.readonly,
+.tag-row.readonly input.key,
+.tag-row.readonly input.value,
+.tag-row.readonly button.remove {
+    color: #777777;
+    background-color: #eee;
+    cursor: not-allowed;
+}
+
 .tag-row input {
     height: 31px;
     border: 0;
@@ -3460,6 +3815,10 @@ div.combobox {
     border-bottom: 1px solid #CCC;
     border-left: 1px solid #CCC;
 }
+[dir='rtl'] .tag-row input {
+    border-left: none;
+    border-right: 1px solid #CCC;
+}
 
 .tag-row .key-wrap,
 .tag-row .input-wrap-position {
@@ -3467,6 +3826,10 @@ div.combobox {
     float: left;
     height: 30px;
 }
+[dir='rtl'] .tag-row .key-wrap,
+[dir='rtl'] .tag-row .input-wrap-position {
+    float: right;
+}
 
 .tag-row input.key {
     font-weight: bold;
@@ -3476,11 +3839,18 @@ div.combobox {
 .tag-row input.value {
     border-right: 1px solid #CCC;
 }
+[dir='rtl'] .tag-row input.value {
+    border-left: 1px solid #CCC;
+}
 
 .tag-row:first-child input.key {
     border-top: 1px solid #CCC;
     border-top-left-radius: 4px;
 }
+[dir='rtl'] .tag-row:first-child input.key {
+    border-top-left-radius: 0;
+    border-top-right-radius: 4px;
+}
 
 .tag-row:first-child input.value {
     border-top: 1px solid #CCC;
@@ -3494,6 +3864,11 @@ div.combobox {
     border-top-width: 0;
     border-left-width: 0;
 }
+[dir='rtl'] .tag-row button {
+    left: 10%;
+    border-left-width: 1px;
+    border-right-width: 0;
+}
 
 .tag-row button:hover {
     background: #f1f1f1;
@@ -3510,10 +3885,18 @@ div.combobox {
 .tag-row:first-child .tag-reference-button {
     border-top-right-radius: 4px;
 }
+[dir='rtl'] .tag-row:first-child .tag-reference-button {
+    border-top-left-radius: 4px;
+    border-top-right-radius: 0;
+}
 
 .tag-row:last-child .tag-reference-button {
     border-bottom-right-radius: 4px;
 }
+[dir='rtl'] .tag-row:last-child .tag-reference-button {
+    border-bottom-left-radius: 4px;
+    border-bottom-right-radius: 0;
+}
 
 .tag-row .tag-reference-button {
     right: 0;
@@ -3522,10 +3905,17 @@ div.combobox {
     top: 0;
     background: #fafafa;
 }
+[dir='rtl'] .tag-row .tag-reference-button {
+    left: auto;
+    right: auto;
+    margin-right: 35px;
+    border-left-width: 1px;
+    border-right-width: 0;
+}
 
 /* Adding form fields to tag editor */
 
-.inspector-inner .add-tag {
+.raw-tag-editor .add-tag {
     width: 40%;
     height: 30px;
     border-top: 0;
@@ -3533,11 +3923,11 @@ div.combobox {
     border-radius: 0 0 4px 4px;
 }
 
-.inspector-inner .add-tag:hover {
+.raw-tag-editor .add-tag:hover {
     background: rgba(0,0,0,.8);
 }
 
-.inspector-inner .add-tag .label {
+.raw-tag-editor .add-tag .label {
     display: none;
 }
 
@@ -4112,6 +4502,7 @@ div.full-screen > button:hover {
     margin-top: 10px;
     border-bottom: 1px solid #ccc;
     border-radius: 4px;
+    text-align: center;
 }
 
 .help-wrap .nav {
@@ -4204,6 +4595,10 @@ img.tile-removing {
     overflow:hidden;
     height:100%;
     background:#000;
+    -moz-user-select: none;
+    -webkit-user-select: none;
+    -ms-user-select: none;
+    user-select: none;
 }
 
 #supersurface {
@@ -4212,11 +4607,6 @@ img.tile-removing {
     -webkit-transform-origin:0 0;
     -moz-transform-origin:0 0;
     -o-transform-origin:0 0;
-
-    -moz-user-select: none;
-    -webkit-user-select: none;
-    -ms-user-select: none;
-    user-select: none;
 }
 
 #supersurface, .layer {
@@ -4332,6 +4722,7 @@ img.tile-removing {
     width: 240px;
     border-radius: 4px 0 0 0;
     border-bottom: 1px solid black;
+    -ms-user-select: element;
 }
 
 .infobox .infobox-heading {
@@ -4365,14 +4756,15 @@ img.tile-removing {
     bottom:0;
     border-radius: 0;
     pointer-events: none;
+    display: flex;
+    flex-direction: column;
+    -ms-user-select: element;
 }
 
 #attrib {
     width: 100%;
     height: 20px;
     margin-bottom: 5px;
-    float: left;
-    clear: both;
 }
 
 #attrib * { pointer-events: all; }
@@ -4397,24 +4789,80 @@ img.tile-removing {
 }
 
 .source-image {
-    height:20px;
+    height: 20px;
     vertical-align:top;
 }
 
 #footer {
-    width: 100%;
-    float: left;
-    clear: both;
     pointer-events: all;
+    display: block;
+    height: 30px;
+}
+
+
+#flash-wrap {
+    display: flex;
+    flex: 0 0 100%;
+    flex-flow: row nowrap;
+    justify-content: space-between;
+    max-height: 30px;
+    position: absolute;
+    right: 0;
+    left: 0;
+}
+
+#flash-wrap .content {
+    display: flex;
+    flex: 1 0 auto;
+    flex-flow: row nowrap;
+    align-items: center;
+    padding: 2px;
+    height: 30px;
+}
+
+
+#flash-wrap svg.operation-icon {
+    flex: 0 0 auto;
+    width: 20px;
+    height: 20px;
+    margin: 0 8px;
+}
+
+#flash-wrap div.operation-tip {
+    flex: 1 1 auto;
 }
 
+#footer-wrap {
+    display: flex;
+    flex: 0 0 100%;
+    flex-flow: row nowrap;
+    justify-content: space-between;
+    max-height: 30px;
+    position: absolute;
+    right: 0;
+    left: 0;
+}
+
+.footer-show {
+    bottom: 0px;
+    transition: bottom 75ms linear;
+    -moz-transition: bottom 75ms linear;
+    -webkit-transition: bottom 75ms linear;
+}
+
+.footer-hide {
+    bottom: -35px;
+    transition: bottom 75ms linear;
+    -moz-transition: bottom 75ms linear;
+    -webkit-transition: bottom 75ms linear;
+}
+
+
 #scale-block {
-    display: table-cell;
     vertical-align: bottom;
     width: 250px;
     max-height: 30px;
-    float: left;
-    clear: left;
+    flex: 0 0 250px;
     -moz-user-select: none;
     -webkit-user-select: none;
     -ms-user-select: none;
@@ -4423,13 +4871,16 @@ img.tile-removing {
 
 #info-block {
     max-height: 30px;
-    clear: right;
+    flex: 1 1 auto;
 }
 
 #scale {
     height: 30px;
     width: 100%;
 }
+[dir='rtl'] #scale {
+    transform: scaleX(-1);
+}
 
 #scale:hover {
     cursor: pointer;
@@ -4441,6 +4892,9 @@ img.tile-removing {
     fill: #ccc;
     text-anchor: start;
 }
+[dir='rtl'] #scale text {
+    transform: scaleX(-1);
+}
 
 #scale path {
     fill: none;
@@ -4449,12 +4903,19 @@ img.tile-removing {
     shape-rendering: crispEdges;
 }
 
+
 #about-list {
     text-align: right;
     margin-right: 10px;
     clear: right;
     overflow: hidden;
 }
+[dir='rtl'] #about-list {
+    text-align: left;
+    clear: left;
+    margin-left: 10px;
+    margin-right: 0;
+}
 
 #about-list li {
     float: right;
@@ -4462,12 +4923,24 @@ img.tile-removing {
     padding: 5px 0 5px 5px;
     margin-left: 5px;
 }
+[dir='rtl'] #about-list li {
+    float: left;
+    border-left: none;
+    border-right: 1px solid rgba(255,255,255,.5);
+    margin-left: 0;
+    margin-right: 5px;
+    padding: 5px 5px 5px 0;
+}
+
 
 #about-list li:last-child {
     border-left: 0;
     margin-left: 0;
     padding-left: 0;
 }
+[dir='rtl'] #about-list li:last-child {
+    border-right: none;
+}
 
 .source-switch a {
     padding: 2px 4px 4px 4px;
@@ -4490,12 +4963,13 @@ img.tile-removing {
 }
 
 .api-status {
-    float: right;
-    clear: both;
     text-align: right;
-    width: 100%;
     padding: 0px 10px;
     color: #eee;
+    flex: 1 1 auto;
+}
+[dir='rtl'] .api-status {
+    text-align: left;
 }
 
 .api-status.offline,
@@ -4511,6 +4985,33 @@ img.tile-removing {
     color: #ccf;
 }
 
+.badge {
+    display: inline-block;
+    background: #d32232;
+    width: 21px;
+    height: 20px;
+    border-radius: 11px;
+    margin-left: 6px;
+}
+[dir='rtl'] .badge {
+    margin-left: 0;
+    margin-right: 6px;
+}
+.badge a {
+    margin-right: 5px;
+}
+[dir='rtl'] .badge a {
+    margin-right: 0;
+    margin-left: 5px;
+}
+.badge .icon {
+    vertical-align: baseline;
+    width: 11px;
+    height: 11px;
+    fill: white;
+}
+
+
 /* Modals
 ------------------------------------------------------- */
 
@@ -4599,20 +5100,14 @@ img.tile-removing {
     background-color: #ececec;
 }
 
-.modal-actions button:before,
-.save-success a.button.osm:before,
-.walkthrough a:before {
-    display: block;
-    content: '';
+.logo {
     height: 100px;
     width: 100%;
     max-width: 100px;
     margin: auto;
-    margin-bottom: 10px;
-    background:transparent url(<%= asset_path("iD/img/iD-sprite.svg") %>) no-repeat -200px -460px;
 }
 
-.modal-actions :first-child {
+.modal-actions :first-child {
     border-right: 1px solid #CCC;
 }
 
@@ -4622,57 +5117,48 @@ img.tile-removing {
 
 /* Restore Modal
 ------------------------------------------------------- */
-
-.modal-actions .restore:before {
-    background-position: -500px -460px;
+.modal-actions .logo-restore {
+    color: #7092FF;
 }
-
-.modal-actions .reset:before {
-    background-position: -600px -460px;
+.modal-actions .logo-reset {
+    color: #E06C5E;
 }
 
 /* Success Modal
 ------------------------------------------------------- */
-
 .save-success p {
     padding: 15px 15px 0 15px;
 }
 .save-success a.details {
-  padding-left: 15px;
+    padding-left: 15px;
 }
 .save-success .button {
     padding-top: 15px;
 }
-
+.save-success .logo-osm {
+    color: #7092FF;
+    margin-bottom: 10px;
+}
 .save-success a.button.social {
     height: auto;
+    border-bottom: none;
 }
-
 .save-success .icon.social {
     height: 80px;
     width: 80px;
     color: #7092FF;
 }
 
-.save-success .button.osm:before {
-    background-position: -200px -460px;
-}
-
 /* Splash Modal
 ------------------------------------------------------- */
-
-.modal-actions .walkthrough:before,
-.walkthrough a:before {
-    background-position: -300px -460px;
+.modal-actions .logo-walkthrough,
+.modal-actions .logo-features {
+    color: #7092FF;
 }
 
-.modal-actions .start:before {
-    background-position: -400px -460px;
-}
 
-/* Commit Modal
+/* Save Mode
 ------------------------------------------------------- */
-
 .mode-save a.user-info {
     display: inline-block;
 }
@@ -4832,12 +5318,11 @@ img.tile-removing {
     position: absolute;
     display: none;
     color:#333;
-    text-align: left;
     font-size: 12px;
 }
 
 .tooltip.in {
-    opacity: 0.8;
+    opacity: 0.9;
     z-index: 1030;
     height: auto;
     display: block;
@@ -4850,6 +5335,7 @@ img.tile-removing {
 
 .tooltip.right {
     margin-left: 20px;
+    text-align: left;
 }
 
 .tooltip.bottom {
@@ -4961,15 +5447,25 @@ img.tile-removing {
     border-width: 0 5px 5px;
 }
 
+.tooltip-heading {
+    font-weight: bold;
+    background: #F6F6F6;
+    padding: 10px;
+    margin: -10px -10px 10px -10px;
+    border-radius: 3px 3px 0 0;
+    font-size: 14px;
+}
+
 .keyhint-wrap {
     background: #F6F6F6;
     padding: 10px;
-    margin: 10px -10px -10px;
+    margin: 10px -10px -10px -10px;
     border-radius: 0 0 3px 3px;
 }
 
 .tooltip-inner .keyhint {
     font-weight: bold;
+    margin-left: 5px;
 }
 
 /* Exceptions for tooltip layouts */
@@ -5000,6 +5496,7 @@ img.tile-removing {
 }
 
 .map-overlay .tooltip-inner,
+.map-overlay .tooltip-heading,
 .map-overlay .keyhint-wrap,
 .entity-editor-pane .tooltip-inner,
 .warning-section .tooltip-inner {
@@ -5015,15 +5512,42 @@ img.tile-removing {
 .map-control .tooltip {
     min-width: 160px;
 }
+
 /* Move over tooltips that are near the edge of screen */
 .add-point .tooltip {
     left: 33.3333% !important;
 }
-
-.curtain-tooltip.intro-points-add .tooltip-arrow,
 .add-point .tooltip .tooltip-arrow {
     left: 60px;
 }
+[dir='rtl'] .add-point .tooltip .tooltip-arrow {
+    left: auto;
+    right: 60px;
+}
+
+li:first-of-type .badge .tooltip,
+li.hide + li.version .badge .tooltip {
+    left: auto !important;
+    right: 5px !important;
+}
+[dir='rtl'] li:first-of-type .badge .tooltip,
+[dir='rtl'] li.hide + li.version .badge .tooltip {
+    left: 5px !important;
+    right: auto !important;
+}
+li:first-of-type .badge .tooltip .tooltip-arrow,
+li.hide + li.version .badge .tooltip .tooltip-arrow {
+    right: 15px !important;
+    left: auto !important;
+}
+[dir='rtl'] li:first-of-type .badge .tooltip .tooltip-arrow,
+[dir='rtl'] li.hide + li.version .badge .tooltip .tooltip-arrow {
+    left: 15px !important;
+    right: auto !important;
+}
+
+
+/* radial menu (deprecated) */
 
 .radial-menu-tooltip {
     opacity: 0.8;
@@ -5062,6 +5586,46 @@ img.tile-removing {
     color: rgba(40,40,40,.5);
 }
 
+/* edit menu */
+
+.edit-menu-tooltip {
+    display: none;
+    position: absolute;
+    width: 200px;
+}
+
+.edit-menu-background {
+    fill: #eee;
+}
+
+.edit-menu-item rect {
+    fill: #eee;
+}
+
+.edit-menu-item rect:active,
+.edit-menu-item rect:hover {
+    fill: #ccc;
+}
+
+.edit-menu-item.disabled rect {
+    cursor: not-allowed;
+}
+.edit-menu-item.disabled rect:hover {
+    cursor: not-allowed;
+    fill: #eee;
+}
+
+.edit-menu-item use {
+    fill: #222;
+    color: #79f;
+}
+
+.edit-menu-item.disabled use {
+    fill: rgba(32,32,32,.2);
+    color: rgba(40,40,40,.2);
+}
+
+
 .lasso-path {
     fill-opacity:0.3;
     stroke: #fff;
@@ -5131,6 +5695,8 @@ img.tile-removing {
 }
 
 .intro-nav-wrap {
+    display: flex;
+    flex-direction: row;
     position: absolute;
     left: 0;
     right: 0;
@@ -5139,34 +5705,67 @@ img.tile-removing {
     z-index: 1001;
 }
 
-.intro-nav-wrap button.step {
-    width: 20%;
+.intro-nav-wrap .intro-nav-wrap-logo {
+    flex: 0 0 auto;
+    height: 40px;
+    width: 40px;
+    color: white;
+    margin: 0px 20px;
+    vertical-align: middle;
+}
+
+.intro-nav-wrap .joined {
+    flex: 1 1 auto;
+    display: flex;
+    flex-direction: row;
 }
 
-.intro-nav-wrap button.step.finished {
+.intro-nav-wrap button.chapter {
+    flex: 1 1 100%;
+    padding: 0px 20px;
+}
+
+.intro-nav-wrap button.chapter.next {
+    animation-duration: 1s;
+    animation-name: pulse;
+    animation-iteration-count: infinite;
+    animation-direction: alternate;
+}
+@keyframes pulse {
+    from  { background: #7092ff; }
+    to    { background: #c6d4ff; }
+}
+
+.intro-nav-wrap button.chapter.finished {
     background: #8cd05f;
 }
 
-.intro-nav-wrap button.step .status {
-    margin-left: 3px;
+.intro-nav-wrap button.chapter .status {
     display: none;
 }
 
-.intro-nav-wrap button.step.finished .status {
+.intro-nav-wrap button.chapter.finished .status {
     display: inline-block;
 }
 
-
-.curtain-tooltip .tooltip-inner {
+.curtain-tooltip.tooltip.in {
+    opacity: 1;
+}
+.curtain-tooltip.tooltip {
     text-align: left;
-    padding: 20px;
+}
+[dir='rtl'] .curtain-tooltip.tooltip {
+    text-align: right;
 }
 
 .curtain-tooltip .tooltip-inner {
     font-size: 15px;
+    position: relative;
+    padding: 20px;
 }
 
-.curtain-tooltip .tooltip-inner .bold {
+.curtain-tooltip .tooltip-inner .button-section,
+.curtain-tooltip .tooltip-inner .instruction {
     font-weight: bold;
     display: block;
     border-top: 1px solid #CCC;
@@ -5176,35 +5775,66 @@ img.tile-removing {
     padding: 10px 20px 0 20px;
 }
 
-.curtain-tooltip .tooltip-inner .bold:only-child {
+[dir='rtl'] .curtain-tooltip .tooltip-inner .button-section button.col8 {
+    float: right;
+}
+
+.curtain-tooltip .tooltip-inner .instruction:only-child {
     border: 0;
     padding: 0;
     margin: 0;
 }
 
-.curtain-tooltip.intro-points-describe {
-    top: 133px !important;
+.curtain-tooltip .tooltip-inner .icon.pre-text {
+    vertical-align: text-top;
+    margin-right: 0;
+    margin-left: 0;
+    display: inline-block;
 }
 
-/* Tooltip illustrations */
+.curtain-tooltip.intro-points-describe ,
+.curtain-tooltip.intro-lines-name_road {
+    top: 133px !important;
+}
 
-.intro-points-add .tooltip-inner::before,
-.intro-areas-add .tooltip-inner::before,
-.intro-lines-add .tooltip-inner::before {
-    margin-left: -20px;
-    display: block;
-    content: "";
+.tooltip-illustration {
     height: 80px;
     width: 200px;
-    background:transparent url(<%= asset_path("iD/img/iD-sprite.svg") %>) no-repeat 0 -320px;
+    margin-left: -20px;
+    margin-top: -10px;
+}
+[dir='rtl'] .tooltip-illustration {
+    margin-left: auto;
+    margin-right: -20px;
+}
+
+.curtain-tooltip.intro-mouse {
+    -moz-user-select: none;
+    -webkit-user-select: none;
+    -ms-user-select: none;
+    user-select: none;
 }
 
-.intro-areas-add .tooltip-inner::before {
-    background-position: 0 -400px;
+.curtain-tooltip.intro-mouse .counter {
+    position: absolute;
+    display: block;
+    top: 50px;
+    width: 100%;
+    text-align: center;
+    font-weight: bold;
+    font-size: 14px;
+    z-index: 1003;
 }
 
-.intro-lines-add .tooltip-inner::before {
-    background-position: 0 -480px;
+.curtain-tooltip.intro-mouse .tooltip-illustration use {
+    fill: rgba(112, 146, 255, 0);
+    color: rgba(112, 146, 255, 0);
+}
+.curtain-tooltip.intro-mouse.leftclick .tooltip-illustration use {
+    fill: rgba(112, 146, 255, 1);
+}
+.curtain-tooltip.intro-mouse.rightclick .tooltip-illustration use {
+    color: rgba(112, 146, 255, 1);
 }
 
 .huge-modal-button {
@@ -5216,8 +5846,7 @@ img.tile-removing {
 .huge-modal-button .illustration {
     height: 100px;
     width: 100px;
-    background: rgba(0, 0, 0, 0) url(<%= asset_path("iD/img/iD-sprite.svg") %>) no-repeat -300px -460px;
-    margin: auto;
+    color: #7092FF;
 }
 
 .mapillary-wrap {
@@ -5279,11 +5908,6 @@ img.tile-removing {
   right: auto;
 }
 
-[dir='rtl'] .preset-icon-fill-area {
-  left: auto;
-  right: 10px;
-}
-
 [dir='rtl'] .map-data-control .layer-list button, [dir='rtl'] .background-control .layer-list button {
   float: left;
   border-left: none;
@@ -5305,43 +5929,12 @@ img.tile-removing {
 }
 
 /* preset form */
-[dir='rtl'] .form-label {
-  padding: 5px 10px 5px 0;
-}
-
-[dir='rtl'] .form-label button {
-  border-left: none;
-  border-right: 1px solid #CCC;
-}
-
-[dir='rtl'] .more-fields label {
-  padding: 5px 0 5px 10px;
-}
-
-[dir='rtl'] .form-label-button-wrap {
-  text-align: left;
-}
-
-[dir='rtl'] button.minor {
-  left: 0;
-  right: auto;
-}
-
-[dir='rtl'] .form-field .localized-main {
-  padding-left: 10%;
-  padding-right: 10px;
-}
 
 [dir='rtl'] .combobox-caret {
   margin-left: 0;
   margin-right: -30px;
 }
 
-[dir='rtl'] .form-field .button-input-action {
-  margin-left: 0;
-  margin-right: -10%;
-}
-
 [dir='rtl'] .icon.pre-text {
   margin-left: 5px;
   margin-right: 0;
@@ -5361,11 +5954,6 @@ img.tile-removing {
   border-radius: 3px 0 0 3px;
 }
 
-[dir='rtl'] .preset-icon-frame {
-  left: auto;
-  right: 7px;
-}
-
 [dir='rtl'] .preset-list-item button.tag-reference-button {
   left: 0;
   right: auto;
@@ -5385,10 +5973,6 @@ img.tile-removing {
   right: 18px;
 }
 
-[dir='rtl'] .form-field .maxspeed-unit {
-  border-radius: 0 0 0 4px;
-}
-
 [dir='rtl'] input[type="checkbox"], [dir='rtl'] input[type="radio"] {
   float: right;
   margin-left: 5px;
@@ -5399,45 +5983,6 @@ img.tile-removing {
   float: right;
 }
 
-/* tags form */
-[dir='rtl'] .tag-row .key-wrap,
-[dir='rtl'] .tag-row .input-wrap-position {
-  float: right;
-}
-
-[dir='rtl'] .tag-row input {
-  border-left: none;
-  border-right: 1px solid #CCC;
-}
-
-[dir='rtl'] .tag-row:first-child input.key {
-  border-top-left-radius: 0;
-  border-top-right-radius: 4px;
-}
-
-[dir='rtl'] .tag-row button {
-  left: 10%;
-  border-left-width: 1px;
-}
-
-[dir='rtl'] .tag-row .tag-reference-button {
-  left: auto;
-  right: auto;
-  margin-right: 35px;
-  border-left-width: 1px;
-  border-right-width: 0;
-}
-
-[dir='rtl'] .tag-row:first-child .tag-reference-button {
-  border-top-left-radius: 4px;
-  border-top-right-radius: 0;
-}
-
-[dir='rtl'] .tag-row:last-child .tag-reference-button {
-  border-bottom-left-radius: 4px;
-  border-bottom-right-radius: 0;
-}
-
 /* map control buttons */
 [dir='rtl'] .map-controls {
   left: 0;
@@ -5528,54 +6073,6 @@ img.tile-removing {
   border-radius: 4px 0 0 4px;
 }
 
-[dir='rtl'] .spinner {
-  float: left;
-}
-
-[dir='rtl'] .spinner img {
-  margin-left: 10px;
-  margin-right: auto;
-  -moz-transform: scaleX(-1);
-  -o-transform: scaleX(-1);
-  -webkit-transform: scaleX(-1);
-  transform: scaleX(-1);
-  filter: FlipH;
-  -ms-filter: "FlipH";
-}
-
-/* footer */
-[dir='rtl'] #scale-block {
-  float: right;
-  clear: right;
-}
-
-[dir='rtl'] #info-block {
-  clear: left;
-}
-
-[dir='rtl'] #about-list {
-  text-align: left;
-  clear: left;
-  margin-left: 10px;
-  margin-right: 0;
-}
-
-[dir='rtl'] #about-list li {
-  float: left;
-  border-left: none;
-  border-right: 1px solid rgba(255,255,255,.5);
-  margin-left: 0;
-  margin-right: 5px;
-  padding: 5px 5px 5px 0;
-}
-
-[dir='rtl'] #about-list li:last-child {
-  border-right: none;
-}
-
-[dir='rtl'] #scale text {
-  text-anchor: end;
-}
 
 /* increment / decrement control - code by Naoufel Razouane */