/* { GENERAL */
*, *:before, *:after {
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}

.tbl {
  display: table;
  border-collapse: collapse;
}

.tbl_row {display: table-row;}
.tbl_cell {display: table-cell;}

.hidden {visibility: hidden;}
.undisplayed {display: none;}
.tt_font {font-family: Courier, Fixed, monospace;}

.norm_fg {color: #212121;}
.norm_bg {background-color: #ffffff; border-color: #7f7f7f;}

.accent_fg {color: #212121;}
.accent_bg {background-color: #9ee776; border-color: #0070c0;}

.btn_font {font-family: serif; font-size: 1em;}

.btn_fg {color: #222;}
.btn_fg:active {color: #fff;}
.btn_bg {background-color: transparent; border-color: #8bc34a;}
.btn_bg:hover {background-color: #8bc34a; border-color: #7f7f7f;}
.btn_bg:active {background-color: #000; border-color: #000;}

.dim_btn_fg {color: #444;}
.dim_btn_fg:active {color: #fff;}
.dim_btn_bg {background-color: #eee; border-color: transparent;}
.dim_btn_bg:hover {background-color: #ddd; border-color: #ccc;}
.dim_btn_bg:active {background-color: #000; border-color: #000;}

.dmg_btn_fg {color: #444;}
.dmg_btn_fg:active {color: #fff;}
.dmg_btn_bg {background-color: #eee; border-color: transparent;}
.dmg_btn_bg:hover {background-color: #ddd; border-color: #ccc;}
.dmg_btn_bg:active {background-color: #000; border-color: #000;}

.hdr_fg {color: #ffffff;}
.hdr_bg {background-color: #556; border-color: #445;}

.alt_fg {color: #212121;}
.alt_bg {background-color: #e4ffd5; border-color: #e4ffd5;}
.alt_hdr_fg {color: #222;}
.alt_hdr_bg {background-color: #d9ffc3; border-color: #d0f0c0;}

.entry_fg {color: #212121;}
.entry_bg {
  background-color: #ffffff;
  border-color: #7f7f7f;
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.3);
  border-width: 1px;
}

.repl_tag_input {color: #567;}
.repl_tag_err {color: #c43;}

.noselect {
  user-select: none;
  -moz-user-select: none;
  -webkit-user-select: none;
  -ms-user-select: none;
  -o-user-select: none;
}

.icon_btn {
  margin: 0;
  padding: 2px;
  border: 0;
  transition: 0.4s;
  -webkit-transition: 0.4s;
}

.icon_btn > img {
  vertical-align: middle;
}

.code {
  font-family: monospace;
  padding: 4px;
  outline: 0;
}

.expand {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
}

.maximized {
  position: absolute;
  top: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  left: 0 !important;
  z-index: 100;
  background: #fff;
  width: 100% !important;
  height: 100% !important;
  transition: 0.4s;
  -webkit-transition: 0.4s;
}

.overlay {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1000;
  background-color: rgba(20, 20, 30, 0.7);
  cursor: pointer;
}

body {
  padding: 0;
  margin: 0;
  border: 0;
  overflow: hidden;
  position: fixed !important;
  font-size: 14px;
}

/* } GENERAL */

.fs_opened {
  transform: translate(18em, 0);
  -webkit-transform: translate(18em, 0);
  -ms-transform: translate(18em, 0);
  transition: transform 0.5s;
  -webkit-transition: -webkit-transform 0.5s;
}

.main {
  transition: transform 0.5s;
  -webkit-transition: -webkit-transform 0.5s;
}

.main_inner {
  width: 100%;
  height: 100%;
  position: absolute;
}

.editor {
  right: 50%;
  width: 50%;
  height: 100%;
  margin: 0;
  padding: 0;
}

.outer {
  width: 100%;
  height: 100%;
}

.inner {
  width: 100%;
  height: 100%;
  overflow: auto;
  position: relative;
}

.editor_edit {
  resize: none;
  width: 100%;
  height: 100%;
  margin: 0;
  border: 0;
  display: block;
}

.editor_border {
  border-left: 1px solid;
  border-right: 1px solid;
}

.hdr {
  position: relative;
  white-space: nowrap;
}

.hdr_title {
  width: 100%;
  max-width: 0;
  vertical-align: middle;
  font-family: sans-serif;
  text-align: center;
  font-weight: bold;
  text-overflow: ellipsis;
  overflow-x: hidden;
  white-space: nowrap;
}

.hdr_title::after {
  content: "\00a0";
}

.hdr_container {
  border-width: 0;
  border-bottom-width: 1px;
  border-style: solid;
}

.hdr_tool {
  white-space: nowrap;
  vertical-align: middle;
}

.hdr_tool > * {
  vertical-align: middle;
}

/* FS { */

.repl {
  width: 50%;
  height: 100%;
  left: 50%;
  margin: 0;
  padding: 0;
}

.repl_out_container {
  width: 100%;
  height: 100%;
}

.repl_out {
  width: 100%;
  height: 100%;
  white-space: pre-wrap;
  cursor: text;
}

.repl_out > span {
  margin: 0;
  padding: 0 1px;
  border: 0;
}

.repl_out > span.repl_tag_input {
  color: #555;
}

.repl_in {
  height: 10px;
  min-width: 100px;
  padding-left: 1px !important;
}

.repl_in::after {
  content:"\200d";
  border-left: 2px solid Black;
}

.repl_in:focus::after {
  border: 0;
}

.repl_in:focus:empty::after {
  content:"\200d";
  border-left: 1px solid Black;
}

/* REPL } */

/* FS { */
input.fs_toggle {
  display: none;
}

input.fs_toggle + label {
  padding: 0 8px;
  box-shadow: 2px 0 2px -2px rgba(0, 0, 0, 0.9);
  border-right: 1px solid;
  vertical-align: middle;
}

.fs {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  transform: translate(-100%, 0);
  -ms-transform: translate(-100%, 0);
  -webkit-transform: translate(-100%, 0);
  width: 18em;
  height: 100%;
}

.fs_subdir_collapsed {
  display: none;
}

ul.fs_dir {
  margin: 0;
  padding-left: 1.3em;
}

.fs_name {
  white-space: nowrap;
  display: inline-block;
  border: 1px solid transparent;
  padding: 0 6px 0 6px;
  line-height: 130%;
  font-family: sans-serif;
}

.fs_name:hover {
  cursor: pointer;
}

.fs_icon {
  margin-right: 3px;
}

.fs_name_text, .fs_icon {
  vertical-align: middle;
}

.fs_entry {
  list-style: none;
}

.fs_toggle_arrow {
  vertical-align: middle;
  padding-left: 4px;
}

.fs_toggle_icon {
  vertical-align: middle;
}

.fs_toggle_arrow::after {content: "»";}
.fs_opened .fs_toggle_arrow::after {content: "«";}

/* FS } */


/* WAIT { */

.wait {
  background-color: #667;
  cursor: wait;
}

.wait_pane {
  position: absolute;
  text-align: center;
  top: 50%;
  left: 0;
  right: 0;
  transform: translate(0, -50%);
  -webkit-transform: translate(0, -50%);
  -ms-transform: translate(0, -50%);
  padding: 16px;
  outline: 1px solid;
  box-shadow: 0 1px 5px rgba(0, 0, 0, 0.9);
}

.wait_text {
  font-family: serif;
  font-weight: bold;
  padding: 2px 0;
}

.wait_status {
  font-weight: normal;
  color: #454;
  padding-bottom: 4px;
}

.wait_error {
  background-color: Red;
}
/* WAIT } */

/* DLG { */

.dlg {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  -webkit-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  background-color: #fff;
  box-shadow: 1px 1px 10px #000;
  cursor: default;
  display: table;
}

.dlg_title_outer {
  background: #456;
  color: #fff;
  font-weight: bold;
  display: table-row;
}

.dlg_title {
  padding: 4px;
  display: table-cell;
  text-align: center;
}

.dlg_content_outer {
  display: table-row;
}

.dlg_content {
  padding: 16px;
  display: table-cell;
}

.dlg_content label {
  padding-right: 1em;
}

.dlg_content input[type="text"] {
  outline: 0;
}

.dlg_msg {
  margin-bottom: 16px;
}

.dlg_ctl {
  display: table-row;
  padding: 16px;
  float: right;
}

.dlg_ctl > * {
  display: table-cell;
  margin: 0;
  margin-left: 8px;
}

.dlg_ctl > *:first-child {
  display: table-cell;
  margin: 0;
  margin-right: 8px;
}

.dlg_close {
  border: 0;
  padding: 0;
  margin: 0;
  font-weight: bold;
  float: right;
  background: transparent;
  color: #f67;
}

.dlg_ctl button {
  padding: 4px 8px;
  border-width: 1px;
  border-style: solid;
  outline: 0;
  font-weight: bold;
  box-shadow: 1px 1px 2px rgba(0, 0, 0, 1.0);
}

button.dlg_cancel {
  font-weight: normal;
  box-shadow: none;
}

/* DLG } */

/* SHEN DOC { */

.editor_view {
  font-family: serif;
}

.editor_view h1 {
  font-size: 1.8em;
  font-variant: small-caps;
  line-height: 0.9em;}

.editor_view h2 {
  font-size: 1.3em;
  border-bottom: 1px solid #dde;
  margin: 1em 0;
}

.editor_view h3 {font-size: 1.2em;}
.editor_view h4 {font-size: 1em;}

.editor_view code {
  font-family: monospace;
}

.editor_view pre > code {
  margin: 0 2em;
  padding: 8px 4px;
  display: block;
  position: relative;
}

.editor_view pre > code:hover {
  background-color: #efd;
  transition: background-color 0.2s ease-in;
}

.editor_view hr {
  border: 0;
  height: 1px;
  background-color: #ddd;
  margin: 4px 2em;
}

.editor_view pre + hr {
  background-color: transparent;
}

.editor_view .popup {
  position: absolute;
  bottom: 0;
  left: 0;
  top: 0;

  transform: translate(-100%, 0);
  -webkit-transform: translate(-100%, 0);
  -ms-transform: translate(-100%, 0);
}

/* } SHEN DOC */

/* HACKS */
button::-moz-focus-inner,
input[type="button"]::-moz-focus-inner,
input[type="submit"]::-moz-focus-inner,
input[type="reset"]::-moz-focus-inner {
  padding: 0 !important;
  border: 0 !important;
}
