diff --git a/docs/cabinet.html b/docs/cabinet.html
index 1046101..79fd8b8 100644
--- a/docs/cabinet.html
+++ b/docs/cabinet.html
@@ -437,6 +437,9 @@ function go(n){
if(n===3)renderDocs();
if(n===4)renderAnalysis();
if(n===5)renderSpecPane();
+ // Telegram: нативная «Назад» + лёгкий хаптик
+ const _tg=window.__tg;
+ if(_tg){try{if(_tg.BackButton){if(n&&n!==1)_tg.BackButton.show();else _tg.BackButton.hide();}if(_tg.HapticFeedback)_tg.HapticFeedback.selectionChanged();}catch(e){}}
// Док «Спросить Елену» — только на этапах 3-5
const dock=document.getElementById("askDock");
if(dock){
@@ -568,9 +571,20 @@ async function askElena(){
}
async function init(){
- // Telegram Mini App: развернуть на весь экран + токен из start_param если нет в URL
+ // ── Telegram Mini App: полноценная интеграция ──
const tg=window.Telegram&&window.Telegram.WebApp;
- if(tg){try{tg.ready();tg.expand();const sp=tg.initDataUnsafe&&tg.initDataUnsafe.start_param;if(sp&&!token){token=sp;localStorage.setItem("cab_token",token);}}catch(e){}}
+ if(tg){try{
+ tg.ready();tg.expand();
+ const sp=tg.initDataUnsafe&&tg.initDataUnsafe.start_param;if(sp&&!token){token=sp;localStorage.setItem("cab_token",token);}
+ // Тема под бренд: тёмная шапка, светлый фон
+ if(tg.setHeaderColor)tg.setHeaderColor('#0F0F1A');
+ if(tg.setBackgroundColor)tg.setBackgroundColor('#F5F6F8');
+ // Защита от случайного смахивания вниз (не терять диалог)
+ if(tg.enableClosingConfirmation)tg.enableClosingConfirmation();
+ // Нативная кнопка «Назад» Telegram → к разговору с Еленой
+ if(tg.BackButton){tg.BackButton.onClick(()=>go(1));}
+ window.__tg=tg;
+ }catch(e){}}
if(token){const r=await fetch(`${API}/api/project/${token}`);if(r.ok){state=await r.json();renderAll();
fillProfile();
// Если профиль не заполнен — открыть вкладку Профиль