*{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.6;color:#333;background-color:#f8f9fa}.app{display:flex;flex-direction:column;height:100vh;max-width:800px;margin:0 auto;background:#fff;border:1px solid #e9ecef}.header{background:#4a90e2;color:#fff;padding:16px 20px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #357abd;flex-shrink:0}.header h1{font-size:1.5rem;font-weight:600;margin:0}.clear-button{padding:8px 16px;border:none;border-radius:4px;background:#ffffff26;color:#fff;cursor:pointer;font-size:14px;transition:background .2s}.clear-button:hover{background:#ffffff40}.chat-container{flex:1;display:flex;flex-direction:column;overflow:hidden}.messages-container{flex:1;overflow-y:auto}.messages{padding:20px;min-height:100%}.message{display:flex;gap:12px;margin-bottom:20px;opacity:0;animation:fadeInUp .3s ease-out forwards;position:relative}.message.user{flex-direction:row-reverse}@keyframes fadeInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.message-avatar{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:20px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;flex-shrink:0;box-shadow:0 2px 8px #0000001a;transition:all .3s ease;cursor:pointer;position:relative;overflow:hidden}.message-avatar:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(45deg,rgba(255,255,255,.1) 0%,transparent 50%);opacity:0;transition:opacity .3s ease}.message-avatar:hover:before{opacity:1}.message.user .message-avatar{background:linear-gradient(135deg,#4a90e2,#357abd)}.message-avatar:hover{transform:scale(1.05);box-shadow:0 4px 12px #00000026}.message-content{flex:1;min-width:0;max-width:75%}.message-body{background:#fff;padding:16px 20px;border-radius:18px;border:1px solid #e3e8f0;box-shadow:0 2px 12px #0000000d;position:relative;transition:all .3s ease}.message-body:before{content:"";position:absolute;top:15px;left:-8px;width:0;height:0;border-style:solid;border-width:8px 8px 8px 0;border-color:transparent #ffffff transparent transparent;filter:drop-shadow(-1px 0 1px rgba(227,232,240,.8))}.message.user .message-body{background:linear-gradient(135deg,#4a90e2,#357abd);color:#fff;border-color:#357abd}.message.user .message-body:before{left:auto;right:-8px;border-width:8px 0 8px 8px;border-color:transparent transparent transparent #4a90e2;filter:drop-shadow(1px 0 1px rgba(53,122,189,.3))}.message-body:hover{transform:translateY(-1px);box-shadow:0 4px 20px #00000014}.message-meta{display:flex;align-items:center;gap:8px;margin-top:6px;padding:0 4px}.message.user .message-meta{justify-content:flex-end}.message-time{font-size:11px;color:#8b9dc3;font-weight:500;transition:color .3s ease}.message.user .message-time{color:#ffffffb3}.message-role{font-size:10px;color:#6c7b93;background:#f1f3f9;padding:2px 6px;border-radius:8px;font-weight:500;text-transform:uppercase;letter-spacing:.5px}.message:hover .message-time{color:#4a90e2}.message.user:hover .message-time{color:#fff}.input-area{padding:16px 20px;background:#f8f9fa;border-top:1px solid #dee2e6;flex-shrink:0}.input-container{display:flex;gap:12px;margin-bottom:8px}.message-textarea{flex:1;padding:12px 16px;border:1px solid #ced4da;border-radius:8px;font-size:14px;font-family:inherit;resize:none;outline:none}.message-textarea:focus{border-color:#4a90e2;box-shadow:0 0 0 2px #4a90e21a}.send-button{padding:12px 20px;background:#4a90e2;color:#fff;border:none;border-radius:8px;font-size:14px;cursor:pointer;transition:background .2s;white-space:nowrap}.send-button:hover:not(:disabled){background:#357abd}.send-button:disabled{background:#adb5bd;cursor:not-allowed}.input-hints{font-size:12px;color:#6c757d}.text-content{font-size:15px;line-height:1.6;color:inherit;word-wrap:break-word}.message.user .text-content{color:#fff}.markdown-content{font-size:15px;line-height:1.6;color:#2c3e50;word-wrap:break-word}.message.user .markdown-content{color:#fff}.markdown-h1,.markdown-h2,.markdown-h3{margin:16px 0 10px;font-weight:600;color:inherit;line-height:1.3}.markdown-h1{font-size:1.8em;border-bottom:2px solid #e3e8f0;padding-bottom:8px}.markdown-h2{font-size:1.5em;border-bottom:1px solid #e3e8f0;padding-bottom:6px}.markdown-h3{font-size:1.3em}.message.user .markdown-h1,.message.user .markdown-h2{border-bottom-color:#ffffff4d}.markdown-paragraph{margin:8px 0;line-height:1.7}.markdown-list,.markdown-ordered-list{margin:8px 0;padding-left:20px}.markdown-list li,.markdown-ordered-list li{margin:4px 0;line-height:1.6}.inline-code{background:#747de81a;color:#5a67d8;padding:2px 6px;border-radius:4px;font-family:SF Mono,Monaco,Inconsolata,Roboto Mono,monospace;font-size:.9em;font-weight:500;border:1px solid rgba(116,125,232,.2)}.message.user .inline-code{background:#fff3;color:#f0f8ff;border-color:#ffffff4d}.code-block-wrapper{margin:12px 0;border-radius:8px;overflow:hidden;box-shadow:0 2px 8px #0000001a}.code-block{background:linear-gradient(135deg,#1e1e1e,#2d2d2d);color:#f8f8f2;padding:16px 20px;border:none;border-radius:8px;overflow-x:auto;font-family:SF Mono,Monaco,Inconsolata,Roboto Mono,monospace;font-size:14px;line-height:1.5;position:relative}.code-block:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,#667eea,#764ba2)}.code-block code{background:transparent;padding:0;border:none;color:inherit;font-family:inherit}.markdown-link{color:#4a90e2;text-decoration:none;font-weight:500;border-bottom:1px solid transparent;transition:all .3s ease}.markdown-link:hover{color:#357abd;border-bottom-color:#4a90e2}.message.user .markdown-link{color:#b3d9ff;border-bottom-color:transparent}.message.user .markdown-link:hover{color:#fff;border-bottom-color:#b3d9ff}.table-wrapper{margin:12px 0;overflow-x:auto;border-radius:8px;box-shadow:0 2px 8px #0000001a}.markdown-table{width:100%;border-collapse:collapse;background:#fff;font-size:14px}.markdown-table th{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:12px 16px;text-align:left;font-weight:600;border:none}.markdown-table td{padding:10px 16px;border-bottom:1px solid #e3e8f0;vertical-align:top}.markdown-table tr:nth-child(2n) td{background:#f8f9fb}.markdown-table tr:hover td{background:#f1f3f9}.message.user .markdown-table{background:#fffffff2;color:#2c3e50}.markdown-content blockquote{margin:12px 0;padding:12px 16px;border-left:4px solid #4a90e2;background:#f8f9fb;border-radius:0 6px 6px 0;font-style:italic}.message.user .markdown-content blockquote{background:#ffffff1a;border-left-color:#ffffff80}@media (max-width: 768px){.app{max-width:100%;height:100vh}.header{padding:12px 16px}.header h1{font-size:1.3rem}.messages{padding:16px}.message{margin-bottom:16px}.message-avatar{width:36px;height:36px;font-size:18px}.message-content{max-width:82%}.message-body{padding:12px 16px;border-radius:16px}.message-body:before{top:12px}.input-area{padding:12px 16px}.markdown-content,.text-content{font-size:14px}.code-block{font-size:13px;padding:12px 16px}.markdown-table{font-size:13px}.markdown-table th,.markdown-table td{padding:8px 12px}}@media (prefers-color-scheme: dark){body{background-color:#1a1a1a;color:#e4e4e7}.app{background:#2d2d2d;border-color:#404040}.message-body{background:#3a3a3a;border-color:#505050;color:#e4e4e7}.message-body:before{border-color:transparent #3a3a3a transparent transparent}.message.user .message-body:before{border-color:transparent transparent transparent #4a90e2}}
