:root{--bg-page:#f0f2f5;--bg-card:#fff;--bg-input:#f7f8fa;--bg-user-bubble:#6c63ff;--bg-ai-bubble:#f0f0f5;--bg-header:#fff;--bg-settings:#fff;--text-primary:#1a1a2e;--text-secondary:#6b7280;--text-muted:#9ca3af;--text-on-accent:#fff;--border:#e5e7eb;--border-light:#f0f0f0;--accent:#6c63ff;--accent-hover:#5a52d5;--accent-light:#f0eeff;--shadow-sm:0 1px 3px rgba(0,0,0,.06);--shadow-md:0 4px 16px rgba(0,0,0,.08);--shadow-lg:0 8px 32px rgba(0,0,0,.12);--shadow-card:0 2px 20px rgba(0,0,0,.06);--radius-sm:8px;--radius-md:12px;--radius-lg:18px;--radius-xl:24px;--danger:#ef4444;--success:#22c55e;--online:#22c55e}[data-theme=dark]{--bg-page:#0f0f1a;--bg-card:#1a1a2e;--bg-input:#16213e;--bg-user-bubble:#6c63ff;--bg-ai-bubble:#1e1e32;--bg-header:#1a1a2e;--bg-settings:#1a1a2e;--text-primary:#e8e8f0;--text-secondary:#a0a0b8;--text-muted:#6a6a80;--text-on-accent:#fff;--border:#2a2a40;--border-light:#222238;--accent:#7c74ff;--accent-hover:#6c63ff;--accent-light:rgba(124,116,255,.12);--shadow-sm:0 1px 3px rgba(0,0,0,.2);--shadow-md:0 4px 16px rgba(0,0,0,.3);--shadow-lg:0 8px 32px rgba(0,0,0,.4);--shadow-card:0 2px 20px rgba(0,0,0,.3)}*{box-sizing:border-box;padding:0;margin:0}body,html{height:100%;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Roboto,sans-serif;background:var(--bg-page);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background .3s,color .3s}a{color:inherit;text-decoration:none}button{cursor:pointer}button,input{border:none;outline:none;font-family:inherit}::-webkit-scrollbar{width:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes dotPulse{0%,80%,to{transform:scale(.5);opacity:.3}40%{transform:scale(1);opacity:1}}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}