.message-image{margin-top:.75rem;border-radius:8px;overflow:hidden;max-width:100%;background-color:var(--bg-tertiary);padding:.5rem}.message-image img{max-width:100%;height:auto;display:block;border-radius:4px}.image-loading{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:2rem;color:var(--text-secondary)}.loading-spinner{width:40px;height:40px;border:4px solid var(--bg-tertiary);border-top-color:var(--accent);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.message-content.loading{display:flex;align-items:center;justify-content:flex-start;min-height:40px;padding:.75rem 1rem}.typing-indicator{display:flex;gap:4px;align-items:center}.typing-indicator span{width:8px;height:8px;background-color:var(--accent-lighter);border-radius:50%;display:inline-block;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}@keyframes bounce{0%,80%,to{transform:scale(0);opacity:.5}40%{transform:scale(1);opacity:1}}.message-content ul,.message-content ol{margin-left:1.5rem;margin-top:.5rem;margin-bottom:.5rem}.message-content ul ul,.message-content ol ol{margin-left:1.5rem}.message-content li{margin-top:.25rem;margin-bottom:.25rem;line-height:1.5}.message-content ul{list-style-type:disc}.message-content ul ul{list-style-type:circle}.message-content ul ul ul{list-style-type:square}.message-content p{margin-top:.5rem;margin-bottom:.5rem}.message-input{width:100%;padding:.875rem 1rem;border-radius:12px;font-size:1rem;resize:none;min-height:56px;max-height:150px;background-color:var(--bg-tertiary);border:1px solid var(--border);color:var(--text-primary);transition:border-color .2s,box-shadow .2s}.message-input.focused{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-alpha-20)}.send-button{background-color:var(--accent);color:#fff;min-width:80px}.send-button:hover:not(:disabled){background-color:var(--accent-hover);transform:translateY(-1px)}.image-button{background-color:var(--accent-purple);color:#fff;font-size:1.5rem;padding:.875rem 1rem}.image-button:hover{background-color:var(--accent-lighter);transform:translateY(-1px)}@media (max-width: 768px){.message-input-form{flex-direction:column}.message-input-wrapper{width:100%}.input-actions{width:100%;justify-content:space-between}.send-button,.image-button{flex:1}}.chat-interface{display:flex;flex-direction:column;height:100vh;background-color:var(--bg-primary)}.chat-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;background-color:var(--bg-secondary);border-bottom:1px solid var(--border);box-shadow:0 2px 8px #0000004d}.header-left{display:flex;align-items:center;gap:1rem}.menu-button{background:none;border:none;color:var(--text-primary);font-size:1.5rem;cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center}.menu-button:hover{color:var(--accent)}.chat-header h1{font-size:1.5rem;color:var(--text-primary);font-weight:600}.settings-button{background-color:var(--bg-tertiary);color:var(--text-secondary);padding:.5rem 1rem;border-radius:8px;font-size:.9rem;transition:all .2s ease}.settings-button:hover{background-color:var(--bg-hover);color:var(--text-primary);transform:translateY(-1px)}.message-list{flex:1;overflow-y:auto;padding:1.5rem;display:flex;flex-direction:column;gap:1rem}.message{display:flex;flex-direction:column;max-width:80%;animation:messageSlide .3s ease-out}@keyframes messageSlide{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.message.user{align-self:flex-end}.message.assistant{align-self:flex-start}.message-content{padding:1rem 1.25rem;border-radius:12px;line-height:1.5;word-wrap:break-word}.message.user .message-content{background-color:var(--accent);color:#fff;border-bottom-right-radius:4px}.message.assistant .message-content{background-color:var(--bg-tertiary);color:var(--text-primary);border-bottom-left-radius:4px}.message-image{margin-top:.75rem;border-radius:8px;overflow:hidden;max-width:100%}.message-image img{max-width:100%;height:auto;display:block}.message-image img.loading{opacity:.6;animation:pulse 1.5s infinite}@keyframes pulse{0%,to{opacity:.6}50%{opacity:.3}}.message-timestamp{font-size:.75rem;color:var(--text-muted);margin-top:.5rem;padding:0 .25rem}.message-input-container{padding:1.5rem;background-color:var(--bg-secondary);border-top:1px solid var(--border)}.message-input-form{display:flex;gap:.75rem;align-items:flex-end}.message-input-wrapper{flex:1;display:flex;flex-direction:column;gap:.5rem}.message-input{width:100%;padding:.875rem 1rem;border-radius:12px;font-size:1rem;resize:none;min-height:56px;max-height:150px;background-color:var(--bg-tertiary);border:1px solid var(--border);color:var(--text-primary)}.message-input:focus{border-color:var(--accent)}.input-actions{display:flex;gap:.5rem}.send-button,.image-button{padding:.875rem 1.25rem;border-radius:12px;font-size:1rem;font-weight:500;transition:all .2s ease}.send-button{background-color:var(--accent);color:#fff}.send-button:hover{background-color:var(--accent-hover)}.send-button:disabled{background-color:var(--bg-tertiary);color:var(--text-muted);cursor:not-allowed;transform:none}.image-button{background-color:var(--accent-purple);color:#fff}.image-button:hover{background-color:var(--accent-lighter)}@media (max-width: 768px){.chat-header h1{font-size:1.25rem}.message{max-width:90%}.message-input-form{flex-direction:column}.message-input-wrapper{width:100%}.input-actions{width:100%;justify-content:space-between}.send-button,.image-button{flex:1}}.settings-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.settings-modal{background-color:var(--bg-secondary);border-radius:16px;width:90%;max-width:600px;max-height:80vh;overflow:hidden;display:flex;flex-direction:column;animation:slideUp .3s ease-out;box-shadow:0 8px 32px #00000080}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.settings-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:1px solid var(--border)}.settings-header h2{font-size:1.5rem;color:var(--text-primary)}.close-button{background:none;border:none;color:var(--text-secondary);font-size:2rem;line-height:1;padding:0;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:8px;transition:all .2s}.close-button:hover{background-color:var(--bg-tertiary);color:var(--text-primary)}.settings-tabs{display:flex;border-bottom:1px solid var(--border)}.tab{flex:1;padding:1rem;background:none;border:none;color:var(--text-secondary);font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s;border-bottom:2px solid transparent}.tab:hover{background-color:var(--bg-tertiary);color:var(--text-primary)}.tab.active{color:var(--accent-lighter);border-bottom-color:var(--accent)}.settings-content{flex:1;overflow-y:auto;padding:1.5rem}.settings-section{display:flex;flex-direction:column;gap:1.5rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{font-size:.9rem;font-weight:500;color:var(--text-secondary)}.checkbox-label{display:flex;align-items:center;gap:.75rem;cursor:pointer}.checkbox-label input[type=checkbox]{width:18px;height:18px;cursor:pointer;accent-color:var(--accent)}.form-group input[type=text],.form-group select,.form-group textarea{padding:.75rem 1rem;border-radius:8px;background-color:var(--bg-tertiary);border:1px solid var(--border);color:var(--text-primary);font-size:1rem;transition:border-color .2s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--accent);outline:none}.form-group textarea{resize:vertical;min-height:80px}.form-group input[type=range]{width:100%;height:8px;border-radius:4px;background-color:var(--bg-tertiary);-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer}.form-group input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:20px;height:20px;border-radius:50%;background-color:var(--accent);cursor:pointer;transition:all .2s}.form-group input[type=range]::-webkit-slider-thumb:hover{background-color:var(--accent-hover);transform:scale(1.1)}.settings-footer{display:flex;gap:1rem;padding:1.5rem;border-top:1px solid var(--border);background-color:var(--bg-tertiary)}.cancel-button,.save-button{flex:1;padding:.875rem 1.5rem;border-radius:8px;font-size:1rem;font-weight:500;transition:all .2s}.cancel-button{background-color:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border)}.cancel-button:hover{background-color:var(--bg-hover)}.save-button{background-color:var(--accent);color:#fff}.save-button:hover{background-color:var(--accent-hover);transform:translateY(-1px)}@media (max-width: 768px){.settings-modal{width:95%;max-height:90vh}.settings-header,.settings-content,.settings-footer{padding:1rem}}.conversation-sidebar{position:fixed;left:-320px;top:0;width:300px;height:100vh;background:#1a1a2e;border-right:1px solid #2d2d44;padding:20px;transition:left .3s ease;z-index:1000;display:flex;flex-direction:column;gap:16px}.conversation-sidebar.open{left:0}.sidebar-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#00000080;z-index:999}.sidebar-header{display:flex;justify-content:space-between;align-items:center}.sidebar-header h2{margin:0;font-size:1.5rem;color:#e0e0e0}.close-sidebar-button{background:none;border:none;color:#e0e0e0;font-size:1.5rem;cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center}.close-sidebar-button:hover{color:#ff6b6b}.new-conversation-button{background:#6c5ce7;color:#fff;border:none;padding:12px 16px;border-radius:8px;cursor:pointer;font-size:1rem;font-weight:500;transition:background .2s}.new-conversation-button:hover{background:#5b4cdb}.new-conversation-form{display:flex;flex-direction:column;gap:8px}.new-conversation-form input{padding:10px 12px;border:1px solid #3d3d5c;border-radius:6px;background:#2d2d44;color:#e0e0e0;font-size:1rem}.new-conversation-form input:focus{outline:none;border-color:#6c5ce7}.form-actions{display:flex;gap:8px}.create-button,.cancel-button{flex:1;padding:8px;border-radius:6px;border:none;cursor:pointer;font-size:.9rem;font-weight:500}.create-button{background:#6c5ce7;color:#fff}.create-button:hover{background:#5b4cdb}.cancel-button{background:#3d3d5c;color:#e0e0e0}.cancel-button:hover{background:#4d4d6c}.conversation-list{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:4px}.conversation-item{display:flex;justify-content:space-between;align-items:center;padding:12px;border-radius:8px;cursor:pointer;transition:background .2s;gap:8px}.conversation-item:hover{background:#2d2d44}.conversation-item.active{background:#6c5ce7}.conversation-name{flex:1;color:#e0e0e0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.delete-conversation-button{background:none;border:none;cursor:pointer;padding:4px 8px;opacity:0;transition:opacity .2s;font-size:1rem}.conversation-item:hover .delete-conversation-button{opacity:1}.delete-conversation-button:hover{transform:scale(1.1)}:root{--bg-primary: #1a1a1a;--bg-secondary: #2d2d2d;--bg-tertiary: #3a3a3a;--text-primary: #e0e0e0;--text-secondary: #b0b0b0;--text-muted: #808080;--accent: #9333ea;--accent-hover: #a855f7;--accent-light: #a855f7;--accent-lighter: #c084fc;--accent-dark: #7e22ce;--accent-purple: #8b5cf6;--success: #4caf50;--error: #f44336;--warning: #ff9800;--border: #404040;--border-color: #404040;--bg-hover: #3f3f3f;--code-bg: #1e1e1e;--sidebar-width: 280px;--accent-alpha-8: rgba(147, 51, 234, .08);--accent-alpha-10: rgba(147, 51, 234, .1);--accent-alpha-12: rgba(147, 51, 234, .12);--accent-alpha-15: rgba(147, 51, 234, .15);--accent-alpha-20: rgba(147, 51, 234, .2);--accent-alpha-25: rgba(147, 51, 234, .25);--accent-alpha-30: rgba(147, 51, 234, .3);--accent-alpha-35: rgba(147, 51, 234, .35);--accent-alpha-40: rgba(147, 51, 234, .4);--accent-alpha-45: rgba(147, 51, 234, .45);--accent-alpha-50: rgba(147, 51, 234, .5);--accent-alpha-60: rgba(147, 51, 234, .6);--accent-alpha-70: rgba(147, 51, 234, .7)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--bg-primary);color:var(--text-primary);line-height:1.6}code{font-family:Fira Code,Courier New,monospace}#root{min-height:100vh;min-height:100dvh}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--bg-secondary)}::-webkit-scrollbar-thumb{background:var(--bg-tertiary);border-radius:5px}::-webkit-scrollbar-thumb:hover{background:var(--border)}button{font-family:inherit;cursor:pointer;border:none;outline:none;transition:all .2s ease;-webkit-user-select:none;user-select:none}button:hover{transform:translateY(-1px);filter:brightness(1.1)}button:active{transform:translateY(0);filter:brightness(.95)}input,textarea{font-family:inherit;color:var(--text-primary);background-color:var(--bg-tertiary);border:1px solid var(--border);outline:none;transition:border-color .2s}input:focus,textarea:focus{border-color:var(--accent)}a{color:var(--accent);text-decoration:none;transition:color .2s ease;cursor:pointer}a:hover{color:var(--accent-hover);text-decoration:underline}
