diff --git a/frontend/js/assistant.js b/frontend/js/assistant.js
index 4aa2701..0d10f79 100644
--- a/frontend/js/assistant.js
+++ b/frontend/js/assistant.js
@@ -358,10 +358,13 @@
'.asst-msg-assistant .asst-rich{color:#28324a;}',
'.asst-msg-ph{opacity:.6;}',
'.asst-msg-links{align-self:flex-start;font-size:.74rem;}',
- '.asst-modes{display:flex;gap:6px;margin:2px 0 8px;}',
- '.asst-mode{flex:1;border:1px solid #e6e3f2;background:#faf9fd;border-radius:9px;padding:6px 6px;font:700 .68rem Manrope,sans-serif;color:#64748b;cursor:pointer;transition:all .14s;}',
- '.asst-mode:hover{border-color:#9B5DE5;color:#9B5DE5;}',
- '.asst-mode.on{background:linear-gradient(135deg,#9B5DE5,#7d3fc8);border-color:transparent;color:#fff;box-shadow:0 3px 9px rgba(155,93,229,.32);}',
+ '.asst-modes{display:flex;gap:5px;margin:2px 0 9px;}',
+ '.asst-mode{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border:1px solid #ece9f6;background:#faf9fd;border-radius:11px;padding:7px 3px;font:700 .6rem Manrope,sans-serif;color:#64748b;cursor:pointer;transition:all .14s;}',
+ '.asst-mode .ic{width:15px;height:15px;opacity:.85;}',
+ '.asst-mode span{white-space:nowrap;}',
+ '.asst-mode:hover{border-color:#cdbdf2;color:#7e3eca;background:#fff;}',
+ '.asst-mode.on{background:linear-gradient(135deg,#9B5DE5,#7d3fc8);border-color:transparent;color:#fff;box-shadow:0 4px 11px rgba(155,93,229,.3);}',
+ '.asst-mode.on .ic{opacity:1;}',
'.asst-src{align-self:flex-start;font-size:.72rem;color:#8a94a6;}',
'.asst-src a{color:#7e3eca;font-weight:700;text-decoration:none;}',
'.asst-fb{align-self:flex-start;display:flex;gap:6px;}',
@@ -556,6 +559,14 @@
var FB_UP = '';
var FB_DOWN = '';
var MODE_PH = { answer: 'Спроси что угодно: «объясни…», «как…»', hint: 'Задача, по которой нужна подсказка…', check: 'Вставь своё решение — проверю…', draw: 'Опиши картинку: «кот-учёный, плоская иллюстрация»', quiz: 'Тема или текст — сгенерирую вопросы для банка' };
+ var _svg = function (p) { return ''; };
+ var MODE_DEFS = [
+ { m: 'answer', label: 'Ответ', title: 'Ответить на вопрос', ic: _svg('