/*
 * 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 label {
    margin-bottom: 10px;
}

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