.animated-background{position:fixed;top:0;left:0;width:100%;height:100%;z-index:0;background-size:cover;background-position:center;background-repeat:no-repeat}.animated-background-overlay{position:fixed;top:0;left:0;width:100%;height:100%;z-index:1;background:#00000040}.snowfall-overlay{position:fixed;top:0;left:0;width:100%;height:100%;z-index:2;pointer-events:none}.glass-card{background:#ffffff2e;border:1px solid rgba(255,255,255,.35);border-radius:24px;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);box-shadow:0 15px 40px #00000026;display:flex;flex-direction:column;align-items:center;padding:40px 32px;box-sizing:border-box;position:relative;z-index:2}.brand-logo{display:flex;flex-direction:column;align-items:center;margin-bottom:32px}.logo-icon{margin-bottom:16px;filter:drop-shadow(0 4px 12px rgba(102,126,234,.4))}.logo-image{width:80px;height:80px;border-radius:16px;object-fit:cover}.brand-name{font-size:28px;font-weight:600;color:#fff;margin:0 0 8px;text-shadow:0 2px 8px rgba(0,0,0,.2)}.brand-slogan{font-size:14px;color:#ffffffb3;margin:0}:root{--primary: #4a9eff;--primary-light: #7ab8ff;--primary-lighter: #e6f4ff;--primary-dark: #2d7dd2;--primary-darker: #1a5fa8;--primary-gradient: linear-gradient(135deg, #4a9eff 0%, #6eb5ff 100%);--primary-gradient-hover: linear-gradient(135deg, #3d8ce8 0%, #5aa3f0 100%);--secondary: #06B6D4;--secondary-light: #22D3EE;--accent: #F472B6;--accent-light: #FBCFE8;--success: #52c41a;--success-light: #f6ffed;--warning: #faad14;--warning-light: #fffbe6;--error: #ff4d4f;--error-light: #fff2f0;--info: #4a9eff;--info-light: #e6f4ff;--bg-primary: #f0f5fa;--bg-secondary: #ffffff;--bg-sidebar: #2a3f54;--surface: #ffffff;--surface-variant: #f5f7fa;--text-primary: #2c3e50;--text-secondary: #5a6c7d;--text-tertiary: #8fa3b8;--text-disabled: #c0c4cc;--text-on-primary: #ffffff;--border: #e4e7ed;--border-light: #ebeef5;--divider: #dcdfe6;--glass-bg: rgba(255, 255, 255, .18);--glass-border: rgba(255, 255, 255, .35);--glass-blur: 20px;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1);--shadow-xl: 0 15px 40px rgba(0, 0, 0, .15);--shadow-glow: 0 0 20px rgba(74, 158, 255, .3);--radius-xs: 4px;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-2xl: 24px;--radius-full: 9999px;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 12px;--spacing-lg: 16px;--spacing-xl: 24px;--spacing-2xl: 32px;--spacing-3xl: 48px;--font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans SC", sans-serif;--font-size-xs: 12px;--font-size-sm: 14px;--font-size-md: 16px;--font-size-lg: 18px;--font-size-xl: 20px;--font-size-2xl: 24px;--font-size-3xl: 28px;--font-size-4xl: 36px;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-tight: 1.25;--line-height-normal: 1.5;--line-height-relaxed: 1.75;--transition-fast: .15s ease;--transition-normal: .2s ease;--transition-slow: .3s ease}:root[data-theme=dark]{--bg-primary: #0f172a;--bg-secondary: #111827;--bg-sidebar: #0b1220;--surface: #1f2937;--surface-variant: #1e293b;--text-primary: #e2e8f0;--text-secondary: #cbd5e1;--text-tertiary: #94a3b8;--text-disabled: #64748b;--text-on-primary: #ffffff;--border: #334155;--border-light: #1f2937;--divider: #334155}*{box-sizing:border-box}body{margin:0;font-family:var(--font-family);font-size:var(--font-size-md);line-height:var(--line-height-normal);color:var(--text-primary);background-color:var(--bg-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:root[data-theme=dark] .main-page,:root[data-theme=dark] .loading-container,:root[data-theme=dark] .chat-content,:root[data-theme=dark] .contacts-content,:root[data-theme=dark] .settings-content{background:var(--bg-primary);color:var(--text-primary)}:root[data-theme=dark] .main-sider{background:var(--bg-sidebar)}:root[data-theme=dark] .conversation-sider,:root[data-theme=dark] .conversation-list,:root[data-theme=dark] .settings-list,:root[data-theme=dark] .settings-header,:root[data-theme=dark] .contact-list,:root[data-theme=dark] .chat-header,:root[data-theme=dark] .chat-input-area{background:var(--surface);border-color:var(--border);color:var(--text-primary)}:root[data-theme=dark] .chat-messages{background:var(--bg-secondary)}:root[data-theme=dark] .conversation-header{border-bottom-color:var(--border)}:root[data-theme=dark] .conversation-item:hover{background:#1f2937}:root[data-theme=dark] .conversation-item.active,:root[data-theme=dark] .conversation-item.pinned.active{background:#4a9eff33}:root[data-theme=dark] .conversation-name{color:var(--text-primary)}:root[data-theme=dark] .chat-title,:root[data-theme=dark] .message-sender{color:var(--text-primary)}:root[data-theme=dark] .message-sender{opacity:.8}:root[data-theme=dark] .conversation-last-msg,:root[data-theme=dark] .conversation-time,:root[data-theme=dark] .mute-icon{color:var(--text-tertiary)}:root[data-theme=dark] .message-item.other .message-bubble{background:#1f2937;color:var(--text-primary)}:root[data-theme=dark] .message-item.self .message-bubble{background:#2563eb}:root[data-theme=dark] .settings-item:hover,:root[data-theme=dark] .contact-item:hover{background:#1f2937}:root[data-theme=dark] .settings-icon,:root[data-theme=dark] .device-icon{background:#1e293b;color:var(--text-secondary)}:root[data-theme=dark] .chat-toolbar,:root[data-theme=dark] .quote-reply-bar,:root[data-theme=dark] .select-action-bar,:root[data-theme=dark] .at-selected-bar{background:var(--surface-variant);border-color:var(--border)}:root[data-theme=dark] .message-file{background:#ffffff14}:root[data-theme=dark] .message-item.self .message-file{background:#ffffff26}:root[data-theme=dark] .web-notice{background:#faad1414;border-color:#faad144d}:root[data-theme=dark] .desktop-features-section{background:#4a9eff1a;border-color:#4a9eff4d}.glass-card{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-2xl);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));box-shadow:var(--shadow-xl);display:flex;flex-direction:column;align-items:center;padding:40px 32px;box-sizing:border-box;position:relative;z-index:2}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.animate-fade-in{animation:fadeIn var(--transition-slow) ease-out}.animate-fade-in-up{animation:fadeInUp .6s ease-out}.ant-btn-primary{background:var(--primary-gradient)!important;border:none!important;height:44px;font-size:16px;border-radius:var(--radius-md)}.ant-btn-primary:hover:not(:disabled){background:var(--primary-gradient-hover)!important}.ant-input-affix-wrapper-lg,.ant-input-lg{border-radius:var(--radius-md)}.ant-tabs-tab{font-size:15px}.login-page{width:100%;height:100vh;position:relative;overflow:hidden;background:#1a1a2e}.login-container{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:50;display:flex;align-items:center;justify-content:center}.login-footer{position:absolute;bottom:15px;left:0;right:0;text-align:center;font-size:11px;color:#ffffff73;z-index:50}.invite-code-form{width:100%;padding:20px 0}.invite-code-form .form-title{font-size:24px;font-weight:600;color:#333;text-align:center;margin-bottom:8px}.invite-code-form .form-subtitle{font-size:14px;color:#666;text-align:center;margin-bottom:32px}.invite-code-form .form-field{margin-bottom:24px}.login-form{width:100%;padding:10px 0}.login-form .form-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.login-form .form-title{font-size:24px;font-weight:600;color:#333}.login-form .tenant-info{display:flex;align-items:center;gap:4px}.login-form .tenant-name{font-size:14px;color:#666;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.login-form .form-field{margin-bottom:16px}.login-form .sms-field{display:flex;gap:12px}.login-form .sms-field .ant-input-affix-wrapper{flex:1}.login-form .sms-field button{width:110px;flex-shrink:0}.login-form .form-options{display:flex;gap:24px;margin-bottom:24px;align-items:center}.login-form .form-options .ant-checkbox-wrapper{color:#666}.login-form .ant-tabs-nav{margin-bottom:24px}.login-form .ant-tabs-tab{font-size:15px}.login-form .ant-btn-primary,.invite-code-form .ant-btn-primary{height:44px;font-size:16px;border-radius:8px;background:linear-gradient(135deg,#4a9eff,#6eb5ff);border:none}.login-form .ant-btn-primary:hover:not(:disabled),.invite-code-form .ant-btn-primary:hover:not(:disabled){background:linear-gradient(135deg,#3d8ce8,#5aa3f0)}.ant-input-affix-wrapper-lg{border-radius:8px}@media (max-width: 520px){.login-container{padding:20px}.glass-card{width:100%!important;max-width:400px;height:auto!important;min-height:480px;padding:32px 24px}}.conversation-list{height:100%;display:flex;flex-direction:column;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#c5d3e0 transparent}.conversation-list::-webkit-scrollbar{width:6px}.conversation-list::-webkit-scrollbar-track{background:transparent}.conversation-list::-webkit-scrollbar-thumb{background:#c5d3e0;border-radius:3px}.conversation-list::-webkit-scrollbar-thumb:hover{background:#a8bdd0}.conversation-header{padding:16px;border-bottom:1px solid #e8e8e8;display:flex;flex-direction:column;gap:10px}.conversation-header h3{margin:0;font-size:16px;font-weight:500;color:#2c3e50}.conversation-search .ant-input-affix-wrapper{border-radius:8px;border-color:#e1e8ef}.conversation-search .ant-input-affix-wrapper:focus,.conversation-search .ant-input-affix-wrapper-focused{border-color:#4a9eff;box-shadow:0 0 0 2px #4a9eff1a}.conversation-item{display:flex;align-items:center;padding:12px 16px;cursor:pointer;transition:all .2s ease;border-left:3px solid transparent}.conversation-item:hover{background:#f8fafc}.conversation-item.active{background:linear-gradient(90deg,#e6f4ff,#f0f7ff);border-left-color:#4a9eff}.conversation-item.pinned{background:#f8fafc}.conversation-item.pinned:hover{background:#eef2f7}.conversation-item.pinned.active{background:linear-gradient(90deg,#e6f4ff,#f0f7ff);border-left-color:#4a9eff}.conversation-info{flex:1;margin-left:12px;overflow:hidden;min-width:0}.conversation-name-row{display:flex;align-items:center;gap:4px;margin-bottom:4px}.conversation-name{font-size:14px;font-weight:500;color:#2c3e50;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pin-icon{font-size:12px;color:#4a9eff;flex-shrink:0}.mute-icon{font-size:12px;color:#8fa3b8;flex-shrink:0}.conversation-last-msg{font-size:13px;color:#8fa3b8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.conversation-meta{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex-shrink:0;margin-left:8px}.conversation-time{font-size:12px;color:#8fa3b8}.mute-badge{width:8px;height:8px;background:#8fa3b8;border-radius:50%}.empty-list{display:flex;flex-direction:column;justify-content:center;align-items:center;flex:1;color:#8fa3b8;font-size:14px;gap:8px}.draft-tag{color:#ff4d4f;font-size:12px;margin-right:4px}.conversation-list .ant-list-item{padding:0;border-bottom:none}.conversation-list .ant-badge-count{box-shadow:none}.user-profile-modal .user-profile-header{display:flex;align-items:center;gap:12px}.user-profile-modal .user-profile-info{display:flex;flex-direction:column;gap:4px}.user-profile-modal .user-profile-name{font-size:16px;font-weight:600;color:#2c3e50}.user-profile-modal .user-profile-id{font-size:12px;color:#8fa3b8}.user-profile-modal .user-profile-actions{margin-top:16px;display:flex;justify-content:flex-start}.group-management-modal .section{margin-bottom:20px}.group-management-modal .section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;font-weight:500;color:#333}.group-management-modal .group-basic{display:flex;gap:12px;align-items:center}.group-management-modal .group-avatar{position:relative;cursor:default}.group-management-modal .group-avatar.editable{cursor:pointer}.group-management-modal .group-avatar-mask{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:12px;color:#fff;background:#00000073;border-radius:50%;opacity:0;transition:opacity .2s ease}.group-management-modal .group-avatar.editable:hover .group-avatar-mask{opacity:1}.group-management-modal .group-basic-info{flex:1}.group-management-modal .group-name-row{display:flex;align-items:center;gap:8px;margin-bottom:4px}.group-management-modal .group-name{font-size:16px;font-weight:600}.group-management-modal .group-id{font-size:12px;color:#888}.group-management-modal .group-edit-row{display:flex;flex-direction:column;gap:8px}.group-management-modal .announcement-content{padding:12px;background:#f5f5f5;border-radius:6px;color:#666;min-height:60px}.group-management-modal .announcement-edit{padding:12px;background:#f5f5f5;border-radius:6px}.group-management-modal .group-setting-list{display:flex;flex-direction:column;gap:12px}.group-management-modal .group-setting-item{display:flex;align-items:center;justify-content:space-between;gap:12px}.group-management-modal .setting-label{color:#333;font-weight:500}.group-management-modal .member-list{max-height:300px;overflow-y:auto}.group-management-modal .member-list .ant-list-item{padding:8px 0}.group-management-modal .member-name{cursor:pointer}.group-management-modal .invite-list{max-height:260px;overflow-y:auto}.group-management-modal .invite-item{cursor:pointer}.group-management-modal .invite-item.selected{background:#f0f5ff}.group-management-modal .group-qr{display:flex;flex-direction:column;align-items:center;gap:12px}.group-management-modal .group-qr-name{font-weight:600;color:#333}.group-management-modal .footer-actions{display:flex;justify-content:flex-end;gap:12px;padding-top:16px;border-top:1px solid #f0f0f0}.chat-panel{flex:1;display:flex;flex-direction:column;height:100%}.chat-panel-empty{flex:1;display:flex;align-items:center;justify-content:center;color:#8fa3b8}.chat-loading{display:flex;justify-content:center;align-items:center;height:100%}.chat-header{display:flex;align-items:center;padding:12px 16px;border-bottom:1px solid #f0f4f8;background:#fff}.chat-header-user{display:flex;align-items:center;cursor:pointer;padding:4px 8px;margin:-4px -8px;border-radius:8px;transition:background .2s}.chat-header-user:hover{background:#f8fafc}.chat-header-info{margin-left:12px;display:flex;flex-direction:column}.chat-header-name,.chat-title{font-size:16px;font-weight:500;color:#2c3e50}.chat-header-subtitle{font-size:12px;color:#8fa3b8;margin-top:2px}.chat-header-actions{margin-left:auto}.chat-header-actions .ant-btn{color:#5a6c7d}.chat-header-actions .ant-btn:hover{color:#4a9eff}.chat-messages{flex:1;overflow-y:auto;padding:16px 8px;background:#f8fafc;scrollbar-width:thin;scrollbar-color:#c5d3e0 transparent}.chat-messages::-webkit-scrollbar{width:6px}.chat-messages::-webkit-scrollbar-track{background:transparent}.chat-messages::-webkit-scrollbar-thumb{background:#c5d3e0;border-radius:3px}.chat-messages::-webkit-scrollbar-thumb:hover{background:#a8bdd0}.chat-messages-empty{display:flex;align-items:center;justify-content:center;height:100%;color:#8fa3b8}.message-row{display:flex;flex-direction:column;width:100%;padding:4px 8px;box-sizing:border-box}.message-item{display:flex;gap:8px;max-width:75%;width:fit-content;align-items:flex-start;margin-bottom:8px}.message-item.self{margin-left:auto;margin-right:0;flex-direction:row-reverse}.message-item.other{margin-left:0;margin-right:auto;flex-direction:row}.message-content{display:flex;flex-direction:column;min-width:0;max-width:100%}.message-item.self .message-content{align-items:flex-end}.message-sender{font-size:12px;color:#8fa3b8;margin-bottom:4px}.message-item.self .message-sender{text-align:right}.message-bubble{padding:10px 14px;border-radius:12px;word-break:break-word;box-shadow:0 1px 3px #00000014;max-width:100%;overflow:hidden}.message-item.self .message-bubble{background:#4a9eff;color:#fff;border-bottom-right-radius:4px}.message-item.other .message-bubble{background:#fff;color:#2c3e50;border-bottom-left-radius:4px}.message-item:not(.self):not(.other) .message-bubble{background:#fff;color:#2c3e50;border-bottom-left-radius:4px}.chat-input-area{border-top:1px solid #f0f4f8;background:#fff}.chat-toolbar{display:flex;padding:8px 12px;border-bottom:1px solid #f0f4f8;align-items:center;justify-content:space-between}.chat-toolbar .ant-btn{color:#5a6c7d}.chat-toolbar .ant-btn:hover{color:#4a9eff}.chat-toolbar-left,.chat-toolbar-right{display:flex;align-items:center;gap:6px}.select-action-bar{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:#f5f7fa;border-bottom:1px solid #f0f4f8;font-size:13px;color:#5a6c7d}.select-action-buttons{display:flex;align-items:center;gap:8px}.at-selected-bar{display:flex;flex-wrap:wrap;gap:6px;padding:8px 12px;background:#fafcff;border-bottom:1px solid #f0f4f8}.message-select{margin-top:6px}.chat-input-wrapper,.chat-input{display:flex;align-items:flex-end;padding:12px;gap:12px;position:relative}.chat-input-wrapper .ant-input-textarea,.chat-input .ant-input-textarea{flex:1}.chat-input-wrapper .ant-input-textarea textarea,.chat-input .ant-input-textarea textarea{resize:none;border-radius:8px;border-color:#e1e8ef}.chat-input-wrapper .ant-input-textarea textarea:focus,.chat-input .ant-input-textarea textarea:focus{border-color:#4a9eff;box-shadow:0 0 0 2px #4a9eff1a}.chat-input-wrapper .ant-btn,.chat-input .ant-btn{height:36px}.chat-input-wrapper .ant-btn-primary,.chat-input .ant-btn-primary{background:linear-gradient(135deg,#4a9eff,#6eb5ff);border:none}.chat-input-wrapper .ant-btn-primary:hover,.chat-input .ant-btn-primary:hover{background:linear-gradient(135deg,#3d8ce8,#5aa3f0)}.msg-text{line-height:1.5}.message-picture{padding:4px;background:transparent!important}.message-item.self .message-picture{background:transparent!important}.msg-image-wrapper{position:relative;display:inline-block;cursor:pointer;border-radius:8px;overflow:hidden;background:#f0f4f8}.msg-image,.msg-image-wrapper .msg-image{max-width:200px;max-height:300px;border-radius:8px;cursor:pointer;display:block;object-fit:contain}.msg-file,.message-file{display:flex;align-items:center;gap:10px;padding:8px 12px;background:#0000000d;border-radius:8px;min-width:180px;cursor:pointer;transition:background .2s}.message-item.self .msg-file,.message-item.self .message-file{background:#ffffff26}.msg-file-icon,.message-file .file-icon{font-size:28px;color:#4a9eff}.message-item.self .msg-file-icon,.message-item.self .message-file .file-icon{color:#fff}.msg-file-info,.message-file .file-info{display:flex;flex-direction:column;gap:2px;overflow:hidden;flex:1;min-width:0}.msg-file-name,.message-file .file-name{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:150px}.msg-file-size,.message-file .file-size{font-size:12px;opacity:.7;color:#8fa3b8}.message-item.self .msg-file-size,.message-item.self .message-file .file-size{color:#fffc}.msg-file:hover,.message-file:hover{background:#00000014}.message-item.self .msg-file:hover,.message-item.self .message-file:hover{background:#ffffff40}.message-file .ant-btn-link{padding:0}.message-item.self .message-file .ant-btn-link{color:#fff}.message-meta{display:flex;align-items:center;gap:8px;margin-top:4px;flex-wrap:nowrap;white-space:nowrap}.message-time{font-size:11px;color:#8fa3b8;flex-shrink:0}.message-status{font-size:11px;flex-shrink:0}.message-status.sending{color:#4a9eff;animation:pulse 1.5s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.message-status.success,.message-status.read{color:#52c41a}.message-status.unread{color:#8fa3b8}.message-status.failed{color:#ff4d4f;cursor:pointer}.message-retry{margin-left:6px;border:none;background:transparent;color:#ff4d4f;font-size:11px;cursor:pointer;padding:0}.message-retry:hover{text-decoration:underline}.history-loading,.message-loading-more{display:flex;align-items:center;justify-content:center;gap:8px;padding:12px;color:#4a9eff;font-size:13px}.no-more-messages,.message-no-more{text-align:center;padding:12px;color:#8fa3b8;font-size:12px}.message-date-divider{display:flex;align-items:center;justify-content:center;padding:16px 0}.message-date-divider span{padding:4px 16px;background:#0000000a;border-radius:12px;font-size:12px;color:#5a6c7d}.message-revoked{text-align:center;padding:8px 0;font-size:12px;color:#8fa3b8;font-style:italic;background:transparent}.msg-video{position:relative;display:inline-block;cursor:pointer;border-radius:8px;overflow:hidden;max-width:200px}.msg-video-snapshot{width:100%;max-height:150px;object-fit:cover;display:block}.msg-video-placeholder{width:120px;height:80px;background:#333;display:flex;align-items:center;justify-content:center;font-size:32px}.msg-video-play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:40px;height:40px;background:#0009;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:16px}.msg-video-duration{position:absolute;bottom:4px;right:4px;background:#0009;color:#fff;font-size:11px;padding:2px 6px;border-radius:4px}.msg-voice{display:flex;align-items:center;gap:8px;padding:8px 12px;background:#e3f2fd;border-radius:16px;cursor:pointer;min-width:80px;transition:background .2s}.msg-voice:hover{background:#bbdefb}.msg-voice-icon{font-size:16px;color:#4a9eff}.msg-voice-duration{font-size:13px;color:#2c3e50}.msg-system{display:block;text-align:center;font-size:12px;color:#8fa3b8;padding:4px 12px;background:#0000000a;border-radius:12px}.message-system-wrapper{display:flex;justify-content:center;padding:8px 0}.message-time-gap{display:flex;align-items:center;justify-content:center;padding:8px 0}.message-time-gap span{font-size:11px;color:#8fa3b8}.msg-quote-wrapper{display:flex;flex-direction:column;gap:6px}.msg-quote-ref{padding:6px 10px;background:#0000000d;border-radius:6px;border-left:3px solid #4a9eff;font-size:12px;cursor:pointer}.message-item.self .msg-quote-ref{background:#ffffff26;border-left-color:#ffffff80}.msg-quote-sender{color:#4a9eff;margin-right:4px}.message-item.self .msg-quote-sender{color:#ffffffe6}.msg-quote-content{color:#5a6c7d;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px;display:inline-block;vertical-align:bottom}.msg-card{display:flex;align-items:center;gap:10px;padding:10px;min-width:180px;background:#00000008;border-radius:8px;cursor:pointer}.message-item.self .msg-card{background:#ffffff1a}.msg-card-info{display:flex;flex-direction:column;gap:2px}.msg-card-name{font-weight:500}.msg-card-label{font-size:11px;color:#8fa3b8}.msg-location{display:flex;align-items:center;gap:10px;padding:10px;min-width:160px;background:#00000008;border-radius:8px;cursor:pointer}.msg-location-icon{font-size:24px}.msg-location-info{display:flex;flex-direction:column;gap:2px}.msg-location-desc{font-weight:500}.msg-location-coord{font-size:11px;color:#8fa3b8}.msg-merge{display:flex;flex-direction:column;gap:6px;min-width:180px}.msg-merge-title{font-weight:600;font-size:13px;color:#2c3e50}.msg-merge-abstract{font-size:12px;color:#5a6c7d}.msg-merge-item{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.msg-merge-footer{font-size:12px;color:#4a9eff}.new-message-hint{position:absolute;bottom:24px;left:50%;transform:translate(-50%);background:linear-gradient(135deg,#4a9eff,#6eb5ff);color:#fff;padding:8px 16px;border-radius:20px;font-size:13px;cursor:pointer;box-shadow:0 2px 8px #4a9eff4d;z-index:100;animation:bounce-in .3s ease;transition:transform .2s,box-shadow .2s}.new-message-hint:hover{transform:translate(-50%) scale(1.05);box-shadow:0 4px 12px #4a9eff66}@keyframes bounce-in{0%{opacity:0;transform:translate(-50%) translateY(20px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.quote-reply-bar{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:#f8fafc;border-bottom:1px solid #f0f4f8}.quote-reply-content{display:flex;align-items:center;gap:8px;flex:1;overflow:hidden}.quote-reply-label{color:#4a9eff;font-size:12px;white-space:nowrap}.quote-reply-text{font-size:12px;color:#5a6c7d;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.quote-reply-close{color:#8fa3b8;cursor:pointer;padding:4px;font-size:12px}.quote-reply-close:hover{color:#5a6c7d}.chat-panel.dragging{position:relative}.drag-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:#4a9eff1a;border:2px dashed #4a9eff;border-radius:8px;display:flex;align-items:center;justify-content:center;z-index:100}.drag-hint{display:flex;flex-direction:column;align-items:center;gap:12px;color:#4a9eff}.drag-hint p{margin:0;font-size:16px;font-weight:500}.chat-muted-notice{display:flex;align-items:center;justify-content:center;gap:8px;padding:16px;background:#f8fafc;color:#8fa3b8;font-size:14px}.chat-muted-notice .muted-icon{font-size:16px;color:#faad14}.msg-at{background:#4a9eff1a;padding:2px 4px;border-radius:4px}.highlight-keyword,.search-highlight{background:#ffeb3b;color:#2c3e50;padding:0 2px;border-radius:2px}.message-context-menu{position:fixed;background:#fff;border-radius:8px;box-shadow:0 4px 16px #0000001f;padding:4px 0;min-width:120px;z-index:1000}.message-context-menu-item{display:flex;align-items:center;gap:8px;padding:8px 16px;font-size:13px;color:#2c3e50;cursor:pointer;transition:background .2s}.message-context-menu-item:hover{background:#f5faff}.message-context-menu-item.danger{color:#ff4d4f}.message-context-menu-item.danger:hover{background:#fff2f0}.friend-detail-modal .friend-header{display:flex;align-items:center;gap:16px;padding:8px 0}.friend-detail-modal .friend-info{flex:1}.friend-detail-modal .friend-name{margin:0 0 4px;font-size:18px;font-weight:500}.friend-detail-modal .friend-nickname{margin:0 0 4px;color:#666;font-size:13px}.friend-detail-modal .friend-id{margin:0;color:#999;font-size:12px}.friend-detail-modal .friend-section{padding:8px 0}.friend-detail-modal .section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;font-weight:500}.friend-detail-modal .section-content{color:#666}.friend-detail-modal .friend-actions{padding-top:8px}.contact-list{height:100%;display:flex;flex-direction:column}.contact-list.loading{justify-content:center;align-items:center}.contact-header{margin-bottom:16px}.contact-item{padding:12px 0;cursor:pointer}.contact-item:hover{background:#f5f5f5}.contact-info{margin-left:12px}.contact-name{font-size:14px;font-weight:500}.contact-nickname{font-size:12px;color:#999;margin-top:2px}.request-item{padding:12px 0}.request-title{display:flex;justify-content:space-between;align-items:center}.request-time{font-size:12px;color:#999;font-weight:400}.request-msg{color:#666;font-size:13px}.tab-badge{display:inline-flex;align-items:center;justify-content:center;min-width:16px;height:16px;padding:0 4px;margin-left:4px;font-size:10px;color:#fff;background:#ff4d4f;border-radius:8px}.empty-list{display:flex;justify-content:center;align-items:center;height:200px;color:#999}.group-header{padding:12px 0;border-bottom:1px solid #f0f0f0;margin-bottom:8px}.loading-container{display:flex;justify-content:center;align-items:center;padding:40px 0}.friend-select-list{max-height:300px;overflow-y:auto;border:1px solid #d9d9d9;border-radius:6px;padding:12px}.contact-search-tab{display:flex;flex-direction:column;gap:8px}.contact-list .ant-tabs{flex:1;display:flex;flex-direction:column}.contact-list .ant-tabs-content{flex:1;overflow-y:auto}.contact-list .ant-list-item-meta-title{margin-bottom:4px}.contact-list .ant-list-item-meta-description{font-size:12px}.desktop-only-alert{margin:12px 0}.desktop-only-hint{display:inline-flex;align-items:center;gap:6px;color:#999;cursor:not-allowed}.desktop-only-hint .desktop-tag{font-size:10px;padding:0 4px;line-height:16px}.desktop-only-button{position:relative}.desktop-only-button .info-icon{margin-left:4px;font-size:12px;color:#999}.desktop-only-wrapper{display:flex;align-items:center;gap:12px;padding:16px;background:#f5f5f5;border-radius:8px;color:#999}.desktop-only-wrapper .icon{font-size:32px}.desktop-only-wrapper .title{font-weight:500;color:#666}.desktop-only-wrapper .desc{font-size:12px}.settings-page{max-width:600px;margin:0 auto;padding:20px}.settings-header{display:flex;align-items:center;gap:20px;padding:20px;background:#f5f5f5;border-radius:8px;margin-bottom:20px}.avatar-wrapper{position:relative}.avatar-edit-btn{position:absolute;bottom:0;right:0;background:#1677ff;border-color:#1677ff;color:#fff}.avatar-edit-btn:hover{background:#4096ff!important;border-color:#4096ff!important;color:#fff!important}.user-info h2{margin:0;font-size:20px;display:flex;align-items:center;gap:8px}.user-info p{margin:4px 0 0;color:#666}.settings-list{background:#fff;border-radius:8px}.settings-item{padding:16px;transition:background .2s}.settings-item:hover{background:#f9f9f9}.settings-icon{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:#f0f0f0;border-radius:8px;font-size:18px;color:#666}.logout-section{margin-top:20px;padding:0 16px}.web-notice{margin-top:20px;padding:16px;background:#fffbe6;border:1px solid #ffe58f;border-radius:8px}.web-notice h4{margin:0 0 8px;color:#d48806}.web-notice ul{margin:0;padding-left:20px;color:#666}.web-notice li{margin-bottom:4px}.desktop-features-section{margin-top:20px;padding:16px;background:#f0f7ff;border:1px solid #91caff;border-radius:8px}.desktop-features-section h4{margin:0 0 8px;color:#1677ff;display:flex;align-items:center;gap:8px}.desktop-features-section .section-desc{color:#666;margin-bottom:12px}.desktop-feature-item{padding:8px 0!important}.desktop-feature-item .ant-list-item-meta-title{color:#333;font-size:14px}.desktop-feature-item .ant-list-item-meta-description{color:#999;font-size:12px}.modal-loading{display:flex;justify-content:center;align-items:center;padding:40px 0}.device-icon{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:#f0f0f0;border-radius:8px;font-size:20px;color:#666}.current-device{color:#52c41a;font-size:12px}.qr-modal{display:flex;flex-direction:column;align-items:center;gap:8px}.qr-name{font-weight:600;color:#2c3e50}.qr-id{font-size:12px;color:#8fa3b8}.verification-content .verification-status{margin-bottom:8px}.verification-content .status{margin-left:6px;font-weight:600}.verification-content .status.approved{color:#52c41a}.verification-content .status.pending{color:#faad14}.verification-content .status.rejected{color:#ff4d4f}.verification-content .status.none{color:#8fa3b8}.verification-reason{color:#ff4d4f;margin-bottom:8px}.feedback-form{display:flex;flex-direction:column;gap:12px}.feedback-field label{display:block;margin-bottom:6px;color:#2c3e50;font-size:13px}.policy-content{max-height:60vh;overflow-y:auto;padding-right:8px}.policy-content h1{font-size:18px;margin-bottom:8px}.policy-content h2{font-size:14px;margin-top:16px}.policy-content p,.policy-content li{font-size:12px;color:#4a4a4a}.cache-list{display:flex;flex-direction:column;gap:12px}.cache-item-meta{margin-left:24px;display:flex;gap:12px;font-size:12px;color:#8fa3b8}.main-page{width:100%;height:100vh;display:flex;flex-direction:column;background:#f0f5fa;overflow:hidden}.loading-container{display:flex;flex-direction:column;justify-content:center;align-items:center;height:100vh;gap:16px;background:#f0f5fa}.error-content{display:flex;flex-direction:column;align-items:center;gap:16px;color:#5a6c7d}.badge{display:inline-flex;align-items:center;justify-content:center;min-width:16px;height:16px;padding:0 4px;margin-left:4px;font-size:10px;color:#fff;background:#ff4d4f;border-radius:8px}.main-header{height:50px;background:linear-gradient(135deg,#4a9eff,#6eb5ff);display:flex;align-items:center;padding:0 16px;position:relative;-webkit-user-select:none;user-select:none;box-shadow:0 1px 3px #00000014}.header-left{display:flex;align-items:center;gap:12px}.app-title{font-size:16px;font-weight:600;color:#fff;letter-spacing:1px;cursor:default}.header-center{flex:1;display:flex;justify-content:center;padding:0 40px}.global-search{width:280px;border-radius:20px;background:#fff3;border:none}.global-search .ant-input{background:transparent;color:#fff}.global-search .ant-input::placeholder{color:#ffffffb3}.global-search .ant-input-prefix,.global-search .ant-input-clear-icon{color:#ffffffb3}.global-search:hover,.global-search:focus-within{background:#ffffff4d}.header-right{display:flex;align-items:center;gap:16px}.user-info{display:flex;align-items:center;gap:8px;cursor:pointer;padding:4px 8px;border-radius:20px;transition:background .2s}.user-info:hover{background:#fff3}.user-name{color:#fff;font-size:13px;max-width:80px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.im-status-banner{display:flex;align-items:center;justify-content:center;gap:12px;height:36px;background:#fffbe6;color:#ad6800;border-bottom:1px solid #ffe58f;font-size:12px;padding:0 16px}.im-status-text{display:inline-flex;align-items:center;gap:6px}.main-content{flex:1;display:flex;overflow:hidden}.nav-sidebar,.main-sider{width:60px;background:#2a3f54;display:flex;flex-direction:column;justify-content:space-between;padding:16px 0}.nav-top,.nav-bottom{display:flex;flex-direction:column;align-items:center;gap:8px}.nav-item{width:44px;height:44px;display:flex;align-items:center;justify-content:center;border-radius:8px;cursor:pointer;transition:all .2s;color:#fff9}.nav-item:hover{background:#ffffff1a;color:#ffffffe6}.nav-item.active{background:linear-gradient(135deg,#4a9eff,#6eb5ff);color:#fff;box-shadow:0 2px 8px #4a9eff66}.nav-icon{font-size:20px}.nav-avatar{margin-top:8px;cursor:pointer}.nav-avatar .ant-avatar{border:2px solid rgba(255,255,255,.3);transition:border-color .2s}.nav-avatar:hover .ant-avatar{border-color:#fff9}.user-avatar{margin-bottom:20px}.main-menu{background:transparent;border:none;flex:1}.main-menu .ant-menu-item{display:flex;justify-content:center;align-items:center;height:44px;margin:4px 8px;padding:0;color:#fff9;border-radius:8px}.main-menu .ant-menu-item:hover{color:#ffffffe6;background:#ffffff1a}.main-menu .ant-menu-item-selected{color:#fff;background:linear-gradient(135deg,#4a9eff,#6eb5ff)!important;box-shadow:0 2px 8px #4a9eff66}.main-menu .ant-menu-item .anticon{font-size:20px;margin:0}.main-menu .ant-menu-item .ant-menu-title-content{display:none}.conversation-sidebar,.conversation-sider{width:280px;background:#fff;border-right:1px solid #e1e8ef;display:flex;flex-direction:column}.sidebar-header{height:50px;padding:0 16px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #f0f4f8}.sidebar-title{font-size:16px;font-weight:600;color:#2c3e50}.add-btn{width:28px;height:28px;border:none;background:#f8fafc;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#5a6c7d;transition:all .2s}.add-btn:hover{background:linear-gradient(135deg,#4a9eff,#6eb5ff);color:#fff;box-shadow:0 2px 8px #4a9eff4d}.announcement-banner{margin:8px 12px;padding:8px 10px;background:#f5faff;border:1px solid #d7e9ff;border-radius:8px;display:flex;align-items:center;gap:8px;cursor:pointer;font-size:12px;color:#2c3e50}.announcement-label{color:#4a9eff;font-weight:600;white-space:nowrap}.announcement-title{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.announcement-more{color:#4a9eff;white-space:nowrap}.chat-area,.chat-content{flex:1;display:flex;flex-direction:column;background:#f8fafc}.empty-chat{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#8fa3b8;gap:16px}.empty-chat p{margin:0;font-size:14px}.placeholder-content{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#8fa3b8;gap:16px}.placeholder-content p{margin:0;font-size:14px}.contacts-content,.settings-content{padding:20px;background:#fff;flex:1;overflow-y:auto}.app{height:100%;width:100%;display:flex;flex-direction:column}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%;width:100%}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
