/* =========================================================================
   SERTUB — Assistente IA (widget de chat)
   ========================================================================= */

.chat-launcher {
  position: fixed; z-index: 860; right: 22px; bottom: 90px;
  display: inline-flex; align-items: center; gap: 0.6rem;
  padding: 0.7rem 1.1rem 0.7rem 0.75rem; border-radius: 999px;
  background: linear-gradient(135deg, var(--ember-500), var(--ember-600));
  color: #fff; font-family: var(--font-display); font-weight: 600; font-size: 0.92rem;
  box-shadow: 0 12px 34px var(--ember-glow);
  transition: transform 0.3s var(--ease), opacity 0.3s;
}
.chat-launcher:hover { transform: translateY(-3px) scale(1.02); }
.chat-launcher__icon { width: 34px; height: 34px; border-radius: 50%; background: rgba(255,255,255,0.18); display: grid; place-items: center; }
.chat-launcher__icon svg { width: 19px; height: 19px; }
.chat-launcher__pulse { position: absolute; top: 8px; right: 12px; width: 9px; height: 9px; border-radius: 50%; background: #4ade80; box-shadow: 0 0 0 0 rgba(74,222,128,0.6); animation: pulse 2s infinite; }
@keyframes pulse { 0% { box-shadow: 0 0 0 0 rgba(74,222,128,0.55); } 70% { box-shadow: 0 0 0 10px rgba(74,222,128,0); } 100% { box-shadow: 0 0 0 0 rgba(74,222,128,0); } }
body.chat-open .chat-launcher { opacity: 0; pointer-events: none; transform: scale(0.8); }
@media (max-width: 600px) { .chat-launcher { right: 16px; bottom: 148px; } .chat-launcher__label { display: none; } .chat-launcher { padding: 0.6rem; } }

.chat-panel {
  position: fixed; z-index: 870; right: 22px; bottom: 22px;
  width: min(420px, calc(100vw - 32px)); height: min(640px, calc(100svh - 44px));
  background: var(--steel-900); border: 1px solid var(--border-strong);
  border-radius: var(--radius-lg); box-shadow: 0 30px 80px rgba(0,0,0,0.55);
  display: flex; flex-direction: column; overflow: hidden;
  opacity: 0; transform: translateY(24px) scale(0.98); pointer-events: none;
  transition: opacity 0.35s var(--ease), transform 0.35s var(--ease);
}
body.chat-open .chat-panel { opacity: 1; transform: none; pointer-events: auto; }
@media (max-width: 600px) { .chat-panel { right: 8px; left: 8px; bottom: 8px; width: auto; height: min(80svh, calc(100svh - 16px)); } }

.chat-header { display: flex; align-items: center; gap: 0.9rem; padding: 1.1rem 1.2rem; background: linear-gradient(135deg, var(--steel-800), var(--steel-850)); border-bottom: 1px solid var(--border); }
.chat-header__avatar { position: relative; width: 44px; height: 44px; border-radius: 50%; background: linear-gradient(135deg, var(--ember-500), var(--ember-600)); display: grid; place-items: center; flex: none; box-shadow: var(--shadow-glow); }
.chat-header__avatar svg { width: 24px; height: 24px; color: #fff; }
.chat-header__avatar::after { content:""; position:absolute; bottom:1px; right:1px; width:11px; height:11px; border-radius:50%; background:#4ade80; border:2px solid var(--steel-800); }
.chat-header__info { flex: 1; min-width: 0; }
.chat-header__info strong { font-family: var(--font-display); display: block; font-size: 1rem; }
.chat-header__info span { font-size: 0.8rem; color: var(--steel-300); }
.chat-close { width: 38px; height: 38px; border-radius: 10px; display: grid; place-items: center; color: var(--steel-300); transition: background 0.25s, color 0.25s; }
.chat-close:hover { background: rgba(255,255,255,0.08); color: #fff; }
.chat-close svg { width: 20px; height: 20px; }

.chat-body { flex: 1; overflow-y: auto; padding: 1.2rem; display: flex; flex-direction: column; gap: 1rem; scroll-behavior: smooth; }
.chat-msg { display: flex; gap: 0.7rem; max-width: 88%; animation: msgIn 0.4s var(--ease); }
@keyframes msgIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
.chat-msg__avatar { flex: none; width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center; }
.chat-msg--bot .chat-msg__avatar { background: linear-gradient(135deg, var(--ember-500), var(--ember-600)); color: #fff; }
.chat-msg--bot .chat-msg__avatar svg { width: 16px; height: 16px; }
.chat-msg__bubble { padding: 0.8rem 1rem; border-radius: 16px; font-size: 0.94rem; line-height: 1.55; }
.chat-msg--bot .chat-msg__bubble { background: var(--steel-800); border: 1px solid var(--border); border-top-left-radius: 4px; }
.chat-msg--user { align-self: flex-end; flex-direction: row-reverse; }
.chat-msg--user .chat-msg__bubble { background: linear-gradient(135deg, var(--ember-500), var(--ember-600)); color: #fff; border-top-right-radius: 4px; }
.chat-msg__bubble p { margin: 0 0 0.5rem; } .chat-msg__bubble p:last-child { margin: 0; }
.chat-msg__bubble strong { color: #fff; }
.chat-msg--bot .chat-msg__bubble a { color: var(--ember-400); text-decoration: underline; }
.chat-msg__bubble ul { list-style: disc; padding-left: 1.2rem; margin: 0.3rem 0; display: block; }
.chat-msg__bubble li { padding: 0.1rem 0; }

.chat-typing { display: inline-flex; gap: 4px; padding: 0.9rem 1rem; }
.chat-typing span { width: 8px; height: 8px; border-radius: 50%; background: var(--steel-400); animation: typing 1.2s infinite; }
.chat-typing span:nth-child(2) { animation-delay: 0.2s; }
.chat-typing span:nth-child(3) { animation-delay: 0.4s; }
@keyframes typing { 0%,60%,100% { transform: translateY(0); opacity: 0.5; } 30% { transform: translateY(-5px); opacity: 1; } }

.chat-suggestions { display: flex; flex-wrap: wrap; gap: 0.5rem; padding: 0 1.2rem 0.6rem; }
.chat-chip { font-size: 0.83rem; padding: 0.5rem 0.85rem; border-radius: 999px; border: 1px solid var(--border-strong); color: var(--steel-200); background: var(--steel-850); transition: all 0.25s; text-align: left; }
.chat-chip:hover { border-color: var(--ember-500); color: #fff; }

.chat-footer { padding: 0.9rem 1rem 1rem; border-top: 1px solid var(--border); background: var(--steel-900); }
.chat-form { display: flex; gap: 0.6rem; align-items: flex-end; }
.chat-input {
  flex: 1; resize: none; max-height: 120px; min-height: 46px;
  background: var(--steel-850); border: 1px solid var(--border-strong); color: var(--text);
  border-radius: 14px; padding: 0.75rem 0.9rem; font: inherit; font-size: 0.94rem; line-height: 1.4;
  transition: border-color 0.25s;
}
.chat-input:focus { outline: none; border-color: var(--ember-500); }
.chat-input::placeholder { color: var(--steel-400); }
.chat-send { flex: none; width: 46px; height: 46px; border-radius: 13px; background: linear-gradient(135deg, var(--ember-500), var(--ember-600)); color: #fff; display: grid; place-items: center; transition: transform 0.25s, opacity 0.25s; }
.chat-send:hover { transform: scale(1.06); }
.chat-send:disabled { opacity: 0.5; cursor: not-allowed; transform: none; }
.chat-send svg { width: 20px; height: 20px; }
.chat-disclaimer { text-align: center; font-size: 0.72rem; color: var(--steel-400); margin-top: 0.6rem; }
