/* Local code display; follows Weiwan's palette without changing saved article text. */
.wwe-code-block{--wwe-code-comment:#718096;--wwe-code-keyword:#7b5ca4;--wwe-code-string:#347a70;--wwe-code-tag:#426fa5;--wwe-code-number:#986643;--wwe-code-function:#75612e;box-sizing:border-box;min-width:0;max-width:100%;margin:24px 0;overflow:hidden;border:1px solid var(--border,#e5eaf0);border-radius:10px;background:var(--soft,#f8f9fb);color:var(--ink,#34495e)}
.wwe-code-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:43px;padding:0 14px;border-bottom:1px solid var(--border,#e5eaf0);background:var(--card,#fff);font:12px/1.5 var(--font,system-ui,sans-serif)}
.wwe-code-info{display:flex;align-items:center;gap:10px;min-width:0}.wwe-code-language{color:var(--accent,#607ab3);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wwe-code-count{color:var(--muted,#8796a8);white-space:nowrap;font-size:11px}
.wwe-code-toolbar .wwe-code-copy{flex:none;min-height:32px;margin:0;padding:4px 9px;border:1px solid transparent;border-radius:5px;background:transparent;color:var(--text,#52677c);font:inherit;cursor:pointer;white-space:nowrap}.wwe-code-copy:hover{background:var(--accent-bg,#f0f2f9);color:var(--accent,#607ab3)}.wwe-code-copy:focus-visible{outline:2px solid var(--accent,#607ab3);outline-offset:1px}.wwe-code-copy:disabled{opacity:.6;cursor:wait}
.wwe-code-block>pre.wwe-code-pre{position:relative;display:flex;align-items:flex-start;box-sizing:border-box;width:100%;max-width:100%;max-height:480px;margin:0;padding:16px 0;border:0;border-radius:0;background:transparent;color:inherit;overflow:auto;overscroll-behavior-inline:contain;tab-size:4;font:13px/1.8 Consolas,"SFMono-Regular",Menlo,monospace;text-align:left;white-space:pre;word-break:normal;overflow-wrap:normal}.wwe-code-pre:focus-visible{outline:2px solid var(--accent,#607ab3);outline-offset:-2px}
.wwe-code-pre>code{display:block;flex:1;min-width:max-content;box-sizing:border-box;margin:0;padding:0 18px 0 12px;border:0;border-radius:0;background:transparent;color:inherit;font:inherit;line-height:inherit;white-space:pre;word-break:normal;overflow-wrap:normal}.wwe-code-pre>.wwe-code-gutter{position:sticky;left:0;z-index:1;display:block;flex:none;min-width:40px;box-sizing:border-box;padding:0 10px;text-align:right;border-right:1px solid var(--border,#e5eaf0);background:var(--soft,#f8f9fb);color:var(--muted,#8796a8);font:inherit;line-height:inherit;user-select:none;pointer-events:none}.wwe-code-gutter>span{display:block}.wwe-code-gutter[hidden]{display:none}
.wwe-code-status{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.wwe-code-clipboard{position:fixed;top:-1000px;left:0;width:1px;height:1px;font-size:16px}.wwe-code-input{font:13px/1.8 Consolas,"SFMono-Regular",Menlo,monospace!important;white-space:pre;overflow-wrap:normal}
.wwe-code-pre .token.comment,.wwe-code-pre .token.prolog,.wwe-code-pre .token.doctype,.wwe-code-pre .token.cdata{color:var(--wwe-code-comment)}.wwe-code-pre .token.punctuation{color:var(--text,#52677c)}.wwe-code-pre .token.namespace{opacity:.8}.wwe-code-pre .token.tag,.wwe-code-pre .token.selector,.wwe-code-pre .token.attr-name,.wwe-code-pre .token.class-name,.wwe-code-pre .token.property{color:var(--wwe-code-tag)}.wwe-code-pre .token.boolean,.wwe-code-pre .token.number,.wwe-code-pre .token.constant{color:var(--wwe-code-number)}.wwe-code-pre .token.string,.wwe-code-pre .token.char,.wwe-code-pre .token.attr-value,.wwe-code-pre .token.builtin{color:var(--wwe-code-string)}.wwe-code-pre .token.keyword,.wwe-code-pre .token.atrule,.wwe-code-pre .token.operator{color:var(--wwe-code-keyword)}.wwe-code-pre .token.function,.wwe-code-pre .token.regex,.wwe-code-pre .token.variable{color:var(--wwe-code-function)}.wwe-code-pre .token.bold{font-weight:600}.wwe-code-pre .token.italic{font-style:italic}
[data-theme="dark"] .wwe-code-block{--wwe-code-comment:#8c9cae;--wwe-code-keyword:#c6a5e8;--wwe-code-string:#97d1bc;--wwe-code-tag:#9dc4f0;--wwe-code-number:#e6b28b;--wwe-code-function:#d6c790}
@media(prefers-color-scheme:dark){html:not([data-theme="light"]):not([data-theme="dark"]) .wwe-code-block{--soft:#202732;--card:#27303c;--ink:#dce4ee;--text:#b8c4d4;--muted:#93a3b7;--border:#3a4655;--accent:#aac0ed;--accent-bg:#313d52;--wwe-code-comment:#8c9cae;--wwe-code-keyword:#c6a5e8;--wwe-code-string:#97d1bc;--wwe-code-tag:#9dc4f0;--wwe-code-number:#e6b28b;--wwe-code-function:#d6c790}}
@media(max-width:680px){.wwe-code-block{margin:20px 0;border-radius:8px}.wwe-code-toolbar{padding:0 10px;gap:8px}.wwe-code-block>pre.wwe-code-pre{max-height:380px;font-size:12px;padding:13px 0}.wwe-code-pre>.wwe-code-gutter{min-width:34px;padding:0 8px}.wwe-code-pre>code{padding-left:10px;padding-right:14px}.wwe-code-info{gap:7px}}
