/*
 * Copyright (c) 2015 The Chromium Authors. All rights reserved.
 * Use of this source code is governed by a BSD-style license that can be
 * found in the LICENSE file.
 */

.sensors-view {
  padding: 12px;
  display: block;
}

.sensors-view input {
  width: 100%;
  max-width: 120px;
  margin: -5px 10px 0px 0px;
  text-align: end;
}

.sensors-view input[readonly] {
  background-color: rgb(235, 235, 228);
}

.sensors-view fieldset {
  border: none;
  padding: 10px 0px;
  margin-left: 0;
  flex: 0 0 auto;
  margin: 0;
}

.sensors-view fieldset[disabled] {
  opacity: 0.5;
}

.sensors-view input:focus::-webkit-input-placeholder {
  color: transparent !important;
}

.sensors-view .chrome-select {
  width: 200px;
}

.sensors-group-title {
  width: 80px;
  line-height: 24px;
}

.sensors-group {
  display: flex;
  flex-wrap: wrap;
  margin-bottom: 10px;
}

.geo-fields {
  flex: 2 0 200px;
}

.latlong-group {
  display: flex;
  margin-bottom: 10px;
}

.latlong-title {
  width: 70px;
}

.timezone-error {
  margin-left: 10px;
  color: var(--input-validation-error);
}

/* Device Orientation */

.orientation-content {
  display: flex;
  flex-wrap: wrap;
}

.orientation-fields {
  margin-right: 10px;
}

.orientation-stage {
  -webkit-perspective: 700px;
  -webkit-perspective-origin: 50% 50%;
  width: 160px;
  height: 150px;
  background: linear-gradient(#E1F5FE 0%, #E1F5FE 64%, #b0Ebf3 64%, #DEF6F9 100%);
  transition: 0.2s ease opacity, 0.2s ease -webkit-filter;
  overflow: hidden;
  margin-bottom: 10px;
}

.orientation-stage.disabled {
  -webkit-filter: grayscale();
  opacity: 0.5;
  cursor: default !important;
}

.orientation-element,
.orientation-element::before,
.orientation-element::after{
  position: absolute;
  box-sizing: border-box;
  transform-style: preserve-3d;
  background: no-repeat;
  background-size: cover;
  backface-visibility: hidden;
}

.orientation-box {
  width: 62px;
  height: 122px;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  margin: auto;
  transform: rotate3d(1, 0, 0, 90deg);
}

.orientation-box.is-animating, .is-animating .orientation-layer {
  transition: transform 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;
}

.orientation-layer {
  width: 100%;
  height: 100%;
  transform-style: preserve-3d;
}

.orientation-front,
.orientation-back
{
  width: 62px;
  height: 122px;
  border-radius: 8px;
}

.orientation-front {
  background-image: url(Images/accelerometer-front.svg);
}

.orientation-back {
  transform: rotateY(180deg) translateZ(8px);
  background-image: url(Images/accelerometer-back.svg);
}


.orientation-left,
.orientation-right {
  width: 8px;
  height: 106px;
  top: 8px;
  background-position: center center;
}

.orientation-left {
  left: -8px;
  transform-origin: right center;
  transform: rotateY(-90deg);
  background-image: url(Images/accelerometer-left.png);
}


.orientation-right {
  right: -8px;
  transform-origin: left center;
  transform: rotateY(90deg);
  background-image: url(Images/accelerometer-right.png);
}

.orientation-left::before,
.orientation-left::after,
.orientation-right::before,
.orientation-right::after
{
  content: '';
  width: 8px;
  height: 6px;
}

.orientation-left::before,
.orientation-left::after
{
  background-image: url(Images/accelerometer-left.png);
}

.orientation-right::before,
.orientation-right::after
{
  background-image: url(Images/accelerometer-right.png);
}

.orientation-left::before,
.orientation-right::before {
  top: -6px;
  transform-origin: center bottom;
  transform: rotateX(26deg);
  background-position: center top;
}

.orientation-left::after,
.orientation-right::after {
  bottom: -6px;
  transform-origin: center top;
  transform: rotateX(-25deg);
  background-position: center bottom;
}

.orientation-top,
.orientation-bottom {
  width: 50px;
  height: 8px;
  left: 8px;
  background-position: center center;
}

.orientation-top {
  top: -8px;
  transform-origin: center bottom;
  transform: rotateX(90deg);
  background-image: url(Images/accelerometer-top.png);
}


.orientation-bottom {
  bottom: -8px;
  transform-origin: center top;
  transform: rotateX(-90deg);
  background-image: url(Images/accelerometer-bottom.png);
}


.orientation-top::before,
.orientation-top::after,
.orientation-bottom::before,
.orientation-bottom::after
{
  content: '';
  width: 8px;
  height: 8px;
}

.orientation-top::before,
.orientation-top::after
{
  background-image: url(Images/accelerometer-top.png);
}

.orientation-bottom::before,
.orientation-bottom::after
{
  background-image: url(Images/accelerometer-bottom.png);
}

.orientation-top::before,
.orientation-bottom::before {
  left: -6px;
  transform-origin: right center;
  transform: rotateY(-26deg);
  background-position: left center;
}

.orientation-top::after,
.orientation-bottom::after {
  right: -6px;
  transform-origin: left center;
  transform: rotateY(26deg);
  background-position: right center;
}

.orientation-axis-input-container {
  margin-bottom: 10px;
}

.orientation-axis-input-container input {
  max-width: 120px;
}

.orientation-reset-button {
  min-width: 80px;
}

fieldset.device-orientation-override-section {
  margin: 0;
  display: flex;
}

.panel-section-separator {
  height: 2px;
  margin-bottom: 8px;
  background: #f1f1f1;
}

.reload-warning {
  align-self: center;
  margin-left: 10px;
}

button.text-button {
  margin: 0 10px;
}
