/* ============================================================================
   CodeMirror — custom "nanovm" theme (GitHub-light) + editor line decorations.
   Own theme class (.cm-s-nanovm, selected via theme:"nanovm" at init) so the
   vendored codemirror.min.css default theme never collides, whatever the load
   order. Bundled on every page by :app but only used on /editor. Theme tokens
   (--nv-*) live in application.css. Split out of editor.css.
   ========================================================================= */
.CodeMirror {
  height: 100% !important;
  font-family: var(--nv-mono);
  font-size: 14px;
  line-height: 1.5;
}

.CodeMirror-scroll {
  overflow-y: auto !important;
  overflow-x: auto !important;
}

.cm-s-nanovm.CodeMirror {
  background-color: var(--nv-bg);
  color: var(--nv-syntax-fg);
}

/* Gutter + active line — override the vendored light-only defaults with theme
   tokens so both flip with [data-bs-theme="dark"]. */
.cm-s-nanovm .CodeMirror-gutters {
  background-color: var(--nv-bg);
  border-right: 1px solid var(--nv-border-soft);
}
.cm-s-nanovm .CodeMirror-linenumber {
  color: var(--nv-muted);
}
.cm-s-nanovm .CodeMirror-activeline-background {
  background: var(--nv-panel);
}

/* Syntax highlighting tuned for NanoC (GitHub-light palette) */
.cm-s-nanovm .cm-meta {
  color: var(--nv-syntax-comment);
}
.cm-s-nanovm .cm-keyword {
  color: var(--nv-syntax-keyword);
}
.cm-s-nanovm .cm-type {
  color: var(--nv-syntax-type);
  font-style: italic;
}
.cm-s-nanovm .cm-qualifier {
  color: var(--nv-syntax-type);
}
.cm-s-nanovm .cm-builtin {
  color: var(--nv-syntax-type);
}
.cm-s-nanovm .cm-def {
  color: var(--nv-syntax-def);
}
.cm-s-nanovm .cm-variable {
  color: var(--nv-syntax-fg);
}
.cm-s-nanovm .cm-variable-2 {
  color: var(--nv-syntax-type);
}
.cm-s-nanovm .cm-string {
  color: var(--nv-syntax-string);
}
.cm-s-nanovm .cm-string-2 {
  color: var(--nv-syntax-string);
}
.cm-s-nanovm .cm-number {
  color: var(--nv-syntax-type);
}
.cm-s-nanovm .cm-comment {
  color: var(--nv-syntax-comment);
  font-style: italic;
}
.cm-s-nanovm .cm-operator {
  color: var(--nv-syntax-keyword);
}
.cm-s-nanovm .cm-atom {
  color: var(--nv-syntax-type);
}
.cm-s-nanovm .cm-attribute {
  color: var(--nv-syntax-def);
}

/* Error markers */
.error-line {
  background-color: rgba(var(--bs-danger-rgb), 0.1) !important;
}
.error-marker {
  color: var(--bs-danger);
  font-weight: bold;
}

/* Debug line highlighting */
.debug-current-line {
  background-color: rgba(var(--bs-warning-rgb), 0.3) !important;
}
.debug-current-gutter {
  color: var(--nv-gold) !important;
  font-weight: bold;
}
.debug-arrow {
  color: var(--nv-gold);
  font-size: 12px;
}
