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

@import "common-style/sizes.css";
@import "common-style/theme.css";
@import "common-style/card.css";

paper-icon-button.bookmarked {
  color: var(--color-bright);
}

.tab-icon {
  width: var(--size-font-xlarge);
  height: var(--size-font-xlarge);
  margin-right: var(--size-font-xsmall);
}

.item-actions {
  margin: 0 -var(--size-space-xsmall);
  display: inline-block;
  position: absolute;
  left: var(--size-space-xsmall);
  top: 0px;
  padding: var(--size-space-xsmall);
}

.sidebar-header .name-title {
  display: inline-block;
  padding: var(--size-space-small) 75px;
  overflow: hidden;
  white-space: nowrap;
}

.sidebar-header {
  box-shadow: var(--shadow-bottom);
  text-align: center;
  background-color: var(--color-secondary-800);
  border-bottom: var(--border);
}

.sidebar-header .name-title, .sidebar-header paper-icon-button {
  color: var(--color-white);
}

.padded-error-box {
  padding: var(--size-space-normal);
}

.method-input {
  display: inline-block;
  vertical-align: top;
  width: 16em;
}

.tooltip.field-tooltip::shadow .core-tooltip, .tooltip.method-tooltip::shadow .core-tooltip {
  line-height: 0.9em; /* overrides Polymer's 6px line-height */
  white-space: pre-wrap;
  font-size: var(--size-font-xsmall);
}

.tooltip.field-tooltip::shadow .core-tooltip {
  width: 24em;
}

.tooltip.field-tooltip::shadow .core-tooltip {
  width: 36em;
}

.method-input .label {
  align-items: center;
  overflow: hidden;
}

.method-input paper-autocomplete {
  width: 100%;
}

.method-input .drill.star {
  border-left: none;
  border-right: var(--border);
}

.method-input-expanded {
  margin-bottom: var(--size-space-normal);
  padding: var(--size-space-xsmall);
}

.method-input-item {
  box-sizing: border-box;
  padding: var(--size-space-xsmall);
}

.method-output table, .method-output th {
  border-bottom: var(--border);
}

/* Method column */
.method-output th:nth-of-type(2) ,
.method-output td:nth-of-type(2) pre {
  white-space: nowrap;
}

.method-output th, .method-output td {
  text-align: left;
  padding: 0.2em;
}

.method-output pre, .field pre {
  white-space: pre-wrap;
}

.method-input .item.card.invocation {
  margin-top: 0em;
  margin-bottom: 0em;
  height: 2em;
  margin-top: var(--size-space-xxsmall);
}

.method-input .item.card.invocation .label {
  font-size: var(--size-font-small);
}

core-icon.info {
  color: var(--color-info);
}

core-icon.error {
  color: var(--color-error);
}

core-icon.starred {
  color: var(--color-bright);
}
