.auth-container{display:flex;justify-content:center;align-items:center;min-height:100vh;padding:20px;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%)}.auth-card{background:white;border-radius:24px;padding:48px;width:100%;max-width:420px;box-shadow:0 20px 60px #0000004d;animation:slideUp .5s ease-out}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.auth-card h1{text-align:center;color:#667eea;margin-bottom:12px;font-size:2.8rem;font-weight:800;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.auth-subtitle{text-align:center;color:#666;margin-bottom:32px;font-size:1rem}.auth-form{display:flex;flex-direction:column;gap:24px}.form-group{display:flex;flex-direction:column;gap:10px}.form-group label{font-weight:600;color:#333;font-size:.9rem}.form-group input{padding:14px 18px;border:2px solid #e8ecf1;border-radius:12px;font-size:1rem;transition:all .3s;background:#f8f9fa}.form-group input:focus{outline:none;border-color:#667eea;background:white;box-shadow:0 0 0 4px #667eea1a}.auth-button{padding:16px;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:#fff;border:none;border-radius:12px;font-size:1rem;font-weight:700;cursor:pointer;transition:all .3s;margin-top:8px;box-shadow:0 4px 12px #667eea66}.auth-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #667eea80}.auth-button:active:not(:disabled){transform:translateY(0)}.auth-button:disabled{opacity:.6;cursor:not-allowed;transform:none}.error-message{background:linear-gradient(135deg,#fee 0%,#fdd 100%);color:#c33;padding:14px;border-radius:12px;margin-bottom:20px;font-size:.9rem;text-align:center;border:1px solid rgba(204,51,51,.2);box-shadow:0 2px 8px #cc33331a}.auth-footer{text-align:center;margin-top:28px;color:#666;font-size:.9rem}.auth-footer a{color:#667eea;text-decoration:none;font-weight:700;transition:color .2s}.auth-footer a:hover{color:#764ba2;text-decoration:underline}.chat-list{display:flex;flex-direction:column;height:100%;background:white;border-right:1px solid rgba(0,0,0,.05)}.chat-list-header{display:flex;justify-content:space-between;align-items:center;padding:24px 20px;border-bottom:1px solid rgba(0,0,0,.05);background:linear-gradient(135deg,#f8f9fa 0%,#ffffff 100%)}.chat-list-header h2{margin:0;color:#333;font-size:1.5rem;display:flex;align-items:center;gap:10px;font-weight:700}.notification-badge-header{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:#fff;border-radius:12px;padding:4px 10px;font-size:.75rem;font-weight:700;box-shadow:0 2px 8px #667eea66;animation:pulse-badge 2s infinite}@keyframes pulse-badge{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.new-group-btn{padding:10px 18px;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:#fff;border:none;border-radius:12px;cursor:pointer;font-size:.9rem;font-weight:600;transition:all .3s;box-shadow:0 2px 8px #667eea4d}.new-group-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.chat-search{padding:16px 20px;border-bottom:1px solid rgba(0,0,0,.05);background:white}.chat-search input{width:100%;padding:12px 16px;border:2px solid #e8ecf1;border-radius:12px;font-size:.9rem;background:#f8f9fa;transition:all .3s}.chat-search input:focus{outline:none;border-color:#667eea;background:white;box-shadow:0 0 0 4px #667eea1a}.chat-items{flex:1;overflow-y:auto}.chat-items::-webkit-scrollbar{width:6px}.chat-items::-webkit-scrollbar-track{background:transparent}.chat-items::-webkit-scrollbar-thumb{background:rgba(102,126,234,.3);border-radius:3px}.chat-items::-webkit-scrollbar-thumb:hover{background:rgba(102,126,234,.5)}.chat-item{display:flex;padding:16px 20px;cursor:pointer;transition:all .2s;border-bottom:1px solid rgba(0,0,0,.03);position:relative}.chat-item:hover{background:linear-gradient(to right,#f8f9fa,white)}.chat-item.active{background:linear-gradient(135deg,rgba(102,126,234,.1) 0%,rgba(118,75,162,.05) 100%);border-left:4px solid #667eea}.chat-avatar{width:52px;height:52px;border-radius:50%;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);display:flex;align-items:center;justify-content:center;font-size:1.5rem;margin-right:14px;flex-shrink:0;box-shadow:0 4px 8px #667eea4d;transition:transform .2s}.chat-item:hover .chat-avatar{transform:scale(1.05)}.chat-info{flex:1;min-width:0}.chat-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.chat-name{font-weight:600;color:#333;font-size:.95rem}.chat-time{font-size:.75rem;color:#999;font-weight:500}.chat-preview{display:flex;justify-content:space-between;align-items:center}.chat-message{font-size:.85rem;color:#666;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.unread-badge{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:#fff;border-radius:12px;padding:3px 9px;font-size:.7rem;font-weight:700;margin-left:8px;box-shadow:0 2px 6px #667eea66;min-width:20px;text-align:center}.no-chats{text-align:center;padding:60px 20px;color:#999;font-size:.95rem}.chat-room{display:flex;flex-direction:column;height:100%;background:linear-gradient(to bottom,#f5f7fa 0%,#e8ecf1 100%)}.chat-room-empty{display:flex;align-items:center;justify-content:center;height:100%;background:white}.empty-message{text-align:center;color:#999}.empty-message h2{color:#667eea;margin-bottom:10px;font-weight:600}.chat-room-header{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);padding:18px 24px;border-bottom:none;display:flex;justify-content:space-between;align-items:center;box-shadow:0 2px 10px #0000001a;color:#fff}.chat-header-info{display:flex;align-items:center;gap:14px}.chat-header-avatar{width:48px;height:48px;border-radius:50%;background:rgba(255,255,255,.25);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:center;font-size:1.4rem;border:2px solid rgba(255,255,255,.3);box-shadow:0 4px 6px #0000001a}.chat-header-name{font-weight:600;color:#fff;font-size:1.1rem}.chat-header-status{font-size:.85rem;color:#ffffffe6;margin-top:3px}.online-status{color:#4ade80;font-weight:500;display:flex;align-items:center;gap:6px}.online-status:before{content:"";width:8px;height:8px;border-radius:50%;background:#4ade80;display:inline-block;animation:pulse 2s infinite}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.2)}}.offline-status{color:#ffffffb3}.chat-messages{flex:1;overflow-y:auto;padding:24px;display:flex;flex-direction:column;gap:16px;scroll-behavior:smooth}.chat-messages::-webkit-scrollbar{width:6px}.chat-messages::-webkit-scrollbar-track{background:transparent}.chat-messages::-webkit-scrollbar-thumb{background:rgba(102,126,234,.3);border-radius:3px}.chat-messages::-webkit-scrollbar-thumb:hover{background:rgba(102,126,234,.5)}.date-separator{display:flex;align-items:center;justify-content:center;margin:24px 0;position:relative}.date-separator:before,.date-separator:after{content:"";flex:1;height:1px;background:linear-gradient(to right,transparent,rgba(102,126,234,.3),transparent)}.date-separator span{padding:6px 16px;font-size:.75rem;color:#667eea;background:white;border-radius:12px;font-weight:500;box-shadow:0 2px 4px #0000000d}.no-messages{display:flex;align-items:center;justify-content:center;height:100%;color:#999;font-size:1rem}.message{display:flex;gap:10px;align-items:flex-start;animation:fadeIn .3s ease-in}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.message.own{flex-direction:row-reverse}.message-avatar{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);display:flex;align-items:center;justify-content:center;font-size:.95rem;font-weight:600;color:#fff;flex-shrink:0;box-shadow:0 2px 8px #667eea4d}.message-content{max-width:70%;display:flex;flex-direction:column}.message.own .message-content{align-items:flex-end}.message-sender{font-size:.75rem;color:#667eea;margin-bottom:4px;padding:0 6px;font-weight:600}.message-bubble{background:white;padding:12px 16px;border-radius:18px;box-shadow:0 2px 8px #00000014;position:relative;transition:transform .2s,box-shadow .2s}.message-bubble:hover{transform:translateY(-1px);box-shadow:0 4px 12px #0000001f}.message.own .message-bubble{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:#fff;box-shadow:0 4px 12px #667eea66}.message-bubble p{margin:0;word-wrap:break-word;font-size:.95rem;line-height:1.5}.message-time{font-size:.7rem;opacity:.7;margin-top:6px;display:block}.typing-indicator{display:flex;align-items:center;gap:8px;padding:12px 16px;background:white;border-radius:18px;box-shadow:0 2px 8px #00000014;max-width:fit-content;margin-left:46px;animation:fadeIn .3s ease-in}.typing-indicator span{font-size:.85rem;color:#667eea;font-weight:500;margin-right:8px}.typing-dots{display:flex;gap:4px;align-items:center}.typing-dot{width:8px;height:8px;border-radius:50%;background:#667eea;animation:typingDot 1.4s infinite}.typing-dot:nth-child(1){animation-delay:0s}.typing-dot:nth-child(2){animation-delay:.2s}.typing-dot:nth-child(3){animation-delay:.4s}@keyframes typingDot{0%,60%,to{transform:translateY(0);opacity:.7}30%{transform:translateY(-10px);opacity:1}}.chat-input-form{display:flex;gap:12px;padding:20px 24px;background:white;border-top:1px solid rgba(0,0,0,.05);box-shadow:0 -2px 10px #0000000d}.chat-input{flex:1;padding:14px 20px;border:2px solid #e8ecf1;border-radius:24px;font-size:.95rem;outline:none;transition:all .3s;background:#f8f9fa}.chat-input:focus{border-color:#667eea;background:white;box-shadow:0 0 0 4px #667eea1a}.chat-input:disabled{opacity:.6;cursor:not-allowed}.send-button{padding:14px 28px;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:#fff;border:none;border-radius:24px;font-weight:600;cursor:pointer;transition:all .3s;box-shadow:0 4px 12px #667eea66;min-width:80px}.send-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 16px #667eea80}.send-button:active:not(:disabled){transform:translateY(0)}.send-button:disabled{opacity:.6;cursor:not-allowed;transform:none;box-shadow:0 2px 8px #667eea4d}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.6);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background:white;border-radius:20px;width:90%;max-width:520px;max-height:85vh;display:flex;flex-direction:column;box-shadow:0 20px 60px #0000004d;animation:slideUp .3s ease-out}@keyframes slideUp{0%{opacity:0;transform:translateY(30px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:24px;border-bottom:1px solid rgba(0,0,0,.05);background:linear-gradient(135deg,#f8f9fa 0%,#ffffff 100%)}.modal-header h2{margin:0;color:#333;font-size:1.6rem;font-weight:700}.close-btn{background:none;border:none;font-size:2rem;color:#999;cursor:pointer;line-height:1;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:8px;transition:all .2s}.close-btn:hover{color:#333;background:#f0f0f0}.modal-body{padding:24px;overflow-y:auto;flex:1}.modal-body::-webkit-scrollbar{width:6px}.modal-body::-webkit-scrollbar-track{background:transparent}.modal-body::-webkit-scrollbar-thumb{background:rgba(102,126,234,.3);border-radius:3px}.search-input,.form-input{width:100%;padding:14px 18px;border:2px solid #e8ecf1;border-radius:12px;font-size:1rem;margin-bottom:16px;background:#f8f9fa;transition:all .3s}.search-input:focus,.form-input:focus{outline:none;border-color:#667eea;background:white;box-shadow:0 0 0 4px #667eea1a}.loading,.no-results{text-align:center;padding:40px 20px;color:#999;font-size:.95rem}.user-list{display:flex;flex-direction:column;gap:8px}.user-item{display:flex;align-items:center;gap:14px;padding:14px;border-radius:12px;cursor:pointer;transition:all .2s;border:2px solid transparent}.user-item:hover{background:linear-gradient(135deg,#f8f9fa 0%,#ffffff 100%);border-color:#667eea33;transform:translate(4px)}.user-avatar{width:44px;height:44px;border-radius:50%;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);display:flex;align-items:center;justify-content:center;font-size:1.2rem;font-weight:700;color:#fff;box-shadow:0 4px 8px #667eea4d}.user-info{flex:1}.user-name{font-weight:600;color:#333;font-size:.95rem}.user-email{font-size:.8rem;color:#999}.online-indicator{color:#4ade80;font-size:.9rem;font-weight:700}.form-group{margin-bottom:24px}.form-group label{display:block;margin-bottom:10px;font-weight:600;color:#333}.user-selection{max-height:320px;overflow-y:auto;border:2px solid #e8ecf1;border-radius:12px;padding:12px;background:#f8f9fa}.user-selection::-webkit-scrollbar{width:6px}.user-selection::-webkit-scrollbar-track{background:transparent}.user-selection::-webkit-scrollbar-thumb{background:rgba(102,126,234,.3);border-radius:3px}.user-select-item{display:flex;align-items:center;gap:14px;padding:12px;border-radius:10px;cursor:pointer;transition:all .2s;border:2px solid transparent}.user-select-item:hover{background:white;border-color:#667eea4d}.user-select-item.selected{background:linear-gradient(135deg,rgba(102,126,234,.1) 0%,rgba(118,75,162,.05) 100%);border-color:#667eea}.check-mark{margin-left:auto;color:#667eea;font-weight:700;font-size:1.2rem}.modal-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:24px;padding-top:24px;border-top:1px solid rgba(0,0,0,.05)}.btn-primary,.btn-secondary{padding:12px 24px;border:none;border-radius:12px;font-weight:600;cursor:pointer;transition:all .3s;font-size:.95rem}.btn-primary{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:#fff;box-shadow:0 4px 12px #667eea66}.btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 16px #667eea80}.btn-primary:disabled{opacity:.6;cursor:not-allowed;transform:none}.btn-secondary{background:#f0f0f0;color:#333}.btn-secondary:hover{background:#e0e0e0;transform:translateY(-1px)}.dashboard{display:flex;height:100vh;background:linear-gradient(135deg,#f5f7fa 0%,#e8ecf1 100%);overflow:hidden}.dashboard-sidebar{width:380px;display:flex;flex-direction:column;background:white;border-right:1px solid rgba(0,0,0,.05);box-shadow:2px 0 10px #0000000d}.sidebar-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid rgba(0,0,0,.05);background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:#fff;box-shadow:0 2px 10px #667eea4d}.user-info{display:flex;align-items:center;gap:14px;flex:1}.user-avatar{width:44px;height:44px;border-radius:50%;background:rgba(255,255,255,.25);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:center;font-size:1.3rem;font-weight:700;border:2px solid rgba(255,255,255,.3);box-shadow:0 4px 8px #0003}.user-details{flex:1}.user-name{font-weight:700;font-size:1rem}.user-status{font-size:.8rem;opacity:.95;margin-top:2px}.logout-btn{background:rgba(255,255,255,.2);border:none;color:#fff;padding:10px 14px;border-radius:10px;cursor:pointer;font-size:1.3rem;transition:all .3s;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.logout-btn:hover{background:rgba(255,255,255,.3);transform:scale(1.05)}.sidebar-actions{padding:16px 20px;border-bottom:1px solid rgba(0,0,0,.05);background:white}.new-chat-btn{width:100%;padding:12px;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:#fff;border:none;border-radius:12px;font-weight:600;cursor:pointer;transition:all .3s;box-shadow:0 2px 8px #667eea4d;font-size:.95rem}.new-chat-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.dashboard-main{flex:1;display:flex;flex-direction:column;overflow:hidden}.App{min-height:100vh}*{box-sizing:border-box}*{margin:0;padding:0;box-sizing:border-box}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;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);min-height:100vh;overflow:hidden}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}#root{min-height:100vh}*{scroll-behavior:smooth}::selection{background:rgba(102,126,234,.3);color:inherit}
