*{margin:0;padding:0;box-sizing:border-box}#app,body,html{height:100%;font-family:Helvetica Neue,Helvetica,PingFang SC,Microsoft YaHei,sans-serif}.login-page[data-v-4fba2f78]{height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2)}.card[data-v-4fba2f78]{width:380px;padding:40px;background:#fff;border-radius:8px;box-shadow:0 2px 12px rgba(0,0,0,.2)}.card h1[data-v-4fba2f78]{text-align:center;margin-bottom:30px;color:#303133;font-size:24px}.link[data-v-4fba2f78]{text-align:center;margin-top:10px;font-size:14px;color:#909399}.link a[data-v-4fba2f78]{color:#409eff;text-decoration:none}.register-page[data-v-d5e7bd44]{height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2)}.card[data-v-d5e7bd44]{width:380px;padding:40px;background:#fff;border-radius:8px;box-shadow:0 2px 12px rgba(0,0,0,.2)}.card h1[data-v-d5e7bd44]{text-align:center;margin-bottom:30px;color:#303133;font-size:24px}.link[data-v-d5e7bd44]{text-align:center;margin-top:10px;font-size:14px;color:#909399}.link a[data-v-d5e7bd44]{color:#409eff;text-decoration:none}.avatar[data-v-3a2791e6]{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;color:#fff;font-weight:700;flex-shrink:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.member-list[data-v-362c7e34]{padding:0 8px}.member-item[data-v-362c7e34]{display:flex;align-items:center;gap:8px;padding:8px;border-radius:6px;cursor:pointer;transition:background .2s}.member-item[data-v-362c7e34]:hover{background:#f0f2f5}.member-name[data-v-362c7e34]{flex:1;font-size:14px;color:#303133;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.member-name.gray[data-v-362c7e34]{color:#909399}.dot[data-v-362c7e34]{width:8px;height:8px;border-radius:50%;flex-shrink:0}.dot.online[data-v-362c7e34]{background:#67c23a}.dot.offline[data-v-362c7e34]{background:#c0c4cc}.v-btn[data-v-362c7e34]{padding:0;font-size:13px;flex-shrink:0}.avatar.dim[data-v-362c7e34]{opacity:.5}.empty[data-v-362c7e34]{text-align:center;color:#909399;padding:20px;font-size:13px}.text[data-v-2314fe9a]{white-space:pre-wrap;word-break:break-word;line-height:1.5}.image-wrap[data-v-2314fe9a]{max-width:240px}.msg-image[data-v-2314fe9a]{max-width:100%;max-height:300px;border-radius:4px;cursor:pointer}.audio-wrap[data-v-2314fe9a]{max-width:260px}.file-wrap[data-v-2314fe9a]{display:flex;align-items:center;gap:8px}.file-name[data-v-2314fe9a]{color:#409eff;text-decoration:underline;cursor:pointer}.download-btn[data-v-2314fe9a]{margin-top:4px;padding:0}.system-msg[data-v-2314fe9a]{text-align:center;font-size:12px;color:#909399;padding:4px 0}.message-row[data-v-104f2b34]{display:flex;align-items:flex-start;padding:8px 16px;gap:10px}.message-row.self[data-v-104f2b34]{flex-direction:row-reverse}.bubble-wrap[data-v-104f2b34]{max-width:60%}.sender-name[data-v-104f2b34]{font-size:12px;color:#909399;margin-bottom:4px}.bubble[data-v-104f2b34]{padding:10px 14px;border-radius:8px;word-break:break-word}.bubble-self[data-v-104f2b34]{background:#95ec69;border-top-right-radius:2px}.bubble-other[data-v-104f2b34]{background:#fff;border-top-left-radius:2px}.timestamp[data-v-104f2b34]{font-size:11px;color:#c0c4cc;margin-top:4px;text-align:inherit}.message-row.self .timestamp[data-v-104f2b34]{text-align:right}.system-msg[data-v-104f2b34]{text-align:center;font-size:12px;color:#909399;padding:12px 16px 4px}.video-call-msg[data-v-104f2b34]{color:#409eff;font-weight:700}.video-window[data-v-d61b39b8]{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:720px;height:500px;background:#1a1a2e;border-radius:12px;display:flex;flex-direction:column;z-index:2000;box-shadow:0 8px 32px rgba(0,0,0,.5);overflow:hidden}.video-header[data-v-d61b39b8]{display:flex;justify-content:space-between;align-items:center;padding:10px 16px;background:hsla(0,0%,100%,.05);color:#fff;flex-shrink:0}.video-grid[data-v-d61b39b8]{flex:1;min-height:0;display:flex;flex-wrap:wrap;gap:4px;padding:4px;align-content:center;justify-content:center;overflow:hidden}.remote-video[data-v-d61b39b8]{position:relative;flex:1 1 45%;min-width:120px;min-height:100px;max-height:calc(100% - 8px);max-width:50%;background:#000;border-radius:8px;overflow:hidden}.remote-video video[data-v-d61b39b8]{width:100%;height:100%;-o-object-fit:contain;object-fit:contain}.remote-name[data-v-d61b39b8]{position:absolute;bottom:6px;left:8px;color:#fff;font-size:12px;background:rgba(0,0,0,.5);padding:2px 8px;border-radius:4px}.waiting[data-v-d61b39b8]{color:#909399;font-size:16px;display:flex;align-items:center;justify-content:center;width:100%}.local-video[data-v-d61b39b8]{position:absolute;bottom:56px;right:12px;width:140px;height:90px;border-radius:8px;overflow:hidden;border:2px solid hsla(0,0%,100%,.3);background:#000;z-index:10}.local-video video[data-v-d61b39b8]{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.local-name[data-v-d61b39b8]{position:absolute;bottom:4px;left:6px;color:#fff;font-size:11px;background:rgba(0,0,0,.5);padding:1px 6px;border-radius:3px}.controls[data-v-d61b39b8]{display:flex;justify-content:center;gap:16px;padding:12px;background:rgba(0,0,0,.5);z-index:20;position:relative;flex-shrink:0}.hangup-btn[data-v-d61b39b8]{transform:rotate(135deg)}.floating-video[data-v-d61b39b8]{position:fixed;width:200px;height:120px;border-radius:8px;z-index:2001;cursor:grab;overflow:hidden;box-shadow:0 4px 12px rgba(0,0,0,.3);background:#000}.floating-video video[data-v-d61b39b8]{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.float-close-btn[data-v-d61b39b8]{position:absolute;top:4px;right:4px;background:rgba(0,0,0,.5);color:#fff;border:none}.chat-page[data-v-b427fe8c]{display:flex;height:100%;background:#f0f2f5}.left-panel[data-v-b427fe8c]{width:260px;background:#fff;display:flex;flex-direction:column;border-right:1px solid #e4e7ed;flex-shrink:0}.panel-header[data-v-b427fe8c]{display:flex;align-items:center;gap:10px;padding:14px;background:linear-gradient(135deg,#409eff,#337ecc);color:#fff}.username[data-v-b427fe8c]{font-size:16px;font-weight:700}.panel-body[data-v-b427fe8c]{flex:1;overflow-y:auto;padding:12px}.section-title[data-v-b427fe8c]{display:flex;justify-content:space-between;align-items:center;font-size:14px;font-weight:700;color:#303133;cursor:pointer;padding:6px 0}.section-title.active[data-v-b427fe8c]{color:#409eff}.conv-item[data-v-b427fe8c]{display:flex;align-items:center;gap:8px;padding:8px 6px;border-radius:6px;cursor:pointer;transition:background .2s}.conv-item[data-v-b427fe8c]:hover{background:#f0f2f5}.conv-item.active[data-v-b427fe8c]{background:#ecf5ff;color:#409eff}.conv-name[data-v-b427fe8c]{flex:1;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.unread-badge[data-v-b427fe8c]{background:#f56c6c;color:#fff;font-size:11px;padding:1px 7px;border-radius:10px;flex-shrink:0}.chat-area[data-v-b427fe8c]{flex:1;display:flex;flex-direction:column}.chat-header[data-v-b427fe8c]{padding:14px 20px;font-size:15px;font-weight:700;color:#303133;background:#fff;border-bottom:1px solid #e4e7ed;display:flex;align-items:center}.back-btn[data-v-b427fe8c]{cursor:pointer;color:#409eff;margin-right:10px;font-size:18px}.back-btn[data-v-b427fe8c]:hover{color:#337ecc}.message-list[data-v-b427fe8c]{flex:1;overflow-y:auto;padding:10px 0;background:#f5f5f5}.chat-input[data-v-b427fe8c]{background:#fff;border-top:1px solid #e4e7ed;padding:10px 16px}.toolbar[data-v-b427fe8c]{display:flex;gap:6px;margin-bottom:8px;align-items:center}.input-row[data-v-b427fe8c]{display:flex;gap:10px;align-items:flex-end}.send-btn[data-v-b427fe8c]{height:74px;width:80px}.upload-progress[data-v-b427fe8c]{display:flex;align-items:center;gap:8px;margin-bottom:8px;padding:0 2px}.upload-label[data-v-b427fe8c]{font-size:12px;color:#909399;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100px}.device-preview[data-v-b427fe8c]{width:100%;height:160px;background:#000;border-radius:6px;margin-bottom:12px;overflow:hidden}.preview-video[data-v-b427fe8c]{width:100%;height:100%;-o-object-fit:contain;object-fit:contain}.preview-placeholder[data-v-b427fe8c]{display:flex;align-items:center;justify-content:center;height:100%;color:#909399;font-size:14px}