/* ============================================================
   AGENDA PSI — VOZ DO PSICÓLOGO 3.0
   Reaproveita o shell, tokens (--dd-*) e primitivos de dashboard-2.0.css.
   loadVoice() em painel-2.0-runtime.js foi ajustada só para: (1) enviar
   FormData em vez de JSON (o backend já aceitava multipart) e (2) tratar
   o anexo opcional de imagem. Ids/estrutura de validação de título e
   mensagem preservados 1:1.

   Tom visual: acolhedor e simples — evitar cara de formulário
   administrativo. Roxo só como destaque pontual (ícone, CTA, foco),
   nunca como cor de fundo dominante.
   ============================================================ */

.aps-kicker{color:var(--dd-violet);font-size:11.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.aps-card{background:var(--dd-surface);border:1px solid var(--dd-border);border-radius:var(--dd-radius-lg);box-shadow:var(--dd-shadow-sm)}
.aps-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:600;font-size:13.5px;padding:10px 18px;border-radius:var(--dd-radius-md);border:1px solid transparent;cursor:pointer;transition:background var(--dd-fast) var(--dd-ease),border-color var(--dd-fast) var(--dd-ease);white-space:nowrap}
.aps-btn--primary{background:var(--dd-violet);color:#fff;box-shadow:var(--dd-shadow-sm);min-width:190px}
.aps-btn--primary:hover{background:var(--dd-violet-dark)}
.aps-btn--primary:disabled{opacity:.55;cursor:not-allowed}
.aps-btn:focus-visible{box-shadow:var(--dd-shadow-focus)}
.text-button{border:0;background:none;color:var(--dd-violet);font-size:12.5px;font-weight:700;cursor:pointer;padding:0}
.text-button:hover{text-decoration:underline}
.text-button:focus-visible{box-shadow:var(--dd-shadow-focus);border-radius:4px}

/* ============================================================
   LAYOUT
   ============================================================ */
.voice-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:18px;align-items:start}
.voice-card{padding:26px}
.voice-card-head{display:flex;align-items:center;gap:14px;padding-bottom:18px;border-bottom:1px solid var(--dd-border)}
.voice-card-head h2{margin:0;color:var(--dd-ink);font:700 19px/1.25 var(--dd-font-display)}
.voice-card-head p{margin:4px 0 0;color:var(--dd-ink-soft);font-size:13px}
.voice-card-icon{display:grid;place-items:center;flex:none;width:44px;height:44px;border-radius:13px;color:#fff;background:linear-gradient(145deg,var(--dd-violet),var(--dd-violet-dark))}
.voice-card-icon svg{width:23px;height:23px;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}

.voice-privacy{display:flex;gap:11px;margin:18px 0;padding:13px 15px;border:1px solid var(--dd-amber-soft);border-radius:var(--dd-radius-md);color:#8a5a09;background:var(--dd-amber-soft)}
.voice-privacy strong{display:block;font-size:13px}
.voice-privacy p{margin:3px 0 0;font-size:12.5px;line-height:1.5}

.voice-card form{display:grid;gap:16px}
.voice-field{display:grid;gap:6px}
.voice-field label,#voice-image-label{color:var(--dd-ink-soft);font-size:12.5px;font-weight:700}
.voice-label-row{display:flex;align-items:center;justify-content:space-between;gap:12px}
.voice-label-row span,.voice-field small{color:var(--dd-ink-mute);font-size:12px}
.voice-field input,.voice-field select,.voice-field textarea{
  box-sizing:border-box;width:100%;border:1px solid var(--dd-border);border-radius:var(--dd-radius-md);
  color:var(--dd-ink);background:var(--dd-surface-subtle);font:inherit;font-size:13.5px;
}
.voice-field input,.voice-field select{min-height:44px;padding:0 12px}
.voice-field textarea{min-height:190px;padding:12px;line-height:1.55;resize:vertical}
.voice-field input:focus-visible,.voice-field select:focus-visible,.voice-field textarea:focus-visible{
  border-color:var(--dd-violet);background:var(--dd-surface);outline:0;box-shadow:var(--dd-shadow-focus);
}
.voice-field input[aria-invalid=true],.voice-field textarea[aria-invalid=true]{border-color:#a32a20}
.voice-field-error{min-height:16px;color:#a32a20;font-size:12px}
.voice-field-error:empty{display:none}

/* ============================================================
   ANEXO DE IMAGEM — componente compacto, sem area de drag-and-drop
   ============================================================ */
.voice-image-empty{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
/* [hidden] do navegador perde para display:flex/grid de mesma
   especificidade — mesmo ajuste ja feito nas demais paginas 3.0. */
.voice-image-empty[hidden]{display:none}
.voice-image-trigger{
  display:inline-flex;align-items:center;gap:9px;padding:10px 16px;border:1px dashed var(--dd-border-strong);
  border-radius:var(--dd-radius-md);background:var(--dd-bg);color:var(--dd-ink);font-size:13px;font-weight:600;
  cursor:pointer;transition:border-color var(--dd-fast) var(--dd-ease),background var(--dd-fast) var(--dd-ease);
}
.voice-image-trigger:hover{border-color:var(--dd-violet);background:var(--dd-violet-soft)}
.voice-image-trigger:focus-visible{outline:0;box-shadow:var(--dd-shadow-focus);border-color:var(--dd-violet)}
.voice-image-trigger-icon{display:grid;place-items:center;flex:none;width:20px;height:20px;color:var(--dd-violet)}
.voice-image-trigger-icon svg{width:18px;height:18px}

.voice-image-preview{display:flex;align-items:center;gap:13px;padding:11px 13px;border:1px solid var(--dd-border);border-radius:var(--dd-radius-md);background:var(--dd-bg)}
.voice-image-preview[hidden]{display:none}
.voice-image-thumb{flex:none;width:52px;height:52px;border-radius:10px;object-fit:cover;background:var(--dd-surface);border:1px solid var(--dd-border)}
.voice-image-info{min-width:0;flex:1;display:grid;gap:2px}
.voice-image-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--dd-ink);font-size:13px;font-weight:700}
.voice-image-size{color:var(--dd-ink-mute);font-size:11.5px}
.voice-image-actions{display:flex;gap:14px;margin-top:2px}
.voice-image-remove{color:#a32a20}

.voice-actions{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:2px;padding-top:18px;border-top:1px solid var(--dd-border)}
.voice-actions p{margin:0;color:var(--dd-ink-mute);font-size:13px}
.voice-actions p.error{color:#a32a20}
.voice-actions p.success{color:#0b6b47}
.voice-actions p.loading{color:var(--dd-ink-soft)}

/* ============================================================
   LATERAL
   ============================================================ */
.voice-help{padding:24px}
.voice-help h2{margin:5px 0 15px;color:var(--dd-ink);font:700 17px/1.25 var(--dd-font-display)}
.voice-help ul{display:grid;gap:0;margin:0;padding:0;list-style:none}
.voice-help li{padding:13px 0;border-top:1px solid var(--dd-border)}
.voice-help li:first-child{border-top:0}
.voice-help li strong,.voice-help li span{display:block}
.voice-help li strong{color:var(--dd-ink);font-size:13px;font-weight:700}
.voice-help li span,.voice-help>p{margin-top:4px;color:var(--dd-ink-mute);font-size:12.5px;line-height:1.5}
.voice-help>p{padding:13px 14px;border-radius:var(--dd-radius-md);background:var(--dd-bg)}

/* ============================================================
   RESPONSIVO
   ============================================================ */
@media (max-width:980px){
  .voice-layout{grid-template-columns:1fr}
  .voice-help{order:2}
}
@media (max-width:780px){
  .voice-card{padding:18px}
  .voice-card-head{align-items:flex-start}
  .voice-actions{align-items:stretch;flex-direction:column}
  .voice-actions button{width:100%;min-height:48px}
  .voice-help{padding:18px}
  .voice-image-preview{align-items:flex-start}
}
@media (max-width:430px){
  .voice-card{padding:16px}
  .voice-field textarea{min-height:170px}
  .voice-image-trigger{width:100%;justify-content:center}
  .voice-image-preview{flex-wrap:wrap}
  .voice-image-info{min-width:0;width:100%}
}
