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

/* general stuff ------------------------------------------------------------ */
:root {
  font-family: "Nokia Sans", Tahoma, sans-serif !important;
  font-size: @font_normal@ !important;
  background-color: @color_background_default@; /* force */
  color: @color_text_default@; /* force */
}

::-moz-selection {
  background-color: @color_background_highlight@;
  color: @color_text_highlight@;
}

menu,
menuitem {
  padding: 0 !important;
  margin: 0 !important;
}

description,
label {
  /* force mac to use the same margins as windows and linux */
  -moz-margin-start: @margin_snormal@;
  -moz-margin-end: @margin_snormal@;
}

/* Override any OS inverse themes */
textbox {
  color: @color_text_inverse@;
  background-color: @color_background_inverse@;
}

/* textboxes --------------------------------------------------------------- */
textbox:not([type="number"]) {
  min-height: @textbox_height@;
  border: @border_width_small@ solid @color_button_border@;
  -moz-border-top-colors: -moz-initial;
  -moz-border-right-colors: -moz-initial;
  -moz-border-bottom-colors: -moz-initial;
  -moz-border-left-colors: -moz-initial;
}

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

textbox.search-bar {
  border: @border_width_small@ solid rgba(0,0,0,0.4);
  background-color: #f9f9f9;
  background: url("chrome://browser/skin/images/textbox-bg.png") top left repeat-x;
  background-size: 100% 100%; 
}

textbox[disabled="true"] {
  background-color: lightgray;
}

.link {
  color: @color_text_as_link@;
  text-decoration: underline;
}

/* sidebars spacer --------------------------------------------------------- */
.sidebar-spacer {
  background-color: #767973;
}

/* prompt dialogs ---------------------------------------------------------- */
.context-block,
.modal-block,
.perm-modal-block {
  -moz-box-align: center;
  -moz-box-pack: center;
  background-color: rgba(0,0,0,.6);
}

.context-block {
  padding: @margin_context_popup@;
}

.dialog-dark,
.panel-arrowcontent {
  background-color: @color_background_inverse@;
  box-shadow: black 0 @border_radius_tiny@ @border_radius_tiny@, black 0 -@border_radius_tiny@ @border_radius_tiny@;
  padding: 0;
}

@media (max-width: 499px) {
  .context-block {
    padding: @padding_xlarge@;
  }
}

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

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

/* buttons ----------------------------------------------------------------- */
.button-text,
.toolbarbutton-text {
  font-weight: normal;
  font-size: @font_snormal@ !important;
}

button {
  -moz-appearance: none;
  min-width: @touch_button_minwidth@ !important;
  min-height: @touch_button_small@ !important; /* button size */
  color: @color_text_button@;
  margin: @margin_normal@;
  padding: @padding_xnormal@;
  background-image: url("chrome://browser/skin/images/button-bg.png");
  background-size: auto 100%;
  border: @border_width_tiny@ solid @color_button_border@;
}

button[disabled="true"] {
  color: @color_text_disabled@ !important;
  border: @border_width_tiny@ solid @color_button_border@ !important;
}

button:focus > .button-box {
  border: @border_width_tiny@ solid transparent;
}

button:not([disabled]):hover:active,
button:not([disabled])[checked="true"] {
  background-image: url("chrome://browser/skin/images/toggle-off.png");
}

/* Override GTK2 system setting */
.button-icon {
  display: -moz-initial !important;
}

/* spinbuttons ------------------------------------------------------------- */
spinbuttons {
  border: none !important;
}

.numberbox-input-box {
  border: @border_width_small@ solid @color_button_border@;
  border-right: 0 solid transparent;
  -moz-border-top-colors: -moz-initial;
  -moz-border-bottom-colors: -moz-initial;
  -moz-border-left-colors: -moz-initial;
}

.numberbox-input-box:-moz-locale-dir(rtl) {
  border-right: @border_width_small@ solid @color_button_border@;
  border-left: 0 solid transparent;
}

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

.spinbuttons-up .button-icon,
.spinbuttons-down .button-icon {
  display: block;
}

.spinbuttons-up,
.spinbuttons-down {
  -moz-appearance: none !important;
  min-width: @touch_button_small@ !important; /* button size */
  min-height: @touch_button_small@ !important; /* button size */
  color: @color_text_button@;
  margin: @margin_normal@;
  padding: @padding_xnormal@;
  background-image: url("chrome://browser/skin/images/button-bg.png");
  background-size: auto 100%;
  border: @border_width_tiny@ solid @color_button_border@;
  list-style-image: url("chrome://browser/skin/images/arrowdown-16.png");
}

