:root{--primary: #007AFF;--primary-hover: #0051D5;--accent: #00D4FF;--success: #34C759;--danger: #FF3B30;--warning: #FF9500;--surface: rgba(20, 20, 30, .8);--surface-variant: rgba(15, 20, 40, .5);--glass-border: rgba(255, 255, 255, .15);--glass-input: rgba(255, 255, 255, .1);--glass-hover: rgba(255, 255, 255, .06);--glass-active: rgba(0, 122, 255, .18);--text-primary: rgba(255, 255, 255, .92);--text-secondary: rgba(255, 255, 255, .55);--text-tertiary: rgba(255, 255, 255, .3);--divider: rgba(255, 255, 255, .12);--bubble-out: rgba(0, 122, 255, .82);--bubble-in: rgba(255, 255, 255, .1);--shadow-sm: 0 2px 8px rgba(0, 0, 0, .25);--shadow-md: 0 4px 20px rgba(0, 0, 0, .35);--shadow-lg: 0 8px 40px rgba(0, 0, 0, .5);--radius-sm: 12px;--radius-md: 16px;--radius-lg: 20px;--radius-xl: 28px;--t: all .25s cubic-bezier(.4, 0, .2, 1);--t-fast: all .15s cubic-bezier(.4, 0, .2, 1)}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%;height:100dvh;overflow:hidden;touch-action:none}body{font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI,sans-serif;-webkit-font-smoothing:antialiased;background:#0d0e18;color:var(--text-primary)}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#ffffff2e;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#ffffff4d}.auth-container{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}.auth-box{width:100%;max-width:420px;background:var(--surface);backdrop-filter:blur(40px) saturate(160%);-webkit-backdrop-filter:blur(40px) saturate(160%);border:1px solid var(--glass-border);border-radius:var(--radius-xl);padding:48px 40px;box-shadow:var(--shadow-lg);animation:floatIn .5s ease}@keyframes floatIn{0%{opacity:0;transform:translateY(24px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.auth-title{font-size:30px;font-weight:700;color:var(--text-primary);text-align:center;margin-bottom:28px;letter-spacing:-.5px}.toggle-container{display:flex;gap:6px;padding:4px;background:#ffffff12;border-radius:var(--radius-sm);margin-bottom:24px;border:1px solid var(--glass-border)}.toggle-button{flex:1;padding:10px;border:none;background:transparent;color:var(--text-secondary);font-weight:600;font-size:14px;border-radius:9px;cursor:pointer;transition:var(--t)}.toggle-button.active{background:#ffffff1f;color:var(--primary);box-shadow:0 1px 6px #0003}.auth-warning+.auth-form,.auth-warning~.auth-form{margin-top:4px}.auth-form{display:flex;flex-direction:column;gap:14px}.auth-input{width:100%;padding:14px 16px;background:var(--glass-input);border:1px solid var(--glass-border);border-radius:var(--radius-sm);font-size:15px;color:var(--text-primary);outline:none;transition:var(--t)}.auth-input::placeholder{color:var(--text-tertiary)}.auth-input:focus{background:#ffffff24;border-color:var(--primary);box-shadow:0 0 0 3px #007aff2e}.auth-warning{margin-bottom:16px;background:#ff95001a;border:1px solid rgba(255,149,0,.35);border-radius:var(--radius-sm);padding:14px 16px;display:flex;flex-direction:column;gap:10px}.auth-warning-header{display:flex;align-items:center;gap:8px;font-weight:600;font-size:14px;color:#f59e0b}.auth-warning-icon{color:#f59e0b;flex-shrink:0}.auth-warning-text{font-size:13px;color:var(--text-secondary);line-height:1.5;margin:0}.auth-warning-text strong{color:var(--text-primary)}.auth-warning-check{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none}.auth-warning-check input[type=checkbox]{width:16px;height:16px;accent-color:#f59e0b;cursor:pointer}.btn-primary:disabled{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}.btn{padding:14px 24px;border:none;border-radius:var(--radius-sm);font-size:15px;font-weight:600;cursor:pointer;transition:var(--t);display:flex;align-items:center;justify-content:center;gap:8px}.btn-primary{background:var(--primary);color:#fff;box-shadow:0 4px 14px #007aff59}.btn-primary:hover{background:var(--primary-hover);transform:translateY(-1px);box-shadow:0 6px 20px #007aff73}.btn-primary:active{transform:translateY(0)}.btn-secondary{background:var(--glass-input);color:var(--text-primary);border:1px solid var(--glass-border)}.btn-secondary:hover{background:#ffffff26;transform:translateY(-1px)}.btn-google{background:#ffffff1a;color:var(--text-primary);border:1px solid var(--glass-border);margin-top:8px}.btn-google:hover{background:#ffffff29;transform:translateY(-1px)}.divider{display:flex;align-items:center;margin:20px 0;color:var(--text-secondary);font-size:12px;font-weight:500;gap:10px}.divider:before,.divider:after{content:"";flex:1;height:1px;background:var(--divider)}.toggle-text{text-align:center;margin-top:18px;font-size:13px;color:var(--text-secondary)}.toggle-link{color:var(--primary);font-weight:600;cursor:pointer;margin-left:4px}.auth-legal{font-size:12px;color:var(--text-tertiary);text-align:center;margin-top:16px;line-height:1.6}.auth-legal-link{color:var(--text-secondary);text-decoration:none;transition:color .15s}.auth-legal-link:hover{color:var(--primary)}.toggle-link:hover{text-decoration:underline}.app-container{height:100dvh;display:flex;overflow:hidden}.sidebar{width:300px;background:#0c0d16fa;display:flex;flex-direction:column;overflow:hidden;flex-shrink:0;border-right:1px solid rgba(255,255,255,.06)}.sidebar-header{padding:16px 20px;border-bottom:1px solid var(--divider);display:flex;align-items:center;justify-content:space-between}.user-info{display:flex;align-items:center;gap:10px}.user-avatar{width:40px;height:40px;border-radius:50%;overflow:hidden;background:linear-gradient(135deg,var(--primary),#5856d6);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:17px;box-shadow:0 2px 8px #007aff59;flex-shrink:0}.user-name{font-weight:600;color:var(--text-primary);font-size:15px}.header-actions{display:flex;gap:6px}.btn-icon{width:34px;height:34px;border:none;background:var(--glass-input);border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:var(--t);color:var(--text-secondary)}.btn-icon:hover{background:#ffffff24;color:var(--text-primary);transform:scale(1.08)}.new-chat-form{padding:12px 16px;display:flex;gap:8px;border-bottom:1px solid var(--divider)}.new-chat-input{flex:1;padding:10px 14px;background:var(--glass-input);border:1px solid var(--glass-border);border-radius:var(--radius-sm);font-size:14px;color:var(--text-primary);outline:none;transition:var(--t)}.new-chat-input::placeholder{color:var(--text-tertiary)}.new-chat-input:focus{background:#ffffff24;border-color:var(--primary);box-shadow:0 0 0 3px #007aff26}.new-chat-form .btn-primary{width:42px;height:42px;padding:0;flex-shrink:0;border-radius:var(--radius-sm);min-width:unset}.new-chat-input.input-error,.form-input.input-error{border-color:var(--danger);box-shadow:0 0 0 3px #ff3b3026}.search-error{padding:4px 16px 8px;font-size:12px;color:var(--danger)}.chats-list{flex:1;overflow-y:auto;padding:6px}.chat-item{padding:12px;border-radius:var(--radius-sm);cursor:pointer;transition:var(--t-fast);display:flex;align-items:center;gap:12px;position:relative}.chat-item:hover{background:var(--glass-hover)}.chat-item.active{background:var(--glass-active)}.chat-avatar{width:46px;height:46px;border-radius:50%;overflow:hidden;background:linear-gradient(135deg,var(--primary),#5856d6);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:17px;flex-shrink:0;box-shadow:0 2px 8px #007aff40}.chat-info{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:center}.chat-name-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:3px}.chat-name{font-size:15px;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-time{font-size:11px;color:var(--text-secondary);white-space:nowrap;flex-shrink:0}.chat-preview-row{display:flex;justify-content:space-between;align-items:center;gap:8px}.chat-last-msg{font-size:13px;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}.unread-badge{background:var(--accent);color:#fff;font-size:11px;font-weight:700;min-width:20px;height:20px;border-radius:10px;display:flex;align-items:center;justify-content:center;padding:0 5px;box-shadow:0 2px 6px #00d4ff59;flex-shrink:0}.btn-icon-danger{background:none;border:none;cursor:pointer;padding:6px;border-radius:50%;transition:var(--t-fast);color:var(--text-secondary);opacity:0;position:absolute;right:8px;top:50%;transform:translateY(-50%)}.chat-item:hover .btn-icon-danger{opacity:1}.btn-icon-danger:hover{background:#ff3b3026;color:var(--danger)}.chat-window{flex:1;background:#10111bfa;display:flex;flex-direction:column;overflow:hidden;position:relative}.chat-header{padding:14px 20px;border-bottom:1px solid var(--divider);display:flex;align-items:center;justify-content:space-between;background:#ffffff0a;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);flex-shrink:0}.chat-header-info{display:flex;align-items:center;gap:12px;flex:1;min-width:0}.chat-partner-name{font-size:16px;font-weight:600;color:var(--text-primary);margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-status{font-size:12px}.status-online{color:var(--success);font-weight:500}.status-offline{color:var(--text-secondary)}.pinned-bar-container{display:flex;justify-content:space-between;align-items:center;background:#ffffff0a;padding:10px 20px;border-bottom:1px solid var(--divider);cursor:pointer;transition:var(--t-fast);flex-shrink:0}.pinned-bar-container:hover{background:#ffffff12}.pinned-bar-content{display:flex;align-items:center;flex:1;overflow:hidden}.pinned-bar-line{width:3px;height:36px;background:var(--primary);margin-right:12px;border-radius:2px;flex-shrink:0}.pinned-info{display:flex;flex-direction:column;overflow:hidden}.pinned-label{font-size:11px;color:var(--primary);font-weight:600;margin-bottom:2px}.pinned-text{font-size:13px;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pinned-actions{display:flex;align-items:center;gap:4px;margin-left:10px}.btn-pin-nav,.btn-pin-close{background:var(--glass-input);border:1px solid var(--glass-border);color:var(--text-secondary);border-radius:6px;width:28px;height:28px;cursor:pointer;transition:var(--t-fast);display:flex;align-items:center;justify-content:center;padding:0}.btn-pin-nav:hover{background:#ffffff1f;color:var(--text-primary)}.btn-pin-close:hover{background:#ff3b3026;color:var(--danger);border-color:transparent}.chat-header-actions{display:flex;align-items:center;gap:6px}.messages-container{flex:1;overflow-y:auto;padding:16px 16px 8px;display:flex;flex-direction:column;gap:2px;position:relative;overflow-anchor:none}.scroll-to-bottom-btn{position:absolute;bottom:80px;right:16px;width:40px;height:40px;border-radius:50%;background:var(--surface);border:1px solid var(--glass-border);color:var(--text-primary);cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-sm);transition:var(--t-fast);z-index:10;animation:fadeInUp .2s ease}.scroll-to-bottom-btn:hover{transform:scale(1.08)}@keyframes fadeInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.date-separator-container{display:flex;align-items:center;justify-content:center;margin:14px 0 8px}.date-separator-badge{background:#ffffff1a;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--glass-border);color:var(--text-secondary);font-size:12px;font-weight:500;padding:4px 14px;border-radius:20px}.message{display:flex;margin-bottom:4px;width:100%;cursor:default}.message-outgoing{justify-content:flex-end;padding-left:60px;padding-right:12px}.message-incoming{justify-content:flex-start;padding-right:60px;padding-left:12px}.message-bubble{padding:8px 12px;border-radius:18px;position:relative;word-break:break-word;max-width:100%}.message-outgoing .message-bubble{background:var(--bubble-out);border-bottom-right-radius:4px;color:#fff}.message-incoming .message-bubble{background:var(--bubble-in);border:1px solid var(--glass-border);border-bottom-left-radius:4px;color:var(--text-primary)}.forwarded-label{font-size:11px;font-style:italic;margin-bottom:5px;opacity:.65}.reply-quote{background:#00000038;border-left:3px solid var(--primary);border-radius:6px;padding:5px 10px;margin-bottom:6px;cursor:pointer;transition:var(--t-fast)}.reply-quote:hover{background:#00000052}.reply-author{font-size:12px;color:var(--primary);font-weight:600;margin-bottom:2px}.reply-text{font-size:12px;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.attachment-item{margin-bottom:4px}.message-image{max-width:260px;border-radius:10px;display:block;cursor:pointer;transition:var(--t-fast)}.message-image:hover{opacity:.88}.message-video{width:100%;display:block;border-radius:10px}.video-note-container{width:160px;height:160px;border-radius:50%;overflow:hidden;cursor:pointer}.video-circle{width:100%;height:100%;object-fit:cover}.file-link{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;background:#0003;border-radius:10px;color:var(--text-primary);text-decoration:none;font-size:13px;transition:var(--t-fast)}.file-link:hover{background:#0000004d}.message-meta{display:flex;align-items:center;gap:4px;justify-content:flex-end;margin-top:3px}.message-time{font-size:10px;opacity:.55}.edited-label{font-size:10px;opacity:.5}.typing-indicator{font-size:13px;color:var(--text-secondary);padding:2px 12px 6px;font-style:italic}.attachment-image{max-width:260px;border-radius:10px;overflow:hidden;cursor:pointer;margin-bottom:4px}.attachment-image img{width:100%;display:block;transition:var(--t-fast)}.attachment-image:hover img{opacity:.88}.attachment-video{max-width:260px;border-radius:10px;overflow:hidden;position:relative;cursor:pointer;background:#0000004d;margin-bottom:4px}.attachment-video video{width:100%;display:block}.attachment-video-play{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#00000059}.attachment-video-note{width:160px;height:160px;border-radius:50%;overflow:hidden;cursor:pointer;margin-bottom:4px;position:relative}.attachment-video-note video{width:100%;height:100%;object-fit:cover}.attachment-audio{display:flex;align-items:center;gap:8px;padding:6px 0;min-width:200px}.audio-play-btn{width:34px;height:34px;border-radius:50%;border:none;background:#ffffff2e;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:var(--t-fast)}.audio-play-btn:hover{background:#ffffff47;transform:scale(1.05)}.audio-track{flex:1}.audio-progress{width:100%;height:3px;background:#ffffff40;border-radius:2px;overflow:hidden;margin-bottom:4px}.audio-progress-fill{height:100%;background:#fff;border-radius:2px}.audio-time{font-size:10px;opacity:.55}.attachment-file{display:flex;align-items:center;gap:8px;padding:8px 12px;background:#0000002e;border-radius:10px;cursor:pointer;transition:var(--t-fast);max-width:240px}.attachment-file:hover{background:#00000042}.attachment-file-name{font-size:13px;color:var(--text-primary);text-decoration:underline;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pending-files{display:flex;gap:8px;padding:10px 16px;border-top:1px solid var(--divider);overflow-x:auto;background:#ffffff08}.pending-file-thumb{width:60px;height:60px;border-radius:8px;object-fit:cover;flex-shrink:0;border:1px solid var(--glass-border)}.pending-file-item{position:relative;flex-shrink:0}.pending-file-remove{position:absolute;top:-5px;right:-5px;width:18px;height:18px;background:var(--danger);border:none;border-radius:50%;color:#fff;font-size:11px;cursor:pointer;display:flex;align-items:center;justify-content:center}.input-context-bar{display:flex;align-items:center;gap:10px;padding:10px 16px;border-top:1px solid var(--divider);background:#ffffff08}.context-info{flex:1;min-width:0;font-size:13px;color:var(--primary);font-weight:500}.context-preview{font-size:12px;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}.btn-close-context{background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:4px;border-radius:6px;transition:var(--t-fast);display:flex;align-items:center}.btn-close-context:hover{color:var(--text-primary);background:var(--glass-input)}.recording-ui{display:flex;align-items:center;gap:12px;flex:1}.recording-timer{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:var(--text-primary)}.recording-dot{width:10px;height:10px;background:var(--danger);border-radius:50%;flex-shrink:0;animation:blink .9s ease-in-out infinite alternate}@keyframes blink{0%{opacity:1}to{opacity:.15}}.video-preview-circle{width:52px;height:52px;border-radius:50%;object-fit:cover;border:2px solid var(--danger)}.btn-cancel-rec{background:var(--glass-input);border:1px solid var(--glass-border);color:var(--text-secondary);border-radius:var(--radius-sm);padding:6px 14px;font-size:13px;cursor:pointer;transition:var(--t-fast)}.btn-cancel-rec:hover{color:var(--text-primary);background:#ffffff24}.btn-send-rec{width:36px;height:36px;border-radius:50%;background:var(--primary);border:none;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:var(--t-fast);box-shadow:0 3px 10px #007aff59;flex-shrink:0}.btn-send-rec:hover{transform:scale(1.08)}.chat-footer{border-top:1px solid var(--divider);background:#ffffff05;flex-shrink:0}.message-input-container{padding:10px 12px;display:flex;align-items:center;gap:8px}.message-input-wrapper{flex:1;display:flex;align-items:center;gap:6px;background:var(--glass-input);border:1px solid var(--glass-border);border-radius:24px;padding:4px 4px 4px 14px;transition:var(--t)}.message-input-wrapper:focus-within{border-color:var(--primary);background:#ffffff1f;box-shadow:0 0 0 3px #007aff1f}.btn-attachment{color:var(--text-secondary);cursor:pointer;padding:6px;border-radius:50%;transition:var(--t-fast);display:flex;align-items:center;flex-shrink:0}.btn-attachment:hover{color:var(--text-primary);background:#ffffff1a}.file-input{display:none}.message-input{flex:1;min-height:32px;max-height:100px;padding:6px 0;background:transparent;border:none;font-size:15px;color:var(--text-primary);outline:none;resize:none;font-family:inherit;line-height:1.4}.message-input::placeholder{color:var(--text-tertiary)}.media-buttons{display:flex;align-items:center;gap:2px;flex-shrink:0}.media-buttons .btn-icon{width:32px;height:32px}.btn-send{width:40px;height:40px;border-radius:50%;background:var(--primary);border:none;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:var(--t);flex-shrink:0;box-shadow:0 4px 12px #007aff59}.btn-send:hover{background:var(--primary-hover);transform:scale(1.07)}.btn-send:active{transform:scale(.96)}.btn-send:disabled{opacity:.4;cursor:not-allowed;transform:none}.files-preview-list{display:flex;gap:8px;padding:8px 16px;overflow-x:auto;border-top:1px solid var(--divider)}.files-preview-list:empty{display:none}.file-preview-item{position:relative;flex-shrink:0;width:70px}.file-preview-thumb{width:70px;height:70px;border-radius:8px;object-fit:cover;border:1px solid var(--glass-border)}.file-preview-icon{width:70px;height:70px;border-radius:8px;background:var(--glass-input);border:1px solid var(--glass-border);display:flex;align-items:center;justify-content:center;color:var(--text-secondary)}.file-preview-info{margin-top:3px}.file-preview-name{font-size:10px;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.btn-remove-file{position:absolute;top:-5px;right:-5px;width:18px;height:18px;background:var(--danger);border:none;border-radius:50%;color:#fff;font-size:10px;cursor:pointer;display:flex;align-items:center;justify-content:center}.empty-chat{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:12px}.empty-icon{opacity:.25}.empty-text{font-size:18px;font-weight:600;color:var(--text-primary);opacity:.7}.empty-subtext{font-size:14px;color:var(--text-secondary)}.modal-overlay{position:fixed;inset:0;background:#0000008c;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background:var(--surface);-webkit-backdrop-filter:blur(40px) saturate(160%);backdrop-filter:blur(40px) saturate(160%);border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:28px;max-width:480px;width:90%;box-shadow:var(--shadow-lg);animation:modalSlide .25s ease}@keyframes modalSlide{0%{opacity:0;transform:translateY(-16px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-title{font-size:20px;font-weight:700;color:var(--text-primary);margin-bottom:20px}.form-group{margin-bottom:16px}.form-label{display:block;font-size:13px;font-weight:600;color:var(--text-secondary);margin-bottom:6px;text-transform:uppercase;letter-spacing:.5px}.form-input{width:100%;padding:12px 14px;background:var(--glass-input);border:1px solid var(--glass-border);border-radius:var(--radius-sm);font-size:14px;color:var(--text-primary);outline:none;transition:var(--t)}.form-input::placeholder{color:var(--text-tertiary)}.form-input:focus{background:#ffffff24;border-color:var(--primary);box-shadow:0 0 0 3px #007aff26}.form-label-hint{font-weight:400;text-transform:none;letter-spacing:0;color:var(--text-tertiary);font-size:12px}.form-input-prefix-wrap{position:relative;display:flex;align-items:center}.form-input-prefix{position:absolute;left:14px;font-size:15px;color:var(--text-secondary);pointer-events:none;-webkit-user-select:none;user-select:none}.form-input-prefixed{padding-left:26px}.form-hint{display:block;font-size:12px;color:var(--text-tertiary);margin-top:5px}.form-error{display:block;font-size:12px;color:var(--danger);margin-top:5px}.input-error{border-color:var(--danger)!important}.input-ok{border-color:#4ade80!important}.new-chat-input-wrap{flex:1;position:relative;display:flex;align-items:center}.new-chat-search-icon{position:absolute;left:12px;color:var(--text-tertiary);pointer-events:none;flex-shrink:0}.new-chat-input-wrap .new-chat-input{width:100%;padding-left:34px;padding-right:28px}.new-chat-clear{position:absolute;right:8px;background:none;border:none;color:var(--text-tertiary);cursor:pointer;display:flex;align-items:center;padding:2px;border-radius:50%;transition:var(--t-fast)}.new-chat-clear:hover{color:var(--text-primary)}.search-preview{padding:0 16px 10px;border-bottom:1px solid var(--divider)}.search-preview-hint{font-size:12px;color:var(--text-tertiary);padding:4px 0;display:block}.search-preview-error{color:var(--danger)}.search-preview-user{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:var(--radius-sm);cursor:pointer;transition:var(--t-fast);border:1px solid var(--glass-border);background:var(--glass-input)}.search-preview-user:hover{background:#ffffff1a;border-color:var(--primary)}.search-preview-avatar{width:36px;height:36px;border-radius:50%;background:var(--primary);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:15px;flex-shrink:0;overflow:hidden}.search-preview-avatar img{width:100%;height:100%;object-fit:cover}.search-preview-info{display:flex;flex-direction:column;gap:2px;min-width:0}.search-preview-name{font-size:14px;font-weight:600;color:var(--text-primary)}.search-preview-email{font-size:12px;color:var(--text-tertiary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.modal-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:20px}.forward-list{max-height:360px;overflow-y:auto;margin-top:12px;display:flex;flex-direction:column;gap:4px}.forward-item{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:var(--radius-sm);cursor:pointer;transition:var(--t-fast)}.forward-item:hover{background:var(--glass-active)}.context-menu{position:fixed;background:var(--surface);-webkit-backdrop-filter:blur(40px) saturate(160%);backdrop-filter:blur(40px) saturate(160%);border:1px solid var(--glass-border);border-radius:var(--radius-sm);padding:6px;min-width:190px;box-shadow:var(--shadow-lg);z-index:1000;animation:contextSlide .15s ease forwards}.context-menu-closing{animation:contextSlideOut .12s ease forwards!important}@keyframes contextSlide{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes contextSlideOut{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.95)}}.context-menu>div{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:8px;cursor:pointer;font-size:14px;font-weight:500;color:var(--text-primary);transition:var(--t-fast)}.context-menu>div:hover{background:var(--glass-hover)}.context-menu>div.danger{color:var(--danger)}.context-menu>div.danger:hover{background:#ff3b301f}.context-menu hr{border:none;border-top:1px solid var(--divider);margin:4px 0}.media-overlay{position:fixed;inset:0;background:#000000f2;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);display:flex;align-items:center;justify-content:center;z-index:2000;animation:fadeIn .25s ease}.media-close-btn{position:absolute;top:20px;right:20px;width:44px;height:44px;border-radius:50%;background:#ffffff1f;border:1px solid rgba(255,255,255,.18);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:var(--t);z-index:10}.media-close-btn:hover{background:#ffffff38;transform:scale(1.08)}.media-content-image{max-width:90vw;max-height:90vh;border-radius:var(--radius-md);box-shadow:var(--shadow-lg);object-fit:contain}.custom-video-wrapper{position:relative;max-width:90vw;max-height:85vh;border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-lg)}.custom-video-element{width:100%;height:100%;display:block}.big-play-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#0000004d;cursor:pointer;color:#fff;transition:var(--t)}.custom-video-wrapper.playing .big-play-overlay{opacity:0;pointer-events:none}.video-controls{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(to top,rgba(0,0,0,.8),transparent);padding:20px 16px 16px;display:flex;align-items:center;gap:10px}.play-btn{width:36px;height:36px;border-radius:50%;background:#fff3;border:none;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:var(--t-fast)}.play-btn:hover{background:#ffffff52;transform:scale(1.08)}.progress-bar-container{flex:1;height:4px;background:#ffffff40;border-radius:2px;cursor:pointer;overflow:hidden}.progress-bar-fill{height:100%;background:var(--primary);border-radius:2px;transition:width .1s linear}.time-display{color:#fff;font-size:12px;font-weight:500;min-width:75px;text-align:center}.settings-modal{background:var(--surface);-webkit-backdrop-filter:blur(40px) saturate(160%);backdrop-filter:blur(40px) saturate(160%);border:1px solid var(--glass-border);border-radius:var(--radius-xl);padding:32px;max-width:400px;width:90%;box-shadow:var(--shadow-lg);animation:modalSlide .25s ease}.settings-avatar{width:72px;height:72px;border-radius:50%;background:linear-gradient(135deg,var(--primary),#5856d6);color:#fff;display:flex;align-items:center;justify-content:center;font-size:30px;font-weight:700;margin:0 auto 12px;box-shadow:0 4px 16px #007aff66}.settings-email{text-align:center;color:var(--text-secondary);font-size:13px;margin-bottom:24px}.message-text{font-size:15px;line-height:1.45;word-break:break-word}.typing-indicator{font-size:13px;color:var(--text-secondary);padding:4px 14px 8px;font-style:italic}@media(max-width:768px){.app-container{padding:0;gap:0}.sidebar{width:100%;border:none;position:absolute;inset:0;z-index:1;transition:transform .3s cubic-bezier(.4,0,.2,1)}.sidebar.chat-open{transform:translate(-100%);pointer-events:none}.chat-window{position:absolute;inset:0;border-radius:0;border:none;transform:translate(100%);transition:transform .3s cubic-bezier(.4,0,.2,1);pointer-events:none}.chat-window.chat-open{transform:translate(0);pointer-events:all}.message-wrapper{max-width:85%}.back-button{display:flex;align-items:center;gap:6px;background:none;border:none;color:var(--primary);font-size:15px;font-weight:600;cursor:pointer;padding:4px 0;margin-right:8px}.chat-header,.sidebar-header{padding-top:calc(14px + env(safe-area-inset-top))}.chat-footer{padding-bottom:calc(10px + env(safe-area-inset-bottom))}}@media(min-width:769px){.back-button{display:none}}@media(max-width:480px){.auth-box{padding:32px 24px}.message-wrapper{max-width:90%}}.audio-player{display:flex;align-items:center;gap:10px;padding:6px 4px;min-width:220px;max-width:280px}.ap-play{width:38px;height:38px;border-radius:50%;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:var(--t-fast)}.audio-out .ap-play{background:#ffffff38;color:#fff}.audio-out .ap-play:hover{background:#ffffff57}.audio-in .ap-play{background:var(--primary);color:#fff;box-shadow:0 2px 8px #007aff59}.audio-in .ap-play:hover{background:var(--primary-hover)}.ap-body{flex:1;display:flex;flex-direction:column;gap:4px;min-width:0}.ap-waveform{display:flex;align-items:flex-end;gap:2px;height:28px;cursor:pointer;padding:0 2px}.ap-bar{width:3px;border-radius:2px;background:#ffffff38;transition:background .1s;flex-shrink:0}.audio-out .ap-bar{background:#ffffff40}.audio-out .ap-bar.ap-bar-filled{background:#ffffffd9}.audio-in .ap-bar{background:#ffffff2e}.audio-in .ap-bar.ap-bar-filled{background:var(--primary)}.ap-time{font-size:11px;font-weight:500;opacity:.55;padding-left:2px}.video-note-msg{position:relative;width:140px;height:140px;border-radius:50%;overflow:hidden;cursor:pointer;flex-shrink:0}.video-note-msg .video-circle{width:100%;height:100%;object-fit:cover;display:block}.video-note-play-hint{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#00000040;color:#fff;opacity:0;transition:opacity .2s;border-radius:50%}.video-note-msg:hover .video-note-play-hint{opacity:1}.video-note-expanded-overlay{position:absolute;inset:0;z-index:20;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#0000008c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);cursor:pointer}.video-note-expanded-video{width:min(85%,400px);aspect-ratio:1 / 1;border-radius:50%;object-fit:cover;cursor:default;box-shadow:0 8px 48px #000000b3;border:3px solid rgba(255,255,255,.15)}.video-note-expanded-hint{margin-top:16px;font-size:12px;color:#ffffff73;pointer-events:none}.video-rec-overlay{position:absolute;inset:0;z-index:15;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;pointer-events:none}.video-rec-circle-wrap{width:min(80%,340px);aspect-ratio:1 / 1;border-radius:50%;overflow:hidden;border:3px solid var(--danger);box-shadow:0 0 0 6px #ff3b302e,0 8px 40px #0009}.video-rec-preview{width:100%;height:100%;object-fit:cover;display:block;transform:scaleX(-1)}.video-rec-timer-badge{display:flex;align-items:center;gap:8px;background:#0000008c;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.12);border-radius:20px;padding:6px 16px;font-size:14px;font-weight:600;color:#fff}.video-rec-flip-btn{pointer-events:all;display:flex;align-items:center;gap:6px;padding:6px 14px;border-radius:var(--radius-sm);border:1px solid var(--glass-border);background:var(--glass-input);color:var(--text-secondary);font-size:13px;cursor:pointer;transition:var(--t-fast);z-index:10}.video-rec-flip-btn:hover{color:var(--text-primary);background:#ffffff24}.video-rec-flip-btn:active{transform:scale(.95)}.btn-rec-tg{width:34px;height:34px;border-radius:50%;border:none;background:transparent;color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:var(--t-fast);flex-shrink:0;user-select:none;-webkit-user-select:none}.btn-rec-tg:hover{color:var(--primary);background:#007aff1a}.btn-rec-tg-video{color:var(--accent)}.btn-rec-tg-video:hover{color:var(--accent);background:#00d4ff1a}.message-video-container{position:relative;max-width:260px;border-radius:10px;overflow:hidden;cursor:pointer}.message-video-container .message-video{width:100%;display:block;border-radius:10px}.video-play-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#0000004d;color:#fff;border-radius:10px;transition:opacity .2s;pointer-events:none}.message-video-container:hover .video-play-overlay{background:#00000073}.chat-header{background:#0c0d1600;border-bottom:1px solid rgba(255,255,255,.05)}.sidebar-header{background:transparent;border-bottom:1px solid rgba(255,255,255,.05)}.chat-footer{background:transparent;border-top:1px solid rgba(255,255,255,.05)}.new-chat-form{border-bottom-color:#ffffff0d}.pinned-bar-container{background:#007aff0d;border-bottom:1px solid rgba(255,255,255,.05)}.input-context-bar{border-top-color:#ffffff0d;background:transparent}@media(max-width:768px){.sidebar{border-right:none}}.msg-status{display:inline-flex;align-items:center;color:#ffffff73;flex-shrink:0;line-height:1}.msg-status.read{color:#ffffffe6}.settings-modal-card{background:#10111bfa;border:1px solid var(--glass-border);border-radius:var(--radius-xl);padding:32px;max-width:400px;width:90%;box-shadow:var(--shadow-lg);animation:modalSlide .25s ease;position:relative}.settings-close-btn{position:absolute;top:16px;right:16px;background:var(--glass-input);border:1px solid var(--glass-border);border-radius:50%;width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text-secondary);transition:var(--t-fast)}.settings-close-btn:hover{color:var(--text-primary)}.settings-avatar-wrap{display:flex;flex-direction:column;align-items:center;gap:8px;margin-bottom:24px}.settings-avatar-circle{width:88px;height:88px;border-radius:50%;background:linear-gradient(135deg,var(--primary),#5856d6);display:flex;align-items:center;justify-content:center;cursor:pointer;position:relative;overflow:hidden;box-shadow:0 4px 20px #007aff59;transition:var(--t-fast)}.settings-avatar-circle:hover .settings-avatar-overlay{opacity:1}.settings-avatar-img{width:100%;height:100%;object-fit:cover}.settings-avatar-letter{font-size:36px;font-weight:700;color:#fff}.settings-avatar-overlay{position:absolute;inset:0;background:#00000073;display:flex;align-items:center;justify-content:center;color:#fff;opacity:0;transition:opacity .2s}.settings-avatar-hint{font-size:12px;color:var(--text-tertiary)}.settings-form{display:flex;flex-direction:column;gap:4px}.settings-email-warning{background:#ff950014;border:1px solid rgba(255,149,0,.3);border-radius:var(--radius-sm);padding:14px 16px;display:flex;flex-direction:column;gap:10px;margin-bottom:8px}.settings-warning-header{display:flex;align-items:center;gap:8px;font-weight:600;font-size:13px;color:#f59e0b}.settings-warning-text{font-size:13px;color:var(--text-secondary);line-height:1.5;margin:0}.settings-link-form{display:flex;flex-direction:column;gap:8px}.settings-link-form .form-input{font-size:13px;padding:9px 12px}.settings-link-form .btn{padding:9px 14px;font-size:13px}.form-error{font-size:12px;color:var(--danger)}.settings-email-success{background:#34c7591a;border:1px solid rgba(52,199,89,.3);border-radius:var(--radius-sm);padding:12px 16px;font-size:13px;color:#4ade80;margin-bottom:8px}.form-textarea{resize:none;min-height:72px;line-height:1.5}.form-char-count{font-size:11px;color:var(--text-tertiary);text-align:right;margin-top:2px}.partner-profile-overlay{position:absolute;inset:0;z-index:25;display:flex;align-items:flex-start;justify-content:flex-end;padding:60px 12px 0;pointer-events:all}.partner-profile-card{background:#0e0f1afa;border:1px solid var(--glass-border);border-radius:var(--radius-xl);padding:24px 20px 20px;width:260px;box-shadow:var(--shadow-lg);animation:contextSlide .15s ease;display:flex;flex-direction:column;align-items:center;gap:8px;position:relative}.partner-profile-close{position:absolute;top:10px;right:10px;background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:4px;border-radius:6px;display:flex;align-items:center;transition:var(--t-fast)}.partner-profile-close:hover{color:var(--text-primary)}.partner-profile-avatar{width:72px;height:72px;border-radius:50%;background:linear-gradient(135deg,var(--primary),#5856d6);display:flex;align-items:center;justify-content:center;overflow:hidden;font-size:28px;font-weight:700;color:#fff;box-shadow:0 4px 16px #007aff59;flex-shrink:0}.partner-profile-img{width:100%;height:100%;object-fit:cover}.partner-profile-name{font-size:16px;font-weight:700;color:var(--text-primary);text-align:center}.partner-profile-bio{font-size:13px;color:var(--text-secondary);text-align:center;line-height:1.45;word-break:break-word}.partner-profile-status{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-secondary);margin-top:4px}.chat-header-avatar{width:38px;height:38px;border-radius:50%;overflow:hidden;flex-shrink:0;background:linear-gradient(135deg,var(--primary),#5856d6);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:15px;cursor:pointer;transition:var(--t-fast)}.chat-header-avatar:hover{opacity:.85}.group-msg-sender{font-size:12px;font-weight:600;color:var(--accent);margin-bottom:3px;opacity:.85}.message-outgoing .group-msg-sender{display:none}.group-create-modal,.group-settings-modal{max-width:440px;width:92%;max-height:80vh;overflow-y:auto}.modal-header-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.group-members-list{display:flex;flex-direction:column;gap:4px;max-height:240px;overflow-y:auto;margin-top:4px}.group-member-row{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:var(--radius-sm);transition:var(--t-fast)}.group-member-row:hover{background:var(--glass-hover)}.group-member-avatar{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,var(--primary),#5856d6);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;flex-shrink:0;overflow:hidden}.group-member-name{font-size:14px;font-weight:500;color:var(--text-primary);flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.group-member-role{font-size:11px;color:var(--primary);font-weight:500}.group-member-remove{background:none;border:none;color:var(--danger);cursor:pointer;padding:4px;border-radius:6px;display:flex;align-items:center;opacity:.6;transition:var(--t-fast);flex-shrink:0}.group-member-remove:hover{opacity:1}.group-member-action{background:none;border:none;color:var(--warning);cursor:pointer;padding:4px;border-radius:6px;display:flex;align-items:center;opacity:.6;transition:var(--t-fast);flex-shrink:0}.group-member-action:hover{opacity:1}.call-overlay{position:fixed;inset:0;z-index:2000;display:flex;align-items:center;justify-content:center;background:#000000b3;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.call-modal{background:var(--bg-secondary);border-radius:24px;padding:36px 28px 28px;width:300px;display:flex;flex-direction:column;align-items:center;gap:18px;box-shadow:0 24px 80px #0009;position:relative}.call-modal-video{width:420px;padding:0;border-radius:20px;overflow:hidden;background:#000}.call-video-container{position:relative;width:100%;min-height:280px;background:#111}.call-remote-video{width:100%;height:320px;object-fit:cover;display:block}.call-local-video{position:absolute;bottom:10px;right:10px;width:88px;height:116px;object-fit:cover;border-radius:10px;border:2px solid rgba(255,255,255,.25);background:#222}.call-info{display:flex;flex-direction:column;align-items:center;gap:8px;width:100%}.call-info-overlay{position:absolute;bottom:64px;left:0;right:0;padding:10px 16px;background:linear-gradient(transparent,#0000008c)}.call-avatar{width:86px;height:86px;border-radius:50%;background:linear-gradient(135deg,var(--primary),#5856d6);display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;flex-shrink:0}.call-avatar-img{width:100%;height:100%;object-fit:cover;border-radius:50%}.call-avatar-letter{font-size:34px;font-weight:700;color:#fff}.call-pulse-ring{position:absolute;inset:-8px;border-radius:50%;border:3px solid var(--primary);animation:callPulse 1.8s ease-out infinite;pointer-events:none}@keyframes callPulse{0%{opacity:.7;transform:scale(1)}to{opacity:0;transform:scale(1.4)}}.call-name{font-size:19px;font-weight:600;color:var(--text-primary)}.call-info-overlay .call-name{color:#fff}.call-status{font-size:13px}.call-status-incoming{color:var(--primary);font-weight:500}.call-status-ringing{color:var(--text-secondary);animation:callBlink 1.2s ease-in-out infinite}.call-status-active{color:#4ade80;font-weight:600;font-variant-numeric:tabular-nums}.call-info-overlay .call-status-active,.call-info-overlay .call-status-ringing{color:#fffc}@keyframes callBlink{0%,to{opacity:1}50%{opacity:.35}}.call-controls{display:flex;align-items:center;justify-content:center;gap:18px;width:100%;padding:4px 0}.call-modal-video .call-controls{position:absolute;bottom:0;left:0;right:0;padding:14px 16px;background:linear-gradient(transparent,#000000a6)}.call-btn{width:58px;height:58px;border-radius:50%;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#fff;flex-shrink:0;transition:transform .12s,opacity .12s}.call-btn:hover{transform:scale(1.07)}.call-btn:active{transform:scale(.94)}.call-btn-accept{background:#22c55e}.call-btn-decline,.call-btn-hangup{background:#ef4444}.call-btn-mute,.call-btn-camera{background:#ffffff2e;width:48px;height:48px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.call-btn-toggled{background:#ef444473}.call-toast{position:fixed;top:20px;bottom:auto;left:50%;transform:translate(-50%) translateY(-20px);opacity:0;z-index:3000;display:flex;align-items:center;gap:12px;padding:14px 20px;border-radius:16px;min-width:220px;max-width:340px;box-shadow:0 8px 32px #00000059;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);transition:opacity .3s ease,transform .3s ease;background:#282832eb;border:1px solid rgba(255,255,255,.08)}.call-toast.call-toast-visible{opacity:1;transform:translate(-50%) translateY(0)}.call-toast-red .call-toast-icon{color:#f87171}.call-toast-green .call-toast-icon{color:#4ade80}.call-toast-neutral .call-toast-icon{color:#94a3b8}.call-toast-icon{display:flex;align-items:center;flex-shrink:0}.call-toast-body{display:flex;flex-direction:column;gap:2px;min-width:0}.call-toast-title{font-size:14px;font-weight:600;color:#f1f5f9;white-space:nowrap}.call-toast-sub{font-size:12px;color:#94a3b8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.context-menu-reactions{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;padding:6px 6px 4px;border-bottom:1px solid rgba(255,255,255,.08)}.context-menu-emoji-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:2px;padding:0 6px 6px;border-bottom:1px solid rgba(255,255,255,.08);animation:picker-grid-in .15s ease forwards}.ctx-emoji-btn{background:none;border:none;cursor:pointer;font-size:20px;line-height:1;padding:4px;border-radius:8px;transition:transform .12s ease,background .12s ease;display:flex;align-items:center;justify-content:center;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.ctx-emoji-btn:hover{transform:scale(1.3);background:#ffffff1a}.ctx-emoji-btn:active{transform:scale(1.05)}.ctx-emoji-more{font-size:14px;font-weight:700;color:#ffffff8c;width:30px;height:30px;border-radius:50%;background:#ffffff14;flex-shrink:0}.ctx-emoji-more:hover{background:#ffffff29;color:#fff;transform:scale(1.1)}.context-menu-divider{height:1px;background:#ffffff14;margin:2px 0 4px}@keyframes picker-grid-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.message-reactions{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.message-bubble.own .message-reactions,.reactions-own{justify-content:flex-end}.reaction-chip{display:inline-flex;align-items:center;gap:3px;background:#ffffff1a;border:1px solid rgba(255,255,255,.14);border-radius:999px;padding:2px 7px 2px 5px;cursor:pointer;font-size:13px;line-height:1;color:var(--text-secondary);transition:background .15s ease,border-color .15s ease,transform .12s ease;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.reaction-chip:hover{background:#ffffff2b;transform:scale(1.08)}.reaction-chip:active{transform:scale(.96)}.reaction-chip.reacted{background:#007aff40;border-color:#007aff8c;color:#fff}.reaction-emoji{font-size:15px;line-height:1}.reaction-avatars{display:flex;align-items:center}.reaction-avatar{width:16px;height:16px;border-radius:50%;overflow:hidden;border:1px solid rgba(255,255,255,.18);background:linear-gradient(135deg,var(--primary),#5856d6);display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-left:-4px;position:relative}.reaction-avatars .reaction-avatar:first-child{margin-left:0}.reaction-avatar img{width:100%;height:100%;object-fit:cover;display:block}.reaction-avatar-letter{font-size:8px;font-weight:700;color:#fff;line-height:1}.reaction-count{font-size:12px;font-weight:600;min-width:9px;color:inherit}@keyframes chip-pop{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}.message.group-incoming{align-items:flex-end;gap:6px}.group-msg-avatar-col{flex-shrink:0;width:28px;display:flex;flex-direction:column;justify-content:flex-end}.group-msg-avatar{width:28px;height:28px;border-radius:50%;overflow:hidden;background:linear-gradient(135deg,var(--primary),#5856d6);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:#fff;cursor:pointer;flex-shrink:0;transition:opacity .15s;border:1.5px solid rgba(255,255,255,.1)}.group-msg-avatar:hover{opacity:.82}.group-msg-avatar img{width:100%;height:100%;object-fit:cover;display:block}.group-msg-avatar-spacer{width:28px;height:28px}.group-msg-content-col{display:flex;flex-direction:column;align-items:flex-start;min-width:0}.group-msg-sender-name{font-size:12px;font-weight:600;color:var(--accent);margin-bottom:3px;margin-left:2px;cursor:pointer;display:inline-flex;align-items:center;gap:3px;opacity:.9;transition:opacity .15s}.group-msg-sender-name:hover{opacity:1;text-decoration:underline}.group-msg-sender{display:none}.admin-badge-panel{margin-top:14px;width:100%;border-top:1px solid var(--divider);padding-top:12px;display:flex;flex-direction:column;gap:8px}.admin-badge-label{font-size:11px;font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.06em;text-align:center}.admin-badge-row{display:flex;gap:6px;justify-content:center;width:100%}.admin-badge-btn{flex:1;min-width:0;padding:6px 4px;border-radius:var(--radius-sm);border:1px solid var(--glass-border);background:var(--glass-input);color:var(--text-secondary);font-size:11px;font-weight:600;cursor:pointer;transition:var(--t-fast);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.admin-badge-btn:hover{background:#ffffff24;color:var(--text-primary)}.admin-badge-btn.active{background:#007aff38;border-color:#007aff8c;color:var(--primary)}.admin-badge-btn.active:hover{background:#007aff52}.context-menu-backdrop{position:fixed;inset:0;z-index:999}.dev-page{min-height:100dvh;overflow-y:auto;padding:40px 20px 80px;background:#0d0e18}.dev-inner{max-width:880px;margin:0 auto}.dev-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:20px;flex-wrap:wrap}.dev-title{font-size:24px;font-weight:700;color:var(--text-primary);margin:0 0 4px;letter-spacing:-.4px}.dev-info-strip{display:flex;align-items:center;gap:8px;background:#007aff12;border:1px solid rgba(0,122,255,.18);border-radius:var(--radius-sm);padding:10px 14px;margin-bottom:28px}.dev-info-dot{width:7px;height:7px;border-radius:50%;background:var(--primary);flex-shrink:0}.dev-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(380px,1fr));gap:14px}.dev-card{background:var(--surface-variant);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:20px;display:flex;flex-direction:column;gap:14px;transition:border-color .2s}.dev-card:hover{border-color:#ffffff38}.dev-card-header{display:flex;align-items:center;gap:12px}.dev-app-logo{width:44px;height:44px;border-radius:11px;background:var(--glass-input);border:1px solid var(--glass-border);display:flex;align-items:center;justify-content:center;overflow:hidden;flex-shrink:0}.dev-app-logo img{width:100%;height:100%;object-fit:cover}.dev-app-logo span{font-size:18px;font-weight:700;color:var(--primary)}.dev-app-name{font-size:15px;font-weight:600;color:var(--text-primary);margin:0 0 3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dev-app-site{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:var(--text-tertiary);text-decoration:none}.dev-app-site:hover{color:var(--primary)}.dev-badge{font-size:11px;font-weight:600;padding:3px 8px;border-radius:20px;flex-shrink:0;letter-spacing:.03em}.dev-badge-public{background:#34c7591f;color:var(--success);border:1px solid rgba(52,199,89,.2)}.dev-badge-conf{background:#007aff1a;color:var(--primary);border:1px solid rgba(0,122,255,.2)}.dev-code-row{display:flex;align-items:center;gap:6px;background:var(--glass-input);border:1px solid var(--glass-border);border-radius:var(--radius-sm);padding:8px 10px}.dev-code{flex:1;min-width:0;font-family:SF Mono,Fira Code,monospace;font-size:12px;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dev-uri-chip{font-size:11px;font-family:SF Mono,Fira Code,monospace;background:var(--glass-input);border:1px solid var(--glass-border);border-radius:6px;padding:3px 8px;color:var(--text-secondary);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dev-card-footer{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;padding-top:6px;border-top:1px solid var(--divider)}.dev-icon-btn{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:8px;border:1px solid var(--glass-border);background:var(--glass-input);color:var(--text-tertiary);cursor:pointer;flex-shrink:0;transition:var(--t-fast)}.dev-icon-btn:hover{background:var(--glass-hover);color:var(--text-primary)}.dev-icon-btn-edit:hover{color:var(--primary);border-color:#007aff66}.dev-icon-btn-del:hover{color:var(--danger);border-color:#ff3b3066;background:#ff3b300f}.dev-action-sm{padding:6px 12px!important;font-size:12px!important}.dev-rotate-btn{color:var(--warning)!important;border-color:#ff950059!important;background:#ff950012!important}.dev-rotate-btn:hover{background:#ff950024!important;transform:translateY(-1px)}.dev-modal-overlay{position:fixed;inset:0;background:#0009;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.dev-modal-box{max-width:520px!important;max-height:90vh;overflow-y:auto;padding:28px 32px!important;animation:floatIn .25s ease}.dev-modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.dev-modal-title{font-size:18px;font-weight:700;color:var(--text-primary);margin:0}.dev-form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.dev-form-field{display:flex;flex-direction:column;gap:6px}.dev-field-label{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.06em}.dev-form-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:4px}.dev-checkbox{display:flex;align-items:flex-start;gap:10px;cursor:pointer;font-size:13px;color:var(--text-primary);line-height:1.5}.dev-checkbox input[type=checkbox]{accent-color:var(--primary);width:15px;height:15px;margin-top:2px;flex-shrink:0}.dev-tag-wrap{display:flex;flex-wrap:wrap;gap:6px;background:var(--glass-input);border:1px solid var(--glass-border);border-radius:var(--radius-sm);padding:8px 12px;min-height:44px;transition:var(--t-fast)}.dev-tag-wrap:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px #007aff2e}.dev-tag-pill{display:inline-flex;align-items:center;gap:5px;background:#007aff26;border:1px solid rgba(0,122,255,.3);border-radius:6px;padding:2px 7px 2px 9px;font-size:12px;font-family:SF Mono,Fira Code,monospace;color:var(--primary)}.dev-tag-pill button{display:flex;align-items:center;background:none;border:none;color:inherit;cursor:pointer;padding:0;opacity:.6}.dev-tag-pill button:hover{opacity:1}.dev-tag-inner{flex:1;min-width:160px;background:none;border:none;outline:none;font-size:14px;color:var(--text-primary);font-family:inherit;padding:0}.dev-tag-inner::placeholder{color:var(--text-tertiary)}.dev-center{display:flex;align-items:center;justify-content:center;min-height:200px;gap:12px}.dev-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:60px 20px;gap:12px}.dev-spinner{width:34px;height:34px;border:3px solid var(--glass-border);border-top-color:var(--primary);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.btn-danger{background:var(--danger);color:#fff;box-shadow:0 4px 14px #ff3b304d}.btn-danger:hover{opacity:.88;transform:translateY(-1px)}@media(max-width:540px){.dev-form-row,.dev-grid{grid-template-columns:1fr}.dev-modal-box{padding:20px!important}}
