/* Fase 1C — alinhamento coerente dos popups (04/10/2026, pedido do Alan: "deixe eles alinhados nos seus respectivos lugares e de forma coerente; os que
   precisam ser exibidos no meio da tela podem ser exibidos e os que precisam ser arrastados podem ser arrastados").
   Camada POR CIMA da Fase 1B (nenhum arquivo da 1B foi alterado). Regra de lugar:
     • AVISOS e MENSAGENS (já ativo, visita, documento inválido, editando, resultado do envio) — continuam flutuantes e ANCORADOS no campo/botão que os abriu
       (bandeja da 1B), nunca sobre câmera, similaridade, Salvar, Nome, Documento, Destino ou Modo de acesso;
     • LISTAS (busca por pessoa, destino, liberação manual) — encostadas embaixo do campo/botão (bandeja da 1B);
     • DIÁLOGOS (detalhe da pessoa, editar, atualizar foto, duplicidade, conflito de bloco/documento, quadro de avisos, câmera, recorte, ampliar imagem)
       — no MEIO da tela, com largura própria, teto de altura, corpo rolável e título ARRASTÁVEL (duplo clique centraliza; Esc fecha).
   Os diálogos são `position:fixed`: não mudam a geometria da tela (câmera e similaridade seguem idênticas). */

/* ---- (A) correção da pilha de avisos da 1B: nenhum aviso pode ficar com 0 px ---- */
/* Na 1B, o cartão colapsado de "Editando", "Documento inválido" e "Resultado" tinha o título escondido E o corpo escondido: sumia (0–2 px) e não dava para reabrir. */
#fase1b-tray .fase1b-message-card.fase1b-collapsed .fase1b-message-head { display:flex !important; }
#fase1b-tray .fase1b-message-card.fase1b-collapsed { border:1px solid var(--border) !important; border-radius:8px !important; background:var(--surface-2) !important; box-shadow:none !important; }
#fase1b-tray .fase1b-message-card.fase1b-collapsed.fase1b-danger { border-left:3px solid var(--danger) !important; }
#fase1b-tray .fase1b-message-card.fase1b-collapsed.fase1b-warning { border-left:3px solid var(--warning) !important; }
#fase1b-tray .fase1b-message-card.fase1b-collapsed.fase1b-success { border-left:3px solid var(--success) !important; }
/* erro (vermelho) sempre no topo da pilha: nunca fica abaixo da dobra */
#fase1b-tray-list > .fase1b-danger { order:-2; }
#fase1b-tray-list > .fase1b-warning { order:-1; }

