:root{--paper: #fdf7f1;--surface: #ffffff;--ink: #2c2320;--muted: #8b7f79;--line: rgba(44, 35, 32, .1);--coral: #ff7a4d;--peach: #ffab7d;--violet: #8b7cf6;--mint: #3ec9a3;--radius-xl: 30px;--radius-lg: 22px;--radius-md: 16px;--shadow-soft: 0 24px 60px rgba(120, 90, 70, .14);--shadow-pop: 0 10px 26px rgba(120, 90, 70, .1);--sans: "PingFang SC", "HarmonyOS Sans SC", "Microsoft YaHei", "Noto Sans CJK SC", system-ui, sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{min-width:320px;margin:0;color:var(--ink);background:var(--paper);font-family:var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}body,button,textarea{font-family:var(--sans)}button,textarea{font:inherit}button{color:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}::selection{color:#fff;background:var(--coral)}#app{min-height:100vh}.app-shell{position:relative;display:grid;place-items:center;min-height:100dvh;overflow-x:clip;padding:28px 16px;padding-bottom:calc(28px + env(safe-area-inset-bottom))}.ambient{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;overflow:hidden;pointer-events:none}.ambient-blob{position:absolute;border-radius:50%;filter:blur(60px);opacity:.55;animation:blobDrift 20s ease-in-out infinite}.ambient-blob-a{top:-140px;left:-90px;width:420px;height:420px;background:radial-gradient(circle at 32% 30%,#ffd3b0,#ffb794)}.ambient-blob-b{top:16%;right:-120px;width:400px;height:400px;background:radial-gradient(circle at 60% 40%,#d6cbff,#bcaefb);animation-delay:-7s}.ambient-blob-c{bottom:-160px;left:26%;width:340px;height:340px;background:radial-gradient(circle at 50% 50%,#c2efe1,#9fe0cd);animation-delay:-13s}.ambient-grain{position:absolute;top:0;right:0;bottom:0;left:0;opacity:.35;background-image:radial-gradient(rgba(44,35,32,.055) 1px,transparent 1px);background-size:22px 22px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}:focus-visible{outline:3px solid rgba(255,122,77,.45);outline-offset:3px}.chat-shell{display:flex;flex-direction:column;width:min(880px,100%);height:min(820px,calc(100dvh - 56px));min-height:440px;overflow:hidden;border:1px solid var(--line);border-radius:var(--radius-xl);background:#ffffffb8;box-shadow:var(--shadow-soft);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.chat-head{display:flex;align-items:center;justify-content:space-between;flex:0 0 auto;gap:14px;padding:16px 18px;border-bottom:1px solid var(--line)}.chat-head-identity{display:flex;align-items:center;min-width:0;gap:12px}.chat-avatar{position:relative;display:grid;place-items:center;flex:0 0 auto;width:44px;height:44px;color:#fff;border-radius:15px;background:linear-gradient(135deg,var(--coral),var(--violet));font-size:19px;font-weight:800;box-shadow:0 10px 24px #ff7a4d52}.chat-avatar-glow{position:absolute;top:-6px;right:-6px;bottom:-6px;left:-6px;z-index:-1;border-radius:20px;background:radial-gradient(circle,rgba(255,122,77,.34),transparent 70%);animation:avatarPulse 2.8s ease-in-out infinite}.chat-head-text{min-width:0}.chat-head-text h1{margin:0;font-size:15px;font-weight:700;letter-spacing:-.01em;white-space:nowrap}.chat-head-text p{margin:3px 0 0;color:var(--muted);font-size:11px}.chat-head-actions{display:flex;align-items:center;gap:8px}.icon-button{display:grid;place-items:center;width:38px;height:38px;color:var(--muted);border:1px solid var(--line);border-radius:50%;background:#fffc;cursor:pointer;font-size:15px;transition:color .18s ease,transform .18s ease,border-color .18s ease}.icon-button:hover{color:var(--coral);border-color:#ff7a4d52;transform:translateY(-2px)}.icon-button:disabled{cursor:wait;opacity:.5}.chat-body{flex:1 1 auto;min-height:0;padding:6px 18px 12px;overflow-y:auto;overscroll-behavior:contain;scrollbar-color:rgba(44,35,32,.16) transparent;scrollbar-width:thin}.chat-body::-webkit-scrollbar{width:5px}.chat-body::-webkit-scrollbar-thumb{border-radius:999px;background:#2c232024}.welcome{padding:32px 4px 20px;animation:fadeUp .42s cubic-bezier(.2,.9,.3,1) both}.welcome-kicker{display:inline-block;padding:6px 13px;color:var(--muted);border:1px solid var(--line);border-radius:999px;background:#fffc;font-size:12px}.welcome-title{margin:18px 0 0;font-size:clamp(30px,6.4vw,44px);font-weight:800;line-height:1.14;letter-spacing:-.04em}.welcome-title span{background:linear-gradient(115deg,var(--coral),var(--violet));-webkit-background-clip:text;background-clip:text;color:transparent}.welcome-desc{max-width:460px;margin:14px 0 0;color:var(--muted);font-size:13px;line-height:1.85}.chip-row{display:flex;flex-wrap:wrap;gap:9px;margin-top:24px}.chip{display:inline-flex;align-items:center;gap:8px;padding:10px 15px;color:var(--ink);border:1px solid var(--line);border-radius:999px;background:#ffffffe6;cursor:pointer;font-size:13px;transition:transform .2s cubic-bezier(.2,.9,.3,1.2),box-shadow .2s ease,border-color .2s ease}.chip:hover{border-color:#ff7a4d4d;transform:translateY(-3px) rotate(-.8deg);box-shadow:var(--shadow-pop)}.chip:active{transform:translateY(-1px) scale(.98)}.chip:disabled{cursor:wait;opacity:.55}.chip-emoji{font-size:15px;line-height:1}.message-list{display:flex;flex-direction:column;gap:18px;padding-top:6px}.message{display:flex;align-items:flex-start;gap:9px;animation:bubbleIn .34s cubic-bezier(.2,.9,.3,1.15) both}.message-user{flex-direction:row-reverse}.mini-avatar{display:grid;place-items:center;flex:0 0 auto;width:26px;height:26px;margin-top:1px;color:#fff;border-radius:9px;background:linear-gradient(135deg,var(--coral),var(--violet));font-size:12px;font-weight:800}.message-body{display:flex;flex-direction:column;gap:5px;min-width:0;max-width:82%}.message-user .message-body{align-items:flex-end}.message-name{color:var(--muted);font-size:10px;line-height:1.6;letter-spacing:.04em}.message-content{position:relative;padding:12px 16px;color:var(--ink);border:1px solid var(--line);border-radius:20px 20px 20px 6px;background:#fff;box-shadow:var(--shadow-pop);font-size:14px;line-height:1.75;overflow-wrap:anywhere}.message-content p{margin:0}.message-content p+p{margin-top:9px}.message-content ul{margin:9px 0 0;padding-left:18px}.message-content ul+p{margin-top:11px}.message-content li{margin-top:4px}.message-content li::marker{color:var(--coral)}.message-content strong{font-weight:700}.message-content em{font-style:italic}.message-content code{padding:2px 5px;border:1px solid var(--line);border-radius:5px;background:#2c23200a;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.88em}.message-user .message-content{color:#fff;border-color:transparent;border-radius:20px 20px 6px;background:linear-gradient(135deg,var(--coral),var(--peach));box-shadow:0 12px 24px #ff7a4d42}.message.is-error .message-content{color:#c0452f;border-color:#c0452f38;background:#fff2ed;box-shadow:none}.copy-button{position:absolute;top:-10px;right:8px;padding:3px 8px;color:var(--muted);border:1px solid var(--line);border-radius:8px;background:#fff;cursor:pointer;font-size:10px;opacity:0;box-shadow:0 4px 12px #785a461f;transition:opacity .18s ease,color .18s ease,border-color .18s ease}.message:hover .copy-button,.copy-button:focus-visible{opacity:1}.copy-button:hover{color:var(--coral);border-color:var(--line)}.copy-button.is-copied{color:var(--mint);opacity:1}.message-content.is-pending{display:flex;align-items:center;gap:5px;min-width:64px;min-height:42px}.typing-dot{width:6px;height:6px;border-radius:50%;background:#b9a99e;animation:typingBounce 1.15s ease-in-out infinite}.typing-dot:nth-child(2){animation-delay:.13s}.typing-dot:nth-child(3){animation-delay:.26s}.composer{display:flex;align-items:flex-end;flex:0 0 auto;gap:10px;margin:0 18px;padding:9px 9px 9px 14px;border:1px solid var(--line);border-radius:var(--radius-lg);background:#fff;box-shadow:var(--shadow-pop);transition:border-color .2s ease,box-shadow .2s ease}.composer:focus-within{border-color:#ff7a4d6b;box-shadow:0 0 0 4px #ff7a4d1a,var(--shadow-pop)}.composer textarea{display:block;flex:1 1 auto;min-width:0;min-height:26px;max-height:140px;padding:7px 0;resize:none;color:var(--ink);border:0;outline:0;background:transparent;font-size:15px;line-height:1.6}.composer textarea::placeholder{color:#b3a89f}.send-button{display:grid;place-items:center;flex:0 0 auto;width:44px;height:44px;color:#fff;border:0;border-radius:50%;background:linear-gradient(135deg,var(--coral),var(--peach));cursor:pointer;font-size:15px;box-shadow:0 10px 22px #ff7a4d52;transition:transform .18s ease,box-shadow .18s ease,opacity .18s ease}.send-button:hover:not(:disabled){transform:translateY(-2px) scale(1.04);box-shadow:0 14px 26px #ff7a4d61}.send-button:active:not(:disabled){transform:scale(.94)}.send-button:disabled{cursor:not-allowed;opacity:.42;box-shadow:none}.composer-hint{flex:0 0 auto;margin:9px 20px 14px;color:#a89c93;font-size:10px;text-align:right}@keyframes blobDrift{0%,to{transform:translateZ(0) scale(1)}50%{transform:translate3d(24px,-28px,0) scale(1.08)}}@keyframes avatarPulse{0%,to{opacity:.55;transform:scale(.96)}50%{opacity:1;transform:scale(1.04)}}@keyframes typingBounce{0%,to{transform:translateY(0);opacity:.45}50%{transform:translateY(-5px);opacity:1}}@keyframes bubbleIn{0%{opacity:0;transform:translateY(10px) scale(.97)}to{opacity:1;transform:none}}@keyframes fadeUp{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@media(max-width:640px){.app-shell{padding:0;padding-bottom:env(safe-area-inset-bottom)}.chat-shell{width:100%;height:100dvh;min-height:100dvh;border:0;border-radius:0;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}.chat-head{padding:calc(13px + env(safe-area-inset-top)) 12px 13px;gap:8px}.chat-head-text p{display:none}.chat-head-text h1{font-size:14px}.chat-avatar{width:38px;height:38px;border-radius:13px;font-size:17px}.chat-body{padding:4px 14px 10px}.message-body{max-width:88%}.composer{margin:0 12px}.composer-hint{margin-right:14px}}@media(pointer:coarse){.send-button{width:46px;height:46px}.icon-button{width:42px;height:42px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
