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

:root {
  -moz-control-character-visibility: visible;
}

/* Force height and width (possibly overflowing) from inline elements.
 * This allows long overflows of text or input fields to still be styled with
 * the container, rather than the background disappearing when scrolling */
#root {
  float: left;
  min-width: 100%;
}

#root-wrapper:after {
   content: "";
   display: block;
   clear: both;
   position:relative;
}

.html-editor {
  display: none;
  position: absolute;
  z-index: 2;

  /* Use the same margin/padding trick used by .child tags to ensure that
   * the editor covers up any content to the left (including expander arrows
   * and hover effects). */
  margin-left: -1000em;
  padding-left: 1000em;
}

.html-editor-inner {
  border: solid .1px;
  flex: 1 1 auto;
}

.html-editor iframe {
  height: 100%;
  width: 100%;
  border: none;
  margin: 0;
  padding: 0;
}

.children {
  list-style: none;
  padding: 0;
  margin: 0;
}

/* Tags are organized in a UL/LI tree and indented thanks to a left padding.
 * A very large padding is used in combination with a slightly smaller margin
 * to make sure childs actually span from edge-to-edge. */
.child {
  margin-left: -1000em;
  padding-left: 1001em;
}

.tag-line {
  min-height: 1.4em;
  line-height: 1.4em;
  position: relative;
}

.html-editor-container {
  position: relative;
  min-height: 200px;
}

/* This extra element placed in each tag is positioned absolutely to cover the
 * whole tag line and is used for background styling (when a selection is made
 * or when the tag is flashing) */
.tag-line .tag-state {
  position: absolute;
  left: -1000em;
  right: 0;
  height: 100%;
  z-index: -1;
}

.expander {
  display: inline-block;
  margin-left: -14px;
  vertical-align: middle;
}

.child.collapsed .child {
  display: none;
}

.child > .tag-line:first-child .close {
  display: none;
}

.child.collapsed > .tag-line:first-child .close {
  display: inline;
}

.child.collapsed > .tag-line ~ .tag-line {
  display: none;
}

.child.collapsed .close {
  display: inline;
}

.closing-bracket {
  pointer-events: none;
}

.newattr {
  display: inline-block;
  width: 1em;
  height: 1ex;
  margin-right: -1em;
  padding: 1px 0;
}

.newattr:focus {
  margin-right: 0;
}

.tag-state.flash-out {
  transition: background .5s;
}

/* Preview */

#previewbar {
  position: fixed;
  top: 0;
  right: 0;
  width: 90px;
  background: black;
  border-left: 1px solid #333;
  border-bottom: 1px solid #333;
  overflow: hidden;
}

#preview {
  position: absolute;
  top: 0;
  right: 5px;
  width: 80px;
  height: 100%;
  background-image: -moz-element(#root);
  background-repeat: no-repeat;
}

#previewbar.hide,
#previewbar.disabled {
  display: none;
}

#viewbox {
  position: absolute;
  top: 0;
  right: 5px;
  width: 80px;
  border: 1px dashed #888;
  background: rgba(205,205,255,0.2);
  outline: 1px solid transparent;
}
