/* DeadlockCafe – kód: blok s riadkami, zvýraznenie syntaxe, editor */

:root, [data-bs-theme="dark"] {
    --hl-keyword: #8ea2ff;  --hl-built: #5eead4;  --hl-string: #a5d6a7;  --hl-number: #fbbf72;
    --hl-comment: #6b7487;  --hl-var: #f0abfc;    --hl-type: #7dd3fc;    --hl-punct: #9aa3b5;
}
[data-bs-theme="light"] {
    --hl-keyword: #3b48d6;  --hl-built: #0b7a6e;  --hl-string: #2f7d32;  --hl-number: #b45309;
    --hl-comment: #8a93a3;  --hl-var: #a21caf;    --hl-type: #0369a1;    --hl-punct: #4b5565;
}

.dl-code { border: 1px solid var(--dl-line); border-radius: .7rem; overflow: hidden; background: var(--dl-code-bg); margin-bottom: 1.6rem; }
.dl-code-bar { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: .5rem; padding: .45rem .5rem .45rem .9rem; background: var(--dl-surface); border-bottom: 1px solid var(--dl-line); }
.dl-code-file { font-family: var(--bs-font-monospace); font-size: .82rem; }
.dl-code-file i { color: var(--dl-crema); }
.dl-code-file span { color: var(--dl-muted); margin-left: .6rem; font-size: .75rem; }
.dl-code-actions { display: flex; gap: .3rem; }
.dl-code-actions .btn-ghost { border-color: transparent; }
.dl-code-actions .copied { background: var(--dl-lock) !important; border-color: var(--dl-lock) !important; color: var(--dl-bg) !important; }

.dl-code-params { padding: .8rem .9rem; border-bottom: 1px solid var(--dl-line); background: var(--dl-crema-soft); }
.dl-code-params-title { font-size: .85rem; font-weight: 600; margin-bottom: .5rem; }
.dl-code-params-title i { color: var(--dl-crema); }
.dl-code-params-title small { font-weight: 400; color: var(--dl-muted); margin-left: .4rem; }
.dl-code-params-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: .5rem; }
.dl-code-params-grid label { font-size: .8rem; font-weight: 500; color: var(--dl-ink); display: flex; align-items: baseline; flex-wrap: wrap; gap: 0 .4rem; margin-bottom: .15rem; }
.dl-code-params-grid label .dl-param-name { font-family: var(--bs-font-monospace); font-size: .68rem; font-weight: 400; color: var(--dl-muted); background: none; padding: 0; margin: 0; }
.dl-code-params-grid input { font-family: var(--bs-font-monospace); font-size: .85rem; padding: .3rem .55rem; background: var(--dl-bg) !important; }
.dl-param { background: var(--dl-crema-soft); outline: 1px dashed var(--dl-crema); border-radius: 2px; }
.dl-param.filled { outline-style: solid; }

.dl-code-body { display: flex; overflow: auto; max-height: 75vh; }
.dl-gutter, .dl-pre { margin: 0; font-family: var(--bs-font-monospace); font-size: .84rem; line-height: 1.6; padding: .9rem 0; }
.dl-gutter { flex: none; text-align: right; padding-left: .8rem; padding-right: .8rem; color: var(--dl-muted); opacity: .5; user-select: none; border-right: 1px solid var(--dl-line); position: sticky; left: 0; background: var(--dl-code-bg); }
.dl-pre { flex: 1; padding-left: 1rem; padding-right: 1rem; overflow: visible; }
.dl-pre code { color: var(--dl-ink); background: none; font-size: inherit; white-space: pre; display: block; }
.dl-code.wrap .dl-pre code { white-space: pre-wrap; word-break: break-word; }
.dl-code.wrap .dl-gutter { display: none; }

.hljs-keyword, .hljs-selector-tag, .hljs-operator.hljs-keyword, .hljs-literal { color: var(--hl-keyword); font-weight: 500; }
.hljs-built_in, .hljs-title.function_, .hljs-title { color: var(--hl-built); }
.hljs-string, .hljs-regexp, .hljs-attr-value { color: var(--hl-string); }
.hljs-number { color: var(--hl-number); }
.hljs-comment, .hljs-quote { color: var(--hl-comment); font-style: italic; }
.hljs-variable, .hljs-template-variable, .hljs-symbol { color: var(--hl-var); }
.hljs-type, .hljs-class .hljs-title, .hljs-attr, .hljs-attribute { color: var(--hl-type); }
.hljs-punctuation, .hljs-operator { color: var(--hl-punct); }
.hljs-meta { color: var(--hl-comment); }

/* CodeMirror v editore */
.CodeMirror {
    height: 60vh; min-height: 340px; border: 1px solid var(--dl-line); border-radius: .55rem; background: var(--dl-code-bg); color: var(--dl-ink);
    font-family: var(--bs-font-monospace); font-size: .86rem; line-height: 1.6;
}
.CodeMirror-focused { border-color: var(--dl-crema); box-shadow: 0 0 0 .2rem var(--dl-crema-soft); }
.CodeMirror-gutters { background: var(--dl-code-bg); border-right: 1px solid var(--dl-line); }
.CodeMirror-linenumber { color: var(--dl-muted); opacity: .6; }
.CodeMirror-cursor { border-left: 2px solid var(--dl-crema); }
.CodeMirror-selected, .CodeMirror-focused .CodeMirror-selected { background: var(--dl-mark) !important; }
.CodeMirror-activeline-background { background: var(--dl-surface); }
.CodeMirror-matchingbracket { color: var(--dl-lock) !important; text-decoration: underline; }
.cm-keyword { color: var(--hl-keyword) !important; font-weight: 500; }
.cm-builtin, .cm-def { color: var(--hl-built) !important; }
.cm-string, .cm-string-2 { color: var(--hl-string) !important; }
.cm-number { color: var(--hl-number) !important; }
.cm-comment { color: var(--hl-comment) !important; font-style: italic; }
.cm-variable-2, .cm-variable-3 { color: var(--hl-var) !important; }
.cm-type, .cm-atom, .cm-attribute { color: var(--hl-type) !important; }
.cm-operator, .cm-bracket { color: var(--hl-punct) !important; }
