/* Palette adapted from the supplied Code2UML light and dark CodeMirror themes. */
.CodeMirror {
  width: 100%;
  height: 100%;
  font: 18px/1.5 Consolas, Monaco, "Courier New", monospace;
}

.CodeMirror-scroll {
  min-height: 100%;
}

.CodeMirror-lines {
  padding: 6px 0;
}

.CodeMirror pre.CodeMirror-line,
.CodeMirror pre.CodeMirror-line-like {
  padding: 0 8px;
}

.CodeMirror-gutters {
  border-right: 0 !important;
}

.CodeMirror-cursor {
  border-left-width: 2px;
}

.CodeMirror-selected {
  background: #bfdbfe !important;
}

.CodeMirror-focused .CodeMirror-selected {
  background: #bfdbfe !important;
}

.cm-s-code2uml-light.CodeMirror {
  color: #1f2937;
  background: #f5f5f5;
}

.cm-s-code2uml-light .CodeMirror-gutters {
  color: #64748b;
  background: #f5f5f5;
  border-right-color: #c5ccd3;
}

.cm-s-code2uml-light .CodeMirror-linenumber {
  color: #64748b;
}

.cm-s-code2uml-light .CodeMirror-cursor {
  border-left-color: #006ce0;
}

.cm-s-code2uml-light .CodeMirror-activeline-background {
  background: #ffffff;
}

.cm-s-code2uml-light .CodeMirror-matchingbracket {
  color: inherit !important;
  background: #dbeafe;
  outline: 1px solid #93c5fd;
}

.cm-s-code2uml-light span.cm-keyword,
.cm-s-code2uml-light span.cm-qualifier {
  color: #2563eb;
  font-weight: 600;
}

.cm-s-code2uml-light span.cm-def,
.cm-s-code2uml-light span.cm-variable-2,
.cm-s-code2uml-light span.cm-variable-3,
.cm-s-code2uml-light span.cm-builtin {
  color: #1d4ed8;
  font-weight: 500;
}

.cm-s-code2uml-light span.cm-type,
.cm-s-code2uml-light span.cm-atom,
.cm-s-code2uml-light span.cm-number {
  color: #dc2626;
  font-weight: 500;
}

.cm-s-code2uml-light span.cm-variable {
  color: #1f2937;
}

.cm-s-code2uml-light span.cm-property {
  color: #475569;
}

.cm-s-code2uml-light span.cm-string,
.cm-s-code2uml-light span.cm-string-2 {
  color: #1d4ed8;
}

.cm-s-code2uml-light span.cm-operator,
.cm-s-code2uml-light span.cm-bracket {
  color: #64748b;
}

.cm-s-code2uml-light span.cm-comment {
  color: #d97706;
  font-style: italic;
}

.cm-s-code2uml-light span.cm-meta {
  color: #b45309;
  font-weight: 600;
}

.cm-s-code2uml-light span.cm-error {
  color: #b91c1c;
  font-weight: 600;
}

.cm-s-code2uml-dark.CodeMirror {
  color: #d7dadc;
  background: #1c2130;
}

.cm-s-code2uml-dark .CodeMirror-gutters {
  color: #8f9aaa;
  background: #1c2130;
  border-right-color: #3c4350;
}

.cm-s-code2uml-dark .CodeMirror-linenumber {
  color: #8f9aaa;
}

.cm-s-code2uml-dark .CodeMirror-cursor {
  border-left-color: #64b5ff;
}

.cm-s-code2uml-dark .CodeMirror-selected,
.cm-s-code2uml-dark.CodeMirror-focused .CodeMirror-selected {
  background: rgba(100, 181, 255, 0.28) !important;
}

.cm-s-code2uml-dark .CodeMirror-activeline-background {
  background: #252936;
}

.cm-s-code2uml-dark .CodeMirror-matchingbracket {
  color: inherit !important;
  background: rgba(100, 181, 255, 0.14);
  outline: 1px solid #3b82f6;
}

.cm-s-code2uml-dark span.cm-keyword,
.cm-s-code2uml-dark span.cm-qualifier {
  color: #64b5ff;
  font-weight: 600;
}

.cm-s-code2uml-dark span.cm-def,
.cm-s-code2uml-dark span.cm-variable-2,
.cm-s-code2uml-dark span.cm-variable-3,
.cm-s-code2uml-dark span.cm-builtin {
  color: #93c5fd;
  font-weight: 500;
}

.cm-s-code2uml-dark span.cm-type,
.cm-s-code2uml-dark span.cm-atom,
.cm-s-code2uml-dark span.cm-number {
  color: #f27b79;
  font-weight: 500;
}

.cm-s-code2uml-dark span.cm-variable {
  color: #d7dadc;
}

.cm-s-code2uml-dark span.cm-property {
  color: #b4bcc9;
}

.cm-s-code2uml-dark span.cm-string,
.cm-s-code2uml-dark span.cm-string-2 {
  color: #93c5fd;
}

.cm-s-code2uml-dark span.cm-operator,
.cm-s-code2uml-dark span.cm-bracket {
  color: #8f9aaa;
}

.cm-s-code2uml-dark span.cm-comment {
  color: #e8b96a;
  font-style: italic;
}

.cm-s-code2uml-dark span.cm-meta {
  color: #f4a261;
  font-weight: 600;
}

.cm-s-code2uml-dark span.cm-error {
  color: #fca5a5;
  font-weight: 600;
}

/* Keep line numbers visually connected to the editor. */
.CodeMirror-gutters,
.cm-s-code2uml-light .CodeMirror-gutters,
.cm-s-code2uml-dark .CodeMirror-gutters {
  border-right: 0 !important;
}
