/* AI Chat — все классы с префиксом aichat- */
.aichat-hidden { display: none !important; }

.aichat-root {
  display: flex;
  flex-direction: column;
  height: 100%;
  padding: 0;
}
.aichat-top {
  display: flex;
  align-items: flex-end;
  border-bottom: 1px solid var(--background-modifier-border);
  background: var(--background-secondary-alt, var(--background-secondary));
}
.aichat-top .aichat-save {
  flex: none;
  margin: 0 4px 3px 2px;
}
.aichat-tabs {
  display: flex;
  align-items: flex-end;
  flex: 1;
  min-width: 0;
  gap: 2px;
  padding: 4px 6px 0;
  overflow-x: auto;
  scrollbar-width: none;
}
.aichat-tabs::-webkit-scrollbar { display: none; }
.aichat-tab {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  /* в узкой панели вкладки не сжимаются до буквы: лишние прокручиваются (колесом), полное имя — в подсказке */
  flex: 0 1 auto;
  min-width: 72px;
  max-width: 160px;
  padding: 4px 6px 4px 10px;
  border-radius: 6px 6px 0 0;
  font-size: var(--font-ui-smaller);
  color: var(--text-muted);
  cursor: pointer;
  user-select: none;
  white-space: nowrap;
}
.aichat-tab:hover { background: var(--background-modifier-hover); }
.aichat-tab.is-active {
  background: var(--background-primary);
  color: var(--text-normal);
  box-shadow: 0 1px 0 var(--background-primary);
}
.aichat-tab.is-busy .aichat-tab-title::after { content: " …"; color: var(--text-accent); }
.aichat-tab-title { overflow: hidden; text-overflow: ellipsis; }
.aichat-tab-close {
  display: inline-flex;
  border-radius: 4px;
  opacity: 0;
  flex: none;
}
.aichat-tab-close svg { width: 12px; height: 12px; }
.aichat-tab:hover .aichat-tab-close,
.aichat-tab.is-active .aichat-tab-close { opacity: 0.7; }
.aichat-tab-close:hover { opacity: 1 !important; background: var(--background-modifier-hover); }
/* «+» не уезжает вместе с прокруткой вкладок */
.aichat-tab-add {
  flex: none;
  margin-bottom: 2px;
  position: sticky;
  right: 0;
  background: var(--background-secondary-alt, var(--background-secondary));
}

.aichat-icon { padding: 4px; }

