/* ========================================================================
   showcase.css · CCD-20261018-CK-BOT-SHOWCASE-V3 — «Витрина бота» (#menu) как 3-колоночный Master-Workstation
   Структура бота · Верстак страницы · Инспектор [Превью | База знаний] — встык на сплиттерах Workbench.
   Слой ПОВЕРХ app_v2.css / screens.css / workbench.css / organizer.css / kb.css: переиспользует tk-side-tabs, segmented,
   pl3-canvas / pl3-fmt(-drawer) / pl3-pub / pl3-kb-* (Информирование), cap / dc-send / tk-revise-chip (Пульт), db-pop, tk-pop,
   omni-*, df-bar, grid-editor / grid-chip, studio-device / studio-msg / studio-key (эмулятор), menu-tree / menu-node (дерево)
   и добавляет только своё (mn3-*). В компонентах — только var(...). 2-й заход (18.10): капсула на всю ширину, шторка
   тулбара + эмодзи, системные кнопки под холстом, отступы телефона и Home Indicator, читалка БЗ, тёмные выпадающие списки.
   3-й заход (эргономика): единая карточка сообщения (текст + системные кнопки + тулбар), [⛶] в правом верхнем углу
   (.pl3-expand), кнопки-прямоугольники 8px как в мессенджерах, ряды до 5, инлайн-правка в пузыре, плашка эмодзи 264px,
   компактный переключатель заголовка, [?] модалки — тултипом платформы.
   Откат — убрать <link> в index.html (и вернуть menu*.js из _backup/20261018-showcase-v3/; 3-й заход — _backup/20261018-showcase-v3-r3/).
   ======================================================================== */

/* ---------- Каркас ---------- */
.mn3-wrap { display: flex; flex-direction: column; gap: 12px; }
.mn3-wrap .th-spacer { flex: 1; }
.mn3-tree, .mn3-edit, .mn3-insp {
  position: relative; display: flex; flex-direction: column; min-width: 0; min-height: 0; overflow: hidden; background: var(--surface);
}
.mn3-edit { container-type: inline-size; container-name: mn3edit; }
.mn3-insp { container-type: inline-size; container-name: mn3insp; }
@media (min-width: 1024px) {
  body.tk-focus .mn3-wrap.wb-root { flex-direction: row; flex: 1; min-height: 0; gap: 0; align-items: stretch; background: var(--surface); }
}
@media (max-width: 1023px) {
  .mn3-tree, .mn3-edit, .mn3-insp { border: 1px solid var(--border); border-radius: var(--r-l); box-shadow: var(--shadow-1); }
  .mn3-tree { max-height: 60vh; }
  .mn3-edit { min-height: 760px; }
  .mn3-insp { height: 860px; }
}

/* ---------- Кол 1 · Структура бота ---------- */
.mn3-tree { container-type: inline-size; container-name: mn3tree; }
.mn3-tree-head { flex: none; display: flex; flex-direction: column; gap: 9px; padding: 12px 14px 10px; border-bottom: 1px solid var(--border); }
.mn3-tree-title { display: flex; align-items: center; justify-content: space-between; gap: 8px; height: 30px; }
.mn3-tree-title h1 { margin: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }   /* кегль — единое правило H1 (polish.css) */
.mn3-tree-tools { display: flex; align-items: center; gap: 2px; flex: none; }
.mn3-tree-tools .icon-btn { width: 30px; height: 30px; color: var(--text-2); }
.mn3-tree .menu-tree-searchbox.mn3-tree-search { margin: 0; }
.mn3-tree-new { display: flex; align-items: center; gap: 6px; }
.mn3-tree-new .btn { gap: 6px; }
.mn3-tree-new.is-ro .btn { display: none; }
.mn3-tree-all { width: 28px; height: 28px; color: var(--text-2); }
.mn3-tree .menu-tree-list.mn3-tree-list { flex: 1; min-height: 0; max-height: none; border-top: 0; padding: 6px 8px 12px; }
.mn3-legend {
  flex: none; display: flex; flex-wrap: wrap; align-items: center; gap: 6px 14px; padding: 8px 14px 10px;
  border-top: 1px solid var(--border); font-size: 11.5px; color: var(--text-3);
}
.mn3-legend > span { display: inline-flex; align-items: center; gap: 6px; }
.status-dot.is-draft { border: none; background: var(--warn); box-shadow: 0 0 0 3px var(--warn-weak); }
.pill.mn3-rag { height: 16px; padding: 0 4px; font-size: 9.5px; background: var(--accent-weak); color: var(--accent-strong); letter-spacing: .02em; }
.pill.mn3-rag.pill-warn { background: var(--warn-weak); color: var(--warn); }
@container mn3tree (max-width: 330px) {
  .mn3-tree .menu-node .pill-ico, .mn3-tree .menu-node .pill:not(.mn3-rag) { display: none; }
}
.mn3-node-menu { display: flex; flex-direction: column; gap: 2px; min-width: 230px; }
.mn3-node-menu .nav-item.is-disabled { opacity: .45; cursor: not-allowed; }
.mn3-node-menu-note { padding: 6px 10px; }

