/*
 * Тема CodeMirror 5 на токенах дизайн-системы — для редактора запроса в «Try it»
 * и для редактора Markdown в админке. Подключается ПОСЛЕ lib/codemirror.css
 * (структурные стили библиотеки остаются, меняется только оформление).
 * В прототипе вместо CodeMirror — .p-textarea--mono, вид совпадает с этим файлом.
 *
 * Редактор — это поле ввода, поэтому рамка и её состояния берутся из --c-field-*.
 * Подсветка — та же монохромная схема, что в prism-cse.css.
 */

.CodeMirror {
  height: auto; min-height: calc(var(--c-control-size-md) * 6);
  font: var(--c-text-body-2);
  font-family: var(--p-font-family-mono);
  color: var(--c-field-text-color);
  background: var(--c-field-bg-color);
  border-radius: var(--c-field-border-radius);
  box-shadow: 0 0 0 var(--c-border-width) var(--c-field-border-color) inset;
  transition: box-shadow var(--c-transition-duration) var(--el-transition-function-ease-in-out-bezier);
}
.CodeMirror:hover { box-shadow: 0 0 0 var(--c-border-width) var(--c-field-border-color-hover) inset; }
.CodeMirror-focused, .CodeMirror-focused:hover { box-shadow: 0 0 0 var(--c-border-width) var(--c-field-border-color-focus) inset; }
.CodeMirror.is-error { box-shadow: 0 0 0 var(--c-border-width) var(--c-field-border-color-error) inset; }
.CodeMirror-scroll { min-height: inherit; }
.CodeMirror-lines { padding: var(--c-gap-2) 0; }
.CodeMirror pre.CodeMirror-line, .CodeMirror pre.CodeMirror-line-like { padding: 0 var(--c-gap-3); font: inherit; }

.CodeMirror-gutters {
  background: var(--c-fill-color-light);
  border-right: var(--c-border-width) solid var(--c-border-color-light);
  border-radius: var(--c-field-border-radius) 0 0 var(--c-field-border-radius);
}
.CodeMirror-linenumber { color: var(--c-text-color-placeholder); padding: 0 var(--c-gap-2) 0 var(--c-gap-1); }
.CodeMirror-cursor { border-left: var(--c-gap-05) solid var(--c-color-primary); }
.CodeMirror-selected, .CodeMirror-focused .CodeMirror-selected, .CodeMirror-line::selection, .CodeMirror-line > span::selection { background: var(--c-color-primary-100); }
.CodeMirror-placeholder { color: var(--c-field-text-placeholder-color); }

/* подсветка (режимы xml, javascript, css, htmlmixed) */
.cm-s-default .cm-tag, .cm-s-default .cm-keyword, .cm-s-default .cm-def, .cm-s-default .cm-property { color: var(--c-text-color-primary); font-weight: var(--c-font-weight-semi-bold); }
.cm-s-default .cm-attribute, .cm-s-default .cm-bracket, .cm-s-default .cm-operator, .cm-s-default .cm-meta { color: var(--c-text-color-regular); }
.cm-s-default .cm-string, .cm-s-default .cm-number, .cm-s-default .cm-atom, .cm-s-default .cm-variable, .cm-s-default .cm-variable-2 { color: var(--c-text-color-primary); }
.cm-s-default .cm-comment { color: var(--c-text-color-regular); font-style: italic; }
.cm-s-default .cm-error { color: var(--c-color-error-600); }
.CodeMirror-matchingbracket { color: var(--c-text-color-primary); background: var(--c-color-primary-100); }
