* {
  margin: 0;
  padding: 0;
  font-size: 1em;
}

*,
*:before,
*:after {
  box-sizing: border-box;
}

::-webkit-scrollbar {
  width: 0.5em;
  height: 0.5em;
}

::-webkit-scrollbar-track {
  background: #292928;
}

::-webkit-scrollbar-thumb {
  border: 0.125em solid #292928;
  background: #8f8f8e;
  border-radius: 0.5em;
}

html {
  font-size: 14px;
  font-family: Menlo, Consolas, monospace;
}

html,
body {
  height: 100%;
  overflow-x: hidden;
}

textarea {
  font-family: Menlo, Consolas, monospace;
  overflow-x: hidden;
  overflow-y: auto;
}

input:focus,
textarea:focus,
a:focus,
button:focus {
  outline: 0;
}

.panel {
  position: absolute;
  width: 50%;
  height: 100%;
  background: #292928;
  color: #c2c2c1;
}
@media only screen and (max-width: 60rem) {
  .panel {
    width: 100%;
  }
}

.sidepanel {
  top: 0;
  left: 50%;
  bottom: 0;
  overflow: hidden;
  border-left: 1px solid #c2c2c1;
  background: #00c575;
}
.sidepanel .output {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: #292928;
  -webkit-transition: bottom 250ms 250ms;
          transition: bottom 250ms 250ms;
}
.sidepanel.can-run .run-script {
  -webkit-transform: translate3d(0, -4em, 0);
          transform: translate3d(0, -4em, 0);
}
.sidepanel.can-run .output {
  bottom: 4em;
}
@media only screen and (max-width: 60rem) {
  .sidepanel {
    left: 100%;
  }
}

.editorpanel {
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  overflow: hidden;
}

.errorpanel {
  position: fixed;
  right: 0;
  left: 0;
  bottom: 100%;
  height: auto;
  padding-bottom: 3em;
  -webkit-transition: -webkit-transform 250ms 250ms;
          transition: transform 250ms 250ms;
  z-index: 2;
  background: #c53800;
}
.errorpanel.has-errors {
  -webkit-transform: translate3d(0, 4em, 0);
          transform: translate3d(0, 4em, 0);
}
.errorpanel.open {
  -webkit-transform: translate3d(0, 100%, 0);
          transform: translate3d(0, 100%, 0);
}

.area {
  white-space: pre-wrap;
  word-break: break-all;
  line-height: 1.3;
}

.input {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 2em;
  width: 100%;
  border: 0.1em solid #292928;
  resize: none;
  box-shadow: none;
  border-radius: 0;
  padding: 1em 1em 4em;
  background: #292928;
  color: #c2c2c1;
  -webkit-transition: padding 250ms 250ms;
          transition: padding 250ms 250ms;
}
.has-errors + .editorpanel .input {
  padding: 5em 1em 4em;
}

.output {
  padding: 1.5em;
  width: 100%;
  overflow-x: hidden;
  overflow-y: auto;
}

.statusbar {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 0.5em 1em;
  color: #c2c2c1;
  background: #292928;
  font-weight: bold;
  border-top: 1px solid #c2c2c1;
}

.cursor-position {
  float: right;
}

.run-script,
.trigger {
  position: absolute;
  z-index: 3;
  height: 3em;
  width: 3em;
  top: 100%;
  left: 0;
  margin: 0.5em;
  line-height: 1;
  border-radius: 0.3em;
  cursor: pointer;
  overflow: hidden;
  -webkit-transition-property: -webkit-transform;
          transition-property: transform;
  -webkit-transition-duration: 250ms;
          transition-duration: 250ms;
  -webkit-transition-delay: 250ms;
          transition-delay: 250ms;
  -webkit-transform: translate3d(0, 0, 0);
          transform: translate3d(0, 0, 0);
}

.trigger {
  border: 0.2em solid #292928;
  -webkit-transform: translate3d(0, -4em, 0);
          transform: translate3d(0, -4em, 0);
}
.trigger:hover {
  background: #292928;
}

.run-script {
  border: 0.2em solid #292928;
  -webkit-transform: translate3d(0, 0, 0);
          transform: translate3d(0, 0, 0);
}
.run-script:hover {
  background: #292928;
}
