/* 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 "./theme.css";
@import "./sizes.css";

.tabs {
  box-shadow: var(--shadow-bottom);
}

.tabs::shadow #selectionBar {
  background-color: var(--color-secondary-800);
  height: 3px;
}

.tab {
  background-color: var(--color-white);
  color: var(--color-text-primary);
}

.tab::shadow #ink {
  color: var(--color-bright);
}

.tab-content {
  padding: var(--size-space-xsmall);
}

paper-spinner {
  margin: var(--size-space-xsmall);
}

::shadow paper-input-decorator {
  padding: 0;
}

::shadow paper-input-decorator /deep/ #focusedUnderline {
  background-color: var(--color-bright);
}

paper-progress {
  width: 100%;
  height: 4px;
}

/*
 * With delayed class, we only make the progressbar visible after 500ms
 * This normally creates better UX since if everything loads within a short time
 * there is no flash of a short-lived loading indicator anymore.
 */
paper-progress.delayed {
  -webkit-animation:delayed-progressbar 0.5s;
}
@-webkit-keyframes delayed-progressbar{
  0%{visibility:hidden;}
  99%{visibility:hidden;}
  100%{visibility:visible;}
}

paper-progress::shadow #activeProgress {
  background-color: var(--color-bright);
}

paper-progress::shadow #progressContainer {
  background-color: transparent;
}

paper-button {
  background-color: var(--color-button-primary);
  color: var(--color-button-primary-text);
  margin: var(--size-space-xsmall);
}

paper-button.secondary {
  background-color: var(--color-button-secondary);
  color: var(--color-button-secondary-text);
}

/*
 * The paper-button looks better with reduced padding.
 * Polymer defaults to 0.70em for padding-top and padding-bottom.
 */
paper-button::shadow .button-content {
  padding-top: 0.35em;
  padding-bottom: 0.35em;
}

paper-button > core-icon {
  margin-right: var(--size-space-xsmall);
}

::shadow /deep/ paper-spinner::shadow .circle,
paper-spinner::shadow .circle {
  border-color: var(--color-bright);
  border-width: 2px;
}

.empty {
  width: 100%;
  padding: 1em;
  text-align: center;
  color: var(--color-text-secondary);
}

.right-justify {
  direction: rtl;
  overflow: hidden;
}

.grayed-out, tree-node.grayed-out::shadow .item {
  opacity: 0.5;
}

/*
 * Applies a tiny margin to the left of the element.
 */
.margin-left-xxsmall {
  margin-left: var(--size-space-xxsmall);
}

core-header-panel {
  height: 100%;
}

/*
 * Delay the appearance of core tooltips to reduce accidental 'on-hover' spam.
 */
core-tooltip::shadow .core-tooltip {
  transition: visibility 0s;
}
core-tooltip[focused]::shadow .core-tooltip,
core-tooltip:hover:not([disabled])::shadow .core-tooltip {
  transition-delay: 0.5s;
}
