@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap";.theme-toggle-btn{background:none;border:none;padding:0;cursor:pointer;display:flex;align-items:center}.toggle-track{width:44px;height:24px;border-radius:100px;position:relative;transition:background .35s ease,border-color .35s ease;border:1px solid var(--glass-border)}.toggle-track.dark{background:#6d5cff26}.toggle-track.light{background:#fbbf2426;border-color:#fbbf2440}.toggle-thumb{position:absolute;top:2px;width:18px;height:18px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:transform .3s cubic-bezier(.34,1.56,.64,1),background .35s ease}.toggle-track.dark .toggle-thumb{transform:translate(2px);background:var(--accent);color:#fff}.toggle-track.light .toggle-thumb{transform:translate(22px);background:#f59e0b;color:#fff}.theme-toggle-btn:hover .toggle-track{box-shadow:0 0 12px var(--accent-glow)}.model-selector{position:relative}.model-selector-btn{display:flex;align-items:center;gap:4px;padding:4px 10px;border-radius:var(--radius);border:1px solid var(--glass-border);background:var(--glass);color:var(--text-2);cursor:pointer;font-size:.78rem;font-weight:500;transition:all .2s ease}.model-selector-btn:hover{background:var(--hover-bg);color:var(--text-1);border-color:var(--accent)}.model-label{white-space:nowrap}.chevron{transition:transform .2s ease}.chevron.open{transform:rotate(180deg)}.model-dropdown{position:absolute;top:calc(100% + 6px);right:0;min-width:140px;background:var(--bg-deep);border:1px solid var(--glass-border);border-radius:var(--radius);box-shadow:0 8px 24px #0006;z-index:100;padding:4px;animation:dropIn .15s ease}@keyframes dropIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.model-option{display:flex;align-items:center;justify-content:space-between;width:100%;padding:7px 10px;border:none;border-radius:6px;background:none;color:var(--text-2);cursor:pointer;font-size:.8rem;transition:all .15s ease}.model-option:hover{background:var(--hover-bg);color:var(--text-1)}.model-option.active{color:var(--accent);font-weight:600}.model-option .check{color:var(--accent);font-size:.9rem}.bubble-row{display:flex;margin-bottom:1.1rem;animation:bubbleIn .35s ease}@keyframes bubbleIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.bubble-row.user{justify-content:flex-end}.bubble-row.assistant{justify-content:flex-start}.bubble{max-width:80%;padding:.9rem 1.15rem;border-radius:var(--radius);line-height:1.6;font-size:.9rem;word-break:break-word;position:relative}.bubble-user{background:linear-gradient(135deg,var(--accent),#8b5cf6);color:#fff;border-bottom-right-radius:4px;box-shadow:0 4px 20px var(--accent-glow)}.bubble-assistant{background:var(--glass);border:1px solid var(--glass-border);color:var(--text-1);border-bottom-left-radius:4px;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.tool-label{display:inline-flex;align-items:center;gap:.3rem;font-size:.72rem;font-weight:500;color:var(--accent-2);background:#38bdf814;border:1px solid rgba(56,189,248,.12);border-radius:100px;padding:.2rem .6rem;margin-bottom:.45rem;letter-spacing:.02em}.status-text{font-size:.8rem;color:var(--text-2);margin-bottom:.35rem;font-style:italic}.bubble p{margin:.3em 0}.bubble pre{background:var(--code-bg);border:1px solid var(--glass-border);border-radius:var(--radius-sm);padding:.8rem;overflow-x:auto;font-size:.82rem;margin:.55rem 0}.bubble code{font-family:JetBrains Mono,Fira Code,monospace;font-size:.82rem}.bubble :not(pre)>code{background:#6d5cff26;padding:.12em .35em;border-radius:4px;font-size:.82rem}.bubble table{border-collapse:collapse;margin:.5rem 0;width:100%;font-size:.82rem}.bubble th,.bubble td{border:1px solid var(--glass-border);padding:.35rem .55rem;text-align:left}.bubble th{background:var(--subtle-bg);font-weight:600;color:var(--text-2)}.bubble ul,.bubble ol{padding-left:1.3em;margin:.3em 0}.bubble li{margin:.15em 0}.plot-figure{margin:.65rem 0;max-width:560px;border-radius:var(--radius-sm);overflow:hidden;border:1px solid var(--glass-border);box-shadow:0 4px 24px rgba(0,0,0,var(--shadow-strength))}.plot-img{width:100%;display:block;cursor:zoom-in;transition:filter .2s ease,transform .2s ease}.plot-img:hover{filter:brightness(1.08);transform:scale(1.01)}.plot-actions{display:flex;gap:.35rem;padding:.45rem .6rem;background:var(--plot-actions-bg);border-top:1px solid var(--glass-border);flex-wrap:wrap}.plot-action-btn{display:inline-flex;align-items:center;gap:.25rem;background:var(--glass);border:1px solid var(--glass-border);border-radius:var(--radius-sm);color:var(--text-2);padding:.25rem .55rem;font-size:.72rem;font-family:inherit;cursor:pointer;transition:all .2s}.plot-action-btn:hover{background:#6d5cff1a;border-color:#6d5cff40;color:var(--text-1)}.plot-action-btn.arraylake-btn{color:var(--warning);border-color:#fbbf2433}.plot-action-btn.arraylake-btn:hover{background:#fbbf241a;border-color:#fbbf2459}.plot-code-block{position:relative;background:var(--code-block-bg);border-top:1px solid var(--glass-border);padding:.7rem;max-height:300px;overflow-y:auto}.plot-code-block pre{margin:0;background:none!important;border:none!important;padding:0!important}.plot-code-block code{font-family:JetBrains Mono,monospace;font-size:.78rem;color:var(--text-2);white-space:pre-wrap;word-break:break-all}.copy-btn{position:absolute;top:.4rem;right:.4rem;background:var(--glass);border:1px solid var(--glass-border);color:var(--text-3);font-size:.68rem;padding:.2rem .45rem;border-radius:4px;cursor:pointer;transition:all .2s}.copy-btn:hover{color:var(--text-1);background:var(--hover-bg)}.arraylake-section{margin-top:.5rem}.image-modal-overlay{position:fixed;inset:0;background:var(--overlay-bg);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.image-modal-box{position:relative;max-width:90vw;max-height:90vh;display:flex;flex-direction:column;align-items:center}.image-modal-box img{max-width:100%;max-height:calc(90vh - 60px);border-radius:var(--radius-sm);box-shadow:0 8px 40px #00000080}.image-modal-actions{display:flex;gap:.5rem;margin-top:.75rem}.modal-btn{display:inline-flex;align-items:center;gap:.3rem;padding:.45rem .85rem;border:1px solid var(--glass-border);border-radius:var(--radius-sm);cursor:pointer;font-size:.8rem;font-family:inherit;background:#6d5cff26;color:#fff;transition:all .2s}.modal-btn:hover{background:#6d5cff4d}.modal-btn.modal-close{background:var(--modal-close-bg)}.modal-btn.modal-close:hover{background:var(--modal-close-hover)}.cursor-blink{animation:cblink .8s steps(2) infinite;color:var(--accent);font-weight:700}@keyframes cblink{0%{opacity:1}50%{opacity:0}}.keys-panel{margin:1rem 2rem;padding:1.2rem;background:var(--glass);border:1px solid rgba(251,191,36,.15);border-radius:var(--radius);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);animation:fadeIn .3s ease}.keys-header{display:flex;align-items:center;gap:.5rem;font-weight:600;font-size:.9rem;color:var(--warning);margin-bottom:.5rem}.keys-note{font-size:.78rem;color:var(--text-3);margin-bottom:.85rem;line-height:1.5}.keys-field{margin-bottom:.65rem}.keys-field label{display:block;font-size:.78rem;font-weight:500;color:var(--text-2);margin-bottom:.3rem}.keys-field .required{color:var(--danger)}.keys-field input{width:100%;padding:.5rem .7rem;background:var(--input-bg);border:1px solid var(--glass-border);border-radius:var(--radius-sm);color:var(--text-1);font-size:.85rem;font-family:inherit;outline:none;transition:all .2s}.keys-field input:focus{border-color:#6d5cff66;box-shadow:0 0 0 3px #6d5cff14}.keys-field input::placeholder{color:var(--text-3)}.keys-submit{width:100%;padding:.55rem;background:linear-gradient(135deg,var(--accent),#8b5cf6);border:none;border-radius:var(--radius-sm);color:#fff;font-size:.85rem;font-weight:600;font-family:inherit;cursor:pointer;transition:all .25s;box-shadow:0 2px 12px var(--accent-glow);margin-top:.3rem}.keys-submit:hover:not(:disabled){filter:brightness(1.12)}.keys-submit:disabled{opacity:.4;cursor:not-allowed}.chat-panel{display:flex;flex-direction:column;flex:1;min-width:0;height:100vh}.chat-header{display:flex;align-items:center;justify-content:space-between;padding:.85rem 1.5rem;background:var(--glass);border-bottom:1px solid var(--glass-border);backdrop-filter:blur(20px) saturate(1.6);-webkit-backdrop-filter:blur(20px) saturate(1.6);position:relative;z-index:10}.chat-title{display:flex;align-items:center;gap:.65rem}.chat-logo{width:32px;height:32px;border-radius:8px;background:linear-gradient(135deg,var(--accent),var(--accent-2));display:flex;align-items:center;justify-content:center;font-size:1rem;box-shadow:0 0 16px var(--accent-glow)}.chat-title h1{font-size:1rem;font-weight:600;color:var(--text-1);margin:0;letter-spacing:-.01em}.chat-header-actions{display:flex;align-items:center;gap:.6rem}.icon-btn{background:var(--glass);border:1px solid var(--glass-border);border-radius:var(--radius-sm);color:var(--text-3);padding:.4rem;cursor:pointer;display:flex;align-items:center;transition:all .2s ease}.icon-btn:hover{background:var(--hover-bg);color:var(--text-2);border-color:var(--hover-border)}.danger-btn:hover{background:#f871711a;color:var(--danger);border-color:#f8717133}.status-badge{display:inline-flex;align-items:center;gap:.35rem;font-size:.72rem;font-weight:500;text-transform:uppercase;letter-spacing:.06em;padding:.3rem .65rem;border-radius:100px;background:#34d39914;border:1px solid rgba(52,211,153,.15)}.status-badge.disconnected{background:#f8717114;border-color:#f8717126}.messages-container{flex:1;overflow-y:auto;padding:1.5rem 2rem 1rem;max-width:960px;margin:0 auto;width:100%}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;text-align:center;gap:.3rem;animation:fadeIn .5s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.empty-icon{width:72px;height:72px;border-radius:20px;background:linear-gradient(135deg,#6d5cff1f,#38bdf81f);border:1px solid rgba(109,92,255,.15);display:flex;align-items:center;justify-content:center;font-size:2rem;margin-bottom:.75rem;box-shadow:0 0 40px #6d5cff1a}.empty-state h2{font-size:1.6rem;font-weight:700;color:var(--text-1);margin:0;letter-spacing:-.02em}.empty-state p{max-width:380px;font-size:.88rem;line-height:1.55;color:var(--text-2);margin:.15rem 0 1.25rem}.example-queries{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center}.example-queries button{background:var(--glass);border:1px solid var(--glass-border);border-radius:100px;color:var(--text-2);padding:.5rem 1rem;font-size:.8rem;font-family:inherit;cursor:pointer;transition:all .25s ease;white-space:nowrap}.example-queries button:hover{background:#6d5cff1a;border-color:#6d5cff40;color:var(--text-1);transform:translateY(-1px);box-shadow:0 4px 16px #6d5cff1f}.thinking-indicator{display:inline-flex;align-items:center;gap:.5rem;color:var(--accent);font-size:.82rem;font-weight:500;padding:.6rem 1rem;background:#6d5cff0f;border:1px solid rgba(109,92,255,.12);border-radius:100px;margin-bottom:.75rem;animation:fadeIn .3s ease}.spin{animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.input-bar{display:flex;align-items:flex-end;gap:.6rem;padding:.85rem 2rem 1.1rem;background:var(--glass);border-top:1px solid var(--glass-border);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);max-width:960px;margin:0 auto;width:100%}.input-bar textarea{flex:1;resize:none;border:1px solid var(--glass-border);border-radius:var(--radius);background:var(--input-bg);color:var(--text-1);padding:.7rem 1rem;font-size:.9rem;font-family:inherit;line-height:1.45;outline:none;transition:all .25s ease}.input-bar textarea:focus{border-color:#6d5cff66;box-shadow:0 0 0 3px #6d5cff14;background:var(--input-focus-bg)}.input-bar textarea::placeholder{color:var(--text-3)}.input-bar textarea:disabled{opacity:.35;cursor:not-allowed}.send-btn{flex-shrink:0;width:2.6rem;height:2.6rem;display:flex;align-items:center;justify-content:center;border:none;border-radius:var(--radius);background:linear-gradient(135deg,var(--accent),#8b5cf6);color:#fff;cursor:pointer;transition:all .25s ease;box-shadow:0 2px 12px var(--accent-glow)}.send-btn:hover:not(:disabled){filter:brightness(1.15);transform:translateY(-1px);box-shadow:0 4px 20px var(--accent-glow)}.send-btn:active:not(:disabled){transform:translateY(0)}.send-btn:disabled{opacity:.3;cursor:not-allowed;box-shadow:none}.empty-warning{font-size:.78rem!important;color:var(--text-3)!important;opacity:.8;margin-top:-.5rem!important}.cache-panel{width:300px;background:var(--glass);border-left:1px solid var(--glass-border);display:flex;flex-direction:column;overflow:hidden;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}.cache-header{display:flex;align-items:center;justify-content:space-between;padding:.85rem 1.15rem;border-bottom:1px solid var(--glass-border)}.cache-title{display:flex;align-items:center;gap:.4rem;color:var(--text-1);font-size:.82rem;font-weight:600;letter-spacing:-.01em}.cache-refresh{background:none;border:1px solid var(--glass-border);color:var(--text-3);cursor:pointer;padding:.3rem;display:flex;border-radius:var(--radius-sm);transition:all .2s}.cache-refresh:hover{color:var(--text-2);background:var(--hover-bg)}.cache-summary{display:flex;align-items:center;gap:.35rem;padding:.55rem 1.15rem;font-size:.72rem;font-weight:500;color:var(--text-3);border-bottom:1px solid var(--subtle-border);text-transform:uppercase;letter-spacing:.05em}.cache-list{list-style:none;margin:0;padding:0;flex:1;overflow-y:auto}.cache-item{padding:.55rem 1.15rem;border-bottom:1px solid var(--subtle-border);transition:background .2s;cursor:default}.cache-item:hover{background:var(--hover-bg)}.cache-item-row{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.cache-var{font-size:.8rem;font-weight:600;color:var(--accent-2);letter-spacing:-.01em}.cache-meta{font-size:.7rem;color:var(--text-3);margin-top:.12rem;font-variant-numeric:tabular-nums}.cache-dl-btn{flex-shrink:0;background:none;border:1px solid var(--glass-border);border-radius:var(--radius-sm);color:var(--text-3);padding:.3rem;cursor:pointer;display:flex;align-items:center;transition:all .2s;opacity:0}.cache-item:hover .cache-dl-btn{opacity:1}.cache-dl-btn:hover{color:var(--accent-2);border-color:#38bdf84d;background:#38bdf814}.cache-empty{padding:2.5rem 1.15rem;text-align:center;color:var(--text-3);font-size:.8rem}@media(max-width:768px){.cache-panel{width:100%;border-left:none;border-top:1px solid var(--glass-border);max-height:35vh}}.app-layout{display:flex;height:100vh;width:100vw;overflow:hidden;position:relative;z-index:1;padding:.5rem;gap:.5rem}@media(max-width:768px){.app-layout{flex-direction:column}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg-deep: #06080f;--bg-surface: #0c1018;--bg-card: rgba(14, 18, 30, .7);--glass: rgba(255, 255, 255, .03);--glass-border: rgba(255, 255, 255, .06);--accent: #6d5cff;--accent-2: #38bdf8;--accent-glow: rgba(109, 92, 255, .25);--text-1: #f0f2f7;--text-2: #a0a8c0;--text-3: #5a6280;--danger: #f87171;--success: #34d399;--warning: #fbbf24;--radius: .875rem;--radius-sm: .5rem;--hover-bg: rgba(255, 255, 255, .06);--hover-border: rgba(255, 255, 255, .1);--input-bg: rgba(255, 255, 255, .03);--input-focus-bg: rgba(255, 255, 255, .04);--code-bg: rgba(0, 0, 0, .4);--overlay-bg: rgba(0, 0, 0, .85);--subtle-border: rgba(255, 255, 255, .025);--subtle-bg: rgba(255, 255, 255, .04);--plot-actions-bg: rgba(0, 0, 0, .3);--code-block-bg: rgba(0, 0, 0, .5);--modal-close-bg: rgba(255, 255, 255, .08);--modal-close-hover: rgba(255, 255, 255, .15);--shadow-strength: .3;--scrollbar-thumb: rgba(255, 255, 255, .08);--scrollbar-hover: rgba(255, 255, 255, .14);--glow-1-opacity: .08;--glow-2-opacity: .06}:root.light-theme{--bg-deep: #f5f6fa;--bg-surface: #ffffff;--bg-card: rgba(255, 255, 255, .85);--glass: rgba(0, 0, 0, .02);--glass-border: rgba(0, 0, 0, .08);--accent: #6d5cff;--accent-2: #0ea5e9;--accent-glow: rgba(109, 92, 255, .18);--text-1: #1a1d2e;--text-2: #5b6178;--text-3: #9499b0;--danger: #ef4444;--success: #10b981;--warning: #f59e0b;--hover-bg: rgba(0, 0, 0, .04);--hover-border: rgba(0, 0, 0, .12);--input-bg: rgba(0, 0, 0, .02);--input-focus-bg: rgba(0, 0, 0, .03);--code-bg: rgba(0, 0, 0, .05);--overlay-bg: rgba(0, 0, 0, .6);--subtle-border: rgba(0, 0, 0, .04);--subtle-bg: rgba(0, 0, 0, .03);--plot-actions-bg: rgba(0, 0, 0, .04);--code-block-bg: rgba(0, 0, 0, .04);--modal-close-bg: rgba(0, 0, 0, .08);--modal-close-hover: rgba(0, 0, 0, .15);--shadow-strength: .1;--scrollbar-thumb: rgba(0, 0, 0, .1);--scrollbar-hover: rgba(0, 0, 0, .18);--glow-1-opacity: .04;--glow-2-opacity: .03}html,body,#root{height:100%;width:100%;overflow:hidden}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:var(--bg-deep);color:var(--text-1);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background .35s ease,color .35s ease}body:before{content:"";position:fixed;top:-40%;left:-20%;width:70%;height:70%;background:radial-gradient(ellipse,rgba(109,92,255,var(--glow-1-opacity)) 0%,transparent 70%);pointer-events:none;z-index:0}body:after{content:"";position:fixed;bottom:-30%;right:-15%;width:60%;height:60%;background:radial-gradient(ellipse,rgba(56,189,248,var(--glow-2-opacity)) 0%,transparent 70%);pointer-events:none;z-index:0}.hljs{background:transparent!important;padding:0!important}::selection{background:#6d5cff4d}::-webkit-scrollbar{width:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-hover)}
