/*
 * Copyright (c) 2012 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.
 */

body {
  color: rgb(48, 57, 66);
  font-family: Arial, sans-serif;
  font-size: 13px;
  margin: 0;
  min-width: 47em;
  padding: 20px 20px 65px 0;
}

img {
  float: left;
  height: 16px;
  padding-left: 2px;
  padding-right: 5px;
  width: 16px;
}

#container {
  -webkit-flex-direction: row;
  display: -webkit-flex;
}

#navigation {
  width: 150px;
}

#content {
  -webkit-flex: 1;
}

#caption {
  color: rgb(92, 97, 102);
  font-size: 150%;
  padding-bottom: 10px;
  padding-left: 20px;
}

.tab-header {
  -webkit-border-start: 6px solid transparent;
  padding-left: 15px;
}

.tab-header.selected {
  -webkit-border-start-color: rgb(78, 87, 100);
}

.tab-header > button {
  background-color: white;
  border: 0;
  cursor: pointer;
  font: inherit;
  line-height: 17px;
  margin: 6px 0;
  padding: 0 2px;
}

.tab-header:not(.selected) > button {
  color: #999;
}

#content > div:not(.selected) {
  display: none;
}

.content-header {
  border-bottom: 1px solid #eee;
  font-size: 150%;
  padding-bottom: 4px;
}

.section {
  font-size: 150%;
  margin: 10px 0 0;
  padding: 2px 0;
}

.small-section {
  font-weight: bold;
  margin: 5px 0 0;
  padding: 2px 0;
}

.row {
  padding: 5px 0;
}

.url {
  color: #A0A0A0;
}

.list {
  margin-bottom: 20px;
  margin-top: 5px;
}

a {
  color: rgb(17, 85, 204);
  padding: 0 3px;
  text-decoration: none;
}

a.disabled {
  opacity: 0.5;
  pointer-events: none;
}

.open {
  margin-bottom: -4px;
  margin-top: 5px;
}

.open > input {
  border: 1px solid #aaa;
  height: 17px;
  line-height: 17px;
  margin-left: 20px;
  padding: 0 2px;
}

.open > button {
  line-height: 13px;
}

#port-forwarding-settings {
  position: absolute;
  right: 20px;
  top: 15px;
}

#port-forwarding-overlay {
  -webkit-box-align: center;
  -webkit-box-pack: center;
  background-color: rgba(255, 255, 255, 0.75);
  bottom: 0;
  display: -webkit-box;
  left: 0;
  position: absolute;
  right: 0;
  top: 0;
}

#port-forwarding-overlay:not(.open) {
  display: none;
}

#port-forwarding-config {
  -webkit-border-radius: 3px;
  background: white;
  box-shadow: 0 4px 23px 5px rgba(0, 0, 0, 0.2), 0 2px 6px rgba(0,0,0,0.15);
  color: #333;
  padding: 17px;
  position: relative;
}

.close-button {
  background-image: url('chrome://theme/IDR_CLOSE_DIALOG');
  height: 14px;
  width: 14px;
}

.close-button:active {
  background-image: url('chrome://theme/IDR_CLOSE_DIALOG_P');
}

.close-button:hover {
  background-image: url('chrome://theme/IDR_CLOSE_DIALOG_H');
}

#port-forwarding-config > .close-button {
  position: absolute;
  right: 7px;
  top: 7px;
}

#port-forwarding-config-title {
  font-size: 130%;
}

#port-forwarding-config-list {
  border: 1px solid #eee;
  height: 180px;
  margin-bottom: 10px;
  margin-top: 10px;
  overflow-x: hidden;
}

.port-forwarding-pair {
  -webkit-flex-direction: row;
  display: -webkit-flex;
}

.port-forwarding-pair:hover {
  background-color: #eee;
}

.port-forwarding-pair.selected,
.port-forwarding-pair.selected:hover {
  background-color: #ccc;
}

.port-forwarding-pair input {
  border: 1px solid transparent;
  line-height: 20px;
  margin: 4px;
  padding: 0 3px;
}

.port-forwarding-pair.fresh:not(.selected) input {
  border-color: #eee;
}

.port-forwarding-pair input.port {
  width: 4em;
}

.port-forwarding-pair input.location {
  -webkit-flex: 1;
}

.port-forwarding-pair:not(.empty) input.invalid {
  background-color: rgb(255, 200, 200);
}

.port-forwarding-pair .close-button {
  margin: 8px 8px;
}

.port-forwarding-pair.fresh .close-button,
.port-forwarding-pair:not(.selected):not(:hover) .close-button:not(:hover) {
  background-image: none;
  pointer-events: none;
}

.port-forwarding-pair:not(.selected) .close-button:not(:hover) {
  opacity: 0.5;
}

#port-forwarding-config-buttons > button {
  float: right;
}
