.chat-message{margin-bottom:24px;width:100%}.chat-message__container{display:flex;align-items:flex-start;max-width:100%}.chat-message--user{display:flex;flex-direction:column;align-items:flex-end}.chat-message--user .chat-message__container{flex-direction:row-reverse;justify-content:flex-start;max-width:80%;margin-left:auto}.chat-message--assistant{display:flex;flex-direction:column;align-items:flex-start}.chat-message--assistant .chat-message__container{flex-direction:row;justify-content:flex-start;max-width:80%;margin-right:auto}.chat-message__bubble{padding:12px 16px;border-radius:18px;word-wrap:break-word;max-width:100%}.chat-message__bubble--user{background:var(--chat-user-bg, #e8e8e8);color:var(--chat-text-color, #000);border-bottom-right-radius:4px;border:1px solid var(--chat-user-border, #d9d9d9)}.chat-message__bubble--assistant{background:var(--chat-assistant-bg, #f5f5f5);color:var(--chat-text-color, #000);border-bottom-left-radius:4px}.chat-message__loading{display:flex;gap:4px;align-items:center;padding:4px 0}.chat-message__loading span{width:8px;height:8px;border-radius:50%;background:#999;animation:chat-loading 1.4s infinite ease-in-out both}.chat-message__loading span:nth-child(1){animation-delay:-.32s}.chat-message__loading span:nth-child(2){animation-delay:-.16s}.chat-message__loading span:nth-child(3){animation-delay:0}.chat-message__timestamp{margin-top:4px;padding:0 8px}.chat-message__timestamp--user{text-align:right;padding-right:8px}.chat-message__timestamp--assistant{text-align:left;padding-left:8px}.chat-message__actions{display:flex;align-items:center;gap:4px;margin-top:8px;padding-left:8px}.chat-message__actions--user{justify-content:flex-end;padding-right:8px;padding-left:0;opacity:0;transition:opacity .2s ease}.chat-message__actions--user.chat-message__actions--visible{opacity:1}.chat-message__action-btn{padding:4px 8px;height:28px;width:28px;min-width:28px;display:flex;align-items:center;justify-content:center;color:#666;border:none;background:transparent;border-radius:4px;transition:all .2s ease}.chat-message__action-btn:hover{background:#0000000d;color:#000}.chat-message__action-btn--active{color:#1890ff}.chat-message__action-btn--active:hover{color:#1890ff;background:#1890ff1a}.chat-message__action-btn .anticon{font-size:14px}@keyframes chat-loading{0%,80%,to{transform:scale(0);opacity:.5}40%{transform:scale(1);opacity:1}}*{margin:0;padding:0;box-sizing:border-box}html,body{height:100%;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f5f5f5}#root{height:100%}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.ant-layout-sider{box-shadow:2px 0 8px #0000001a}.ant-layout-sider::-webkit-scrollbar{width:8px;height:8px}.ant-layout-sider::-webkit-scrollbar-track{background:#f1f1f1}.ant-layout-sider::-webkit-scrollbar-thumb{background:#888;border-radius:4px}.ant-layout-sider::-webkit-scrollbar-thumb:hover{background:#555}.ant-layout-sider{scrollbar-width:thin;scrollbar-color:#888 #f1f1f1;background-color:var(--sidebar-bg, transparent)!important}.ant-menu-item-selected{background-color:var(--sidebar-menu-selected-bg, transparent)!important;color:var(--sidebar-menu-selected-text, inherit)!important}.ant-menu-item-selected:after{display:none}.ant-menu-item-selected .ant-menu-title-content,.ant-menu-item-selected .anticon{color:var(--sidebar-menu-selected-text, inherit)!important}.ant-menu-item:hover{background-color:var(--sidebar-menu-hover-bg, transparent)!important;color:var(--sidebar-menu-hover-text, inherit)!important}.ant-menu-item:hover .ant-menu-title-content,.ant-menu-item:hover .anticon{color:var(--sidebar-menu-hover-text, inherit)!important}.header-public{position:fixed;top:0;left:0;right:0;height:60px;padding:0 24px;background:transparent;display:flex;align-items:center;z-index:99;border-bottom:1px solid var(--header-border-color, rgba(0, 0, 0, .1))}.header-public__content{width:100%;max-width:1400px;margin:0 auto;display:flex;align-items:center;justify-content:space-between}.header-public__left{display:flex;align-items:center;flex:0 0 auto}.header-public__logo{font-size:18px;font-weight:600;color:var(--header-text-color, #000);text-decoration:none}.header-public__center{display:flex;align-items:center;justify-content:center;flex:1;padding:0 24px}@media (max-width: 1024px){.header-public__center{display:none}}.header-public__link{color:var(--header-link-color, #666);text-decoration:none;font-size:14px;transition:color .2s ease}.header-public__link:hover{color:var(--header-link-hover-color, #000)}.header-public__right{display:flex;align-items:center;flex:0 0 auto}.header-public__login-btn{color:var(--header-text-color, #000);font-size:14px;border:none;padding:8px 16px;height:auto}.header-public__login-btn:hover{background:var(--header-hover-bg, rgba(0, 0, 0, .05));color:var(--header-text-color, #000)}.header-public__signup-btn{background:var(--header-primary-bg, #000);color:var(--header-primary-text, #fff);font-size:14px;border:none;padding:8px 16px;height:auto;border-radius:6px}.header-public__signup-btn:hover{background:var(--header-primary-hover-bg, #333);color:var(--header-primary-text, #fff)}.header-public__help-btn{color:var(--header-link-color, #666);border:none;padding:8px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:50%}.header-public__help-btn:hover{background:var(--header-hover-bg, rgba(0, 0, 0, .05));color:var(--header-text-color, #000)}.ant-layout{background:#fff}.ant-layout-sider,.ant-layout-header,.ant-layout-footer,.ant-layout-content{transition:all .2s ease}.ant-modal-body::-webkit-scrollbar{width:8px;height:8px}.ant-modal-body::-webkit-scrollbar-track{background:#f1f1f1}.ant-modal-body::-webkit-scrollbar-thumb{background:#888;border-radius:4px}.ant-modal-body::-webkit-scrollbar-thumb:hover{background:#555}.ant-modal-body{scrollbar-width:thin;scrollbar-color:#888 #f1f1f1}.ant-input,.ant-input-affix-wrapper,.ant-input-password,.ant-input-affix-wrapper>.ant-input{background-color:var(--input-bg, transparent);color:var(--input-text-color, inherit);border-color:var(--input-border-color, transparent)}.ant-input-affix-wrapper-focused,.ant-input:focus,.ant-input-focused,.ant-input-affix-wrapper-focused>.ant-input{background-color:var(--input-bg, transparent)}
