/* Syntax Highlighter */ .syntax-highlighter { display: flex; flex-direction: column; height: 100%; } .highlighter-toolbar { display: flex; justify-content: space-between; align-items: center; padding: 0.5rem 1rem; background: var(--panel); border-bottom: 1px solid var(--border); } .language-badge { font-size: 0.8rem; padding: 0.2rem 0.5rem; background: var(--bg); border-radius: 4px; color: var(--muted); } .copy-button { font-size: 0.8rem; padding: 0.25rem 0.5rem; background: var(--bg); border: 1px solid var(--border); border-radius: 4px; cursor: pointer; color: var(--ink); } .copy-button:hover { background: var(--brand); color: white; border-color: var(--brand); } .code-container { display: flex; flex: 1; overflow: auto; font-family: "Fira Code", "Monaco", "Courier New", monospace; font-size: 14px; line-height: 1.5; } .line-numbers { display: flex; flex-direction: column; padding: 1rem 0.5rem; background: var(--panel); border-right: 1px solid var(--border); color: var(--muted); text-align: right; user-select: none; min-width: 3rem; } .line-number { padding: 0 0.5rem; } .code-block { flex: 1; margin: 0; padding: 1rem; overflow: visible; background: transparent; } .code-block code { display: block; background: transparent; } /* Code Editor */ .code-editor { height: 100%; overflow: auto; } .editor-textarea { font-family: "Fira Code", "Monaco", "Courier New", monospace; font-size: 14px; line-height: 1.5; min-height: 100%; } .editor-textarea-input { background: transparent; color: var(--ink); caret-color: var(--ink); } .editor-line { display: flex; } .editor-line-number { display: inline-block; width: 3rem; padding: 0 0.5rem; text-align: right; color: var(--muted); user-select: none; background: var(--panel); border-right: 1px solid var(--border); } .editor-line-content { flex: 1; padding: 0 0.5rem; white-space: pre; } /* Prism.js Theme Integration */ code[class*="language-"], pre[class*="language-"] { color: var(--ink); text-shadow: none; font-family: "Fira Code", "Monaco", "Courier New", monospace; font-size: 14px; text-align: left; white-space: pre; word-spacing: normal; word-break: normal; word-wrap: normal; line-height: 1.5; tab-size: 2; hyphens: none; } /* Syntax Highlighting Colors */ .token.comment, .token.prolog, .token.doctype, .token.cdata { color: var(--muted); } .token.punctuation { color: var(--ink); } .token.namespace { opacity: 0.7; } .token.property, .token.tag, .token.boolean, .token.number, .token.constant, .token.symbol, .token.deleted { color: #f59e0b; } .token.selector, .token.attr-name, .token.string, .token.char, .token.builtin, .token.inserted { color: #10b981; } .token.operator, .token.entity, .token.url, .language-css .token.string, .style .token.string { color: #f43f5e; } .token.atrule, .token.attr-value, .token.keyword { color: #3b82f6; } .token.function, .token.class-name { color: #8b5cf6; } .token.regex, .token.important, .token.variable { color: #ec4899; }