/* ---------- Кол 2 · Верстак страницы ---------- */
.mn3-ed-skel { padding: 20px 18px; }
.mn3-ed-empty { flex: 1; display: flex; align-items: center; justify-content: center; padding: 24px; }
.mn3-ed-empty .empty-state { max-width: 420px; }
.mn3-ed-empty-acts { justify-content: center; margin-top: 12px; }
.mn3-ed-head { gap: 10px; padding: 0 12px 0 14px; }
.mn3-title { height: 38px; font-size: 18px; }
.mn3-emo { position: relative; flex: none; }
.mn3-emo-btn { gap: 4px; padding: 0 7px 0 8px; }
.mn3-emo-cur { font-size: 18px; line-height: 1; }
.mn3-emo-btn.is-empty .mn3-emo-cur { filter: grayscale(1); opacity: .55; }
/* Плашка эмодзи кнопки: строго под [😊 ▾], 6 колонок по 36px — крайний столбец не режется */
.db-pop.mn3-emo-pop { top: calc(100% + 6px); left: 0; right: auto; min-width: 0; width: 264px; padding: 10px; box-sizing: border-box; border-radius: 12px; }
.mn3-emo-grid { display: grid; grid-template-columns: repeat(6, 1fr); gap: 2px; }
.mn3-emo-pop .mn3-emo-grid { grid-template-columns: repeat(6, 36px); gap: 4px; justify-content: center; }
.mn3-emo-item {
  display: flex; align-items: center; justify-content: center; height: 36px; padding: 0; border: 0; border-radius: 8px;
  background: transparent; font-size: 20px; line-height: 1; cursor: pointer; transition: background-color .12s, transform .08s;
}
.mn3-emo-pop .mn3-emo-item { width: 36px; }
.mn3-emo-item:hover, .mn3-emo-item:focus-visible { background: var(--accent-weak); outline: none; }
.mn3-emo-item:active { transform: scale(.94); }
.mn3-canvas-foot .mn3-opts { flex: none; color: var(--text-2); }

/* Тело верстака скроллится целиком: метаданные · холст · системные кнопки */
.mn3-ed-body { gap: 10px; padding: 10px 14px 0; overflow-y: auto; }   /* низ — отступом карточки: под sticky-тулбаром не просвечивает текст */
.mn3-meta-wrap { flex: none; display: flex; flex-direction: column; gap: 7px; }
.mn3-meta { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 10px; min-width: 0; }
.mn3-slug {
  display: inline-flex; align-items: center; gap: 4px; height: 26px; padding: 0 9px; border-radius: 7px; background: var(--surface-2);
  font-size: 11.5px; color: var(--text); max-width: 190px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis;
}
.mn3-slug.is-edit { font-family: ui-monospace, SFMono-Regular, Consolas, monospace; border: 1px solid transparent; transition: border-color .15s; }
.mn3-slug.is-edit:focus-within { border-color: var(--accent); background: var(--surface); }
.mn3-slug-inp { width: 128px; min-width: 0; border: 0; outline: none; background: transparent; color: var(--text); font: inherit; padding: 0; }
.mn3-type .segmented-item { padding: 4px 10px; font-size: 12.5px; }
.mn3-status { display: inline-flex; align-items: center; gap: 7px; height: 26px; padding: 0 10px; border-radius: var(--r-full);
  font-size: 12px; font-weight: 600; white-space: nowrap; }
