code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}*{box-sizing:border-box}:root{--bg-primary:#fafafa;--bg-secondary:#fff;--bg-tertiary:#f8f9fa;--bg-quaternary:#f9fafb;--text-primary:#1a1a1a;--text-secondary:#525252;--text-tertiary:#6b7280;--text-quaternary:#374151;--border-primary:#e5e7eb;--border-secondary:#d1d5db;--border-tertiary:#e9ecef;--accent-primary:#2563eb;--accent-secondary:#667eea;--accent-tertiary:#764ba2;--shadow-light:#0000000f;--shadow-medium:#0000001a;--shadow-accent:#2563eb26;--overlay-bg:#fafafacc}body.dark-mode{--bg-primary:#0f0f0f;--bg-secondary:#1a1a1a;--bg-tertiary:#262626;--bg-quaternary:#2a2a2a;--text-primary:#fff;--text-secondary:#d4d4d4;--text-tertiary:#a3a3a3;--text-quaternary:#d1d5db;--border-primary:#404040;--border-secondary:#525252;--border-tertiary:#404040;--accent-primary:#3b82f6;--accent-secondary:#667eea;--accent-tertiary:#764ba2;--shadow-light:#0000004d;--shadow-medium:#00000080;--shadow-accent:#3b82f640;--overlay-bg:#0f0f0fcc}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#fafafa;background-color:var(--bg-primary);color:#1a1a1a;color:var(--text-primary);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0;transition:background-color .3s ease,color .3s ease}.voice-interface{background:#fff;background:var(--bg-secondary);border:1px solid #e5e7eb;border:1px solid var(--border-primary);border-radius:20px;box-shadow:#0000001a;box-shadow:var(--shadow-medium);left:50%;min-width:250px;padding:16px 24px;position:absolute;text-align:center;top:-80px;transform:translateX(-50%);z-index:10}.voice-status{align-items:center;display:flex;flex-direction:column;gap:12px}.voice-status.listening{color:#2563eb;color:var(--accent-primary)}.voice-status.thinking{color:#f59e0b}.voice-status.speaking{color:#10b981}.voice-status-text{color:#525252;color:var(--text-secondary);font-size:14px;font-weight:500}.audio-visualizer{align-items:end;display:flex;gap:3px;height:30px;justify-content:center}.audio-bar{animation:audioBarPulse 1s ease-in-out infinite alternate;background:#2563eb;background:var(--accent-primary);border-radius:2px;min-height:6px;transition:height .1s ease;width:4px}.audio-bar:nth-child(2){animation-delay:.1s}.audio-bar:nth-child(3){animation-delay:.2s}.audio-bar:nth-child(4){animation-delay:.3s}.audio-bar:nth-child(5){animation-delay:.4s}@keyframes audioBarPulse{0%{opacity:.6}to{opacity:1}}.thinking-indicator{align-items:center;display:flex;height:30px;justify-content:center}.thinking-dots{display:flex;gap:4px}.thinking-dots span{animation:thinkingPulse 1.4s ease-in-out infinite both;background:#f59e0b;border-radius:50%;height:8px;width:8px}.thinking-dots span:first-child{animation-delay:-.32s}.thinking-dots span:nth-child(2){animation-delay:-.16s}.thinking-dots span:nth-child(3){animation-delay:0s}@keyframes thinkingPulse{0%,80%,to{opacity:.5;transform:scale(.8)}40%{opacity:1;transform:scale(1.2)}}.speaking-indicator{align-items:center;display:flex;height:30px;justify-content:center}.speaking-wave{animation:speakingWave 1s ease-in-out infinite;border:3px solid #10b981;height:24px;width:24px}@keyframes speakingWave{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.5)}}.input-controls{gap:8px;position:relative;z-index:5}.input-controls,.voice-toggle{align-items:center;display:flex}.voice-toggle{background:#fff;background:var(--bg-secondary);border:1px solid #e5e7eb;border:1px solid var(--border-primary);border-radius:8px;color:#525252;color:var(--text-secondary);cursor:pointer;font-size:16px;height:40px;justify-content:center;min-width:40px;padding:8px;transition:all .2s ease}.voice-toggle:hover{background:#f8f9fa;background:var(--bg-tertiary);color:#1a1a1a;color:var(--text-primary)}.voice-toggle.active{background:#2563eb;background:var(--accent-primary);border-color:#2563eb;border-color:var(--accent-primary);color:#fff}.voice-toggle.error{animation:errorShake .5s ease-in-out;background:#ef4444;border-color:#ef4444;color:#fff}@keyframes errorShake{0%,to{transform:translateX(0)}25%{transform:translateX(-3px)}75%{transform:translateX(3px)}}.voice-record-simple{align-items:center;background:#fff;background:var(--bg-secondary);border:2px solid #e5e7eb;border:2px solid var(--border-primary);border-radius:12px;color:#1a1a1a;color:var(--text-primary);cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:8px;justify-content:center;min-width:160px;padding:12px 20px;transition:all .3s ease}.voice-record-simple:hover:not(:disabled){background:#f8f9fa;background:var(--bg-tertiary);border-color:#2563eb;border-color:var(--accent-primary);transform:translateY(-1px)}.voice-record-simple:disabled{cursor:not-allowed;opacity:.7}.voice-record-simple.recording{animation:recordingPulse 2s ease-in-out infinite;background:#dc2626;border-color:#dc2626;color:#fff}.voice-record-simple.processing{background:#f59e0b;border-color:#f59e0b;color:#fff}.voice-record-simple.speaking{background:#10b981;border-color:#10b981;color:#fff}.voice-record-simple.ready{background:#2563eb;background:var(--accent-primary);border-color:#2563eb;border-color:var(--accent-primary);color:#fff}.voice-enable-button{align-items:center;background:#fff;background:var(--bg-secondary);border:2px solid #e5e7eb;border:2px solid var(--border-primary);border-radius:12px;color:#525252;color:var(--text-secondary);cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:8px;padding:12px 20px;transition:all .3s ease}.voice-enable-button:hover{background:#2563eb;background:var(--accent-primary);border-color:#2563eb;border-color:var(--accent-primary);color:#fff;transform:translateY(-1px)}.processing-indicator,.ready-indicator,.recording-indicator,.speaking-indicator{align-items:center;display:flex;gap:8px}.recording-dot{animation:recordingDotPulse 1s ease-in-out infinite;background:#fff;border-radius:50%;height:10px;width:10px}.processing-spinner{animation:spin 1s linear infinite;border:2px solid #ffffff4d;border-radius:50%;border-top-color:#fff;height:12px;width:12px}.speaking-wave{animation:speakingPulse 1s ease-in-out infinite;border:2px solid #fff;border-radius:50%;height:12px;width:12px}@keyframes recordingPulse{0%,to{box-shadow:0 0 0 0 #dc2626b3}50%{box-shadow:0 0 0 10px #dc262600}}@keyframes recordingDotPulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.2)}}@keyframes speakingPulse{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.5)}}.voice-error{align-items:center;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;bottom:-45px;box-shadow:#0000000f;box-shadow:var(--shadow-light);color:#dc2626;display:flex;font-size:12px;gap:8px;left:50%;padding:8px 12px;position:absolute;transform:translateX(-50%);white-space:nowrap;z-index:5}body.dark-mode .voice-error{background:#1f1f1f;border-color:#dc2626;color:#fca5a5}.error-dismiss{background:none;border:none;color:inherit;cursor:pointer;font-size:14px;margin-left:4px;opacity:.7;padding:0}.error-dismiss:hover{opacity:1}.input-wrapper{align-items:end;background:#fff;background:var(--bg-secondary);border-radius:20px;border-top:1px solid #e5e7eb;border-top:1px solid var(--border-primary);box-shadow:0 2px 8px #0000000f;box-shadow:0 2px 8px var(--shadow-light);display:flex;gap:8px;margin:0 16px 16px;padding:16px;position:relative}.App{background-color:#fafafa;background-color:var(--bg-primary);display:flex;flex-direction:column;min-height:100vh;transition:background-color .3s ease}.chat-container{height:100vh;margin:0 auto;max-width:800px;width:100%}.chat-container,.messages-container{display:flex;flex:1 1;flex-direction:column}.messages-container{gap:32px;overflow-y:auto;padding:24px 24px 140px}.welcome-message{align-items:center;display:flex;flex:1 1;flex-direction:column;gap:16px;justify-content:center;padding:64px 32px;text-align:center}.logo img{height:auto;max-height:120px;max-width:200px;object-fit:contain;transition:opacity .3s ease;width:auto}.logo h1{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#667eea,#764ba2);background:linear-gradient(135deg,var(--accent-secondary) 0,var(--accent-tertiary) 100%);-webkit-background-clip:text;background-clip:text;color:#1a1a1a;color:var(--text-primary);font-size:56px;font-weight:200;letter-spacing:-.03em}.logo h1,.welcome-message p{margin:0;transition:color .3s ease}.welcome-message p{color:#525252;color:var(--text-secondary);font-size:20px;font-weight:400;line-height:1.4}.shortcuts-hint{background:#f8f9fa;background:var(--bg-tertiary);border:1px solid #e9ecef;border:1px solid var(--border-tertiary);border-radius:12px;color:#6b7280;color:var(--text-tertiary);font-size:14px;margin-top:24px;opacity:.8;padding:12px 20px;transition:opacity .2s,background-color .3s ease,border-color .3s ease,color .3s ease}.shortcuts-hint:hover{opacity:1}.shortcuts-hint kbd{background:#fff;background:var(--bg-secondary);border:1px solid #d1d5db;border:1px solid var(--border-secondary);border-radius:4px;box-shadow:0 1px 2px #0000000f;box-shadow:0 1px 2px var(--shadow-light);color:#374151;color:var(--text-quaternary);font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Monaco,Consolas,monospace;font-size:12px;padding:2px 6px;transition:background-color .3s ease,border-color .3s ease,color .3s ease,box-shadow .3s ease}.roadmap-preview{background-color:#fff;background-color:var(--bg-secondary);border:1px solid #e5e7eb;border:1px solid var(--border-primary);border-radius:12px;margin-top:32px;max-width:400px;padding:20px;transition:background-color .3s ease,border-color .3s ease;width:100%}.roadmap-header{margin-bottom:16px;text-align:center}.roadmap-title{color:#525252;color:var(--text-secondary);font-size:14px;font-weight:600;letter-spacing:.5px;text-transform:uppercase;transition:color .3s ease}.roadmap-items{display:flex;flex-direction:column;gap:8px}.roadmap-item{align-items:center;display:flex;font-size:13px;gap:8px;padding:6px 0;transition:opacity .2s ease}.roadmap-item.completed{opacity:1}.roadmap-item.in-progress{opacity:.9}.roadmap-item.planned{opacity:.7}.roadmap-status{flex-shrink:0;font-size:12px;text-align:center;width:16px}.roadmap-text{color:#525252;color:var(--text-secondary);font-weight:500;transition:color .3s ease}.roadmap-item.completed .roadmap-text{color:#1a1a1a;color:var(--text-primary)}.roadmap-item.in-progress .roadmap-text{color:#2563eb;color:var(--accent-primary)}.message{align-items:flex-start;animation:fadeIn .3s ease-out;display:flex;gap:16px;max-width:100%}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.user-message{flex-direction:row-reverse;margin-left:80px}.ai-message{margin-right:80px}.message-content{flex:1 1;min-width:0}.user-message .message-content{background:#2563eb;background:var(--accent-primary);border-radius:20px;border-bottom-right-radius:6px;box-shadow:0 2px 8px #2563eb26;box-shadow:0 2px 8px var(--shadow-accent);color:#fff;padding:16px 20px;transition:background-color .3s ease,box-shadow .3s ease}.ai-message .message-content{background:#fff;background:var(--bg-secondary);border:1px solid #e5e7eb;border:1px solid var(--border-primary);border-radius:20px;border-bottom-left-radius:6px;box-shadow:0 2px 8px #0000000f;box-shadow:0 2px 8px var(--shadow-light);color:#1a1a1a;color:var(--text-primary);padding:20px 24px;transition:background-color .3s ease,color .3s ease,border-color .3s ease,box-shadow .3s ease}.message-text{word-wrap:break-word;font-size:16px;font-weight:400;line-height:1.4;white-space:pre-wrap}.user-message .message-text{font-weight:500}.feedback-buttons{display:flex;gap:6px;margin-top:12px;opacity:0;transition:opacity .2s ease}.ai-message:hover .feedback-buttons{opacity:1}.feedback-btn{align-items:center;background:#f9fafb;background:var(--bg-quaternary);border:1px solid #e5e7eb;border:1px solid var(--border-primary);border-radius:8px;cursor:pointer;display:flex;font-size:14px;height:36px;justify-content:center;transition:all .2s ease;width:36px}.feedback-btn:hover{background:#f8f9fa;background:var(--bg-tertiary);border-color:#d1d5db;border-color:var(--border-secondary);transform:translateY(-1px)}.input-container{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:linear-gradient(0deg,#fafafa 70%,#fafafacc 90%,#0000);background:linear-gradient(to top,var(--bg-primary) 70%,var(--overlay-bg) 90%,#0000);bottom:0;left:50%;max-width:800px;padding:20px 24px;position:fixed;transform:translateX(-50%);transition:background .3s ease;width:100%;z-index:10}.conversation-stats{align-items:center;display:flex;justify-content:space-between;margin-bottom:12px;padding:0 4px}.conversation-actions{align-items:center;display:flex;gap:8px}.token-count{font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Monaco,Consolas,monospace;transition:color .3s ease}.clear-btn,.dark-mode-btn,.history-btn,.permissions-btn,.token-count{color:#6b7280;color:var(--text-tertiary);font-size:13px;font-weight:500}.clear-btn,.dark-mode-btn,.history-btn,.permissions-btn{background:#0000;border:1px solid #e5e7eb;border:1px solid var(--border-primary);border-radius:8px;cursor:pointer;padding:6px 12px;transition:all .2s ease}.clear-btn:hover,.dark-mode-btn:hover,.history-btn:hover,.permissions-btn:hover{background:#f9fafb;background:var(--bg-quaternary);border-color:#d1d5db;border-color:var(--border-secondary);color:#374151;color:var(--text-quaternary)}.dark-mode-btn{font-size:16px;line-height:1;padding:6px 8px}.permissions-panel{background:#fff;background:var(--bg-secondary);border:1px solid #e5e7eb;border:1px solid var(--border-primary);border-radius:12px;box-shadow:0 2px 8px #0000000f;box-shadow:0 2px 8px var(--shadow-light);margin-bottom:12px;padding:16px;transition:background-color .3s ease,border-color .3s ease,box-shadow .3s ease}.permissions-panel h3{color:#374151;color:var(--text-quaternary);font-size:14px;font-weight:600;margin:0 0 12px;transition:color .3s ease}.permission-item{margin-bottom:8px}.permission-item:last-child{margin-bottom:0}.permission-item label{align-items:center;color:#525252;color:var(--text-secondary);cursor:pointer;display:flex;font-size:14px;gap:8px;transition:color .3s ease}.permission-item input[type=checkbox]{accent-color:#2563eb;accent-color:var(--accent-primary);height:16px;width:16px}.input-wrapper:focus-within{border-color:#2563eb;border-color:var(--accent-primary);box-shadow:0 4px 16px #2563eb26;box-shadow:0 4px 16px var(--shadow-accent)}.input-wrapper textarea{background:#0000;border:none;color:#1a1a1a;color:var(--text-primary);flex:1 1;font-family:inherit;font-size:16px;line-height:1.5;margin-right:8px;max-height:200px;min-height:24px;outline:none;overflow-y:auto;resize:none;transition:height .1s ease,color .3s ease;width:100%}.input-wrapper textarea::placeholder{color:#6b7280;color:var(--text-tertiary);transition:color .3s ease}.send-button{align-items:center;background:#2563eb;background:var(--accent-primary);border:none;border-radius:16px;color:#fff;cursor:pointer;display:flex;flex-shrink:0;height:40px;justify-content:center;position:relative;transition:all .2s ease;width:40px;z-index:1}.send-button:hover:not(:disabled){background:#1d4ed8;box-shadow:0 4px 12px #2563eb26;box-shadow:0 4px 12px var(--shadow-accent);transform:translateY(-1px)}.send-button:disabled{cursor:not-allowed;opacity:.5;transform:none}.send-button.stop-button{background:#dc2626}.send-button.stop-button:hover{background:#b91c1c;box-shadow:0 4px 12px #dc26264d}.loading-spinner{animation:spin 1s linear infinite;border:2px solid #ffffff4d;border-radius:50%;border-top-color:#fff;height:16px;width:16px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.typing-indicator{align-items:center;display:flex;gap:4px;padding:4px 0}.typing-indicator span{animation:typing 1.4s ease-in-out infinite;background:#9ca3af;border-radius:50%;height:6px;width:6px}.typing-indicator span:first-child{animation-delay:-.32s}.typing-indicator span:nth-child(2){animation-delay:-.16s}@keyframes typing{0%,80%,to{opacity:.5;transform:scale(.8)}40%{opacity:1;transform:scale(1)}}.loading-message .message-content{min-height:auto;padding:12px 20px!important}.loading-message .message-text{margin:0}.stop-hint{color:#9ca3af;font-size:12px;margin-top:8px;opacity:.7}.stop-hint kbd{background:#f3f4f6;border:1px solid #d1d5db;border-radius:3px;color:#6b7280;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Monaco,Consolas,monospace;font-size:11px;padding:1px 4px}.messages-container::-webkit-scrollbar{width:6px}.messages-container::-webkit-scrollbar-track{background:#0000}.messages-container::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:3px}.messages-container::-webkit-scrollbar-thumb:hover{background:#9ca3af}.message-text h1,.message-text h2,.message-text h3,.message-text h4,.message-text h5,.message-text h6{color:#1a1a1a;color:var(--text-primary);font-weight:600;line-height:1.2;margin:12px 0 6px}.message-text h1{font-size:24px}.message-text h2{font-size:20px}.message-text h3{font-size:18px}.message-text h4{font-size:16px}.message-text h5{font-size:14px}.message-text h6{font-size:12px}.message-text h1:first-child,.message-text h2:first-child,.message-text h3:first-child,.message-text h4:first-child,.message-text h5:first-child,.message-text h6:first-child{margin-top:0}.message-text p{line-height:1.4;margin:4px 0}.message-text p:first-child{margin-top:0}.message-text p:last-child{margin-bottom:0}.message-text ol,.message-text ul{margin:6px 0;padding-left:20px}.message-text li{line-height:1.3;margin:2px 0}.message-text li p{margin:0}.message-text blockquote{background:#f8f9fa;background:var(--bg-tertiary);border-left:4px solid #2563eb;border-left:4px solid var(--accent-primary);border-radius:0 8px 8px 0;margin:12px 0;padding:8px 16px;transition:background-color .3s ease,border-color .3s ease}.message-text blockquote p{color:#525252;color:var(--text-secondary);font-style:italic;margin:0}.message-text code{border-radius:4px;color:#1a1a1a;color:var(--text-primary);font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Monaco,Consolas,monospace;font-size:14px;padding:2px 6px;transition:background-color .3s ease,color .3s ease,border-color .3s ease}.message-text code,.message-text pre{background:#f8f9fa;background:var(--bg-tertiary);border:1px solid #e5e7eb;border:1px solid var(--border-primary)}.message-text pre{border-radius:8px;margin:8px 0;overflow-x:auto;padding:16px;transition:background-color .3s ease,border-color .3s ease}.message-text pre code{background:#0000;border:none;font-size:13px;line-height:1.4;padding:0}.message-text a{color:#2563eb;color:var(--accent-primary);text-decoration:none;transition:color .3s ease}.message-text a:hover{text-decoration:underline}.message-text table{border-collapse:collapse;font-size:14px;margin:8px 0;width:100%}.message-text td,.message-text th{border:1px solid #e5e7eb;border:1px solid var(--border-primary);padding:8px 12px;text-align:left;transition:border-color .3s ease}.message-text th{background:#f8f9fa;background:var(--bg-tertiary);color:#1a1a1a;color:var(--text-primary);font-weight:600;transition:background-color .3s ease,color .3s ease}.message-text td{background:#fff;background:var(--bg-secondary)}.message-text hr,.message-text td{transition:background-color .3s ease}.message-text hr{background:#e5e7eb;background:var(--border-primary);border:none;height:1px;margin:16px 0}.message-text strong{color:#1a1a1a;color:var(--text-primary);font-weight:600}.message-text em{color:#525252;color:var(--text-secondary);font-style:italic}.message-text del{color:#6b7280;color:var(--text-tertiary);text-decoration:line-through}.message-text input[type=checkbox]{accent-color:#2563eb;accent-color:var(--accent-primary);margin-right:8px}.message-text li:has(input[type=checkbox]){list-style:none;margin-left:-20px}.message-text pre[class*=language-]{background:#f8f9fa;background:var(--bg-tertiary);border:1px solid #e5e7eb;border:1px solid var(--border-primary)}@media (max-width:768px){.message-text h1{font-size:20px}.message-text h2{font-size:18px}.message-text h3{font-size:16px}.message-text pre{font-size:12px;padding:12px}.message-text table{font-size:12px}.message-text td,.message-text th{padding:6px 8px}.messages-container{gap:24px;padding:0 16px 120px}.user-message{margin-left:40px}.ai-message{margin-right:40px}.input-container{padding:16px}.logo img{max-height:100px;max-width:160px}.logo h1{font-size:48px}.welcome-message p{font-size:18px}.shortcuts-hint{font-size:13px;padding:10px 16px}.roadmap-preview{margin-top:24px;max-width:100%;padding:16px}.roadmap-item{font-size:12px}.roadmap-title{font-size:13px}}@media (max-width:480px){.user-message{margin-left:20px}.ai-message{margin-right:20px}.messages-container{gap:20px;padding:0 12px}.input-wrapper{padding:14px 16px}.send-button{height:36px;width:36px}.logo img{max-height:80px;max-width:140px}.logo h1{font-size:40px}.welcome-message{padding:48px 24px}.shortcuts-hint{display:none}}.history-sidebar{background:#fff;background:var(--bg-secondary);border-right:1px solid #e5e7eb;border-right:1px solid var(--border-primary);box-shadow:2px 0 10px #0000001a;box-shadow:2px 0 10px var(--shadow-medium);display:flex;flex-direction:column;height:100vh;left:0;position:fixed;top:0;transform:translateX(-100%);transition:transform .3s ease,background-color .3s ease,border-color .3s ease,box-shadow .3s ease;width:350px;z-index:1000}.history-sidebar.open{transform:translateX(0)}.history-header{align-items:center;background:#fafafa;background:var(--bg-primary);border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--border-primary);display:flex;justify-content:space-between;padding:20px 24px;transition:background-color .3s ease,border-color .3s ease}.history-header h3{color:#1a1a1a;color:var(--text-primary);font-size:18px;font-weight:600;margin:0;transition:color .3s ease}.close-history{background:none;border:none;border-radius:4px;color:#6b7280;color:var(--text-tertiary);cursor:pointer;font-size:24px;padding:4px;transition:all .2s ease}.close-history:hover{background:#f8f9fa;background:var(--bg-tertiary);color:#374151;color:var(--text-quaternary)}.history-content{flex:1 1;overflow-y:auto;padding:0}.history-empty,.history-loading{align-items:center;color:#6b7280;display:flex;font-size:15px;justify-content:center;padding:40px 24px}.history-list{display:flex;flex-direction:column}.history-item{background:#fff;border-bottom:1px solid #f3f4f6;cursor:pointer;padding:16px 24px;transition:all .2s ease}.history-item:hover{background:#f9fafb}.history-item:last-child{border-bottom:none}.history-preview{margin-bottom:8px}.history-user-message{color:#1f2937;font-size:14px;font-weight:500;line-height:1.4;margin-bottom:4px}.history-conversation-info{color:#9ca3af;font-size:12px;font-style:italic;line-height:1.4}.history-meta{align-items:center;display:flex;justify-content:space-between}.history-timestamp{color:#9ca3af;font-size:12px;font-weight:500}.history-rating{color:#fbbf24;font-size:12px}.history-overlay{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#00000080;bottom:0;left:0;position:fixed;right:0;top:0;z-index:999}.history-sidebar.open~.chat-container{margin-left:350px;transition:margin-left .3s ease}.chat-container.dragging{position:relative}.drop-overlay{align-items:center;background:#3b82f61a;border:2px dashed #3b82f6;border-radius:12px;bottom:0;display:flex;justify-content:center;left:0;pointer-events:none;position:absolute;right:0;top:0;z-index:1000}.drop-message{color:#3b82f6;font-weight:600;text-align:center}.drop-icon{font-size:48px;margin-bottom:16px}.drop-hint{color:#6b7280;font-size:14px;font-weight:400;margin-top:8px}.attached-files{background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;margin-bottom:12px;padding:12px}.attached-files-header{color:#374151;font-size:12px;font-weight:600;margin-bottom:8px}.file-list{display:flex;flex-direction:column;gap:8px}.file-item{background:#fff;border:1px solid #e5e7eb;border-radius:6px;justify-content:space-between;padding:8px 12px}.file-info,.file-item{align-items:center;display:flex}.file-info{flex:1 1;gap:8px}.file-icon{font-size:16px}.file-details{flex:1 1}.file-name{color:#374151;font-size:13px;font-weight:500;line-height:1.2}.file-size{color:#9ca3af;font-size:11px;line-height:1.2}.remove-file-btn{background:none;border:none;border-radius:4px;color:#9ca3af;cursor:pointer;font-size:16px;font-weight:700;padding:2px 6px;transition:all .2s ease}.remove-file-btn:hover{background:#fee2e2;color:#dc2626}@media (max-width:768px){.history-sidebar{transform:translateX(-100%);width:100%}.history-sidebar.open~.chat-container{margin-left:0}.history-header{padding:16px 20px}.history-item{padding:12px 20px}}.model-selector-btn{align-items:center;background:none;border:none;border-radius:8px;cursor:pointer;display:flex;font-size:16px;justify-content:center;padding:8px;transition:background-color .2s ease}.model-selector-btn:hover{background-color:#f8f9fa;background-color:var(--bg-tertiary)}.model-selector-panel{background:#fff;background:var(--bg-secondary);border:1px solid #e5e7eb;border:1px solid var(--border-primary);border-radius:12px;box-shadow:0 2px 8px #0000000f;box-shadow:0 2px 8px var(--shadow-light);margin-bottom:12px;padding:16px;transition:background-color .3s ease,border-color .3s ease,box-shadow .3s ease}.model-selector-panel h3{color:#374151;color:var(--text-quaternary);font-size:14px;font-weight:600;margin:0 0 12px;transition:color .3s ease}.model-list{display:flex;flex-direction:column;gap:8px}.model-item{align-items:center;background:#f8f9fa;background:var(--bg-tertiary);border:1px solid #e5e7eb;border:1px solid var(--border-primary);border-radius:8px;cursor:pointer;display:flex;justify-content:space-between;padding:12px;transition:all .2s ease}.model-item:hover{background:#f9fafb;background:var(--bg-quaternary)}.model-item.active,.model-item:hover{border-color:#2563eb;border-color:var(--accent-primary)}.model-item.active{background:#2563eb;background:var(--accent-primary);color:#fff}.model-info{align-items:center;display:flex;gap:12px}.model-icon{font-size:18px}.model-details{display:flex;flex-direction:column;gap:2px}.model-name{color:inherit;font-size:14px;font-weight:500}.model-item.active .model-name{color:#fff}.model-description{color:#6b7280;color:var(--text-tertiary);font-size:12px}.model-item.active .model-description{color:#fffc}.model-status{color:#fff;font-size:16px;font-weight:700}.model-hint{background:#f9fafb;background:var(--bg-quaternary);border-radius:6px;color:#6b7280;color:var(--text-tertiary);font-size:12px;margin-top:8px;padding:8px 12px;text-align:center}.mood-controls{display:flex;justify-content:center;margin-bottom:10px}.mood-indicator{position:relative}.mood-toggle{background-color:#fff;background-color:var(--bg-secondary);border:1px solid #e5e7eb;border:1px solid var(--border-primary);border-radius:20px;box-shadow:0 2px 4px #0000000f;box-shadow:0 2px 4px var(--shadow-light);color:#525252;color:var(--text-secondary);cursor:pointer;font-size:14px;padding:8px 16px;transition:all .2s ease}.mood-toggle:hover{background-color:#f8f9fa;background-color:var(--bg-tertiary);border-color:#d1d5db;border-color:var(--border-secondary)}.mood-toggle.active{background-color:#2563eb;background-color:var(--accent-primary);border-color:#2563eb;border-color:var(--accent-primary);color:#fff}.mood-dropdown{background-color:#fff;background-color:var(--bg-secondary);border:1px solid #e5e7eb;border:1px solid var(--border-primary);border-radius:12px;bottom:100%;box-shadow:0 8px 32px #0000001a;box-shadow:0 8px 32px var(--shadow-medium);left:50%;margin-bottom:8px;min-width:280px;padding:16px;position:absolute;transform:translateX(-50%);z-index:1000}.mood-toggle-wrapper{border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--border-primary);margin-bottom:12px;padding-bottom:12px}.mood-toggle-wrapper label{align-items:center;color:#1a1a1a;color:var(--text-primary);cursor:pointer;display:flex;font-size:14px}.mood-toggle-wrapper input[type=checkbox]{accent-color:#2563eb;accent-color:var(--accent-primary);margin-right:8px}.mood-current{background-color:#f8f9fa;background-color:var(--bg-tertiary);border-radius:6px;color:#525252;color:var(--text-secondary);font-size:12px;margin-bottom:12px;padding:8px}.mood-manual{display:flex;flex-direction:column;gap:8px}.mood-manual span{color:#525252;color:var(--text-secondary);font-size:12px;font-weight:500;margin-bottom:4px}.mood-option{border:1px solid #e5e7eb;border:1px solid var(--border-primary);border-radius:8px;color:#1a1a1a;color:var(--text-primary);cursor:pointer;font-size:12px;padding:8px 12px;text-align:left;transition:all .2s ease}.mood-option:hover{box-shadow:0 2px 8px #0000000f;box-shadow:0 2px 8px var(--shadow-light);transform:translateY(-1px)}.mood-option.active{border-color:#2563eb;border-color:var(--accent-primary);box-shadow:0 0 0 2px #2563eb33}body{transition:background-color 2s ease-in-out}.chat-container{background-color:initial;transition:-webkit-backdrop-filter .3s ease;transition:backdrop-filter .3s ease;transition:backdrop-filter .3s ease,-webkit-backdrop-filter .3s ease}.messages-container{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background-color:#ffffffe6;border-radius:12px;box-shadow:0 8px 32px #0000001a;margin:20px;padding:20px;transition:background-color .3s ease,box-shadow .3s ease}body.dark-mode .messages-container{background-color:#1a1a1ae6;box-shadow:0 8px 32px #0000004d}
/*# sourceMappingURL=main.c9ead271.css.map*/