/* ==========================================================================
   «Помощник» → «Проверка ответов» и «Без ответа» (М42, public/panel/assistant-lab.js).
   Только токены panel.css (тёмной темы у панели нет), без инлайн-стилей (CSP). Облачки — классы chat.css (.apz-msg*).
   Анимаций нет: движения для prefers-reduced-motion не требуется.
   ========================================================================== */

.lab { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.lab-head { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.lab-title { margin: 0; font-family: 'Inter Tight', Inter, sans-serif; font-size: 18px; font-weight: 600; letter-spacing: -.02em; }
.lab-sub { margin: 0; font-size: 13.5px; line-height: 1.5; color: var(--ink-2); }

.lab-test-note {
  margin: 0;
  padding: 10px 14px;
  border-radius: var(--r-md);
  background: var(--warn-bg);
  color: var(--warn-ink);
  font-size: 13px;
  font-weight: 500;
  line-height: 1.45;
}

.lab-controls { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 12px 20px; min-width: 0; }
.lab-controls > .field { min-width: 0; }
.lab-controls select,
.lab-controls input { min-width: 200px; }
.lab-seg { max-width: 100%; }

.lab-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; min-width: 0; }

/* Диалог */
.lab-thread {
  padding: 14px;
  border-radius: var(--r-lg);
  background: var(--surface);
  border: 1px solid var(--line);
  min-height: 160px;
  max-height: 62vh;
  overflow-y: auto;
  overscroll-behavior: contain;
}
.lab-intro,
.lab-pending { margin: 0; font-size: 13.5px; line-height: 1.5; color: var(--ink-3); }
.lab-msg { max-width: min(100%, 620px); }
.lab-error {
  margin: 0;
  padding: 10px 14px;
  border-radius: var(--r-md);
  background: var(--danger-bg);
  color: var(--danger-ink);
  font-size: 13.5px;
  line-height: 1.45;
  overflow-wrap: anywhere;
}

.lab-composer { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.lab-composer textarea { width: 100%; resize: vertical; min-height: 64px; }

/* «Почему так ответил» */
.lab-why { margin-top: 6px; width: 100%; font-size: 13px; }
.lab-why > summary {
  display: inline-flex;
  align-items: center;
  min-height: 32px;
  padding: 0 4px;
  cursor: pointer;
  color: var(--accent);
  font-weight: 500;
}
.lab-why > summary:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; border-radius: var(--r-sm); }
.lab-why-body {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 10px 12px;
  border-radius: var(--r-md);
  background: var(--surface-2);
  min-width: 0;
}
.lab-sources { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.lab-source { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.lab-source-top { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; }
.lab-source-link { color: var(--ink); font-weight: 500; text-decoration: underline; text-underline-offset: 2px; overflow-wrap: anywhere; }
.lab-source-link:hover { color: var(--accent); }
.lab-source-link:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; border-radius: 4px; }
.lab-source-snippet { margin: 0; color: var(--ink-2); line-height: 1.45; overflow-wrap: anywhere; }
.lab-why-empty,
.lab-why-note { margin: 0; color: var(--ink-2); line-height: 1.45; overflow-wrap: anywhere; }

/* Действия под ответом и форма правки */
.lab-answer-actions { display: flex; flex-direction: column; gap: 8px; margin-top: 6px; width: 100%; min-width: 0; }
.lab-saved { margin: 0; font-size: 13px; font-weight: 500; color: var(--ok-ink); }
.lab-fix,
.lab-gap-form {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 12px;
  border-radius: var(--r-md);
  background: var(--surface-2);
  min-width: 0;
}
.lab-fix textarea,
.lab-gap-form textarea { width: 100%; resize: vertical; }

/* «Без ответа» */
.lab-gaps-body { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.lab-total { margin: 0; font-size: 13px; color: var(--ink-3); }
.lab-gap-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.lab-gap {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 14px 16px;
  border-radius: var(--r-lg);
  background: var(--surface);
  border: 1px solid var(--line);
  min-width: 0;
}
.lab-gap-head { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 10px 14px; min-width: 0; }
.lab-gap-question { flex: 1 1 260px; margin: 0; font-size: 14.5px; font-weight: 500; line-height: 1.45; color: var(--ink); overflow-wrap: anywhere; }
.lab-gap-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; font-size: 12.5px; color: var(--ink-3); }
.lab-gap-count { color: var(--ink-2); font-weight: 500; }

@media (max-width: 900px) {
  .lab-thread { max-height: 56vh; }
  .lab-why > summary { min-height: 40px; }
}
@media (max-width: 480px) {
  .lab-thread { padding: 10px; }
  .lab-controls { flex-direction: column; align-items: stretch; }
  .lab-controls select,
  .lab-controls input { min-width: 0; width: 100%; }
  .lab-msg { max-width: 100%; }
  .lab-actions .btn { flex: 1 1 100%; justify-content: center; }
  .lab-gap { padding: 12px; }
  .lab-gap-head .btn { width: 100%; justify-content: center; }
}
