.qa-wrap{max-width:840px;margin:0 auto;border:1px solid #e5e7eb;border-radius:12px;overflow:hidden;background:#fff}
.qa-chat{height:480px;overflow:auto;padding:16px;background:#fafafa}
.qa-msg{display:flex;margin:10px 0}
.qa-msg .bubble{padding:10px 14px;border-radius:12px;max-width:80%;white-space:pre-wrap}
.qa-user{justify-content:flex-end}
.qa-user .bubble{background:#dbeafe}
.qa-assistant .bubble{background:#eef2ff}
.qa-system .bubble{background:#fee2e2}
.qa-form{display:flex;gap:8px;border-top:1px solid #eee;padding:8px}
.qa-form textarea{flex:1;min-height:60px;padding:10px;border:1px solid #ddd;border-radius:8px}
.qa-form button{padding:10px 16px;border:none;border-radius:8px;background:#111827;color:#fff;cursor:pointer}

.qa-actions{display:flex;gap:12px; padding:10px; border-bottom:1px solid #eee; background:#fff}
.qa-actions button{padding:8px 14px;border:1px solid #ddd;border-radius:8px;background:#f8f9fb;cursor:pointer}
.qa-section-nav input{padding:6px 10px;border:1px solid #ddd;border-radius:8px;margin-right:6px}
.qa-chunk{margin:12px 0;padding:10px;border-left:3px solid #9ca3af;background:#f9fafb;white-space:pre-wrap}
button.is-loading { position: relative; opacity: .75; pointer-events: none; }
button.is-loading::after {
  content: "";
  position: absolute; right: 12px; top: 50%; transform: translateY(-50%);
  width: 14px; height: 14px; border-radius: 50%;
  border: 2px solid currentColor; border-right-color: transparent;
  animation: qa-spin .6s linear infinite;
}
@keyframes qa-spin { to { transform: translateY(-50%) rotate(360deg); } }

.qa-toast {
  position: fixed; left: 50%; bottom: 24px; transform: translateX(-50%) translateY(10px);
  background: #222; color: #fff; padding: 10px 14px; border-radius: 10px; opacity: 0;
  z-index: 9999; transition: all .25s ease; max-width: 92vw; box-shadow: 0 6px 20px rgba(0,0,0,.25);
  font-size: 14px; line-height: 1.35;
}
.qa-toast.show { opacity: 1; transform: translateX(-50%) translateY(0); }
.qa-actions {
  display: none;
}
.qa-actions.active {
  display: inline-flex;
  gap: 6px;
  flex-wrap: wrap;
  align-items: center;
}
