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

%filter substitution
%include defines.inc

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

/* Typography & General Styling -------------------------------------------- */

::-moz-selection {
  color: white;
  background-color: @metro_orange@;
}

*:-moz-any-link:focus {
  outline-offset: -2px;
}

/* Input Styling -------------------------------------------- */

select:not([size]):not([multiple]) > xul|scrollbar,
select[size="1"] > xul|scrollbar,
select:not([size]):not([multiple]) xul|scrollbarbutton,
select[size="1"] xul|scrollbarbutton {
  display: block;
  margin-left: 0;
  min-width: 16px;
}

select[size],
select[multiple],
select[size][multiple],
* > input:not([type="image"]) {
  border-style: solid;
  border-color: #7d7d7d;
  color: #414141;
}

/* For both mouse and touch, single-selects are handled by the SelectHelper popup.
 * Suppress mouse events on the popup itself. See also ../base/content/cursor.css */
select[size="1"] :-moz-any(option, optgroup),
select:not([size]):not([multiple]) :-moz-any(option, optgroup) {
  pointer-events: none;
}

input:-moz-placeholder {
  color: GrayText;
}

select:not([size]):not([multiple]),
select[size="0"],
select[size="1"],
* > input[type="button"],
* > input[type="submit"],
* > input[type="reset"],
button {
  border-style: solid;
  border-color: #7d7d7d;
  color: #414141;
}

input[type="checkbox"] {
  background: white linear-gradient(rgba(115,115,115,0.5) 0, rgba(215,215,215,0.5) 2px, rgba(255,255,255,0.2) 6px);
}

input[type="radio"] {
  background: radial-gradient(at 6px 6px, rgba(255,255,255,0.2) 3px, rgba(195,195,195,0.5) 5px, rgba(115,115,115,0.5) 100%);
}

select {
  border-width: 1px;
  padding: 1px;
}

select:not([size]):not([multiple]),
select[size="0"],
select[size="1"] {
  padding: 0 1px 0 1px;
}

* > input:not([type="image"]) {
  border-width: 1px;
  padding: 1px;
}

input[type="button"],
input[type="submit"],
input[type="reset"],
button {
  border-width: 1px;
  padding: 0 7px 0 7px;
}

input[type="radio"],
input[type="checkbox"] {
  max-width: 14px;
  max-height: 14px;
  border: 1px solid #a7a7a7 !important;
  padding: 2px 1px 2px 1px;
}

select > button {
  border-width: 1px !important;
  margin: 0px !important;
  padding: 0px !important;
  border-radius: 0;
  color: #414141;
  position: relative !important;
  font-size: inherit;
}

input[type="checkbox"]:focus,
input[type="radio"]:focus {
  border-color: #99c6e0 !important;
}

input[type="checkbox"]:focus {
  background: white linear-gradient(rgba(27,113,177,0.5) 0, rgba(198,225,246,0.2) 2px, rgba(255,255,255,0.2) 6px);
}

input[type="radio"]:focus {
  background: radial-gradient(at 6px 6px, rgba(255,255,255,0.2) 3px, rgba(198,225,246,0.2) 5px, rgba(27,113,177,0.5) 100%);
}

/* we need to be specific for selects because the above rules are specific too */
select[size][disabled],
select[multiple][disabled],
select[size][multiple][disabled],
select:not([size]):not([multiple])[disabled],
select[size="0"][disabled],
select[size="1"][disabled],
button[disabled],
* > input:not([type="image"])[disabled] {
  color: rgba(0,0,0,0.3);
  border-color: rgba(125,125,125,0.4);
  border-style: solid;
  border-width: 1px;
  background: transparent linear-gradient(rgba(185,185,185,0.4) 0, rgba(235,235,235,0.4) 3px, rgba(255,255,255,0.4) 100%);
}

select:not([size]):not([multiple])[disabled],
select[size="0"][disabled],
select[size="1"][disabled] {
  background: transparent linear-gradient(rgba(255,255,255,0.4) 0, rgba(235,235,235,0.4) 3px, rgba(185,185,185,0.4) 100%);
}

input[type="button"][disabled],
input[type="submit"][disabled],
input[type="reset"][disabled],
button[disabled] {
  padding: 0 7px 0 7px;
  background: transparent linear-gradient(rgba(255,255,255,0.4) 0, rgba(235,235,235,0.4) 3px, rgba(185,185,185,0.4) 100%);
}

input[type="radio"][disabled],
input[type="radio"][disabled]:active,
input[type="radio"][disabled]:hover,
input[type="radio"][disabled]:hover:active,
input[type="checkbox"][disabled],
input[type="checkbox"][disabled]:active,
input[type="checkbox"][disabled]:hover,
input[type="checkbox"][disabled]:hover:active {
  border:1px solid rgba(125,125,125,0.4) !important;
}

select[disabled] > button {
  opacity: 0.6;
  padding: 1px 7px 1px 7px;
}

/* -moz-touch-enabled? media elements */
video > xul|videocontrols,
audio > xul|videocontrols {
  -moz-binding: url("chrome://global/content/bindings/videocontrols.xml#touchControls");
}

/*
 * Enforce nearest scaling for video in order not to lose too much performance
 * after fixing bug 598736 ("Use higher-quality imageinterpolation on mobile")
 */
video {
    image-rendering: -moz-crisp-edges;
}
