:root{--primary: #5c5c99;--primary-dark: #292966;--primary-light: #ccccff;--primary-subtle: #efefff;--bg-app: #f5f4ff;--bg-sidebar: #faf9ff;--bg-chat: #f8f7ff;--bg-message-own: #5c5c99;--bg-message-other: #ffffff;--text-primary: #292966;--text-secondary: #5f5f8d;--text-placeholder: #8b8bb0;--text-on-primary: #ffffff;--text-message-other: #292966;--border: #d9d6f3;--border-light: #eceafd;--shadow-sm: 0 1px 3px rgba(41,41,102,.08);--shadow-md: 0 10px 24px rgba(41,41,102,.12);--shadow-lg: 0 18px 42px rgba(41,41,102,.16);--sidebar-width: 360px;--header-height: 64px;--border-radius: 12px;--border-radius-sm: 8px;--border-radius-bubble: 18px;--transition: .2s ease;--transition-slow: .35s ease;--font: "Plus Jakarta Sans", system-ui, sans-serif}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-text-size-adjust:100%}body{font-family:var(--font);background:var(--bg-app);color:var(--text-primary);line-height:1.5;-webkit-font-smoothing:antialiased;height:100dvh;overflow:hidden}#root{height:100dvh;display:flex}button{cursor:pointer;border:none;background:none;font-family:inherit}input,textarea{font-family:inherit;outline:none;border:none}img{display:block;max-width:100%}a{text-decoration:none;color:inherit}ul,ol{list-style:none}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:99px}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes slideIn{0%{opacity:0;transform:translate(-12px)}to{opacity:1;transform:translate(0)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes messageIn{0%{opacity:0;transform:scale(.92) translateY(6px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes reactionPop{0%{transform:scale(.5);opacity:0}60%{transform:scale(1.4);opacity:1}to{transform:scale(1);opacity:1}}@keyframes fadeInUp{0%{opacity:0;transform:translate(-50%) translateY(16px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.animate-fade{animation:fadeIn .3s ease both}.animate-slide{animation:slideIn .3s ease both}.animate-message{animation:messageIn .2s ease both}.animate-react-pop{animation:reactionPop .35s cubic-bezier(.34,1.56,.64,1) both}
