/* ===== Guía EPOC 2023 · estilos complementarios ===== */

.msg { animation: fadeIn .25s ease; }

.msg.user { display: flex; justify-content: flex-end; }
.msg.user .user-bubble {
  background: linear-gradient(135deg, #0e7490 0%, #155e75 100%);
  border: 1px solid #0e7490;
  max-width: 80%;
}

.bubble {
  border-radius: 1rem;
  padding: .8rem 1.05rem;
  font-size: .925rem;
  line-height: 1.65;
}
.msg.assistant .bubble {
  background: #0f172aee;
  border: 1px solid #1e293b;
  box-shadow: 0 4px 16px #0004;
}

.bubble p { margin: .35rem 0; }
.bubble ul { margin: .35rem 0 .35rem 1.1rem; list-style: disc; }
.bubble li { margin: .15rem 0; }

.sug {
  font-size: .78rem;
  padding: .35rem .75rem;
  border-radius: 9999px;
  background: #1e293b;
  border: 1px solid #334155;
  color: #cbd5e1;
  transition: all .15s;
}
.sug:hover { border-color: #2dd4bf; color: #5eead4; }

/* chips de cita */
.cite-chip, .ev-chip {
  display: inline-flex;
  align-items: center;
  font-size: .7rem;
  font-weight: 600;
  color: #5eead4;
  background: #134e4a55;
  border: 1px solid #14b8a666;
  border-radius: .45rem;
  padding: 0 .35rem;
  margin: 0 .1rem;
  cursor: pointer;
  transition: all .15s;
}
.cite-chip:hover, .ev-chip:hover { background: #14b8a633; border-color: #2dd4bf; }

.ev-n { color: #2dd4bf; font-weight: 800; }

.citations-box {
  margin-top: .8rem;
  padding: .7rem .8rem;
  background: #020617aa;
  border: 1px solid #164e63;
  border-radius: .75rem;
  display: flex;
  flex-direction: column;
  gap: .4rem;
}
.ev-chip {
  text-align: left;
  font-size: .74rem;
  color: #cbd5e1;
  background: #0f172a;
  border: 1px solid #1e3a3a;
  border-radius: .55rem;
  padding: .4rem .6rem;
}
.ev-chip:hover { background: #134e4a55; color: #e2e8f0; }

.biblio {
  margin-top: .6rem;
  border: 1px solid #1e293b;
  border-radius: .75rem;
  padding: .5rem .8rem;
  background: #0b1220aa;
}
.biblio summary { cursor: pointer; font-size: .78rem; color: #7dd3fc; font-weight: 600; }
.biblio ol { margin: .5rem 0 .2rem 1.2rem; font-size: .72rem; color: #94a3b8; list-style: decimal; }
.biblio li { margin: .3rem 0; line-height: 1.5; }

.typing { animation: pulse 1s infinite; font-size: 1.2rem; color: #2dd4bf; }
.cursor-blink {
  display: inline-block;
  width: 7px; height: 15px;
  background: #2dd4bf;
  margin-left: 2px;
  animation: blink .8s step-end infinite;
  vertical-align: text-bottom;
}

#btn-mic.rec { color: #f87171; background: #450a0a; border-radius: .5rem; }

@keyframes fadeIn { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; } }
@keyframes blink { 50% { opacity: 0; } }
@keyframes pulse { 50% { opacity: .3; } }

/* scrollbar */
#chat::-webkit-scrollbar { width: 9px; }
#chat::-webkit-scrollbar-thumb { background: #1e293b; border-radius: 9px; }
#chat::-webkit-scrollbar-thumb:hover { background: #334155; }
