:root{--tg-bg: #ffffff;--tg-text: #000000;--tg-hint: #999999;--tg-link: #2481cc;--tg-button: #2481cc;--tg-button-text: #ffffff;--tg-secondary-bg: #f0f0f0}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--tg-bg);color:var(--tg-text);-webkit-font-smoothing:antialiased;overflow:hidden;height:100vh}.app{display:flex;flex-direction:column;height:100vh;max-width:100%}.app.dark{--tg-bg: #1c1c1e;--tg-text: #ffffff;--tg-hint: #8e8e93;--tg-secondary-bg: #2c2c2e}.header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--tg-secondary-bg);border-bottom:1px solid rgba(128,128,128,.15);flex-shrink:0}.header-title{font-size:16px;font-weight:600}.header-subtitle{font-size:11px;color:var(--tg-hint);margin-top:2px}.header-user{font-size:13px;color:var(--tg-hint)}.chat-container{display:flex;flex-direction:column;flex:1;overflow:hidden}.messages{flex:1;overflow-y:auto;padding:12px 16px;-webkit-overflow-scrolling:touch}.welcome{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px;text-align:center}.welcome-icon{font-size:48px;margin-bottom:12px}.welcome-title{font-size:20px;font-weight:600;margin-bottom:8px}.welcome-text{font-size:14px;color:var(--tg-hint);margin-bottom:20px}.welcome-features{display:grid;grid-template-columns:1fr 1fr;gap:8px;width:100%;max-width:320px}.feature{padding:12px;background:var(--tg-secondary-bg);border-radius:12px;font-size:13px;cursor:pointer;transition:opacity .2s;text-align:center}.feature:active{opacity:.7}.message{margin-bottom:12px;display:flex}.message.user{justify-content:flex-end}.message.assistant{justify-content:flex-start}.message-bubble{max-width:85%;padding:10px 14px;border-radius:16px;font-size:14px;line-height:1.5;word-break:break-word}.message.user .message-bubble{background:var(--tg-button);color:var(--tg-button-text);border-bottom-right-radius:4px}.message.assistant .message-bubble{background:var(--tg-secondary-bg);border-bottom-left-radius:4px}.user-text{white-space:pre-wrap}.message.assistant .message-bubble p{margin:0 0 8px}.message.assistant .message-bubble p:last-child{margin-bottom:0}.message.assistant .message-bubble code{background:#80808026;padding:1px 5px;border-radius:4px;font-size:13px;font-family:SF Mono,Menlo,monospace}.message.assistant .message-bubble pre{background:#00000026;padding:10px;border-radius:8px;overflow-x:auto;margin:8px 0}.message.assistant .message-bubble pre code{background:none;padding:0;font-size:12px}.message.assistant .message-bubble ul,.message.assistant .message-bubble ol{padding-left:20px;margin:4px 0}.message.assistant .message-bubble h1,.message.assistant .message-bubble h2,.message.assistant .message-bubble h3{margin:8px 0 4px;font-size:15px}.tool-calls{margin-bottom:8px}.tool-call{background:#8080801a;border-radius:8px;padding:8px 10px;margin-bottom:6px;cursor:pointer;border-left:3px solid var(--tg-link)}.tool-call.running{border-left-color:#f0ad4e}.tool-call.done{border-left-color:#5cb85c}.tool-call-header{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:500}.tool-icon{font-size:14px}.tool-spinner{width:12px;height:12px;border:2px solid rgba(128,128,128,.3);border-top-color:var(--tg-link);border-radius:50%;animation:spin .8s linear infinite;margin-left:auto}.tool-done{color:#5cb85c;margin-left:auto;font-weight:700}.tool-detail{margin-top:6px;font-size:11px}.tool-detail pre{background:#0000001a;padding:6px;border-radius:4px;overflow-x:auto;font-size:11px;max-height:150px;overflow-y:auto}.tool-result-label{margin-top:4px;font-weight:600;color:var(--tg-hint)}.tool-result-content{margin-top:2px}.typing-indicator{display:flex;gap:4px;padding:4px 0}.typing-indicator span{width:8px;height:8px;background:var(--tg-hint);border-radius:50%;animation:bounce 1.4s infinite ease-in-out both}.typing-indicator span:nth-child(1){animation-delay:-.32s}.typing-indicator span:nth-child(2){animation-delay:-.16s}.input-area{display:flex;align-items:flex-end;gap:8px;padding:10px 12px;border-top:1px solid rgba(128,128,128,.15);background:var(--tg-bg);flex-shrink:0;padding-bottom:max(10px,env(safe-area-inset-bottom))}.input-field{flex:1;border:1px solid rgba(128,128,128,.3);border-radius:20px;padding:10px 16px;font-size:14px;resize:none;outline:none;background:var(--tg-secondary-bg);color:var(--tg-text);font-family:inherit;max-height:100px;line-height:1.4}.input-field::placeholder{color:var(--tg-hint)}.input-field:focus{border-color:var(--tg-button)}.send-btn{width:40px;height:40px;border-radius:50%;border:none;background:var(--tg-button);color:var(--tg-button-text);font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:opacity .2s}.send-btn:disabled{opacity:.4;cursor:default}.send-btn:active:not(:disabled){opacity:.7}.clear-btn{width:40px;height:40px;border-radius:50%;border:none;background:var(--tg-secondary-bg);font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0}.clear-btn:active{opacity:.7}@keyframes spin{to{transform:rotate(360deg)}}@keyframes bounce{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}.messages::-webkit-scrollbar{width:4px}.messages::-webkit-scrollbar-thumb{background:#8080804d;border-radius:2px}
