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

/* ===== button.css =====================================================
  == Styles used by the XUL button element.
  ======================================================================= */

@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");

/* :::::::::: button :::::::::: */

button {
  appearance: button;
  margin: 1px 5px 2px 5px;
  min-width: 6.3em;
  border: 3px solid;
  -moz-border-top-colors: transparent ThreeDHighlight ThreeDLightShadow;
  -moz-border-right-colors: transparent ThreeDDarkShadow ThreeDShadow;
  -moz-border-bottom-colors: transparent ThreeDDarkShadow ThreeDShadow;
  -moz-border-left-colors: transparent ThreeDHighlight ThreeDLightShadow;
  background-color: ThreeDFace;
  color: ButtonText;
  text-shadow: none;
}

.button-box {
  border: 1px solid transparent;
  padding-top: 1px;
  padding-bottom: 2px;
  padding-inline-start: 3px;
  padding-inline-end: 4px;
}

.button-text {
  margin: 0 !important;
  text-align: center;
}

/* .......... focused state .......... */

button:focus {
  -moz-border-top-colors: ThreeDDarkShadow ThreeDHighlight transparent;
  -moz-border-right-colors: ThreeDDarkShadow ThreeDDarkShadow ThreeDShadow;
  -moz-border-bottom-colors: ThreeDDarkShadow ThreeDDarkShadow ThreeDShadow;
  -moz-border-left-colors: ThreeDDarkShadow ThreeDHighlight transparent;
}

button:-moz-focusring > .button-box {
  border: 1px dotted ThreeDDarkShadow;
}

/* .......... default state .......... */

button[default="true"] {
  -moz-border-top-colors: ThreeDDarkShadow ThreeDHighlight ThreeDLightShadow;
  -moz-border-right-colors: ThreeDDarkShadow ThreeDDarkShadow ThreeDShadow;
  -moz-border-bottom-colors: ThreeDDarkShadow ThreeDDarkShadow ThreeDShadow;
  -moz-border-left-colors: ThreeDDarkShadow ThreeDHighlight ThreeDLightShadow;
}

@media not all and (-moz-windows-default-theme) {
  @media (-moz-windows-theme: aero-lite) {
    /* This is for high-contrast themes on Windows 8 and later */
    button[default="true"],
    button:hover {
      color: HighlightText;
    }
  }
}

/* .......... active/open/checked state .......... */

button:hover:active,
button[open="true"],
button[checked="true"] {
  -moz-border-top-colors: ThreeDDarkShadow ThreeDShadow transparent;
  -moz-border-right-colors: ThreeDDarkShadow ThreeDShadow transparent;
  -moz-border-bottom-colors: ThreeDDarkShadow ThreeDShadow transparent;
  -moz-border-left-colors: ThreeDDarkShadow ThreeDShadow transparent;
}

button:hover:active > .button-box:-moz-system-metric(windows-classic),
button[open="true"] > .button-box:-moz-system-metric(windows-classic),
button[checked="true"] > .button-box:-moz-system-metric(windows-classic) {
  padding-top: 2px;
  padding-bottom: 1px;
  padding-inline-start: 4px;
  padding-inline-end: 3px;
}

/* .......... disabled state .......... */

button[disabled="true"] {
  -moz-border-top-colors: transparent ThreeDHighlight ThreeDLightShadow !important;
  -moz-border-right-colors: transparent ThreeDDarkShadow ThreeDShadow !important;
  -moz-border-bottom-colors: transparent ThreeDDarkShadow ThreeDShadow !important;
  -moz-border-left-colors: transparent ThreeDHighlight ThreeDLightShadow !important;
  color: GrayText;
}

button[disabled="true"]:-moz-system-metric(windows-classic) {
  color: ThreeDShadow;
  text-shadow: 1px 1px ThreeDHighlight;
}

button[disabled="true"] > .button-box {
  padding-top: 1px !important;
  padding-bottom: 2px !important;
  padding-inline-start: 3px !important;
  padding-inline-end: 4px !important;
}

/* ::::: menu/menu-button buttons ::::: */

button[type="menu-button"] {
  margin: 0;
  border: none;
}

.button-menu-dropmarker,
.button-menubutton-dropmarker {
  appearance: none !important;
  margin: 1px;
  background-color: transparent;
  border: none;
  width: 11px;
  height: 11px;
}

.button-menubutton-dropmarker[open="true"] {
  margin-top: 2px;
  margin-bottom: 0px;
  margin-inline-start: 2px;
  margin-inline-end: 0px;
}

/* ::::: plain buttons ::::: */

button.plain {
  border: 0px !important;
  margin: 0px !important;
  padding: 0px !important;
}

button[type="disclosure"] {
  border: 0px !important;
  margin: 0px !important;
  padding: 0px !important;
  appearance: none;
  list-style-image: url("chrome://global/skin/tree/twisty.svg#clsd");
  min-width: 0px !important;
  background-color: transparent;
}

button[type="disclosure"][open="true"] {
  list-style-image: url("chrome://global/skin/tree/twisty.svg#open");
}
