*{margin:0;padding:0;box-sizing:border-box}:root{--bg-color: #ffffff;--svg-color: #6d6d72;--text-color: #333333;--border-color: #dedede;--body-bg-color: #f6f6f7;--primary-color: #1e1e20}@media(prefers-color-scheme:dark){:root{--bg-color: #161618;--svg-color: #99999f;--text-color: #dfdfd6;--border-color: #363636;--body-bg-color: #1e1e20;--primary-color: #dfdfd6}}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;background:var(--body-bg-color);color:var(--text-color);height:100vh;overflow:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{height:100vh;width:100vw}.app-container{display:flex;height:100vh}.sidebar{width:280px;background:var(--bg-color);border-right:1px solid var(--border-color);display:flex;flex-direction:column;overflow:hidden}.sidebar-header{padding:1rem;display:flex;justify-content:space-between;align-items:center}.sidebar-header h1{font-size:1.25rem;font-weight:600;color:var(--text-color);margin:0}.app-title{color:var(--text-color);text-decoration:none;cursor:pointer;transition:opacity .2s}.app-title:hover{opacity:.7}.chat-list{flex:1;overflow-y:auto;padding:.5rem}.chat-item{padding:.75rem;margin-bottom:.25rem;border-radius:6px;cursor:pointer;transition:background .2s;word-break:break-word;display:flex;align-items:center;justify-content:space-between;gap:.5rem}.chat-item:hover,.chat-item.active{background:var(--border-color)}.chat-item-content{flex:1;min-width:0}.chat-item-title{font-size:.9rem;color:var(--text-color);margin-bottom:.25rem}.chat-item-preview{font-size:.75rem;color:var(--svg-color);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-item-delete{background:transparent;border:none;color:var(--svg-color);width:24px;height:24px;border-radius:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:all .2s;flex-shrink:0}.chat-item:hover .chat-item-delete{opacity:1}.chat-item-delete:hover{background:transparent;color:var(--text-color)}.chat-item-delete:active{transform:scale(.95)}.chat-container{flex:1;display:flex;flex-direction:column;overflow:hidden;padding:0 calc((100% - 1100px)/2)}.chat-container.no-chat{justify-content:center;align-items:center}.chat-container.no-chat .messages-container{display:none}.chat-container.no-chat .input-container{width:calc(32px + 1rem);height:calc(32px + 1rem);max-width:600px;align-items:center;justify-content:center;animation:expandInput .8s cubic-bezier(.4,0,.2,1) forwards,alignInput 0s .8s forwards;overflow:hidden;box-sizing:border-box}@keyframes alignInput{to{align-items:flex-end}}.chat-container.no-chat .input-container textarea{opacity:0;width:0;flex:0;height:auto;min-height:0;max-height:150px;animation:fadeInTextarea .4s ease-out .5s forwards}.chat-container.no-chat #sendBtn{position:relative;z-index:1}@keyframes expandInput{0%{width:calc(32px + 1rem);border-radius:50%}to{width:100%;border-radius:9999px}}@keyframes fadeInTextarea{0%{opacity:0;flex:0;width:0}to{opacity:1;flex:1;width:auto}}.messages-container{flex:1;min-height:0;overflow-y:auto;padding:1.5rem;display:flex;flex-direction:column;gap:1rem;scrollbar-width:none;-ms-overflow-style:none}.messages-container::-webkit-scrollbar{display:none}.empty-state{flex:1;display:flex;align-items:center;justify-content:center;color:var(--svg-color)}.message{display:flex;gap:.75rem;max-width:85%;animation:fadeIn .3s}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.message.user{align-self:flex-end;flex-direction:row-reverse}.message.assistant{align-self:flex-start}.message-avatar{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:.875rem;flex-shrink:0}.message.user .message-avatar{background:var(--primary-color);color:var(--body-bg-color)}.message.assistant .message-avatar{background:var(--border-color);color:var(--text-color)}.message-content-wrapper{flex:1;min-width:0;max-width:100%}.message-content{background:var(--bg-color);color:var(--text-color);padding:.75rem 1rem;border-radius:8px;line-height:1.5;word-wrap:break-word;overflow-wrap:break-word;word-break:break-word;white-space:pre-wrap;position:relative;max-width:100%;box-sizing:border-box}.message.user .message-content{background:var(--primary-color);color:var(--body-bg-color)}.message-error{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.message-error-text{color:#dc3545;font-size:.875rem;flex:1;min-width:0;word-wrap:break-word;overflow-wrap:break-word;word-break:break-word}@media(prefers-color-scheme:dark){.message-error-text{color:#ff6b6b}}.message-retry{background:transparent;border:none;color:var(--svg-color);width:24px;height:24px;border-radius:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:all .2s;flex-shrink:0;pointer-events:auto;position:relative;z-index:1}.message.error .message-retry{opacity:1}.message-retry:hover{background:transparent;color:var(--text-color)}.message-retry:active{transform:scale(.95)}.message-retry:disabled{opacity:.5;cursor:not-allowed}.message-time{font-size:.75rem;color:var(--svg-color);margin-top:.25rem}.message-loading-wrapper{display:flex;align-items:center;gap:.5rem;color:var(--svg-color);font-size:.85rem;padding:.25rem 0;animation:fadeIn .3s}.app-actions{position:fixed;top:.5rem;right:.5rem;display:flex;gap:.5rem;z-index:10}.ghost-button{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:none;border-radius:6px;background:transparent;color:var(--text-color);cursor:pointer;transition:background .2s,color .2s,border-color .2s}.ghost-button.small{width:auto;height:auto;padding:.3rem .75rem;font-size:.75rem;border-radius:999px;border:1px solid var(--border-color);gap:.35rem;background:transparent}.ghost-button:hover{background:#fff3;border-color:var(--border-color)}.ghost-button:active{transform:translateY(1px)}.ghost-button svg{width:20px;height:20px}.drawer-root{position:fixed;inset:0;pointer-events:none;z-index:15}.drawer-root.open{pointer-events:auto}.drawer-mask{position:absolute;inset:0;background:#0000004d;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:fadeIn .2s ease-out}.drawer-panel{position:absolute;top:0;right:0;width:min(420px,90vw);height:100%;background:var(--bg-color);border-left:1px solid var(--border-color);display:flex;flex-direction:column;transform:translate(100%);transition:transform .25s ease-out}.drawer-root.open .drawer-panel{transform:translate(0)}.drawer-header{padding:1rem 1.25rem;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;align-items:center;gap:1rem}.drawer-header h2{font-size:1rem;margin:0}.drawer-close{background:transparent;border:none;font-size:1.5rem;color:var(--text-color);cursor:pointer}.drawer-body{flex:1;overflow-y:auto;padding:1.25rem;display:flex;flex-direction:column;gap:1rem}.drawer-section{display:flex;flex-direction:column;gap:1rem}.drawer-paragraph{font-size:.9rem;line-height:1.5;color:var(--text-color)}.drawer-list ul{margin-top:.5rem;padding-left:1rem;color:var(--text-color);line-height:1.4;font-size:.9rem}.drawer-upload{border:1px dashed var(--border-color);border-radius:12px;padding:1.5rem;display:flex;flex-direction:column;align-items:center;text-align:center;gap:.5rem;color:var(--svg-color);transition:border-color .2s,background .2s}.drawer-upload.active{border-color:var(--text-color);background:#00000005}.drawer-file-input{display:none}.drawer-status{font-size:.8rem;color:var(--svg-color)}.drawer-files{display:flex;flex-direction:column;gap:.75rem}.drawer-files-header{display:flex;align-items:center;justify-content:space-between}.drawer-files-header h3{margin:0;font-size:.95rem}.drawer-file-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.5rem}.drawer-file-list li{display:flex;align-items:center;justify-content:space-between;padding:.65rem .75rem;border:1px solid var(--border-color);border-radius:8px}.drawer-file-info{display:flex;flex-direction:column;gap:.2rem}.drawer-file-name{font-size:.9rem;color:var(--text-color);word-break:break-word}.drawer-file-meta{font-size:.75rem;color:var(--svg-color)}.drawer-file-delete{background:transparent;border:none;color:var(--svg-color);cursor:pointer;width:28px;height:28px;border-radius:6px;display:flex;align-items:center;justify-content:center}.drawer-file-delete:hover{background:#0000000d}.drawer-error{color:#dc3545;font-size:.85rem}.drawer-empty{font-size:.85rem;color:var(--svg-color)}.drawer-link{color:var(--primary-color);text-decoration:underline;transition:opacity .2s}.drawer-link:hover{opacity:.7}.message-loading-dot{width:.75rem;height:.75rem;border-radius:9999px;background:var(--svg-color);animation:message-loading-pulse 1s ease-in-out infinite}@keyframes message-loading-pulse{0%{transform:scale(.9);opacity:.4}50%{transform:scale(1.2);opacity:1}to{transform:scale(.9);opacity:.4}}.input-container{margin:1.5rem;height:calc(32px + 1rem);max-height:calc(32px + 1rem);display:flex;align-items:flex-end;justify-content:center;background:var(--body-bg-color);border-radius:9999px;border:1px solid var(--border-color);transition:border-color .2s;overflow:hidden}.input-container textarea{flex:1;margin:auto .5rem;background:transparent;border:none;padding:4px 10px;color:var(--text-color);font-family:inherit;font-size:.95rem;resize:none;height:auto;overflow-y:auto;scrollbar-width:none;-ms-overflow-style:none;line-height:1.5}.input-container textarea::placeholder{color:var(--svg-color);opacity:1}.input-container textarea::-webkit-scrollbar{display:none}.input-container textarea:focus{outline:none}.input-container textarea:disabled{opacity:.5;cursor:not-allowed}#sendBtn{background:var(--primary-color);border:none;color:var(--body-bg-color);width:32px;height:32px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:opacity .2s,transform .2s;flex-shrink:0;margin:auto .5rem}#sendBtn:hover:not(:disabled){opacity:.9;transform:scale(1.05)}#sendBtn:disabled{opacity:.4;cursor:not-allowed}.loading{padding:1rem;text-align:center;color:var(--svg-color);font-size:.875rem}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:var(--body-bg-color)}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--border-color)}
