/* 0.3.53: оболочка по списку Антона 20.09 (снимки ChatGPT): рельс свёрнутой панели с иконками и профилем, окно поиска,
   галерея результатов, экран нового чата, выбор модели в строке ввода, плашка рукописи как у аудио. */
#rail svg,#profile-menu svg,#open-search svg,#model-menu svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
/* Рельс: на ПК свёрнутая панель — не пустота, а узкая полоса с тем, что всегда под рукой (как у ChatGPT). */
#rail{display:none;position:fixed;left:0;top:0;bottom:0;width:56px;z-index:21;flex-direction:column;align-items:center;gap:4px;padding:10px 0;background:#eeefe6;border-right:1px solid #e1e4da}
#rail button{width:40px;height:40px;min-width:40px;border:0;background:transparent;border-radius:12px;padding:8px;color:#3a3947;display:inline-flex;align-items:center;justify-content:center;margin:0}
#rail button:hover,#rail button[aria-current=true]{background:#e1e8fb;color:#35518d}
#rail #rail-expand{margin-bottom:8px}
#rail .rail-bottom{margin-top:auto;display:flex;flex-direction:column;align-items:center;gap:6px}
.avatar{width:36px;height:36px;min-width:36px;border-radius:50%;background:#1fb08f;color:#fff;font-size:13px;font-weight:600;letter-spacing:.5px;display:inline-flex;align-items:center;justify-content:center;border:0;padding:0;margin:0;cursor:pointer}
#rail .avatar,#rail button.avatar{background:#1fb08f;color:#fff;border-radius:50%;width:36px;height:36px;min-width:36px}
#rail button.avatar:hover{background:#178c72;color:#fff}
@media(min-width:901px){body.panel-collapsed #rail{display:flex}body.panel-collapsed main{margin-left:56px}body.panel-collapsed #chat-rail{left:auto}}
/* Профиль внизу панели: аватар с почтой; старые «почта + Выйти» спрятаны, «Выйти» — в меню. */
.sidebar-bottom>#email,.sidebar-bottom>#logout{display:none!important}
.profile-row{display:flex;align-items:center;gap:10px;width:100%;border:0;background:transparent;padding:8px 6px;border-radius:12px;text-align:left;font:inherit;color:inherit;margin:0;cursor:pointer;min-width:0}
.profile-row:hover{background:#e1e8fb}
.profile-row .profile-mail{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;color:#3a3947}
.profile-row .profile-plan{display:block;font-size:11px;color:#7c7b88;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#profile-menu{position:fixed;z-index:60;width:min(320px,calc(100vw - 16px));background:#fff;border:1px solid #e1e5db;border-radius:16px;box-shadow:0 14px 40px #1c2a3a2a;padding:8px;display:flex;flex-direction:column;gap:2px}
#profile-menu[hidden]{display:none}
#profile-menu .pm-head{display:flex;align-items:center;gap:12px;padding:8px 10px 12px;border-bottom:1px solid #eceee6;margin-bottom:4px;min-width:0}
#profile-menu .pm-head b{display:block;font-size:14px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#profile-menu .pm-head small{display:block;font-size:12px;color:#7c7b88}
#profile-menu .pm-head>div{min-width:0;flex:1}
/* t72: пункт «Настройки Akii — в Studio» — ссылка, а не кнопка (пульт живёт на другом адресе), и выглядеть обязан так же: разный вид одинаковых на вид строк читается как поломка. */
#profile-menu button[data-pm],#profile-menu a[data-pm]{display:flex;align-items:center;gap:12px;width:100%;border:0;background:transparent;text-align:left;font-size:14px;padding:10px 12px;border-radius:10px;margin:0;color:inherit;text-decoration:none}
#profile-menu button[data-pm]:hover,#profile-menu a[data-pm]:hover{background:#eef1f8}
#profile-menu button[data-pm] small,#profile-menu a[data-pm] small{margin-left:auto;color:#8a8a98;font-size:11px}
#profile-menu hr{border:0;border-top:1px solid #eceee6;margin:4px 0}
#profile-menu button[data-pm=logout]{color:#8a4a4f}
/* Поиск: большое окно, как у ChatGPT — недавние чаты, а по мере ввода — чаты, заметки, задачи, результаты, проекты. */
#search-dialog{width:min(720px,94vw);max-height:80vh;padding:0;border:1px solid #d3dccd;border-radius:18px;overflow:hidden;display:flex;flex-direction:column}
#search-dialog:not([open]){display:none}
#search-dialog::backdrop{background:#142d3466}
.sd-top{display:flex;align-items:center;gap:8px;padding:14px 16px 8px}
.sd-top input{border:0;box-shadow:none;background:transparent;font-size:19px;padding:8px 4px;outline:none;flex:1;min-width:0}
.sd-top button{border:0;background:transparent;font-size:18px;padding:6px 10px;color:#7c7b88;margin:0}
#search-results{overflow:auto;padding:4px 10px 10px;min-height:120px}
.sd-group{font-size:12px;color:#93909c;padding:12px 10px 4px;letter-spacing:.3px}
.sd-row{display:flex;align-items:center;gap:12px;width:100%;border:0;background:transparent;text-align:left;font:inherit;padding:9px 10px;border-radius:10px;margin:0;color:inherit;min-width:0}
.sd-row:hover,.sd-row:focus-visible{background:#eef1f8;outline:none}
.sd-row .sd-ico{width:22px;text-align:center;color:#476094;flex:none;font-size:15px}
.sd-row .sd-text{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:15px}
.sd-row .sd-text small{display:block;color:#83868b;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sd-row .sd-text mark{background:#ffe08a;padding:0 1px;border-radius:2px}
.sd-hint{margin:0;padding:6px 16px 12px;font-size:11px;border-top:1px solid #eceee6}
.sd-empty{padding:24px 10px;text-align:center;color:#83868b;font-size:14px}
main>header #open-search{width:36px;min-width:36px}
/* Результаты: галерея всего, что собрали агенты, — обложка, название, проект, дата. */
#results{padding-top:8px;max-width:1200px}
.results-head{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:6px}
.results-head h1{margin:0;font-size:26px;flex:1}
.results-head input{width:min(320px,100%);border-radius:18px;padding:10px 14px}
.results-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px;margin-top:16px}
.results-grid .result-item{display:flex;flex-direction:column;gap:8px;border:1px solid #d9d6e4;border-radius:14px;background:#fff;padding:10px;min-width:0}
.results-grid .result-card{display:flex;flex-direction:column;align-items:stretch;gap:8px;width:100%;margin:0;padding:0;border:0;background:transparent}
.results-grid .result-card:hover{background:transparent}
.results-grid .result-card .result-cover{width:100%;height:120px}
.results-grid .result-card .result-card-icon{display:none}
.results-grid .result-card>span:last-of-type{display:block;min-width:0}
.results-grid .result-card b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.results-grid .result-links{display:flex;gap:8px;flex-wrap:wrap;font-size:12px;align-items:center}
.results-grid .result-links a{color:#356541}
.results-grid .result-links small{color:#83868b;margin-left:auto}
/* Новый чат: пока в нём ни одного сообщения — внимание на поле ввода посередине экрана, а не на пустую ленту. */
body.chat-home.chat-empty #model-chat:not([hidden]){justify-content:center}
body.chat-home.chat-empty .model-top{margin-bottom:auto}
body.chat-home.chat-empty #model-messages{flex:0 0 auto;padding:0 0 20px;overflow:visible}
body.chat-home.chat-empty .chat-welcome{height:auto;min-height:0}
body.chat-home.chat-empty .chat-welcome h2{font-size:30px}
body.chat-home.chat-empty #model-form{width:min(100%,760px);margin:0 auto auto;flex-shrink:0}
body.chat-home.chat-empty #model-status,body.chat-home.chat-empty #chat-rail{display:none!important}
/* Выбор модели — в настройках беседы (шестерёнка в шапке чата) и в меню профиля; список по группам:
   подписки, облако по ключу, на компьютере. */
#model-select{display:none!important}
/* 0.3.73 (Антон 21.09, снимок с телефона): «строка ввода обрезана пополам из-за выбора модели».
   Было: поле и кнопка модели стояли одной flex-строкой, и «Gemini 3.6 Flash ▾» забирал у текста половину
   плашки. Стало: поле занимает её целиком, «отправить» — кружок в правом нижнем углу ПОВЕРХ поля (текст
   под него не заезжает: справа отступ под кружок), кнопка модели уехала в шапку чата. Разметка блочная,
   а не flex, иначе кружок снова встал бы в строку и отъел ширину. */
/* 0.3.75 (Антон 22.09, снимок строки ChatGPT): «+» — материалы, поле, справа модель, микрофон, Таак
   и «отправить» — всё одной строкой, и ввод от этого не страдает. Ширину держит ПОЛЕ (flex:1 и
   min-width:0), а не кнопки: в 0.3.72 кнопка модели держала свою ширину любой ценой
   (min-width:max-content плюс имя до 180 px) и забирала половину плашки. На телефоне в одну строку
   это не влезает — там поле идёт первой строкой во всю ширину, кнопки второй (см. ниже). */
#model-form{display:flex;flex-wrap:wrap;align-items:flex-end;gap:6px;position:relative;padding:6px 8px}
#model-form #model-text{flex:1 1 100%;order:1;width:auto;box-sizing:border-box;min-width:0;min-height:40px;max-height:40dvh;padding:9px 10px}
#model-form .model-bottom{order:3;flex:0 1 auto;min-width:0;max-width:100%;margin:0 0 0 auto;padding:0;display:flex;align-items:center;gap:2px}
#model-form .model-bottom #model-send{width:38px;height:38px;padding:0;margin:0 0 0 4px;border-radius:50%;flex:none}
/* «+» и круглые кнопки-иконки: размер пальца, вид как у остальной строки. */
#model-plus{order:2}
#model-plus,#model-form .model-bottom .ic{flex:none;width:36px;height:36px;min-width:36px;padding:0;margin:0;border:0;background:transparent;border-radius:50%;color:#5c6470;display:inline-flex;align-items:center;justify-content:center}
#model-plus:hover,#model-form .model-bottom .ic:hover{background:#e1e8fb;color:#35518d}
#model-plus svg,#model-form .model-bottom .ic svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
#model-taak[aria-pressed=true]{background:#1d2a33;color:#fff}
#model-taak[aria-pressed=true]:hover{background:#2c3d49;color:#fff}
/* Идёт запись — микрофон в строке краснеет вместе с остальными (класс вешает focus.js). */
body.recording #model-mic,#model-mic[aria-pressed=true]{background:#fde2e2;color:#c62828}
/* Две кнопки микрофона на одном экране читаются как поломка: в чате шапка отдаёт их строке ввода. */
body.chat-home main>header #dictate,body.chat-home main>header #taak-toggle{display:none!important}
/* «Результаты других чатов» живут за «+»: блок скрыт (focus.css), пока его оттуда не попросят. */
body.chat-context-open #model-form #model-context{display:block;order:4;flex:1 1 100%;margin:4px 0 0}
#model-form #model-mode{order:5;flex:1 1 100%}
/* t310 (24.09, снимки Антона на ПК ~1800 px): раскладка строки ввода на широком экране ОДНА — поле первой строкой
   во всю ширину, «+» и кнопки второй. Прежде (0.3.75) короткий текст стоял в строке между «+» и кнопками, а класс
   tall (shell.js, этажи()) переставлял поле наверх: при переносе на вторую строку или со вторым вложением левый край
   текста уезжал на ширину «+», кнопки падали на ряд ниже, а только что перенесённая строка снова влезала в одну —
   текст прыгал под пальцами. t297/t299/t300/t306 чинили, КОГДА ставить tall (гистерезис), а не то, что tall меняет
   порядок flex; поэтому сдвиг остался. Теперь tall на широком экране раскладку не трогает, форма растёт только вверх.
   Проверка — tests-prisma-composer-layout.mjs (настоящий Chromium). */
/* Подпись про режим модели показывается, только когда что-то значит (pickName в shell.js): иначе это лишняя
   строка под самой нужной плашкой. Одного [hidden] мало — app.css задаёт элементу display:block. */
#model-mode{font-size:11px;padding:4px 4px 0}
#model-mode[hidden]{display:none!important}
/* Кнопка модели — в строке ввода, компактно. Селектор с #model-form .model-bottom нужен целиком:
   иначе её красит общее правило .model-bottom button (круг 40 px под «отправить»). Имя ужимается
   многоточием — ширину в этой строке держит поле, а не кнопка. */
#model-form .model-bottom #model-pick{display:inline-flex;align-items:center;gap:5px;flex:0 1 auto;min-width:0;max-width:150px;height:36px;border:0;background:transparent;font-size:13px;line-height:1.2;color:#5c6470;padding:6px 8px;border-radius:12px;margin:0;width:auto}
#model-form .model-bottom #model-pick svg{width:17px;height:17px;flex:none;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
#model-pick:hover{background:#e1e8fb;color:#35518d}
#model-pick-name{display:inline-block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
#profile-menu #pm-model{max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* Список один на два якоря (шапка чата и меню профиля), поэтому он лежит в body и встаёт на место сам:
   position:fixed, координаты и высоту считает openModelMenu в shell.js. */
#model-menu,#model-plus-menu{position:fixed;z-index:60;width:min(360px,calc(100vw - 32px));background:#fff;border:1px solid var(--line,#dedee6);border-radius:14px;box-shadow:0 14px 40px #1c2a3a22;padding:6px;display:flex;flex-direction:column;gap:1px;max-height:60vh;overflow:auto}
#model-menu[hidden],#model-plus-menu[hidden]{display:none}
#model-menu .mm-group,#model-plus-menu .mm-group{font-size:11px;color:#93909c;padding:8px 10px 4px;letter-spacing:.4px;text-transform:uppercase}
#model-menu button,#model-plus-menu button{border:0;background:transparent;text-align:left;font:inherit;font-size:14px;padding:8px 10px;border-radius:9px;width:100%;margin:0;display:flex;flex-direction:column;gap:1px;color:inherit}
#model-menu button:hover,#model-plus-menu button:hover{background:#eef1f8}
#model-menu button[aria-checked=true]{background:#e1e8fb;color:#35518d}
#model-menu button[data-unready]{opacity:.6}
#model-menu button small,#model-plus-menu button small{font-size:11.5px;color:#83868b}
#model-menu .mm-action{color:#2e7d4f;border-top:1px solid var(--line,#dedee6);border-radius:0;margin-top:4px;padding-top:10px}
/* 0.3.68: mm-action стала бывать ссылкой (в Studio, новой вкладкой), а не только кнопкой — правило по классу, не по тегу.
   Под списком — гайд «Где что вводится»: четыре варианта одной строкой каждый, потому что по имени модели не понять,
   твой случай это подписка, ключ OpenAI вместо неё, ключ облачной модели или своя Ollama. */
#model-menu a.mm-action{display:block;text-decoration:none;font-size:14px;padding:8px 10px 10px}
#model-menu a.mm-action:hover{background:#eef1f8}
/* Подсказка прибита к нижнему краю меню: список моделей бывает выше 60vh, и в прокрутке она оказывалась за экраном —
   то есть ровно там, где её никто не увидит. Прокрутка идёт под ней, а не мимо неё. */
#model-menu .mm-help,#model-plus-menu .mm-help{position:sticky;bottom:-6px;background:#fff;border-top:1px solid var(--line,#dedee6);margin-top:4px;padding:2px 10px 8px}
#model-menu .mm-help .mm-group,#model-plus-menu .mm-help .mm-group{padding:8px 0 2px}
#model-menu .mm-help p{margin:6px 0;font-size:11.5px;line-height:1.45;color:#83868b}
#model-menu .mm-help p b{color:inherit;font-weight:600}
#model-menu .mm-help a{display:inline-block;margin-top:4px;font-size:12px;color:#2e7d4f}
/* Тот же гайд, но развёрнутый — на странице моделей («Подключённые агенты и модели»), где для него есть место. */
.models-where{margin:8px 0 12px}
.models-where ul{margin:6px 0;padding-left:18px}
.models-where li{margin:6px 0;font-size:13px;line-height:1.5}
.models-where p:last-child{margin-bottom:0}
.models-where a{color:#2e7d4f}
/* Плашка рукописи — как плашка аудио: строка во всю ширину слева, иконка и распознанный текст; поверх холста (z-index), чтобы
   рукопись её не закрывала. Раньше она стояла у левого края рамки (--chip-x) и на широком экране «убегала» в середину строки. */
.anchor.chip .ink-chip{margin-left:0!important;max-width:none;flex:1 1 auto;width:100%;position:relative;z-index:3;background:#f4efe6;border-color:#e6dcc8;color:#41505f}
.anchor.chip .ink-chip .anchor-icon{color:#8a6d1a}
.anchor.chip.open .ink-chip{background:#efe6d3;border-color:#dccba6;color:#41505f}
.anchor.chip .ink-chip.editing{margin-left:0!important}
.anchor.chip .anchor-actions{position:relative;z-index:4}
/* Папка заметки: меню выносится в body (было внутри панели листа с overflow:auto и прокручивалось в узкой полосе). */
#home-folder-menu.floating{position:fixed;right:auto}
/* Кнопка «В чат» на карточке задачи доски платформы и на карточке задачи книжки. */
.pv-task .task-actions [data-pv-chat],.task-card .task-actions [data-task-to-chat]{color:#35518d;border-color:#c9d3e4}
/* 0.3.53 прятала «Результаты» на телефоне: в строку разделов не влезала шестая кнопка, и она выдавливала
   соседние за край экрана. С 0.3.56 строка прокручивается вбок (simple.css, #section-switch overflow-x),
   и прятать больше нечего — а прятали единственную дорогу к результатам, которая видна без бургера:
   на узком экране рельс не показывается вовсе (#rail — только от 901px), и вкладка оставалась лишь в
   боковой панели под «☰». Человек с телефона видел, что «вкладка пропала». Показываем везде. */
#section-switch [data-section=results]{display:inline-block}
/* ── 0.3.56 (список Антона 20.09) ─────────────────────────────────────────────────── */
/* п.1: окно поиска стоит на месте — прижато к верху, а не центрируется по высоте содержимого (список менял высоту дважды на каждый символ, и окно прыгало). */
#search-dialog{margin:8vh auto auto;max-height:80vh}
#search-results{min-height:220px}
/* п.2–3: кнопка профиля всегда внизу панели (sticky в прокручиваемом aside), строка профиля — флекс, аватар не сжимается и не наезжает на имя
   (правило .sidebar-bottom button{display:block} из app.css перебивало display:flex у .profile-row). */
aside{overflow:auto}
aside .sidebar-bottom{position:sticky;bottom:0;order:999;margin-top:auto;background:inherit;padding-top:8px;z-index:1}
body.menu-open aside .sidebar-bottom{position:sticky;margin-top:auto}
.sidebar-bottom button.profile-row{display:flex;margin-top:0}
.profile-row .avatar{flex:none}
.profile-row .profile-mail{display:block}
/* п.4: «Связи» — из настроек и меню профиля, «Настройки» — из меню профиля; в главной панели их нет. */
aside nav [data-tab="graph"],aside nav [data-tab="settings"]{display:none}
/* п.5: панель уже (245 → 212 px на ПК, на телефоне и планшете — до 320 px). */
@media(min-width:901px){aside{width:212px}main{margin-left:212px}}
@media(max-width:900px){body.menu-open aside{width:min(82vw,320px)}}
/* п.6: телефон и планшет — поиск во весь экран, меню профиля снизу листом, поля без лишних отступов. */
@media(max-width:640px){#search-dialog{margin:0;width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;border-radius:0;border:0}.sd-hint{display:none}
 #profile-menu{left:8px!important;right:8px!important;top:auto!important;bottom:calc(8px + env(safe-area-inset-bottom))!important;width:auto}
 main{padding-left:12px;padding-right:12px}dialog{width:min(660px,96vw);padding:16px}}
@media(min-width:641px) and (max-width:1000px){main{padding-left:18px;padding-right:18px}}
/* п.7: кнопка «На весь экран» в шапке. */
#open-fullscreen{width:36px;min-width:36px}#open-fullscreen.active{background:#e1e8fb}
/* п.11: разбор — плашкой у имени заметки вверху, панель открывается по нажатию. */
.review-chip{font:inherit;font-size:12px;line-height:1.2;padding:5px 11px;border-radius:999px;border:1px solid #d3dccd;background:#fff;color:#3a3947;cursor:pointer;margin:0 0 0 auto;max-width:46vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.review-chip.ready{background:#e1f5ee;border-color:#1fb08f;color:#0f6b56}.review-chip.busy{color:#7c7b88}.review-chip.bad{border-color:#d9a2a2;color:#8a2f2f}
.review-chip[aria-expanded="true"]{background:#e1e8fb;border-color:#9fb4e8}
.review-chip[hidden]{display:none}
/* ── 0.3.57 (планшет, список Антона 20.09 №2) ───────────────────────────────────────── */
/* п.1/4: щипок выключен в viewport; страница не уезжает вбок от диагонального жеста, лист листается только по вертикали. */
html,body{overscroll-behavior:none}
body.note-mode{overflow-x:hidden}
body.note-mode .note-layer{touch-action:pan-y}
/* п.4: плашка разбора — своей строкой под названием заметки, а не в тесной шапке (там её сжимало до 24 px). */
#review-row{display:flex;justify-content:flex-end;padding:0 8px 4px}
#review-row:has(.review-chip[hidden]){display:none}
#review-row .review-chip{margin:0;max-width:100%}
/* п.5–6: на планшете и телефоне выдвижная панель — в один столбец, читаемым шрифтом, профиль внизу и виден.
   Перебивает «узкий рельс» app.css (aside 78 px, подписи спрятаны) и сетку 1fr 1fr из focus.css. */
@media(max-width:900px){
 body.menu-open aside{width:min(82vw,320px);height:100dvh;padding:18px 14px;overflow:auto;display:flex;flex-direction:column}
 body.menu-open aside nav{display:flex!important;flex-direction:column;gap:2px;grid-template-columns:none}
 body.menu-open aside nav button{font-size:14px;padding:9px 10px;text-align:left;width:100%;justify-content:flex-start;display:flex;align-items:center;gap:8px}
 body.menu-open aside nav button span{display:inline!important}
 body.menu-open aside .sidebar-bottom{display:block!important;position:sticky;bottom:0;order:999;margin-top:auto;background:inherit;padding-top:8px}
 body.menu-open aside .profile-row{display:flex!important;margin-top:0}
 body.menu-open aside .profile-row .avatar{display:inline-flex!important}
 body.menu-open aside .profile-row .profile-mail{display:block!important}
}
/* 0.3.57: скрытие «Связей» и «Настроек» держится и в выдвижной панели (правило столбца выше по специфичности). */
body.menu-open aside nav [data-tab="graph"],body.menu-open aside nav [data-tab="settings"]{display:none!important}
/* 0.3.59 (t100): «Написать продавцу» — диалог из меню профиля. */
#appeal-dialog{width:min(560px,94vw);max-height:88vh;overflow:auto;border:1px solid #d3dccd;border-radius:18px;padding:18px 20px;background:#fff;color:inherit}
#appeal-dialog::backdrop{background:rgba(20,24,20,.35)}
#appeal-dialog h2{margin:0 0 6px;font-size:18px}
#appeal-dialog textarea{width:100%;box-sizing:border-box;margin:8px 0;font:inherit;padding:8px 10px;border:1px solid #d3dccd;border-radius:10px}
.appeal-kinds{display:flex;gap:14px;flex-wrap:wrap;margin:6px 0}
.appeal-kinds label{display:flex;gap:6px;align-items:center;cursor:pointer}
.appeal-actions{display:flex;gap:8px;flex-wrap:wrap}
#appeal-list{margin-top:12px}
#appeal-list h3{font-size:13px;color:#7c7b88;margin:8px 0 6px;font-weight:600}
.appeal-card{border:1px solid #e3e6dc;border-radius:12px;padding:8px 12px;margin-bottom:8px;white-space:pre-wrap}
.appeal-card small{display:block;margin-bottom:2px}
.appeal-card.reply{border-left:3px solid #4a6fd8}
/* ── 0.3.61 (список Антона 20.09 №3, 15 пунктов): одна кнопка панели, лист во весь экран, панель листа без лишнего,
   тумблер Таака, одна кнопка «новое», обложки-снимки, без дублей. Порядок пунктов — как в списке. ─────────────── */
/* п.1: кнопка панели одна и на одном месте. На ПК ☰ из шапки убран (правило focus.css ставит ему inline-flex!important);
   осталась кнопка в самой панели — в рельсе и в раскрытой панели она стоит в одном и том же углу (8×10), так что не прыгает.
   Общее nav{margin-top:35px} из app.css сдвигало рельс на 35 px вниз — потому она и «прыгала». Крестик в панели заменён на ☰. */
@media(min-width:901px){body #menu-toggle{display:none!important}}
#rail{margin:0;padding:10px 0}
#rail #rail-expand{margin-bottom:8px}
#panel-close{left:8px;right:auto;top:10px;width:40px;height:40px;min-width:40px;border-radius:12px;padding:8px}
#panel-close:hover{background:#e1e8fb;color:#35518d}
aside>.brand{padding-left:46px;padding-right:0}
@media(max-width:900px){#panel-close{left:auto;right:10px}aside>.brand{padding-left:0;padding-right:40px}}
/* п.2, 5, 6: лист по краям экрана. Шапка — одна тонкая полоса: «‹», вкладки, статус, название заметки; под ней панель листа;
   всё остальное — лист. Отступы main и потолок 1400 px сняты, лист сам единственный прокручиваемый контейнер (страница не
   прокручивается — второй ползунок исчез). */
body.note-mode{overflow:hidden}
body.note-mode main{padding:0!important;max-width:none!important;height:var(--writing-height,100dvh);display:flex;flex-direction:column}
body.note-mode main>header{padding:0 8px!important;flex:none}
body.note-mode #note-focus:not([hidden]){flex:1;min-height:0;height:auto;max-width:none;margin:0}
body.note-mode #focus-paper{padding:0}
body.note-mode #home-composer .note-layer{border-radius:0}
body.note-mode #sheet-tools{padding:2px 10px;margin:0}
body:not(.note-mode) #focus-title{display:none!important}
main>header #focus-title{flex:1 1 auto;min-width:80px;width:auto;margin:0;padding:4px 8px;font-size:17px;height:36px;border:0;background:transparent;box-shadow:none}
main>header #focus-title:focus{background:#f0eff6;border-radius:9px}
main>header #review-row{padding:0;margin:0 4px;flex:none}
main>header #review-row .review-chip{max-width:220px}
#focus-existing-assets{margin:0 12px}
/* Ползунок листа — тонкий; пока пишете пером (ink-mode), его нет вовсе: перо у правого края не должно его дёргать. */
body.note-mode #home-composer .note-layer{scrollbar-width:thin;scrollbar-color:#c9c5da transparent}
body.note-mode #home-composer .note-layer::-webkit-scrollbar{width:8px}
body.note-mode #home-composer .note-layer::-webkit-scrollbar-thumb{background:#c9c5da;border-radius:8px}
body.note-mode.ink-mode #home-composer .note-layer{scrollbar-width:none}
body.note-mode.ink-mode #home-composer .note-layer::-webkit-scrollbar{display:none}
/* п.3: кнопка «Папка» убрана (папка заметки живёт в дереве панели и в data.project, обработчики целы). */
#home-folder-box{display:none!important}
/* п.4: отдельной плашки «Разбор» нет. Состояние разбора показывается в шапке у названия только тогда, когда есть что решать
   (пункты к принятию или сбой); «ждёт», «разбираю», «отмечать нечего» — молчат. */
#review-chip:not(.ready):not(.bad){display:none!important}
#review-row:has(.review-chip:not(.ready):not(.bad)){display:none}
/* п.7: нижней панели у листа нет: микрофон — в шапке, «＋ добавить» — в панели листа правее «отменить/повторить». */
body.note-mode #home-composer>.composer-tools{display:none!important}
#sheet-tools .add-note{margin:0;padding:0;border:0;flex:none;position:static}
#sheet-tools .add-note summary{list-style:none;cursor:pointer;width:36px;height:36px;min-width:36px;padding:8px;border:0;border-radius:10px;background:transparent;display:inline-flex;align-items:center;justify-content:center;color:var(--ink)}
#sheet-tools .add-note summary::-webkit-details-marker{display:none}
#sheet-tools .add-note summary:hover,#sheet-tools .add-note[open] summary{background:#e1e8fb;color:#35518d}
#sheet-tools .add-note>div{position:fixed;z-index:35;top:auto;bottom:auto;left:auto;width:min(440px,calc(100vw - 40px));max-height:70vh;overflow:auto;background:#fff;border:1px solid var(--line);border-radius:14px;padding:10px;box-shadow:0 12px 30px #1c2a3a22}
/* п.8: во вкладке заметок — только «＋ Заметка», в чатах и остальных разделах — только «＋ Чат»; двух кнопок разом нет. */
body[data-section="feed"] #new-chat,body[data-section="note-focus"] #new-chat{display:none!important}
body:not([data-section="feed"]):not([data-section="note-focus"]) #new-note{display:none!important}
/* п.9: Таак — тумблер вкл/выкл (как в настройках), а не второй микрофон. */
main>header #taak-toggle{gap:8px;padding:6px 10px;width:auto;min-width:0;height:36px}
#taak-toggle .tk-label{font-size:13px;color:#3a3947}
#taak-toggle .tk-switch{display:inline-block!important;width:36px;height:20px;border-radius:10px;background:#d3d3dc;position:relative;flex:none;transition:background .15s}
#taak-toggle .tk-switch::after{content:'';position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 2px #0003;transition:transform .15s}
#taak-toggle[aria-pressed=true]{background:transparent!important;color:inherit!important}
#taak-toggle[aria-pressed=true] .tk-switch{background:#3b82f6}
#taak-toggle[aria-pressed=true] .tk-switch::after{transform:translateX(16px)}
#taak-toggle[aria-pressed=true] .tk-label{color:#2f4a8a}
#taak-toggle:hover{background:#eef1f8}
@media(max-width:640px){main>header #taak-toggle{width:auto;padding:6px}#taak-toggle .tk-label{display:none}}
/* п.11: полоска истории сообщений — своя облегающая плашка ровно по рискам, не на всю высоту; подсказки не всплывают при
   наведении (перо над правым краем их вызывало) — только по фокусу с клавиатуры, название в title. */
#chat-rail{top:auto;bottom:120px;transform:none;background:#ffffffe6;border:1px solid var(--line);border-radius:12px;padding:6px 4px;box-shadow:0 4px 14px #1c2a3a14;gap:4px;max-height:50vh}
#chat-rail button{height:12px}
#chat-rail button:hover span{display:none}
#chat-rail button:focus-visible span{display:block}
body.ink-mode #chat-rail{display:none}
/* п.12: выделение текста на листе. Поле прозрачное (текст рисует подложка), и штатное выделение красило буквы белым поверх
   тёмной подложки — читалось как каша. Теперь подсветка светло-голубая, буквы остаются у подложки. */
.note-layer>#note::selection{background:#b3d4fc;color:transparent}
.note-layer>#note::-moz-selection{background:#b3d4fc;color:transparent}
/* п.13: обложка результата — живой снимок самой страницы (iframe в песочнице, уменьшен в четыре раза), текстовая обложка
   остаётся под ним на случай, если страница не загрузится. */
.result-cover{position:relative}
.result-cover .result-thumb{position:absolute;left:0;top:0;width:400%;height:400%;border:0;transform:scale(.25);transform-origin:0 0;pointer-events:none;background:#fff}
.results-grid .result-card .result-cover{height:140px;border-radius:10px;overflow:hidden}
.results-grid .result-card .result-cover b,.results-grid .result-card .result-cover i,.results-grid .result-card .result-cover em{position:relative;z-index:1}
.result-cover.has-thumb b,.result-cover.has-thumb i,.result-cover.has-thumb em{display:none}
/* п.14: поле «Поиск результатов» убрано — есть поиск в шапке (Ctrl+K), он ищет и результаты. */
.results-head h1{margin-bottom:4px}
/* п.15: дубли. «＋» у названия чата (есть «＋ Чат» в шапке и в панели); «На весь экран» в меню профиля (кнопка есть в шапке);
   разделы «Заметки · Чаты · Фокус · Результаты» в панели (те же вкладки всегда в шапке). */
#model-new{display:none!important}
#profile-menu [data-pm="fullscreen"]{display:none!important}
aside nav [data-tab="feed"],aside nav [data-tab="model-chat"],aside nav [data-tab="matrix"],aside nav [data-tab="results"],
body.menu-open aside nav [data-tab="feed"],body.menu-open aside nav [data-tab="model-chat"],body.menu-open aside nav [data-tab="matrix"],body.menu-open aside nav [data-tab="results"]{display:none!important}
#settings-graph{border:1px solid #e6e6ee;border-radius:16px;background:#fff;padding:18px 20px}
/* п.2 на планшете и телефоне (≤900): вкладки, кнопки и название в одну строку не помещаются — название переносится второй строкой во всю ширину, шапка растёт по содержимому. */
@media(max-width:900px){body.note-mode main>header{flex-wrap:wrap;height:auto;min-height:44px;row-gap:0}main>header #focus-title{flex:1 1 100%;order:10;height:34px;padding:2px 8px;font-size:16px}main>header #review-row{order:11}}
/* 0.3.73 (Антон 21.09): «больше места для текста и вывода». На телефоне поля вокруг переписки съедали
   ширину дважды — отступ страницы и отступ каждого сообщения; ответ модели шёл колонкой в ~85 % экрана.
   Ужимаем только на узких экранах: на ПК ширина и так ограничена 960 px, и там воздух работает на чтение. */
@media(max-width:640px){
 body.chat-home main{padding:0 10px}
 #model-messages{padding:8px 0 4px}
 .model-message{padding:12px 2px}
 .model-message.from-user{margin:10px 0 10px 7%;padding:12px 15px}
 .model-top{padding:2px 0;gap:6px}
 .model-top h1{flex:1 1 auto;min-width:0}
 /* 0.3.75: на 390 px «+», поле, модель, микрофон, Таак и «отправить» в одну строку не влезают — с этого
    и началась жалоба «обрезана пополам». Поэтому поле идёт первой строкой во всю ширину, а кнопки
    второй: «+» слева, остальные справа. Порядок задан явно (order), иначе перенос уводит на вторую
    строку не то, что нужно, — поле, а не кнопки. */
 #model-form{gap:4px;padding:6px 6px 5px}
 #model-form #model-text{flex:1 1 100%;order:1;min-height:42px}
 #model-plus{order:2}
 #model-form .model-bottom{order:3}
 #model-form .model-bottom #model-pick{max-width:38vw;font-size:12px}
}
/* ---------- t128 (Ф1.1): вложения реплики ---------- */
/* Чипы приложенных файлов — первой строкой внутри плашки: человек видит, что уедет вместе с вопросом,
   и успевает убрать лишнее до отправки. Порядок 0 — выше поля (order:1) при любой раскладке. */
#model-attached{order:0;flex:1 1 100%;display:flex;flex-wrap:wrap;gap:6px;padding:2px 2px 4px}
#model-attached[hidden]{display:none}
.attach-chip{display:inline-flex;align-items:center;gap:6px;max-width:100%;background:#fff;border:1px solid #dfe2ea;border-radius:12px;padding:5px 6px 5px 10px;font-size:13px;overflow:hidden;white-space:nowrap}
.attach-chip small{color:#83868b;font-size:11px}
.attach-chip.loading{border-style:dashed;background:#f7f8fb}
.attach-chip.loading small{color:#3b6fd4}
.attach-name{overflow:hidden;text-overflow:ellipsis;min-width:0;max-width:220px}
.attach-ring{width:18px;height:18px;min-width:18px;transform:rotate(-90deg)}
.attach-ring circle{fill:none;stroke:#dfe2ea;stroke-width:2.6}
.attach-ring circle.done{stroke:#3b6fd4;stroke-linecap:round;transition:stroke-dashoffset .25s}
.attach-chip.failed{border-color:#e3b4b6;background:#fdf3f3}
.attach-chip.failed small.attach-error{color:#b03c42;white-space:normal;max-width:260px}
.attach-mark{width:18px;height:18px;min-width:18px;border-radius:50%;background:#b03c42;color:#fff;font-size:12px;font-weight:700;display:inline-grid;place-items:center}
.attach-chip button{width:22px;height:22px;min-width:22px;padding:0;margin:0;border:0;background:transparent;color:#83868b;border-radius:50%;font-size:15px;line-height:1}
.attach-chip button:hover{background:#f0e2e2;color:#b03c42}
/* Перетаскивание файла на плашку: подсветка говорит, что отпускать можно здесь. */
#model-form.drop{outline:2px dashed #7f93c4;outline-offset:-3px}
/* Карточка вложения в ленте: сам файл и ссылка на извлечённый текст рядом. */
.home-doc{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:8px 0}
.home-doc .home-file{margin:0}
.home-doc-text{font-size:12px;color:#356541;border:1px solid #cfe0d4;border-radius:10px;padding:4px 9px;text-decoration:none}
.home-doc-text:hover{background:#eef5f0}
/* ---------- t129 (Ф1.2): свободная задача ---------- */
/* Тумблер «Максимальное качество» стоит рядом с именем способа ответа и виден только у «Свободного»:
   у модели он ничего не значит. Вид — как у кнопки модели, чтобы строка осталась одной полосой. */
#model-form .model-bottom #model-quality{display:inline-flex;align-items:center;gap:4px;flex:0 1 auto;min-width:0;width:auto;height:36px;padding:6px 9px;margin:0;border:0;border-radius:12px;background:transparent;color:#5c6470;font-size:13px;line-height:1.2}
#model-form .model-bottom #model-quality[hidden]{display:none}
#model-form .model-bottom #model-quality span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#model-form .model-bottom #model-quality:hover{background:#e1e8fb;color:#35518d}
#model-form .model-bottom #model-quality[aria-pressed=true]{background:#efe6c8;color:#6b5312}
@media(max-width:640px){#model-form .model-bottom #model-quality span{display:none}}
/* 23.09 (Антон): разделы — первым блоком левой панели (shell.js, #section-nav); строка в шапке на телефоне
   сжималась до одного слова и листалась вбок. Переключатель остаётся в разметке скрытым — по нему модули
   отмечают текущий раздел. */
#section-switch,main>header #section-switch{display:none!important}
#section-nav{display:flex;flex-direction:column;gap:2px;grid-column:1/-1;margin:0 0 6px;padding:0 0 8px;border-bottom:1px solid #e6e6ee}
#section-nav button{display:flex;align-items:center;gap:8px;width:100%;text-align:left;justify-content:flex-start}
#section-nav button span{display:inline!important}
#section-nav button.active{background:#fff;color:#35518d;box-shadow:0 1px 3px #1c2a3a1a;border-radius:9px}
#section-current{display:none;border:0;background:transparent;font:600 15px/1.2 inherit;color:#35518d;padding:6px 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;flex:0 1 auto}
@media(max-width:900px){body:not(.note-mode) #section-current:not([hidden]){display:inline-block}}
/* 23.09 (Антон, снимки с телефона): в шапке «на весь экран», поиск и «новый чат» сейчас не нужны. Новый чат и
   поиск чатов есть в левой панели, Ctrl+K на ПК работает и без кнопки. */
#open-fullscreen,#open-search,main>header #new-chat{display:none!important}
/* 23.09 (Антон): строка ввода на телефоне — ОДНА строка, как в Telegram: «+» слева внутри строки, поле растёт
   вверх по мере набора, справа модель (значком), диктофон и Таак; «отправить» появляется, когда есть что
   отправлять. Раньше (0.3.75) поле шло первой строкой во всю ширину, «+» второй, кнопки третьей — три ряда
   ради одного слова. Кнопки держатся у нижнего края поля (align-items:flex-end), поэтому растущий текст их не
   сдвигает. Вложения, подпись режима и «результаты других чатов» по-прежнему отдельными рядами. */
@media(max-width:640px){
 #model-form{flex-wrap:wrap;align-items:flex-end;gap:2px;padding:4px 4px 4px 2px}
 #model-plus,#model-form.tall #model-plus{order:1;align-self:flex-end}
 #model-form #model-text,#model-form.tall #model-text{order:2;flex:1 1 0;min-width:0;min-height:40px;padding:9px 6px}
 #model-form .model-bottom,#model-form.tall .model-bottom{order:3;flex:none;margin:0;gap:0}
 #model-form .model-bottom #model-pick{max-width:none;width:36px;height:36px;padding:0;justify-content:center;border-radius:50%}
 #model-form .model-bottom #model-pick #model-pick-name{display:none}
 #model-form .model-bottom #model-quality{padding:6px}
 #model-form .model-bottom #model-send{width:36px;height:36px;margin-left:2px}
 #model-form:has(#model-text:placeholder-shown):not(:has(#model-attached:not([hidden]))) #model-send{display:none}
}
/* Пока в поле есть текст — как в Telegram: диктофон и Таак уступают место «отправить», иначе полю остаётся
   ~130 px и текст идёт колонкой в два слова. Включённые (идёт запись, Таак слушает) не прячутся никогда. */
@media(max-width:640px){
 #model-form:not(:has(#model-text:placeholder-shown)) #model-mic:not([aria-pressed=true]),
 #model-form:not(:has(#model-text:placeholder-shown)) #model-taak:not([aria-pressed=true]){display:none}
 body.recording #model-form #model-mic{display:inline-flex!important}
}
/* Чаты как в Claude (23.09): точка статуса у чата и в шапке, «Остановить» вместо «отправить», вопросы доски над строкой ввода. */
.chat-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin:0 8px 0 0;flex:none;vertical-align:middle;background:transparent}
.chat-dot.dot-done{background:#2f9e6a}
.chat-dot.dot-work{background:#2f6fed;animation:chat-dot-pulse 1.2s ease-in-out infinite}
.chat-dot.dot-ask{background:#f08c00;box-shadow:0 0 0 3px #f08c0033}
.chat-dot.dot-off{background:#9a9a9a}
/* 24.09 (Д3): блок «Доска» в чате — дерево задач с точками состояния */
.board-work ul.subtasks{list-style:none;padding:0;margin:6px 0 0}
.board-work li{display:flex;gap:6px;align-items:baseline;flex-wrap:wrap;margin:4px 0}
.board-work li .muted{flex-basis:100%;margin-left:14px}
.board-work .chat-dot{margin:0 2px 0 0}
@keyframes chat-dot-pulse{50%{opacity:.3}}
@media (prefers-reduced-motion:reduce){.chat-dot.dot-work{animation:none}}
#model-dot{width:10px;height:10px;margin-right:10px}
.model-top{display:flex;align-items:center}
/* 25.09: стоимость чата справа в шапке — «$1.23 (+$0.08)», расчётная */
#model-cost{margin-left:auto;flex:0 0 auto;font-size:12.5px;color:#6b6a78;white-space:nowrap;font-variant-numeric:tabular-nums;padding:2px 8px;border:1px solid #e3e2ea;border-radius:10px;cursor:help}
#model-cost[hidden]{display:none}
#model-form .model-bottom #model-stop{width:38px;height:38px;padding:0;margin:0 0 0 4px;border-radius:50%;flex:none;display:inline-flex;align-items:center;justify-content:center;background:#2c2f36;color:#fff;border:0;cursor:pointer}
#model-form .model-bottom #model-stop[hidden]{display:none}
/* 28.09 вечер, «Стоп не на месте отправки»: пока идёт работа, ■ стоит только при пустом поле; есть что отправить — на том же
   месте «отправить», а ■ прячется (lily сняла дерево задач, отвечая на вопрос). Отправка выключена (модель пишет) — ■ остаётся. */
#model-form:has(#model-text:placeholder-shown):not(:has(#model-attached:not([hidden]))) #model-send.while-stop,#model-form:has(#model-send:disabled) #model-send.while-stop{display:none!important}
#model-form:is(:has(#model-text:not(:placeholder-shown)),:has(#model-attached:not([hidden]))):has(#model-send.while-stop:not(:disabled)) #model-stop{display:none!important}
.stop-square{display:block;width:12px;height:12px;background:currentColor;border-radius:2px}
#chat-questions{margin:0;padding:12px 14px;border:1px solid var(--akii-line,#e4e8ef);border-left:3px solid var(--akii-accent,#35518d);background:var(--akii-surface,#fff);border-radius:var(--akii-radius-card,14px);font-size:14px;line-height:1.45}
#chat-questions[hidden]{display:none}
#chat-questions ol{margin:6px 0 4px;padding-left:22px}
#chat-questions .q-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
#chat-questions .q-toggle{flex:none;border:1px solid var(--akii-line-strong,#d6d5dd);background:#fff;color:var(--akii-muted,#7c7b88);border-radius:999px;padding:3px 12px;font-size:13px;cursor:pointer}
#chat-questions .q-toggle:hover{background:var(--akii-surface-2,#f4f5f9)}
#chat-questions .q-body{overflow:visible}
#chat-questions small{color:var(--akii-muted,#7c7b88)}
@media (max-width:640px){#model-form .model-bottom #model-stop{width:36px;height:36px;margin-left:2px}}
/* Ход работы в чате (23.09 вечер): шаги агента свёрнуты в «N шагов» между вопросом и ответом. */
details.turn-work{margin:6px 0 10px;border:1px solid #e3e5ec;border-radius:12px;background:#fbfbfd;font-size:14px}
details.turn-work>summary{cursor:pointer;list-style:none;padding:8px 12px;color:#5b5f6b;display:flex;align-items:center;gap:8px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
details.turn-work>summary::-webkit-details-marker{display:none}
details.turn-work>summary::after{content:'▾';margin-left:auto;color:#9a9daa;flex:none}
details.turn-work[open]>summary::after{content:'▴'}
.tw-dot{width:8px;height:8px;border-radius:50%;background:#2f9e6a;flex:none}
details.turn-work.working .tw-dot{background:#2f6fed;animation:chat-dot-pulse 1.2s ease-in-out infinite}
.tw-body{padding:2px 12px 10px;display:flex;flex-direction:column;gap:6px;border-top:1px solid #eceef3}
.work-step{font-size:13px;line-height:1.45;color:#3a3f4b;display:flex;gap:6px;align-items:baseline;flex-wrap:wrap}
.work-step .ws-dot{width:6px;height:6px;border-radius:50%;background:#9aa3b5;flex:none;align-self:center}
.work-step.st-running .ws-dot{background:#2f6fed;animation:chat-dot-pulse 1.2s ease-in-out infinite}
.work-step.st-failed .ws-dot{background:#d9480f}
.work-step .ws-detail{color:#5b5f6b;overflow-wrap:anywhere}
.work-step small{color:#8a8f9c}
.work-step.k-text{color:#5b5f6b;font-style:italic;white-space:pre-wrap}
.work-step.k-plan{flex-direction:column;align-items:stretch}
.ws-plan{white-space:pre-wrap;color:#3a3f4b;background:#fff;border:1px solid #eceef3;border-radius:8px;padding:6px 8px}
.tw-body .model-message.in-work{margin:0;font-size:13px;opacity:.9}
.tw-body .model-message.in-work [data-chat-document]{display:none}
/* Простая панель: разделы — только Чаты, Заметки, Результаты; старые вкладки спрятаны (код модулей цел). */
body.panel-simple aside nav>:not(#section-nav){display:none!important}
body.panel-simple #section-nav{display:flex;flex-direction:column}
body.panel-simple #section-nav [data-section-nav]:not([data-section-nav="model-chat"]):not([data-section-nav="feed"]):not([data-section-nav="results"]){display:none!important}
body.panel-simple #section-nav [data-section-nav="model-chat"]{order:-1}
body.panel-simple #home-pult{display:none!important}
@media (max-width:640px){#model-dot{order:-2}.model-top h1{flex:1 1 calc(100% - 26px)}}
/* Вкладки чатов (24.09): открытые чаты сверху, «＋ Новый чат» справа. */
#chat-tabs{display:flex;align-items:center;gap:8px;padding:6px 0 4px;border-bottom:1px solid #e6e7ee;margin-bottom:6px;min-width:0}
#chat-tabs[hidden]{display:none}
#chat-tabs .ct-list{display:flex;gap:4px;overflow-x:auto;min-width:0;flex:1;scrollbar-width:thin}
.ct-tab{display:flex;align-items:center;gap:6px;max-width:220px;min-width:0;padding:6px 6px 6px 10px;border-radius:10px 10px 0 0;border:1px solid transparent;color:#5b5f6b;cursor:pointer;flex:none;font-size:13px}
.ct-tab:hover{background:#eef0f6}
.ct-tab.active{background:#fff;border-color:#e3e5ec;border-bottom-color:#fff;color:#23262e;font-weight:500}
.ct-tab .chat-dot{margin:0}
.ct-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.ct-close{border:0;background:transparent;color:#9a9daa;font-size:15px;line-height:1;padding:2px 5px;border-radius:6px;cursor:pointer;flex:none}
.ct-close:hover{background:#e3e5ec;color:#23262e}
.ct-tab.new{color:#9a9daa;font-weight:400}
#ct-new{flex:none;border:1px solid #d9dce6;background:#fff;border-radius:10px;padding:6px 12px;font:inherit;font-size:13px;color:#23262e;cursor:pointer}
#ct-new:hover{background:#eef0f6}
@media (max-width:640px){#ct-new span{display:none}#ct-new{padding:5px 10px}.ct-tab{max-width:150px}}
/* t295: на десктопе панель стоит рядом со вкладками, и «Новый чат» в ней повторял «＋ Новый чат» в полосе — прячем его,
   пока полоса видна. Где полосы нет (заметки, результаты) и на телефоне, где панель — закрытая шторка, кнопка панели остаётся. */
@media (min-width:901px){body:has(#chat-tabs:not([hidden])) #pb-new-chat{display:none}}
/* Панель (24.09): проект, «Заметка», чаты проекта — остальное спрятано. */
body.panel-simple aside nav{display:none!important}
body.panel-simple .library-menu>:not(#panel-block):not(.sidebar-bottom){display:none!important}
#panel-block{display:flex;flex-direction:column;gap:10px;min-height:0}
#panel-block .pb-project{display:flex;flex-direction:column;gap:4px;font-size:12px;color:#7c7b88}
#pb-project{font:inherit;font-size:14px;color:#23262e;padding:8px 10px;border:1px solid #d9dce6;border-radius:10px;background:#fff;width:100%}
#panel-block .pb-actions{display:flex;gap:8px;flex-wrap:wrap}
/* Л4: в узкой панели ПК «Новый чат» не ломается на две строки — кнопки встают друг под другом (.pb-actions wrap). */
#pb-note,#pb-new-chat{flex:1 1 auto;white-space:nowrap;display:flex;align-items:center;gap:8px;justify-content:center;font:inherit;font-size:14px;padding:9px 12px;border:1px solid #d9dce6;border-radius:10px;background:#fff;color:#23262e;cursor:pointer}
#pb-note svg,#pb-new-chat svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
#pb-note:hover,#pb-new-chat:hover,#pb-chats button:hover{background:#eef0f6}
#pb-chats{display:flex;flex-direction:column;gap:2px;overflow:auto;min-height:0}
#pb-chats button{display:flex;align-items:center;gap:8px;text-align:left;font:inherit;font-size:14px;padding:8px 10px;border:0;border-radius:10px;background:transparent;color:#3a3f4b;cursor:pointer;min-width:0}
#pb-chats button.selected{background:#e6e8f2;color:#23262e;font-weight:500}
#pb-chats .chat-dot{margin:0}
.pb-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.pb-empty{font-size:13px;color:#8a8f9c;margin:4px 2px}
/* Распознанный текст пера (24.09) — полоска у верхнего края листа, не под штрихами. */
#ink-live.ink-live-top{position:fixed;left:50%;transform:translateX(-50%);max-width:min(92vw,680px);width:max-content;z-index:40;box-shadow:0 6px 18px #1c2a3a22}
/* Вышло обновление (23.09): плашка сверху поверх всего; нажатие — перезагрузка. */
#update-bar{position:fixed;left:50%;transform:translateX(-50%);top:calc(env(safe-area-inset-top,0px) + 8px);z-index:10000;width:max-content;max-width:calc(100vw - 24px);border:0;border-radius:14px;padding:11px 18px;background:#35518d;color:#fff;font:600 14px/1.3 inherit;box-shadow:0 4px 16px #1c2a3a40;cursor:pointer}
#update-bar[hidden]{display:none}
/* 24.09: полоса прокрутки в строке ввода — только когда текст не влез (класс вешает shell.js, «прокрутка»). */
#model-form textarea#model-text{overflow-y:hidden}
#model-form textarea#model-text.overflowing{overflow-y:auto}
/* 24.09: варианты ответа на вопрос исполнителя — плашками; нажал — ответ ушёл в задачу. */
#chat-questions li{margin:4px 0 8px}
#chat-questions .q-options{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
#chat-questions .q-chip{border:1px solid transparent;background:var(--akii-chip,#eef2f7);color:var(--akii-chip-ink,#38618a);border-radius:999px;padding:4px 12px;font-size:13px;line-height:1.4;cursor:pointer;max-width:100%;text-align:left;white-space:normal}
#chat-questions .q-chip:hover{border-color:var(--akii-accent,#35518d)}
#chat-questions .q-chip.q-own{background:#fff;border:1px dashed var(--akii-line-strong,#d6d5dd);color:var(--akii-muted,#7c7b88)}
#chat-questions .q-chip.chosen{background:var(--akii-accent,#35518d);border-color:var(--akii-accent,#35518d);color:#fff}
#chat-questions.sending .q-chip{pointer-events:none}
#chat-questions.sending .q-chip:not(.chosen){opacity:.5}
/* 24.09: вкладки чатов переставляются перетаскиванием. */
.ct-tab{user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
.ct-tab.dragging{background:#fff;border-color:#c9cde0;box-shadow:0 4px 14px rgba(30,40,70,.18);cursor:grabbing;position:relative;z-index:1}
#chat-tabs.reordering,#chat-tabs.reordering .ct-tab{cursor:grabbing}
/* Подсказка пустого поля — одной строкой с многоточием: перенесённая, она растягивала пустое поле и звала полосу прокрутки. */
#model-form textarea#model-text::placeholder{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* 24.09 (Антон, снимки с планшета): рельс быстрого доступа и на планшете в портрете. Он был только от 901 px, а у планшета
   800 — слева оставался один ☰ в шапке. На телефоне (≤640) рельса нет: 56 px там дороже, чем кнопка ☰. Пока выдвижная панель
   открыта, рельс прячется — она ложится поверх, а ☰ в шапке не нужен: та же кнопка — верхняя в рельсе. */
@media(min-width:641px) and (max-width:900px){body:not(.menu-open) #rail{display:flex}body:not(.menu-open) main{margin-left:56px}body #menu-toggle{display:none!important}}
/* Разделы в панели — те же кнопки, что в рельсе, но с подписями. */
#pb-nav{display:flex;flex-direction:column;gap:2px;padding:0 0 8px;border-bottom:1px solid #e6e6ee}
#pb-nav button{display:flex;align-items:center;gap:10px;width:100%;text-align:left;font:inherit;font-size:14px;padding:8px 10px;border:0;border-radius:10px;background:transparent;color:#3a3f4b;cursor:pointer;margin:0}
#pb-nav button:hover{background:#eef0f6}
#pb-nav button[aria-current=true]{background:#e1e8fb;color:#35518d}
#pb-nav svg{width:20px;height:20px;flex:none;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
#pb-nav .pb-glyph{width:20px;text-align:center;font-size:17px;line-height:1;flex:none}
/* 24.09 (порядок Антона): панель — шесть кнопок, проект, пять последних чатов и «История чатов» — окно со всеми чатами и поиском. */
#pb-history{display:flex;align-items:center;gap:10px;width:100%;text-align:left;font:inherit;font-size:14px;padding:8px 10px;border:0;border-radius:10px;background:transparent;color:#3a3f4b;cursor:pointer;flex:none}
#pb-history:hover{background:#eef0f6}
#pb-history .pb-glyph{width:20px;text-align:center;font-size:17px;line-height:1;flex:none}
#panel-block .pb-project{flex:none}
#chat-history{width:min(720px,94vw);max-height:80vh;padding:0;border:1px solid #d3dccd;border-radius:18px;overflow:hidden;display:flex;flex-direction:column;margin:8vh auto auto}
#chat-history:not([open]){display:none}
#chat-history::backdrop{background:#142d3466}
#chat-history-list{overflow:auto;padding:4px 10px 10px;min-height:120px}
@media(max-width:640px){#chat-history{margin:0;width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;border-radius:0;border:0}}
/* t309: цитата вопроса исполнителя под ответом «N: текст» */
.model-message .q-quote{margin-top:6px;padding:6px 10px;border-left:3px solid #f0c27a;background:#fff8ec;border-radius:6px;font-size:13px;line-height:1.45;color:#5a4418;overflow-wrap:anywhere}
/* 26.09, п. 4 Антона — чистка кнопок (shell.js, «Чистка кнопок»): Таак только включённым, «Новая заметка» не в самой
   заметке, голос одной кнопкой. */
body.taak-off #model-taak,body.taak-off #taak-toggle,body.taak-off #taak-pill{display:none!important}
body.note-mode #new-note{display:none!important}
.mat-list [data-mat="record"]{display:none!important}
/* 26.09, п. 3 Антона — ход работы деревом: шаги субагента под ним, модель и токены у шага, цена хода внизу (shell.js). */
.tw-body .ws-sub{margin:2px 0 4px 5px;padding-left:12px;border-left:2px solid #dfe4ee;display:flex;flex-direction:column;gap:4px}
.work-step .ws-meta{font-size:11px;color:#7b8394;background:#f0f2f7;border-radius:6px;padding:0 6px;font-style:normal;white-space:nowrap}
.work-step.k-usage{margin-top:6px;padding-top:6px;border-top:1px dashed #dfe4ee;color:#3a3f4b}
/* В1 «Лицо и порядок» (26.09): микрофон в шапке — только в «Заметках» и в самой заметке (там он надиктовывает лист);
   в «Простом виде» есть «Сказать», в чате — свой в строке ввода, на «Результатах» диктовать некуда. На телефоне
   название чата — во вкладке (нажатие по открытой вкладке переименовывает), заголовок под вкладками скрыт. */
body[data-section]:not([data-section="feed"]):not([data-section="note-focus"]) main>header #dictate{display:none!important}
@media(max-width:640px){body:has(#chat-tabs .ct-tab) #model-title,body:has(#chat-tabs .ct-tab) #model-dot{display:none}#model-chat .model-top{justify-content:flex-end;min-height:0}}
/* В1: главная кнопка — акцент лица (akii-face.css), а не прежний сине-голубой #2f6f9f из первой палитры: «Отправить»
   в «Простом виде» и кнопки .primary были другого синего, чем чат, панель и Studio. */
.primary,#sp-send{background:var(--akii-accent)!important;border-color:var(--akii-accent)!important;color:var(--akii-accent-ink)!important}
.primary:hover,#sp-send:hover{filter:brightness(1.08)}
/* В2 «Работа без Studio» (26.09): кнопки приёмки в блоке «Доска», карточки согласования над строкой ввода, сайт проекта. */
.review-act{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 2px}.review-act textarea{flex:1 1 100%;font:inherit;border:1px solid var(--akii-line-strong);border-radius:var(--akii-radius);padding:10px}
.board-work .board-link{text-decoration:none;margin-left:6px;color:var(--akii-accent)}
#chat-approvals{margin:0;display:flex;flex-direction:column;gap:8px}#chat-approvals[hidden]{display:none}#chat-approvals .ap-head{font-size:12px;color:var(--akii-muted);text-transform:uppercase;letter-spacing:.04em}
#chat-approvals .ap-card{background:var(--akii-surface);border:1px solid var(--akii-line);border-left:3px solid var(--akii-accent);border-radius:var(--akii-radius-card);padding:12px 14px;display:flex;flex-direction:column;gap:6px}
#chat-approvals .ap-posts{display:grid;gap:8px;margin:6px 0}
/* План недели читают целиком: полоса выше обычной, кнопки прилипают к низу карточки — «Согласовать неделю» видна всегда. */
#chat-decide:has(.ap-posts){max-height:62vh}
#chat-approvals .ap-card:has(.ap-posts) .ap-buttons{position:sticky;bottom:0;background:var(--akii-surface);padding:8px 0 2px;margin-bottom:-2px}
#chat-approvals .ap-post{display:grid;grid-template-columns:72px 1fr;gap:10px;align-items:start}
#chat-approvals .ap-post img,#chat-approvals .ap-noimg{width:72px;height:72px;border-radius:var(--akii-radius);object-fit:cover;background:var(--akii-surface-2,#f1f1f1);display:grid;place-items:center;font-size:24px}
#chat-approvals .ap-post small{color:var(--akii-muted,#666)}
#chat-approvals .ap-card textarea{font:inherit;border:1px solid var(--akii-line-strong);border-radius:var(--akii-radius);padding:10px}
/* 28.09 (Л2): зона «ваше решение» над строкой ввода — карточка задачи, вопросы, согласование. Высота ограничена,
   чтобы разговор над ней оставался видим; пустая зона не занимает места. */
#chat-decide{display:flex;flex-direction:column;gap:8px;margin:8px 0 4px}
#chat-decide:not(:has(>:not([hidden]))){display:none}
#chat-task[hidden]{display:none}
#chat-task .board-work{margin:0;background:var(--akii-surface,#fff);border:1px solid var(--akii-line,#e4e8ef);border-radius:var(--akii-radius-card,14px);padding:12px 14px}
#chat-task .board-work>small{display:block;color:var(--akii-muted,#7c7b88);font-size:12px;margin-bottom:4px}
#chat-task .board-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
#chat-task .board-head b{color:var(--akii-text-strong,#23262e);font-weight:600;font-size:15px;line-height:1.35;flex:1 1 12em;min-width:0}
#chat-task .board-state{font-size:13px;color:var(--akii-muted,#7c7b88)}
#chat-task .state-review .board-state,#chat-task .state-blocked .board-state{color:var(--akii-accent,#35518d);font-weight:600}
#chat-task .board-result{margin-top:10px;min-height:40px;font-size:14px}
#chat-task .subtasks{margin:8px 0 0;padding:0;list-style:none;font-size:13px;color:var(--akii-muted,#7c7b88)}
#chat-task .subtasks li{margin:3px 0}
#chat-task .review-act{margin-top:10px}
article.model-message.dup-questions{display:none}
@media(max-width:640px){#chat-decide{margin:6px 0 2px}#chat-task .board-work{padding:10px 12px;font-size:15px}
 #chat-task .board-head{gap:2px 8px}#chat-task .board-head b{flex-basis:calc(100% - 24px);font-size:14.5px}#chat-task .board-state{margin-left:18px}}
.ap-buttons{display:flex;flex-wrap:wrap;gap:8px}
.pb-site{margin:6px 0 0;padding:8px 10px;border:1px solid var(--akii-line-strong);border-radius:var(--akii-radius);background:var(--akii-surface);color:var(--akii-text-strong);font:inherit;text-align:left;width:100%}.pb-site[hidden]{display:none}
#site-dialog{border:1px solid var(--akii-line);border-radius:var(--akii-radius-card);padding:18px;max-width:min(420px,92vw);font-family:var(--akii-font);color:var(--akii-text)}#site-dialog a{overflow-wrap:anywhere;color:var(--akii-accent)}
/* 28.09: «Недописанное» — набранное и не отправленное, над списком чатов панели (shell.js, черновик чата). */
#chat-drafts{margin:0 0 6px;border-bottom:1px solid #eceef3;padding-bottom:4px}
#chat-drafts .draft-row{display:flex;align-items:center;gap:2px}
#chat-drafts .draft-row>button[data-chat-draft]{flex:1;min-width:0;display:block;text-align:left;border:0;background:transparent;padding:8px 9px;border-radius:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#5b4a1d;font-style:italic}
#chat-drafts .draft-row>button[data-chat-draft]:hover{background:#faf5e6}
#chat-drafts .draft-row small{display:block;color:#83868b;font-size:11px;font-style:normal;overflow:hidden;text-overflow:ellipsis}
#chat-drafts .draft-drop{width:26px;height:26px;min-width:26px;padding:0;border:0;background:transparent;color:#a3a5ab;border-radius:50%;font-size:16px}
#chat-drafts .draft-drop:hover{background:#f0e2e2;color:#b03c42}
/* 28.09: окно «Папка проекта» — файлы с Google Диска вложением (shell.js, prismaDrive). */
#drive-dialog{width:min(560px,94vw);max-height:80vh;border:0;border-radius:16px;padding:0;box-shadow:0 18px 60px rgba(20,24,40,.25);display:none;flex-direction:column}
#drive-dialog[open]{display:flex}
#drive-dialog::backdrop{background:rgba(20,24,40,.35)}
#drive-dialog header{display:flex;align-items:center;gap:6px;padding:12px 12px 8px 16px;border-bottom:1px solid #eceef3;height:auto;margin:0;position:static;background:transparent;font-size:inherit;color:inherit;justify-content:flex-start}
#drive-dialog header b{flex:1;font-size:15px}
#drive-dialog header button{width:32px;height:32px;min-width:32px;padding:0;border:0;background:transparent;border-radius:50%;font-size:17px;color:#5d6068}
#drive-dialog header button:hover{background:#f0f2f6}
#drive-crumbs{padding:8px 16px 4px;font-size:13px;color:#83868b}
#drive-crumbs button{border:0;background:transparent;padding:2px 4px;color:#3b6fd4;font-size:13px}
#drive-crumbs a{margin-left:6px;color:#83868b;font-size:12px}
#drive-list{overflow:auto;padding:4px 8px 8px;flex:1}
#drive-list>button{display:flex;align-items:center;gap:10px;width:100%;text-align:left;border:0;background:transparent;padding:10px 8px;border-radius:10px;font-size:14px}
#drive-list>button:hover{background:#f3f5fa}
#drive-list .drive-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#drive-list small{color:#93959c;font-size:11px;white-space:nowrap}
#drive-note{padding:4px 16px 14px;margin:0;font-size:13px}
#drive-list .muted,#drive-note.muted{color:#83868b}
#drive-dialog:focus{outline:none}
/* Недописанное на пустом экране нового чата — под приглашением «С чего начнём?». */
#chat-drafts-welcome{width:100%;max-width:520px;margin:18px auto 0;text-align:left;box-sizing:border-box}
#chat-drafts-welcome .draft-row{display:flex;align-items:center;gap:2px;background:#fff;border:1px solid #ece6d2;border-radius:12px;margin-top:6px}
#chat-drafts-welcome .draft-row>button[data-chat-draft]{flex:1;min-width:0;text-align:left;border:0;background:transparent;padding:9px 12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#5b4a1d;font-style:italic;font-size:14px}
#chat-drafts-welcome .draft-row small{display:block;color:#83868b;font-size:11px;font-style:normal}
#chat-drafts-welcome .draft-drop{width:28px;height:28px;min-width:28px;padding:0;border:0;background:transparent;color:#a3a5ab;border-radius:50%;font-size:16px;margin-right:4px}

/* 28.09 вечер: одна лента. Карточка задачи — свёртка: строка с названием (две строки максимум), состоянием и ценой;
   подзадачи и приёмка — внутри. Раскрыта сама, пока ждёт человека (home.js доскаHTML). */
.board-fold{border:0;padding:0;margin:0}
.board-fold>summary{list-style:none;cursor:pointer}
#chat-task .board-fold>summary>small{display:block;color:var(--akii-muted,#7c7b88);font-size:12px;margin-bottom:4px}
.board-fold>summary::-webkit-details-marker{display:none}
.board-fold>summary .board-head:after{content:'▾';margin-left:auto;color:var(--akii-muted,#7c7b88);font-size:12px;transition:transform .15s}
.board-fold[open]>summary .board-head:after{transform:rotate(180deg)}
.board-fold:not([open])>summary .board-head b{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
#chat-task .board-fold:not([open]) .board-result{margin-top:8px;min-height:0}
/* 28.09 вечер: вопрос «Выйти из Prisma?» на системное «назад» (shell.js, блок «Назад» спрашивает). */
#exit-ask{position:fixed;inset:0;z-index:1000;background:rgba(20,22,30,.38);display:grid;place-items:end center;padding:16px 16px max(16px,env(safe-area-inset-bottom))}
#exit-ask[hidden]{display:none}
#exit-ask .exit-card{width:min(100%,420px);background:var(--akii-surface,#fff);border-radius:var(--akii-radius-card,14px);padding:18px;box-shadow:0 10px 40px rgba(0,0,0,.2)}
#exit-ask b{font-size:17px;font-weight:600}
#exit-ask p{margin:6px 0 14px;color:var(--akii-muted,#7c7b88);font-size:14px;line-height:1.45}
#exit-ask .exit-act{display:flex;gap:8px}#exit-ask .exit-act .akii-btn{flex:1}
#exit-ask small{display:block;margin-top:10px;color:var(--akii-accent,#35518d);font-size:13px}#exit-ask small[hidden]{display:none}
@media(min-width:641px){#exit-ask{place-items:center}}
/* 30.09 (lily): что ждёт человека — строкой сверху карточки; что сделано и почему встала — текстом у шага; «подробнее» вместо ↗ в Studio. */
.board-ask{margin-top:6px;font-size:13px;font-weight:600;color:#b86200}
.board-note{margin:6px 0 2px;font-size:13px;line-height:1.45;color:var(--akii-text,inherit);white-space:pre-wrap;overflow-wrap:anywhere;max-height:14em;overflow:auto}
.board-note b{font-weight:600}
.board-more{margin:2px 0 0;font-size:12px}
.board-more>summary{cursor:pointer;color:var(--akii-muted,#7c7b88);list-style:none;display:inline-block;padding:2px 0}
.board-more>summary::-webkit-details-marker{display:none}
.board-more>summary:after{content:' ▾'}
.board-more[open]>summary:after{content:' ▴'}
.board-studio{display:inline-block;margin-top:4px;font-size:12px;color:var(--akii-muted,#7c7b88)}
.review-all{margin:8px 0 2px}
.board-work ul.subtasks li.sub-review,.board-work ul.subtasks li.sub-blocked{padding:8px 0;border-top:1px solid var(--akii-line,#e6e4ee)}
/* 30.09: реплики оценщика и исполнителя — одна строка, полный текст под «›» */
.step-fold{margin:0;padding:0;border:0}
.step-fold>summary{list-style:none;cursor:pointer;display:flex;gap:6px;align-items:center;min-height:40px;font-size:14px;line-height:1.35;overflow-wrap:anywhere}
.step-fold>summary::-webkit-details-marker{display:none}
.step-fold>summary:before{content:'›';flex:none;color:var(--akii-muted,#7c7b88);font-size:18px;transition:transform .15s}
.step-fold[open]>summary:before{transform:rotate(90deg)}
.step-fold>summary b{flex:none;font-weight:600;color:var(--akii-muted,#7c7b88);font-size:12px}
.step-fold>summary span{min-width:0}
.step-fold:not([open])>summary span{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.step-text{white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px;color:var(--akii-muted,#7c7b88);padding:2px 0 6px 18px}
/* 01.10 (Антон, t312): ответ исполнителя — развёрнутым, как ответ модели; у сделанной задачи вместо плашки — «Готово» и итог */
.executor-answer .answer-text code{font-size:.9em;background:var(--akii-line,#eeedf5);border-radius:4px;padding:0 3px}
#chat-task .board-work.board-done{border:0;background:transparent;padding:4px 2px}
#chat-task .board-done .board-head b{flex-basis:auto;font-size:14px}
.board-done .board-note{max-height:none;font-size:14px}
.board-done-sub>summary{min-height:32px;font-size:13px;color:var(--akii-muted,#7c7b88)}

/* 03.10: промежуточные шаги и свёрнутая задача — компактные строки; итог читается целиком. */
#model-messages details.turn-work{margin:3px 0 6px;border:0;border-radius:6px;background:transparent;font-size:12px;line-height:1.35}
#model-messages details.turn-work>summary{min-height:30px;padding:4px 6px;gap:6px;font-size:12px}
#model-messages details.turn-work>summary:hover{background:var(--akii-line,#eeedf5)}
#model-messages .tw-body{padding:6px;gap:4px}
#model-messages .model-message:has(>.step-fold){padding:4px 2px}
#model-messages .step-fold>summary{min-height:30px;font-size:12px}
#model-messages .step-fold:not([open])>summary span{-webkit-line-clamp:1}
#chat-task .board-work:not(.board-done){padding:6px 8px;border-radius:8px;font-size:13px}
#chat-task .board-fold:not([open])>summary>small{display:none}
#chat-task .board-fold:not([open])>summary .board-head{min-height:30px;gap:5px;flex-wrap:nowrap}
#chat-task .board-fold:not([open])>summary .board-head b{flex:1 1 auto;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}
#chat-task .board-fold:not([open])>summary .board-state{flex:none;font-size:12px;margin:0}
#chat-task .board-fold:not([open]) .board-result{margin-top:2px;min-height:0;font-size:12px}
