:root{--color-forest: #1C5F4A;--color-dusk: #0A3B55;--color-black: #000000;--color-white: #FFFFFF;--color-gray-dark: #272625;--color-gray-mid: #5B5A56;--color-gray-light: #C2C1BF;--color-gray-lighter: #E6E6E1;--color-green-900: #0D3326;--color-green-700: #1C5F4A;--color-green-500: #2E8C6E;--color-green-300: #7BBFAA;--color-green-100: #D4EDE6;--color-blue-900: #051F2E;--color-blue-700: #0A3B55;--color-blue-500: #155F88;--color-blue-300: #6AAABF;--color-blue-100: #D0E8F0;--color-red-700: #9B1B1B;--color-red-500: #C93333;--color-red-100: #F5D5D5;--color-voi-primary: #E65D5D;--color-voi-secondary: #7AA0BA;--color-voi-tertiary: #4FB0B0;--color-voi-success: #74C365;--color-voi-temp: #F5A623;--color-voi-bg: #1A1C1E;--color-voi-grid: rgba(255, 255, 255, .07);--color-voi-axis: #9a9a9a;--font-headline: "Gelasio", Georgia, serif;--font-body: "Inter", Arial, sans-serif}*{box-sizing:border-box;margin:0;padding:0}body{color:var(--color-gray-dark);font-family:var(--font-body);font-size:14px;line-height:1.6}.app-layout{display:flex;height:100dvh}.sidebar-handle{cursor:col-resize;display:flex;flex-direction:column;flex-shrink:0;background:#111;width:0px;z-index:20;overflow:visible}.sidebar-handle .handle{width:10px;height:100%;position:absolute}.sidebar-handle:after,.sidebar-handle:before{content:"";transform:translate(-50%);position:absolute;height:100%}.sidebar-handle:after{width:5px}.sidebar-handle:before{width:2px;background:var(--color-green-500);opacity:0}.sidebar-handle:hover:before{opacity:1}.left-handle{align-items:flex-end}.right-handle{align-items:flex-start;transform:translate(50%)}.sidebar-chevron{position:relative;background:none;border:none;color:#c8c8c873;cursor:pointer;font-size:25px;line-height:1;padding:0;transition:color .15s;top:5px}.left-handle .sidebar-chevron{left:-10px}.right-handle .sidebar-chevron{left:10px}.sidebar-chevron:hover{color:#ffffffe6}.sidebar{background:#111;color:var(--color-white);display:flex;flex-direction:column;height:100%;overflow:hidden}.sidebar-top{flex-shrink:0;padding:16px 12px 12px}.sidebar-logo{align-items:center;display:flex;gap:8px;margin-bottom:14px}.sidebar-title{font-family:var(--font-headline);font-size:16px;font-weight:500;text-transform:uppercase}.new-chat-btn{background:transparent;border:1px solid rgba(255,255,255,.25);border-radius:8px;color:var(--color-white);cursor:pointer;font-family:var(--font-body);font-size:13px;padding:7px 12px;width:100%}.new-chat-btn:hover{background:#ffffff14}.sidebar-recents{flex:1;overflow-y:auto;padding:8px}.session-item{border-radius:6px;color:#ffffffb3;cursor:pointer;font-size:13px;overflow:hidden;padding:7px 10px;text-overflow:ellipsis;white-space:nowrap}.session-item:hover{background:#ffffff14;color:var(--color-white)}.session-item.active{background:#ffffff1f;color:var(--color-white)}.sidebar-bottom{border-top:1px solid rgba(255,255,255,.1);flex-shrink:0;padding:12px}.account-row{align-items:center;display:flex;gap:10px}.account-avatar{align-items:center;background:var(--color-forest);border-radius:50%;color:var(--color-white);display:flex;font-size:13px;font-weight:600;height:30px;justify-content:center;width:30px}.main-area{flex:1;overflow:hidden;position:relative}.chat-window{flex:1;overflow-y:auto;padding:20px 16px}.chat-messages{display:flex;flex-direction:column;gap:12px;margin:0 auto;max-width:860px}.chat-input-bar{background:transparent;bottom:0;flex-shrink:0;padding:12px 16px 16px;position:relative}.bubble-row{display:flex}.bubble-row.user{justify-content:flex-end}.bubble-row.assistant{justify-content:flex-start}.bubble{border-radius:18px;padding:10px 14px;position:relative;border:1px solid var(--color-gray-lighter)}.bubble-user{background:var(--color-gray-lighter);border-radius:18px;color:var(--color-gray-dark);font-size:15px;margin-left:64px;max-width:60%}.bubble-assistant{background:var(--color-white);border-radius:18px;color:var(--color-gray-dark);margin-right:40px;max-width:88%;min-width:200px}.collapsible{margin-bottom:8px}.collapsible summary{color:var(--color-gray-mid);cursor:pointer;font-size:11px;font-weight:500;letter-spacing:.5px;list-style:none;padding:4px 0;text-transform:uppercase;-webkit-user-select:none;user-select:none}.collapsible summary::-webkit-details-marker{display:none}.collapsible summary:before{content:"▶  ";font-size:8px}.collapsible[open] summary:before{content:"▼  "}.collapsible-body{margin-top:6px}.sql-block{background:#1e1e1e;border-radius:6px;font-family:SF Mono,Cascadia Code,monospace;font-size:12px;overflow-x:auto;padding:10px 12px;white-space:pre-wrap;word-break:break-word}.sql-block code{color:#d4d4d4}.explanation{color:var(--color-gray-mid);font-size:12px;margin-top:6px}.table-wrap{margin-top:10px;overflow-x:auto}.table-note{color:var(--color-gray-mid);font-size:11px;margin-top:4px}.result-table{border-collapse:collapse;font-size:12px;width:100%}.result-table th{background:var(--color-green-100);border:1px solid var(--color-gray-lighter);color:var(--color-green-900);font-weight:600;padding:6px 10px;text-align:left;white-space:nowrap}.result-table td{border:1px solid var(--color-gray-lighter);padding:6px 10px;white-space:nowrap}.result-table tr:hover td{background:var(--color-green-100)}.suggestion-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.suggestion-chip{background:transparent;border:1px solid var(--color-gray-light);border-radius:16px;color:var(--color-gray-dark);cursor:pointer;font-family:var(--font-body);font-size:13px;padding:5px 12px}.suggestion-chip:hover{background:var(--color-gray-lighter);border-color:var(--color-gray-mid)}.chart-container{border-radius:6px;margin-top:10px;overflow:hidden;overflow-x:auto}.chart-container svg{display:block;font-family:var(--font-body)}.chart-container svg text{fill:var(--color-voi-axis)}.md-body{color:var(--color-gray-mid);font-size:13px;line-height:1.6;margin-top:12px}.md-body p{margin:0 0 6px}.md-body p:last-child{margin-bottom:0}.md-body strong{color:var(--color-gray-dark);font-weight:600}.md-body ul,.md-body ol{margin:4px 0 6px 18px;padding:0}.md-body li{margin-bottom:2px}.md-body code{background:var(--color-bg-code, #1e1e1e40);border-radius:3px;font-size:12px;padding:1px 4px}.error-msg{color:var(--color-red-500);font-size:13px}.streaming-text{color:var(--color-gray-mid);font-family:inherit;font-size:13px;margin:0;opacity:.7;overflow-wrap:break-word;white-space:pre-wrap}.streaming-text-done{opacity:.5}.loading-dots{color:var(--color-gray-mid);font-size:13px;padding:4px 0}.loading-dots:after{animation:dots 1.5s steps(3,end) infinite;content:""}@keyframes dots{0%{content:""}33%{content:"."}66%{content:".."}to{content:"..."}}.prompt-box{background:#ffffffd9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--color-gray-light);border-radius:16px;margin:0 auto;max-width:860px;padding:12px 14px 10px}.prompt-textarea{border:none;color:var(--color-gray-dark);font-family:var(--font-body);font-size:14px;line-height:1.5;min-height:44px;outline:none;overflow:hidden;resize:none;width:100%}.prompt-textarea::placeholder{color:var(--color-gray-light)}.prompt-textarea:disabled{opacity:.6}.prompt-footer{align-items:center;display:flex;justify-content:space-between;padding-top:6px}.backend-toggle{display:flex;gap:12px}.backend-opt{align-items:center;color:var(--color-gray-mid);cursor:pointer;display:flex;font-size:12px;gap:4px}.backend-opt input{accent-color:var(--color-forest)}.backend-opt.selected{color:var(--color-gray-dark);font-weight:500}.send-btn{align-items:center;background:var(--color-forest);border:none;border-radius:50%;color:var(--color-white);cursor:pointer;display:flex;font-size:16px;height:32px;justify-content:center;width:32px;align-self:flex-end}.send-btn:hover{background:var(--color-green-500)}.send-btn:disabled{cursor:not-allowed;opacity:.4}.eval-bar{border-top:1px solid var(--color-gray-lighter);display:flex;flex-direction:column;margin-top:10px;padding-top:8px}.eval-buttons{align-items:center;display:flex}.eval-spacer{flex:1}.eval-btn{background:transparent;border:1px solid transparent;border-radius:6px;cursor:pointer;font-size:16px;line-height:1;opacity:.45;padding:3px 6px;transition:opacity .15s,background .15s}.eval-btn:hover{background:var(--color-gray-lighter);opacity:.9}.eval-btn.active{background:var(--color-green-100);border-color:var(--color-green-300);opacity:1}.eval-comment-box{display:flex;flex-direction:column;gap:6px;max-height:0;overflow:hidden;transition:max-height .25s ease,padding-top .25s ease}.eval-comment-box.open{max-height:160px;padding-top:8px}.eval-comment-input{background:var(--color-gray-lighter);border:1px solid var(--color-gray-light);border-radius:6px;font-family:var(--font-body);font-size:13px;padding:7px 10px;resize:none;width:100%}.eval-comment-submit{align-self:flex-end;background:var(--color-green-700);border:none;border-radius:6px;color:var(--color-white);cursor:pointer;font-size:12px;padding:5px 12px}.eval-comment-submit:hover{background:var(--color-green-500)}.eval-mode-banner{align-items:center;background:var(--color-blue-900);border-bottom:1px solid rgba(255,255,255,.1);color:var(--color-white);display:flex;font-size:13px;gap:12px;padding:8px 16px}.eval-mode-back{background:transparent;border:none;color:#ffffffb3;cursor:pointer;font-size:13px}.eval-mode-back:hover{color:var(--color-white)}.eval-mode-user{font-weight:600}.eval-mode-rating{color:#fff9;font-size:12px}.eval-mode-comment{color:#ffffff80;font-size:12px;font-style:italic}.bubble-row.user.with-label{align-items:flex-end;flex-direction:column}.eval-user-label{color:var(--color-gray-mid);font-size:11px;margin-bottom:2px}.chat-section,.skill-panel,.eval-panel{display:flex;flex-direction:column;height:100%;overflow:hidden;position:absolute;transition:transform .35s cubic-bezier(.4,0,.2,1);width:100%}.chat-section{transform:translate(0)}.main-area.skill-open .chat-section,.main-area.eval-open .chat-section{transform:translate(-100%)}.skill-panel{transform:translate(100%)}.main-area.skill-open .skill-panel{transform:translate(0)}.eval-panel{transform:translate(100%)}.main-area.eval-open .eval-panel{transform:translate(0)}.eval-panel-content{display:flex;flex-direction:column;height:100%;overflow:hidden}.skills-sidebar{background:#111;border-left:1px solid rgba(255,255,255,.08);color:var(--color-white);display:flex;flex-direction:column;height:100%;overflow:hidden;width:100%}.skills-sidebar-tabs{border-bottom:1px solid rgba(255,255,255,.08);display:flex;gap:2px;padding:8px 20px 0}.sidebar-tab{background:transparent;border:none;border-bottom:2px solid transparent;color:#ffffff73;cursor:pointer;flex:1;font-size:11px;font-weight:600;letter-spacing:.6px;margin-bottom:-1px;padding:6px 4px;text-transform:uppercase;transition:color .15s}.sidebar-tab:hover{color:#fffc}.sidebar-tab.active{border-bottom-color:var(--color-green-500);color:var(--color-white)}.skills-list{flex:1;overflow-y:auto;padding:4px 8px}.skill-item{border-radius:6px;color:#ffffffa6;cursor:pointer;font-size:13px;overflow:hidden;padding:7px 10px;text-overflow:ellipsis;white-space:nowrap}.skill-item:hover{background:#ffffff14;color:var(--color-white)}.skill-item.active{background:#ffffff1f;color:var(--color-white)}.eval-item{white-space:normal}.eval-item-title{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eval-item-meta{color:#fff6;font-size:10px;margin-top:2px}.eval-item-ts{color:#ffffff40;font-size:10px;font-variant-numeric:tabular-nums;margin-top:1px}.eval-empty{cursor:default;opacity:.4}.skill-editor{display:flex;flex-direction:column;height:100%}.skill-editor-header{align-items:center;background:#252526;border-bottom:1px solid #3c3c3c;display:flex;flex-shrink:0;gap:8px;padding:10px 12px}.skill-editor-title{color:#9cdcfe;flex:1;font-size:13px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.skill-save-btn{background:var(--color-forest);border:none;border-radius:6px;color:var(--color-white);cursor:pointer;font-family:var(--font-body);font-size:12px;padding:4px 10px}.skill-save-btn.saved{background:var(--color-green-500)}.skill-close-btn{background:transparent;border:none;color:#858585;cursor:pointer;font-size:14px;line-height:1;padding:2px 4px}.skill-close-btn:hover{color:#fff}.editor-wrap{background:#1e1e1e;flex:1;font-family:SF Mono,Cascadia Code,monospace;font-size:12.5px;line-height:1.65;overflow:hidden;position:relative;-moz-tab-size:4;tab-size:4}.editor-highlight{bottom:0;color:#d4d4d4;left:0;overflow:auto;padding:12px 14px;pointer-events:none;position:absolute;right:0;top:0;white-space:pre-wrap;word-break:break-word}.editor-input{background:transparent;border:none;bottom:0;caret-color:#aeafad;color:transparent;font-family:inherit;font-size:inherit;left:0;line-height:inherit;outline:none;padding:12px 14px;position:absolute;resize:none;right:0;-moz-tab-size:4;tab-size:4;top:0;width:100%}.hl-h1{color:#4ec9b0;font-weight:700}.hl-h2{color:#9cdcfe;font-weight:600}.hl-h3{color:#9cdcfe;font-weight:500}.hl-fence{color:#569cd6}.hl-code{color:#ce9178}.hl-list{color:#c586c0}.hl-bold{color:#dcdcaa;font-weight:600}.sql-kw{color:#569cd6;font-weight:600}.sql-str{color:#ce9178}.sql-num{color:#b5cea8}.sql-comment{color:#6a9955;font-style:italic}.sql-id{color:#9cdcfe}*{scrollbar-color:rgba(128,128,128,.4) transparent;scrollbar-width:thin}::-webkit-scrollbar{height:4px;width:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#80808066;border-radius:2px}.login-dialog{background:#1a1c1e;border:1px solid rgba(255,255,255,.1);border-radius:16px;color:var(--color-white);left:50%;padding:32px;position:fixed;top:50%;transform:translate(-50%,-50%);width:320px}.login-dialog::backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000000a6}.login-header{align-items:center;display:flex;gap:10px;justify-content:center;margin-bottom:28px}.login-title{font-family:var(--font-headline);font-size:18px;font-weight:500;text-transform:uppercase}.login-form{display:flex;flex-direction:column;gap:12px}.login-input{background:#ffffff12;border:1px solid rgba(255,255,255,.15);border-radius:8px;color:var(--color-white);font-family:var(--font-body);font-size:14px;outline:none;padding:10px 12px;width:100%}.login-input:focus{border-color:var(--color-green-500)}.login-input::placeholder{color:#ffffff4d}.login-error{color:var(--color-red-500);font-size:13px}.login-btn{background:var(--color-forest);border:none;border-radius:8px;color:var(--color-white);cursor:pointer;font-family:var(--font-body);font-size:14px;margin-top:4px;padding:10px;width:100%}.login-btn:hover{background:var(--color-green-500)}.login-btn:disabled{cursor:not-allowed;opacity:.5}
