:root{--chat-gap:10px;--blog-editor-width:400px;--blog-editor-gap:10px;--vscode-editor-bg:#ffffff;--vscode-editor-fg:#1f1f1f;--vscode-selection-bg:#add6ff;--vscode-gutter-fg:#6e7681;--vscode-gutter-border:#e6e6e6}body.dark{--vscode-editor-bg:#1e1e1e;--vscode-editor-fg:#d4d4d4;--vscode-selection-bg:#264f78;--vscode-gutter-fg:#858585;--vscode-gutter-border:#2a2a2a}html,body{height:100%;overflow:hidden}.page-wrapper{height:100%;overflow-y:auto;-webkit-overflow-scrolling:touch;transition:margin-right .3s ease-in-out,margin-left .3s ease-in-out,border-radius .3s ease-in-out,background-color .3s ease-in-out;box-sizing:border-box;scrollbar-width:thin;scrollbar-color:transparent transparent;background-color:var(--bg);position:relative;border-radius:0;padding-top:var(--header-offset,var(--header-height));scroll-padding-top:var(--header-offset,var(--header-height))}.page-wrapper:hover{scrollbar-color:var(--tertiary)var(--bg)}body.fab-dragging .page-wrapper{scrollbar-color:transparent transparent}body.fab-dragging .page-wrapper:hover{scrollbar-color:transparent transparent}body.chat-active{overflow:hidden}.page-wrapper::-webkit-scrollbar{width:8px;background:0 0}.page-wrapper::-webkit-scrollbar-thumb{border-radius:10px;background-color:transparent}.page-wrapper:hover::-webkit-scrollbar-thumb{background-color:var(--tertiary)}body.fab-dragging .page-wrapper::-webkit-scrollbar-thumb,body.fab-dragging .page-wrapper:hover::-webkit-scrollbar-thumb{background-color:transparent!important}#chat-fab{position:fixed;bottom:30px;right:30px;width:50px;height:50px;background-color:#1f9cee;color:#fff;border-radius:50%;display:flex;justify-content:center;align-items:center;font-size:24px;cursor:grab;box-shadow:0 4px 8px rgba(0,0,0,.2);z-index:10000;user-select:none;transition:background-color .3s;opacity:1;transform:scale(1)}#chat-fab:hover{background-color:#0056b3}#chat-dialog{position:fixed;top:var(--chat-gap);right:var(--chat-gap);bottom:var(--chat-gap);width:400px;height:auto;background-color:var(--bg);border:1px solid var(--border);border-color:var(--border,rgba(127,127,127,.25));box-shadow:0 0 20px rgba(0,0,0,.15);transform:translateX(calc(100% + var(--chat-gap)));transition:transform .3s ease-in-out,background-color .3s ease-in-out;will-change:transform,background-color;z-index:9999;display:flex;flex-direction:column;color:var(--primary);border-radius:12px;overflow:hidden}body.chat-active #chat-dialog{transform:translateX(0)}body.blog-editor-active #chat-dialog{transform:translateX(calc(100% + var(--blog-editor-width) + var(--blog-editor-gap) + var(--chat-gap)))}body.chat-active.blog-editor-active #chat-dialog{transform:translateX(0)}@media(max-width:768px) and (hover:none) and (pointer:coarse){#chat-dialog{left:0;right:0;top:auto;bottom:0;width:100%;height:50vh;padding-bottom:env(safe-area-inset-bottom,0);border-radius:12px 12px 0 0;transform:translateY(calc(100% + var(--chat-gap)))}body.chat-active #chat-dialog{transform:translateY(0)}body.blog-editor-active #chat-dialog{transform:translateY(calc(100% + var(--chat-gap)))}body.chat-active.blog-editor-active #chat-dialog{transform:translateY(0)}body.chat-active .page-wrapper{margin-right:0!important;border-top-right-radius:0;border-bottom-right-radius:0}#chat-resizer{display:none}#chat-fab{right:0;bottom:16px;width:48px;height:48px;transform:translateX(33%);transform-origin:100% 50%;transition:transform 160ms cubic-bezier(.22,1,.36,1);will-change:transform;touch-action:none}#chat-fab-menu{position:fixed;display:none;z-index:10001;background:var(--entry);color:var(--primary);border:1px solid var(--border);border-color:var(--border,rgba(127,127,127,.25));border-radius:12px;box-shadow:0 8px 24px rgba(0,0,0,.25);transform:translateY(-50%);padding:6px 8px}#chat-fab-menu button{appearance:none;-webkit-appearance:none;border:1px solid rgba(255,255,255,.2);background:0 0;color:var(--primary);padding:6px 10px;border-radius:8px;font-size:14px;line-height:1;cursor:pointer}#chat-fab-menu button:active{opacity:.8}@keyframes fabWaterdrop{0%{transform:translateX(40%)scale(.9)}40%{transform:translateX(20%)scale(1.06)}60%{transform:translateX(28%)scale(.98)}80%{transform:translateX(24%)scale(1.02)}100%{transform:translateX(25%)scale(1)}}#chat-fab.fab-bounce{animation:fabWaterdrop 620ms cubic-bezier(.22,1,.36,1)1}#blog-editor-fab{display:none!important}body.chat-active::before{content:"";position:fixed;inset:0;background:rgba(0,0,0,.45);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);z-index:9997}body.chat-active .page-wrapper{overflow:hidden;overscroll-behavior:contain;touch-action:none}}.chat-header{padding:15px;border-bottom:none;display:grid;grid-template-columns:1fr auto 1fr;align-items:center}.chat-header h3{margin:0;font-size:1.2em;grid-column:2/3;justify-self:center}#close-chat{background:0 0;border:none;color:var(--primary);font-size:20px;cursor:pointer;padding:4px;border-radius:4px;transition:background-color .2s;grid-column:3/4;justify-self:end}#close-chat:hover{background-color:var(--border)}.chat-history{flex-grow:1;padding:2px 15px 15px;overflow-y:auto;display:flex;flex-direction:column}.chat-history{scrollbar-width:thin;scrollbar-color:var(--tertiary)var(--bg)}.chat-history::-webkit-scrollbar{width:8px}.chat-history::-webkit-scrollbar-thumb{background-color:var(--tertiary);border-radius:10px}.chat-history::-webkit-scrollbar-track{background:var(--bg)}.chat-message{max-width:85%;padding:10px 15px;border-radius:18px;margin-bottom:10px;line-height:1.4}.user-message{background-color:#1f9cee;color:#fff;align-self:flex-end;border-bottom-right-radius:4px}.bot-message{background-color:var(--entry);color:var(--primary);align-self:flex-start;border-bottom-left-radius:4px}.chat-input{display:flex;justify-content:center;align-items:center;padding:15px;border-top:none}.chat-input-wrapper{position:relative;display:flex;align-items:center;flex-grow:1;background-color:var(--entry);border:1px solid var(--border);border-radius:24px;padding:2px}#chat-input-field{flex-grow:1;height:40px;padding:10px 50px 10px 20px;border:none;border-radius:20px;background-color:transparent;color:var(--primary);margin-right:0;outline:none}#chat-input-field:focus{box-shadow:none}#chat-send-btn-new{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:32px;height:32px;background-color:#007bff;color:#fff;border:none;border-radius:50%;cursor:pointer;display:flex;justify-content:center;align-items:center;transition:background-color .3s}#chat-send-btn-new:hover{background-color:#0056b3}#chat-send-btn{display:none}#chat-input-field{min-height:48px!important;max-height:220px!important;overflow-y:auto!important;resize:none!important;box-sizing:border-box}#chat-input-field::-webkit-scrollbar{display:none!important}#chat-input-field{scrollbar-width:none!important;-ms-overflow-style:none!important}.chat-history::-webkit-scrollbar{width:8px}.chat-history::-webkit-scrollbar-track{background:0 0}.chat-history:hover::-webkit-scrollbar-thumb{background-color:#555;border-radius:4px}#chat-resizer{position:absolute;left:0;top:0;bottom:0;width:8px;cursor:ew-resize;transform:translateX(-50%);z-index:10}.page-wrapper{transition:margin-right .3s ease-in-out,margin-left .3s ease-in-out,border-radius .3s ease-in-out,background-color .3s ease-in-out}body.chat-active .page-wrapper{margin-right:calc(var(--chat-dialog-width) + var(--chat-gap));border-top-right-radius:12px;border-bottom-right-radius:12px}body.blog-editor-active:not(.chat-active) .page-wrapper{margin-right:calc(var(--blog-editor-width) + var(--blog-editor-gap));border-top-right-radius:12px;border-bottom-right-radius:12px}body.chat-active.blog-editor-active .page-wrapper{margin-right:calc(var(--chat-dialog-width) + var(--blog-editor-width) + var(--chat-gap) + var(--blog-editor-gap));border-top-right-radius:12px;border-bottom-right-radius:12px}body.chat-active.blog-editor-active #blog-editor{transform:translateX(calc((var(--chat-dialog-width) + var(--chat-gap)) * -1))}.page-wrapper.no-transition{transition:none!important}#blog-editor-fab{position:fixed;bottom:30px;right:100px;width:50px;height:50px;background-color:#28a745;color:#fff;border-radius:50%;display:flex;justify-content:center;align-items:center;font-size:24px;cursor:grab;box-shadow:0 4px 8px rgba(0,0,0,.2);z-index:10000;user-select:none;transition:background-color .3s;opacity:1;transform:scale(1)}#blog-editor-fab:hover{background-color:#1e7e34}#blog-editor{position:fixed;top:var(--blog-editor-gap);right:var(--blog-editor-gap);bottom:var(--blog-editor-gap);width:var(--blog-editor-width);height:auto;background-color:var(--bg);border:1px solid var(--border);border-color:var(--border,rgba(127,127,127,.25));box-shadow:0 0 20px rgba(0,0,0,.15);transform:translateX(calc(100% + var(--blog-editor-gap)));transition:transform .3s ease-in-out,background-color .3s ease-in-out;will-change:transform,background-color;z-index:9998;display:flex;flex-direction:column;color:var(--primary);border-radius:12px;overflow:hidden}#blog-editor .editor-find .find-count{min-width:7ch;text-align:center;font-variant-numeric:tabular-nums;display:inline-block}@media(min-width:769px){.toc{display:none!important}}@media(max-width:768px){.left-toc{display:none!important}.toc{display:block!important}}#blog-editor .editor-find{position:absolute;top:10px;right:10px;display:none;flex-direction:column;align-items:stretch;gap:6px;padding:6px 8px;border:1px solid var(--border);border-radius:10px;background-color:var(--entry);color:var(--primary);z-index:1100;box-shadow:0 4px 12px rgba(0,0,0,.25);max-width:calc(100% - 20px);min-width:0}body.dark #blog-editor .editor-find{background-color:#1d1e20}#blog-editor .editor-find .editor-find-row,#blog-editor .editor-find .editor-replace-row{display:flex;align-items:center;gap:6px;flex-wrap:nowrap;min-width:0}#blog-editor .editor-find .editor-replace-row{padding-left:34px}#blog-editor .editor-find input{height:28px;width:180px;max-width:100%;box-sizing:border-box;min-width:0;flex:1 1 180px;padding:0 8px;border:1px solid var(--border);border-radius:8px;background:0 0;color:var(--primary)}#blog-editor .editor-find button{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:1px solid var(--border);border-radius:8px;background:0 0;color:var(--primary);cursor:pointer;transition:background-color .2s ease;flex:0 0 28px}#blog-editor .editor-find .action-button.icon-button[data-tooltip]::after{content:attr(data-tooltip);position:absolute;top:100%;left:50%;transform:translateX(-50%);background-color:#3c3c3c;color:#f0f0f0;padding:4px 8px;border-radius:3px;font-size:12px;white-space:nowrap;box-shadow:0 1px 4px rgba(0,0,0,.2);opacity:0;pointer-events:none;transition-property:opacity,transform;transition-duration:.1s;transition-timing-function:ease-in-out;transition-delay:0s;z-index:1101}#blog-editor .editor-find .action-button.icon-button[data-tooltip]:hover::after{opacity:1;transform:translateX(-50%)translateY(6px);transition-delay:1.8s}#blog-editor .editor-find button:hover{background-color:var(--border)}#blog-editor .editor-find #editor-find-toggle svg{transition:transform .2s ease}#blog-editor .editor-find.replace-open #editor-find-toggle svg{transform:rotate(180deg)}#blog-editor .editor-find .editor-replace-row{display:none}#blog-editor .editor-find.replace-open .editor-replace-row{display:flex}#blog-editor .editor-find .replace-actions{display:flex;gap:6px}#blog-editor .editor-find .action-button{width:auto;min-width:84px;padding:0 12px;font-size:13px}#blog-editor .editor-find .replace-actions .action-button.icon-button{position:relative;width:28px;min-width:28px;height:28px;padding:0;flex:0 0 28px}#blog-editor .editor-find .replace-actions .action-button.icon-button .codicon{font-size:16px;line-height:1}#blog-editor .editor-find .editor-replace-row input{width:180px;max-width:100%;box-sizing:border-box;min-width:0;flex:none}#blog-editor .editor-find .find-count{font-size:12px;opacity:.8;white-space:nowrap;flex:none}#blog-editor #editor-find-case.active{background:var(--border)}#blog-editor-resizer{position:absolute;left:0;top:0;bottom:0;width:8px;cursor:ew-resize;transform:translateX(-50%);z-index:10}body.blog-editor-active #blog-editor{transform:translateX(0)}body.chat-active #blog-editor{transform:translateX(calc(100% + var(--chat-dialog-width) + var(--chat-gap) + var(--blog-editor-gap)))}body.chat-active.blog-editor-active #blog-editor{transform:translateX(calc((var(--chat-dialog-width) + var(--chat-gap)) * -1))}.blog-editor-header{padding:15px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;background-color:var(--bg)}.blog-editor-header h3{margin:0;font-size:1.1em;color:var(--primary)}#close-blog-editor{background:0 0;border:none;color:var(--primary);font-size:20px;cursor:pointer;padding:4px;border-radius:4px;transition:background-color .2s}#close-blog-editor:hover{background-color:var(--border)}.blog-editor-toolbar{padding:10px 15px;border-bottom:1px solid var(--border);display:flex;gap:8px;align-items:center;background-color:var(--bg);flex-wrap:wrap}.blog-editor-toolbar input[type=text]{flex:1;min-width:180px;padding:6px 10px;border:1px solid var(--border);border-radius:6px;background-color:var(--bg);color:var(--primary);font-size:14px}.blog-editor-toolbar button{padding:6px 12px;border:1px solid var(--border);border-radius:6px;background-color:var(--bg);color:var(--primary);cursor:pointer;font-size:13px;transition:background-color .2s;white-space:nowrap}.blog-editor-toolbar button:hover{background-color:var(--border)}.blog-editor-toolbar button.primary{background-color:#28a745;color:#fff;border-color:#28a745}.blog-editor-toolbar button.primary:hover{background-color:#1e7e34}.blog-editor-content{flex:1;display:flex;flex-direction:column;overflow:hidden;padding:0;position:relative;background-color:var(--vscode-editor-bg)}#blog-editor-textarea{position:relative;z-index:1;flex:1;width:100%;height:100%;--editor-gutter-gap:8px;padding:15px;padding-left:calc(15px + (var(--editor-gutter-ch,0) * 1ch) + var(--editor-gutter-gap,8px));border:none;outline:none;resize:none;background-color:var(--vscode-editor-bg);color:var(--vscode-editor-fg);caret-color:#aeafad;font-family:Menlo,Monaco,Consolas,courier new,monospace;font-size:14px;line-height:1.5;letter-spacing:0;font-variant-ligatures:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;tab-size:2;-moz-tab-size:2;box-sizing:border-box;scrollbar-width:thin;scrollbar-color:var(--tertiary)var(--vscode-editor-bg)}.blog-editor-content.monaco-active #blog-editor-textarea{display:none}.blog-editor-content.monaco-active #blog-editor-highlights{display:none}.blog-editor-content.monaco-active #blog-editor-syntax{display:none}.blog-editor-content.monaco-active #blog-editor-gutter{display:none}body.monaco-only .blog-editor-content #blog-editor-textarea{display:none!important}body.monaco-only .blog-editor-content #blog-editor-highlights{display:none!important}body.monaco-only .blog-editor-content #blog-editor-syntax{display:none!important}body.monaco-only .blog-editor-content #blog-editor-gutter{display:none!important}.blog-editor-content .monaco-container{position:absolute;inset:0;z-index:2}.blog-editor-content .monaco-editor .fm-key{color:#9cdcfe!important}.blog-editor-content .monaco-editor .fm-dash{color:#ce9178!important}.blog-editor-content .monaco-editor .fm-value{color:#ce9178!important}.blog-editor-content .monaco-editor .fm-fence{color:#6a9955!important}#blog-editor-syntax .fm-key{color:#9cdcfe!important}#blog-editor-syntax .fm-dash{color:#ce9178!important}#blog-editor-syntax .fm-fence{color:#6a9955!important}#blog-editor-syntax .fm-value{color:#ce9178!important}.blog-editor-content .monaco-editor .mtki{font-style:normal!important}#blog-editor-syntax .md-math-fence{color:#6a9955!important}#blog-editor-syntax .md-math-cmd{color:#9cdcfe!important}#blog-editor-syntax .md-math-brace{color:#dcdcaa!important}#blog-editor-syntax .md-math-paren{color:#d4d4d4!important}#blog-editor-syntax .md-math-num{color:#b5cea8!important}#blog-editor-syntax .md-math-op{color:#d4d4d4!important}#blog-editor-syntax .md-bracket-l1{color:#dcdcaa!important}#blog-editor-syntax .md-bracket-l2{color:#569cd6!important}#blog-editor-syntax .md-bracket-l3{color:#c586c0!important}#blog-editor-syntax .md-bracket-l4{color:#b5cea8!important}#blog-editor-syntax .md-bracket-l5{color:#ce9178!important}#blog-editor-syntax .md-bracket-l6{color:#9cdcfe!important}#blog-editor-syntax strong,#blog-editor-syntax b,#blog-editor-syntax .hljs-strong{color:#569cd6!important;font-weight:700}#blog-editor-syntax .hljs-bullet{color:#569cd6!important;font-weight:600}#blog-editor-textarea.disabled,#blog-editor-textarea:disabled{opacity:.6;cursor:not-allowed;background-color:rgba(255,255,255,3%);color:#666}#blog-editor-textarea:hover{scrollbar-color:var(--tertiary)var(--bg)}#blog-editor-textarea::-webkit-scrollbar{width:8px;background:0 0}#blog-editor-textarea::-webkit-scrollbar-thumb{border-radius:10px;background-color:transparent}#blog-editor-textarea:hover::-webkit-scrollbar-thumb{background-color:var(--tertiary)}#blog-editor-highlights{position:absolute;inset:0;padding:15px;padding-left:calc(15px + (var(--editor-gutter-ch,0) * 1ch) + var(--editor-gutter-gap,8px));pointer-events:none;-webkit-user-select:none;user-select:none;overflow:hidden;color:transparent;white-space:pre-wrap;word-wrap:break-word;font-family:Menlo,Monaco,Consolas,courier new,monospace;font-size:14px;line-height:1.5;z-index:2}#blog-editor-highlights .highlights-content{will-change:transform}#blog-editor-highlights mark.find-highlight{background:rgba(255,215,0,.35);border-radius:3px;padding:0}#blog-editor-highlights mark.find-current{background:rgba(255,180,0,.9);outline:2px solid #ffbe00;box-shadow:0 0 0 2px rgba(0,0,0,.15)}#blog-editor-syntax{position:absolute;inset:0;padding:15px;padding-left:calc(15px + (var(--editor-gutter-ch,0) * 1ch) + var(--editor-gutter-gap,8px));pointer-events:none;-webkit-user-select:none;user-select:none;overflow:hidden;white-space:pre-wrap;word-wrap:break-word;font-family:Menlo,Monaco,Consolas,courier new,monospace;font-size:14px;line-height:1.5;z-index:0;color:var(--vscode-editor-fg)}#blog-editor-syntax .syntax-content{will-change:transform;color:var(--vscode-editor-fg);font-variant-ligatures:none}.blog-editor-content .ed-line{display:block}#blog-editor-syntax .line-metrics{position:absolute;inset:0;padding:15px;padding-left:calc(15px + (var(--editor-gutter-ch,0) * 1ch) + var(--editor-gutter-gap,8px));pointer-events:none;-webkit-user-select:none;user-select:none;white-space:pre-wrap;word-wrap:break-word;font-family:Menlo,Monaco,Consolas,courier new,monospace;font-size:14px;line-height:1.5;color:transparent;visibility:hidden}.blog-editor-content .hljs{background:0 0!important}#blog-editor-syntax .hljs-function .hljs-title{color:#dcdcaa!important;font-weight:500}#blog-editor-syntax .py-self{color:#569cd6!important}#blog-editor-syntax .py-docstring{color:#57a64a!important;font-style:italic}.hljs .py-docstring{color:#57a64a;font-style:italic}#blog-editor-syntax em,#blog-editor-syntax i,#blog-editor-syntax .hljs-emphasis{font-style:normal}#blog-editor-syntax .hljs-section{color:#569cd6!important}#blog-editor-syntax .hljs-operator{color:#d4d4d4!important}#blog-editor-syntax .hljs-built_in{color:#4ec9b0!important}#blog-editor-syntax .hljs-attr{color:#9cdcfe!important}#blog-editor-syntax .hljs-variable{color:#bd63c5!important}#blog-editor-textarea.syntax-on{color:transparent!important;caret-color:#aeafad!important}#blog-editor-textarea::selection{background:var(--vscode-selection-bg);color:var(--vscode-editor-fg)}#blog-editor-textarea.syntax-on::selection{background:var(--vscode-selection-bg);color:var(--vscode-editor-fg)}#blog-editor-gutter{position:absolute;top:0;left:0;bottom:0;width:calc((var(--editor-gutter-ch,0) * 1ch) + var(--editor-gutter-gap,8px));z-index:3;pointer-events:none;overflow:hidden;background:0 0}#blog-editor-gutter .gutter-content{position:relative;padding:15px 0;will-change:transform}#blog-editor-gutter .gutter-line{display:block;box-sizing:border-box;height:1.5em;padding:0 6px 0 4px;color:var(--vscode-gutter-fg);font-family:Menlo,Monaco,Consolas,courier new,monospace;font-size:14px;line-height:1.5;text-align:right;border-right:1px solid var(--vscode-gutter-border)}#blog-editor-gutter .gutter-line span{display:inline-block}.blog-editor-content .cm-editor{flex:1;font-family:monaco,menlo,ubuntu mono,monospace;font-size:14px;line-height:1.5}.blog-editor-content .cm-focused{outline:none}.blog-editor-status{padding:8px 15px;border-top:1px solid var(--border);background-color:var(--bg);font-size:12px;color:var(--secondary);display:flex;justify-content:space-between;align-items:center}.blog-editor-status .status-left{display:flex;gap:15px}.blog-editor-status .status-right{display:flex;gap:10px;align-items:center}.save-indicator{padding:2px 6px;border-radius:4px;font-size:11px;font-weight:500}.save-indicator.saved{background-color:#d4edda;color:#155724}.save-indicator.saving{background-color:#fff3cd;color:#856404}.save-indicator.error{background-color:#f8d7da;color:#721c24}