@import "https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600&display=swap";:root{--bg-gradient:linear-gradient(135deg, #09090b 0%, #17171d 100%);--glass-bg:#ffffff08;--glass-border:#ffffff14;--primary-color:#818cf8;--secondary-color:#f472b6;--text-primary:#f8fafc;--text-secondary:#94a3b8;--bot-msg-bg:#ffffff0d;--user-msg-bg:#818cf826}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg-gradient);color:var(--text-primary);justify-content:center;align-items:center;min-height:100vh;font-family:Outfit,sans-serif;display:flex;overflow:hidden}#app{justify-content:center;align-items:center;width:100%;height:100vh;padding:1rem;display:flex}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--glass-border);border-radius:10px}::-webkit-scrollbar-thumb:hover{background:#fff3}.chat-container{background:var(--glass-bg);-webkit-backdrop-filter:blur(16px);border:1px solid var(--glass-border);border-radius:24px;flex-direction:column;width:100%;max-width:800px;height:90vh;display:flex;position:relative;overflow:hidden;box-shadow:0 25px 50px -12px #00000080}.chat-header{border-bottom:1px solid var(--glass-border);justify-content:space-between;align-items:center;padding:1.5rem;display:flex}.chat-header h1{background:linear-gradient(to right, var(--primary-color), var(--secondary-color));-webkit-text-fill-color:transparent;letter-spacing:.5px;-webkit-background-clip:text;font-size:1.25rem;font-weight:500}.status-badge{color:var(--text-secondary);align-items:center;gap:.5rem;font-size:.85rem;font-weight:400;display:flex}.status-dot{background-color:var(--text-secondary);border-radius:50%;width:8px;height:8px;transition:background-color .3s}.status-dot.ready{background-color:#34d399;box-shadow:0 0 10px #34d399}.chat-messages{flex-direction:column;flex:1;gap:1.5rem;padding:1.5rem;display:flex;overflow-y:auto}.message-appear-enter-active,.message-appear-leave-active{transition:opacity .4s,transform .4s cubic-bezier(.175,.885,.32,1.275)}.message-appear-enter-from,.message-appear-leave-to{opacity:0;transform:translateY(20px)}.message{border-radius:16px;max-width:80%;padding:1rem 1.25rem;font-size:.95rem;line-height:1.5;animation:.4s ease-out forwards fade-in-up}.message.user{background:var(--user-msg-bg);border:1px solid #818cf833;border-bottom-right-radius:4px;align-self:flex-end}.message.assistant{background:var(--bot-msg-bg);border:1px solid var(--glass-border);border-bottom-left-radius:4px;align-self:flex-start}.loading-container{height:100%;color:var(--text-secondary);flex-direction:column;justify-content:center;align-items:center;gap:1.5rem;display:flex}.loading-spinner{border:3px solid #ffffff1a;border-top-color:var(--primary-color);border-radius:50%;width:40px;height:40px;animation:1s ease-in-out infinite spin}.progress-bar-container{background:#ffffff1a;border-radius:4px;width:60%;height:4px;overflow:hidden}.progress-bar{background:linear-gradient(to right, var(--primary-color), var(--secondary-color));height:100%;transition:width .3s}.chat-input-container{border-top:1px solid var(--glass-border);gap:1rem;padding:1.5rem;display:flex}.chat-input{border:1px solid var(--glass-border);color:var(--text-primary);resize:none;background:#0003;border-radius:12px;outline:none;flex:1;padding:1rem 1.25rem;font-family:inherit;font-size:.95rem;transition:all .3s}.chat-input:focus{border-color:var(--primary-color);box-shadow:0 0 0 2px #818cf81a}.send-btn{background:linear-gradient(135deg, var(--primary-color) 0%, #6366f1 100%);color:#fff;cursor:pointer;border:none;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:50px;height:50px;transition:transform .2s,box-shadow .2s;display:flex}.send-btn:hover:not(:disabled){box-shadow:0 10px 20px -10px var(--primary-color);transform:translateY(-2px)}.send-btn:active:not(:disabled){transform:translateY(0)}.send-btn:disabled{opacity:.5;cursor:not-allowed;filter:grayscale()}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fade-in-up{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.floating-overlay{background:var(--glass-bg);-webkit-backdrop-filter:blur(8px);border:1px solid var(--glass-border);z-index:1000;color:var(--text-primary);border-radius:8px;min-width:200px;padding:1rem;font-size:.85rem;position:fixed;top:1rem;left:1rem;box-shadow:0 4px 6px -1px #00000080}.floating-overlay h3{color:var(--primary-color);margin-bottom:.5rem;font-size:.95rem}.floating-overlay div{margin-bottom:.25rem}.config-btn{border:1px solid var(--glass-border);color:var(--text-primary);cursor:pointer;background:0 0;border-radius:8px;padding:.5rem 1rem;font-size:.9rem;transition:all .2s}.config-btn:hover{border-color:var(--primary-color);background:#ffffff1a}.modal-backdrop{z-index:2000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content{border:1px solid var(--glass-border);background:#17171d;border-radius:16px;width:90%;max-width:450px;padding:2rem;box-shadow:0 25px 50px -12px #000c}.modal-header{border-bottom:1px solid var(--glass-border);justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding-bottom:.5rem;display:flex}.modal-header h2{font-size:1.25rem}.close-btn{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;font-size:1.5rem}.close-btn:hover{color:var(--text-primary)}.setting-group{flex-direction:column;gap:.5rem;margin-bottom:1.25rem;display:flex}.setting-group label{color:var(--text-secondary);font-size:.9rem}.setting-group select{border:1px solid var(--glass-border);color:var(--text-primary);background:#0003;border-radius:8px;outline:none;padding:.5rem;font-family:inherit}.setting-group select:focus{border-color:var(--primary-color)}.toggle-switch{cursor:pointer;align-items:center;gap:.75rem;display:flex}.toggle-switch input{display:none}.slider{background-color:#ffffff1a;border-radius:20px;width:40px;height:20px;transition:all .3s;position:relative}.slider:before{content:"";background-color:#fff;border-radius:50%;width:16px;height:16px;transition:all .3s;position:absolute;bottom:2px;left:2px}input:checked+.slider{background-color:var(--primary-color)}input:checked+.slider:before{transform:translate(20px)}
