/*
 * 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: 100px;
    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 .field-error-message {
    display: none;
}

.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;
}

/* 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: 66px;
    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: 66px;
    height: 122px;
    border-radius: 8px;
}

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

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


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

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


.orientation-right {
    right: -12px;
    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: 12px;
    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: 12px;
    left: 8px;
    background-position: center center;
}

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


.orientation-bottom {
    bottom: -12px;
    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: 12px;
}

.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: 100px;
}

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

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

.touch-label {
    margin-top: 10px;
}

.touch-label select {
    margin-left: 10px;
}

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

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