.mn3-status.is-on { background: var(--ok-weak); color: var(--ok); }
.mn3-status.is-draft { background: var(--warn-weak); color: var(--warn); }
/* Шапка: [😊 ▾] [Название] … статус в правом углу (4-й заход) */
.mn3-ed-head .mn3-title { flex: 1; min-width: 0; }
.mn3-ed-head .mn3-status { flex: none; margin-left: auto; }
@container mn3edit (max-width: 470px) { .mn3-ed-head .mn3-status span:not(.status-dot) { display: none; } .mn3-ed-head .mn3-status { padding: 0 8px; } }

/* Зона заголовка — верх карточки сообщения, под ней тонкая линия; справа место под [⛶] */
.mn3-tz { flex: none; display: flex; flex-direction: column; gap: 3px; padding: 9px 50px 8px 14px; border-bottom: 1px solid var(--border); }
.mn3-tz-check { display: inline-flex; align-items: center; gap: 7px; align-self: flex-start; font-size: 12px; color: var(--text-3); cursor: pointer; user-select: none; }
.mn3-tz-cb { flex: none; width: 14px; height: 14px; margin: 0; accent-color: var(--accent); cursor: pointer; }
.mn3-tz-inp {
  width: 100%; min-width: 0; height: 26px; margin: 0; padding: 0; border: 0; border-radius: 0; outline: none; background: transparent;
  color: var(--text); font: inherit; font-size: 15px; font-weight: 700; line-height: 26px;
}
.mn3-tz-inp.is-mirror { cursor: default; }
.mn3-tz-inp:not([readonly]) { box-shadow: inset 0 -1px 0 var(--border); }
.mn3-tz-inp:not([readonly]):focus { box-shadow: inset 0 -1.5px 0 var(--accent); }
.mn3-tz-inp::placeholder { font-size: 13px; font-weight: 400; color: var(--text-3); }
.cap.mn3-field { flex: none; height: 38px; padding: 0 12px; }
.mn3-field-inp { flex: 1; min-width: 0; height: 36px; font-size: 14px; }
.mn3-leaf-note { flex: none; }

/* Единая карточка сообщения — один лист (4-й заход): холст растёт на всю высоту текста (своего скролла нет), листается
   тело верстака; тулбар закреплён снизу карточки (sticky) и всегда на виду */
.pl3-canvas.mn3-canvas { flex: 1 0 auto; min-height: 360px; margin-bottom: 12px; }
.pl3-canvas.mn3-canvas.is-focus { margin: 0 auto; }
.mn3-canvas .pl3-canvas-in { flex: 1 0 auto; min-height: 0; cursor: text; }
.mn3-canvas .pl3-text {
  position: relative; inset: auto; display: block; width: 100%; min-height: 200px; padding: 10px 14px 12px;
  overflow-y: hidden; resize: none; scrollbar-gutter: auto;
}
.pl3-canvas.mn3-canvas.is-focus { overflow-y: auto; scrollbar-width: thin; }
.pl3-canvas.mn3-canvas.is-focus .pl3-text { padding: 20px 56px 24px; }
.pl3-canvas.mn3-canvas.is-focus .mn3-tz { padding: 16px 130px 12px 56px; }
.mn3-canvas .mn3-canvas-foot {
  position: sticky; bottom: 0; z-index: 5; gap: 8px; background: var(--surface); border-radius: 0 0 10px 10px;
}
.mn3-fmt .pl3-md-btn:disabled { opacity: .4; }
.mn3-count { margin-right: 2px; white-space: nowrap; }
.tk-pop.mn3-pop-clip { top: auto; bottom: calc(100% + 6px); left: 8px; width: 300px; }
.tk-pop.mn3-pop-emo { top: auto; bottom: calc(100% + 6px); left: 8px; width: 316px; max-height: 360px; overflow-y: auto; padding: 6px 8px 8px; scrollbar-width: thin; }
.mn3-pal-cap { padding: 6px 4px 3px; font-size: 11.5px; font-weight: 600; color: var(--text-3); }
.mn3-pal-grid { grid-template-columns: repeat(8, 1fr); }
.mn3-pal-grid .mn3-emo-item { height: 32px; font-size: 18px; }
.mn3-pop-note { padding: 6px 10px 4px; line-height: 1.4; }

