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

/* all localizable skin settings shall live here */
@import url("chrome://global/locale/intl.css");

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

/* ::::: XBL bindings ::::: */

menulist > menupopup {
  -moz-binding: url("chrome://global/content/bindings/popup.xml#popup-scrollbars");
}

/* ::::: Variables ::::: */
:root {
  --arrowpanel-padding: 16px;
  --arrowpanel-background: linear-gradient(hsla(0,0%,99%,1), hsla(0,0%,99%,.975) 10%, hsla(0,0%,98%,.975));
  --arrowpanel-color: hsl(0,0%,10%);
  --arrowpanel-border-color: hsla(210,4%,10%,.05);
  --arrowpanel-border-radius: 3.5px;
}

/* ::::: root elements ::::: */

window,
page,
dialog,
wizard,
prefwindow { 
  -moz-appearance: dialog;
  background-color: #FFFFFF;
  color: -moz-DialogText;
  font: message-box;
}

prefwindow[type="child"] {
  padding-top: 18px;
  padding-bottom: 15px;
  padding-inline-start: 18px;
  padding-inline-end: 20px;
}

/* deprecated */
window.dialog {
  padding-top: 8px;
  padding-bottom: 10px;
  padding-inline-start: 8px;
  padding-inline-end: 10px;
}

/* ::::: alert icons :::::*/

.message-icon,
.alert-icon,
.error-icon,
.question-icon {
  width: 64px;
  height: 64px;
  margin: 6px;
  margin-inline-end: 20px;
}

.message-icon {
  list-style-image: url("chrome://global/skin/icons/information-64.png");
}

.alert-dialog #info\.icon,
.alert-icon {
  list-style-image: url("chrome://global/skin/icons/warning-64.png");
}

.error-icon {
  list-style-image: url("chrome://global/skin/icons/error-64.png");
}

.question-icon {
  list-style-image: url("chrome://global/skin/icons/question-64.png");
}

/* ::::: iframe ::::: */

iframe {
  border: none;
  width: 100px;
  height: 100px;
  min-width: 10px;
  min-height: 10px;
}

/* ::::: statusbar ::::: */

statusbar {
  min-width: 1px; /* DON'T DELETE!
  Prevents hiding of scrollbars in browser when window is made smaller.*/
  min-height: 15px !important;
  margin: 0px !important;
  /* need to use padding-inline-end when/if bug 631729 gets fixed: */
  padding: 0px 16px 1px 1px;
  -moz-appearance: statusbar;
  text-shadow: rgba(255, 255, 255, 0.4) 0 1px;
}

statusbarpanel {
  -moz-box-align: center;
  -moz-box-pack: center;
  padding: 0 4px;
}

.statusbarpanel-iconic {
  padding: 0px;
}    

/* ::::: miscellaneous formatting ::::: */

:root:-moz-lwtheme,
[lwthemefooter="true"] {
  -moz-appearance: none;
}

:root:-moz-lwtheme-darktext {
  text-shadow: 0 -0.5px 1.5px white;
}

:root:-moz-lwtheme-brighttext {
  text-shadow: 1px 1px 1.5px black;
}

statusbar:-moz-lwtheme {
  -moz-appearance: none;
  background: none;
  border-style: none;
  text-shadow: inherit;
}

.inset {
  border: 1px solid ThreeDShadow;
  border-right-color: ThreeDHighlight;
  border-bottom-color: ThreeDHighlight;
  margin: 0 5px 5px;
}
  
.outset {
  border: 1px solid ThreeDShadow;
  border-left-color: ThreeDHighlight;
  border-top-color: ThreeDHighlight;
}

separator:not([orient="vertical"]) {
  height: 1.5em;
}
separator[orient="vertical"] {
  width: 1.5em;
}

separator.thin:not([orient="vertical"]) {
  height: 0.5em;
}  
separator.thin[orient="vertical"] {
  width: 0.5em;
}

separator.groove:not([orient="vertical"]) {
  border-top: 1px solid #A3A3A3;
  height: 0;
  margin-top: 0.4em;
  margin-bottom: 0.4em;
}
separator.groove[orient="vertical"] {
  border-left: 1px solid #A3A3A3;
  width: 0;
  margin-left: 0.4em;
  margin-right: 0.4em;
}
    
.plain {
  -moz-appearance: none;
  margin: 0 !important;
  border: none;
  padding: 0;
}

description,
label {
  cursor: default;
  margin-top: 1px;
  margin-bottom: 2px;
  margin-inline-start: 6px;
  margin-inline-end: 5px;
}

