html,body{height:100%}body{background:#000}#root{height:100%}:root[data-theme=dark]{--bg:#000;--surface:#1c1c1e;--border:#2c2c2e;--text:#fff;--text-soft:#8e8e93;--label:#636366;--user-bg:#0b93f6;--user-text:#fff;--ai-bg:#2c2c2e;--ai-text:#fff;--input-bg:#1c1c1e;--dot:#30d158;--hint:#48484a}:root[data-theme=light]{--bg:#fff;--surface:#f2f2f7;--border:#e5e5ea;--text:#000;--text-soft:#6d6d72;--label:#aeaeb2;--user-bg:#0b93f6;--user-text:#fff;--ai-bg:#e9e9eb;--ai-text:#000;--input-bg:#fff;--dot:#34c759;--hint:#c7c7cc}:root[data-theme=system]{--bg:#000;--surface:#1c1c1e;--border:#2c2c2e;--text:#fff;--text-soft:#8e8e93;--label:#636366;--user-bg:#0b93f6;--user-text:#fff;--ai-bg:#2c2c2e;--ai-text:#fff;--input-bg:#1c1c1e;--dot:#30d158;--hint:#48484a}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;overscroll-behavior:none;font-family:-apple-system,SF Pro Text,Helvetica Neue,sans-serif}::-webkit-scrollbar{width:3px}::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.app{background:var(--bg);flex-direction:column;height:100dvh;transition:background .25s,color .25s;display:flex}.header{border-bottom:1px solid var(--border);background:var(--bg);z-index:10;-webkit-backdrop-filter:blur(20px);flex-shrink:0;grid-template-columns:1fr auto 1fr;align-items:center;height:52px;padding:0 clamp(12px,3vw,20px);display:grid;position:sticky;top:0}.header-left{align-items:center;gap:8px;display:flex}.header-center{flex-direction:column;justify-content:center;align-items:center;gap:1px;display:flex}.header-right{justify-content:flex-end;align-items:center;gap:6px;display:flex}.status-dot{background:var(--dot);width:7px;height:7px;box-shadow:0 0 6px var(--dot);border-radius:50%;animation:2.5s ease-in-out infinite pulse-dot}.app-name{letter-spacing:-.3px;color:var(--text);font-size:clamp(15px,3vw,17px);font-weight:600}.app-subtitle{color:var(--dot);letter-spacing:.2px;font-size:11px}.icon-btn{color:#0b93f6;cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;min-width:32px;height:28px;padding:4px 8px;font-family:inherit;font-size:clamp(10px,1.5vw,11px);font-weight:500;transition:opacity .15s;display:flex}.icon-btn:hover{opacity:.7}.messages{flex-direction:column;flex:1;gap:2px;width:100%;max-width:min(740px,100%);margin:0 auto;padding:clamp(12px,3vw,20px) clamp(12px,4vw,20px);display:flex;overflow-y:auto}.empty{opacity:.45;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:10px;min-height:200px;display:flex}.empty-glyph{font-size:clamp(28px,6vw,40px);animation:1.2s step-end infinite blink}.empty p{color:var(--text-soft);font-size:clamp(13px,2.5vw,15px)}.msg-wrap{flex-direction:column;gap:2px;margin-bottom:2px;animation:.2s forwards msg-in;display:flex}.msg-wrap.user{align-items:flex-end}.msg-wrap.assistant{align-items:flex-start}.msg-wrap+.msg-wrap.user.prev-user,.msg-wrap+.msg-wrap.assistant.prev-assistant{margin-top:1px}.msg-wrap.user+.msg-wrap.assistant,.msg-wrap.assistant+.msg-wrap.user{margin-top:12px}.msg-meta{align-items:center;gap:6px;padding:0 4px;display:flex}.msg-label{color:var(--label);font-size:11px;font-weight:500}.msg-time{color:var(--label);font-size:11px}.bubble{word-break:break-word;max-width:min(75%,520px);padding:clamp(8px,2vw,10px) clamp(12px,2.5vw,14px);font-size:clamp(14px,2.5vw,15px);line-height:1.5;position:relative}.bubble.user{background:var(--user-bg);color:var(--user-text);border-radius:18px 18px 4px}.bubble.assistant{background:var(--ai-bg);color:var(--ai-text);border-radius:18px 18px 18px 4px}.msg-wrap.fresh .bubble.assistant{animation:.2s forwards msg-in,1.5s forwards fresh-pulse}.bubble.loading{align-items:center;gap:4px;min-width:56px;padding:14px 16px;display:flex}.bubble.loading span{background:var(--text-soft);border-radius:50%;width:7px;height:7px}.bubble.loading span:first-child{animation:1s ease-in-out infinite bounce}.bubble.loading span:nth-child(2){animation:1s ease-in-out .2s infinite bounce}.bubble.loading span:nth-child(3){animation:1s ease-in-out .4s infinite bounce}.copy-btn{cursor:pointer;color:var(--label);opacity:.5;background:0 0;border:none;align-items:center;padding:2px 4px;transition:opacity .15s;display:flex}.copy-btn:hover{opacity:1}.input-bar{border-top:1px solid var(--border);background:var(--bg);flex-shrink:0;width:100%;max-width:min(740px,100%);margin:0 auto;padding:clamp(8px,2vw,12px) clamp(12px,4vw,16px) clamp(16px,4vw,24px)}.input-row{align-items:flex-end;gap:8px;display:flex}.input-box{background:var(--input-bg);border:1.5px solid var(--border);border-radius:22px;flex:1;align-items:center;min-height:40px;padding:8px 14px;transition:border-color .15s;display:flex}.input-box:focus-within{border-color:#0b93f6}.input-field{color:var(--text);resize:none;background:0 0;border:none;outline:none;flex:1;min-width:0;font-family:inherit;font-size:16px;line-height:1.4}.input-field::placeholder{color:var(--label)}.send-btn{background:var(--border);width:34px;height:34px;color:var(--text-soft);cursor:default;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;transition:background .15s,color .15s,transform .1s;display:flex}.send-btn.active{color:#fff;cursor:pointer;background:#0b93f6}.send-btn.active:hover{background:#0a84e0}.send-btn.active:active{transform:scale(.92)}.input-hint{color:var(--hint);text-align:center;margin-top:6px;font-size:clamp(9px,1.5vw,11px)}@keyframes bounce{0%,to{opacity:.35;transform:translateY(0)}50%{opacity:1;transform:translateY(-5px)}}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}@keyframes msg-in{0%{opacity:0;transform:translateY(8px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes fresh-pulse{0%{box-shadow:0 0 #0b93f64d}50%{box-shadow:0 0 0 5px #0b93f614}to{box-shadow:0 0 #0b93f600}}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.4}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}@media (width<=480px){.bubble{max-width:88%}.app-subtitle{display:none}}
