/* © 2026 VEYRO (ИП Макаров И. В.). appagent — проприетарная программа. Использование — по лицензионному договору https://appagent.ru/legal/offer/. Копирование и распространение без разрешения запрещены. */
/* Стили экранов: T-05 (переписка проекта). Файл подключён в index.html после screens.css; значения — только из tokens.css.
   Каркас окна (.chat, .thread, .msg, .composer) задаёт screens.css, раскладку окна по высоте — shell.css; здесь — то, что нужно вкладке «Чат»:
   текст сообщений, пустая переписка, карточка плана, поле ввода. Светлая и тёмная темы — от токенов цвета. */

.chat { max-width: calc(var(--layout-narrow) + var(--space-16)); }
.thread { min-width: 0; }
.thread__msgs { display: grid; align-content: start; gap: var(--space-5); min-width: 0; }
.thread__plan { display: grid; margin-top: var(--space-5); min-width: 0; }
.thread__plan:empty { display: none; }
.thread .msg { min-width: 0; }
.msg__t { margin: 0; white-space: pre-wrap; overflow-wrap: anywhere; font: var(--text-ui-weight) var(--text-body-size)/var(--text-body-line) var(--font-sans); }
.msg__h { margin: 0; }
.msg--day { margin: 0; }
.chat__empty { justify-items: start; align-self: start; }
.msg--card { justify-self: stretch; width: 100%; padding: 0; background: none; border: 0; }

/* ---------- Карточка плана ---------- */
.plan {
  display: grid; gap: var(--space-3); padding: var(--space-4) var(--space-5);
  background: var(--color-panel); border: 1px solid var(--color-line); border-radius: var(--radius-lg);
  box-shadow: inset 0.1875rem 0 0 var(--color-acc);
}
.plan > * { margin: 0; min-width: 0; }
.plan__kicker { color: var(--color-ink2); font: var(--text-caption-weight) var(--text-caption-size)/var(--text-caption-line) var(--font-sans); }
.plan .h3 { overflow-wrap: anywhere; }
.plan__body { color: var(--color-ink2); font: var(--text-ui-weight) var(--text-ui-size)/var(--text-ui-line) var(--font-sans); overflow-wrap: anywhere; }
.plan__step { display: grid; gap: var(--space-3); }
.plan__confirm, .plan__reject { display: grid; gap: var(--space-3); }
.plan__acts { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2); }
.plan__acts .btn { white-space: normal; text-align: center; }
.plan__warn { margin: 0; color: var(--color-ink); font: var(--text-ui-strong-weight) var(--text-ui-strong-size)/var(--text-ui-strong-line) var(--font-sans); }
.plan__l { font: var(--text-ui-strong-weight) var(--text-ui-size)/var(--text-ui-line) var(--font-sans); color: var(--color-ink); }
.plan__reject textarea {
  width: 100%; min-height: calc(var(--size-control) * 1.5); padding: var(--space-3);
  background: var(--color-bg2); color: var(--color-ink); border: 1px solid var(--color-line2); border-radius: var(--radius-md);
  resize: vertical; line-height: var(--text-ui-line);
}
.plan__reject textarea:focus-visible { border-color: var(--color-ink3); }
.plan__sent { color: var(--color-ok-text); font: var(--text-ui-strong-weight) var(--text-ui-strong-size)/var(--text-ui-strong-line) var(--font-sans); }
.plan__status { color: var(--color-ink2); font: var(--text-caption-weight) var(--text-caption-size)/var(--text-caption-line) var(--font-sans); overflow-wrap: anywhere; }
.plan__status:empty { display: none; }
.plan__status[data-tone="err"] { color: var(--color-danger-text); }
.msg--card[aria-busy="true"] .plan { opacity: .85; }

/* ---------- Поле ввода ---------- */
.composer textarea { field-sizing: content; max-height: 10rem; overflow-y: auto; color: var(--color-ink); }
.composer textarea::placeholder { color: var(--color-ink3); opacity: 1; }
.composer__bar { align-items: center; }
.composer__start {
  display: inline-flex; align-items: center; gap: var(--space-2); min-height: var(--size-touch-min); padding-right: var(--space-2);
  color: var(--color-ink2); cursor: pointer; font: var(--text-ui-weight) var(--text-ui-size)/var(--text-ui-line) var(--font-sans);
}
.composer__start input { flex: none; width: var(--size-icon); height: var(--size-icon); margin: 0; accent-color: var(--color-acc); cursor: pointer; }
.composer__hint { margin: 0; color: var(--color-ink3); font: var(--text-caption-weight) var(--text-label-size)/var(--text-caption-line) var(--font-sans); }
.composer__msg { margin: 0; color: var(--color-ink2); font: var(--text-caption-weight) var(--text-caption-size)/var(--text-caption-line) var(--font-sans); overflow-wrap: anywhere; }
.composer__msg:empty { display: none; }
.composer__msg[data-tone="err"] { color: var(--color-danger-text); }

/* Телефон: переписка листается вместе со страницей, поле ввода закреплено над нижней панелью. */
@media not all and (min-width: 45.0625rem) {
  .composer {
    position: sticky; bottom: calc(var(--layout-tabbar) + env(safe-area-inset-bottom)); z-index: var(--z-sticky);
    padding: var(--space-3) 0; background: var(--color-bg); border-top: 1px solid var(--color-line);
  }
  .plan { padding: var(--space-4); }
  .plan__acts .btn { flex: 1 1 auto; }
  .msg--me { max-width: 92%; }
}
