.blueprint[data-v-9bd62a78]{position:relative;flex:1;min-height:0;background:#0b111d;overflow:hidden}.bg[data-v-9bd62a78]{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:contain;image-rendering:auto}.grid[data-v-9bd62a78]{position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(rgba(255,255,255,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.08) 1px,transparent 1px);background-size:40px 40px}.marker[data-v-9bd62a78]{position:absolute;transform:translate(-50%,-50%);width:22px;height:22px;border-radius:50%;color:#fff;font:700 12px/22px sans-serif;text-align:center;cursor:pointer;box-shadow:0 0 0 1.5px #fff;transition:box-shadow .12s}.marker.sel[data-v-9bd62a78]{box-shadow:0 0 0 3px #2196f3,0 0 8px #2196f3aa;width:28px;height:28px;line-height:28px;font-size:14px}.table-wrap[data-v-4a30fe39]{border-top:1px solid #223;max-height:42vh;overflow-y:auto}.row[data-v-4a30fe39]{display:flex;align-items:center;height:46px;border-bottom:1px solid #1a2333;padding:0 10px}.row.sel[data-v-4a30fe39]{background:#2196f324}.thead[data-v-4a30fe39]{height:34px;color:#9aa;font-size:13px;border-bottom:1px solid #2a3a}.c1[data-v-4a30fe39]{width:46px;font-weight:700;color:#cfd}.c2[data-v-4a30fe39]{flex:1;background:transparent;border:0;color:#fff;font-size:14px;outline:none}.c2[data-v-4a30fe39]::placeholder{color:#556}.c3[data-v-4a30fe39]{width:92px;color:#9ab}.c4[data-v-4a30fe39]{flex:1;color:#9ab}.actions[data-v-405c51a6]{display:flex;gap:8px;padding:10px;border-top:1px solid #223}.actions button[data-v-405c51a6]{flex:1;height:46px;border:0;border-radius:8px;color:#fff;font-size:15px;font-weight:700;cursor:pointer}.blue[data-v-405c51a6]{background:#1976d2}.orange[data-v-405c51a6]{background:#f57c00}.red[data-v-405c51a6]{background:#e53935}.gray[data-v-405c51a6]{background:#37474f}*{box-sizing:border-box}html,body,#app{height:100%;margin:0}body{font-family:-apple-system,Microsoft YaHei,Noto Sans SC,sans-serif;background:#0e1420;color:#e6e6e6}.app{display:flex;flex-direction:column;height:100%}header{display:flex;align-items:center;gap:12px;padding:10px 14px;background:#131b2b;border-bottom:1px solid #223;font-size:15px}header .title{font-weight:700}header select{background:#0e1420;color:#e6e6e6;border:1px solid #334;border-radius:6px;padding:5px 8px}.conn{margin-left:auto;font-size:13px}.conn.on{color:#4caf50}.conn.off{color:#888}
