.react-grid-layout{position:relative;transition:height .2s ease}.react-grid-item{transition:all .2s ease;transition-property:left,top,width,height}.react-grid-item img{pointer-events:none;-webkit-user-select:none;user-select:none}.react-grid-item.cssTransforms{transition-property:transform,width,height}.react-grid-item.resizing{transition:none;z-index:1;will-change:width,height}.react-grid-item.react-draggable-dragging{transition:none;z-index:3;will-change:transform}.react-grid-item.dropping{visibility:hidden}.react-grid-item.react-grid-placeholder{background:red;opacity:.2;transition-duration:.1s;z-index:2;-webkit-user-select:none;user-select:none}.react-grid-item.react-grid-placeholder.placeholder-resizing{transition:none}.react-grid-item>.react-resizable-handle{position:absolute;width:20px;height:20px;opacity:0}.react-grid-item:hover>.react-resizable-handle{opacity:1}.react-grid-item>.react-resizable-handle:after{content:"";position:absolute;right:3px;bottom:3px;width:5px;height:5px;border-right:2px solid rgba(0,0,0,.4);border-bottom:2px solid rgba(0,0,0,.4)}.react-resizable-hide>.react-resizable-handle{display:none}.react-grid-item>.react-resizable-handle.react-resizable-handle-sw{bottom:0;left:0;cursor:sw-resize;transform:rotate(90deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-se{bottom:0;right:0;cursor:se-resize}.react-grid-item>.react-resizable-handle.react-resizable-handle-nw{top:0;left:0;cursor:nw-resize;transform:rotate(180deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-ne{top:0;right:0;cursor:ne-resize;transform:rotate(270deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-w,.react-grid-item>.react-resizable-handle.react-resizable-handle-e{top:50%;margin-top:-10px;cursor:ew-resize}.react-grid-item>.react-resizable-handle.react-resizable-handle-w{left:0;transform:rotate(135deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-e{right:0;transform:rotate(315deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-n,.react-grid-item>.react-resizable-handle.react-resizable-handle-s{left:50%;margin-left:-10px;cursor:ns-resize}.react-grid-item>.react-resizable-handle.react-resizable-handle-n{top:0;transform:rotate(225deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-s{bottom:0;transform:rotate(45deg)}.react-resizable{position:relative}.react-resizable-handle{position:absolute;width:20px;height:20px;background-repeat:no-repeat;background-origin:content-box;box-sizing:border-box;background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2IDYiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmYwMCIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSI2cHgiIGhlaWdodD0iNnB4Ij48ZyBvcGFjaXR5PSIwLjMwMiI+PHBhdGggZD0iTSA2IDYgTCAwIDYgTCAwIDQuMiBMIDQgNC4yIEwgNC4yIDQuMiBMIDQuMiAwIEwgNiAwIEwgNiA2IEwgNiA2IFoiIGZpbGw9IiMwMDAwMDAiLz48L2c+PC9zdmc+);background-position:bottom right;padding:0 3px 3px 0}.react-resizable-handle-sw{bottom:0;left:0;cursor:sw-resize;transform:rotate(90deg)}.react-resizable-handle-se{bottom:0;right:0;cursor:se-resize}.react-resizable-handle-nw{top:0;left:0;cursor:nw-resize;transform:rotate(180deg)}.react-resizable-handle-ne{top:0;right:0;cursor:ne-resize;transform:rotate(270deg)}.react-resizable-handle-w,.react-resizable-handle-e{top:50%;margin-top:-10px;cursor:ew-resize}.react-resizable-handle-w{left:0;transform:rotate(135deg)}.react-resizable-handle-e{right:0;transform:rotate(315deg)}.react-resizable-handle-n,.react-resizable-handle-s{left:50%;margin-left:-10px;cursor:ns-resize}.react-resizable-handle-n{top:0;transform:rotate(225deg)}.react-resizable-handle-s{bottom:0;transform:rotate(45deg)}:root{--bg: #f3f1ea;--bg-panel: #ffffff;--bg-panel-2: #faf8f3;--bg-inset: #f8f6f0;--line: rgba(31, 41, 55, .12);--line-strong: rgba(31, 41, 55, .24);--text: #20283a;--muted: #5d6b80;--faint: #94a0b2;--amber: #c97f12;--amber-deep: #a86508;--amber-soft: rgba(201, 127, 18, .1);--teal: #1f8a7f;--red: #c2423b;--red-soft: rgba(194, 66, 59, .09);--shadow: 0 1px 2px rgba(31, 41, 55, .05), 0 4px 14px rgba(31, 41, 55, .06);--font-body: "Golos Text", sans-serif;--font-display: "Unbounded", sans-serif;--font-mono: "JetBrains Mono", monospace}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:15px;line-height:1.6;-webkit-font-smoothing:antialiased}::selection{background:#c97f1240}.backdrop{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;background:radial-gradient(1100px 460px at 50% -180px,rgba(201,127,18,.07),transparent 70%),radial-gradient(800px 540px at 90% 110%,rgba(31,138,127,.05),transparent 70%),repeating-linear-gradient(to right,transparent 0 119px,rgba(31,41,55,.025) 119px 120px),repeating-linear-gradient(to bottom,transparent 0 119px,rgba(31,41,55,.02) 119px 120px)}.backdrop:before{content:"";position:absolute;top:0;bottom:0;left:50%;width:1px;background:linear-gradient(to bottom,transparent,rgba(201,127,18,.25) 18%,rgba(201,127,18,.08) 55%,transparent)}.app{position:relative;z-index:1;height:100%;display:flex;flex-direction:column;width:100%;padding:0 28px}.topbar{display:flex;align-items:center;gap:26px;padding:14px 0 0;border-bottom:1px solid var(--line);animation:fade-down .6s cubic-bezier(.2,.7,.2,1) both}.brand{display:flex;align-items:center;gap:12px;padding-bottom:12px}.brand-mark{width:34px;height:34px;color:var(--amber);animation:spin-in 1.1s cubic-bezier(.2,.7,.2,1) both}.brand-text{display:flex;flex-direction:column;line-height:1.25}.brand-name{font-family:var(--font-display);font-weight:700;font-size:15px;letter-spacing:.14em;text-transform:uppercase}.brand-sub{font-family:var(--font-mono);font-size:10.5px;color:var(--muted);letter-spacing:.06em}.tabs{display:flex;align-items:flex-end;gap:2px;flex:1;align-self:stretch;overflow-x:auto;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tab{font-family:var(--font-mono);font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);background:transparent;border:none;border-bottom:2px solid transparent;padding:12px 14px;cursor:pointer;white-space:nowrap;transition:color .2s,border-color .2s,background .2s;max-width:220px;overflow:hidden;text-overflow:ellipsis}.tab:hover{color:var(--text);background:#1f29370a}.tab.active{color:var(--amber-deep);border-bottom-color:var(--amber)}.tab-new{font-size:15px;padding:10px 12px;color:var(--faint)}.tab-new:hover{color:var(--amber-deep)}.topbar-right{display:flex;align-items:center;gap:14px;padding-bottom:12px}.status{display:inline-flex;align-items:center;gap:7px;font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;color:var(--muted);text-transform:uppercase}.status i{width:7px;height:7px;border-radius:50%;background:var(--faint)}.status.ok i{background:var(--teal);box-shadow:0 0 6px #1f8a7fb3;animation:pulse 2.4s infinite}.status.down i{background:var(--red);box-shadow:0 0 6px #c2423bb3}button.ghost{font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);background:var(--bg-panel);border:1px solid var(--line-strong);border-radius:3px;padding:7px 13px;cursor:pointer;transition:color .2s,border-color .2s,background .2s}button.ghost:hover{color:var(--amber-deep);border-color:var(--amber);background:var(--amber-soft)}button.ghost.danger:hover{color:var(--red);border-color:var(--red);background:var(--red-soft)}.feed{flex:1;overflow-y:auto;padding:26px 0 12px;scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent}.feed::-webkit-scrollbar{width:8px}.feed::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:4px}.hero{padding:8vh 0 0;max-width:680px;margin:0 auto}.hero-kicker{font-family:var(--font-mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--amber-deep);margin:0 0 18px;animation:fade-up .6s .1s cubic-bezier(.2,.7,.2,1) both}.hero h1{font-family:var(--font-display);font-weight:700;font-size:clamp(34px,5vw,54px);line-height:1.08;letter-spacing:.01em;margin:0 0 20px;animation:fade-up .7s .22s cubic-bezier(.2,.7,.2,1) both}.hero-sub{color:var(--muted);font-size:16px;max-width:540px;margin:0 0 34px;animation:fade-up .7s .34s cubic-bezier(.2,.7,.2,1) both}.examples{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:10px;animation:fade-up .7s .46s cubic-bezier(.2,.7,.2,1) both}.chip{font-family:var(--font-body);font-size:13.5px;text-align:left;color:var(--text);background:var(--bg-panel);border:1px solid var(--line);border-left:2px solid var(--amber);border-radius:3px;padding:12px 14px;cursor:pointer;box-shadow:var(--shadow);transition:border-color .2s,background .2s,transform .2s}.chip:hover{background:var(--bg-panel-2);border-color:var(--line-strong);border-left-color:var(--amber);transform:translate(3px)}.chip:disabled{opacity:.5;cursor:default;transform:none}.thread{display:flex;flex-direction:column;gap:22px;padding-bottom:12px;max-width:1400px;margin:0 auto;width:100%}.msg{animation:fade-up .45s cubic-bezier(.2,.7,.2,1) both}.msg.user{display:flex;justify-content:flex-end}.msg.user .bubble{max-width:64%;background:var(--amber-soft);border:1px solid rgba(201,127,18,.35);border-radius:10px 10px 2px;padding:11px 16px;white-space:pre-wrap}.msg.assistant{background:var(--bg-panel);border:1px solid var(--line);border-left:2px solid var(--amber);border-radius:3px 10px 10px 3px;padding:14px 20px 14px 18px;box-shadow:var(--shadow)}.msg.assistant.failed{border-left-color:var(--red)}.msg.assistant.failed .mark{color:var(--red)}.msg-label{display:flex;align-items:center;gap:10px;margin-bottom:6px}.mark{font-family:var(--font-display);font-weight:500;font-size:9.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--amber-deep)}.badge-nodata{font-family:var(--font-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--red);background:var(--red-soft);border:1px solid rgba(194,66,59,.35);border-radius:2px;padding:2px 8px}.md{font-size:15px}.md>:first-child{margin-top:2px}.md>:last-child{margin-bottom:2px}.md p{margin:10px 0}.md strong{color:#0e1422;font-weight:600}.md em{color:var(--muted)}.md a{color:var(--teal)}.md h1,.md h2,.md h3,.md h4{font-family:var(--font-body);font-weight:600;letter-spacing:.01em;margin:18px 0 8px;line-height:1.3}.md h1{font-size:19px}.md h2{font-size:17px}.md h3{font-size:15.5px}.md ul,.md ol{margin:10px 0;padding-left:22px}.md li{margin:4px 0}.md li::marker{color:var(--amber)}.md blockquote{margin:12px 0;padding:6px 14px;border-left:2px solid var(--line-strong);color:var(--muted)}.md hr{border:none;border-top:1px solid var(--line);margin:16px 0}.md code{font-family:var(--font-mono);font-size:12.5px;background:var(--bg-inset);border:1px solid var(--line);border-radius:3px;padding:1px 5px}.md pre{background:var(--bg-inset);border:1px solid var(--line);border-radius:4px;padding:12px 14px;overflow-x:auto;margin:12px 0}.md pre code{background:none;border:none;padding:0;font-size:12.5px}.md table{width:100%;border-collapse:collapse;margin:14px 0;font-variant-numeric:tabular-nums;border:1px solid var(--line);background:var(--bg-panel)}.md thead th{font-family:var(--font-mono);font-size:10.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);text-align:left;background:var(--bg-panel-2);border-bottom:1px solid var(--line-strong);padding:9px 12px}.md tbody td{font-family:var(--font-mono);font-size:13px;padding:8px 12px;border-bottom:1px solid var(--line)}.md tbody tr:last-child td{border-bottom:none}.md tbody tr:hover td{background:var(--amber-soft)}.md th:not(:first-child),.md td:not(:first-child){text-align:right}.md td:first-child{font-family:var(--font-body);color:var(--text)}.chart{margin:14px 0 6px}.chart-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.chart-title{font-family:var(--font-mono);font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding-left:10px;border-left:2px solid var(--amber)}.chart-box{background:var(--bg-panel-2);border:1px solid var(--line);border-radius:4px;padding:14px 10px 8px}.chart-axes{display:flex;justify-content:space-between;font-family:var(--font-mono);font-size:10px;letter-spacing:.05em;color:var(--faint);margin-top:6px;padding:0 4px}.chart-fill{width:100%;height:100%}.addmenu{position:relative}.chart-add{width:26px;height:26px;display:grid;place-items:center;font-size:16px;line-height:1;color:var(--muted);background:var(--bg-panel);border:1px solid var(--line-strong);border-radius:4px;cursor:pointer;transition:color .2s,border-color .2s,background .2s}.chart-add:hover{color:var(--amber-deep);border-color:var(--amber);background:var(--amber-soft)}.chart-add.done{color:var(--teal);border-color:var(--teal)}.addmenu-pop{position:absolute;top:30px;right:0;z-index:30;min-width:220px;background:var(--bg-panel);border:1px solid var(--line-strong);border-radius:6px;box-shadow:0 8px 28px #1f29372e;padding:6px;animation:fade-up .18s ease both}.addmenu-head{font-family:var(--font-mono);font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--faint);padding:5px 9px 7px}.addmenu-pop button{display:flex;justify-content:space-between;align-items:center;gap:12px;width:100%;text-align:left;font-family:var(--font-body);font-size:13.5px;color:var(--text);background:transparent;border:none;border-radius:4px;padding:8px 9px;cursor:pointer}.addmenu-pop button:hover{background:var(--amber-soft)}.addmenu-n{font-family:var(--font-mono);font-size:10.5px;color:var(--faint)}.addmenu-sep{border-top:1px solid var(--line);margin:5px 4px}.addmenu-new{color:var(--amber-deep)!important;font-weight:500}.trace{margin-top:12px;border-top:1px dashed var(--line);padding-top:8px}.trace summary{font-family:var(--font-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--faint);cursor:pointer;-webkit-user-select:none;user-select:none;list-style:none;display:inline-flex;align-items:center;gap:8px;transition:color .2s}.trace summary::-webkit-details-marker{display:none}.trace summary:before{content:"▸";color:var(--amber);transition:transform .2s}.trace[open] summary:before{transform:rotate(90deg)}.trace summary:hover{color:var(--teal)}.trace ol{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-direction:column;gap:10px}.step{border:1px solid var(--line);border-radius:4px;background:var(--bg-inset);padding:9px 12px}.step.error{border-color:#c2423b66}.step-head{display:flex;align-items:center;gap:10px;font-family:var(--font-mono);font-size:11.5px}.step-tool{color:var(--teal);font-weight:600}.step-rows{color:var(--faint)}.step-err{color:var(--red);font-size:10.5px}.step-args,.step-sql{font-family:var(--font-mono);font-size:11px;line-height:1.55;color:var(--muted);background:none;margin:7px 0 0;padding:0;white-space:pre-wrap;word-break:break-word}.step-sql{color:#44597a;border-top:1px dashed var(--line);padding-top:7px}.thinking-row{display:flex;align-items:center;gap:12px;padding:2px 0 4px}.scanline{width:64px;height:3px;border-radius:2px;background:linear-gradient(90deg,transparent,var(--amber),transparent);background-size:50% 100%;background-repeat:no-repeat;background-color:#1f29371a;animation:scan 1.2s ease-in-out infinite alternate}.thinking-text{font-family:var(--font-mono);font-size:12px;color:var(--muted);animation:blink-soft 2.2s ease-in-out infinite}.composer{padding:10px 0 16px;border-top:1px solid var(--line);animation:fade-up .6s .3s cubic-bezier(.2,.7,.2,1) both}.composer form{display:flex;align-items:flex-end;gap:10px;max-width:1400px;margin:0 auto;background:var(--bg-panel);border:1px solid var(--line-strong);border-radius:6px;padding:10px 10px 10px 16px;box-shadow:var(--shadow);transition:border-color .2s,box-shadow .2s}.composer form:focus-within{border-color:#c97f1299;box-shadow:0 0 0 3px #c97f121f}.composer textarea{flex:1;resize:none;border:none;outline:none;background:transparent;color:var(--text);font-family:var(--font-body);font-size:15px;line-height:1.5;max-height:200px;padding:4px 0}.composer textarea::placeholder{color:var(--faint)}.send{flex-shrink:0;width:38px;height:38px;display:grid;place-items:center;border:none;border-radius:5px;background:var(--amber);color:#fff;cursor:pointer;transition:background .2s,transform .15s,opacity .2s}.send:hover:not(:disabled){background:var(--amber-deep);transform:translateY(-1px)}.send:disabled{opacity:.35;cursor:default}.composer-hint{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.04em;color:var(--faint);text-align:center;margin:9px 0 0}.dash-feed{padding-top:16px}.dash-toolbar{display:flex;align-items:center;gap:16px;margin-bottom:14px}.dash-name{font-family:var(--font-display);font-weight:500;font-size:15px;letter-spacing:.04em;color:var(--text);background:transparent;border:1px solid transparent;border-radius:4px;padding:6px 10px;min-width:120px;max-width:380px;transition:border-color .2s,background .2s}.dash-name:hover{border-color:var(--line)}.dash-name:focus{outline:none;border-color:var(--amber);background:var(--bg-panel)}.dash-meta{flex:1;font-family:var(--font-mono);font-size:10.5px;letter-spacing:.05em;color:var(--faint)}.dash-empty{margin-top:10vh;text-align:center;color:var(--muted)}.dash-empty p:first-child{font-family:var(--font-display);font-size:18px;color:var(--text)}.panel{display:flex;flex-direction:column;background:var(--bg-panel);border:1px solid var(--line);border-radius:6px;box-shadow:var(--shadow);overflow:hidden}.panel-head{display:flex;align-items:center;gap:8px;padding:8px 10px;border-bottom:1px solid var(--line);background:var(--bg-panel-2);cursor:grab;-webkit-user-select:none;user-select:none}.panel-head:active{cursor:grabbing}.panel-grip{color:var(--faint);font-size:10px;letter-spacing:-1px}.panel-title{flex:1;font-family:var(--font-mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.panel-x{border:none;background:transparent;color:var(--faint);font-size:12px;cursor:pointer;border-radius:3px;padding:2px 6px;transition:color .15s,background .15s}.panel-x:hover{color:var(--red);background:var(--red-soft)}.panel-body{flex:1;min-height:0;padding:8px 6px 4px}.react-grid-item.react-grid-placeholder{background:var(--amber-soft)!important;border:1px dashed var(--amber);border-radius:6px;opacity:1}.react-grid-item>.react-resizable-handle:after{border-right:2px solid var(--faint);border-bottom:2px solid var(--faint)}.react-grid-item.resizing,.react-grid-item.react-draggable-dragging{box-shadow:0 10px 32px #1f293733;z-index:10}@keyframes fade-up{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@keyframes fade-down{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:none}}@keyframes spin-in{0%{opacity:0;transform:rotate(-120deg) scale(.6)}to{opacity:1;transform:none}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.45}}@keyframes blink-soft{0%,to{opacity:1}50%{opacity:.55}}@keyframes scan{0%{background-position:-60px 0}to{background-position:60px 0}}@media (max-width: 760px){.app{padding:0 12px}.brand-sub{display:none}.topbar{flex-wrap:wrap;gap:10px}.hero{padding-top:4vh}.msg.user .bubble{max-width:86%}}
