:root{--chat-gap:10px;--chat-accent:rgb(31,156,238);--chat-accent-hover:#0056b3;--chat-border:rgb(51, 51, 51);--chat-fab-mobile-embed-shift:25%;--chat-fab-hide-zone-top:8px}body.dark .chat-input-wrapper{background-color:transparent;border-color:var(--border)}body.dark #attach-file-btn{background-color:var(--bg);border-color:var(--border);color:var(--secondary)}body.dark #attach-file-btn:hover{background-color:var(--border);color:var(--primary)}body.dark #run-btn{background-color:var(--bg);border-color:var(--border);color:var(--secondary)}body.dark #run-btn.active{background-color:var(--bg);color:var(--primary)}body.dark #stop-generation-btn{background-color:var(--bg);border-color:var(--border);color:var(--secondary)}body.dark #file-preview-container{background-color:var(--bg)}body.dark .file-card{background-color:rgba(255,255,255,8%)!important;border-color:rgba(255,255,255,.2)!important}body.dark .file-thumb{background-color:rgba(255,255,255,.12)!important;border-color:rgba(255,255,255,.2)!important}body.dark .file-thumb .file-icon{color:#ddd!important}body.dark .progress-ring .ring-fg{stroke:#e6e6e6!important}body.dark .file-meta .file-name{color:#f0f0f0!important}body.dark .file-meta .file-type{color:#b5b5b5!important}body.dark .file-preview-item .file-info{background-color:rgba(255,255,255,8%)!important;border-color:rgba(255,255,255,.2)!important;color:#e0e0e0!important}body.dark .file-info .file-icon{color:#9e9e9e!important}body.dark .file-details .file-type{color:#999!important}body.dark .remove-file-btn{background-color:rgba(0,0,0,.7)!important;color:#fff!important}body.dark .chat-history,body.dark .chat-history *{scrollbar-color:rgba(255,255,255,.25)transparent}body.dark .chat-history::-webkit-scrollbar-thumb,body.dark .chat-history *::-webkit-scrollbar-thumb{background-color:rgba(255,255,255,.25)}body.dark .chat-history::-webkit-scrollbar-thumb:hover,body.dark .chat-history *::-webkit-scrollbar-thumb:hover{background-color:rgba(255,255,255,.35)}body.dark #image-modal{background-color:rgba(0,0,0,.85)}body.dark .modal-close{color:#f1f1f1}body.dark .modal-close:hover{color:#bbb}body:not(.dark) #chat-dialog{--border:var(--chat-border)}body:not(.dark) #attach-file-btn{background-color:var(--bg);border-color:var(--border);color:var(--secondary)}body:not(.dark) #attach-file-btn:hover{background-color:var(--border);color:var(--primary)}body:not(.dark) #attach-file-btn:disabled{color:#999}body:not(.dark) #run-btn{background-color:var(--bg);border-color:var(--border);color:var(--secondary)}body:not(.dark) #run-btn.active{background-color:var(--bg);color:var(--primary)}body:not(.dark) #run-btn.active:hover{background-color:var(--border)}body:not(.dark) #stop-generation-btn{background-color:var(--bg);border-color:var(--border);color:var(--secondary)}body:not(.dark) #stop-generation-btn:hover{background-color:var(--border)}body:not(.dark) #attach-file-btn[data-tooltip]::after{background:rgba(255,255,255,.95);color:#333;border-color:var(--border);box-shadow:0 2px 8px rgba(0,0,0,.15)}body:not(.dark) #attach-file-btn[data-tooltip]::before{background:rgba(255,255,255,.95);border-color:var(--border)}body:not(.dark) .file-card{background-color:rgba(0,0,0,3%)!important;border-color:var(--border)!important}body:not(.dark) .file-thumb{background-color:rgba(0,0,0,5%)!important;border-color:var(--border)!important}body:not(.dark) .file-thumb .file-icon{color:#666!important}body:not(.dark) .progress-ring .ring-fg{stroke:#ccc!important}body:not(.dark) .file-meta .file-name{color:#333!important}body:not(.dark) .file-meta .file-type{color:#888!important}body:not(.dark) .file-preview-item .file-info{background-color:rgba(0,0,0,3%)!important;border-color:var(--border)!important;color:#666!important}body:not(.dark) .file-action-btn{border-color:var(--border)!important}body:not(.dark) .context-menu{border-color:var(--border)!important}body:not(.dark) .file-info .file-icon{color:#888!important}body:not(.dark) .file-details .file-type{color:#888!important}body:not(.dark) .remove-file-btn{background-color:rgba(0,0,0,.5)!important;color:#fff!important}body:not(.dark) .chat-history,body:not(.dark) .chat-history *{scrollbar-color:rgba(0,0,0,.25)transparent}body:not(.dark) .chat-history::-webkit-scrollbar-thumb,body:not(.dark) .chat-history *::-webkit-scrollbar-thumb{background-color:rgba(0,0,0,.25)}body:not(.dark) .chat-history::-webkit-scrollbar-thumb:hover,body:not(.dark) .chat-history *::-webkit-scrollbar-thumb:hover{background-color:rgba(0,0,0,.4)}body:not(.dark) #image-modal{background-color:rgba(255,255,255,.9)}body:not(.dark) .modal-close{color:#333}body:not(.dark) .modal-close:hover{color:#666}#chat-fab{position:fixed;bottom:30px;right:30px;width:50px;height:50px;background-color:var(--chat-accent);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:var(--chat-accent-hover)}#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(--chat-border);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,width .3s ease-in-out;will-change:transform,background-color,width;z-index:9999;display:flex;flex-direction:column;color:var(--primary);font-size:14px;border-radius:12px;overflow:hidden}#chat-dialog.no-width-transition,#chat-dialog.viewport-width-resizing{transition:transform .3s ease-in-out,background-color .3s ease-in-out,width 0s}body.chat-active #chat-dialog{transform:translateX(0);transition-duration:80ms,.3s,.3s}body.chat-active #chat-dialog.no-width-transition,body.chat-active #chat-dialog.viewport-width-resizing{transition-duration:80ms,.3s,0s}body.theme-changing #chat-dialog{transition:none!important}@media(max-width:768px) and (hover:none) and (pointer:coarse){#chat-dialog{left:50%;right:auto;top:auto;bottom:0;width:98vw;height:80vh;padding-bottom:env(safe-area-inset-bottom,0);border-radius:12px 12px 0 0;transform:translateX(-50%)translateY(calc(100% + var(--chat-gap)))}body.chat-active #chat-dialog{transform:translateX(-50%)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{left:auto;top:auto;right:0;bottom:16px;width:48px;height:48px;transform:translateX(var(--chat-fab-mobile-embed-shift));transform-origin:100% 50%;transition:left 180ms cubic-bezier(.22,1,.36,1),top 180ms cubic-bezier(.22,1,.36,1),transform 180ms cubic-bezier(.22,1,.36,1),background-color .3s;will-change:transform;touch-action:none}#chat-fab.fab-side-left{transform:translateX(calc(var(--chat-fab-mobile-embed-shift) * -1));transform-origin:0% 50%}#chat-fab.fab-side-right{transform:translateX(var(--chat-fab-mobile-embed-shift));transform-origin:100% 50%}#chat-fab-hide-zone{position:fixed;left:50%;top:calc(env(safe-area-inset-top,0px) + var(--chat-fab-hide-zone-top));transform:translate(-50%,-145%);opacity:0;pointer-events:none;z-index:10002;color:var(--hero-content-text-color,var(--secondary));font-size:14px;font-weight:500;line-height:1;white-space:nowrap;padding:8px 14px;border-radius:999px;border:1px solid rgba(127,127,127,.2);background:rgba(0,0,0,2%);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);transition:transform 220ms cubic-bezier(.22,1,.36,1),opacity 200ms ease,border-color 150ms ease,color 150ms ease,background-color 150ms ease}body.fab-dragging #chat-fab-hide-zone{opacity:1;transform:translate(-50%,0)}#chat-fab-hide-zone.is-overlap{color:var(--primary);border-color:rgba(31,156,238,.55);background:rgba(31,156,238,.16)}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{width:max-content;max-width:var(--chat-message-max-width,85%);box-sizing:border-box;padding:10px 15px;border-radius:18px;margin-bottom:10px;font-size:14px;line-height:1.4}.user-message{background-color:var(--chat-accent);color:#fff;align-self:flex-end;border-bottom-right-radius:4px}.bot-message{background-color:var(--bg);border:1px solid var(--border);border-color:var(--border,rgba(127,127,127,.25));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:transparent;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);font-size:18px;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:var(--chat-accent);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:var(--chat-accent-hover)}#chat-send-btn{display:none}#chat-input-field{min-height:40px!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 .18s cubic-bezier(.2,.8,.2,1),margin-left .18s cubic-bezier(.2,.8,.2,1),border-radius .18s ease,background-color .18s ease}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}.page-wrapper.no-transition,.page-wrapper.viewport-width-resizing{transition:none!important}.left-toc{display:none!important}.toc{display:block!important}.left-toc-desktop .left-toc{display:block!important}.left-toc-desktop .toc{display:none!important}.hljs .py-docstring{color:#57a64a;font-style:italic}