.xiping-message{align-items:flex-start;max-width:80%;margin-bottom:16px;display:flex}.xiping-message.user{flex-direction:row-reverse;align-self:flex-end;margin-left:auto}.xiping-message.assistant{align-self:flex-start;margin-right:auto}.xiping-message__avatar{background-color:#e0e0e0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;margin:0 8px;display:flex;overflow:hidden}.xiping-message__content{background-color:#fff;border-radius:12px;max-width:100%;padding:12px 16px;position:relative;box-shadow:0 1px 2px #0000001a}.xiping-message:not(:has(.xiping-message__avatar)) .xiping-message__content{margin:0}.xiping-message.user .xiping-message__content{color:#fff;background-color:#007bff}.xiping-message__text{word-break:break-word;line-height:1.5}.xiping-message__timestamp{color:#888;text-align:right;margin-top:4px;font-size:.75rem}.xiping-message.user .xiping-message__timestamp{color:#fffc}.xiping-message__thinking{align-items:center;margin-top:8px;display:flex}.xiping-message__thinking-dots{align-items:center;margin-right:8px;display:flex}.xiping-message__thinking-dots span{background-color:#888;border-radius:50%;width:8px;height:8px;margin:0 2px;animation:1.4s ease-in-out infinite both xiping-thinking;display:inline-block}.xiping-message__thinking-dots span:first-child{animation-delay:-.32s}.xiping-message__thinking-dots span:nth-child(2){animation-delay:-.16s}.xiping-message__thinking-text{color:#888;font-size:.9rem}.xiping-message.user .xiping-message__thinking-text{color:#fffc}@keyframes xiping-thinking{0%,80%,to{transform:scale(.6)}40%{transform:scale(1)}}.xiping-message__loading{justify-content:center;align-items:center;padding:8px;display:flex}.xiping-message__loading-spinner{border:3px solid #007bff4d;border-top-color:#007bff;border-radius:50%;width:24px;height:24px;animation:1s ease-in-out infinite xiping-spin}@keyframes xiping-spin{to{transform:rotate(360deg)}}.xiping-message__think{background-color:#0000000d;border-radius:8px;margin-top:12px;padding:8px 12px;font-size:.9rem}.xiping-message.user .xiping-message__think{background-color:#ffffff1a}.xiping-message__think-header{align-items:center;gap:8px;margin-bottom:8px;font-weight:500;display:flex}.xiping-message__think-toggle{cursor:pointer;color:#666;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:4px;transition:background-color .2s;display:flex}.xiping-message__think-toggle:hover{background-color:#0000000d}.xiping-message__think-content{opacity:1;max-height:1000px;transition:all .3s ease-in-out;overflow:hidden}.xiping-message__think-content.hidden{opacity:0;max-height:0;margin:0;padding:0}.xiping-message__knowledge-sources{background-color:#00000008;border-radius:4px;margin-top:8px;padding:8px;font-size:.9em}.xiping-message__knowledge-sources-header{color:#666;margin-bottom:4px;font-weight:500}.xiping-message__knowledge-sources-list{margin:0;padding:0;list-style:none}.xiping-message__knowledge-source-item{margin-bottom:4px}.xiping-message__knowledge-source-item:last-child{margin-bottom:0}.xiping-message__knowledge-source-item a{color:#06c;text-decoration:none}.xiping-message__knowledge-source-item a:hover{text-decoration:underline}.xiping-message__knowledge-source-description{color:#666;margin-top:2px;margin-left:8px;font-size:.9em}.xiping-message__text-container{flex-direction:column;gap:4px;display:flex;position:relative}.xiping-message__copy-button{cursor:pointer;color:#666;opacity:0;background:0 0;border:none;border-radius:4px;justify-content:center;align-self:flex-end;align-items:center;padding:4px;transition:all .2s;display:flex}.xiping-message__text-container:hover .xiping-message__copy-button{opacity:1}.xiping-message__copy-button:hover{color:#333;background-color:#0000000d}.xiping-message__copy-tooltip{color:#fff;white-space:nowrap;background-color:#333;border-radius:4px;padding:4px 8px;font-size:12px;animation:2s ease-in-out xiping-fadeInOut;position:absolute;top:-24px;right:0}@keyframes xiping-fadeInOut{0%{opacity:0;transform:translateY(4px)}10%{opacity:1;transform:translateY(0)}90%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(4px)}}
