/*
 * 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.
 */

.devices-container {
    overflow: hidden;
    flex: auto;
}

.devices-sidebar {
    flex: 0 0 150px;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    padding-top: 15px;
}

.devices-sidebar-list {
    flex: none;
    display: flex;
    flex-direction: column;
    align-items: stretch;
}

.devices-sidebar-item {
    color: #222 !important;
    padding: 6px 6px 6px 16px;
    flex: auto;
    display: flex;
    flex-direction: column;
    justify-content: center;
    font-size: 14px;
}

.devices-sidebar-item.selected {
    border-left: 6px solid #666 !important;
    padding-left: 10px;
}

.devices-sidebar-item-status:before {
    content: "\25cf";
    font-size: 16px;
    color: red;
    position: relative;
    top: 1px;
    margin-right: 2px;
}

.devices-sidebar-item.device-connected .devices-sidebar-item-status:before {
    color: green;
}

.devices-sidebar-spacer {
    flex: none;
}

.devices-view-title {
    font-size: 16px;
    margin: 0 0 15px 15px;
    padding-top: 1px;
}

.view-title {
    font-size: 16px;
    flex: none;
}

.devices-footer {
    border-top: 1px solid #cdcdcd;
    background-color: var(--toolbar-bg-color);
    flex: none;
    padding: 3px 10px;
    overflow: hidden;
}

.devices-footer > span {
    white-space: pre;
}

.discovery-view {
    overflow-x: hidden;
    overflow-y: auto;
    padding: 15px 15px 0px 0px;
}

.discovery-view > * {
    flex: none;
}

.usb-checkbox {
    padding-bottom: 8px;
    margin-top: 20px;
}

.port-forwarding-header {
    display: flex;
    align-items: center;
    flex-direction: row;
    margin-top: 5px;
}

.add-rule-button {
    margin: 10px 25px;
    align-self: flex-start;
}

.discovery-help {
    margin: 5px 0 25px 25px;
}

.discovery-help > span {
    white-space: pre;
}

.port-forwarding-list {
    margin: 10px 0 0 25px;
    max-width: 500px;
    flex: none;
}

.port-forwarding-list-empty {
    flex: auto;
    height: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.port-forwarding-list-item {
    padding: 3px 5px 3px 5px;
    height: 30px;
    display: flex;
    align-items: center;
    position: relative;
    flex: auto 1 1;
}

.list-item .port-forwarding-value {
    white-space: nowrap;
    text-overflow: ellipsis;
    -webkit-user-select: none;
    color: #222;
    overflow: hidden;
}

.port-forwarding-value {
    flex: 3 1 0;
}

.port-forwarding-value.port-forwarding-port {
    flex: 1 1 0;
}

.port-localhost {
    color: #aaa;
}

.port-forwarding-separator {
    flex: 0 0 1px;
    background-color: rgb(231, 231, 231);
    height: 30px;
    margin: 0 4px;
}

.port-forwarding-separator-invisible {
    visibility: hidden;
    height: 100% !important;
}

.port-forwarding-edit-row {
    flex: none;
    display: flex;
    flex-direction: row;
    margin: 6px 5px;
    align-items: center;
}

.port-forwarding-edit-row input {
    width: 100%;
    text-align: inherit;
}

.port-forwarding-footer {
    overflow: hidden;
    margin: 15px 0 0 25px;
    max-width: 500px;
}

.port-forwarding-footer > * {
    white-space: pre-wrap;
}

.network-discovery-header {
    display: flex;
    align-items: center;
    flex-direction: row;
    margin-top: 5px;
}

.add-network-target-button {
    margin: 10px 25px;
    align-self: flex-start;
}

.network-discovery-list {
    margin: 10px 0 0 25px;
    max-width: 500px;
    flex: none;
}

.network-discovery-list-empty {
    flex: auto;
    height: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.network-discovery-list-item {
    padding: 3px 5px 3px 5px;
    height: 30px;
    display: flex;
    align-items: center;
    position: relative;
    flex: auto 1 1;
}

.list-item .network-discovery-value {
    white-space: nowrap;
    text-overflow: ellipsis;
    -webkit-user-select: none;
    color: #222;
    overflow: hidden;
}

.network-discovery-value {
    flex: 3 1 0;
}

.network-discovery-edit-row {
    flex: none;
    display: flex;
    flex-direction: row;
    margin: 6px 5px;
    align-items: center;
}

.network-discovery-edit-row input {
    width: 100%;
    text-align: inherit;
}

.network-discovery-footer {
    overflow: hidden;
    margin: 15px 0 0 25px;
    max-width: 500px;
}

.network-discovery-footer > * {
    white-space: pre-wrap;
}

.device-view {
    overflow: auto;
    -webkit-user-select: text;
    flex: auto;
}

.device-text-row {
    align-items: baseline;
    margin-right: 25px;
}

.device-serial {
    color: #777;
    margin-left: 5px;
    flex: none;
}

.device-browser-list {
    flex: auto;
    overflow: auto;
    padding-right: 10px;
    margin-top: 30px;
}

.device-browser-list > div {
    margin-bottom: 15px;
}

.device-browser-title {
    font-size: 16px;
}

.device-browser-new-tab {
    display: flex;
    flex-direction: row;
    align-items: center;
    margin: 10px 0 0 10px;
}

.device-browser-new-tab > div {
    font-size: 13px;
}

.device-browser-new-tab > input {
    margin: 0 10px;
}

.device-page-list {
    margin: 10px 0 0 10px;
    overflow-x: auto;
    align-items: stretch;
    flex: none;
}

.device-page-list > div {
    flex: none;
    padding: 5px 0;
}

.device-page-list:not(.device-view-more-toggled) > div.device-view-more-page {
    display: none;
}

.device-page-title-row {
    display: flex;
    flex-direction: row;
    align-items: center;
}

.device-page-title {
    font-size: 15px;
    flex: auto;
    white-space: nowrap;
    text-overflow: ellipsis;
    overflow: hidden;
}

.device-page-title-row .toolbar {
    margin-left: 3px;
    padding: 0;
    border-radius: 3px;
}

.device-page-title-row .toolbar:hover {
    background-color: hsl(0, 0%, 90%);
}

.device-page-url {
    margin: 3px 100px 3px 0;
}

.device-page-url a {
    color: #777;
    word-break: break-all;
}

.device-view-more {
    cursor: pointer;
    text-decoration: underline;
    color: rgb(17, 85, 204);
    margin: 5px 0 0 10px;
    display: none;
}

.device-view-more.device-needs-view-more  {
    display: block;
}

.device-port-status {
    overflow: hidden;
    flex: none;
    display: flex;
    align-items: baseline;
    margin: 10px 0 0 10px;
}

.device-port-status-text {
    margin-right: 10px;
}

.device-view-port-icon {
    background-color: green;
    border: 0 solid transparent;
    border-radius: 6px;
    height: 12px;
    width: 12px;
    position: relative;
    top: 2px;
    flex: none;
}

.device-view-port-number {
    margin: 0 10px 0 2px;
    flex: none;
}

.device-view-port-icon.device-view-port-icon-error {
    background-color: red;
}

.device-view-port-icon.device-view-port-icon-transient {
    transform: scale(1.2);
    background-color: orange;
}
