@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap";:root{--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--bg-main:#0e1621;--bg-sidebar:#17212b;--bg-chat:#0e1621;--bg-active:#2b5278;--bg-bubble-self:#2b5278;--bg-bubble-other:#182533;--bg-input:#17212b;--bg-modal:#17212b;--bg-hover:#202b36;--text-main:#f5f6f7;--text-muted:#7f91a4;--text-self:#fff;--text-link:#64b5f6;--border-color:#101921;--accent-color:#5288c1;--accent-hover:#659bd3;--danger-color:#ec5b5b;--border-radius-sm:8px;--border-radius-md:12px;--border-radius-lg:16px;--shadow-sm:0 2px 8px #00000026;--shadow-md:0 4px 16px #0000004d;--shadow-lg:0 8px 32px #00000080;--transition-fast:.15s ease;--transition-normal:.25s cubic-bezier(.4, 0, .2, 1)}*{box-sizing:border-box;font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;padding:0}body{background-color:var(--bg-main);color:var(--text-main);width:100vw;height:100vh;overflow:hidden}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#24303f;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#313f51}@keyframes slideIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleUp{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes pulse{0%{opacity:.5;transform:scale(1)}50%{opacity:1;transform:scale(1.05)}to{opacity:.5;transform:scale(1)}}.animate-fade-in{animation:fadeIn var(--transition-normal)}.animate-slide-in{animation:slideIn var(--transition-normal) forwards}.animate-scale-up{animation:scaleUp var(--transition-normal) forwards}button,input,select,textarea{color:inherit;background:0 0;border:none;outline:none}button{cursor:pointer;transition:all var(--transition-fast)}button:disabled{opacity:.5;cursor:not-allowed}.app-container{background-color:var(--bg-main);width:100vw;height:100vh;display:flex;overflow:hidden}.auth-wrapper{background:linear-gradient(135deg,#0a0f18 0%,#0e1621 100%);justify-content:center;align-items:center;width:100vw;height:100vh;display:flex;position:relative}.auth-wrapper:before{content:"";filter:blur(50px);background:radial-gradient(circle,#5288c126 0%,#0000 70%);width:40%;height:40%;position:absolute;top:-10%;left:-10%}.auth-wrapper:after{content:"";filter:blur(50px);background:radial-gradient(circle,#2b527833 0%,#0000 70%);width:40%;height:40%;position:absolute;bottom:-10%;right:-10%}.auth-card{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-radius:var(--border-radius-lg);width:100%;max-width:420px;box-shadow:var(--shadow-lg);z-index:10;text-align:center;background:#17212bd9;border:1px solid #ffffff0d;padding:40px}.auth-logo{background:linear-gradient(90deg,#64b5f6,#2196f3);-webkit-text-fill-color:transparent;-webkit-background-clip:text;margin-bottom:8px;font-size:32px;font-weight:700}.auth-subtitle{color:var(--text-muted);margin-bottom:32px;font-size:14px}.auth-form-group{text-align:left;margin-bottom:24px}.auth-label{color:var(--text-muted);margin-bottom:8px;font-size:13px;font-weight:500;display:block}.auth-input-wrapper{align-items:center;display:flex;position:relative}.auth-input{background:var(--bg-main);border:1.5px solid var(--border-color);border-radius:var(--border-radius-md);width:100%;transition:all var(--transition-fast);padding:14px 16px;font-size:16px}.auth-input:focus{border-color:var(--accent-color);box-shadow:0 0 0 3px #5288c133}.auth-btn{background:var(--accent-color);color:#fff;border-radius:var(--border-radius-md);width:100%;margin-top:12px;padding:14px;font-size:16px;font-weight:600;box-shadow:0 4px 12px #5288c14d}.auth-btn:hover{background:var(--accent-hover);transform:translateY(-1px)}.auth-btn:active{transform:translateY(0)}.otp-box-wrapper{justify-content:space-between;gap:10px;margin-bottom:24px;display:flex}.otp-input{background:var(--bg-main);border:1.5px solid var(--border-color);border-radius:var(--border-radius-md);text-align:center;width:50px;height:54px;transition:all var(--transition-fast);font-size:24px;font-weight:700}.otp-input:focus{border-color:var(--accent-color);box-shadow:0 0 0 3px #5288c133}.sidebar{background:var(--bg-sidebar);border-right:1px solid var(--border-color);flex-direction:column;width:320px;min-width:320px;height:100%;display:flex}.sidebar-header{align-items:center;gap:12px;padding:16px;display:flex}.sidebar-menu-btn{width:40px;height:40px;color:var(--text-muted);border-radius:50%;justify-content:center;align-items:center;display:flex}.sidebar-menu-btn:hover{background:var(--bg-hover);color:var(--text-main)}.search-bar-wrapper{flex:1;position:relative}.search-input{background:var(--bg-main);width:100%;transition:all var(--transition-fast);border:1px solid #0000;border-radius:20px;padding:10px 16px 10px 40px;font-size:14px}.search-input:focus{background:var(--bg-sidebar);border-color:var(--accent-color)}.search-icon{color:var(--text-muted);pointer-events:none;position:absolute;top:50%;left:14px;transform:translateY(-50%)}.chat-list-scroll{flex:1;overflow-y:auto}.chat-item{cursor:pointer;transition:background-color var(--transition-fast);border-bottom:1px solid #ffffff03;align-items:center;gap:12px;padding:12px 16px;display:flex}.chat-item:hover{background:var(--bg-hover)}.chat-item.active{background:var(--bg-active);color:var(--text-self)}.avatar-wrapper{width:48px;min-width:48px;height:48px;position:relative}.avatar{object-fit:cover;color:#fff;text-transform:uppercase;background-color:#3b5998;border-radius:50%;justify-content:center;align-items:center;width:100%;height:100%;font-size:18px;font-weight:600;display:flex}.status-badge{border:2px solid var(--bg-sidebar);background:#4caf50;border-radius:50%;width:12px;height:12px;position:absolute;bottom:0;right:0}.chat-item.active .status-badge{border-color:var(--bg-active)}.chat-item-info{flex:1;min-width:0}.chat-item-header{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}.chat-item-title{white-space:nowrap;text-overflow:ellipsis;font-size:15px;font-weight:600;overflow:hidden}.chat-item-time{color:var(--text-muted);font-size:12px}.chat-item.active .chat-item-time{color:#ffffffb3}.chat-item-body{color:var(--text-muted);justify-content:space-between;align-items:center;font-size:13px;display:flex}.chat-item.active .chat-item-body{color:#fffc}.chat-item-msg{white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.unread-badge{color:#fff;text-align:center;background:#5288c1;border-radius:10px;min-width:18px;padding:2px 6px;font-size:11px;font-weight:600}.chat-window{background:var(--bg-chat);flex-direction:column;flex:1;height:100%;display:flex;position:relative}.chat-window .chat-window-placeholder{display:flex}.chat-window .chat-content-wrapper{display:none}.chat-window.active .chat-window-placeholder{display:none!important}.chat-window.active .chat-content-wrapper{flex-direction:column;height:100%;display:flex}.chat-window-placeholder{color:var(--text-muted);background:#0e1621;flex-direction:column;flex:1;justify-content:center;align-items:center;display:flex}.chat-header{background:var(--bg-sidebar);border-bottom:1px solid var(--border-color);z-index:5;justify-content:space-between;align-items:center;height:60px;padding:0 20px;display:flex}.chat-header-info{align-items:center;gap:12px;display:flex}.chat-header-title{font-size:16px;font-weight:600}.chat-header-subtitle{color:var(--text-muted);margin-top:2px;font-size:12px}.chat-messages-scroll{background-blend-mode:overlay;background:#0e1621 url(https://user-images.githubusercontent.com/15075759/28719144-86dc0f70-73b1-11e7-911d-60d70fcded21.png);flex-direction:column;flex:1;gap:8px;padding:20px 40px;display:flex;overflow-y:auto}.message-row{width:100%;margin-bottom:4px;display:flex}.message-row.self{justify-content:flex-end}.message-row.other{justify-content:flex-start}.message-bubble{border-radius:var(--border-radius-md);max-width:60%;box-shadow:var(--shadow-sm);word-wrap:break-word;padding:10px 14px;animation:.2s cubic-bezier(.1,.8,.3,1) forwards slideIn;position:relative}.message-row.self .message-bubble{background:var(--bg-bubble-self);color:var(--text-self);border-bottom-right-radius:4px}.message-row.other .message-bubble{background:var(--bg-bubble-other);color:var(--text-main);border-bottom-left-radius:4px}.message-text{margin-right:48px;font-size:14.5px;line-height:1.4}.message-meta{color:#ffffff80;-webkit-user-select:none;user-select:none;align-items:center;gap:3px;font-size:10px;display:flex;position:absolute;bottom:4px;right:8px}.message-row.other .message-meta{color:var(--text-muted)}.message-meta.image-meta{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0000008c;border-radius:10px;padding:3px 6px;position:absolute;bottom:8px;right:8px;color:#fff!important}.chat-input-bar{background:var(--bg-chat);align-items:center;gap:12px;padding:16px 24px;display:flex}.chat-input-container{background:var(--bg-input);border-radius:var(--border-radius-lg);border:1px solid var(--border-color);box-shadow:var(--shadow-sm);flex:1;align-items:center;gap:10px;padding:6px 16px;display:flex}.chat-input-field{color:var(--text-main);resize:none;flex:1;max-height:120px;padding:8px 0;font-size:15px}.chat-input-field::placeholder{color:var(--text-muted)}.chat-input-action-btn{color:var(--text-muted);border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.chat-input-action-btn:hover{background:var(--bg-hover);color:var(--text-main)}.send-btn{background:var(--accent-color);color:#fff;width:48px;min-width:48px;height:48px;box-shadow:var(--shadow-md);border-radius:50%;justify-content:center;align-items:center;display:flex}.send-btn:hover{background:var(--accent-hover);transform:scale(1.05)}.send-btn:active{transform:scale(.95)}.modal-overlay{z-index:100;background:#0009;justify-content:center;align-items:center;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.modal-content{background:var(--bg-modal);border-radius:var(--border-radius-lg);width:100%;max-width:400px;box-shadow:var(--shadow-lg);border:1px solid #ffffff0d;padding:30px;animation:.25s cubic-bezier(.34,1.56,.64,1) forwards scaleUp}.modal-title{text-align:center;margin-bottom:20px;font-size:20px;font-weight:700}.profile-avatar-edit{flex-direction:column;align-items:center;gap:12px;margin-bottom:24px;display:flex}.profile-avatar-large{object-fit:cover;color:#fff;background-color:var(--accent-color);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;width:90px;height:90px;font-size:32px;font-weight:600;display:flex;position:relative;overflow:hidden}.profile-avatar-large:hover:after{content:"Изменить";text-align:center;background:#00000080;padding:4px 0;font-size:10px;position:absolute;bottom:0;left:0;right:0}.modal-form-actions{gap:12px;margin-top:24px;display:flex}.modal-btn{border-radius:var(--border-radius-md);text-align:center;flex:1;padding:12px;font-weight:600}.modal-btn.primary{background:var(--accent-color);color:#fff}.modal-btn.primary:hover{background:var(--accent-hover)}.modal-btn.secondary{background:var(--bg-hover);color:var(--text-main)}.modal-btn.secondary:hover{background:#2b3947}.typing-indicator{color:var(--text-muted);align-items:center;gap:3px;font-size:12px;display:flex}.typing-dot{background:var(--text-muted);border-radius:50%;width:4px;height:4px;animation:1s infinite pulse}.typing-dot:nth-child(2){animation-delay:.2s}.typing-dot:nth-child(3){animation-delay:.4s}@media (width<=768px){.search-input,.chat-input-field{font-size:16px!important}.sidebar{z-index:10;transition:transform .28s cubic-bezier(.1,.76,.35,1),filter .28s cubic-bezier(.1,.76,.35,1);position:fixed;inset:0;transform:translate(0,0);width:100%!important;min-width:100%!important}.chat-window{z-index:20;transition:transform .28s cubic-bezier(.1,.76,.35,1);position:fixed;inset:0;transform:translate(100vw);box-shadow:-4px 0 24px #00000059;width:100%!important}.chat-window .chat-window-placeholder{display:none!important}.chat-window .chat-content-wrapper{flex-direction:column;height:100%;display:flex!important}.app-container.chat-active .sidebar{filter:brightness(.65)contrast(1.05)!important;transform:translate(-20%)!important}.chat-window.active{transform:translate(0,0)!important}.back-btn{display:block!important}.chat-header{height:56px!important;padding:0 12px!important}.sidebar-header{padding:12px!important}.chat-messages-scroll{padding:12px 16px!important}.message-bubble{max-width:85%!important}.chat-input-bar{gap:8px!important;padding:10px 12px!important}.chat-input-container{padding:4px 10px!important}.send-btn{width:42px!important;min-width:42px!important;height:42px!important}.auth-card{max-width:90%!important;padding:24px!important}.otp-input{width:42px!important;height:48px!important;font-size:20px!important}}.lightbox-overlay{z-index:999;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#000000eb;flex-direction:column;justify-content:center;align-items:center;animation:.18s fadeIn;display:flex;position:fixed;inset:0}.lightbox-toolbar{z-index:1000;gap:8px;display:flex;position:absolute;top:16px;right:16px}.lightbox-btn{color:#fff;width:40px;height:40px;transition:background var(--transition-fast);cursor:pointer;background:#ffffff1f;border:none;border-radius:50%;justify-content:center;align-items:center;display:flex}.lightbox-btn:hover{background:#ffffff38}.lightbox-content{justify-content:center;align-items:center;max-width:95vw;max-height:90vh;display:flex}.lightbox-image{object-fit:contain;border-radius:var(--border-radius-md);cursor:zoom-out;max-width:95vw;max-height:90vh;box-shadow:0 24px 80px #000c}.emoji-picker{background:var(--bg-modal);border-radius:var(--border-radius-lg);width:320px;max-width:calc(100vw - 24px);height:300px;box-shadow:var(--shadow-lg);z-index:50;transform-origin:0 100%;border:1px solid #ffffff0f;animation:.18s cubic-bezier(.34,1.56,.64,1) forwards scaleUp;position:absolute;bottom:76px;left:12px;overflow:hidden}.emoji-picker-scroll{height:100%;padding:12px;overflow-y:auto}.emoji-group{margin-bottom:12px}.emoji-group-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px;padding:0 2px;font-size:11px;font-weight:600}.emoji-grid{flex-wrap:wrap;gap:2px;display:flex}.emoji-btn{border-radius:var(--border-radius-sm);cursor:pointer;width:36px;height:36px;transition:background var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;font-size:20px;line-height:1;display:flex}.emoji-btn:hover{background:var(--bg-hover);transform:scale(1.15)}.chat-input-action-btn.active{color:var(--accent-color);background:#5288c126}.back-btn{width:36px;height:36px;color:var(--text-muted);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:none}.back-btn:hover{background:var(--bg-hover);color:var(--text-main)}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.spin{animation:1s linear infinite spin}.offline-banner{z-index:200;color:#fff;text-align:center;letter-spacing:.2px;background:linear-gradient(90deg,#c0392b,#e74c3c);padding:8px 16px;font-size:13px;font-weight:500;animation:.3s slideDown;position:fixed;top:0;left:0;right:0;box-shadow:0 2px 12px #0006}@keyframes slideDown{0%{transform:translateY(-100%)}to{transform:translateY(0)}}.context-menu{z-index:300;border-radius:var(--border-radius-md);box-shadow:var(--shadow-lg);transform-origin:0 0;background:#1e2c3a;border:1px solid #ffffff14;min-width:160px;animation:.12s cubic-bezier(.34,1.56,.64,1) scaleUp;position:fixed;overflow:hidden}.context-menu-item{width:100%;color:var(--text-main);cursor:pointer;transition:background var(--transition-fast);text-align:left;background:0 0;border:none;align-items:center;gap:10px;padding:10px 14px;font-size:13px;display:flex}.context-menu-item:hover{background:var(--bg-hover)}.context-menu-item.danger{color:var(--danger-color)}.reply-bar{background:var(--bg-input);border-top:1px solid #ffffff0d;align-items:center;gap:10px;padding:8px 16px;animation:.15s slideUp;display:flex}@keyframes slideUp{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.reply-bar-content{flex:1;min-width:0}.reply-bar-label{color:var(--accent-color);margin-bottom:2px;font-size:11px;font-weight:600}.reply-bar-text{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}.reply-bar-close{color:var(--text-muted);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;display:flex}.reply-bar-close:hover{background:var(--bg-hover);color:var(--text-main)}.reply-preview{background:#00000026;border-radius:6px;align-items:stretch;gap:8px;margin-bottom:6px;padding:4px 8px 4px 0;display:flex;overflow:hidden}.reply-preview-bar{background:var(--accent-color);border-radius:2px;flex-shrink:0;width:3px}.reply-preview-text{color:#fff9;text-overflow:ellipsis;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:12px;line-height:1.4;display:-webkit-box;overflow:hidden}.message-reactions{flex-wrap:wrap;gap:4px;margin-top:4px;display:flex}.reaction-chip{cursor:pointer;transition:background var(--transition-fast), transform var(--transition-fast);background:#ffffff14;border:1px solid #0000;border-radius:12px;align-items:center;gap:3px;padding:2px 7px;font-size:14px;display:inline-flex}.reaction-chip span{color:var(--text-muted);font-size:11px}.reaction-chip:hover{background:#ffffff24;transform:scale(1.08)}.reaction-chip.mine{background:#5288c140;border-color:#5288c180}.quick-reactions{box-shadow:var(--shadow-md);z-index:50;background:#1e2c3a;border:1px solid #ffffff14;border-radius:24px;gap:4px;padding:6px 8px;animation:.12s cubic-bezier(.34,1.56,.64,1) scaleUp;display:flex;position:absolute;bottom:calc(100% + 8px)}.reactions-right{right:0}.reactions-left{left:0}.quick-reaction-btn{width:36px;height:36px;transition:transform .12s ease, background var(--transition-fast);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;font-size:22px;display:flex}.quick-reaction-btn:hover{background:var(--bg-hover);transform:scale(1.3)}.msg-action-btn{opacity:0;background:var(--bg-input);width:28px;height:28px;color:var(--text-muted);cursor:pointer;transition:opacity var(--transition-fast), background var(--transition-fast);z-index:2;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.msg-action-right{right:-36px}.msg-action-left{left:-36px}.message-row:hover .msg-action-btn{opacity:1}.msg-action-btn:hover{background:var(--bg-hover);color:var(--text-main)}.deleted-msg{font-size:13px;font-style:italic;color:var(--text-muted)!important}.user-profile-modal{text-align:center;width:300px;padding:32px 24px 24px;position:relative}.profile-modal-close{width:32px;height:32px;color:var(--text-muted);transition:background var(--transition-fast);border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;top:12px;right:12px}.profile-modal-close:hover{background:var(--bg-hover);color:var(--text-main)}.profile-modal-avatar-wrap{margin-bottom:16px;display:inline-block;position:relative}.profile-modal-avatar{object-fit:cover;border:3px solid var(--accent-color);border-radius:50%;width:88px;height:88px}.profile-modal-avatar-placeholder{background:var(--bg-active);color:#fff;border:3px solid var(--accent-color);border-radius:50%;justify-content:center;align-items:center;width:88px;height:88px;font-size:28px;font-weight:600;display:flex}.profile-modal-online-dot{border:2px solid var(--bg-modal);background:#4caf50;border-radius:50%;width:14px;height:14px;position:absolute;bottom:4px;right:4px}.profile-modal-name{color:var(--text-main);margin-bottom:4px;font-size:18px;font-weight:700}.profile-modal-username{color:var(--accent-color);margin-bottom:6px;font-size:14px}.profile-modal-status{color:var(--text-muted);margin-bottom:16px;font-size:13px}.profile-modal-info-row{color:var(--text-main);border-top:1px solid #ffffff0d;justify-content:center;align-items:center;gap:8px;padding:8px 0;font-size:13px;display:flex}.load-more-btn{color:var(--text-muted);cursor:pointer;transition:background var(--transition-fast), color var(--transition-fast);background:#17212bcc;border:1px solid #ffffff14;border-radius:12px;padding:4px 14px;font-size:12px}.load-more-btn:hover{background:var(--bg-hover);color:var(--text-main)}
