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

/* ===== xulscrollbars.css ==============================================
  == Styles used by XUL scrollbar-related elements.
  ======================================================================= */

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

/* ::::: scrollbar ::::: */

scrollbar {
  appearance: scrollbar-horizontal;
  -moz-appearance: scrollbar-horizontal;
  -moz-binding: url("chrome://global/content/bindings/scrollbar.xml#scrollbar");
  cursor: default;
  background: url("chrome://global/skin/scrollbar/slider.gif") scrollbar;
}

@media all and (-moz-overlay-scrollbars) {
  scrollbar[root="true"] {
    position: relative;
    z-index: 2147483647; /* largest positive value of a signed 32-bit integer */
  }

  scrollbar:not([active="true"]),
  scrollbar[disabled="true"] {
    visibility: hidden;
  }
}

scrollbar[orient="vertical"] 
{
  appearance: scrollbar-vertical;
   -moz-appearance: scrollbar-vertical;
}

/* ::::: borders for thumb and buttons ::::: */

thumb,
scrollbarbutton {
  border: 2px solid;
  -moz-border-top-colors: ThreeDLightShadow ThreeDHighlight;
  -moz-border-right-colors: ThreeDDarkShadow ThreeDShadow;
  -moz-border-bottom-colors: ThreeDDarkShadow ThreeDShadow;
  -moz-border-left-colors: ThreeDLightShadow ThreeDHighlight;
  background-color: -moz-Dialog;
}

/* ::::: slider - a thumb is inside  ::::: */
slider {
  appearance: scrollbartrack-horizontal;
  -moz-appearance: scrollbartrack-horizontal;
}

slider[orient="vertical"] {
  appearance: scrollbartrack-vertical;
  -moz-appearance: scrollbartrack-vertical;
}

/* ::::: thumb (horizontal) ::::: */

thumb {
  appearance: scrollbarthumb-vertical;
  -moz-appearance: scrollbarthumb-vertical;
  min-height: 8px;
}

thumb[orient="horizontal"] {
  appearance: scrollbarthumb-horizontal;
  -moz-appearance: scrollbarthumb-horizontal;
  min-width: 8px;
}

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

scrollbarbutton {
  background: -moz-Dialog no-repeat 50% 50%;
}

scrollbarbutton:hover:active, scrollbarbutton[active="true"] {
  -moz-border-top-colors: ThreeDShadow -moz-Dialog;
  -moz-border-right-colors: ThreeDShadow -moz-Dialog;
  -moz-border-bottom-colors: ThreeDShadow -moz-Dialog;
  -moz-border-left-colors: ThreeDShadow -moz-Dialog;
  background-position: 60% 60%;
}

/* ::::: square at the corner of two scrollbars ::::: */

