diff --git a/tests/integration/test_astrolabe_plotly_visualization.py b/tests/integration/test_astrolabe_plotly_visualization.py
index db51d42a..d8f7775f 100644
--- a/tests/integration/test_astrolabe_plotly_visualization.py
+++ b/tests/integration/test_astrolabe_plotly_visualization.py
@@ -245,20 +245,27 @@ The visualization should show this document as a point in PCA-reduced space.
# Phase 5: Navigate to Astrolabe and perform search
await navigate_to_astrolabe_main(page)
- # Fill search query - find the Astrolabe search input specifically
- # The NcTextField component wraps the input in a div with class mcp-search-input.
- # 30s (not 10s): the Astrolabe SPA can be slow to mount its search
- # component on a loaded CI runner (observed on nc32) — matches the
- # loading-indicator budget below.
- search_input = page.locator(".mcp-search-input input")
+ # Find the Astrolabe search field. The published app differs across
+ # the NC matrix: NC31 pulls astrolabe <=0.24 (NcTextField -> ,
+ # submits on Enter); NC32 pulls astrolabe >=0.25 (NcTextArea ->
+ #