@import "https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700&display=swap";:root{--bg-gradient:linear-gradient(135deg, #0f0c20 0%, #15102a 50%, #06040a 100%);--sidebar-bg:#0f0c2066;--chat-bg:#15102a40;--card-bg:#19143273;--text-primary:#f3f1f8;--text-secondary:#a29db8;--primary-accent:#8b5cf6;--primary-glow:#8b5cf666;--border-color:#ffffff14;--active-bg:#8b5cf633;--success-color:#10b981}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg-gradient);color:var(--text-primary);height:100vh;font-family:Outfit,-apple-system,BlinkMacSystemFont,sans-serif;overflow:hidden}#root{height:100%}.auth-container{background:var(--bg-gradient);justify-content:center;align-items:center;height:100vh;display:flex}.auth-card{background:var(--card-bg);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid var(--border-color);border-radius:24px;width:100%;max-width:440px;padding:2.5rem;animation:.6s cubic-bezier(.16,1,.3,1) fadeIn;box-shadow:0 20px 40px #0000004d,0 0 80px #8b5cf61a}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.auth-header{text-align:center;margin-bottom:2rem}.logo-icon-wrapper{color:#fff;width:64px;height:64px;box-shadow:0 8px 20px var(--primary-glow);background:linear-gradient(135deg,#a78bfa,#8b5cf6);border-radius:18px;justify-content:center;align-items:center;margin-bottom:1rem;display:inline-flex}.auth-header h2{background:linear-gradient(90deg,#fff,#c084fc);-webkit-text-fill-color:transparent;-webkit-background-clip:text;margin-bottom:.5rem;font-size:1.75rem;font-weight:600}.auth-header .subtitle{color:var(--text-secondary);font-size:.9rem}.auth-form{flex-direction:column;gap:1.25rem;display:flex}.error-banner{color:#fca5a5;background:#ef444426;border:1px solid #ef44444d;border-radius:12px;padding:.75rem 1rem;font-size:.85rem;line-height:1.4}.form-group{flex-direction:column;gap:.5rem;display:flex}.form-group label{color:var(--text-secondary);font-size:.85rem;font-weight:500}.input-with-icon{align-items:center;display:flex;position:relative}.field-icon{color:var(--text-secondary);position:absolute;left:14px}.input-with-icon input{border:1px solid var(--border-color);color:#fff;background:#ffffff0d;border-radius:12px;outline:none;width:100%;padding:.75rem 1rem .75rem 2.75rem;font-size:.95rem;transition:all .3s}.input-with-icon input:focus{border-color:var(--primary-accent);box-shadow:0 0 15px var(--primary-glow);background:#ffffff14}.submit-auth-btn{color:#fff;cursor:pointer;background:linear-gradient(135deg,#8b5cf6,#6d28d9);border:none;border-radius:12px;margin-top:.5rem;padding:.85rem;font-size:1rem;font-weight:600;transition:all .3s}.submit-auth-btn:hover{box-shadow:0 8px 20px var(--primary-glow);transform:translateY(-2px)}.auth-footer{text-align:center;color:var(--text-secondary);margin-top:1.5rem;font-size:.85rem}.toggle-auth-mode{color:#c084fc;cursor:pointer;background:0 0;border:none;font-family:inherit;font-weight:500}.toggle-auth-mode:hover{text-decoration:underline}.app-chat-wrapper{height:100vh;display:flex;overflow:hidden}.sidebar-container{background:var(--sidebar-bg);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-right:1px solid var(--border-color);flex-direction:column;width:280px;display:flex}.sidebar-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:1.25rem;display:flex}.user-profile{align-items:center;gap:.75rem;display:flex}.avatar-placeholder{color:#fff;background:linear-gradient(135deg,#a78bfa,#8b5cf6);border-radius:12px;justify-content:center;align-items:center;width:38px;height:38px;font-weight:600;display:flex;box-shadow:0 4px 10px #8b5cf64d}.user-info{flex-direction:column;display:flex}.user-name{font-size:.95rem;font-weight:500}.user-status{color:var(--success-color);align-items:center;gap:4px;font-size:.75rem;display:flex}.logout-btn{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:8px;padding:6px;transition:all .2s}.logout-btn:hover{color:#ef4444;background:#ef44441a}.rooms-section{flex:1;padding:1.25rem 0;overflow-y:auto}.section-title{text-transform:uppercase;color:var(--text-secondary);letter-spacing:1px;margin-bottom:.75rem;padding:0 1.25rem;font-size:.75rem}.rooms-list{flex-direction:column;display:flex}.room-item{width:100%;color:var(--text-secondary);cursor:pointer;text-align:left;background:0 0;border:none;justify-content:space-between;align-items:center;padding:.75rem 1.25rem;transition:all .2s;display:flex}.room-item:hover{color:var(--text-primary);background:#ffffff08}.room-item.active{background:var(--active-bg);color:#fff;border-left:3px solid var(--primary-accent)}.room-details{align-items:center;gap:.75rem;display:flex}.room-icon{opacity:.7}.room-item.active .room-icon{color:#c084fc}.unread-badge{background:var(--primary-accent);color:#fff;border-radius:10px;padding:2px 6px;font-size:.75rem;font-weight:600}.room-meta-actions{flex-shrink:0;align-items:center;gap:.4rem;display:flex}.room-menu-btn{color:var(--text-secondary);opacity:0;cursor:pointer;border-radius:6px;justify-content:center;align-items:center;padding:3px;transition:opacity .15s,background .15s;display:flex}.room-item:hover .room-menu-btn{opacity:1}.room-menu-btn:hover{color:#ef4444;background:#ffffff1f}.chat-main-container{background:var(--chat-bg);flex-direction:column;flex:1;display:flex;position:relative}.chat-main-header{border-bottom:1px solid var(--border-color);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0f0c2033;justify-content:space-between;align-items:center;padding:1rem 1.5rem;display:flex}.active-room-name{font-size:1.1rem;font-weight:600}.room-members-count{color:var(--text-secondary);font-size:.75rem}.connection-status-wrapper{align-items:center;gap:8px;display:flex}.status-dot{border-radius:50%;width:8px;height:8px}.status-dot.online{background:var(--success-color);box-shadow:0 0 10px var(--success-color)}.status-dot.offline{background:#ef4444;box-shadow:0 0 10px #ef4444}.status-text{color:var(--text-secondary);font-size:.8rem}.messages-area{flex-direction:column;flex:1;gap:1.25rem;padding:1.5rem;display:flex;overflow-y:auto}.spinner-loader{text-align:center;color:var(--text-secondary);padding:.5rem;font-size:.8rem}.empty-chat{height:100%;color:var(--text-secondary);justify-content:center;align-items:center;font-size:.95rem;display:flex}.message-bubble-wrapper{flex-direction:column;max-width:70%;animation:.3s cubic-bezier(.16,1,.3,1) messageSlideIn;display:flex}@keyframes messageSlideIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.message-bubble-wrapper.own{align-self:flex-end;align-items:flex-end}.message-bubble-wrapper.other{align-self:flex-start;align-items:flex-start}.sender-name{color:var(--text-secondary);margin-bottom:4px;font-size:.75rem;font-weight:500}.message-content-wrapper{align-items:center;gap:8px;display:flex;position:relative}.message-bubble-wrapper.own .message-content-wrapper{flex-direction:row-reverse}.message-bubble{border-radius:16px;padding:.75rem 1rem;font-size:.95rem;line-height:1.4;position:relative;box-shadow:0 4px 12px #00000026}.message-bubble-wrapper.own .message-bubble{color:#fff;background:linear-gradient(135deg,#7c3aed,#6d28d9);border-bottom-right-radius:4px}.message-bubble-wrapper.other .message-bubble{border:1px solid var(--border-color);color:var(--text-primary);background:#ffffff0f;border-bottom-left-radius:4px}.message-time{opacity:.6;text-align:right;margin-top:4px;font-size:.7rem;display:block}.file-attachment{cursor:pointer;background:#0003;border:1px solid #ffffff0d;border-radius:10px;align-items:center;gap:12px;margin-bottom:6px;padding:8px 12px;transition:all .2s;display:flex}.file-attachment:hover{background:#0000004d}.file-icon-wrapper{color:#c084fc}.file-info{flex-direction:column;display:flex}.file-name{text-overflow:ellipsis;white-space:nowrap;max-width:180px;font-size:.85rem;font-weight:500;overflow:hidden}.file-size{opacity:.7;font-size:.75rem}.message-actions{border:1px solid var(--border-color);opacity:0;pointer-events:none;background:#0f0c20cc;border-radius:20px;gap:4px;padding:2px 6px;transition:opacity .2s;display:flex}.message-content-wrapper:hover .message-actions{opacity:1;pointer-events:auto}.action-btn{cursor:pointer;background:0 0;border:none;border-radius:50%;padding:2px 4px;transition:transform .1s}.action-btn:hover{transform:scale(1.3)}.action-btn.active{background:var(--active-bg)}.message-reactions-list{flex-wrap:wrap;gap:4px;margin-top:6px;display:flex}.reaction-badge{border:1px solid var(--border-color);cursor:pointer;background:#ffffff0a;border-radius:12px;align-items:center;gap:4px;padding:2px 8px;transition:all .2s;display:flex}.reaction-badge:hover,.reaction-badge.active{background:var(--active-bg);border-color:var(--primary-accent)}.reaction-emoji{font-size:.85rem}.reaction-count{color:var(--text-primary);font-size:.75rem;font-weight:600}.chat-input-bar{border-top:1px solid var(--border-color);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#0f0c2040;flex-direction:column;align-items:stretch;gap:8px;padding:1rem 1.5rem;display:flex}.input-actions{display:flex}.attach-btn{border:1px solid var(--border-color);color:var(--text-secondary);cursor:pointer;background:#ffffff0a;border-radius:12px;justify-content:center;align-items:center;width:44px;height:44px;transition:all .2s;display:flex}.attach-btn:hover:not(:disabled){color:#fff;border-color:var(--primary-accent);background:#ffffff14}.attach-btn:disabled{opacity:.5;cursor:not-allowed}.text-input{border:1px solid var(--border-color);color:#fff;background:#ffffff0a;border-radius:12px;outline:none;flex:1;padding:.75rem 1.25rem;font-size:.95rem;transition:all .2s}.text-input:focus:not(:disabled){border-color:var(--primary-accent);box-shadow:0 0 10px var(--primary-glow);background:#ffffff0f}.text-input:disabled{opacity:.6;cursor:not-allowed}.send-btn{color:#fff;cursor:pointer;background:linear-gradient(135deg,#8b5cf6,#6d28d9);border:none;border-radius:12px;justify-content:center;align-items:center;width:44px;height:44px;transition:all .2s;display:flex}.send-btn:hover:not(:disabled){box-shadow:0 4px 15px var(--primary-glow);transform:scale(1.05)}.send-btn:disabled{opacity:.4;cursor:not-allowed;box-shadow:none;transform:none}.section-header{justify-content:space-between;align-items:center;margin-bottom:.75rem;padding-right:1.25rem;display:flex}.add-room-btn{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;padding:4px;transition:all .2s;display:flex}.add-room-btn:hover{color:#fff;background:#ffffff14}.online-users-section{border-top:1px solid var(--border-color);max-height:250px;padding:1.25rem 0;overflow-y:auto}.online-users-list{flex-direction:column;gap:.5rem;padding:0 1.25rem;display:flex}.online-user-item{border-radius:8px;align-items:center;gap:.75rem;padding:4px 8px;transition:all .2s;display:flex}.online-user-item.clickable{cursor:pointer}.online-user-item.clickable:hover{background:#ffffff0d}.online-user-avatar{border:1px solid var(--border-color);background:#ffffff0f;border-radius:8px;justify-content:center;align-items:center;width:28px;height:28px;font-size:.75rem;font-weight:600;display:flex;position:relative}.status-indicator-dot{background:var(--success-color);border:2px solid #0f0c20;border-radius:50%;position:absolute;bottom:-2px;right:-2px}.online-user-name{color:var(--text-secondary);font-size:.85rem}.me-tag{color:#c084fc;font-size:.75rem;font-weight:500}.header-actions{align-items:center;gap:12px;display:flex}.header-action-btn{border:1px solid var(--border-color);color:var(--text-secondary);cursor:pointer;background:#ffffff0a;border-radius:10px;align-items:center;gap:6px;padding:.5rem .85rem;font-family:inherit;font-size:.85rem;font-weight:500;transition:all .2s;display:inline-flex}.header-action-btn:hover{color:#fff;border-color:var(--primary-accent);background:#ffffff14}.header-action-btn.danger:hover{color:#fca5a5;background:#ef44441a;border-color:#ef4444}.header-action-btn.icon-only{border-radius:10px;padding:.5rem}.room-menu-wrapper{position:relative}.room-dropdown-menu{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid var(--border-color);z-index:200;background:#141028f7;border-radius:12px;min-width:180px;padding:6px;animation:.12s dropdownFadeIn;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 12px 36px #0000008c}@keyframes dropdownFadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.room-dropdown-item{width:100%;color:var(--text-secondary);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:8px;align-items:center;gap:10px;padding:.55rem .85rem;font-family:inherit;font-size:.875rem;font-weight:500;transition:background .15s,color .15s;display:flex}.room-dropdown-item:hover{color:var(--text-primary);background:#ffffff0f}.room-dropdown-item.danger:hover{color:#fbbf24;background:#fbbf2414}.room-dropdown-item.delete:hover{color:#f87171;background:#ef444414}.room-dropdown-divider{border:none;border-top:1px solid var(--border-color);margin:4px 0}.modal-overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:1000;background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-card{background:var(--card-bg);border:1px solid var(--border-color);border-radius:20px;width:100%;max-width:460px;padding:2rem;animation:.3s fadeIn;box-shadow:0 20px 40px #0006}.modal-header{justify-content:space-between;align-items:center;margin-bottom:1.5rem;display:flex}.modal-header h3{background:linear-gradient(90deg,#fff,#c084fc);-webkit-text-fill-color:transparent;-webkit-background-clip:text;font-size:1.25rem;font-weight:600}.close-modal-btn{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:4px;display:flex}.close-modal-btn:hover{color:#fff;background:#ffffff0f}.modal-form{flex-direction:column;gap:1.25rem;display:flex}.modal-input{border:1px solid var(--border-color);color:#fff;background:#ffffff0d;border-radius:12px;outline:none;width:100%;padding:.75rem 1rem;font-size:.95rem;transition:all .2s}.modal-input:focus{border-color:var(--primary-accent);box-shadow:0 0 10px var(--primary-glow)}.radio-group{flex-direction:column;gap:.75rem;margin-top:.25rem;display:flex}.radio-label{cursor:pointer;align-items:center;gap:8px;display:flex}.radio-text{color:var(--text-secondary);font-size:.9rem}.modal-actions{justify-content:flex-end;gap:12px;margin-top:1rem;display:flex}.modal-cancel-btn{border:1px solid var(--border-color);color:var(--text-secondary);cursor:pointer;background:#ffffff0d;border-radius:10px;padding:.65rem 1.25rem;font-family:inherit;font-weight:500;transition:all .2s}.modal-cancel-btn:hover{color:#fff;background:#ffffff14}.modal-submit-btn{color:#fff;cursor:pointer;background:linear-gradient(135deg,#8b5cf6,#6d28d9);border:none;border-radius:10px;padding:.65rem 1.5rem;font-family:inherit;font-weight:600;transition:all .2s}.modal-submit-btn:hover{box-shadow:0 4px 15px var(--primary-glow);transform:translateY(-1px)}.empty-chat-select{height:100%;color:var(--text-secondary);justify-content:center;align-items:center;font-size:1rem;display:flex}
