html,body{margin:0;padding:0;height:100%;overflow:hidden}#root{margin:0;padding:0;height:100%}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.message-list{flex:1;overflow-y:auto;padding:1.5rem;display:flex;flex-direction:column;gap:1rem;background:transparent}.empty-messages{display:flex;align-items:center;justify-content:center;height:100%;color:#fff9;font-style:italic}.message{display:flex;flex-direction:column;max-width:70%;animation:messageSlideIn .3s ease}.message.local{align-self:flex-end}.message.remote{align-self:flex-start}.message-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.25rem;font-size:.8rem;opacity:.8}.username{font-weight:600;color:#ffffffe6}.timestamp{color:#fff9;font-size:.75rem}.message-content{background:#ffffff26;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);padding:1rem 1.25rem;border-radius:18px;color:#fff;word-wrap:break-word;line-height:1.5;border:1px solid rgba(255,255,255,.2);box-shadow:0 4px 15px #0000001a}.message.local .message-content{background:linear-gradient(135deg,#8a2be2,indigo);border:1px solid rgba(138,43,226,.3);box-shadow:0 4px 15px #8a2be233}.message.remote .message-content{background:#ffffff26;border:1px solid rgba(255,255,255,.2);box-shadow:0 4px 15px #0000001a}@keyframes messageSlideIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.message-list::-webkit-scrollbar{width:6px}.message-list::-webkit-scrollbar-track{background:#ffffff1a;border-radius:3px}.message-list::-webkit-scrollbar-thumb{background:#ffffff4d;border-radius:3px}.message-list::-webkit-scrollbar-thumb:hover{background:#ffffff80}@media (max-width: 768px){.message{max-width:85%}.message-content{padding:.6rem .8rem;font-size:.9rem}.message-header{font-size:.75rem}}.message-input{display:flex;padding:1.5rem;background:#ffffff26;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-top:1px solid rgba(255,255,255,.3);gap:1rem;align-items:center}.message-text-input{flex:1;padding:1rem 1.25rem;border:2px solid rgba(255,255,255,.2);border-radius:25px;background:#ffffff1a;color:#fff;font-size:1rem;transition:all .3s ease;outline:none;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.message-text-input::placeholder{color:#fff9}.message-text-input:focus{border-color:#8a2be2;background:#fff3;box-shadow:0 0 0 3px #8a2be24d,0 8px 25px #4b008233;transform:translateY(-2px)}.send-button{padding:1rem 1.5rem;background:linear-gradient(135deg,#8a2be2,indigo);color:#fff;border:none;border-radius:25px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s ease;white-space:nowrap;min-width:80px;position:relative;overflow:hidden}.send-button:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:left .5s}.send-button:hover:not(:disabled):before{left:100%}.send-button:hover:not(:disabled){background:linear-gradient(135deg,indigo,#6a5acd);transform:translateY(-2px);box-shadow:0 8px 25px #8a2be266}.send-button:disabled{background:#666;cursor:not-allowed;transform:none;box-shadow:none;opacity:.6}.send-button:active{transform:translateY(0)}@media (max-width: 768px){.message-input{padding:.75rem;gap:.5rem}.message-text-input{padding:.6rem .8rem;font-size:.9rem}.send-button{padding:.6rem 1.2rem;font-size:.9rem;min-width:70px}}.connection-status{background:#ffffff26;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);padding:1.25rem;border-radius:15px;border:1px solid rgba(255,255,255,.3);color:#fff;box-shadow:0 4px 15px #0000001a}.status-indicator{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem}.status-dot{width:8px;height:8px;border-radius:50%;animation:pulse 2s infinite}.status-text{font-weight:600;font-size:.9rem}.participant-count{font-size:.8rem;opacity:.8;text-align:center}@keyframes pulse{0%{opacity:1}50%{opacity:.5}to{opacity:1}}@media (max-width: 768px){.connection-status{padding:.5rem;display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:.5rem}.status-indicator{margin-bottom:0}.status-text{font-size:.7rem}.participant-count{font-size:.7rem;text-align:right}}.room-selector{max-width:600px;margin:2rem auto;padding:3rem;background:#ffffff26;-webkit-backdrop-filter:blur(25px);backdrop-filter:blur(25px);border-radius:25px;border:1px solid rgba(255,255,255,.3);box-shadow:0 20px 40px #00000026,0 0 0 1px #ffffff1a;color:#fff;position:relative}.room-selector:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(135deg,#8a2be214,#4b00821a,#6a5acd14);z-index:-1}.room-selector h2{margin:0 0 1.5rem;font-size:1.5rem;font-weight:600;text-align:center}.connection-section{margin-bottom:2rem;padding-bottom:2rem;border-bottom:1px solid rgba(255,255,255,.2)}.input-group{display:flex;gap:.5rem;margin-bottom:1rem}.username-input,.room-input{flex:1;padding:1rem;border:2px solid rgba(255,255,255,.2);border-radius:15px;background:#ffffff1a;color:#fff;font-size:1rem;transition:all .3s ease;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.username-input::placeholder,.room-input::placeholder{color:#ffffffb3}.username-input:focus,.room-input:focus{outline:none;border-color:#8a2be2;background:#fff3;box-shadow:0 0 0 3px #8a2be24d,0 8px 25px #4b008233;transform:translateY(-2px)}.connect-button,.join-button,.create-button{padding:.75rem 1.5rem;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s ease;white-space:nowrap}.connect-button{background:linear-gradient(135deg,#8a2be2,indigo);color:#fff;border:none;position:relative;overflow:hidden}.connect-button:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:left .5s}.connect-button:hover:not(:disabled):before{left:100%}.connect-button:hover:not(:disabled){background:linear-gradient(135deg,indigo,#6a5acd);transform:translateY(-2px);box-shadow:0 8px 25px #8a2be266}.connect-button:disabled{background:#666;cursor:not-allowed;transform:none;box-shadow:none}.join-button{background:linear-gradient(135deg,#8a2be2,indigo);color:#fff;border:none;position:relative;overflow:hidden}.join-button:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:left .5s}.join-button:hover:before{left:100%}.join-button:hover{background:linear-gradient(135deg,indigo,#6a5acd);transform:translateY(-2px);box-shadow:0 8px 25px #8a2be266}.create-button{background:linear-gradient(135deg,#6a5acd,#8a2be2);color:#fff;width:100%;border:none;position:relative;overflow:hidden}.create-button:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:left .5s}.create-button:hover:before{left:100%}.create-button:hover{background:linear-gradient(135deg,#8a2be2,#9370db);transform:translateY(-2px);box-shadow:0 8px 25px #6a5acd66}.connection-status{text-align:center;font-weight:600;font-size:.9rem;margin-top:.5rem}.room-section{margin-bottom:2rem}.join-room,.create-room{margin-bottom:1.5rem}.join-room h3,.create-room h3{margin:0 0 1rem;font-size:1.1rem;font-weight:600;color:#ffffffe6}.error-message{background:#f4433633;border:1px solid rgba(244,67,54,.5);color:#ffcdd2;padding:1rem;border-radius:8px;margin-bottom:1rem;text-align:center}.info-section{background:#ffffff0d;padding:1.5rem;border-radius:8px;border:1px solid rgba(255,255,255,.1);margin-top:1rem}.info-section h3{margin:0 0 1rem;font-size:1.1rem;font-weight:600;color:#ffffffe6}.info-section ul{margin:0;padding-left:1.5rem;color:#fffc;line-height:1.6}.info-section li{margin-bottom:.5rem}@media (max-width: 768px){.room-selector{margin:1rem 1rem 2rem;padding:2rem}.input-group{flex-direction:column}.connect-button,.join-button{width:100%}}@media (max-width: 480px){.room-selector{margin:.5rem .5rem 1rem;padding:1.5rem}}.chat-app{display:flex;flex-direction:column;height:100vh;background:transparent;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;position:relative;overflow:hidden}.chat-app.connection-screen{overflow-y:auto}.chat-app:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(135deg,#8a2be20d,#4b008214,#483d8b0d,#6a5acd14,#7b68ee0d);background-size:400% 400%;animation:gradientShift 25s ease infinite;z-index:-1}.chat-header{background:#ffffff26;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);padding:1.5rem 2rem;border-bottom:1px solid rgba(255,255,255,.3);display:flex;justify-content:space-between;align-items:center;color:#fff;box-shadow:0 8px 32px #0000001a;margin:10px 10px 0}.chat-header h1{margin:0;font-size:1.5rem;font-weight:600}.header-info{display:flex;align-items:center;gap:1rem}.username{font-weight:500;opacity:.9}.leave-button{background:#fff3;border:1px solid rgba(255,255,255,.3);color:#fff;padding:.5rem 1rem;border-radius:8px;cursor:pointer;transition:all .3s ease;font-weight:500}.leave-button:hover{background:#ffffff4d;transform:translateY(-1px)}.chat-container{display:flex;flex:1;min-height:0;overflow:hidden;margin:0 10px 10px;box-shadow:0 8px 32px #0000001a}.chat-sidebar{width:300px;background:#ffffff26;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-right:1px solid rgba(255,255,255,.3);padding:1.5rem;display:flex;flex-direction:column;gap:1.5rem}.participants h3{color:#fff;margin:0 0 .5rem;font-size:1rem;font-weight:600}.participant-list{display:flex;flex-direction:column;gap:.5rem}.participant{background:#ffffff1a;padding:.5rem;border-radius:6px;color:#fff;font-size:.9rem;border-left:3px solid #4CAF50}.participant.local{border-left-color:#2196f3;background:#2196f333}.chat-main{flex:1;display:flex;flex-direction:column;background:#ffffff1a;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);min-height:0;overflow:hidden}.error-message{position:fixed;top:20px;right:20px;background:#f44336;color:#fff;padding:1rem;border-radius:8px;box-shadow:0 4px 12px #0000004d;z-index:1000;animation:slideIn .3s ease}@keyframes slideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@media (max-width: 768px){.chat-container{flex-direction:column}.chat-sidebar{width:100%;height:auto;max-height:200px}.chat-header{padding:.5rem 1rem;flex-direction:column;gap:.25rem;text-align:center;border-radius:0 0 10px 10px;margin:5px 8px 0}.chat-header h1{font-size:.9rem;font-weight:600}.header-info{flex-direction:row;gap:.5rem;font-size:.7rem;align-items:center;justify-content:center}.username{font-size:.7rem}.leave-button{padding:.3rem .8rem;font-size:.8rem}}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#0a0a1a;color:#fff;overflow-x:hidden;overflow-y:auto;position:relative}body:before{content:"";position:fixed;top:0;left:0;width:100%;height:100%;background:radial-gradient(2px 2px at 20px 30px,#eee,transparent),radial-gradient(2px 2px at 40px 70px,rgba(255,255,255,.8),transparent),radial-gradient(1px 1px at 90px 40px,#fff,transparent),radial-gradient(1px 1px at 130px 80px,rgba(255,255,255,.6),transparent),radial-gradient(2px 2px at 160px 30px,#ddd,transparent),radial-gradient(1px 1px at 190px 60px,rgba(255,255,255,.9),transparent),radial-gradient(1px 1px at 220px 90px,#eee,transparent),radial-gradient(2px 2px at 250px 40px,rgba(255,255,255,.7),transparent),radial-gradient(1px 1px at 280px 70px,#fff,transparent),radial-gradient(1px 1px at 310px 20px,rgba(255,255,255,.8),transparent),radial-gradient(2px 2px at 340px 50px,#ddd,transparent),radial-gradient(1px 1px at 370px 80px,rgba(255,255,255,.6),transparent),radial-gradient(1px 1px at 400px 30px,#eee,transparent),radial-gradient(2px 2px at 430px 60px,rgba(255,255,255,.9),transparent),radial-gradient(1px 1px at 460px 10px,#fff,transparent),radial-gradient(1px 1px at 490px 40px,rgba(255,255,255,.7),transparent),radial-gradient(2px 2px at 520px 70px,#ddd,transparent),radial-gradient(1px 1px at 550px 20px,rgba(255,255,255,.8),transparent),radial-gradient(1px 1px at 580px 50px,#eee,transparent),radial-gradient(2px 2px at 610px 80px,rgba(255,255,255,.6),transparent),radial-gradient(1px 1px at 640px 30px,#fff,transparent),radial-gradient(1px 1px at 670px 60px,rgba(255,255,255,.9),transparent),radial-gradient(2px 2px at 700px 10px,#ddd,transparent),radial-gradient(1px 1px at 730px 40px,rgba(255,255,255,.7),transparent),radial-gradient(1px 1px at 760px 70px,#eee,transparent),radial-gradient(2px 2px at 790px 20px,rgba(255,255,255,.8),transparent),radial-gradient(1px 1px at 820px 50px,#fff,transparent),radial-gradient(1px 1px at 850px 80px,rgba(255,255,255,.6),transparent),radial-gradient(2px 2px at 880px 30px,#ddd,transparent),radial-gradient(1px 1px at 910px 60px,rgba(255,255,255,.9),transparent),radial-gradient(1px 1px at 940px 10px,#eee,transparent),radial-gradient(2px 2px at 970px 40px,rgba(255,255,255,.7),transparent),radial-gradient(1px 1px at 1000px 70px,#fff,transparent);background-repeat:repeat;background-size:200px 100px;animation:twinkle 4s ease-in-out infinite alternate;z-index:-2}body:after{content:"";position:fixed;top:0;left:0;width:100%;height:100%;background:linear-gradient(135deg,#8a2be21a,#4b008226,#483d8b1a,#6a5acd26,#7b68ee1a);background-size:400% 400%;animation:gradientShift 20s ease infinite;z-index:-1}@keyframes twinkle{0%{opacity:.3}50%{opacity:1}to{opacity:.3}}@keyframes gradientShift{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}.App{min-height:100vh;width:100vw;display:flex;flex-direction:column}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:#ffffff1a;border-radius:4px}::-webkit-scrollbar-thumb{background:#ffffff4d;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#ffffff80}*{scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.3) rgba(255,255,255,.1)}button{transition:all .3s ease}button:hover{transform:translateY(-1px)}button:active{transform:translateY(0)}input:focus{transform:translateY(-1px);box-shadow:0 4px 12px #4caf5033}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading{animation:spin 1s linear infinite}@media (max-width: 768px){body{font-size:14px}}@media (max-width: 480px){body{font-size:13px}}
