/**
 * Amanda Estética V1.21.0 — Indicador de envio de foto ao Google Drive.
 * Ver showPhotoUploadProgress() em js/forms/02-records-media.js. Só aparece
 * quando uma foto nova está sendo lida/enviada — o resto do app (cliente,
 * protocolo, agenda, atendimento, produto, financeiro) continua salvando em
 * segundo plano, silenciosamente, como já era.
 */
.photo-upload-pill{
  position:fixed;
  left:50%;
  bottom:22px;
  z-index:9500;
  transform:translate(-50%,18px);
  opacity:0;
  pointer-events:none;
  transition:opacity .28s ease, transform .28s ease;
  display:flex;
  align-items:center;
  gap:12px;
  min-width:260px;
  max-width:min(420px,92vw);
  padding:12px 16px;
  border-radius:18px;
  background:var(--surface-soft);
  backdrop-filter:var(--glass-blur);
  -webkit-backdrop-filter:var(--glass-blur);
  border:1px solid rgba(255,255,255,.6);
  box-shadow:var(--shadow);
}
.photo-upload-pill.show{ opacity:1; transform:translate(-50%,0); }

.photo-upload-icon{
  width:34px; height:34px; border-radius:11px;
  display:grid; place-items:center; flex:none;
  background:rgba(212,95,146,.12); color:var(--rose-dark);
}
.photo-upload-pill.is-success .photo-upload-icon{ background:rgba(76,139,111,.14); color:var(--success); }
.photo-upload-pill.is-error .photo-upload-icon{ background:rgba(194,85,102,.14); color:var(--danger); }

.photo-upload-copy{ flex:1; min-width:0; }
.photo-upload-copy strong{
  display:block; font-size:.86rem; font-weight:600; color:var(--ink);
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.photo-upload-pill.is-done .photo-upload-copy strong{ white-space:normal; }

.photo-upload-bar{
  margin-top:6px; height:5px; border-radius:4px; overflow:hidden;
  background:rgba(212,95,146,.14); position:relative;
}
.photo-upload-bar span{
  display:block; height:100%; width:38%; border-radius:4px;
  background:linear-gradient(90deg,var(--rose),var(--gold));
  transition:width .25s ease;
}
/* Indeterminado (fase de envio ao Drive, sem porcentagem real disponível):
   uma barra curta desliza de um lado a outro em loop. */
.photo-upload-bar:not(.is-determinate) span{
  position:absolute; width:36%; animation:photo-upload-indeterminate 1.15s ease-in-out infinite;
}
@keyframes photo-upload-indeterminate{
  0%{ left:-40%; }
  60%{ left:100%; }
  100%{ left:100%; }
}
.photo-upload-pill.is-done .photo-upload-bar{ display:none; }
@media (prefers-reduced-motion:reduce){
  .photo-upload-bar:not(.is-determinate) span{ animation:none; left:0; width:100%; opacity:.6; }
}
