.websocket-client[data-v-2ab7816e]{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-2ab7816e]{display:flex;align-items:center;margin-bottom:.1rem;font-weight:500;font-size:.15rem}.status-indicator[data-v-2ab7816e]{display:inline-block;width:.12rem;height:.12rem;border-radius:50%;background-color:#dc3545;margin-right:.08rem}.status-indicator.connected[data-v-2ab7816e]{background-color:#28a745;animation:pulse-2ab7816e 1.5s ease-in-out infinite}@keyframes pulse-2ab7816e{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-2ab7816e]{margin-bottom:.12rem;display:flex;flex-direction:column;gap:.08rem}.client-id-input[data-v-2ab7816e]{margin-bottom:.08rem;width:100%}.client-id-input label[data-v-2ab7816e]{display:block;margin-bottom:.04rem;font-size:.14rem}.client-id-input input[data-v-2ab7816e]{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-2ab7816e]{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-2ab7816e]{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-2ab7816e]:not(.connected){background-color:#28a745;color:#fff}.websocket-controls .connection-toggle[data-v-2ab7816e]:not(.connected):hover:not(:disabled){background-color:#218838;transform:scale(1.05)}.websocket-controls .connection-toggle.connected[data-v-2ab7816e]{background-color:#6ece65;color:#fff}.websocket-controls .connection-toggle.connected[data-v-2ab7816e]:hover:not(:disabled){background-color:#8bc266;transform:scale(1.05)}.websocket-controls .connection-toggle[data-v-2ab7816e]:disabled{background-color:#7ed189;cursor:not-allowed;transform:none}.websocket-messages h3[data-v-2ab7816e]{margin-bottom:.08rem;font-size:.15rem;color:#333;padding-bottom:.04rem;border-bottom:1px solid #eee}.messages-container[data-v-2ab7816e]{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-2ab7816e]{margin-bottom:.04rem;padding:.04rem .08rem;border-radius:.03rem;font-size:.14rem;line-height:1.4}.message-time[data-v-2ab7816e]{color:#6c757d;font-size:.12rem;margin-right:.06rem;display:inline-block;min-width:.6rem}.message-content[data-v-2ab7816e]{color:#333}.device-info-component[data-v-5d403640]{width:100%;max-width:8rem;margin:0 auto}.binding-section[data-v-5d403640]{margin-bottom:.25rem;padding:.2rem;background-color:#f5f7fa;border-radius:.08rem;border:1px solid #e4e7ed}.binding-section h3[data-v-5d403640]{color:#303133;margin-bottom:.2rem;font-size:.18rem;text-align:center;font-weight:500}.form-item[data-v-5d403640]{margin-bottom:.18rem}.form-item label[data-v-5d403640]{display:block;margin-bottom:.08rem;font-weight:500;color:#495057;font-size:.14rem}.form-control[data-v-5d403640]{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-5d403640]:focus{outline:none;border-color:#007bff;box-shadow:0 0 0 .03rem rgba(0,123,255,.25)}.form-control[data-v-5d403640]:-moz-read-only{background-color:#f8f9fa;cursor:not-allowed}.form-control[data-v-5d403640]:read-only{background-color:#f8f9fa;cursor:not-allowed}.get-device-id-btn[data-v-5d403640]{margin-top:.08rem}.button-group[data-v-5d403640]{gap:.12rem}.device-id-input-group .form-control[data-v-5d403640]{flex:1}.button-group[data-v-5d403640]{display:flex;justify-content:center;margin:.2rem 0}.btn[data-v-5d403640]{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-5d403640]{background-color:#1989fa;color:#fff}.btn-warning[data-v-5d403640]{background-color:#ffc107;color:#212529}.btn-warning[data-v-5d403640]:hover{background-color:#e0a800}.btn-warning[data-v-5d403640]:disabled{background-color:#ccc;cursor:not-allowed}.btn-primary[data-v-5d403640]:hover{background-color:#409eff}.btn-success[data-v-5d403640]{background-color:#28a745;color:#fff}.btn-success[data-v-5d403640]:hover{background-color:#218838}.btn-info[data-v-5d403640]{background-color:#17a2b8;color:#fff}.btn-info[data-v-5d403640]:hover{background-color:#138496}.btn[data-v-5d403640]:disabled{background-color:#ccc;cursor:not-allowed;opacity:.6}.binding-result[data-v-5d403640]{margin-top:.15rem;padding:.12rem .15rem;border-radius:.06rem;text-align:center;font-weight:500}.binding-result.success[data-v-5d403640]{background-color:#d4edda;color:#155724;border:1px solid #c3e6cb}.binding-result.error[data-v-5d403640]{background-color:#f8d7da;color:#721c24;border:1px solid #f5c6cb}.device-id[data-v-5d403640]{margin-top:.25rem;padding:.15rem;background-color:#f9f9f9;border-radius:.08rem;border:1px solid #e4e7ed}.device-id h3[data-v-5d403640]{color:#333;margin-bottom:.1rem;font-size:.16rem;text-align:center}pre[data-v-5d403640]{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-5d403640]{font-size:.14rem;color:#303133;margin-bottom:.1rem;text-align:center;font-weight:500}.device-id-value[data-v-5d403640]{margin-top:.1rem}.login-modal-overlay[data-v-d7d350ce]{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-d7d350ce]{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-d7d350ce .3s ease-out}@keyframes modalFadeIn-d7d350ce{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.login-header[data-v-d7d350ce]{padding:.24rem .24rem .16rem;border-bottom:1px solid #e9ecef;text-align:center}.login-header h2[data-v-d7d350ce]{margin:0;color:#2c3e50;font-size:.24rem;font-weight:600}.login-body[data-v-d7d350ce]{padding:.24rem}.form-item[data-v-d7d350ce]{margin-bottom:.2rem}.form-item label[data-v-d7d350ce]{display:block;margin-bottom:.08rem;font-weight:500;color:#495057;font-size:.14rem}.form-item input[data-v-d7d350ce]{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-d7d350ce]:focus{outline:none;border-color:#007bff;box-shadow:0 0 0 .03rem rgba(0,123,255,.25)}.form-item input[data-v-d7d350ce]::-moz-placeholder{color:#adb5bd}.form-item input[data-v-d7d350ce]::placeholder{color:#adb5bd}.error-message[data-v-d7d350ce]{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-d7d350ce]{padding:.16rem .24rem .24rem;text-align:center}.login-btn[data-v-d7d350ce]{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-d7d350ce]:hover:not(:disabled){background-color:#0056b3}.login-btn[data-v-d7d350ce]: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;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:.14rem;line-height:1.5;color:#e2e8f0;background:#161e2e;min-height:100vh}.app-shell{background:#161e2e}.app-shell,.main-container{min-height:100vh;display:flex;flex-direction:column}.top-bar{position:sticky;top:0;z-index:100;background:rgba(22,30,46,.97);backdrop-filter:blur(.14rem);-webkit-backdrop-filter:blur(.14rem);border-bottom:1px solid rgba(59,130,246,.12);box-shadow:0 1px .03rem rgba(0,0,0,.2)}.top-bar-inner{max-width:14rem;margin:0 auto;padding:.1rem .24rem;gap:.2rem}.brand-section,.top-bar-inner{display:flex;align-items:center}.brand-section{gap:.1rem;flex-shrink:0}.brand-icon{width:.38rem;height:.38rem;background:linear-gradient(135deg,#3b82f6,#6366f1);border-radius:.1rem;display:flex;align-items:center;justify-content:center;box-shadow:0 .02rem .1rem rgba(59,130,246,.25)}.brand-icon svg{width:.2rem;height:.2rem;color:#fff}.brand-text h1{font-size:.16rem;font-weight:700;color:#f1f5f9;line-height:1.2}.brand-subtitle{font-size:.1rem;color:#64748b;font-weight:500;letter-spacing:.5px}.ws-section{flex:1;min-width:0}.ws-section :deep(.websocket-client){display:flex;align-items:center;gap:.14rem;padding:0}.ws-section :deep(.websocket-client>div:first-child){font-size:.12rem;color:#64748b;white-space:nowrap}.ws-section :deep(.websocket-status){font-size:.12rem;color:#94a3b8;display:flex;align-items:center;gap:.06rem;white-space:nowrap}.ws-section :deep(.status-indicator){width:.07rem;height:.07rem;border-radius:50%;background:#ef4444;flex-shrink:0}.ws-section :deep(.status-indicator.connected){background:#10b981;box-shadow:0 0 .06rem rgba(16,185,129,.5)}.ws-section :deep(.websocket-controls){display:flex;align-items:center;gap:.08rem}.ws-section :deep(.client-id-input){display:none}.ws-section :deep(.connection-toggle){padding:.05rem .14rem;border:1px solid hsla(0,0%,100%,.1);border-radius:.05rem;background:transparent;color:#94a3b8;font-size:.11rem;font-weight:600;cursor:pointer;transition:all .2s;white-space:nowrap}.ws-section :deep(.connection-toggle.connected){border-color:rgba(16,185,129,.3);color:#10b981;background:rgba(16,185,129,.08)}.ws-section :deep(.connection-toggle:hover:not(:disabled)){border-color:rgba(59,130,246,.35);color:#e2e8f0;background:rgba(59,130,246,.06)}.ws-section :deep(.connection-toggle:disabled){opacity:.35;cursor:not-allowed}.ws-section :deep(.websocket-messages){display:none}.actions-section{gap:.08rem;flex-shrink:0}.actions-section,.info-pill{display:flex;align-items:center}.info-pill{gap:.05rem;padding:.05rem .12rem;background:hsla(0,0%,100%,.05);border:1px solid hsla(0,0%,100%,.08);border-radius:.16rem;font-size:.11rem;color:#94a3b8;font-weight:500;white-space:nowrap}.info-pill svg{width:.14rem;height:.14rem;color:#64748b}.connection-pill{gap:.05rem}.connection-pill.connected{border-color:rgba(16,185,129,.25);color:#10b981}.connection-pill.connected .pill-dot{background:#10b981;box-shadow:0 0 .08rem rgba(16,185,129,.5)}.pill-dot{width:.06rem;height:.06rem;border-radius:50%;background:#ef4444;flex-shrink:0}.logout-btn{display:flex;align-items:center;gap:.05rem;padding:.06rem .16rem;background:transparent;border:1px solid rgba(239,68,68,.25);border-radius:.16rem;color:#f87171;font-size:.11rem;font-weight:600;cursor:pointer;transition:all .2s ease;white-space:nowrap}.logout-btn:hover{background:rgba(239,68,68,.1);border-color:rgba(239,68,68,.45)}.logout-btn:active{transform:scale(.97)}.logout-btn svg{width:.14rem;height:.14rem}.main-area{flex:1;max-width:14rem;width:100%;margin:0 auto;padding:.24rem}.content-grid{display:grid;grid-template-columns:1fr 1fr;gap:.2rem;align-items:start}.card{background:#1c2537;border:1px solid hsla(0,0%,100%,.06);border-radius:.12rem;overflow:hidden;transition:border-color .2s ease,box-shadow .2s ease}.card:hover{border-color:rgba(59,130,246,.18);box-shadow:0 .04rem .2rem rgba(0,0,0,.2)}.card-header{gap:.1rem;padding:.14rem .18rem;border-bottom:1px solid hsla(0,0%,100%,.05)}.card-header,.card-header-icon{display:flex;align-items:center}.card-header-icon{width:.32rem;height:.32rem;background:linear-gradient(135deg,#3b82f6,#6366f1);border-radius:.07rem;justify-content:center}.card-header-icon svg{width:.16rem;height:.16rem;color:#fff}.card-header h3{font-size:.14rem;font-weight:600;color:#f1f5f9}.card-body{padding:.18rem}.card-body :deep(.device-info-component){margin-top:0;padding:0;background:transparent;border:none}.card-body :deep(.binding-section){background:transparent;border:none;padding:0;margin-bottom:0}.card-body :deep(.binding-section h3){color:#f1f5f9;font-size:.14rem;font-weight:600;margin-bottom:.14rem}.card-body :deep(.form-item){margin-bottom:.12rem}.card-body :deep(.form-item label){color:#94a3b8;font-size:.11rem;font-weight:600;margin-bottom:.05rem;display:block;text-transform:uppercase;letter-spacing:.5px}.card-body :deep(.form-control){width:100%;padding:.09rem .12rem;border:1px solid hsla(0,0%,100%,.08);border-radius:.07rem;font-size:.13rem;background:hsla(0,0%,100%,.04);color:#e2e8f0;transition:border-color .2s}.card-body :deep(.form-control::-moz-placeholder){color:#475569}.card-body :deep(.form-control::placeholder){color:#475569}.card-body :deep(.form-control:focus){outline:none;border-color:rgba(59,130,246,.4);box-shadow:0 0 0 .03rem rgba(59,130,246,.08)}.card-body :deep(.form-control:-moz-read-only){background:hsla(0,0%,100%,.03);cursor:not-allowed;color:#64748b}.card-body :deep(.form-control:read-only){background:hsla(0,0%,100%,.03);cursor:not-allowed;color:#64748b}.card-body :deep(.get-device-id-btn){width:100%;padding:.09rem .18rem;background:linear-gradient(135deg,#3b82f6,#6366f1);color:#fff;border:none;border-radius:.07rem;font-size:.13rem;font-weight:600;cursor:pointer;transition:all .2s ease;margin-top:.06rem}.card-body :deep(.get-device-id-btn:hover){transform:translateY(-1px);box-shadow:0 .04rem .14rem rgba(59,130,246,.3)}.card-body :deep(.button-group){display:flex;gap:.08rem;margin-top:.14rem}.card-body :deep(.btn){flex:1;padding:.09rem .16rem;border:none;border-radius:.07rem;font-size:.12rem;font-weight:600;cursor:pointer;transition:all .2s ease;color:#fff}.card-body :deep(.btn-success){background:linear-gradient(135deg,#059669,#10b981)}.card-body :deep(.btn-success:hover:not(:disabled)){transform:translateY(-1px);box-shadow:0 .04rem .14rem rgba(16,185,129,.3)}.card-body :deep(.btn-info){background:linear-gradient(135deg,#3b82f6,#6366f1)}.card-body :deep(.btn-info:hover:not(:disabled)){transform:translateY(-1px);box-shadow:0 .04rem .14rem rgba(99,102,241,.3)}.card-body :deep(.btn-warning){background:linear-gradient(135deg,#f59e0b,#d97706)}.card-body :deep(.btn-warning:hover:not(:disabled)){transform:translateY(-1px);box-shadow:0 .04rem .14rem rgba(245,158,11,.3)}.card-body :deep(.btn:disabled){opacity:.4;cursor:not-allowed;transform:none}.card-body :deep(.binding-result){margin-top:.12rem;padding:.08rem .14rem;border-radius:.07rem;text-align:center;font-weight:500;font-size:.12rem}.card-body :deep(.binding-result.success){background:rgba(16,185,129,.1);color:#10b981;border:1px solid rgba(16,185,129,.2)}.card-body :deep(.binding-result.error){background:rgba(239,68,68,.1);color:#ef4444;border:1px solid rgba(239,68,68,.2)}.download-card .card-header{border-bottom:none;padding-bottom:0}.apk-download-btn{width:100%;display:flex;align-items:center;gap:.18rem;padding:.24rem .22rem;background:transparent;border:none;cursor:pointer;transition:background .2s ease;color:#e2e8f0}.apk-download-btn:hover{background:rgba(59,130,246,.04)}.dl-icon{width:.52rem;height:.52rem;background:linear-gradient(135deg,#3b82f6,#6366f1);border-radius:.12rem;display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 .03rem .14rem rgba(59,130,246,.25);transition:transform .2s ease}.apk-download-btn:hover .dl-icon{transform:scale(1.05)}.dl-icon svg{width:.26rem;height:.26rem;color:#fff}.dl-text{display:flex;flex-direction:column;gap:.03rem;text-align:left}.dl-title{font-size:.16rem;font-weight:700;color:#f1f5f9}.dl-desc{font-size:.12rem;color:#64748b;font-weight:500}.app-footer{text-align:center;padding:.18rem .24rem .22rem;border-top:1px solid hsla(0,0%,100%,.04);margin-top:auto}.footer-version{font-size:.11rem;color:#475569;font-weight:500;letter-spacing:1px}.app-shell.login-locked .app-footer,.app-shell.login-locked .main-area,.app-shell.login-locked .top-bar{filter:blur(.06rem);opacity:.15;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}::-webkit-scrollbar{width:.06rem;height:.06rem}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:hsla(0,0%,100%,.07);border-radius:.03rem}::-webkit-scrollbar-thumb:hover{background:hsla(0,0%,100%,.14)}@media (max-width:1024px){.content-grid{grid-template-columns:1fr}}@media (max-width:768px){.top-bar-inner{flex-direction:column;gap:.1rem;padding:.12rem .16rem}.ws-section{width:100%}.actions-section,.ws-section :deep(.websocket-client){flex-wrap:wrap;justify-content:center}.actions-section{width:100%}.main-area{padding:.16rem}.apk-download-btn{flex-direction:column;text-align:center;padding:.18rem}.dl-text{text-align:center;align-items:center}}