.WebSocketTester_connectRow___la5q{display:flex;gap:8px;align-items:center;max-width:640px;margin-bottom:12px}.WebSocketTester_urlWrap__NqCB1{flex:1 1;position:relative;display:flex;align-items:center}.WebSocketTester_urlInput__D3d0W{width:100%;height:38px;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:6px;color:var(--color-text-primary);font-size:14px;padding:0 40px 0 12px;outline:none;box-sizing:border-box}.WebSocketTester_urlInput__D3d0W:focus{border-color:var(--color-blue)}.WebSocketTester_urlInput__D3d0W:disabled{opacity:.55;cursor:not-allowed}.WebSocketTester_statusDot__cWx4f{position:absolute;right:12px;width:9px;height:9px;border-radius:50%;flex-shrink:0}.WebSocketTester_statusDot__cWx4f.WebSocketTester_disconnected__KjBEG{background:var(--color-text-secondary)}.WebSocketTester_statusDot__cWx4f.WebSocketTester_connecting__pwx3f{background:var(--color-orange);animation:WebSocketTester_pulse__RMHN1 1s ease-in-out infinite}.WebSocketTester_statusDot__cWx4f.WebSocketTester_connected__5t590{background:var(--color-green)}@keyframes WebSocketTester_pulse__RMHN1{0%,to{opacity:1}50%{opacity:.3}}.WebSocketTester_warnBanner__3v4nb{max-width:640px;background:rgba(240,136,62,.1);border:1px solid rgba(240,136,62,.3);border-radius:6px;padding:8px 12px;font-size:13px;color:var(--color-orange);margin-bottom:12px}.WebSocketTester_warnBanner__3v4nb code{font-family:var(--font-mono);font-size:12px}.WebSocketTester_closeInfo__Sx8CO{font-size:13px;color:var(--color-text-secondary);margin-bottom:12px;max-width:640px}.WebSocketTester_sendRow__N0eQz{display:flex;gap:8px;align-items:flex-start;max-width:640px;margin-bottom:16px}.WebSocketTester_sendInput__nrzI3{flex:1 1;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:6px;color:var(--color-text-primary);font-size:14px;font-family:var(--font-mono);padding:8px 12px;resize:none;outline:none;line-height:1.5;box-sizing:border-box}.WebSocketTester_sendInput__nrzI3:focus{border-color:var(--color-blue)}.WebSocketTester_logHeader__zd8fT{display:flex;align-items:center;gap:12px;margin-bottom:8px}.WebSocketTester_logTitle__QTjyU{flex:1 1;font-size:10px;font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-secondary);display:flex;align-items:center;gap:6px}.WebSocketTester_frameCount__f1dhZ{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:10px;padding:1px 7px;font-size:11px;letter-spacing:0;text-transform:none;font-weight:400;color:var(--color-text-secondary)}.WebSocketTester_btnClear__2mi48{background:transparent;border:1px solid var(--color-border);color:var(--color-text-secondary);border-radius:6px;padding:4px 10px;font-size:12px;cursor:pointer}.WebSocketTester_btnClear__2mi48:hover{border-color:var(--color-text-secondary);color:var(--color-text-primary)}.WebSocketTester_log__KVWoL{display:flex;flex-direction:column;gap:4px;max-height:520px;overflow-y:auto;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:8px;padding:8px;margin-bottom:24px}.WebSocketTester_frame___wjJI{border-radius:6px;padding:6px 10px;border:1px solid transparent}.WebSocketTester_frameSent__ukE0T{background:rgba(0,170,255,.06);border-color:rgba(0,170,255,.15);align-self:flex-end;max-width:92%;width:100%}.WebSocketTester_frameReceived__5KkOD{background:rgba(63,185,80,.06);border-color:rgba(63,185,80,.15);align-self:flex-start;max-width:92%;width:100%}.WebSocketTester_frameMeta__QdrBw{display:flex;align-items:center;gap:8px;margin-bottom:4px}.WebSocketTester_frameDir__rA_SS{font-size:11px;font-weight:var(--font-weight-semibold);letter-spacing:.04em}.WebSocketTester_frameSent__ukE0T .WebSocketTester_frameDir__rA_SS{color:var(--color-blue)}.WebSocketTester_frameReceived__5KkOD .WebSocketTester_frameDir__rA_SS{color:var(--color-green)}.WebSocketTester_frameTs__xdYCk{font-size:11px;color:var(--color-text-secondary);font-family:var(--font-mono)}.WebSocketTester_frameTag__nLRrU{font-size:10px;background:rgba(0,170,255,.15);color:var(--color-blue);border-radius:4px;padding:1px 5px;font-weight:var(--font-weight-semibold);letter-spacing:.04em;text-transform:uppercase}.WebSocketTester_framePayload__hzZ1H{font-family:var(--font-mono);font-size:12px;line-height:1.55;color:var(--color-text-primary);white-space:pre-wrap;word-break:break-all;margin:0}.WebSocketTester_waitingMsg__dtn58{font-size:13px;color:var(--color-text-secondary);margin-bottom:24px}