description {
  margin-bottom: 4px;
}

label[disabled="true"] {
  color: GrayText;
}

.tooltip-label {
  margin: 0;
}

.header {
  font-weight: bold;
}

.monospace {
  font-family: monospace;
}

.indent {
  margin-inline-start: 23px;
}

.box-padded {
  padding: 5px;
}

.spaced {
  margin: 3px 5px 4px;
}

.wizard-box {
  padding: 20px 44px 10px;
}

.text-link {
  color: -moz-nativehyperlinktext;
  cursor: pointer;
}

.text-link:hover {
  text-decoration: underline;
}
  
.text-link:-moz-focusring {
  box-shadow: @focusRingShadow@;
}

.toolbar-focustarget {
  -moz-user-focus: ignore !important;
}

notification > button {
  margin: 0 3px;
  padding: 1px 10px;
  min-width: 60px;
  min-height: 16px;
  -moz-appearance: none;
  border-radius: 10000px;
  border: @roundButtonBorder@;
  text-shadow: @loweredShadow@;
  background: @roundButtonBackground@;
  box-shadow: @roundButtonShadow@;
}

notification > button:active:hover {
  background: @roundButtonPressedBackground@;
  box-shadow: @roundButtonPressedShadow@;
}

notification > button:-moz-focusring {
  box-shadow: @focusRingShadow@, @roundButtonShadow@;
}

notification > button:active:hover:-moz-focusring {
  box-shadow: @focusRingShadow@, @roundButtonPressedShadow@;
}

notification > button > .button-box > .button-text {
  margin: 0 !important;
}

popupnotificationcontent {
  margin-top: .5em;
}

/* :::::: autoscroll popup ::::: */

.autoscroller {
  height: 28px;
  width: 28px;
  border: none;
  margin: -14px;
  padding: 0;
  background-image: url("chrome://global/skin/icons/autoscroll.png");
  background-color: transparent;
  background-position: right top;
  -moz-appearance: none;
  -moz-window-shadow: none;
}

.autoscroller[scrolldir="NS"] {
  background-position: right center;
}

.autoscroller[scrolldir="EW"] {
  background-position: right bottom;
}

/* autorepeatbuttons in menus */

.popup-internal-box > autorepeatbutton {
  height: 15px;
  position: relative;
  list-style-image: none;
  /* Here we're using a little magic.
   * The arrow button is supposed to overlay the scrollbox, blocking
   * everything under it from reaching the screen. However, the menu background
   * is slightly transparent, so how can we block something completely without
   * messing up the transparency? It's easy: The native theming of the
   * "menuitem" appearance uses CGContextClearRect before drawing, which
   * clears everything under it.
   * Without help from native theming this effect wouldn't be achievable.
   */
  -moz-appearance: menuitem;
}

.popup-internal-box > .autorepeatbutton-up {
  padding-top: 1px; /* 4px padding-top from the .popup-internal-box. */
  margin-bottom: -15px;
}

.popup-internal-box > .autorepeatbutton-up > .autorepeatbutton-icon {
  -moz-appearance: button-arrow-up;
}

.popup-internal-box > .autorepeatbutton-down {
  padding-top: 5px;
  margin-top: -15px;
}

.popup-internal-box > .autorepeatbutton-down > .autorepeatbutton-icon {
  -moz-appearance: button-arrow-down;
}

.popup-internal-box > autorepeatbutton[disabled="true"] {
  visibility: collapse;
}

/* :::::: Close button icons ::::: */

.close-icon {
  list-style-image: url("chrome://global/skin/icons/close.png");
  -moz-image-region: rect(0, 16px, 16px, 0);
}

.close-icon:hover {
  -moz-image-region: rect(0, 32px, 16px, 16px);
}

.close-icon:hover:active {
  -moz-image-region: rect(0, 48px, 16px, 32px);
}

@media (min-resolution: 2dppx) {
  .close-icon > .button-icon,
  .close-icon > .button-box > .button-icon,
  .close-icon > .toolbarbutton-icon {
    width: 16px;
  }

  .close-icon {
    list-style-image: url("chrome://global/skin/icons/close@2x.png");
    -moz-image-region: rect(0, 32px, 32px, 0);
  }

  .close-icon:hover {
    -moz-image-region: rect(0, 64px, 32px, 32px);
  }

  .close-icon:hover:active {
    -moz-image-region: rect(0, 96px, 32px, 64px);
  }
}
