/* ============================================================
   AGENDA PSI — ASSISTENTE (Etapa 1C)
   Usa somente tokens --dd-* já definidos em dashboard-2.0.css (carregado
   antes deste arquivo em toda página .dd-*). Nenhuma cor/raio/sombra nova
   é inventada aqui — só composição em cima do design system 3.0/3.1.
   ============================================================ */

/* Botão de acesso na topbar — icon-only <=780px, ícone+texto no desktop */
.dd-assistant-btn{
  width:auto;padding:0 14px 0 12px;gap:8px;border-radius:var(--dd-radius-full);
  font-size:13.5px;font-weight:700;color:var(--dd-violet-dark);background:var(--dd-violet-soft);
}
.dd-assistant-btn:hover{background:var(--dd-violet-line);color:var(--dd-violet-dark)}
.dd-assistant-btn svg{width:18px;height:18px;flex:none}
@media (max-width:780px){
  .dd-assistant-btn{width:40px;padding:0;justify-content:center;border-radius:var(--dd-radius-md)}
  .dd-assistant-btn-label{display:none}
}

/* Overlay + backdrop */
.dd-assistant-overlay{position:fixed;inset:0;z-index:200;pointer-events:none}
.dd-assistant-backdrop{
  position:absolute;inset:0;background:rgba(33,26,72,.4);opacity:0;
  transition:opacity var(--dd-base) var(--dd-ease);
}
.dd-assistant-overlay.is-open{pointer-events:auto}
.dd-assistant-overlay.is-open .dd-assistant-backdrop{opacity:1}

/* Painel — drawer lateral no desktop */
.dd-assistant-panel{
  position:absolute;top:0;right:0;bottom:0;width:min(420px,100vw);
  background:var(--dd-surface);box-shadow:var(--dd-shadow-md);
  display:flex;flex-direction:column;min-height:0;
  transform:translateX(100%);transition:transform var(--dd-base) var(--dd-ease);
}
.dd-assistant-overlay.is-open .dd-assistant-panel{transform:translateX(0)}

.dd-assistant-head{
  display:flex;align-items:flex-start;gap:10px;padding:18px 18px 14px;border-bottom:1px solid var(--dd-border);flex:none;
}
.dd-assistant-head-text{flex:1;min-width:0}
.dd-assistant-head-text h2{font-size:16px;font-weight:700}
.dd-assistant-head-text p{font-size:12.5px;color:var(--dd-ink-mute);margin-top:2px}
.dd-assistant-head-actions{display:flex;align-items:center;gap:2px;flex:none}

.dd-assistant-history{border-bottom:1px solid var(--dd-border);max-height:260px;overflow-y:auto;flex:none}
.dd-assistant-history[hidden]{display:none}
.dd-assistant-history-list{display:flex;flex-direction:column;padding:6px}
.dd-assistant-history-item{
  display:flex;align-items:center;gap:8px;width:100%;text-align:left;padding:9px 10px;border-radius:var(--dd-radius-md);
  border:0;background:transparent;color:var(--dd-ink);cursor:pointer;font-size:13px;
}
.dd-assistant-history-item:hover{background:var(--dd-surface-muted)}
.dd-assistant-history-item span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dd-assistant-history-item small{flex:none;color:var(--dd-ink-mute);font-size:11px}
.dd-assistant-history-delete{
  flex:none;display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:8px;
  border:0;background:transparent;color:var(--dd-ink-mute);cursor:pointer;
}
.dd-assistant-history-delete:hover{background:var(--dd-red-soft);color:var(--dd-red)}
.dd-assistant-history-empty{padding:16px;text-align:center;color:var(--dd-ink-mute);font-size:12.5px}

/* Corpo — conversa */
.dd-assistant-body{flex:1;min-height:0;overflow-y:auto;padding:16px 18px;display:flex;flex-direction:column;gap:14px}

.dd-assistant-empty{display:flex;flex-direction:column;gap:14px;padding:8px 0}
.dd-assistant-empty-icon{
  width:44px;height:44px;border-radius:var(--dd-radius-md);background:var(--dd-violet-soft);color:var(--dd-violet);
  display:flex;align-items:center;justify-content:center;
}
.dd-assistant-empty-icon svg{width:22px;height:22px}
.dd-assistant-empty h3{font-size:14.5px;font-weight:700}
.dd-assistant-empty p{font-size:13px;color:var(--dd-ink-soft);margin-top:4px}
.dd-assistant-suggestions{display:flex;flex-direction:column;gap:8px;margin-top:4px}
.dd-assistant-suggestion{
  text-align:left;padding:10px 12px;border-radius:var(--dd-radius-md);border:1px solid var(--dd-border);
  background:var(--dd-surface-subtle);color:var(--dd-ink);font-size:13px;cursor:pointer;
  transition:border-color var(--dd-fast) var(--dd-ease),background var(--dd-fast) var(--dd-ease);
}
.dd-assistant-suggestion:hover{border-color:var(--dd-violet-line);background:var(--dd-violet-soft)}

