.editor {
  &,
  .gutter {
    background-color: #FFFFFF;
    color: #555;
  }

  .invisible-character,
  .indent-guide {
    color: rgba(85, 85, 85, .2);
  }

  .gutter .line-number.fold,
  .gutter .line-number:after,
  .fold-marker:after {
    color: #e87b00;
  }

  .invisible {
    color: #555;
  }

  .selection .region {
    background-color: #e1e1e1;
  }

  &.is-focused {
    .cursor {
      border-color: #000;
    }

    .selection .region {
      background-color: #afc4da;
    }

    .line-number.cursor-line-no-selection,
    .line.cursor-line {
      background-color: rgba(255, 255, 134, 0.34);
    }
  }

  .comment {
    color: #999988;
    font-style: italic;
  }

  .string {
    color: #D14;
  }

  .source .string .source {
    color: #5A5A5A;

    .punctuation.section.embedded {
      color: #920B2D;
    }
  }

  .constant {
    &.numeric {
      color: #D14;
    }

    &.language {
      color: #606aa1;
    }

    &.character,
    &.other {
      color: #606aa1;
    }

    &.symbol {
      color: #990073;
    }

    &.numeric.line-number.find-in-files .match {
      color: rgba(143, 190, 0, 0.63);
    }
  }

  .variable {
    color: #008080;

    &.parameter {
      color: #606aa1;
    }
  }

  // Keywords
  .keyword {
    color: #222;
    font-weight: bold;

    &.unit {
      color: #445588;
    }

    &.special-method {
      color: #0086B3;
    }
  }

  .storage {
    color: #222;

    &.type {
      color: #222;
    }
  }

  .entity {
    &.name.class {
      text-decoration: underline;
      color: #606aa1;
    }

    &.other.inherited-class {
      text-decoration: underline;
      color: #606aa1;
    }

    &.name.function {
      color: #900;
    }

    &.name.tag {
      color: #008080;
    }

    &.other.attribute-name {
      color: #458;
      font-weight: bold;
    }

    &.name.filename.find-in-files {
      color: #E6DB74;
    }
  }

  .support {
    &.constant,
    &.function,
    &.type {
      color: #458;
    }

    &.class {
      color: #008080;
    }
  }

  .invalid {
    color: #F8F8F0;
    background-color: #00A8C6;

    &.deprecated {
      color: #F8F8F0;
      background-color: #8FBE00;
    }
  }


  .meta {
    &.structure.dictionary.json > .string.quoted.double.json,
    &.structure.dictionary.json > .string.quoted.double.json .punctuation.string {
      color: #000080;
    }

    &.structure.dictionary.value.json > .string.quoted.double.json {
      color: #d14;
    }

    &.diff,
    &.diff.header {
      color: #75715E;
    }

    &.function span {
      color: #990000;
      font-weight: bold;
    }
  }

  // CSS Styles
  .css {
    &.support.property-name {
      font-weight: bold;
      color: #333;
    }

    &.constant {
      color: #099;
    }
  }

  // Markdown
  .source.gfm {
    color: #444;
  }

  .gfm {
    .markup.heading {
      color: #111;
    }

    & .link {
      color: #888;
    }

    .variable.list {
      color: #888;
    }
  }
}

.bracket-matcher {
  background-color: #C9C9C9;
  opacity: .7;
  border-bottom: 0 none;
}
