/* ========================================
   SINPROESEMMA — Assistente virtual
   ======================================== */

/* Botão flutuante */
.assistant-fab{
  position:fixed;
  z-index:15000;
  right:max(14px,env(safe-area-inset-right));
  bottom:calc(88px + env(safe-area-inset-bottom));
  width:58px;
  height:58px;
  display:grid;
  place-items:center;
  padding:0;
  border:0;
  border-radius:50%;
  background:linear-gradient(135deg,#03045e,#0077b6);
  color:#fff;
  box-shadow:0 14px 38px rgba(3,4,94,.34);
  cursor:pointer;
  transition:transform .18s ease,box-shadow .18s ease;
}
.assistant-fab:hover{transform:translateY(-3px);box-shadow:0 20px 46px rgba(3,4,94,.4)}
.assistant-fab:focus-visible{outline:3px solid #ffd84d;outline-offset:3px}
.assistant-fab svg{width:26px;height:26px}
.assistant-fab-label{
  position:absolute;
  right:calc(100% + 12px);
  top:50%;
  transform:translateY(-50%);
  padding:7px 12px;
  border-radius:999px;
  background:#03045e;
  color:#fff;
  font-size:.74rem;
  font-weight:850;
  white-space:nowrap;
  box-shadow:0 8px 24px rgba(3,4,94,.22);
  opacity:0;
  visibility:hidden;
  transition:opacity .16s ease,visibility .16s;
}
.assistant-fab:hover .assistant-fab-label,.assistant-fab:focus-visible .assistant-fab-label{opacity:1;visibility:visible}
.assistant-fab.is-busy::after{content:"";position:absolute;inset:0;border-radius:50%;box-shadow:0 0 0 0 rgba(0,180,216,.45);animation:assistantPulse 1.6s ease-out infinite}

@keyframes assistantPulse{to{box-shadow:0 0 0 14px rgba(0,180,216,0)}}

/* Painel de chat */
.assistant-panel{
  position:fixed;
  z-index:15100;
  right:max(12px,env(safe-area-inset-right));
  bottom:calc(152px + env(safe-area-inset-bottom));
  left:12px;
  width:auto;
  height:min(520px,calc(100dvh - 172px));
  display:grid;
  grid-template-rows:auto minmax(0,1fr) auto;
  overflow:hidden;
  border:1px solid rgba(0,119,182,.28);
  border-radius:18px;
  background:var(--surface,#fff);
  color:var(--ink,#000036);
  box-shadow:0 30px 90px rgba(3,4,94,.3);
}
.assistant-panel[hidden]{display:none}
.assistant-panel.is-open{animation:assistantIn .18s ease}

@keyframes assistantIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}

.assistant-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:14px 16px;
  border-bottom:1px solid rgba(144,224,239,.26);
  background:#03045e;
  color:#fff;
}
.assistant-eyebrow{display:block;margin-bottom:3px;color:#90e0ef;font-size:.62rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.assistant-header h2{margin:0;font-size:1.05rem;letter-spacing:-.01em;color:#fff!important}
.assistant-close{
  width:44px;
  height:44px;
  flex:0 0 auto;
  display:grid;
  place-items:center;
  padding:0;
  border:1px solid rgba(144,224,239,.45);
  border-radius:50%;
  background:rgba(255,255,255,.08);
  color:#fff;
  cursor:pointer;
}
.assistant-close:hover{background:#00b4d8;color:#000036}
.assistant-close svg{width:20px;height:20px}

.assistant-messages{
  min-height:0;
  overflow-y:auto;
  overscroll-behavior:contain;
  padding:16px 14px;
  display:flex;
  flex-direction:column;
  gap:10px;
  background:var(--soft,#f5f7fb);
  scrollbar-width:thin;
}
.assistant-msg{
  max-width:88%;
  align-self:flex-start;
  padding:11px 14px;
  border-radius:14px;
  border-bottom-left-radius:4px;
  background:var(--surface,#fff);
  border:1px solid var(--line,#e4e8f0);
  box-shadow:var(--shadow-sm);
}
.assistant-msg p{margin:0;font-size:.9rem;line-height:1.5;color:var(--ink,#000036)}
.assistant-msg--user{
  align-self:flex-end;
  border-bottom-left-radius:14px;
  border-bottom-right-radius:4px;
  background:linear-gradient(135deg,#03045e,#0077b6);
  border-color:transparent;
}
.assistant-msg--user p{color:#fff}

.assistant-typing{display:flex;align-items:center;gap:5px;padding:14px}
.assistant-typing span{width:7px;height:7px;border-radius:50%;background:var(--muted,#6b7280);animation:assistantDot 1.1s ease-in-out infinite}
.assistant-typing span:nth-child(2){animation-delay:.16s}
.assistant-typing span:nth-child(3){animation-delay:.32s}
@keyframes assistantDot{0%,60%,100%{opacity:.25;transform:translateY(0)}30%{opacity:1;transform:translateY(-4px)}}

.assistant-links{display:grid;gap:8px}
.assistant-link{
  display:flex;
  align-items:center;
  gap:10px;
  padding:11px 13px;
  border:1px solid var(--line,#e4e8f0);
  border-radius:12px;
  background:var(--surface,#fff);
  color:var(--ink,#000036);
  transition:border-color .15s ease,box-shadow .15s ease;
}
.assistant-link:hover,.assistant-link:focus-visible{border-color:var(--cyan,#00bcd4);box-shadow:var(--shadow-sm)}
.assistant-link-type{
  flex:0 0 auto;
  padding:4px 8px;
  border-radius:999px;
  background:rgba(0,119,182,.12);
  color:var(--navy,#18215f);
  font-size:.62rem;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.05em;
}
.assistant-link-copy{min-width:0;display:grid;gap:2px}
.assistant-link-copy strong{font-size:.86rem;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.assistant-link-copy small{color:var(--muted,#6b7280);font-size:.76rem;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

.assistant-form{
  display:flex;
  align-items:center;
  gap:8px;
  padding:10px 12px;
  border-top:1px solid var(--line,#e4e8f0);
  background:var(--surface,#fff);
}
.assistant-form input{
  min-width:0;
  flex:1;
  height:46px;
  padding:0 14px;
  border:1px solid var(--line,#e4e8f0);
  border-radius:12px;
  background:var(--soft,#f5f7fb);
  color:var(--ink,#000036);
  font-size:.9rem;
  outline:0;
}
.assistant-form input:focus{border-color:var(--cyan,#00bcd4);box-shadow:0 0 0 3px rgba(0,180,216,.18)}
.assistant-form button{
  width:46px;
  height:46px;
  flex:0 0 auto;
  display:grid;
  place-items:center;
  padding:0;
  border:0;
  border-radius:12px;
  background:var(--navy,#18215f);
  color:#fff;
  cursor:pointer;
}
.assistant-form button:hover{background:var(--red,#ea2530)}
.assistant-form button svg{width:20px;height:20px}
.assistant-panel :is(a,button,input):focus-visible{outline:3px solid #ffd84d;outline-offset:2px}

/* Dock mobile escondido enquanto o assistente está aberto */
body.assistant-open .mobile-dock{opacity:0;visibility:hidden;pointer-events:none}

/* Tablet e desktop */
@media(min-width:621px){
  .assistant-fab{
    right:22px;
    bottom:22px;
  }
  .assistant-fab-label{display:block}
  .assistant-panel{
    right:22px;
    bottom:88px;
    left:auto;
    width:min(400px,calc(100vw - 44px));
    height:min(560px,calc(100dvh - 110px));
  }
  .assistant-msg{max-width:82%}
}
