+.viewfield-group circle {
+ stroke: #555;
+ stroke-width: 1;
+ stroke-opacity: 0.4;
+ fill-opacity: 0.4;
+}
+.viewfield-group.highlighted circle {
+ stroke: #222;
+ stroke-opacity: 0.9;
+ fill-opacity: 0.9;
+}
+.viewfield-group.highlighted.hovered circle {
+ stroke: #222;
+ stroke-width: 2;
+ stroke-opacity: 0.9;
+ fill-opacity: 0.9;
+}
+.viewfield-group.highlighted.selected circle {
+ stroke: #222;
+ stroke-width: 2;
+ stroke-opacity: 1;
+ fill-opacity: 1;
+}
+
+.viewfield-group .viewfield {
+ stroke-width: 0;
+ stroke: #222;
+ fill-opacity: 0.4;
+}
+.viewfield-group.highlighted .viewfield {
+ stroke-width: 1;
+ fill-opacity: 0.8;
+}
+.viewfield-group.highlighted.hovered .viewfield {
+ stroke-width: 1;
+ fill-opacity: 0.8;
+}
+.viewfield-group.highlighted.selected .viewfield {
+ stroke-width: 1;
+ fill-opacity: 0.9;
+}
+
+.viewfield-group.selected .viewfield-scale {
+ transform: scale(2,2);
+}
+
+.sequence {
+ fill: none;
+ stroke-width: 2;
+ stroke-opacity: 0.4;
+}
+.sequence.highlighted,
+.sequence.selected {
+ stroke-width: 4;
+ stroke-opacity: 1;
+}
+
+
+/* Streetside Image Layer */
+.layer-streetside-images {
+ pointer-events: none;
+}
+.layer-streetside-images .viewfield-group * {
+ fill: #0fffc4;
+}
+.layer-streetside-images .sequence {
+ stroke: #0fffc4;
+ stroke-opacity: 0.85; /* bump opacity - only one per road */
+}
+
+
+/* Mapillary Image Layer */
+.layer-mapillary-images {
+ pointer-events: none;
+}
+.layer-mapillary-images .viewfield-group * {
+ fill: #55ff22;
+}
+.layer-mapillary-images .sequence {
+ stroke: #55ff22;
+}
+
+
+/* Mapillary Sign Layer */
+.layer-mapillary-signs {
+ pointer-events: none;
+}
+.layer-mapillary-signs .icon-sign {
+ outline: 2px solid transparent;
+ pointer-events: visible;
+ cursor: pointer;
+}
+.layer-mapillary-signs .icon-sign:hover {
+ outline: 5px solid #eebb00;
+ background-color: #eebb00;
+}
+.layer-mapillary-signs .icon-sign.selected {
+ outline: 5px solid #ffee00;
+ background-color: #ffee00;
+}
+
+
+/* OpenStreetCam Image Layer */
+.layer-openstreetcam-images {
+ pointer-events: none;
+}
+.layer-openstreetcam-images .viewfield-group * {
+ fill: #20c4ff;
+}
+.layer-openstreetcam-images .sequence {
+ stroke: #20c4ff;
+}
+
+
+/* Streetside Viewer (pannellum) */
+.ms-wrapper .photo-attribution .image-link {
+ display: block;
+}
+.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 {
+ text-align: left;
+ margin: 0 5px;
+}
+.ms-wrapper .photo-attribution .image-report-link {
+ text-align: right;
+}
+
+.ms-wrapper .photo-attribution a:active,
+.ms-wrapper .photo-attribution a:hover {
+ color: #0fffc4;
+}
+
+.ms-wrapper .pnlm-compass.pnlm-control {
+ width: 26px;
+ height: 26px;
+ left: 4px;
+ top: 60px;
+ background-size: contain;
+ background-repeat: no-repeat no-repeat;
+}
+
+label.streetside-hires {
+ cursor: pointer;
+}
+.streetside-hires span {
+ margin-top: 2px;
+}
+.streetside-hires input[type="checkbox"] {
+ float: left;
+ width: 12px;
+ height: 12px;
+ margin: 0 5px;
+}
+
+
+/* Mapillary viewer */
+#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 {
+ /* 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 {
+ color: #35af6d;
+}
+
+.mly-wrapper .mapillary-js-dom {
+ z-index: 9;
+}
+
+
+/* OpenStreetCam viewer */
+.osc-wrapper {
+ position: relative;
+ background-color: #000;
+ background-image: url(<%= asset_path("iD/img/loader-black.gif") %>);
+ background-position: center;
+ background-repeat: no-repeat;
+}
+
+.osc-wrapper .photo-attribution a:active,
+.osc-wrapper .photo-attribution a:hover {
+ color: #20c4ff;
+}
+
+.osc-image-wrap {
+ width: 100%;
+ height: 100%;
+ transform-origin:0 0;
+ -ms-transform-origin:0 0;
+ -webkit-transform-origin:0 0;
+ -moz-transform-origin:0 0;
+ -o-transform-origin:0 0;
+}
+
+
+/* photo-controls (step forward, back, rotate) */
+.photo-controls-wrap {
+ text-align: center;
+ position: absolute;
+ top: 10px;
+ width: 100%;
+ z-index: 10;
+}
+
+.photo-controls {
+ display: inline-block;
+ z-index: 10;
+}
+
+.photo-controls button,
+.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 {
+ border-radius: 3px 0 0 3px;
+}
+.photo-controls button:last-of-type {
+ border-radius: 0 3px 3px 0;
+}
+.photo-controls button:hover,
+.photo-controls button:active {
+ background: rgba(0,0,0,0.85);
+ color: #fff;
+}
+
+/* OSM Notes and KeepRight Layers */
+
+.kr_error-header-icon .kr_error-fill,
+.layer-keepRight .kr_error .kr_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 {
+ color: #f30;
+ stroke: #333;
+ stroke-width: 40px;
+}
+.note-header-icon.new .note-fill,
+.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 {
+ color: #5d0;
+ stroke: #333;
+ stroke-width: 40px;
+}
+
+/* slight adjustments to preset icon for note icons */
+.note-header-icon .preset-icon-28 {
+ top: 18px;
+}
+.note-header-icon .note-icon-annotation {
+ position: absolute;
+ top: 22px;
+ left: 22px;
+ margin: auto;
+}
+.note-header-icon .note-icon-annotation .icon {
+ width: 15px;
+ height: 15px;
+}
+
+
+/* Keep Right Errors
+------------------------------------------------------- */
+.kr_error_type_20, /* multiple nodes on same spot */
+.kr_error_type_40, /* impossible oneways */
+.kr_error_type_210, /* self intersecting ways */
+.kr_error_type_270, /* unusual motorway connection */
+.kr_error_type_310, /* roundabout issues */
+.kr_error_type_320, /* improper _link */
+.kr_error_type_350 { /* improper bridge tag */
+ color: #ff9;
+}
+
+.kr_error_type_50 { /* almost junctions */
+ color: #88f;
+}
+
+.kr_error_type_60, /* deprecated tags */
+.kr_error_type_70, /* tagging issues */
+.kr_error_type_90, /* motorway without ref */
+.kr_error_type_100, /* place of worship without religion */
+.kr_error_type_110, /* poi without name */
+.kr_error_type_150, /* railway crossing without tag */
+.kr_error_type_220, /* misspelled tag */
+.kr_error_type_380 { /* non-physical sport tag */
+ color: #5d0;
+}
+
+.kr_error_type_130 { /* disconnected ways */
+ color: #fa3;
+}
+
+.kr_error_type_170 { /* FIXME tag */
+ color: #ff0;
+}
+
+.kr_error_type_190 { /* intersection without junction */
+ color: #f33;
+}
+
+.kr_error_type_200 { /* overlapping ways */
+ color: #fdbf6f;
+}
+
+.kr_error_type_160, /* railway layer conflict */
+.kr_error_type_230 { /* layer conflict */
+ color: #b60;
+}
+
+.kr_error_type_280 { /* boundary issues */
+ color: #5f47a0;
+}
+
+.kr_error_type_180, /* relation without type */
+.kr_error_type_290 { /* turn restriction issues */
+ color: #ace;
+}
+
+.kr_error_type_300, /* missing maxspeed */
+.kr_error_type_390 { /* missing tracktype */
+ color: #090;
+}
+
+.kr_error_type_360, /* language unknown */
+.kr_error_type_370, /* doubled places */
+.kr_error_type_410 { /* website issues */
+ color: #f9b;
+}
+
+.kr_error_type_120, /* way without nodes */
+.kr_error_type_400 { /* geometry / turn angles */
+ color: #c35;
+}
+
+
+/* Custom Map Data (geojson, gpx, kml, vector tile) */
+.layer-mapdata {
+ pointer-events: none;
+}
+
+.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 {
+ pointer-events: fill;
+ fill: #f6634f;
+ fill-opacity: 0;
+}
+.layer-mapdata path.shadow.hover:not(.selected) {
+ stroke-opacity: 0.4;
+}
+.layer-mapdata path.shadow.selected {
+ stroke-opacity: 0.7;
+}
+
+.layer-mapdata path.stroke {
+ stroke: #ff26d4;
+ stroke-width: 2;
+ fill: none;
+}
+
+.layer-mapdata path.fill {
+ stroke-width: 0;
+ stroke-opacity: 0.3;
+ stroke: #ff26d4;
+ fill: #ff26d4;
+ fill-opacity: 0.3;
+ fill-rule: evenodd;
+}
+
+.layer-mapdata text.label-halo,
+.layer-mapdata text.label {
+ font-size: 10px;
+ font-weight: bold;
+ dominant-baseline: middle;
+}
+.layer-mapdata text.label {
+ fill: #ff26d4;
+}
+.layer-mapdata text.label.hover,
+.layer-mapdata text.label.selected {
+ fill: #f6634f;
+}
+.layer-mapdata text.label-halo {
+ opacity: 0.7;
+ stroke: #000;
+ stroke-width: 5px;
+ stroke-miterlimit: 1;
+}
+
+/* Fill Styles */
+
+.low-zoom.fill-wireframe path.stroke,
+.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 {
+ stroke-width: 2 !important;
+ stroke-opacity: 1 !important;
+}