.codesass {
  position: absolute;
  width: 100%;
  height: 100%;
  overflow: hidden;
}
.codesass, .codesass * {
  box-sizing: border-box;
}
.codesass__pre {
  background: none;
  pointer-events: none;
  z-index: 3;
  overflow: hidden;
}
.codesass__textarea {
  color: transparent;
  border: none;
  z-index: 1;
  resize: none;
  font-family: monospace;
  -webkit-appearance: pre;
  z-index: 2;
  width: 100%;
  height: 100%;
}
.codesass__textarea::selection {
  color: transparent;
  background: highlight; /* FIXME: this is deprecated and doesn't work as expected in chrome */
}
.codesass--has-line-numbers .codesass__textarea {
  width: calc(100% - 40px);
}
.codesass--has-line-numbers .codesass__pre {
  overflow: visible;
}
.codesass--has-line-numbers .codesass__pre > code {
  overflow: visible !important;
}
.codesass__code {
  display: block;
  font-family: monospace;
  overflow: hidden;
}
.codesass__flatten {
  padding: 10px;
  font-size: 13px;
  line-height: 20px;
  white-space: pre;
  position: absolute;
  top: 0;
  left: 0;
  overflow: auto;
  margin: 0 !important;
  outline: none;
  text-align: left;
}
.codesass--has-line-numbers .codesass__flatten {
  width: calc(100% - 40px);
  left: 40px;
}
.codesass__line-highlight {
  position: absolute;
  top: 10px;
  left: 0;
  width: 100%;
  height: 20px;
  background: rgba(0,0,0,0.1);
  z-index: 1;
}
.codesass__lines {
  padding: 10px 4px;
  font-size: 12px;
  line-height: 20px;
  font-family: 'Cousine', monospace;
  position: absolute;
  left: 0;
  top: 0;
  width: 40px;
  height: 100%;
  text-align: right;
  color: #999;
  z-index: 4;
}
.codesass__lines__line {
  display: block;
}
.codesass.codesass--has-line-numbers {
  padding-left: 40px;
}
.codesass.codesass--has-line-numbers:before {
  content: '';
  position: absolute;
  left: 0;
  top: 0;
  width: 40px;
  height: 100%;
  background: #eee;
  z-index: 4;
}
.codesass {
  background: #fff;
  color: #4f559c;
}
.codesass .token.punctuation {
  color: #4a4a4a;
}
.codesass .token.keyword {
  color: #8500ff;
}
.codesass .token.operator {
  color: #ff5598;
}
.codesass .token.string {
  color: #41ad8f;
}
.codesass .token.comment {
  color: #9badb7;
}
.codesass .token.function {
  color: #8500ff;
}
.codesass .token.boolean {
  color: #8500ff;
}
.codesass .token.number {
  color: #8500ff;
}
.codesass .token.selector {
  color: #8500ff;
}
.codesass .token.property {
  color: #8500ff;
}
.codesass .token.tag {
  color: #8500ff;
}
.codesass .token.attr-value {
  color: #8500ff;
}
