*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:#fff;height:100vh;overflow:hidden}.app-layout{display:flex;width:100vw;height:100vh;overflow:hidden;background:#fff}.sidebar{width:260px;flex-shrink:0;display:flex;flex-direction:column;background:#f9f9f9;border-right:1px solid #eee;overflow:hidden}.new-chat-btn{margin:12px;padding:8px 12px;background:#06f;color:#fff;border:none;border-radius:8px;font-size:13px;font-weight:500;cursor:pointer;text-align:left;transition:background .15s}.new-chat-btn:hover{background:#0052cc}.session-list{flex:1;overflow-y:auto;list-style:none;padding:4px 0}.session-item{padding:10px 14px;cursor:pointer;border-radius:6px;margin:2px 8px;transition:background .1s}.session-item:hover{background:#efefef}.session-item.active{background:#e8f0fe}.session-title{display:block;font-size:13px;color:#111;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.session-item.active .session-title{color:#06f;font-weight:500}.session-meta{display:block;font-size:11px;color:#999;margin-top:2px}.sidebar-status{font-size:12px;color:#999;padding:8px 14px}.sidebar-error{color:#c00}.chat{display:flex;flex-direction:column;flex:1;min-width:0;overflow:hidden}header{padding:16px 20px;font-weight:600;font-size:15px;border-bottom:1px solid #eee;color:#111}.messages{flex:1;overflow-y:auto;padding:20px;display:flex;flex-direction:column;gap:12px}.empty{color:#999;text-align:center;margin:auto;font-size:14px}.message{display:flex}.message.user{justify-content:flex-end}.message.assistant{justify-content:flex-start}.bubble{max-width:75%;padding:10px 14px;border-radius:16px;font-size:14px;line-height:1.5;white-space:pre-wrap}.message.user .bubble{background:#06f;color:#fff;border-bottom-right-radius:4px}.assistant-content{width:100%;color:#111;font-size:14px;line-height:1.6}.assistant-indicator{display:flex;flex-direction:column;align-items:flex-start;gap:8px}.thinking-text{color:#aaa;font-size:13px;font-style:italic;white-space:pre-wrap;padding-left:4px}.assistant-content p{margin:0 0 10px}.assistant-content p:last-child{margin-bottom:0}.assistant-content ul,.assistant-content ol{margin:0 0 10px 20px}.assistant-content li{margin-bottom:4px}.assistant-content strong{font-weight:600}.assistant-content em{font-style:italic}.assistant-content a{color:#06f;text-decoration:underline}.assistant-content a:hover{color:#0052cc}.assistant-content h1,.assistant-content h2,.assistant-content h3{font-weight:600;margin:14px 0 6px}.assistant-content h1{font-size:18px}.assistant-content h2{font-size:16px}.assistant-content h3{font-size:14px}.assistant-content code{background:#f0f0f0;padding:1px 5px;border-radius:4px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px}.assistant-content pre{background:#f0f0f0;padding:12px;border-radius:8px;overflow-x:auto;margin:0 0 10px}.assistant-content pre code{background:none;padding:0}.assistant-content table{border-collapse:collapse;width:100%;margin:0 0 12px;font-size:13px}.assistant-content .table-wrapper{overflow-x:auto;margin-bottom:12px}.assistant-content th,.assistant-content td{border-bottom:1px solid #e0e0e0;padding:8px 12px;text-align:left}.assistant-content th{font-weight:600;border-bottom:2px solid #ccc}.input-row{display:flex;gap:8px;padding:12px 16px;border-top:1px solid #eee}.input-row input{flex:1;padding:10px 14px;border:1px solid #ddd;border-radius:8px;font-size:14px;outline:none;transition:border-color .15s}.input-row input:focus{border-color:#06f}.input-row input:disabled{background:#fafafa}.input-row button{padding:10px 18px;background:#06f;color:#fff;border:none;border-radius:8px;font-size:14px;cursor:pointer;transition:background .15s}.input-row button:hover:not(:disabled){background:#0052cc}.input-row button:disabled{background:#aaa;cursor:default}.bubble.typing{display:flex;align-items:center;gap:4px;padding:14px 16px;min-width:70px}.bubble.typing span{width:7px;height:7px;border-radius:50%;background:#999;animation:bounce 1.2s infinite ease-in-out}.bubble.typing span:nth-child(1){animation-delay:0s}.bubble.typing span:nth-child(2){animation-delay:.2s}.bubble.typing span:nth-child(3){animation-delay:.4s}@keyframes bounce{0%,80%,to{transform:translateY(0)}40%{transform:translateY(-6px)}}.bubble.tool.tool-inline{margin-top:10px;display:inline-flex}.bubble.tool{display:flex;align-items:center;gap:8px;background:#eef4ff;color:#0052cc;font-size:13px;white-space:nowrap;max-width:none}.bubble.tool code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;background:#dfeaff;padding:1px 6px;border-radius:6px}.bubble.tool .tool-icon{font-size:14px;line-height:1}.bubble.tool .typing-dots{display:inline-flex;align-items:center;gap:3px}.bubble.tool .typing-dots span{width:5px;height:5px;border-radius:50%;background:#0052cc;animation:bounce 1.2s infinite ease-in-out}.bubble.tool .typing-dots span:nth-child(1){animation-delay:0s}.bubble.tool .typing-dots span:nth-child(2){animation-delay:.2s}.bubble.tool .typing-dots span:nth-child(3){animation-delay:.4s}
