:root{--primary:#2563eb;--primary-light:#eff6ff;--primary-hover:#1d4ed8;--bg:#f0f2f5;--surface:#fff;--border:#e5e7eb;--text-primary:#111827;--text-secondary:#6b7280;--text-muted:#9ca3af;--bubble-user-bg:#2563eb;--bubble-user-text:#fff;--bubble-ai-bg:#fff;--bubble-ai-text:#111827;--radius-bubble:18px;--header-h:64px;--input-area-h:auto;--shadow-sm:0 1px 3px rgba(0,0,0,.08);--shadow-md:0 4px 12px rgba(0,0,0,.1)}*{margin:0;padding:0;box-sizing:border-box}button{cursor:pointer;background:none}button,textarea{border:none;font-family:inherit}textarea{resize:none;outline:none}.chat-app{display:flex;flex-direction:column;height:100dvh;width:100vw;max-width:100%;background-color:var(--bg);overflow:hidden}.chat-header{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;height:var(--header-h);padding:0 16px;background:var(--surface);border-bottom:1px solid var(--border);box-shadow:var(--shadow-sm);z-index:10}.chat-header__info{display:flex;align-items:center;gap:12px;min-width:0}.chat-header__avatar-wrap{position:relative;flex-shrink:0}.chat-header__avatar{width:40px;height:40px;border-radius:50%;-o-object-fit:cover;object-fit:cover;background-color:var(--primary-light);display:block}.chat-header__online-dot{position:absolute;bottom:1px;right:1px;width:10px;height:10px;background:#22c55e;border-radius:50%;border:2px solid var(--surface)}.chat-header__meta{display:flex;flex-direction:column;min-width:0}.chat-header__name{font-size:15px;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-header__status{font-size:12px;color:#22c55e;margin-top:1px}.chat-header__actions{display:flex;gap:8px;flex-shrink:0}.icon-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:10px;color:var(--text-secondary);transition:background .15s,color .15s}.icon-btn svg{width:18px;height:18px}.icon-btn:hover{background:#fee2e2;color:#ef4444}.chat-messages{flex:1;overflow-y:auto;overflow-x:hidden;scroll-behavior:smooth;-webkit-overflow-scrolling:touch}.chat-messages::-webkit-scrollbar{width:5px}.chat-messages::-webkit-scrollbar-track{background:transparent}.chat-messages::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:10px}.chat-messages__inner{display:flex;flex-direction:column;padding:20px 16px 0;gap:4px}.chat-messages__spacer{height:16px;flex-shrink:0}.chat-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 16px 32px;text-align:center}.chat-empty__avatar{width:72px;height:72px;border-radius:50%;-o-object-fit:cover;object-fit:cover;background:var(--primary-light);margin-bottom:16px;box-shadow:0 0 0 6px var(--primary-light)}.chat-empty__title{font-size:18px;font-weight:600;color:var(--text-primary);margin-bottom:8px}.chat-empty__desc{font-size:14px;color:var(--text-secondary)}.message-item{display:flex;align-items:flex-end;gap:8px;max-width:100%}.message-item--assistant{flex-direction:row;padding-right:20%}.message-item--user{flex-direction:row-reverse;padding-left:20%}.message-item+.message-item{margin-top:10px}.message-item--assistant+.message-item--assistant,.message-item--user+.message-item--user{margin-top:4px}.message-item--assistant+.message-item--assistant .message-item__avatar,.message-item--user+.message-item--user .message-item__avatar{visibility:hidden}.message-item__avatar{flex-shrink:0;width:32px;height:32px}.message-item__avatar img{width:32px;height:32px;border-radius:50%;-o-object-fit:cover;object-fit:cover;background:var(--primary-light);display:block}.message-item__bubble{padding:10px 14px;border-radius:var(--radius-bubble);font-size:14px;line-height:1.6;word-break:break-word;box-shadow:var(--shadow-sm);max-width:100%}.message-item--assistant .message-item__bubble{background:var(--bubble-ai-bg);color:var(--bubble-ai-text);border-bottom-left-radius:4px}.message-item--user .message-item__bubble{background:var(--bubble-user-bg);color:var(--bubble-user-text);border-bottom-right-radius:4px}.message-item--user .message-item__bubble .markdown-body{color:var(--bubble-user-text)}.message-item--user .message-item__bubble .markdown-body a{color:#bfdbfe}.message-item--user .message-item__bubble .markdown-body code{background:hsla(0,0%,100%,.2);color:#fff}.message-item__bubble--loading{display:flex;align-items:center;gap:5px;padding:14px 18px}.dot{display:inline-block;width:8px;height:8px;border-radius:50%;background-color:#93c5fd;animation:dot-bounce 1.4s ease-in-out infinite}.dot:first-child{animation-delay:0s}.dot:nth-child(2){animation-delay:.2s}.dot:nth-child(3){animation-delay:.4s}@keyframes dot-bounce{0%,60%,to{transform:translateY(0);opacity:.6}30%{transform:translateY(-6px);opacity:1}}.next-steps{padding:8px 0 0 40px}.next-steps__label{font-size:12px;color:var(--text-muted);margin-bottom:8px;padding-left:4px}.next-steps__list{display:flex;flex-direction:column;gap:6px}.next-step-btn{display:flex;align-items:center;gap:6px;padding:7px 12px;background:var(--surface);border:1px solid var(--border);border-radius:10px;font-size:13px;color:var(--primary);text-align:left;transition:background .15s,border-color .15s,transform .1s;max-width:520px}.next-step-btn svg{width:14px;height:14px;flex-shrink:0;opacity:.6}.next-step-btn:hover{background:var(--primary-light);border-color:var(--primary);transform:translateX(2px)}.next-step-btn:active{transform:translateX(0)}.chat-input-area{flex-shrink:0;padding:10px 16px 12px;background:var(--surface);border-top:1px solid var(--border);box-shadow:0 -2px 8px rgba(0,0,0,.05);z-index:10}.chat-input-wrap{display:flex;align-items:flex-end;gap:8px;background:#f9fafb;border:1.5px solid var(--border);border-radius:16px;padding:8px 8px 8px 14px;transition:border-color .2s,box-shadow .2s}.chat-input-wrap:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px rgba(37,99,235,.12);background:var(--surface)}.chat-input{flex:1;min-height:24px;max-height:160px;font-size:14px;line-height:1.6;color:var(--text-primary);background:transparent;overflow-y:auto}.chat-input::-moz-placeholder{color:var(--text-muted)}.chat-input::placeholder{color:var(--text-muted)}.chat-input::-webkit-scrollbar{width:4px}.chat-input::-webkit-scrollbar-thumb{background:#e5e7eb;border-radius:4px}.chat-input-actions{flex-shrink:0;display:flex;align-items:flex-end}.send-btn{display:flex;align-items:center;gap:4px;padding:7px 14px;border-radius:12px;font-size:13px;font-weight:500;background:var(--primary);color:#fff;transition:background .15s,transform .1s,opacity .15s}.send-btn svg{width:15px;height:15px}.send-btn:hover:not(:disabled){background:var(--primary-hover);transform:scale(1.03)}.send-btn:active:not(:disabled){transform:scale(.98)}.send-btn--disabled{opacity:.45;cursor:not-allowed}.send-btn--stop{background:#ef4444}.send-btn--stop:hover{background:#dc2626}.chat-input-hint{margin-top:6px;font-size:11px;color:var(--text-muted);text-align:center;-webkit-user-select:none;-moz-user-select:none;user-select:none}pre.hljs{position:relative!important}pre.hljs .code-copy-btn{position:absolute;top:8px;right:8px;display:flex;align-items:center;gap:4px;padding:3px 8px;border-radius:6px;font-size:11px;background:hsla(0,0%,100%,.85);color:#374151;border:1px solid #e5e7eb;opacity:0;transition:opacity .2s,background .15s;z-index:5}pre.hljs .code-copy-btn svg{width:12px;height:12px}pre.hljs .code-copy-btn.copied{background:#dcfce7;color:#16a34a;border-color:#bbf7d0}pre.hljs:hover .code-copy-btn{opacity:1}.markdown-body pre{max-width:100%;overflow-x:auto}.markdown-body table{overflow-x:auto;white-space:nowrap}@media(min-width:768px){.chat-app{max-width:800px;margin:0 auto;height:100vh}.message-item--assistant{padding-right:25%}.message-item--user{padding-left:25%}.chat-header{padding:0 24px}.chat-messages__inner{padding:24px 24px 0}.chat-input-area{padding:12px 24px 16px}.send-btn__text{display:inline}}@media(max-width:480px){.chat-app{height:100dvh}.chat-header__status{display:none}.message-item--assistant{padding-right:10%}.message-item--user{padding-left:10%}.next-steps{padding-left:0}.send-btn__text{display:none}.send-btn{padding:8px 10px;border-radius:12px}.send-btn svg{width:18px;height:18px}.chat-input-hint{display:none}}.message-item{animation:msg-in .25s ease-out}@keyframes msg-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.markdown-body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;font-size:14px;line-height:1.6;word-wrap:break-word}.markdown-body:after,.markdown-body:before{display:table;content:""}.markdown-body:after{clear:both}.markdown-body>:first-child{margin-top:0!important}.markdown-body>:last-child{margin-bottom:0!important}.markdown-body a{color:#0366d6;text-decoration:none;background-color:transparent}.markdown-body a:hover{text-decoration:underline}.markdown-body a:not([href]){color:inherit;text-decoration:none}.markdown-body blockquote,.markdown-body details,.markdown-body dl,.markdown-body ol,.markdown-body p,.markdown-body pre,.markdown-body table,.markdown-body ul{margin-top:0;margin-bottom:16px}.markdown-body hr{height:.25em;padding:0;margin:24px 0;background-color:#e1e4e8;border:0}.markdown-body blockquote{padding:0 1em;color:#6a737d;border-left:.25em solid #dfe2e5}.markdown-body blockquote>:first-child{margin-top:0}.markdown-body blockquote>:last-child{margin-bottom:0}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5,.markdown-body h6{margin-top:24px;margin-bottom:16px;font-weight:600;line-height:1.25}.markdown-body h1{font-size:2em}.markdown-body h1,.markdown-body h2{padding-bottom:.3em;border-bottom:1px solid #eaecef}.markdown-body h2{font-size:1.5em}.markdown-body h3{font-size:1.25em}.markdown-body h4{font-size:1em}.markdown-body h5{font-size:.875em}.markdown-body h6{font-size:.85em;color:#6a737d}.markdown-body ol,.markdown-body ul{padding-left:2em}.markdown-body ol.no-list,.markdown-body ul.no-list{padding:0;list-style-type:none}.markdown-body ol li,.markdown-body ul li{margin-top:.25em}.markdown-body ol ol,.markdown-body ol ul,.markdown-body ul ol,.markdown-body ul ul{margin-top:0;margin-bottom:0}.markdown-body li>p{margin-top:16px}.markdown-body li+li{margin-top:.25em}.markdown-body dl{padding:0}.markdown-body dl dt{padding:0;margin-top:16px;font-size:1em;font-style:italic;font-weight:600}.markdown-body dl dd{padding:0 16px;margin-bottom:16px}.markdown-body table{display:block;width:100%;overflow:auto;border-spacing:0;border-collapse:collapse}.markdown-body table th{font-weight:600}.markdown-body table td,.markdown-body table th{padding:6px 13px;border:1px solid #dfe2e5}.markdown-body table tr{background-color:#fff;border-top:1px solid #c6cbd1}.markdown-body table tr:nth-child(2n){background-color:#f6f8fa}.markdown-body img{max-width:100%;box-sizing:content-box;background-color:#fff}.markdown-body img[align=right]{padding-left:20px}.markdown-body img[align=left]{padding-right:20px}.markdown-body code{padding:.2em .4em;margin:0;font-size:85%;background-color:rgba(27,31,35,.05);border-radius:3px;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace}.markdown-body pre{word-wrap:normal;padding:16px;overflow:auto;font-size:85%;line-height:1.45;background-color:#f6f8fa;border-radius:3px}.markdown-body pre code{display:inline;padding:0;margin:0;overflow:visible;line-height:inherit;word-wrap:normal;background-color:transparent;border:0;font-size:100%}.markdown-body .hljs{display:block;overflow-x:auto;padding:.5em;color:#333;background:#f6f8fa}.markdown-body kbd{display:inline-block;padding:3px 5px;font:11px SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;line-height:10px;color:#444d56;vertical-align:middle;background-color:#fafbfc;border:1px solid #d1d5da;border-bottom-color:#c6cbd1;border-radius:3px;box-shadow:inset 0 -1px 0 #c6cbd1}