.spinbuttons-up:hover:active:not([disabled=true]),
.spinbuttons-down:hover:active:not([disabled=true]) {
  background-image: url("chrome://browser/skin/images/toggle-on.png");
}

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

/* toolbar buttons --------------------------------------------------------- */
toolbarbutton {
  min-width: @touch_button_large@ !important; /* primary button size */
  min-height: @touch_button_large@ !important; /* primary button size */
  -moz-appearance: none !important;
  margin: 0;
  padding: @padding_xsmall@;
}

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

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

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;
}

/* checkbox buttons ----------------------------------------------------------- */
.button-checkbox {
  padding: 0 !important;
  background: none !important;
  border: none !important;
  -moz-border-image: none !important;
  color: @color_text_default@;
  -moz-box-align: center;
  font-size: @font_small@;
  -moz-box-align: center;
}

.prompt-checkbox-label {
  text-align: left;
}

.button-checkbox > .button-image-icon {
  -moz-margin-end: @margin_normal@;
  list-style-image: url("chrome://browser/skin/images/check-unselected-hdpi.png");
}

.button-checkbox[checked="true"] > .button-image-icon {
  list-style-image: url("chrome://browser/skin/images/check-selected-hdpi.png");
}

.button-checkbox > .button-box,
.button-checkbox:hover:active > .button-box,
.button-checkbox[checked="true"] > .button-box {
  padding-top: @padding_tiny@;
  padding-bottom: @padding_xsmall@;
  -moz-padding-start: @padding_small@;
  -moz-padding-end: @padding_small@;
}

/* radio buttons ----------------------------------------------------------- */
radiogroup {
  -moz-box-orient: horizontal;
}

.radio-label {
  font-weight: normal;
  font-size: @font_snormal@ !important;
}

radio {
  -moz-appearance: none;
  min-width: @touch_button_small@ !important; /* button size */
  min-height: @touch_button_small@ !important; /* button size */
  color: @color_text_button@;
  padding: @padding_xnormal@;
  margin: 0;
  background-image: url("chrome://browser/skin/images/button-bg.png");
  background-size: auto 100%;
  border-top: @border_width_tiny@ solid @color_button_border@;
  border-bottom: @border_width_tiny@ solid @color_button_border@;
}

radio .radio-icon, radio .radio-check {
  display: none;
}

radio:not([disabled=true]):hover:active,
radio[selected] {
  color: white;
  background-image: url("chrome://browser/skin/images/toggle-on.png");
}

radio:first-child {
  border-left: @border_width_tiny@ solid @color_button_border@;
}

radio:first-child:-moz-locale-dir(rtl) {
  border-left: none;
  border-right: @border_width_tiny@ solid @color_button_border@;
}

radio:last-child {
  border-right: @border_width_tiny@ solid @color_button_border@;
}

radio:last-child:-moz-locale-dir(rtl) {
  border-right: none;
  border-left: @border_width_tiny@ solid @color_button_border@;
}

radio[focused="true"] > .radio-label-box {
  border: @border_width_tiny@ solid transparent;
}

/* checkbox  --------------------------------------------------------------- */
checkbox {
  margin: @margin_tiny@ @margin_small@ @margin_tiny@ @margin_small@; /* match platform style for buttons */
  -moz-binding: url("chrome://global/content/bindings/checkbox.xml#checkbox-with-spacing") !important;
}

/* stop the focus from moving/showing the border around the label, which we don't use */
checkbox:focus > .checkbox-label-center-box > .checkbox-label-box {
  border: 1px solid transparent;
}

.checkbox-check {
  border: 2px transparent;
  -moz-border-top-colors: -moz-initial;
  -moz-border-right-colors: -moz-initial;
  -moz-border-bottom-colors: -moz-initial;
  -moz-border-left-colors: -moz-initial;
  width: 46px;
  height: 46px;
  background: url("chrome://browser/skin/images/check-unselected-hdpi.png") no-repeat 50% 50%;
}

checkbox[checked="true"] > .checkbox-spacer-box > .checkbox-check {
  background-image: url("chrome://browser/skin/images/check-selected-hdpi.png");
}

checkbox[checked="true"][disabled="true"] > .checkbox-spacer-box > .checkbox-check {
  background-image: url("chrome://browser/skin/images/check-selected-hdpi.png");
}

