*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Helvetica Neue,sans-serif}#root{background:#f5efe9;height:100vh}.app{background:#faf6f2;flex-direction:column;max-width:520px;height:100%;margin:0 auto;display:flex;position:relative;box-shadow:0 0 40px #3d2e2414}.header{z-index:10;background:#fff;border-bottom:1px solid #f0e8e0;flex-shrink:0;justify-content:space-between;align-items:center;padding:16px 20px;display:flex;position:sticky;top:0}.header-left{align-items:center;gap:12px;display:flex}.status-dot{background:#4caf50;border-radius:50%;width:8px;height:8px;position:relative}.status-dot:after{content:"";border:2px solid #4caf5040;border-radius:50%;animation:2s ease-in-out infinite pulse-ring;position:absolute;inset:-3px}@keyframes pulse-ring{0%,to{opacity:.6;transform:scale(1)}50%{opacity:0;transform:scale(1.3)}}.header-title{color:#3d2e24;font-size:1rem;font-weight:700}.header-badge{color:#4caf50;align-items:center;gap:6px;font-size:.75rem;font-weight:500;display:flex}.header-typing{color:#bfb0a0;font-size:.75rem;animation:1.2s step-end infinite blink}@keyframes blink{0%,to{opacity:1}50%{opacity:.3}}.chat-area{scroll-behavior:smooth;flex-direction:column;flex:1;gap:16px;padding:20px 16px;display:flex;position:relative;overflow-y:auto}.chat-area::-webkit-scrollbar{width:4px}.chat-area::-webkit-scrollbar-track{background:0 0}.chat-area::-webkit-scrollbar-thumb{background:#e0d6cc;border-radius:4px}.message-row{gap:10px;max-width:88%;animation:.3s ease-out msg-in;display:flex}@keyframes msg-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.message-row.ai{align-self:flex-start}.message-row.user{flex-direction:row-reverse;align-self:flex-end}.avatar{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;margin-top:2px;font-size:.85rem;display:flex}.avatar-ai{color:#d4784a;background:#f5e6d8}.avatar-user{color:#9a8a7a;background:#e8e0d8}.bubble{white-space:pre-wrap;word-break:break-word;border-radius:14px;padding:12px 16px;font-size:.92rem;line-height:1.65}.bubble-ai{color:#3d2e24;background:#fff;border:1px solid #eee6de;border-top-left-radius:4px;box-shadow:0 1px 4px #3d2e240f}.bubble-user{color:#3d2e24;background:#fceae0;border-top-right-radius:4px}.bubble strong{color:#d4784a;font-weight:600}.typing-indicator{align-items:center;gap:5px;padding:14px 18px;display:flex}.typing-dot{background:#bfb0a0;border-radius:50%;width:7px;height:7px;animation:1.4s ease-in-out infinite typing-bounce}.typing-dot:nth-child(2){animation-delay:.2s}.typing-dot:nth-child(3){animation-delay:.4s}@keyframes typing-bounce{0%,60%,to{transform:translateY(0)}30%{transform:translateY(-6px)}}.typing-text{color:#bfb0a0;white-space:nowrap;margin-left:8px;font-size:.8rem;animation:1.2s step-end infinite blink}.cursor:after{content:"|";color:#d4784a;margin-left:1px;animation:.8s step-end infinite cursor-pulse}@keyframes cursor-pulse{0%,to{opacity:1}50%{opacity:0}}.scroll-btn{color:#9a8a7a;cursor:pointer;z-index:5;background:#fff;border:1px solid #e0d6cc;border-radius:999px;align-items:center;gap:6px;padding:8px 18px;font-family:inherit;font-size:.8rem;transition:all .2s;animation:.3s ease-out float-up;display:flex;position:absolute;bottom:100px;left:50%;transform:translate(-50%);box-shadow:0 2px 8px #3d2e2414}.scroll-btn:hover{color:#d4784a;background:#fdf0e8;border-color:#d4784a}@keyframes float-up{0%{opacity:0;transform:translate(-50%)translateY(8px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.input-area{background:#faf6f2;flex-shrink:0;align-items:center;gap:10px;padding:10px 16px 14px;display:flex}.input-wrapper{background:#fff;border:1px solid #e0d6cc;border-radius:28px;flex:1;align-items:center;padding:0 16px;transition:border-color .2s,box-shadow .2s;display:flex}.input-wrapper:focus-within{border-color:#d4784a;box-shadow:0 0 0 1px #d4784a,0 2px 8px #3d2e240d}.input-wrapper input{color:#3d2e24;background:0 0;border:none;outline:none;flex:1;padding:10px 0;font-family:inherit;font-size:.92rem}.input-wrapper input::placeholder{color:#bfb0a0}.send-btn{color:#fff;cursor:pointer;background:#d4784a;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:1.1rem;transition:background .2s,transform .15s;display:flex}.send-btn:hover{background:#c0693f;transform:scale(1.05)}.send-btn:active{transform:scale(.95)}.send-btn:disabled{cursor:not-allowed;background:#e0d6cc;transform:none}
