Bone Flow Editor v1.0.30 - Viewport Sync / Actual Chromium QA
================================================================

Root cause confirmed in actual Chromium:
- On sample/document replacement, workspace.zoom/pan changed first.
- Shape/Joint shadow worlds still retained the previous document CSS transform.
- New Shape geometry was measured with stale transform.
- v1.0.29 reproduced table-flow overlap and collapsed FIELD Joint.

Fix:
- BoneFlowRenderer.render() synchronizes Shape.setViewport() and Joint.setViewport()
  immediately after clear/buildMap and BEFORE Shape creation / geometry measurement.
- Layout/FIT/3-pane UI/Flow Settings structure are otherwise unchanged.

Actual Chromium QA (exact packaged HTML/runtime loaded in an in-memory harness):
1600 x 1000 sequence:
- basic-flow PREVIEW OK zoom 0.7019 clipped 0
- data-flow PREVIEW OK zoom 0.6032 clipped 0
- decision-flow PREVIEW OK zoom 0.4816 clipped 0
- table-flow PREVIEW OK zoom 0.6897 clipped 0 outline gap 68.96 screen px FIELD Joint present
- error-flow PARTIAL PREVIEW zoom 0.6534 clipped 0
- table-flow PREVIEW OK zoom 0.6897 clipped 0 outline gap 68.96 screen px FIELD Joint present

1200 x 800 sequence:
- basic/data/decision/table/error/table: all clipped 0
- table outline gap 49.97 screen px before/after error-flow switch

Interaction QA:
- Sample Display button recovered/enabled after every load: PASS
- JS runtime errors: 0
- Console errors: 0
- Flow Settings opens after each of all five samples: PASS
- table-flow after error-flow switch remains separated and FIELD Joint remains present: PASS

Static package QA:
- JS syntax: 33 files PASS
- VSIX integrity: PASS
- User VS Code runtime: NOT YET CONFIRMED