/* richlistbox ------------------------------------------------------------- */
richlistbox {
  color: @color_text_default@;
  background-color: @color_background_default@;
  -moz-user-focus: ignore;
  margin: 0;
}

richlistitem {
  -moz-user-focus: ignore;
  min-height: @touch_row@; /* row size */
  padding: @padding_small@;
  border-bottom: @border_width_tiny@ solid @color_divider_border@;
}

richlistitem label.title,
richlistitem description.title {
  font-size: @font_normal@ !important;
}

richlistitem label.normal,
richlistitem description.normal {
  color: @color_subtext_default@;
  font-size: @font_small@ !important;
  white-space: pre-wrap;
  word-wrap: break-word;
}

richlistitem label.normal-black,
richlistitem description.normal-black {
  font-size: @font_small@  !important;
  white-space: pre-wrap;
  word-wrap: break-word;
}

richlistitem label.normal-bold,
richlistitem description.normal-bold {
  font-weight: bold;
  font-size: @font_small@  !important;
  white-space: pre-wrap;
  word-wrap: break-word;
}

richlistitem[selected="true"] {
  color: @color_text_default@;
  background-color: @color_background_default@;
}

richlistitem:hover:active:not([selected="true"]):not([nohighlight="true"]),
richlistitem:hover:active:not([selected="true"]):not([nohighlight="true"]) label.normal,
richlistitem:hover:active:not([selected="true"]):not([nohighlight="true"]) description.normal {
  background-color: @color_background_highlight@;
  color: @color_text_highlight@;
}

richlistitem.section-header,
richlistitem[selected="true"].section-header {
  font-weight: bold;
  color: @color_text_header@;
  background-color: @color_background_header@;
}

richlistitem .show-on-select {
  visibility: collapse;
}

richlistitem[selected="true"] .show-on-select {
  visibility: visible;
}

richlistitem .hide-on-select {
  visibility: visible;
}

richlistitem[selected="true"] .hide-on-select {
  visibility: collapse;
}

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

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

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

/* textbox ----------------------------------------------------------------- */
.textbox-search-icon {
  list-style-image: url("chrome://browser/skin/images/search-glass-30.png");
  -moz-image-region: auto;
}

.textbox-search-clear {
  list-style-image: url("chrome://browser/skin/images/search-clear-30.png");
  -moz-image-region: auto;
}

/* menulist ---------------------------------------------------------------- */
.menulist-label {
  font-family: "Nokia Sans", Tahoma, sans-serif !important;
  font-weight: normal;
  font-size: @font_snormal@  !important;
  background-color: transparent !important;
}

menulist {
  -moz-appearance: none !important;
  -moz-user-focus: ignore;
  min-width: @touch_button_minwidth@ !important;
  min-height: @touch_button_small@ !important; /* button size */
  color: @color_text_button@ !important;
  margin: @margin_normal@;
  padding: @padding_small@ @padding_xnormal@;
  background-image: url("chrome://browser/skin/images/button-bg.png");
  background-size: auto 100%;
  border: @border_width_tiny@ solid @color_button_border@;
}

menulist[disabled="true"] {
  color: @color_text_disabled@ !important;
  border: @border_width_tiny@ solid @color_button_border@ !important;
}

menulist:not([disabled="true"]):hover:active {
  background-image: url("chrome://browser/skin/images/toggle-off.png");
}

menulist > dropmarker {
  height: 32px;
  width: 32px;
  margin-left: @margin_snormal@;
  background-color: transparent; /* for windows */
  border: none;                  /* for windows */
  -moz-box-align: center;
  -moz-box-pack: center;
  list-style-image: url("chrome://browser/skin/images/dropmarker-hdpi.png");
  -moz-image-region: auto;
  display: block;
}

menulist[disabled="true"] > dropmarker {
  opacity: 0.5;
}

/* progressmeter ----------------------------------------------------------- */
progressmeter {
  background-color: #fff;
  padding: @padding_small@;
  height: @textbox_height@;
  border: @border_width_large@ solid #aaa;
  -moz-border-top-colors: -moz-initial;
  -moz-border-right-colors: -moz-initial;
  -moz-border-bottom-colors: -moz-initial;
  -moz-border-left-colors: -moz-initial;
}

.progress-bar {
  background-color: @color_background_highlight@;
}

/* panels / arrowboxes------------------------------------------------------ */
arrowbox {
  -moz-appearance: none;
  background: transparent !important;
  border: none;
}

.arrowbox-dark .panel-arrowcontent {
  padding: @padding_normal@; /* core spacing */
}

