/* ============================================================
   Civika · Civika IA (/civika-ia/)
   ============================================================ */

.civika-ia-chat {
  display: flex; flex-direction: column; max-width: 760px; margin: 0 auto;
  border: 1px solid var(--slate-200); border-radius: var(--radius-lg); background: var(--white);
  box-shadow: var(--shadow-md); overflow: hidden;
}

.civika-ia-messages {
  display: flex; flex-direction: column; gap: var(--space-4);
  height: 480px; overflow-y: auto; padding: var(--space-5);
}

.civika-ia-msg { display: flex; max-width: 85%; }
.civika-ia-msg p { margin: 0; white-space: pre-wrap; line-height: var(--leading-normal); }
.civika-ia-msg p + p { margin-top: var(--space-2); }
.civika-ia-msg a { color: inherit; text-decoration: underline; font-weight: 700; }

.civika-ia-msg-assistant { align-self: flex-start; }
.civika-ia-msg-assistant > div {
  background: var(--slate-50); color: var(--ink-900); border: 1px solid var(--slate-100);
  border-radius: var(--radius-md) var(--radius-md) var(--radius-md) 4px;
  padding: var(--space-3) var(--space-4); font-size: var(--text-sm);
}

.civika-ia-msg-user { align-self: flex-end; }
.civika-ia-msg-user > div {
  background: var(--green-700); color: var(--white);
  border-radius: var(--radius-md) var(--radius-md) 4px var(--radius-md);
  padding: var(--space-3) var(--space-4); font-size: var(--text-sm);
}

.civika-ia-msg-error > div { background: #fee2e2; color: #991b1b; border: 1px solid #fecaca; }

.civika-ia-sources { display: flex; flex-direction: column; gap: 4px; margin-top: var(--space-2); padding-top: var(--space-2); border-top: 1px solid var(--slate-200); }
.civika-ia-sources a { display: block; font-size: var(--text-xs); font-weight: 700; color: var(--green-700); }

.civika-ia-typing { display: inline-flex; gap: 4px; align-items: center; padding: 4px 0; }
.civika-ia-typing span { width: 6px; height: 6px; border-radius: 50%; background: var(--slate-400); animation: civika-ia-bounce 1.2s infinite ease-in-out; }
.civika-ia-typing span:nth-child(2) { animation-delay: .15s; }
.civika-ia-typing span:nth-child(3) { animation-delay: .3s; }
@keyframes civika-ia-bounce { 0%, 80%, 100% { transform: scale(.6); opacity: .5; } 40% { transform: scale(1); opacity: 1; } }

.civika-ia-form { display: flex; gap: var(--space-2); align-items: flex-end; padding: var(--space-4); border-top: 1px solid var(--slate-200); background: var(--white); }
.civika-ia-form textarea {
  flex: 1; resize: none; min-height: 44px; max-height: 140px; padding: 10px 14px;
  border: 1px solid var(--slate-200); border-radius: var(--radius-md); font: inherit; color: var(--ink-900);
}
.civika-ia-form textarea:focus { border-color: var(--green-700); outline: var(--focus-ring); }
.civika-ia-form button {
  display: flex; align-items: center; gap: 6px; min-height: 44px; padding: 0 18px; border: 0;
  border-radius: var(--radius-md); background: var(--green-700); color: var(--white); font-weight: 700;
  font-size: var(--text-sm); cursor: pointer; flex-shrink: 0;
}
.civika-ia-form button:hover { background: var(--green-800); }
.civika-ia-form button:disabled { background: var(--slate-300); cursor: not-allowed; }

.civika-ia-disclaimer { padding: var(--space-3) var(--space-5); margin: 0; color: var(--slate-400); font-size: var(--text-xs); line-height: 1.5; text-align: center; border-top: 1px solid var(--slate-100); }

@media (max-width: 600px) {
  .civika-ia-messages { height: 60vh; }
  .civika-ia-msg { max-width: 92%; }
}
