/* The assistant owns its viewport, typography and scroll area. */
.assistant-fab {
  width: 68px;
  height: 68px;
  padding: 3px;
  border-radius: 50%;
  border: 1px solid #d7e2ed;
  background: #fff;
  box-shadow: 0 8px 26px rgba(21, 48, 80, .16);
}
.assistant-fab img { width: 100%; height: 100%; object-fit: contain; }
.assistant-fab:focus-visible,
.assistant-panel button:focus-visible,
.assistant-navigation summary:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
.assistant-panel {
  display: flex;
  flex-direction: column;
  min-height: 0;
  max-width: none;
  max-height: none;
  border: 1px solid #d7e2ed;
  border-radius: 16px;
  box-shadow: 0 16px 56px rgba(16, 36, 62, .19);
  overflow: hidden;
  touch-action: auto;
  color: var(--text);
  background: #fff;
  isolation: isolate;
}
.assistant-panel .assistant-drag-handle {
  flex: 0 0 auto;
  height: 72px;
  padding: 14px 16px;
  border-bottom: 0;
  background: #fff;
  cursor: grab;
}
.assistant-drag-handle:active { cursor: grabbing; }
.assistant-heading { display: flex; align-items: center; gap: 10px; min-width: 0; }
.assistant-heading img { width: 38px; height: 38px; object-fit: contain; }
.assistant-heading strong { display: block; font-size: 16px; line-height: 1.5; color: var(--brand-strong); }
.assistant-heading span { display: block; margin-top: 2px; font-size: 12px; line-height: 1.4; color: var(--muted); }
.assistant-close { width: 32px; height: 32px; padding: 0; border: 0; border-radius: 8px; background: #f2f5f9; color: #637083; cursor: pointer; font-size: 16px; }
.assistant-close:hover { background: #e8eef5; color: var(--brand-strong); }
.assistant-prompts { flex: 0 0 auto; display: flex; gap: 8px; padding: 0 16px 12px; border-bottom: 1px solid #e7edf4; }
.assistant-prompts { flex-wrap: wrap; }
.assistant-prompts button { display: inline-flex; align-items: center; gap: 6px; padding: 6px 10px; border: 1px solid #dce5ee; border-radius: 18px; background: #f8fafc; color: #36516f; font: inherit; font-size: 12px; cursor: pointer; }
.assistant-prompts button:hover { background: #edf4fb; border-color: #b7cce0; }
.assistant-prompts button:disabled { opacity: .55; cursor: default; }
.assistant-messages {
  flex: 1 1 0;
  min-height: 0;
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding: 18px 14px;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
  scrollbar-width: thin;
  background: #f5f8fc;
  touch-action: pan-y;
}
.assistant-msg {
  flex: 0 0 auto;
  width: fit-content;
  min-width: 0;
  max-width: 94%;
  margin: 0;
  padding: 12px 14px;
  border-radius: 12px;
  font-size: 14px;
  line-height: 1.8;
  overflow-wrap: anywhere;
}
.assistant-msg.user { align-self: flex-end; margin-left: 0; max-width: 86%; background: #2069c7; border-radius: 12px 12px 3px 12px; color: #fff; }
.assistant-msg.user .assistant-message-content { white-space: pre-wrap; }
.assistant-msg.bot { align-self: flex-start; max-width: 100%; background: #fff; border: 1px solid #e0e7ef; border-radius: 12px 12px 12px 3px; }
.assistant-message-content > :first-child { margin-top: 0; }
.assistant-message-content > :last-child { margin-bottom: 0; }
.assistant-message-content p { margin: 0 0 10px; line-height: inherit; }
.assistant-message-content h1,
.assistant-message-content h2,
.assistant-message-content h3,
.assistant-message-content h4 { margin: 16px 0 8px; font-size: 15px; line-height: 1.65; color: inherit; }
.assistant-message-content ul,
.assistant-message-content ol { margin: 8px 0 12px; padding-left: 22px; }
.assistant-message-content li { margin: 4px 0; padding-left: 1px; }
.assistant-message-content li > p { margin-bottom: 4px; }
.assistant-message-content pre { max-width: 100%; margin: 10px 0; padding: 10px; overflow: auto; white-space: pre-wrap; background: #f0f4f8; border-radius: 6px; }
.assistant-message-content table { display: block; max-width: 100%; overflow: auto; border-collapse: collapse; margin: 10px 0; font-size: 12px; }
.assistant-message-content th,
.assistant-message-content td { border: 1px solid var(--line); padding: 6px 8px; min-width: 72px; }
.assistant-message-content img { max-width: 100%; height: auto; }
.assistant-message-content blockquote { margin: 10px 0; border-left: 3px solid #b9cde0; padding-left: 10px; color: var(--muted); }
.assistant-message-content a { color: #1264aa; }
.assistant-thinking { display: flex; align-items: center; gap: 8px; color: var(--muted); font-size: 13px; }
.assistant-thinking > span { width: 7px; height: 7px; border-radius: 50%; background: #5a89bd; }
.assistant-footer { flex: 0 0 auto; min-width: 0; background: #fff; border-top: 1px solid #e1e8f0; padding: 0 14px 10px; }
.assistant-navigation { border-bottom: 1px solid #edf1f6; }
.assistant-navigation summary { display: flex; align-items: center; gap: 8px; padding: 9px 0; list-style: none; cursor: pointer; color: #36516f; font-size: 12px; }
.assistant-navigation summary::-webkit-details-marker { display: none; }
.assistant-navigation summary span { margin-left: auto; color: var(--muted); }
.assistant-navigation summary i { font-size: 10px; }
.assistant-navigation[open] summary i { transform: rotate(180deg); }
.assistant-navigation nav { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; padding-bottom: 10px; max-height: 130px; overflow-y: auto; }
.assistant-navigation nav button { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 7px 9px; min-width: 0; border: 1px solid #e0e7ef; border-radius: 6px; background: #f8fafc; color: #36516f; font: inherit; font-size: 12px; text-align: left; cursor: pointer; }
.assistant-navigation nav button:hover { background: #edf4fb; }
.assistant-navigation nav i { flex-shrink: 0; font-size: 10px; opacity: .7; }
.assistant-panel .assistant-input { display: grid; grid-template-columns: minmax(0, 1fr) 64px; align-items: end; gap: 8px; padding: 12px 0 0; border: 0; }
.assistant-input .el-textarea { min-width: 0; }
.assistant-input .el-textarea__inner { border-radius: 9px; padding: 10px 12px; line-height: 1.65; font-size: 13px; box-shadow: 0 0 0 1px #d4dfe9 inset; }
.assistant-input .el-button { margin: 0; width: 64px; height: 38px; border-radius: 8px; }
.assistant-input-hint { font-size: 11px; line-height: 1.5; padding-top: 7px; color: #8290a1; }
.assistant-jump { display: flex; align-items: center; gap: 7px; margin: 7px auto 0; padding: 4px 10px; border: 1px solid #d7e2ed; border-radius: 14px; background: #f7fbff; color: #365e88; font: inherit; font-size: 11px; cursor: pointer; }
.assistant-panel.assistant-compact .assistant-prompts,
.assistant-panel.assistant-compact .assistant-input-hint { display: none; }
.assistant-panel.assistant-compact .assistant-drag-handle { height: 56px; padding: 8px 14px; }
.assistant-panel.assistant-compact .assistant-input { padding-top: 8px; }
.assistant-panel.assistant-compact .assistant-navigation nav { max-height: 64px; }
@media (max-width: 600px) {
  .assistant-panel { border-radius: 14px; }
  .assistant-panel .assistant-drag-handle { cursor: default; }
  .assistant-messages { padding: 14px 10px; gap: 12px; }
  .assistant-msg { font-size: 14px; padding: 10px 12px; }
  .assistant-input-hint { display: none; }
  .assistant-footer { padding-bottom: max(12px, env(safe-area-inset-bottom)); }
}

.assistant-image-tools{display:flex;align-items:center;gap:9px;padding-top:10px;flex-wrap:wrap}
.assistant-image-tools button{border:1px solid #d7e2ed;border-radius:6px;background:#f7faff;color:#36516f;padding:5px 9px;font:inherit;font-size:12px;cursor:pointer}
.assistant-image-tools button:disabled{opacity:.5;cursor:default}
.assistant-image-tools small{font-size:10px;color:#718299}
.assistant-image-drafts{display:flex;gap:10px;padding-top:10px}
.assistant-image-drafts figure{position:relative;margin:0;width:94px;min-width:0}
.assistant-image-drafts img{display:block;width:94px;height:64px;object-fit:contain;border:1px solid #d7e2ed;border-radius:7px;background:#f4f7fa}
.assistant-image-drafts button{position:absolute;right:-5px;top:-5px;border:1px solid #d7e2ed;background:#fff;color:#435a76;border-radius:50%;height:21px;width:21px;cursor:pointer}
.assistant-image-drafts figcaption{font-size:10px;color:#718299;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-top:3px}
.assistant-sent-images{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}
.assistant-sent-images img{max-width:150px;max-height:110px;object-fit:contain;border-radius:6px;background:#fff}
.assistant-sent-images small{display:block;width:100%;font-size:10px;opacity:.85}
@media(max-width:400px){.assistant-image-tools{gap:6px}.assistant-image-tools small{font-size:9px}}

.assistant-memory-bar{flex:0 0 auto;padding:8px 12px;border-bottom:1px solid var(--line);background:#fff}.assistant-session-tools{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.assistant-session-tools select{flex:1;min-width:90px;max-width:100%;height:28px;border:1px solid var(--line);border-radius:4px;color:var(--text);background:#fff}.assistant-session-tools .el-button{margin-left:0}.assistant-memory-bar>small{display:block;margin-top:7px;color:var(--muted);font-size:11px;line-height:1.5}.assistant-interrupted{display:block;margin-top:6px;opacity:.8}.assistant-messages{min-height:0}
.assistant-panel.assistant-compact .assistant-drag-handle{height:48px;padding:4px 12px}.assistant-panel.assistant-compact .assistant-memory-bar{padding:4px 8px}.assistant-panel.assistant-compact .assistant-memory-bar>small{margin-top:3px;font-size:10px}.assistant-panel.assistant-compact .assistant-navigation nav{max-height:32px;padding-bottom:4px}
@media(max-width:400px){.assistant-session-tools .el-button{font-size:11px;padding:5px 6px}.assistant-session-tools{gap:4px}}
.assistant-panel.assistant-compact .assistant-image-drafts{padding-top:6px;gap:9px}
.assistant-panel.assistant-compact .assistant-image-drafts figure{width:64px}
.assistant-panel.assistant-compact .assistant-image-drafts img{width:64px;height:40px}
.assistant-panel.assistant-compact .assistant-image-drafts figcaption{display:none}
.assistant-panel.assistant-compact .assistant-image-tools{padding-top:6px}
.assistant-panel.assistant-compact .assistant-image-tools button{padding:3px 8px;font-size:11px}