/* Системные кнопки — аккордеон в карточке (4-й заход): свёрнут — одна тонкая планка «─ ⌨ … (N) ▾ ─»;
   раскрыт — просторный отступ от текста и ряды как клавиатура мессенджера (до 5), DnD */
.mn3-canvas .mn3-sys { flex: none; display: flex; flex-direction: column; gap: 0; padding: 2px 14px 6px; }
.mn3-canvas .mn3-sys.is-open { gap: 10px; margin-top: 24px; padding-bottom: 16px; }
.mn3-sys-cap {
  display: flex; align-items: center; gap: 8px; width: 100%; height: 26px; padding: 0; border: 0; border-radius: 6px; background: transparent;
  font: inherit; font-size: 12px; font-weight: 600; color: var(--text-3); white-space: nowrap; cursor: pointer;
}
.mn3-sys-cap:hover { color: var(--text-2); }
.mn3-sys-cap:hover .mn3-sys-line { background: var(--border-strong); }
.mn3-sys-cap:focus-visible { outline: none; box-shadow: 0 0 0 3px var(--accent-ring); }
.mn3-sys-cap .ico { flex: none; }
.mn3-sys-chev { display: inline-flex; flex: none; transition: transform .15s; }
.mn3-sys.is-open .mn3-sys-chev { transform: rotate(180deg); }
.mn3-sys-body[hidden] { display: none; }
.mn3-sys-line { flex: 1; height: 1px; background: var(--border); }
.mn3-sys-ed { position: relative; }
.mn3-sys-grid { gap: 2px; }
.mn3-sys-grid .grid-row { flex-wrap: nowrap; gap: 6px; padding: 2px 0; border-color: transparent; background: transparent; }
body.dnd-dragging .mn3-sys-grid .grid-row { border-color: var(--border); background: var(--surface-2); padding: 4px; }
/* Кнопка как в мессенджере: прямоугольник 8px, 34px, текст по центру; ✕ — в правом углу */
.mn3-sys-chip.grid-chip {
  flex: 1 1 0; min-width: 0; justify-content: center; gap: 5px; height: 34px; min-height: 34px; padding: 0 24px;
  border-radius: 8px; box-shadow: none; background: var(--key-bg); border-color: var(--key-border); color: var(--key-text);
  font-size: 13px; font-weight: 600;
}
.mn3-sys-chip .grid-chip-x { position: absolute; right: 4px; top: 50%; transform: translateY(-50%); width: 20px; height: 20px; min-width: 20px; }
.mn3-sys-grid .grid-row:has(> :nth-child(4)) .grid-chip-ico { display: none; }
.mn3-sys-grid .grid-row:has(> :nth-child(4)) .mn3-sys-chip.grid-chip { padding: 0 20px 0 8px; }
.mn3-sys-grid .grid-row-gap { height: 4px; }
.mn3-sys-chip { cursor: grab; }
.mn3-sys-chip:hover { border-color: var(--accent); }
.mn3-sys-chip .grid-chip-title { max-width: none; min-width: 0; }
.mn3-sys-empty { padding: 4px 2px; }
.mn3-sys-add-wrap { display: block; padding-top: 4px; }
.studio-addbtn.mn3-sys-add { display: inline-flex; width: auto; min-height: 32px; padding: 0 14px; font-size: 12.5px; border-radius: 8px; }
/* [?] модалки «Дополнительные параметры»: вид .hint-ico, подсказка — tooltip.js (не клипуется overflow модалки) */
.mn3-hint {
  display: inline-flex; align-items: center; justify-content: center; flex: none; width: 16px; height: 16px; border-radius: 50%;
  background: var(--surface-2); color: var(--text-3); font-size: 10.5px; font-weight: 700; line-height: 1; cursor: help; vertical-align: middle;
}
.mn3-hint:hover, .mn3-hint:focus { background: var(--accent-weak); color: var(--accent-strong); outline: none; }
.tk-pop.mn3-sys-pop { position: absolute; z-index: 40; width: 260px; }
.tk-pop-item.is-danger { color: var(--danger); }

