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

/* Global Skin ------------------------------------------------------------- */

@import url(chrome://global/skin/);

%filter substitution
%include defines.inc

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

:root {
  font-family: "Segoe UI", sans-serif !important;
  font-size: @font_normal@;
}

.text-link {
  text-decoration: none;
  color: #1167bd;
}

textbox,
menulist {
  -moz-appearance: none;
  min-width: @field_sizing@; /* button size */
  min-height: @field_sizing@; /* button size */
  margin: @metro_spacing_small@;
  padding: @metro_spacing_xsmall@ @metro_spacing_small@;

  font-size: @metro_font_normal@;
  font-weight: normal !important;

  color: @field_foreground_color@;
  background: @field_background_color@;
  border: @metro_border_thick@ solid @field_foreground_color@ !important;
  border-radius: 0;
}

textbox[disabled],
menulist[disabled] {
  border-color: @field_disabled_foreground_color@ !important;
  color: @field_disabled_foreground_color@;
}

menulist:not([disabled]):hover:active {
  color: @field_background_color@;
  background: @field_foreground_color@;
}

/* Button ------------------------------------------------------------------ */

button {
  -moz-appearance: none;
  border: 1px solid;
  font-size: @metro_font_normal@;
  font-weight: normal;
  margin: @metro_spacing_small@;
  min-width: @field_sizing@;
  min-height: 32px;
  padding: 3px 16px;
}

/* Non-default button colors */

button {
  background: linear-gradient(to bottom, hsl(210, 5%, 89%), hsl(210, 5%, 87%));
  border-color: hsl(220, 5%, 86%);
  color: hsl(0, 0%, 10%);
}

button:not([disabled]):hover {
  background: linear-gradient(to bottom, hsl(210, 5%, 75%), hsl(210, 5%, 73%));
  border-color: hsl(210, 5%, 71%);
  color: hsl(0, 0%, 10%);
}

/* Default button colors */

.button-default,
.notification-button-default {
  background: linear-gradient(to bottom, hsl(35, 100%, 50%), hsl(30, 100%, 50%));
  border-color: hsl(30, 100%, 48%);
  color: white;
}

.button-default:not([disabled]):hover,
.notification-button-default:not([disabled]):hover {
  background: linear-gradient(to bottom, hsl(25, 100%, 47%), hsl(25, 100%, 45%));
  border-color: hsl(25, 100%, 43%);
  color: white;
}

/* Pushed button colors (both default and non-default */

/* Note: these need enough specificity to override all the :hover rules above. */
button:not([disabled]):hover:active,
button:not([disabled])[checked="true"],
.button-default:not([disabled])[checked="true"],
.notification-button-default:not([disabled])[checked="true"] {
  background: linear-gradient(to bottom, hsl(210, 5%, 28%), hsl(210, 5%, 25%));
  border-color: hsl(216, 4%, 27%);
  color: white;
}

/* Disabled button colors (both default and non-default */

button[disabled] {
  background: linear-gradient(to bottom, hsl(210, 3%, 93%), hsl(210, 3%, 92%));
  border-color: hsl(210, 3%, 91%);
  color: hsl(0, 0%, 60%);
}

/* Textbox ----------------------------------------------------------------- */

textbox[isempty="true"] {
  color: @field_mid_foreground_color@;
}

.link {
  color: blue;
  text-decoration: underline;
}

spinbuttons {
  border: none;
}

.spinbuttons-box {
  border: none;
  -moz-box-orient: horizontal;
  -moz-box-direction: reverse;
}

.spinbuttons-down,
.spinbuttons-up {
  border: none !important;
}

.spinbuttons-down {
  list-style-image: url("chrome://browser/skin/images/arrowdown-16.png");
}

.spinbuttons-up {
  list-style-image: url("chrome://browser/skin/images/arrowup-16.png");
}

/* Menu List --------------------------------------------------------------- */

menulist {
  -moz-user-focus: ignore;
  padding: @metro_spacing_xsmall@ 0;
  -moz-padding-start: @metro_spacing_small@;
  border-color: @field_disabled_foreground_color@ !important;
}

/* Popup Menus ------------------------------------------------------------- */

.menu-container {
  position: absolute;
  opacity: 0;
}

.menu-container[showingfrom="below"] {
  transform: translateY(@metro_spacing_normal@);
}

.menu-container[showingfrom="above"] {
  transform: translateY(-@metro_spacing_normal@);
}

.menu-container[hiding],
.menu-container[showing] {
  transition: opacity ease-out 0.2s,
              transform ease-out 0.2s;
}

.menu-container[showing] {
  opacity: 1;
  transform: none;
}

.menu-popup > richlistbox {
  padding: 3px 0;
  border: #000 solid @metro_border_thick@;
  -moz-appearance: none;
  display: -moz-box;
}

.menu-popup > richlistbox > scrollbox {
  width: 100%;
}

.menu-popup richlistitem {
  width: 100%;
  min-height: @touch_button_small@;
  min-width: @touch_action_minwidth@; /* keep the button from being too narrow */
  border: 0 none;
  -moz-box-align: center;
}

.menu-popup richlistitem:not([disabled]):hover {
  background-color: #dedad0;
  color: black;
}

.menu-popup richlistitem:not([disabled]):active {
  background-color: @selected_color@ !important;
  color: black;
}

.menu-popup > richlistbox[left-hand="true"] > richlistitem {
  padding-left: 50px;
}

.menu-popup > richlistbox[left-hand="false"] > richlistitem {
  padding-right: 50px;
}

/* Toolbar Button --------------------------------------------------------- */

toolbarbutton {
  min-width: @metro_spacing_large@; /* primary button size */
  min-height: @metro_spacing_large@; /* primary button size */
  -moz-appearance: none;
  margin: 0;
  padding: @metro_spacing_xsmall@;
}

toolbarbutton:not(.show-text) .toolbarbutton-text {
  display: none;
}

.toolbarbutton-icon[label]:not([label=""]),
.toolbarbutton-icon[type="menu"] {
  -moz-margin-end: @metro_spacing_xsmall@;
}

toolbarbutton:not(.show-text) .toolbarbutton-icon,
toolbarbutton:not([image]) .toolbarbutton-icon,
toolbarbutton[image=''] .toolbarbutton-icon {
  -moz-margin-end: 0;
}

toolbarbutton:hover,
toolbarbutton:hover:active,
toolbarbutton[open="true"] {
  border-color: transparent;
}

/* Toggleswitch ------------------------------------------------------------ */

checkbox.toggleswitch {
  margin: @metro_spacing_small@;
  min-height: @metro_spacing_normal@;
  font-weight: bold;
}

checkbox.toggleswitch hbox {
  -moz-box-align: center;
}

checkbox.toggleswitch:not([checked]) .onlabel,
checkbox.toggleswitch[checked] .offlabel {
  display: none;
}

checkbox.toggleswitch radiogroup {
  border: @metro_border_thick@ solid @field_disabled_foreground_color@;
  -moz-box-orient: horizontal;
}

checkbox.toggleswitch radio {
  -moz-appearance: none;
  margin: 0;
  border: 0 none;
  border-radius: 0;
  background: 0 none;
  padding: 0;
  min-height: @metro_spacing_normal@;
  height: @metro_spacing_normal@;
}

checkbox.toggleswitch[checked] radio.checkbox-radio-on,
checkbox.toggleswitch:not([checked]) radio.checkbox-radio-off {
  width: @metro_spacing_normal@;
  min-width: @metro_spacing_normal@;
  background: #000;
  margin: -@metro_border_thick@;
}

checkbox.toggleswitch[checked] radio.checkbox-radio-off,
checkbox.toggleswitch:not([checked]) radio.checkbox-radio-on {
  width: @metro_spacing_xxxnormal@;
  min-width: @metro_spacing_xxxnormal@;
  margin: @metro_border_thin@;
}

checkbox.toggleswitch:not([checked]) radio.checkbox-radio-on {
  background: @field_disabled_foreground_color@;
}

checkbox.toggleswitch[checked] radio.checkbox-radio-off {
  background: @selected_color@;
}

checkbox.toggleswitch[checked] radio:last-child {
  -moz-margin-start: 0;
}

checkbox.toggleswitch[checked] radio:first-child {
  -moz-margin-end: 0;
}

/* Color Picker ------------------------------------------------------------ */

colorpicker > panel {
  background-color: #767973;
}

colorpicker > vbox {
  background-color: #767973;
}

/* Rich List Box ---------------------------------------------------------- */

richlistbox {
  -moz-user-focus: ignore;
  margin: 0;
}

richlistitem {
  -moz-user-focus: ignore;
  min-height: @metro_spacing_normal@; /* row size */
  padding: @metro_spacing_small@;
}

richlistitem label.normal,
richlistitem description.normal,
richlistitem label.normal-black,
richlistitem description.normal-black,
richlistitem label.normal-bold,
richlistitem description.normal-bold{
  white-space: pre-wrap;
  word-wrap: break-word;
}

richlistitem label.normal,
richlistitem description.normal {
  color: gray;
}

richlistitem label.normal-bold,
richlistitem description.normal-bold {
  font-weight: bold;
}

richlistitem[selected] {
  color: black;
  background-color: white;
}

richlistitem:hover:active:not([selected]) {
  background-color: #8db8d8;
}

richlistitem.section-header,
richlistitem[selected].section-header {
  font-weight: bold;
  color: #000;
  background-color: lightgray;
}

richlistitem[selected] .hide-on-select,
richlistitem .show-on-select {
  visibility: collapse;
}

richlistitem[selected] .show-on-select,
richlistitem .hide-on-select {
  visibility: visible;
}

richlistitem[typeName="message"] {
  border-bottom: 0;
}

/* Notification box ("info app bar") ---------------------------------------- */

notification {
  background: hsl(0, 0%, 98%);
  border-bottom: 1px solid hsla(0, 0%, 0%, .07);
  box-shadow: 0 0 10px hsla(0, 0%, 0%, .1);
  min-height: 64px;
}

.notification-inner {
  border-style: none;
}

.notification-button {
  -moz-margin-start: 0;
  -moz-margin-end: 20px;
}

.messageImage {
  width: 32px;
  height: 32px;
  -moz-margin-start: 40px;
  -moz-margin-end: 16px;
}

/* If there is no image set, collapse the image but keep the starting margin */
.messageImage:not([src]) {
  width: 0;
  -moz-margin-end: 0;
}

.messageText {
  margin: 0;
}

.messageCloseButton {
  list-style-image: url("chrome://browser/skin/images/infobar-close.png");
  padding: 0;
  -moz-margin-start: 0;
  -moz-margin-end: 40px;
  -moz-image-region: rect(0, 40px, 40px, 0);
}

.messageCloseButton > .toolbarbutton-icon {
  margin: 0;
}

.messageCloseButton:hover {
  -moz-image-region: rect(0, 80px, 40px, 40px);
}

.messageCloseButton:hover:active {
  -moz-image-region: rect(0, 120px, 40px, 80px);
}

.notification-link {
  /* Make the link take up all the space before the buttons. */
  -moz-box-flex: 9999;
}


/* Rich Grid ---------------------------------------------------------------- */

richgrid {
  display: -moz-box;
  -moz-box-sizing: border-box;
}

richgrid .meta-grid {
  display: block;
}

richgriditem {
  padding: @metro_spacing_small@;
}

richgriditem .richgrid-item-content {
  border: @metro_border_thin@ solid @tile_border_color@;
  box-shadow: 0 0 @metro_spacing_snormal@ rgba(0, 0, 0, 0.1);
  -moz-box-sizing: border-box;
  padding: 10px 8px 6px 8px;
  position: relative;
}
.richgrid-item-content {
  background: #fff;
}

richgriditem[selected] .richgrid-item-content::after {
    content: "";
    pointer-events: none;
    display: block;
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    background-image: url(chrome://browser/skin/images/tile-selected-check-hdpi.png);
    background-origin: border-box;
    background-position: right 0 top 0;
    background-repeat: no-repeat;
    /* scale the image whatever the dppx */
    background-size: 35px 35px;
    border: @metro_border_xthick@ solid @selected_color@;
}

richgriditem[crosssliding] {
  z-index: 1;
}

/* ease the return to original position when cross-sliding */
richgriditem:not([crosssliding]) {
  transition: transform ease-out 0.2s;
}

richgriditem .richgrid-icon-container {
  padding-bottom: 2px;
}

richgriditem .richgrid-icon-box {
  padding: 4px;
  background: #fff;
  opacity: 1.0;
}


/* tile pinned-state indication */
richgriditem[pinned] .richgrid-item-content::before {
  pointer-events:none;
  content: "";
  display: block;
  position: absolute;
  width: 35px;
  height: 35px;
  right: 0;
  left: auto;
  top: 0;
  background-image: url(chrome://browser/skin/images/pinned-hdpi.png);
  background-position: center;
  background-repeat: no-repeat;
  /* scale the image whatever the dppx */
  background-size: 70px 70px;
}

/* Selected _and_ pinned tiles*/
richgriditem[selected][pinned] .richgrid-item-content::before {
  background-position: right -@metro_border_xthick@ top -@metro_border_xthick@;
  width: 70px;
  height: 70px;
}

richgriditem[pinned]:-moz-locale-dir(rtl) .richgrid-item-content::before {
  left: 0;
  right: auto;
}

richgriditem[customColor] {
  color: #f1f1f1;
}
richgriditem[customImage] {
  color: #1a1a1a;
}


richgriditem[customColor] .richgrid-icon-box {
  opacity: 0.8;
  background-color: #fff;
}

.richgrid-item-content[customImage] {
  height: 160px;
  width: 250px;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  -moz-box-pack: end;
  padding: 0px;
}

/* hide icon if there is an image background */
.richgrid-icon-container[customImage] {
  visibility: collapse;
}

.richgrid-item-desc {
  width: @tile_width@;
  font-size: @metro_font_normal@;
  margin-left: 0px;
  padding-left: 0px !important;
}

.richgrid-item-content[customImage] > .richgrid-item-desc {
  background: hsla(0,2%,98%,.95);
  /*margin-bottom: 0px;
  margin-right: 0px;*/
  margin: 0px;
}

richgriditem image {
  width: 24px;
  height: 24px;
  list-style-image: url("chrome://browser/skin/images/identity-icons-generic.png");
}

/* Dialogs ----------------------------------------------------------------- */

.modal-block,
.perm-modal-block {
  background-color: rgba(0,0,0,.6);
  -moz-box-align: center;
  -moz-box-pack: center;
  -moz-box-orient: horizontal;
}

.dialog-dark,
.panel-arrowcontent {
  background: url("chrome://browser/skin/images/popup-bg-hdpi.png") left bottom repeat-x;
  background-color: white;
  border-radius: @border_radius_normal@;
  box-shadow: black 0 @border_radius_tiny@ @border_radius_tiny@,
              black 0 -@border_radius_tiny@ @border_radius_tiny@;
  padding: @padding_normal@ 0; /* core spacing on top/bottom */
}

dialog {
  -moz-box-orient: horizontal;
  -moz-box-align: center;
  -moz-box-pack: center;
}

dialog > .prompt-inner {
  width: 600px;
}

.prompt-header > .prompt-message {
  white-space: pre-wrap;
}

.prompt-header > .button-checkbox {
  margin-left: @margin_large@;
}

.prompt-title {
  padding-top: @metro_spacing_normal@;
  text-align: start;
  font-size: @metro_font_large@;
}

/* Authentication dialogs do not have a title */
.prompt-title:empty {
  display: none;
}

.prompt-message {
  text-align: start;
  font-size: @metro_font_normal@;
}

.prompt-buttons {
  -moz-box-pack: end;
  text-align: end;
  padding: @metro_spacing_normal@ 0;
}

.prompt-edit {
  margin: @margin_xnormal@;
  font-size: @font_normal@;
  text-align: start;
}

/* Arrowbox ---------------------------------------------------------------- */

arrowbox {
  -moz-appearance: none;
  background: transparent;
  border: none;
}

.arrowbox-dark .panel-arrowcontent {
  color: white;
  background: @panel_dark_color@;
}

.arrowbox-dark .panel-arrowcontent {
  border: @border_width_large@ solid white;
  border-radius: @border_radius_normal@;
  box-shadow: black 0 @shadow_width_small@ @shadow_width_small@;
}

.panel-arrow[side="top"] {
  list-style-image: url("chrome://browser/skin/images/arrowbox-up.png");
  margin-bottom: -@margin_normal@;
}

.panel-arrow[side="bottom"] {
  list-style-image: url("chrome://browser/skin/images/arrowbox-down.png");
  margin-top: -@margin_normal@;
}

.panel-arrow[side="left"] {
  list-style-image: url("chrome://browser/skin/images/arrowbox-horiz.png");
  margin-right: -@margin_normal@;
  transform: scaleX(-1);
}

.panel-arrow[side="right"] {
  list-style-image: url("chrome://browser/skin/images/arrowbox-horiz.png");
  margin-left: -@margin_normal@;
}

/*.meta -------------------------------------------------------------------- */

.meta {
  background-color: @panel_light_color@;
  background-image: url("chrome://browser/skin/images/firefox-watermark.png");
  background-repeat: no-repeat;
  background-position: center center;
  padding: @metro_spacing_normal@ @metro_spacing_xxnormal@;
  overflow: auto;
  max-width: 100%;
  width: 100%;
}

.meta-section {
  margin: 0 @metro_spacing_large@;
}

.meta-section-title {
  font-size: @metro_font_large@;
  font-weight: 100;
}
