body{-webkit-font-smoothing:antialiased;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}#root{height:100vh}*{box-sizing:border-box;margin:0;padding:0}body{color:#1a1a1a;background:#f9fafb;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,sans-serif;font-size:15px}.app{height:100vh;display:flex}.login-page{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);justify-content:center;align-items:center;height:100vh;display:flex}.login-card{background:#fff;border-radius:16px;width:400px;padding:40px;box-shadow:0 20px 60px #00000026}.login-header{text-align:center;margin-bottom:32px}.login-header h1{color:#1a1a1a;margin-bottom:8px;font-size:22px;font-weight:700}.login-header p{color:#888;font-size:14px}.form-group{margin-bottom:20px}.form-group label{color:#555;margin-bottom:6px;font-size:13px;font-weight:600;display:block}.form-group input[type=text],.form-group input[type=password]{border:1px solid #ddd;border-radius:8px;outline:none;width:100%;padding:10px 14px;font-size:15px;transition:border-color .2s}.form-group input:focus{border-color:#667eea}.form-error{color:#e53e3e;background:#fff5f5;border-radius:6px;margin-bottom:16px;padding:8px 12px;font-size:13px}.btn-primary{color:#fff;cursor:pointer;background:#667eea;border:none;border-radius:8px;width:100%;padding:12px;font-size:15px;font-weight:600;transition:background .2s}.btn-primary:hover:not(:disabled){background:#5a6fd6}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.login-footer{text-align:center;margin-top:20px}.btn-link{color:#667eea;cursor:pointer;background:0 0;border:none;font-size:14px}.btn-link:hover{text-decoration:underline}.checkbox-label{cursor:pointer;align-items:center;gap:8px;display:flex}.sidebar{color:#ececf1;background:#202123;flex-direction:column;flex-shrink:0;width:280px;display:flex}.sidebar-header{padding:12px}.btn-new-chat{color:#ececf1;cursor:pointer;background:0 0;border:1px solid #565869;border-radius:8px;width:100%;padding:12px;font-size:14px;transition:background .2s}.btn-new-chat:hover{background:#2a2b32}.sidebar-search{padding:0 12px 8px}.search-input{color:#ececf1;background:#2a2b32;border:1px solid #565869;border-radius:8px;outline:none;width:100%;padding:8px 12px;font-size:13px;transition:border-color .2s}.search-input:focus{border-color:#667eea}.search-input::placeholder{color:#8e8ea0}.sidebar-sessions{flex:1;padding:4px 8px;overflow-y:auto}.session-item{cursor:pointer;border-radius:8px;justify-content:space-between;align-items:center;margin-bottom:2px;padding:10px 12px;transition:background .15s;display:flex}.session-item:hover{background:#2a2b32}.session-item.active{background:#343541}.session-title{text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:14px;overflow:hidden}.session-actions{gap:2px;display:none}.session-item:hover .session-actions{display:flex}.session-action-btn{cursor:pointer;opacity:.6;background:0 0;border:none;border-radius:4px;padding:2px 4px;font-size:12px}.session-action-btn:hover{opacity:1;background:#ffffff1a}.session-rename-input{color:#ececf1;background:#40414f;border:1px solid #565869;border-radius:4px;outline:none;flex:1;padding:4px 8px;font-size:14px}.sidebar-empty{text-align:center;color:#666;padding:20px;font-size:13px}.sidebar-footer{border-top:1px solid #353740;padding:12px}.sidebar-footer-btn{color:#ececf1;cursor:pointer;text-align:left;background:0 0;border:none;border-radius:6px;width:100%;padding:10px;font-size:14px;transition:background .15s}.sidebar-footer-btn:hover{background:#2a2b32}.sidebar-footer-btn.active{color:#fff;background:#343541;border-left:3px solid #667eea;padding-left:7px}.sidebar-user{justify-content:space-between;align-items:center;margin-top:4px;display:flex}.sidebar-username{color:#8e8ea0;padding-left:10px;font-size:13px}.chat-panel{background:#fff;flex-direction:column;flex:1;min-width:0;display:flex}.chat-messages{flex:1;padding:0;overflow-y:auto}.welcome{text-align:center;max-width:700px;margin:0 auto;padding:80px 24px 40px}.welcome-icon{margin-bottom:16px;font-size:48px}.welcome h2{color:#1a1a1a;margin-bottom:8px;font-size:28px;font-weight:700}.welcome p{color:#888;margin-bottom:32px;font-size:16px}.suggestions{grid-template-columns:1fr 1fr;gap:12px;display:grid}.suggestion{cursor:pointer;color:#555;text-align:left;background:#fff;border:1px solid #e5e5e5;border-radius:12px;padding:16px;font-size:14px;line-height:1.5;transition:all .2s}.suggestion:hover{color:#667eea;border-color:#667eea;box-shadow:0 2px 8px #667eea1a}.message{border-bottom:1px solid #f0f0f0;padding:24px 0}.message:last-child{border-bottom:none}.message-inner{gap:16px;padding:0 32px;display:flex}.message-user{background:#f7f7f8}.message-avatar{background:#e5e5e5;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:16px;display:flex}.message-user .message-avatar{background:#667eea}.message-body{flex:1;min-width:0;line-height:1.75}.message-content{word-break:break-word}.message-content h1{margin:20px 0 12px;font-size:22px}.message-content h2{margin:16px 0 8px;font-size:18px}.message-content h3{margin:14px 0 6px;font-size:16px}.message-content h1:first-child,.message-content h2:first-child,.message-content h3:first-child{margin-top:0}.message-content p{margin:8px 0}.message-content ul,.message-content ol{margin:8px 0;padding-left:24px}.message-content li{margin:4px 0}.message-content table{border-collapse:collapse;width:100%;margin:16px 0;font-size:14px;display:block;overflow-x:auto}.message-content th,.message-content td{text-align:left;white-space:nowrap;border:1px solid #e0e0e0;padding:10px 14px}.message-content th{color:#fff;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);font-weight:600}.message-content tr:nth-child(2n){background:#f8f9fc}.message-content tr:hover{background:#eef0ff}.message-content code{background:#f0f0f0;border-radius:4px;padding:2px 6px;font-family:SF Mono,Menlo,monospace;font-size:13px}.message-content pre{color:#d4d4d4;background:#1e1e1e;border-radius:8px;margin:16px 0;padding:16px;overflow-x:auto}.message-content pre code{color:inherit;background:0 0;padding:0}.message-content strong{font-weight:600}.message-content blockquote{color:#555;background:#f8f9fc;border-left:4px solid #667eea;border-radius:0 6px 6px 0;margin:12px 0;padding:8px 16px}.message-content blockquote p{margin:4px 0}.message-content hr{background:linear-gradient(90deg,#0000,#d0d0d0,#0000);border:none;height:1px;margin:20px 0}.message-content a{color:#667eea;text-decoration:none}.message-content a:hover{text-decoration:underline}.message-content img{cursor:pointer;border-radius:8px;max-width:min(600px,80%);height:auto;margin:12px 0;transition:transform .2s;box-shadow:0 2px 8px #0000001a}.message-content img:hover{transform:scale(1.02)}.image-loading{color:#999;padding:20px 16px;font-size:13px;display:inline-block}.image-error{color:#c44;background:#fff5f5;border:1px solid #fdd;border-radius:6px;padding:12px 16px;font-size:13px;display:inline-block}.message-export-bar{border-top:1px solid #f0f0f0;align-items:center;gap:8px;margin-top:12px;padding-top:12px;display:flex}.btn-export{color:#555;cursor:pointer;background:#fff;border:1px solid #d0d0d0;border-radius:6px;padding:5px 14px;font-size:13px;transition:all .2s}.btn-export:hover:not(:disabled){color:#667eea;background:#f8f9ff;border-color:#667eea}.btn-export:disabled{opacity:.5;cursor:not-allowed}.btn-copy{padding:4px 10px;font-size:12px}.download-link{color:#667eea;margin-left:4px;font-size:13px;text-decoration:none}.download-link:hover{text-decoration:underline}.export-error{color:#e53e3e;font-size:12px}.ppt-modal-overlay{z-index:1000;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.save-prompt-overlay{z-index:1100;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.save-prompt{background:#fff;border-radius:14px;width:92%;max-width:440px;padding:24px 24px 20px;box-shadow:0 20px 60px #0003}.save-prompt h3{margin:0 0 12px;font-size:17px}.save-prompt-filename{word-break:break-all;color:#444;background:#f5f6fa;border-radius:6px;margin:0 0 12px;padding:8px 12px;font-family:SF Mono,Menlo,Consolas,monospace;font-size:13px}.save-prompt-hint{color:#666;margin:0 0 18px;font-size:13px;line-height:1.6}.save-prompt-actions{justify-content:flex-end;gap:8px;display:flex}[data-theme=dark] .save-prompt{color:#eee;background:#252538}[data-theme=dark] .save-prompt-filename{color:#ccc;background:#1c1c2e}[data-theme=dark] .save-prompt-hint{color:#aaa}.ppt-modal{background:#fff;border-radius:16px;flex-direction:column;width:90%;max-width:720px;max-height:85vh;display:flex;box-shadow:0 20px 60px #0003}.ppt-modal-header{border-bottom:1px solid #eee;justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.ppt-modal-header h3{margin:0;font-size:18px}.btn-close{color:#999;cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:24px}.btn-close:hover{color:#333}.ppt-modal-body{flex:1;padding:24px;overflow-y:auto}.ppt-modal-footer{border-top:1px solid #eee;justify-content:flex-end;gap:12px;padding:16px 24px;display:flex}.ppt-loading{color:#888;justify-content:center;align-items:center;gap:8px;padding:60px 0;font-size:15px;display:flex}.ppt-error{text-align:center;color:#888;padding:40px 0}.ppt-error p{margin-bottom:16px}.ppt-error-inline{color:#e53e3e;background:#fff5f5;border-radius:6px;margin-top:12px;padding:8px 12px;font-size:13px}.ppt-title-section{gap:16px;margin-bottom:20px;display:flex}.ppt-title-section .ppt-field{flex:1}.ppt-field{margin-bottom:8px}.ppt-field label{color:#888;margin-bottom:4px;font-size:12px;display:block}.ppt-field input,.ppt-field select,.ppt-field textarea{box-sizing:border-box;border:1px solid #d0d0d0;border-radius:6px;width:100%;padding:8px 10px;font-family:inherit;font-size:14px;transition:border-color .2s}.ppt-field input:focus,.ppt-field select:focus,.ppt-field textarea:focus{border-color:#667eea;outline:none}.ppt-field textarea{resize:vertical}.slide-list{flex-direction:column;gap:12px;display:flex}.slide-editor{border:1px solid #e5e7eb;border-radius:8px;overflow:hidden}.slide-editor-header{background:#f8f9fc;border-bottom:1px solid #e5e7eb;justify-content:space-between;align-items:center;padding:8px 12px;display:flex}.slide-number{color:#667eea;font-size:13px;font-weight:600}.slide-actions{gap:4px;display:flex}.slide-action-btn{cursor:pointer;color:#666;background:#fff;border:1px solid #d0d0d0;border-radius:4px;justify-content:center;align-items:center;width:28px;height:28px;font-size:14px;transition:all .15s;display:flex}.slide-action-btn:hover:not(:disabled){color:#667eea;border-color:#667eea}.slide-action-btn:disabled{opacity:.3;cursor:not-allowed}.slide-delete-btn:hover:not(:disabled){color:#e53e3e;border-color:#e53e3e}.slide-editor-body{padding:12px}.slide-row{gap:12px;margin-bottom:4px;display:flex}.slide-notes-toggle{margin-top:4px}.slide-notes-toggle summary{color:#999;cursor:pointer;margin-bottom:4px;font-size:12px}.slide-notes-toggle textarea{box-sizing:border-box;resize:vertical;border:1px solid #e0e0e0;border-radius:4px;width:100%;padding:6px 8px;font-family:inherit;font-size:13px}.btn-add-slide{color:#667eea;cursor:pointer;background:#f8f9fc;border:1px dashed #d0d0d0;border-radius:8px;width:100%;margin-top:12px;padding:10px;font-size:14px;transition:all .2s}.btn-add-slide:hover{background:#f0f2ff;border-color:#667eea}.thinking-steps{margin-bottom:12px}.thinking-toggle{cursor:pointer;color:#888;background:0 0;border:1px solid #e0e0e0;border-radius:6px;padding:4px 12px;font-size:12px;transition:all .2s}.thinking-toggle:hover{color:#667eea;border-color:#667eea}.thinking-list{border-left:2px solid #e0e0e0;margin-top:8px;padding-left:12px}.thinking-step{color:#666;gap:8px;padding:4px 0;font-size:12px;display:flex}.step-icon{flex-shrink:0}.step-content{word-break:break-word;min-width:0}.step-tool{color:#667eea;margin-bottom:2px;font-weight:500}.step-tool code{white-space:pre-wrap;background:#f5f5f5;border-radius:4px;max-height:100px;margin-top:4px;padding:6px;font-size:11px;display:block;overflow-y:auto}.step-text{white-space:pre-wrap;max-height:150px;overflow-y:auto}.step-observation .step-text{background:#fafafa;border-radius:4px;max-height:120px;padding:6px;font-size:11px}.thinking-streaming .thinking-toggle{color:#667eea;background:#f0f2ff;border-color:#667eea}.thinking-pulse{vertical-align:middle;background:#667eea;border-radius:50%;width:8px;height:8px;margin-right:6px;animation:1.2s ease-in-out infinite pulse;display:inline-block}@keyframes pulse{0%,to{opacity:.4;transform:scale(.8)}50%{opacity:1;transform:scale(1.1)}}.thinking-tool-hint{font-weight:500}.thinking-hint-text{color:#999;font-weight:400}.thinking-count{color:#aaa;font-weight:400}.thinking-streaming .thinking-list{border-left-color:#667eea;max-height:300px;overflow-y:auto}.step-active{color:#333;background:#f0f2ff;border-radius:4px;margin:2px -4px;padding:6px 4px;font-weight:500}.step-pending{color:#aaa;font-style:italic}.step-text-pending{color:#aaa}.loading-dots-inline{vertical-align:middle;gap:3px;margin-right:6px;display:inline-flex}.loading-dots-inline span{background:#667eea;border-radius:50%;width:5px;height:5px;animation:1.4s ease-in-out infinite both bounce}.loading-dots-inline span:first-child{animation-delay:-.32s}.loading-dots-inline span:nth-child(2){animation-delay:-.16s}.streaming-placeholder{color:#888;align-items:center;padding:8px 0;font-size:14px;display:flex}.loading-indicator{text-align:center;color:#888;justify-content:center;align-items:center;gap:8px;padding:24px;font-size:14px;display:flex}.loading-dots{gap:4px;display:flex}.loading-dots span{background:#888;border-radius:50%;width:6px;height:6px;animation:1.4s ease-in-out infinite both bounce}.loading-dots span:first-child{animation-delay:-.32s}.loading-dots span:nth-child(2){animation-delay:-.16s}@keyframes bounce{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}.input-bar{box-sizing:border-box;width:100%;padding:16px 32px 24px}.attachment-list{flex-wrap:wrap;gap:6px;margin-bottom:8px;display:flex}.attachment-chip{background:#f1f5f9;border:1px solid #e2e8f0;border-radius:8px;align-items:center;gap:4px;max-width:200px;padding:4px 8px;font-size:13px;display:flex}.attachment-icon{font-size:14px}.attachment-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.attachment-remove{color:#aaa;cursor:pointer;background:0 0;border:none;padding:0 2px;font-size:12px;line-height:1}.attachment-remove:hover{color:#ef4444}.attachment-uploading{color:#888;padding:4px 8px;font-size:13px}.btn-attach{cursor:pointer;opacity:.6;background:0 0;border:none;padding:4px;font-size:18px;transition:opacity .2s}.btn-attach:hover{opacity:1}.btn-attach:disabled{opacity:.3;cursor:not-allowed}.input-wrapper{background:#fff;border:1px solid #d9d9e3;border-radius:12px;align-items:flex-end;gap:8px;padding:8px 12px;transition:border-color .2s,box-shadow .2s;display:flex;box-shadow:0 2px 6px #0000000a}.input-wrapper:focus-within{border-color:#667eea;box-shadow:0 2px 12px #667eea1f}.input-wrapper textarea{resize:none;background:0 0;border:none;outline:none;flex:1;max-height:150px;padding:4px 0;font-family:inherit;font-size:15px;line-height:1.5}.btn-send,.btn-stop{cursor:pointer;white-space:nowrap;border:none;border-radius:8px;flex-shrink:0;padding:6px 12px;font-size:13px;font-weight:600;transition:all .2s}.btn-send{color:#fff;background:#667eea}.btn-send:hover:not(:disabled){background:#5a6fd6}.btn-send:disabled{cursor:not-allowed;background:#ccc}.btn-stop{color:#fff;background:#e53e3e}.btn-stop:hover{background:#c53030}.input-hint{text-align:center;color:#aaa;font-size:12px}.input-over-limit{color:#e53e3e;margin-top:8px;font-weight:500}.admin-page,.memory-page{background:#fff;flex-direction:column;flex:1;min-width:0;height:100vh;display:flex;overflow:hidden}.admin-header{border-bottom:1px solid #eee;justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.admin-header h2{font-size:18px;font-weight:700}.btn-close{cursor:pointer;color:#888;background:0 0;border:none;border-radius:6px;padding:4px 8px;font-size:20px}.btn-close:hover{background:#f0f0f0}.admin-tabs{border-bottom:1px solid #eee;padding:0 24px;display:flex}.admin-tab{cursor:pointer;color:#888;background:0 0;border:none;border-bottom:2px solid #0000;padding:12px 20px;font-size:14px;transition:all .2s}.admin-tab.active{color:#667eea;border-bottom-color:#667eea;font-weight:600}.admin-tab:hover{color:#555}.admin-message{color:#166534;background:#f0fdf4;border-radius:8px;margin:12px 24px 0;padding:8px 16px;font-size:14px}.admin-content{flex:1;padding:24px;overflow-y:auto}.editor-hint{color:#888;margin-bottom:16px;font-size:13px}.soul-textarea{resize:vertical;border:1px solid #ddd;border-radius:8px;outline:none;width:100%;padding:16px;font-family:SF Mono,Menlo,monospace;font-size:14px;line-height:1.6;transition:border-color .2s}.soul-textarea:focus{border-color:#667eea}.editor-footer{justify-content:space-between;align-items:center;margin-top:16px;display:flex}.editor-meta{color:#aaa;font-size:12px}.editor-footer .btn-primary{width:auto;padding:8px 24px}.skills-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.skills-header .editor-hint{margin-bottom:0}.btn-small{cursor:pointer;background:#fff;border:1px solid #ddd;border-radius:6px;padding:6px 14px;font-size:13px;transition:all .2s}.btn-small:hover{color:#667eea;border-color:#667eea}.btn-small.btn-primary{color:#fff;background:#667eea;border-color:#667eea;width:auto}.btn-small.btn-primary:hover{color:#fff;background:#5a6fd6;border-color:#5a6fd6}.btn-danger{color:#e53e3e}.btn-danger:hover{color:#e53e3e;border-color:#e53e3e}.btn-secondary{cursor:pointer;background:#fff;border:1px solid #ddd;border-radius:8px;padding:8px 24px;font-size:14px}.btn-secondary:hover{border-color:#999}.skill-card{border:1px solid #e5e5e5;border-radius:10px;margin-bottom:12px;padding:16px;transition:box-shadow .2s}.skill-card:hover{box-shadow:0 2px 8px #0000000f}.skill-card-header{justify-content:space-between;align-items:flex-start;display:flex}.skill-card h3{align-items:center;gap:8px;font-size:15px;font-weight:600;display:flex}.badge-disabled{color:#999;background:#f0f0f0;border-radius:4px;padding:2px 8px;font-size:11px;font-weight:400}.skill-desc{color:#888;margin-top:4px;font-size:13px}.skill-card-actions{gap:8px;display:flex}.skill-keywords{flex-wrap:wrap;gap:6px;margin-top:12px;display:flex}.keyword-tag{color:#667eea;background:#f0f0ff;border-radius:12px;padding:2px 10px;font-size:12px}.skill-editor h3{margin-bottom:20px;font-size:16px}.skill-editor .form-group{margin-bottom:16px}.skill-editor input{border:1px solid #ddd;border-radius:6px;outline:none;width:100%;padding:8px 12px;font-size:14px}.skill-editor input:focus{border-color:#667eea}.skill-editor input:disabled{color:#999;background:#f5f5f5}.skill-editor textarea{resize:vertical;border:1px solid #ddd;border-radius:6px;outline:none;width:100%;padding:12px;font-family:SF Mono,Menlo,monospace;font-size:13px;line-height:1.6}.skill-editor textarea:focus{border-color:#667eea}.skill-editor .editor-footer{justify-content:flex-end;gap:12px;display:flex}.skill-editor .editor-footer .btn-primary{width:auto;padding:8px 24px}.llm-config-editor{padding:0 4px}.llm-config-editor .form-group{margin-bottom:16px}.llm-config-editor .form-group select{background:#fff;border:1px solid #e0e0e0;border-radius:8px;width:100%;padding:10px 12px;font-size:14px}.llm-config-editor .form-group input{box-sizing:border-box;border:1px solid #e0e0e0;border-radius:8px;width:100%;padding:10px 12px;font-size:14px}.llm-config-editor .form-group input:focus,.llm-config-editor .form-group select:focus{border-color:#667eea;outline:none;box-shadow:0 0 0 3px #667eea1a}.config-source{color:#999;margin-top:4px;font-size:12px;display:block}.llm-presets{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:20px;display:flex}.preset-label{color:#666;font-size:13px}.btn-preset{cursor:pointer;background:#fff;border:1px solid #e0e0e0;border-radius:16px;padding:6px 14px;font-size:13px;transition:all .2s}.btn-preset:hover{color:#667eea;border-color:#667eea}.btn-preset.active{color:#fff;background:#667eea;border-color:#667eea}.footer-buttons{gap:8px;display:flex}.llm-config-editor .editor-footer{justify-content:space-between;align-items:center;margin-top:20px;display:flex}.user-management{padding:0 4px}.user-management-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.user-management-header .editor-hint{margin-bottom:0}.user-add-form{background:#fafafa;border-radius:8px;margin-bottom:16px;padding:12px 16px}.user-add-form .form-row{align-items:center;gap:8px;display:flex}.user-input{border:1px solid #e0e0e0;border-radius:6px;flex:1;min-width:0;padding:8px 12px;font-size:14px}.user-input:focus{border-color:#667eea;outline:none}.role-select{background:#fff;border:1px solid #e0e0e0;border-radius:6px;padding:8px 12px;font-size:14px}.user-table{border-collapse:collapse;width:100%;font-size:14px}.user-table th,.user-table td{text-align:left;border-bottom:1px solid #f0f0f0;padding:12px 16px}.user-table th{color:#555;background:#fafafa;font-size:13px;font-weight:600}.user-table tr:hover{background:#fafbff}.user-actions{gap:6px;display:flex}.role-badge{border-radius:12px;padding:2px 10px;font-size:12px;font-weight:500;display:inline-block}.role-badge.admin{color:#6d28d9;background:#ede9fe}.role-badge.user{color:#059669;background:#ecfdf5}.badge-self{color:#4338ca;background:#e0e7ff;border-radius:10px;margin-left:6px;padding:1px 8px;font-size:11px;display:inline-block}.badge-warning{color:#d97706;background:#fef3c7;border-radius:10px;padding:2px 8px;font-size:11px;display:inline-block}.memory-toolbar{border-bottom:1px solid #eee;justify-content:space-between;align-items:center;gap:12px;padding:12px 24px;display:flex}.memory-filters{flex-wrap:wrap;gap:6px;display:flex}.filter-btn{cursor:pointer;color:#666;background:#fff;border:1px solid #e0e0e0;border-radius:16px;padding:4px 12px;font-size:13px;transition:all .2s}.filter-btn.active{color:#fff;background:#667eea;border-color:#667eea}.filter-btn:hover:not(.active){color:#667eea;border-color:#667eea}.memory-add-form{background:#fafafa;border-bottom:1px solid #eee;padding:12px 24px}.form-row{align-items:center;gap:8px;display:flex}.category-select{background:#fff;border:1px solid #ddd;border-radius:6px;outline:none;padding:6px 10px;font-size:13px}.memory-input{border:1px solid #ddd;border-radius:6px;outline:none;flex:1;padding:6px 12px;font-size:14px}.memory-input:focus{border-color:#667eea}.memory-empty{text-align:center;color:#888;padding:48px 20px}.memory-empty p{margin-bottom:8px}.memory-empty-hint{color:#aaa;font-size:13px}.memory-list{flex-direction:column;gap:8px;display:flex}.memory-item{border:1px solid #e5e5e5;border-radius:8px;padding:12px 16px;transition:box-shadow .2s}.memory-item:hover{box-shadow:0 1px 4px #0000000f}.memory-content{align-items:flex-start;gap:8px;display:flex}.memory-category-tag{color:#667eea;white-space:nowrap;background:#f0f0ff;border-radius:10px;flex-shrink:0;padding:2px 8px;font-size:11px}.memory-text{color:#333;font-size:14px;line-height:1.5}.memory-meta{justify-content:space-between;align-items:center;margin-top:8px;display:flex}.memory-date{color:#aaa;font-size:12px}.memory-actions{gap:4px;display:flex}.memory-edit-row{align-items:center;gap:8px;display:flex}.toast-container{z-index:9999;flex-direction:column;gap:8px;display:flex;position:fixed;top:20px;right:20px}.toast{color:#fff;border-radius:8px;max-width:360px;padding:12px 20px;font-size:14px;animation:.3s toast-in;box-shadow:0 4px 12px #00000026}@keyframes toast-in{0%{opacity:0;transform:translate(40px)}to{opacity:1;transform:translate(0)}}.toast-success{background:#22c55e}.toast-error{background:#ef4444}.toast-info{background:#667eea}.task-status-bar{z-index:900;flex-direction:column;gap:8px;max-width:360px;display:flex;position:fixed;bottom:20px;right:20px}.task-item{background:#fff;border:1px solid #e2e8f0;border-radius:10px;align-items:center;gap:10px;padding:10px 14px;animation:.3s toast-in;display:flex;box-shadow:0 4px 16px #0000001a}.task-info{flex:1;align-items:center;gap:8px;min-width:0;display:flex}.task-label{color:#555;white-space:nowrap;font-size:13px}.task-progress-bar{background:#e2e8f0;border-radius:3px;flex:1;min-width:60px;height:6px;overflow:hidden}.task-progress-fill{background:linear-gradient(90deg,#667eea,#764ba2);border-radius:3px;height:100%;transition:width .5s}.task-percent{color:#888;text-align:right;min-width:32px;font-size:12px}.task-cancel-btn{color:#aaa;cursor:pointer;background:0 0;border:none;border-radius:4px;padding:2px 4px;font-size:14px}.task-cancel-btn:hover{color:#ef4444;background:#fef2f2}.report-panel{flex-direction:column;flex:1;min-height:0;padding:24px 32px;display:flex;overflow:hidden}.report-panel .panel-header{flex:none;justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.report-panel .panel-empty{flex:1;justify-content:center;align-items:center;display:flex}.report-panel .panel-header h2{font-size:20px;font-weight:600}.btn-refresh{color:#555;cursor:pointer;background:#fff;border:1px solid #d0d0d0;border-radius:6px;padding:6px 16px;font-size:13px;transition:all .2s}.btn-refresh:hover:not(:disabled){color:#667eea;border-color:#667eea}.report-list{flex-direction:column;flex:1;gap:8px;min-height:0;padding-right:4px;display:flex;overflow-y:auto}.report-item{background:#fff;border:1px solid #eee;border-radius:8px;align-items:center;gap:12px;padding:12px 16px;transition:border-color .2s;display:flex}.report-item:hover{border-color:#667eea}.report-icon{color:#fff;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:11px;font-weight:700;display:flex}.report-icon-w{background:#2b5797}.report-icon-p{background:#d24726}.report-icon-pdf{background:#e44d26}.report-icon-img{background:#22c55e}.report-icon-f{background:#888}.report-info{flex-direction:column;flex:1;min-width:0;display:flex}.report-name{color:#333;text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.report-size{color:#999;font-size:12px}.report-actions{flex-shrink:0;gap:6px;display:flex}.btn-danger{color:#ef4444!important;border-color:#fca5a5!important}.btn-danger:hover:not(:disabled){color:#dc2626!important;background:#fef2f2!important;border-color:#ef4444!important}.panel-empty{text-align:center;color:#999;padding:60px 20px;font-size:14px}.modal-overlay{z-index:1000;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content{background:#fff;border-radius:16px;width:90%;max-width:480px;padding:28px 32px;box-shadow:0 20px 60px #0003}.modal-content h3{margin-bottom:8px;font-size:18px}.share-hint{color:#888;margin-bottom:16px;font-size:14px}.share-url-box{gap:8px;margin:16px 0;display:flex}.share-url-input{background:#f9fafb;border:1px solid #d9d9e3;border-radius:8px;flex:1;padding:8px 12px;font-size:13px}.modal-actions{justify-content:flex-end;gap:8px;margin-top:16px;display:flex}.chat-toolbar{justify-content:flex-end;padding:8px 32px 0;display:flex}.shared-view{background:#f9fafb;min-height:100vh;padding:0 0 40px}.shared-header{z-index:10;background:#fff;border-bottom:1px solid #e2e8f0;align-items:center;gap:16px;padding:16px 32px;display:flex;position:sticky;top:0}.shared-meta h2{margin:0;font-size:18px;font-weight:600}.shared-author{color:#888;font-size:13px}.shared-messages{max-width:900px;margin:0 auto;padding:24px 32px}.shared-loading,.shared-error{text-align:center;padding:60px 20px}.shared-error h2{margin-bottom:8px;font-size:20px}.shared-error p{color:#888;margin-bottom:16px}.dashboard-panel{flex:1;padding:24px 32px;overflow-y:auto}.dashboard-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.dashboard-header h2{font-size:20px;font-weight:600}.dashboard-loading{text-align:center;color:#888;padding:60px 0}.dashboard-cards{flex-wrap:wrap;gap:16px;margin-bottom:24px;display:flex}.dash-card{text-align:center;background:#fff;border:1px solid #e2e8f0;border-radius:12px;flex:1;min-width:120px;padding:16px 20px}.dash-card-value{color:#667eea;font-size:28px;font-weight:700}.dash-card-label{color:#888;margin-top:4px;font-size:13px}.dashboard-grid{grid-template-columns:1fr 1fr;gap:20px;display:grid}.dash-section{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:20px}.dash-section h3{color:#333;margin-bottom:14px;font-size:15px;font-weight:600}.dash-empty{color:#bbb;text-align:center;padding:24px;font-size:14px}.dash-chart{overflow-x:auto}.dash-svg{width:100%;min-width:300px;height:120px}.dash-bar{fill:#667eea;opacity:.85}.dash-bar:hover{opacity:1}.dash-bar-label{fill:#888;font-size:8px}.dash-bar-value{fill:#555;font-size:8px;font-weight:600}.dash-bars-horizontal{flex-direction:column;gap:8px;display:flex}.dash-hbar-row{align-items:center;gap:8px;display:flex}.dash-hbar-label{color:#555;text-align:right;text-overflow:ellipsis;white-space:nowrap;flex-shrink:0;width:80px;font-size:13px;overflow:hidden}.dash-hbar-track{background:#f1f5f9;border-radius:9px;flex:1;height:18px;overflow:hidden}.dash-hbar-fill{background:linear-gradient(90deg,#667eea,#764ba2);border-radius:9px;min-width:4px;height:100%;transition:width .5s}.dash-hbar-fill.tool-bar{background:linear-gradient(90deg,#22c55e,#16a34a)}.dash-hbar-count{color:#666;text-align:right;min-width:36px;font-size:13px;font-weight:500}.dash-table{border-collapse:collapse;width:100%;font-size:14px}.dash-table th{text-align:left;color:#888;border-bottom:2px solid #e2e8f0;padding:6px 10px;font-size:13px;font-weight:500}.dash-table td{border-bottom:1px solid #f1f5f9;padding:6px 10px}.dash-table tr:hover td{background:#f9fafb}[data-theme=dark] body,[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}[data-theme=dark] body{color:#e0e0e0;background:#1a1a2e}[data-theme=dark] .chat-panel,[data-theme=dark] .admin-page,[data-theme=dark] .memory-page{background:#1e1e2e}[data-theme=dark] .message{border-bottom-color:#2a2a3e}[data-theme=dark] .message-user{background:#252538}[data-theme=dark] .message-avatar{background:#333}[data-theme=dark] .message-content code{color:#e0e0e0;background:#2a2a3e}[data-theme=dark] .message-content blockquote{color:#ccc;background:#252538}[data-theme=dark] .message-content th{background:linear-gradient(135deg,#4a5a9e 0%,#5a3a7e 100%)}[data-theme=dark] .message-content tr:nth-child(2n){background:#252538}[data-theme=dark] .message-content tr:hover{background:#2a2a4e}[data-theme=dark] .message-content td,[data-theme=dark] .message-content th{border-color:#3a3a4e}[data-theme=dark] .message-content a{color:#89e}[data-theme=dark] .message-content hr{background:linear-gradient(90deg,#0000,#444,#0000)}[data-theme=dark] .input-wrapper{background:#252538;border-color:#3a3a4e}[data-theme=dark] .input-wrapper textarea{color:#e0e0e0}[data-theme=dark] .input-hint{color:#666}[data-theme=dark] .btn-send:disabled{background:#444}[data-theme=dark] .message-export-bar{border-top-color:#2a2a3e}[data-theme=dark] .btn-export{color:#ccc;background:#252538;border-color:#3a3a4e}[data-theme=dark] .btn-export:hover:not(:disabled){background:#2a2a4e}[data-theme=dark] .welcome h2{color:#e0e0e0}[data-theme=dark] .welcome p{color:#888}[data-theme=dark] .suggestion{color:#ccc;background:#252538;border-color:#3a3a4e}[data-theme=dark] .suggestion:hover{color:#89e;border-color:#667eea}[data-theme=dark] .thinking-toggle{border-color:#3a3a4e}[data-theme=dark] .thinking-list{border-left-color:#3a3a4e}[data-theme=dark] .step-tool code,[data-theme=dark] .step-observation .step-text{background:#252538}[data-theme=dark] .step-active{color:#e0e0e0;background:#2a2a4e}[data-theme=dark] .login-card{background:#252538}[data-theme=dark] .login-header h1{color:#e0e0e0}[data-theme=dark] .form-group label{color:#ccc}[data-theme=dark] .form-group input{color:#e0e0e0;background:#1e1e2e;border-color:#3a3a4e}[data-theme=dark] .form-error{background:#3a1a1a}[data-theme=dark] .ppt-modal{background:#252538}[data-theme=dark] .ppt-modal-header{border-bottom-color:#3a3a4e}[data-theme=dark] .ppt-modal-footer{border-top-color:#3a3a4e}[data-theme=dark] .ppt-field input,[data-theme=dark] .ppt-field select,[data-theme=dark] .ppt-field textarea{color:#e0e0e0;background:#1e1e2e;border-color:#3a3a4e}[data-theme=dark] .slide-editor{border-color:#3a3a4e}[data-theme=dark] .slide-editor-header{background:#1e1e2e;border-bottom-color:#3a3a4e}[data-theme=dark] .slide-action-btn{color:#ccc;background:#252538;border-color:#3a3a4e}[data-theme=dark] .btn-add-slide{background:#1e1e2e;border-color:#3a3a4e}[data-theme=dark] .admin-header,[data-theme=dark] .admin-tabs{border-bottom-color:#3a3a4e}[data-theme=dark] .admin-tab:hover{color:#ccc}[data-theme=dark] .btn-close:hover{background:#2a2a3e}[data-theme=dark] .report-item{background:#252538;border-color:#3a3a4e}[data-theme=dark] .report-name{color:#e0e0e0}[data-theme=dark] .btn-refresh{color:#ccc;background:#252538;border-color:#3a3a4e}[data-theme=dark] .image-error{background:#3a1a1a;border-color:#5a2a2a}[data-theme=dark] .admin-content,[data-theme=dark] .memory-content{background:#1e1e2e}[data-theme=dark] .admin-section{background:#252538;border-color:#3a3a4e}[data-theme=dark] .admin-section h3{color:#e0e0e0}.theme-toggle-btn{color:#ececf1;cursor:pointer;text-align:left;background:0 0;border:none;border-radius:6px;width:100%;padding:10px;font-size:14px;transition:background .15s}.theme-toggle-btn:hover{background:#2a2b32}.mobile-menu-btn{z-index:999;color:#ececf1;cursor:pointer;background:#202123;border:none;border-radius:8px;justify-content:center;align-items:center;width:40px;height:40px;font-size:20px;display:none;position:fixed;top:12px;left:12px}.sidebar-overlay{display:none}[data-theme=dark] .task-item{background:#2a2a2a;border-color:#444}[data-theme=dark] .task-label{color:#ccc}[data-theme=dark] .task-progress-bar{background:#444}[data-theme=dark] .task-cancel-btn{color:#888}[data-theme=dark] .task-cancel-btn:hover{color:#ef4444;background:#3a2020}[data-theme=dark] .dash-card,[data-theme=dark] .dash-section{background:#2a2a2a;border-color:#444}[data-theme=dark] .dash-section h3{color:#ddd}[data-theme=dark] .dash-hbar-label{color:#bbb}[data-theme=dark] .dash-hbar-track{background:#444}[data-theme=dark] .dash-hbar-count{color:#bbb}[data-theme=dark] .dash-bar-label{fill:#999}[data-theme=dark] .dash-bar-value{fill:#ccc}[data-theme=dark] .dash-table th{color:#aaa;border-color:#555}[data-theme=dark] .dash-table td{border-color:#333}[data-theme=dark] .dash-table tr:hover td{background:#333}[data-theme=dark] .attachment-chip{color:#ddd;background:#333;border-color:#555}[data-theme=dark] .attachment-remove{color:#888}[data-theme=dark] .modal-content{background:#252538}[data-theme=dark] .share-url-input{color:#ddd;background:#1e1e2e;border-color:#444}[data-theme=dark] .shared-view{background:#1e1e2e}[data-theme=dark] .shared-header{background:#252538;border-color:#3a3a4e}[data-theme=dark] .chat-toolbar{background:0 0}@media (width<=768px){.mobile-menu-btn{display:flex}.sidebar{z-index:1000;transition:left .25s;position:fixed;top:0;bottom:0;left:-280px}.sidebar.open{left:0}.sidebar-overlay{z-index:999;background:#0006;position:fixed;inset:0}.sidebar-overlay.visible{display:block}.chat-panel,.admin-page,.memory-page,.report-panel{width:100%}.message-inner{padding:0 16px}.input-bar{padding:12px 16px 16px}.welcome{padding:40px 16px 24px}.welcome h2{font-size:22px}.suggestions{grid-template-columns:1fr}.login-card{width:92%;padding:24px}.ppt-modal{border-radius:12px;width:96%;max-height:90vh}.admin-header{padding:16px}.admin-tabs{padding:0 16px;overflow-x:auto}.admin-tab{white-space:nowrap;padding:10px 14px;font-size:13px}.report-panel{padding:16px}.message-content img{max-width:100%}}
