Update to iD v2.17.3
authorQuincy Morgan <quincy.morgan@icloud.com>
Fri, 24 Apr 2020 23:30:40 +0000 (16:30 -0700)
committerQuincy Morgan <quincy.morgan@icloud.com>
Fri, 24 Apr 2020 23:30:40 +0000 (16:30 -0700)
77 files changed:
vendor/assets/iD/iD.css.erb
vendor/assets/iD/iD.js
vendor/assets/iD/iD/img/community-sprite.svg
vendor/assets/iD/iD/img/fa-sprite.svg
vendor/assets/iD/iD/img/maki-sprite.svg
vendor/assets/iD/iD/img/temaki-sprite.svg
vendor/assets/iD/iD/img/tnp-sprite.svg
vendor/assets/iD/iD/locales/af.json
vendor/assets/iD/iD/locales/ar.json
vendor/assets/iD/iD/locales/ast.json
vendor/assets/iD/iD/locales/be.json
vendor/assets/iD/iD/locales/bg.json
vendor/assets/iD/iD/locales/bn.json
vendor/assets/iD/iD/locales/bs.json
vendor/assets/iD/iD/locales/ca.json
vendor/assets/iD/iD/locales/ckb.json
vendor/assets/iD/iD/locales/cs.json
vendor/assets/iD/iD/locales/cy.json
vendor/assets/iD/iD/locales/da.json
vendor/assets/iD/iD/locales/de.json
vendor/assets/iD/iD/locales/dv.json
vendor/assets/iD/iD/locales/el.json
vendor/assets/iD/iD/locales/en-GB.json
vendor/assets/iD/iD/locales/en.json
vendor/assets/iD/iD/locales/eo.json
vendor/assets/iD/iD/locales/es.json
vendor/assets/iD/iD/locales/et.json
vendor/assets/iD/iD/locales/eu.json
vendor/assets/iD/iD/locales/fa.json
vendor/assets/iD/iD/locales/fi.json
vendor/assets/iD/iD/locales/fr.json
vendor/assets/iD/iD/locales/gl.json
vendor/assets/iD/iD/locales/gu.json
vendor/assets/iD/iD/locales/he.json
vendor/assets/iD/iD/locales/hr.json
vendor/assets/iD/iD/locales/hu.json
vendor/assets/iD/iD/locales/hy.json
vendor/assets/iD/iD/locales/id.json
vendor/assets/iD/iD/locales/is.json
vendor/assets/iD/iD/locales/it.json
vendor/assets/iD/iD/locales/ja.json
vendor/assets/iD/iD/locales/kn.json
vendor/assets/iD/iD/locales/ko.json
vendor/assets/iD/iD/locales/ku.json
vendor/assets/iD/iD/locales/lt.json
vendor/assets/iD/iD/locales/lv.json
vendor/assets/iD/iD/locales/mg.json
vendor/assets/iD/iD/locales/mk.json
vendor/assets/iD/iD/locales/ms.json
vendor/assets/iD/iD/locales/my.json
vendor/assets/iD/iD/locales/nl.json
vendor/assets/iD/iD/locales/nn.json
vendor/assets/iD/iD/locales/no.json
vendor/assets/iD/iD/locales/pl.json
vendor/assets/iD/iD/locales/pt-BR.json
vendor/assets/iD/iD/locales/pt.json
vendor/assets/iD/iD/locales/ro.json
vendor/assets/iD/iD/locales/ru.json
vendor/assets/iD/iD/locales/si.json
vendor/assets/iD/iD/locales/sk.json
vendor/assets/iD/iD/locales/sl.json
vendor/assets/iD/iD/locales/so.json
vendor/assets/iD/iD/locales/sq.json
vendor/assets/iD/iD/locales/sr.json
vendor/assets/iD/iD/locales/sv.json
vendor/assets/iD/iD/locales/ta.json
vendor/assets/iD/iD/locales/te.json
vendor/assets/iD/iD/locales/th.json
vendor/assets/iD/iD/locales/tl.json
vendor/assets/iD/iD/locales/tr.json
vendor/assets/iD/iD/locales/uk.json
vendor/assets/iD/iD/locales/vi.json
vendor/assets/iD/iD/locales/yue.json
vendor/assets/iD/iD/locales/zh-CN.json
vendor/assets/iD/iD/locales/zh-HK.json
vendor/assets/iD/iD/locales/zh-TW.json
vendor/assets/iD/iD/locales/zh.json

index 0e0e31f68e282512163b3420c43db3911d430617..284cc036e983b6b2a2da1f9da4ba8c9932a31474 100644 (file)
@@ -3,19 +3,7 @@
    License: none (public domain)
 */
 
-html, body, div, span, applet, object, iframe,
-h1, h2, h3, h4, h5, h6, p, blockquote, pre,
-a, abbr, acronym, address, big, cite, code,
-del, dfn, em, img, ins, kbd, q, s, samp,
-small, strike, strong, sub, sup, tt, var,
-b, u, i, center,
-dl, dt, dd, ol, ul, li,
-fieldset, form, label, legend,
-table, caption, tbody, tfoot, thead, tr, th, td,
-article, aside, canvas, details, embed,
-figure, figcaption, footer, header, hgroup,
-menu, nav, output, ruby, section, summary,
-time, mark, audio, video {
+.ideditor div, .ideditor span, .ideditor applet, .ideditor object, .ideditor iframe, .ideditor h1, .ideditor h2, .ideditor h3, .ideditor h4, .ideditor h5, .ideditor h6, .ideditor p, .ideditor blockquote, .ideditor pre, .ideditor a, .ideditor abbr, .ideditor acronym, .ideditor address, .ideditor big, .ideditor cite, .ideditor code, .ideditor del, .ideditor dfn, .ideditor em, .ideditor img, .ideditor ins, .ideditor kbd, .ideditor q, .ideditor s, .ideditor samp, .ideditor small, .ideditor strike, .ideditor strong, .ideditor sub, .ideditor sup, .ideditor tt, .ideditor var, .ideditor b, .ideditor u, .ideditor i, .ideditor center, .ideditor dl, .ideditor dt, .ideditor dd, .ideditor ol, .ideditor ul, .ideditor li, .ideditor fieldset, .ideditor form, .ideditor label, .ideditor legend, .ideditor table, .ideditor caption, .ideditor tbody, .ideditor tfoot, .ideditor thead, .ideditor tr, .ideditor th, .ideditor td, .ideditor article, .ideditor aside, .ideditor canvas, .ideditor details, .ideditor embed, .ideditor figure, .ideditor figcaption, .ideditor footer, .ideditor header, .ideditor hgroup, .ideditor menu, .ideditor nav, .ideditor output, .ideditor ruby, .ideditor section, .ideditor summary, .ideditor time, .ideditor mark, .ideditor audio, .ideditor video {
        margin: 0;
        padding: 0;
        border: 0;
@@ -24,39 +12,34 @@ time, mark, audio, video {
        vertical-align: baseline;
 }
 /* HTML5 display-role reset for older browsers */
-article, aside, details, figcaption, figure,
-footer, header, hgroup, menu, nav, section {
+.ideditor article, .ideditor aside, .ideditor details, .ideditor figcaption, .ideditor figure, .ideditor footer, .ideditor header, .ideditor hgroup, .ideditor menu, .ideditor nav, .ideditor section {
        display: block;
 }
-body {
-       line-height: 1;
-}
-ol, ul {
+.ideditor ol, .ideditor ul {
        list-style: none;
 }
-blockquote, q {
+.ideditor blockquote, .ideditor q {
        quotes: none;
 }
-blockquote:before, blockquote:after,
-q:before, q:after {
+.ideditor blockquote:before, .ideditor blockquote:after, .ideditor q:before, .ideditor q:after {
        content: '';
        content: none;
 }
-table {
+.ideditor table {
        border-collapse: collapse;
        border-spacing: 0;
 }
-a { text-decoration: none;}
+.ideditor a { text-decoration: none;}
 /*
  * 1. Corrects font family not being inherited in all browsers.
  * 2. Corrects font size not being inherited in all browsers.
  * 3. Addresses margins set differently in Firefox 4+, Safari 5, and Chrome
  */
 
-button,
-input,
-select,
-textarea {
+.ideditor button,
+.ideditor input,
+.ideditor select,
+.ideditor textarea {
     font-family: inherit; /* 1 */
     font-size: 100%; /* 2 */
     margin: 0; /* 3 */
@@ -68,39 +51,37 @@ textarea {
  * the UA stylesheet.
  */
 
-button,
-input {
+.ideditor button,
+.ideditor input {
     line-height: normal;
 }
 
 /* Hide default number spinner controls */
-input[type="number"]::-webkit-inner-spin-button,
-input[type="number"]::-webkit-outer-spin-button {
+.ideditor input[type="number"]::-webkit-inner-spin-button,
+.ideditor input[type="number"]::-webkit-outer-spin-button {
 display: none;
 }
 
 /*
- * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
- *    and `video` controls.
- * 2. Corrects inability to style clickable `input` types in iOS.
- * 3. Improves usability and consistency of cursor style between image-type
+ * 1. Corrects inability to style clickable `input` types in iOS.
+ * 2. Improves usability and consistency of cursor style between image-type
  *    `input` and others.
  */
 
-button,
-html input[type="button"], /* 1 */
-input[type="reset"],
-input[type="submit"] {
-    -webkit-appearance: button; /* 2 */
-    cursor: pointer; /* 3 */
+.ideditor button,
+.ideditor input[type="button"],
+.ideditor input[type="reset"],
+.ideditor input[type="submit"] {
+    -webkit-appearance: button; /* 1 */
+    cursor: pointer; /* 2 */
 }
 
 /*
  * Re-set default cursor for disabled elements.
  */
 
-button[disabled],
-input[disabled] {
+.ideditor button[disabled],
+.ideditor input[disabled] {
     cursor: default;
 }
 
@@ -109,8 +90,8 @@ input[disabled] {
  * 2. Removes excess padding in IE 8/9.
  */
 
-input[type="checkbox"],
-input[type="radio"] {
+.ideditor input[type="checkbox"],
+.ideditor input[type="radio"] {
     box-sizing: border-box; /* 1 */
     padding: 0; /* 2 */
 }
@@ -121,7 +102,7 @@ input[type="radio"] {
  *    (include `-moz` to future-proof).
  */
 
-input[type="search"] {
+.ideditor input[type="search"] {
     -webkit-appearance: none; /* 1 */
     -moz-box-sizing: border-box;
     -webkit-box-sizing: border-box; /* 2 */
@@ -133,8 +114,8 @@ input[type="search"] {
  * on OS X.
  */
 
-input[type="search"]::-webkit-search-cancel-button,
-input[type="search"]::-webkit-search-decoration {
+.ideditor input[type="search"]::-webkit-search-cancel-button,
+.ideditor input[type="search"]::-webkit-search-decoration {
     -webkit-appearance: none;
 }
 
@@ -142,8 +123,8 @@ input[type="search"]::-webkit-search-decoration {
  * Removes inner padding and border in Firefox 4+.
  */
 
-button::-moz-focus-inner,
-input::-moz-focus-inner {
+.ideditor button::-moz-focus-inner,
+.ideditor input::-moz-focus-inner {
     border: 0;
     padding: 0;
 }
@@ -152,73 +133,73 @@ input::-moz-focus-inner {
 ** Markup free clearing
 ** Details: http://www.positioniseverything.net/easyclearing.html
 */
-.cf:before,
-.cf:after {
+.ideditor .cf:before,
+.ideditor .cf:after {
     content: " "; /* 1 */
     display: table; /* 2 */
 }
 
-.cf:after {
+.ideditor .cf:after {
     clear: both;
 }
 /* base styles */
-.layer-osm path {
+.ideditor .layer-osm path {
     fill: none;
 }
 
 /* IE/Edge needs these overrides for markers to show up */
-.layer-osm path.oneway-marker-path          { fill: #000; }
-.layer-osm path.sided-marker-natural-path   { fill: rgb(170, 170, 170); }
-.layer-osm path.sided-marker-coastline-path { fill: #77dede; }
-.layer-osm path.sided-marker-barrier-path   { fill: #ddd; }
-.layer-osm path.sided-marker-man_made-path  { fill: #fff; }
+.ideditor .layer-osm path.oneway-marker-path          { fill: #000; }
+.ideditor .layer-osm path.sided-marker-natural-path   { fill: rgb(170, 170, 170); }
+.ideditor .layer-osm path.sided-marker-coastline-path { fill: #77dede; }
+.ideditor .layer-osm path.sided-marker-barrier-path   { fill: #ddd; }
+.ideditor .layer-osm path.sided-marker-man_made-path  { fill: #fff; }
 
 /* IE/Edge rule for <use> marker style */
-.layer-osm path.viewfield-marker-path {
+.ideditor .layer-osm path.viewfield-marker-path {
     fill: #333;
     fill-opacity: 0.75;
     stroke: #fff;
     stroke-width: 0.5px;
     stroke-opacity: 0.75;
 }
-.fill-wireframe .layer-osm path.viewfield-marker-path {   /* IE/Edge rule for <use> marker style */
+.ideditor .fill-wireframe .layer-osm path.viewfield-marker-path {   /* IE/Edge rule for <use> marker style */
     fill: none;
 }
 
 /* the above fill: none rule affects paths in <use> shadow dom only in Firefox */
-.layer-osm use.icon path { fill: #333; }                       /* FF svg Maki icons */
-.layer-osm .turn use path { fill: #000; }                      /* FF turn restriction icons */
-#turn-only-shape2, #turn-only-u-shape2 { fill: #7092ff; }      /* FF turn-only, turn-only-u */
-#turn-no-shape2, #turn-no-u-shape2     { fill: #e06d5f; }      /* FF turn-no, turn-no-u */
-#turn-yes-shape2, #turn-yes-u-shape2   { fill: #8cd05f; }      /* FF turn-yes, turn-yes-u */
+.ideditor .layer-osm use.icon path { fill: #333; }                       /* FF svg Maki icons */
+.ideditor .layer-osm .turn use path { fill: #000; }                      /* FF turn restriction icons */
+.ideditor #turn-only-shape2, .ideditor #turn-only-u-shape2 { fill: #7092ff; }      /* FF turn-only, turn-only-u */
+.ideditor #turn-no-shape2, .ideditor #turn-no-u-shape2     { fill: #e06d5f; }      /* FF turn-no, turn-no-u */
+.ideditor #turn-yes-shape2, .ideditor #turn-yes-u-shape2   { fill: #8cd05f; }      /* FF turn-yes, turn-yes-u */
 
 
 /* No interactivity except what we specifically allow */
-.data-layer.osm *,
-.data-layer.notes *,
-.data-layer.keepRight *,
-.data-layer.improveOSM * {
+.ideditor .data-layer.osm *,
+.ideditor .data-layer.notes *,
+.ideditor .data-layer.keepRight *,
+.ideditor .data-layer.improveOSM * {
     pointer-events: none;
 }
 
-.lasso #map {
+.ideditor .lasso #map {
     pointer-events: visibleStroke;
 }
 
 
 /* `.target` objects are interactive */
 /* They can be picked up, clicked, hovered, or things can connect to them */
-.qa_error.target,
-.note.target,
-.node.target,
-.turn .target {
+.ideditor .qa_error.target,
+.ideditor .note.target,
+.ideditor .node.target,
+.ideditor .turn .target {
     pointer-events: fill;
     fill-opacity: 0.8;
     fill: currentColor;
     stroke: none;
 }
 
-.way.target {
+.ideditor .way.target {
     pointer-events: stroke;
     fill: none;
     stroke-width: 12;
@@ -230,8 +211,8 @@ input::-moz-focus-inner {
 
 
 /* `.target-nope` objects are explicitly forbidden to join to */
-.surface:not(.nope-disabled) .node.target.target-nope,
-.surface:not(.nope-disabled) .way.target.target-nope {
+.ideditor .surface:not(.nope-disabled) .node.target.target-nope,
+.ideditor .surface:not(.nope-disabled) .way.target.target-nope {
     cursor: not-allowed;
 }
 
@@ -239,125 +220,125 @@ input::-moz-focus-inner {
 /* `.active` objects (currently being drawn or dragged) are not interactive */
 /* This is important to allow the events to drop through to whatever is */
 /* below them on the map, so you can still hover and connect to other things. */
-.layer-osm .active {
+.ideditor .layer-osm .active {
     pointer-events: none !important;
 }
 
 /* points, notes & QA */
 
 /* points, notes, markers */
-g.qa_error .stroke,
-g.note .stroke {
+.ideditor g.qa_error .stroke,
+.ideditor g.note .stroke {
     stroke: #222;
     stroke-width: 1;
     fill: #222;
     opacity: 0.6;
 }
 
-g.qa_error.active .stroke,
-g.note.active .stroke {
+.ideditor g.qa_error.active .stroke,
+.ideditor g.note.active .stroke {
     stroke: #222;
     stroke-width: 1;
     fill: #222;
     opacity: 0.8;
 }
 
-g.point .stroke {
+.ideditor g.point .stroke {
     stroke: #444;
     stroke-width: 1;
     fill: #fff;
 }
 
 
-g.qa_error .shadow,
-g.point .shadow,
-g.note .shadow {
+.ideditor g.qa_error .shadow,
+.ideditor g.point .shadow,
+.ideditor g.note .shadow {
     fill: none;
     stroke: #f6634f;
     stroke-width: 16;
     stroke-opacity: 0;
 }
 
-g.qa_error.hover:not(.selected) .shadow,
-g.note.hover:not(.selected) .shadow,
-g.point.related:not(.selected) .shadow,
-g.point.hover:not(.selected) .shadow {
+.ideditor g.qa_error.hover:not(.selected) .shadow,
+.ideditor g.note.hover:not(.selected) .shadow,
+.ideditor g.point.related:not(.selected) .shadow,
+.ideditor g.point.hover:not(.selected) .shadow {
     stroke-opacity: 0.5;
 }
 
-g.qa_error.selected .shadow,
-g.note.selected .shadow,
-g.point.selected .shadow {
+.ideditor g.qa_error.selected .shadow,
+.ideditor g.note.selected .shadow,
+.ideditor g.point.selected .shadow {
     stroke-opacity: 0.7;
 }
 
 /* g.note ellipse.stroke, */
-g.point ellipse.stroke {
+.ideditor g.point ellipse.stroke {
     display: none;
 }
-.mode-drag-note g.note.active ellipse.stroke,
-.mode-drag-node g.point.active ellipse.stroke {
+.ideditor.mode-drag-note g.note.active ellipse.stroke,
+.ideditor.mode-drag-node g.point.active ellipse.stroke {
     display: block;
 }
 
 
 /* vertices and midpoints */
-g.vertex .fill {
+.ideditor g.vertex .fill {
     fill: #000;
 }
-g.vertex .stroke {
+.ideditor g.vertex .stroke {
     stroke: #666;
     stroke-width: 1;
     fill: white;
 }
-g.vertex.shared .stroke {
+.ideditor g.vertex.shared .stroke {
     fill: #bbb;
 }
-g.midpoint .fill {
+.ideditor g.midpoint .fill {
     fill: #eee;
     stroke: #444;
     stroke-opacity: .6;
     opacity: .7;
 }
 
-g.vertex .shadow,
-g.midpoint .shadow {
+.ideditor g.vertex .shadow,
+.ideditor g.midpoint .shadow {
     stroke-width: 6;
     fill: #f6634f;
     fill-opacity: 0;
 }
 
-g.vertex.related:not(.selected) .shadow,
-g.vertex.hover:not(.selected) .shadow,
-g.midpoint.related:not(.selected) .shadow,
-g.midpoint.hover:not(.selected) .shadow {
+.ideditor g.vertex.related:not(.selected) .shadow,
+.ideditor g.vertex.hover:not(.selected) .shadow,
+.ideditor g.midpoint.related:not(.selected) .shadow,
+.ideditor g.midpoint.hover:not(.selected) .shadow {
     fill-opacity: 0.5;
 }
 
-g.vertex.selected .shadow {
+.ideditor g.vertex.selected .shadow {
     fill-opacity: 0.7;
 }
 
 
 /* lines */
-.preset-icon .icon.iD-other-line {
+.ideditor .preset-icon .icon.iD-other-line {
     color: #989898;
 }
-.preset-icon-container path.line.casing {
+.ideditor .preset-icon-container path.line.casing {
     stroke: #afafaf;
 }
 
-path.line {
+.ideditor path.line {
     stroke-linecap: round;
     stroke-linejoin: round;
 }
 
-path.stroke {
+.ideditor path.stroke {
     stroke: #000;
     stroke-width: 4;
 }
 
-path.shadow {
+.ideditor path.shadow {
     stroke: #f6634f;
     stroke-width: 16;
     stroke-opacity: 0;
@@ -365,44 +346,44 @@ path.shadow {
     stroke-linejoin: round;
 }
 
-path.shadow.related:not(.selected),
-path.shadow.hover:not(.selected) {
+.ideditor path.shadow.related:not(.selected),
+.ideditor path.shadow.hover:not(.selected) {
     stroke-opacity: 0.4;
 }
 
-path.shadow.selected {
+.ideditor path.shadow.selected {
     stroke-opacity: 0.7;
 }
 
-path.line.stroke {
+.ideditor path.line.stroke {
     stroke: #fff;
     stroke-width: 2;
 }
 
 
 /* Labels / Markers */
-text {
+.ideditor text {
     font-size: 10px;
     color: #222;
     opacity: 1;
 }
 
-.oneway .textpath.tag-waterway {
+.ideditor .oneway .textpath.tag-waterway {
     fill: #002F35;
 }
 
-.onewaygroup path.oneway,
-.viewfieldgroup path.viewfield,
-.sidedgroup path.sided {
+.ideditor .onewaygroup path.oneway,
+.ideditor .viewfieldgroup path.viewfield,
+.ideditor .sidedgroup path.sided {
     stroke-width: 6px;
 }
 
-text.arealabel-halo,
-text.linelabel-halo,
-text.pointlabel-halo,
-text.arealabel,
-text.linelabel,
-text.pointlabel {
+.ideditor text.arealabel-halo,
+.ideditor text.linelabel-halo,
+.ideditor text.pointlabel-halo,
+.ideditor text.arealabel,
+.ideditor text.linelabel,
+.ideditor text.pointlabel {
     dominant-baseline: middle;
     text-anchor: middle;
     font-size: 12px;
@@ -415,98 +396,98 @@ text.pointlabel {
 
 /* Opera doesn't support dominant-baseline. See #715 */
 /* Safari 10 seems to have regressed too */
-.linelabel-halo .textpath,
-.linelabel .textpath {
+.ideditor .linelabel-halo .textpath,
+.ideditor .linelabel .textpath {
   baseline-shift: -33%;
   dominant-baseline: auto;
 }
 
-.labels-group.halo text {
+.ideditor .labels-group.halo text {
     opacity: 0.7;
     stroke: #fff;
     stroke-width: 5px;
     stroke-miterlimit: 1;
 }
 
-text.nolabel {
+.ideditor text.nolabel {
     opacity: 0 !important;
 }
-text.point {
+.ideditor text.point {
     font-size: 10px;
 }
 
-.icon.areaicon-halo {
+.ideditor .icon.areaicon-halo {
     opacity: 0.6;
     stroke: #999;
     stroke-width: 2px;
     stroke-miterlimit: 1;
 }
-.icon.areaicon {
+.ideditor .icon.areaicon {
     fill: #222;
     opacity: 0.8;
 }
 
 
 /* Wikidata-tagged */
-g.point.tag-wikidata path.stroke {
+.ideditor g.point.tag-wikidata path.stroke {
     stroke-width: 2px;
     stroke: #666;
     fill: #eee;
 }
-g.point.tag-wikidata .icon {
+.ideditor g.point.tag-wikidata .icon {
     color: #666;
 }
 
 /* Selected Members */
-g.vertex.selected-member .shadow,
-g.point.selected-member .shadow,
-path.shadow.selected-member {
+.ideditor g.vertex.selected-member .shadow,
+.ideditor g.point.selected-member .shadow,
+.ideditor path.shadow.selected-member {
     stroke-opacity: 0.95;
     stroke: #FFDE70;
 }
 
 /* Highlighting */
-g.point.highlighted .shadow,
-path.shadow.highlighted {
+.ideditor g.point.highlighted .shadow,
+.ideditor path.shadow.highlighted {
     stroke-opacity: 0.95;
     stroke: #7092ff;
 }
-g.vertex.highlighted .shadow {
+.ideditor g.vertex.highlighted .shadow {
     stroke-width: 7;
     stroke-opacity: 0.95;
     stroke: #7092ff;
 }
 
 /* Turn Restrictions */
-.points-group.turns g.turn rect,
-.points-group.turns g.turn circle {
+.ideditor .points-group.turns g.turn rect,
+.ideditor .points-group.turns g.turn circle {
     fill: none;
 }
 
 /* Turn restriction paths and vertices */
-.surface.tr .way.target,
-.surface.tr path.shadow.selected,
-.surface.tr path.shadow.related {
+.ideditor .surface.tr .way.target,
+.ideditor .surface.tr path.shadow.selected,
+.ideditor .surface.tr path.shadow.related {
     stroke-width: 25px;
 }
 
-.surface.tr path.shadow.selected,
-.surface.tr path.shadow.related,
-.surface.tr g.vertex.selected .shadow,
-.surface.tr g.vertex.related .shadow {
+.ideditor .surface.tr path.shadow.selected,
+.ideditor .surface.tr path.shadow.related,
+.ideditor .surface.tr g.vertex.selected .shadow,
+.ideditor .surface.tr g.vertex.related .shadow {
     stroke-opacity: 0.7;
     stroke: #777;
 }
-.surface.tr path.shadow.related.allow,
-.surface.tr g.vertex.related.allow .shadow {
+.ideditor .surface.tr path.shadow.related.allow,
+.ideditor .surface.tr g.vertex.related.allow .shadow {
     stroke: #5b3;
 }
-.surface.tr path.shadow.related.restrict,
-.surface.tr g.vertex.related.restrict .shadow {
+.ideditor .surface.tr path.shadow.related.restrict,
+.ideditor .surface.tr g.vertex.related.restrict .shadow {
     stroke: #d53;
 }
-.surface.tr path.shadow.related.only,
-.surface.tr g.vertex.related.only .shadow {
+.ideditor .surface.tr path.shadow.related.only,
+.ideditor .surface.tr g.vertex.related.only .shadow {
     stroke: #68f;
 }
 
@@ -521,35 +502,35 @@ g.vertex.highlighted .shadow {
 */
 
 /* Vertex visual diffs */
-.highlight-edited g.points g.node.vertex.added > circle.shadow,
-.highlight-edited g.points g.node.vertex.retagged > circle.shadow,
-.highlight-edited g.points g.node.vertex.moved > circle.shadow {
+.ideditor .highlight-edited g.points g.node.vertex.added > circle.shadow,
+.ideditor .highlight-edited g.points g.node.vertex.retagged > circle.shadow,
+.ideditor .highlight-edited g.points g.node.vertex.moved > circle.shadow {
     fill-opacity: 0.8;
 }
-.highlight-edited g.points g.node.vertex.added > circle.shadow {
+.ideditor .highlight-edited g.points g.node.vertex.added > circle.shadow {
     fill: rgb(133, 255, 103);
 }
-.highlight-edited g.points g.node.vertex.retagged > circle.shadow {
+.ideditor .highlight-edited g.points g.node.vertex.retagged > circle.shadow {
     fill: #fcde5a;
 }
-.highlight-edited g.points g.node.vertex.moved > circle.shadow {
+.ideditor .highlight-edited g.points g.node.vertex.moved > circle.shadow {
     fill: rgb(255, 126, 46);
 }
 
 /* Point visual diffs */
-.highlight-edited g.points g.node.point.added > path.shadow,
-.highlight-edited g.points g.node.point.retagged > path.shadow,
-.highlight-edited g.points g.node.point.moved > path.shadow {
+.ideditor .highlight-edited g.points g.node.point.added > path.shadow,
+.ideditor .highlight-edited g.points g.node.point.retagged > path.shadow,
+.ideditor .highlight-edited g.points g.node.point.moved > path.shadow {
     stroke-opacity: 0.8;
     stroke-width: 10;
 }
-.highlight-edited g.points g.node.point.added > path.shadow {
+.ideditor .highlight-edited g.points g.node.point.added > path.shadow {
     stroke: rgb(133, 255, 103);
 }
-.highlight-edited g.points g.node.point.retagged > path.shadow {
+.ideditor .highlight-edited g.points g.node.point.retagged > path.shadow {
     stroke: #fcde5a;
 }
-.highlight-edited g.points g.node.point.moved > path.shadow {
+.ideditor .highlight-edited g.points g.node.point.moved > path.shadow {
     stroke: rgb(255, 126, 46);
 }
 
@@ -557,8 +538,8 @@ g.vertex.highlighted .shadow {
 - segments are rendered on top of the ways for convenience and to differentiate
   them from entire line diffs, so make them thin
 */
-.highlight-edited g.lines > path.line.segment-edited,
-.highlight-edited g.areas > path.area.segment-edited {
+.ideditor .highlight-edited g.lines > path.line.segment-edited,
+.ideditor .highlight-edited g.areas > path.area.segment-edited {
     stroke: rgb(255, 126, 46);
     stroke-dasharray: 10, 3;
     stroke-width: 1.5 !important;
@@ -566,987 +547,988 @@ g.vertex.highlighted .shadow {
 }
 
 /* Entire line/area visual diffs */
-.highlight-edited path.line.shadow.added,
-.highlight-edited path.line.shadow.retagged,
-.highlight-edited path.line.shadow.geometry-edited,
-.highlight-edited path.area.shadow.added,
-.highlight-edited path.area.shadow.retagged,
-.highlight-edited path.area.shadow.geometry-edited {
+.ideditor .highlight-edited path.line.shadow.added,
+.ideditor .highlight-edited path.line.shadow.retagged,
+.ideditor .highlight-edited path.line.shadow.geometry-edited,
+.ideditor .highlight-edited path.area.shadow.added,
+.ideditor .highlight-edited path.area.shadow.retagged,
+.ideditor .highlight-edited path.area.shadow.geometry-edited {
     stroke-opacity: 0.6;
 }
-.highlight-edited.fill-wireframe path.line.shadow.added,
-.highlight-edited.fill-wireframe path.line.shadow.retagged,
-.highlight-edited.fill-wireframe path.line.shadow.geometry-edited,
-.highlight-edited.fill-wireframe path.area.shadow.added,
-.highlight-edited.fill-wireframe path.area.shadow.retagged,
-.highlight-edited.fill-wireframe path.area.shadow.geometry-edited {
+.ideditor .highlight-edited.fill-wireframe path.line.shadow.added,
+.ideditor .highlight-edited.fill-wireframe path.line.shadow.retagged,
+.ideditor .highlight-edited.fill-wireframe path.line.shadow.geometry-edited,
+.ideditor .highlight-edited.fill-wireframe path.area.shadow.added,
+.ideditor .highlight-edited.fill-wireframe path.area.shadow.retagged,
+.ideditor .highlight-edited.fill-wireframe path.area.shadow.geometry-edited {
     stroke-width: 3;
 }
-.highlight-edited path.line.shadow.added,
-.highlight-edited path.area.shadow.added {
+.ideditor .highlight-edited path.line.shadow.added,
+.ideditor .highlight-edited path.area.shadow.added {
     stroke: rgb(133, 255, 103);
 }
-.highlight-edited path.area.shadow.retagged,
-.highlight-edited path.line.shadow.retagged {
+.ideditor .highlight-edited path.area.shadow.retagged,
+.ideditor .highlight-edited path.line.shadow.retagged {
     stroke: #fcde5a;
 }
-.highlight-edited path.line.shadow.geometry-edited,
-.highlight-edited path.area.shadow.geometry-edited {
+.ideditor .highlight-edited path.line.shadow.geometry-edited,
+.ideditor .highlight-edited path.area.shadow.geometry-edited {
     stroke: rgb(255, 126, 46);
 }
 
 /* Default - light gray */
-path.area.stroke {
+.ideditor path.area.stroke {
     stroke: rgb(170, 170, 170);
     stroke-width: 1;
 }
-path.area.fill {
+.ideditor path.area.fill {
     stroke-width: 0;
     stroke: rgba(255, 255, 255, 0.3);
     fill: rgba(255, 255, 255, 0.3);
     fill-rule: evenodd;
 }
-.preset-icon-fill path.fill {
+.ideditor .preset-icon-fill path.fill {
     stroke: rgb(170, 170, 170);
     fill: rgba(170, 170, 170, 0.3);
 }
 
-path.shadow.old-multipolygon,
-path.stroke.old-multipolygon {
+.ideditor path.shadow.old-multipolygon,
+.ideditor path.stroke.old-multipolygon {
     stroke-dasharray: 100, 5;
     stroke-linecap: butt;
 }
 
 
 /* Green things */
-path.stroke.tag-barrier-hedge,
-path.stroke.tag-landuse-flowerbed,
-path.stroke.tag-landuse-forest,
-path.stroke.tag-landuse-grass,
-path.stroke.tag-landuse-recreation_ground,
-path.stroke.tag-landuse-village_green,
-path.stroke.tag-leisure-garden,
-path.stroke.tag-leisure-golf_course,
-path.stroke.tag-leisure-nature_reserve,
-path.stroke.tag-leisure-park,
-path.stroke.tag-leisure-pitch,
-path.stroke.tag-leisure-track,
-path.stroke.tag-natural,
-path.stroke.tag-natural-wood {
+.ideditor path.stroke.tag-barrier-hedge,
+.ideditor path.stroke.tag-landuse-flowerbed,
+.ideditor path.stroke.tag-landuse-forest,
+.ideditor path.stroke.tag-landuse-grass,
+.ideditor path.stroke.tag-landuse-recreation_ground,
+.ideditor path.stroke.tag-landuse-village_green,
+.ideditor path.stroke.tag-leisure-garden,
+.ideditor path.stroke.tag-leisure-golf_course,
+.ideditor path.stroke.tag-leisure-nature_reserve,
+.ideditor path.stroke.tag-leisure-park,
+.ideditor path.stroke.tag-leisure-pitch,
+.ideditor path.stroke.tag-leisure-track,
+.ideditor path.stroke.tag-natural,
+.ideditor path.stroke.tag-natural-wood {
     stroke: rgb(140, 208, 95);
 }
-path.fill.tag-barrier-hedge,
-path.fill.tag-landuse-flowerbed,
-path.fill.tag-landuse-forest,
-path.fill.tag-landuse-grass,
-path.fill.tag-landuse-recreation_ground,
-path.fill.tag-landuse-village_green,
-path.fill.tag-leisure-garden,
-path.fill.tag-leisure-golf_course,
-path.fill.tag-leisure-nature_reserve,
-path.fill.tag-leisure-park,
-path.fill.tag-leisure-pitch,
-path.fill.tag-leisure-track,
-path.fill.tag-natural,
-path.fill.tag-natural-wood {
+.ideditor path.fill.tag-barrier-hedge,
+.ideditor path.fill.tag-landuse-flowerbed,
+.ideditor path.fill.tag-landuse-forest,
+.ideditor path.fill.tag-landuse-grass,
+.ideditor path.fill.tag-landuse-recreation_ground,
+.ideditor path.fill.tag-landuse-village_green,
+.ideditor path.fill.tag-leisure-garden,
+.ideditor path.fill.tag-leisure-golf_course,
+.ideditor path.fill.tag-leisure-nature_reserve,
+.ideditor path.fill.tag-leisure-park,
+.ideditor path.fill.tag-leisure-pitch,
+.ideditor path.fill.tag-leisure-track,
+.ideditor path.fill.tag-natural,
+.ideditor path.fill.tag-natural-wood {
     stroke: rgba(140, 208, 95, 0.3);
     fill: rgba(140, 208, 95, 0.3);
 }
-.pattern-color-forest,
-.pattern-color-forest_broadleaved,
-.pattern-color-forest_needleleaved,
-.pattern-color-forest_leafless,
-.pattern-color-wood,
-.pattern-color-grass {
+.ideditor .pattern-color-forest,
+.ideditor .pattern-color-forest_broadleaved,
+.ideditor .pattern-color-forest_needleleaved,
+.ideditor .pattern-color-forest_leafless,
+.ideditor .pattern-color-wood,
+.ideditor .pattern-color-grass {
     fill: rgba(140, 208, 95, 0.3);
 }
 
 
 /* Blue things */
-path.stroke.tag-amenity-fountain,
-path.stroke.tag-leisure-swimming_pool,
-path.stroke.tag-natural-bay,
-path.stroke.tag-natural-water {
+.ideditor path.stroke.tag-amenity-fountain,
+.ideditor path.stroke.tag-leisure-swimming_pool,
+.ideditor path.stroke.tag-natural-bay,
+.ideditor path.stroke.tag-natural-water {
     stroke: rgb(119, 211, 222);
 }
-path.fill.tag-amenity-fountain,
-path.fill.tag-leisure-swimming_pool,
-path.fill.tag-natural-bay,
-path.fill.tag-natural-water {
+.ideditor path.fill.tag-amenity-fountain,
+.ideditor path.fill.tag-leisure-swimming_pool,
+.ideditor path.fill.tag-natural-bay,
+.ideditor path.fill.tag-natural-water {
     stroke: rgba(119, 211, 222, 0.3);
     fill: rgba(119, 211, 222, 0.3);
 }
-.pattern-color-waves,
-.pattern-color-water_standing,
-.pattern-color-pond {
+.ideditor .pattern-color-waves,
+.ideditor .pattern-color-water_standing,
+.ideditor .pattern-color-pond {
     fill: rgba(119, 211, 222, 0.3);
 }
 
 
 /* Yellow things */
-path.stroke.tag-leisure-pitch.tag-sport-beachvolleyball,
-path.stroke.tag-leisure-pitch.tag-sport-baseball,
-path.stroke.tag-leisure-pitch.tag-sport-softball,
-path.stroke.tag-leisure-track,
-path.stroke.tag-natural-beach,
-path.stroke.tag-natural-sand,
-path.stroke.tag-natural-scrub,
-path.stroke.tag-amenity-childcare,
-path.stroke.tag-amenity-kindergarten,
-path.stroke.tag-amenity-school,
-path.stroke.tag-amenity-college,
-path.stroke.tag-amenity-university,
-path.stroke.tag-amenity-research_institute {
+.ideditor path.stroke.tag-leisure-pitch.tag-sport-beachvolleyball,
+.ideditor path.stroke.tag-leisure-pitch.tag-sport-baseball,
+.ideditor path.stroke.tag-leisure-pitch.tag-sport-softball,
+.ideditor path.stroke.tag-leisure-track,
+.ideditor path.stroke.tag-natural-beach,
+.ideditor path.stroke.tag-natural-sand,
+.ideditor path.stroke.tag-natural-scrub,
+.ideditor path.stroke.tag-amenity-childcare,
+.ideditor path.stroke.tag-amenity-kindergarten,
+.ideditor path.stroke.tag-amenity-school,
+.ideditor path.stroke.tag-amenity-college,
+.ideditor path.stroke.tag-amenity-university,
+.ideditor path.stroke.tag-amenity-research_institute {
     stroke: rgba(255, 255, 148, 0.75);
 }
-path.fill.tag-leisure-pitch.tag-sport-beachvolleyball,
-path.fill.tag-leisure-pitch.tag-sport-baseball,
-path.fill.tag-leisure-pitch.tag-sport-softball,
-path.fill.tag-leisure-track,
-path.fill.tag-natural-beach,
-path.fill.tag-natural-sand,
-path.fill.tag-natural-scrub,
-path.fill.tag-amenity-childcare,
-path.fill.tag-amenity-kindergarten,
-path.fill.tag-amenity-school,
-path.fill.tag-amenity-college,
-path.fill.tag-amenity-university,
-path.fill.tag-amenity-research_institute {
+.ideditor path.fill.tag-leisure-pitch.tag-sport-beachvolleyball,
+.ideditor path.fill.tag-leisure-pitch.tag-sport-baseball,
+.ideditor path.fill.tag-leisure-pitch.tag-sport-softball,
+.ideditor path.fill.tag-leisure-track,
+.ideditor path.fill.tag-natural-beach,
+.ideditor path.fill.tag-natural-sand,
+.ideditor path.fill.tag-natural-scrub,
+.ideditor path.fill.tag-amenity-childcare,
+.ideditor path.fill.tag-amenity-kindergarten,
+.ideditor path.fill.tag-amenity-school,
+.ideditor path.fill.tag-amenity-college,
+.ideditor path.fill.tag-amenity-university,
+.ideditor path.fill.tag-amenity-research_institute {
     stroke: rgba(255, 255, 148, 0.25);
     fill: rgba(255, 255, 148, 0.25);
 }
-.preset-icon-fill path.area.stroke.tag-leisure-pitch.tag-sport-beachvolleyball,
-.preset-icon-fill path.area.stroke.tag-leisure-pitch.tag-sport-baseball,
-.preset-icon-fill path.area.stroke.tag-leisure-pitch.tag-sport-softball,
-.preset-icon-fill path.area.stroke.tag-leisure-track,
-.preset-icon-fill path.area.stroke.tag-natural-beach,
-.preset-icon-fill path.area.stroke.tag-natural-sand,
-.preset-icon-fill path.area.stroke.tag-natural-scrub,
-.preset-icon-fill path.area.stroke.tag-amenity-childcare,
-.preset-icon-fill path.area.stroke.tag-amenity-kindergarten,
-.preset-icon-fill path.area.stroke.tag-amenity-school,
-.preset-icon-fill path.area.stroke.tag-amenity-college,
-.preset-icon-fill path.area.stroke.tag-amenity-university,
-.preset-icon-fill path.area.stroke.tag-amenity-research_institute {
+.ideditor .preset-icon-fill path.area.stroke.tag-leisure-pitch.tag-sport-beachvolleyball,
+.ideditor .preset-icon-fill path.area.stroke.tag-leisure-pitch.tag-sport-baseball,
+.ideditor .preset-icon-fill path.area.stroke.tag-leisure-pitch.tag-sport-softball,
+.ideditor .preset-icon-fill path.area.stroke.tag-leisure-track,
+.ideditor .preset-icon-fill path.area.stroke.tag-natural-beach,
+.ideditor .preset-icon-fill path.area.stroke.tag-natural-sand,
+.ideditor .preset-icon-fill path.area.stroke.tag-natural-scrub,
+.ideditor .preset-icon-fill path.area.stroke.tag-amenity-childcare,
+.ideditor .preset-icon-fill path.area.stroke.tag-amenity-kindergarten,
+.ideditor .preset-icon-fill path.area.stroke.tag-amenity-school,
+.ideditor .preset-icon-fill path.area.stroke.tag-amenity-college,
+.ideditor .preset-icon-fill path.area.stroke.tag-amenity-university,
+.ideditor .preset-icon-fill path.area.stroke.tag-amenity-research_institute {
     stroke: rgb(232, 232, 0);
 }
-.pattern-color-beach,
-.pattern-color-sand,
-.pattern-color-scrub {
+.ideditor .pattern-color-beach,
+.ideditor .pattern-color-sand,
+.ideditor .pattern-color-scrub {
     fill: rgba(255, 255, 148, 0.2);
 }
 
 
 /* Gold things */
-path.stroke.tag-landuse-residential,
-path.stroke.tag-status-construction {
+.ideditor path.stroke.tag-landuse-residential,
+.ideditor path.stroke.tag-status-construction {
     stroke: rgb(196, 189, 25);
 }
-path.fill.tag-landuse-residential,
-path.fill.tag-status-construction {
+.ideditor path.fill.tag-landuse-residential,
+.ideditor path.fill.tag-status-construction {
     stroke: rgba(196, 189, 25, 0.3);
     fill: rgba(196, 189, 25, 0.3);
 }
-.pattern-color-construction {
+.ideditor .pattern-color-construction {
     fill: rgba(196, 189, 25, 0.3);
 }
 
 
 /* Orange things */
-path.stroke.tag-landuse-retail,
-path.stroke.tag-landuse-commercial,
-path.stroke.tag-landuse-landfill,
-path.stroke.tag-military,
-path.stroke.tag-landuse-military {
+.ideditor path.stroke.tag-landuse-retail,
+.ideditor path.stroke.tag-landuse-commercial,
+.ideditor path.stroke.tag-landuse-landfill,
+.ideditor path.stroke.tag-military,
+.ideditor path.stroke.tag-landuse-military {
     stroke: rgb(214, 136, 26);
 }
-path.fill.tag-landuse-retail,
-path.fill.tag-landuse-commercial,
-path.fill.tag-landuse-landfill,
-path.fill.tag-military,
-path.fill.tag-landuse-military {
+.ideditor path.fill.tag-landuse-retail,
+.ideditor path.fill.tag-landuse-commercial,
+.ideditor path.fill.tag-landuse-landfill,
+.ideditor path.fill.tag-military,
+.ideditor path.fill.tag-landuse-military {
     stroke: rgba(214, 136, 26, 0.3);
     fill: rgba(214, 136, 26, 0.3);
 }
-.pattern-color-landfill {
+.ideditor .pattern-color-landfill {
     fill: rgba(214, 136, 26, 0.3);
 }
 
 
 /* Pink things */
-path.stroke.tag-landuse-industrial,
-path.stroke.tag-power-plant {
+.ideditor path.stroke.tag-landuse-industrial,
+.ideditor path.stroke.tag-power-plant {
     stroke: rgb(228, 164, 245);
 }
-path.fill.tag-landuse-industrial,
-path.fill.tag-power-plant {
+.ideditor path.fill.tag-landuse-industrial,
+.ideditor path.fill.tag-power-plant {
     stroke: rgba(228, 164, 245, 0.3);
     fill: rgba(228, 164, 245, 0.3);
 }
 
 
 /* Teal things */
-path.stroke.tag-natural-wetland {
+.ideditor path.stroke.tag-natural-wetland {
     stroke: rgb(153, 225, 170);
 }
-path.fill.tag-natural-wetland {
+.ideditor path.fill.tag-natural-wetland {
     stroke: rgba(153, 225, 170, 0.3);
     fill: rgba(153, 225, 170, 0.3);
 }
-.preset-icon-fill path.area.fill.tag-natural-wetland {
+.ideditor .preset-icon-fill path.area.fill.tag-natural-wetland {
     fill: rgba(153, 225, 170, 0.2);
 }
-.pattern-color-wetland,
-.pattern-color-wetland_marsh,
-.pattern-color-wetland_swamp,
-.pattern-color-wetland_bog,
-.pattern-color-wetland_reedbed {
+.ideditor .pattern-color-wetland,
+.ideditor .pattern-color-wetland_marsh,
+.ideditor .pattern-color-wetland_swamp,
+.ideditor .pattern-color-wetland_bog,
+.ideditor .pattern-color-wetland_reedbed {
     fill: rgba(153, 225, 170, 0.3);
 }
 
 
 /* Light Green things */
-path.stroke.tag-landuse-cemetery,
-path.stroke.tag-landuse-farmland,
-path.stroke.tag-landuse-grass.tag-golf-green,
-path.stroke.tag-landuse-meadow,
-path.stroke.tag-landuse-orchard,
-path.stroke.tag-landuse-vineyard {
+.ideditor path.stroke.tag-landuse-cemetery,
+.ideditor path.stroke.tag-landuse-farmland,
+.ideditor path.stroke.tag-landuse-grass.tag-golf-green,
+.ideditor path.stroke.tag-landuse-meadow,
+.ideditor path.stroke.tag-landuse-orchard,
+.ideditor path.stroke.tag-landuse-vineyard {
     stroke: rgb(191, 232, 63);
 }
-path.fill.tag-landuse-cemetery,
-path.fill.tag-landuse-farmland,
-path.fill.tag-landuse-grass.tag-golf-green,
-path.fill.tag-landuse-meadow,
-path.fill.tag-landuse-orchard,
-path.fill.tag-landuse-vineyard {
+.ideditor path.fill.tag-landuse-cemetery,
+.ideditor path.fill.tag-landuse-farmland,
+.ideditor path.fill.tag-landuse-grass.tag-golf-green,
+.ideditor path.fill.tag-landuse-meadow,
+.ideditor path.fill.tag-landuse-orchard,
+.ideditor path.fill.tag-landuse-vineyard {
     stroke: rgba(191, 232, 63, 0.3);
     fill: rgba(191, 232, 63, 0.3);
 }
-.preset-icon-fill path.area.fill.tag-landuse-cemetery,
-.preset-icon-fill path.area.fill.tag-landuse-farmland,
-.preset-icon-fill path.area.fill.tag-landuse-grass.tag-golf-green,
-.preset-icon-fill path.area.fill.tag-landuse-meadow,
-.preset-icon-fill path.area.fill.tag-landuse-orchard,
-.preset-icon-fill path.area.fill.tag-landuse-vineyard {
+.ideditor .preset-icon-fill path.area.fill.tag-landuse-cemetery,
+.ideditor .preset-icon-fill path.area.fill.tag-landuse-farmland,
+.ideditor .preset-icon-fill path.area.fill.tag-landuse-grass.tag-golf-green,
+.ideditor .preset-icon-fill path.area.fill.tag-landuse-meadow,
+.ideditor .preset-icon-fill path.area.fill.tag-landuse-orchard,
+.ideditor .preset-icon-fill path.area.fill.tag-landuse-vineyard {
     fill: rgba(191, 232, 63, 0.4);
 }
-.pattern-color-cemetery,
-.pattern-color-cemetery_buddhist,
-.pattern-color-cemetery_christian,
-.pattern-color-cemetery_jewish,
-.pattern-color-cemetery_muslim,
-.pattern-color-farmland,
-.pattern-color-golf_green,
-.pattern-color-meadow,
-.pattern-color-orchard,
-.pattern-color-vineyard {
+.ideditor .pattern-color-cemetery,
+.ideditor .pattern-color-cemetery_buddhist,
+.ideditor .pattern-color-cemetery_christian,
+.ideditor .pattern-color-cemetery_jewish,
+.ideditor .pattern-color-cemetery_muslim,
+.ideditor .pattern-color-farmland,
+.ideditor .pattern-color-golf_green,
+.ideditor .pattern-color-meadow,
+.ideditor .pattern-color-orchard,
+.ideditor .pattern-color-vineyard {
     fill: rgba(191, 232, 63, 0.3);
 }
 
 
 /* Tan things */
-path.stroke.tag-landuse-farmyard {
+.ideditor path.stroke.tag-landuse-farmyard {
     stroke: rgb(245, 220, 186);
 }
-path.fill.tag-landuse-farmyard {
+.ideditor path.fill.tag-landuse-farmyard {
     stroke: rgba(245, 220, 186, 0.3);
     fill: rgba(245, 220, 186, 0.3);
 }
-.preset-icon-fill path.area.stroke.tag-landuse-farmyard {
+.ideditor .preset-icon-fill path.area.stroke.tag-landuse-farmyard {
     stroke: rgb(226, 177, 111);
 }
-.pattern-color-farmyard {
+.ideditor .pattern-color-farmyard {
     fill: rgba(245, 220, 186, 0.3);
 }
 
 
 /* Dark Gray things */
-path.stroke.tag-amenity-parking,
-path.stroke.tag-landuse-railway,
-path.stroke.tag-landuse-quarry,
-path.stroke.tag-leisure-pitch.tag-sport-basketball,
-path.stroke.tag-leisure-pitch.tag-sport-skateboard,
-path.stroke.tag-man_made-adit,
-path.stroke.tag-man_made-groyne,
-path.stroke.tag-man_made-breakwater,
-path.stroke.tag-natural-bare_rock,
-path.stroke.tag-natural-cave_entrance,
-path.stroke.tag-natural-cliff,
-path.stroke.tag-natural-rock,
-path.stroke.tag-natural-scree,
-path.stroke.tag-natural-stone,
-path.stroke.tag-natural-shingle,
-path.stroke.tag-waterway-dam,
-path.stroke.tag-waterway-weir {
+.ideditor path.stroke.tag-amenity-parking,
+.ideditor path.stroke.tag-landuse-railway,
+.ideditor path.stroke.tag-landuse-quarry,
+.ideditor path.stroke.tag-leisure-pitch.tag-sport-basketball,
+.ideditor path.stroke.tag-leisure-pitch.tag-sport-skateboard,
+.ideditor path.stroke.tag-man_made-adit,
+.ideditor path.stroke.tag-man_made-groyne,
+.ideditor path.stroke.tag-man_made-breakwater,
+.ideditor path.stroke.tag-natural-bare_rock,
+.ideditor path.stroke.tag-natural-cave_entrance,
+.ideditor path.stroke.tag-natural-cliff,
+.ideditor path.stroke.tag-natural-rock,
+.ideditor path.stroke.tag-natural-scree,
+.ideditor path.stroke.tag-natural-stone,
+.ideditor path.stroke.tag-natural-shingle,
+.ideditor path.stroke.tag-waterway-dam,
+.ideditor path.stroke.tag-waterway-weir {
     stroke: rgb(170, 170, 170);
 }
-path.fill.tag-amenity-parking,
-path.fill.tag-landuse-railway,
-path.fill.tag-landuse-quarry,
-path.fill.tag-leisure-pitch.tag-sport-basketball,
-path.fill.tag-leisure-pitch.tag-sport-skateboard,
-path.fill.tag-man_made-adit,
-path.fill.tag-man_made-groyne,
-path.fill.tag-man_made-breakwater,
-path.fill.tag-natural-bare_rock,
-path.fill.tag-natural-cliff,
-path.fill.tag-natural-cave_entrance,
-path.fill.tag-natural-rock,
-path.fill.tag-natural-scree,
-path.fill.tag-natural-stone,
-path.fill.tag-natural-shingle,
-path.fill.tag-waterway-dam,
-path.fill.tag-waterway-weir {
+.ideditor path.fill.tag-amenity-parking,
+.ideditor path.fill.tag-landuse-railway,
+.ideditor path.fill.tag-landuse-quarry,
+.ideditor path.fill.tag-leisure-pitch.tag-sport-basketball,
+.ideditor path.fill.tag-leisure-pitch.tag-sport-skateboard,
+.ideditor path.fill.tag-man_made-adit,
+.ideditor path.fill.tag-man_made-groyne,
+.ideditor path.fill.tag-man_made-breakwater,
+.ideditor path.fill.tag-natural-bare_rock,
+.ideditor path.fill.tag-natural-cliff,
+.ideditor path.fill.tag-natural-cave_entrance,
+.ideditor path.fill.tag-natural-rock,
+.ideditor path.fill.tag-natural-scree,
+.ideditor path.fill.tag-natural-stone,
+.ideditor path.fill.tag-natural-shingle,
+.ideditor path.fill.tag-waterway-dam,
+.ideditor path.fill.tag-waterway-weir {
     stroke: rgba(140, 140, 140, 0.5);
     fill: rgba(140, 140, 140, 0.5);
 }
-.pattern-color-quarry {
+.ideditor .pattern-color-quarry {
     fill: rgba(140, 140, 140, 0.5);
 }
 
 
 /* Light gray overrides */
-path.stroke.tag-natural-cave_entrance,
-path.stroke.tag-natural-glacier {
+.ideditor path.stroke.tag-natural-cave_entrance,
+.ideditor path.stroke.tag-natural-glacier {
     stroke: rgb(170, 170, 170);
 }
-path.fill.tag-natural-cave_entrance,
-path.fill.tag-natural-glacier {
+.ideditor path.fill.tag-natural-cave_entrance,
+.ideditor path.fill.tag-natural-glacier {
     stroke: rgba(255, 255, 255, 0.3);
     fill: rgba(255, 255, 255, 0.3);
 }
-.preset-icon-fill path.fill.tag-natural-cave_entrance,
-.preset-icon-fill path.fill.tag-natural-glacier {
+.ideditor .preset-icon-fill path.fill.tag-natural-cave_entrance,
+.ideditor .preset-icon-fill path.fill.tag-natural-glacier {
     stroke: rgb(170, 170, 170);
     fill: rgba(170, 170, 170, 0.3);
 }
-preset-icon-container/* highways */
+.ideditor preset-icon-container
+
 
-/* defaults */
 .preset-icon .icon.tag-highway.other-line {
     color: #fff;
     fill: #777;
 }
-path.line.casing.tag-highway {
+.ideditor path.line.casing.tag-highway {
     stroke: #444;
 }
-path.line.stroke.tag-highway {
+.ideditor path.line.stroke.tag-highway {
     stroke: #ccc;
 }
 
 /* wide highways */
-path.line.shadow.tag-highway {
+.ideditor path.line.shadow.tag-highway {
     stroke-width: 20;
 }
-path.line.casing.tag-highway {
+.ideditor path.line.casing.tag-highway {
     stroke-width: 10;
 }
-path.line.stroke.tag-highway {
+.ideditor path.line.stroke.tag-highway {
     stroke-width: 8;
 }
-.low-zoom path.line.shadow.tag-highway {
+.ideditor .low-zoom path.line.shadow.tag-highway {
     stroke-width: 16;
 }
-.low-zoom path.line.casing.tag-highway {
+.ideditor .low-zoom path.line.casing.tag-highway {
     stroke-width: 7;
 }
-.low-zoom path.line.stroke.tag-highway {
+.ideditor .low-zoom path.line.stroke.tag-highway {
     stroke-width: 5;
 }
 
-.preset-icon .icon.tag-highway-motorway,
-.preset-icon .icon.tag-highway-motorway_link {
+.ideditor .preset-icon .icon.tag-highway-motorway,
+.ideditor .preset-icon .icon.tag-highway-motorway_link {
     color: #CF2081;
     fill: #70372f;
 }
-path.line.stroke.tag-highway-motorway,
-path.line.stroke.tag-highway-motorway_link,
-path.line.stroke.tag-motorway {
+.ideditor path.line.stroke.tag-highway-motorway,
+.ideditor path.line.stroke.tag-highway-motorway_link,
+.ideditor path.line.stroke.tag-motorway {
     stroke: #CF2081;
 }
-path.line.casing.tag-highway-motorway,
-path.line.casing.tag-highway-motorway_link,
-path.line.casing.tag-motorway {
+.ideditor path.line.casing.tag-highway-motorway,
+.ideditor path.line.casing.tag-highway-motorway_link,
+.ideditor path.line.casing.tag-motorway {
     stroke: #70372f;
 }
 
-.preset-icon .icon.tag-highway-trunk,
-.preset-icon .icon.tag-highway-trunk_link {
+.ideditor .preset-icon .icon.tag-highway-trunk,
+.ideditor .preset-icon .icon.tag-highway-trunk_link {
     color: #DD2F22;
     fill: #70372f;
 }
-path.line.stroke.tag-highway-trunk,
-path.line.stroke.tag-highway-trunk_link,
-path.line.stroke.tag-trunk {
+.ideditor path.line.stroke.tag-highway-trunk,
+.ideditor path.line.stroke.tag-highway-trunk_link,
+.ideditor path.line.stroke.tag-trunk {
     stroke: #DD2F22;
 }
-path.line.casing.tag-highway-trunk,
-path.line.casing.tag-highway-trunk_link,
-path.line.casing.tag-trunk {
+.ideditor path.line.casing.tag-highway-trunk,
+.ideditor path.line.casing.tag-highway-trunk_link,
+.ideditor path.line.casing.tag-trunk {
     stroke: #70372f;
 }
 
-.preset-icon .icon.tag-highway-primary,
-.preset-icon .icon.tag-highway-primary_link {
+.ideditor .preset-icon .icon.tag-highway-primary,
+.ideditor .preset-icon .icon.tag-highway-primary_link {
     color: #F99806;
     fill: #70372f;
 }
-path.line.stroke.tag-highway-primary,
-path.line.stroke.tag-highway-primary_link,
-path.line.stroke.tag-primary {
+.ideditor path.line.stroke.tag-highway-primary,
+.ideditor path.line.stroke.tag-highway-primary_link,
+.ideditor path.line.stroke.tag-primary {
     stroke: #F99806;
 }
-path.line.casing.tag-highway-primary,
-path.line.casing.tag-highway-primary_link,
-path.line.casing.tag-primary {
+.ideditor path.line.casing.tag-highway-primary,
+.ideditor path.line.casing.tag-highway-primary_link,
+.ideditor path.line.casing.tag-primary {
     stroke: #70372f;
 }
 
-.preset-icon .icon.tag-highway-secondary,
-.preset-icon .icon.tag-highway-secondary_link {
+.ideditor .preset-icon .icon.tag-highway-secondary,
+.ideditor .preset-icon .icon.tag-highway-secondary_link {
     color: #F3F312;
     fill: #70372f;
 }
-path.line.stroke.tag-highway-secondary,
-path.line.stroke.tag-highway-secondary_link,
-path.line.stroke.tag-secondary {
+.ideditor path.line.stroke.tag-highway-secondary,
+.ideditor path.line.stroke.tag-highway-secondary_link,
+.ideditor path.line.stroke.tag-secondary {
     stroke: #F3F312;
 }
-path.line.casing.tag-highway-secondary,
-path.line.casing.tag-highway-secondary_link,
-path.line.casing.tag-secondary {
+.ideditor path.line.casing.tag-highway-secondary,
+.ideditor path.line.casing.tag-highway-secondary_link,
+.ideditor path.line.casing.tag-secondary {
     stroke: #70372f;
 }
 
-.preset-icon .icon.tag-highway-tertiary,
-.preset-icon .icon.tag-highway-tertiary_link {
+.ideditor .preset-icon .icon.tag-highway-tertiary,
+.ideditor .preset-icon .icon.tag-highway-tertiary_link {
     color: #FFF9B3;
     fill: #70372f;
 }
-path.line.stroke.tag-highway-tertiary,
-path.line.stroke.tag-highway-tertiary_link,
-path.line.stroke.tag-tertiary {
+.ideditor path.line.stroke.tag-highway-tertiary,
+.ideditor path.line.stroke.tag-highway-tertiary_link,
+.ideditor path.line.stroke.tag-tertiary {
     stroke: #FFF9B3;
 }
-path.line.casing.tag-highway-tertiary,
-path.line.casing.tag-highway-tertiary_link,
-path.line.casing.tag-tertiary {
+.ideditor path.line.casing.tag-highway-tertiary,
+.ideditor path.line.casing.tag-highway-tertiary_link,
+.ideditor path.line.casing.tag-tertiary {
     stroke: #70372f;
 }
 
-.legacy-carto .preset-icon .icon.tag-highway-motorway,
-.legacy-carto .preset-icon .icon.tag-highway-motorway_link {
+.ideditor .legacy-carto .preset-icon .icon.tag-highway-motorway,
+.ideditor .legacy-carto .preset-icon .icon.tag-highway-motorway_link {
     color: #58a9ed;
     fill: #2c5476;
 }
-.legacy-carto path.line.stroke.tag-highway-motorway,
-.legacy-carto path.line.stroke.tag-highway-motorway_link,
-.legacy-carto path.line.stroke.tag-motorway {
+.ideditor .legacy-carto path.line.stroke.tag-highway-motorway,
+.ideditor .legacy-carto path.line.stroke.tag-highway-motorway_link,
+.ideditor .legacy-carto path.line.stroke.tag-motorway {
     stroke: #58a9ed;
 }
-.legacy-carto path.line.casing.tag-highway-motorway,
-.legacy-carto path.line.casing.tag-highway-motorway_link,
-.legacy-carto path.line.casing.tag-motorway {
+.ideditor .legacy-carto path.line.casing.tag-highway-motorway,
+.ideditor .legacy-carto path.line.casing.tag-highway-motorway_link,
+.ideditor .legacy-carto path.line.casing.tag-motorway {
     stroke: #2c5476;
 }
 
-.legacy-carto .preset-icon .icon.tag-highway-trunk,
-.legacy-carto .preset-icon .icon.tag-highway-trunk_link {
+.ideditor .legacy-carto .preset-icon .icon.tag-highway-trunk,
+.ideditor .legacy-carto .preset-icon .icon.tag-highway-trunk_link {
     color: #8cd05f;
     fill: #46682f;
 }
-.legacy-carto path.line.stroke.tag-highway-trunk,
-.legacy-carto path.line.stroke.tag-highway-trunk_link,
-.legacy-carto path.line.stroke.tag-trunk {
+.ideditor .legacy-carto path.line.stroke.tag-highway-trunk,
+.ideditor .legacy-carto path.line.stroke.tag-highway-trunk_link,
+.ideditor .legacy-carto path.line.stroke.tag-trunk {
     stroke: #8cd05f;
 }
-.legacy-carto path.line.casing.tag-highway-trunk,
-.legacy-carto path.line.casing.tag-highway-trunk_link,
-.legacy-carto path.line.casing.tag-trunk {
+.ideditor .legacy-carto path.line.casing.tag-highway-trunk,
+.ideditor .legacy-carto path.line.casing.tag-highway-trunk_link,
+.ideditor .legacy-carto path.line.casing.tag-trunk {
     stroke: #46682f;
 }
 
-.legacy-carto .preset-icon .icon.tag-highway-primary,
-.legacy-carto .preset-icon .icon.tag-highway-primary_link {
+.ideditor .legacy-carto .preset-icon .icon.tag-highway-primary,
+.ideditor .legacy-carto .preset-icon .icon.tag-highway-primary_link {
     color: #e06d5f;
     fill: #70372f;
 }
-.legacy-carto path.line.stroke.tag-highway-primary,
-.legacy-carto path.line.stroke.tag-highway-primary_link,
-.legacy-carto path.line.stroke.tag-primary {
+.ideditor .legacy-carto path.line.stroke.tag-highway-primary,
+.ideditor .legacy-carto path.line.stroke.tag-highway-primary_link,
+.ideditor .legacy-carto path.line.stroke.tag-primary {
     stroke: #e06d5f;
 }
-.legacy-carto path.line.casing.tag-highway-primary,
-.legacy-carto path.line.casing.tag-highway-primary_link,
-.legacy-carto path.line.casing.tag-primary {
+.ideditor .legacy-carto path.line.casing.tag-highway-primary,
+.ideditor .legacy-carto path.line.casing.tag-highway-primary_link,
+.ideditor .legacy-carto path.line.casing.tag-primary {
     stroke: #70372f;
 }
 
-.legacy-carto .preset-icon .icon.tag-highway-secondary,
-.legacy-carto .preset-icon .icon.tag-highway-secondary_link {
+.ideditor .legacy-carto .preset-icon .icon.tag-highway-secondary,
+.ideditor .legacy-carto .preset-icon .icon.tag-highway-secondary_link {
     color: #eab056;
     fill: #75582b;
 }
-.legacy-carto path.line.stroke.tag-highway-secondary,
-.legacy-carto path.line.stroke.tag-highway-secondary_link,
-.legacy-carto path.line.stroke.tag-secondary {
+.ideditor .legacy-carto path.line.stroke.tag-highway-secondary,
+.ideditor .legacy-carto path.line.stroke.tag-highway-secondary_link,
+.ideditor .legacy-carto path.line.stroke.tag-secondary {
     stroke: #eab056;
 }
-.legacy-carto path.line.casing.tag-highway-secondary,
-.legacy-carto path.line.casing.tag-highway-secondary_link,
-.legacy-carto path.line.casing.tag-secondary {
+.ideditor .legacy-carto path.line.casing.tag-highway-secondary,
+.ideditor .legacy-carto path.line.casing.tag-highway-secondary_link,
+.ideditor .legacy-carto path.line.casing.tag-secondary {
     stroke: #75582b;
 }
 
-.legacy-carto .preset-icon .icon.tag-highway-tertiary,
-.legacy-carto .preset-icon .icon.tag-highway-tertiary_link {
+.ideditor .legacy-carto .preset-icon .icon.tag-highway-tertiary,
+.ideditor .legacy-carto .preset-icon .icon.tag-highway-tertiary_link {
     color: #ffff7e;
     fill: #7f7f3f;
 }
-.legacy-carto path.line.stroke.tag-highway-tertiary,
-.legacy-carto path.line.stroke.tag-highway-tertiary_link,
-.legacy-carto path.line.stroke.tag-tertiary {
+.ideditor .legacy-carto path.line.stroke.tag-highway-tertiary,
+.ideditor .legacy-carto path.line.stroke.tag-highway-tertiary_link,
+.ideditor .legacy-carto path.line.stroke.tag-tertiary {
     stroke: #ffff7e;
 }
-.legacy-carto path.line.casing.tag-highway-tertiary,
-.legacy-carto path.line.casing.tag-highway-tertiary_link,
-.legacy-carto path.line.casing.tag-tertiary {
+.ideditor .legacy-carto path.line.casing.tag-highway-tertiary,
+.ideditor .legacy-carto path.line.casing.tag-highway-tertiary_link,
+.ideditor .legacy-carto path.line.casing.tag-tertiary {
     stroke: #7f7f3f;
 }
 
-.preset-icon .icon.tag-highway-residential {
+.ideditor .preset-icon .icon.tag-highway-residential {
     color: #fff;
     fill: #444;
 }
-path.line.stroke.tag-highway-residential,
-path.line.stroke.tag-residential {
+.ideditor path.line.stroke.tag-highway-residential,
+.ideditor path.line.stroke.tag-residential {
     stroke: #fff;
 }
-path.line.casing.tag-highway-residential,
-path.line.casing.tag-residential {
+.ideditor path.line.casing.tag-highway-residential,
+.ideditor path.line.casing.tag-residential {
     stroke: #444;
 }
 
-.preset-icon .icon.tag-highway-unclassified {
+.ideditor .preset-icon .icon.tag-highway-unclassified {
     color: #dca;
     fill: #444;
 }
-path.line.stroke.tag-highway-unclassified,
-path.line.stroke.tag-unclassified {
+.ideditor path.line.stroke.tag-highway-unclassified,
+.ideditor path.line.stroke.tag-unclassified {
     stroke: #dca;
 }
-path.line.casing.tag-highway-unclassified,
-path.line.casing.tag-unclassified {
+.ideditor path.line.casing.tag-highway-unclassified,
+.ideditor path.line.casing.tag-unclassified {
     stroke: #444;
 }
 
 
 /* narrow highways */
-path.line.shadow.tag-highway-living_street,
-path.line.shadow.tag-highway-bus_guideway,
-path.line.shadow.tag-highway-service,
-path.line.shadow.tag-highway-track,
-path.line.shadow.tag-highway-road {
+.ideditor path.line.shadow.tag-highway-living_street,
+.ideditor path.line.shadow.tag-highway-bus_guideway,
+.ideditor path.line.shadow.tag-highway-service,
+.ideditor path.line.shadow.tag-highway-track,
+.ideditor path.line.shadow.tag-highway-road {
     stroke-width: 16;
 }
-path.line.casing.tag-highway-living_street,
-path.line.casing.tag-highway-bus_guideway,
-path.line.casing.tag-highway-service,
-path.line.casing.tag-highway-track,
-path.line.casing.tag-highway-road {
+.ideditor path.line.casing.tag-highway-living_street,
+.ideditor path.line.casing.tag-highway-bus_guideway,
+.ideditor path.line.casing.tag-highway-service,
+.ideditor path.line.casing.tag-highway-track,
+.ideditor path.line.casing.tag-highway-road {
     stroke-width: 7;
 }
-path.line.stroke.tag-highway-living_street,
-path.line.stroke.tag-highway-bus_guideway,
-path.line.stroke.tag-highway-service,
-path.line.stroke.tag-highway-track,
-path.line.stroke.tag-highway-road {
+.ideditor path.line.stroke.tag-highway-living_street,
+.ideditor path.line.stroke.tag-highway-bus_guideway,
+.ideditor path.line.stroke.tag-highway-service,
+.ideditor path.line.stroke.tag-highway-track,
+.ideditor path.line.stroke.tag-highway-road {
     stroke-width: 5;
 }
 
-path.line.shadow.tag-highway-path,
-path.line.shadow.tag-highway-footway,
-path.line.shadow.tag-highway-cycleway,
-path.line.shadow.tag-highway-bridleway,
-path.line.shadow.tag-highway-corridor,
-path.line.shadow.tag-highway-pedestrian,
-path.line.shadow.tag-highway-steps {
+.ideditor path.line.shadow.tag-highway-path,
+.ideditor path.line.shadow.tag-highway-footway,
+.ideditor path.line.shadow.tag-highway-cycleway,
+.ideditor path.line.shadow.tag-highway-bridleway,
+.ideditor path.line.shadow.tag-highway-corridor,
+.ideditor path.line.shadow.tag-highway-steps {
     stroke-width: 16;
 }
-path.line.casing.tag-highway-path,
-path.line.casing.tag-highway-footway,
-path.line.casing.tag-highway-cycleway,
-path.line.casing.tag-highway-bridleway,
-path.line.casing.tag-highway-corridor,
-path.line.casing.tag-highway-pedestrian,
-path.line.casing.tag-highway-steps {
+.ideditor path.line.casing.tag-highway-path,
+.ideditor path.line.casing.tag-highway-footway,
+.ideditor path.line.casing.tag-highway-cycleway,
+.ideditor path.line.casing.tag-highway-bridleway,
+.ideditor path.line.casing.tag-highway-corridor,
+.ideditor path.line.casing.tag-highway-steps {
     stroke-width: 5;
 }
-path.line.stroke.tag-highway-path,
-path.line.stroke.tag-highway-footway,
-path.line.stroke.tag-highway-cycleway,
-path.line.stroke.tag-highway-bridleway,
-path.line.stroke.tag-highway-corridor,
-path.line.stroke.tag-highway-pedestrian,
-path.line.stroke.tag-highway-steps {
+.ideditor path.line.stroke.tag-highway-path,
+.ideditor path.line.stroke.tag-highway-footway,
+.ideditor path.line.stroke.tag-highway-cycleway,
+.ideditor path.line.stroke.tag-highway-bridleway,
+.ideditor path.line.stroke.tag-highway-corridor,
+.ideditor path.line.stroke.tag-highway-steps {
     stroke-width: 3;
 }
 
-.low-zoom path.line.shadow.tag-highway-living_street,
-.low-zoom path.line.shadow.tag-highway-bus_guideway,
-.low-zoom path.line.shadow.tag-highway-service,
-.low-zoom path.line.shadow.tag-highway-track,
-.low-zoom path.line.shadow.tag-highway-road {
+.ideditor .low-zoom path.line.shadow.tag-highway-living_street,
+.ideditor .low-zoom path.line.shadow.tag-highway-bus_guideway,
+.ideditor .low-zoom path.line.shadow.tag-highway-service,
+.ideditor .low-zoom path.line.shadow.tag-highway-track,
+.ideditor .low-zoom path.line.shadow.tag-highway-road {
     stroke-width: 12;
 }
-.low-zoom path.line.casing.tag-highway-living_street,
-.low-zoom path.line.casing.tag-highway-bus_guideway,
-.low-zoom path.line.casing.tag-highway-service,
-.low-zoom path.line.casing.tag-highway-track,
-.low-zoom path.line.casing.tag-highway-road {
+.ideditor .low-zoom path.line.casing.tag-highway-living_street,
+.ideditor .low-zoom path.line.casing.tag-highway-bus_guideway,
+.ideditor .low-zoom path.line.casing.tag-highway-service,
+.ideditor .low-zoom path.line.casing.tag-highway-track,
+.ideditor .low-zoom path.line.casing.tag-highway-road {
     stroke-width: 5;
 }
-.low-zoom path.line.stroke.tag-highway-living_street,
-.low-zoom path.line.stroke.tag-highway-bus_guideway,
-.low-zoom path.line.stroke.tag-highway-service,
-.low-zoom path.line.stroke.tag-highway-track,
-.low-zoom path.line.stroke.tag-highway-road {
+.ideditor .low-zoom path.line.stroke.tag-highway-living_street,
+.ideditor .low-zoom path.line.stroke.tag-highway-bus_guideway,
+.ideditor .low-zoom path.line.stroke.tag-highway-service,
+.ideditor .low-zoom path.line.stroke.tag-highway-track,
+.ideditor .low-zoom path.line.stroke.tag-highway-road {
     stroke-width: 3;
 }
 
-.low-zoom path.line.shadow.tag-highway-path,
-.low-zoom path.line.shadow.tag-highway-footway,
-.low-zoom path.line.shadow.tag-highway-cycleway,
-.low-zoom path.line.shadow.tag-highway-bridleway,
-.low-zoom path.line.shadow.tag-highway-corridor,
-.low-zoom path.line.shadow.tag-highway-pedestrian,
-.low-zoom path.line.shadow.tag-highway-steps {
+.ideditor .low-zoom path.line.shadow.tag-highway-path,
+.ideditor .low-zoom path.line.shadow.tag-highway-footway,
+.ideditor .low-zoom path.line.shadow.tag-highway-cycleway,
+.ideditor .low-zoom path.line.shadow.tag-highway-bridleway,
+.ideditor .low-zoom path.line.shadow.tag-highway-corridor,
+.ideditor .low-zoom path.line.shadow.tag-highway-steps {
     stroke-width: 12;
 }
-.low-zoom path.line.casing.tag-highway-path,
-.low-zoom path.line.casing.tag-highway-footway,
-.low-zoom path.line.casing.tag-highway-cycleway,
-.low-zoom path.line.casing.tag-highway-bridleway,
-.low-zoom path.line.casing.tag-highway-corridor,
-.low-zoom path.line.casing.tag-highway-pedestrian,
-.low-zoom path.line.casing.tag-highway-steps {
+.ideditor .low-zoom path.line.casing.tag-highway-path,
+.ideditor .low-zoom path.line.casing.tag-highway-footway,
+.ideditor .low-zoom path.line.casing.tag-highway-cycleway,
+.ideditor .low-zoom path.line.casing.tag-highway-bridleway,
+.ideditor .low-zoom path.line.casing.tag-highway-corridor,
+.ideditor .low-zoom path.line.casing.tag-highway-steps {
     stroke-width: 3;
 }
-.low-zoom path.line.stroke.tag-highway-path,
-.low-zoom path.line.stroke.tag-highway-footway,
-.low-zoom path.line.stroke.tag-highway-cycleway,
-.low-zoom path.line.stroke.tag-highway-bridleway,
-.low-zoom path.line.stroke.tag-highway-corridor,
-.low-zoom path.line.stroke.tag-highway-pedestrian,
-.low-zoom path.line.stroke.tag-highway-steps {
+.ideditor .low-zoom path.line.stroke.tag-highway-path,
+.ideditor .low-zoom path.line.stroke.tag-highway-footway,
+.ideditor .low-zoom path.line.stroke.tag-highway-cycleway,
+.ideditor .low-zoom path.line.stroke.tag-highway-bridleway,
+.ideditor .low-zoom path.line.stroke.tag-highway-corridor,
+.ideditor .low-zoom path.line.stroke.tag-highway-steps {
     stroke-width: 1;
 }
 
 /* living streets */
-.preset-icon .icon.tag-highway-living-street {
+.ideditor .preset-icon .icon.tag-highway-living-street {
     color: #bbb;
     fill: #ddd;
 }
-path.line.stroke.tag-highway-living_street,
-path.line.stroke.tag-living_street {
+.ideditor path.line.stroke.tag-highway-living_street,
+.ideditor path.line.stroke.tag-living_street {
     stroke: #ccc;
 }
-path.line.casing.tag-highway-living_street,
-path.line.casing.tag-living_street {
+.ideditor path.line.casing.tag-highway-living_street,
+.ideditor path.line.casing.tag-living_street {
     stroke: #fff;
 }
 
-/* pedestrian streets and corridors */
-.preset-icon .icon.tag-highway-corridor,
-.preset-icon .icon.tag-highway-pedestrian {
+/* corridors */
+.ideditor .preset-icon .icon.tag-highway-corridor {
     color: #8cd05f;
     fill: #fff;
 }
-path.line.stroke.tag-highway-corridor,
-path.line.stroke.tag-highway-pedestrian,
-path.line.stroke.tag-corridor,
-path.line.stroke.tag-pedestrian {
+.ideditor path.line.stroke.tag-highway-corridor,
+.ideditor path.line.stroke.tag-corridor {
     stroke: #fff;
     stroke-dasharray: 2, 8;
 }
-.low-zoom path.line.stroke.tag-highway-corridor,
-.low-zoom path.line.stroke.tag-highway-pedestrian,
-.low-zoom path.line.stroke.tag-corridor,
-.low-zoom path.line.stroke.tag-pedestrian {
+.ideditor .low-zoom path.line.stroke.tag-highway-corridor,
+.ideditor .low-zoom path.line.stroke.tag-corridor {
     stroke-dasharray: 1, 4;
 }
-path.line.casing.tag-highway-corridor,
-path.line.casing.tag-highway-pedestrian,
-path.line.casing.tag-corridor,
-path.line.casing.tag-pedestrian,
-path.line.casing.tag-highway-corridor.tag-unpaved,
-path.line.casing.tag-highway-pedestrian.tag-unpaved,
-path.line.casing.tag-corridor.tag-unpaved,
-path.line.casing.tag-pedestrian.tag-unpaved {
+.ideditor path.line.casing.tag-highway-corridor,
+.ideditor path.line.casing.tag-corridor {
     stroke: #8cd05f;
     stroke-linecap: round;
     stroke-dasharray: none;
 }
 
+/* pedestrian streets */
+.ideditor .preset-icon .icon.tag-highway-pedestrian {
+    color: #988;
+}
+.ideditor path.line.stroke.tag-highway-pedestrian,
+.ideditor path.line.stroke.tag-pedestrian {
+    stroke: #fff;
+    stroke-width: 3.5;
+    stroke-dasharray: 8, 8;
+    stroke-linecap: butt;
+}
+.ideditor .low-zoom path.line.stroke.tag-highway-pedestrian,
+.ideditor .low-zoom path.line.stroke.tag-pedestrian {
+    stroke-width: 2;
+    stroke-dasharray: 4, 4;
+}
+.ideditor path.line.casing.tag-highway-pedestrian,
+.ideditor path.line.casing.tag-pedestrian {
+    stroke: #988;
+    stroke-linecap: round;
+    stroke-dasharray: none;
+}
+.ideditor .preset-icon-container path.line.stroke.tag-highway-pedestrian {
+    stroke-dasharray: 12, 12;
+}
+
 /* unknown roads */
-.preset-icon .icon.tag-highway-road {
+.ideditor .preset-icon .icon.tag-highway-road {
     color: #9e9e9e;
     fill: #666;
 }
-path.line.stroke.tag-highway-road,
-path.line.stroke.tag-road {
+.ideditor path.line.stroke.tag-highway-road,
+.ideditor path.line.stroke.tag-road {
     stroke: #9e9e9e;
 }
-path.line.casing.tag-highway-road,
-path.line.casing.tag-road {
+.ideditor path.line.casing.tag-highway-road,
+.ideditor path.line.casing.tag-road {
     stroke: #666;
 }
 
 /* service roads */
-.preset-icon .icon.tag-highway-service {
+.ideditor .preset-icon .icon.tag-highway-service {
     color: #fff;
     fill: #666;
 }
-path.line.stroke.tag-highway-service,
-path.line.stroke.tag-service {
+.ideditor path.line.stroke.tag-highway-service,
+.ideditor path.line.stroke.tag-service {
     stroke: #fff;
 }
-path.line.casing.tag-highway-service,
-path.line.casing.tag-service {
+.ideditor path.line.casing.tag-highway-service,
+.ideditor path.line.casing.tag-service {
     stroke: #666;
 }
 
 /* special service roads and bus guideways */
 /* with `service=* tag`  (e.g. parking_aisle, alley, drive-through) */
-.preset-icon .icon.tag-highway-bus_guideway,
-.preset-icon .icon.tag-highway-service.tag-service {
-    color: #dca;
-    fill: #666;
-}
-path.line.stroke.tag-highway-bus_guideway,
-path.line.stroke.tag-highway-service.tag-service,
-path.line.stroke.tag-service.tag-service {
+.ideditor path.line.stroke.tag-highway-bus_guideway,
+.ideditor path.line.stroke.tag-highway-service.tag-service,
+.ideditor path.line.stroke.tag-service.tag-service {
     stroke: #dca;
 }
-path.line.casing.tag-highway-bus_guideway,
-path.line.casing.tag-highway-service.tag-service,
-path.line.casing.tag-service.tag-service {
+.ideditor path.line.casing.tag-highway-bus_guideway,
+.ideditor path.line.casing.tag-highway-service.tag-service,
+.ideditor path.line.casing.tag-service.tag-service {
     stroke: #666;
 }
 
 /* unmaintained track roads */
-path.line.stroke.tag-highway-track,
-path.line.stroke.tag-track {
+.ideditor path.line.stroke.tag-highway-track,
+.ideditor path.line.stroke.tag-track {
     stroke: #c5b59f;
 }
-path.line.casing.tag-highway-track,
-path.line.casing.tag-track {
+.ideditor path.line.casing.tag-highway-track,
+.ideditor path.line.casing.tag-track {
     stroke: #746f6f;
 }
 
 /* paths */
-path.line.stroke.tag-highway-path,
-path.line.stroke.tag-highway-footway,
-path.line.stroke.tag-highway-cycleway,
-path.line.stroke.tag-highway-bridleway {
+.ideditor path.line.stroke.tag-highway-path,
+.ideditor path.line.stroke.tag-highway-footway,
+.ideditor path.line.stroke.tag-highway-cycleway,
+.ideditor path.line.stroke.tag-highway-bridleway {
     stroke-linecap: butt;
     stroke-dasharray: 6, 6;
 }
-.low-zoom path.line.stroke.tag-highway-path,
-.low-zoom path.line.stroke.tag-highway-footway,
-.low-zoom path.line.stroke.tag-highway-cycleway,
-.low-zoom path.line.stroke.tag-highway-bridleway {
+.ideditor .low-zoom path.line.stroke.tag-highway-path,
+.ideditor .low-zoom path.line.stroke.tag-highway-footway,
+.ideditor .low-zoom path.line.stroke.tag-highway-cycleway,
+.ideditor .low-zoom path.line.stroke.tag-highway-bridleway {
     stroke-linecap: butt;
     stroke-dasharray: 3, 3;
 }
 
 /* style for features that should have highway=footway but don't yet */
-path.line.stroke.tag-crossing,
-path.line.stroke.tag-footway-access_aisle,
-path.line.stroke.tag-public_transport-platform,
-path.line.stroke.tag-highway-platform,
-path.line.stroke.tag-railway-platform,
-path.line.stroke.tag-man_made-pier {
+.ideditor path.line.stroke.tag-crossing,
+.ideditor path.line.stroke.tag-footway-access_aisle,
+.ideditor path.line.stroke.tag-public_transport-platform,
+.ideditor path.line.stroke.tag-highway-platform,
+.ideditor path.line.stroke.tag-railway-platform,
+.ideditor path.line.stroke.tag-man_made-pier {
     stroke: #dca;
 }
 
-path.line.casing.tag-highway-path,
-path.line.casing.tag-highway-path.tag-unpaved,
-path.line.casing.tag-highway-footway.tag-public_transport-platform,
-path.line.casing.tag-highway-footway.tag-man_made-pier,
-path.line.casing.tag-highway.tag-crossing,
-path.line.casing.tag-highway.tag-footway-access_aisle {
+.ideditor path.line.casing.tag-highway-path,
+.ideditor path.line.casing.tag-highway-footway.tag-public_transport-platform,
+.ideditor path.line.casing.tag-highway-footway.tag-man_made-pier,
+.ideditor path.line.casing.tag-highway.tag-crossing,
+.ideditor path.line.casing.tag-highway.tag-footway-access_aisle {
     stroke: #dca;
     stroke-linecap: round;
     stroke-dasharray: none;
 }
-path.line.casing.tag-highway-footway,
-path.line.casing.tag-highway-cycleway,
-path.line.casing.tag-highway-bridleway,
-path.line.casing.tag-highway-footway.tag-unpaved,
-path.line.casing.tag-highway-cycleway.tag-unpaved,
-path.line.casing.tag-highway-bridleway.tag-unpaved {
+.ideditor path.line.casing.tag-highway-footway,
+.ideditor path.line.casing.tag-highway-cycleway,
+.ideditor path.line.casing.tag-highway-bridleway {
     stroke: #fff;
     stroke-linecap: round;
     stroke-dasharray: none;
 }
 
-.preset-icon .icon.tag-highway-path,
-.preset-icon .icon.tag-highway-footway.tag-public_transport-platform,
-.preset-icon .icon.tag-highway-footway.tag-man_made-pier {
+.ideditor .preset-icon .icon.tag-highway-path,
+.ideditor .preset-icon .icon.tag-highway-footway.tag-public_transport-platform,
+.ideditor .preset-icon .icon.tag-highway-footway.tag-man_made-pier {
     color: #988;
     fill: #dca;
 }
-path.line.stroke.tag-highway-path {
+.ideditor path.line.stroke.tag-highway-path {
     stroke: #988;
 }
+.ideditor path.line.stroke.tag-highway-path.tag-bridge-boardwalk {
+    stroke: #dca;
+}
 
 /* footways */
-.preset-icon .icon.tag-route-foot,
-.preset-icon .icon.tag-route-hiking,
-.preset-icon .icon.tag-highway-footway {
+.ideditor .preset-icon .icon.tag-route-foot,
+.ideditor .preset-icon .icon.tag-route-hiking,
+.ideditor .preset-icon .icon.tag-highway-footway {
     color: #988;
     fill: #fff;
 }
-path.line.stroke.tag-highway-footway,
-path.line.stroke.tag-highway_bus_stop,
-.preset-icon-container path.casing.tag-highway-footway {
+.ideditor path.line.stroke.tag-highway-footway,
+.ideditor path.line.stroke.tag-highway_bus_stop,
+.ideditor .preset-icon-container path.casing.tag-highway-footway {
     stroke: #988;
 }
-.preset-icon .icon.tag-highway-footway.tag-footway-sidewalk {
+.ideditor .preset-icon .icon.tag-highway-footway.tag-footway-sidewalk {
     color: #d4b4b4;
 }
-path.stroke.tag-highway-footway.tag-footway-sidewalk,
-.preset-icon-container path.casing.tag-highway-footway.tag-footway-sidewalk {
+.ideditor path.stroke.tag-highway-footway.tag-footway-sidewalk,
+.ideditor .preset-icon-container path.casing.tag-highway-footway.tag-footway-sidewalk {
     stroke: #d4b4b4;
 }
-.preset-icon-container path.stroke.tag-highway-footway:not(.tag-crossing-marked):not(.tag-crossing-unmarked):not(.tag-footway-access_aisle):not(.tag-man_made-pier):not(.tag-public_transport-platform) {
+.ideditor .preset-icon-container path.stroke.tag-highway-footway:not(.tag-crossing-marked):not(.tag-crossing-unmarked):not(.tag-footway-access_aisle):not(.tag-man_made-pier):not(.tag-public_transport-platform) {
     stroke: #fff;
 }
 
 /* cycleways */
-.preset-icon .icon.tag-route-bicycle,
-.preset-icon .icon.tag-highway-cycleway {
+.ideditor .preset-icon .icon.tag-route-bicycle,
+.ideditor .preset-icon .icon.tag-highway-cycleway {
     color: #58a9ed;
     fill: #fff;
 }
-path.line.stroke.tag-highway-cycleway,
-.preset-icon-container path.casing.tag-highway-cycleway {
+.ideditor path.line.stroke.tag-highway-cycleway,
+.ideditor .preset-icon-container path.casing.tag-highway-cycleway {
     stroke: #58a9ed;
 }
-.preset-icon-container path.stroke.tag-highway-cycleway:not(.tag-crossing) {
+.ideditor .preset-icon-container path.stroke.tag-highway-cycleway:not(.tag-crossing) {
     stroke: #fff;
 }
 
 /* bridleways */
-.preset-icon .icon.tag-route-horse,
-.preset-icon .icon.tag-highway-bridleway {
+.ideditor .preset-icon .icon.tag-route-horse,
+.ideditor .preset-icon .icon.tag-highway-bridleway {
     color: #e06d5f;
     fill: #fff;
 }
-path.line.stroke.tag-highway-bridleway,
-.preset-icon-container path.casing.tag-highway-bridleway {
+.ideditor path.line.stroke.tag-highway-bridleway,
+.ideditor .preset-icon-container path.casing.tag-highway-bridleway {
     stroke: #e06d5f;
 }
-.preset-icon-container path.stroke.tag-highway-bridleway {
+.ideditor .preset-icon-container path.stroke.tag-highway-bridleway {
     stroke: #fff;
 }
 
 /* racetracks */
-.preset-icon .icon.tag-leisure-track {
+.ideditor .preset-icon .icon.tag-leisure-track {
     color: rgb(229, 184, 43);
 }
-path.line.stroke.tag-leisure-track,
-.preset-icon-container path.casing.tag-highway.tag-leisure-track {
+.ideditor path.line.stroke.tag-leisure-track,
+.ideditor .preset-icon-container path.casing.tag-highway.tag-leisure-track {
     stroke: rgb(229, 184, 43);
 }
-.preset-icon-container path.line.stroke.tag-highway.tag-leisure-track {
+.ideditor .preset-icon-container path.line.stroke.tag-highway.tag-leisure-track {
     stroke: #fff;
 }
 
 /* steps */
-.preset-icon .icon.tag-highway-steps {
+.ideditor .preset-icon .icon.tag-highway-steps {
     color: #81d25c;
     fill: #fff;
 }
-path.line.stroke.tag-highway-steps {
+.ideditor path.line.stroke.tag-highway-steps {
     stroke-linecap: butt;
     stroke-dasharray: 3, 3;
 }
-.low-zoom path.line.stroke.tag-highway-steps {
+.ideditor .low-zoom path.line.stroke.tag-highway-steps {
     stroke-dasharray: 2, 2;
 }
-path.line.casing.tag-highway-steps,
-path.line.casing.tag-highway-steps.tag-unpaved {
+.ideditor path.line.casing.tag-highway-steps {
     stroke: #fff;
     stroke-linecap: round;
     stroke-dasharray: none;
 }
-path.line.stroke.tag-highway-steps,
-.preset-icon-container path.line.casing.tag-highway-steps {
+.ideditor path.line.stroke.tag-highway-steps,
+.ideditor .preset-icon-container path.line.casing.tag-highway-steps {
     stroke: #81d25c;
 }
-.preset-icon-container path.line.stroke.tag-highway-steps {
+.ideditor .preset-icon-container path.line.stroke.tag-highway-steps {
     stroke: #fff;
 }
 
 
 /* crossings */
-path.line.stroke.tag-highway.tag-crossing-unmarked {
+.ideditor path.line.stroke.tag-highway.tag-crossing-unmarked {
     stroke-dasharray: 6, 4;
 }
-.low-zoom path.line.stroke.tag-highway.tag-crossing-unmarked {
+.ideditor .low-zoom path.line.stroke.tag-highway.tag-crossing-unmarked {
     stroke-dasharray: 3, 2;
 }
-path.line.stroke.tag-highway.tag-crossing-marked {
+.ideditor path.line.stroke.tag-highway.tag-crossing-marked {
     stroke-dasharray: 6, 3;
 }
-.low-zoom path.line.stroke.tag-highway.tag-crossing-marked {
+.ideditor .low-zoom path.line.stroke.tag-highway.tag-crossing-marked {
     stroke-dasharray: 3, 1.5;
 }
-path.line.stroke.tag-highway-footway.tag-crossing-marked {
+.ideditor path.line.stroke.tag-highway-footway.tag-crossing-marked {
     stroke: #4c4444;
 }
-.preset-icon .icon.tag-highway-footway.tag-crossing-marked {
+.ideditor .preset-icon .icon.tag-highway-footway.tag-crossing-marked {
     color: #4c4444;
 }
-path.line.stroke.tag-highway-footway.tag-crossing-unmarked {
+.ideditor path.line.stroke.tag-highway-footway.tag-crossing-unmarked {
     stroke: #776a6a;
 }
-.preset-icon .icon.tag-highway-footway.tag-crossing-unmarked {
+.ideditor .preset-icon .icon.tag-highway-footway.tag-crossing-unmarked {
     color: #776a6a;
 }
-path.line.stroke.tag-highway-cycleway.tag-crossing-marked {
+.ideditor path.line.stroke.tag-highway-cycleway.tag-crossing-marked {
     stroke: #446077;
 }
-.preset-icon .icon.tag-highway-cycleway.tag-crossing-marked {
+.ideditor .preset-icon .icon.tag-highway-cycleway.tag-crossing-marked {
     color: #446077;
 }
 
-path.line.stroke.tag-highway.tag-footway-access_aisle {
+.ideditor path.line.stroke.tag-highway.tag-footway-access_aisle {
     stroke-dasharray: 4, 2;
 }
-.low-zoom path.line.stroke.tag-highway.tag-footway-access_aisle,
-.preset-icon-container path.stroke.tag-highway.tag-footway-access_aisle {
+.ideditor .low-zoom path.line.stroke.tag-highway.tag-footway-access_aisle,
+.ideditor .preset-icon-container path.stroke.tag-highway.tag-footway-access_aisle {
     stroke-dasharray: 2.5, 1.5;
 }
-path.line.stroke.tag-highway.tag-footway-access_aisle {
+.ideditor path.line.stroke.tag-highway.tag-footway-access_aisle {
     stroke: #4c4444;
 }
-.preset-icon .icon.tag-highway.tag-footway-access_aisle {
+.ideditor .preset-icon .icon.tag-highway.tag-footway-access_aisle {
     color: #4c4444;
 }
 
 
 /* highway midpoints */
-g.midpoint.tag-highway-corridor .fill,
-g.midpoint.tag-highway-pedestrian .fill,
-g.midpoint.tag-highway-steps .fill,
-g.midpoint.tag-highway-path .fill,
-g.midpoint.tag-highway-footway .fill,
-g.midpoint.tag-highway-cycleway .fill,
-g.midpoint.tag-highway-bridleway .fill {
+.ideditor g.midpoint.tag-highway-corridor .fill,
+.ideditor g.midpoint.tag-highway-steps .fill,
+.ideditor g.midpoint.tag-highway-path .fill,
+.ideditor g.midpoint.tag-highway-footway .fill,
+.ideditor g.midpoint.tag-highway-cycleway .fill,
+.ideditor g.midpoint.tag-highway-bridleway .fill {
     fill: #fff;
     stroke: #333;
     stroke-opacity: .8;
@@ -1555,584 +1537,581 @@ g.midpoint.tag-highway-bridleway .fill {
 /* aeroways */
 
 /* areas */
-path.area.stroke.tag-aeroway,
-.low-zoom path.area.stroke.tag-aeroway {
+.ideditor path.area.stroke.tag-aeroway,
+.ideditor .low-zoom path.area.stroke.tag-aeroway {
     stroke: #fff;
     stroke-dasharray: none;
     stroke-width: 1;
 }
-path.area.fill.tag-aeroway-runway {
+.ideditor path.area.fill.tag-aeroway-runway {
     stroke: rgba(0, 0, 0, 0.6);
     fill: rgba(0, 0, 0, 0.6);
 }
 
 /* lines */
 /* narrow aeroways (taxiway) */
-path.line.shadow.tag-aeroway-taxiway,
-path.line.shadow.tag-taxiway {
+.ideditor path.line.shadow.tag-aeroway-taxiway,
+.ideditor path.line.shadow.tag-taxiway {
     stroke-width: 16;
 }
-path.line.casing.tag-aeroway-taxiway,
-path.line.casing.tag-taxiway {
+.ideditor path.line.casing.tag-aeroway-taxiway,
+.ideditor path.line.casing.tag-taxiway {
     stroke-width: 7;
 }
-path.line.stroke.tag-aeroway-taxiway,
-path.line.stroke.tag-taxiway {
+.ideditor path.line.stroke.tag-aeroway-taxiway,
+.ideditor path.line.stroke.tag-taxiway {
     stroke-width: 5;
 }
-.low-zoom path.line.shadow.tag-aeroway-taxiway,
-.low-zoom path.line.shadow.tag-taxiway {
+.ideditor .low-zoom path.line.shadow.tag-aeroway-taxiway,
+.ideditor .low-zoom path.line.shadow.tag-taxiway {
     stroke-width: 12;
 }
-.low-zoom path.line.casing.tag-aeroway-taxiway,
-.low-zoom path.line.casing.tag-taxiway {
+.ideditor .low-zoom path.line.casing.tag-aeroway-taxiway,
+.ideditor .low-zoom path.line.casing.tag-taxiway {
     stroke-width: 5;
 }
-.low-zoom path.line.stroke.tag-aeroway-taxiway,
-.low-zoom path.line.stroke.tag-taxiway {
+.ideditor .low-zoom path.line.stroke.tag-aeroway-taxiway,
+.ideditor .low-zoom path.line.stroke.tag-taxiway {
     stroke-width: 3;
 }
 
-.preset-icon .icon.tag-aeroway-taxiway,
-.preset-icon .icon.tag-taxiway {
-    color: #ff0;
-    fill: #666;
-}
-path.line.stroke.tag-aeroway-taxiway,
-path.line.stroke.tag-taxiway {
+.ideditor path.line.stroke.tag-aeroway-taxiway,
+.ideditor path.line.stroke.tag-taxiway {
     stroke: #ff0;
 }
-path.line.casing.tag-aeroway-taxiway,
-path.line.casing.tag-taxiway {
+.ideditor path.line.casing.tag-aeroway-taxiway,
+.ideditor path.line.casing.tag-taxiway {
     stroke: #666;
 }
 
 /* wide aeroways (runway) */
-.preset-icon .icon.tag-aeroway-runway,
-.preset-icon .icon.tag-runway {
+.ideditor .preset-icon .icon.tag-aeroway-runway,
+.ideditor .preset-icon .icon.tag-runway {
     color: #444;
     fill: #000;
 }
-path.line.shadow.tag-aeroway-runway {
+.ideditor path.line.shadow.tag-aeroway-runway {
     stroke-width: 20;
 }
-path.line.casing.tag-aeroway-runway {
+.ideditor path.line.casing.tag-aeroway-runway {
     stroke-width: 10;
     stroke: #000;
     stroke-linecap: square;
 }
-path.line.stroke.tag-aeroway-runway {
+.ideditor path.line.stroke.tag-aeroway-runway {
     stroke: #fff;
     stroke-width: 2;
     stroke-linecap: butt;
     stroke-dasharray: 24, 48;
 }
-.low-zoom path.line.shadow.tag-aeroway-runway {
+.ideditor .low-zoom path.line.shadow.tag-aeroway-runway {
     stroke-width: 16;
 }
-.low-zoom path.line.casing.tag-aeroway-runway {
+.ideditor .low-zoom path.line.casing.tag-aeroway-runway {
     stroke-width: 7;
 }
-.low-zoom path.line.stroke.tag-aeroway-runway {
+.ideditor .low-zoom path.line.stroke.tag-aeroway-runway {
     stroke-width: 2;
     stroke-dasharray: 12, 24;
 }
-.preset-icon-container path.line.stroke.tag-aeroway-runway {
+.ideditor .preset-icon-container path.line.stroke.tag-aeroway-runway {
     stroke-dasharray: 0, 14, 8, 14;
 }
 /* railways */
 
 /* defaults */
-.preset-icon .icon.tag-railway.other-line {
+.ideditor .preset-icon .icon.tag-railway.other-line {
     color: #fff;
     fill: #777;
 }
-.preset-icon .icon.tag-railway {
+.ideditor .preset-icon .icon.tag-railway {
     color: #555;
-    fill: #eee;
 }
 
 /* lines */
 /* narrow widths */
-path.line.shadow.tag-railway {
+.ideditor path.line.shadow.tag-railway {
     stroke-width: 16;
 }
-path.line.casing.tag-railway {
+.ideditor path.line.casing.tag-railway {
     stroke-width: 7;
 }
-path.line.stroke.tag-railway {
+.ideditor path.line.stroke.tag-railway {
     stroke-width: 2;
     stroke-linecap: butt;
     stroke-dasharray: 12,12;
 }
-.low-zoom path.line.shadow.tag-railway {
+.ideditor .low-zoom path.line.shadow.tag-railway {
     stroke-width: 12;
 }
-.low-zoom path.line.casing.tag-railway {
+.ideditor .low-zoom path.line.casing.tag-railway {
     stroke-width: 5;
 }
-.low-zoom path.line.stroke.tag-railway {
+.ideditor .low-zoom path.line.stroke.tag-railway {
     stroke-width: 2;
     stroke-dasharray: 6,6;
 }
-.preset-icon-container path.line.stroke.tag-railway:not(.tag-status) {
+.ideditor .preset-icon-container path.line.stroke.tag-railway:not(.tag-status),
+.ideditor .preset-icon-container path.line.stroke.tag-railway.tag-status-disused {
     stroke-dasharray: 6;
 }
 
-path.line.casing.tag-railway.tag-railway-platform {
+.ideditor path.line.casing.tag-railway.tag-railway-platform {
     stroke-width: 0;
 }
-path.line.stroke.tag-railway.tag-railway-platform {
+.ideditor path.line.stroke.tag-railway.tag-railway-platform {
     stroke-dasharray: none;
 }
 
 /* styles */
-path.line.casing.tag-railway {
+.ideditor path.line.casing.tag-railway {
     stroke: #555;
 }
-path.line.stroke.tag-railway {
+.ideditor path.line.stroke.tag-railway {
     stroke: #eee;
 }
 
 
-.preset-icon .icon.tag-railway-disused,
-.preset-icon .icon.tag-railway-abandoned {
+.ideditor .preset-icon .icon.tag-railway.tag-status {
     color: #999;
-    fill: #eee;
 }
-path.line.casing.tag-railway-disused,
-path.line.casing.tag-railway-abandoned {
+.ideditor path.line.casing.tag-railway.tag-status {
     stroke: #999;
 }
-path.line.stroke.tag-railway-disused,
-path.line.stroke.tag-railway-abandoned {
+.ideditor path.line.stroke.tag-railway.tag-status:not(.tag-service) {
     stroke: #eee;
 }
+.ideditor .preset-icon .icon.tag-railway.tag-status-disused {
+    color: #808080;
+}
+.ideditor path.line.casing.tag-railway.tag-status-disused {
+    stroke: #808080;
+}
 
 
-path.line.casing.tag-railway-subway {
+.ideditor path.line.casing.tag-railway-subway {
     stroke: #222;
 }
-path.line.stroke.tag-railway-subway {
+.ideditor path.line.stroke.tag-railway-subway {
     stroke: #bbb;
 }
 /* waterways */
 
 /* defaults */
-.preset-icon .icon.tag-waterway.other-line {
+.ideditor .preset-icon .icon.tag-waterway.other-line {
     color: #7dd;
     fill: #7dd;
 }
-.preset-icon .icon.tag-type-waterway:not(.tag-waterway-dam),
-.preset-icon .icon.tag-waterway:not(.tag-waterway-dam) {
+.ideditor .preset-icon .icon.tag-type-waterway:not(.tag-waterway-dam),
+.ideditor .preset-icon .icon.tag-waterway:not(.tag-waterway-dam) {
     color: #7dd;
     fill: #fff;
 }
 
 
 /* areas */
-path.area.stroke.tag-waterway-dock,
-path.area.stroke.tag-waterway-boatyard,
-path.area.stroke.tag-waterway-fuel {
+.ideditor path.area.stroke.tag-waterway-dock,
+.ideditor path.area.stroke.tag-waterway-boatyard,
+.ideditor path.area.stroke.tag-waterway-fuel {
     stroke: white;
     stroke-width: 1;
 }
-path.area.casing.tag-waterway-dock,
-path.area.casing.tag-waterway-boatyard,
-path.area.casing.tag-waterway-fuel {
+.ideditor path.area.casing.tag-waterway-dock,
+.ideditor path.area.casing.tag-waterway-boatyard,
+.ideditor path.area.casing.tag-waterway-fuel {
     stroke: none;
 }
-path.area.fill.tag-waterway-dock,
-path.area.fill.tag-waterway-boatyard,
-path.area.fill.tag-waterway-fuel {
+.ideditor path.area.fill.tag-waterway-dock,
+.ideditor path.area.fill.tag-waterway-boatyard,
+.ideditor path.area.fill.tag-waterway-fuel {
     stroke: rgba(255, 255, 255, 0.3);
     fill: rgba(255, 255, 255, 0.3);
 }
 
 /* lines */
-path.line.fill.tag-waterway:not(.tag-waterway-dam) {
+.ideditor path.line.fill.tag-waterway:not(.tag-waterway-dam) {
     stroke: rgba(119, 211, 222, 0.3);
     fill: rgba(119, 211, 222, 0.3);
 }
-path.line.casing.tag-waterway:not(.tag-waterway-dam) {
+.ideditor path.line.casing.tag-waterway:not(.tag-waterway-dam) {
     stroke: #444;
 }
-path.line.stroke.tag-waterway:not(.tag-waterway-dam) {
+.ideditor path.line.stroke.tag-waterway:not(.tag-waterway-dam) {
     stroke: #7dd;
 }
 
 
 /* narrow waterways (default) */
-path.line.shadow.tag-waterway {
+.ideditor path.line.shadow.tag-waterway {
     stroke-width: 16;
 }
-path.line.casing.tag-waterway {
+.ideditor path.line.casing.tag-waterway {
     stroke-width: 7;
 }
-path.line.stroke.tag-waterway {
+.ideditor path.line.stroke.tag-waterway {
     stroke-width: 5;
 }
 
-.low-zoom path.line.shadow.tag-waterway {
+.ideditor .low-zoom path.line.shadow.tag-waterway {
     stroke-width: 12;
 }
-.low-zoom path.line.casing.tag-waterway {
+.ideditor .low-zoom path.line.casing.tag-waterway {
     stroke-width: 5;
 }
-.low-zoom path.line.stroke.tag-waterway {
+.ideditor .low-zoom path.line.stroke.tag-waterway {
     stroke-width: 3;
 }
 
 
 /* wide waterways (river) */
-path.line.shadow.tag-waterway-river {
+.ideditor path.line.shadow.tag-waterway-river {
     stroke-width: 20;
 }
-path.line.casing.tag-waterway-river {
+.ideditor path.line.casing.tag-waterway-river {
     stroke-width: 10;
 }
-path.line.stroke.tag-waterway-river {
+.ideditor path.line.stroke.tag-waterway-river {
     stroke-width: 8;
 }
 
-.low-zoom path.line.shadow.tag-waterway-river {
+.ideditor .low-zoom path.line.shadow.tag-waterway-river {
     stroke-width: 16;
 }
-.low-zoom path.line.casing.tag-waterway-river {
+.ideditor .low-zoom path.line.casing.tag-waterway-river {
     stroke-width: 7;
 }
-.low-zoom path.line.stroke.tag-waterway-river {
+.ideditor .low-zoom path.line.stroke.tag-waterway-river {
     stroke-width: 5;
 }
 
 
 /* ditch */
-.preset-icon .icon.tag-waterway-ditch {
+.ideditor .preset-icon .icon.tag-waterway-ditch {
     color: #39a;
 }
-path.line.stroke.tag-waterway-ditch {
+.ideditor path.line.stroke.tag-waterway-ditch {
     stroke: #39a;
 }
 
 /* narrow width miscellanous things */
-path.line.shadow.tag-aerialway,
-path.line.shadow.tag-attraction-summer_toboggan,
-path.line.shadow.tag-attraction-water_slide,
-path.line.shadow.tag-golf-cartpath,
-path.line.shadow.tag-man_made-pipeline,
-path.line.shadow.tag-natural-tree_row,
-path.line.shadow.tag-piste {
+.ideditor path.line.shadow.tag-aerialway,
+.ideditor path.line.shadow.tag-attraction-summer_toboggan,
+.ideditor path.line.shadow.tag-attraction-water_slide,
+.ideditor path.line.shadow.tag-golf-cartpath,
+.ideditor path.line.shadow.tag-man_made-pipeline,
+.ideditor path.line.shadow.tag-natural-tree_row,
+.ideditor path.line.shadow.tag-piste {
     stroke-width: 16;
 }
-path.line.casing.tag-aerialway,
-path.line.casing.tag-attraction-summer_toboggan,
-path.line.casing.tag-attraction-water_slide,
-path.line.casing.tag-golf-cartpath,
-path.line.casing.tag-man_made-pipeline,
-path.line.casing.tag-natural-tree_row,
-path.line.casing.tag-piste {
+.ideditor path.line.casing.tag-aerialway,
+.ideditor path.line.casing.tag-attraction-summer_toboggan,
+.ideditor path.line.casing.tag-attraction-water_slide,
+.ideditor path.line.casing.tag-golf-cartpath,
+.ideditor path.line.casing.tag-man_made-pipeline,
+.ideditor path.line.casing.tag-natural-tree_row,
+.ideditor path.line.casing.tag-piste {
     stroke-width: 7;
 }
-path.line.stroke.tag-aerialway,
-path.line.stroke.tag-attraction-summer_toboggan,
-path.line.stroke.tag-attraction-water_slide,
-path.line.stroke.tag-golf-cartpath,
-path.line.stroke.tag-man_made-pipeline,
-path.line.stroke.tag-natural-tree_row,
-path.line.stroke.tag-piste {
+.ideditor path.line.stroke.tag-aerialway,
+.ideditor path.line.stroke.tag-attraction-summer_toboggan,
+.ideditor path.line.stroke.tag-attraction-water_slide,
+.ideditor path.line.stroke.tag-golf-cartpath,
+.ideditor path.line.stroke.tag-man_made-pipeline,
+.ideditor path.line.stroke.tag-natural-tree_row,
+.ideditor path.line.stroke.tag-piste {
     stroke-width: 5;
 }
 
-.low-zoom path.line.shadow.tag-aerialway,
-.low-zoom path.line.shadow.tag-attraction-summer_toboggan,
-.low-zoom path.line.shadow.tag-attraction-water_slide,
-.low-zoom path.line.shadow.tag-golf-cartpath,
-.low-zoom path.line.shadow.tag-man_made-pipeline,
-.low-zoom path.line.shadow.tag-natural-tree_row,
-.low-zoom path.line.shadow.tag-piste {
+.ideditor .low-zoom path.line.shadow.tag-aerialway,
+.ideditor .low-zoom path.line.shadow.tag-attraction-summer_toboggan,
+.ideditor .low-zoom path.line.shadow.tag-attraction-water_slide,
+.ideditor .low-zoom path.line.shadow.tag-golf-cartpath,
+.ideditor .low-zoom path.line.shadow.tag-man_made-pipeline,
+.ideditor .low-zoom path.line.shadow.tag-natural-tree_row,
+.ideditor .low-zoom path.line.shadow.tag-piste {
     stroke-width: 12;
 }
-.low-zoom path.line.casing.tag-aerialway,
-.low-zoom path.line.casing.tag-attraction-summer_toboggan,
-.low-zoom path.line.casing.tag-attraction-water_slide,
-.low-zoom path.line.casing.tag-golf-cartpath,
-.low-zoom path.line.casing.tag-man_made-pipeline,
-.low-zoom path.line.casing.tag-natural-tree_row,
-.low-zoom path.line.casing.tag-piste {
+.ideditor .low-zoom path.line.casing.tag-aerialway,
+.ideditor .low-zoom path.line.casing.tag-attraction-summer_toboggan,
+.ideditor .low-zoom path.line.casing.tag-attraction-water_slide,
+.ideditor .low-zoom path.line.casing.tag-golf-cartpath,
+.ideditor .low-zoom path.line.casing.tag-man_made-pipeline,
+.ideditor .low-zoom path.line.casing.tag-natural-tree_row,
+.ideditor .low-zoom path.line.casing.tag-piste {
     stroke-width: 5;
 }
-.low-zoom path.line.stroke.tag-aerialway,
-.low-zoom path.line.stroke.tag-attraction-summer_toboggan,
-.low-zoom path.line.stroke.tag-attraction-water_slide,
-.low-zoom path.line.stroke.tag-golf-cartpath,
-.low-zoom path.line.stroke.tag-man_made-pipeline,
-.low-zoom path.line.stroke.tag-natural-tree_row,
-.low-zoom path.line.stroke.tag-piste {
+.ideditor .low-zoom path.line.stroke.tag-aerialway,
+.ideditor .low-zoom path.line.stroke.tag-attraction-summer_toboggan,
+.ideditor .low-zoom path.line.stroke.tag-attraction-water_slide,
+.ideditor .low-zoom path.line.stroke.tag-golf-cartpath,
+.ideditor .low-zoom path.line.stroke.tag-man_made-pipeline,
+.ideditor .low-zoom path.line.stroke.tag-natural-tree_row,
+.ideditor .low-zoom path.line.stroke.tag-piste {
     stroke-width: 3;
 }
 
 
 /* ferry routes  */
-.preset-icon .icon.tag-route-ferry {
+.ideditor .preset-icon .icon.tag-route-ferry {
     color: #58a9ed;
     fill: #fff;
 }
-path.line.shadow.tag-route-ferry {
+.ideditor path.line.shadow.tag-route-ferry {
     stroke-width: 16;
 }
-path.line.stroke.tag-route-ferry {
+.ideditor path.line.stroke.tag-route-ferry {
     stroke-width: 3;
     stroke-linecap: butt;
     stroke-dasharray: 12,8;
 }
-.low-zoom path.line.shadow.tag-route-ferry {
+.ideditor .low-zoom path.line.shadow.tag-route-ferry {
     stroke-width: 12;
 }
-.low-zoom path.line.stroke.tag-route-ferry,
-.preset-icon-container path.line.stroke.tag-route-ferry {
+.ideditor .low-zoom path.line.stroke.tag-route-ferry,
+.ideditor .preset-icon-container path.line.stroke.tag-route-ferry {
     stroke-width: 2;
     stroke-dasharray: 6,4;
 }
-path.line.stroke.tag-route-ferry {
+.ideditor path.line.stroke.tag-route-ferry {
     stroke: #58a9ed;
 }
-path.line.casing.tag-route-ferry {
+.ideditor path.line.casing.tag-route-ferry {
     stroke: none;
 }
 
 
 /* aerialways */
-path.line.stroke.tag-aerialway {
+.ideditor path.line.stroke.tag-aerialway {
     stroke: #c55;
 }
-path.line.casing.tag-aerialway {
+.ideditor path.line.casing.tag-aerialway {
     stroke: #444;
 }
 
 
 /* pistes */
-path.line.stroke.tag-piste {
+.ideditor path.line.stroke.tag-piste {
     stroke: #a9d;
 }
-path.line.casing.tag-piste {
+.ideditor path.line.casing.tag-piste {
     stroke: #444;
 }
 
 
 /* Attractions */
-path.line.stroke.tag-attraction-summer_toboggan {
+.ideditor path.line.stroke.tag-attraction-summer_toboggan {
     stroke: #9e9e9e;
 }
-path.line.casing.tag-attraction-summer_toboggan {
+.ideditor path.line.casing.tag-attraction-summer_toboggan {
     stroke: #666;
 }
 
-path.line.stroke.tag-attraction-water_slide {
+.ideditor path.line.stroke.tag-attraction-water_slide {
     stroke: #aae0cb;
 }
-path.line.casing.tag-attraction-water_slide {
+.ideditor path.line.casing.tag-attraction-water_slide {
     stroke: #3d6c71;
 }
 
 
 /* golf cartpaths (like service roads) */
-.preset-icon .icon.tag-golf-cartpath {
+.ideditor .preset-icon .icon.tag-golf-cartpath {
     color: #dca;
     fill: #666;
 }
-path.line.stroke.tag-golf-cartpath {
+.ideditor path.line.stroke.tag-golf-cartpath {
     stroke: #dca;
 }
-path.line.casing.tag-golf-cartpath {
+.ideditor path.line.casing.tag-golf-cartpath {
     stroke: #666;
 }
 
 
 /* power and pipeline */
-.preset-icon .icon.tag-man_made-pipeline,
-.preset-icon .icon.tag-power {
+.ideditor .preset-icon .icon.tag-man_made-pipeline,
+.ideditor .preset-icon .icon.tag-power {
     color: #939393;
     fill: #939393;
 }
 
 
 /* power */
-path.line.stroke.tag-power {
+.ideditor path.line.stroke.tag-power {
     stroke: #939393;
     stroke-width: 2;
 }
-path.line.casing.tag-power {
+.ideditor path.line.casing.tag-power {
     stroke: none;
 }
 
 
 /* pipeline */
-path.line.stroke.tag-man_made-pipeline {
+.ideditor path.line.stroke.tag-man_made-pipeline {
     stroke: #cbd0d8;
     stroke-linecap: butt;
     stroke-dasharray: 80, 1.25;
 }
-path.line.casing.tag-man_made-pipeline {
+.ideditor path.line.casing.tag-man_made-pipeline {
     stroke: #666;
 }
-.low-zoom path.line.stroke.tag-man_made-pipeline {
+.ideditor .low-zoom path.line.stroke.tag-man_made-pipeline {
     stroke-dasharray: 40, 1;
 }
-.preset-icon-container path.line.stroke.tag-man_made-pipeline {
+.ideditor .preset-icon-container path.line.stroke.tag-man_made-pipeline {
     stroke-dasharray: 19, 1;
 }
 
 
 /* boundaries */
-path.line.stroke.tag-boundary {
+.ideditor path.line.stroke.tag-boundary {
     stroke: #fff;
     stroke-width: 2;
     stroke-linecap: butt;
     stroke-dasharray: 20, 5, 5, 5;
 }
-path.line.casing.tag-boundary {
+.ideditor path.line.casing.tag-boundary {
     stroke: #82b5fe;
     stroke-width: 6;
 }
 
-path.line.casing.tag-boundary-protected_area,
-path.line.casing.tag-boundary-national_park {
+.ideditor path.line.casing.tag-boundary-protected_area,
+.ideditor path.line.casing.tag-boundary-national_park {
     stroke: #b0e298;
 }
 
 
 /* barriers and similar */
-path.line.stroke.tag-barrier:not(.tag-barrier-hedge):not(.tag-waterway) {
+.ideditor path.line.stroke.tag-barrier:not(.tag-barrier-hedge):not(.tag-waterway) {
     stroke: #ddd;
 }
-.preset-icon-container path.line.stroke.tag-barrier:not(.tag-barrier-hedge) {
+.ideditor .preset-icon-container path.line.stroke.tag-barrier:not(.tag-barrier-hedge) {
     stroke: rgb(170, 170, 170);
 }
-path.line.casing.tag-natural,
-path.line.casing.tag-barrier:not(.tag-waterway),
-path.line.casing.tag-man_made-groyne,
-path.line.casing.tag-man_made-breakwater {
+.ideditor path.line.casing.tag-natural,
+.ideditor path.line.casing.tag-barrier:not(.tag-waterway),
+.ideditor path.line.casing.tag-man_made-groyne,
+.ideditor path.line.casing.tag-man_made-breakwater {
     stroke: none;
 }
-path.line.stroke.tag-barrier:not(.tag-waterway),
-path.line.stroke.tag-man_made-groyne,
-path.line.stroke.tag-man_made-breakwater {
+.ideditor path.line.stroke.tag-barrier:not(.tag-waterway),
+.ideditor path.line.stroke.tag-man_made-groyne,
+.ideditor path.line.stroke.tag-man_made-breakwater {
     stroke-width: 3px;
     stroke-linecap: round;
     stroke-dasharray: 15, 5, 1, 5;
 }
-.low-zoom path.line.stroke.tag-barrier:not(.tag-waterway),
-.low-zoom path.line.stroke.tag-man_made-groyne,
-.low-zoom path.line.stroke.tag-man_made-breakwater {
+.ideditor .low-zoom path.line.stroke.tag-barrier:not(.tag-waterway),
+.ideditor .low-zoom path.line.stroke.tag-man_made-groyne,
+.ideditor .low-zoom path.line.stroke.tag-man_made-breakwater {
     stroke-width: 2px;
     stroke-linecap: butt;
     stroke-dasharray: 8, 2, 2, 2;
 }
-.preset-icon-container path.line.stroke.tag-barrier,
-.preset-icon-container path.line.stroke.tag-man_made-groyne,
-.preset-icon-container path.line.stroke.tag-man_made-breakwater {
+.ideditor .preset-icon-container path.line.stroke.tag-barrier,
+.ideditor .preset-icon-container path.line.stroke.tag-man_made-groyne,
+.ideditor .preset-icon-container path.line.stroke.tag-man_made-breakwater {
     stroke-dasharray: 1, 4, 6, 4;
 }
-path.line.stroke.tag-barrier.tag-barrier-wall,
-path.line.stroke.tag-barrier.tag-barrier-retaining_wall,
-path.line.stroke.tag-barrier.tag-barrier-city_wall {
+.ideditor path.line.stroke.tag-barrier.tag-barrier-wall,
+.ideditor path.line.stroke.tag-barrier.tag-barrier-retaining_wall,
+.ideditor path.line.stroke.tag-barrier.tag-barrier-city_wall {
     stroke-linecap: butt;
     stroke-dasharray: 16, 3, 9, 3;
 }
-.low-zoom path.line.stroke.tag-barrier.tag-barrier-wall,
-.low-zoom path.line.stroke.tag-barrier.tag-barrier-retaining_wall,
-.low-zoom path.line.stroke.tag-barrier.tag-barrier-city_wall,
-.preset-icon-container path.line.stroke.tag-barrier.tag-barrier-wall,
-.preset-icon-container path.line.stroke.tag-barrier.tag-barrier-retaining_wall,
-.preset-icon-container path.line.stroke.tag-barrier.tag-barrier-city_wall {
+.ideditor .low-zoom path.line.stroke.tag-barrier.tag-barrier-wall,
+.ideditor .low-zoom path.line.stroke.tag-barrier.tag-barrier-retaining_wall,
+.ideditor .low-zoom path.line.stroke.tag-barrier.tag-barrier-city_wall,
+.ideditor .preset-icon-container path.line.stroke.tag-barrier.tag-barrier-wall,
+.ideditor .preset-icon-container path.line.stroke.tag-barrier.tag-barrier-retaining_wall,
+.ideditor .preset-icon-container path.line.stroke.tag-barrier.tag-barrier-city_wall {
     stroke-dasharray: 8, 1, 4, 1;
 }
 
 
 /* bridges */
-path.line.casing.tag-bridge {
+.ideditor path.line.casing.tag-bridge {
     stroke-opacity: 0.6;
     stroke: #000 !important;
     stroke-linecap: butt;
     stroke-dasharray: none;
 }
-path.line.shadow.tag-bridge {
+.ideditor path.line.shadow.tag-bridge {
     stroke-width: 24;
 }
-path.line.casing.tag-bridge {
+.ideditor path.line.casing.tag-bridge {
     stroke-width: 16;
 }
-.low-zoom path.line.shadow.tag-bridge {
+.ideditor .low-zoom path.line.shadow.tag-bridge {
     stroke-width: 16;
 }
-.low-zoom path.line.casing.tag-bridge {
+.ideditor .low-zoom path.line.casing.tag-bridge {
     stroke-width: 10;
 }
 
-path.line.shadow.tag-railway.tag-bridge,
-path.line.shadow.tag-highway-living_street.tag-bridge,
-path.line.shadow.tag-highway-path.tag-bridge,
-path.line.shadow.tag-highway-corridor.tag-bridge,
-path.line.shadow.tag-highway-pedestrian.tag-bridge,
-path.line.shadow.tag-highway-service.tag-bridge,
-path.line.shadow.tag-highway-track.tag-bridge,
-path.line.shadow.tag-highway-steps.tag-bridge,
-path.line.shadow.tag-highway-footway.tag-bridge,
-path.line.shadow.tag-highway-cycleway.tag-bridge,
-path.line.shadow.tag-highway-bridleway.tag-bridge {
+.ideditor path.line.shadow.tag-railway.tag-bridge,
+.ideditor path.line.shadow.tag-highway-living_street.tag-bridge,
+.ideditor path.line.shadow.tag-highway-path.tag-bridge,
+.ideditor path.line.shadow.tag-highway-corridor.tag-bridge,
+.ideditor path.line.shadow.tag-highway-pedestrian.tag-bridge,
+.ideditor path.line.shadow.tag-highway-service.tag-bridge,
+.ideditor path.line.shadow.tag-highway-track.tag-bridge,
+.ideditor path.line.shadow.tag-highway-steps.tag-bridge,
+.ideditor path.line.shadow.tag-highway-footway.tag-bridge,
+.ideditor path.line.shadow.tag-highway-cycleway.tag-bridge,
+.ideditor path.line.shadow.tag-highway-bridleway.tag-bridge {
     stroke-width: 18;
 }
-path.line.casing.tag-railway.tag-bridge,
-path.line.casing.tag-highway-living_street.tag-bridge,
-path.line.casing.tag-highway-path.tag-bridge,
-path.line.casing.tag-highway-corridor.tag-bridge,
-path.line.casing.tag-highway-pedestrian.tag-bridge,
-path.line.casing.tag-highway-service.tag-bridge,
-path.line.casing.tag-highway-track.tag-bridge,
-path.line.casing.tag-highway-steps.tag-bridge,
-path.line.casing.tag-highway-footway.tag-bridge,
-path.line.casing.tag-highway-cycleway.tag-bridge,
-path.line.casing.tag-highway-bridleway.tag-bridge {
+.ideditor path.line.casing.tag-railway.tag-bridge,
+.ideditor path.line.casing.tag-highway-living_street.tag-bridge,
+.ideditor path.line.casing.tag-highway-path.tag-bridge,
+.ideditor path.line.casing.tag-highway-corridor.tag-bridge,
+.ideditor path.line.casing.tag-highway-pedestrian.tag-bridge,
+.ideditor path.line.casing.tag-highway-service.tag-bridge,
+.ideditor path.line.casing.tag-highway-track.tag-bridge,
+.ideditor path.line.casing.tag-highway-steps.tag-bridge,
+.ideditor path.line.casing.tag-highway-footway.tag-bridge,
+.ideditor path.line.casing.tag-highway-cycleway.tag-bridge,
+.ideditor path.line.casing.tag-highway-bridleway.tag-bridge {
     stroke-width: 10;
 }
 
-.low-zoom path.line.shadow.tag-railway.tag-bridge,
-.low-zoom path.line.shadow.tag-highway-living_street.tag-bridge,
-.low-zoom path.line.shadow.tag-highway-path.tag-bridge,
-.low-zoom path.line.shadow.tag-highway-corridor.tag-bridge,
-.low-zoom path.line.shadow.tag-highway-pedestrian.tag-bridge,
-.low-zoom path.line.shadow.tag-highway-service.tag-bridge,
-.low-zoom path.line.shadow.tag-highway-track.tag-bridge,
-.low-zoom path.line.shadow.tag-highway-steps.tag-bridge,
-.low-zoom path.line.shadow.tag-highway-footway.tag-bridge,
-.low-zoom path.line.shadow.tag-highway-cycleway.tag-bridge,
-.low-zoom path.line.shadow.tag-highway-bridleway.tag-bridge {
+.ideditor .low-zoom path.line.shadow.tag-railway.tag-bridge,
+.ideditor .low-zoom path.line.shadow.tag-highway-living_street.tag-bridge,
+.ideditor .low-zoom path.line.shadow.tag-highway-path.tag-bridge,
+.ideditor .low-zoom path.line.shadow.tag-highway-corridor.tag-bridge,
+.ideditor .low-zoom path.line.shadow.tag-highway-pedestrian.tag-bridge,
+.ideditor .low-zoom path.line.shadow.tag-highway-service.tag-bridge,
+.ideditor .low-zoom path.line.shadow.tag-highway-track.tag-bridge,
+.ideditor .low-zoom path.line.shadow.tag-highway-steps.tag-bridge,
+.ideditor .low-zoom path.line.shadow.tag-highway-footway.tag-bridge,
+.ideditor .low-zoom path.line.shadow.tag-highway-cycleway.tag-bridge,
+.ideditor .low-zoom path.line.shadow.tag-highway-bridleway.tag-bridge {
     stroke-width: 14;
 }
-.low-zoom path.line.casing.tag-railway.tag-bridge,
-.low-zoom path.line.casing.tag-highway-living_street.tag-bridge,
-.low-zoom path.line.casing.tag-highway-path.tag-bridge,
-.low-zoom path.line.casing.tag-highway-corridor.tag-bridge,
-.low-zoom path.line.casing.tag-highway-pedestrian.tag-bridge,
-.low-zoom path.line.casing.tag-highway-service.tag-bridge,
-.low-zoom path.line.casing.tag-highway-track.tag-bridge,
-.low-zoom path.line.casing.tag-highway-steps.tag-bridge,
-.low-zoom path.line.casing.tag-highway-footway.tag-bridge,
-.low-zoom path.line.casing.tag-highway-cycleway.tag-bridge,
-.low-zoom path.line.casing.tag-highway-bridleway.tag-bridge {
+.ideditor .low-zoom path.line.casing.tag-railway.tag-bridge,
+.ideditor .low-zoom path.line.casing.tag-highway-living_street.tag-bridge,
+.ideditor .low-zoom path.line.casing.tag-highway-path.tag-bridge,
+.ideditor .low-zoom path.line.casing.tag-highway-corridor.tag-bridge,
+.ideditor .low-zoom path.line.casing.tag-highway-pedestrian.tag-bridge,
+.ideditor .low-zoom path.line.casing.tag-highway-service.tag-bridge,
+.ideditor .low-zoom path.line.casing.tag-highway-track.tag-bridge,
+.ideditor .low-zoom path.line.casing.tag-highway-steps.tag-bridge,
+.ideditor .low-zoom path.line.casing.tag-highway-footway.tag-bridge,
+.ideditor .low-zoom path.line.casing.tag-highway-cycleway.tag-bridge,
+.ideditor .low-zoom path.line.casing.tag-highway-bridleway.tag-bridge {
     stroke-width: 6;
 }
 
 
 /* tunnels */
-path.line.stroke.tag-tunnel,
-path.line.stroke.tag-location-underground,
-path.line.stroke.tag-location-underwater {
+.ideditor path.line.stroke.tag-tunnel,
+.ideditor path.line.stroke.tag-location-underground,
+.ideditor path.line.stroke.tag-location-underwater {
     stroke-opacity: 0.3;
 }
-path.line.casing.tag-tunnel,
-path.line.casing.tag-location-underground,
-path.line.stroke.tag-location-underwater {
+.ideditor path.line.casing.tag-tunnel,
+.ideditor path.line.casing.tag-location-underground,
+.ideditor path.line.stroke.tag-location-underwater {
     stroke-opacity: 0.5;
     stroke-linecap: butt;
     stroke-dasharray: none;
@@ -2140,12 +2119,12 @@ path.line.stroke.tag-location-underwater {
 
 
 /* embankments / cuttings */
-path.line.shadow.tag-embankment,
-path.line.shadow.tag-cutting {
+.ideditor path.line.shadow.tag-embankment,
+.ideditor path.line.shadow.tag-cutting {
     stroke-width: 28;
 }
-path.line.casing.tag-embankment,
-path.line.casing.tag-cutting {
+.ideditor path.line.casing.tag-embankment,
+.ideditor path.line.casing.tag-cutting {
     stroke-opacity: 0.5;
     stroke: #000;
     stroke-width: 22;
@@ -2153,205 +2132,211 @@ path.line.casing.tag-cutting {
     stroke-linecap: butt;
 }
 
-.low-zoom path.line.shadow.tag-embankment,
-.low-zoom path.line.shadow.tag-cutting {
+.ideditor .low-zoom path.line.shadow.tag-embankment,
+.ideditor .low-zoom path.line.shadow.tag-cutting {
     stroke-width: 14;
 }
-.low-zoom path.line.casing.tag-embankment,
-.low-zoom path.line.casing.tag-cutting {
+.ideditor .low-zoom path.line.casing.tag-embankment,
+.ideditor .low-zoom path.line.casing.tag-cutting {
     stroke-width: 10;
 }
 
 
 /* Surface - unpaved */
-path.line.casing.tag-unpaved {
+.ideditor path.line.casing.tag-unpaved {
     stroke: #ccc;
     stroke-linecap: butt;
-    stroke-dasharray: 4, 3;
+    stroke-dasharray: 4, 4;
 }
-.low-zoom path.line.casing.tag-unpaved {
-    stroke-dasharray: 3, 2;
+.ideditor .low-zoom path.line.casing.tag-unpaved {
+    stroke-dasharray: 3, 3;
 }
-path.line.casing.tag-bridge.tag-unpaved {
+.ideditor path.line.casing.tag-bridge.tag-unpaved {
     stroke: #000;
-    stroke-dasharray: 4, 3;
 }
-.low-zoom path.line.casing.tag-bridge.tag-unpaved {
+/* Surface - semipaved */
+.ideditor path.line.casing.tag-semipaved {
+    stroke-linecap: butt;
+    stroke-dasharray: 6, 2;
+}
+.ideditor .low-zoom path.line.casing.tag-semipaved {
+    stroke-dasharray: 5, 2;
+}
+.ideditor path.line.casing.tag-bridge.tag-semipaved {
     stroke: #000;
-    stroke-dasharray: 3, 2;
 }
 
 
 /* Status (e.g. proposed, abandoned) */
-path.area.stroke.tag-status,
-path.line.stroke.tag-status,
-path.area.casing.tag-status,
-path.line.casing.tag-status {
+.ideditor path.area.stroke.tag-status:not(.tag-status-disused),
+.ideditor path.line.stroke.tag-status:not(.tag-status-disused),
+.ideditor path.area.casing.tag-status:not(.tag-status-disused),
+.ideditor path.line.casing.tag-status:not(.tag-status-disused) {
     stroke-linecap: butt;
     stroke-dasharray: 7, 3;
 }
-.low-zoom path.area.stroke.tag-status,
-.low-zoom path.line.stroke.tag-status,
-.low-zoom path.area.casing.tag-status,
-.low-zoom path.line.casing.tag-status {
+.ideditor .low-zoom path.area.stroke.tag-status:not(.tag-status-disused),
+.ideditor .low-zoom path.line.stroke.tag-status:not(.tag-status-disused),
+.ideditor .low-zoom path.area.casing.tag-status:not(.tag-status-disused),
+.ideditor .low-zoom path.line.casing.tag-status:not(.tag-status-disused) {
     stroke-dasharray: 5, 2;
 }
 
 /* Road Closed Status */
-.preset-icon .icon.tag-highway.tag-status-construction {
+.ideditor .preset-icon .icon.tag-highway.tag-status-construction {
     color: #fc6c14;
     fill: #fff;
 }
-path.line.shadow.tag-highway.tag-status.tag-status-construction {
+.ideditor path.line.shadow.tag-highway.tag-status.tag-status-construction {
     stroke-width: 20;
 }
-path.line.casing.tag-highway.tag-status.tag-status-construction {
+.ideditor path.line.casing.tag-highway.tag-status.tag-status-construction {
     stroke-width: 10;
     stroke-linecap: butt;
     stroke-dasharray: none
 }
-path.line.stroke.tag-highway.tag-status.tag-status-construction {
+.ideditor path.line.stroke.tag-highway.tag-status.tag-status-construction {
     stroke-width: 8;
     stroke-linecap: butt;
     stroke-dasharray: 10, 10;
 }
-path.line.casing.tag-highway.tag-status.tag-status-construction,
-.preset-icon-container path.line.stroke.tag-highway.tag-status.tag-status-construction {
+.ideditor path.line.casing.tag-highway.tag-status.tag-status-construction,
+.ideditor .preset-icon-container path.line.stroke.tag-highway.tag-status.tag-status-construction {
     stroke: #fff;
 }
-path.line.stroke.tag-highway.tag-status.tag-status-construction,
-.preset-icon-container path.line.casing.tag-highway.tag-status.tag-status-construction {
+.ideditor path.line.stroke.tag-highway.tag-status.tag-status-construction,
+.ideditor .preset-icon-container path.line.casing.tag-highway.tag-status.tag-status-construction {
     stroke: #fc6c14;
 }
-.low-zoom path.line.shadow.tag-highway.tag-status.tag-status-construction {
+.ideditor .low-zoom path.line.shadow.tag-highway.tag-status.tag-status-construction {
     stroke-width: 16;
 }
-.low-zoom path.line.casing.tag-highway.tag-status.tag-status-construction {
+.ideditor .low-zoom path.line.casing.tag-highway.tag-status.tag-status-construction {
     stroke-width: 7;
 }
-.low-zoom path.line.stroke.tag-highway.tag-status.tag-status-construction {
+.ideditor .low-zoom path.line.stroke.tag-highway.tag-status.tag-status-construction {
     stroke-width: 5;
     stroke-dasharray: 8, 8;
 }
 
 
 /* Buildings */
-path.stroke.tag-building {
+.ideditor path.stroke.tag-building {
     stroke: rgb(224, 110, 95);
 }
-path.fill.tag-building {
+.ideditor path.fill.tag-building {
     stroke: rgba(224, 110, 95, 0.3);
     fill: rgba(224, 110, 95, 0.3);
 }
 /* Cursors */
 
-.nope,
-.nope * {
+.ideditor .nope,
+.ideditor .nope * {
     cursor: not-allowed !important;
 }
 
-.map-in-map,
-#map {
+.ideditor .map-in-map,
+.ideditor #map {
     cursor: auto; /* Opera */
     cursor: url(<%= asset_path("iD/img/cursor-grab.png") %>) 9 9, auto; /* FF */
 }
 
-.mode-browse .point,
-.mode-select .point {
+.ideditor.mode-browse .point,
+.ideditor.mode-select .point {
     cursor: pointer; /* Opera */
     cursor: url(<%= asset_path("iD/img/cursor-select-point.png") %>), pointer; /* FF */
 }
 
-.mode-select .vertex,
-.mode-browse .vertex {
+.ideditor.mode-select .vertex,
+.ideditor.mode-browse .vertex {
     cursor: pointer; /* Opera */
     cursor: url(<%= asset_path("iD/img/cursor-select-vertex.png") %>), pointer; /* FF */
 }
 
-.mode-browse .line,
-.mode-select .line {
+.ideditor.mode-browse .line,
+.ideditor.mode-select .line {
     cursor: pointer; /* Opera */
     cursor: url(<%= asset_path("iD/img/cursor-select-line.png") %>), pointer; /* FF */
 }
 
-.mode-select .area,
-.mode-browse .area {
+.ideditor.mode-select .area,
+.ideditor.mode-browse .area {
     cursor: pointer; /* Opera */
     cursor: url(<%= asset_path("iD/img/cursor-select-area.png") %>), pointer; /* FF */
 }
 
-.mode-select .midpoint,
-.mode-browse .midpoint {
+.ideditor.mode-select .midpoint,
+.ideditor.mode-browse .midpoint {
     cursor: pointer; /* Opera */
     cursor: url(<%= asset_path("iD/img/cursor-select-split.png") %>), pointer; /* FF */
 }
 
-.mode-select .behavior-multiselect .point,
-.mode-select .behavior-multiselect .vertex,
-.mode-select .behavior-multiselect .line,
-.mode-select .behavior-multiselect .area {
+.ideditor.mode-select .behavior-multiselect .point,
+.ideditor.mode-select .behavior-multiselect .vertex,
+.ideditor.mode-select .behavior-multiselect .line,
+.ideditor.mode-select .behavior-multiselect .area {
     cursor: pointer; /* Opera */
     cursor: url(<%= asset_path("iD/img/cursor-select-add.png") %>), pointer; /* FF */
 }
 
-.mode-select .behavior-multiselect .selected {
+.ideditor.mode-select .behavior-multiselect .selected {
     cursor: pointer; /* Opera */
     cursor: url(<%= asset_path("iD/img/cursor-select-remove.png") %>), pointer; /* FF */
 }
 
-.mode-add-preset #map,
-.mode-draw-line #map,
-.mode-draw-area #map,
-.mode-add-line  #map,
-.mode-add-area  #map,
-.mode-drag-node #map,
-.mode-drag-note #map {
+.ideditor.mode-add-preset #map,
+.ideditor.mode-draw-line #map,
+.ideditor.mode-draw-area #map,
+.ideditor.mode-add-line  #map,
+.ideditor.mode-add-area  #map,
+.ideditor.mode-drag-node #map,
+.ideditor.mode-drag-note #map {
     cursor: crosshair; /* Opera */
     cursor: url(<%= asset_path("iD/img/cursor-draw.png") %>) 9 9, crosshair; /* FF */
 }
 
-.mode-draw-line .way.target,
-.mode-draw-area .way.target,
-.mode-add-line  .way.target,
-.mode-add-area  .way.target,
-.mode-drag-node .way.target {
+.ideditor.mode-draw-line .way.target,
+.ideditor.mode-draw-area .way.target,
+.ideditor.mode-add-line  .way.target,
+.ideditor.mode-add-area  .way.target,
+.ideditor.mode-drag-node .way.target {
     cursor: crosshair; /* Opera */
     cursor: url(<%= asset_path("iD/img/cursor-draw-connect-line.png") %>) 9 9, crosshair; /* FF */
 }
 
-.mode-draw-line .vertex.target,
-.mode-draw-area .vertex.target,
-.mode-add-line  .vertex.target,
-.mode-add-area  .vertex.target,
-.mode-drag-node .vertex.target {
+.ideditor.mode-draw-line .vertex.target,
+.ideditor.mode-draw-area .vertex.target,
+.ideditor.mode-add-line  .vertex.target,
+.ideditor.mode-add-area  .vertex.target,
+.ideditor.mode-drag-node .vertex.target {
     cursor: crosshair; /* Opera */
     cursor: url(<%= asset_path("iD/img/cursor-draw-connect-vertex.png") %>) 9 9, crosshair; /* FF */
 }
 
-.mode-add-point #map,
-.mode-add-note #map,
-.mode-browse.lasso #map,
-.mode-browse.lasso .way,
-.mode-browse.lasso .vertex,
-.mode-browse.lasso .midpoint,
-.mode-select.lasso #map,
-.mode-select.lasso .way,
-.mode-select.lasso .vertex,
-.mode-select.lasso .midpoint {
+.ideditor.mode-add-point #map,
+.ideditor.mode-add-note #map,
+.ideditor.mode-browse.lasso #map,
+.ideditor.mode-browse.lasso .way,
+.ideditor.mode-browse.lasso .vertex,
+.ideditor.mode-browse.lasso .midpoint,
+.ideditor.mode-select.lasso #map,
+.ideditor.mode-select.lasso .way,
+.ideditor.mode-select.lasso .vertex,
+.ideditor.mode-select.lasso .midpoint {
     cursor: crosshair; /* Opera */
     cursor: url(<%= asset_path("iD/img/cursor-draw.png") %>) 9 9, crosshair; /* FF */
 }
 
-.mode-browse .note,
-.mode-browse .qa_error,
-.mode-select .note,
-.mode-select .qa_error,
-.turn rect,
-.turn circle {
+.ideditor.mode-browse .note,
+.ideditor.mode-browse .qa_error,
+.ideditor.mode-select .note,
+.ideditor.mode-select .qa_error,
+.ideditor .turn rect,
+.ideditor .turn circle {
     cursor: pointer;
 }
 /* photo viewer div */
-#photoviewer {
+.ideditor #photoviewer {
     position: relative;
     flex-shrink: 0;
     margin-bottom: 10px;
@@ -2360,23 +2345,23 @@ path.fill.tag-building {
     padding: 5px;
     background-color: #fff;
 }
-[dir='ltr'] #photoviewer {
+.ideditor[dir='ltr'] #photoviewer {
     margin-left: 10px;
     margin-right: 2px;
 }
-[dir='rtl'] #photoviewer {
+.ideditor[dir='rtl'] #photoviewer {
     margin-right: 10px;
     margin-left: 2px;
 }
 
 @media screen and (min-width: 1600px) {
-    #photoviewer {
+    .ideditor #photoviewer {
         width: 490px;
         height: 370px;
     }
 }
 
-#photoviewer button.thumb-hide {
+.ideditor #photoviewer button.thumb-hide {
     border-radius: 0;
     padding: 5px;
     position: absolute;
@@ -2385,7 +2370,7 @@ path.fill.tag-building {
     z-index: 50;
 }
 
-#photoviewer button.resize-handle-xy {
+.ideditor #photoviewer button.resize-handle-xy {
     border-radius: 0;
     position: absolute;
     top: 0;
@@ -2396,7 +2381,7 @@ path.fill.tag-building {
     width: 25px;
 }
 
-#photoviewer button.resize-handle-x {
+.ideditor #photoviewer button.resize-handle-x {
     border-radius: 0;
     position: absolute;
     top: 0;
@@ -2408,7 +2393,7 @@ path.fill.tag-building {
     width: 6px;
 }
 
-#photoviewer button.resize-handle-y {
+.ideditor #photoviewer button.resize-handle-y {
     border-radius: 0;
     position: absolute;
     top: 0;
@@ -2420,15 +2405,15 @@ path.fill.tag-building {
 }
 
 
-.photo-wrapper,
-.photo-wrapper img {
+.ideditor .photo-wrapper,
+.ideditor .photo-wrapper img {
     width: 100%;
     height: 100%;
     overflow: hidden;
     object-fit: cover;
 }
 
-.photo-wrapper .photo-attribution {
+.ideditor .photo-wrapper .photo-attribution {
     position: absolute;
     bottom: 0;
     right: 0;
@@ -2440,175 +2425,175 @@ path.fill.tag-building {
     z-index: 10;
 }
 
-.photo-attribution a,
-.photo-attribution a:visited,
-.photo-attribution span {
+.ideditor .photo-attribution a,
+.ideditor .photo-attribution a:visited,
+.ideditor .photo-attribution span {
     padding: 4px 2px;
     color: #fff;
 }
 
 /* markers and sequences */
-.viewfield-group {
+.ideditor .viewfield-group {
     pointer-events: none;
 }
-.mode-browse .viewfield-group,
-.mode-select .viewfield-group {
+.ideditor.mode-browse .viewfield-group,
+.ideditor.mode-select .viewfield-group {
     pointer-events: visible;
     cursor: pointer;
 }
 
-.viewfield-group.currentView * {
+.ideditor .viewfield-group.currentView * {
     fill: #ffee00 !important;
 }
-.viewfield-group.hovered * {
+.ideditor .viewfield-group.hovered * {
     fill: #eebb00 !important;
 }
 
-.viewfield-group circle {
+.ideditor .viewfield-group circle {
     stroke: #555;
     stroke-width: 1;
     stroke-opacity: 0.4;
     fill-opacity: 0.4;
 }
-.viewfield-group.highlighted circle {
+.ideditor .viewfield-group.highlighted circle {
     stroke: #222;
     stroke-opacity: 0.9;
     fill-opacity: 0.9;
 }
-.viewfield-group.highlighted.hovered circle {
+.ideditor .viewfield-group.highlighted.hovered circle {
     stroke: #222;
     stroke-width: 2;
     stroke-opacity: 0.9;
     fill-opacity: 0.9;
 }
-.viewfield-group.highlighted.currentView circle {
+.ideditor .viewfield-group.highlighted.currentView circle {
     stroke: #222;
     stroke-width: 2;
     stroke-opacity: 1;
     fill-opacity: 1;
 }
 
-.viewfield-group .viewfield {
+.ideditor .viewfield-group .viewfield {
     stroke-width: 0;
     stroke: #222;
     fill-opacity: 0.4;
 }
-.viewfield-group.highlighted .viewfield {
+.ideditor .viewfield-group.highlighted .viewfield {
     stroke-width: 1;
     fill-opacity: 0.8;
 }
-.viewfield-group.highlighted.hovered .viewfield {
+.ideditor .viewfield-group.highlighted.hovered .viewfield {
     stroke-width: 1;
     fill-opacity: 0.8;
 }
-.viewfield-group.highlighted.currentView .viewfield {
+.ideditor .viewfield-group.highlighted.currentView .viewfield {
     stroke-width: 1;
     fill-opacity: 0.9;
 }
 
-.viewfield-group.currentView .viewfield-scale {
+.ideditor .viewfield-group.currentView .viewfield-scale {
     transform: scale(2,2);
 }
 
-.sequence {
+.ideditor .sequence {
     fill: none;
     stroke-width: 2;
     stroke-opacity: 0.4;
 }
-.sequence.highlighted,
-.sequence.currentView {
+.ideditor .sequence.highlighted,
+.ideditor .sequence.currentView {
     stroke-width: 4;
     stroke-opacity: 1;
 }
 
 
 /* Streetside Image Layer */
-.layer-streetside-images {
+.ideditor .layer-streetside-images {
     pointer-events: none;
 }
-.layer-streetside-images .viewfield-group * {
+.ideditor .layer-streetside-images .viewfield-group * {
     fill: #0fffc4;
 }
-.layer-streetside-images .sequence {
+.ideditor .layer-streetside-images .sequence {
     stroke: #0fffc4;
     stroke-opacity: 0.85;  /* bump opacity - only one per road */
 }
 
 
 /* Mapillary Image Layer */
-.layer-mapillary {
+.ideditor .layer-mapillary {
     pointer-events: none;
 }
-.layer-mapillary .viewfield-group * {
+.ideditor .layer-mapillary .viewfield-group * {
     fill: #55ff22;
 }
-.layer-mapillary .sequence {
+.ideditor .layer-mapillary .sequence {
     stroke: #55ff22;
 }
 
 
 /* Mapillary Traffic Signs and Map Features Layers */
-.layer-mapillary-detections {
+.ideditor .layer-mapillary-detections {
     pointer-events: none;
 }
-.layer-mapillary-detections .icon-detected {
+.ideditor .layer-mapillary-detections .icon-detected {
     outline: 2px solid transparent;
     pointer-events: visible;
     cursor: pointer;
     opacity: 0.75;
 }
-.layer-mapillary-detections .icon-detected rect {
+.ideditor .layer-mapillary-detections .icon-detected rect {
     fill: none;
 }
-.layer-mapillary-detections .icon-detected:hover rect {
+.ideditor .layer-mapillary-detections .icon-detected:hover rect {
     outline: 3px solid rgba(255, 238, 0, 0.6);
 }
-.layer-mapillary-detections .icon-detected.currentView rect {
+.ideditor .layer-mapillary-detections .icon-detected.currentView rect {
     outline: 3px solid rgba(255, 238, 0, 1);
 }
-.layer-mapillary-detections .icon-detected:hover,
-.layer-mapillary-detections .icon-detected.currentView {
+.ideditor .layer-mapillary-detections .icon-detected:hover,
+.ideditor .layer-mapillary-detections .icon-detected.currentView {
     opacity: 1;
 }
 
 
 /* OpenStreetCam Image Layer */
-.layer-openstreetcam {
+.ideditor .layer-openstreetcam {
     pointer-events: none;
 }
-.layer-openstreetcam .viewfield-group * {
+.ideditor .layer-openstreetcam .viewfield-group * {
     fill: #20c4ff;
 }
-.layer-openstreetcam .sequence {
+.ideditor .layer-openstreetcam .sequence {
     stroke: #20c4ff;
 }
 
 
 /* Streetside Viewer (pannellum) */
-.ms-wrapper .photo-attribution .image-link {
+.ideditor .ms-wrapper .photo-attribution .image-link {
     display: block;
 }
-.ms-wrapper .photo-attribution .attribution-row {
+.ideditor .ms-wrapper .photo-attribution .attribution-row {
     display: flex;
     flex-flow: row nowrap;
     justify-content: space-between;
     align-items: center;
     padding: 0 5px;
 }
-.ms-wrapper .photo-attribution .image-view-link {
+.ideditor .ms-wrapper .photo-attribution .image-view-link {
     text-align: left;
     margin: 0 5px;
 }
-.ms-wrapper .photo-attribution .image-report-link {
+.ideditor .ms-wrapper .photo-attribution .image-report-link {
     text-align: right;
 }
 
-.ms-wrapper .photo-attribution a:active,
-.ms-wrapper .photo-attribution a:hover {
+.ideditor .ms-wrapper .photo-attribution a:active,
+.ideditor .ms-wrapper .photo-attribution a:hover {
     color: #0fffc4;
 }
 
-.ms-wrapper .pnlm-compass.pnlm-control {
+.ideditor .ms-wrapper .pnlm-compass.pnlm-control {
     width: 26px;
     height: 26px;
     left: 4px;
@@ -2617,13 +2602,13 @@ path.fill.tag-building {
     background-repeat: no-repeat no-repeat;
 }
 
-label.streetside-hires {
+.ideditor label.streetside-hires {
     cursor: pointer;
 }
-.streetside-hires span {
+.ideditor .streetside-hires span {
     margin-top: 2px;
 }
-.streetside-hires input[type="checkbox"] {
+.ideditor .streetside-hires input[type="checkbox"] {
     float: left;
     width: 12px;
     height: 12px;
@@ -2632,30 +2617,30 @@ label.streetside-hires {
 
 
 /* Mapillary viewer */
-#mly .domRenderer .TagSymbol {
+.ideditor #mly .domRenderer .TagSymbol {
     font-size: 10px;
     background-color: rgba(0,0,0,0.4);
     padding: 0 4px;
     border-radius: 4px;
     top: -25px;
 }
-#mly .domRenderer .Attribution {
+.ideditor #mly .domRenderer .Attribution {
     /* we will roll our own to avoid async update issues like #4526 */
     display: none;
 }
 
-.mly-wrapper .photo-attribution a:active,
-.mly-wrapper .photo-attribution a:hover {
+.ideditor .mly-wrapper .photo-attribution a:active,
+.ideditor .mly-wrapper .photo-attribution a:hover {
     color: #35af6d;
 }
 
-.mly-wrapper .mapillary-js-dom {
+.ideditor .mly-wrapper .mapillary-js-dom {
     z-index: 9;
 }
 
 
 /* OpenStreetCam viewer */
-.osc-wrapper {
+.ideditor .osc-wrapper {
     position: relative;
     background-color: #000;
     background-image: url(<%= asset_path("iD/img/loader-black.gif") %>);
@@ -2663,12 +2648,12 @@ label.streetside-hires {
     background-repeat: no-repeat;
 }
 
-.osc-wrapper .photo-attribution a:active,
-.osc-wrapper .photo-attribution a:hover {
+.ideditor .osc-wrapper .photo-attribution a:active,
+.ideditor .osc-wrapper .photo-attribution a:hover {
     color: #20c4ff;
 }
 
-.osc-image-wrap {
+.ideditor .osc-image-wrap {
     width: 100%;
     height: 100%;
     transform-origin:0 0;
@@ -2680,7 +2665,7 @@ label.streetside-hires {
 
 
 /* photo-controls (step forward, back, rotate) */
-.photo-controls-wrap {
+.ideditor .photo-controls-wrap {
     text-align: center;
     position: absolute;
     top: 10px;
@@ -2688,82 +2673,82 @@ label.streetside-hires {
     z-index: 10;
 }
 
-.photo-controls {
+.ideditor .photo-controls {
     display: inline-block;
     z-index: 10;
 }
 
-.photo-controls button,
-.photo-controls button:focus {
+.ideditor .photo-controls button,
+.ideditor .photo-controls button:focus {
     height: 18px;
     width: 18px;
     background: rgba(0,0,0,0.65);
     color: #eee;
     border-radius: 0;
 }
-.photo-controls button:first-of-type {
+.ideditor .photo-controls button:first-of-type {
     border-radius: 3px 0 0 3px;
 }
-.photo-controls button:last-of-type {
+.ideditor .photo-controls button:last-of-type {
     border-radius: 0 3px 3px 0;
 }
-.photo-controls button:hover,
-.photo-controls button:active {
+.ideditor .photo-controls button:hover,
+.ideditor .photo-controls button:active {
     background: rgba(0,0,0,0.85);
     color: #fff;
 }
 
 /* OSM Notes and KeepRight Layers */
 
-.error-header-icon .qa_error-fill,
-.layer-keepRight .qa_error .qa_error-fill,
-.layer-improveOSM .qa_error .qa_error-fill {
+.ideditor .error-header-icon .qa_error-fill,
+.ideditor .layer-keepRight .qa_error .qa_error-fill,
+.ideditor .layer-improveOSM .qa_error .qa_error-fill {
     stroke: #333;
     stroke-width: 1.3px;  /* NOTE: likely a better way to scale the icon stroke */
 }
 
-.note-header-icon .note-fill,
-.layer-notes .note .note-fill {
+.ideditor .note-header-icon .note-fill,
+.ideditor .layer-notes .note .note-fill {
     color: #f30;
     stroke: #333;
     stroke-width: 40px;
 }
-.note-header-icon.new .note-fill,
-.layer-notes .note.new .note-fill {
+.ideditor .note-header-icon.new .note-fill,
+.ideditor .layer-notes .note.new .note-fill {
     color: #fe0;
     stroke: #333;
     stroke-width: 40px;
 }
-.note-header-icon.closed .note-fill,
-.layer-notes .note.closed .note-fill {
+.ideditor .note-header-icon.closed .note-fill,
+.ideditor .layer-notes .note.closed .note-fill {
     color: #5d0;
     stroke: #333;
     stroke-width: 40px;
 }
 
 /* slight adjustments to preset icon for note icons */
-.note-header-icon .preset-icon-28 {
+.ideditor .note-header-icon .preset-icon-28 {
     top: 18px;
 }
-.note-header-icon .note-icon-annotation {
+.ideditor .note-header-icon .note-icon-annotation {
     position: absolute;
     top: 22px;
     left: 22px;
     margin: auto;
 }
-.note-header-icon .note-icon-annotation .icon {
+.ideditor .note-header-icon .note-icon-annotation .icon {
     width: 15px;
     height: 15px;
 }
 
 /* adjustment for error icon */
 
-.error-header-icon .preset-icon-28 {
+.ideditor .error-header-icon .preset-icon-28 {
     top: auto;
     left: auto;
 }
 
-.error-header-icon {
+.ideditor .error-header-icon {
     display: flex;
     align-items: center;
     justify-content: center;
@@ -2771,134 +2756,134 @@ label.streetside-hires {
 
 /* Keep Right Errors
 ------------------------------------------------------- */
-.keepRight.error_type-20,     /* multiple nodes on same spot */
-.keepRight.error_type-40,     /* impossible oneways */
-.keepRight.error_type-210,    /* self intersecting ways */
-.keepRight.error_type-270,    /* unusual motorway connection */
-.keepRight.error_type-310,    /* roundabout issues */
-.keepRight.error_type-320,    /* improper _link */
-.keepRight.error_type-350 {   /* improper bridge tag */
+.ideditor .keepRight.error_type-20,     
+.ideditor .keepRight.error_type-40,     
+.ideditor .keepRight.error_type-210,     
+.ideditor .keepRight.error_type-270,     
+.ideditor .keepRight.error_type-310,     
+.ideditor .keepRight.error_type-320,     
+.ideditor .keepRight.error_type-350 {   /* improper bridge tag */
     color: #ff9;
 }
 
-.keepRight.error_type-50 {    /* almost junctions */
+.ideditor .keepRight.error_type-50 {    /* almost junctions */
     color: #88f;
 }
 
-.keepRight.error_type-60,     /* deprecated tags */
-.keepRight.error_type-70,     /* tagging issues */
-.keepRight.error_type-90,     /* motorway without ref */
-.keepRight.error_type-100,    /* place of worship without religion */
-.keepRight.error_type-110,    /* poi without name */
-.keepRight.error_type-150,    /* railway crossing without tag */
-.keepRight.error_type-220,    /* misspelled tag */
-.keepRight.error_type-380 {   /* non-physical sport tag */
+.ideditor .keepRight.error_type-60,     
+.ideditor .keepRight.error_type-70,     
+.ideditor .keepRight.error_type-90,     
+.ideditor .keepRight.error_type-100,     
+.ideditor .keepRight.error_type-110,     
+.ideditor .keepRight.error_type-150,     
+.ideditor .keepRight.error_type-220,     
+.ideditor .keepRight.error_type-380 {   /* non-physical sport tag */
     color: #5d0;
 }
 
-.keepRight.error_type-130 {   /* disconnected ways */
+.ideditor .keepRight.error_type-130 {   /* disconnected ways */
     color: #fa3;
 }
 
-.keepRight.error_type-170 {   /* FIXME tag */
+.ideditor .keepRight.error_type-170 {   /* FIXME tag */
     color: #ff0;
 }
 
-.keepRight.error_type-190 {   /* intersection without junction */
+.ideditor .keepRight.error_type-190 {   /* intersection without junction */
     color: #f33;
 }
 
-.keepRight.error_type-200 {   /* overlapping ways */
+.ideditor .keepRight.error_type-200 {   /* overlapping ways */
     color: #fdbf6f;
 }
 
-.keepRight.error_type-160,    /* railway layer conflict */
-.keepRight.error_type-230 {   /* layer conflict */
+.ideditor .keepRight.error_type-160,    
+.ideditor .keepRight.error_type-230 {   /* layer conflict */
     color: #b60;
 }
 
-.keepRight.error_type-280 {   /* boundary issues */
+.ideditor .keepRight.error_type-280 {   /* boundary issues */
     color: #5f47a0;
 }
 
-.keepRight.error_type-180,    /* relation without type */
-.keepRight.error_type-290 {   /* turn restriction issues */
+.ideditor .keepRight.error_type-180,    
+.ideditor .keepRight.error_type-290 {   /* turn restriction issues */
     color: #ace;
 }
 
-.keepRight.error_type-300,    /* missing maxspeed */
-.keepRight.error_type-390 {   /* missing tracktype */
+.ideditor .keepRight.error_type-300,    
+.ideditor .keepRight.error_type-390 {   /* missing tracktype */
     color: #090;
 }
 
-.keepRight.error_type-360,    /* language unknown */
-.keepRight.error_type-370,    /* doubled places */
-.keepRight.error_type-410 {   /* website issues */
+.ideditor .keepRight.error_type-360,    
+.ideditor .keepRight.error_type-370,    
+.ideditor .keepRight.error_type-410 {   /* website issues */
     color: #f9b;
 }
 
-.keepRight.error_type-120,    /* way without nodes */
-.keepRight.error_type-400 {   /* geometry / turn angles */
+.ideditor .keepRight.error_type-120,    
+.ideditor .keepRight.error_type-400 {   /* geometry / turn angles */
     color: #c35;
 }
 
 /* ImproveOSM Errors
 ------------------------------------------------------- */
 
-.improveOSM.error_type-ow {   /* missing one way */
+.ideditor .improveOSM.error_type-ow {   /* missing one way */
     color: #1E90FF;
 }
 
-.improveOSM.error_type-mr-road {   /* missing road */
+.ideditor .improveOSM.error_type-mr-road {   /* missing road */
     color: #B452CD;
 }
-.improveOSM.error_type-mr-path {   /* missing path */
+.ideditor .improveOSM.error_type-mr-path {   /* missing path */
     color: #A0522D;
 }
-.improveOSM.error_type-mr-parking {   /* missing parking */
+.ideditor .improveOSM.error_type-mr-parking {   /* missing parking */
     color: #EEEE00;
 }
-.improveOSM.error_type-mr-both {   /* missing road+parking */
+.ideditor .improveOSM.error_type-mr-both {   /* missing road+parking */
     color: #FFA500;
 }
 
-.improveOSM.error_type-tr {   /* missing turn restriction */
+.ideditor .improveOSM.error_type-tr {   /* missing turn restriction */
     color: #EC1C24;
 }
 
 
 /* Custom Map Data (geojson, gpx, kml, vector tile) */
-.layer-mapdata {
+.ideditor .layer-mapdata {
     pointer-events: none;
 }
 
-.layer-mapdata path.shadow {
+.ideditor .layer-mapdata path.shadow {
     pointer-events: stroke;
     stroke: #f6634f;
     stroke-width: 16;
     stroke-opacity: 0;
     fill: none;
 }
-.layer-mapdata path.MultiPoint.shadow,
-.layer-mapdata path.Point.shadow {
+.ideditor .layer-mapdata path.MultiPoint.shadow,
+.ideditor .layer-mapdata path.Point.shadow {
     pointer-events: fill;
     fill: #f6634f;
     fill-opacity: 0;
 }
-.layer-mapdata path.shadow.hover:not(.selected) {
+.ideditor .layer-mapdata path.shadow.hover:not(.selected) {
     stroke-opacity: 0.4;
 }
-.layer-mapdata path.shadow.selected {
+.ideditor .layer-mapdata path.shadow.selected {
     stroke-opacity: 0.7;
 }
 
-.layer-mapdata path.stroke {
+.ideditor .layer-mapdata path.stroke {
     stroke: #ff26d4;
     stroke-width: 2;
     fill: none;
 }
 
-.layer-mapdata path.fill {
+.ideditor .layer-mapdata path.fill {
     stroke-width: 0;
     stroke-opacity: 0.3;
     stroke: #ff26d4;
@@ -2907,20 +2892,20 @@ label.streetside-hires {
     fill-rule: evenodd;
 }
 
-.layer-mapdata text.label-halo,
-.layer-mapdata text.label {
+.ideditor .layer-mapdata text.label-halo,
+.ideditor .layer-mapdata text.label {
     font-size: 10px;
     font-weight: bold;
     dominant-baseline: middle;
 }
-.layer-mapdata text.label {
+.ideditor .layer-mapdata text.label {
     fill: #ff26d4;
 }
-.layer-mapdata text.label.hover,
-.layer-mapdata text.label.selected {
+.ideditor .layer-mapdata text.label.hover,
+.ideditor .layer-mapdata text.label.selected {
     fill: #f6634f;
 }
-.layer-mapdata text.label-halo {
+.ideditor .layer-mapdata text.label-halo {
     opacity: 0.7;
     stroke: #000;
     stroke-width: 5px;
@@ -2928,200 +2913,192 @@ label.streetside-hires {
 }
 /* Fill Styles */
 
-.low-zoom.fill-wireframe path.stroke,
-.fill-wireframe path.stroke {
+.ideditor .low-zoom.fill-wireframe path.stroke,
+.ideditor .fill-wireframe path.stroke {
     stroke-width: 1 !important;
     stroke-opacity: 0.5 !important;
     stroke-dasharray: none !important;
     fill: none !important;
 }
-.low-zoom.fill-wireframe .layer-mapdata path.stroke,
-.fill-wireframe .layer-mapdata path.stroke {
+.ideditor .low-zoom.fill-wireframe .layer-mapdata path.stroke,
+.ideditor .fill-wireframe .layer-mapdata path.stroke {
     stroke-width: 2 !important;
     stroke-opacity: 1 !important;
 }
 
-.low-zoom.fill-wireframe path.shadow,
-.fill-wireframe path.shadow {
+.ideditor .low-zoom.fill-wireframe path.shadow,
+.ideditor .fill-wireframe path.shadow {
     stroke-width: 12;
 }
 
-.fill-wireframe path.shadow.related:not(.selected),
-.fill-wireframe path.shadow.hover:not(.selected) {
+.ideditor .fill-wireframe path.shadow.related:not(.selected),
+.ideditor .fill-wireframe path.shadow.hover:not(.selected) {
     stroke-opacity: 0.4;
 }
-.fill-wireframe path.shadow.selected {
+.ideditor .fill-wireframe path.shadow.selected {
     stroke-opacity: 0.6;
 }
 
-.fill-wireframe .point,
-.fill-wireframe .areaicon,
-.fill-wireframe .areaicon-halo,
-.fill-wireframe path.casing,
-.fill-wireframe path.fill,
-.fill-wireframe path.oneway {
+.ideditor .fill-wireframe .point,
+.ideditor .fill-wireframe .areaicon,
+.ideditor .fill-wireframe .areaicon-halo,
+.ideditor .fill-wireframe path.casing,
+.ideditor .fill-wireframe path.fill,
+.ideditor .fill-wireframe path.oneway {
     display: none !important;
 }
 
-.fill-partial path.area.fill {
+.ideditor .fill-partial path.area.fill {
     fill-opacity: 0;
     stroke-width: 60px;
     pointer-events: none;
 }
-.fill-partial path.area.fill.tag-building_part {
+.ideditor .fill-partial path.area.fill.tag-building_part {
     stroke-width: 40px;
 }
-.fill-partial path.area.fill.tag-indoor {
+.ideditor .fill-partial path.area.fill.tag-indoor {
     stroke-width: 20px;
 }
-.mode-browse .fill-partial path.area.fill,
-.mode-select .fill-partial path.area.fill {
+.ideditor.mode-browse .fill-partial path.area.fill,
+.ideditor.mode-select .fill-partial path.area.fill {
     pointer-events: visibleStroke;
 }
 /* Basics
 ------------------------------------------------------- */
-/*
-  Opera misbehaves when the window is resized vertically unless 100% width + height are
-  applied to both html and body. https://gist.github.com/jfirebaugh/bd225bcfdd3a633850c4
-*/
-html, body {
-    width: 100%;
+/* the root element of iD */
+.ideditor {
     height: 100%;
-}
+    width: 100%;
+    margin: 0;
+    padding: 0;
+    border: 0;
+    overflow: hidden;
 
-body {
     font: normal 12px/1.6667 "-apple-system", BlinkMacSystemFont,
         "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell",
         "Fira Sans", "Droid Sans", "Helvetica Neue", "Arial",
         sans-serif;
-    margin: 0;
-    padding: 0;
     color: #333;
-    overflow: hidden;
+
     -ms-user-select: none;
     -ms-content-zooming: none;
-}
-
-.unsupported {
-    text-align: center;
-    vertical-align: middle;
-    padding-top: 100px;
-    font-size: 15px;
-}
 
-.id-container {
-    height: 100%;
-    width: 100%;
+    /* Establish a local stacking context so all elements within iD are on the
+    same layer relative to elements outside iD - #7457.
+    https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Positioning/Understanding_z_index/The_stacking_context
+    */
+    position: relative;
+    z-index: 0;
 }
 
-#content {
+.ideditor #content {
     position: relative;
     overflow: hidden;
     height: 100%;
 }
 
-#content.active {
+.ideditor #content.active {
     -webkit-filter: none !important;
     filter: none !important;
     -webkit-duration: 200ms;
     transition-duration: 200ms;
 }
 
-#content.inactive {
+.ideditor #content.inactive {
     -webkit-filter: grayscale(80%) brightness(80%);
     filter: grayscale(80%) brightness(80%);
     -webkit-duration: 200ms;
     transition-duration: 200ms;
 }
 
-#defs {
+.ideditor #defs {
     /* Can't be display: none or the clippaths are ignored. */
     position: absolute;
     width: 0;
     height: 0;
 }
 
-div, textarea, label, input, form, span, ul, li, ol, a, button, h1, h2, h3, h4, h5, p, img {
+.ideditor div, .ideditor textarea, .ideditor label, .ideditor input, .ideditor form, .ideditor span, .ideditor ul, .ideditor li, .ideditor ol, .ideditor a, .ideditor button, .ideditor h1, .ideditor h2, .ideditor h3, .ideditor h4, .ideditor h5, .ideditor p, .ideditor img {
     -moz-box-sizing: border-box;
     -webkit-box-sizing: border-box;
     box-sizing: border-box;
 }
 
-a, button, input, textarea {
+.ideditor a, .ideditor button, .ideditor input, .ideditor textarea {
     -webkit-tap-highlight-color: rgba(0,0,0,0);
     -webkit-touch-callout: none;
 }
 
-ul li {
+.ideditor ul li {
     list-style: none;
 }
 
-a,
-button,
-.radial-menu-item {
+.ideditor a,
+.ideditor button,
+.ideditor .radial-menu-item {
     cursor: pointer;
 }
 
-h2 {
+.ideditor h2 {
     font-size: 25px;
     line-height: 1.25;
     font-weight: bold;
     margin-bottom: 20px;
 }
 
-h3:last-child,
-h2:last-child,
-h4:last-child { margin-bottom: 0;}
+.ideditor h3:last-child,
+.ideditor h2:last-child,
+.ideditor h4:last-child { margin-bottom: 0;}
 
-h3 {
+.ideditor h3 {
     font-size: 16px;
     line-height: 1.25;
     font-weight: bold;
     margin-bottom: 10px;
 }
-h4, h5 {
+.ideditor h4, .ideditor h5 {
     font-size: 12px;
     font-weight: bold;
     padding-bottom: 10px;
 }
 
-:focus {
+.ideditor :focus {
     outline-color: transparent;
     outline-style: none;
 }
 
-::placeholder { /* Chrome, Firefox, Opera, Safari 10.1+ */
+.ideditor ::placeholder { /* Chrome, Firefox, Opera, Safari 10.1+ */
     color: #aaa;
     opacity: 1; /* Firefox */
 }
-:-ms-input-placeholder { /* Internet Explorer 10-11 */
+.ideditor :-ms-input-placeholder { /* Internet Explorer 10-11 */
     color: #aaa;
 }
-::-ms-input-placeholder { /* Microsoft Edge */
+.ideditor ::-ms-input-placeholder { /* Microsoft Edge */
     color: #aaa;
 }
 
-p {
+.ideditor p {
     font-size: 12px;
     margin: 0;
     padding: 0;
 }
-p:last-child {
+.ideditor p:last-child {
     padding-bottom: 0;
 }
-em {
+.ideditor em {
     font-style: italic;
 }
-strong {
+.ideditor strong {
     font-weight: bold;
 }
-a:visited, a {
+.ideditor a:visited, .ideditor a {
     color: #7092ff;
 }
-a:hover {
+.ideditor a:hover {
     color: #597be7;
 }
-kbd {
+.ideditor kbd {
     display: inline-block;
     text-align: center;
     padding: 3px 5px;
@@ -3139,7 +3116,7 @@ kbd {
 
 /* Forms
 ------------------------------------------------------- */
-textarea  {
+.ideditor textarea  {
     resize: vertical;
     font:normal 12px/20px "-apple-system", BlinkMacSystemFont,
         "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell",
@@ -3147,13 +3124,13 @@ textarea  {
         sans-serif;
 }
 
-textarea,
-input[type=text],
-input[type=search],
-input[type=number],
-input[type=url],
-input[type=tel],
-input[type=email] {
+.ideditor textarea,
+.ideditor input[type=text],
+.ideditor input[type=search],
+.ideditor input[type=number],
+.ideditor input[type=url],
+.ideditor input[type=tel],
+.ideditor input[type=email] {
     background-color: #fff;
     color: #333;
     border: 1px solid #ccc;
@@ -3162,30 +3139,30 @@ input[type=email] {
     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] {
+.ideditor[dir='rtl'] textarea,
+.ideditor[dir='rtl'] input[type=text],
+.ideditor[dir='rtl'] input[type=search],
+.ideditor[dir='rtl'] input[type=number],
+.ideditor[dir='rtl'] input[type=url],
+.ideditor[dir='rtl'] input[type=tel],
+.ideditor[dir='rtl'] input[type=email] {
     padding: 5px 10px 5px 20px;
 }
 
-textarea:focus,
-input:focus {
+.ideditor textarea:focus,
+.ideditor input:focus {
     background-color: #f1f1f1;
 }
 
-textarea.disabled,
-input.disabled {
+.ideditor textarea.disabled,
+.ideditor input.disabled {
     color: #777;
     background-color: #eee;
     cursor: not-allowed;
 }
 
-input[type="checkbox"],
-input[type="radio"] {
+.ideditor input[type="checkbox"],
+.ideditor input[type="radio"] {
     float: left;
     width: 14px;
     height: 14px;
@@ -3193,84 +3170,84 @@ input[type="radio"] {
     margin-top: 3px;
     cursor: pointer;
 }
-[dir='rtl'] input[type="checkbox"],
-[dir='rtl'] input[type="radio"] {
+.ideditor[dir='rtl'] input[type="checkbox"],
+.ideditor[dir='rtl'] input[type="radio"] {
     float: right;
     margin-left: 5px;
     margin-right: 0;
 }
 
 /* tables */
-table {
+.ideditor table {
     background-color: #fff;
     border-collapse: collapse;
     width: 100%;
     border-spacing: 0;
 }
-table th {
+.ideditor table th {
     text-align: left;
 }
-table.tags, table.tags td, table.tags th {
+.ideditor table.tags, .ideditor table.tags td, .ideditor table.tags th {
     border: 1px solid #ccc;
     padding: 4px;
 }
 
-::-ms-clear {
+.ideditor ::-ms-clear {
    display: none;
 }
 
 /* Grid
 ------------------------------------------------------- */
-.col6  { float: left; width: 50.0000%; max-width: 600px; }
-.col12 { float: left; width: 100.0000%; }
+.ideditor .col6  { float: left; width: 50.0000%; max-width: 600px; }
+.ideditor .col12 { float: left; width: 100.0000%; }
 
 
 /* Utility Classes
 ------------------------------------------------------- */
-.fillL {
+.ideditor .fillL {
     background: #fff;
     color: #333;
 }
-.fillL2 {
+.ideditor .fillL2 {
     background: #f6f6f6;
     color: #333;
 }
-.fillL3 {
+.ideditor .fillL3 {
     background: #ececec;
     color: #333;
 }
-.fillD {
+.ideditor .fillD {
     background: rgba(0,0,0,.5);
     color: #fff;
 }
-.fillD2 {
+.ideditor .fillD2 {
     background: rgba(0,0,0,.75);
     color: #fff;
 }
 
-.fl { float: left;}
-.fr { float: right;}
-.al { left: 0; }
-.ar { right: 0; }
+.ideditor .fl { float: left;}
+.ideditor .fr { float: right;}
+.ideditor .al { left: 0; }
+.ideditor .ar { right: 0; }
 
-input.hide,
-textarea.hide,
-div.hide,
-form.hide,
-button.hide,
-a.hide,
-ul.hide,
-li.hide {
+.ideditor input.hide,
+.ideditor textarea.hide,
+.ideditor div.hide,
+.ideditor form.hide,
+.ideditor button.hide,
+.ideditor a.hide,
+.ideditor ul.hide,
+.ideditor li.hide {
     display: none;
 }
 
-.deemphasize {
+.ideditor .deemphasize {
     color: #a9a9a9;
 }
-.content {
+.ideditor .content {
     box-shadow: 0 0 30px 0 rgba(0, 0, 0, 0.25);
 }
-.loading {
+.ideditor .loading {
     background: url(<%= asset_path("iD/img/loader_bg.gif") %>);
     background-size: 5px 5px;
 }
@@ -3278,7 +3255,7 @@ li.hide {
 
 /* Buttons
 ------------------------------------------------------- */
-button {
+.ideditor button {
     text-align: center;
     line-height: 20px;
     border: 0;
@@ -3291,67 +3268,67 @@ button {
     border-radius: 4px;
 }
 
-button:focus,
-button:hover {
+.ideditor button:focus,
+.ideditor button:hover {
     background-color: #ececec;
 }
-button.active {
+.ideditor button.active {
     background: #7092ff;
 }
-button.disabled {
+.ideditor button.disabled {
     background-color: rgba(255,255,255,.25);
     color: rgba(0,0,0,.4);
     cursor: not-allowed;
 }
 
-.joined > * {
+.ideditor .joined > * {
     border-radius: 0;
     border-right: 1px solid rgba(0,0,0,.5);
 }
-[dir='rtl'] .joined > * {
+.ideditor[dir='rtl'] .joined > * {
     border-left: 1px solid rgba(0,0,0,.5);
     border-right: none;
 }
 
-.fillL .joined > * {
+.ideditor .fillL .joined > * {
     border-right: 1px solid #fff;
 }
-.joined > *:first-child {
+.ideditor .joined > *:first-child {
     border-radius: 4px 0 0 4px;
 }
-[dir='rtl'] .joined > *:first-child {
+.ideditor[dir='rtl'] .joined > *:first-child {
     border-radius: 0 4px 4px 0;
 }
-.joined > *:last-child {
+.ideditor .joined > *:last-child {
     border-right-width: 0;
     border-radius: 0 4px 4px 0;
 }
-[dir='rtl'] .joined > *.bar-button:last-child {
+.ideditor[dir='rtl'] .joined > *.bar-button:last-child {
     border-radius: 4px 0 0 4px;
 }
 
 
 /* Action buttons */
-button.action {
+.ideditor button.action {
     background: #7092ff;
     color: #fff;
 }
-button.action:focus,
-button.action:hover {
+.ideditor button.action:focus,
+.ideditor button.action:hover {
     background: #597be7;
 }
-button.secondary-action {
+.ideditor button.secondary-action {
     background: #ececec;
 }
-button.secondary-action:focus,
-button.secondary-action:hover {
+.ideditor button.secondary-action:focus,
+.ideditor button.secondary-action:hover {
     background: #cccccc;
 }
 
-button.action.disabled,
-button.action.disabled:hover,
-button[disabled].action,
-button[disabled].action:hover {
+.ideditor button.action.disabled,
+.ideditor button.action.disabled:hover,
+.ideditor button[disabled].action,
+.ideditor button[disabled].action:hover {
     background: #cccccc;
     color: #888;
     cursor: not-allowed;
@@ -3360,46 +3337,46 @@ button[disabled].action:hover {
 
 /* Icons
 ------------------------------------------------------- */
-.icon {
+.ideditor .icon {
     vertical-align: top;
     width: 20px;
     height: 20px;
 }
 
-.icon.inline {
+.ideditor .icon.inline {
     vertical-align: text-top;
     width: 14px;
     height: 14px;
     margin: 0px 3px;
 }
 
-.icon.pre-text {
+.ideditor .icon.pre-text {
     margin-right: 5px;
 }
-[dir='rtl'] .icon.pre-text {
+.ideditor[dir='rtl'] .icon.pre-text {
     margin-left: 5px;
     margin-right: 0;
 }
 
-.icon.pre-text.user-icon {
+.ideditor .icon.pre-text.user-icon {
     margin-left: 5px;
     margin-right: 5px;
 }
 
-.icon.light {
+.ideditor .icon.light {
     color: #fff;
 }
-.icon.created {
+.ideditor .icon.created {
     color: #00ca07;
 }
-.icon.modified {
+.ideditor .icon.modified {
     color: #666;
 }
-.icon.deleted {
+.ideditor .icon.deleted {
     color: #ea0000;
 }
 
-.user-icon {
+.ideditor .user-icon {
     max-height: 20px;
     max-width: 20px;
     height: auto;
@@ -3407,11 +3384,11 @@ button[disabled].action:hover {
     border-radius: 3px;
 }
 
-.icon-annotation {
+.ideditor .icon-annotation {
     color: #333;
 }
 
-.notification-badge {
+.ideditor .notification-badge {
     display: block;
     position: absolute;
     width: 10px;
@@ -3420,21 +3397,21 @@ button[disabled].action:hover {
     top: 9px;
 }
 
-.notification-badge.hide {
+.ideditor .notification-badge.hide {
     display: none;
 }
 
 
 /* Toolbar / Persistent UI Elements
 ------------------------------------------------------- */
-#bar-wrap {
+.ideditor #bar-wrap {
     position: absolute;
     left: 0;
     top: 0;
     right: 0;
     z-index: 101;
 }
-#bar {
+.ideditor #bar {
     display: flex;
     flex-flow: row nowrap;
     justify-content: space-between;
@@ -3448,16 +3425,16 @@ button[disabled].action:hover {
     scrollbar-width: none; /* Firefox */
     -ms-overflow-style: none; /* IE, Edge */
 }
-#bar::-webkit-scrollbar {
+.ideditor #bar::-webkit-scrollbar {
     display: none; /* Chrome, Safari, Opera */
 }
-#bar .toolbar-item {
+.ideditor #bar .toolbar-item {
     display: flex;
     flex: 0 1 auto;
     flex-flow: column wrap;
     justify-content: center;
 }
-#bar .toolbar-item .item-content {
+.ideditor #bar .toolbar-item .item-content {
     display: flex;
     flex: 0 1 auto;
     flex-flow: row nowrap;
@@ -3466,34 +3443,34 @@ button[disabled].action:hover {
     width: auto;
     margin: 0 5px;
 }
-[dir='ltr'] #bar .toolbar-item:last-child .item-content,
-[dir='rtl'] #bar .toolbar-item:first-child .item-content {
+.ideditor[dir='ltr'] #bar .toolbar-item:last-child .item-content,
+.ideditor[dir='rtl'] #bar .toolbar-item:first-child .item-content {
     margin-right: 10px;
 }
-[dir='ltr'] #bar .toolbar-item:first-child .item-content,
-[dir='rtl'] #bar .toolbar-item:last-child .item-content {
+.ideditor[dir='ltr'] #bar .toolbar-item:first-child .item-content,
+.ideditor[dir='rtl'] #bar .toolbar-item:last-child .item-content {
     margin-left: 10px;
 }
-#bar .toolbar-item .item-label {
+.ideditor #bar .toolbar-item .item-label {
     text-align: center;
     font-size: 11px;
     white-space: nowrap;
     margin: 1px 2px 2px 2px;
 }
-#bar .toolbar-item.spacer {
+.ideditor #bar .toolbar-item.spacer {
     width: 100%;
     flex-grow: 2;
 }
-#bar .toolbar-item:first-child {
+.ideditor #bar .toolbar-item:first-child {
     justify-content: flex-start;
 }
-#bar .toolbar-item:last-child {
+.ideditor #bar .toolbar-item:last-child {
     justify-content: flex-end;
 }
-#bar .toolbar-item:empty:not(.spacer) {
+.ideditor #bar .toolbar-item:empty:not(.spacer) {
     display: none;
 }
-button.bar-button {
+.ideditor button.bar-button {
     flex: 0 0 auto;
     flex-flow: row nowrap;
     align-items: center;
@@ -3502,33 +3479,33 @@ button.bar-button {
     white-space: nowrap;
     display: flex;
 }
-button.bar-button .icon {
+.ideditor button.bar-button .icon {
     flex: 0 0 20px;
 }
-button.bar-button .label {
+.ideditor button.bar-button .label {
     flex: 0 1 auto;
     padding: 0 5px;
 }
 
-button.bar-button.dragging {
+.ideditor button.bar-button.dragging {
     opacity: 0.75;
     z-index: 200;
 }
-button.bar-button.dragging .tooltip {
+.ideditor button.bar-button.dragging .tooltip {
     display: none;
 }
-button.bar-button.dragging.removing {
+.ideditor button.bar-button.dragging.removing {
     cursor: url(<%= asset_path("iD/img/cursor-select-remove.png") %>), pointer;
 }
 
-button.save .count {
+.ideditor button.save .count {
     display: inline-block;
     min-width: 32px;
     text-align: center;
 }
 
-.help-wrap svg.icon.pre-text.add-note,
-button.add-note svg.icon {
+.ideditor .help-wrap svg.icon.pre-text.add-note,
+.ideditor button.add-note svg.icon {
     height: 15px;
     width: 15px;
     color: rgba(0,0,0,0.25);
@@ -3536,32 +3513,32 @@ button.add-note svg.icon {
     stroke-width: 60px;
     margin-top: 3px;
 }
-button.add-note svg.icon {
+.ideditor button.add-note svg.icon {
     margin-left: unset;
     margin-right: 4px;
 }
-[dir='rtl'] button.add-note svg.icon {
+.ideditor[dir='rtl'] button.add-note svg.icon {
     margin-left: 4px;
     margin-right: unset;
 }
-.help-wrap svg.icon.pre-text.add-note {
+.ideditor .help-wrap svg.icon.pre-text.add-note {
     margin-left: 3px;
     margin-right: 3px;
 }
 
-.spinner {
+.ideditor .spinner {
     opacity: .5;
     position: absolute;
     right: 4px;
     bottom: 26px;
 }
-.spinner img {
+.ideditor .spinner img {
     height: 20px;
     width: 20px;
     background: transparent;
     border-radius: 100%;
 }
-[dir='rtl'] .spinner img {
+.ideditor[dir='rtl'] .spinner img {
     -moz-transform: scaleX(-1);
     -o-transform: scaleX(-1);
     -webkit-transform: scaleX(-1);
@@ -3571,31 +3548,31 @@ button.add-note svg.icon {
 }
 
 
-#bar.narrow .spinner,
-#bar.narrow button.bar-button .label {
+.ideditor #bar.narrow .spinner,
+.ideditor #bar.narrow button.bar-button .label {
     display: none;
 }
-#bar.narrow button .count {
+.ideditor #bar.narrow button .count {
     border-left-width: 0;
     border-right-width: 0;
 }
 
-[dir='ltr'] .undo-redo button:first-of-type {
+.ideditor[dir='ltr'] .undo-redo button:first-of-type {
     margin-right: 1px;
 }
-[dir='rtl'] .undo-redo button:first-of-type {
+.ideditor[dir='rtl'] .undo-redo button:first-of-type {
     margin-left: 1px;
 }
 
 /* Header for modals / panes
 ------------------------------------------------------- */
-.header {
+.ideditor .header {
     border-bottom: 1px solid #ccc;
     height: 60px;
     position: relative;
 }
 
-.header h3 {
+.ideditor .header h3 {
     text-align: center;
     margin-bottom: 0;
     white-space: nowrap;
@@ -3604,68 +3581,68 @@ button.add-note svg.icon {
     padding: 20px;
 }
 
-.header button,
-.modal > button {
+.ideditor .header button,
+.ideditor .modal > button {
     border-radius: 0;
     width: 40px;
     text-align: center;
     overflow: hidden;
 }
 
-.header button {
+.ideditor .header button {
     position: relative;
     height: 100%;
 }
 
-.field-help-title button.close,
-.sidebar-component .header button.data-editor-close,
-.sidebar-component .header button.note-editor-close,
-.sidebar-component .header button.error-editor-close,
-.entity-editor-pane .header button.preset-close,
-.preset-list-pane .header button.preset-choose {
+.ideditor .field-help-title button.close,
+.ideditor .sidebar-component .header button.data-editor-close,
+.ideditor .sidebar-component .header button.note-editor-close,
+.ideditor .sidebar-component .header button.error-editor-close,
+.ideditor .entity-editor-pane .header button.preset-close,
+.ideditor .preset-list-pane .header button.preset-choose {
     position: absolute;
     right: 0;
     top: 0;
 }
-[dir='rtl'] .field-help-title button.close,
-[dir='rtl'] .sidebar-component .header button.data-editor-close,
-[dir='rtl'] .sidebar-component .header button.note-editor-close,
-[dir='rtl'] .sidebar-component .header button.error-editor-close,
-[dir='rtl'] .entity-editor-pane .header button.preset-close,
-[dir='rtl'] .preset-list-pane .header button.preset-choose {
+.ideditor[dir='rtl'] .field-help-title button.close,
+.ideditor[dir='rtl'] .sidebar-component .header button.data-editor-close,
+.ideditor[dir='rtl'] .sidebar-component .header button.note-editor-close,
+.ideditor[dir='rtl'] .sidebar-component .header button.error-editor-close,
+.ideditor[dir='rtl'] .entity-editor-pane .header button.preset-close,
+.ideditor[dir='rtl'] .preset-list-pane .header button.preset-choose {
     left: 0;
     right: auto;
 }
 
-.entity-editor-pane .header button.preset-choose {
+.ideditor .entity-editor-pane .header button.preset-choose {
     position: absolute;
     left: 0;
     top: 0;
 }
-[dir='rtl'] .entity-editor-pane .header button.preset-choose {
+.ideditor[dir='rtl'] .entity-editor-pane .header button.preset-choose {
     left: auto;
     right: 0;
 }
 
-.preset-choose {
+.ideditor .preset-choose {
     font-size: 16px;
     line-height: 1.25;
     font-weight: bold;
 }
 
-.modal > button {
+.ideditor .modal > button {
     position: absolute;
     right: 0;
     top: 0;
     height: 59px;
     z-index: 50;
 }
-[dir='rtl'] .modal > button {
+.ideditor[dir='rtl'] .modal > button {
     left: 0;
     right: unset;
 }
 
-.footer {
+.ideditor .footer {
     position: absolute;
     bottom: 0;
     margin: 0;
@@ -3680,39 +3657,39 @@ button.add-note svg.icon {
     display: flex;
 }
 
-.footer > a {
+.ideditor .footer > a {
     justify-content: center;
 }
 
-.header-container {
+.ideditor .header-container {
     display: flex;
     justify-content: space-between;
 }
 
-.header-block-outer {
+.ideditor .header-block-outer {
     width: 20%;
 }
 
-.header-block-close {
+.ideditor .header-block-close {
     display: flex;
     justify-content: flex-end;
 }
 
 /* Hide/Toggle collapsable sections (aka Disclosure)
 ------------------------------------------------------- */
-.hide-toggle .icon.pre-text {
+.ideditor .hide-toggle .icon.pre-text {
     vertical-align: text-top;
     width: 16px;
     height: 16px;
     margin-left: -3px;
 }
-[dir='rtl'] .hide-toggle .icon.pre-text {
+.ideditor[dir='rtl'] .hide-toggle .icon.pre-text {
     margin-left: 0;
     margin-right: -3px;
 }
 
-a:visited.hide-toggle,
-a.hide-toggle {
+.ideditor a:visited.hide-toggle,
+.ideditor a.hide-toggle {
     display: inline-block;
     font-size: 14px;
     font-weight: bold;
@@ -3722,7 +3699,7 @@ a.hide-toggle {
 
 /* Sidebar / Inspector
 ------------------------------------------------------- */
-#sidebar {
+.ideditor #sidebar {
     position: relative;
     float: left;
     height: 100%;
@@ -3732,13 +3709,13 @@ a.hide-toggle {
     border: 0px solid #ccc;
     border-right-width: 1px;
 }
-[dir='rtl'] #sidebar {
+.ideditor[dir='rtl'] #sidebar {
     float: right;
     border-right-width: 0px;
     border-left-width: 1px;
 }
 
-#sidebar-resizer {
+.ideditor #sidebar-resizer {
     position: absolute;
     top: 0;
     right: -6px;
@@ -3746,21 +3723,21 @@ a.hide-toggle {
     width: 6px;
     cursor: col-resize;
 }
-[dir='rtl'] #sidebar-resizer {
+.ideditor[dir='rtl'] #sidebar-resizer {
     right: auto;
     left: -6px;
 }
 
-#sidebar.collapsed #sidebar-resizer {
+.ideditor #sidebar.collapsed #sidebar-resizer {
     /* make target wider to avoid the user accidentally resizing window */
     width: 10px;
     right: -10px;
 }
-[dir='rtl'] #sidebar.collapsed #sidebar-resizer {
+.ideditor[dir='rtl'] #sidebar.collapsed #sidebar-resizer {
     left: -10px;
 }
 
-.sidebar-component {
+.ideditor .sidebar-component {
     position: absolute;
     top: 0;
     left: 0;
@@ -3768,7 +3745,7 @@ a.hide-toggle {
     right: 0;
 }
 
-.sidebar-component .body {
+.ideditor .sidebar-component .body {
     width: 100%;
     overflow: auto;
     top: 60px;
@@ -3776,40 +3753,40 @@ a.hide-toggle {
     position: absolute;
 }
 
-.panewrap {
+.ideditor .panewrap {
     position: absolute;
     width: 200%;
     height: 100%;
     right: -100%;
 }
 
-.pane {
+.ideditor .pane {
     position: absolute;
     width: 50%;
     top: 0;
     bottom: 30px;
 }
 
-.pane:first-child {
+.ideditor .pane:first-child {
     left: 0;
 }
 
-.pane:last-child {
+.ideditor .pane:last-child {
     right: 0;
 }
 
-.inspector-wrap {
+.ideditor .inspector-wrap {
     width: 100%;
     height: 100%;
     overflow: hidden;
     position: relative;
 }
 
-.inspector-hidden {
+.ideditor .inspector-hidden {
     display: none;
 }
 
-.inspector-body {
+.ideditor .inspector-body {
     overflow-y: scroll;
     overflow-x: hidden;
     position: absolute;
@@ -3818,33 +3795,33 @@ a.hide-toggle {
     bottom: 0;
 }
 
-.feature-list-pane .inspector-body,
-.preset-list-pane .inspector-body {
+.ideditor .feature-list-pane .inspector-body,
+.ideditor .preset-list-pane .inspector-body {
     top: 120px;
 }
-.entity-editor-pane .inspector-body,
-.selection-list-pane .inspector-body {
+.ideditor .entity-editor-pane .inspector-body,
+.ideditor .selection-list-pane .inspector-body {
     top: 60px;
 }
 
-.inspector-inner {
+.ideditor .inspector-inner {
     padding: 20px 20px 5px 20px;
     position: relative;
 }
 
-#sidebar .search-header .icon {
+.ideditor #sidebar .search-header .icon {
     display: block;
     position: absolute;
     left: 10px;
     top: 80px;
     pointer-events: none;
 }
-[dir='rtl'] #sidebar .search-header .icon {
+.ideditor[dir='rtl'] #sidebar .search-header .icon {
     left: auto;
     right: 10px;
 }
 
-#sidebar .search-header input {
+.ideditor #sidebar .search-header input {
     position: absolute;
     top: 60px;
     height: 60px;
@@ -3861,19 +3838,19 @@ a.hide-toggle {
 
 /* Feature List / Search Results
 ------------------------------------------------------- */
-.feature-list  {
+.ideditor .feature-list  {
     width: 100%;
 }
-.no-results-item,
-.geocode-item,
-.feature-list-item {
+.ideditor .no-results-item,
+.ideditor .geocode-item,
+.ideditor .feature-list-item {
     width: 100%;
     position: relative;
     border-bottom: 1px solid #ccc;
     border-radius: 0;
 }
 
-.geocode-item {
+.ideditor .geocode-item {
     width: 50%;
     background-color: #ccc;
     left: 25%;
@@ -3881,27 +3858,27 @@ a.hide-toggle {
     border-radius: 2px;
 }
 
-[dir='rtl'] .geocode-item {
+.ideditor[dir='rtl'] .geocode-item {
     left: -25%;
 }
 
-.geocode-item:hover {
+.ideditor .geocode-item:hover {
     background-color: #aaa;
 }
 
-.feature-list-item {
+.ideditor .feature-list-item {
     background-color: #fff;
     font-weight: bold;
     height: 40px;
     line-height: 20px;
 }
-.feature-list-item:hover {
+.ideditor .feature-list-item:hover {
     background-color: #ececec;
 }
-.feature-list-item button {
+.ideditor .feature-list-item button {
     background: transparent;
 }
-.feature-list-item .label {
+.ideditor .feature-list-item .label {
     text-align: left;
     padding: 10px 10px;
     white-space: nowrap;
@@ -3909,32 +3886,32 @@ a.hide-toggle {
     overflow: hidden;
     border-left: 1px solid rgba(0, 0, 0, .1);
 }
-[dir='rtl'] .feature-list-item .label {
+.ideditor[dir='rtl'] .feature-list-item .label {
     text-align: right;
 }
 
-.feature-list-item .label .icon {
+.ideditor .feature-list-item .label .icon {
     opacity: .5;
 }
-.feature-list-item .close {
+.ideditor .feature-list-item .close {
     float: right;
     padding: 10px;
 }
-.feature-list-item .close .icon {
+.ideditor .feature-list-item .close .icon {
     opacity: 1;
 }
-.feature-list-item .entity-type {
+.ideditor .feature-list-item .entity-type {
     color: #7092ff;
 }
-.feature-list-item:hover .entity-type {
+.ideditor .feature-list-item:hover .entity-type {
     color: #597be7;
 }
-.feature-list-item .entity-name {
+.ideditor .feature-list-item .entity-name {
     font-weight: normal;
     color: #666;
     padding-left: 10px;
 }
-[dir='rtl'] .feature-list-item .entity-name {
+.ideditor[dir='rtl'] .feature-list-item .entity-name {
     padding-left: 0;
     padding-right: 10px;
 }
@@ -3942,36 +3919,36 @@ a.hide-toggle {
 
 /* Preset List and Icons
 ------------------------------------------------------- */
-.preset-list  {
+.ideditor .preset-list  {
     width: 100%;
     padding: 20px 20px 10px 20px;
     border-bottom: 1px solid #ccc;
 }
 
-.preset-list-item {
+.ideditor .preset-list-item {
     margin-bottom: 10px;
     position: static;
 }
 
-.preset-list-button-wrap {
+.ideditor .preset-list-button-wrap {
     height: 62px;
     display: flex;
     border: 1px solid #ccc;
     border-radius: 4px;
 }
 
-.preset-list-button {
+.ideditor .preset-list-button {
     width: 100%;
     height: 100%;
     position: relative;
     display: flex;
 }
 
-.preset-list.filtered .preset-list-item:first-child .preset-list-button {
+.ideditor .preset-list.filtered .preset-list-item:first-child .preset-list-button {
     background: #ececec;
 }
 
-.preset-icon-container {
+.ideditor .preset-icon-container {
     position: relative;
     width: 60px;
     height: 60px;
@@ -3980,12 +3957,12 @@ a.hide-toggle {
     align-items: center;
     justify-content: center;
 }
-.preset-icon-container.small {
+.ideditor .preset-icon-container.small {
     width: 40px;
     height: 40px;
     flex: 0 0 auto;
 }
-.preset-icon-container img.image-icon {
+.ideditor .preset-icon-container img.image-icon {
     width: 50px;
     height: 50px;
     object-fit: contain;
@@ -3993,20 +3970,20 @@ a.hide-toggle {
     z-index: 2;
     visibility: hidden;
 }
-.preset-icon-container.showing-img img.image-icon {
+.ideditor .preset-icon-container.showing-img img.image-icon {
     visibility: visible;
 }
-.preset-icon-container.showing-img *:not(.image-icon) {
+.ideditor .preset-icon-container.showing-img *:not(.image-icon) {
     visibility: hidden;
 }
 
-.preset-icon-point-border path {
+.ideditor .preset-icon-point-border path {
     stroke: #333;
     stroke-width: 1.2;
     fill: transparent;
 }
 
-.preset-icon-line {
+.ideditor .preset-icon-line {
     margin: auto;
     position: absolute;
     left: 0;
@@ -4015,26 +3992,26 @@ a.hide-toggle {
     width: 100%;
     height: 100%;
 }
-.preset-icon-container path {
+.ideditor .preset-icon-container path {
     cursor: inherit;
 }
-.preset-icon-container circle.vertex {
+.ideditor .preset-icon-container circle.vertex {
     fill: #fff;
     stroke: rgba(0, 0, 0, 0.25);
 }
-.preset-icon-fill circle.midpoint {
+.ideditor .preset-icon-fill circle.midpoint {
     fill: transparent;
     stroke: rgba(0, 0, 0, 0.25);
 }
 /* use a consistent stroke width */
-.preset-icon-container path.line.stroke {
+.ideditor .preset-icon-container path.line.stroke {
     stroke-width: 2 !important;
 }
-.preset-icon-container path.line.casing {
+.ideditor .preset-icon-container path.line.casing {
     stroke-width: 4 !important;
 }
 
-.preset-icon-fill {
+.ideditor .preset-icon-fill {
     margin: auto;
     position: absolute;
     width: 100%;
@@ -4042,28 +4019,28 @@ a.hide-toggle {
     left: 0;
     top: 0;
 }
-.preset-icon-container svg,
-.preset-icon-container svg > * {
+.ideditor .preset-icon-container svg,
+.ideditor .preset-icon-container svg > * {
     cursor: inherit !important;
 }
-.preset-icon-fill path.area.stroke {
+.ideditor .preset-icon-fill path.area.stroke {
     fill: transparent;
 }
 
-.preset-icon-fill-vertex circle {
+.ideditor .preset-icon-fill-vertex circle {
     stroke-width: 1.5px;
     stroke: #333;
     fill: #efefef;
     backface-visibility: hidden;
 }
 
-.preset-icon {
+.ideditor .preset-icon {
     width: 100%;
     height:100%;
     position: absolute;
     z-index: 1;
 }
-.preset-icon .icon {
+.ideditor .preset-icon .icon {
     position: absolute;
     margin: auto;
     left: 0;
@@ -4072,35 +4049,35 @@ a.hide-toggle {
     height: 100%;
     transform: scale(0.48);
 }
-.preset-icon-container.small .preset-icon.point-geom .icon {
+.ideditor .preset-icon-container.small .preset-icon.point-geom .icon {
     transform: translateY(-7%) scale(0.27);
 }
-.preset-icon-container.small .preset-icon.point-geom.preset-icon-iD .icon {
+.ideditor .preset-icon-container.small .preset-icon.point-geom.preset-icon-iD .icon {
     transform: translateY(-9%) scale(0.5);
 }
-.preset-icon.framed .icon {
+.ideditor .preset-icon.framed .icon {
     transform: scale(0.4);
 }
-.preset-icon.framed.line-geom .icon,
-.preset-icon.framed.route-geom .icon {
+.ideditor .preset-icon.framed.line-geom .icon,
+.ideditor .preset-icon.framed.route-geom .icon {
     top: 20%;
     transform: translateY(-30%) scale(0.4);
 }
-.preset-icon-iD .icon {
+.ideditor .preset-icon-iD .icon {
     transform: scale(1);
 }
-.preset-icon-iD.framed .icon {
+.ideditor .preset-icon-iD.framed .icon {
     transform: scale(0.74);
 }
-.preset-icon-iD.framed.line-geom .icon,
-.preset-icon-iD.framed.route-geom .icon {
+.ideditor .preset-icon-iD.framed.line-geom .icon,
+.ideditor .preset-icon-iD.framed.route-geom .icon {
     transform: translateY(-30%) scale(0.74);
 }
-.preset-icon-container.fallback .preset-icon .icon {
+.ideditor .preset-icon-container.fallback .preset-icon .icon {
     transform: scale(0.5) !important;
 }
 
-.preset-list-button .label {
+.ideditor .preset-list-button .label {
     display: flex;
     flex-flow: row wrap;
     align-items: center;
@@ -4114,74 +4091,74 @@ a.hide-toggle {
     left: 60px;
     border-left: 1px solid rgba(0, 0, 0, .1);
 }
-[dir='rtl'] .preset-list-button .label {
+.ideditor[dir='rtl'] .preset-list-button .label {
     text-align: right;
     left: 0;
     right: 60px;
     border-left: none;
     border-right: 1px solid rgba(0, 0, 0, .1);
 }
-[dir='ltr'] .category .preset-list-button .label {
+.ideditor[dir='ltr'] .category .preset-list-button .label {
     border-radius: 0px 4px 4px 0px;
 }
-[dir='rtl'] .category .preset-list-button .label {
+.ideditor[dir='rtl'] .category .preset-list-button .label {
     border-radius: 4px 0px 0px 4px;
 }
 
-.preset-list-button .label-inner {
+.ideditor .preset-list-button .label-inner {
     width: 100%;
 }
-.preset-list-button .label-inner .namepart {
+.ideditor .preset-list-button .label-inner .namepart {
     height: 17px;
     white-space: nowrap;
     text-overflow: ellipsis;
     overflow: hidden;
 }
-.preset-list-button .label-inner .namepart:nth-child(2) {
+.ideditor .preset-list-button .label-inner .namepart:nth-child(2) {
     font-weight: normal;
 }
 
-.preset-list-button:hover .label,
-.preset-list-button:focus .label,
-.preset-list-button.disabled,
-.preset-list-button.disabled .label {
+.ideditor .preset-list-button:hover .label,
+.ideditor .preset-list-button:focus .label,
+.ideditor .preset-list-button.disabled,
+.ideditor .preset-list-button.disabled .label {
     background-color: #ececec;
 }
 
-.preset-list-item button.tag-reference-button {
+.ideditor .preset-list-item button.tag-reference-button {
     height: 100%;
     width: 32px;
     flex: 0 0 auto;
     background: #f6f6f6;
 }
-[dir='ltr'] .preset-list-item button.tag-reference-button {
+.ideditor[dir='ltr'] .preset-list-item button.tag-reference-button {
     border-left: 1px solid #ccc;
 }
-[dir='rtl'] .preset-list-item button.tag-reference-button {
+.ideditor[dir='rtl'] .preset-list-item button.tag-reference-button {
     border-right: 1px solid #ccc;
 }
-[dir='ltr'] .preset-list-item button:last-child {
+.ideditor[dir='ltr'] .preset-list-item button:last-child {
     border-radius: 0 4px 4px 0;
 }
-[dir='rtl'] .preset-list-item button:last-child {
+.ideditor[dir='rtl'] .preset-list-item button:last-child {
     border-radius: 4px 0 0 4px;
 }
 
-.preset-list-item button.tag-reference-button:hover {
+.ideditor .preset-list-item button.tag-reference-button:hover {
     background: #f1f1f1;
 }
-.preset-list-item button.tag-reference-button .icon {
+.ideditor .preset-list-item button.tag-reference-button .icon {
     opacity: .5;
 }
 
 
-.current .preset-list-button,
-.current .preset-list-button .label {
+.ideditor .current .preset-list-button,
+.ideditor .current .preset-list-button .label {
     background-color: #e8ebff;
 }
 
-.category .preset-list-button:after,
-.category .preset-list-button:before {
+.ideditor .category .preset-list-button:after,
+.ideditor .category .preset-list-button:before {
     content: "";
     position: absolute;
     top: -5px;
@@ -4192,11 +4169,11 @@ a.hide-toggle {
     height: 6px;
 }
 
-.category .preset-list-button:before {
+.ideditor .category .preset-list-button:before {
     top: -3px;
 }
 
-.subgrid .preset-list {
+.ideditor .subgrid .preset-list {
     padding: 10px;
     margin-top: 0;
     border: 0;
@@ -4204,11 +4181,11 @@ a.hide-toggle {
     width: -webkit-calc(100% + 20px);
     margin-left: -10px;
 }
-.subgrid .preset-list > *:last-child {
+.ideditor .subgrid .preset-list > *:last-child {
     margin-bottom: 0;
 }
 
-.subgrid .arrow {
+.ideditor .subgrid .arrow {
     border: solid rgba(0, 0, 0, 0);
     border-width: 10px;
     border-bottom-color: #ececec;
@@ -4221,46 +4198,46 @@ a.hide-toggle {
 
 /* Quick links
 ------------------------------------------------------- */
-.quick-links {
+.ideditor .quick-links {
     display: flex;
     flex-flow: row wrap;
     justify-content: flex-end;
     padding: 0 20px;
 }
-.quick-link {
+.ideditor .quick-link {
     margin: 0 5px;
 }
 
-.data-editor .quick-links,
-.error-editor .quick-links,
-.note-editor .quick-links {
+.ideditor .data-editor .quick-links,
+.ideditor .error-editor .quick-links,
+.ideditor .note-editor .quick-links {
     padding: 5px 0 0 0;
 }
 
 
 /* Entity/Preset Editor
 ------------------------------------------------------- */
-.entity-issues,
-.preset-editor {
+.ideditor .entity-issues,
+.ideditor .preset-editor {
     overflow: hidden;
     padding: 10px 0px 5px 0px;
 }
-.entity-issues a.hide-toggle,
-.preset-editor a.hide-toggle {
+.ideditor .entity-issues a.hide-toggle,
+.ideditor .preset-editor a.hide-toggle {
     margin: 0 20px 5px 20px;
 }
-.entity-issues .disclosure-wrap-entity_issues,
-.preset-editor .form-fields-container {
+.ideditor .entity-issues .disclosure-wrap-entity_issues,
+.ideditor .preset-editor .form-fields-container {
     padding: 10px;
     margin: 0 10px 10px 10px;
     border-radius: 8px;
     background: #ececec;
 }
-.entity-issues .disclosure-wrap-entity_issues:empty,
-.preset-editor .form-fields-container:empty {
+.ideditor .entity-issues .disclosure-wrap-entity_issues:empty,
+.ideditor .preset-editor .form-fields-container:empty {
     display: none;
 }
-.entity-editor-pane .preset-list-item {
+.ideditor .entity-editor-pane .preset-list-item {
     margin-bottom: 0;
 }
 
@@ -4285,7 +4262,7 @@ a.hide-toggle {
                                                     -
 */
 
-.form-field {
+.ideditor .form-field {
     display: flex;
     flex-flow: row wrap;
     margin-bottom: 10px;
@@ -4296,13 +4273,13 @@ a.hide-toggle {
             transition: margin-bottom 200ms;
 }
 
-.form-field.nowrap,
-.wrap-form-field:last-child .form-field {
+.ideditor .form-field.nowrap,
+.ideditor .wrap-form-field:last-child .form-field {
     margin-bottom: 0;
 }
 
 /* A `label` element that wraps the top section */
-.field-label {
+.ideditor .field-label {
     display: flex;
     flex-flow: row nowrap;
     flex: 1 1 100%;
@@ -4315,15 +4292,15 @@ a.hide-toggle {
     border-radius: 4px 4px 0 0;
     overflow: hidden;
 }
-.field-label .label-text {
+.ideditor .field-label .label-text {
     flex: 1 1 auto;
     padding: 5px 0 5px 10px;
 }
-[dir='rtl'] .field-label .label-text {
+.ideditor[dir='rtl'] .field-label .label-text {
     padding: 5px 10px 5px 0;
 }
 
-.label-text .label-textannotation svg.icon {
+.ideditor .label-text .label-textannotation svg.icon {
     margin: 0 8px;
     color: #333;
     opacity: 0.5;
@@ -4332,7 +4309,7 @@ a.hide-toggle {
     vertical-align: text-top;
 }
 
-.field-label button {
+.ideditor .field-label button {
     flex: 0 0 32px;
     border-left: 1px solid #ccc;
     width: 32px;
@@ -4340,30 +4317,30 @@ a.hide-toggle {
     border-radius: 0;
     background: #f6f6f6;
 }
-[dir='rtl'] .field-label button {
+.ideditor[dir='rtl'] .field-label button {
     border-left: none;
     border-right: 1px solid #ccc;
 }
-.field-label button:hover {
+.ideditor .field-label button:hover {
     background: #f1f1f1;
 }
-.field-label .icon {
+.ideditor .field-label .icon {
     opacity: .5;
 }
 
-.field-label .modified-icon,
-.field-label .remove-icon,
-.field-label .remove-icon-multilingual {
+.ideditor .field-label .modified-icon,
+.ideditor .field-label .remove-icon,
+.ideditor .field-label .remove-icon-multilingual {
     display: none;
 }
-.modified:not(.locked) .field-label .modified-icon,
-.present:not(.locked) .field-label .remove-icon,
-.present:not(.locked) .field-label .remove-icon-multilingual {
+.ideditor .modified:not(.locked) .field-label .modified-icon,
+.ideditor .present:not(.locked) .field-label .remove-icon,
+.ideditor .present:not(.locked) .field-label .remove-icon-multilingual {
     display: inline-block;
 }
 
 /* A `div` element that wraps the bottom section */
-.form-field-input-wrap {
+.ideditor .form-field-input-wrap {
     display: flex;
     flex-flow: row nowrap;
     width: 100%;
@@ -4372,15 +4349,15 @@ a.hide-toggle {
     border-top: 0;
     border-radius: 0 0 4px 4px;
 }
-.nowrap .form-field-input-wrap {
+.ideditor .nowrap .form-field-input-wrap {
     border-radius: 0;
 }
 
 
-.form-field-input-wrap > input,
-.form-field-input-wrap > label,
-.form-field-input-wrap > textarea,
-.form-field-input-wrap > ul.chiplist {
+.ideditor .form-field-input-wrap > input,
+.ideditor .form-field-input-wrap > label,
+.ideditor .form-field-input-wrap > textarea,
+.ideditor .form-field-input-wrap > ul.chiplist {
     flex: 1 1 auto;
     min-height: 30px;
     border: 1px solid #ccc;
@@ -4389,14 +4366,14 @@ a.hide-toggle {
     overflow: hidden;
     position: relative;
 }
-.form-field-input-wrap > textarea {
+.ideditor .form-field-input-wrap > textarea {
     height: 65px;
     border-radius: 0 0 4px 4px;
     overflow: auto;
 }
 
 /* Buttons inside fields */
-.form-field-button {
+.ideditor .form-field-button {
     flex: 0 0 auto;
     height: 30px;
     width: 32px;
@@ -4408,32 +4385,32 @@ a.hide-toggle {
     border-left-width: 0;
     vertical-align: top;
 }
-[dir='rtl'] .form-field-button {
+.ideditor[dir='rtl'] .form-field-button {
     border-left-width: 1px;
     border-right-width: 0;
 }
-.form-field-button:hover {
+.ideditor .form-field-button:hover {
     background-color: #f1f1f1;
 }
-.form-field-button .icon {
+.ideditor .form-field-button .icon {
     fill: #333;
     opacity: .5;
 }
 
 
 /* round corners of first/last child elements */
-.form-field-input-wrap > button:last-of-type {
+.ideditor .form-field-input-wrap > button:last-of-type {
     border-bottom-right-radius: 4px;
 }
-[dir='rtl'] .form-field-input-wrap > button:last-of-type {
+.ideditor[dir='rtl'] .form-field-input-wrap > button:last-of-type {
     border-bottom-left-radius: 4px;
 }
 
 
 /* Field - Access, Cycleway
 ------------------------------------------------------- */
-.form-field-input-access,
-.form-field-input-cycleway {
+.ideditor .form-field-input-access,
+.ideditor .form-field-input-cycleway {
     flex: 1 1 auto;
     display: flex;
     flex-flow: row wrap;
@@ -4441,7 +4418,7 @@ a.hide-toggle {
 
 /* Field - lists with labeled input items
 ------------------------------------------------------- */
-.form-field ul.rows {
+.ideditor .form-field ul.rows {
     flex: 1 1 auto;
     border: 1px solid #ccc;
     border-top: 0;
@@ -4449,43 +4426,43 @@ a.hide-toggle {
     overflow: hidden;
     width: 100%;
 }
-.form-field ul.rows li {
+.ideditor .form-field ul.rows li {
     border-top: 1px solid #ccc;
 }
-.form-field ul.rows li:first-child {
+.ideditor .form-field ul.rows li:first-child {
     border-top: 0;
 }
-.form-field ul.rows li {
+.ideditor .form-field ul.rows li {
     display: flex;
     flex-flow: row nowrap;
 }
-.form-field ul.rows li.labeled-input > span,
-.form-field ul.rows li.labeled-input > div {
+.ideditor .form-field ul.rows li.labeled-input > span,
+.ideditor .form-field ul.rows li.labeled-input > div {
     flex: 1 1 auto;
     width: 100%;
     border-radius: 0;
 }
-.form-field ul.rows li input {
+.ideditor .form-field ul.rows li input {
     border-radius: 0;
     border-width: 0;
     width: 100%;
 }
-.form-field ul.rows li button {
+.ideditor .form-field ul.rows li button {
     border-width: 0;
 }
-[dir='ltr'] .form-field ul.rows li.labeled-input input,
-[dir='ltr'] .form-field ul.rows li button {
+.ideditor[dir='ltr'] .form-field ul.rows li.labeled-input input,
+.ideditor[dir='ltr'] .form-field ul.rows li button {
     border-left-width: 1px;
 }
-[dir='rtl'] .form-field ul.rows li.labeled-input input,
-[dir='rtl'] .form-field ul.rows li button {
+.ideditor[dir='rtl'] .form-field ul.rows li.labeled-input input,
+.ideditor[dir='rtl'] .form-field ul.rows li button {
     border-right-width: 1px;
 }
 
 
 /* Field - Structure
 ------------------------------------------------------- */
-.structure-extras-wrap {
+.ideditor .structure-extras-wrap {
     width: 100%;
     padding: 10px 10px;
     background: #fff;
@@ -4493,7 +4470,7 @@ a.hide-toggle {
     border-top: 0px;
     border-radius: 0 0 4px 4px;
 }
-.structure-extras-wrap > ul.rows {
+.ideditor .structure-extras-wrap > ul.rows {
     border: 1px solid #ccc;
     border-radius: 4px;
 }
@@ -4501,20 +4478,20 @@ a.hide-toggle {
 
 /* Field - Combo / Multicombo
 ------------------------------------------------------- */
-.form-field-input-combo > input:only-of-type {
+.ideditor .form-field-input-combo > input:only-of-type {
     border-radius: 0 0 4px 4px;
 }
-.form-field-input-combo.empty-combobox input,
-.form-field-input-multicombo .empty-combobox input {
+.ideditor .form-field-input-combo.empty-combobox input,
+.ideditor .form-field-input-multicombo .empty-combobox input {
     padding-right: 10px;
     padding-left: 10px;
 }
-.form-field-input-combo.empty-combobox .combobox-caret,
-.form-field-input-multicombo .empty-combobox .combobox-caret {
+.ideditor .form-field-input-combo.empty-combobox .combobox-caret,
+.ideditor .form-field-input-multicombo .empty-combobox .combobox-caret {
     display: none;
 }
 
-.form-field-input-multicombo ul.chiplist {
+.ideditor .form-field-input-multicombo ul.chiplist {
     padding: 5px 8px 5px 8px;
     background: #fff;
     display: block;
@@ -4522,7 +4499,7 @@ a.hide-toggle {
     width: 100%;
 }
 
-.form-field-input-multicombo li {
+.ideditor .form-field-input-multicombo li {
     display: inline-flex;
     flex-flow: row nowrap;
     align-items: center;
@@ -4530,42 +4507,42 @@ a.hide-toggle {
     margin-top: 3px;
     border-radius: 4px;
 }
-[dir='ltr'] .form-field-input-multicombo li {
+.ideditor[dir='ltr'] .form-field-input-multicombo li {
     margin-right: 6px;
 }
-[dir='rtl'] .form-field-input-multicombo li {
+.ideditor[dir='rtl'] .form-field-input-multicombo li {
     margin-left: 6px;
 }
 
-.form-field-input-multicombo li.chip {
+.ideditor .form-field-input-multicombo li.chip {
     background-color: #eff2f7;
     border: 1px solid #ccd5e3;
     line-height: 25px;
     max-width: 100%;
 }
-[dir='ltr'] .form-field-input-multicombo li.chip {
+.ideditor[dir='ltr'] .form-field-input-multicombo li.chip {
     padding: 2px 0px 2px 5px;
 }
-[dir='rtl'] .form-field-input-multicombo li.chip {
+.ideditor[dir='rtl'] .form-field-input-multicombo li.chip {
     padding: 2px 5px 2px 0px;
 }
-.form-field-input-multicombo li.chip.draggable {
+.ideditor .form-field-input-multicombo li.chip.draggable {
     cursor: grab;
 }
-.form-field-input-multicombo li.chip.dragging {
+.ideditor .form-field-input-multicombo li.chip.dragging {
     opacity: 0.75;
     z-index: 3000;
     cursor: grabbing;
 }
 
-.form-field-input-multicombo li.chip span {
+.ideditor .form-field-input-multicombo li.chip span {
     display: block;
     flex: 1 1 auto;
     overflow: hidden;
     word-wrap: break-word;
 }
 
-.form-field-input-multicombo a {
+.ideditor .form-field-input-multicombo a {
     font-family: Arial, Helvetica, sans-serif !important;
     font-size: 16px !important;
     padding: 0px 5px 0px 5px;
@@ -4577,76 +4554,76 @@ a.hide-toggle {
     flex: 0 0 auto;
 }
 
-.form-field-input-multicombo .input-wrap {
+.ideditor .form-field-input-multicombo .input-wrap {
     border: 1px solid #ddd;
     width: 100px;
     height: 31px;
 }
-.form-field-input-multicombo input {
+.ideditor .form-field-input-multicombo input {
     border: none;
     width: 100%;
     height: 100%;
 }
 
-.form-field-input-multicombo input:focus {
+.ideditor .form-field-input-multicombo input:focus {
     border-radius: 4px !important;
 }
 
-.form-field-input-multicombo .full-line-chips li.chip {
+.ideditor .form-field-input-multicombo .full-line-chips li.chip {
     width: 100%;
 }
-.form-field-input-multicombo .full-line-chips .input-wrap {
+.ideditor .form-field-input-multicombo .full-line-chips .input-wrap {
     width: auto;
 }
 
 
 /* Field - Text / Numeric
 ------------------------------------------------------- */
-.form-field-input-text > input:only-of-type,
-.form-field-input-tel > input:only-of-type,
-.form-field-input-email > input:only-of-type,
-.form-field-input-url > input:only-of-type {
+.ideditor .form-field-input-text > input:only-of-type,
+.ideditor .form-field-input-tel > input:only-of-type,
+.ideditor .form-field-input-email > input:only-of-type,
+.ideditor .form-field-input-url > input:only-of-type {
     border-radius: 0 0 4px 4px;
 }
-.form-field-input-number > input:only-of-type {
+.ideditor .form-field-input-number > input:only-of-type {
     border-radius: 0 0 0 4px;
 }
-[dir='rtl'] .form-field-input-number > input:only-of-type {
+.ideditor[dir='rtl'] .form-field-input-number > input:only-of-type {
     border-radius: 0 0 4px 0;
 }
-.form-field-input-number > button:last-of-type {
+.ideditor .form-field-input-number > button:last-of-type {
     border-radius: 0 0 4px 0;
 }
-[dir='rtl'] .form-field-input-number > button:last-of-type {
+.ideditor[dir='rtl'] .form-field-input-number > button:last-of-type {
     border-radius: 0 0 0 4px;
 }
 
-[dir='ltr'] .form-field-input-identifier > input:last-child,
-[dir='rtl'] .form-field-input-identifier > input:first-child,
-[dir='ltr'] .form-field-input-identifier > button {
+.ideditor[dir='ltr'] .form-field-input-identifier > input:last-child,
+.ideditor[dir='rtl'] .form-field-input-identifier > input:first-child,
+.ideditor[dir='ltr'] .form-field-input-identifier > button {
     border-bottom-right-radius: 4px;
 }
-[dir='ltr'] .form-field-input-identifier > input:first-child,
-[dir='rtl'] .form-field-input-identifier > input:last-child,
-[dir='rtl'] .form-field-input-identifier > button {
+.ideditor[dir='ltr'] .form-field-input-identifier > input:first-child,
+.ideditor[dir='rtl'] .form-field-input-identifier > input:last-child,
+.ideditor[dir='rtl'] .form-field-input-identifier > button {
     border-bottom-left-radius: 4px;
 }
 
 /* draw the up/down on the buttons */
-.form-field-input-number button.decrement::after,
-.form-field-input-number button.increment::after {
+.ideditor .form-field-input-number button.decrement::after,
+.ideditor .form-field-input-number button.increment::after {
     content: "";
     height: 0; width: 0;
     position: absolute;
     left: 0; right: 0; bottom: 0; top: 0;
     margin: auto;
 }
-.form-field-input-number button.decrement::after {
+.ideditor .form-field-input-number button.decrement::after {
     border-top: 5px solid #ccc;
     border-left: 5px solid transparent;
     border-right: 5px solid transparent;
 }
-.form-field-input-number button.increment::after {
+.ideditor .form-field-input-number button.increment::after {
     border-bottom: 5px solid #ccc;
     border-left: 5px solid transparent;
     border-right: 5px solid transparent;
@@ -4655,7 +4632,7 @@ a.hide-toggle {
 
 /* Field - Checkbox
 ------------------------------------------------------- */
-.form-field-input-check {
+.ideditor .form-field-input-check {
     display: flex;
     align-items: center;
     background: #fff;
@@ -4665,51 +4642,51 @@ a.hide-toggle {
     border-top: 0;
     cursor: pointer;
 }
-.form-field-input-check > input[type="checkbox"] {
+.ideditor .form-field-input-check > input[type="checkbox"] {
     flex: 0 1 auto;
     min-height: 20px;
     width: 20px;
     margin-top: 0;
 }
-.form-field-input-check > span {
+.ideditor .form-field-input-check > span {
     flex: 1 1 auto;
 }
-.form-field-input-check > .reverser.button {
+.ideditor .form-field-input-check > .reverser.button {
     flex: 0 1 auto;
     background-color: #eff2f7;
     border: 1px solid #ccd5e3;
     border-radius: 2px;
     padding: 0px 8px;
 }
-[dir='ltr'] .form-field-input-check > .reverser.button {
+.ideditor[dir='ltr'] .form-field-input-check > .reverser.button {
     padding-right: 2px;
 }
-[dir='rtl'] .form-field-input-check > .reverser.button {
+.ideditor[dir='rtl'] .form-field-input-check > .reverser.button {
     padding-left: 2px;
 }
-.form-field-input-check > .reverser.button.hide {
+.ideditor .form-field-input-check > .reverser.button.hide {
     display: none;
 }
 
-.form-field-input-check:hover {
+.ideditor .form-field-input-check:hover {
     background: #f1f1f1;
 }
-.form-field-input-check .set {
+.ideditor .form-field-input-check .set {
     color: inherit;
 }
-.form-field-input-check label:not(.set) input[type="checkbox"] {
+.ideditor .form-field-input-check label:not(.set) input[type="checkbox"] {
     opacity: .5;
 }
 
 
 /* Field - Radio button
 ------------------------------------------------------- */
-.form-field-input-radio {
+.ideditor .form-field-input-radio {
     flex: 1 1 auto;
     display: flex;
     flex-flow: row wrap;
 }
-.form-field-input-radio > label {
+.ideditor .form-field-input-radio > label {
     flex: 1 1 auto;
     display: flex;
     flex-flow: row nowrap;
@@ -4720,23 +4697,23 @@ a.hide-toggle {
     color: #7092ff;
     cursor: pointer;
 }
-.form-field-input-radio > label:last-child {
+.ideditor .form-field-input-radio > label:last-child {
     border-radius: 0 0 4px 4px;
 }
-.form-field-input-radio > label:hover {
+.ideditor .form-field-input-radio > label:hover {
     background-color: #ececec;
 }
-.form-field-input-radio > label.active {
+.ideditor .form-field-input-radio > label.active {
     background-color: #e8ebff;
 }
-.form-field-input-radio > label:not(:last-of-type) {
+.ideditor .form-field-input-radio > label:not(:last-of-type) {
     border-bottom: 1px solid #ccc;
 }
-.form-field-input-radio > label > input[type="radio"] {
+.ideditor .form-field-input-radio > label > input[type="radio"] {
     flex: 0 1 auto;
     width: 20px;
 }
-.form-field-input-radio > label > span {
+.ideditor .form-field-input-radio > label > span {
     flex: 1 1 auto;
     overflow: hidden;
     white-space: nowrap;
@@ -4744,8 +4721,8 @@ a.hide-toggle {
 }
 
 /* Hide placeholder for radio buttons if another is active, or not in hover state */
-.form-field-input-radio label.active ~ .placeholder,
-.form-field-input-radio .placeholder {
+.ideditor .form-field-input-radio label.active ~ .placeholder,
+.ideditor .form-field-input-radio .placeholder {
     padding: 0;
     opacity: 0;
     width: 0;
@@ -4757,19 +4734,19 @@ a.hide-toggle {
 
 /* Field - Maxspeed
 ------------------------------------------------------- */
-.form-field-input-maxspeed > input:first-of-type {
+.ideditor .form-field-input-maxspeed > input:first-of-type {
     border-radius: 0 0 0 4px;
 }
-[dir='rtl'] .form-field-input-maxspeed > input:first-of-type {
+.ideditor[dir='rtl'] .form-field-input-maxspeed > input:first-of-type {
     border-radius: 0 0 4px 0;
 }
-.form-field-input-maxspeed > input:last-of-type {  /* unit field */
+.ideditor .form-field-input-maxspeed > input:last-of-type {  /* unit field */
     flex: 0 1 80px;
     width: 80px;
     border-left: 0;
     border-radius: 0 0 4px 0;
 }
-[dir='rtl'] .form-field-input-maxspeed > input:last-of-type {
+.ideditor[dir='rtl'] .form-field-input-maxspeed > input:last-of-type {
     border-right: 0;
     border-radius: 0 0 0 4px;
 }
@@ -4777,40 +4754,40 @@ a.hide-toggle {
 
 /* Field - Localized Name
 ------------------------------------------------------- */
-.form-field-input-localized > input.localized-main {
+.ideditor .form-field-input-localized > input.localized-main {
     border-radius: 0 0 0 4px;
 }
-[dir='rtl'] .form-field-input-localized > input.localized-main {
+.ideditor[dir='rtl'] .form-field-input-localized > input.localized-main {
     border-radius: 0 0 4px 0;
 }
-.form-field-input-localized > button.localized-add {
+.ideditor .form-field-input-localized > button.localized-add {
     border-radius: 0 0 4px 0;
 }
-[dir='rtl'] .form-field-input-localized > button.localized-add {
+.ideditor[dir='rtl'] .form-field-input-localized > button.localized-add {
     border-radius: 0 0 0 4px;
 }
 
-.form-field-input-localized button.localized-add.disabled,
-.form-field-input-localized input.localized-main.disabled,
-.form-field-input-localized input.localized-lang.disabled,
-.form-field-input-localized input.localized-value.disabled {
+.ideditor .form-field-input-localized button.localized-add.disabled,
+.ideditor .form-field-input-localized input.localized-main.disabled,
+.ideditor .form-field-input-localized input.localized-lang.disabled,
+.ideditor .form-field-input-localized input.localized-value.disabled {
     color: #777;
     background-color: #eee;
     cursor: not-allowed;
 }
 
 /* nested subfields for name in different languages */
-.localized-multilingual {
+.ideditor .localized-multilingual {
     padding: 0 10px;
     flex-basis: 100%;
 }
-.localized-multilingual .entry {
+.ideditor .localized-multilingual .entry {
     position: relative;
     overflow: hidden;
 }
 
 /* draws a little line connecting the multilingual field up to the name field */
-.localized-multilingual .entry::before {
+.ideditor .localized-multilingual .entry::before {
     content: "";
     display: block;
     position: absolute;
@@ -4823,12 +4800,12 @@ a.hide-toggle {
     margin: auto;
 }
 
-.localized-multilingual .entry .localized-lang {
+.ideditor .localized-multilingual .entry .localized-lang {
     border-radius: 0;
     border-top-width: 0;
     width: 100%;
 }
-.localized-multilingual .entry .localized-value {
+.ideditor .localized-multilingual .entry .localized-value {
     border-top-width: 0;
     border-radius: 0 0 4px 4px;
     width: 100%;
@@ -4837,7 +4814,7 @@ a.hide-toggle {
 
 /* Field - Address
 ------------------------------------------------------- */
-.form-field-input-address {
+.ideditor .form-field-input-address {
     flex: 1 1 auto;
     display: flex;
     flex-flow: row wrap;
@@ -4845,95 +4822,95 @@ a.hide-toggle {
     border-top: 0px;
 }
 
-.addr-row {
+.ideditor .addr-row {
     flex: 1 1 auto;
     display: flex;
     width: 100%;
     min-height: 30px;
 }
 
-.addr-row > input {
+.ideditor .addr-row > input {
     flex: 1 1 auto;
     border-radius: 0;
     border-right: 0;
     border-bottom: 0;
 }
-[dir='rtl'] .addr-row input {
+.ideditor[dir='rtl'] .addr-row input {
     border-right: 1px solid #ccc;
     border-left: 0;
 }
 
-.addr-row:first-of-type input {
+.ideditor .addr-row:first-of-type input {
     border-top: 0;
 }
-.addr-row input:first-of-type {
+.ideditor .addr-row input:first-of-type {
     border-left: 0;
 }
-[dir='rtl'] .addr-row input:first-of-type {
+.ideditor[dir='rtl'] .addr-row input:first-of-type {
     border-right: 0;
 }
-.addr-row:last-of-type input:first-of-type {
+.ideditor .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 {
+.ideditor[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 {
+.ideditor .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 {
+.ideditor[dir='rtl'] .addr-row:last-of-type input:last-of-type {
     border-radius: 0 0 0 4px;
 }
 
 
 /* Field - Wikipedia
 ------------------------------------------------------- */
-.form-field-input-wikipedia {
+.ideditor .form-field-input-wikipedia {
     display: flex;
     flex-flow: row wrap;
     flex: 1 1 auto;
 }
 
-.wiki-lang-container,
-.wiki-title-container {
+.ideditor .wiki-lang-container,
+.ideditor .wiki-title-container {
     display: flex;
     flex-flow: row nowrap;
     flex: 1 1 auto;
     width: 100%;
 }
 
-.wiki-lang-container > input.wiki-lang,
-.wiki-title-container > input.wiki-title {
+.ideditor .wiki-lang-container > input.wiki-lang,
+.ideditor .wiki-title-container > input.wiki-title {
     flex: 1 1 auto;
     border-top: 0;
     border-radius: 0;
 }
-.wiki-title-container > input.wiki-title {
+.ideditor .wiki-title-container > input.wiki-title {
     border-radius: 0 0 0 4px;
 }
-[dir='rtl'] .wiki-title-container > input.wiki-title {
+.ideditor[dir='rtl'] .wiki-title-container > input.wiki-title {
     border-radius: 0 0 4px 0;
 }
-.wiki-title-container > button.wiki-link,
-.form-field-wikidata ul.rows li:last-child button.form-field-button:last-child {
+.ideditor .wiki-title-container > button.wiki-link,
+.ideditor .form-field-wikidata ul.rows li:last-child button.form-field-button:last-child {
     border-radius: 0 0 4px 0;
 }
-[dir='rtl'] .wiki-title-container > button.wiki-link,
-[dir='rtl'] .form-field-wikidata ul.rows li:last-child button.form-field-button:last-child {
+.ideditor[dir='rtl'] .wiki-title-container > button.wiki-link,
+.ideditor[dir='rtl'] .form-field-wikidata ul.rows li:last-child button.form-field-button:last-child {
     border-radius: 0 0 0 4px;
 }
 
 
 /* Field - Restriction Editor
 ------------------------------------------------------- */
-.form-field-input-restrictions {
+.ideditor .form-field-input-restrictions {
     display: block;
     border: 1px solid #ccc;
     border-top: 0;
     border-radius: 0 0 4px 4px;
 }
 
-.form-field-input-restrictions .restriction-controls-container {
+.ideditor .form-field-input-restrictions .restriction-controls-container {
     background-color: #fff;
     width: 100%;
     padding: 5px;
@@ -4941,7 +4918,7 @@ a.hide-toggle {
     border-radius: 0 0 4px 4px;
 }
 
-.restriction-controls-container .restriction-controls {
+.ideditor .restriction-controls-container .restriction-controls {
     display: table;
     -moz-user-select: none;
     -webkit-user-select: none;
@@ -4949,45 +4926,45 @@ a.hide-toggle {
     user-select: none;
 }
 
-.restriction-controls .restriction-control {
+.ideditor .restriction-controls .restriction-control {
     display: table-row;
     padding: 5px 10px;
     height: 25px;
 }
 
-.restriction-control input,
-.restriction-control span {
+.ideditor .restriction-control input,
+.ideditor .restriction-control span {
     display: table-cell;
     text-align: start;
     padding: 0px 5px;
 }
 
-.restriction-control span.restriction-control-label {
+.ideditor .restriction-control span.restriction-control-label {
     text-align: end;
 }
 
-.restriction-control input {
+.ideditor .restriction-control input {
     width: 60px;
     padding: 0;
     margin: 0px 5px;
     vertical-align: middle;
 }
 
-.form-field-input-restrictions .restriction-container {
+.ideditor .form-field-input-restrictions .restriction-container {
     position: relative;
     height: 370px;
 }
 /* zero width space, so container takes up space */
-.form-field-input-restrictions .restriction-container:after {
+.ideditor .form-field-input-restrictions .restriction-container:after {
     content: '\200b';
 }
 
-.form-field-input-restrictions svg.surface {
+.ideditor .form-field-input-restrictions svg.surface {
     width: 100%;
     height: 100%;
 }
 
-.restriction-container .restriction-help {
+.ideditor .restriction-container .restriction-help {
     z-index: 1;
     position: absolute;
     top: 0;
@@ -5005,42 +4982,42 @@ a.hide-toggle {
     user-select: none;
 }
 
-.restriction-help span {
+.ideditor .restriction-help span {
     margin: 2px;
 }
 
-.restriction-help .qualifier {
+.ideditor .restriction-help .qualifier {
     color: #666;
     font-weight: bold;
 }
-.restriction-help .qualifier.allow {
+.ideditor .restriction-help .qualifier.allow {
     color: #8b5;
 }
-.restriction-help .qualifier.restrict {
+.ideditor .restriction-help .qualifier.restrict {
     color: #d53;
 }
-.restriction-help .qualifier.only {
+.ideditor .restriction-help .qualifier.only {
     color: #78f;
 }
 
 
 /* Field - Changeset Comment
 ------------------------------------------------------- */
-.form-field-comment:not(.present) #preset-input-comment {
+.ideditor .form-field-comment:not(.present) #preset-input-comment {
     border-color: rgb(230, 100, 100);
 }
-.form-field-comment:not(.present) .field-label {
+.ideditor .form-field-comment:not(.present) .field-label {
     border-color: rgb(230, 100, 100);
     background: rgba(230, 100, 100, 0.2);
 }
-.form-field-comment:not(.present) button {
+.ideditor .form-field-comment:not(.present) button {
     border-color: rgb(230, 100, 100);
 }
 
 
 /* Field - Combobox
 ------------------------------------------------------- */
-div.combobox {
+.ideditor div.combobox {
     z-index: 9999;
     display: none;
     box-shadow: 0 4px 10px 1px rgba(0,0,0,.2);
@@ -5053,7 +5030,7 @@ div.combobox {
     border-radius: 0 0 4px 4px;
 }
 
-.combobox a {
+.ideditor .combobox a {
     display: block;
     padding: 5px 10px;
     border-top: 1px solid #ccc;
@@ -5062,17 +5039,17 @@ div.combobox {
     overflow: hidden;
 }
 
-.combobox a.selected,
-.combobox a:hover {
+.ideditor .combobox a.selected,
+.ideditor .combobox a:hover {
     background: #ececec;
 }
 
-.combobox a:first-child {
+.ideditor .combobox a:first-child {
     border-top: 0;
     padding: 4px 10px;
 }
 
-.combobox-caret {
+.ideditor .combobox-caret {
     display: inline-block;
     position: relative;
     height: 30px;
@@ -5081,12 +5058,12 @@ div.combobox {
     vertical-align: top;
     cursor: pointer;
 }
-[dir='rtl'] .combobox-caret {
+.ideditor[dir='rtl'] .combobox-caret {
   margin-left: 0;
   margin-right: -30px;
 }
 
-.combobox-caret::after {
+.ideditor .combobox-caret::after {
     content: "";
     height: 0; width: 0;
     position: absolute;
@@ -5100,7 +5077,7 @@ div.combobox {
 
 /* Field Help
 ------------------------------------------------------- */
-.field-help-body {
+.ideditor .field-help-body {
     display: block;
     position: absolute;
     top: 0;
@@ -5116,117 +5093,117 @@ div.combobox {
     box-shadow: 0 0 30px 5px rgba(0,0,0,.4);
 }
 
-.field-help-title h2 {
+.ideditor .field-help-title h2 {
     padding: 10px;
     margin-bottom: 0px;
     font-size: 17px;
 }
-.field-help-title button {
+.ideditor .field-help-title button {
     width: 45px;
     height: 55px;
     border-radius: 0;
 }
 
-.field-help-nav {
+.ideditor .field-help-nav {
     font-size: 13px;
     font-weight: bold;
     margin-bottom: 10px;
 }
-.field-help-nav-item {
+.ideditor .field-help-nav-item {
     display: inline-block;
     padding: 5px 10px;
     cursor: pointer;
     color: #666;
 }
-.field-help-nav-item.active {
+.ideditor .field-help-nav-item.active {
     color: #7092ff;
     border-bottom: 2px solid;
 }
-.field-help-nav-item:hover {
+.ideditor .field-help-nav-item:hover {
     color: #597be7;
     background-color: #efefef;
 }
 
-.field-help-content {
+.ideditor .field-help-content {
     padding: 10px;
     overflow-y: auto;
     overflow-x: hidden;
 }
-.field-help-content h3 {
+.ideditor .field-help-content h3 {
     font-size: 12px;
     margin-bottom: 5px;
 }
-.field-help-content p {
+.ideditor .field-help-content p {
     margin-bottom: 15px;
 }
-.field-help-content ul li {
+.ideditor .field-help-content ul li {
     list-style: inside;
     margin-bottom: 5px;
 }
 
-.field-help-content .field-help-image {
+.ideditor .field-help-content .field-help-image {
     width: 100%;
     margin-bottom: 15px;
 }
 
-.field-help-content svg.turn {
+.ideditor .field-help-content svg.turn {
     width: 40px;
     height: 20px;
 }
-.field-help-content svg.shadow {
+.ideditor .field-help-content svg.shadow {
     opacity: 0.7;
     width: 60px;
     height: 20px;
 }
-.field-help-content svg.from {
+.ideditor .field-help-content svg.from {
     color: #777;
 }
-.field-help-content svg.allow {
+.ideditor .field-help-content svg.allow {
     color: #5b3;
 }
-.field-help-content svg.restrict {
+.ideditor .field-help-content svg.restrict {
     color: #d53;
 }
-.field-help-content svg.only {
+.ideditor .field-help-content svg.only {
     color: #68f;
 }
 
-.field-help-content p.from_shadow,
-.field-help-content p.allow_shadow,
-.field-help-content p.restrict_shadow,
-.field-help-content p.allow_turn,
-.field-help-content p.restrict_turn {
+.ideditor .field-help-content p.from_shadow,
+.ideditor .field-help-content p.allow_shadow,
+.ideditor .field-help-content p.restrict_shadow,
+.ideditor .field-help-content p.allow_turn,
+.ideditor .field-help-content p.restrict_turn {
     margin-bottom: 5px;
 }
 
 
 /* More Fields dropdown
 ------------------------------------------------------- */
-.more-fields {
+.ideditor .more-fields {
     padding: 0 20px 20px 20px;
     font-weight: bold;
 }
-.changeset-editor .more-fields {
+.ideditor .changeset-editor .more-fields {
     padding: 15px 20px 0 20px;
 }
 
-.more-fields label {
+.ideditor .more-fields label {
     display: flex;
     flex-flow: row nowrap;
     justify-content: space-between;
     align-items: center;
 }
 
-.more-fields input {
+.ideditor .more-fields input {
     margin-left: 10px;
     flex: 1 1 50%;
 }
-[dir='rtl'] .more-fields input {
+.ideditor[dir='rtl'] .more-fields input {
     margin-left: auto;
     margin-right: 10px;
 }
 
-.form-field-input-wrap .label {
+.ideditor .form-field-input-wrap .label {
     height: 30px;
     background: #f6f6f6;
     padding: 5px 10px;
@@ -5235,14 +5212,14 @@ div.combobox {
 
 /* Raw Tag Editor
 ------------------------------------------------------- */
-.raw-tag-options {
+.ideditor .raw-tag-options {
     display: flex;
     flex-flow: row nowrap;
     flex-direction: row-reverse;
     margin-top: -25px;
     padding: 0 3px;
 }
-button.raw-tag-option {
+.ideditor button.raw-tag-option {
     flex: 0 0 20px;
     height: 20px;
     width: 20px;
@@ -5250,22 +5227,22 @@ button.raw-tag-option {
     color: #eee;
     margin: 0 3px;
 }
-button.raw-tag-option:focus,
-button.raw-tag-option:hover,
-button.raw-tag-option.active {
+.ideditor button.raw-tag-option:focus,
+.ideditor button.raw-tag-option:hover,
+.ideditor button.raw-tag-option.active {
     color: #fff;
     background: #597be7;
 }
-button.raw-tag-option.selected {
+.ideditor button.raw-tag-option.selected {
     color: #fff;
     background: #7092ff;
 }
-button.raw-tag-option svg.icon {
+.ideditor button.raw-tag-option svg.icon {
     width: 14px;
     height: 14px;
     vertical-align: text-bottom;
 }
-[dir='ltr'] button.raw-tag-option-list {
+.ideditor[dir='ltr'] button.raw-tag-option-list {
     -moz-transform: scaleX(-1);
     -o-transform: scaleX(-1);
     -webkit-transform: scaleX(-1);
@@ -5275,43 +5252,43 @@ button.raw-tag-option svg.icon {
 }
 
 
-.tag-text {
+.ideditor .tag-text {
     width: 100%;
     height: 100%;
     font-family: monospace;
     white-space: pre;
 }
 
-.tag-text,
-.tag-list {
+.ideditor .tag-text,
+.ideditor .tag-list {
     margin-top: 10px;
 }
-.tag-row {
+.ideditor .tag-row {
     width: 100%;
     position: relative;
 }
-.tag-row .inner-wrap {
+.ideditor .tag-row .inner-wrap {
     display: flex;
     flex-flow: row nowrap;
     width: 100%;
     position: relative;
 }
-.tag-row .key-wrap,
-.tag-row .value-wrap {
+.ideditor .tag-row .key-wrap,
+.ideditor .tag-row .value-wrap {
     flex: 1 1 50%;
 }
 
-.tag-text.readonly,
-.tag-row.readonly,
-.tag-row.readonly input.key,
-.tag-row.readonly input.value,
-.tag-row.readonly button.remove {
+.ideditor .tag-text.readonly,
+.ideditor .tag-row.readonly,
+.ideditor .tag-row.readonly input.key,
+.ideditor .tag-row.readonly input.value,
+.ideditor .tag-row.readonly button.remove {
     color: #777;
     background-color: #eee;
     cursor: not-allowed;
 }
 
-.tag-row input {
+.ideditor .tag-row input {
     height: 31px;
     border: 0;
     border-radius: 0;
@@ -5319,37 +5296,37 @@ button.raw-tag-option svg.icon {
     border-left: 1px solid #ccc;
     width: 100%;
 }
-[dir='rtl'] .tag-row input {
+.ideditor[dir='rtl'] .tag-row input {
     border-left: none;
     border-right: 1px solid #ccc;
 }
 
 
-.tag-row input.key {
+.ideditor .tag-row input.key {
     font-weight: bold;
     background-color: #f6f6f6;
 }
 
-.tag-row input.value {
+.ideditor .tag-row input.value {
     border-right: 1px solid #ccc;
 }
-[dir='rtl'] .tag-row input.value {
+.ideditor[dir='rtl'] .tag-row input.value {
     border-left: 1px solid #ccc;
 }
 
-.tag-row:first-child input.key {
+.ideditor .tag-row:first-child input.key {
     border-top: 1px solid #ccc;
     border-top-left-radius: 4px;
 }
-[dir='rtl'] .tag-row:first-child input.key {
+.ideditor[dir='rtl'] .tag-row:first-child input.key {
     border-top-left-radius: 0;
     border-top-right-radius: 4px;
 }
 
-.tag-row:first-child input.value {
+.ideditor .tag-row:first-child input.value {
     border-top: 1px solid #ccc;
 }
-.tag-row button {
+.ideditor .tag-row button {
     flex: 0 0 32px;
     height: 31px;
     width: 32px;
@@ -5357,98 +5334,98 @@ button.raw-tag-option svg.icon {
     border-top-width: 0;
     border-left-width: 0;
 }
-[dir='rtl'] .tag-row button {
+.ideditor[dir='rtl'] .tag-row button {
     border-left-width: 1px;
     border-right-width: 0;
 }
 
-.tag-row button:hover {
+.ideditor .tag-row button:hover {
     background: #f1f1f1;
 }
-.tag-row button .icon {
+.ideditor .tag-row button .icon {
     opacity: .5;
 }
-.tag-row:first-child button {
+.ideditor .tag-row:first-child button {
     border-top-width: 1px;
 }
 
-.tag-row:first-child .tag-reference-button {
+.ideditor .tag-row:first-child .tag-reference-button {
     border-top-right-radius: 4px;
 }
-[dir='rtl'] .tag-row:first-child .tag-reference-button {
+.ideditor[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 {
+.ideditor .tag-row:last-child .tag-reference-button {
     border-bottom-right-radius: 4px;
 }
-[dir='rtl'] .tag-row:last-child .tag-reference-button {
+.ideditor[dir='rtl'] .tag-row:last-child .tag-reference-button {
     border-bottom-left-radius: 4px;
     border-bottom-right-radius: 0;
 }
 
-.tag-row .tag-reference-button {
+.ideditor .tag-row .tag-reference-button {
     border-radius: 0;
 }
-[dir='rtl'] .tag-row .tag-reference-button {
+.ideditor[dir='rtl'] .tag-row .tag-reference-button {
     border-left-width: 1px;
     border-right-width: 0;
 }
 
 /* Tag reference */
-.tag-reference-loading {
+.ideditor .tag-reference-loading {
     background-color: #f5f5f5;
 }
-.tag-reference-loading .icon {
+.ideditor .tag-reference-loading .icon {
     background-image: url(<%= asset_path("iD/img/mini-loader.gif") %>);
     background-position: 0 0;
 }
 
-.tag-reference-body {
+.ideditor .tag-reference-body {
     flex: 1 1 auto;
     width: 100%;
     overflow: hidden;
     display: none;
     padding-top: 10px;
 }
-.tag-reference-body.expanded {
+.ideditor .tag-reference-body.expanded {
     padding-bottom: 10px;
     display: inline-block;
 }
-.tag-reference-description {
+.ideditor .tag-reference-description {
 
 }
-.tag-reference-link {
+.ideditor .tag-reference-link {
     display: block;
 }
 
-img.tag-reference-wiki-image {
+.ideditor img.tag-reference-wiki-image {
     float: right;
     width: 33.3333%;
     border-radius: 4px;
     margin: 0 0 0 5px;
 }
-[dir='rtl'] img.tag-reference-wiki-image {
+.ideditor[dir='rtl'] img.tag-reference-wiki-image {
     float: left;
     margin: 0 5px 0 0;
 }
 
-.preset-list .tag-reference-body {
+.ideditor .preset-list .tag-reference-body {
     position: relative;
     width: 100%;
 }
-.raw-tag-editor .tag-reference-body {
+.ideditor .raw-tag-editor .tag-reference-body {
     width: 100%;
 }
-.raw-tag-editor .tag-row.readonly .tag-reference-body {
+.ideditor .raw-tag-editor .tag-row.readonly .tag-reference-body {
     background: #f6f6f6;
     color: #333;
 }
-.raw-tag-editor .tag-row:not(:last-child) .tag-reference-body.expanded {
+.ideditor .raw-tag-editor .tag-row:not(:last-child) .tag-reference-body.expanded {
     border-bottom: 1px solid #ccc;
 }
-.raw-tag-editor .tag-row.readonly .tag-reference-body.expanded {
+.ideditor .raw-tag-editor .tag-row.readonly .tag-reference-body.expanded {
     border-top: 1px solid #ccc;
 }
 
@@ -5456,52 +5433,52 @@ img.tag-reference-wiki-image {
 /* Raw Member / Membership Editor
 ------------------------------------------------------- */
 
-.raw-member-editor .member-list,
-.raw-membership-editor .member-list {
+.ideditor .raw-member-editor .member-list,
+.ideditor .raw-membership-editor .member-list {
     padding-top: 10px;
 }
-.raw-member-editor .member-list li,
-.raw-membership-editor .member-list li {
+.ideditor .raw-member-editor .member-list li,
+.ideditor .raw-membership-editor .member-list li {
     position: relative;
     border-radius: 4px;
     margin: 0;
     padding-bottom: 10px;
 }
-.raw-member-editor .member-row .member-entity-name,
-.raw-membership-editor .member-row .member-entity-name {
+.ideditor .raw-member-editor .member-row .member-entity-name,
+.ideditor .raw-membership-editor .member-row .member-entity-name {
     font-weight: normal;
     padding-left: 10px;
 }
 
-[dir='rtl'] .raw-member-editor .member-row .member-entity-name,
-[dir='rtl'] .raw-membership-editor .member-row .member-entity-name {
+.ideditor[dir='rtl'] .raw-member-editor .member-row .member-entity-name,
+.ideditor[dir='rtl'] .raw-membership-editor .member-row .member-entity-name {
     padding-left:0;
     padding-right: 10px;
 }
 
-.form-field-input-member > input.member-role {
+.ideditor .form-field-input-member > input.member-role {
     border-radius: 0 0 0 4px;
 }
-[dir='rtl'] .form-field-input-member > input.member-role {
+.ideditor[dir='rtl'] .form-field-input-member > input.member-role {
     border-radius: 0 0 4px 0;
 }
 
-.member-incomplete .form-field-input-member > input.member-role,
-[dir='rtl'] .member-incomplete .form-field-input-member > input.member-role {
+.ideditor .member-incomplete .form-field-input-member > input.member-role,
+.ideditor[dir='rtl'] .member-incomplete .form-field-input-member > input.member-role {
     border-radius: 0 0 4px 4px;
 }
 
-.member-incomplete .member-delete {
+.ideditor .member-incomplete .member-delete {
     display: none;
 }
 
-.member-row-new .member-entity-input {
+.ideditor .member-row-new .member-entity-input {
     flex: 1 1 100%;
     border-radius: 4px 4px 0 0;
     border: 0;
 }
 
-.raw-member-editor .member-row.dragging {
+.ideditor .raw-member-editor .member-row.dragging {
     opacity: 0.75;
     z-index: 3000;
     /*
@@ -5512,12 +5489,12 @@ img.tag-reference-wiki-image {
 }
 
 /* preserve extra space at bottom of inspector to allow for dropdown options - #5280 */
-.raw-membership-editor.inspector-inner {
+.ideditor .raw-membership-editor.inspector-inner {
     margin-bottom: 150px;
 }
 
 /* hidden field to prevent user from tabbing out of the sidebar */
-input.key-trap {
+.ideditor input.key-trap {
     height: 0px;
     width: 0px;
     padding: 0px;
@@ -5526,32 +5503,32 @@ input.key-trap {
 
 
 /* add tag, add relation buttons */
-.add-row {
+.ideditor .add-row {
     display: flex;
     width: 100%;
     flex-flow: row nowrap;
 }
-.add-row .add-tag,
-.add-row .add-relation,
-.add-row .space-value {
+.ideditor .add-row .add-tag,
+.ideditor .add-row .add-relation,
+.ideditor .add-row .space-value {
     flex: 1 1 50%;
 }
-.add-row .space-buttons {
+.ideditor .add-row .space-buttons {
     flex: 0 0 62px;
 }
-.add-row button {
+.ideditor .add-row button {
     height: 30px;
     background: rgba(0,0,0,.5);
 }
-.add-row button:focus,
-.add-row button:hover {
+.ideditor .add-row button:focus,
+.ideditor .add-row button:hover {
     background: rgba(0,0,0,.8);
 }
 
-.add-tag {
+.ideditor .add-tag {
     border-radius: 0 0 4px 4px;
 }
-.add-relation {
+.ideditor .add-relation {
     margin-top: 10px;
     border-radius: 4px;
 }
@@ -5559,8 +5536,8 @@ input.key-trap {
 
 /* OSM Note / KeepRight Editors
 ------------------------------------------------------- */
-.note-header,
-.error-header {
+.ideditor .note-header,
+.ideditor .error-header {
     background-color: #f6f6f6;
     border-radius: 5px;
     border: 1px solid #ccc;
@@ -5569,8 +5546,8 @@ input.key-trap {
     align-items: center;
 }
 
-.note-header-icon,
-.error-header-icon {
+.ideditor .note-header-icon,
+.ideditor .error-header-icon {
     background-color: #fff;
     padding: 10px;
     flex: 0 0 62px;
@@ -5580,31 +5557,31 @@ input.key-trap {
     border-right: 1px solid #ccc;
     border-radius: 5px 0 0 5px;
 }
-[dir='rtl'] .note-header-icon,
-[dir='rtl'] .error-header-icon {
+.ideditor[dir='rtl'] .note-header-icon,
+.ideditor[dir='rtl'] .error-header-icon {
     border-right: unset;
     border-left: 1px solid #ccc;
     border-radius: 0 5px 5px 0;
 }
 
-.note-header-icon .icon-wrap,
-.error-header-icon .icon-wrap {
+.ideditor .note-header-icon .icon-wrap,
+.ideditor .error-header-icon .icon-wrap {
     position: absolute;
     top: 0px;
 }
-.preset-icon-28 {
+.ideditor .preset-icon-28 {
     position: absolute;
     top: 16px;
     left: 16px;
     margin: auto;
 }
-.preset-icon-28 .icon {
+.ideditor .preset-icon-28 .icon {
     width: 28px;
     height: 28px;
 }
 
-.note-header-label,
-.error-header-label {
+.ideditor .note-header-label,
+.ideditor .error-header-label {
     background-color: #f6f6f6;
     padding: 0 15px;
     flex: 1 1 100%;
@@ -5612,23 +5589,23 @@ input.key-trap {
     font-weight: bold;
     border-radius: 0 5px 5px 0;
 }
-[dir='rtl'] .note-header-label,
-[dir='rtl'] .error-header-label {
+.ideditor[dir='rtl'] .note-header-label,
+.ideditor[dir='rtl'] .error-header-label {
     border-radius: 5px 0 0 5px;
 }
 
-.note-category {
+.ideditor .note-category {
     margin: 20px 0px;
 }
 
-.comments-container {
+.ideditor .comments-container {
     background: #ececec;
     padding: 1px 10px;
     border-radius: 8px;
     margin-top: 20px;
 }
 
-.comment {
+.ideditor .comment {
     background-color: #fff;
     border-radius: 5px;
     border: 1px solid #ccc;
@@ -5636,95 +5613,95 @@ input.key-trap {
     display: flex;
     flex-flow: row nowrap;
 }
-.comment-avatar {
+.ideditor .comment-avatar {
     padding: 10px;
     flex: 0 0 62px;
 }
-.comment-avatar .icon.comment-avatar-icon {
+.ideditor .comment-avatar .icon.comment-avatar-icon {
     width: 40px;
     height: 40px;
     object-fit: cover;
     border: 1px solid #ccc;
     border-radius: 20px;
 }
-.comment-main {
+.ideditor .comment-main {
     padding: 10px 10px 10px 0;
     flex: 1 1 100%;
     flex-flow: column nowrap;
     overflow: hidden;
     overflow-wrap: break-word;
 }
-[dir='rtl'] .comment-main {
+.ideditor[dir='rtl'] .comment-main {
     padding: 10px 0 10px 10px;
 }
 
-.comment-metadata {
+.ideditor .comment-metadata {
     flex-flow: row nowrap;
     justify-content: space-between;
 }
-.comment-author {
+.ideditor .comment-author {
     font-weight: bold;
     color: #333;
 }
-.comment-date {
+.ideditor .comment-date {
     color: #aaa;
 }
-.comment-text {
+.ideditor .comment-text {
     color: #333;
     margin-top: 10px;
     overflow-y: auto;
     max-height: 250px;
 }
-.comment-text::-webkit-scrollbar {
+.ideditor .comment-text::-webkit-scrollbar {
     border-left: none;
 }
 
-.note-save,
-.error-save {
+.ideditor .note-save,
+.ideditor .error-save {
     padding-top: 20px;
 }
 
-.error-details {
+.ideditor .error-details {
     padding: 10px;
 }
-.error-details-container {
+.ideditor .error-details-container {
     background: #ececec;
     padding: 10px;
     margin-top: 20px;
     border-radius: 4px;
     border: 1px solid #ccc;
 }
-.error-details-description {
+.ideditor .error-details-description {
     margin-bottom: 10px;
 }
-.error-details-description-text::first-letter {
+.ideditor .error-details-description-text::first-letter {
     text-transform: capitalize;
 }
-[dir='rtl'] .error-details-description-text::first-letter {
+.ideditor[dir='rtl'] .error-details-description-text::first-letter {
     text-transform: none;  /* #5877 */
 }
 
-.note-save .new-comment-input,
-.error-save .new-comment-input {
+.ideditor .note-save .new-comment-input,
+.ideditor .error-save .new-comment-input {
     width: 100%;
     height: 100px;
     max-height: 300px;
     min-height: 100px;
 }
 
-.note-save .detail-section,
-.error-save .detail-section {
+.ideditor .note-save .detail-section,
+.ideditor .error-save .detail-section {
     margin: 10px 0;
 }
 
-.note-report {
+.ideditor .note-report {
     float: right;
 }
 
 
 /* Custom Data Editor
 ------------------------------------------------------- */
-.data-header {
+.ideditor .data-header {
     background-color: #f6f6f6;
     border-radius: 5px;
     border: 1px solid #ccc;
@@ -5733,7 +5710,7 @@ input.key-trap {
     align-items: center;
 }
 
-.data-header-icon {
+.ideditor .data-header-icon {
     background-color: #fff;
     padding: 10px;
     flex: 0 0 62px;
@@ -5743,18 +5720,18 @@ input.key-trap {
     border-right: 1px solid #ccc;
     border-radius: 5px 0 0 5px;
 }
-[dir='rtl'] .data-header-icon {
+.ideditor[dir='rtl'] .data-header-icon {
     border-right: unset;
     border-left: 1px solid #ccc;
     border-radius: 0 5px 5px 0;
 }
 
-.data-header-icon .icon-wrap {
+.ideditor .data-header-icon .icon-wrap {
     position: absolute;
     top: 0px;
 }
 
-.data-header-label {
+.ideditor .data-header-label {
     background-color: #f6f6f6;
     padding: 0 15px;
     flex: 1 1 100%;
@@ -5762,139 +5739,139 @@ input.key-trap {
     font-weight: bold;
     border-radius: 0 5px 5px 0;
 }
-[dir='rtl'] .data-header-label {
+.ideditor[dir='rtl'] .data-header-label {
     border-radius: 5px 0 0 5px;
 }
 
 /* custom data editor - no info/delete buttons */
-.data-editor.raw-tag-editor .tag-row button {
+.ideditor .data-editor.raw-tag-editor .tag-row button {
     display: none;
 }
-.data-editor.raw-tag-editor .tag-row .key-wrap,
-.data-editor.raw-tag-editor .tag-row .value-wrap {
+.ideditor .data-editor.raw-tag-editor .tag-row .key-wrap,
+.ideditor .data-editor.raw-tag-editor .tag-row .value-wrap {
     width: 50%;
 }
 
 
 /* Map Controls
 ------------------------------------------------------- */
-.map-controls {
+.ideditor .map-controls {
     right: 0;
     top: 141px;
     width: 40px;
     position: absolute;
     z-index: 100;
 }
-[dir='rtl'] .map-controls {
+.ideditor[dir='rtl'] .map-controls {
     left: 0;
     right: auto;
 }
 
-.map-control > button {
+.ideditor .map-control > button {
     position: relative;
     width: 40px;
     background: rgba(0,0,0,.5);
     border-radius: 0;
 }
 
-.map-control > button:not(.disabled):hover,
-.map-control > button:not(.disabled):focus {
+.ideditor .map-control > button:not(.disabled):hover,
+.ideditor .map-control > button:not(.disabled):focus {
     background: rgba(0, 0, 0, .8);
 }
 
-.map-control > button.active,
-.map-control > button.active:hover {
+.ideditor .map-control > button.active,
+.ideditor .map-control > button.active:hover {
     background: #7092ff;
 }
 
-.map-control > button.disabled .icon {
+.ideditor .map-control > button.disabled .icon {
     color: rgba(255, 255, 255, 0.5);
 }
 
 
 /* Fullscreen Button (disabled)
 ------------------------------------------------------- */
-div.full-screen {
+.ideditor div.full-screen {
     display: inline-block;
     width: 40px;
     margin-right: 10px;
     display: none;
 }
 
-div.full-screen .tooltip {
+.ideditor div.full-screen .tooltip {
     min-width: 160px;
 }
 
-div.full-screen > button, div.full-screen > button.active {
+.ideditor div.full-screen > button, .ideditor div.full-screen > button.active {
     width: 40px;
     height: 40px;
     background: transparent;
 }
 
-div.full-screen > button:hover {
+.ideditor div.full-screen > button:hover {
     background-color: rgba(0, 0, 0, .8);
 }
 
 
 /* Zoom Buttons
 ------------------------------------------------------- */
-.zoombuttons > button.zoom-in {
+.ideditor .zoombuttons > button.zoom-in {
     border-radius: 4px 0 0 0;
 }
-[dir='rtl'] .zoombuttons > button.zoom-in {
+.ideditor[dir='rtl'] .zoombuttons > button.zoom-in {
     border-radius: 0 4px 0 0;
 }
 
 
 /* Geolocate Button
 ------------------------------------------------------- */
-.geolocate-control {
+.ideditor .geolocate-control {
     margin-bottom: 10px;
 }
-.geolocate-control > button {
+.ideditor .geolocate-control > button {
     border-radius: 0 0 0 4px;
 }
-[dir='rtl'] .geolocate-control > button {
+.ideditor[dir='rtl'] .geolocate-control > button {
     border-radius: 0 0 4px 0;
 }
 
 
 /* Background / Map Data / Help Pane buttons
 ------------------------------------------------------- */
-.background-control > button {
+.ideditor .background-control > button {
     border-radius: 4px 0 0 0;
 }
-[dir='rtl'] .background-control > button {
+.ideditor[dir='rtl'] .background-control > button {
     border-radius: 0 4px 0 0;
 }
 
-.help-control > button {
+.ideditor .help-control > button {
     border-radius: 0 0 0 4px;
 }
-[dir='rtl'] .help-control > button {
+.ideditor[dir='rtl'] .help-control > button {
     border-radius: 0 0 4px 0;
 }
 
 
 /* Background / Map Data Settings
 ------------------------------------------------------- */
-.map-data-control,
-.background-control {
+.ideditor .map-data-control,
+.ideditor .background-control {
     position: relative;
 }
 
-.imagery-faq {
+.ideditor .imagery-faq {
     margin-bottom: 10px;
     white-space: nowrap;
 }
 
-.layer-list, .controls-list {
+.ideditor .layer-list, .ideditor .controls-list {
     margin-bottom: 10px;
     border: 1px solid #ccc;
     border-radius: 4px;
 }
 
-.layer-list > li {
+.ideditor .layer-list > li {
     height: 30px;
     background-color: #fff;
     color: #7092ff;
@@ -5902,334 +5879,334 @@ div.full-screen > button:hover {
     display: flex;
 }
 
-.layer-list:empty {
+.ideditor .layer-list:empty {
     display: none;
 }
 
-.layer-list > li:first-child {
+.ideditor .layer-list > li:first-child {
     border-radius: 3px 3px 0 0;
 }
-.layer-list > li:last-child {
+.ideditor .layer-list > li:last-child {
     border-radius: 0 0 3px 3px;
 }
-.layer-list > li:only-child {
+.ideditor .layer-list > li:only-child {
     border-radius: 3px;
 }
-.layer-list li:not(:last-child) {
+.ideditor .layer-list li:not(:last-child) {
     border-bottom: 1px solid #ccc;
 }
-.layer-list li:hover {
+.ideditor .layer-list li:hover {
     background-color: #ececec;
 }
 
-.layer-list li.active button,
-.layer-list li.switch button,
-.layer-list li.active,
-.layer-list li.switch {
+.ideditor .layer-list li.active button,
+.ideditor .layer-list li.switch button,
+.ideditor .layer-list li.active,
+.ideditor .layer-list li.switch {
     background: #e8ebff;
 }
 
-.layer-list li.best > div.best {
+.ideditor .layer-list li.best > div.best {
     padding: 5px;
     flex: 0 0 auto;
 }
 
-[dir='rtl'] .list-item-data-browse svg {
+.ideditor[dir='rtl'] .list-item-data-browse svg {
     transform: rotateY(180deg);
 }
 
 /* make sure tooltip fits in map-control panel */
 /* if too wide, placement will be wrong the first time it displays */
-.layer-list li.best .popover-inner {
+.ideditor .layer-list li.best .popover-inner {
     max-width: 160px;
 }
 
-.layer-list label {
+.ideditor .layer-list label {
     padding: 5px 10px;
     cursor: pointer;
     flex: 1 1 auto;
 }
 
-[dir='ltr'] .layer-list .indented label {
+.ideditor[dir='ltr'] .layer-list .indented label {
     padding-left: 24px;
 }
-[dir='rtl'] .layer-list .indented label {
+.ideditor[dir='rtl'] .layer-list .indented label {
     padding-right: 24px;
 }
 
-.layer-list label > span {
+.ideditor .layer-list label > span {
     display: block;
     overflow: hidden;
     white-space: nowrap;
     text-overflow: ellipsis;
 }
 
-.map-data-pane .layer-list button,
-.background-pane .layer-list button {
+.ideditor .map-data-pane .layer-list button,
+.ideditor .background-pane .layer-list button {
     height: 100%;
     border-left: 1px solid #ccc;
     border-radius: 0;
     padding-left: 4px;
     padding-right: 4px;
 }
-[dir='rtl'] .map-data-pane .layer-list button,
-[dir='rtl'] .background-pane .layer-list button {
+.ideditor[dir='rtl'] .map-data-pane .layer-list button,
+.ideditor[dir='rtl'] .background-pane .layer-list button {
     border-left: none;
     border-right: 1px solid #ccc;
 }
 
-.map-data-pane .layer-list button .icon,
-.background-pane .layer-list button .icon {
+.ideditor .map-data-pane .layer-list button .icon,
+.ideditor .background-pane .layer-list button .icon {
     opacity: 0.5;
 }
 
-.map-data-pane .layer-list button:last-of-type,
-.background-pane .layer-list button:last-of-type {
+.ideditor .map-data-pane .layer-list button:last-of-type,
+.ideditor .background-pane .layer-list button:last-of-type {
     border-radius: 0 3px 3px 0;
 }
-[dir='rtl'] .map-data-pane .layer-list button:last-of-type,
-[dir='rtl'] .background-pane .layer-list button:last-of-type {
+.ideditor[dir='rtl'] .map-data-pane .layer-list button:last-of-type,
+.ideditor[dir='rtl'] .background-pane .layer-list button:last-of-type {
     border-radius: 3px 0 0 3px;
 }
 
-.map-data-pane .vectortile-container .vectortile-header {
+.ideditor .map-data-pane .vectortile-container .vectortile-header {
     padding-bottom: 5px;
 }
-.map-data-pane .vectortile-container .vectortile-footer {
+.ideditor .map-data-pane .vectortile-container .vectortile-footer {
     padding-bottom: 10px;
 }
 
 
 /* Issues
 ------------------------------------------------------- */
-.issue {
+.ideditor .issue {
     overflow: hidden;
 }
-.issue .issue-label,
-.issue-label .issue-text {
+.ideditor .issue .issue-label,
+.ideditor .issue-label .issue-text {
     width: 100%;
     display: flex;
     flex-flow: row nowrap;
     cursor: pointer;
 }
 
-.issue-text .issue-icon {
+.ideditor .issue-text .issue-icon {
     flex: 0 0 auto;
     padding: 5px 7px;
 }
-.issue-text .issue-message {
+.ideditor .issue-text .issue-message {
     flex: 1 1 auto;
     padding: 5px 0;
 }
-.issue-label .issue-autofix {
+.ideditor .issue-label .issue-autofix {
     flex: 0 0 auto;
     padding: 5px 8px;
 }
-.issue-label .issue-info-button {
+.ideditor .issue-label .issue-info-button {
     height: unset;
     width: 32px;
     flex: 0 0 auto;
     border-left: 1px solid #ccc;
     background-color: rgba(0,0,0,0);
 }
-[dir='rtl'] .issue-label .issue-info-button {
+.ideditor[dir='rtl'] .issue-label .issue-info-button {
     border-left: 0;
     border-right: 1px solid #ccc;
 }
-.issue-container .issue-label .issue-info-button .icon {
+.ideditor .issue-container .issue-label .issue-info-button .icon {
     opacity: 0.5;
 }
-.issue-container.active .issue-label .issue-info-button .icon {
+.ideditor .issue-container.active .issue-label .issue-info-button .icon {
     opacity: 0.7;
 }
-.issue-label .issue-info-button:last-child {
+.ideditor .issue-label .issue-info-button:last-child {
     border-radius: 0 4px 4px 0;
 }
-[dir='rtl'] .issue-label .issue-info-button:last-child {
+.ideditor[dir='rtl'] .issue-label .issue-info-button:last-child {
     border-radius: 4px 0 0 4px;
 }
 
-button.autofix.action {
+.ideditor button.autofix.action {
     flex: 0 0 20px;
     height: 20px;
     width: 20px;
     background: #7092ff;
     color: #fff;
 }
-button.autofix.action:focus,
-button.autofix.action:hover,
-button.autofix.action.active {
+.ideditor button.autofix.action:focus,
+.ideditor button.autofix.action:hover,
+.ideditor button.autofix.action.active {
     background: #597be7;
 }
 
 /* fix all */
-.autofix-all {
+.ideditor .autofix-all {
     display: flex;
     flex-flow: row nowrap;
     flex-direction: row-reverse;
     margin-top: -25px;
     padding-bottom: 5px;
 }
-.autofix-all-link-text {
+.ideditor .autofix-all-link-text {
     padding: 0;
 }
-.autofix-all-link-icon svg {
+.ideditor .autofix-all-link-icon svg {
     margin: 0 9px;
     background: currentColor;
     border-radius: 4px;
 }
-.autofix-all-link-icon svg use {
+.ideditor .autofix-all-link-icon svg use {
     color: #fff;
 }
 
 /* warning styles */
-.warnings-list,
-.warnings-list *,
-.issue-container.active .issue.severity-warning,
-.issue-container.active .issue.severity-warning * {
+.ideditor .warnings-list,
+.ideditor .warnings-list *,
+.ideditor .issue-container.active .issue.severity-warning,
+.ideditor .issue-container.active .issue.severity-warning * {
     border-color: #fb2;
 }
 
-.warnings-list .issue.severity-warning .issue-label,
-.issue.severity-warning .issue-fix-list,
-.mode-save .warning-section {
+.ideditor .warnings-list .issue.severity-warning .issue-label,
+.ideditor .issue.severity-warning .issue-fix-list,
+.ideditor.mode-save .warning-section {
     background: #ffc;
 }
 
-.issue-container.active .issue.severity-warning .issue-label {
+.ideditor .issue-container.active .issue.severity-warning .issue-label {
     background: #ffa;
 }
 
-.warnings-list .issue.severity-warning .issue-label:hover,
-.issue.severity-warning .issue-fix-item.actionable:hover {
+.ideditor .warnings-list .issue.severity-warning .issue-label:hover,
+.ideditor .issue.severity-warning .issue-fix-item.actionable:hover {
     background: #ff8;
 }
 
-.issue.severity-warning .issue-icon {
+.ideditor .issue.severity-warning .issue-icon {
     color: #f90;
 }
 
-.issue.severity-warning .issue-fix-item.actionable,
-.issue-container.active .issue.severity-warning .issue-info-button {
+.ideditor .issue.severity-warning .issue-fix-item.actionable,
+.ideditor .issue-container.active .issue.severity-warning .issue-info-button {
     color: #b15500;
     fill: #b15500;
     /*color: #7092ff;*/
     /*fill: #7092ff;*/
 }
-.issue.severity-warning .issue-fix-item.actionable:hover,
-.issue-container.active .issue.severity-warning .issue-info-button:hover {
+.ideditor .issue.severity-warning .issue-fix-item.actionable:hover,
+.ideditor .issue-container.active .issue.severity-warning .issue-info-button:hover {
     color: #7f3d00;
     fill: #7f3d00;
     /*color: #597be7;*/
     /*fill: #597be7;*/
 }
 
-.notification-badge.warning {
+.ideditor .notification-badge.warning {
     color: #ffdf5c;
 }
 
 
 /* error styles */
-.errors-list,
-.errors-list *,
-.issue-container.active .issue.severity-error,
-.issue-container.active .issue.severity-error * {
+.ideditor .errors-list,
+.ideditor .errors-list *,
+.ideditor .issue-container.active .issue.severity-error,
+.ideditor .issue-container.active .issue.severity-error * {
     border-color: #f77;
 }
 
-.errors-list .issue.severity-error .issue-label,
-.issue.severity-error .issue-fix-list,
-.mode-save .error-section {
+.ideditor .errors-list .issue.severity-error .issue-label,
+.ideditor .issue.severity-error .issue-fix-list,
+.ideditor.mode-save .error-section {
     background: #ffd6d6;
 }
 
-.issue-container.active .issue.severity-error .issue-label {
+.ideditor .issue-container.active .issue.severity-error .issue-label {
     background: #ffc6c6;
 }
 
-.errors-list .issue.severity-error .issue-label:hover,
-.issue.severity-error .issue-fix-item.actionable:hover {
+.ideditor .errors-list .issue.severity-error .issue-label:hover,
+.ideditor .issue.severity-error .issue-fix-item.actionable:hover {
     background: #ffb6b6;
 }
 
-.issue.severity-error .issue-icon {
+.ideditor .issue.severity-error .issue-icon {
     color: #dd1400;
 }
 
-.issue.severity-error .issue-fix-item.actionable,
-.issue-container.active .issue.severity-error .issue-info-button {
+.ideditor .issue.severity-error .issue-fix-item.actionable,
+.ideditor .issue-container.active .issue.severity-error .issue-info-button {
     color: #b91201;
     fill: #b91201;
     /*color: #7092ff;*/
     /*fill: #7092ff;*/
 }
-.issue.severity-error .issue-fix-item.actionable:hover,
-.issue-container.active .issue.severity-error .issue-info-button:hover {
+.ideditor .issue.severity-error .issue-fix-item.actionable:hover,
+.ideditor .issue-container.active .issue.severity-error .issue-info-button:hover {
     color: #840c00;
     fill: #840c00;
     /*color: #597be7;*/
     /*fill: #597be7;*/
 }
 
-.notification-badge.error {
+.ideditor .notification-badge.error {
     color: #ff0c05;
 }
 
 
 /* Issues Pane */
-.issues-options-container {
+.ideditor .issues-options-container {
     display: table;
 }
-.issues-option {
+.ideditor .issues-option {
     display: table-row;
 }
-.issues-option-title {
+.ideditor .issues-option-title {
     display: table-cell;
     font-weight: bold;
     padding-right: 10px;
 }
-[dir='rtl'] .issues-option-title {
+.ideditor[dir='rtl'] .issues-option-title {
     padding-right: 0;
     padding-left: 10px;
 }
-.issues-option label {
+.ideditor .issues-option label {
     display: table-cell;
     padding: 0 10px;
 }
 
-.layer-list.issues-list li.issue {
+.ideditor .layer-list.issues-list li.issue {
     border-color: inherit;    /* override .layer-list styles */
     color: inherit;
     height: unset;
 }
 
-.layer-list.issue-rules-list,
-.layer-list.issues-list,
-.layer-list.layer-feature-list {
+.ideditor .layer-list.issue-rules-list,
+.ideditor .layer-list.issues-list,
+.ideditor .layer-list.layer-feature-list {
     margin-bottom: 0;
 }
-.section-footer {
+.ideditor .section-footer {
     display: flex;
     flex-flow: row nowrap;
     flex-direction: row-reverse;
     height: 30px;
 }
-.section-footer a {
+.ideditor .section-footer a {
     padding: 5px;
 }
 
-.issues-none .box {
+.ideditor .issues-none .box {
     border-radius: 4px;
     border: 1px solid #72d979;
     background: #c6ffca;
     padding: 5px !important;
     display: flex;
 }
-.issues-none .icon {
+.ideditor .issues-none .icon {
     color: #05ac10;
 }
 
-input.square-degrees-input {
+.ideditor input.square-degrees-input {
     padding: 2px !important; /* important needed for rtl */
     width: 40px;
     height: unset;
@@ -6240,131 +6217,131 @@ input.square-degrees-input {
 
 
 /* Entity Issues List */
-.entity-issues .issue-container .issue {
+.ideditor .entity-issues .issue-container .issue {
     border-radius: 4px;
     border: 1px solid #ccc;
     background: #f6f6f6;
 }
-.entity-issues .issue-container:not(.active) .issue-text:hover,
-.entity-issues .issue-container:not(.active) .issue-info-button:hover {
+.ideditor .entity-issues .issue-container:not(.active) .issue-text:hover,
+.ideditor .entity-issues .issue-container:not(.active) .issue-info-button:hover {
     background: #f1f1f1;
 }
-.entity-issues .issue .issue-label .issue-text {
+.ideditor .entity-issues .issue .issue-label .issue-text {
     padding-right: 10px;
 }
-[dir='rtl'] .entity-issues .issue .issue-label .issue-text {
+.ideditor[dir='rtl'] .entity-issues .issue .issue-label .issue-text {
     padding-right: unset;
     padding-left: 10px;
 }
 
-.entity-issues .issue-container.active .issue-label .issue-text {
+.ideditor .entity-issues .issue-container.active .issue-label .issue-text {
     font-weight: bold;
 }
-.entity-issues .issue-container:not(:last-of-type) {
+.ideditor .entity-issues .issue-container:not(:last-of-type) {
     margin-bottom: 5px;
 }
-.entity-issues .issue-container.active:not(:first-of-type) {
+.ideditor .entity-issues .issue-container.active:not(:first-of-type) {
     margin-top: 10px;
 }
-.entity-issues .issue-container.active:not(:last-of-type) {
+.ideditor .entity-issues .issue-container.active:not(:last-of-type) {
     margin-bottom: 10px;
 }
 
 /* fixes */
-.entity-issues .issue-fix-list {
+.ideditor .entity-issues .issue-fix-list {
     border-top: 1px solid;
     border-color: inherit;
 }
-.entity-issues .issue-container.active .issue-fix-list:empty {
+.ideditor .entity-issues .issue-container.active .issue-fix-list:empty {
     display: none;
 }
 
-li.issue-fix-item {
+.ideditor li.issue-fix-item {
     padding: 2px 10px 2px 20px;
 }
-[dir='rtl'] li.issue-fix-item {
+.ideditor[dir='rtl'] li.issue-fix-item {
     padding: 2px 20px 2px 10px;
 }
-li.issue-fix-item:first-of-type {
+.ideditor li.issue-fix-item:first-of-type {
     padding-top: 5px;
 }
-li.issue-fix-item:last-of-type {
+.ideditor li.issue-fix-item:last-of-type {
     padding-bottom: 5px;
 }
 
-li.issue-fix-item .fix-message {
+.ideditor li.issue-fix-item .fix-message {
     padding: 0 10px;
 }
 
-li.issue-fix-item.actionable {
+.ideditor li.issue-fix-item.actionable {
     cursor: pointer;
 }
-li.issue-fix-item:not(.actionable) .fix-icon {
+.ideditor li.issue-fix-item:not(.actionable) .fix-icon {
     color: #555;
     fill: #555;
 }
 
-.issue-container:not(.active) ul.issue-fix-list {
+.ideditor .issue-container:not(.active) ul.issue-fix-list {
     display: none;
 }
 
-.issue-info {
+.ideditor .issue-info {
     flex: 1 1 auto;
     width: 100%;
     overflow: hidden;
     display: none;
     padding: 10px 0;
 }
-.issue-info.expanded {
+.ideditor .issue-info.expanded {
     display: inline-block;
 }
 
-.issue-info .issue-reference {
+.ideditor .issue-info .issue-reference {
     margin-bottom: 10px;
 }
-.issue-info .tagDiff-table {
+.ideditor .issue-info .tagDiff-table {
     min-width: 60%;
     width: unset;
     border: 1px solid #ccc;
 }
-.issue-info .tagDiff-row {
+.ideditor .issue-info .tagDiff-row {
     border: 1px solid #ccc;
 }
-.issue-info .tagDiff-cell {
+.ideditor .issue-info .tagDiff-cell {
     padding: 2px 10px;
     font-family: monospace;
     font-size: 10px;
     border: 1px solid #ccc;
 }
-.issue-info .tagDiff-cell-add {
+.ideditor .issue-info .tagDiff-cell-add {
     background: #dfd;
 }
-.issue-info .tagDiff-cell-remove {
+.ideditor .issue-info .tagDiff-cell-remove {
     background: #fdd;
 }
 
 
 /* Background - Display Options Sliders
 ------------------------------------------------------- */
-.display-options-container {
+.ideditor .display-options-container {
     padding: 10px;
 }
 
-.display-control h5 {
+.ideditor .display-control h5 {
     padding-bottom: 0;
     padding-top: 10px;
 }
 
-.display-control h5 span {
+.ideditor .display-control h5 span {
     margin: 5px;
 }
 
-.display-control .display-option-input {
+.ideditor .display-control .display-option-input {
     height: 20px;
     width: 155px;
 }
 
-.display-control button {
+.ideditor .display-control button {
     height: 30px;
     width: 30px;
     margin-left: 5px;
@@ -6372,7 +6349,7 @@ li.issue-fix-item:not(.actionable) .fix-icon {
     vertical-align: text-bottom;
     border-radius: 4px;
 }
-[dir='rtl'] .display-control button {
+.ideditor[dir='rtl'] .display-control button {
     margin-left: 0px;
     margin-right: 5px;
 }
@@ -6380,17 +6357,17 @@ li.issue-fix-item:not(.actionable) .fix-icon {
 
 /* Background - Adjust Alignment
 ------------------------------------------------------- */
-.background-pane .nudge-container {
+.ideditor .background-pane .nudge-container {
     border: 1px solid #ccc;
     border-radius: 4px;
     padding: 10px;
 }
 
-.nudge-container .nudge-instructions {
+.ideditor .nudge-container .nudge-instructions {
     padding-bottom: 15px;
 }
 
-.nudge-container .nudge-outer-rect {
+.ideditor .nudge-container .nudge-outer-rect {
     background-color: #eee;
     border: 1px solid #ccc;
     border-radius: 2px;
@@ -6404,7 +6381,7 @@ li.issue-fix-item:not(.actionable) .fix-icon {
     cursor: move;
 }
 
-.nudge-container .nudge-inner-rect {
+.ideditor .nudge-container .nudge-inner-rect {
     background-color: #fff;
     border: 1px solid #ccc;
     border-radius: 2px;
@@ -6412,7 +6389,7 @@ li.issue-fix-item:not(.actionable) .fix-icon {
     min-height: 20px;
 }
 
-.nudge-container .nudge::after {
+.ideditor .nudge-container .nudge::after {
     content: '';
     display: block;
     position: absolute;
@@ -6422,24 +6399,24 @@ li.issue-fix-item:not(.actionable) .fix-icon {
     width: 0;
 }
 
-.nudge-container input {
+.ideditor .nudge-container input {
     width: 100%;
     height: 20px;
     text-align: center;
     border: 0;
 }
 
-.nudge-container input.error {
+.ideditor .nudge-container input.error {
     border: 1px solid #ff7878;
     border-radius: 2px;
     background: #ffb;
 }
 
-.nudge-container input:focus {
+.ideditor .nudge-container input:focus {
     background-color: transparent;
 }
 
-.nudge-container button {
+.ideditor .nudge-container button {
     float: left;
     display: block;
     width: 20%;
@@ -6447,30 +6424,30 @@ li.issue-fix-item:not(.actionable) .fix-icon {
     background-color: transparent;
 }
 
-.nudge-container button.right {
+.ideditor .nudge-container button.right {
     top: -50px;
     right: -85%;
 }
 
-.nudge-container button.left {
+.ideditor .nudge-container button.left {
     top: -50px;
     right: 45%;
 }
 
-.nudge-container button.top {
+.ideditor .nudge-container button.top {
     left: 20%;
     top: -104px;
 }
 
-.nudge-container button.bottom {
+.ideditor .nudge-container button.bottom {
     left: -20%;
 }
 
-.nudge-container button.nudge-reset {
+.ideditor .nudge-container button.nudge-reset {
     right: -10px;
 }
 
-.nudge-surface {
+.ideditor .nudge-surface {
    position: absolute;
    z-index: 5000;
    left: 0;
@@ -6481,25 +6458,25 @@ li.issue-fix-item:not(.actionable) .fix-icon {
    cursor: move;
 }
 
-.background-pane .nudge.right::after {
+.ideditor .background-pane .nudge.right::after {
     border-top: 5px solid transparent;
     border-bottom: 5px solid transparent;
     border-left: 5px solid #222;
 }
 
-.background-pane .nudge.left::after {
+.ideditor .background-pane .nudge.left::after {
     border-top: 5px solid transparent;
     border-bottom: 5px solid transparent;
     border-right: 5px solid #222;
 }
 
-.background-pane .nudge.top::after {
+.ideditor .background-pane .nudge.top::after {
     border-right: 5px solid transparent;
     border-left: 5px solid transparent;
     border-bottom: 5px solid #222;
 }
 
-.background-pane .nudge.bottom::after {
+.ideditor .background-pane .nudge.bottom::after {
     border-right: 5px solid transparent;
     border-left: 5px solid transparent;
     border-top: 5px solid #222;
@@ -6508,12 +6485,12 @@ li.issue-fix-item:not(.actionable) .fix-icon {
 
 /* Side Panes - Background / Map Data / Help
 ------------------------------------------------------- */
-.map-panes {
+.ideditor .map-panes {
     flex: 0 1 auto;
     position: relative;
     height: 100%;
 }
-.map-pane {
+.ideditor .map-pane {
     position: relative;
     top: 0;
     width: 400px;
@@ -6523,11 +6500,11 @@ li.issue-fix-item:not(.actionable) .fix-icon {
     z-index: 10;
 }
 
-.map-pane.help-wrap {
+.ideditor .map-pane.help-wrap {
     width: 600px;
 }
 
-.pane-heading {
+.ideditor .pane-heading {
     display: flex;
     flex-flow: row nowrap;
     justify-content: space-between;
@@ -6535,40 +6512,40 @@ li.issue-fix-item:not(.actionable) .fix-icon {
     height: 60px;
 }
 
-.pane-heading h2 {
+.ideditor .pane-heading h2 {
     margin: 14px 20px;
 }
 
-.pane-heading button {
+.ideditor .pane-heading button {
     width: 40px;
     height: 100%;
     border-radius: 0;
 }
 
-.pane-content {
+.ideditor .pane-content {
     height: 100%;
     padding: 10px 40px 20px 20px;
     overflow-x: hidden;
     overflow-y: scroll;
     position: relative;
 }
-[dir='rtl'] .pane-content {
+.ideditor[dir='rtl'] .pane-content {
     padding: 10px 20px 20px 40px;
 }
 
-.pane-content > div {
+.ideditor .pane-content > div {
     padding-bottom: 15px;
 }
 
 
 /* Help
 ------------------------------------------------------- */
-.help-wrap p {
+.ideditor .help-wrap p {
     font-size: 15px;
     margin-bottom: 20px;
 }
 
-.help-wrap .left-content .body p code {
+.ideditor .help-wrap .left-content .body p code {
     padding: 3px 4px;
     font-size: 12px;
     color: #555;
@@ -6581,14 +6558,14 @@ li.issue-fix-item:not(.actionable) .fix-icon {
     box-shadow: inset 0 -1px 0 #bbb;
 }
 
-.help-wrap .left-content .icon.pre-text {
+.ideditor .help-wrap .left-content .icon.pre-text {
     vertical-align: text-top;
     margin-right: 0;
     margin-left: 0;
     display: inline-block;
 }
 
-.help-wrap .toc {
+.ideditor .help-wrap .toc {
     width: 40%;
     float: right;
     margin-left: 20px;
@@ -6596,68 +6573,68 @@ li.issue-fix-item:not(.actionable) .fix-icon {
     padding-left: 5px;
 }
 
-.help-wrap .toc li a,
-.help-wrap .nav a {
+.ideditor .help-wrap .toc li a,
+.ideditor .help-wrap .nav a {
     display: block;
     border: 1px solid #ccc;
     padding: 5px 10px;
 }
 
-.help-wrap .toc li a {
+.ideditor .help-wrap .toc li a {
     border-bottom: 0;
 }
 
-.help-wrap .toc li a:hover,
-.help-wrap .nav a:hover {
+.ideditor .help-wrap .toc li a:hover,
+.ideditor .help-wrap .nav a:hover {
     background: #ececec;
 }
 
-.help-wrap .toc li a.selected {
+.ideditor .help-wrap .toc li a.selected {
     background: #e8ebff;
 }
 
-.help-wrap .toc li:first-child a {
+.ideditor .help-wrap .toc li:first-child a {
     border-radius: 4px 4px 0 0;
 }
 
-.help-wrap .toc li:nth-last-child(3) a {
+.ideditor .help-wrap .toc li:nth-last-child(3) a {
     border-bottom: 1px solid #ccc;
     border-radius: 0 0 4px 4px
 }
 
-.help-wrap .toc li.shortcuts a,
-.help-wrap .toc li.walkthrough a {
+.ideditor .help-wrap .toc li.shortcuts a,
+.ideditor .help-wrap .toc li.walkthrough a {
     overflow: hidden;
     margin-top: 10px;
     border-bottom: 1px solid #ccc;
     border-radius: 4px;
 }
 
-.help-wrap .toc li.walkthrough a {
+.ideditor .help-wrap .toc li.walkthrough a {
     text-align: center;
 }
 
-.help-wrap .nav {
+.ideditor .help-wrap .nav {
     position: relative;
     padding-bottom: 30px;
 }
 
-.help-wrap .nav a {
+.ideditor .help-wrap .nav a {
     float: left;
     width: 50%;
     text-align: center;
 }
 
-.help-wrap .nav a:first-child {
+.ideditor .help-wrap .nav a:first-child {
     border-radius: 4px 0 0 4px;
 }
 
-.help-wrap .nav a:last-child:not(:only-child) {
+.ideditor .help-wrap .nav a:last-child:not(:only-child) {
     border-radius: 0 4px 4px 0;
     border-left: 0;
 }
 
-.help-wrap .nav a:only-child {
+.ideditor .help-wrap .nav a:only-child {
     width: 100%;
     border-radius: 4px;
 }
@@ -6665,140 +6642,140 @@ li.issue-fix-item:not(.actionable) .fix-icon {
 
 /* Inspector (hover styles)
 ------------------------------------------------------- */
-.inspector-hover .entity-issues .issue-container .issue .issue-label,
-.inspector-hover .form-field-input-wrap .label,
-.inspector-hover .form-field-input-multicombo .chiplist,
-.inspector-hover .form-field-button,
-.inspector-hover .structure-extras-wrap,
-.inspector-hover .comments-container .comment,
-.inspector-hover button,
-.inspector-hover input,
-.inspector-hover textarea,
-.inspector-hover label {
+.ideditor .inspector-hover .entity-issues .issue-container .issue .issue-label,
+.ideditor .inspector-hover .form-field-input-wrap .label,
+.ideditor .inspector-hover .form-field-input-multicombo .chiplist,
+.ideditor .inspector-hover .form-field-button,
+.ideditor .inspector-hover .structure-extras-wrap,
+.ideditor .inspector-hover .comments-container .comment,
+.ideditor .inspector-hover button,
+.ideditor .inspector-hover input,
+.ideditor .inspector-hover textarea,
+.ideditor .inspector-hover label {
     background: #ececec;
 }
-.inspector-hover .preset-list-button,
-.inspector-hover .tag-row input {
+.ideditor .inspector-hover .preset-list-button,
+.ideditor .inspector-hover .tag-row input {
     background: #f6f6f6;
 }
 
-.inspector-hover a,
-.inspector-hover .form-field-input-multicombo .chip,
-.inspector-hover .form-field-input-check span,
-.inspector-hover .entity-issues .issue .icon {
+.ideditor .inspector-hover a,
+.ideditor .inspector-hover .form-field-input-multicombo .chip,
+.ideditor .inspector-hover .form-field-input-check span,
+.ideditor .inspector-hover .entity-issues .issue .icon {
     color: #666;
 }
 
-.inspector-hover .form-field-input-multicombo .chip {
+.ideditor .inspector-hover .form-field-input-multicombo .chip {
     background: #eee;
     border: 1px solid #ccc;
 }
 
 /* no scrollbars */
-.inspector-hover div {
+.ideditor .inspector-hover div {
     overflow-x: hidden;
     overflow-y: hidden;
 }
 
 /* hide and remove from layout */
-.inspector-hidden,
-.inspector-hover .preset-list-button-wrap .tag-reference-button,
-.inspector-hover label input[type="checkbox"],
-.inspector-hover label input[type="radio"],
-.inspector-hover .form-field-input-multicombo .input-wrap,
-.inspector-hover .form-field-input-radio label,
-.inspector-hover .form-field-input-radio label span,
-.inspector-hover .form-field-input-radio label.remove .icon,
-.inspector-hover .inspector-inner .add-row,
-.inspector-hover .entity-issues .issue-container .issue-fix-list,
-.inspector-hover .entity-issues .issue-container .issue-info-button {
+.ideditor .inspector-hidden,
+.ideditor .inspector-hover .preset-list-button-wrap .tag-reference-button,
+.ideditor .inspector-hover label input[type="checkbox"],
+.ideditor .inspector-hover label input[type="radio"],
+.ideditor .inspector-hover .form-field-input-multicombo .input-wrap,
+.ideditor .inspector-hover .form-field-input-radio label,
+.ideditor .inspector-hover .form-field-input-radio label span,
+.ideditor .inspector-hover .form-field-input-radio label.remove .icon,
+.ideditor .inspector-hover .inspector-inner .add-row,
+.ideditor .inspector-hover .entity-issues .issue-container .issue-fix-list,
+.ideditor .inspector-hover .entity-issues .issue-container .issue-info-button {
     display: none;
 }
 
 /* hide but preserve in layout */
-.inspector-hover .combobox-caret,
-.inspector-hover .header button,
-.inspector-hover .quick-links,
-.inspector-hover .form-field-input-multicombo .chip .remove,
-.inspector-hover .hide-toggle:before,
-.inspector-hover .more-fields,
-.inspector-hover .field-label button,
-.inspector-hover .tag-row button,
-.inspector-hover .footer * {
+.ideditor .inspector-hover .combobox-caret,
+.ideditor .inspector-hover .header button,
+.ideditor .inspector-hover .quick-links,
+.ideditor .inspector-hover .form-field-input-multicombo .chip .remove,
+.ideditor .inspector-hover .hide-toggle:before,
+.ideditor .inspector-hover .more-fields,
+.ideditor .inspector-hover .field-label button,
+.ideditor .inspector-hover .tag-row button,
+.ideditor .inspector-hover .footer * {
     opacity: 0;
 }
 
 /* Unstyle the active entity issue on hover */
-.inspector-hover .entity-issues .issue-container.active {
+.ideditor .inspector-hover .entity-issues .issue-container.active {
     margin-top: 1px;
     margin-bottom: 1px;
 }
-.inspector-hover .entity-issues .issue-container * {
+.ideditor .inspector-hover .entity-issues .issue-container * {
     border-color: #ccc !important;
 }
-.inspector-hover .entity-issues .issue-container.active .issue-label {
+.ideditor .inspector-hover .entity-issues .issue-container.active .issue-label {
     border-bottom: 0;
 }
-.inspector-hover .entity-issues .issue-container.active .issue-label .issue-text {
+.ideditor .inspector-hover .entity-issues .issue-container.active .issue-label .issue-text {
     font-weight: normal;
 }
 
 
 /* Styles for raw tag inspector on hover */
-.inspector-hover .tag-row .key-wrap,
-.inspector-hover .tag-row .value-wrap {
+.ideditor .inspector-hover .tag-row .key-wrap,
+.ideditor .inspector-hover .tag-row .value-wrap {
     height: 31px;
 }
 
-.inspector-hover .tag-row:first-child input.value {
+.ideditor .inspector-hover .tag-row:first-child input.value {
     border-top-right-radius: 4px;
 }
-[dir='rtl'] .inspector-hover .tag-row:first-child input.value {
+.ideditor[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 {
+.ideditor .inspector-hover .tag-row:last-child input.value {
     border-bottom-right-radius: 4px;
 }
-[dir='rtl'] .inspector-hover .tag-row:last-child input.value {
+.ideditor[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 {
+.ideditor .inspector-hover .tag-row:last-child input.key {
     border-bottom-left-radius: 4px;
 }
-[dir='rtl'] .inspector-hover .tag-row:last-child input.key {
+.ideditor[dir='rtl'] .inspector-hover .tag-row:last-child input.key {
     border-bottom-left-radius: 0;
     border-bottom-right-radius: 4px;
 }
 
-.inspector-hover .more-fields {
+.ideditor .inspector-hover .more-fields {
     max-height: 0;
     margin-bottom: -10px;
 }
 
 /* Unstyle button fields */
-.inspector-hover .form-field-input-radio label.active,
-.inspector-hover .entity-editor-pane a.hide-toggle {
+.ideditor .inspector-hover .form-field-input-radio label.active,
+.ideditor .inspector-hover .entity-editor-pane a.hide-toggle {
     opacity: 1;
     background-color: transparent;
     color: #666;
     padding-left: 0;
     border-width: 0;
 }
-.inspector-hover .form-field-input-radio button.active {
+.ideditor .inspector-hover .form-field-input-radio button.active {
     padding-left: 10px;
 }
 
 /* Show placeholder on hover for radio buttons */
-.inspector-hover .form-field-input-radio {
+.ideditor .inspector-hover .form-field-input-radio {
     border: 1px solid #ccc;
     border-top: 0;
     border-radius: 0 0 4px 4px;
 }
-.inspector-hover .form-field-input-radio .placeholder {
+.ideditor .inspector-hover .form-field-input-radio .placeholder {
     opacity: 1;
     color: #666;
     padding: 5px 10px;
@@ -6806,14 +6783,14 @@ li.issue-fix-item:not(.actionable) .fix-icon {
     width: 100%;
     border: 0;
 }
-.inspector-hover .form-field-input-radio .structure-extras-wrap {
+.ideditor .inspector-hover .form-field-input-radio .structure-extras-wrap {
     border: 0;
 }
 
 
 /* Raster Background Tiles
 ------------------------------------------------------- */
-img.tile {
+.ideditor img.tile {
     position: absolute;
     transform-origin: 0 0;
     -ms-transform-origin: 0 0;
@@ -6833,15 +6810,15 @@ img.tile {
     transition: opacity 200ms linear;
 }
 
-img.tile-loaded {
+.ideditor img.tile-loaded {
     opacity: 1;
 }
 
-img.tile-removing {
+.ideditor img.tile-removing {
     opacity: 0;
 }
 
-.tile-label-debug {
+.ideditor .tile-label-debug {
     font-size: 10px;
     background: rgba(0, 0, 0, 0.7);
     color: #fff;
@@ -6865,14 +6842,14 @@ img.tile-removing {
     user-select: none;
 }
 
-img.tile-debug {
+.ideditor img.tile-debug {
     outline: 1px solid red;
 }
 
 
 /* Map
 ------------------------------------------------------- */
-#map {
+.ideditor #map {
     position: relative;
     overflow: hidden;
     height: 100%;
@@ -6883,7 +6860,7 @@ img.tile-debug {
     user-select: none;
 }
 
-#supersurface {
+.ideditor #supersurface {
     transform-origin: 0 0;
     -ms-transform-origin: 0 0;
     -webkit-transform-origin: 0 0;
@@ -6891,7 +6868,7 @@ img.tile-debug {
     -o-transform-origin: 0 0;
 }
 
-#supersurface, .layer {
+.ideditor #supersurface, .ideditor .layer {
     position: absolute;
     top: 0;
     left: 0;
@@ -6902,7 +6879,7 @@ img.tile-debug {
 
 /* Map-In-Map
 ------------------------------------------------------- */
-.map-in-map {
+.ideditor .map-in-map {
     position: absolute;
     overflow: hidden;
     top: 10px;
@@ -6913,14 +6890,14 @@ img.tile-debug {
     border: #aaa 1px solid;
     box-shadow: 0 0 2em black;
 }
-[dir='ltr'] .map-in-map {
+.ideditor[dir='ltr'] .map-in-map {
     left: 10px;
 }
-[dir='rtl'] .map-in-map {
+.ideditor[dir='rtl'] .map-in-map {
     right: 10px;
 }
 
-.map-in-map-tiles {
+.ideditor .map-in-map-tiles {
     transform-origin: 0 0;
     -ms-transform-origin: 0 0;
     -webkit-transform-origin: 0 0;
@@ -6933,8 +6910,8 @@ img.tile-debug {
     user-select: none;
 }
 
-.map-in-map-viewport,
-.map-in-map-data {
+.ideditor .map-in-map-viewport,
+.ideditor .map-in-map-data {
     top: 0;
     left: 0;
     overflow: hidden;
@@ -6942,50 +6919,50 @@ img.tile-debug {
     width: 100%;
 }
 
-.map-in-map-viewport {
+.ideditor .map-in-map-viewport {
     position: absolute;
 }
 
-.map-in-map-data {
+.ideditor .map-in-map-data {
     position: relative;
     z-index: 10;
 }
 
-.map-in-map-bbox {
+.ideditor .map-in-map-bbox {
     fill: none;
     stroke: rgba(255, 255, 0, 0.75);
     stroke-width: 1;
     shape-rendering: crispEdges;
 }
 
-.map-in-map-bbox.thick {
+.ideditor .map-in-map-bbox.thick {
     stroke-width: 5;
 }
 
 
 /* Debug Data
 ------------------------------------------------------- */
-.debug {
+.ideditor .debug {
     stroke: currentColor;
     fill: none;
     stroke-width: 2;
 }
-.map-in-map-data .debug {
+.ideditor .map-in-map-data .debug {
     stroke-width: 1;
 }
 
-.nocolor { color: rgba(0, 0, 0, 0); }
-.red     { color: rgba(255, 0, 0, 0.75); }
-.green   { color: rgba(0, 255, 0, 0.75); }
-.blue    { color: rgba(176, 176, 255, 0.75); }
-.yellow  { color: rgba(255, 255, 0, 0.75); }
-.cyan    { color: rgba(0, 255, 255, 0.75); }
-.magenta { color: rgba(255, 0, 255, 0.75); }
-.orange  { color: rgba(255, 153, 0, 0.75); }
-.pink    { color: rgba(255, 0, 153, 0.75); }
-.purple  { color: rgba(153, 0, 255, 0.75); }
+.ideditor .nocolor { color: rgba(0, 0, 0, 0); }
+.ideditor .red     { color: rgba(255, 0, 0, 0.75); }
+.ideditor .green   { color: rgba(0, 255, 0, 0.75); }
+.ideditor .blue    { color: rgba(176, 176, 255, 0.75); }
+.ideditor .yellow  { color: rgba(255, 255, 0, 0.75); }
+.ideditor .cyan    { color: rgba(0, 255, 255, 0.75); }
+.ideditor .magenta { color: rgba(255, 0, 255, 0.75); }
+.ideditor .orange  { color: rgba(255, 153, 0, 0.75); }
+.ideditor .pink    { color: rgba(255, 0, 153, 0.75); }
+.ideditor .purple  { color: rgba(153, 0, 255, 0.75); }
 
-.debug-legend {
+.ideditor .debug-legend {
     position: absolute;
     top: 70px;
     right: 80px;
@@ -6994,16 +6971,16 @@ img.tile-debug {
     pointer-events: none;
 }
 
-.debug-legend-item {
+.ideditor .debug-legend-item {
     padding-right: 5px;
 }
-.debug-legend-item:before {
+.ideditor .debug-legend-item:before {
     content: "\25A0";
     padding: 0 5px;
 }
 
 
-.over-map {
+.ideditor .over-map {
     position: absolute;
     left: 0;
     right: 0;
@@ -7014,13 +6991,13 @@ img.tile-debug {
     flex-direction: row-reverse;
     align-items: flex-end;
 }
-.over-map > * {
+.ideditor .over-map > * {
     pointer-events: auto;
 }
 
 /* Information Panels
 ------------------------------------------------------- */
-.info-panels {
+.ideditor .info-panels {
     display: flex;
     flex-flow: row-reverse wrap-reverse;
     width: 100%;
@@ -7029,22 +7006,22 @@ img.tile-debug {
     pointer-events: none;
 }
 
-.panel-container h1,
-.panel-container h2,
-.panel-container h3,
-.panel-container h4,
-.panel-container h5 {
+.ideditor .panel-container h1,
+.ideditor .panel-container h2,
+.ideditor .panel-container h3,
+.ideditor .panel-container h4,
+.ideditor .panel-container h5 {
     display: inline-block;
     margin-bottom: 0;
 }
 
-.panel-container h1,
-.panel-container h2,
-.panel-container h3 {
+.ideditor .panel-container h1,
+.ideditor .panel-container h2,
+.ideditor .panel-container h3 {
     color: #ff8;
 }
 
-.panel-container {
+.ideditor .panel-container {
     flex: 0 0 auto;
     margin: 0 2px 2px 0;
     border-radius: 4px;
@@ -7054,44 +7031,44 @@ img.tile-debug {
     pointer-events: auto;
 }
 
-.panel-container .panel-title {
+.ideditor .panel-container .panel-title {
     border-radius: 4px 4px 0 0;
 }
 
-.panel-title {
+.ideditor .panel-title {
     padding: 5px 10px;
 }
 
-.panel-title button.close {
+.ideditor .panel-title button.close {
     float: right;
     height: 20px;
     background: none;
     color: #ddd;
 }
-[dir='rtl'] .panel-title button.close {
+.ideditor[dir='rtl'] .panel-title button.close {
     float: left;
 }
 
-.panel-title button.close:hover {
+.ideditor .panel-title button.close:hover {
     color: #fff;
 }
-.panel-title button.close .icon {
+.ideditor .panel-title button.close .icon {
     height: 20px;
     width: 16px;
 }
 
-.panel-content {
+.ideditor .panel-content {
     padding: 5px 10px;
     position: relative;
 }
 
-.panel-content li span {
+.ideditor .panel-content li span {
     display: inline-block;
     white-space: nowrap;
     margin: 0 8px;
 }
 
-.panel-content .button {
+.ideditor .panel-content .button {
     display: inline-block;
     background: #7092ff;
     border-radius: 2px;
@@ -7100,29 +7077,29 @@ img.tile-debug {
     margin-right: 10px;
     color: #fff;
 }
-[dir='rtl'] .panel-content .button {
+.ideditor[dir='rtl'] .panel-content .button {
     margin-right: auto;
     margin-left: 10px;
 }
 
-.panel-content-history .links a {
+.ideditor .panel-content-history .links a {
     margin-left: 8px;
 }
-[dir='rtl'] .panel-content-history .links a {
+.ideditor[dir='rtl'] .panel-content-history .links a {
     margin-left: auto;
     margin-right: 8px;
 }
-.panel-content-history h4 {
+.ideditor .panel-content-history h4 {
     padding-bottom: 0;
 }
-.panel-content-location .location-info {
+.ideditor .panel-content-location .location-info {
     margin-top: 10px;
 }
 
 
 /* About Section, Attribution, Footer
 ------------------------------------------------------- */
-#about {
+.ideditor #about {
     width: 100%;
     position: absolute;
     right: 0;
@@ -7134,53 +7111,53 @@ img.tile-debug {
     -ms-user-select: element;
 }
 
-#attrib {
+.ideditor #attrib {
     width: 100%;
     height: 20px;
     margin-bottom: 5px;
 }
 
-#attrib * { pointer-events: all; }
+.ideditor #attrib * { pointer-events: all; }
 
-.base-layer-attribution,
-.overlay-layer-attribution {
+.ideditor .base-layer-attribution,
+.ideditor .overlay-layer-attribution {
     position: absolute;
     color: #ccc;
     font-size: 10px;
 }
 
-.base-layer-attribution {
+.ideditor .base-layer-attribution {
     left: 10px;
 }
 
-.overlay-layer-attribution {
+.ideditor .overlay-layer-attribution {
     right: 10px;
 }
 
-.overlay-layer-attribution .attribution:not(:last-child):after {
+.ideditor .overlay-layer-attribution .attribution:not(:last-child):after {
     content: '; ';
 }
 
-.attribution a,
-.attribution a:visited {
+.ideditor .attribution a,
+.ideditor .attribution a:visited {
     color: #ccf;
 }
 
-.attribution a:hover {
+.ideditor .attribution a:hover {
     color: #aaf;
 }
 
-.attribution .source-image {
+.ideditor .attribution .source-image {
     height: 20px;
     vertical-align: middle;
     border-radius: 3px;
 }
 
-.attribution span {
+.ideditor .attribution span {
     margin: 0 3px;
 }
 
-#footer {
+.ideditor #footer {
     pointer-events: all;
     display: block;
     height: 30px;
@@ -7189,7 +7166,7 @@ img.tile-debug {
 
 /* Footer - Flash messages
 ------------------------------------------------------- */
-#flash-wrap {
+.ideditor #flash-wrap {
     display: flex;
     flex: 0 0 100%;
     flex-flow: row nowrap;
@@ -7200,7 +7177,7 @@ img.tile-debug {
     left: 0;
 }
 
-.flash-content {
+.ideditor .flash-content {
     display: flex;
     flex: 1 0 auto;
     flex-flow: row nowrap;
@@ -7209,42 +7186,42 @@ img.tile-debug {
     height: 30px;
 }
 
-.flash-icon {
+.ideditor .flash-icon {
     flex: 0 0 auto;
     width: 20px;
     height: 20px;
     margin: 0 8px;
 }
 
-.flash-icon circle {
+.ideditor .flash-icon circle {
     fill: #eee;
 }
-.flash-icon.disabled circle {
+.ideditor .flash-icon.disabled circle {
     cursor: auto;
     fill: rgba(255,255,255,0.7);
 }
 
-.flash-icon use {
+.ideditor .flash-icon use {
     color: #222;
 }
-.flash-icon.disabled use {
+.ideditor .flash-icon.disabled use {
     color: rgba(32,32,32,0.7);
 }
 
-.flash-icon.operation use {
+.ideditor .flash-icon.operation use {
     fill: #222;
     color: #79f;
 }
-.flash-icon.operation.disabled use {
+.ideditor .flash-icon.operation.disabled use {
     fill: rgba(32,32,32,0.7);
     color: rgba(40,40,40,0.7);
 }
 
-.flash-text {
+.ideditor .flash-text {
     flex: 1 1 auto;
 }
 
-#footer-wrap {
+.ideditor #footer-wrap {
     display: flex;
     flex: 0 0 100%;
     flex-flow: row nowrap;
@@ -7255,14 +7232,14 @@ img.tile-debug {
     left: 0;
 }
 
-.footer-show {
+.ideditor .footer-show {
     bottom: 0px;
     transition: bottom 75ms linear;
     -moz-transition: bottom 75ms linear;
     -webkit-transition: bottom 75ms linear;
 }
 
-.footer-hide {
+.ideditor .footer-hide {
     bottom: -35px;
     transition: bottom 75ms linear;
     -moz-transition: bottom 75ms linear;
@@ -7272,7 +7249,7 @@ img.tile-debug {
 
 /* Footer - Scale bar, About, Source Switcher
 ------------------------------------------------------- */
-#scale-block {
+.ideditor #scale-block {
     vertical-align: bottom;
     width: 250px;
     max-height: 30px;
@@ -7283,60 +7260,60 @@ img.tile-debug {
     user-select: none;
 }
 
-#info-block {
+.ideditor #info-block {
     max-height: 30px;
     flex: 1 1 auto;
 }
 
-#scale {
+.ideditor #scale {
     height: 30px;
     width: 100%;
 }
-[dir='rtl'] #scale {
+.ideditor[dir='rtl'] #scale {
     transform: scaleX(-1);
 }
 
-#scale:hover {
+.ideditor #scale:hover {
     cursor: pointer;
 }
 
-#scale text {
+.ideditor #scale text {
     font: 12px sans-serif;
     stroke: none;
     fill: #ccc;
     text-anchor: start;
 }
-[dir='rtl'] #scale text {
+.ideditor[dir='rtl'] #scale text {
     transform: scaleX(-1);
 }
 
-#scale path {
+.ideditor #scale path {
     fill: none;
     stroke: #ccc;
     stroke-width: 1;
     shape-rendering: crispEdges;
 }
 
-#about-list {
+.ideditor #about-list {
     text-align: right;
     margin-right: 10px;
     clear: right;
     overflow: hidden;
 }
-[dir='rtl'] #about-list {
+.ideditor[dir='rtl'] #about-list {
     text-align: left;
     clear: left;
     margin-left: 10px;
     margin-right: 0;
 }
 
-#about-list li {
+.ideditor #about-list li {
     float: right;
     border-left: 1px solid rgba(255,255,255,.5);
     padding: 5px 0 5px 5px;
     margin-left: 5px;
 }
-[dir='rtl'] #about-list li {
+.ideditor[dir='rtl'] #about-list li {
     float: left;
     border-left: none;
     border-right: 1px solid rgba(255,255,255,.5);
@@ -7344,93 +7321,93 @@ img.tile-debug {
     margin-right: 5px;
     padding: 5px 5px 5px 0;
 }
-#about-list li:empty {
+.ideditor #about-list li:empty {
     display: none;
 }
 
-#about-list li:last-child {
+.ideditor #about-list li:last-child {
     border-left: 0;
     margin-left: 0;
     padding-left: 0;
 }
-[dir='rtl'] #about-list li:last-child {
+.ideditor[dir='rtl'] #about-list li:last-child {
     border-right: none;
 }
 
-#about-list a.chip {
+.ideditor #about-list a.chip {
     padding: 2px 4px 3px 4px;
     border-radius: 2px;
     color: #eee;
 }
-#about-list a.chip .icon {
+.ideditor #about-list a.chip .icon {
     width: 14px;
     height: 14px;
     margin-top: 3px;
 }
-[dir='ltr'] #about-list a.chip .icon,
-[dir='ltr'] #about-list a.chip span {
+.ideditor[dir='ltr'] #about-list a.chip .icon,
+.ideditor[dir='ltr'] #about-list a.chip span {
     margin-right: 3px;
 }
-[dir='rtl'] #about-list a.chip .icon,
-[dir='rtl'] #about-list a.chip span {
+.ideditor[dir='rtl'] #about-list a.chip .icon,
+.ideditor[dir='rtl'] #about-list a.chip span {
     margin-left: 3px;
 }
 
-.source-switch a.chip.live {
+.ideditor .source-switch a.chip.live {
     background: #d32232;
     color: #fff;
 }
 
-.feature-warning a.chip {
+.ideditor .feature-warning a.chip {
     background: #1e90ff;
 }
 
-.issues-info a.chip.resolved-count {
+.ideditor .issues-info a.chip.resolved-count {
     background: #15911E;
 }
-.issues-info a.chip.warnings-count {
+.ideditor .issues-info a.chip.warnings-count {
     background: #DF8500;
 }
-[dir='ltr'] .issues-info a.chip:not(:last-child) {
+.ideditor[dir='ltr'] .issues-info a.chip:not(:last-child) {
     margin-right: 5px;
 }
-[dir='rtl'] .issues-info a.chip:not(:last-child) {
+.ideditor[dir='rtl'] .issues-info a.chip:not(:last-child) {
     margin-left: 5px;
 }
 
-.user-list a:not(:last-child):after {
+.ideditor .user-list a:not(:last-child):after {
     content: ', ';
 }
 
-.api-status {
+.ideditor .api-status {
     text-align: right;
     padding: 1px 10px;
     color: #eee;
     flex: 1 1 auto;
 }
-[dir='rtl'] .api-status {
+.ideditor[dir='rtl'] .api-status {
     text-align: left;
 }
 
-.api-status.offline,
-.api-status.readonly,
-.api-status.error {
+.ideditor .api-status.offline,
+.ideditor .api-status.readonly,
+.ideditor .api-status.error {
     background: #a22;
 }
 
-.api-status a {
+.ideditor .api-status a {
     text-decoration: underline;
     color: #ccc;
     pointer-events: all;
 }
-.api-status a:hover {
+.ideditor .api-status a:hover {
     color: inherit;
 }
 
 /* Notification Badges
 ------------------------------------------------------- */
 /* For an icon (e.g. new version) */
-.badge {
+.ideditor .badge {
     display: inline-block;
     background: #d32232;
     width: 21px;
@@ -7438,18 +7415,18 @@ img.tile-debug {
     border-radius: 11px;
     margin-left: 6px;
 }
-[dir='rtl'] .badge {
+.ideditor[dir='rtl'] .badge {
     margin-left: 0;
     margin-right: 6px;
 }
-.badge a {
+.ideditor .badge a {
     margin-right: 5px;
 }
-[dir='rtl'] .badge a {
+.ideditor[dir='rtl'] .badge a {
     margin-right: 0;
     margin-left: 5px;
 }
-.badge .icon {
+.ideditor .badge .icon {
     vertical-align: baseline;
     width: 11px;
     height: 11px;
@@ -7457,7 +7434,7 @@ img.tile-debug {
 }
 
 /* For text (e.g. upcoming events) */
-.badge-text {
+.ideditor .badge-text {
     display: inline-block;
     color: #fff;
     text-align: center;
@@ -7469,7 +7446,7 @@ img.tile-debug {
     background: #f00;
     border-radius: 9px;
 }
-[dir='rtl'] .badge-text {
+.ideditor[dir='rtl'] .badge-text {
     margin-left: 0;
     margin-right: 5px;
 }
@@ -7477,7 +7454,7 @@ img.tile-debug {
 
 /* Modals / Prompts
 ------------------------------------------------------- */
-.modal {
+.ideditor .modal {
     top: 40px;
     display: inline-block;
     position: absolute;
@@ -7492,14 +7469,14 @@ img.tile-debug {
     max-width: 600px;
 }
 
-.modal .loader {
+.ideditor .modal .loader {
     margin-bottom: 10px;
 }
-.modal .description {
+.ideditor .modal .description {
     text-align: center;
 }
 
-.shaded {
+.ideditor .shaded {
     z-index: 5000;
     position: absolute;
     top: 0;
@@ -7508,60 +7485,60 @@ img.tile-debug {
     right: 0;
     overflow: auto;
 }
-.shaded:before {
+.ideditor .shaded:before {
     content:'';
     background: rgba(0,0,0,0.5);
     position: absolute;
     left: 0px; right: 0px; top: 0px; bottom: 0px;
 }
 
-.modal-section {
+.ideditor .modal-section {
     padding: 20px;
     border-bottom: 1px solid #ccc;
 }
-.modal-section p:not(:last-of-type) {
+.ideditor .modal-section p:not(:last-of-type) {
     padding-bottom: 20px;
 }
-.modal-section.header h3 {
+.ideditor .modal-section.header h3 {
     padding: 0;
 }
-.modal-section.buttons {
+.ideditor .modal-section.buttons {
     text-align: center;
 }
 
-.modal-section.buttons button {
+.ideditor .modal-section.buttons button {
     min-width: 130px;
 }
 
-.modal-section.buttons .action {
+.ideditor .modal-section.buttons .action {
     display: inline-block;
     margin: 0 10px;
     text-align: center;
     vertical-align: middle;
 }
 
-.save-section .buttons {
+.ideditor .save-section .buttons {
     display: flex;
     flex-wrap: wrap;
     justify-content: space-around;
     margin-bottom: 30px;
 }
 
-.save-section .buttons .action,
-.save-section .buttons .secondary-action {
+.ideditor .save-section .buttons .action,
+.ideditor .save-section .buttons .secondary-action {
     width: 45%;
     margin: 10px auto;
     text-align: center;
     vertical-align: middle;
 }
 
-.loading-modal {
+.ideditor .loading-modal {
     text-align: center;
 }
-.modal-actions {
+.ideditor .modal-actions {
     display: flex;
 }
-.modal-actions button {
+.ideditor .modal-actions button {
     font-weight: normal;
     color: #7092ff;
     border-bottom: 1px solid #ccc;
@@ -7570,129 +7547,129 @@ img.tile-debug {
     text-align: center;
     width: 100%;
 }
-.modal-actions button:hover {
+.ideditor .modal-actions button:hover {
     background-color: #ececec;
 }
 
-.logo-small {
+.ideditor .logo-small {
     height: 40px;
     width: 40px;
     margin: auto;
 }
 
-.logo {
+.ideditor .logo {
     height: 100px;
     width: 100%;
     max-width: 100px;
     margin: auto;
 }
 
-.modal-actions > :first-child {
+.ideditor .modal-actions > :first-child {
     border-right: 1px solid #ccc;
 }
 
-.modal-section:last-child {
+.ideditor .modal-section:last-child {
     border-bottom: 0;
 }
 
 /* Restore Modal
 ------------------------------------------------------- */
-.modal-actions .logo-restore {
+.ideditor .modal-actions .logo-restore {
     color: #7092ff;
 }
-.modal-actions .logo-reset {
+.ideditor .modal-actions .logo-reset {
     color: #e06c5e;
 }
 
 /* Success Screen / Community Index
 ------------------------------------------------------- */
-.save-success.body {
+.ideditor .save-success.body {
     overflow-y: scroll;
     overflow-x: hidden;
 }
 
-.save-success .link-out {
+.ideditor .save-success .link-out {
     margin: 0px 5px;
     white-space: nowrap;
 }
 
-.save-summary,
-.save-communityLinks {
+.ideditor .save-summary,
+.ideditor .save-communityLinks {
     padding: 0px 20px 15px 20px;
 }
 
-.save-communityLinks {
+.ideditor .save-communityLinks {
     border-top: 1px solid #ccc;
 }
 
-.save-success table,
-.save-success p {
+.ideditor .save-success table,
+.ideditor .save-success p {
     margin-top: 15px;
 }
-.save-success h3 {
+.ideditor .save-success h3 {
     font-size: 14px;
     margin-top: 15px;
     line-height: 1.5;
     padding-bottom: 0;
 }
-.save-success td {
+.ideditor .save-success td {
     vertical-align: top;
 }
-.save-success td.cell-icon {
+.ideditor .save-success td.cell-icon {
     width: 40px;
 }
-.save-success td.cell-detail {
+.ideditor .save-success td.cell-detail {
     padding: 0 10px;
 }
-.save-success td.community-detail {
+.ideditor .save-success td.community-detail {
     padding-bottom: 15px;
 }
 
-.summary-view-on-osm,
-.community-name {
+.ideditor .summary-view-on-osm,
+.ideditor .community-name {
     font-size: 14px;
     font-weight: bold;
 }
-.community-languages {
+.ideditor .community-languages {
     margin-top: 5px;
     font-style: italic;
 }
-.community-languages:only-child {
+.ideditor .community-languages:only-child {
     margin-top: 0;
 }
 
-.community-detail a.hide-toggle,
-.community-detail a:visited.hide-toggle {
+.ideditor .community-detail a.hide-toggle,
+.ideditor .community-detail a:visited.hide-toggle {
     font-size: 12px;
     font-weight: normal;
     padding-bottom: 0;
 }
-.community-detail .hide-toggle svg.icon.pre-text {
+.ideditor .community-detail .hide-toggle svg.icon.pre-text {
     width: 12px;
     height: 15px;
 }
 
-.community-events {
+.ideditor .community-events {
     margin-top: 5px;
 }
 
-.community-event,
-.community-more {
+.ideditor .community-event,
+.ideditor .community-more {
     background-color: #efefef;
     padding: 8px;
     border-radius: 4px;
     margin-bottom: 5px;
 }
 
-.community-event-name {
+.ideditor .community-event-name {
     font-size: 14px;
     font-weight: bold;
 }
-.community-event-when {
+.ideditor .community-event-when {
     font-weight: bold;
 }
 
-.community-missing {
+.ideditor .community-missing {
     padding: 10px;
     text-align: center;
 }
@@ -7700,94 +7677,94 @@ img.tile-debug {
 
 /* Splash Modal
 ------------------------------------------------------- */
-.modal-actions .logo-walkthrough,
-.modal-actions .logo-features {
+.ideditor .modal-actions .logo-walkthrough,
+.ideditor .modal-actions .logo-features {
     color: #7092ff;
 }
 
 
 /* Shortcuts Modal
 ------------------------------------------------------- */
-.modal-shortcuts {
+.ideditor .modal-shortcuts {
     width: 90%;
     max-width: 950px;
 }
 
-.modal-shortcuts .modal-section:last-child {
+.ideditor .modal-shortcuts .modal-section:last-child {
     padding-top: 10px;
     min-height: 275px;
 }
 
-.modal-shortcuts .tabs-bar {
+.ideditor .modal-shortcuts .tabs-bar {
     text-align: center;
     padding-bottom: 5px;
     font-size: 16px;
     font-weight: bold;
 }
 
-.modal-shortcuts .tab {
+.ideditor .modal-shortcuts .tab {
     display: inline-block;
     padding: 5px 10px;
     margin: 0 5px;
     cursor: pointer;
     color: #666;
 }
-.modal-shortcuts .tab.active {
+.ideditor .modal-shortcuts .tab.active {
     color: #7092ff;
     border-bottom: 2px solid;
 }
-.modal-shortcuts .tab:hover {
+.ideditor .modal-shortcuts .tab:hover {
     color: #597be7;
     background-color: #efefef;
 }
 
-.modal-shortcuts .shortcut-tab {
+.ideditor .modal-shortcuts .shortcut-tab {
     display: flex;
     flex-flow: row wrap;
     justify-content: space-around;
 }
 
-.modal-shortcuts .shortcut-column {
+.ideditor .modal-shortcuts .shortcut-column {
     width: auto;
 }
 
-.modal-shortcuts .shortcut-tab-tools .shortcut-column {
+.ideditor .modal-shortcuts .shortcut-tab-tools .shortcut-column {
     flex: 1 1 100%;
     width: 100%;
 }
 
-.modal-shortcuts td {
+.ideditor .modal-shortcuts td {
     padding-bottom: 5px;
 }
 
-.modal-shortcuts .shortcut-section {
+.ideditor .modal-shortcuts .shortcut-section {
     padding: 20px 0 10px 0;
 }
 
-.modal-shortcuts .shortcut-keys {
+.ideditor .modal-shortcuts .shortcut-keys {
     padding: 0 10px;
     color: #767676;
     text-align: right;
     white-space: nowrap;
 }
-[dir='rtl'] .modal-shortcuts .shortcut-keys {
+.ideditor[dir='rtl'] .modal-shortcuts .shortcut-keys {
     text-align: left;
 }
 
-.modal-shortcuts .shortcut-keys kbd {
+.ideditor .modal-shortcuts .shortcut-keys kbd {
     color: #555;
 }
 
-svg.mouseclick use.left {
+.ideditor svg.mouseclick use.left {
     fill: rgba(112, 146, 255, 1);
     color: rgba(112, 146, 255, 0);
 }
-svg.mouseclick use.right {
+.ideditor svg.mouseclick use.right {
     fill: rgba(112, 146, 255, 0);
     color: rgba(112, 146, 255, 1);
 }
 
-.modal-shortcuts .shortcut-keys .gesture {
+.ideditor .modal-shortcuts .shortcut-keys .gesture {
     color: #333;
     padding: 3px;
 }
@@ -7795,39 +7772,39 @@ svg.mouseclick use.right {
 
 /* Settings Modals
 ------------------------------------------------------- */
-.settings-modal textarea {
+.ideditor .settings-modal textarea {
     height: 70px;
     width: 100%;
 }
 
-.settings-custom-background .instructions-template {
+.ideditor .settings-custom-background .instructions-template {
     margin-bottom: 20px;
 }
 
-.settings-custom-data .instructions-url {
+.ideditor .settings-custom-data .instructions-url {
     margin-bottom: 10px;
 }
-.settings-custom-data .field-file,
-.settings-custom-data .instructions-template {
+.ideditor .settings-custom-data .field-file,
+.ideditor .settings-custom-data .instructions-template {
     margin-bottom: 20px;
 }
 
 
 /* Save Mode
 ------------------------------------------------------- */
-.mode-save a.user-info {
+.ideditor.mode-save a.user-info {
     display: inline-block;
 }
 
-.mode-save .commit-form {
+.ideditor.mode-save .commit-form {
     margin-bottom: 0;
 }
 
-.mode-save .user-info img {
+.ideditor.mode-save .user-info img {
     float: left;
 }
 
-.mode-save h3 small.count {
+.ideditor.mode-save h3 small.count {
     margin-right: 10px;
     text-align: center;
     float: left;
@@ -7841,125 +7818,125 @@ svg.mouseclick use.right {
     color: #fff;
 }
 
-.note-save .field-warning,
-.mode-save .field-warning {
+.ideditor .note-save .field-warning,
+.ideditor.mode-save .field-warning {
     background: #ffb;
     border: 1px solid #ccc;
     border-radius: 4px;
     padding: 10px;
 }
 
-.note-save .field-warning:empty,
-.mode-save .field-warning:empty {
+.ideditor .note-save .field-warning:empty,
+.ideditor.mode-save .field-warning:empty {
     display: none;
 }
 
-.mode-save .field-warning,
-.mode-save .changeset-info,
-.mode-save .request-review,
-.mode-save .commit-info {
+.ideditor.mode-save .field-warning,
+.ideditor.mode-save .changeset-info,
+.ideditor.mode-save .request-review,
+.ideditor.mode-save .commit-info {
     margin-bottom: 10px;
 }
 
-.mode-save .request-review label {
+.ideditor.mode-save .request-review label {
     cursor: pointer;
 }
 
-.mode-save .changeset-list {
+.ideditor.mode-save .changeset-list {
     border: 1px solid #ccc;
     border-radius: 4px;
     background: #fff;
     margin-bottom: 10px;
 }
 
-.mode-save .warning-section .changeset-list button {
+.ideditor.mode-save .warning-section .changeset-list button {
     border-left: 1px solid #ccc;
 }
 
-.mode-save .changeset-list li {
+.ideditor.mode-save .changeset-list li {
     position: relative;
     border-top: 1px solid #ccc;
     padding: 5px 10px;
     cursor: pointer;
 }
 
-.mode-save .changeset-list li:hover {
+.ideditor.mode-save .changeset-list li:hover {
     background-color: #ececec;
 }
 
-.mode-save .changeset-list .alert {
+.ideditor.mode-save .changeset-list .alert {
     opacity: 0.5;
 }
 
-.changeset-list li span.count {
+.ideditor .changeset-list li span.count {
     font-size: 10px;
     color: #555;
 }
 
-.mode-save .commit-section .changeset-list button {
+.ideditor.mode-save .commit-section .changeset-list button {
     border-left: 1px solid #ccc;
 }
 
-.changeset-list li span.count:before { content: '('; }
+.ideditor .changeset-list li span.count:before { content: '('; }
 
-.changeset-list li span.count:after { content: ')'; }
+.ideditor .changeset-list li span.count:after { content: ')'; }
 
-.changeset-list li:first-child { border-top: 0;}
+.ideditor .changeset-list li:first-child { border-top: 0;}
 
 
 /* Conflict resolution
 ------------------------------------------------------- */
-.conflicts-help {
+.ideditor .conflicts-help {
     padding: 20px;
     background-color: #ffffbb;
     border-bottom: 1px solid #ccc;
 }
 
-.conflicts-buttons {
+.ideditor .conflicts-buttons {
     padding: 20px;
 }
 
-.mode-save button.conflicts-button {
+.ideditor.mode-save button.conflicts-button {
     float: left;
 }
 
-.conflict-container {
+.ideditor .conflict-container {
     border-bottom: 1px solid #ccc;
 }
 
-.conflict-description {
+.ideditor .conflict-description {
     padding: 5px 20px;
     display: block;
 }
 
-.conflicts-done {
+.ideditor .conflicts-done {
     padding: 20px 20px 0 20px;
 }
 
-.conflict-detail-container {
+.ideditor .conflict-detail-container {
     padding: 10px 20px;
 }
 
-.conflict-count {
+.ideditor .conflict-count {
     padding: 10px 20px;
 }
 
-.conflict-choices {
+.ideditor .conflict-choices {
     margin-top: 10px;
 }
 
-.conflict-nav-buttons {
+.ideditor .conflict-nav-buttons {
     padding: 10px 0 20px 0;
 }
 
-.conflict-nav-button {
+.ideditor .conflict-nav-button {
     height: 30px;
 }
 
 
 /* Notices (Zoom in to Edit)
 ------------------------------------------------------- */
-.notice {
+.ideditor .notice {
     position: absolute;
     top: 15px;
     left: 0;
@@ -7967,7 +7944,7 @@ svg.mouseclick use.right {
     text-align: center;
 }
 
-.notice .zoom-to {
+.ideditor .notice .zoom-to {
     margin: auto;
     width: 300px;
     height: 70px;
@@ -7975,18 +7952,18 @@ svg.mouseclick use.right {
     border-radius: 8px;
 }
 
-.notice .zoom-to:hover,
-.notice .zoom-to:focus {
+.ideditor .notice .zoom-to:hover,
+.ideditor .notice .zoom-to:focus {
     background: rgba(0,0,0,0.6);
 }
 
-.notice .zoom-to .icon {
+.ideditor .notice .zoom-to .icon {
     width: 30px;
     height: 30px;
     vertical-align: middle;
     margin-right: 10px;
 }
-[dir='rtl'] .notice .zoom-to .icon {
+.ideditor[dir='rtl'] .notice .zoom-to .icon {
     margin-left: 10px;
     margin-right: 0;
 }
@@ -7994,71 +7971,71 @@ svg.mouseclick use.right {
 
 /* Tooltips
 ------------------------------------------------------- */
-.popover {
+.ideditor .popover {
     position: absolute;
     display: none;
 }
-.tooltip {
+.ideditor .tooltip {
     color: #333;
     font-size: 12px;
     white-space: initial;
 }
-.tooltip:not(.curtain-tooltip) {
+.ideditor .tooltip:not(.curtain-tooltip) {
     pointer-events: none;
 }
-.popover.in {
+.ideditor .popover.in {
     z-index: 5000;
     height: auto;
     display: block;
 }
-.tooltip.in {
+.ideditor .tooltip.in {
     opacity: 0.95;
 }
-.popover.top {
+.ideditor .popover.top {
     margin-top: -4px;
 }
-.popover.right {
+.ideditor .popover.right {
     margin-left: 4px;
 }
-.popover.bottom {
+.ideditor .popover.bottom {
     margin-top: 4px;
 }
-.popover.left {
+.ideditor .popover.left {
     margin-left: -4px;
 }
-.popover.arrowed.top {
+.ideditor .popover.arrowed.top {
     margin-top: -10px;
 }
-.popover.arrowed.right {
+.ideditor .popover.arrowed.right {
     margin-left: 10px;
 }
-.popover.arrowed.bottom {
+.ideditor .popover.arrowed.bottom {
     margin-top: 10px;
 }
-.popover.arrowed.left {
+.ideditor .popover.arrowed.left {
     margin-left: -10px;
 }
-.bar-button .tooltip.arrowed.bottom {
+.ideditor .bar-button .tooltip.arrowed.bottom {
     margin-top: 20px;
 }
-.tooltip.top {
+.ideditor .tooltip.top {
     text-align: center;
 }
-.tooltip.right {
+.ideditor .tooltip.right {
     text-align: left;
 }
-.tooltip.bottom {
+.ideditor .tooltip.bottom {
     text-align: center;
 }
-.tooltip.left {
+.ideditor .tooltip.left {
     text-align: right;
 }
 
-.popover-inner {
+.ideditor .popover-inner {
     border-radius: inherit;
 }
 
-.tooltip .popover-inner {
+.ideditor .tooltip .popover-inner {
     border-radius: 4px;
     max-width: 200px;
     min-width: 80px;
@@ -8067,7 +8044,7 @@ svg.mouseclick use.right {
     background-color: #fff;
 }
 
-.tail {
+.ideditor .tail {
     width: 200px;
     height: 400px;
     pointer-events: none;
@@ -8076,7 +8053,7 @@ svg.mouseclick use.right {
     position: absolute;
     background: transparent;
 }
-.tail::after {
+.ideditor .tail::after {
     content: "";
     position: absolute;
     width: 0;
@@ -8090,7 +8067,7 @@ svg.mouseclick use.right {
     border-width: 5px 0 5px 5px;
 }
 
-.tail div {
+.ideditor .tail div {
     border-radius: 3px;
     padding: 10px;
     background: #fff;
@@ -8101,7 +8078,7 @@ svg.mouseclick use.right {
     margin: auto;
 }
 
-.left.tail::after {
+.ideditor .left.tail::after {
     content: "";
     position: absolute;
     width: 0;
@@ -8114,46 +8091,46 @@ svg.mouseclick use.right {
     border-right-color: #fff;
     border-width: 5px 5px 5px 0;
 }
-.popover-arrow {
+.ideditor .popover-arrow {
     position: absolute;
     width: 0;
     height: 0;
     border-color: transparent;
     border-style: solid;
 }
-.popover.top .popover-arrow {
+.ideditor .popover.top .popover-arrow {
     bottom: -5px;
     left: 50%;
     margin-left: -5px;
     border-top-color: #fff;
     border-width: 5px 5px 0;
 }
-.popover.right .popover-arrow {
+.ideditor .popover.right .popover-arrow {
     top: 50%;
     left: -5px;
     margin-top: -5px;
     border-right-color: #fff;
     border-width: 5px 5px 5px 0;
 }
-.popover.left .popover-arrow {
+.ideditor .popover.left .popover-arrow {
     top: 50%;
     right: -5px;
     margin-top: -5px;
     border-left-color: #fff;
     border-width: 5px 0 5px 5px;
 }
-.popover.bottom .popover-arrow {
+.ideditor .popover.bottom .popover-arrow {
     top: -5px;
     left: 50%;
     margin-left: -5px;
     border-bottom-color: #fff;
     border-width: 0 5px 5px;
 }
-.popover:not(.arrowed) .popover-arrow {
+.ideditor .popover:not(.arrowed) .popover-arrow {
     display: none;
 }
 
-.tooltip-heading {
+.ideditor .tooltip-heading {
     font-weight: bold;
     background: #f6f6f6;
     padding: 10px;
@@ -8162,58 +8139,58 @@ svg.mouseclick use.right {
     font-size: 14px;
 }
 
-.keyhint-wrap {
+.ideditor .keyhint-wrap {
     background: #f6f6f6;
     padding: 10px;
     margin: 10px -10px -10px -10px;
     border-radius: 0 0 3px 3px;
 }
-.popover-inner .shortcut {
+.ideditor .popover-inner .shortcut {
     font-weight: bold;
     margin-left: 5px;
 }
 
-[dir='rtl'] .popover-inner .shortcut {
+.ideditor[dir='rtl'] .popover-inner .shortcut {
     margin-left: 0;
     margin-right: 5px;
 }
 
 /* dark tooltips for sidebar / panels */
-.tooltip.dark.top .popover-arrow,
-.map-pane .tooltip.top .popover-arrow,
-#sidebar .tooltip.top .popover-arrow {
+.ideditor .tooltip.dark.top .popover-arrow,
+.ideditor .map-pane .tooltip.top .popover-arrow,
+.ideditor #sidebar .tooltip.top .popover-arrow {
     border-top-color: #000;
 }
-.tooltip.dark.bottom .popover-arrow,
-.map-pane .tooltip.bottom .popover-arrow,
-#sidebar .tooltip.bottom .popover-arrow {
+.ideditor .tooltip.dark.bottom .popover-arrow,
+.ideditor .map-pane .tooltip.bottom .popover-arrow,
+.ideditor #sidebar .tooltip.bottom .popover-arrow {
     border-bottom-color: #000;
 }
-.tooltip.dark.left .popover-arrow,
-.map-pane .tooltip.left .popover-arrow,
-#sidebar .tooltip.left .popover-arrow {
+.ideditor .tooltip.dark.left .popover-arrow,
+.ideditor .map-pane .tooltip.left .popover-arrow,
+.ideditor #sidebar .tooltip.left .popover-arrow {
     border-left-color: #000;
 }
-.tooltip.dark.right .popover-arrow,
-.map-pane .tooltip.right .popover-arrow,
-#sidebar .tooltip.right .popover-arrow {
+.ideditor .tooltip.dark.right .popover-arrow,
+.ideditor .map-pane .tooltip.right .popover-arrow,
+.ideditor #sidebar .tooltip.right .popover-arrow {
     border-right-color: #000;
 }
-.tooltip.dark .popover-inner,
-.tooltip.dark .tooltip-heading,
-.tooltip.dark .keyhint-wrap,
-.map-pane .popover-inner,
-.map-pane .tooltip-heading,
-.map-pane .keyhint-wrap,
-#sidebar .popover-inner,
-#sidebar .tooltip-heading,
-#sidebar .keyhint-wrap {
+.ideditor .tooltip.dark .popover-inner,
+.ideditor .tooltip.dark .tooltip-heading,
+.ideditor .tooltip.dark .keyhint-wrap,
+.ideditor .map-pane .popover-inner,
+.ideditor .map-pane .tooltip-heading,
+.ideditor .map-pane .keyhint-wrap,
+.ideditor #sidebar .popover-inner,
+.ideditor #sidebar .tooltip-heading,
+.ideditor #sidebar .keyhint-wrap {
     background: #000;
     color: #ccc;
 }
-.tooltip.dark kbd,
-.map-pane .tooltip kbd,
-#sidebar .tooltip kbd {
+.ideditor .tooltip.dark kbd,
+.ideditor .map-pane .tooltip kbd,
+.ideditor #sidebar .tooltip kbd {
     background-color: #666;
     border: solid 1px #444;
     border-bottom-color: #333;
@@ -8224,27 +8201,27 @@ svg.mouseclick use.right {
 /* Exceptions for tooltip layouts */
 
 /* commit warning tooltips need to be closer */
-.warning-section .tooltip.top {
+.ideditor .warning-section .tooltip.top {
     margin-top: -5px;
 }
 
-li:first-of-type .badge .tooltip,
-li.hide + li.version .badge .tooltip {
+.ideditor li:first-of-type .badge .tooltip,
+.ideditor 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 {
+.ideditor[dir='rtl'] li:first-of-type .badge .tooltip,
+.ideditor[dir='rtl'] li.hide + li.version .badge .tooltip {
     left: 5px !important;
     right: auto !important;
 }
-li:first-of-type .badge .tooltip .popover-arrow,
-li.hide + li.version .badge .tooltip .popover-arrow {
+.ideditor li:first-of-type .badge .tooltip .popover-arrow,
+.ideditor li.hide + li.version .badge .tooltip .popover-arrow {
     right: 15px !important;
     left: auto !important;
 }
-[dir='rtl'] li:first-of-type .badge .tooltip .popover-arrow,
-[dir='rtl'] li.hide + li.version .badge .tooltip .popover-arrow {
+.ideditor[dir='rtl'] li:first-of-type .badge .tooltip .popover-arrow,
+.ideditor[dir='rtl'] li.hide + li.version .badge .tooltip .popover-arrow {
     left: 15px !important;
     right: auto !important;
 }
@@ -8252,39 +8229,39 @@ li.hide + li.version .badge .tooltip .popover-arrow {
 
 /* Contextual Radial Menu (deprecated)
 ------------------------------------------------------- */
-.radial-menu-tooltip {
+.ideditor .radial-menu-tooltip {
     opacity: 0.8;
     display: none;
     position: absolute;
     width: 200px;
 }
 
-.radial-menu-background {
+.ideditor .radial-menu-background {
     fill: none;
     stroke: black;
     stroke-opacity: 0.5;
 }
 
-.radial-menu-item circle {
+.ideditor .radial-menu-item circle {
     fill: #eee;
 }
 
-.radial-menu-item circle:active,
-.radial-menu-item circle:hover {
+.ideditor .radial-menu-item circle:active,
+.ideditor .radial-menu-item circle:hover {
     fill: #fff;
 }
 
-.radial-menu-item.disabled circle {
+.ideditor .radial-menu-item.disabled circle {
     cursor: auto;
     fill: rgba(255,255,255,.5);
 }
 
-.radial-menu-item use {
+.ideditor .radial-menu-item use {
     fill: #222;
     color: #79f;
 }
 
-.radial-menu-item.disabled use {
+.ideditor .radial-menu-item.disabled use {
     fill: rgba(32,32,32,.5);
     color: rgba(40,40,40,.5);
 }
@@ -8292,38 +8269,38 @@ li.hide + li.version .badge .tooltip .popover-arrow {
 
 /* Contextual Edit Menu
 ------------------------------------------------------- */
-.edit-menu-tooltip {
+.ideditor .edit-menu-tooltip {
     width: 200px;
 }
 
-.edit-menu-background {
+.ideditor .edit-menu-background {
     fill: #eee;
 }
 
-.edit-menu-item rect {
+.ideditor .edit-menu-item rect {
     fill: #eee;
     cursor: default;
 }
 
-.edit-menu-item rect:active,
-.edit-menu-item rect:hover {
+.ideditor .edit-menu-item rect:active,
+.ideditor .edit-menu-item rect:hover {
     fill: #ccc;
 }
 
-.edit-menu-item.disabled rect {
+.ideditor .edit-menu-item.disabled rect {
     cursor: not-allowed;
 }
-.edit-menu-item.disabled rect:hover {
+.ideditor .edit-menu-item.disabled rect:hover {
     cursor: not-allowed;
     fill: #eee;
 }
 
-.edit-menu-item use {
+.ideditor .edit-menu-item use {
     fill: #222;
     color: #79f;
     pointer-events: none;
 }
-.edit-menu-item.disabled use {
+.ideditor .edit-menu-item.disabled use {
     fill: rgba(32,32,32,.2);
     color: rgba(40,40,40,.2);
 }
@@ -8331,7 +8308,7 @@ li.hide + li.version .badge .tooltip .popover-arrow {
 
 /* Lasso
 ------------------------------------------------------- */
-.lasso-path {
+.ideditor .lasso-path {
     fill-opacity: 0.3;
     stroke: #fff;
     stroke-width: 1;
@@ -8342,7 +8319,7 @@ li.hide + li.version .badge .tooltip .popover-arrow {
 
 /* Scrollbars
  ----------------------------------------------------- */
-::-webkit-scrollbar {
+.ideditor ::-webkit-scrollbar {
     height: 20px;
     overflow: visible;
     width: 10px;
@@ -8350,35 +8327,35 @@ li.hide + li.version .badge .tooltip .popover-arrow {
     border-left: 1px solid #DDD;
 }
 
-::-webkit-scrollbar-track {
+.ideditor ::-webkit-scrollbar-track {
     background-clip: padding-box;
     border: solid transparent;
     border-width: 0;
 }
 
-::-webkit-scrollbar-thumb {
+.ideditor ::-webkit-scrollbar-thumb {
     background-color: rgba(0,0,0,.2);
     background-clip: padding-box;
     border: solid transparent;
     border-width: 3px 3px 3px 4px;
     border-radius: 6px;
 }
-::-webkit-scrollbar-track:hover,
-::-webkit-scrollbar-track:active {
+.ideditor ::-webkit-scrollbar-track:hover,
+.ideditor ::-webkit-scrollbar-track:active {
     background-color: rgba(0,0,0,.05);
 }
 
 
 /* Intro walkthrough
  ----------------------------------------------------- */
-.curtain-darkness {
+.ideditor .curtain-darkness {
     pointer-events: all;
     fill-opacity: 0.7;
     fill: #222;
     fill-rule: evenodd;
 }
 
-.intro-nav-wrap {
+.ideditor .intro-nav-wrap {
     display: flex;
     flex-direction: row;
     position: absolute;
@@ -8389,7 +8366,7 @@ li.hide + li.version .badge .tooltip .popover-arrow {
     z-index: 1001;
 }
 
-.intro-nav-wrap .intro-nav-wrap-logo {
+.ideditor .intro-nav-wrap .intro-nav-wrap-logo {
     flex: 0 0 auto;
     height: 40px;
     width: 40px;
@@ -8398,18 +8375,18 @@ li.hide + li.version .badge .tooltip .popover-arrow {
     vertical-align: middle;
 }
 
-.intro-nav-wrap .joined {
+.ideditor .intro-nav-wrap .joined {
     flex: 1 1 auto;
     display: flex;
     flex-direction: row;
 }
 
-.intro-nav-wrap button.chapter {
+.ideditor .intro-nav-wrap button.chapter {
     flex: 1 1 100%;
     padding: 0px 20px;
 }
 
-.intro-nav-wrap button.chapter.next {
+.ideditor .intro-nav-wrap button.chapter.next {
     animation-duration: 1s;
     animation-name: pulse;
     animation-iteration-count: infinite;
@@ -8420,36 +8397,36 @@ li.hide + li.version .badge .tooltip .popover-arrow {
     to    { background: #c6d4ff; }
 }
 
-.intro-nav-wrap button.chapter.finished {
+.ideditor .intro-nav-wrap button.chapter.finished {
     background: #8cd05f;
 }
 
-.intro-nav-wrap button.chapter .status {
+.ideditor .intro-nav-wrap button.chapter .status {
     display: none;
 }
 
-.intro-nav-wrap button.chapter.finished .status {
+.ideditor .intro-nav-wrap button.chapter.finished .status {
     display: inline-block;
 }
 
-.curtain-tooltip.tooltip.in {
+.ideditor .curtain-tooltip.tooltip.in {
     opacity: 1;
 }
-.curtain-tooltip.tooltip {
+.ideditor .curtain-tooltip.tooltip {
     text-align: left;
 }
-[dir='rtl'] .curtain-tooltip.tooltip {
+.ideditor[dir='rtl'] .curtain-tooltip.tooltip {
     text-align: right;
 }
 
-.curtain-tooltip .popover-inner {
+.ideditor .curtain-tooltip .popover-inner {
     font-size: 15px;
     position: relative;
     padding: 20px;
 }
 
-.curtain-tooltip .popover-inner .button-section,
-.curtain-tooltip .popover-inner .instruction {
+.ideditor .curtain-tooltip .popover-inner .button-section,
+.ideditor .curtain-tooltip .popover-inner .instruction {
     font-weight: bold;
     display: block;
     border-top: 1px solid #ccc;
@@ -8459,47 +8436,47 @@ li.hide + li.version .badge .tooltip .popover-arrow {
     padding: 10px 20px 0 20px;
 }
 
-.curtain-tooltip .popover-inner .button-section button {
+.ideditor .curtain-tooltip .popover-inner .button-section button {
     width: 66.6666%;
 }
 
-.curtain-tooltip .popover-inner .instruction:only-child {
+.ideditor .curtain-tooltip .popover-inner .instruction:only-child {
     border: 0;
     padding: 0;
     margin: 0;
 }
 
-.curtain-tooltip .popover-inner .icon.pre-text {
+.ideditor .curtain-tooltip .popover-inner .icon.pre-text {
     vertical-align: text-top;
     margin-right: 0;
     margin-left: 0;
     display: inline-block;
 }
 
-.curtain-tooltip.intro-points-describe ,
-.curtain-tooltip.intro-lines-name_road {
+.ideditor .curtain-tooltip.intro-points-describe,
+.ideditor .curtain-tooltip.intro-lines-name_road {
     top: 133px !important;
 }
 
-.tooltip-illustration {
+.ideditor .tooltip-illustration {
     height: 80px;
     width: 200px;
     margin-left: -20px;
     margin-top: -10px;
 }
-[dir='rtl'] .tooltip-illustration {
+.ideditor[dir='rtl'] .tooltip-illustration {
     margin-left: auto;
     margin-right: -20px;
 }
 
-.curtain-tooltip.intro-mouse {
+.ideditor .curtain-tooltip.intro-mouse {
     -moz-user-select: none;
     -webkit-user-select: none;
     -ms-user-select: none;
     user-select: none;
 }
 
-.curtain-tooltip.intro-mouse .counter {
+.ideditor .curtain-tooltip.intro-mouse .counter {
     position: absolute;
     display: block;
     top: 50px;
@@ -8510,34 +8487,34 @@ li.hide + li.version .badge .tooltip .popover-arrow {
     z-index: 1003;
 }
 
-.curtain-tooltip.intro-mouse .tooltip-illustration use {
+.ideditor .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 {
+.ideditor .curtain-tooltip.intro-mouse.leftclick .tooltip-illustration use {
     fill: rgba(112, 146, 255, 1);
 }
-.curtain-tooltip.intro-mouse.rightclick .tooltip-illustration use {
+.ideditor .curtain-tooltip.intro-mouse.rightclick .tooltip-illustration use {
     color: rgba(112, 146, 255, 1);
 }
 
-.huge-modal-button {
+.ideditor .huge-modal-button {
     width: 100%;
     height: auto;
     padding: 20px;
 }
 
-.huge-modal-button .illustration {
+.ideditor .huge-modal-button .illustration {
     height: 100px;
     width: 100px;
     color: #7092ff;
 }
 
 
-.list-item-photos.list-item-mapillary-map-features .request-data-link {
+.ideditor .list-item-photos.list-item-mapillary-map-features .request-data-link {
     float: right;
     margin-top: -20px;
 }
-[dir='rtl'] .list-item-photos.list-item-mapillary-map-features .request-data-link {
+.ideditor[dir='rtl'] .list-item-photos.list-item-mapillary-map-features .request-data-link {
     float: left;
 }
index 0fa54179da0c1c6de2f4bacfe329c9e514711cef..605eec5fe3579a0c53f16b09aa99ada206e92f4a 100644 (file)
 
        var defineProperties_1 = defineProperties$4;
 
+       /* eslint complexity: [2, 18], max-statements: [2, 33] */
+       var shams = function hasSymbols() {
+               if (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }
+               if (typeof Symbol.iterator === 'symbol') { return true; }
+
+               var obj = {};
+               var sym = Symbol('test');
+               var symObj = Object(sym);
+               if (typeof sym === 'string') { return false; }
+
+               if (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }
+               if (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }
+
+               // temp disabled per https://github.com/ljharb/object.assign/issues/17
+               // if (sym instanceof Symbol) { return false; }
+               // temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4
+               // if (!(symObj instanceof Symbol)) { return false; }
+
+               // if (typeof Symbol.prototype.toString !== 'function') { return false; }
+               // if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }
+
+               var symVal = 42;
+               obj[sym] = symVal;
+               for (sym in obj) { return false; } // eslint-disable-line no-restricted-syntax
+               if (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }
+
+               if (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }
+
+               var syms = Object.getOwnPropertySymbols(obj);
+               if (syms.length !== 1 || syms[0] !== sym) { return false; }
+
+               if (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }
+
+               if (typeof Object.getOwnPropertyDescriptor === 'function') {
+                       var descriptor = Object.getOwnPropertyDescriptor(obj, sym);
+                       if (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }
+               }
+
+               return true;
+       };
+
+       var origSymbol = commonjsGlobal.Symbol;
+
+
+       var hasSymbols$1 = function hasNativeSymbols() {
+               if (typeof origSymbol !== 'function') { return false; }
+               if (typeof Symbol !== 'function') { return false; }
+               if (typeof origSymbol('foo') !== 'symbol') { return false; }
+               if (typeof Symbol('bar') !== 'symbol') { return false; }
+
+               return shams();
+       };
+
        /* eslint no-invalid-this: 1 */
 
        var ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';
 
        var functionBind = Function.prototype.bind || implementation$2;
 
-       var src = functionBind.call(Function.call, Object.prototype.hasOwnProperty);
+       /* globals
+               Atomics,
+               SharedArrayBuffer,
+       */
+
+       var undefined$1;
+
+       var $TypeError = TypeError;
+
+       var $gOPD = Object.getOwnPropertyDescriptor;
+       if ($gOPD) {
+               try {
+                       $gOPD({}, '');
+               } catch (e) {
+                       $gOPD = null; // this is IE 8, which has a broken gOPD
+               }
+       }
+
+       var throwTypeError = function () { throw new $TypeError(); };
+       var ThrowTypeError = $gOPD
+               ? (function () {
+                       try {
+                               // eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties
+                               arguments.callee; // IE 8 does not throw here
+                               return throwTypeError;
+                       } catch (calleeThrows) {
+                               try {
+                                       // IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')
+                                       return $gOPD(arguments, 'callee').get;
+                               } catch (gOPDthrows) {
+                                       return throwTypeError;
+                               }
+                       }
+               }())
+               : throwTypeError;
+
+       var hasSymbols$2 = hasSymbols$1();
+
+       var getProto = Object.getPrototypeOf || function (x) { return x.__proto__; }; // eslint-disable-line no-proto
+       var generatorFunction =  undefined$1;
+       var asyncFunction =  undefined$1;
+       var asyncGenFunction =  undefined$1;
+
+       var TypedArray = typeof Uint8Array === 'undefined' ? undefined$1 : getProto(Uint8Array);
+
+       var INTRINSICS = {
+               '%Array%': Array,
+               '%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined$1 : ArrayBuffer,
+               '%ArrayBufferPrototype%': typeof ArrayBuffer === 'undefined' ? undefined$1 : ArrayBuffer.prototype,
+               '%ArrayIteratorPrototype%': hasSymbols$2 ? getProto([][Symbol.iterator]()) : undefined$1,
+               '%ArrayPrototype%': Array.prototype,
+               '%ArrayProto_entries%': Array.prototype.entries,
+               '%ArrayProto_forEach%': Array.prototype.forEach,
+               '%ArrayProto_keys%': Array.prototype.keys,
+               '%ArrayProto_values%': Array.prototype.values,
+               '%AsyncFromSyncIteratorPrototype%': undefined$1,
+               '%AsyncFunction%': asyncFunction,
+               '%AsyncFunctionPrototype%':  undefined$1,
+               '%AsyncGenerator%':  undefined$1,
+               '%AsyncGeneratorFunction%': asyncGenFunction,
+               '%AsyncGeneratorPrototype%':  undefined$1,
+               '%AsyncIteratorPrototype%':  undefined$1,
+               '%Atomics%': typeof Atomics === 'undefined' ? undefined$1 : Atomics,
+               '%Boolean%': Boolean,
+               '%BooleanPrototype%': Boolean.prototype,
+               '%DataView%': typeof DataView === 'undefined' ? undefined$1 : DataView,
+               '%DataViewPrototype%': typeof DataView === 'undefined' ? undefined$1 : DataView.prototype,
+               '%Date%': Date,
+               '%DatePrototype%': Date.prototype,
+               '%decodeURI%': decodeURI,
+               '%decodeURIComponent%': decodeURIComponent,
+               '%encodeURI%': encodeURI,
+               '%encodeURIComponent%': encodeURIComponent,
+               '%Error%': Error,
+               '%ErrorPrototype%': Error.prototype,
+               '%eval%': eval, // eslint-disable-line no-eval
+               '%EvalError%': EvalError,
+               '%EvalErrorPrototype%': EvalError.prototype,
+               '%Float32Array%': typeof Float32Array === 'undefined' ? undefined$1 : Float32Array,
+               '%Float32ArrayPrototype%': typeof Float32Array === 'undefined' ? undefined$1 : Float32Array.prototype,
+               '%Float64Array%': typeof Float64Array === 'undefined' ? undefined$1 : Float64Array,
+               '%Float64ArrayPrototype%': typeof Float64Array === 'undefined' ? undefined$1 : Float64Array.prototype,
+               '%Function%': Function,
+               '%FunctionPrototype%': Function.prototype,
+               '%Generator%':  undefined$1,
+               '%GeneratorFunction%': generatorFunction,
+               '%GeneratorPrototype%':  undefined$1,
+               '%Int8Array%': typeof Int8Array === 'undefined' ? undefined$1 : Int8Array,
+               '%Int8ArrayPrototype%': typeof Int8Array === 'undefined' ? undefined$1 : Int8Array.prototype,
+               '%Int16Array%': typeof Int16Array === 'undefined' ? undefined$1 : Int16Array,
+               '%Int16ArrayPrototype%': typeof Int16Array === 'undefined' ? undefined$1 : Int8Array.prototype,
+               '%Int32Array%': typeof Int32Array === 'undefined' ? undefined$1 : Int32Array,
+               '%Int32ArrayPrototype%': typeof Int32Array === 'undefined' ? undefined$1 : Int32Array.prototype,
+               '%isFinite%': isFinite,
+               '%isNaN%': isNaN,
+               '%IteratorPrototype%': hasSymbols$2 ? getProto(getProto([][Symbol.iterator]())) : undefined$1,
+               '%JSON%': typeof JSON === 'object' ? JSON : undefined$1,
+               '%JSONParse%': typeof JSON === 'object' ? JSON.parse : undefined$1,
+               '%Map%': typeof Map === 'undefined' ? undefined$1 : Map,
+               '%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols$2 ? undefined$1 : getProto(new Map()[Symbol.iterator]()),
+               '%MapPrototype%': typeof Map === 'undefined' ? undefined$1 : Map.prototype,
+               '%Math%': Math,
+               '%Number%': Number,
+               '%NumberPrototype%': Number.prototype,
+               '%Object%': Object,
+               '%ObjectPrototype%': Object.prototype,
+               '%ObjProto_toString%': Object.prototype.toString,
+               '%ObjProto_valueOf%': Object.prototype.valueOf,
+               '%parseFloat%': parseFloat,
+               '%parseInt%': parseInt,
+               '%Promise%': typeof Promise === 'undefined' ? undefined$1 : Promise,
+               '%PromisePrototype%': typeof Promise === 'undefined' ? undefined$1 : Promise.prototype,
+               '%PromiseProto_then%': typeof Promise === 'undefined' ? undefined$1 : Promise.prototype.then,
+               '%Promise_all%': typeof Promise === 'undefined' ? undefined$1 : Promise.all,
+               '%Promise_reject%': typeof Promise === 'undefined' ? undefined$1 : Promise.reject,
+               '%Promise_resolve%': typeof Promise === 'undefined' ? undefined$1 : Promise.resolve,
+               '%Proxy%': typeof Proxy === 'undefined' ? undefined$1 : Proxy,
+               '%RangeError%': RangeError,
+               '%RangeErrorPrototype%': RangeError.prototype,
+               '%ReferenceError%': ReferenceError,
+               '%ReferenceErrorPrototype%': ReferenceError.prototype,
+               '%Reflect%': typeof Reflect === 'undefined' ? undefined$1 : Reflect,
+               '%RegExp%': RegExp,
+               '%RegExpPrototype%': RegExp.prototype,
+               '%Set%': typeof Set === 'undefined' ? undefined$1 : Set,
+               '%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols$2 ? undefined$1 : getProto(new Set()[Symbol.iterator]()),
+               '%SetPrototype%': typeof Set === 'undefined' ? undefined$1 : Set.prototype,
+               '%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined$1 : SharedArrayBuffer,
+               '%SharedArrayBufferPrototype%': typeof SharedArrayBuffer === 'undefined' ? undefined$1 : SharedArrayBuffer.prototype,
+               '%String%': String,
+               '%StringIteratorPrototype%': hasSymbols$2 ? getProto(''[Symbol.iterator]()) : undefined$1,
+               '%StringPrototype%': String.prototype,
+               '%Symbol%': hasSymbols$2 ? Symbol : undefined$1,
+               '%SymbolPrototype%': hasSymbols$2 ? Symbol.prototype : undefined$1,
+               '%SyntaxError%': SyntaxError,
+               '%SyntaxErrorPrototype%': SyntaxError.prototype,
+               '%ThrowTypeError%': ThrowTypeError,
+               '%TypedArray%': TypedArray,
+               '%TypedArrayPrototype%': TypedArray ? TypedArray.prototype : undefined$1,
+               '%TypeError%': $TypeError,
+               '%TypeErrorPrototype%': $TypeError.prototype,
+               '%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined$1 : Uint8Array,
+               '%Uint8ArrayPrototype%': typeof Uint8Array === 'undefined' ? undefined$1 : Uint8Array.prototype,
+               '%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined$1 : Uint8ClampedArray,
+               '%Uint8ClampedArrayPrototype%': typeof Uint8ClampedArray === 'undefined' ? undefined$1 : Uint8ClampedArray.prototype,
+               '%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined$1 : Uint16Array,
+               '%Uint16ArrayPrototype%': typeof Uint16Array === 'undefined' ? undefined$1 : Uint16Array.prototype,
+               '%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined$1 : Uint32Array,
+               '%Uint32ArrayPrototype%': typeof Uint32Array === 'undefined' ? undefined$1 : Uint32Array.prototype,
+               '%URIError%': URIError,
+               '%URIErrorPrototype%': URIError.prototype,
+               '%WeakMap%': typeof WeakMap === 'undefined' ? undefined$1 : WeakMap,
+               '%WeakMapPrototype%': typeof WeakMap === 'undefined' ? undefined$1 : WeakMap.prototype,
+               '%WeakSet%': typeof WeakSet === 'undefined' ? undefined$1 : WeakSet,
+               '%WeakSetPrototype%': typeof WeakSet === 'undefined' ? undefined$1 : WeakSet.prototype
+       };
+
+
+       var $replace = functionBind.call(Function.call, String.prototype.replace);
+
+       /* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */
+       var rePropName = /[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g;
+       var reEscapeChar = /\\(\\)?/g; /** Used to match backslashes in property paths. */
+       var stringToPath = function stringToPath(string) {
+               var result = [];
+               $replace(string, rePropName, function (match, number, quote, subString) {
+                       result[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : (number || match);
+               });
+               return result;
+       };
+       /* end adaptation */
+
+       var getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {
+               if (!(name in INTRINSICS)) {
+                       throw new SyntaxError('intrinsic ' + name + ' does not exist!');
+               }
+
+               // istanbul ignore if // hopefully this is impossible to test :-)
+               if (typeof INTRINSICS[name] === 'undefined' && !allowMissing) {
+                       throw new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');
+               }
+
+               return INTRINSICS[name];
+       };
+
+       var GetIntrinsic = function GetIntrinsic(name, allowMissing) {
+               if (typeof name !== 'string' || name.length === 0) {
+                       throw new TypeError('intrinsic name must be a non-empty string');
+               }
+               if (arguments.length > 1 && typeof allowMissing !== 'boolean') {
+                       throw new TypeError('"allowMissing" argument must be a boolean');
+               }
+
+               var parts = stringToPath(name);
+
+               var value = getBaseIntrinsic('%' + (parts.length > 0 ? parts[0] : '') + '%', allowMissing);
+               for (var i = 1; i < parts.length; i += 1) {
+                       if (value != null) {
+                               if ($gOPD && (i + 1) >= parts.length) {
+                                       var desc = $gOPD(value, parts[i]);
+                                       if (!allowMissing && !(parts[i] in value)) {
+                                               throw new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');
+                                       }
+                                       value = desc ? (desc.get || desc.value) : value[parts[i]];
+                               } else {
+                                       value = value[parts[i]];
+                               }
+                       }
+               }
+               return value;
+       };
+
+       var $Function = GetIntrinsic('%Function%');
+       var $apply = $Function.apply;
+       var $call = $Function.call;
+
+       var callBind = function callBind() {
+               return functionBind.apply($call, arguments);
+       };
+
+       var apply = function applyBind() {
+               return functionBind.apply($apply, arguments);
+       };
+       callBind.apply = apply;
+
+       var $indexOf = callBind(GetIntrinsic('String.prototype.indexOf'));
+
+       var callBound = function callBoundIntrinsic(name, allowMissing) {
+               var intrinsic = GetIntrinsic(name, !!allowMissing);
+               if (typeof intrinsic === 'function' && $indexOf(name, '.prototype.')) {
+                       return callBind(intrinsic);
+               }
+               return intrinsic;
+       };
+
+       var $test = GetIntrinsic('RegExp.prototype.test');
+
+
+
+       var regexTester = function regexTester(regex) {
+               return callBind($test, regex);
+       };
 
        var isPrimitive = function isPrimitive(value) {
                return value === null || (typeof value !== 'function' && typeof value !== 'object');
        };
 
+       var isPrimitive$1 = function isPrimitive(value) {
+               return value === null || (typeof value !== 'function' && typeof value !== 'object');
+       };
+
        var fnToStr = Function.prototype.toString;
 
        var constructorRegex = /^\s*class\b/;
        };
 
        var getDay = Date.prototype.getDay;
-       var tryDateObject = function tryDateObject(value) {
+       var tryDateObject = function tryDateGetDayCall(value) {
                try {
                        getDay.call(value);
                        return true;
        var hasToStringTag$1 = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol';
 
        var isDateObject = function isDateObject(value) {
-               if (typeof value !== 'object' || value === null) { return false; }
-               return hasToStringTag$1 ? tryDateObject(value) : toStr$5.call(value) === dateClass;
-       };
-
-       /* eslint complexity: [2, 18], max-statements: [2, 33] */
-       var shams = function hasSymbols() {
-               if (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }
-               if (typeof Symbol.iterator === 'symbol') { return true; }
-
-               var obj = {};
-               var sym = Symbol('test');
-               var symObj = Object(sym);
-               if (typeof sym === 'string') { return false; }
-
-               if (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }
-               if (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }
-
-               // temp disabled per https://github.com/ljharb/object.assign/issues/17
-               // if (sym instanceof Symbol) { return false; }
-               // temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4
-               // if (!(symObj instanceof Symbol)) { return false; }
-
-               // if (typeof Symbol.prototype.toString !== 'function') { return false; }
-               // if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }
-
-               var symVal = 42;
-               obj[sym] = symVal;
-               for (sym in obj) { return false; } // eslint-disable-line no-restricted-syntax
-               if (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }
-
-               if (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }
-
-               var syms = Object.getOwnPropertySymbols(obj);
-               if (syms.length !== 1 || syms[0] !== sym) { return false; }
-
-               if (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }
-
-               if (typeof Object.getOwnPropertyDescriptor === 'function') {
-                       var descriptor = Object.getOwnPropertyDescriptor(obj, sym);
-                       if (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }
+               if (typeof value !== 'object' || value === null) {
+                       return false;
                }
-
-               return true;
-       };
-
-       var origSymbol = commonjsGlobal.Symbol;
-
-
-       var hasSymbols$1 = function hasNativeSymbols() {
-               if (typeof origSymbol !== 'function') { return false; }
-               if (typeof Symbol !== 'function') { return false; }
-               if (typeof origSymbol('foo') !== 'symbol') { return false; }
-               if (typeof Symbol('bar') !== 'symbol') { return false; }
-
-               return shams();
+               return hasToStringTag$1 ? tryDateObject(value) : toStr$5.call(value) === dateClass;
        };
 
        var isSymbol$2 = createCommonjsModule(function (module) {
        }
        });
 
-       var hasSymbols$2 = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol';
+       var hasSymbols$3 = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol';
 
 
 
                        method = O[methodNames[i]];
                        if (isCallable(method)) {
                                result = method.call(O);
-                               if (isPrimitive(result)) {
+                               if (isPrimitive$1(result)) {
                                        return result;
                                }
                        }
 
        // http://www.ecma-international.org/ecma-262/6.0/#sec-toprimitive
        var es2015 = function ToPrimitive(input) {
-               if (isPrimitive(input)) {
+               if (isPrimitive$1(input)) {
                        return input;
                }
                var hint = 'default';
                }
 
                var exoticToPrim;
-               if (hasSymbols$2) {
+               if (hasSymbols$3) {
                        if (Symbol.toPrimitive) {
                                exoticToPrim = GetMethod(input, Symbol.toPrimitive);
                        } else if (isSymbol$2(input)) {
                }
                if (typeof exoticToPrim !== 'undefined') {
                        var result = exoticToPrim.call(input, hint);
-                       if (isPrimitive(result)) {
+                       if (isPrimitive$1(result)) {
                                return result;
                        }
                        throw new TypeError('unable to convert exotic object to primitive');
                return ordinaryToPrimitive(input, hint === 'default' ? 'number' : hint);
        };
 
-       var es6 = es2015;
+       // https://www.ecma-international.org/ecma-262/6.0/#sec-toprimitive
 
-       var objectInspect = function inspect_ (obj, opts, depth, seen) {
-           if (!opts) { opts = {}; }
-           
-           var maxDepth = opts.depth === undefined ? 5 : opts.depth;
-           if (depth === undefined) { depth = 0; }
-           if (depth > maxDepth && maxDepth > 0) { return '...'; }
-           
-           if (seen === undefined) { seen = []; }
-           else if (indexOf$2(seen, obj) >= 0) {
-               return '[Circular]';
-           }
-           
-           function inspect (value, from) {
-               if (from) {
-                   seen = seen.slice();
-                   seen.push(from);
-               }
-               return inspect_(value, opts, depth + 1, seen);
-           }
-           
-           if (typeof obj === 'string') {
-               return inspectString(obj);
-           }
-           else if (typeof obj === 'function') {
-               var name = nameOf(obj);
-               return '[Function' + (name ? ': ' + name : '') + ']';
-           }
-           else if (obj === null) {
-               return 'null';
-           }
-           else if (isElement(obj)) {
-               var s = '<' + String(obj.nodeName).toLowerCase();
-               var attrs = obj.attributes || [];
-               for (var i = 0; i < attrs.length; i++) {
-                   s += ' ' + attrs[i].name + '="' + quote(attrs[i].value) + '"';
-               }
-               s += '>';
-               if (obj.childNodes && obj.childNodes.length) { s += '...'; }
-               s += '</' + String(obj.tagName).toLowerCase() + '>';
-               return s;
-           }
-           else if (isArray$3(obj)) {
-               if (obj.length === 0) { return '[]'; }
-               var xs = Array(obj.length);
-               for (var i = 0; i < obj.length; i++) {
-                   xs[i] = has$1(obj, i) ? inspect(obj[i], obj) : '';
-               }
-               return '[ ' + xs.join(', ') + ' ]';
-           }
-           else if (typeof obj === 'object' && typeof obj.inspect === 'function') {
-               return obj.inspect();
-           }
-           else if (typeof obj === 'object' && !isDate(obj) && !isRegExp(obj)) {
-               var xs = [], keys = [];
-               for (var key in obj) {
-                   if (has$1(obj, key)) { keys.push(key); }
-               }
-               keys.sort();
-               for (var i = 0; i < keys.length; i++) {
-                   var key = keys[i];
-                   if (/[^\w$]/.test(key)) {
-                       xs.push(inspect(key) + ': ' + inspect(obj[key], obj));
-                   }
-                   else { xs.push(key + ': ' + inspect(obj[key], obj)); }
-               }
-               if (xs.length === 0) { return '{}'; }
-               return '{ ' + xs.join(', ') + ' }';
-           }
-           else { return String(obj); }
+       var ToPrimitive = function ToPrimitive(input) {
+               if (arguments.length > 1) {
+                       return es2015(input, arguments[1]);
+               }
+               return es2015(input);
        };
 
-       function quote (s) {
-           return String(s).replace(/"/g, '&quot;');
-       }
-
-       function isArray$3 (obj) {
-           return {}.toString.call(obj) === '[object Array]';
-       }
-
-       function isDate (obj) {
-           return {}.toString.call(obj) === '[object Date]';
-       }
+       var $TypeError$1 = GetIntrinsic('%TypeError%');
+       var $Number = GetIntrinsic('%Number%');
+       var $RegExp = GetIntrinsic('%RegExp%');
+       var $parseInteger = GetIntrinsic('%parseInt%');
 
-       function isRegExp (obj) {
-           return {}.toString.call(obj) === '[object RegExp]';
-       }
 
-       function has$1 (obj, key) {
-           if (!{}.hasOwnProperty) { return key in obj; }
-           return {}.hasOwnProperty.call(obj, key);
-       }
 
-       function nameOf (f) {
-           if (f.name) { return f.name; }
-           var m = f.toString().match(/^function\s*([\w$]+)/);
-           if (m) { return m[1]; }
-       }
 
-       function indexOf$2 (xs, x) {
-           if (xs.indexOf) { return xs.indexOf(x); }
-           for (var i = 0, l = xs.length; i < l; i++) {
-               if (xs[i] === x) { return i; }
-           }
-           return -1;
-       }
 
-       function isElement (x) {
-           if (!x || typeof x !== 'object') { return false; }
-           if (typeof HTMLElement !== 'undefined') {
-               return x instanceof HTMLElement;
-           }
-           else { return typeof x.nodeName === 'string'
-               && typeof x.getAttribute === 'function'
-           ; }
-       }
+       var $strSlice = callBound('String.prototype.slice');
+       var isBinary = regexTester(/^0b[01]+$/i);
+       var isOctal = regexTester(/^0o[0-7]+$/i);
+       var isInvalidHexLiteral = regexTester(/^[-+]0x[0-9a-f]+$/i);
+       var nonWS = ['\u0085', '\u200b', '\ufffe'].join('');
+       var nonWSregex = new $RegExp('[' + nonWS + ']', 'g');
+       var hasNonWS = regexTester(nonWSregex);
 
-       function inspectString (str) {
-           var s = str.replace(/(['\\])/g, '\\$1').replace(/[\x00-\x1f]/g, lowbyte);
-           return "'" + s + "'";
-           
-           function lowbyte (c) {
-               var n = c.charCodeAt(0);
-               var x = { 8: 'b', 9: 't', 10: 'n', 12: 'f', 13: 'r' }[n];
-               if (x) { return '\\' + x; }
-               return '\\x' + (n < 0x10 ? '0' : '') + n.toString(16);
-           }
-       }
+       // whitespace from: https://es5.github.io/#x15.5.4.20
+       // implementation from https://github.com/es-shims/es5-shim/blob/v3.4.0/es5-shim.js#L1304-L1324
+       var ws = [
+               '\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003',
+               '\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028',
+               '\u2029\uFEFF'
+       ].join('');
+       var trimRegex = new RegExp('(^[' + ws + ']+)|([' + ws + ']+$)', 'g');
+       var $replace$1 = callBound('String.prototype.replace');
+       var $trim = function (value) {
+               return $replace$1(value, trimRegex, '');
+       };
 
-       /* globals
-               Atomics,
-               SharedArrayBuffer,
-       */
 
-       var undefined$1;
 
-       var $TypeError = TypeError;
+       // https://www.ecma-international.org/ecma-262/6.0/#sec-tonumber
 
-       var throwTypeError = function () { throw new $TypeError(); };
-       var ThrowTypeError = Object.getOwnPropertyDescriptor
-               ? (function () {
-                       try {
-                               // eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties
-                               arguments.callee; // IE 8 does not throw here
-                               return throwTypeError;
-                       } catch (calleeThrows) {
-                               try {
-                                       // IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')
-                                       return Object.getOwnPropertyDesc