/* CodeMirror editor styles and syntax highlighting */

.CodeMirror {
    height: 100% !important;
    font-family: 'SF Mono', Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace;
    font-size: 14px;
    line-height: 1.5;
    border: 1px solid #ddd;
}

/* Syntax highlighting colors */
.cm-keyword {          /* define, declare, coalton-toplevel */
    color: #d73a49;
    font-weight: bold;
}

.cm-keyword-2 {        /* cl: prefix */
    color: #005cc5;
}

.cm-keyword-3 {        /* coalton: prefix */
    color: #6f42c1;
}

.cm-type {             /* Integer, String, etc. */
    color: #d73a49;
    font-style: italic;
}

.cm-def {              /* function names in definitions */
    color: #6f42c1;
    font-weight: bold;
}

.cm-variable {         /* regular variables */
    color: #24292e;
}

.cm-variable-2 {       /* special variables */
    color: #e36209;
}

.cm-string {           /* strings */
    color: #032f62;
}

.cm-number {           /* numbers */
    color: #005cc5;
}

.cm-comment {          /* comments */
    color: #6a737d;
    font-style: italic;
}

.cm-operator {         /* operators like ->, => */
    color: #d73a49;
}

.cm-atom {             /* symbols, keywords */
    color: #005cc5;
}

.cm-bracket {          /* parentheses */
    color: #383a42;
}

.cm-matchingbracket {  /* matching bracket highlight */
    color: #000;
    background-color: #c8e1ff;
    font-weight: bold;
}

/* Dark theme adjustments for better contrast */
.cm-s-default .cm-keyword { color: #d73a49; }
.cm-s-default .cm-atom { color: #005cc5; }
.cm-s-default .cm-number { color: #005cc5; }
.cm-s-default .cm-def { color: #6f42c1; }
.cm-s-default .cm-variable { color: #24292e; }
.cm-s-default .cm-variable-2 { color: #e36209; }
.cm-s-default .cm-string { color: #032f62; }
.cm-s-default .cm-comment { color: #6a737d; }
.cm-s-default .cm-keyword-2 { color: #005cc5; }
.cm-s-default .cm-keyword-3 { color: #6f42c1; }
.cm-s-default .cm-operator { color: #d73a49; }
.cm-s-default .cm-type { color: #d73a49; }