*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--brand: #0064ff;--brand-dark: #2341e0;--brand-light: #f1f1f3;--text: #0a0b24;--text-light: #ffffff;--text-muted: #787886;--surface: #ffffff;--surface-alt: #fafafa;--border: #ebebeb;--border-alt: rgb(10 11 36 / 24%);--bubble-user-bg: #0a0b24;--bubble-user-text: var(--text-light);--bubble-assistant-bg: var(--brand-light);--bubble-assistant-text: var(--text);--input-bg: var(--surface);--radius-s: 0rem;--radius-m: .25rem;--radius-l: .5rem;--radius-full: 50%;--font: "Geist", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono: "Geist Mono", ui-monospace, SFMono-Regular, Roboto Mono, monospace}html,body{height:100%}body{font-family:var(--font);font-size:.875rem;font-weight:400;line-height:1.25rem;color:var(--text);background:var(--surface);display:flex;flex-direction:column;height:100dvh;overflow:hidden;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}#chat-header{display:flex;padding:1.5rem;background:var(--surface);flex-shrink:0;z-index:999}#chat-header[hidden]{display:none}#intro-input{flex:1;font-family:var(--font);font-size:1.125rem;font-weight:400;line-height:1.5;color:var(--text);background:transparent;border:none;padding:0;resize:none;outline:none;overflow:hidden;caret-color:var(--brand)}#intro-input::placeholder{color:var(--text);opacity:1}#intro-controls{display:flex;justify-content:flex-end;align-items:center;gap:.5rem;padding:0 1.5rem 1.5rem;background:var(--surface);flex-shrink:0}#intro-controls[hidden]{display:none}#intro-attach-btn,#intro-send-btn{flex-shrink:0;width:2rem;height:2rem;border:none;border-radius:0;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;transition:background .2s,color .2s,opacity .2s}#intro-attach-btn{background:transparent;color:var(--text-muted)}#intro-attach-btn:hover{color:var(--text)}#intro-attach-btn svg{width:1.25rem;height:1.25rem}#intro-send-btn{background:var(--brand);color:#fff}#intro-send-btn:hover:not(:disabled){background:var(--brand-dark)}#intro-send-btn:disabled{opacity:.4;cursor:not-allowed}#intro-send-btn svg{width:1.25rem;height:1.25rem;fill:none}#messages{flex:1;height:100%;overflow-y:auto;padding:1.5rem;display:flex;flex-direction:column;gap:1rem;scroll-behavior:smooth}.message-row{display:flex;flex-direction:column}.message-row.user{align-items:flex-end}.message-row.assistant{align-items:flex-start}.bubble{max-width:90%;padding:.5rem .75rem;border-radius:var(--radius-l);word-break:break-word;white-space:pre-wrap}.message-row.user .bubble{background:var(--bubble-user-bg);color:var(--bubble-user-text);border-bottom-right-radius:0}.message-row.assistant .bubble{background:var(--bubble-assistant-bg);color:var(--bubble-assistant-text);border-bottom-left-radius:0;white-space:normal}.message.assistant p{margin:0 0 .5em}.message.assistant p:last-child{margin-bottom:0}.message.assistant ul,.message.assistant ol{margin:.25em 0 .5em 1.25em;padding:0}.message.assistant li{margin-bottom:.25em}.message.assistant strong{font-weight:600}.message.assistant a{color:inherit;text-decoration:underline;text-underline-offset:2px}.message.assistant a:hover{color:var(--brand)}.message.assistant code{font-family:var(--font-mono);background:#00000014;padding:2px 4px;border-radius:.25rem}.message.assistant h1,.message.assistant h2,.message.assistant h3{font-size:1em;font-weight:600;margin:.5em 0 .25em}.message-row.user .bubble.streaming:after{content:"▌";display:inline;animation:blink .9s step-start infinite;color:#fffc;font-size:.875rem;vertical-align:middle;margin-left:1px}.message.assistant.bubble.streaming .cursor:after{content:"▌";display:inline;animation:blink .9s step-start infinite;color:var(--brand);font-size:.875rem;vertical-align:middle;margin-left:1px}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.bubble.error{background:#fee2e2;color:#991b1b}#input-area{display:flex;align-items:flex-end;gap:8px;padding:0 1.5rem 1.5rem;background:var(--surface);flex-shrink:0}#input-area[hidden]{display:none}#user-input{flex:1;display:flex;align-items:end;justify-content:space-between;font-family:var(--font);color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:0;padding:.5rem .5rem .5rem 1rem;resize:none;outline:none;transition:border-color .2s;min-height:2.5rem}#user-input textarea{flex:1;font-family:var(--font);font-size:.875rem;line-height:1.25rem;color:var(--text);background:transparent;border:none;padding:0;resize:none;outline:none;overflow-y:auto;max-height:4.5em;min-height:1.75em}#user-input:focus-within{border-color:var(--border-alt)}#user-input textarea::placeholder{color:var(--text-muted)}#attach-btn,#clear-history-btn,#download-chat-btn{flex-shrink:0;width:2rem;height:2rem;border:none;border-radius:0;background:transparent;color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;margin-right:.25rem;transition:color .2s}#attach-btn:hover,#clear-history-btn:hover,#download-chat-btn:hover{color:var(--text)}#attach-btn svg,#clear-history-btn svg,#download-chat-btn svg{width:1.25rem;height:1.25rem}#send-btn{flex-shrink:0;width:2rem;height:2rem;border:none;border-radius:0;background:var(--brand);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s,opacity .2s}#send-btn:hover:not(:disabled){background:var(--brand-dark)}#send-btn:disabled{opacity:.4;cursor:not-allowed}#send-btn svg{width:1.25rem;height:1.25rem;fill:none}.clear-confirm-popover{position:absolute;bottom:calc(100% + .5rem);right:0;background:var(--surface);border:1px solid var(--brand);border-radius:var(--radius-m);padding:.625rem .75rem;box-shadow:0 4px 16px #0000001f;z-index:1100;display:flex;flex-direction:column;gap:.5rem;min-width:12rem;text-align:left;cursor:default}.clear-confirm-popover:after{content:"";position:absolute;top:100%;right:.5rem;width:.5rem;height:.5rem;background:var(--surface);border-right:1px solid var(--brand);border-bottom:1px solid var(--brand);transform:translateY(-50%) rotate(45deg)}.clear-confirm-message{color:var(--text);font-size:.8125rem;line-height:1.25;white-space:nowrap}.clear-confirm-actions{display:flex;justify-content:flex-end;gap:.375rem}.clear-confirm-actions button{font-family:var(--font);font-size:.75rem;line-height:1;padding:.375rem .625rem;border-radius:var(--radius-m);border:1px solid var(--border);cursor:pointer;transition:background .15s,color .15s,border-color .15s}.clear-confirm-cancel{background:var(--surface);color:var(--text)}.clear-confirm-cancel:hover{background:var(--brand-light)}.clear-confirm-ok{background:#dc2626;color:#fff;border-color:#dc2626}.clear-confirm-ok:hover{background:#b91c1c;border-color:#b91c1c}[data-tooltip]{position:relative}[data-tooltip]:after{content:attr(data-tooltip);position:absolute;bottom:calc(100% + .375rem);right:0;background:var(--text);color:var(--text-light);font-size:.75rem;line-height:1;padding:.375rem .5rem;border-radius:var(--radius-m);white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .15s;z-index:1000}[data-tooltip]:hover:after,[data-tooltip]:focus-visible:after{opacity:1}.mermaid-diagram{margin:.75em 0;overflow-x:auto;cursor:zoom-in}.mermaid-diagram svg{max-width:100%;height:auto;display:block}#diagram-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000bf;display:flex;align-items:center;justify-content:center;z-index:1000;padding:2rem;box-sizing:border-box}.diagram-overlay-inner{position:relative;background:#fff;border-radius:12px;padding:2rem;width:90vw;max-height:85vh;overflow:auto;box-shadow:0 8px 32px #0000004d;box-sizing:border-box}.diagram-overlay-close{position:absolute;top:.75rem;right:.75rem;background:none;border:none;font-size:1.1rem;cursor:pointer;color:#666;line-height:1;padding:.25rem .5rem;border-radius:4px}.diagram-overlay-close:hover{background:#f0f0f0}.diagram-overlay-svg{width:100%}.diagram-overlay-svg svg{width:100%!important;height:auto!important;display:block}#messages::-webkit-scrollbar{width:4px}#messages::-webkit-scrollbar-track{background:transparent}#messages::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}