.aichat-list {
  flex: 1;
  overflow-y: auto;
  padding: 8px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.aichat-empty {
  color: var(--text-muted);
  text-align: center;
  padding: 24px 12px;
  font-size: var(--font-ui-small);
}
.aichat-msg {
  position: relative;
  max-width: 92%;
  padding: 6px 10px;
  border-radius: var(--radius-m, 8px);
  font-size: var(--font-ui-small);
  line-height: 1.45;
  word-break: break-word;
  /* Obsidian запрещает выделение во всём интерфейсе (body { user-select: none }) — текст сообщений выделяется и копируется */
  user-select: text;
}
/* кнопки внутри сообщения в выделение не попадают */
.aichat-msg button,
.aichat-msg .clickable-icon,
.aichat-actions,
.aichat-code-actions { user-select: none; }
.aichat-msg.is-user {
  align-self: flex-end;
  background: var(--interactive-accent);
  color: var(--text-on-accent);
  white-space: pre-wrap;
}
.aichat-msg.is-assistant {
  align-self: stretch; /* ответы всегда во всю ширину панели */
  max-width: none;
  min-width: 0;
  background: var(--background-secondary);
  border: 1px solid var(--background-modifier-border);
}
.aichat-proposal { width: 100%; min-width: 0; }
/* в теме Obsidian --background-modifier-error — сплошной красный, а --text-error тоже красный: текст пропадал */
.aichat-msg.is-error {
  background: rgba(var(--color-red-rgb), 0.1);
  border: 1px solid rgba(var(--color-red-rgb), 0.4);
  color: var(--text-error);
}
/* остановленный пользователем ответ — не ошибка */
.aichat-msg.is-stopped {
  color: var(--text-muted);
  font-style: italic;
}
.aichat-body > :first-child { margin-top: 0; }
.aichat-body > :last-child { margin-bottom: 0; }
.aichat-body pre { overflow-x: auto; }
/* таблицы в ответах: рамки, выделенная шапка; широкая — прокручивается внутри сообщения, а не раздвигает панель */
.aichat-body table {
  display: block;
  max-width: 100%;
  overflow-x: auto;
  border-collapse: collapse;
  margin: 0.6em 0;
  font-size: var(--font-ui-smaller);
}
.aichat-body th,
.aichat-body td {
  border: 1px solid var(--background-modifier-border);
  padding: 4px 8px;
  text-align: left;
  vertical-align: top;
}
.aichat-body th {
  background: var(--background-modifier-hover);
  font-weight: var(--font-semibold, 600);
  white-space: nowrap;
}
/* у блоков кода свои действия (aichat-code-actions) — встроенная кнопка Obsidian дублировала «Копировать» */
.aichat-msg .copy-code-button { display: none; }
.aichat-actions {
  display: flex;
  gap: 2px;
  margin-top: 4px;
  opacity: 0.55;
}
.aichat-msg:hover .aichat-actions { opacity: 1; }
.aichat-msg.is-error .aichat-actions { opacity: 1; }
.aichat-retry {
  font-size: var(--font-ui-smaller);
  padding: 2px 8px;
  height: auto;
}

.aichat-foot {
  border-top: 1px solid var(--background-modifier-border);
  padding: 6px 8px 8px;
}
.aichat-ctx {
  display: flex;
  flex-wrap: wrap; /* в узкой панели переключатели переносятся, а не обрезаются */
  gap: 4px;
  margin-bottom: 6px;
}
.aichat-toggle {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 2px 8px;
  font-size: var(--font-ui-smaller);
  border-radius: 999px;
  border: 1px solid var(--background-modifier-border);
  background: transparent;
  color: var(--text-muted);
  box-shadow: none;
  cursor: pointer;
}
.aichat-toggle.is-active {
  border-color: var(--interactive-accent);
  color: var(--text-accent);
  background: var(--background-modifier-hover);
}
.aichat-toggle-icon svg { width: 13px; height: 13px; }

.aichat-row {
  display: flex;
  gap: 6px;
  align-items: flex-end;
}
.aichat-input {
  flex: 1;
  resize: none;
  min-height: 2.4em;
  max-height: 200px;
  font-size: var(--font-ui-small);
}
.aichat-send {
  padding: 6px 8px;
  height: 2.4em;
}

/* строка под полем ввода: выбор модели и сохранение диалога */
.aichat-bottom {
  display: flex;
  align-items: center;
  gap: 4px;
  margin-top: 6px;
}
.aichat-bottom select.aichat-model {
  flex: 0 1 auto;
  min-width: 0;
  max-width: 70%;
  height: 24px;
  padding: 0 20px 0 8px;
  font-size: var(--font-ui-smaller);
  color: var(--text-muted);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.aichat-settings-textarea { width: 100%; min-width: 320px; }

/* предпросмотр предложенной правки заметки */
.aichat-diff-stats {
  font-size: var(--font-ui-smaller);
  color: var(--text-muted);
  margin-bottom: 6px;
}
.aichat-diff {
  max-height: 260px;
  overflow: auto;
  padding: 6px 0;
  border: 1px solid var(--background-modifier-border);
  border-radius: 6px;
  background: var(--background-primary-alt, var(--background-secondary));
  font-family: var(--font-monospace);
  font-size: var(--font-ui-smaller);
}
.aichat-diff-line {
  padding: 0 8px;
  white-space: pre-wrap;
  word-break: break-word;
}
.aichat-diff-line.is-add {
  background: rgba(var(--color-green-rgb), 0.15);
  color: var(--text-normal);
}
.aichat-diff-line.is-del {
  background: rgba(var(--color-red-rgb), 0.15);
  color: var(--text-muted);
  text-decoration: line-through;
  text-decoration-color: var(--text-faint);
}
.aichat-diff-line.is-skip {
  color: var(--text-faint);
  font-style: italic;
  text-align: center;
  padding: 2px 8px;
}

/* панель действий у блока кода в ответе — как в Copilot Chat */
.aichat-body pre.aichat-code {
  position: relative;
}
.aichat-code-actions {
  position: absolute;
  top: 4px;
  right: 4px;
  display: flex;
  gap: 2px;
  padding: 2px;
  border-radius: 6px;
  background: var(--background-primary);
  border: 1px solid var(--background-modifier-border);
  opacity: 0;
  transition: opacity 100ms ease-in-out;
}
.aichat-code:hover .aichat-code-actions,
.aichat-code-actions:focus-within {
  opacity: 1;
}
.aichat-code-actions .aichat-icon { padding: 2px; }
.aichat-code-actions svg { width: 14px; height: 14px; }

/* предложенная правка: карточка в сообщении, куски с принять/отклонить */
.aichat-proposal {
  margin-top: 6px;
  border: 1px solid var(--background-modifier-border);
  border-radius: var(--radius-m, 8px);
  background: var(--background-primary);
  overflow: hidden;
}
.aichat-proposal-head {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 5px 8px;
  border-bottom: 1px solid var(--background-modifier-border);
  font-size: var(--font-ui-smaller);
}
.aichat-proposal-icon svg { width: 14px; height: 14px; color: var(--text-accent); }
.aichat-proposal-title { font-weight: 600; flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.aichat-proposal-stats { color: var(--text-muted); white-space: nowrap; }
.aichat-edit-btn { font-size: var(--font-ui-smaller); padding: 1px 8px; height: auto; line-height: 1.6; }
.aichat-hunk + .aichat-hunk { border-top: 1px solid var(--background-modifier-border); }
.aichat-hunk-head {
  display: flex;
  align-items: center;
  gap: 2px;
  padding: 2px 6px 2px 8px;
  font-size: var(--font-ui-smaller);
  color: var(--text-muted);
  background: var(--background-secondary);
}
.aichat-hunk-title { flex: 1; }
.aichat-hunk-status { font-style: italic; }
.aichat-hunk.is-accepted .aichat-hunk-status { color: var(--color-green); }
.aichat-hunk.is-rejected { opacity: 0.55; }
.aichat-hunk-accept svg { color: var(--color-green); }
.aichat-hunk-reject svg { color: var(--color-red); }
.aichat-hunk .aichat-diff { border: none; border-radius: 0; padding: 3px 0; font-size: var(--font-smaller); }
.aichat-proposal-stale {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 4px 8px;
  font-size: var(--font-ui-smaller);
  color: var(--text-warning, var(--text-muted));
  background: rgba(var(--color-yellow-rgb), 0.12);
  border-bottom: 1px solid var(--background-modifier-border);
}
.aichat-proposal-stale svg { width: 13px; height: 13px; flex: none; }

/* вызовы инструментов (MCP / навыки) */
.aichat-tools { display: flex; flex-direction: column; gap: 4px; margin-top: 6px; }
.aichat-tool {
  border: 1px solid var(--background-modifier-border);
  border-radius: var(--radius-s, 6px);
  background: var(--background-primary);
  font-size: var(--font-ui-smaller);
  overflow: hidden;
}
.aichat-tool-head { display: flex; align-items: center; gap: 6px; padding: 4px 8px; }
.aichat-tool-icon svg { width: 13px; height: 13px; color: var(--text-muted); }
.aichat-tool-title { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 600; }
.aichat-tool-status { color: var(--text-muted); white-space: nowrap; }
.aichat-tool.is-ok .aichat-tool-status { color: var(--color-green); }
.aichat-tool.is-error .aichat-tool-status { color: var(--color-red); }
.aichat-tool.is-denied,
.aichat-tool.is-cancelled { opacity: 0.6; }
.aichat-stopped { margin-top: 4px; font-size: var(--font-ui-smaller); color: var(--text-muted); font-style: italic; }
.aichat-note { margin-top: 4px; font-size: var(--font-ui-smaller); color: var(--text-warning, var(--text-muted)); }
.aichat-tool.is-pending { border-color: var(--interactive-accent); }
/* инструмент, помеченный сервером как разрушающий (destructiveHint) */
.aichat-tool.is-destructive { border-color: var(--color-red); }
.aichat-tool.is-destructive .aichat-tool-icon svg { color: var(--color-red); }
.aichat-tool-warn { padding: 2px 8px 4px; color: var(--text-error, var(--color-red)); }
.aichat-tool-args[open] pre { max-height: 320px; }
.aichat-tool.is-running .aichat-tool-status::after { content: ""; display: inline-block; width: 8px; height: 8px; margin-left: 4px; border-radius: 50%; border: 1.5px solid var(--text-muted); border-top-color: transparent; animation: aichat-spin 0.8s linear infinite; vertical-align: middle; }
@keyframes aichat-spin { to { transform: rotate(360deg); } }
.aichat-tool-details { border-top: 1px solid var(--background-modifier-border); }
.aichat-tool-details summary { padding: 2px 8px; cursor: pointer; color: var(--text-muted); }
.aichat-tool-details pre { margin: 0; padding: 4px 8px; max-height: 240px; overflow: auto; font-size: var(--font-smaller); white-space: pre-wrap; word-break: break-word; }
.aichat-tool-approve { display: flex; gap: 6px; flex-wrap: wrap; padding: 4px 8px 6px; border-top: 1px solid var(--background-modifier-border); }
.aichat-skill-btn { padding: 2px 6px; }
.aichat-skill-desc { font-size: var(--font-ui-smaller); color: var(--text-muted); }
.aichat-settings-hint { margin-top: 4px; color: var(--text-warning, var(--text-muted)); }

/* подсказки «/» над полем ввода */
.aichat-foot { position: relative; }
.aichat-slash-pop {
  position: absolute;
  left: 8px;
  right: 8px;
  bottom: 100%;
  margin-bottom: 4px;
  max-height: min(320px, 45vh);
  overflow-y: auto;
  z-index: 20;
  background: var(--background-primary);
  border: 1px solid var(--background-modifier-border);
  border-radius: var(--radius-m);
  box-shadow: var(--shadow-s);
  padding: 4px;
}
.aichat-slash-item {
  padding: 4px 8px;
  border-radius: var(--radius-s);
  cursor: pointer;
}
.aichat-slash-item.is-selected,
.aichat-slash-item:hover { background: var(--background-modifier-hover); }
.aichat-slash-head {
  display: flex;
  align-items: baseline;
  gap: 6px;
  flex-wrap: wrap;
}
.aichat-slash-name { font-family: var(--font-monospace); font-size: var(--font-ui-small); }
.aichat-slash-hint { font-size: var(--font-ui-smaller); color: var(--text-faint); }
.aichat-slash-tags { margin-left: auto; display: inline-flex; gap: 4px; }
.aichat-slash-tag {
  font-size: var(--font-ui-smaller);
  color: var(--text-muted);
  border: 1px solid var(--background-modifier-border);
  border-radius: 999px;
  padding: 0 6px;
  margin-left: 6px;
  white-space: nowrap;
}
.aichat-slash-tags .aichat-slash-tag { margin-left: 0; }
.aichat-slash-tag.is-command { color: var(--text-accent); border-color: var(--interactive-accent); }
.aichat-slash-desc {
  font-size: var(--font-ui-smaller);
  color: var(--text-muted);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* вопрос пользователю (ask_user) */
.aichat-ask {
  border: 1px solid var(--interactive-accent);
  border-radius: var(--radius-s, 6px);
  background: var(--background-primary);
  font-size: var(--font-ui-small);
  outline: none;
}
.aichat-ask:focus-visible { box-shadow: 0 0 0 2px var(--background-modifier-border-focus); }
.aichat-ask.is-answered { border-color: var(--background-modifier-border); }
.aichat-ask.is-cancelled { opacity: 0.6; }
.aichat-ask-head { display: flex; align-items: center; gap: 6px; padding: 4px 8px; font-size: var(--font-ui-smaller); }
.aichat-ask-title { flex: 1; font-weight: 600; }
.aichat-ask.is-answered:not(.is-cancelled) .aichat-tool-status { color: var(--color-green); }
.aichat-ask-q { padding: 0 8px 6px; white-space: pre-wrap; word-break: break-word; }
.aichat-ask-options { display: flex; flex-direction: column; gap: 4px; padding: 0 8px 6px; }
.aichat-ask-opt {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  padding: 4px 8px;
  border: 1px solid var(--background-modifier-border);
  border-radius: var(--radius-s, 6px);
  cursor: pointer;
}
.aichat-ask-opt:hover,
.aichat-ask-opt:focus-visible { background: var(--background-modifier-hover); outline: none; }
.aichat-ask-opt.is-picked { border-color: var(--interactive-accent); background: var(--background-modifier-hover); }
.aichat-ask.is-answered .aichat-ask-opt { cursor: default; }
.aichat-ask.is-answered .aichat-ask-opt:not(.is-picked) { opacity: 0.55; }
.aichat-ask-opt input[type="checkbox"] { margin: 2px 0 0; }
.aichat-ask-num {
  flex: none;
  min-width: 1.4em;
  text-align: center;
  font-size: var(--font-ui-smaller);
  color: var(--text-muted);
  border: 1px solid var(--background-modifier-border);
  border-radius: 4px;
}
.aichat-ask-text { min-width: 0; }
.aichat-ask-label { word-break: break-word; }
.aichat-ask-desc { font-size: var(--font-ui-smaller); color: var(--text-muted); word-break: break-word; }
.aichat-ask-other { display: flex; gap: 6px; padding: 0 8px 6px; }
.aichat-ask-other input { flex: 1; min-width: 0; }
.aichat-ask-otheranswer { padding: 0 8px 6px; font-size: var(--font-ui-smaller); color: var(--text-accent); word-break: break-word; }
.aichat-ask-bar { display: flex; gap: 6px; flex-wrap: wrap; padding: 0 8px 6px; }

/* настройки: редко нужное — в свёрнутом «Дополнительно» (заголовок как у раздела настроек) */
.aichat-advanced {
  margin-top: var(--size-4-6, 24px);
  border-top: 1px solid var(--background-modifier-border);
}
.aichat-advanced > summary {
  cursor: pointer;
  padding: var(--size-4-3, 12px) 0;
  font-size: var(--font-ui-medium);
  font-weight: var(--font-semibold, 600);
  color: var(--text-normal);
  user-select: none;
}
.aichat-advanced > summary:hover { color: var(--text-accent); }
.aichat-advanced[open] > summary { margin-bottom: var(--size-4-2, 8px); }
.aichat-settings-empty { padding: 4px 0 8px; }
/* подписи переключателей в строке MCP-сервера */
.aichat-toggle-caption { font-size: var(--font-ui-smaller); color: var(--text-muted); margin-left: 8px; white-space: nowrap; }
