+.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 Layer */
+.layer-notes {
+ pointer-events: none;
+}
+.layer-notes .note * {
+ pointer-events: none;
+}
+.mode-browse .layer-notes .note .note-fill,
+.mode-select .layer-notes .note .note-fill,
+.mode-select-data .layer-notes .note .note-fill,
+.mode-select-note .layer-notes .note .note-fill {
+ pointer-events: visible;
+ cursor: pointer; /* Opera */
+ cursor: url(<%= asset_path("iD/img/cursor-select-point.png") %>), pointer; /* FF */
+}
+
+.note-header-icon .note-shadow,
+.layer-notes .note .note-shadow {
+ color: #000;
+}
+.note-header-icon .note-fill,
+.layer-notes .note .note-fill {
+ color: #ff3300;
+ stroke: #333;
+ stroke-width: 40px;
+}
+.note-header-icon.new .note-fill,
+.layer-notes .note.new .note-fill {
+ color: #ffee00;
+ stroke: #333;
+ stroke-width: 40px;
+}
+.note-header-icon.closed .note-fill,
+.layer-notes .note.closed .note-fill {
+ color: #55dd00;
+ 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;
+}
+
+
+/* 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;
+}
+
+.low-zoom.fill-wireframe path.shadow,
+.fill-wireframe path.shadow {
+ stroke-width: 12;
+}
+
+.fill-wireframe path.shadow.related:not(.selected),
+.fill-wireframe path.shadow.hover:not(.selected) {
+ stroke-opacity: 0.4;
+}
+.fill-wireframe path.shadow.selected {
+ stroke-opacity: 0.6;
+}
+
+.fill-wireframe .point,
+.fill-wireframe .vertex.active,
+.fill-wireframe .areaicon,
+.fill-wireframe .areaicon-halo,
+.fill-wireframe path.casing,
+.fill-wireframe path.fill,
+.fill-wireframe path.oneway {
+ display: none !important;
+}
+
+.fill-partial path.area.fill {
+ fill-opacity: 0;
+ stroke-width: 60px;
+ pointer-events: none;
+}
+.mode-browse .fill-partial path.area.fill,
+.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%;
+ height: 100%;