: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}.chat-container{display:flex;flex-direction:column;height:100%;max-width:860px;margin:0 auto;background:var(--bg)}.message-list{flex:1 1 auto;overflow-y:auto;padding:20px 16px;display:flex;flex-direction:column;gap:14px}.message-list:empty:before,.message-list:has(>div:only-child):before{content:"Ask anything about your Snowflake data.";margin:auto;color:var(--text-subtle);font-size:15px}.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);white-space:pre-wrap;word-wrap:break-word}.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}.citations{display:flex;flex-wrap:wrap;gap:6px}.citation-chip{font-size:12px;padding:2px 8px;border-radius:999px;background:var(--surface-alt);border:1px solid var(--border)}.citation-chip a{color:var(--link);text-decoration:none}.citation-chip a:hover{text-decoration:underline}.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);padding:12px;overflow:hidden}.chart-artifact{width:100%}.table-artifact{border:1px solid var(--border);border-radius:var(--radius);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}.message-input{flex:0 0 auto;display:flex;align-items:flex-end;gap:8px;padding:12px 16px;border-top:1px solid var(--border);background:var(--surface)}.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}
