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

@import url(resource://gre-resources/html.css);
@import url(chrome://global/content/xul.css);

@namespace parsererror url(http://www.mozilla.org/newlayout/xml/parsererror.xml);
@namespace xul url(http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul);

/* magic -- some of these rules are important to keep pages from overriding
            them
*/

/* Tables */

*|*::-moz-table {
  display: table !important;
  -moz-box-sizing: border-box; /* XXX do we really want this? */
}

*|*::-moz-inline-table {
  display: inline-table !important;
  -moz-box-sizing: border-box; /* XXX do we really want this? */
}

*|*::-moz-table-outer {
  display: inherit !important; /* table or inline-table */
  margin: inherit ! important;
  padding: 0 ! important;
  border: none ! important;
  float: inherit;
  clear: inherit;
  position: inherit;
  top: inherit;
  right: inherit;
  bottom: inherit;
  left: inherit;
  z-index: inherit;
  page-break-before: inherit;
  page-break-after: inherit;
  page-break-inside: inherit;
  vertical-align: inherit; /* needed for inline-table */
  line-height: inherit; /* needed for vertical-align on inline-table */
  align-self: inherit; /* needed for "align-self" to work on table flex items */
  order: inherit;   /* needed for "order" to work on table flex items */
  /* Bug 722777 */
  -moz-transform: inherit;
  -moz-transform-origin: inherit;
  /* Bug 724750 */
  -moz-backface-visibility: inherit;
  clip: inherit;
}

*|*::-moz-table-row {
  display: table-row !important;
}

/* The ::-moz-table-column pseudo-element is for extra columns at the end 
   of a table. */
*|*::-moz-table-column {
  display: table-column !important;
}

*|*::-moz-table-column-group {
  display: table-column-group !important;
}
 
*|*::-moz-table-row-group {
  display: table-row-group !important;
}

*|*::-moz-table-cell {
  display: table-cell !important;
  white-space: inherit;
}

/* Lists */

*|*::-moz-list-bullet, *|*::-moz-list-number {
  display: inline;
  vertical-align: baseline;
  -moz-margin-end: 8px;
}

/* Links */

*|*:-moz-any-link {
  cursor: pointer;
}

*|*:-moz-any-link:-moz-focusring {
  /* Don't specify the outline-color, we should always use initial value. */
  outline: 1px dotted;
}

/* Miscellaneous */

*|*::-moz-anonymous-block, *|*::-moz-cell-content {
  display: block !important;
  position: static !important;
  unicode-bidi: inherit;
  text-overflow: inherit;
}

*|*::-moz-anonymous-block, *|*::-moz-anonymous-positioned-block {
  /* we currently inherit from the inline that is split */
  outline: inherit;
  outline-offset: inherit;
  clip-path: inherit;
  filter: inherit;
  mask: inherit;
  opacity: inherit;
  text-decoration: inherit;
  -moz-box-ordinal-group: inherit !important;
}

*|*::-moz-xul-anonymous-block {
  display: block ! important;
  position: static ! important;
  float: none ! important;
  -moz-box-ordinal-group: inherit !important;
  text-overflow: inherit;
}

*|*::-moz-scrolled-content, *|*::-moz-scrolled-canvas,
*|*::-moz-scrolled-page-sequence {
  /* e.g., text inputs, select boxes */
  padding: inherit;
  /* The display doesn't affect the kind of frame constructed here.  This just
     affects auto-width sizing of the block we create. */
  display: block;
  -moz-box-orient: inherit;
  /* make unicode-bidi inherit, otherwise it has no effect on text inputs and
     blocks with overflow: scroll; */
  unicode-bidi: inherit;
  text-overflow: inherit;
  -moz-column-count: inherit;
  -moz-column-width: inherit;
  -moz-column-gap: inherit;
  -moz-column-rule: inherit;
  /* CSS3 flexbox properties that apply to the flex container: */
  /* align-content: inherit; FIXME: not yet supported (bug 702508) */
  align-items: inherit;
  flex-direction: inherit;
  /* flex-wrap: inherit; FIXME: not yet supported (bug 702508) */
  justify-content: inherit;
  /* Do not change these. nsCSSFrameConstructor depends on them to create a good
     frame tree. */
  position: static !important;
  float: none !important;
}

*|*::-moz-viewport, *|*::-moz-viewport-scroll, *|*::-moz-canvas, *|*::-moz-scrolled-canvas {
  display: block !important;
  background-color: inherit;
}

*|*::-moz-viewport-scroll {
  overflow: auto;
  resize: both;
}

*|*::-moz-column-content { 
  /* the column boxes inside a column-flowed block */
  /* make unicode-bidi inherit, otherwise it has no effect on column boxes */
  unicode-bidi: inherit;
  text-overflow: inherit;
  /* inherit the outer frame's display, otherwise we turn into an inline */
  display: inherit !important;
  /* Carry through our parent's height so that %-height children get
  their heights set */
  height: 100%;
}

*|*::-moz-anonymous-flex-item {
  /* Anonymous blocks that wrap contiguous runs of inline non-replaced
   * content inside of a flex container. */
  display: block;
}

*|*::-moz-page-sequence, *|*::-moz-scrolled-page-sequence {
  /* Collection of pages in print/print preview. Visual styles may only appear
   * in print preview. */
  display: block !important;
  background: linear-gradient(#606060, #8a8a8a) fixed;
  height: 100%;
}

*|*::-moz-page {
  /* Individual page in print/print preview. Visual styles may only appear
   * in print preview. */
  display: block !important;
  background: white;
  box-shadow: 5px 5px 8px #202020;
  margin: 0.125in 0.25in;
}

*|*::-moz-pagecontent {
  display: block !important;
  margin: auto;
}

*|*::-moz-pagebreak {
  display: block !important;
}

*|*::-moz-anonymous-positioned-block {
  display: block !important;
  position: inherit; /* relative or sticky */
  top: inherit;
  left: inherit;
  bottom: inherit;
  right: inherit;
  z-index: inherit;
  clip: inherit;
  opacity: inherit;
  unicode-bidi: inherit;
  text-overflow: inherit;
}

/* Printing */

@media print {

  * {
    cursor: default !important;
  }

}

*|*:not(:root):-moz-full-screen {
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  z-index: 2147483647 !important;
  background: black;
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
  min-width: 0 !important;
  max-width: none !important;
  min-height: 0 !important;
  max-height: none !important;
  -moz-box-sizing: border-box !important; 
}

/* If there is a full-screen element that is not the root then
   we should hide the viewport scrollbar. We exclude the chrome
   document to prevent reframing of contained plugins. */
:not(xul|*):root:-moz-full-screen-ancestor {
  overflow: hidden !important;
}

/* XML parse error reporting */

parsererror|parsererror {
  display: block;
  font-family: sans-serif;
  font-weight: bold;
  white-space: pre;
  margin: 1em;
  padding: 1em;
  border-width: thin;
  border-style: inset;
  border-color: red;
  font-size: 14pt;
  background-color: lightyellow;
}

parsererror|sourcetext {
  display: block;
  white-space: pre;
  font-family: -moz-fixed;
  margin-top: 2em;
  margin-bottom: 1em;
  color: red;
  font-weight: bold;
  font-size: 12pt;
}
