/* «Разговор» — главный экран: постоянная лента между верхом и полем ввода, внизу поле «Спросите или скажите…» со скрепкой и микрофоном (макеты 01, 03, 04).
   Сообщения ассистента и мои — по макету; внутренности сообщений (метки, вложения, кнопки команд) остаются от прежнего окна (45-chat, 49-understand).
   Только токены из 10-tokens.css (проверяет tests/web-tokens.test.ts). */

.talk { flex: 1; min-height: 0; display: flex; flex-direction: column; }

/* ---------- лента: прокручивается только она ---------- */
.talk .msgs {
  flex: 1; min-height: 0; display: flex; flex-direction: column; gap: var(--sp-10);
  padding: var(--sp-10) var(--gutter) var(--sp-6);
  overflow-y: auto; overscroll-behavior: contain; scrollbar-width: none;
}
.talk .msgs::-webkit-scrollbar { display: none; }
/* сообщения прижаты к низу, пока их мало (margin вместо justify-content: иначе верх длинной ленты недоступен прокруткой) */
.talk .msgs > :first-child { margin-top: auto; }
.talk .msg-day { align-self: center; font-size: var(--fs-small); line-height: var(--lh-caption); color: var(--c-text-2); }
.talk .m time { display: block; margin-top: var(--sp-2); font-size: var(--fs-caption); line-height: var(--lh-caption); color: var(--c-text-2); }

/* моё сообщение */
.talk .m-me { align-self: flex-end; display: flex; flex-direction: column; align-items: flex-end; max-width: 84%; }
.talk .bub {
  padding: var(--sp-10) var(--sp-12); background: var(--c-me); color: var(--c-me-text);
  border-radius: var(--r-bubble) var(--r-bubble-tail) var(--r-bubble) var(--r-bubble);
  font-size: var(--fs-body); line-height: var(--lh-body);
}
.talk .fcard { background: var(--c-surface); }

/* сообщение ассистента */
.talk .m-bot { align-self: flex-start; display: block; max-width: 90%; }
.talk .bot-ic { display: none; }
.talk .bot-body {
  padding: var(--sp-10) var(--sp-12); background: var(--c-surface); border: 1px solid var(--c-line);
  border-radius: var(--r-bubble-tail) var(--r-bubble) var(--r-bubble) var(--r-bubble);
}
.talk .bot-body p { padding-top: 0; font-size: var(--fs-body); line-height: var(--lh-body); }
.talk .bot-link { color: var(--c-accent); font-weight: var(--fw-semibold); }
.talk .bot-btn {
  position: relative; min-height: var(--tap-chip); margin-top: var(--sp-8); margin-right: var(--sp-6); padding: 0 var(--sp-12);
  border: 1px solid var(--c-line); border-radius: var(--r-8); background: transparent;
  font-size: var(--fs-small); line-height: var(--lh-small); font-weight: var(--fw-regular);
}
.talk .bot-btn::after { content: ""; position: absolute; inset: calc(-1 * var(--sp-4)) 0; }   /* зона касания выше видимой кнопки */
.talk .bot-btn.is-main { border-color: var(--c-accent); color: var(--c-accent); }
.talk .bot-btn:active { background: var(--c-field); }

