body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.App{background:#f5f5f5;display:flex;flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;height:100vh;overflow:hidden}.app-header{background:#1a1a1a;box-shadow:0 2px 4px #0000001a;gap:1rem;padding:.75rem 1rem;z-index:100}.app-header,.sidebar-toggle{align-items:center;color:#fff;display:flex}.sidebar-toggle{background:#0000;border:1px solid #fff3;border-radius:6px;cursor:pointer;font-size:1.5rem;height:40px;justify-content:center;padding:0;transition:all .2s;width:40px}.sidebar-toggle:hover{background:#ffffff1a;border-color:#ffffff4d}.app-header h1{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#007bff,#00bcd4);-webkit-background-clip:text;background-clip:text;flex:1 1;font-size:1.5rem;font-weight:600;margin:0}.app-body{flex:1 1}.app-body,.app-sidebar{display:flex;overflow:hidden}.app-sidebar{background:#f5f5f5;border-right:1px solid #e0e0e0;flex-direction:column;transition:margin-left .3s ease;width:300px}.app-main{background:#fff;display:flex;flex:1 1;flex-direction:column;min-width:0}.chat-header{background-color:#2c3e50;box-shadow:0 2px 4px #0000001a;color:#fff;padding:1rem;text-align:center}.chat-header h1{font-size:1.5rem;margin:0}.chat-container{flex:1 1;width:100%}.messages-container{background-color:#f8f9fa;padding:1rem}.message{flex-direction:column;margin-bottom:1rem}.user-message{align-items:flex-end}.bot-message{align-items:flex-start}.message-content{border-radius:1rem;max-width:70%;white-space:pre-wrap}.user-message .message-content{background-color:#007bff;border-bottom-right-radius:.25rem;color:#fff}.bot-message .message-content{background-color:#e9ecef;border-bottom-left-radius:.25rem;color:#333}.message-content.loading{background-color:#ffc107;color:#333;font-style:italic}.message-timestamp{color:#6c757d;font-size:.75rem;margin-top:.25rem;padding:0 .5rem}.input-container{background-color:#fff;border-top:1px solid #dee2e6;gap:.5rem;padding:1rem}.input-container textarea{border:1px solid #ced4da;border-radius:.5rem;flex:1 1;font-family:inherit;font-size:1rem;padding:.75rem;resize:vertical}.input-container textarea:focus{border-color:#007bff;box-shadow:0 0 0 .2rem #007bff40;outline:none}.input-container button{align-self:flex-end;background-color:#007bff;border:none;border-radius:.5rem;color:#fff;cursor:pointer;font-size:1rem;font-weight:500;padding:.75rem 1.5rem}.input-container button:hover:not(:disabled){background-color:#0056b3}.input-container button:disabled{background-color:#6c757d;cursor:not-allowed}@media (max-width:768px){.app-header h1{font-size:1.2rem}.app-sidebar{bottom:0;box-shadow:2px 0 8px #0000001a;left:0;position:fixed;top:60px;transform:translateX(-100%);transition:transform .3s ease;width:280px;z-index:99}.app-body .app-sidebar{transform:translateX(0)}.app-main{width:100%}}@media (max-width:480px){.app-header{gap:.5rem;padding:.5rem}.sidebar-toggle{font-size:1.2rem;height:36px;width:36px}.app-sidebar{width:100%}.message-content{max-width:85%}}.loading{align-items:center;color:#666;display:flex;justify-content:center;padding:2rem}.error{padding:1rem;text-align:center}@keyframes slideIn{0%{opacity:0;transform:translateX(-10px)}to{opacity:1;transform:translateX(0)}}::-webkit-scrollbar{height:8px;width:8px}::-webkit-scrollbar-track{background:#f1f1f1}::-webkit-scrollbar-thumb{background:#ccc;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#999}@media print{.app-sidebar,.file-upload-container,.persona-selector,.sidebar-toggle{display:none!important}.app-header{border-bottom:1px solid #000}.app-header,.message-list{background:#fff;color:#000}}.simple-chat-container{background:#fff;border-radius:16px;box-shadow:0 20px 60px #0000001a;display:flex;flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;height:700px;margin:0 auto;max-width:500px;overflow:hidden;width:100%}.simple-chat-header{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:20px;position:relative;text-align:center}.chat-title{font-size:1.3rem;font-weight:600;margin-bottom:5px}.chat-subtitle{font-size:.9rem;opacity:.9}.connection-status{background:#10b981;border:1px solid #fff;border-radius:50%;height:8px;position:absolute;right:50px;top:45px;width:8px}.connection-status.disconnected{background:#ef4444}.close-btn{align-items:center;background:#ffffff1a;border:1px solid #ffffff4d;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:1.2rem;height:32px;justify-content:center;position:absolute;right:15px;top:15px;transition:all .2s ease;width:32px}.close-btn:hover{background:#fff3;border-color:#ffffff80}.session-controls{display:flex;gap:8px;left:15px;position:absolute;top:15px}.session-btn{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff1a;border:1px solid #ffffff4d;border-radius:6px;color:#fff;cursor:pointer;font-size:.8rem;padding:6px 12px;transition:all .2s ease}.session-btn:hover{background:#fff3;border-color:#ffffff80}.session-btn:disabled{cursor:not-allowed;opacity:.5}.session-btn.new-session{background:#10b98133;border-color:#10b98180}.session-btn.end-session{background:#ef444433;border-color:#ef444480;position:absolute;right:50px;top:15px}.persona-switcher{background:#f8f9fa;border-bottom:1px solid #e9ecef;padding:15px 20px}.persona-label{color:#6b7280;font-size:.8rem;font-weight:500;margin-bottom:8px}.persona-select{background:#fff;border:1px solid #d1d5db;border-radius:8px;font-size:.9rem;padding:10px 12px;transition:border-color .2s ease;width:100%}.persona-select:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.messages-container{display:flex;flex:1 1;flex-direction:column;gap:15px;overflow-y:auto;padding:20px}.message{align-items:flex-start;animation:fadeInUp .3s ease-out;gap:10px}.message-avatar{font-size:1rem;font-weight:600}.message.user .message-avatar{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.message.assistant .message-avatar,.message.system .message-avatar{background:linear-gradient(135deg,#10b981,#059669);color:#fff}.message-bubble{max-width:70%}.message-content{border-radius:16px;font-size:.95rem;padding:12px 16px}.message.user .message-content{background:linear-gradient(135deg,#667eea,#764ba2);border-bottom-right-radius:4px}.message.assistant .message-content,.message.system .message-content{background:#f1f3f4;border-bottom-left-radius:4px;color:#1f2937}.message-time{color:#9ca3af;font-size:.75rem;margin-top:4px;text-align:right}.message.assistant .message-time,.message.system .message-time{text-align:left}.typing-indicator{align-items:center;display:none;gap:10px;padding:15px 20px}.typing-indicator.show{display:flex}.typing-dots{background:#f1f3f4;border-radius:16px;border-bottom-left-radius:4px;display:flex;gap:4px;padding:12px 16px}.typing-dot{animation:typing 1.4s ease-in-out infinite;background:#9ca3af;border-radius:50%;height:8px;width:8px}.typing-dot:nth-child(2){animation-delay:.2s}.typing-dot:nth-child(3){animation-delay:.4s}.input-area{background:#fff;border-top:1px solid #e9ecef;padding:20px}.input-container{align-items:flex-end;display:flex;gap:10px}.message-input{border:1px solid #d1d5db;border-radius:20px;flex:1 1;font-size:.95rem;min-height:44px;padding:12px 16px;transition:border-color .2s ease}.message-input:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.message-input:disabled{background-color:#f3f4f6;cursor:not-allowed}.send-button{background:linear-gradient(135deg,#667eea,#764ba2);flex-shrink:0;font-size:1.1rem;height:44px;transition:all .2s ease;width:44px}.send-button:hover:not(:disabled){box-shadow:0 4px 12px #667eea4d}.send-button:disabled{background:#9ca3af;box-shadow:none;transform:none}.empty-state{align-items:center;color:#9ca3af;display:flex;flex:1 1;font-style:italic;justify-content:center;margin:40px 0;text-align:center}@keyframes fadeInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (max-width:640px){.simple-chat-container{border-radius:12px;height:calc(100vh - 20px);margin:10px;max-width:none}.simple-chat-header{padding:15px}.chat-title{font-size:1.2rem}.persona-switcher{padding:12px 15px}.messages-container{padding:15px}.message-content{font-size:.9rem;max-width:85%}.input-area{padding:15px}.session-controls{justify-content:center;margin-bottom:10px;position:static}.session-btn.end-session{margin-left:8px;position:static}}@media (prefers-reduced-motion:reduce){.message,.send-button,.typing-dot{animation:none}}@media (prefers-contrast:high){.simple-chat-container{border:2px solid #000}.message-input,.persona-select{border-width:2px}}.messages-container::-webkit-scrollbar{width:6px}.messages-container::-webkit-scrollbar-track{background:#f1f1f1}.messages-container::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:3px}.messages-container::-webkit-scrollbar-thumb:hover{background:#a1a1a1}.simple-chat-page{min-height:100vh;width:100%}.simple-chat-background{align-items:center;background:linear-gradient(135deg,#f5f7fa,#c3cfe2);display:flex;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;justify-content:center;min-height:100vh;padding:20px}@media (max-width:640px){.simple-chat-background{padding:10px}}.session-list{background:#f5f5f5;display:flex;flex-direction:column;height:100%}.session-list-header{align-items:center;background:#fff;border-bottom:1px solid #e0e0e0;display:flex;justify-content:space-between;padding:1rem}.session-list-header h3{color:#333;font-size:1.2rem;margin:0}.new-session-btn{background:#007bff;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:.9rem;padding:.5rem 1rem;transition:background .2s}.new-session-btn:hover{background:#0056b3}.session-search{background:#fff;border-bottom:1px solid #e0e0e0;padding:.75rem 1rem}.search-input{border:1px solid #ddd;border-radius:4px;font-size:.9rem;padding:.5rem;width:100%}.search-input:focus{border-color:#007bff;outline:none}.sessions-container{flex:1 1;overflow-y:auto;padding:.5rem}.empty-state,.error,.loading{color:#666;padding:2rem;text-align:center}.error{color:#dc3545}.session-item{align-items:center;background:#fff;border:1px solid #0000;border-radius:6px;cursor:pointer;display:flex;margin-bottom:.5rem;padding:.75rem;transition:all .2s}.session-item:hover{background:#f8f9fa;border-color:#e0e0e0}.session-item.active{background:#e3f2fd;border-color:#007bff}.session-content{flex:1 1;min-width:0}.session-title{color:#333;font-weight:500;margin-bottom:.25rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.session-meta{color:#666;display:flex;font-size:.8rem;gap:.5rem}.message-count{color:#666}.session-date{color:#999}.delete-session-btn{background:#0000;border:none;color:#999;cursor:pointer;font-size:1.5rem;height:24px;line-height:1;opacity:0;padding:0;transition:all .2s;width:24px}.session-item:hover .delete-session-btn{opacity:1}.delete-session-btn:hover{background:#fee;border-radius:4px;color:#dc3545}.session-list-footer{background:#fff;border-top:1px solid #e0e0e0;padding:.5rem 1rem;text-align:center}.refresh-btn{background:#0000;border:1px solid #ddd;border-radius:4px;color:#666;cursor:pointer;font-size:1.2rem;padding:.5rem 1rem;transition:all .2s}.refresh-btn:hover{background:#f8f9fa;border-color:#007bff;color:#007bff}.sessions-container::-webkit-scrollbar{width:6px}.sessions-container::-webkit-scrollbar-track{background:#f1f1f1}.sessions-container::-webkit-scrollbar-thumb{background:#ccc;border-radius:3px}.sessions-container::-webkit-scrollbar-thumb:hover{background:#999}.chat-container{background:#fff;display:flex;flex-direction:column;height:100%}.chat-header{background:#f8f9fa;border-bottom:1px solid #e0e0e0;padding:.75rem 1rem}.session-indicator{align-items:center;color:#666;display:flex;font-size:.85rem;gap:.5rem}.session-indicator:before{color:#28a745;content:"•";font-size:1.2rem}.session-indicator.new:before{color:#ffc107}.message-list{background:#fff;flex:1 1;overflow-y:auto;padding:1rem}.empty-chat{align-items:center;color:#666;display:flex;flex-direction:column;height:100%;justify-content:center;text-align:center}.empty-chat-icon{font-size:4rem;margin-bottom:1rem;opacity:.3}.empty-chat h3{color:#333;margin:0 0 .5rem}.empty-chat p{color:#999;margin:0}.message{animation:fadeIn .3s ease-in;display:flex;gap:.75rem;margin-bottom:1.5rem}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.message.user{flex-direction:row-reverse}.message-avatar{align-items:center;background:#f0f0f0;border-radius:50%;display:flex;flex-shrink:0;font-size:1.2rem;height:32px;justify-content:center;width:32px}.message.user .message-avatar{background:#e3f2fd}.message.assistant .message-avatar{background:#f3e5f5}.message.system .message-avatar{background:#fff3e0}.message-content-wrapper{max-width:70%;min-width:200px}.message.user .message-content-wrapper{align-items:flex-end}.message-header{align-items:center;display:flex;font-size:.85rem;gap:.5rem;margin-bottom:.25rem}.message.user .message-header{flex-direction:row-reverse}.message-role{color:#333;font-weight:600}.message-timestamp{color:#999}.message-content{word-wrap:break-word;background:#f5f5f5;border-radius:12px;color:#333;line-height:1.5;padding:.75rem 1rem}.message.user .message-content{background:#007bff;color:#fff}.message.system .message-content{background:#fff8e1;color:#856404;font-style:italic}.message-content .code-block{background:#282c34;border-radius:6px;color:#abb2bf;font-family:Consolas,Monaco,monospace;font-size:.9rem;margin:.5rem 0;overflow-x:auto;padding:1rem}.message.user .message-content .code-block{background:#0056b3;color:#e0e0e0}.message-metadata{font-size:.75rem;margin-top:.25rem}.persona-tag{background:#e9ecef;border-radius:12px;color:#666;display:inline-block;font-size:.75rem;padding:.2rem .5rem}.message.loading .message-content{padding:1rem}.typing-indicator{display:flex;gap:4px}.typing-indicator span{animation:typing 1.4s infinite;background:#999;border-radius:50%;height:8px;width:8px}.typing-indicator span:nth-child(2){animation-delay:.2s}.typing-indicator span:nth-child(3){animation-delay:.4s}@keyframes typing{0%,60%,to{opacity:.7;transform:translateY(0)}30%{opacity:1;transform:translateY(-10px)}}.chat-input-area{align-items:flex-end;background:#f8f9fa;border-top:1px solid #e0e0e0;display:flex;gap:.5rem;padding:1rem}.message-input-container{background:#fff;border:1px solid #ddd;border-radius:8px;display:flex;flex:1 1;flex-direction:column;padding:.5rem;transition:border-color .2s}.message-input-container:focus-within{border-color:#007bff}.message-input{border:none;font-family:inherit;font-size:1rem;line-height:1.5;max-height:120px;min-height:24px;outline:none;resize:none;width:100%}.input-actions{align-items:center;display:flex;justify-content:space-between;margin-top:.5rem}.char-count{color:#999;font-size:.75rem}.send-button{align-items:center;background:#007bff;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;height:32px;justify-content:center;padding:0;transition:all .2s;width:32px}.send-button:hover:not(:disabled){background:#0056b3;transform:scale(1.05)}.send-button:disabled{background:#ccc;cursor:not-allowed}.file-upload-container{align-items:center;display:flex;gap:.5rem}.file-upload-btn{align-items:center;background:#fff;border:1px solid #ddd;border-radius:8px;cursor:pointer;display:flex;height:40px;justify-content:center;overflow:hidden;padding:0;position:relative;transition:all .2s;width:40px}.file-upload-btn:hover:not(:disabled){background:#f8f9fa;border-color:#007bff}.file-upload-btn:disabled{cursor:not-allowed;opacity:.6}.file-upload-btn.uploading{background:#e3f2fd;border-color:#007bff}.upload-progress{background:#007bff33;height:100%;left:0;position:absolute;top:0;transition:width .3s ease}.upload-icon{font-size:1.2rem;position:relative;z-index:1}.upload-status{color:#007bff;font-size:.75rem;white-space:nowrap}.message-list::-webkit-scrollbar{width:8px}.message-list::-webkit-scrollbar-track{background:#f1f1f1}.message-list::-webkit-scrollbar-thumb{background:#ccc;border-radius:4px}.message-list::-webkit-scrollbar-thumb:hover{background:#999}@media (max-width:768px){.message-content-wrapper{max-width:85%}.message{margin-bottom:1rem}.chat-input-area{padding:.75rem}}.persona-selector{position:relative}.persona-selector-trigger{align-items:center;background:#ffffff1a;border:1px solid #fff3;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:.9rem;gap:.5rem;padding:.5rem 1rem;transition:all .2s}.persona-selector-trigger:hover{background:#fff3;border-color:#ffffff4d}.persona-icon{font-size:1.2rem}.persona-name{font-weight:500}.dropdown-arrow{font-size:.8rem;margin-left:.25rem;opacity:.8}.persona-dropdown{animation:dropdownFadeIn .2s ease-out;background:#fff;border:1px solid #e0e0e0;border-radius:12px;box-shadow:0 4px 12px #00000026;overflow:hidden;position:absolute;right:0;top:calc(100% + .5rem);width:320px;z-index:1000}@keyframes dropdownFadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.persona-dropdown-header{background:#f8f9fa;border-bottom:1px solid #e0e0e0;padding:1rem}.persona-dropdown-header h4{color:#333;font-size:1rem;margin:0 0 .25rem}.persona-dropdown-header p{color:#666;font-size:.85rem;margin:0}.persona-list{max-height:400px;overflow-y:auto}.persona-item{border-bottom:1px solid #f0f0f0;cursor:pointer;padding:1rem;transition:background .2s}.persona-item:last-child{border-bottom:none}.persona-item:hover{background:#f8f9fa}.persona-item.active{background:#e3f2fd}.persona-item-header{align-items:center;display:flex;gap:.5rem;margin-bottom:.25rem}.persona-item-icon{font-size:1.5rem}.persona-item-name{color:#333;flex:1 1;font-weight:600}.active-indicator{color:#007bff;font-weight:700}.persona-item-description{color:#666;font-size:.85rem;line-height:1.4;margin:.25rem 0}.persona-capabilities{display:flex;flex-wrap:wrap;gap:.25rem;margin-top:.5rem}.capability-tag{background:#e9ecef;border-radius:12px;color:#495057;display:inline-block;font-size:.75rem;padding:.2rem .5rem}.persona-list::-webkit-scrollbar{width:6px}.persona-list::-webkit-scrollbar-track{background:#f1f1f1}.persona-list::-webkit-scrollbar-thumb{background:#ccc;border-radius:3px}.persona-list::-webkit-scrollbar-thumb:hover{background:#999}@media (max-width:768px){.persona-dropdown{width:280px}.persona-selector-trigger{font-size:.85rem;padding:.4rem .8rem}.dropdown-arrow,.persona-name{display:none}}