:root{--primary:#2571cb;--primary-light:#3682d9;--secondary:#667eea;--error:#e74c3c;--text:#1a1a1a;--text-light:#999;--bg:#fff;--surface:#ececec;--border:#d1d5db;--space:10px;--space-sm:calc(var(--space) * .2);--space-md:calc(var(--space) * .5);--space-lg:calc(var(--space) * 1.5);--space-xl:calc(var(--space) * 2)}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{color:var(--text);background:var(--bg);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:1rem;line-height:1.5}.padding-none{padding:0}.padding-sm{padding:var(--space-sm)}.padding-md{padding:var(--space-md)}.padding{padding:var(--space)}.padding-lg{padding:var(--space-lg)}.padding-xl{padding:var(--space-xl)}.padding-x-none{padding-left:0;padding-right:0}.padding-x-sm{padding-left:var(--space-sm);padding-right:var(--space-sm)}.padding-x-md{padding-left:var(--space-md);padding-right:var(--space-md)}.padding-x{padding-left:var(--space);padding-right:var(--space)}.padding-x-lg{padding-left:var(--space-lg);padding-right:var(--space-lg)}.padding-x-xl{padding-left:var(--space-xl);padding-right:var(--space-xl)}.padding-y-none{padding-top:0;padding-bottom:0}.padding-y-sm{padding-top:var(--space-sm);padding-bottom:var(--space-sm)}.padding-y-md{padding-top:var(--space-md);padding-bottom:var(--space-md)}.padding-y{padding-top:var(--space);padding-bottom:var(--space)}.padding-y-lg{padding-top:var(--space-lg);padding-bottom:var(--space-lg)}.padding-y-xl{padding-top:var(--space-xl);padding-bottom:var(--space-xl)}.padding-top-none{padding-top:0}.padding-top-sm{padding-top:var(--space-sm)}.padding-top-md{padding-top:var(--space-md)}.padding-top{padding-top:var(--space)}.padding-top-lg{padding-top:var(--space-lg)}.padding-top-xl{padding-top:var(--space-xl)}.padding-bottom-none{padding-bottom:0}.padding-bottom-sm{padding-bottom:var(--space-sm)}.padding-bottom-md{padding-bottom:var(--space-md)}.padding-bottom{padding-bottom:var(--space)}.padding-bottom-lg{padding-bottom:var(--space-lg)}.padding-bottom-xl{padding-bottom:var(--space-xl)}.padding-left-none{padding-left:0}.padding-left-sm{padding-left:var(--space-sm)}.padding-left-md{padding-left:var(--space-md)}.padding-left{padding-left:var(--space)}.padding-left-lg{padding-left:var(--space-lg)}.padding-left-xl{padding-left:var(--space-xl)}.padding-right-none{padding-right:0}.padding-right-sm{padding-right:var(--space-sm)}.padding-right-md{padding-right:var(--space-md)}.padding-right{padding-right:var(--space)}.padding-right-lg{padding-right:var(--space-lg)}.padding-right-xl{padding-right:var(--space-xl)}.margin-none{margin:0}.margin-sm{margin:var(--space-sm)}.margin-md{margin:var(--space-md)}.margin{margin:var(--space)}.margin-lg{margin:var(--space-lg)}.margin-xl{margin:var(--space-xl)}.margin-x-none{margin-left:0;margin-right:0}.margin-x-sm{margin-left:var(--space-sm);margin-right:var(--space-sm)}.margin-x-md{margin-left:var(--space-md);margin-right:var(--space-md)}.margin-x{margin-left:var(--space);margin-right:var(--space)}.margin-x-lg{margin-left:var(--space-lg);margin-right:var(--space-lg)}.margin-x-xl{margin-left:var(--space-xl);margin-right:var(--space-xl)}.margin-y-none{margin-top:0;margin-bottom:0}.margin-y-sm{margin-top:var(--space-sm);margin-bottom:var(--space-sm)}.margin-y-md{margin-top:var(--space-md);margin-bottom:var(--space-md)}.margin-y{margin-top:var(--space);margin-bottom:var(--space)}.margin-y-lg{margin-top:var(--space-lg);margin-bottom:var(--space-lg)}.margin-y-xl{margin-top:var(--space-xl);margin-bottom:var(--space-xl)}.margin-top-none{margin-top:0}.margin-top-sm{margin-top:var(--space-sm)}.margin-top-md{margin-top:var(--space-md)}.margin-top{margin-top:var(--space)}.margin-top-lg{margin-top:var(--space-lg)}.margin-top-xl{margin-top:var(--space-xl)}.margin-bottom-none{margin-bottom:0}.margin-bottom-sm{margin-bottom:var(--space-sm)}.margin-bottom-md{margin-bottom:var(--space-md)}.margin-bottom{margin-bottom:var(--space)}.margin-bottom-lg{margin-bottom:var(--space-lg)}.margin-bottom-xl{margin-bottom:var(--space-xl)}.margin-left-none{margin-left:0}.margin-left-sm{margin-left:var(--space-sm)}.margin-left-md{margin-left:var(--space-md)}.margin-left{margin-left:var(--space)}.margin-left-lg{margin-left:var(--space-lg)}.margin-left-xl{margin-left:var(--space-xl)}.margin-right-none{margin-right:0}.margin-right-sm{margin-right:var(--space-sm)}.margin-right-md{margin-right:var(--space-md)}.margin-right{margin-right:var(--space)}.margin-right-lg{margin-right:var(--space-lg)}.margin-right-xl{margin-right:var(--space-xl)}.gap-none{gap:0}.gap-sm{gap:var(--space-sm)}.gap-md{gap:var(--space-md)}.gap{gap:var(--space)}.gap-lg{gap:var(--space-lg)}.gap-xl{gap:var(--space-xl)}.display-flex{display:flex}.display-flex-col{flex-direction:column;display:flex}.display-flex-row{flex-direction:row;display:flex}.display-flex-wrap{flex-wrap:wrap;display:flex}.display-flex-nowrap{flex-wrap:nowrap;display:flex}.flex-grow{flex:1}.flex-shrink{flex-shrink:1}.items-start{align-items:flex-start}.items-center{align-items:center}.items-end{align-items:flex-end}.items-stretch{align-items:stretch}.items-baseline{align-items:baseline}.items-auto{align-items:auto}.items-self-start{align-items:self-start}.items-self-end{align-items:self-end}.justify-start{justify-content:flex-start}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.justify-evenly{justify-content:space-evenly}.width-full{width:100%}.width-fit-content{width:fit-content}.height-full{height:100%}.height-screen{height:100vh}.text-center{text-align:center}.text-light{color:var(--text-light)}.text-white{color:#fff}.color-danger{color:var(--error)}.font-bold{font-weight:500}.bg-primary{background:var(--primary)}.bg-surface{background:var(--surface)}.bg-white{background:var(--bg)}.bg-error{background:#fadbd8}.border{border:1px solid var(--border)}.border-none{border:none}.rounded{border-radius:8px}.rounded-sm{border-radius:4px}.rounded-full{border-radius:9999px}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.position-relative{position:relative}.position-fixed{position:fixed}.position-absolute{position:absolute}.top-0{top:0}.right-0{right:0}.bottom-0{bottom:0}.left-0{left:0}.shadow{box-shadow:0 4px 6px #0000001a}.opacity-50{opacity:.5}.transition{transition:all .15s ease-in-out}button{cursor:pointer;font-family:inherit;transition:all .15s ease-in-out}.btn{cursor:pointer;border:none;border-radius:8px;justify-content:center;align-items:center;font-size:1.5rem;font-weight:500;transition:all .15s ease-in-out;display:flex}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--primary-light);box-shadow:0 4px 6px #0000001a}.btn-error{background:var(--error);color:#fff}.btn-error:hover{background:#c0392b;box-shadow:0 4px 6px #0000001a}.btn-default{background:var(--surface);color:var(--text);border:1px solid var(--border)}.btn-default:hover:not(:disabled){background:#d9d9d9;box-shadow:0 4px 6px #0000001a}.btn:disabled{opacity:.5;cursor:not-allowed}textarea,input{font-family:inherit;font-size:1rem}.textarea{padding:var(--space);border:1px solid var(--border);resize:none;border-radius:8px;flex:1;height:44px;max-height:400px;line-height:1.5;transition:border-color .15s ease-in-out;overflow-y:auto}.textarea:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px #10a37f1a}.textarea::placeholder{color:var(--text-light)}@keyframes slideIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes bounce{0%,to{opacity:.3;transform:translateY(0)}50%{opacity:1;transform:translateY(-8px)}}@keyframes slideInRight{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}.animate-slide-in{animation:.15s ease-in-out slideIn}.animate-bounce{animation:1.4s infinite bounce}.animate-slide-in-right{animation:.3s ease-in-out slideInRight}.message{gap:var(--space);margin-bottom:var(--space-lg);animation:.15s ease-in-out slideIn;display:flex}.message.user{flex-direction:column;align-items:flex-end;gap:0}.message.assistant{gap:0 var(--space);grid-template-rows:auto auto auto auto;grid-template-columns:50px minmax(0,1fr);align-items:start;display:grid}.message.assistant .message-avatar{grid-area:1/1;align-self:flex-end}.message.assistant .message-bubble{grid-area:1/2;align-self:end}.message.assistant .tool-status{grid-area:2/2;align-self:start}.message.assistant .message-meta{justify-content:space-between;align-self:start;align-items:center;gap:var(--space);grid-area:3/2;margin-top:0;display:flex}.message.assistant .tool-calls-accordion{grid-area:4/2;align-self:start}.tool-calls-toggle{color:var(--text-light);font:inherit;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;flex-shrink:0;align-items:center;gap:4px;padding:2px 7px;font-size:.8rem;line-height:1;transition:background .12s,color .12s,border-color .12s;display:inline-flex}.tool-calls-toggle:hover{color:var(--text);background:#0000000d}.tool-calls-toggle.active{color:var(--primary);background:#2571cb1a;border-color:#2571cb40}.tool-calls-toggle svg{display:block}.tool-calls-count{font-weight:600}.tool-calls-accordion{opacity:0;border:1px solid #0000;border-radius:8px;max-height:0;margin-top:6px;transition:max-height .2s,opacity .16s,padding .16s,border-color .16s,background .16s;overflow:hidden}.tool-calls-accordion.expanded{opacity:1;background:#00000006;border-color:#0000001a;max-height:360px;padding:8px 10px;overflow:auto}.tool-calls-accordion::-webkit-scrollbar{width:12px;height:12px}.tool-calls-accordion::-webkit-scrollbar-thumb{background:#00000047 padding-box padding-box;border:2px solid #0000;border-radius:6px}.tool-calls-accordion::-webkit-scrollbar-thumb:hover{background:#0000006b padding-box padding-box}.tool-calls-accordion::-webkit-scrollbar-track{background:0 0}.tool-calls-accordion-title{text-transform:uppercase;letter-spacing:.04em;width:fit-content;color:var(--text-light);margin-bottom:6px;font-size:.7rem;font-weight:600;position:sticky;left:0}.tool-call-row{border-bottom:1px solid #00000012;align-items:baseline;gap:8px;width:max-content;min-width:100%;padding:5px 0;font-size:.8rem;display:flex}.tool-call-row:last-child{border-bottom:none}.tool-call-row code{white-space:nowrap;background:#0000000f;border-radius:4px;padding:1px 5px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.9em}.message-content{width:fit-content;max-width:100%;padding:var(--space) var(--space-lg);word-wrap:break-word;border-radius:8px}.message.user .message-content{background:var(--primary);color:#fff;border-bottom-right-radius:4px;max-width:70%}.message.assistant .message-content{background:var(--surface);color:var(--text);border:1px solid #e0e0e0;border-bottom-left-radius:4px}.message.assistant.warning .message-content{background:#f2dede;border-color:#ebccd1}.message.assistant.warning .message-bubble .message-content:before{border-right-color:#f2dede}.message.assistant.warning .message-bubble:before{border-right-color:#ebccd1}.message-avatar{object-fit:cover;border-radius:50%;flex-shrink:0;align-self:flex-end;width:50px;height:60px}.message-bubble{flex:1;position:relative}.message.assistant .message-bubble:before{content:"";border-top:8px solid #0000;border-bottom:8px solid #0000;border-right:12px solid #e0e0e0;width:0;height:0;position:absolute;bottom:8px;left:-12px}.message.assistant .message-bubble .message-content:before{content:"";border-top:8px solid #0000;border-right:9px solid var(--surface);border-bottom:8px solid #0000;width:0;height:0;position:absolute;bottom:8px;left:-9px}.message.assistant .message-bubble .message-content{position:relative}.message-meta{color:var(--text-light);font-size:.875rem}.loading-text{margin-right:var(--space-md)}.loading-dots{gap:var(--space-sm);vertical-align:middle;display:inline-flex;position:relative}.loading-dot{background:currentColor;border-radius:50%;width:8px;height:8px;animation:1.4s infinite bounce}.loading-dot:first-child{animation-delay:0s}.loading-dot:nth-child(2){animation-delay:.2s}.loading-dot:nth-child(3){animation-delay:.4s}.tool-status{margin-top:var(--space-sm);flex-direction:column;gap:4px;display:flex}.tool-status-row{color:var(--text-light);opacity:1;background:#0000000a;border-radius:6px;padding:4px 8px;font-size:.8em;font-style:italic;transition:opacity .4s ease-out}.tool-status-row.fading{opacity:0}.tool-status-row code{background:#0000000f;border-radius:3px;padding:1px 4px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.9em;font-style:normal}.tool-status-dots span{opacity:0;animation:1.4s infinite tool-status-dot-blink}.tool-status-dots span:first-child{animation-delay:0s}.tool-status-dots span:nth-child(2){animation-delay:.2s}.tool-status-dots span:nth-child(3){animation-delay:.4s}@keyframes tool-status-dot-blink{0%,80%,to{opacity:0}40%{opacity:1}}.alert{top:var(--space-lg);right:var(--space-lg);padding:var(--space-lg);align-items:center;gap:var(--space);z-index:999;border-radius:8px;max-width:400px;animation:.3s ease-in-out slideInRight;display:flex;position:fixed;box-shadow:0 10px 15px #0000001a}.alert-error{color:var(--error);border-left:4px solid var(--error);background:#fadbd8}.alert-close{color:inherit;cursor:pointer;background:0 0;border:none;margin-left:auto;padding:0;font-size:1.5rem}.welcome-message{justify-content:center;align-items:center;gap:var(--space);color:var(--text-light);text-align:center;padding:var(--space-xl);flex-direction:column;margin:auto;display:flex}.welcome-icon{opacity:.7;font-size:3rem}.welcome-message h2{color:var(--text);font-size:1.125rem}.welcome-message p{max-width:300px;font-size:.875rem}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#ccc;border-radius:8px}::-webkit-scrollbar-thumb:hover{background:#aaa}.message-content h1,.message-content h2,.message-content h3,.message-content h4,.message-content h5,.message-content h6{margin-top:var(--space);margin-bottom:var(--space-md);font-weight:600;line-height:1.3}.message-content h1{font-size:1.5rem}.message-content h2{font-size:1.35rem}.message-content h3{font-size:1.25rem}.message-content h4{font-size:1.1rem}.message-content h5{font-size:1rem}.message-content h6{font-size:.95rem}.message-content p{margin-bottom:var(--space-md)}.message-content ul,.message-content ol{margin-left:var(--space-lg);margin-bottom:var(--space-md);padding-left:var(--space)}.message-content li{margin-bottom:var(--space-sm)}.message-content strong{color:var(--text);font-weight:600}.message-content em{font-style:italic}.message-content code{background:var(--surface);border-radius:3px;padding:.2em .4em;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:.9em}.message-content pre{background:var(--surface);padding:var(--space);margin-bottom:var(--space-md);border-radius:4px;overflow-x:auto}.message-content pre code{background:0 0;border-radius:0;padding:0}.message-content blockquote{border-left:3px solid var(--primary);padding-left:var(--space);margin-left:0;margin-bottom:var(--space-md);color:var(--text-light)}.message-content a{color:var(--primary);text-decoration:none;transition:color .2s}.message-content a:hover{color:var(--primary-light);text-decoration:underline}@media (width<=768px){.message-content{max-width:85%}.alert{width:calc(100% - var(--space-lg) * 2);right:var(--space-lg);left:var(--space-lg)}}@media (width<=480px){.message-content{max-width:100%}}.conversation-prompt-text{margin-bottom:var(--space)}.conversation-list{flex-direction:column;gap:6px;display:flex}.conversation-row{background:#00000008;border:1px solid #00000014;border-radius:8px;align-items:stretch;gap:4px;transition:background .12s,border-color .12s;display:flex;overflow:hidden}.conversation-row:hover{background:#0000000f;border-color:#00000029}.conversation-row-main{justify-content:space-between;align-items:center;gap:var(--space);cursor:pointer;text-align:left;min-width:0;font:inherit;color:inherit;background:0 0;border:0;flex:1;padding:8px 12px;display:flex}.conversation-row-delete{cursor:pointer;width:28px;color:var(--text-light);background:0 0;border:0;border-left:1px solid #0000000f;justify-content:center;align-items:center;padding:0;font-size:18px;line-height:1;transition:background .12s,color .12s;display:flex}.conversation-row-delete:hover{color:var(--error);background:#e74c3c1f}.conversation-row-delete:disabled{opacity:.5;cursor:default}.conversation-row-title{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:500;overflow:hidden}.conversation-row-time{color:var(--text-light);flex-shrink:0;font-size:.8em}.confirm-overlay{z-index:9999;background:#0006;justify-content:center;align-items:center;animation:.12s confirm-fade-in;display:flex;position:fixed;inset:0}.confirm-dialog{background:#fff;border-radius:10px;min-width:260px;max-width:340px;padding:20px 22px 16px;animation:.14s confirm-pop-in;box-shadow:0 10px 32px #0003}.confirm-message{color:var(--text,#222);margin-bottom:16px;font-size:.95rem}.confirm-actions{justify-content:flex-end;gap:8px;display:flex}.confirm-btn{font:inherit;cursor:pointer;background:#fff;border:1px solid #0000001f;border-radius:6px;padding:6px 14px;transition:background .12s,border-color .12s}.confirm-btn:hover{background:#0000000a}.confirm-btn-yes{background:var(--primary);color:#fff;border-color:var(--primary)}.confirm-btn-yes:hover{background:var(--primary-light);border-color:var(--primary-light)}@keyframes confirm-fade-in{0%{opacity:0}to{opacity:1}}@keyframes confirm-pop-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}
