/* ──────────────────────────────────────────────
   CodeMirror 5 · VS Code 색 테마 (pyo)
   어두운 테마 = Dark+ / 밝은 테마 = Light+
   body.light 가 붙으면 밝은 쪽으로 바뀐다.
   coding.html · python.html 이 함께 쓴다.
   ────────────────────────────────────────────── */

/* ═══ 어두운 테마 — VS Code Dark+ ═══ */
.cm-s-pyo.CodeMirror            { background: #1e1e1e; color: #d4d4d4; }
.cm-s-pyo .CodeMirror-gutters   { background: #1e1e1e; border-right: 1px solid rgba(255,255,255,.07); }
.cm-s-pyo .CodeMirror-linenumber{ color: #858585; }
.cm-s-pyo .CodeMirror-cursor    { border-left: 2px solid #aeafad; }
.cm-s-pyo .CodeMirror-selected              { background: #264f78; }
.cm-s-pyo.CodeMirror-focused .CodeMirror-selected { background: #264f78; }
.cm-s-pyo .CodeMirror-line::selection,
.cm-s-pyo .CodeMirror-line > span::selection { background: #264f78; }
.cm-s-pyo .CodeMirror-activeline-background { background: #282828; }
.cm-s-pyo .CodeMirror-matchingbracket       { color: #d4d4d4 !important; background: #3a3d41; }

.cm-s-pyo .cm-comment    { color: #6a9955; }
.cm-s-pyo .cm-keyword    { color: #569cd6; }
.cm-s-pyo .cm-atom       { color: #569cd6; }
.cm-s-pyo .cm-number     { color: #b5cea8; }
.cm-s-pyo .cm-string     { color: #ce9178; }
.cm-s-pyo .cm-string-2   { color: #ce9178; }
.cm-s-pyo .cm-def        { color: #dcdcaa; }
.cm-s-pyo .cm-variable   { color: #9cdcfe; }
.cm-s-pyo .cm-variable-2 { color: #9cdcfe; }
.cm-s-pyo .cm-variable-3 { color: #4ec9b0; }
.cm-s-pyo .cm-type       { color: #4ec9b0; }
.cm-s-pyo .cm-qualifier  { color: #4ec9b0; }
.cm-s-pyo .cm-builtin    { color: #4ec9b0; }
.cm-s-pyo .cm-property   { color: #dcdcaa; }
.cm-s-pyo .cm-operator   { color: #d4d4d4; }
.cm-s-pyo .cm-bracket    { color: #d4d4d4; }
.cm-s-pyo .cm-punctuation{ color: #d4d4d4; }
.cm-s-pyo .cm-meta       { color: #9b9b9b; }
.cm-s-pyo .cm-tag        { color: #569cd6; }
.cm-s-pyo .cm-attribute  { color: #9cdcfe; }
.cm-s-pyo .cm-error      { color: #f44747; }

/* ═══ 밝은 테마 — VS Code Light+ ═══ */
body.light .cm-s-pyo.CodeMirror             { background: #ffffff; color: #000000; }
body.light .cm-s-pyo .CodeMirror-gutters    { background: #ffffff; border-right: 1px solid #e5e5e5; }
body.light .cm-s-pyo .CodeMirror-linenumber { color: #237893; }
body.light .cm-s-pyo .CodeMirror-cursor     { border-left: 2px solid #000000; }
body.light .cm-s-pyo .CodeMirror-selected   { background: #add6ff; }
body.light .cm-s-pyo.CodeMirror-focused .CodeMirror-selected { background: #add6ff; }
body.light .cm-s-pyo .CodeMirror-activeline-background { background: #f3f3f3; }
body.light .cm-s-pyo .CodeMirror-matchingbracket { color: #000 !important; background: #dbe8f5; }

body.light .cm-s-pyo .cm-comment    { color: #008000; }
body.light .cm-s-pyo .cm-keyword    { color: #0000ff; }
body.light .cm-s-pyo .cm-atom       { color: #0000ff; }
body.light .cm-s-pyo .cm-number     { color: #098658; }
body.light .cm-s-pyo .cm-string     { color: #a31515; }
body.light .cm-s-pyo .cm-string-2   { color: #a31515; }
body.light .cm-s-pyo .cm-def        { color: #795e26; }
body.light .cm-s-pyo .cm-variable   { color: #001080; }
body.light .cm-s-pyo .cm-variable-2 { color: #001080; }
body.light .cm-s-pyo .cm-variable-3 { color: #267f99; }
body.light .cm-s-pyo .cm-type       { color: #267f99; }
body.light .cm-s-pyo .cm-qualifier  { color: #267f99; }
body.light .cm-s-pyo .cm-builtin    { color: #267f99; }
body.light .cm-s-pyo .cm-property   { color: #795e26; }
body.light .cm-s-pyo .cm-operator   { color: #000000; }
body.light .cm-s-pyo .cm-bracket    { color: #000000; }
body.light .cm-s-pyo .cm-punctuation{ color: #000000; }
body.light .cm-s-pyo .cm-meta       { color: #808080; }
body.light .cm-s-pyo .cm-tag        { color: #800000; }
body.light .cm-s-pyo .cm-attribute  { color: #e50000; }
body.light .cm-s-pyo .cm-error      { color: #cd3131; }

/* 읽기 전용 탭은 배경을 아주 살짝 어둡게 해 "고칠 수 없음"을 보여 준다 */
.cm-s-pyo.cm-readonly.CodeMirror,
.cm-s-pyo.cm-readonly .CodeMirror-gutters { background: #181818; }
body.light .cm-s-pyo.cm-readonly.CodeMirror,
body.light .cm-s-pyo.cm-readonly .CodeMirror-gutters { background: #f6f6f6; }
