@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap";.settings-overlay{backdrop-filter:blur(6px);z-index:1000;background:rgba(0,0,0,.6);justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.settings-window{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:20px;width:min(900px,100%);height:min(680px,90vh);display:flex;overflow:hidden;box-shadow:0 32px 80px rgba(0,0,0,.4)}.settings-sidebar{background:var(--bg-secondary);border-right:1px solid var(--border-color);flex-direction:column;flex-shrink:0;width:240px;padding:8px 0;display:flex}.settings-sidebar-header{border-bottom:1px solid var(--border-color);align-items:center;gap:10px;margin-bottom:8px;padding:16px 16px 12px;display:flex}.settings-nav{flex-direction:column;gap:2px;padding:0 8px;display:flex}.settings-nav-item{color:var(--text-primary);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:10px;align-items:center;gap:10px;width:100%;padding:11px 12px;font-size:14px;font-weight:500;transition:background .15s;display:flex}.settings-nav-item:hover{background:var(--bg-hover)}.settings-nav-item.active{background:var(--accent-light);color:var(--accent);font-weight:600}.settings-nav-icon{text-align:center;width:24px;font-size:18px}.settings-content{flex-direction:column;flex:1;display:flex;overflow:hidden}.settings-content-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:20px 24px 16px;display:flex}.settings-content-title{margin:0;font-size:18px;font-weight:700}.settings-content-body{flex:1;padding:20px 24px;overflow-y:auto}.settings-section-content{flex-direction:column;gap:20px;display:flex}.settings-group{background:var(--bg-secondary);border-radius:14px;overflow:hidden}.settings-group-label{text-transform:uppercase;letter-spacing:.8px;color:var(--text-tertiary);border-bottom:1px solid var(--border-color);padding:10px 16px 8px;font-size:11px;font-weight:700}.settings-row{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;transition:background .15s;display:flex}.settings-row:last-child{border-bottom:none}.settings-row.clickable{cursor:pointer}.settings-row.clickable:hover{background:var(--bg-hover)}.settings-row-info{flex:1;min-width:0}.settings-row-title{color:var(--text-primary);font-size:14px;font-weight:500}.settings-row-value{color:var(--text-secondary);margin-top:2px;font-size:12px}.profile-hero{background:var(--bg-secondary);border-radius:16px;align-items:center;gap:20px;margin-bottom:4px;padding:20px;display:flex}.avatar-change-btn{border:2px solid var(--bg-primary);background:var(--accent);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;font-size:13px;transition:transform .2s;display:flex;position:absolute;bottom:-2px;right:-2px}.avatar-change-btn:hover{transform:scale(1.1)}.toggle-switch{flex-shrink:0;width:44px;height:24px;display:inline-block;position:relative}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{background:var(--bg-tertiary);cursor:pointer;border-radius:24px;transition:background .2s;position:absolute;top:0;bottom:0;left:0;right:0}.toggle-slider:before{content:"";background:#fff;border-radius:50%;width:18px;height:18px;transition:transform .2s;position:absolute;top:3px;left:3px;box-shadow:0 1px 4px rgba(0,0,0,.2)}.toggle-switch input:checked+.toggle-slider{background:var(--accent)}.toggle-switch input:checked+.toggle-slider:before{transform:translate(20px)}.settings-select{background:var(--bg-tertiary);border:1px solid var(--border-color);color:var(--text-primary);cursor:pointer;border-radius:8px;outline:none;padding:6px 10px;font-size:13px}.theme-grid{flex-wrap:wrap;gap:12px;padding:12px 16px;display:flex}.theme-card{cursor:pointer;background:var(--bg-tertiary);border:2px solid transparent;border-radius:12px;flex:1;min-width:130px;transition:all .2s;overflow:hidden}.theme-card:hover{border-color:var(--accent);transform:translateY(-2px)}.theme-card.active{border-color:var(--accent);box-shadow:0 4px 16px rgba(0,168,132,.25)}.theme-preview{gap:4px;height:80px;padding:8px;display:flex}.theme-preview-dark{background:#1a1d24}.theme-preview-light{background:#f0f2f5}.theme-preview-sidebar{background:rgba(0,0,0,.15);border-radius:6px;width:32px}.theme-preview-chat{flex-direction:column;flex:1;justify-content:center;gap:6px;display:flex}.theme-preview-bubble{background:var(--accent);opacity:.7;border-radius:8px;width:70%;height:12px}.theme-preview-bubble.short{background:rgba(0,0,0,.15);width:45%}.theme-card-label{align-items:center;gap:6px;padding:8px 12px;font-size:13px;font-weight:600;display:flex}.theme-active-badge{color:var(--accent);margin-left:auto;font-weight:700}@media (max-width:768px){.settings-window{border-radius:0;flex-direction:column;width:100%;height:100%;max-height:100%}.settings-sidebar{border-right:none;border-bottom:1px solid var(--border-color);width:100%;height:auto;max-height:300px;padding:0;overflow-y:auto}.settings-sidebar-header{padding:12px 16px}.settings-nav{scrollbar-width:none;flex-direction:row;gap:8px;padding:8px 12px;overflow-x:auto}.settings-nav::-webkit-scrollbar{display:none}.settings-nav-item{white-space:nowrap;flex-direction:column;gap:4px;width:auto;padding:8px 12px;font-size:11px}.settings-nav-icon{width:auto;font-size:20px}.settings-content-header{padding:12px 16px}.settings-content-body{padding:16px}.profile-hero{text-align:center;flex-direction:column;gap:12px;padding:16px}.theme-grid{grid-template:auto/1fr 1fr;padding:12px;display:grid}.theme-card{min-width:0}}@media (max-width:480px){.settings-nav{grid-template-columns:repeat(4,1fr);height:auto;max-height:none;display:grid}.settings-sidebar{max-height:none}.settings-nav-item{padding:10px 4px}}.call-overlay{z-index:9999;backdrop-filter:blur(20px);background:rgba(0,0,0,.85);justify-content:center;align-items:center;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.call-incoming-panel{flex-direction:column;align-items:center;gap:0;animation:.35s cubic-bezier(.34,1.56,.64,1) call-slide-up;display:flex}@keyframes call-slide-up{0%{opacity:0;transform:translateY(60px)translateZ(0)}to{opacity:1;transform:translateY(0)translateZ(0)}}.call-ring-pulse{justify-content:center;align-items:center;width:100px;height:100px;margin-bottom:24px;display:flex;position:relative}.call-ring-pulse-1,.call-ring-pulse-2{border:2px solid rgba(0,200,150,.5);border-radius:50%;animation:2s ease-out infinite ring-expand;position:absolute;top:-16px;bottom:-16px;left:-16px;right:-16px}.call-ring-pulse-2{border-color:rgba(0,200,150,.25);animation-delay:.6s;top:-28px;bottom:-28px;left:-28px;right:-28px}@keyframes ring-expand{0%{opacity:.9;transform:scale(.8)}to{opacity:0;transform:scale(1.4)}}.call-name{color:#fff;text-align:center;margin:0 0 8px;font-size:26px;font-weight:700}.call-status-text{color:rgba(255,255,255,.7);text-align:center;margin:0 0 40px;font-size:15px}.call-action-row{align-items:flex-start;gap:60px;display:flex}.call-action-col{flex-direction:column;align-items:center;gap:10px;display:flex}.call-fab{cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;width:68px;height:68px;font-size:28px;transition:transform .15s,box-shadow .15s;display:flex;box-shadow:0 8px 30px rgba(0,0,0,.4)}.call-fab:hover{transform:scale(1.08)}.call-fab:active{transform:scale(.95)}.call-fab-reject{color:#fff;background:#ef4444}.call-fab-accept{color:#fff;background:#22c55e}.call-fab-label{color:rgba(255,255,255,.75);text-align:center;font-size:12px;font-weight:500}.call-active-container{flex-direction:column;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:relative}.audio-call-info{flex-direction:column;flex:1;justify-content:center;align-items:center;gap:14px;display:flex}.call-avatar-wrap{position:relative}.call-avatar-pulsing .avatar{animation:1.5s ease-in-out infinite avatar-pulse}@keyframes avatar-pulse{0%,to{box-shadow:0 0 rgba(34,197,94,.5)}50%{box-shadow:0 0 0 20px rgba(34,197,94,0)}}.video-grid{background:#000;flex:1;width:100%;position:relative}.remote-video-container{justify-content:center;align-items:center;width:100%;height:100%;display:flex}.remote-video{object-fit:cover;width:100%;height:100%}.local-video-container{border:2px solid rgba(255,255,255,.3);border-radius:16px;width:120px;height:160px;position:absolute;top:20px;right:20px;overflow:hidden;box-shadow:0 8px 30px rgba(0,0,0,.5)}.local-video{object-fit:cover;width:100%;height:100%}.calling-placeholder{color:rgba(255,255,255,.7);flex-direction:column;align-items:center;gap:16px;font-size:16px;font-weight:500;display:flex}.call-controls-bar{justify-content:center;align-items:flex-end;gap:28px;width:100%;padding:24px 0 48px;display:flex}.call-control-col{flex-direction:column;align-items:center;gap:8px;display:flex}.call-control-btn{cursor:pointer;color:#fff;background:rgba(255,255,255,.12);border:none;border-radius:50%;justify-content:center;align-items:center;width:58px;height:58px;font-size:24px;transition:background .2s,transform .15s;display:flex}.call-control-btn:hover{background:rgba(255,255,255,.2)}.call-control-btn:active{transform:scale(.92)}.call-control-btn.active{background:rgba(239,68,68,.35)}.call-control-end{box-shadow:0 4px 20px rgba(239,68,68,.5);background:#ef4444!important;width:66px!important;height:66px!important;font-size:26px!important}.call-control-label{color:rgba(255,255,255,.65);white-space:nowrap;font-size:11px}:root{--bg-primary:#fff;--bg-secondary:#f0f2f5;--bg-tertiary:#e4e6eb;--bg-chat:#efeae2;--bg-sidebar:#fff;--bg-message-out:#d9fdd3;--bg-message-in:#fff;--bg-input:#f0f2f5;--bg-hover:rgba(0,0,0,.05);--bg-active:rgba(0,150,136,.08);--bg-overlay:rgba(0,0,0,.4);--text-primary:#111b21;--text-secondary:#667781;--text-tertiary:#8696a0;--text-inverse:#fff;--text-link:#027eb5;--accent:#00a884;--accent-hover:#008f6f;--accent-light:rgba(0,168,132,.1);--accent-gradient:linear-gradient(135deg, #00a884 0%, #25d366 100%);--danger:#ea0038;--warning:#f7c948;--online:#31a24c;--border:rgba(0,0,0,.08);--border-light:rgba(0,0,0,.04);--shadow-sm:0 1px 3px rgba(0,0,0,.08);--shadow-md:0 4px 12px rgba(0,0,0,.12);--shadow-lg:0 8px 30px rgba(0,0,0,.15);--shadow-glow:0 0 20px rgba(0,168,132,.3);--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:24px;--radius-full:50%;--font-family:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--transition:all .2s cubic-bezier(.4, 0, .2, 1);--transition-slow:all .3s cubic-bezier(.4, 0, .2, 1);--sidebar-width:400px;--header-height:60px}[data-theme=dark]{--bg-primary:#111b21;--bg-secondary:#202c33;--bg-tertiary:#2a3942;--bg-chat:#0b141a;--bg-sidebar:#111b21;--bg-message-out:#005c4b;--bg-message-in:#202c33;--bg-input:#2a3942;--bg-hover:rgba(255,255,255,.06);--bg-active:rgba(0,168,132,.15);--bg-overlay:rgba(0,0,0,.6);--text-primary:#e9edef;--text-secondary:#8696a0;--text-tertiary:#667781;--text-inverse:#111b21;--border:rgba(255,255,255,.08);--border-light:rgba(255,255,255,.04);--shadow-sm:0 1px 3px rgba(0,0,0,.3);--shadow-md:0 4px 12px rgba(0,0,0,.4);--shadow-lg:0 8px 30px rgba(0,0,0,.5)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{width:100%;height:100%;overflow:hidden}body{font-family:var(--font-family);color:var(--text-primary);background:var(--bg-secondary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:14px;line-height:1.5}input,textarea,button{font-family:inherit;font-size:inherit}button{cursor:pointer;color:inherit;background:0 0;border:none}a{color:var(--text-link);text-decoration:none}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--text-tertiary);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-secondary)}@keyframes slideUpFade{0%{opacity:0;transform:translateY(10px)scale(.95)translateZ(0)}to{opacity:1;transform:translateY(0)scale(1)translateZ(0)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)translateZ(0)}to{opacity:1;transform:translateY(0)translateZ(0)}}@keyframes fadeInScale{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes slideInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes bounce{0%,to{transform:scale(1)}50%{transform:scale(1.2)}}@keyframes ripple{0%{opacity:.5;transform:scale(0)}to{opacity:0;transform:scale(4)}}@keyframes typing{0%,60%,to{transform:translateY(0)}30%{transform:translateY(-4px)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes gradientShift{0%{background-position:0%}50%{background-position:100%}to{background-position:0%}}.animate-fade-in{animation:.3s ease-out fadeIn}.animate-fade-in-scale{animation:.25s ease-out fadeInScale}.animate-slide-in-left{animation:.3s ease-out slideInLeft}.animate-slide-in-right{animation:.3s ease-out slideInRight}.animate-slide-in-up{animation:.3s ease-out slideInUp}.auth-page{background:linear-gradient(135deg,#0a1628 0%,#1a2744 30%,#0d2137 60%,#0a1628 100%) 0 0/400% 400%;justify-content:center;align-items:center;width:100%;height:100%;animation:15s infinite gradientShift;display:flex;position:relative;overflow:hidden}.auth-page:before{content:"";pointer-events:none;background:radial-gradient(circle at 30%,rgba(0,168,132,.08) 0%,transparent 50%),radial-gradient(circle at 70% 30%,rgba(37,211,102,.05) 0%,transparent 40%);width:200%;height:200%;position:absolute;top:-50%;left:-50%}.auth-container{background:var(--bg-primary);border-radius:var(--radius-lg);width:420px;box-shadow:var(--shadow-lg);z-index:1;animation:.5s ease-out fadeInScale;position:relative;overflow:hidden}.auth-header{text-align:center;padding:40px 40px 24px}.auth-logo{backdrop-filter:blur(10px);width:80px;height:80px;transition:var(--transition-slow);background:rgba(255,255,255,.05);border-radius:20px;justify-content:center;align-items:center;margin:0 auto 20px;padding:12px;display:flex;box-shadow:0 8px 32px rgba(0,168,132,.2),inset 0 0 0 1px rgba(255,255,255,.1)}.auth-logo:hover{transform:scale(1.05);box-shadow:0 12px 40px rgba(0,168,132,.3)}.auth-title{color:var(--text-primary);margin-bottom:4px;font-size:24px;font-weight:700}.auth-subtitle{color:var(--text-secondary);font-size:14px}.auth-tabs{border-bottom:1px solid var(--border);padding:0 16px;display:flex}.auth-tab{text-align:center;color:var(--text-secondary);transition:var(--transition);cursor:pointer;border-bottom:2px solid transparent;flex:1;padding:12px 16px;font-weight:500}.auth-tab:hover{color:var(--accent);background:var(--accent-light)}.auth-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.auth-form{padding:24px 40px 40px}.form-group{margin-bottom:20px}.form-label{color:var(--text-secondary);margin-bottom:6px;font-size:13px;font-weight:500;display:block}.form-input{border:2px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-primary);width:100%;color:var(--text-primary);transition:var(--transition);outline:none;padding:12px 16px;font-size:15px}.form-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-light)}.form-input::placeholder{color:var(--text-tertiary)}.form-error{color:var(--danger);margin-top:4px;font-size:12px}.btn{border-radius:var(--radius-sm);transition:var(--transition);cursor:pointer;white-space:nowrap;border:none;justify-content:center;align-items:center;gap:8px;padding:12px 24px;font-size:15px;font-weight:600;display:inline-flex;position:relative;overflow:hidden}.btn-primary{background:var(--accent-gradient);color:#fff;width:100%;box-shadow:var(--shadow-sm)}.btn-primary:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn-primary:active{transform:translateY(0)}.btn-primary:disabled{opacity:.6;cursor:not-allowed;transform:none}.btn-secondary{background:var(--bg-secondary);color:var(--text-primary)}.btn-secondary:hover{background:var(--bg-tertiary)}.btn-icon{border-radius:var(--radius-full);width:40px;height:40px;transition:var(--transition);justify-content:center;align-items:center;padding:0;display:flex}.btn-icon:hover{background:var(--bg-hover)}.app-layout{background:var(--bg-chat);width:100%;height:100%;display:flex}.sidebar{width:var(--sidebar-width);min-width:var(--sidebar-width);background:var(--bg-sidebar);border-right:1px solid var(--border);flex-direction:column;height:100%;display:flex;overflow:hidden}.sidebar-header{height:var(--header-height);border-bottom:1px solid var(--border-light);justify-content:space-between;align-items:center;padding:0 16px;display:flex}.sidebar-header-left{align-items:center;gap:12px;display:flex}.sidebar-header-title{color:var(--text-primary);font-size:20px;font-weight:700}.sidebar-header-actions{gap:4px;display:flex}.sidebar-search{padding:8px 12px}.search-input-wrapper{align-items:center;display:flex;position:relative}.search-icon{color:var(--text-tertiary);pointer-events:none;font-size:16px;position:absolute;left:12px}.search-input{border-radius:var(--radius-sm);background:var(--bg-input);width:100%;color:var(--text-primary);transition:var(--transition);border:none;outline:none;padding:8px 12px 8px 40px;font-size:14px}.search-input:focus{background:var(--bg-tertiary)}.chat-list{flex:1;overflow-x:hidden;overflow-y:auto}.chat-item{cursor:pointer;transition:var(--transition);align-items:center;gap:12px;padding:10px 16px;display:flex;position:relative}.chat-item:hover{background:var(--bg-hover)}.chat-item.active{background:var(--bg-active)}.chat-item-content{flex-direction:column;flex:1;min-width:0;display:flex}.chat-item-top{justify-content:space-between;align-items:center;display:flex}.chat-item-name{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:15px;font-weight:600;overflow:hidden}.chat-item-time{color:var(--text-tertiary);white-space:nowrap;margin-left:8px;font-size:12px}.chat-item-bottom{justify-content:space-between;align-items:center;margin-top:2px;display:flex}.chat-item-preview{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:13px;overflow:hidden}.chat-item-badge{background:var(--accent);color:#fff;border-radius:10px;justify-content:center;align-items:center;min-width:20px;height:20px;margin-left:8px;padding:0 6px;font-size:11px;font-weight:700;display:flex}.chat-panel{flex-direction:column;flex:1;min-width:0;height:100%;display:flex;position:relative}.chat-panel-empty{color:var(--text-tertiary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:16px;display:flex}.chat-panel-empty-icon{opacity:.3;font-size:80px}.chat-panel-empty-text{font-size:16px;font-weight:500}.chat-header{height:var(--header-height);background:var(--bg-primary);border-bottom:1px solid var(--border-light);z-index:10;justify-content:space-between;align-items:center;padding:0 16px;display:flex}.chat-header-info{flex:1;align-items:center;gap:12px;min-width:0;display:flex}.chat-header-details{flex:1;min-width:0}.chat-header-name{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:16px;font-weight:600;overflow:hidden}.chat-header-status{color:var(--text-secondary);font-size:13px}.chat-header-status.online{color:var(--online)}.chat-header-actions{gap:4px;display:flex}.messages-container{background:var(--chat-bg-override,var(--bg-chat));flex-direction:column;flex:1;gap:4px;padding:16px 60px;display:flex;overflow-y:auto}.message{word-wrap:break-word;border-radius:12px;max-width:65%;padding:8px 12px;animation:.25s ease-out fadeIn;position:relative}.message-meta-spacer{width:48px;height:10px;display:inline-block}.message-meta{color:var(--text-tertiary);justify-content:flex-end;align-items:center;gap:4px;font-size:11px;display:flex;position:absolute;bottom:8px;right:12px}.message-outgoing{background:var(--bg-message-out);border-bottom-right-radius:4px;align-self:flex-end}.message-outgoing:after{content:"";width:16px;height:16px;box-shadow:-8px 0 0 0 var(--bg-message-out);background-color:transparent;border-bottom-left-radius:8px;position:absolute;bottom:0;right:-8px}.message-incoming{background:var(--bg-message-in);box-shadow:var(--shadow-sm);border-bottom-left-radius:4px;align-self:flex-start}.message-incoming:after{content:"";width:16px;height:16px;box-shadow:8px 0 0 0 var(--bg-message-in);background-color:transparent;border-bottom-right-radius:8px;position:absolute;bottom:0;left:-8px}.message-text{color:var(--text-primary);white-space:pre-wrap;font-size:14.5px;line-height:1.45}.message-reply-preview{border-left:2px solid var(--accent);cursor:pointer;background:rgba(37,99,235,.08);border-radius:4px;margin-bottom:6px;padding:4px 8px 4px 10px}.reply-preview-sender{color:var(--accent);margin-bottom:2px;font-size:13px;font-weight:600}.reply-preview-text{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}.message-edited{color:var(--text-tertiary);margin-right:2px;font-size:11px;font-style:italic}.message-time{color:var(--text-tertiary);font-size:11px}.message-status{color:var(--text-tertiary);font-size:14px}.message-reactions{z-index:2;flex-wrap:wrap;gap:4px;margin-top:4px;display:flex;position:relative}.reaction-badge{cursor:pointer;background:rgba(255,255,255,.05);border:1px solid transparent;border-radius:12px;align-items:center;gap:4px;padding:4px 8px;font-size:13px;transition:all .2s;display:inline-flex}.reaction-badge:hover{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.15)}.reaction-badge.active{background:var(--accent-light);border-color:var(--accent)}.add-reaction-btn{padding:4px 6px}.reaction-count{font-size:13px;font-weight:500}.reaction-picker-floating{-webkit-backdrop-filter:blur(12px);z-index:100;background:rgba(30,30,35,.75);border:1px solid rgba(255,255,255,.1);border-radius:24px;flex-wrap:wrap;gap:2px;width:max-content;max-width:280px;padding:6px;display:flex;position:absolute;bottom:calc(100% + 4px);left:0;box-shadow:0 4px 24px rgba(0,0,0,.3)}.reaction-picker-btn{cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;padding:4px;font-size:24px;transition:transform .2s cubic-bezier(.34,1.56,.64,1);display:flex}.message-context-menu{background:var(--bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);flex-direction:column;min-width:160px;padding:8px;animation:.2s ease-out fadeInScale;display:flex}.context-menu-actions{border-top:1px solid var(--border-light);flex-direction:column;gap:2px;margin-top:8px;padding-top:8px;display:flex}.context-menu-action-btn{color:var(--text-primary);cursor:pointer;border-radius:var(--radius-md);text-align:left;transition:var(--transition);background:0 0;border:none;padding:8px 12px;font-size:14px}.context-menu-action-btn:hover{background:var(--bg-hover);color:var(--accent)}.reaction-picker-btn{border-radius:var(--radius-full);cursor:pointer;width:36px;height:36px;transition:var(--transition);justify-content:center;align-items:center;font-size:20px;display:flex}.message-input-reply-banner{border-left:3px solid var(--accent);background:var(--bg-hover);border-radius:var(--radius-md);align-items:center;margin-bottom:8px;padding:8px 12px;display:flex;position:relative}.reply-banner-icon{margin-right:12px;font-size:18px}.reply-banner-content{flex-direction:column;flex:1;min-width:0;display:flex}.reply-banner-title{color:var(--accent);font-size:13px;font-weight:600}.reply-banner-text{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}.reply-banner-close{color:var(--text-tertiary);cursor:pointer;background:0 0;border:none;padding:4px;font-size:16px}.reply-banner-close:hover{color:var(--text-primary)}.message-input-container{background:var(--bg-primary);border-top:1px solid var(--border-light);padding:8px 16px 12px}.message-input-wrapper{background:var(--bg-input);border-radius:var(--radius-lg);align-items:flex-end;gap:8px;padding:6px 8px;display:flex}.message-input-actions{gap:2px;padding-bottom:4px;display:flex}.message-textarea{color:var(--text-primary);resize:none;background:0 0;border:none;outline:none;flex:1;min-height:24px;max-height:120px;padding:8px 0;font-size:15px;line-height:1.4}.message-textarea::placeholder{color:var(--text-tertiary)}.send-btn{border-radius:var(--radius-full);background:var(--accent-gradient);color:#fff;cursor:pointer;width:40px;height:40px;transition:var(--transition);border:none;flex-shrink:0;justify-content:center;align-items:center;display:flex}.send-btn:hover{box-shadow:var(--shadow-glow);transform:scale(1.05)}.send-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.avatar{border-radius:var(--radius-full);flex-shrink:0;width:48px;height:48px;position:relative;overflow:hidden}.avatar img{object-fit:cover;width:100%;height:100%}.avatar-fallback{color:#fff;justify-content:center;align-items:center;width:100%;height:100%;font-size:18px;font-weight:600;display:flex}.avatar-sm{width:36px;height:36px}.avatar-sm .avatar-fallback{font-size:14px}.avatar-lg{width:64px;height:64px}.avatar-lg .avatar-fallback{font-size:24px}.avatar-xl{width:120px;height:120px}.avatar-xl .avatar-fallback{font-size:40px}.avatar .online-dot{border-radius:var(--radius-full);background:var(--online);border:2px solid var(--bg-primary);width:12px;height:12px;position:absolute;bottom:1px;right:1px}.typing-indicator{color:var(--text-secondary);align-items:center;gap:4px;padding:8px 12px;font-size:13px;display:flex}.typing-dots{gap:3px;display:flex}.typing-dot{border-radius:var(--radius-full);background:var(--text-secondary);width:6px;height:6px;animation:1.4s infinite typing}.typing-dot:nth-child(2){animation-delay:.2s}.typing-dot:nth-child(3){animation-delay:.4s}.qr-container{flex-direction:column;align-items:center;gap:20px;padding:24px;display:flex}.qr-code{border-radius:var(--radius-md);box-shadow:var(--shadow-md);background:#fff;padding:16px}.qr-instructions{text-align:center;color:var(--text-secondary);font-size:14px;line-height:1.6}.settings-page{max-width:600px;margin:0 auto;padding:24px}.settings-section{margin-bottom:24px}.settings-title{color:var(--text-primary);margin-bottom:16px;font-size:18px;font-weight:600}.settings-item{border-radius:var(--radius-sm);transition:var(--transition);cursor:pointer;justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.settings-item:hover{background:var(--bg-hover)}.theme-toggle{background:var(--bg-tertiary);cursor:pointer;width:52px;height:28px;transition:var(--transition);border:none;border-radius:14px;position:relative}.theme-toggle.active{background:var(--accent)}.theme-toggle-thumb{border-radius:var(--radius-full);width:22px;height:22px;transition:var(--transition);box-shadow:var(--shadow-sm);background:#fff;justify-content:center;align-items:center;font-size:12px;display:flex;position:absolute;top:3px;left:3px}.theme-toggle.active .theme-toggle-thumb{transform:translate(24px)}.modal-overlay{background:var(--bg-overlay);z-index:1000;justify-content:center;align-items:center;animation:.15s ease-out fadeIn;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.modal{background:var(--bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:420px;max-height:80vh;animation:.25s ease-out fadeInScale;overflow:hidden}.modal-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.modal-title{font-size:18px;font-weight:600}.modal-body{max-height:60vh;padding:16px 20px;overflow-y:auto}.user-search-result{border-radius:var(--radius-sm);cursor:pointer;transition:var(--transition);align-items:center;gap:12px;padding:10px;display:flex}.user-search-result:hover{background:var(--bg-hover)}.dropdown-overlay{z-index:40;position:fixed;top:0;bottom:0;left:0;right:0}.dropdown-menu{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-lg);z-index:50;transform-origin:100% 0;width:240px;margin-top:8px;animation:.2s ease-out fadeInScale;position:absolute;top:100%;right:0;overflow:hidden;box-shadow:0 8px 32px rgba(0,0,0,.4)}.dropdown-item{text-align:left;width:100%;color:var(--text-primary);cursor:pointer;align-items:center;gap:16px;padding:12px 16px;transition:background .2s;display:flex}.dropdown-item:hover{background:var(--bg-hover)}.dropdown-icon-box{border-radius:var(--radius-full);background:var(--bg-input);justify-content:center;align-items:center;width:36px;height:36px;font-size:18px;display:flex}.dropdown-item-text{font-size:15px;font-weight:500}.contact-select-item{border-radius:var(--radius-sm);cursor:pointer;align-items:center;gap:12px;padding:10px 12px;transition:background .2s;display:flex}.contact-select-item:hover{background:var(--bg-hover)}.contact-checkbox{border-radius:var(--radius-sm);border:2px solid var(--text-tertiary);background:0 0;justify-content:center;align-items:center;width:22px;height:22px;transition:all .2s;display:flex}.contact-checkbox.checked{background:var(--accent);border-color:var(--accent);color:#fff}.create-group-btn{border-radius:var(--radius-md);background:var(--accent);color:#fff;justify-content:center;align-items:center;width:100%;margin-top:24px;padding:14px;font-size:16px;font-weight:600;transition:opacity .2s;display:flex;box-shadow:0 4px 12px rgba(83,189,235,.3)}.create-group-btn:hover:not(:disabled){opacity:.9}.create-group-btn:disabled{opacity:.5;cursor:not-allowed}.avatar-upload-box{border-radius:var(--radius-full);background:var(--bg-input);border:2px dashed var(--text-tertiary);cursor:pointer;justify-content:center;align-items:center;width:100px;height:100px;margin:0 auto 24px;transition:transform .2s;display:flex;position:relative;overflow:hidden}.avatar-upload-box:hover{transform:scale(1.05)}.avatar-upload-box img{object-fit:cover;width:100%;height:100%}.avatar-upload-placeholder{color:var(--text-secondary);flex-direction:column;align-items:center;display:flex}.date-separator{justify-content:center;align-items:center;margin:16px 0;display:flex}.date-separator-text{background:var(--bg-overlay);color:#fff;border-radius:var(--radius-xl);padding:4px 12px;font-size:12px;font-weight:500}@media (max-width:768px){.sidebar{width:100%;min-width:100%}.chat-panel,.app-layout.chat-open .sidebar{display:none}.app-layout.chat-open .chat-panel{display:flex}.messages-container{padding:16px}}.message-row{align-items:flex-end;gap:8px;margin:2px 0;padding:0 12px;display:flex}.message-row-in{justify-content:flex-start}.message-row-out{justify-content:flex-end}.message-row-out .message{margin-left:auto}.message{max-width:65%;box-shadow:var(--shadow-sm);word-break:break-word;border-radius:18px;padding:8px 12px 6px;transition:background .15s;position:relative}.message-outgoing{background:var(--bg-message-out);color:var(--text-primary);border-bottom-right-radius:4px}.message-incoming{background:var(--bg-message-in);color:var(--text-primary);border-bottom-left-radius:4px}.message-sender{color:var(--accent);margin-bottom:3px;font-size:12px;font-weight:600}.message-text{white-space:pre-wrap;font-size:14px;line-height:1.5}.message-meta{justify-content:flex-end;align-items:center;gap:4px;margin-top:4px;display:flex}.message-time{color:var(--text-tertiary);font-size:11px;line-height:1}.message-status{color:var(--text-tertiary);font-size:12px;line-height:1}.message-status.read{color:#53bdeb}.reaction-picker{background:var(--bg-primary);border:1px solid var(--border-light);transform-origin:0 100%;border-radius:30px;gap:4px;padding:6px 8px;animation:.2s cubic-bezier(.175,.885,.32,1.275) slideUpFade;display:flex;box-shadow:0 4px 20px rgba(0,0,0,.15)}.reaction-picker-btn{cursor:pointer;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;font-size:24px;transition:transform .15s,background .15s;display:flex}.reaction-picker-btn:hover{background:var(--bg-secondary);transform:scale(1.2)}.download-banner{background:var(--accent-gradient);color:#fff;box-shadow:var(--shadow-md);border-radius:12px;justify-content:space-between;align-items:center;margin:16px;padding:16px;text-decoration:none;transition:transform .2s,box-shadow .2s;display:flex}.download-banner:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.download-banner-text{font-size:15px;font-weight:600}.download-banner-icon{background:rgba(255,255,255,.2);border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;font-size:20px;display:flex}.profile-sidebar{background:var(--bg-primary);border-left:1px solid var(--border);z-index:20;flex-direction:column;width:350px;min-width:350px;transition:transform .3s cubic-bezier(.16,1,.3,1);display:flex;position:absolute;top:0;bottom:0;right:0;transform:translate(100%);box-shadow:-4px 0 16px rgba(0,0,0,.05)}.profile-sidebar.open{transform:translate(0)}.profile-sidebar-header{height:var(--header-height);border-bottom:1px solid var(--border-light);background:var(--bg-primary);justify-content:space-between;align-items:center;padding:0 16px;display:flex}.profile-sidebar-header h3{color:var(--text-primary);font-size:16px;font-weight:600}.profile-sidebar-content{flex-direction:column;flex:1;display:flex;overflow-y:auto}.profile-sidebar-hero{text-align:center;border-bottom:1px solid var(--border-light);flex-direction:column;align-items:center;padding:24px 16px;display:flex}.profile-sidebar-avatar-wrap{cursor:pointer;border-radius:50%;width:120px;height:120px;margin-bottom:16px;transition:transform .2s,box-shadow .2s}.profile-sidebar-avatar-wrap:hover{box-shadow:var(--shadow-md);transform:scale(1.05)}.profile-sidebar-name{color:var(--text-primary);margin-bottom:4px;font-size:20px;font-weight:700}.profile-sidebar-status{color:var(--text-secondary);font-size:14px}.profile-sidebar-tabs{border-bottom:1px solid var(--border-light);background:var(--bg-primary);display:flex}.profile-tab{color:var(--text-secondary);transition:var(--transition);border-bottom:2px solid transparent;flex:1;padding:14px 0;font-size:14px;font-weight:600}.profile-tab:hover{background:var(--bg-hover);color:var(--text-primary)}.profile-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.profile-sidebar-info{flex-direction:column;gap:16px;padding:16px;display:flex}.info-row{align-items:center;gap:16px;display:flex}.info-icon{color:var(--text-tertiary);justify-content:center;width:24px;font-size:22px;display:flex}.info-text{flex-direction:column;display:flex}.info-value{color:var(--text-primary);font-size:15px;font-weight:500}.info-label{color:var(--text-tertiary);margin-top:2px;font-size:13px}.profile-sidebar-gallery{grid-template-columns:repeat(3,1fr);gap:2px;padding:2px;display:grid}.gallery-item{aspect-ratio:1;cursor:pointer;background:var(--bg-secondary);overflow:hidden}.gallery-item img{object-fit:cover;width:100%;height:100%;transition:transform .3s}.gallery-item:hover img{transform:scale(1.1)}.empty-gallery{text-align:center;color:var(--text-tertiary);grid-column:1/-1;padding:40px 20px;font-size:14px}.photo-preview-overlay{z-index:9999;background:rgba(0,0,0,.9);justify-content:center;align-items:center;animation:.2s ease-out fadeIn;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.photo-preview-content{max-width:90vw;max-height:90vh;position:relative}.photo-preview-content img{object-fit:contain;border-radius:4px;max-width:100%;max-height:90vh;animation:.3s ease-out fadeInScale;box-shadow:0 4px 30px rgba(0,0,0,.5)}.photo-preview-close{color:#fff;cursor:pointer;background:rgba(255,255,255,.1);border:none;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;font-size:20px;transition:background .2s;display:flex;position:absolute;top:-40px;right:-40px}.photo-preview-close:hover{background:rgba(255,255,255,.2)}@media (max-width:900px){.profile-sidebar{width:100%;min-width:100%;position:fixed}.photo-preview-close{top:10px;right:10px}}@media (max-width:768px){:root{--sidebar-width:100%}.auth-container{width:92%;margin:20px}.auth-form{padding:24px 20px 30px}.auth-header{padding:30px 20px 16px}.sidebar{border-right:none;width:100%;min-width:100%;display:flex}.chat-panel{z-index:100;width:100%;height:100%;display:none;position:fixed;top:0;left:0}.chat-open .sidebar{display:none}.chat-open .chat-panel{display:flex}.chat-header{padding:0 12px}.messages-container{padding:12px 16px}.message{max-width:85%}.message-input-container{padding:8px 12px 24px}.mobile-back-btn{width:40px;height:40px;color:var(--accent);cursor:pointer;justify-content:center;align-items:center;margin-right:8px;font-size:20px;display:flex!important}.sidebar-header-title{font-size:18px}}.mobile-back-btn{display:none}