/* Капсула ИИ: ползунок · поле на всю ширину · строка управления. Отступы над и под ручкой одинаковые (8px). */
.mn3-cap-wrap { flex: none; display: flex; flex-direction: column; padding: 0 14px 10px; border-top: 1px solid var(--border); }
.mn3-cap-grip {
  flex: none; height: 16px; margin: 0; display: flex; align-items: center; justify-content: center;
  cursor: row-resize; touch-action: none; outline: none; border-radius: 6px;
}
.mn3-cap-grip-bar { width: 36px; height: 4px; border-radius: var(--r-full); background: var(--border-strong); transition: background-color .15s, width .15s; }
.mn3-cap-grip:hover .mn3-cap-grip-bar, .mn3-cap-grip.on .mn3-cap-grip-bar, .mn3-cap-grip:focus-visible .mn3-cap-grip-bar { background: var(--accent); width: 56px; }
body.mn3-cap-dragging, body.mn3-cap-dragging * { cursor: row-resize !important; user-select: none !important; }
.cap.mn3-cap { flex-direction: column; align-items: stretch; gap: 2px; padding: 4px 6px 6px 12px; }
.mn3-cap-field { display: flex; align-items: flex-start; gap: 8px; min-width: 0; }
.mn3-cap-ico { flex: none; display: inline-flex; margin-top: 10px; color: var(--accent-strong); }
.cap textarea.mn3-cap-inp {
  flex: 1; width: 100%; min-width: 0; resize: none; overflow-y: auto; height: 36px; margin: 0; padding: 8px 0 8px;
  font-size: 13.5px; line-height: 20px; box-sizing: border-box; scrollbar-width: thin;
}
.mn3-cap-inp::placeholder { color: var(--text-3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mn3-cap-row { display: flex; align-items: center; flex-wrap: wrap; gap: 4px 6px; min-width: 0; }
/* ⚡ Быстрые команды — dropup платформы (.dc-quick / .db-pop.dc-pop.up, как в Пульте): раскрывается вверх над капсулой */
.mn3-quick { flex: none; }
.mn3-quick .db-pop.dc-pop { left: 0; right: auto; width: 290px; max-height: 340px; overflow-y: auto; scrollbar-width: thin; }
.mn3-quick .dc-quick-btn span { display: inline; }          /* платформа прячет подпись уже с 520px — у Витрины колонка уже */
@container mn3edit (max-width: 430px) { .mn3-quick .dc-quick-btn span { display: none; } }
.mn3-cap-acts { flex: none; display: flex; align-items: center; gap: 4px; margin-left: auto; }
.mn3-cap-row .icon-btn { width: 30px; height: 30px; color: var(--text-2); flex: none; }
.mn3-llm { position: relative; display: inline-flex; align-items: center; flex: none; }
.mn3-llm .db-pop { top: auto; bottom: calc(100% + 8px); left: auto; right: 0; }
.mn3-cap-send { height: 32px; }

/* Футер: второстепенное слева, главное справа */
.pl3-pub.mn3-foot { padding: 9px 14px 11px; }
.mn3-foot .pl3-pub-acts { gap: 4px; }
.mn3-foot .btn.pl3-ico-btn:disabled { opacity: .4; cursor: not-allowed; }
.mn3-foot .btn.pl3-ico-btn.pl3-danger:not(:disabled):hover { background: var(--danger-weak); }
.mn3-foot .pl3-unsaved { margin-left: 6px; }
.mn3-foot .btn.mn3-cta { gap: 7px; padding: 6px 16px; margin-left: 4px; }

.mn3-leave { line-height: 1.5; }
.mn3-leave-modal .modal-foot { flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.btn.mn3-leave-drop { gap: 6px; border: 1px solid color-mix(in srgb, var(--danger) 45%, transparent); }

@container mn3edit (max-width: 560px) {
  .mn3-type .segmented-item:not(.on) .seg-ico + span { display: none; }
  .mn3-type .segmented-item { padding: 5px 8px; }
  .mn3-slug { max-width: 150px; }
  .mn3-slug-inp { width: 96px; }
}
@container mn3edit (max-width: 470px) {
  .mn3-cap-send span, .mn3-llm .llm-chip-sub { display: none; }
  .mn3-cap-send { padding: 0 11px; }
  .mn3-foot .pl3-unsaved span { display: none; }
}

/* ---------- Кол 3 · Инспектор ---------- */
.mn3-insp-head { flex: none; display: flex; align-items: center; gap: 6px; padding: 0 8px 0 10px; border-bottom: 1px solid var(--border); }
.mn3-insp-head .tk-side-tabs { flex: 1; min-width: 0; }
.mn3-insp-body { flex: 1; min-height: 0; display: flex; flex-direction: column; }
.mn3-insp-pane { display: none; flex: 1; min-height: 0; flex-direction: column; }
.mn3-insp-pane.on { display: flex; }
.mn3-insp .tk-side-tab { flex: 1 1 0; min-width: 0; }
.mn3-insp .tk-side-tab .tk-side-tab-label { display: inline; }

.mn3-pv-bar { flex: none; display: flex; align-items: center; gap: 8px; padding: 8px 10px; border-bottom: 1px solid var(--border); }
.mn3-pv-bar .segmented-item { padding: 4px 10px; font-size: 12.5px; }
.mn3-pv-farmer { width: 32px; height: 32px; color: var(--text-2); }
.mn3-pv-farmer.on { background: var(--accent-weak); color: var(--accent-strong); }
.studio-stage.mn3-stage { flex: 1; min-height: 0; border: 0; border-radius: 0; box-shadow: none; }
/* Постоянный зазор вокруг корпуса: 28px вьюпорта = 10px рамки (box-shadow) + 18px воздуха — при любой ширине колонки */
.mn3-stage .studio-viewport { align-items: stretch; padding: 28px; }
.mn3-stage .studio-device.is-mobile { margin: 0 auto; height: 100%; max-height: 812px; min-height: 460px; }
.mn3-stage .studio-device.is-pc { height: 100%; max-height: 900px; min-height: 420px; }
/* Тонкий Home Indicator вместо широкого бруска */
.mn3-stage .phone-home {
  width: 134px; height: 4px; margin: 7px auto 8px; border-radius: 100px; opacity: 1;
  background: rgba(15, 23, 42, .3); box-shadow: 0 0 3px rgba(15, 23, 42, .12);
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .mn3-stage .phone-home { background: rgba(255, 255, 255, .3); box-shadow: 0 0 3px rgba(255, 255, 255, .15); }
}
:root[data-theme="dark"] .mn3-stage .phone-home { background: rgba(255, 255, 255, .3); box-shadow: 0 0 3px rgba(255, 255, 255, .15); }
/* Инлайн-кнопки мессенджера: прямоугольник 8px (не пилюля), 34–36px, 13px; ряд до 5 — служебные значки уступают место тексту */
.mn3-stage .studio-krow { gap: 5px; }
.mn3-stage .studio-key { min-height: 36px; padding: 6px 8px; gap: 4px; border-radius: 8px; font-size: 13px; }
.mn3-stage .studio-key.sys { min-height: 34px; padding: 5px 8px; font-size: 12.5px; }
.mn3-stage .studio-addbtn { min-height: 34px; border-radius: 8px; }
.mn3-stage .studio-krow:has(> :nth-child(3)) .studio-key-grip { display: none; }
.mn3-stage .studio-krow:has(> :nth-child(4)) .studio-key-ico,
.mn3-stage .studio-krow:has(> :nth-child(4)) .studio-key-go,
.mn3-stage .studio-krow:has(> :nth-child(4)) .studio-key-mini { display: none; }
.mn3-stage .studio-key.sys[data-dnd-item] { cursor: grab; }
/* Инлайн-правка текста в пузыре: поле Markdown на ширине пузыря — те же кегль и интерлиньяж, что у текста бота */
/* Инлайн-правка: пузырь не меняет ширину (замораживается в JS), поле — 100% ширины, без рамок, тот же фон и шрифт */
.mn3-pv-editable { cursor: text; border-radius: 4px; transition: background-color .12s; }
.mn3-pv-editable:not(.is-inline):hover { background: color-mix(in srgb, var(--accent) 6%, transparent); }
.mn3-pv-inline {
  display: block; width: 100%; box-sizing: border-box; margin: 0; padding: 0; border: 0; border-radius: 0; outline: none; box-shadow: none;
  background: transparent; color: inherit; font: inherit; font-size: 13.5px; line-height: 1.5; caret-color: var(--accent);
  resize: none; overflow: hidden; white-space: pre-wrap; overflow-wrap: anywhere;
}
/* Корпус телефона: лента чата ужимается, поле «Сообщение» и микрофон всегда внизу экрана */
body .mn3-stage .studio-device.is-mobile .studio-chat, body .mn3-stage .studio-device.is-pc .studio-chat { min-height: 0; }
.mn3-stage .studio-composer { flex: none; }
/* Паритет с верстаком: ✕ на системной кнопке (при наведении) и «+ Системная кнопка» */
.mn3-pv-x {
  position: absolute; top: -6px; right: -6px; z-index: 2; width: 18px; height: 18px; padding: 0; display: inline-flex; align-items: center;
  justify-content: center; border: 1px solid var(--border-strong); border-radius: 50%; background: var(--surface); color: var(--text-2);
  cursor: pointer; opacity: 0; transition: opacity .12s;
}
.studio-key.sys:hover .mn3-pv-x, .mn3-pv-x:focus-visible { opacity: 1; }
.mn3-pv-x:hover { color: var(--danger); border-color: var(--danger); }
.mn3-stage .studio-addbtn.mn3-pv-sysadd { min-height: 32px; font-size: 12.5px; }
.tk-pop.mn3-sys-pop.mn3-sys-pop-fixed { position: fixed; z-index: 300; }
.studio-msg.mn3-pv-cover { padding: 4px; min-width: 0; border-radius: 18px 18px 18px 6px; }
.mn3-pv-cover img { display: block; width: 100%; max-height: 220px; object-fit: cover; border-radius: 14px; }
.mn3-pv-note { text-align: center; padding: 2px 6px; }
@container mn3insp (max-width: 380px) {
  .mn3-pv-bar .segmented-item .seg-ico + span { display: none; }
}

/* База знаний: категории, поиск + сортировка, карточки, встроенная читалка */
.mn3-kb-list-view, .mn3-kb-reader { flex: 1; min-height: 0; display: flex; flex-direction: column; }
#mnPaneKb .omni-top.mn3-kb-top { flex: none; position: static; margin: 0; padding: 10px 12px 8px; border-bottom: 0; gap: 8px; }
.mn3-kb-search { display: flex; gap: 6px; min-width: 0; }
.mn3-kb-search .omni-field { flex: 1; min-width: 0; height: 36px; }
.mn3-kb-sort {
  flex: none; max-width: 150px; height: 36px; padding: 0 8px; border: 1px solid var(--border-strong); border-radius: 10px;
  background: var(--surface); color: var(--text); font: inherit; font-size: 12.5px; cursor: pointer;
}
.mn3-kb-sort:focus { outline: none; border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-ring); }
.mn3-kb-cats { gap: 5px; }
.mn3-kb-cats .omni-chip { gap: 5px; }
.mn3-kb-ctx:empty { display: none; }
.mn3-kb-ctx { flex: none; padding: 0 14px 6px; }
#mnPaneKb .omni-results { flex: 1; min-height: 0; overflow-y: auto; padding: 0 12px 16px; scrollbar-width: thin; }
.omni-card.mn3-kb-card { cursor: pointer; transition: border-color .15s; }
.omni-card.mn3-kb-card:hover, .omni-card.mn3-kb-card:focus-visible { border-color: var(--accent); outline: none; }
.mn3-kb-card .omni-actions { justify-content: space-between; align-items: center; }
.mn3-kb-open { display: inline-flex; align-items: center; gap: 4px; }
.mn3-kb-ins, .mn3-kb-whole { gap: 6px; }
.mn3-kb-ins { color: var(--accent-strong); }
.mn3-kb-ins:hover { background: var(--accent-weak); }
.mn3-kb-ins:disabled, .mn3-kb-whole:disabled { color: var(--text-3); background: transparent; cursor: not-allowed; }
.pl3-kb-read.mn3-kb-read { overflow-y: auto; }
.mn3-kb-p { white-space: pre-wrap; }
.mn3-kb-read-foot { flex: none; display: flex; justify-content: flex-end; padding: 8px 12px 10px; border-top: 1px solid var(--border); }

/* ---------- Тёмная тема: выпадающие списки без белых провалов (платформенно, для всех <select> ЛК) ---------- */
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) select { color-scheme: dark; }
  :root:not([data-theme="light"]) select option, :root:not([data-theme="light"]) select optgroup { background: var(--surface-2); color: var(--text); }
}
:root[data-theme="dark"] select { color-scheme: dark; }
:root[data-theme="dark"] select option, :root[data-theme="dark"] select optgroup { background: var(--surface-2); color: var(--text); }
