/*
 * VS Code Dark+ inspired theme
 * Based on VS Code's Dark+ (default dark) color scheme
 */

.z-code {
    color: #D4D4D4;
    background-color: transparent;
}

/* Comments */
.z-comment,
.z-punctuation.z-definition.z-comment {
    color: #6A9955;
    font-style: italic;
}

/* Variables */
.z-variable {
    color: #9CDCFE;
}

.z-variable.z-parameter {
    color: #9CDCFE;
}

.z-variable.z-language {
    color: #569CD6;
    font-style: italic;
}

.z-variable.z-member,
.z-variable.z-other.z-member {
    color: #9CDCFE;
}

.z-variable.z-other.z-constant,
.z-variable.z-other.z-enummember {
    color: #4FC1FF;
}

.z-variable.z-function,
.z-variable.z-annotation {
    color: #DCDCAA;
}

/* Strings */
.z-string,
.z-constant.z-other.z-symbol {
    color: #CE9178;
}

.z-string.z-regexp {
    color: #D16969;
}

/* Constants */
.z-constant.z-numeric {
    color: #B5CEA8;
}

.z-constant.z-language {
    color: #569CD6;
}

.z-constant.z-character,
.z-constant.z-other {
    color: #569CD6;
}

.z-constant.z-character.z-escape {
    color: #D7BA7D;
}

/* Keywords */
.z-keyword,
.z-keyword.z-operator.z-word {
    color: #569CD6;
}

.z-keyword.z-control {
    color: #C586C0;
}

.z-keyword.z-operator {
    color: #D4D4D4;
}

.z-keyword.z-operator.z-new,
.z-keyword.z-operator.z-delete,
.z-keyword.z-operator.z-sizeof,
.z-keyword.z-operator.z-typeof,
.z-keyword.z-operator.z-instanceof {
    color: #569CD6;
}

/* Storage (modifiers, types) */
.z-storage {
    color: #569CD6;
}

.z-storage.z-type {
    color: #569CD6;
}

.z-storage.z-modifier {
    color: #569CD6;
}

/* Entity names */
.z-entity.z-name.z-function,
.z-support.z-function,
.z-support.z-macro {
    color: #DCDCAA;
}

.z-entity.z-name,
.z-entity.z-name.z-type,
.z-entity.z-name.z-class,
.z-entity.z-name.z-struct,
.z-entity.z-name.z-enum,
.z-entity.z-name.z-namespace,
.z-entity.z-name.z-interface,
.z-entity.z-name.z-scope-resolution {
    color: #4EC9B0;
}

.z-entity.z-other.z-inherited-class {
    color: #4EC9B0;
}

.z-entity.z-name.z-tag {
    color: #569CD6;
}

.z-entity.z-other.z-attribute-name {
    color: #9CDCFE;
}

.z-entity.z-name.z-label {
    color: #C8C8C8;
}

/* Support */
.z-support.z-type,
.z-support.z-class {
    color: #4EC9B0;
}

.z-support.z-constant {
    color: #569CD6;
}

.z-support.z-variable {
    color: #9CDCFE;
}

/* Punctuation */
.z-punctuation {
    color: #D4D4D4;
}

.z-punctuation.z-definition.z-tag {
    color: #808080;
}

.z-punctuation.z-separator,
.z-punctuation.z-terminator {
    color: #D4D4D4;
}

.z-punctuation.z-section {
    color: #D4D4D4;
}

.z-punctuation.z-accessor {
    color: #D4D4D4;
}

.z-punctuation.z-definition.z-annotation {
    color: #D4D4D4;
}

/* Meta / Preprocessor */
.z-meta.z-preprocessor,
.z-entity.z-name.z-function.z-preprocessor {
    color: #569CD6;
}

/* Invalid */
.z-invalid {
    color: #F44747;
}

.z-invalid.z-deprecated {
    color: #D4D4D4;
    background-color: #569CD6;
}

/* Diff */
.z-meta.z-diff,
.z-meta.z-diff.z-header {
    color: #569CD6;
}

/* Markup */
.z-markup.z-heading {
    color: #569CD6;
    font-weight: bold;
}

.z-string.z-other.z-link,
.z-markup.z-underline.z-link {
    color: #CE9178;
    text-decoration: underline;
}

.z-markup.z-italic {
    font-style: italic;
}

.z-markup.z-bold {
    font-weight: bold;
}

.z-markup.z-raw,
.z-markup.z-raw.z-inline {
    color: #CE9178;
}

.z-markup.z-quote {
    color: #6A9955;
    font-style: italic;
}

.z-markup.z-list.z-numbered.z-bullet,
.z-markup.z-list .z-punctuation.z-definition.z-list_item {
    color: #6796E6;
}

.z-markup.z-inserted {
    color: #B5CEA8;
}

.z-markup.z-changed {
    color: #569CD6;
}

.z-markup.z-deleted {
    color: #CE9178;
}

/* JSON */
.z-source.z-json .z-meta.z-structure.z-dictionary.z-json .z-string.z-quoted.z-double.z-json,
.z-source.z-json .z-meta.z-structure.z-dictionary.z-json .z-punctuation.z-definition.z-string {
    color: #9CDCFE;
}

/* C/C++ specific enhancements */
.z-source.z-c .z-meta.z-preprocessor,
.z-source.z-cpp .z-meta.z-preprocessor,
.z-source.z-c .z-keyword.z-control.z-directive,
.z-source.z-cpp .z-keyword.z-control.z-directive {
    color: #C586C0;
}

.z-source.z-c .z-meta.z-preprocessor .z-string,
.z-source.z-cpp .z-meta.z-preprocessor .z-string {
    color: #CE9178;
}

/* C# specific enhancements */
.z-source.z-cs .z-keyword.z-type,
.z-source.z-cs .z-storage.z-type.z-cs {
    color: #569CD6;
}

.z-source.z-cs .z-entity.z-name.z-type.z-class,
.z-source.z-cs .z-entity.z-name.z-type.z-struct,
.z-source.z-cs .z-entity.z-name.z-type.z-interface,
.z-source.z-cs .z-entity.z-name.z-type.z-enum {
    color: #4EC9B0;
}

.z-source.z-cs .z-storage.z-type.z-generic.z-cs {
    color: #4EC9B0;
}

.z-source.z-cs .z-keyword.z-other.z-using,
.z-source.z-cs .z-keyword.z-other.z-namespace {
    color: #C586C0;
}

.z-source.z-cs .z-keyword.z-control {
    color: #C586C0;
}

.z-source.z-cs .z-keyword.z-operator.z-new {
    color: #569CD6;
}

/* Git gutter */
.z-markup.z-inserted.z-git_gutter {
    color: #B5CEA8;
}

.z-markup.z-changed.z-git_gutter {
    color: #569CD6;
}

.z-markup.z-deleted.z-git_gutter {
    color: #F44747;
}