*{margin:0;padding:0;box-sizing:border-box}html{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;text-size-adjust:100%}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;background:linear-gradient(135deg,#667eea,#764ba2);margin:0;padding:0;width:100vw;height:100vh;overflow:hidden;transition:background .3s ease;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;text-size-adjust:100%}body.dark-mode{background:linear-gradient(135deg,#1a1a2e,#16213e)}#app{width:100%;height:100%}.chat-container{width:100%;height:100%;background:#fffffff2;backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);overflow:hidden;display:flex;flex-direction:column;transition:all .3s ease}body.dark-mode .chat-container{background:#17212bb3}h1{background:#4a90e2cc;backdrop-filter:blur(10px) saturate(180%);-webkit-backdrop-filter:blur(10px) saturate(180%);color:#fff;padding:16px 20px;text-align:left;font-size:20px;font-weight:500;letter-spacing:.3px;box-shadow:0 4px 30px #4a90e24d;display:flex;justify-content:space-between;align-items:center;transition:all .3s ease;border-bottom:1px solid rgba(255,255,255,.2)}body.dark-mode h1{background:#2b5278cc;border-bottom-color:#ffffff1a}.header-actions{display:flex;gap:8px;align-items:center}.user-list-toggle-header{width:36px;height:36px;padding:0;background:#fff3;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.3);border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s ease;color:#fff;position:relative}.user-list-toggle-header:hover{background:#ffffff4d;transform:scale(1.1);box-shadow:0 4px 15px #ffffff4d}.user-list-toggle-header:active{transform:scale(.95)}.user-count-badge{position:absolute;top:-4px;right:-4px;background:#ff4757;color:#fff;font-size:10px;font-weight:600;padding:2px 5px;border-radius:10px;min-width:18px;text-align:center;box-shadow:0 2px 8px #ff475766}.theme-toggle{width:36px;height:36px;padding:0;background:#fff3;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.3);border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s ease;color:#fff}.theme-toggle:hover{background:#ffffff4d;transform:rotate(180deg);box-shadow:0 4px 15px #ffffff4d}.theme-toggle:active{transform:rotate(180deg) scale(.9)}.login-box{padding:60px 40px;display:flex;flex-direction:column;gap:20px;background:transparent;align-items:center;justify-content:center;flex:1;transition:all .3s ease}.login-box input{width:100%;max-width:400px;padding:16px 20px;background:#fff9;backdrop-filter:blur(10px) saturate(180%);-webkit-backdrop-filter:blur(10px) saturate(180%);border:1px solid rgba(255,255,255,.3);border-radius:16px;font-size:16px;color:#333;transition:all .3s ease;box-shadow:0 4px 20px #0000001a}body.dark-mode .login-box input{background:#242f3d99;border-color:#ffffff1a;color:#fff}.login-box input::placeholder{color:#8899a6}body.dark-mode .login-box input::placeholder{color:#6d7883}.login-box input:focus{outline:none;background:#fffc;border-color:#4a90e299;transform:translateY(-2px);box-shadow:0 8px 30px #4a90e24d}body.dark-mode .login-box input:focus{background:#2c3847cc;box-shadow:0 8px 30px #4a90e266}.login-box button{width:100%;max-width:400px;padding:16px;background:#4a90e2e6;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:#fff;border:1px solid rgba(255,255,255,.2);border-radius:16px;font-size:16px;font-weight:500;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 20px #4a90e24d}.login-box button:hover{background:#357abde6;transform:translateY(-2px);box-shadow:0 8px 30px #4a90e280}.login-box button:active{transform:translateY(0) scale(.98)}.chat-box{display:flex;flex-direction:row;flex:1;overflow:hidden;position:relative}.user-list-toggle{display:none}.user-list{width:260px;background:#fffc;backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border-right:1px solid rgba(255,255,255,.3);display:flex;flex-direction:column;overflow:hidden;transition:all .3s ease}.user-list.collapsed{margin-left:-260px}body.dark-mode .user-list{background:#17212b99;border-right-color:#ffffff1a}.user-list h3{font-size:14px;color:#657786;padding:16px 20px;text-align:left;font-weight:500;background:#f5f8fa99;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid rgba(225,232,237,.5);transition:all .3s ease}body.dark-mode .user-list h3{color:#8b98a5;background:#17212b80;border-bottom-color:#ffffff1a}.users{flex:1;overflow-y:auto;padding:8px 0}.user-item{display:flex;align-items:center;gap:12px;padding:12px 20px;cursor:pointer;transition:all .3s ease}.user-item:hover{background:#e8f0f899;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transform:translate(4px)}body.dark-mode .user-item:hover{background:#242f3d99}.user-icon{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,#4a90e2,#357abd);display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0;transition:transform .3s ease}.user-item:hover .user-icon{transform:scale(1.1)}.user-name{font-size:15px;color:#14171a;font-weight:400;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:color .3s ease}body.dark-mode .user-name{color:#fff}.chat-content{flex:1;display:flex;flex-direction:column;background:#c8e6ff4d!important;backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);overflow:hidden;transition:all .3s ease}body.dark-mode .chat-content{background:#0e162180!important}.messages{flex:1;padding:20px;overflow-y:auto;display:flex;flex-direction:column;gap:8px}.message-wrapper{display:flex;align-items:flex-end;gap:10px;max-width:65%;animation:messageSlideIn .3s ease}@keyframes messageSlideIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.message-wrapper.own-message{align-self:flex-end;flex-direction:row-reverse}.message-wrapper.join-message{align-self:center;max-width:100%}.message-wrapper.join-message .message-bubble{background:#4a90e226;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:#657786;font-size:13px;padding:8px 16px;text-align:center;border-radius:16px;transition:all .3s ease;border:1px solid rgba(74,144,226,.2)}body.dark-mode .message-wrapper.join-message .message-bubble{background:#5288c133;color:#8b98a5;border-color:#5288c14d}.message-bubble{background:#ffffffe6;backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border-radius:18px;padding:12px 16px;position:relative;box-shadow:0 4px 20px #0000001a;word-wrap:break-word;min-width:80px;transition:all .3s ease;border:1px solid rgba(74,144,226,.2)}body.dark-mode .message-bubble{background:#182533cc;box-shadow:0 4px 20px #0000004d;border-color:#ffffff1a}.message-bubble:hover{transform:translateY(-2px);box-shadow:0 8px 30px #0000001f}body.dark-mode .message-bubble:hover{box-shadow:0 8px 30px #0006}.own-message .message-bubble{background:#4a90e2e6;border-color:#fff6}body.dark-mode .own-message .message-bubble{background:#2b5278e6;border-color:#fff3}.ai-message .message-bubble{background:linear-gradient(135deg,#8b5cf626,#3b82f626);border:2px solid rgba(139,92,246,.3);box-shadow:0 4px 20px #8b5cf633}body.dark-mode .ai-message .message-bubble{background:linear-gradient(135deg,#8b5cf633,#3b82f633);border-color:#8b5cf666;box-shadow:0 4px 20px #8b5cf64d}.ai-message .message-bubble:hover{transform:translateY(-2px);box-shadow:0 8px 30px #8b5cf64d}.ai-username{color:#8b5cf6!important;font-weight:600}body.dark-mode .ai-username{color:#a78bfa!important}.message-header{margin-bottom:6px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.message-header .username{font-size:15px;font-weight:500;color:#4a90e2;transition:color .3s ease}.reply-to{font-size:12px;color:#8b5cf6;background:linear-gradient(135deg,#8b5cf61a,#3b82f61a);padding:2px 8px;border-radius:10px;font-weight:500;border:1px solid rgba(139,92,246,.2);transition:all .3s ease}body.dark-mode .reply-to{color:#a78bfa;background:linear-gradient(135deg,#8b5cf626,#3b82f626);border-color:#8b5cf64d}.reply-to:hover{background:linear-gradient(135deg,#8b5cf633,#3b82f633);border-color:#8b5cf666;transform:translateY(-1px)}body.dark-mode .message-header .username{color:#5288c1}.own-message .message-header .username{color:#fff}.message-content{font-size:16px;line-height:1.5;color:#14171a;margin-bottom:6px;transition:color .3s ease}body.dark-mode .message-content,.own-message .message-content{color:#fff}.join-message .message-content{color:#657786}body.dark-mode .join-message .message-content{color:#8b98a5}.message-time{font-size:12px;color:#8899a6;text-align:right;transition:color .3s ease}body.dark-mode .message-time{color:#6d7883}.own-message .message-time{color:#fffc}body.dark-mode .own-message .message-time{color:#8fa9c3}.input-box{display:flex;padding:16px 20px;background:#ffffffd9;backdrop-filter:blur(30px) saturate(200%);-webkit-backdrop-filter:blur(30px) saturate(200%);border-top:1px solid rgba(255,255,255,.5);gap:12px;align-items:center;transition:all .4s cubic-bezier(.4,0,.2,1);box-shadow:0 -4px 20px #0000000d}.input-box.ai-mode{background:linear-gradient(135deg,#8b5cf626,#3b82f626);border-top:2px solid rgba(139,92,246,.4);box-shadow:0 -4px 30px #8b5cf633}body.dark-mode .input-box.ai-mode{background:linear-gradient(135deg,#8b5cf633,#3b82f633);border-top-color:#8b5cf680;box-shadow:0 -4px 30px #8b5cf64d}.input-box.ai-mode:hover{background:linear-gradient(135deg,#8b5cf626,#3b82f626);box-shadow:0 -4px 30px #8b5cf633}body.dark-mode .input-box.ai-mode:hover{background:linear-gradient(135deg,#8b5cf633,#3b82f633);box-shadow:0 -4px 30px #8b5cf64d}.ai-toggle{width:46px;height:46px;padding:0;background:linear-gradient(135deg,#8b5cf61a,#3b82f61a);backdrop-filter:blur(15px);-webkit-backdrop-filter:blur(15px);color:#8b5cf6;border:2px solid rgba(139,92,246,.3);border-radius:50%;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;justify-content:center;flex-shrink:0}.ai-toggle svg{transition:all .3s ease}.ai-toggle:hover{background:linear-gradient(135deg,#8b5cf633,#3b82f633);border-color:#8b5cf680;box-shadow:0 4px 20px #8b5cf64d}.ai-toggle:hover svg{transform:translateY(-2px)}.ai-toggle:focus{outline:none}.ai-toggle:focus:not(.active){background:linear-gradient(135deg,#8b5cf61a,#3b82f61a);border-color:#8b5cf64d}.ai-toggle.active{background:linear-gradient(135deg,#8b5cf6e6,#3b82f6e6);border-color:#fff6;color:#fff;transform:scale(1.05);box-shadow:0 4px 25px #8b5cf680;animation:aiPulse 2s ease-in-out infinite,aiGlow 2s ease-in-out infinite}.ai-toggle.animating{animation:aiButtonPress .6s cubic-bezier(.68,-.55,.265,1.55)}.ai-toggle.animating svg{animation:aiIconSpin .6s cubic-bezier(.68,-.55,.265,1.55)}body.dark-mode .ai-toggle{background:linear-gradient(135deg,#8b5cf626,#3b82f626);color:#a78bfa;border-color:#8b5cf666}body.dark-mode .ai-toggle:hover{background:linear-gradient(135deg,#8b5cf640,#3b82f640);border-color:#8b5cf699}body.dark-mode .ai-toggle.active{background:linear-gradient(135deg,#8b5cf6e6,#3b82f6e6);color:#fff;animation:aiPulse 2s ease-in-out infinite,aiGlow 2s ease-in-out infinite}.input-box:hover{background:#fffffff2;box-shadow:0 -6px 30px #00000014}body.dark-mode .input-box{background:#17212bd9;border-top-color:#ffffff26;box-shadow:0 -4px 20px #0000004d}body.dark-mode .input-box:hover{background:#17212bf2;box-shadow:0 -6px 30px #0006}.input-box input{flex:1;padding:14px 20px;background:linear-gradient(135deg,#fffffff2,#f5faffe6);backdrop-filter:blur(40px) saturate(200%) brightness(1.1);-webkit-backdrop-filter:blur(40px) saturate(200%) brightness(1.1);border:2px solid transparent;border-radius:28px;font-size:15px;color:#14171a;transition:all .5s cubic-bezier(.34,1.56,.64,1);box-shadow:0 8px 32px #4a90e21f,0 2px 8px #0000000a,inset 0 1px #fffc,inset 0 -1px #4a90e21a;position:relative;overflow:hidden}.input-box input:before{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(circle,rgba(255,255,255,.4) 0%,transparent 70%);opacity:0;transition:opacity .5s ease;pointer-events:none}.input-box input:after{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.6) 50%,transparent 100%);transition:left .6s ease;pointer-events:none}.input-box input:hover{background:linear-gradient(135deg,#fff,#fafcfffa);border-color:#4a90e24d;box-shadow:0 12px 48px #4a90e233,0 4px 16px #0000000f,inset 0 2px #fff,inset 0 -2px #4a90e226,0 0 0 1px #4a90e21a;transform:translateY(-2px) scale(1.005)}.input-box input:hover:before{opacity:1}body.dark-mode .input-box input{background:linear-gradient(135deg,#242f3df2,#1c2632e6);color:#fff;box-shadow:0 8px 32px #0000004d,0 2px 8px #0003,inset 0 1px #ffffff1a,inset 0 -1px #0000004d}body.dark-mode .input-box input:hover{background:linear-gradient(135deg,#2c3847,#242f3dfa);border-color:#4a90e266;box-shadow:0 12px 48px #4a90e24d,0 4px 16px #0006,inset 0 2px #ffffff26,inset 0 -2px #0006,0 0 0 1px #4a90e233}.input-box input::placeholder{color:#8899a6}body.dark-mode .input-box input::placeholder{color:#6d7883}.input-box input:focus{outline:none;background:#fff;border-color:#4a90e2cc;transform:translateY(-2px) scale(1.01);box-shadow:0 6px 30px #4a90e259,inset 0 1px 3px #fffc,0 0 0 4px #4a90e21a}body.dark-mode .input-box input:focus{background:#2c3847;border-color:#4a90e2cc;box-shadow:0 6px 30px #4a90e280,inset 0 1px 3px #ffffff1a,0 0 0 4px #4a90e226}.input-box .send-button{width:46px;height:46px;padding:0;background:linear-gradient(135deg,#4a90e2f2,#357abdf2);backdrop-filter:blur(15px) saturate(180%);-webkit-backdrop-filter:blur(15px) saturate(180%);color:#fff;border:1.5px solid rgba(255,255,255,.4);border-radius:50%;cursor:pointer;transition:all .4s cubic-bezier(.4,0,.2,1);display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 4px 20px #4a90e266,inset 0 1px 2px #ffffff4d;position:relative;overflow:hidden}.input-box button:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:radial-gradient(circle at center,rgba(255,255,255,.3) 0%,transparent 70%);opacity:0;transition:opacity .4s ease}.input-box button:hover{background:linear-gradient(135deg,#357abd,#4a90e2);box-shadow:0 8px 35px #4a90e299,inset 0 1px 2px #fff6;border-color:#fff9}.input-box button:hover:before{opacity:1}.input-box button.animating{animation:buttonPress .4s ease;box-shadow:0 2px 10px #4a90e266,inset 0 2px 4px #0003}@keyframes buttonPress{0%{transform:scale(1) rotate(0)}50%{transform:scale(.95) rotate(15deg)}to{transform:scale(1) rotate(0)}}@keyframes aiButtonPress{0%{transform:scale(1) rotate(0);box-shadow:0 4px 20px #8b5cf64d}15%{transform:scale(.9) rotate(-10deg);box-shadow:0 2px 10px #8b5cf666}30%{transform:scale(1.15) rotate(10deg);box-shadow:0 8px 40px #8b5cf699}45%{transform:scale(.95) rotate(-5deg);box-shadow:0 6px 30px #8b5cf680}60%{transform:scale(1.08) rotate(5deg);box-shadow:0 10px 45px #8b5cf6b3}75%{transform:scale(.98) rotate(-2deg);box-shadow:0 6px 30px #8b5cf680}to{transform:scale(1) rotate(0);box-shadow:0 4px 20px #8b5cf64d}}@keyframes aiPulse{0%,to{transform:scale(1);box-shadow:0 4px 20px #8b5cf64d}50%{transform:scale(1.05);box-shadow:0 8px 35px #8b5cf699}}@keyframes aiGlow{0%,to{filter:brightness(1) drop-shadow(0 0 5px rgba(139,92,246,.3))}50%{filter:brightness(1.2) drop-shadow(0 0 15px rgba(139,92,246,.8))}}@keyframes aiIconSpin{0%{transform:scale(1) rotateY(0);opacity:1}25%{transform:scale(.8) rotateY(90deg);opacity:.5}50%{transform:scale(1.2) rotateY(180deg);opacity:1}75%{transform:scale(.9) rotateY(270deg);opacity:.7}to{transform:scale(1) rotateY(360deg);opacity:1}}.input-box button svg{width:22px;height:22px;transition:transform .4s cubic-bezier(.4,0,.2,1);filter:drop-shadow(0 1px 2px rgba(0,0,0,.2))}.input-box button:hover svg{transform:none}.input-box button:active svg{transform:translate(0) scale(.9)}.messages::-webkit-scrollbar,.users::-webkit-scrollbar{width:6px}.messages::-webkit-scrollbar-track,.users::-webkit-scrollbar-track{background:#f7f9fa}body.dark-mode .messages::-webkit-scrollbar-track,body.dark-mode .users::-webkit-scrollbar-track{background:transparent}.messages::-webkit-scrollbar-thumb,.users::-webkit-scrollbar-thumb{background:#cbd6e2;border-radius:3px;transition:background .3s ease}body.dark-mode .messages::-webkit-scrollbar-thumb,body.dark-mode .users::-webkit-scrollbar-thumb{background:#242f3d}.messages::-webkit-scrollbar-thumb:hover,.users::-webkit-scrollbar-thumb:hover{background:#a0b5c7}body.dark-mode .messages::-webkit-scrollbar-thumb:hover,body.dark-mode .users::-webkit-scrollbar-thumb:hover{background:#2c3847}@media (max-width: 768px){h1{font-size:18px;padding:12px 16px}.user-list{position:fixed;left:0;top:52px;bottom:0;width:280px;z-index:999;box-shadow:4px 0 20px #0003}.user-list.collapsed{margin-left:-280px}.chat-content{width:100%}.message-wrapper{max-width:90%}.input-box{padding:12px 16px}.input-box input{font-size:14px;padding:12px 16px}.input-box button{width:42px;height:42px}.login-box{padding:40px 20px}}@media (max-width: 480px){h1{font-size:16px;padding:10px 12px}.user-list{width:240px;top:46px}.user-list.collapsed{margin-left:-240px}.message-wrapper{max-width:95%}.message-bubble{padding:10px 14px;font-size:14px}.input-box{padding:10px 12px;gap:8px}.input-box input{font-size:13px;padding:10px 14px}.input-box button{width:38px;height:38px}}