dialog,
.arrowbox-dark .panel-arrowcontent,
.panel-dark {
  color: @color_text_default@;
  background: @color_background_default@;
}

dialog,
.arrowbox-dark .panel-arrowcontent {
  border: @border_width_small@ solid @color_dialog_border@;
  box-shadow: black 0 @shadow_width_small@ @shadow_width_small@;
}

dialog {
  margin: @margin_xxxnormal@ !important;
  max-width: @dialog_width@;
}

.prompt-message {
  -moz-box-pack: center;
  font-size: @font_snormal@;
  margin: @padding_normal@;
}

.prompt-title {
  font-size: @font_xnormal@;
  padding-top: @padding_xnormal@;
  padding-left: @padding_normal@;
}

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

.prompt-line {
  border-bottom: @border_width_tiny@ solid @color_divider_border@;
  margin: @margin_small@ 0 0 0;
  height: @padding_normal@ !important;
}

.prompt-buttons {
  font-size: @font_snormal@;
  background-color: @color_background_dlgbuttons@;
  display: inline-block;
  text-align: center;
}

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

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

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

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

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

/*.panel-row-header ------------------------------------------------------------ */
.panel-row-header {
  border-bottom: @border_width_xxlarge@ solid @color_background_active@;
  background-color: @color_background_default@ !important;
  padding: 0 !important;
}

.panel-row-button {
  -moz-appearance: none;
  background: @color_background_default@;
  background-size: 100% 100%;
  color: white;
  border: 0 solid transparent !important;
  -moz-border-start: @border_width_tiny@ solid rgba(255,255,255,0.2) !important;
  -moz-border-end: @border_width_tiny@ solid rgba(0,0,0,0.2) !important;
  padding-top: @padding_xsmall@ !important;
  padding-bottom: @padding_xsmall@ !important;
  -moz-padding-start: @padding_xsmall@ !important;
  -moz-padding-end: @padding_xsmall@ !important;
  -moz-box-flex: 1;
  -moz-user-focus: ignore;
  -moz-user-select: none;
}

.panel-row-button:hover:active {
  background: @color_background_active@;
  background-size: 100% 100%;
}

.panel-row-button:first-child {
  -moz-border-start-width: 0 !important;
}

.panel-row-button:last-child {
  -moz-border-end-width: 0 !important;
}

@media (@orientation@: portrait) {
  .panel-row-button {
    -moz-box-orient: vertical;
  }

  .panel-row-button .toolbarbutton-text {
    font-size: @font_xsmall@ !important;
  }
}

.panel-row-button .toolbarbutton-text {
  text-align: left;
  text-shadow: rgba(0,0,0,0.3) 0 @shadow_width_small@;
}

.panel-row-button .toolbarbutton-text:-moz-locale-dir(rtl) {
  text-align: right;
}

.panel-row-button[disabled="true"] {
  pointer-events: none;
}

.panel-row-button[disabled="true"] .toolbarbutton-icon {
  opacity: 0.5;
}

.panel-row-button[disabled="true"] .toolbarbutton-text {
  color: @color_text_disabled@;
}

.panel-row-button[checked="true"] {
  color: white !important;
  background: @color_background_active@ !important;
  background-size: 100% 100% !important;
}

.panel-row-button[checked="true"],
.panel-row-button[disabled="true"] {
  pointer-events: none;
}

#panel-container-inner {
  -moz-box-orient: vertical;
}

#panel-controls {
  -moz-box-orient: horizontal;
}

@media (min-width: @tablet_panel_minwidth@) {
  #panel-container-inner {
    -moz-box-orient: horizontal;
    -moz-box-pack: center;
  }

  #panel-items {
    max-width: @tablet_panel_minwidth@;
    min-width: 0px !important;
  }
  
  /* This will affect the prefs screen, but not the awesome screen */
  #panel-controls {
    -moz-box-orient: vertical !important;
    -moz-box-align: start;
  }
  
  #panel-controls > .panel-row-button {
    -moz-box-orient: horizontal;
    -moz-box-flex: 0;
    min-width: @tablet_panel_controls@ !important;
  }

  #panel-controls .toolbarbutton-text {
    display: -moz-box !important;
    -moz-box-flex: 1;
  }
  
  #panel-container {
    -moz-box-pack: center;
    padding: @padding_xlarge@ 0px;
  }
}

/* because the buttons can wrap, we need to use the margin to create inter-button
  spacing and a bottom margin for the notification */
notification > button {
  margin-bottom: @margin_normal@;
}
