body{background:#f5f5f5;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}#app{width:100%;min-height:100vh}*{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.login-container[data-v-e1cc2efa]{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);justify-content:center;align-items:center;min-height:100vh;display:flex}.login-box[data-v-e1cc2efa]{background:#fff;border-radius:10px;width:350px;padding:40px;box-shadow:0 10px 40px #0003}h1[data-v-e1cc2efa]{text-align:center;color:#667eea;margin-bottom:10px}h2[data-v-e1cc2efa]{text-align:center;color:#333;margin-bottom:30px}.form-group[data-v-e1cc2efa]{margin-bottom:15px}.form-group.remember[data-v-e1cc2efa]{text-align:left;margin-bottom:20px}.form-group.remember label[data-v-e1cc2efa]{color:#666;cursor:pointer;align-items:center;gap:8px;font-size:14px;display:flex}.form-group.remember input[type=checkbox][data-v-e1cc2efa]{cursor:pointer;width:auto}input[data-v-e1cc2efa]{box-sizing:border-box;border:1px solid #ddd;border-radius:5px;width:100%;padding:12px;font-size:14px}button[data-v-e1cc2efa]{color:#fff;cursor:pointer;background:#667eea;border:none;border-radius:5px;width:100%;padding:12px;font-size:16px}button[data-v-e1cc2efa]:disabled{background:#aaa}.register-link[data-v-e1cc2efa]{text-align:center;color:#666;margin-top:20px}.register-link a[data-v-e1cc2efa]{color:#667eea}.register-container[data-v-78920436]{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);justify-content:center;align-items:center;min-height:100vh;display:flex}.register-box[data-v-78920436]{background:#fff;border-radius:10px;width:350px;padding:40px;box-shadow:0 10px 40px #0003}h1[data-v-78920436]{text-align:center;color:#667eea;margin-bottom:10px}h2[data-v-78920436]{text-align:center;color:#333;margin-bottom:30px}.form-group[data-v-78920436]{margin-bottom:20px}.email-group[data-v-78920436]{gap:10px;display:flex}.email-group input[data-v-78920436]{flex:1}.btn-send-code[data-v-78920436]{color:#fff;cursor:pointer;white-space:nowrap;background:#667eea;border:none;border-radius:5px;width:100px;padding:12px 8px;font-size:12px}.btn-send-code[data-v-78920436]:disabled{cursor:not-allowed;background:#ccc}input[data-v-78920436]{box-sizing:border-box;border:1px solid #ddd;border-radius:5px;width:100%;padding:12px;font-size:14px}.password-tip[data-v-78920436]{color:#e74c3c;margin-top:-15px;margin-bottom:15px;font-size:12px}.password-tip .valid[data-v-78920436]{color:#2ecc71}button[type=submit][data-v-78920436]{color:#fff;cursor:pointer;background:#667eea;border:none;border-radius:5px;width:100%;padding:12px;font-size:16px}button[data-v-78920436]:disabled{background:#aaa}.login-link[data-v-78920436]{text-align:center;color:#666;margin-top:20px}.login-link a[data-v-78920436]{color:#667eea}.home-container[data-v-cf1e6de4]{height:100vh;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;display:flex;position:relative}.error-toast[data-v-cf1e6de4]{color:#fff;z-index:9999;cursor:pointer;background:#ff4757;border-radius:8px;padding:12px 24px;animation:.3s slideDown-cf1e6de4;position:fixed;top:20px;left:50%;transform:translate(-50%);box-shadow:0 4px 12px #0000004d}@keyframes slideDown-cf1e6de4{0%{top:-50px}to{top:20px}}.sidebar[data-v-cf1e6de4]{color:#fff;background:#1a1a2e;flex-direction:column;width:280px;display:flex}.sidebar-header[data-v-cf1e6de4]{border-bottom:1px solid #333;justify-content:space-between;align-items:center;padding:15px;display:flex}.sidebar-header h2[data-v-cf1e6de4]{color:#e94560;margin:0;font-size:16px}.header-buttons[data-v-cf1e6de4]{align-items:center;gap:8px;display:flex}.header-buttons button[data-v-cf1e6de4]{cursor:pointer;color:#fff;background:#333;border:none;border-radius:5px;width:30px;height:30px;font-size:16px}.header-buttons button[data-v-cf1e6de4]:hover{background:#444}.ws-indicator[data-v-cf1e6de4]{color:#2ecc71;font-size:12px}.friend-requests[data-v-cf1e6de4]{background:#16213e;padding:10px}.request-title[data-v-cf1e6de4]{color:#e94560;margin-bottom:8px;font-size:12px}.request-item[data-v-cf1e6de4]{background:#e94560;border-radius:5px;justify-content:space-between;align-items:center;margin-bottom:5px;padding:8px;display:flex}.request-item .nickname[data-v-cf1e6de4]{font-size:13px}.request-actions[data-v-cf1e6de4]{gap:5px;display:flex}.btn-accept[data-v-cf1e6de4],.btn-reject[data-v-cf1e6de4]{cursor:pointer;border:none;border-radius:3px;width:24px;height:24px;font-size:12px}.btn-accept[data-v-cf1e6de4]{color:#fff;background:#2ecc71}.btn-reject[data-v-cf1e6de4]{color:#fff;background:#95a5a6}.friend-list[data-v-cf1e6de4]{flex:1;padding:10px;overflow-y:auto}.list-title[data-v-cf1e6de4]{color:#888;margin-bottom:8px;font-size:12px}.friend-item[data-v-cf1e6de4]{cursor:pointer;border-radius:8px;align-items:center;margin-bottom:5px;padding:10px;transition:background .2s;display:flex;position:relative}.friend-item[data-v-cf1e6de4]:hover,.friend-item.active[data-v-cf1e6de4]{background:#333}.avatar[data-v-cf1e6de4]{background:#e94560;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;margin-right:12px;font-size:16px;font-weight:700;transition:background .2s;display:flex}.avatar.online[data-v-cf1e6de4]{background:#2ecc71}.info[data-v-cf1e6de4]{flex:1;min-width:0}.info .name[data-v-cf1e6de4]{white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:600;overflow:hidden}.info .status[data-v-cf1e6de4]{color:#666;font-size:11px}.info .status.online[data-v-cf1e6de4]{color:#2ecc71}.unread-badge[data-v-cf1e6de4]{color:#fff;text-align:center;background:#e94560;border-radius:10px;min-width:18px;padding:2px 6px;font-size:11px;position:absolute;right:40px}.btn-delete[data-v-cf1e6de4]{color:#666;cursor:pointer;opacity:0;background:0 0;border:none;font-size:14px;transition:opacity .2s}.friend-item:hover .btn-delete[data-v-cf1e6de4]{opacity:1}.empty-tip[data-v-cf1e6de4]{text-align:center;color:#666;padding:20px;font-size:13px}.user-info[data-v-cf1e6de4]{background:#0f0f1a;border-top:1px solid #333;align-items:center;padding:15px;display:flex}.user-avatar[data-v-cf1e6de4]{background:#e94560;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;margin-right:12px;font-weight:700;display:flex}.user-details[data-v-cf1e6de4]{flex:1;min-width:0}.user-details .username[data-v-cf1e6de4]{white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:600;display:block;overflow:hidden}.user-details .tongyue-no[data-v-cf1e6de4]{color:#666;font-size:11px}.btn-logout[data-v-cf1e6de4]{cursor:pointer;color:#fff;background:#e94560;border:none;border-radius:5px;padding:8px 12px;font-size:12px}.chat-area[data-v-cf1e6de4]{background:#f5f5f5;flex-direction:column;flex:1;display:flex}.chat-header[data-v-cf1e6de4]{background:#fff;border-bottom:1px solid #eee;justify-content:space-between;align-items:center;padding:15px 20px;display:flex}.chat-info .chat-name[data-v-cf1e6de4]{font-size:16px;font-weight:700;display:block}.chat-info .chat-id[data-v-cf1e6de4]{color:#888;margin-top:2px;font-size:12px;display:block}.friend-status[data-v-cf1e6de4]{color:#666;background:#ddd;border-radius:10px;margin-left:8px;padding:2px 8px;font-size:11px}.friend-status.online[data-v-cf1e6de4]{color:#2ecc71;background:#e8f5e9}.chat-actions[data-v-cf1e6de4]{gap:10px;display:flex}.btn-delete-chat[data-v-cf1e6de4]{cursor:pointer;color:#fff;background:#ef5350;border:none;border-radius:5px;padding:6px 12px;font-size:12px}.messages[data-v-cf1e6de4]{flex-direction:column;flex:1;gap:15px;padding:20px;display:flex;overflow-y:auto}.loading-tip[data-v-cf1e6de4]{text-align:center;color:#888;padding:10px;font-size:13px}.message[data-v-cf1e6de4]{max-width:70%}.message.self[data-v-cf1e6de4]{align-self:flex-end}.message-content[data-v-cf1e6de4]{word-wrap:break-word;background:#fff;border-radius:16px;padding:12px 16px;box-shadow:0 1px 2px #0000001a}.message.self .message-content[data-v-cf1e6de4]{color:#fff;background:#e94560}.message-time[data-v-cf1e6de4]{color:#aaa;text-align:right;margin-top:5px;font-size:11px}.message.self .message-time[data-v-cf1e6de4]{text-align:right}.input-area[data-v-cf1e6de4]{background:#fff;border-top:1px solid #eee;align-items:flex-end;gap:12px;padding:15px 20px;display:flex}.input-area textarea[data-v-cf1e6de4]{resize:none;border:1px solid #ddd;border-radius:8px;flex:1;min-height:44px;max-height:120px;padding:12px;font-family:inherit;font-size:14px}.input-area textarea[data-v-cf1e6de4]:focus{border-color:#e94560;outline:none}.input-area button[data-v-cf1e6de4]{color:#fff;cursor:pointer;background:#e94560;border:none;border-radius:8px;padding:12px 24px;font-size:14px;font-weight:600}.input-area button[data-v-cf1e6de4]:disabled{cursor:not-allowed;background:#ccc}.input-area button[data-v-cf1e6de4]:hover:not(:disabled){background:#d63850}.no-chat[data-v-cf1e6de4]{color:#aaa;flex-direction:column;flex:1;justify-content:center;align-items:center;display:flex}.welcome-text[data-v-cf1e6de4]{color:#e94560;margin-bottom:10px;font-size:24px;font-weight:700}.welcome-tip[data-v-cf1e6de4]{font-size:14px}.modal[data-v-cf1e6de4]{z-index:100;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content[data-v-cf1e6de4]{background:#fff;border-radius:12px;width:320px;padding:25px;box-shadow:0 10px 40px #0003}.modal-content h3[data-v-cf1e6de4]{text-align:center;color:#333;margin:0 0 20px}.modal-content input[data-v-cf1e6de4]{box-sizing:border-box;border:1px solid #ddd;border-radius:8px;width:100%;margin:10px 0;padding:12px;font-size:14px}.modal-content input[data-v-cf1e6de4]:focus{border-color:#e94560;outline:none}.modal-buttons[data-v-cf1e6de4]{gap:10px;margin-top:20px;display:flex}.modal-buttons button[data-v-cf1e6de4]{cursor:pointer;border:none;border-radius:8px;flex:1;padding:12px;font-size:14px;font-weight:600}.btn-primary[data-v-cf1e6de4]{color:#fff;background:#e94560}.btn-primary[data-v-cf1e6de4]:hover{background:#d63850}.btn-secondary[data-v-cf1e6de4]{color:#666;background:#f5f5f5}.btn-secondary[data-v-cf1e6de4]:hover{background:#eee}.error-msg[data-v-cf1e6de4]{color:#e94560;text-align:center;margin-top:10px;font-size:13px}.profile-modal[data-v-cf1e6de4]{width:360px}.profile-item[data-v-cf1e6de4]{margin-bottom:15px}.profile-item label[data-v-cf1e6de4]{color:#888;margin-bottom:6px;font-size:12px;display:block}.api-key-box[data-v-cf1e6de4]{gap:10px;display:flex}.api-key-input[data-v-cf1e6de4]{background:#f5f5f5;flex:1;font-size:11px}.btn-small[data-v-cf1e6de4]{color:#fff;cursor:pointer;white-space:nowrap;background:#e94560;border:none;border-radius:5px;padding:8px 12px;font-size:12px}.admin-container[data-v-1d31ab34]{background:#f5f5f5;min-height:100vh}.admin-header[data-v-1d31ab34]{color:#fff;background:#667eea;justify-content:space-between;align-items:center;padding:20px;display:flex}.admin-header h1[data-v-1d31ab34]{margin:0;font-size:20px}.btn-logout[data-v-1d31ab34]{color:#fff;cursor:pointer;background:#fff3;border:none;border-radius:4px;padding:8px 16px}.tabs[data-v-1d31ab34]{background:#fff;border-bottom:1px solid #eee;gap:10px;padding:0 20px;display:flex}.tabs button[data-v-1d31ab34]{cursor:pointer;color:#666;background:0 0;border:none;border-bottom:2px solid #0000;padding:15px 20px}.tabs button.active[data-v-1d31ab34]{color:#667eea;border-bottom-color:#667eea}.tab-content[data-v-1d31ab34]{padding:20px}.stats-grid[data-v-1d31ab34]{grid-template-columns:repeat(3,1fr);gap:20px;display:grid}.stat-card[data-v-1d31ab34]{text-align:center;background:#fff;border-radius:8px;padding:30px;box-shadow:0 2px 8px #0000001a}.stat-value[data-v-1d31ab34]{color:#667eea;font-size:36px;font-weight:700}.stat-label[data-v-1d31ab34]{color:#666;margin-top:10px}.toolbar[data-v-1d31ab34]{background:#fff;border-radius:8px;gap:10px;margin-bottom:15px;padding:15px;display:flex}.search-input[data-v-1d31ab34]{border:1px solid #ddd;border-radius:4px;flex:1;padding:10px}.btn-search[data-v-1d31ab34],.btn-refresh[data-v-1d31ab34]{cursor:pointer;border:none;border-radius:4px;padding:10px 20px}.btn-search[data-v-1d31ab34]{color:#fff;background:#667eea}.btn-refresh[data-v-1d31ab34]{color:#333;background:#ddd}.data-table[data-v-1d31ab34]{border-collapse:collapse;background:#fff;border-radius:8px;width:100%;overflow:hidden}.data-table th[data-v-1d31ab34],.data-table td[data-v-1d31ab34]{text-align:left;border-bottom:1px solid #eee;padding:12px 15px}.data-table th[data-v-1d31ab34]{background:#f8f8f8;font-weight:600}.status.active[data-v-1d31ab34]{color:#52c41a}.status.disabled[data-v-1d31ab34]{color:#ff4d4f}.btn-action[data-v-1d31ab34]{cursor:pointer;background:#fff;border:1px solid #ddd;border-radius:4px;margin-right:5px;padding:5px 10px}.btn-danger[data-v-1d31ab34]{color:#fff;cursor:pointer;background:#ff4d4f;border:none;border-radius:4px;padding:5px 10px}.pagination[data-v-1d31ab34]{justify-content:center;align-items:center;gap:15px;margin-top:15px;display:flex}.pagination button[data-v-1d31ab34]{cursor:pointer;background:#fff;border:1px solid #ddd;border-radius:4px;padding:8px 15px}.config-form[data-v-1d31ab34]{background:#fff;border-radius:8px;max-width:500px;padding:30px}.config-item[data-v-1d31ab34]{margin-bottom:20px}.config-item label[data-v-1d31ab34]{margin-bottom:8px;font-weight:600;display:block}.config-item input[data-v-1d31ab34],.config-item select[data-v-1d31ab34]{box-sizing:border-box;border:1px solid #ddd;border-radius:4px;width:100%;padding:10px}.btn-save[data-v-1d31ab34]{color:#fff;cursor:pointer;background:#667eea;border:none;border-radius:4px;width:100%;padding:12px;font-size:16px}
