.websocket-client[data-v-154d66ee]{background-color:#f8f9fa;border-radius:.06rem;padding:.12rem;margin-bottom:.15rem;box-shadow:0 1px .03rem rgba(0,0,0,.1)}.websocket-status[data-v-154d66ee]{display:flex;align-items:center;margin-bottom:.1rem;font-weight:500;font-size:.15rem}.status-indicator[data-v-154d66ee]{display:inline-block;width:.12rem;height:.12rem;border-radius:50%;background-color:#dc3545;margin-right:.08rem}.status-indicator.connected[data-v-154d66ee]{background-color:#28a745;animation:pulse-154d66ee 1.5s ease-in-out infinite}@keyframes pulse-154d66ee{0%{box-shadow:0 0 0 0 rgba(40,167,69,.7);transform:scale(1)}70%{box-shadow:0 0 0 .08rem rgba(40,167,69,0);transform:scale(1.2)}to{box-shadow:0 0 0 0 rgba(40,167,69,0);transform:scale(1)}}.websocket-controls[data-v-154d66ee]{margin-bottom:.12rem;display:flex;flex-direction:column;gap:.08rem}.client-id-input[data-v-154d66ee]{margin-bottom:.08rem;width:100%}.client-id-input label[data-v-154d66ee]{display:block;margin-bottom:.04rem;font-size:.14rem}.client-id-input input[data-v-154d66ee]{padding:.08rem .12rem;border:1px solid #ddd;border-radius:.04rem;font-size:.14rem;width:calc(100% - .24rem);box-sizing:border-box}.websocket-controls button[data-v-154d66ee]{padding:.08rem .14rem;border:none;border-radius:.04rem;cursor:pointer;font-size:.14rem;transition:background-color .3s;min-width:1rem}.websocket-controls .connection-toggle[data-v-154d66ee]{width:.6rem;height:.6rem;min-width:.6rem;border-radius:50%;border:none;cursor:pointer;font-size:.14rem;font-weight:700;transition:all .3s ease;display:flex;align-items:center;justify-content:center;margin:0 auto;box-shadow:0 .02rem .08rem rgba(0,0,0,.2);padding:0}.websocket-controls .connection-toggle[data-v-154d66ee]:not(.connected){background-color:#28a745;color:#fff}.websocket-controls .connection-toggle[data-v-154d66ee]:not(.connected):hover:not(:disabled){background-color:#218838;transform:scale(1.05)}.websocket-controls .connection-toggle.connected[data-v-154d66ee]{background-color:#6c757d;color:#fff}.websocket-controls .connection-toggle.connected[data-v-154d66ee]:hover:not(:disabled){background-color:#5a6268;transform:scale(1.05)}.websocket-controls .connection-toggle[data-v-154d66ee]:disabled{background-color:#adb5bd;cursor:not-allowed;transform:none}.websocket-messages h3[data-v-154d66ee]{margin-bottom:.08rem;font-size:.15rem;color:#333;padding-bottom:.04rem;border-bottom:1px solid #eee}.messages-container[data-v-154d66ee]{max-height:1.8rem;overflow-y:auto;background-color:#fff;border-radius:.04rem;padding:.08rem;border:1px solid #e9ecef;font-size:.14rem}.message-item[data-v-154d66ee]{margin-bottom:.04rem;padding:.04rem .08rem;border-radius:.03rem;font-size:.14rem;line-height:1.4}.message-time[data-v-154d66ee]{color:#6c757d;font-size:.12rem;margin-right:.06rem;display:inline-block;min-width:.6rem}.message-content[data-v-154d66ee]{color:#333}.device-info-component[data-v-07bbcd69]{width:100%;max-width:8rem;margin:0 auto}.binding-section[data-v-07bbcd69]{margin-bottom:.25rem;padding:.2rem;background-color:#f5f7fa;border-radius:.08rem;border:1px solid #e4e7ed}.binding-section h3[data-v-07bbcd69]{color:#303133;margin-bottom:.2rem;font-size:.18rem;text-align:center;font-weight:500}.form-item[data-v-07bbcd69]{margin-bottom:.18rem}.form-item label[data-v-07bbcd69]{display:block;margin-bottom:.08rem;font-weight:500;color:#495057;font-size:.14rem}.form-control[data-v-07bbcd69]{width:100%;padding:.12rem .15rem;border:1px solid #dee2e6;border-radius:.06rem;font-size:.16rem;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;color:#495057;background-color:#fff;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.form-control[data-v-07bbcd69]:focus{outline:none;border-color:#007bff;box-shadow:0 0 0 .03rem rgba(0,123,255,.25)}.form-control[data-v-07bbcd69]:-moz-read-only{background-color:#f8f9fa;cursor:not-allowed}.form-control[data-v-07bbcd69]:read-only{background-color:#f8f9fa;cursor:not-allowed}.get-device-id-btn[data-v-07bbcd69]{margin-top:.08rem}.button-group[data-v-07bbcd69]{gap:.12rem}.device-id-input-group .form-control[data-v-07bbcd69]{flex:1}.button-group[data-v-07bbcd69]{display:flex;justify-content:center;margin:.2rem 0}.btn[data-v-07bbcd69]{padding:.12rem .24rem;border:none;border-radius:.06rem;font-size:.16rem;cursor:pointer;transition:all .15s ease-in-out;font-weight:500}.btn-primary[data-v-07bbcd69]{background-color:#1989fa;color:#fff}.btn-warning[data-v-07bbcd69]{background-color:#ffc107;color:#212529}.btn-warning[data-v-07bbcd69]:hover{background-color:#e0a800}.btn-warning[data-v-07bbcd69]:disabled{background-color:#ccc;cursor:not-allowed}.btn-primary[data-v-07bbcd69]:hover{background-color:#409eff}.btn-success[data-v-07bbcd69]{background-color:#28a745;color:#fff}.btn-success[data-v-07bbcd69]:hover{background-color:#218838}.btn-info[data-v-07bbcd69]{background-color:#17a2b8;color:#fff}.btn-info[data-v-07bbcd69]:hover{background-color:#138496}.btn[data-v-07bbcd69]:disabled{background-color:#ccc;cursor:not-allowed;opacity:.6}.binding-result[data-v-07bbcd69]{margin-top:.15rem;padding:.12rem .15rem;border-radius:.06rem;text-align:center;font-weight:500}.binding-result.success[data-v-07bbcd69]{background-color:#d4edda;color:#155724;border:1px solid #c3e6cb}.binding-result.error[data-v-07bbcd69]{background-color:#f8d7da;color:#721c24;border:1px solid #f5c6cb}.device-id[data-v-07bbcd69]{margin-top:.25rem;padding:.15rem;background-color:#f9f9f9;border-radius:.08rem;border:1px solid #e4e7ed}.device-id h3[data-v-07bbcd69]{color:#333;margin-bottom:.1rem;font-size:.16rem;text-align:center}pre[data-v-07bbcd69]{white-space:pre-wrap;word-wrap:break-word;font-family:monospace;font-size:.14rem;color:#606266;line-height:1.5;text-align:center;background-color:#fff;padding:.1rem;border-radius:.04rem}.device-id-type[data-v-07bbcd69]{font-size:.14rem;color:#303133;margin-bottom:.1rem;text-align:center;font-weight:500}.device-id-value[data-v-07bbcd69]{margin-top:.1rem}.login-modal-overlay[data-v-bf38b152]{position:fixed;top:0;left:0;right:0;bottom:0;background-color:rgba(0,0,0,.7);display:flex;align-items:center;justify-content:center;z-index:9999}.login-modal[data-v-bf38b152]{background-color:#fff;border-radius:.12rem;box-shadow:0 .08rem .32rem rgba(0,0,0,.2);width:90%;max-width:4rem;padding:0;animation:modalFadeIn-bf38b152 .3s ease-out}@keyframes modalFadeIn-bf38b152{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.login-header[data-v-bf38b152]{padding:.24rem .24rem .16rem;border-bottom:1px solid #e9ecef;text-align:center}.login-header h2[data-v-bf38b152]{margin:0;color:#2c3e50;font-size:.24rem;font-weight:600}.login-body[data-v-bf38b152]{padding:.24rem}.form-item[data-v-bf38b152]{margin-bottom:.2rem}.form-item label[data-v-bf38b152]{display:block;margin-bottom:.08rem;font-weight:500;color:#495057;font-size:.14rem}.form-item input[data-v-bf38b152]{width:100%;padding:.12rem .15rem;border:1px solid #dee2e6;border-radius:.06rem;font-size:.14rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;box-sizing:border-box}.form-item input[data-v-bf38b152]:focus{outline:none;border-color:#007bff;box-shadow:0 0 0 .03rem rgba(0,123,255,.25)}.form-item input[data-v-bf38b152]::-moz-placeholder{color:#adb5bd}.form-item input[data-v-bf38b152]::placeholder{color:#adb5bd}.error-message[data-v-bf38b152]{color:#dc3545;background-color:#f8d7da;border:1px solid #f5c6cb;border-radius:.04rem;padding:.1rem .12rem;font-size:.14rem;margin-top:-.1rem;margin-bottom:.1rem}.login-footer[data-v-bf38b152]{padding:.16rem .24rem .24rem;text-align:center}.login-btn[data-v-bf38b152]{width:100%;padding:.12rem .24rem;background-color:#007bff;color:#fff;border:none;border-radius:.06rem;font-size:.16rem;font-weight:500;cursor:pointer;transition:background-color .15s ease-in-out}.login-btn[data-v-bf38b152]:hover:not(:disabled){background-color:#0056b3}.login-btn[data-v-bf38b152]:disabled{background-color:#ccc;cursor:not-allowed;opacity:.6}.confirm-modal-overlay[data-v-524acd7a]{position:fixed;top:0;left:0;right:0;bottom:0;background-color:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:10000}.confirm-modal[data-v-524acd7a]{background-color:#fff;border-radius:.08rem;box-shadow:0 .04rem .16rem rgba(0,0,0,.2);width:90%;max-width:4rem;padding:0;animation:modalFadeIn-524acd7a .2s ease-out}@keyframes modalFadeIn-524acd7a{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.confirm-header[data-v-524acd7a]{padding:.2rem .2rem .1rem;border-bottom:1px solid #e9ecef}.confirm-header h3[data-v-524acd7a]{margin:0;color:#2c3e50;font-size:.18rem;font-weight:600}.confirm-body[data-v-524acd7a]{padding:.2rem}.confirm-body p[data-v-524acd7a]{margin:0;color:#495057;font-size:.15rem;line-height:1.5}.confirm-footer[data-v-524acd7a]{padding:.1rem .2rem .2rem;display:flex;gap:.12rem;justify-content:flex-end}.cancel-btn[data-v-524acd7a],.confirm-btn[data-v-524acd7a]{padding:.1rem .2rem;border:none;border-radius:.04rem;font-size:.14rem;font-weight:500;cursor:pointer;transition:background-color .15s ease-in-out;min-width:.8rem}.cancel-btn[data-v-524acd7a]{background-color:#6c757d;color:#fff}.cancel-btn[data-v-524acd7a]:hover{background-color:#5a6268}.confirm-btn[data-v-524acd7a]{background-color:#007bff;color:#fff}.confirm-btn[data-v-524acd7a]:hover{background-color:#0056b3}*{box-sizing:border-box}*,body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}body{margin:0;padding:0;font-size:.16rem;line-height:1.5;color:#333}.robot-script-page,body{background-color:#f8f9fa}.robot-script-page{min-height:100vh;padding:.2rem;transition:background-color .3s ease}.robot-script-page.connected{background-color:#e3f2fd}.robot-script-page.login-locked{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;filter:blur(.02rem);opacity:.5}.robot-script-page.login-locked *,.robot-script-page.login-locked .container{pointer-events:none}.container{max-width:8rem;margin:0 auto;padding:0}.header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.3rem}.header h1{margin:0;text-align:left}.logout-btn{padding:.08rem .16rem;background-color:#dc3545;color:#fff;border:none;border-radius:.04rem;font-size:.14rem;font-weight:500;cursor:pointer;transition:background-color .15s ease-in-out}.logout-btn:hover{background-color:#c82333}h1{color:#2c3e50;font-size:.28rem;font-weight:600}h2{color:#343a40;margin-top:.25rem;margin-bottom:.15rem;font-size:.2rem;font-weight:500}.button-section,.log-section,.platform-select,.script-config,.version-info{margin-bottom:.25rem}input,select{width:100%;padding:.12rem .15rem;border:1px solid #dee2e6;border-radius:.06rem;color:#495057;background-color:#fff;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}input,input:focus,select,select:focus{font-size:.16rem;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}input:focus,select:focus{outline:none;border-color:#007bff;box-shadow:0 0 0 .03rem rgba(0,123,255,.25)}.form-item{margin-bottom:.18rem}.form-item label{display:block;margin-bottom:.06rem;font-weight:500;color:#495057;font-size:.14rem}.button-section{display:flex;gap:.12rem;flex-wrap:wrap;align-items:center}button{padding:.12rem .24rem;border:none;border-radius:.06rem;font-size:.16rem;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;cursor:pointer;font-weight:500;transition:all .15s ease-in-out}.start-btn{background-color:#007bff;color:#fff}.start-btn:hover{background-color:#0056b3}.start-btn:disabled{background-color:#ccc;cursor:not-allowed;opacity:.6}.stop-btn{background-color:#dc3545;color:#fff}.stop-btn:hover{background-color:#c82333}.check-btn{background-color:#28a745;color:#fff}.check-btn:hover{background-color:#1e7e34}.version-info{padding:.15rem;background-color:#e3f2fd;border-radius:.06rem;border-left:.04rem solid #2196f3}.version-info p{margin:.05rem 0;font-size:.14rem;color:#1565c0}.log-section{border-top:1px solid #e9ecef;padding-top:.25rem}.log-content{max-height:3rem;overflow-y:auto;border:1px solid #dee2e6;border-radius:.06rem;padding:.15rem;background-color:#f8f9fa}.log-item{margin-bottom:.08rem;font-family:Courier New,Courier,monospace;font-size:.14rem;line-height:1.5;color:#495057}