scrollcorner { 
  /* XXX -moz-appearance: scrollcorner; */
  -moz-binding: url(chrome://global/content/bindings/scrollbar.xml#scrollbar-base);
  width: 16px;
  cursor: default;
  background-color: -moz-Dialog;
}

/* ..... increment .... */

scrollbarbutton[type="increment"] {
  appearance: scrollbarbutton-right;
  -moz-appearance: scrollbarbutton-right;
  background-image: url("chrome://global/skin/arrow/arrow-rit.gif")
}

scrollbarbutton[type="increment"][disabled="true"] {
  background-image: url("chrome://global/skin/arrow/arrow-rit-dis.gif")
}

scrollbar[orient="vertical"] > scrollbarbutton[type="increment"] {
  appearance: scrollbarbutton-down;
  -moz-appearance: scrollbarbutton-down;
  background-image: url("chrome://global/skin/arrow/arrow-dn.gif")
}

scrollbar[orient="vertical"] > scrollbarbutton[type="increment"][disabled="true"] {
  background-image: url("chrome://global/skin/arrow/arrow-dn-dis.gif")
}

/* ..... decrement .... */

scrollbarbutton[type="decrement"] {
  appearance: scrollbarbutton-left;
  -moz-appearance: scrollbarbutton-left;
   background-image: url("chrome://global/skin/arrow/arrow-lft.gif")
}

scrollbarbutton[type="decrement"][disabled="true"] {
   background-image: url("chrome://global/skin/arrow/arrow-lft-dis.gif")
}

scrollbar[orient="vertical"] > scrollbarbutton[type="decrement"] {
  appearance: scrollbarbutton-up;
  -moz-appearance: scrollbarbutton-up;
   background-image: url("chrome://global/skin/arrow/arrow-up.gif")
}

scrollbar[orient="vertical"] > scrollbarbutton[type="decrement"][disabled="true"] {
   background-image: url("chrome://global/skin/arrow/arrow-up-dis.gif")
}

@media (prefers-color-scheme: dark) {
  scrollbar,
  scrollcorner {
    background-image: none !important;
    background-color: #2b2b2b !important;
  }

  slider {
    appearance: none !important;
    -moz-appearance: none !important;
    background-image: none !important;
    background-color: #2b2b2b !important;
  }

  thumb,
  scrollbarbutton {
    appearance: none !important;
    border-color: #3f454c !important;
    -moz-border-top-colors: #4a5058 #3f454c !important;
    -moz-border-right-colors: #2f343a #262b30 !important;
    -moz-border-bottom-colors: #2f343a #262b30 !important;
    -moz-border-left-colors: #4a5058 #3f454c !important;
    background-color: #5a5a5a !important;
  }

  scrollbarbutton[disabled="true"] {
    background-color: #454b53 !important;
    opacity: 0.75;
  }

  scrollbarbutton[type="increment"] {
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path fill='%23d7dce2' d='M6 4v8l5-4z'/></svg>") !important;
  }

  scrollbar[orient="vertical"] > scrollbarbutton[type="increment"] {
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path fill='%23d7dce2' d='M4 6h8l-4 5z'/></svg>") !important;
  }

  scrollbarbutton[type="increment"][disabled="true"] {
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path fill='%23828a93' d='M6 4v8l5-4z'/></svg>") !important;
  }

  scrollbar[orient="vertical"] > scrollbarbutton[type="increment"][disabled="true"] {
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path fill='%23828a93' d='M4 6h8l-4 5z'/></svg>") !important;
  }

  scrollbarbutton[type="decrement"] {
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path fill='%23d7dce2' d='M10 4v8L5 8z'/></svg>") !important;
  }

  scrollbar[orient="vertical"] > scrollbarbutton[type="decrement"] {
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path fill='%23d7dce2' d='M4 10h8l-4-5z'/></svg>") !important;
  }

  scrollbarbutton[type="decrement"][disabled="true"] {
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path fill='%23828a93' d='M10 4v8L5 8z'/></svg>") !important;
  }

  scrollbar[orient="vertical"] > scrollbarbutton[type="decrement"][disabled="true"] {
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path fill='%23828a93' d='M4 10h8l-4-5z'/></svg>") !important;
  }

  thumb:hover,
  scrollbarbutton:hover {
    background-color: #6a6a6a !important;
  }
}

/* :::::::::::::::::::::::::::::::::::::::::::::::::::::::: */
/* ::::::::::::::::::::: MEDIA PRINT :::::::::::::::::::::: */
/* :::::::::::::::::::::::::::::::::::::::::::::::::::::::: */
@media print {
  /* ::::: scrollbar ::::: */

  html|div scrollbar {
    appearance: scrollbar-horizontal;
    -moz-appearance: scrollbar-horizontal;
    -moz-binding: url("chrome://global/content/bindings/scrollbar.xml#scrollbar");
    cursor: default;
    background: url("chrome://global/skin/scrollbar/slider.gif") scrollbar;
  }

  html|div scrollbar[orient="vertical"] 
  {
      appearance: scrollbar-vertical;
     -moz-appearance: scrollbar-vertical;
  }

  /* ::::: borders for thumb and buttons ::::: */

  html|div thumb,
  html|div scrollbarbutton {
    border: 2px solid;
    -moz-border-top-colors: ThreeDLightShadow ThreeDHighlight;
    -moz-border-right-colors: ThreeDDarkShadow ThreeDShadow;
    -moz-border-bottom-colors: ThreeDDarkShadow ThreeDShadow;
    -moz-border-left-colors: ThreeDLightShadow ThreeDHighlight;
    background-color: -moz-Dialog;
  }

  /* ::::: thumb (horizontal) ::::: */

  html|div thumb {
    appearance: scrollbarthumb-vertical;
    -moz-appearance: scrollbarthumb-vertical;
    min-height: 8px;
  }

  html|div thumb[orient="horizontal"] {
    appearance: scrollbarthumb-horizontal;
    -moz-appearance: scrollbarthumb-horizontal;
    min-width: 8px;
  }

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

  html|div scrollbarbutton {
    background: -moz-Dialog no-repeat 50% 50%;
    min-width: 16px;
    min-height: 16px;
  }

  html|div scrollbarbutton:hover:active, html|div scrollbarbutton[active="true"] {
    -moz-border-top-colors: ThreeDShadow -moz-Dialog;
    -moz-border-right-colors: ThreeDShadow -moz-Dialog;
    -moz-border-bottom-colors: ThreeDShadow -moz-Dialog;
    -moz-border-left-colors: ThreeDShadow -moz-Dialog;
    background-position: 60% 60%;
  }

  /* ..... increment .... */

  html|div scrollbarbutton[type="increment"] {
    appearance: scrollbarbutton-right;
    -moz-appearance: scrollbarbutton-right;
    background-image: url("chrome://global/skin/arrow/arrow-rit.gif")
  }

  html|div scrollbarbutton[type="increment"][disabled="true"] {
    background-image: url("chrome://global/skin/arrow/arrow-rit-dis.gif")
  }

  html|div scrollbar[orient="vertical"] > scrollbarbutton[type="increment"] {
    appearance: scrollbarbutton-down;
    -moz-appearance: scrollbarbutton-down;
    background-image: url("chrome://global/skin/arrow/arrow-dn.gif")
  }

  html|div scrollbar[orient="vertical"] > scrollbarbutton[type="increment"][disabled="true"] {
    background-image: url("chrome://global/skin/arrow/arrow-dn-dis.gif")
  }

  /* ..... decrement .... */

  html|div scrollbarbutton[type="decrement"] {
    appearance: scrollbarbutton-left;
    -moz-appearance: scrollbarbutton-left;
     background-image: url("chrome://global/skin/arrow/arrow-lft.gif")
  }

  html|div scrollbarbutton[type="decrement"][disabled="true"] {
     background-image: url("chrome://global/skin/arrow/arrow-lft-dis.gif")
  }

  html|div scrollbar[orient="vertical"] > scrollbarbutton[type="decrement"] {
    appearance: scrollbarbutton-up;
    -moz-appearance: scrollbarbutton-up;
     background-image: url("chrome://global/skin/arrow/arrow-up.gif")
  }

  html|div scrollbar[orient="vertical"] > scrollbarbutton[type="decrement"][disabled="true"] {
     background-image: url("chrome://global/skin/arrow/arrow-up-dis.gif")
  }

}