.dd-msg{max-width:88%;display:flex;flex-direction:column;gap:5px}
.dd-msg--user{align-self:flex-end;align-items:flex-end}
.dd-msg--assistant{align-self:flex-start;align-items:flex-start}
.dd-msg-bubble{padding:10px 13px;border-radius:var(--dd-radius-lg);font-size:13.5px;line-height:1.5;white-space:pre-wrap}
.dd-msg--user .dd-msg-bubble{background:var(--dd-violet);color:#fff;border-bottom-right-radius:6px}
.dd-msg--assistant .dd-msg-bubble{background:var(--dd-surface-subtle);border:1px solid var(--dd-border);color:var(--dd-ink);border-bottom-left-radius:6px}
.dd-msg--assistant .dd-msg-bubble.is-error{background:var(--dd-red-soft);border-color:#f3c9c4;color:#8a2a20}
.dd-msg-source{font-size:11px;color:var(--dd-ink-mute);padding:0 2px}
.dd-msg-actions{display:flex;align-items:center;gap:2px;padding:0 2px}
.dd-msg-feedback{
  display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:7px;
  border:0;background:transparent;color:var(--dd-ink-mute);cursor:pointer;
}
.dd-msg-feedback svg{width:14px;height:14px}
.dd-msg-feedback:hover{background:var(--dd-surface-muted);color:var(--dd-ink)}
.dd-msg-feedback[aria-pressed="true"]{color:var(--dd-violet);background:var(--dd-violet-soft)}
.dd-msg-feedback[aria-pressed="true"].is-down{color:var(--dd-red);background:var(--dd-red-soft)}
.dd-msg-retry{
  align-self:flex-start;margin-top:2px;padding:6px 12px;border-radius:var(--dd-radius-full);
  border:1px solid var(--dd-border-strong);background:var(--dd-surface);color:var(--dd-ink);font-size:12px;font-weight:700;cursor:pointer;
}
.dd-msg-retry:hover{background:var(--dd-surface-muted)}

.dd-assistant-nav-link{
  align-self:flex-start;display:inline-flex;align-items:center;gap:6px;margin-top:2px;padding:7px 13px;
  border-radius:var(--dd-radius-full);border:1px solid var(--dd-violet-line);background:var(--dd-violet-soft);
  color:var(--dd-violet-dark);font-size:12.5px;font-weight:700;text-decoration:none;cursor:pointer;
}
.dd-assistant-nav-link:hover{background:var(--dd-violet-line)}

.dd-assistant-comm-actions{align-self:flex-start;display:flex;flex-wrap:wrap;gap:6px;margin-top:2px}
.dd-assistant-comm-actions .dd-btn{padding:6px 12px;font-size:12px}

.dd-assistant-action-card{
  align-self:flex-start;max-width:100%;display:flex;flex-direction:column;gap:9px;margin-top:2px;padding:11px 13px;
  border-radius:var(--dd-radius-lg);border:1px solid var(--dd-border-strong);background:var(--dd-surface);
}
.dd-assistant-action-summary{font-size:13px;line-height:1.5;color:var(--dd-ink);margin:0}
.dd-assistant-action-buttons{display:flex;justify-content:flex-end;gap:8px}
.dd-assistant-action-buttons .dd-btn{padding:7px 14px;font-size:12.5px}
.dd-assistant-action-result{font-size:13px;line-height:1.5;margin:0;padding:2px;color:var(--dd-ink)}
.dd-assistant-action-result.is-success{color:#0b6b47}
.dd-assistant-action-result.is-error{color:#8a2a20}

.dd-typing{display:inline-flex;align-items:center;gap:4px;padding:12px 13px}
.dd-typing span{width:6px;height:6px;border-radius:50%;background:var(--dd-ink-mute);animation:dd-typing-bounce 1.1s var(--dd-ease) infinite}
.dd-typing span:nth-child(2){animation-delay:.15s}
.dd-typing span:nth-child(3){animation-delay:.3s}
@keyframes dd-typing-bounce{0%,60%,100%{transform:translateY(0);opacity:.5}30%{transform:translateY(-4px);opacity:1}}

/* Rodapé — cota, formulário, aviso */
.dd-assistant-foot{border-top:1px solid var(--dd-border);padding:12px 18px 16px;flex:none;display:flex;flex-direction:column;gap:9px}
.dd-assistant-usage{font-size:11.5px;color:var(--dd-ink-mute)}
.dd-assistant-form{display:flex;align-items:flex-end;gap:8px}
.dd-assistant-form textarea{
  flex:1;resize:none;max-height:110px;min-height:40px;padding:9px 13px;border-radius:var(--dd-radius-lg);
  border:1px solid var(--dd-border-strong);background:var(--dd-surface-subtle);font:inherit;font-size:13.5px;
  color:var(--dd-ink);line-height:1.4;
}
.dd-assistant-form textarea:focus-visible{border-color:var(--dd-violet)}
.dd-assistant-send{
  flex:none;width:40px;height:40px;border-radius:50%;border:0;background:var(--dd-violet);color:#fff;
  display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background var(--dd-fast) var(--dd-ease);
}
.dd-assistant-send:hover{background:var(--dd-violet-dark)}
.dd-assistant-send:disabled{background:var(--dd-border-strong);cursor:not-allowed}
.dd-assistant-send svg{width:17px;height:17px}
.dd-assistant-disclaimer{font-size:10.5px;color:var(--dd-ink-mute);line-height:1.4}

/* Entrada por voz — botão discreto (contorno, não violeta) pra não competir
   com o envio; muda de aparência por estado sem crescer a linha do rodapé. */
.dd-assistant-mic{
  flex:none;width:40px;height:40px;border-radius:50%;cursor:pointer;
  border:1px solid var(--dd-border-strong);background:var(--dd-surface);color:var(--dd-ink-soft);
  display:flex;align-items:center;justify-content:center;
  transition:background var(--dd-fast) var(--dd-ease),color var(--dd-fast) var(--dd-ease),border-color var(--dd-fast) var(--dd-ease);
}
.dd-assistant-mic svg{width:17px;height:17px}
.dd-assistant-mic:hover:not(:disabled){border-color:var(--dd-violet);color:var(--dd-violet)}
.dd-assistant-mic:focus-visible{outline:2px solid var(--dd-violet);outline-offset:2px}
.dd-assistant-mic:disabled{cursor:not-allowed;opacity:.55}
.dd-assistant-mic.is-recording{border-color:var(--dd-red);background:var(--dd-red-soft);color:var(--dd-red);animation:dd-mic-pulse 1.6s ease-in-out infinite}
.dd-assistant-mic.is-transcribing{border-color:var(--dd-violet);color:var(--dd-violet);opacity:1}
.dd-assistant-mic.is-transcribing svg{animation:dd-mic-spin .9s linear infinite}
@keyframes dd-mic-pulse{0%,100%{box-shadow:0 0 0 0 rgba(201,58,46,.35)}50%{box-shadow:0 0 0 6px rgba(201,58,46,0)}}
@keyframes dd-mic-spin{to{transform:rotate(360deg)}}

/* Status de gravação/transcrição — reaproveita a linha de cota
   (.dd-assistant-usage), então nunca aumenta a altura do rodapé. */
.dd-assistant-voice-indicator{display:inline-flex;align-items:center;gap:6px;color:var(--dd-ink)}
.dd-assistant-voice-indicator.is-transcribing{color:var(--dd-violet-dark)}
.dd-assistant-voice-dot{width:7px;height:7px;border-radius:50%;background:var(--dd-red);animation:dd-mic-pulse-dot 1.2s ease-in-out infinite}
@keyframes dd-mic-pulse-dot{0%,100%{opacity:1}50%{opacity:.35}}
.dd-assistant-voice-cancel{
  border:0;background:none;padding:0;font:inherit;font-size:11.5px;font-weight:700;color:var(--dd-violet);
  text-decoration:underline;cursor:pointer;
}
.dd-assistant-voice-cancel:hover,.dd-assistant-voice-cancel:focus-visible{color:var(--dd-violet-dark)}
.dd-assistant-voice-cancel:focus-visible{outline:2px solid var(--dd-violet);outline-offset:2px;border-radius:3px}

@media (prefers-reduced-motion:reduce){
  .dd-assistant-mic.is-recording{animation:none}
  .dd-assistant-mic.is-transcribing svg{animation:none}
  .dd-assistant-voice-dot{animation:none;opacity:1}
}

/* Bloqueio — plano Essencial */
.dd-assistant-locked{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:32px 24px;text-align:center}
.dd-assistant-locked-icon{width:52px;height:52px;border-radius:var(--dd-radius-lg);background:var(--dd-violet-soft);color:var(--dd-violet);display:flex;align-items:center;justify-content:center}
.dd-assistant-locked-icon svg{width:26px;height:26px}
.dd-assistant-locked h3{font-size:15.5px;font-weight:700}
.dd-assistant-locked p{font-size:13px;color:var(--dd-ink-soft);max-width:280px}
.dd-assistant-locked a.dd-btn{margin-top:4px}

/* Mobile — vira folha inferior, mesmo idioma do .dd-mais-sheet */
@media (max-width:780px){
  .dd-assistant-panel{
    top:auto;left:0;right:0;bottom:0;width:auto;height:88vh;height:88dvh;
    border-radius:20px 20px 0 0;transform:translateY(100%);
    padding-bottom:env(safe-area-inset-bottom);
  }
  .dd-assistant-overlay.is-open .dd-assistant-panel{transform:translateY(0)}
  .dd-assistant-head{padding:10px 16px 12px}
  .dd-assistant-head::before{content:"";position:absolute;top:8px;left:50%;transform:translateX(-50%);width:36px;height:4px;border-radius:99px;background:var(--dd-border-strong)}
  .dd-assistant-head-text h2{font-size:15px}
  .dd-assistant-body{padding:14px 16px}
  .dd-assistant-foot{padding:10px 16px calc(14px + env(safe-area-inset-bottom))}
  .dd-msg{max-width:92%}
}

body.v2-keyboard-open .dd-assistant-panel{padding-bottom:0}
