:root{
  --blue:#75afe1;
  --white:#ffffff;
  --text:#0b3a63;
  --text-weak:#0f69b6;
  --card:#ffffff;
  --radius:20px;
  --shadow:0 10px 24px rgba(117,175,225,.28);
  --ring:0 0 0 3px rgba(117,175,225,.45);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;background:var(--white);color:var(--text);font-family:'Cinzel',serif}
img{max-width:100%;display:block}
a{color:var(--text-weak);text-decoration:none}
button{cursor:pointer;border:0;font-family:inherit;background:none}
.container{max-width:680px;margin:0 auto;padding:20px}
.card{background:var(--card);border:2px solid var(--blue);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow);animation:fadeUp .5s ease both}
.center{text-align:center}
.hero{display:flex;flex-direction:column;align-items:center;gap:16px;padding:24px 16px}
.avatar{width:140px;height:140px;border-radius:50%;overflow:hidden;border:4px solid var(--blue);box-shadow:0 8px 26px rgba(117,175,225,.45);animation:pop .6s cubic-bezier(.2,.8,.2,1)}
.title{font-weight:900;font-size:28px;letter-spacing:.3px;color:var(--text)}
.subtitle{font-size:14px;opacity:.95;color:var(--text-weak)}
.actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}

/* Buttons */
.btn{padding:14px 18px;border-radius:16px;background:transparent;color:var(--text-weak);border:2px solid var(--blue);font-weight:900;font-size:15px;box-shadow:var(--shadow);transition:transform .15s, box-shadow .2s, background .05s,color .05s}
.btn:active,.btn.press{background:linear-gradient(135deg,var(--blue),rgba(117,175,225,.85));color:#fff}
.btn:focus-visible{outline:none;box-shadow:var(--ring)}
.btn.outline{background:transparent;color:var(--text-weak);border:2px solid var(--blue)}
.btn.wa{display:inline-flex;align-items:center;gap:8px}
.btn.wa svg{width:18px;height:18px}

/* Forms */
.section{margin-top:14px}
.label{font-size:14px;opacity:.95;margin-bottom:8px;color:var(--text)}
.input,.textarea{width:100%;padding:14px 16px;border:2px solid var(--blue);border-radius:16px;background:var(--white);color:var(--text);font-size:15px;outline:none;box-shadow:var(--shadow);transition:box-shadow .2s}
.input:focus,.textarea:focus{box-shadow:var(--ring)}
.textarea{min-height:120px;resize:vertical}

/* Gallery grid */
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:4px}
.grid .item{position:relative;border-radius:10px;overflow:hidden;border:2px solid var(--blue);box-shadow:0 6px 12px rgba(117,175,225,.25)}
.grid .item img{
  width:100%;height:100%;
  aspect-ratio:3/4;
  object-fit:cover;display:block
}
.grid .badge{position:absolute;left:6px;bottom:6px;background:var(--text-weak);color:#fff;padding:4px 8px;border-radius:999px;font-size:11px;font-weight:800;box-shadow:0 6px 12px rgba(117,175,225,.35)}

/* Upload shimmer (galeria) */
.item.uploading .pct{position:absolute;inset:auto 0 6px 0;text-align:center;color:#fff;font-weight:900;font-size:12px;text-shadow:0 1px 2px rgba(0,0,0,.35)}

/* --- Popup de Upload (Coração) --- */
.progress-overlay{position:fixed;inset:0;background:rgba(117,175,225,.12);backdrop-filter:blur(2px);display:none;align-items:center;justify-content:center;z-index:9999}
.progress-overlay.active{display:flex}
.progress-box{background:var(--card);border:2px solid var(--blue);border-radius:18px;padding:24px 28px;box-shadow:var(--shadow);text-align:center;min-width:260px;}
.progress-title{font-weight:900;color:var(--text);font-size:20px;margin-bottom:16px;}
.heart-progress-wrap{position:relative;width:150px;height:150px;margin:10px auto 10px;display:flex;align-items:center;justify-content:center;}
.heart-progress-bg{
  position:absolute;inset:0;width:100%;height:100%;
  color:rgba(117,175,225,.15); /* Fundo azul transparente */
  z-index:1;
}
/* CORREÇÃO: Força o 'path' do SVG a usar a cor definida */
.heart-progress-bg path {
  fill: currentColor;
}
.heart-progress-fill-wrap{position:absolute;left:0;right:0;bottom:0;width:100%;height:0%;overflow:hidden;transition:height .15s linear;z-index:2;}
.heart-progress-fg{
  width:150px;height:150px;display:block;
  color:var(--blue); /* Preenchimento azul */
}
/* CORREÇÃO: Força o 'path' do SVG a usar a cor definida */
.heart-progress-fg path {
  fill: currentColor;
}
.progress-percent{position:relative;z-index:3;font-weight:900;color:var(--text);font-size:24px;text-shadow:0 1px 3px rgba(255,255,255,.5);}


/* Modal (PhotoModal + popup genérico) */
.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:var(--text-weak);color:#fff;padding:12px 16px;border-radius:14px;opacity:0;pointer-events:none;transition:opacity .2s}
.toast.show{opacity:1}
.modal{position:fixed;inset:0;background:rgba(117,175,225,.12);backdrop-filter:blur(3px);display:none;align-items:center;justify-content:center}
.modal.active{display:flex;animation:fadeIn .2s ease both}
.modal img{max-width:100vw;max-height:88vh;border-radius:12px;border:3px solid var(--blue);box-shadow:0 18px 40px rgba(117,175,225,.45)}
.modal .meta{position:fixed;bottom:16px;left:0;right:0;text-align:center;color:var(--text-weak);font-size:13px}
.close{position:absolute;top:16px;right:16px;background:var(--white);border:2px solid var(--blue);padding:10px 12px;border-radius:12px;box-shadow:var(--shadow)}

/* Popup (depoimentos) */
.popup-overlay{position:fixed;inset:0;background:rgba(117,175,225,.12);backdrop-filter:blur(3px);display:none;align-items:center;justify-content:center;z-index:9999}
.popup-overlay.active{display:flex;animation:fadeIn .15s ease both}
.popup{width:min(680px,92vw);max-height:88vh;background:#fff;border:2px solid var(--blue);border-radius:16px;box-shadow:0 18px 40px rgba(117,175,225,.45);display:flex;flex-direction:column;overflow:hidden}
.popup-head{display:flex;justify-content:space-between;align-items:center;border-bottom:2px solid var(--blue);padding:12px 14px;gap:10px;flex-wrap:wrap}
.popup-titles{display:flex;flex-direction:column}
.popup-title{font-weight:900;color:var(--text);font-size:18px}
.popup-sub{font-size:13px;color:var(--text-weak)}
.popup-actions{display:flex;gap:8px}
.popup-body{padding:14px;overflow:auto;color:var(--text);font-size:16px;line-height:1.65}
.popup-close{background:#fff;border:2px solid var(--blue);border-radius:12px;padding:8px 10px}

/* Envelope list item (SVG style) */
.envelopes{display:grid;grid-template-columns:repeat(1,1fr);gap:16px}
.mail-card{width:100%;background:var(--white);border:2px solid var(--text);border-radius:12px;padding:14px;display:flex;align-items:center;gap:12px;box-shadow:var(--shadow);transition:transform .15s;position:relative}
.mail-card:hover{transform:translateY(-2px)}
.mail-svg{width:120px;min-width:120px;height:70px;display:block}
.mail-lines{flex:1}
.mail-line{height:6px;border-radius:4px;background:var(--text);opacity:.65;margin:12px 0 0}
.mail-line.thin{height:4px;opacity:.5}
.mail-stamp{width:22px;height:22px;border:3px solid var(--text);border-radius:4px;position:absolute;left:14px;bottom:12px}
.mail-meta{font-size:12px;color:var(--text-weak);margin-top:6px}

/* KPIs */
.kpi{display:flex;gap:8px;flex-wrap:wrap;align-items:center;justify-content:space-between}
.kpi .pill{background:var(--white);border:2px solid var(--blue);border-radius:999px;padding:10px 14px;font-weight:900;box-shadow:var(--shadow);color:var(--text)}

/* Footer */
.footer{margin:24px auto 12px;max-width:680px;text-align:center;color:var(--text-weak);font-size:13px;opacity:.95}
.footer a{color:var(--text-weak);font-weight:900;border-bottom:2px solid rgba(117,175,225,.35);padding-bottom:2px}

/* Animations */
@keyframes fadeUp{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes pop{0%{transform:scale(.9)}100%{transform:scale(1)}}

@media (max-width:420px){
  .btn{width:100%}
  .mail-svg{width:100px;min-width:100px;height:60px}
}