/*
 * Панель ассистента и trace runs (таск 06). Тот же стиль, что application.css:
 * белые карточки на светло-сером фоне, зелёный акцент.
 */

.assistant-panel {
  margin-top: 24px;
  padding: 16px;
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 10px;
}

.assistant-frame { display: block; width: 100%; }

/* Правый док ассистента: открытый сжимает контент страницы, а не накрывает его. */
.page.page--docked { display: flex; align-items: flex-start; gap: 16px; max-width: 1600px; }
.page__content { flex: 1 1 auto; min-width: 0; }

.assistant-dock {
  flex: 0 0 auto; display: flex; align-items: flex-start; gap: 8px;
  position: sticky; top: 16px;
}
.assistant-dock__toggle {
  flex: 0 0 auto; writing-mode: vertical-rl; padding: 16px 7px; cursor: pointer;
  background: var(--card); color: var(--ink); font-size: 13px; font-weight: 600;
  border: 1px solid var(--line); border-radius: 8px;
}
.assistant-dock__toggle:hover { background: #f7faf7; border-color: var(--accent); color: var(--accent-dark); }
.assistant-dock__toggle:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }

.assistant-dock__body { display: none; width: 380px; }
.assistant-dock--open .assistant-dock__body { display: block; }

.assistant-dock .assistant-panel {
  margin-top: 0; display: flex; flex-direction: column;
  max-height: calc(100vh - 32px);
}
.assistant-dock .assistant-messages { flex: 1 1 auto; min-height: 120px; overflow-y: auto; }
.assistant-dock .assistant-message__content { max-width: 90%; }
.assistant-dock .assistant-form { flex-wrap: wrap; }

@media (max-width: 760px) {
  .page.page--docked { flex-direction: column; }
  .assistant-dock { position: static; width: 100%; flex-direction: column; }
  .assistant-dock__toggle { writing-mode: horizontal-tb; width: 100%; padding: 10px; }
  .assistant-dock__body { width: 100%; }
  .assistant-dock .assistant-panel { max-height: none; }
}


.assistant-panel__title { margin: 0 0 12px; font-size: 18px; }

.assistant-message {
  display: flex; flex-direction: column; align-items: flex-start;
  margin-bottom: 14px;
}
.assistant-message--user { align-items: flex-end; }
.assistant-message__role {
  margin-top: 4px;
  font-size: 11px; text-transform: uppercase; letter-spacing: 0.04em;
  color: var(--muted);
}
.assistant-message__meta { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.assistant-message__meta .badge { margin-top: 0; text-transform: none; letter-spacing: normal; }
.assistant-message__meta a { text-transform: none; }
.assistant-message__content {
  max-width: 75%; padding: 10px 14px; border-radius: 12px;
  overflow-wrap: anywhere;
}
.assistant-message__content p { margin: 0; }
.assistant-message__content p + p { margin-top: 8px; }
.assistant-message--user .assistant-message__content {
  background: #e3f2e4;
}
.assistant-message--assistant .assistant-message__content {
  background: var(--bg);
}

.assistant-waiting {
  padding: 8px 10px; border-left: 3px solid var(--accent);
  color: var(--muted); font-style: italic;
}

.assistant-form { display: flex; gap: 8px; margin-top: 12px; align-items: stretch; }
.assistant-input {
  flex: 1; min-width: 0; min-height: 48px; resize: vertical;
  padding: 10px 12px; border: 1px solid var(--line); border-radius: 8px;
  color: var(--ink);
}
.assistant-input:focus { outline: 2px solid var(--accent); outline-offset: -1px; }
.assistant-send {
  flex: 0 0 auto; align-self: flex-end;
  display: inline-flex; align-items: center; justify-content: center;
  width: 40px; height: 40px; padding: 0;
  background: var(--accent); color: #fff;
  border: 0; border-radius: 8px; cursor: pointer;
}
.assistant-send:hover:not(:disabled) { background: var(--accent-dark); }
.assistant-send:disabled { opacity: 0.5; cursor: default; }
.assistant-send svg { width: 18px; height: 18px; display: block; }

.badge--agent-completed { background: #e3f2e3; color: var(--accent-dark); }
.badge--agent-failed { background: #fdeaea; color: #b23b3b; }
.badge--agent-queued, .badge--agent-running { background: #fff6df; color: #9a7b1c; }
.badge--step-tool { background: #eef1f6; color: #4a5261; }
.badge--step-model { background: #f3edfa; color: #6b46a8; }

.trace-summary { margin-bottom: 16px; }
.trace-error { color: #b23b3b; }
.trace-table { width: 100%; border-collapse: collapse; background: var(--card); font-size: 13px; }
.trace-table th, .trace-table td { border: 1px solid var(--line); padding: 6px 8px; text-align: left; vertical-align: top; }
.trace-table th { background: var(--bg); }
.trace-table__mono { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; white-space: pre-wrap; word-break: break-word; max-width: 420px; }