/* ---- (B) diálogos centrais ---- */
.fase1c-backdrop { position:fixed; inset:0; z-index:2300; background:rgba(15,20,32,.30); animation:fase1c-fade 140ms ease both; }
html[data-tema="escuro"] .fase1c-backdrop, html[data-tema="noturno"] .fase1c-backdrop { background:rgba(0,0,0,.52); }
.fase1c-dialog {
  position:fixed; z-index:2310; left:0; top:0;
  width:min(var(--fase1c-w, 520px), calc(100vw - 16px));
  max-height:calc(100vh - 16px);
  display:flex; flex-direction:column;
  color:var(--text); background:var(--card-bg);
  border:1px solid var(--border); border-radius:14px;
  box-shadow:0 18px 48px rgba(10,14,25,.34);
  outline:none; animation:fase1c-in 170ms cubic-bezier(.2,.8,.2,1) both;
}
.fase1c-dialog.fase1c-dragging { box-shadow:0 26px 64px rgba(10,14,25,.44); }
.fase1c-dialog-head {
  flex:none; display:flex; align-items:center; gap:8px; min-height:40px; padding:7px 8px 7px 12px;
  background:var(--surface-2); border-bottom:1px solid var(--border); border-radius:13px 13px 0 0;
  cursor:grab; user-select:none; touch-action:none;
}
.fase1c-dialog.fase1c-dragging .fase1c-dialog-head { cursor:grabbing; }
.fase1c-grip { flex:none; color:var(--text-3, var(--text-muted)); font-size:15px; line-height:1; letter-spacing:-3px; }
.fase1c-dialog-head b { flex:1; min-width:0; font-size:13px; line-height:1.25; overflow-wrap:anywhere; }
.fase1c-close {
  flex:none; width:28px; height:28px; min-height:28px; padding:0; display:inline-flex; align-items:center; justify-content:center;
  color:var(--text-muted); background:transparent; border:1px solid var(--border); border-radius:7px; font-size:16px; line-height:1; cursor:pointer;
}
.fase1c-close:hover, .fase1c-close:focus-visible { color:var(--text); border-color:var(--primary); outline:none; }
.fase1c-dialog-body { flex:1 1 auto; min-height:0; padding:14px; overflow:auto; font-size:13px; line-height:1.45; overflow-wrap:anywhere; }
.fase1c-dialog-body .field { margin-bottom:10px; }
.fase1c-dialog-body .cropper-acoes { display:flex; gap:8px; margin-top:12px; justify-content:flex-end; }
.fase1c-dialog-body p { margin:6px 0; }
.fase1c-actions { display:flex; flex-wrap:wrap; gap:8px; justify-content:flex-end; margin-top:14px; }
.fase1c-actions button { min-height:34px; }
.fase1c-person { display:flex; align-items:center; gap:12px; }
.fase1c-avatar { width:54px; height:64px; flex:none; display:grid; place-items:center; color:var(--primary-fg, #fff); background:var(--primary); border-radius:10px; font-weight:800; }
.fase1c-note { margin:10px 0 0; padding:9px 10px; color:var(--text-muted); background:var(--surface-2); border-radius:8px; }
.fase1c-similarity { margin-top:12px; padding:9px 10px; background:var(--surface-2); border:1px solid var(--border); border-radius:8px; }
.fase1c-similarity > div:first-child { display:flex; justify-content:space-between; font-size:12px; margin-bottom:6px; }
.fase1c-similarity-track { height:8px; overflow:hidden; border-radius:999px; background:color-mix(in srgb, var(--primary) 16%, var(--card-bg)); }
.fase1c-similarity-track i { display:block; height:100%; background:linear-gradient(90deg,#f59e0b,var(--success)); }
.fase1c-notice-text { display:block; width:100%; min-height:130px; padding:10px; box-sizing:border-box; resize:vertical; color:var(--text); background:var(--surface-2); border:1px solid var(--border); border-radius:8px; font:inherit; }
.fase1c-notice-text:focus { outline:2px solid color-mix(in srgb, var(--primary) 40%, transparent); outline-offset:1px; }
/* áreas de mídia: ganham o espaço que o cartão estreito da 1B não dava (câmera, recorte, imagem ampliada) */
.fase1c-media { position:relative; width:100%; display:grid; place-items:center; overflow:hidden; color:#cbd5e1; background:#0b0f19; border-radius:10px; }
.fase1c-media.camera { aspect-ratio:4 / 3; max-height:min(52vh, 460px); }
.fase1c-media.crop { aspect-ratio:1 / 1; max-height:min(46vh, 400px); margin:0 auto; background:linear-gradient(160deg,#334155,#0f172a); }
.fase1c-media.imagem { aspect-ratio:3 / 4; max-height:min(64vh, 640px); margin:0 auto; background:linear-gradient(160deg,#475569,#1e293b); }
.fase1c-media small { position:absolute; left:10px; bottom:8px; color:#94a3b8; font-size:11px; }
.fase1c-crop-guide { position:absolute; width:56%; height:72%; border:2px dashed rgba(255,255,255,.85); border-radius:50%; box-shadow:0 0 0 999px rgba(15,23,42,.45); }
.fase1c-silhouette { font-size:min(18vh, 120px); opacity:.55; }
@keyframes fase1c-in { from { opacity:0; transform:translateY(8px) scale(.985); } to { opacity:1; transform:none; } }
@keyframes fase1c-fade { from { opacity:0; } to { opacity:1; } }
@media (max-height:620px) { .fase1c-dialog-body { padding:10px; font-size:12.5px; } .fase1c-dialog-head { min-height:34px; } }
@media (prefers-reduced-motion:reduce) { .fase1c-dialog, .fase1c-backdrop { animation:none; } }
