/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */

.tabbrowser-tabbox {
  -moz-binding: url("chrome://browser/content/tabbrowser.xml#tabbrowser-tabbox");
}

.tabbrowser-tabpanels {
  -moz-binding: url("chrome://browser/content/tabbrowser.xml#tabbrowser-tabpanels");
}

.tabbrowser-arrowscrollbox {
  -moz-binding: url("chrome://browser/content/tabbrowser.xml#tabbrowser-arrowscrollbox");
}

.tab-close-button {
  -moz-binding: url("chrome://browser/content/tabbrowser.xml#tabbrowser-close-tab-button");
}

.tab-close-button[pinned],
.tabbrowser-tabs[closebuttons="activetab"] > * > * > * > .tab-close-button:not([selected="true"]),
.tab-icon-image:not([src]):not([pinned]):not([crashed])[selected],
.tab-icon-image:not([src]):not([pinned]):not([crashed]):not([sharing]),
.tab-icon-image[busy],
.tab-throbber:not([busy]),
.tab-icon-sound:not([soundplaying]):not([muted]):not([blocked]),
.tab-icon-sound[pinned],
.tab-sharing-icon-overlay,
.tab-icon-overlay {
  display: none;
}

.tab-sharing-icon-overlay[sharing]:not([selected]),
.tab-icon-overlay[soundplaying][pinned],
.tab-icon-overlay[muted][pinned],
.tab-icon-overlay[blocked][pinned],
.tab-icon-overlay[crashed] {
  display: -moz-box;
}

.tab-label[pinned] {
  width: 0;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

.tab-stack {
  vertical-align: top; /* for pinned tabs */
}

tabpanels {
  background-color: transparent;
}

.tab-drop-indicator {
  position: relative;
  z-index: 2;
}

/* Apply crisp rendering for favicons at exactly 2dppx resolution */
@media (resolution: 2dppx) {
  .tab-icon-image {
    image-rendering: -moz-crisp-edges;
  }
}

.closing-tabs-spacer {
  pointer-events: none;
}

.tabbrowser-tabs:not(:hover) > .tabbrowser-arrowscrollbox > .closing-tabs-spacer {
  transition: width .15s ease-out;
}

/**
 * Optimization for tabs that are restored lazily. We can save a good amount of
 * memory that to-be-restored tabs would otherwise consume simply by setting
 * their browsers to 'display: none' as that will prevent them from having to
 * create a presentation and the like.
 */
browser[pending] {
  display: none;
}

browser[pendingpaint] {
  opacity: 0;
}

tabbrowser[pendingpaint] {
  background-image: url(chrome://browser/skin/tabbrowser/pendingpaint.png);
  background-repeat: no-repeat;
  background-position: center center;
  background-color: #f9f9f9 !important;
  background-size: 30px;
}