/* напоминания и сводки сообщениями ассистента (112-feed-nudges.js): подпись, название, пояснение, ряд кнопок; срочное — с красной рамкой, нажатие на уведомление — подсветка */
.talk .m-nudge { max-width: 94%; }
.talk .m-nudge .bot-body { padding: var(--sp-12); }
.talk .m-nudge.is-urgent .bot-body { border-color: var(--c-urgent-line); background: var(--c-urgent-bg); }
.talk .m-nudge.is-hit .bot-body { box-shadow: 0 0 0 var(--sp-2) var(--c-accent); border-color: var(--c-accent); }
.talk .m-nudge .nd-top { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--sp-6); min-height: var(--lh-caption); font-size: var(--fs-caption); line-height: var(--lh-caption); color: var(--c-text-2); }
.talk .m-nudge .nd-tag { color: var(--c-urgent-text); font-weight: var(--fw-semibold); }
.talk .m-nudge .nd-title { margin-top: var(--sp-2); font-size: var(--fs-body); line-height: var(--lh-body); font-weight: var(--fw-semibold); overflow-wrap: anywhere; }
.talk .m-nudge .nd-meta, .talk .m-nudge .nd-line { margin-top: var(--sp-2); font-size: var(--fs-small); line-height: var(--lh-small); color: var(--c-text-2); overflow-wrap: anywhere; }
.talk .m-nudge .nd-line.is-mute { margin-top: 0; padding-top: var(--sp-4); }
.talk .m-nudge .nd-rows { display: flex; flex-direction: column; margin-top: var(--sp-6); }
.talk .m-nudge .nd-row {
  display: flex; align-items: baseline; gap: var(--sp-10); width: 100%; min-height: var(--tap); padding: var(--sp-4) 0; border-top: 1px solid var(--c-line); text-align: left;
  font-size: var(--fs-small); line-height: var(--lh-small);
}
.talk .m-nudge .nd-row:active { background: var(--c-field); }
.talk .m-nudge .nd-t { flex: none; min-width: 3.4em; color: var(--c-text-2); }
.talk .m-nudge .nd-x { min-width: 0; overflow-wrap: anywhere; }
.talk .m-nudge .nd-btns { display: flex; flex-wrap: wrap; gap: var(--sp-6); margin-top: var(--sp-10); }
.talk .m-nudge .nd-btn {
  flex: 1 1 auto; min-height: var(--tap); padding: 0 var(--sp-12);
  border: 1px solid var(--c-line); border-radius: var(--r-12); background: transparent; color: var(--c-text);
  font-size: var(--fs-small); line-height: var(--lh-small); font-weight: var(--fw-medium);
}
.talk .m-nudge .nd-btn:active { background: var(--c-field); }
.talk .m-nudge .nd-btn.is-main { border-color: var(--c-accent); background: var(--c-accent); color: var(--c-on-accent); }
.talk .m-nudge .nd-btn[disabled] { opacity: .5; }
.talk .m-nudge.is-urgent .nd-btn { border-color: var(--c-urgent-line); }
.talk .m-nudge.is-urgent .nd-btn.is-main { border-color: var(--c-urgent); background: var(--c-urgent); color: var(--c-on-accent); }

/* ---------- поле ввода ---------- */
.talk .composer { flex: none; padding: var(--sp-6) var(--sp-12) var(--sp-8); border-top: 0; background: var(--c-bg); }
.talk .cmp-note { padding: 0 var(--sp-4) var(--sp-8); font-size: var(--fs-small); line-height: var(--lh-small); color: var(--c-text-2); }
.talk .field {
  display: flex; align-items: flex-end; gap: var(--sp-2); min-height: var(--field-h);
  padding: var(--sp-2) var(--sp-4) var(--sp-2) var(--sp-2);
  border: 1px solid var(--c-line); border-radius: var(--r-22); background: var(--c-surface);
}
.talk .field:focus-within { outline: none; border-color: var(--c-accent); }
.talk .field-text {
  flex: 1; min-width: 0; min-height: var(--tap); max-height: 118px; padding: var(--sp-10) var(--sp-4);
  border: 0; background: none; color: var(--c-text); resize: none; outline: none;
  font-family: var(--font-ui); font-size: var(--fs-lead); line-height: var(--lh-lead); font-weight: var(--fw-regular);   /* не мельче 16 px: иначе iPhone приближает страницу */
  overflow-y: auto; overscroll-behavior: contain;
}
.talk .field-text::placeholder { color: var(--c-text-2); }
.talk .cmp-ic { flex: none; display: grid; place-items: center; width: var(--tap); height: var(--tap); border-radius: var(--r-round); }
.talk .cmp-clip { color: var(--c-text-2); }
.talk .cmp-clip:active { background: var(--c-field); }
/* справа в поле: микрофон; как только есть текст или файл — вместо него «Записать» (стрелка) */
.talk .cmp-mic, .talk .cmp-save {
  flex: none; display: grid; place-items: center; width: var(--field-btn); height: var(--field-btn); min-height: 0; margin: var(--sp-2) var(--sp-2) var(--sp-2) 0; padding: 0;
  border-radius: var(--r-round);
}
.talk .cmp-mic { background: var(--c-text); color: var(--c-inverse); }
.talk .cmp-save { background: var(--c-accent); color: var(--c-on-accent); }
.talk .cmp-save[disabled] { opacity: .4; }
.talk .field:not(.has-text) .cmp-save { display: none; }
.talk .field.has-text .cmp-mic { display: none; }
.talk .cmp-warn, .talk .cmp-mic-hint { margin-bottom: var(--sp-8); }
.phone.kb .talk .composer { padding-bottom: var(--sp-8); }
