diff --git a/B05_Profile/B05_Profile_UI_RouteEdit_Recommend.ts b/B05_Profile/B05_Profile_UI_RouteEdit_Recommend.ts
index 46dcd9320..abe1232d2 100644
--- a/B05_Profile/B05_Profile_UI_RouteEdit_Recommend.ts
+++ b/B05_Profile/B05_Profile_UI_RouteEdit_Recommend.ts
@@ -198,7 +198,7 @@ export function openRecommendModal(params: RecommendParams): void {
-
+
@@ -397,8 +397,8 @@ export function openRecommendModal(params: RecommendParams): void {
input.disabled = busy;
});
q
("[data-target-row]").hidden = logic !== "gradeline";
- rerun.hidden = !dirty;
- rerun.disabled = busy || invalid.size > 0;
+ // 측점 맞춤 오른쪽 · 늘 보임 — 바꾼 것이 있을 때만 켜짐(383-3)
+ rerun.disabled = busy || !dirty || invalid.size > 0;
const view = shownChoice();
applyButton.disabled = busy || dirty || !view || invalid.size > 0;
const shown = metricsLines(view?.metrics ?? null);
diff --git a/B05_Profile/B05_Profile_UI_Style_RouteRecommend.css b/B05_Profile/B05_Profile_UI_Style_RouteRecommend.css
index 301a55451..91ea17858 100644
--- a/B05_Profile/B05_Profile_UI_Style_RouteRecommend.css
+++ b/B05_Profile/B05_Profile_UI_Style_RouteRecommend.css
@@ -409,6 +409,12 @@
align-self: flex-start;
}
+/* 측점 맞춤 · 재계산 한 줄(383-3) */
+.b05-routerec__row {
+ display: flex;
+ gap: var(--spacing-8);
+}
+
.b05-routerec__lines {
display: flex;
flex-direction: column;
diff --git a/resources/tester/test_383_3_rerun_row.py b/resources/tester/test_383_3_rerun_row.py
new file mode 100644
index 000000000..b117b10c8
--- /dev/null
+++ b/resources/tester/test_383_3_rerun_row.py
@@ -0,0 +1,20 @@
+"""383-3 노선 추천 모달 [재계산] — 측점 맞춤 오른쪽 같은 줄 · 늘 보임 · 바꾼 것 있을 때만 켜짐.
+
+./venv/Scripts/python.exe -m pytest resources/tester/test_383_3_rerun_row.py -q
+"""
+
+import re
+from pathlib import Path
+
+ROOT = Path(__file__).resolve().parents[2]
+B05 = ROOT / "B05_Profile"
+
+
+def test_재계산_한_줄_늘_보임_바꿨을_때만_켜짐() -> None:
+ ts = (B05 / "B05_Profile_UI_RouteEdit_Recommend.ts").read_text(encoding="utf-8")
+ assert re.search(r'