:root{--bg: #f5f5f5;--surface: #ffffff;--surface-alt: #f0f0f0;--border: #e0e0e0;--text: #242424;--text-subtle: #616161;--accent: #5b5fc7;--accent-hover: #4f52b2;--accent-contrast: #ffffff;--user-bubble: #e8ebfa;--user-bubble-text: #242424;--assistant-bubble: #ffffff;--error: #c4314b;--error-bg: #fdf3f4;--link: #5b5fc7;--radius: 8px;--radius-lg: 12px;--font: "Segoe UI", -apple-system, BlinkMacSystemFont, system-ui, Roboto, sans-serif}html[data-teams-theme=dark]{--bg: #1f1f1f;--surface: #2d2d2d;--surface-alt: #292929;--border: #3d3d3d;--text: #ffffff;--text-subtle: #adadad;--accent: #7f85f5;--accent-hover: #9299f7;--accent-contrast: #1f1f1f;--user-bubble: #3b3a6b;--user-bubble-text: #ffffff;--assistant-bubble: #2d2d2d;--error: #f1707f;--error-bg: #3a2427;--link: #a6a7f0}html[data-teams-theme=contrast]{--bg: #000000;--surface: #000000;--surface-alt: #0f0f0f;--border: #ffffff;--text: #ffffff;--text-subtle: #ffff00;--accent: #ffff00;--accent-hover: #ffff01;--accent-contrast: #000000;--user-bubble: #000000;--user-bubble-text: #ffffff;--assistant-bubble: #000000;--error: #ff9c00;--error-bg: #000000;--link: #ffff00}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font);font-size:14px;line-height:1.5;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased}.loading,.auth-error{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:8px;padding:24px;text-align:center;color:var(--text-subtle)}.auth-error p:first-child{color:var(--error);font-weight:600}.app-shell{display:flex;height:100%;overflow:hidden}.sidebar{flex:0 0 240px;display:flex;flex-direction:column;background:var(--surface);border-right:1px solid var(--border);overflow:hidden}.sidebar-top{flex:0 0 auto;display:flex;flex-direction:column;gap:6px;padding:12px 10px 8px;border-bottom:1px solid var(--border)}.new-chat-btn{width:100%;padding:7px 12px;background:var(--accent);color:var(--accent-contrast);border:none;border-radius:var(--radius);font-size:13px;font-weight:600;cursor:pointer;transition:background .15s}.new-chat-btn:hover{background:var(--accent-hover)}.agent-picker{width:100%}.agent-select{width:100%;padding:6px 10px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);font-size:13px;color:var(--text);font-family:inherit;cursor:pointer}.agent-select:focus{outline:none;border-color:var(--accent)}.history-list{flex:1 1 auto;overflow-y:auto;padding:8px 0}.history-header{padding:4px 12px 6px}.history-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-subtle)}.history-empty{padding:12px;font-size:13px;color:var(--text-subtle);text-align:center}.history-item{display:flex;align-items:center;gap:4px;padding:0 6px 0 8px;border-radius:0;min-height:34px}.history-item:hover,.history-item--active{background:var(--surface-alt)}.history-item-title{flex:1;background:none;border:none;font-size:13px;color:var(--text);cursor:pointer;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:6px 0;font-family:inherit}.history-item--active .history-item-title{font-weight:600}.history-item-actions{display:none;gap:2px}.history-item:hover .history-item-actions{display:flex}.history-action-btn{background:none;border:none;cursor:pointer;padding:3px 5px;border-radius:4px;font-size:13px;line-height:1}.history-action-btn:hover{background:var(--border)}.history-action-btn--danger:hover{background:var(--error-bg)}.history-rename-input{flex:1;font-size:13px;padding:4px 6px;border:1px solid var(--accent);border-radius:4px;background:var(--surface);color:var(--text);font-family:inherit;outline:none}.chat-container{display:flex;flex-direction:column;flex:1 1 0;min-width:0;background:var(--bg)}.input-row{flex:0 0 auto;display:flex;flex-direction:column;gap:0}.message-list{flex:1 1 auto;overflow-y:auto;padding:20px 16px;display:flex;flex-direction:column;gap:14px}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;gap:16px;padding:40px 24px;text-align:center}.empty-state-hint{color:var(--text-subtle);font-size:15px;margin:0}.starter-chips{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;max-width:640px}.starter-chip{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:8px 14px;font-size:13px;color:var(--text);cursor:pointer;text-align:left;transition:border-color .15s,background .15s}.starter-chip:hover{border-color:var(--accent);background:var(--surface-alt)}.turn{display:flex;flex-direction:column;gap:8px;max-width:85%}.turn-user{align-self:flex-end;align-items:flex-end}.turn-assistant{align-self:flex-start;align-items:flex-start}.turn-text{padding:10px 14px;border-radius:var(--radius-lg);word-wrap:break-word}.turn-user .turn-text{white-space:pre-wrap}.turn-user .turn-text{background:var(--user-bubble);color:var(--user-bubble-text);border-bottom-right-radius:4px}.turn-assistant .turn-text{background:var(--assistant-bubble);border:1px solid var(--border);border-bottom-left-radius:4px}.cursor{display:inline-block;animation:blink 1s step-start infinite;color:var(--accent)}@keyframes blink{50%{opacity:0}}.thinking-steps{width:100%;background:var(--surface-alt);border:1px solid var(--border);border-radius:var(--radius);padding:8px 12px}.steps-toggle{background:none;border:none;color:var(--text-subtle);font-size:12px;font-weight:600;cursor:pointer;padding:2px 0}.steps-list{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-direction:column;gap:4px}.step{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text-subtle)}.step-done{color:var(--text)}.step-error{color:var(--error)}.spinner{display:inline-block;animation:spin 1s linear infinite;color:var(--accent)}@keyframes spin{to{transform:rotate(360deg)}}.check{color:#13a10e}.error-icon{color:var(--error)}.thinking-text{margin-top:6px;font-size:12px;color:var(--text-subtle);font-style:italic}.md-message{width:100%}.md-message p{margin:0 0 8px}.md-message p:last-child{margin-bottom:0}.md-message ul,.md-message ol{margin:0 0 8px;padding-left:20px}.md-message li{margin:2px 0}.md-message h1,.md-message h2,.md-message h3{margin:10px 0 4px;font-weight:600}.md-message h1{font-size:17px}.md-message h2{font-size:15px}.md-message h3{font-size:14px}.md-message a{color:var(--link)}.md-message a:hover{text-decoration:underline}.md-message code{font-family:Cascadia Code,Consolas,monospace;font-size:12.5px;background:var(--surface-alt);border:1px solid var(--border);border-radius:4px;padding:1px 5px}.md-message pre{background:var(--surface-alt);border:1px solid var(--border);border-radius:var(--radius);padding:10px 14px;overflow-x:auto;margin:6px 0}.md-message pre code{background:none;border:none;padding:0;font-size:12px}.md-message table{border-collapse:collapse;width:100%;font-size:13px;margin:6px 0}.md-message th,.md-message td{border:1px solid var(--border);padding:6px 10px;text-align:left}.md-message th{background:var(--surface-alt);font-weight:600}.md-message blockquote{border-left:3px solid var(--accent);margin:6px 0;padding:4px 12px;color:var(--text-subtle)}.md-pre-wrap{position:relative}.copy-code-btn{position:absolute;top:6px;right:8px;font-size:11px;padding:2px 8px;background:var(--surface);border:1px solid var(--border);border-radius:4px;cursor:pointer;color:var(--text-subtle);opacity:0;transition:opacity .15s}.md-pre-wrap:hover .copy-code-btn{opacity:1}.citation-list{display:flex;flex-wrap:wrap;gap:6px}.citation-chip-wrap{position:relative;display:inline-block}.citation-chip{font-size:11px;font-weight:600;padding:1px 7px;border-radius:999px;background:var(--surface-alt);border:1px solid var(--border);cursor:pointer;color:var(--text-subtle);transition:border-color .15s;font-family:inherit}.citation-chip:hover,.citation-chip[aria-expanded=true]{border-color:var(--accent);color:var(--accent)}.citation-popover{position:absolute;bottom:calc(100% + 6px);left:0;z-index:100;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 4px 12px #0000001f;padding:10px 12px;min-width:200px;max-width:280px;display:flex;flex-direction:column;gap:6px}.citation-title{font-size:12px;font-weight:600;color:var(--text);word-break:break-word}.citation-link{font-size:12px;color:var(--link);text-decoration:none;white-space:nowrap}.citation-link:hover{text-decoration:underline}.stop-btn{align-self:center;display:flex;align-items:center;gap:6px;padding:6px 14px;margin:6px auto;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);font-size:13px;color:var(--text-subtle);cursor:pointer;transition:border-color .15s,color .15s}.stop-btn:hover{border-color:var(--error);color:var(--error)}.stop-icon{font-size:10px}.message-actions{display:flex;gap:4px;opacity:0;transition:opacity .15s}.turn:hover .message-actions{opacity:1}.action-btn{background:none;border:1px solid var(--border);border-radius:6px;padding:3px 8px;font-size:12px;color:var(--text-subtle);cursor:pointer;transition:border-color .15s,color .15s;font-family:inherit}.action-btn:hover{border-color:var(--accent);color:var(--accent)}.turn-error{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:var(--radius);background:var(--error-bg);color:var(--error);font-size:13px}.turn-error button{margin-left:auto;background:var(--error);color:#fff;border:none;border-radius:6px;padding:4px 10px;cursor:pointer}.artifact{width:100%;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.chart-artifact{width:100%;min-height:300px;padding:12px}.table-artifact{overflow:hidden}.table-toolbar{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:var(--surface-alt);border-bottom:1px solid var(--border)}.table-toolbar button{background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:4px 10px;font-size:12px;cursor:pointer;color:var(--text)}.row-count{font-size:12px;color:var(--text-subtle)}.table-header{display:flex;background:var(--surface-alt);border-bottom:1px solid var(--border);position:sticky;top:0}.th{flex:1;padding:8px 12px;font-weight:600;font-size:12px;cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;color:var(--text)}.th:hover{background:var(--border)}.table-body{position:relative;background:var(--surface)}.tr{display:flex;position:absolute;top:0;left:0;width:100%;border-bottom:1px solid var(--border)}.td{flex:1;padding:8px 12px;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.td--num,.th--num{text-align:right;font-variant-numeric:tabular-nums}.message-input{flex:0 0 auto;display:flex;flex-direction:column;gap:0;border-top:1px solid var(--border);background:var(--surface)}.message-input-row{display:flex;align-items:flex-end;gap:8px;padding:12px 16px}.message-input textarea{flex:1;resize:none;max-height:160px;min-height:40px;padding:10px 14px;border:1px solid var(--border);border-radius:var(--radius-lg);font-family:inherit;font-size:14px;line-height:1.4;color:var(--text);background:var(--bg);outline:none}.message-input textarea:focus{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.message-input textarea:disabled{opacity:.6;cursor:not-allowed}.message-input button{flex:0 0 auto;height:40px;padding:0 18px;border:none;border-radius:var(--radius-lg);background:var(--accent);color:var(--accent-contrast);font-weight:600;font-size:14px;cursor:pointer;transition:background .15s}.message-input button:hover:not(:disabled){background:var(--accent-hover)}.message-input button:disabled{opacity:.5;cursor:not-allowed}.tab-config{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:12px;padding:24px;text-align:center}.drawer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;z-index:199}.drawer{position:fixed;top:0;bottom:0;z-index:200;background:var(--surface);display:flex;flex-direction:column;overflow:hidden}.drawer--left{left:0;width:260px;border-right:1px solid var(--border);box-shadow:4px 0 16px #00000026}.drawer--right{right:0;width:320px;border-left:1px solid var(--border);box-shadow:-4px 0 16px #00000026}.right-panel{flex:0 0 320px;display:flex;flex-direction:column;background:var(--surface);border-left:1px solid var(--border);overflow:hidden}.right-panel-header{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-bottom:1px solid var(--border);background:var(--surface-alt);flex:0 0 auto}.right-panel-title{font-size:13px;font-weight:600;color:var(--text)}.right-panel-close{background:none;border:none;cursor:pointer;color:var(--text-subtle);font-size:14px;padding:2px 6px;border-radius:4px;line-height:1}.right-panel-close:hover{background:var(--border);color:var(--text)}.right-panel-body{flex:1 1 auto;overflow:auto;padding:12px}.panel-btns{display:flex;align-items:center;gap:6px;padding:6px 12px;border-bottom:1px solid var(--border);background:var(--surface);flex:0 0 auto}.panel-btn{background:var(--surface-alt);border:1px solid var(--border);border-radius:var(--radius);padding:4px 10px;font-size:12px;cursor:pointer;color:var(--text);font-family:inherit;transition:border-color .15s}.panel-btn:hover{border-color:var(--accent)}.panel-btn--right{margin-left:auto}.chat-controls{display:flex;gap:6px;padding:6px 16px 0;flex-wrap:wrap}.ctrl-btn{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:3px 10px;font-size:12px;color:var(--text-subtle);cursor:pointer;transition:border-color .15s,color .15s,background .15s;font-family:inherit}.ctrl-btn:hover{border-color:var(--accent);color:var(--accent)}.ctrl-btn--on{background:var(--accent);color:var(--accent-contrast);border-color:var(--accent)}.ctrl-btn--on:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.sql-block{width:100%;background:var(--surface-alt);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;margin:4px 0}.sql-toggle{background:none;border:none;width:100%;text-align:left;padding:6px 10px;font-size:12px;font-weight:600;color:var(--text-subtle);cursor:pointer;font-family:inherit}.sql-toggle:hover{color:var(--text)}.sql-content{margin:0;padding:8px 12px;font-family:Cascadia Code,Consolas,monospace;font-size:12px;border-top:1px solid var(--border);overflow-x:auto;color:var(--text)}.sql-content code{font-family:inherit}.suggestions{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.suggestion-chip{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:5px 12px;font-size:12px;color:var(--text);cursor:pointer;text-align:left;font-family:inherit;transition:border-color .15s,background .15s}.suggestion-chip:hover{border-color:var(--accent);background:var(--surface-alt)}.artifact--clickable{cursor:pointer;transition:box-shadow .15s}.artifact--clickable:hover{box-shadow:0 0 0 2px var(--accent)}.attachment-bar{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:6px 10px;border-bottom:1px solid var(--border);background:var(--surface-alt)}.attach-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:6px;border:1px solid var(--border);background:var(--surface);cursor:pointer;font-size:15px;transition:border-color .15s}.attach-btn:hover{border-color:var(--accent)}.attachment-chip{display:inline-flex;align-items:center;gap:4px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:3px 8px;font-size:12px;max-width:180px}.attachment-chip-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text)}.attachment-chip-remove{background:none;border:none;padding:0 0 0 2px;font-size:11px;color:var(--text-subtle);cursor:pointer;line-height:1}.attachment-chip-remove:hover{color:var(--error)}
