.auth-screen{display:flex;align-items:center;justify-content:center;min-height:100vh;min-height:100dvh;overflow-y:auto;padding:max(24px,env(safe-area-inset-top)) 24px max(24px,env(safe-area-inset-bottom));background:radial-gradient(ellipse at top,#1a1f2e 0%,var(--bg-primary) 60%)}.auth-card{width:100%;min-width:0;max-width:400px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-lg);padding:40px 32px;box-shadow:var(--shadow);animation:fadeIn .4s ease}.auth-header{text-align:center;margin-bottom:32px}.auth-logo{display:inline-flex;align-items:center;justify-content:center;width:64px;height:64px;border-radius:16px;background:var(--accent-soft);color:var(--accent);margin-bottom:16px}.auth-header h1{font-size:24px;font-weight:700;margin-bottom:6px}.auth-header p{font-size:14px;color:var(--text-secondary)}.auth-form{display:flex;flex-direction:column;gap:18px}.auth-field{display:flex;flex-direction:column;gap:6px}.auth-field label{font-size:13px;font-weight:500;color:var(--text-secondary)}.auth-field input{background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);padding:12px 14px;font-size:15px;transition:border-color var(--transition),background var(--transition)}.auth-field input:focus{border-color:var(--accent);background:var(--bg-tertiary)}.auth-error{background:#ef44441a;border:1px solid rgba(239,68,68,.3);color:var(--error);border-radius:var(--radius-sm);padding:10px 14px;font-size:14px;animation:fadeIn .2s ease}.auth-submit{background:var(--accent);color:#fff;border-radius:var(--radius-sm);padding:13px;font-size:15px;font-weight:600;margin-top:4px;transition:background var(--transition),transform var(--transition)}.auth-submit:hover:not(:disabled){background:var(--accent-hover);transform:translateY(-1px)}.auth-submit:disabled{opacity:.6;cursor:not-allowed}.auth-switch{text-align:center;margin-top:24px;font-size:14px;color:var(--text-secondary)}.auth-switch button{color:var(--accent);font-weight:600;padding:0;margin-left:4px}.auth-switch button:hover{text-decoration:underline}.call-overlay{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:20px;background:#05070bc2;backdrop-filter:blur(8px)}.incoming-call-modal{width:min(380px,100%);padding:32px 24px 24px;border:1px solid var(--border);border-radius:24px;background:var(--bg-secondary);box-shadow:0 24px 80px #00000073;text-align:center;animation:callModalIn .22s ease-out}@keyframes callModalIn{0%{opacity:0;transform:scale(.96) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}.call-modal-icon{display:grid;place-items:center;width:64px;height:64px;margin:0 auto 18px;border-radius:50%;color:#fff;background:var(--accent);box-shadow:0 0 0 10px #3b82f61f}.incoming-call-modal h2{margin:0;color:var(--text-primary);font-size:21px;line-height:1.25}.incoming-call-modal p{margin:8px 0 0;color:var(--text-secondary);font-size:14px}.incoming-call-actions{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:28px}.call-action{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 16px;border-radius:12px;color:#fff;font-size:14px;font-weight:600;transition:transform .2s ease,filter .2s ease}.call-action:hover{transform:translateY(-1px);filter:brightness(1.08)}.call-reject{background:#dc3545}.call-accept{background:#16a34a}@media (max-width: 520px){.call-overlay{padding:12px}.incoming-call-actions{flex-wrap:wrap}.call-action{flex:1;min-width:140px}}.call-waiting-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;animation:callModalIn .22s ease-out}.call-waiting-avatar{position:relative;display:grid;place-items:center;width:120px;height:120px;margin-bottom:8px}.call-waiting-ring{position:absolute;inset:0;border-radius:50%;border:2px solid var(--accent);animation:callRing 1.8s ease-out infinite;pointer-events:none}.call-waiting-ring.delay{animation-delay:.6s}@keyframes callRing{0%{opacity:.8;transform:scale(.85)}to{opacity:0;transform:scale(1.35)}}.call-waiting-icon{display:grid;place-items:center;width:120px;height:120px;border-radius:50%;background:var(--accent);color:#fff;box-shadow:0 8px 32px #3b82f64d}.call-waiting-name{color:var(--text-primary);font-size:22px;font-weight:600}.call-waiting-status{color:var(--text-secondary);font-size:14px}.call-hangup-circle{display:inline-flex;align-items:center;justify-content:center;width:60px;height:60px;margin-top:12px;border-radius:50%;background:#dc3545;color:#fff;cursor:pointer;transition:filter .2s ease,transform .2s ease;box-shadow:0 8px 28px #dc354559}.call-hangup-circle:hover{filter:brightness(1.12);transform:scale(1.05)}.call-waiting-hint{color:var(--text-muted);font-size:12px}.call-status-message{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;margin:8px 0}.call-status-bubble{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:12px;background:var(--bg-hover);color:var(--text-secondary);font-size:12px;font-weight:500}.call-status-bubble.call-missed{color:#f87171}.call-status-bubble.call-declined{color:#fbbf24}.call-status-bubble.call-ended{color:var(--text-secondary)}.call-status-bubble.call-accepted{color:#22c55e}.avatar{border-radius:50%;background:var(--bg-tertiary);display:flex;align-items:center;justify-content:center;color:var(--text-secondary);font-weight:600;overflow:hidden;flex-shrink:0}.avatar-clickable{cursor:pointer;transition:opacity .2s ease,transform .2s ease}.avatar-clickable:hover{opacity:.85;transform:scale(1.05)}.avatar-img{width:100%;height:100%;border-radius:50%;object-fit:cover}.profile-modal{max-width:380px}.profile-modal-body{padding:24px 20px 20px;display:flex;flex-direction:column;align-items:center;gap:16px}.profile-avatar-section{position:relative;cursor:pointer;border-radius:50%;overflow:hidden}.profile-avatar-overlay{position:absolute;inset:0;border-radius:50%;background:#0000008c;color:#fff;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:500;opacity:0;transition:opacity var(--transition)}.profile-avatar-section:hover .profile-avatar-overlay{opacity:1}.profile-remove-avatar{color:var(--text-secondary);font-size:13px;padding:4px 12px;border-radius:var(--radius-sm);transition:background var(--transition),color var(--transition)}.profile-remove-avatar:hover{background:var(--bg-hover);color:var(--error)}.profile-info-row{width:100%;display:flex;flex-direction:column;gap:2px;padding:10px 14px;background:var(--bg-input);border-radius:var(--radius-sm)}.profile-info-label{font-size:12px;color:var(--text-muted)}.profile-info-value{font-size:15px;font-weight:500}.profile-bio-row{gap:6px}.profile-bio-display{text-align:left;font-size:14px;color:var(--text-secondary);padding:2px 0;border-radius:4px;transition:color var(--transition);word-break:break-word}.profile-bio-display:hover{color:var(--accent)}.profile-bio-edit{display:flex;flex-direction:column;gap:8px}.profile-bio-edit textarea{background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px 10px;font-size:14px;resize:none;color:var(--text-primary)}.profile-bio-edit textarea:focus{border-color:var(--accent)}.profile-bio-actions{display:flex;gap:8px;justify-content:flex-end}.profile-bio-cancel{font-size:13px;color:var(--text-secondary);padding:5px 12px;border-radius:var(--radius-sm);transition:background var(--transition)}.profile-bio-cancel:hover{background:var(--bg-hover)}.profile-bio-save{font-size:13px;background:var(--accent);color:#fff;padding:5px 12px;border-radius:var(--radius-sm);font-weight:500;transition:background var(--transition)}.profile-bio-save:hover:not(:disabled){background:var(--accent-hover)}.profile-bio-save:disabled{opacity:.5;cursor:not-allowed}.profile-signout{width:100%;margin-top:8px;padding:11px;border-radius:var(--radius-sm);background:#ef44441a;color:var(--error);font-size:14px;font-weight:500;transition:background var(--transition)}.profile-signout:hover{background:#ef44442e}.sidebar{width:340px;flex-shrink:0;display:flex;flex-direction:column;border-right:1px solid var(--border);background:var(--bg-secondary);position:relative}.sidebar-topbar{display:flex;align-items:center;gap:10px;padding:10px 18px;border-bottom:1px solid var(--border);background:linear-gradient(180deg,rgba(255,255,255,.035),transparent)}.sidebar-brand-icon{width:34px;height:34px;border-radius:50%;object-fit:cover;border:2px solid rgba(255,255,255,.75);box-shadow:0 2px 10px #00000059;flex-shrink:0}.sidebar-brand{font-size:20px;font-weight:700;color:var(--text-primary);letter-spacing:-.3px}.sidebar-header{padding:16px 16px 12px;border-bottom:1px solid var(--border)}.sidebar-profile{display:flex;align-items:center;gap:10px;margin-bottom:14px}.sidebar-avatar{width:38px;height:38px;font-size:15px}.sidebar-profile-info{display:flex;flex-direction:column;flex:1;gap:1px;overflow:hidden}.sidebar-profile-name{font-weight:600;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-profile-username{font-size:13px;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-menu-wrapper{position:relative}.sidebar-menu-btn{color:var(--text-secondary);padding:6px;border-radius:8px;transition:background var(--transition),color var(--transition)}.sidebar-menu-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.sidebar-menu-overlay{position:fixed;inset:0;z-index:10}.sidebar-menu{position:absolute;top:100%;right:0;margin-top:6px;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow);z-index:11;min-width:180px;overflow:hidden;animation:fadeIn .15s ease}.sidebar-menu button{width:100%;text-align:left;padding:10px 14px;font-size:14px;color:var(--text-primary);transition:background var(--transition)}.sidebar-menu button:hover{background:var(--bg-hover)}.sidebar-search{display:flex;align-items:center;gap:8px;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);padding:9px 12px;color:var(--text-muted);transition:border-color var(--transition)}.sidebar-search:focus-within{border-color:var(--accent)}.sidebar-search input{flex:1;font-size:14px}.sidebar-nav-tabs{display:flex;gap:6px;padding:0 4px;margin-top:12px}.sidebar-nav-tab{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:8px 12px;border-radius:var(--radius-sm);background:transparent;border:none;color:var(--text-secondary);font-size:13px;font-weight:500;cursor:pointer;transition:background var(--transition),color var(--transition);font-family:inherit}.sidebar-nav-tab:hover{background:var(--bg-hover);color:var(--text-primary)}.sidebar-nav-tab.active{background:var(--accent-soft);color:var(--accent)}.sidebar-chats{flex:1;overflow-y:auto;padding:8px}.sidebar-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:40px 20px;color:var(--text-muted);font-size:14px}.sidebar-new-btn{background:var(--accent);color:#fff;padding:8px 16px;border-radius:var(--radius-sm);font-size:14px;font-weight:500;transition:background var(--transition)}.sidebar-new-btn:hover{background:var(--accent-hover)}.chat-item{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:var(--radius-sm);width:100%;text-align:left;transition:background var(--transition);margin-bottom:2px}.chat-item:hover{background:var(--bg-hover)}.chat-item.active{background:var(--accent-soft)}.chat-item.active .chat-item-name{color:var(--accent)}.chat-item-info{flex:1;overflow:hidden;display:flex;flex-direction:column;gap:3px}.chat-item-avatar-wrap{position:relative;flex-shrink:0}.chat-item-online-dot{position:absolute;bottom:1px;right:1px;width:12px;height:12px;border-radius:50%;background:#22c55e;border:2.5px solid var(--bg-secondary);box-shadow:0 0 4px #22c55e80}.chat-item.active .chat-item-online-dot{border-color:var(--bg-secondary)}.chat-item-top{display:flex;justify-content:space-between;align-items:center;gap:8px}.chat-item-name{font-weight:600;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-item-time{font-size:12px;color:var(--text-muted);flex-shrink:0}.chat-item-preview{font-size:13px;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-fab{position:absolute;bottom:20px;right:20px;width:52px;height:52px;border-radius:50%;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 14px #3b82f666;transition:background var(--transition),transform var(--transition);z-index:5}.sidebar-fab:hover{background:var(--accent-hover);transform:scale(1.08)}.avatar{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;background:linear-gradient(135deg,var(--accent),#6366f1);color:#fff;font-weight:600;font-size:17px;flex-shrink:0}@media (max-width: 768px){.sidebar{width:100%}.sidebar-fab{bottom:16px;right:16px}}.emoji-picker-backdrop{position:fixed;inset:0;z-index:99}.emoji-picker{position:absolute;bottom:60px;left:10px;z-index:100;display:grid;grid-template-columns:repeat(10,1fr);gap:2px;padding:10px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);animation:fadeIn .15s ease}.emoji-picker-item{width:34px;height:34px;display:flex;align-items:center;justify-content:center;font-size:20px;border-radius:8px;transition:background .15s ease,transform .1s ease}.emoji-picker-item:hover{background:var(--bg-hover);transform:scale(1.15)}.emoji-picker-item:active{transform:scale(.95)}@media (max-width: 768px){.emoji-picker{grid-template-columns:repeat(8,1fr);gap:4px;left:8px;right:8px}.emoji-picker-item{width:100%}}.lightbox-overlay{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;background:#000000d9;animation:fadeIn .2s ease;cursor:zoom-out;padding:24px}.lightbox-image{max-width:90vw;max-height:90vh;border-radius:12px;object-fit:contain;cursor:default;animation:lightboxZoom .25s ease}@keyframes lightboxZoom{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}.lightbox-close{position:absolute;top:20px;right:20px;color:#fff;width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:background .2s ease}.lightbox-close:hover{background:#ffffff26}.user-profile-body{gap:12px}.user-profile-avatar{position:relative;cursor:pointer;border-radius:50%;overflow:hidden}.user-profile-avatar .profile-avatar-overlay{position:absolute;inset:0;border-radius:50%;background:#0000008c;color:#fff;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:500;opacity:0;transition:opacity var(--transition)}.user-profile-avatar:hover .profile-avatar-overlay{opacity:1}.user-profile-name{font-size:19px;font-weight:700}.user-profile-username{font-size:14px;color:var(--text-secondary);margin-top:-8px}.user-profile-status{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text-secondary)}.user-profile-status.online{color:#22c55e}.user-profile-status .presence-dot{width:8px;height:8px;border-radius:50%;background:var(--text-muted)}.user-profile-status.online .presence-dot{background:#22c55e;box-shadow:0 0 4px #22c55e99}.user-profile-status.offline .presence-dot{background:var(--text-muted)}.chat-window{display:flex;flex-direction:column;height:100%;flex:1;background:var(--bg-primary)}.chat-header{display:flex;align-items:center;gap:12px;padding:14px 20px;border-bottom:1px solid var(--border);background:var(--bg-secondary)}.chat-back{display:none;color:var(--text-secondary);padding:4px;border-radius:6px;transition:background var(--transition)}.chat-back:hover{background:var(--bg-hover)}.chat-avatar{width:40px;height:40px;font-size:16px}.chat-header-info{display:flex;flex-direction:column;gap:2px;min-width:0}.chat-call-actions{display:flex;align-items:center;gap:4px;margin-left:auto}.chat-call-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:10px;color:var(--text-secondary);transition:background var(--transition),color var(--transition),opacity var(--transition)}.chat-call-btn:hover:not(:disabled){background:var(--bg-hover);color:var(--accent)}.chat-call-btn:disabled{cursor:not-allowed;opacity:.35}.chat-header-name{font-weight:600;font-size:15px}.chat-header-status{font-size:13px;color:var(--text-secondary);display:flex;align-items:center;gap:5px}.chat-header-status.online{color:#22c55e}.presence-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;background:var(--text-muted)}.chat-header-status.online .presence-dot{background:#22c55e;box-shadow:0 0 4px #22c55e99;animation:pulseDot 2s ease-in-out infinite}@keyframes pulseDot{0%,to{opacity:1}50%{opacity:.5}}@keyframes messageIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.chat-messages{flex:1;overflow-y:auto;padding:20px;display:flex;flex-direction:column;gap:10px}.chat-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--text-muted);font-size:15px;gap:16px}.chat-empty-icon{color:var(--text-muted);opacity:.4}.message-row{display:flex;align-items:flex-end;gap:8px;animation:messageIn .25s ease}.message-row.me{justify-content:flex-end}.message-avatar{width:28px;height:28px;font-size:12px;flex-shrink:0}.message-bubble{max-width:70%;padding:10px 14px;border-radius:var(--radius-lg);display:flex;flex-direction:column;gap:4px;word-break:break-word}.message-row.them .message-bubble{background:var(--bubble-them);border-bottom-left-radius:4px}.message-row.me .message-bubble{background:var(--bubble-me);border-bottom-right-radius:4px}.message-text{font-size:15px;line-height:1.4}.message-time{font-size:11px;opacity:.6;align-self:flex-end;display:flex;align-items:center;gap:4px}.msg-checks{display:inline-flex;align-items:center;margin-left:-2px}.msg-check.single{color:#ffffff80}.msg-check.double{color:#4fc3f7}.msg-check.double polyline:first-child{opacity:.5}.message-image{max-width:260px;max-height:260px;border-radius:10px;object-fit:cover;cursor:pointer;display:block}.message-bubble:has(.message-image){padding:4px;background:transparent!important}.message-bubble:has(.voice-message){min-width:200px}.voice-message{display:flex;align-items:center;gap:10px;padding:4px 0}.voice-play-btn{width:36px;height:36px;border-radius:50%;background:#ffffff26;color:#fff;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .2s ease}.voice-play-btn:hover{background:#ffffff40}.message-row.them .voice-play-btn{background:#ffffff1a;color:var(--text-primary)}.message-row.them .voice-play-btn:hover{background:#fff3}.voice-waveform{display:flex;align-items:center;gap:2px;height:32px;flex:1;position:relative;overflow:hidden}.voice-bar{width:2px;min-width:2px;border-radius:1px;background:#ffffff4d;flex-shrink:0}.message-row.them .voice-bar{background:#ffffff26}.voice-progress{position:absolute;top:0;left:0;height:100%;background:#ffffff1a;transition:width .15s linear;pointer-events:none}.voice-progress.me{background:#fff3}.voice-duration{font-size:12px;color:#ffffffb3;flex-shrink:0;min-width:32px;text-align:right}.message-row.them .voice-duration{color:var(--text-secondary)}.chat-attach{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;color:var(--text-secondary);flex-shrink:0;transition:background var(--transition),color var(--transition)}.chat-attach:hover:not(:disabled){background:var(--bg-hover);color:var(--accent)}.chat-attach:disabled{opacity:.4;cursor:not-allowed}.chat-music-btn{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;color:var(--text-secondary);flex-shrink:0;transition:background var(--transition),color var(--transition)}.chat-music-btn:hover:not(:disabled){background:var(--bg-hover);color:var(--accent)}.chat-music-btn:disabled{opacity:.4;cursor:not-allowed}.image-preview-bar{position:absolute;left:50%;bottom:calc(100% + 8px);transform:translate(-50%);z-index:5;display:flex;align-items:center;gap:12px;width:min(420px,calc(100vw - 32px));box-sizing:border-box;padding:8px;background:var(--bg-input);border:1px solid var(--border);border-radius:14px;box-shadow:0 10px 28px #00000047}.image-preview-thumb{width:64px;height:64px;border-radius:10px;object-fit:cover;flex-shrink:0}.image-preview-info{flex:1;min-width:0;overflow:hidden;display:flex;flex-direction:column;gap:8px}.image-preview-label{font-size:13px;color:var(--text-secondary)}.image-preview-actions{display:flex;flex-wrap:wrap;gap:8px}.image-preview-cancel,.image-preview-send{display:flex;align-items:center;gap:5px;padding:6px 12px;border-radius:8px;font-size:13px;font-weight:500;transition:background var(--transition),color var(--transition)}.image-preview-cancel{color:var(--error);background:#ef44441a}.image-preview-cancel:hover{background:#ef44442e}.image-preview-send{color:#fff;background:var(--accent)}.image-preview-send:hover{background:var(--accent-hover)}.chat-input-column:has(.image-preview-bar)>input{border-radius:0 0 22px 22px}.music-message{display:flex;flex-direction:column;gap:6px;padding:8px 4px;min-width:220px}.music-header{display:flex;align-items:center;gap:10px}.music-play-btn{width:40px;height:40px;border-radius:50%;background:#ffffff26;color:#fff;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .2s ease}.music-play-btn:hover{background:#ffffff40}.music-play-btn.me{background:#fff3}.message-row.them .music-play-btn{background:#ffffff1a;color:var(--text-primary)}.message-row.them .music-play-btn:hover{background:#fff3}.music-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;overflow:hidden}.music-title{font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.music-artist{font-size:12px;opacity:.7;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.music-icon{color:#ffffff80;flex-shrink:0}.music-icon.me{color:#fff9}.message-row.them .music-icon{color:var(--text-muted)}.music-progress-bar{height:3px;border-radius:2px;background:#ffffff26;overflow:hidden}.message-row.them .music-progress-bar{background:#ffffff1a}.music-progress-fill{height:100%;background:#ffffff80;transition:width .15s linear}.music-progress-fill.me{background:#fff9}.message-row.them .music-progress-fill{background:var(--accent)}.music-duration{font-size:11px;color:#fff9}.message-row.them .music-duration{color:var(--text-secondary)}.message-bubble:has(.music-message){min-width:220px}.chat-emoji-btn{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;color:var(--text-secondary);flex-shrink:0;transition:background var(--transition),color var(--transition)}.chat-emoji-btn:hover{background:var(--bg-hover);color:var(--accent)}.chat-voice-btn{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;color:var(--text-secondary);flex-shrink:0;transition:background var(--transition),color var(--transition)}.chat-voice-btn:hover:not(:disabled){background:var(--bg-hover);color:var(--accent)}.chat-voice-btn:disabled{opacity:.4;cursor:not-allowed}.chat-input-area{position:relative;display:flex;gap:10px;padding:14px 20px;border-top:1px solid var(--border);background:var(--bg-secondary);align-items:flex-end}.chat-input-column{flex:1;min-width:0;display:flex;flex-direction:column}.reply-bar{display:flex;align-items:center;gap:10px;padding:6px 14px;background:var(--bg-input);border:1px solid var(--border);border-bottom:none;border-radius:14px 14px 0 0}.reply-bar-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px;overflow:hidden}.reply-bar-name{font-size:13px;font-weight:600;color:var(--accent)}.reply-bar-text{font-size:13px;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.reply-bar-close{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;color:var(--text-secondary);flex-shrink:0;transition:background var(--transition)}.reply-bar-close:hover{background:var(--bg-hover)}.chat-input-column>input{width:100%;box-sizing:border-box;background:var(--bg-input);border:1px solid var(--border);border-radius:22px;padding:12px 18px;font-size:15px;transition:border-color var(--transition)}.chat-input-column:has(.reply-bar)>input{border-radius:0 0 22px 22px}.chat-input-column>input:focus{border-color:var(--accent);outline:none}.reply-preview{display:flex;gap:8px;padding:6px 10px;margin-bottom:4px;background:#ffffff0f;border-radius:8px;cursor:pointer}.reply-line{width:3px;border-radius:2px;background:var(--accent);flex-shrink:0}.reply-content{display:flex;flex-direction:column;gap:1px;min-width:0;overflow:hidden}.reply-name{font-size:12px;font-weight:600;color:var(--accent)}.reply-text{font-size:12px;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-send{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;background:var(--accent);color:#fff;flex-shrink:0;transition:background var(--transition),opacity var(--transition)}.chat-send:hover:not(:disabled){background:var(--accent-hover)}.chat-send:disabled{opacity:.4;cursor:not-allowed}.voice-recording-bar{display:flex;align-items:center;gap:10px;flex:1;min-width:0;background:var(--bg-input);border:1px solid var(--border);border-radius:22px;padding:8px 14px}.voice-cancel{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;color:var(--error);flex-shrink:0;transition:background var(--transition)}.voice-cancel:hover{background:#ef44441f}.voice-rec-indicator{flex:1;display:flex;align-items:center;gap:8px}.voice-rec-dot{width:10px;height:10px;border-radius:50%;background:var(--error);animation:pulse 1s ease-in-out infinite}.voice-rec-time{font-size:15px;font-weight:500;color:var(--text-primary)}.voice-send-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;background:var(--accent);color:#fff;flex-shrink:0;transition:background var(--transition)}.voice-send-btn:hover{background:var(--accent-hover)}@media (max-width: 768px){.chat-back{display:flex}.chat-header{padding:12px 14px}.chat-messages{padding:14px}.chat-input-area{gap:4px;padding:10px 8px max(10px,env(safe-area-inset-bottom))}.chat-attach,.chat-emoji-btn,.chat-voice-btn,.chat-music-btn,.chat-send{width:40px;height:40px}.message-image{max-width:100%}.message-bubble{max-width:80%}}.news-feed{display:flex;flex:1;flex-direction:column;width:100%;min-width:0;height:100%;background:var(--bg-primary, #0f1115)}.news-feed-header{border-bottom:1px solid var(--border-color, rgba(255, 255, 255, .06));background:var(--bg-secondary, #16181d);flex-shrink:0}.news-feed-header-inner{max-width:800px;margin:0 auto;padding:16px 24px}.news-feed-header h2{margin:0;font-size:20px;font-weight:700;color:var(--text-primary, #e4e6eb);text-align:center}.news-feed-scroll{flex:1;overflow-y:auto;padding:32px 24px 24px;display:flex;flex-direction:column;gap:16px;max-width:800px;width:100%;margin:0 auto;box-sizing:border-box}.post-composer{background:var(--bg-secondary, #16181d);border:1px solid var(--border-color, rgba(255, 255, 255, .06));border-radius:16px;padding:16px;display:flex;flex-direction:column;gap:12px;flex-shrink:0}.post-composer-top{display:flex;align-items:center;gap:12px}.post-composer-input{flex:1;background:transparent;border:none;outline:none;font-size:16px;color:var(--text-primary, #e4e6eb);font-family:inherit}.post-composer-input::placeholder{color:var(--text-secondary, #8b8d93)}.post-composer-preview{position:relative;border-radius:12px;overflow:hidden}.post-composer-preview img{width:100%;max-height:240px;object-fit:cover;display:block;border-radius:12px}.post-composer-preview-remove{position:absolute;top:8px;right:8px;background:#0009;border:none;color:#fff;border-radius:50%;width:28px;height:28px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .2s}.post-composer-preview-remove:hover{background:#000c}.post-composer-actions{display:flex;align-items:center;justify-content:space-between;gap:12px}.post-composer-attach{display:flex;align-items:center;gap:6px;background:transparent;border:none;color:var(--text-secondary, #8b8d93);font-size:14px;cursor:pointer;padding:6px 10px;border-radius:8px;transition:background .2s,color .2s;font-family:inherit}.post-composer-attach:hover:not(:disabled){background:#ffffff0f;color:var(--text-primary, #e4e6eb)}.post-composer-attach:disabled{opacity:.5;cursor:not-allowed}.post-composer-publish{background:var(--accent, #2563eb);color:#fff;border:none;border-radius:10px;padding:8px 20px;font-size:14px;font-weight:600;cursor:pointer;transition:opacity .2s,transform .1s;font-family:inherit}.post-composer-publish:hover:not(:disabled){opacity:.9}.post-composer-publish:active:not(:disabled){transform:scale(.97)}.post-composer-publish:disabled{opacity:.5;cursor:not-allowed}.news-feed-empty{text-align:center;padding:48px 20px;color:var(--text-secondary, #8b8d93)}.news-feed-empty p{margin:0 0 4px;font-size:16px}.news-feed-empty small{font-size:13px}.post-card{background:var(--bg-secondary, #16181d);border:1px solid var(--border-color, rgba(255, 255, 255, .06));border-radius:16px;padding:16px;display:flex;flex-direction:column;gap:12px;flex-shrink:0;transition:border-color .2s}.post-card:hover{border-color:#ffffff1a}.post-card-header{display:flex;align-items:center;gap:12px}.post-card-avatar-btn{border:none;background:transparent;padding:0;cursor:pointer;border-radius:50%;flex-shrink:0;transition:opacity .2s}.post-card-avatar-btn:hover{opacity:.85}.post-card-author{display:flex;flex-direction:column;flex:1;min-width:0}.post-card-name-btn{background:transparent;border:none;padding:0;text-align:left;cursor:pointer;font-size:15px;font-weight:600;color:var(--text-primary, #e4e6eb);font-family:inherit;transition:color .2s}.post-card-name-btn:hover{color:var(--accent, #2563eb)}.post-card-date{font-size:13px;color:var(--text-secondary, #8b8d93)}.post-card-delete{background:transparent;border:none;color:var(--text-secondary, #8b8d93);cursor:pointer;padding:6px;border-radius:8px;display:flex;align-items:center;justify-content:center;transition:background .2s,color .2s}.post-card-delete:hover{background:#ef44441f;color:#ef4444}.post-card-content{margin:0;font-size:15px;line-height:1.5;color:var(--text-primary, #e4e6eb);white-space:pre-wrap;word-wrap:break-word}.post-card-image{width:100%;border-radius:12px;cursor:pointer;display:block;object-fit:cover}@keyframes spin{to{transform:rotate(360deg)}}.spin{animation:spin .8s linear infinite}@media (max-width: 768px){.news-feed-header-inner{padding:14px 16px}.news-feed-scroll{padding:16px}}.messenger{display:flex;width:100%;height:100vh;height:100dvh;min-height:0;overflow:hidden}.messenger-sidebar{display:flex;min-width:0}.messenger-chat{display:flex;flex:1;min-width:0}.messenger-welcome{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;color:var(--text-muted);background:var(--bg-primary)}.messenger-welcome-icon{opacity:.3;margin-bottom:8px}.messenger-welcome h2{font-size:22px;font-weight:700;color:var(--text-secondary)}.messenger-welcome p{font-size:15px}.hidden-mobile{display:none!important}@media (min-width: 769px){.hidden-mobile{display:flex!important}}@media (max-width: 768px){.messenger-sidebar,.messenger-chat{width:100%;min-width:0}.messenger-sidebar{padding-bottom:env(safe-area-inset-bottom)}}.modal-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:100;animation:fadeIn .2s ease}.modal-content{width:calc(100% - 32px);max-width:420px;max-height:min(80vh,720px);background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow);display:flex;flex-direction:column;overflow:hidden}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:18px 20px;border-bottom:1px solid var(--border)}.modal-header h2{font-size:18px;font-weight:700}.modal-close{color:var(--text-secondary);padding:6px;border-radius:6px;transition:background var(--transition),color var(--transition)}.modal-close:hover{background:var(--bg-hover);color:var(--text-primary)}.modal-search{display:flex;align-items:center;gap:8px;margin:16px 20px;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 14px;color:var(--text-muted);transition:border-color var(--transition)}.modal-search:focus-within{border-color:var(--accent)}.modal-search input{flex:1;font-size:15px}.modal-results{flex:1;overflow-y:auto;padding:0 12px 12px}.modal-empty{text-align:center;padding:24px;color:var(--text-muted);font-size:14px}.search-result{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:var(--radius-sm);width:100%;text-align:left;transition:background var(--transition)}.search-result:hover{background:var(--bg-hover)}.search-result-info{display:flex;flex-direction:column;gap:2px}.search-result-name{font-weight:600;font-size:15px}.search-result-username{font-size:13px;color:var(--text-secondary)}@media (max-width: 768px){.modal-content{width:calc(100% - 24px);max-width:420px;max-height:min(85vh,720px)}}:root{--bg-primary: #0f1115;--bg-secondary: #181b22;--bg-tertiary: #21252f;--bg-hover: #2a2f3a;--bg-input: #1c2029;--border: #2a2f3a;--text-primary: #e8eaed;--text-secondary: #9aa0aa;--text-muted: #6b7280;--accent: #3b82f6;--accent-hover: #2563eb;--accent-soft: rgba(59, 130, 246, .12);--green: #22c55e;--green-soft: rgba(34, 197, 94, .15);--error: #ef4444;--bubble-me: #2563eb;--bubble-them: #21252f;--radius: 12px;--radius-sm: 8px;--radius-lg: 18px;--shadow: 0 4px 24px rgba(0, 0, 0, .3);--transition: .2s ease}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{width:100%;height:100%;min-height:100%}html,body{overflow-x:hidden}body{overflow-y:auto}body{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;background:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}input,textarea{font-family:inherit;outline:none;border:none;background:none;color:inherit}input::placeholder,textarea::placeholder{color:var(--text-muted)}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--bg-hover);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#3a4150}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes messageIn{0%{opacity:0;transform:translateY(6px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}
