diff --git a/tradein-mvp/frontend/src/components/trade-in/v2/AnalyticsView.tsx b/tradein-mvp/frontend/src/components/trade-in/v2/AnalyticsView.tsx
index 6d972aa4..64861eca 100644
--- a/tradein-mvp/frontend/src/components/trade-in/v2/AnalyticsView.tsx
+++ b/tradein-mvp/frontend/src/components/trade-in/v2/AnalyticsView.tsx
@@ -327,204 +327,196 @@ export default function AnalyticsView({
)}
- {/* история цен */}
-
-
-
-
- История цен в этом доме
-
-
- {historyNote}
-
-
-
- {avitoPts.length > 0 ? (
-
-
- Avito
-
- ) : null}
- {yandexPts.length > 0 ? (
-
-
- Яндекс
-
- ) : null}
-
-
-
- История цен в этом доме — медиана ₽/м² по годам
-
- {PH_GRID_Y.map((y) => (
-
- ))}
-
-
- {data.priceHistory.yTicks.map((t) => (
-
- {t.label}
-
- ))}
-
-
- {data.priceHistory.years.map((yr, i) => (
-
- {yr}
-
- ))}
-
-
-
- {/* white dot fill on an accent ring — documented one-off, no token (design l.568) */}
-
- Архивные объявления Avito · нажмите, чтобы открыть
- {avitoPts.map((p, i) => (
-
- ))}
-
-
- {yandexDots.map((p, i) => (
-
- ))}
-
- setHoverHist(true)}
- onMouseLeave={() => setHoverHist(false)}
- onClick={() => onNavigate?.(2)}
- >
- {hoverPts.map((p, i) => (
-
- ))}
-
-
- {hoverHist ? (
- // Dark navy tooltip surface + white text — documented one-off literals
- // matching the design (l.572); no token equivalent.
+ {/* история цен + цена × срок продажи — side by side so both fit the
+ fixed-height v2 artboard panel without scrolling (reclaims ~194px
+ of vertical space vs. stacking; chart heights unchanged). */}
+
+ {/* история цен */}
+
-
- Архивные объявления этого дома
+
+
+ История цен в этом доме
+
+
+ {historyNote}
+
-
- Нажмите, чтобы открыть список →
+
+ {avitoPts.length > 0 ? (
+
+
+ Avito
+
+ ) : null}
+ {yandexPts.length > 0 ? (
+
+
+ Яндекс
+
+ ) : null}
- ) : null}
-
-
- {/* цена × срок продажи (детально) */}
-
-
-
-
- Цена × срок продажи
-
-
- Зависимость цены от срока экспозиции · {data.scatterDetail.note}
-
-
-
-
+ История цен в этом доме — медиана ₽/м² по годам
+
+ {PH_GRID_Y.map((y) => (
+
+ ))}
+
+
+ {data.priceHistory.yTicks.map((t) => (
+
+ {t.label}
+
+ ))}
+
+
+ {data.priceHistory.years.map((yr, i) => (
+
+ {yr}
+
+ ))}
+
+
+
+ {/* white dot fill on an accent ring — documented one-off, no token (design l.568) */}
+
+ Архивные объявления Avito · нажмите, чтобы открыть
+ {avitoPts.map((p, i) => (
+
+ ))}
+
+
+ {yandexDots.map((p, i) => (
+
+ ))}
+
+ setHoverHist(true)}
+ onMouseLeave={() => setHoverHist(false)}
+ onClick={() => onNavigate?.(2)}
+ >
+ {hoverPts.map((p, i) => (
+
+ ))}
+
+
+ {hoverHist ? (
+ // Dark navy tooltip surface + white text — documented one-off literals
+ // matching the design (l.572); no token equivalent.
+
-
- аналоги
-
- {data.scatterDetail.deals.length > 0 ? (
+
+ Архивные объявления этого дома
+
+
+ Нажмите, чтобы открыть список →
+
+
+ ) : null}
+
+
+ {/* цена × срок продажи (детально) */}
+
+
+
+
+ Цена × срок продажи
+
+
+ Зависимость цены от срока экспозиции · {data.scatterDetail.note}
+
+
+
- сделки
+ аналоги
- ) : null}
-
+ {data.scatterDetail.deals.length > 0 ? (
+
+
+ сделки
+
+ ) : null}
- объект
-
+ >
+
+ объект
+
+
+
+ Цена × срок продажи
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {data.scatterDetail.deals.map((p, i) => (
+
+ ))}
+
+
+ {data.scatterDetail.analogs.map((p, i) => (
+
+ ))}
+
+
+ {/* V4: subjectApprox marks a fallback x (est_days_on_market unknown) —
+ dashed ring + title flag it as an estimate, not a measurement. */}
+ {data.scatterDetail.subjectApprox ? (
+
+ Срок продажи — оценка (~90 дн.), точных данных нет
+
+ ) : null}
+
+
+
+
+ {data.scatterDetail.yTicks.map((t) => (
+
+ {t.label}
+
+ ))}
+
+
+ {data.scatterDetail.xTicks.map((t) => (
+
+ {t.label}
+
+ ))}
+
+
+ СРОК ПРОДАЖИ, ДН
+
+
+ ЦЕНА ПРОДАЖИ, ₽
+
+
-
- Цена × срок продажи
-
-
-
-
-
-
-
-
-
-
-
-
-
- {data.scatterDetail.deals.map((p, i) => (
-
- ))}
-
-
- {data.scatterDetail.analogs.map((p, i) => (
-
- ))}
-
-
- {/* V4: subjectApprox marks a fallback x (est_days_on_market unknown) —
- dashed ring + title flag it as an estimate, not a measurement. */}
- {data.scatterDetail.subjectApprox ? (
-
- Срок продажи — оценка (~90 дн.), точных данных нет
-
- ) : null}
-
-
-
-
- {data.scatterDetail.yTicks.map((t) => (
-
- {t.label}
-
- ))}
-
-
- {data.scatterDetail.xTicks.map((t) => (
-
- {t.label}
-
- ))}
-
-
- СРОК ПРОДАЖИ, ДН
-
-
- ЦЕНА ПРОДАЖИ, ₽
-
-
);