:root{
  --zelo-bg:#F7F4EC; --zelo-card:#FFFFFF; --zelo-primary:#2F6B5E; --zelo-primary-dark:#234F45;
  --zelo-accent:#C97B4A; --zelo-text:#2B2320; --zelo-text-soft:#6B6058; --zelo-border:#E7E0D2;
  --zelo-danger:#B3453A; --zelo-warn:#B8862F;
}
body{background:var(--zelo-bg); color:var(--zelo-text); font-family:'Inter',ui-sans-serif,system-ui,sans-serif;}
.zelo-card{background:var(--zelo-card); border:1px solid var(--zelo-border); border-radius:16px;}
.zelo-btn-primary{background:var(--zelo-primary); color:#fff; border-radius:10px; padding:.65rem 1.25rem; font-weight:600; transition:background .15s;}
.zelo-btn-primary:hover{background:var(--zelo-primary-dark);}
.zelo-btn-primary:disabled{opacity:.6; cursor:not-allowed;}
.zelo-btn-secondary{background:#fff; color:var(--zelo-primary); border:1.5px solid var(--zelo-primary); border-radius:10px; padding:.6rem 1.2rem; font-weight:600;}
.zelo-btn-ghost{color:var(--zelo-text-soft); font-weight:500;}
.zelo-input{border:1.5px solid var(--zelo-border); border-radius:10px; padding:.6rem .85rem; width:100%; background:#fff;}
.zelo-input:focus{outline:none; border-color:var(--zelo-primary); box-shadow:0 0 0 3px rgba(47,107,94,.12);}
.zelo-badge{display:inline-flex; align-items:center; gap:.3rem; font-size:.75rem; font-weight:600; padding:.2rem .6rem; border-radius:999px;}
.zelo-badge-pending{background:#FBF0E4; color:var(--zelo-warn);}
.zelo-badge-ok{background:#E7F1EE; color:var(--zelo-primary-dark);}
.zelo-badge-danger{background:#FBE9E7; color:var(--zelo-danger);}
.zelo-logo{font-weight:800; letter-spacing:-.02em; color:var(--zelo-primary-dark);}
::placeholder{color:#A79E8F;}

/* ===== Sistema de modais (substitui alert/confirm/prompt do navegador) ===== */
.zelo-modal-overlay{
  position:fixed; inset:0; background:rgba(43,35,32,.45); backdrop-filter:blur(2px);
  display:flex; align-items:center; justify-content:center; padding:1.25rem; z-index:200;
  opacity:0; transition:opacity .18s ease;
}
.zelo-modal-overlay.zelo-modal-show{ opacity:1; }
.zelo-modal-card{
  background:#fff; border-radius:18px; width:100%; max-width:420px; padding:1.75rem;
  box-shadow:0 20px 60px rgba(43,35,32,.25);
  transform:translateY(10px) scale(.97); opacity:0; transition:transform .2s cubic-bezier(.34,1.56,.64,1), opacity .18s ease;
}
.zelo-modal-overlay.zelo-modal-show .zelo-modal-card{ transform:translateY(0) scale(1); opacity:1; }
.zelo-modal-icon{
  width:44px; height:44px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  font-size:1.15rem; margin-bottom:.9rem;
}
.zelo-modal-icon.info{ background:#E7F1EE; color:var(--zelo-primary-dark); }
.zelo-modal-icon.warn{ background:#FBF0E4; color:var(--zelo-warn); }
.zelo-modal-icon.danger{ background:#FBE9E7; color:var(--zelo-danger); }
.zelo-modal-title{ font-weight:800; font-size:1.05rem; margin-bottom:.35rem; }
.zelo-modal-message{ font-size:.9rem; color:var(--zelo-text-soft); line-height:1.5; white-space:pre-line; }
.zelo-modal-actions{ display:flex; gap:.6rem; margin-top:1.4rem; }
.zelo-modal-actions button{ flex:1; }
.zelo-modal-fields{ margin-top:1.1rem; display:flex; flex-direction:column; gap:.85rem; }
.zelo-modal-field-label{ font-size:.82rem; font-weight:600; display:block; margin-bottom:.3rem; }
.zelo-modal-choice-list{ margin-top:1.1rem; display:flex; flex-direction:column; gap:.6rem; }
.zelo-modal-choice-btn{
  display:flex; align-items:center; gap:.7rem; text-align:left; padding:.8rem .9rem;
  border:1.5px solid var(--zelo-border); border-radius:12px; background:#fff; font-weight:600; font-size:.9rem;
  transition:border-color .15s, background .15s;
}
.zelo-modal-choice-btn:hover{ border-color:var(--zelo-primary); background:#FAFAF7; }
.zelo-modal-choice-btn i{ color:var(--zelo-primary); font-size:1.1rem; width:20px; text-align:center; }
.zelo-modal-error{ font-size:.82rem; color:var(--zelo-danger); margin-top:.6rem; display:none; }

/* ===== Toast (aviso rápido não-bloqueante, ex: "Link copiado!") ===== */
.zelo-toast{
  position:fixed; top:1rem; right:1rem; z-index:300; padding:.8rem 1.1rem; border-radius:12px;
  font-size:.85rem; font-weight:600; box-shadow:0 8px 24px rgba(43,35,32,.18);
  transform:translateX(20px); opacity:0; transition:transform .2s ease, opacity .2s ease;
}
.zelo-toast.zelo-toast-show{ transform:translateX(0); opacity:1; }

/* ===== Destaque temporário (usado ao clicar num item do resumo "pra agora") ===== */
@keyframes zeloPulso {
  0%   { box-shadow: 0 0 0 0 rgba(47,107,94,.35); border-color: var(--zelo-primary); }
  70%  { box-shadow: 0 0 0 10px rgba(47,107,94,0); border-color: var(--zelo-primary); }
  100% { box-shadow: 0 0 0 0 rgba(47,107,94,0); }
}
.zelo-destaque-pulso{ animation: zeloPulso 1.6s ease-out; }

/* ===== Assistente flutuante (FAB estilo WhatsApp) ===== */
.zelo-fab{
  position:fixed; bottom:1.5rem; right:1.5rem; z-index:150;
  width:58px; height:58px; border-radius:50%; background:var(--zelo-primary);
  display:flex; align-items:center; justify-content:center; font-size:1.6rem;
  box-shadow:0 6px 20px rgba(43,35,32,.28); cursor:pointer;
  transition:transform .15s ease;
}
.zelo-fab:hover{ transform:scale(1.06); }
.zelo-fab.zelo-fab-tem-avisos{ animation: zeloFabRespira 2.4s ease-in-out infinite; }
@keyframes zeloFabRespira {
  0%, 100% { box-shadow:0 6px 20px rgba(43,35,32,.28), 0 0 0 0 rgba(201,123,74,.45); }
  50%      { box-shadow:0 6px 20px rgba(43,35,32,.28), 0 0 0 9px rgba(201,123,74,0); }
}
.zelo-fab-badge{
  position:absolute; top:-4px; right:-4px; background:var(--zelo-accent); color:#fff;
  font-size:.7rem; font-weight:800; min-width:20px; height:20px; border-radius:999px;
  display:flex; align-items:center; justify-content:center; padding:0 5px; border:2px solid var(--zelo-bg);
}
.zelo-fab-balao{
  position:fixed; bottom:6rem; right:1.5rem; z-index:151; width:340px; max-width:calc(100vw - 2rem);
  background:#fff; border-radius:16px; padding:1.1rem; box-shadow:0 16px 48px rgba(43,35,32,.25);
  max-height:60vh; overflow-y:auto;
  transform:translateY(8px) scale(.97); opacity:0; transition:transform .18s cubic-bezier(.34,1.56,.64,1), opacity .15s ease;
}
.zelo-fab-balao.zelo-fab-balao-show{ transform:translateY(0) scale(1); opacity:1; }
.zelo-fab-balao-seta{
  position:absolute; bottom:-8px; right:22px; width:16px; height:16px; background:#fff;
  transform:rotate(45deg); box-shadow:4px 4px 8px rgba(43,35,32,.06);
}
@media (max-width: 480px){
  .zelo-fab{ bottom:1rem; right:1rem; width:52px; height:52px; font-size:1.4rem; }
  .zelo-fab-balao{ bottom:5rem; right:.75rem; width:calc(100vw - 1.5rem); }
}

/* ===== Borda sutil por status (agenda do psicólogo) ===== */
.zelo-consulta-card{ border-left:4px solid transparent; }
.zelo-consulta-pendente{ border-left-color: var(--zelo-warn); }
.zelo-consulta-aceita{ border-left-color: var(--zelo-primary); }
.zelo-consulta-proposta_reagendamento{ border-left-color: var(--zelo-warn); border-left-style:dashed; }
.zelo-consulta-recusada{ border-left-color: #D9C9C6; }
.zelo-consulta-cancelada_psicologo{ border-left-color: #D9C9C6; }
.zelo-consulta-cancelada_paciente{ border-left-color: #D9C9C6; }
.zelo-consulta-conflito{ border-left-color: var(--zelo-danger); background:#FEF9F8; }

/* ===== Menu de 3 pontinhos ===== */
.zelo-menu-wrap{ position:relative; }
.zelo-menu-btn{
  width:32px; height:32px; border-radius:8px; display:flex; align-items:center; justify-content:center;
  color:var(--zelo-text-soft); transition:background .15s;
}
.zelo-menu-btn:hover{ background:#F3F0E9; }
.zelo-menu-dropdown{
  position:absolute; right:0; top:calc(100% + 4px); background:#fff; border-radius:12px; min-width:190px;
  box-shadow:0 10px 30px rgba(43,35,32,.18); border:1px solid var(--zelo-border); padding:.35rem; z-index:20;
}
.zelo-menu-item{
  display:flex; align-items:center; gap:.55rem; width:100%; text-align:left; padding:.55rem .7rem;
  border-radius:8px; font-size:.85rem; font-weight:500; color:var(--zelo-text);
}
.zelo-menu-item:hover{ background:#F3F0E9; }
.zelo-menu-item.perigo{ color:var(--zelo-danger); }
.zelo-menu-item i{ width:16px; text-align:center; color:var(--zelo-text-soft); }

/* ===== Calendário visual (calendario.js) ===== */
.zelo-cal-header{ display:flex; align-items:center; justify-content:space-between; margin-bottom:.8rem; }
.zelo-cal-titulo{ font-weight:700; font-size:.95rem; text-transform:capitalize; }
.zelo-cal-nav{ width:32px; height:32px; border-radius:8px; display:flex; align-items:center; justify-content:center; color:var(--zelo-text-soft); transition:background .15s; }
.zelo-cal-nav:hover{ background:#F3F0E9; }
.zelo-cal-semana{ display:grid; grid-template-columns:repeat(7,1fr); text-align:center; font-size:.7rem; font-weight:700; color:var(--zelo-text-soft); margin-bottom:.3rem; }
.zelo-cal-grid{ display:grid; grid-template-columns:repeat(7,1fr); gap:2px; }
.zelo-cal-dia{
  aspect-ratio:1; border-radius:10px; font-size:.85rem; font-weight:600; color:#C7BFB2;
  display:flex; align-items:center; justify-content:center; position:relative;
}
.zelo-cal-dia-tem-vaga{ color:var(--zelo-text); background:#F7F4EC; }
.zelo-cal-dia-tem-vaga::after{ content:''; position:absolute; bottom:5px; width:5px; height:5px; border-radius:50%; background:var(--zelo-primary); }
.zelo-cal-dia-tem-vaga:hover{ background:#EFE9DA; }
.zelo-cal-dia-hoje{ box-shadow:inset 0 0 0 1.5px var(--zelo-border); }
.zelo-cal-dia-selecionado{ background:var(--zelo-primary) !important; color:#fff !important; }
.zelo-cal-dia-selecionado::after{ background:#fff !important; }
.zelo-cal-dia:disabled{ cursor:default; }
.zelo-cal-horarios{ margin-top:1.1rem; border-top:1px solid var(--zelo-border); padding-top:1rem; }
.zelo-cal-horarios-titulo{ font-weight:700; font-size:.9rem; margin-bottom:.6rem; text-transform:capitalize; }
.zelo-cal-chips{ display:flex; flex-wrap:wrap; gap:.5rem; }
.zelo-cal-chip{
  padding:.5rem .85rem; border-radius:999px; border:1.5px solid var(--zelo-border); background:#fff;
  font-size:.85rem; font-weight:600; display:flex; align-items:center; gap:.4rem; transition:border-color .15s, background .15s;
}
.zelo-cal-chip:hover{ border-color:var(--zelo-primary); background:#FAFAF7; }
.zelo-cal-chip i{ color:var(--zelo-primary); font-size:.8rem; }
.zelo-cal-vazio{ font-size:.85rem; color:var(--zelo-text-soft); }

/* ===== Camada "premium": profundidade, transição, entrada suave ===== */
:root{ --zelo-shadow-sm:0 1px 3px rgba(43,35,32,.06), 0 1px 2px rgba(43,35,32,.04);
       --zelo-shadow-md:0 4px 16px rgba(43,35,32,.08), 0 2px 6px rgba(43,35,32,.04);
       --zelo-shadow-lg:0 12px 32px rgba(43,35,32,.12), 0 4px 12px rgba(43,35,32,.06); }

body{
  background:
    radial-gradient(circle at 12% 8%, rgba(47,107,94,.05), transparent 40%),
    radial-gradient(circle at 88% 92%, rgba(201,123,74,.05), transparent 40%),
    var(--zelo-bg);
  background-attachment:fixed;
}

.zelo-card{
  box-shadow:var(--zelo-shadow-sm);
  transition:box-shadow .2s ease, transform .2s ease;
}
.zelo-card:has(button:hover):not(:has(.zelo-fab-balao)){ /* leve resposta em cards clicáveis */ }
button.zelo-card:hover, a.zelo-card:hover{ box-shadow:var(--zelo-shadow-md); transform:translateY(-1px); }

.zelo-btn-primary{ box-shadow:0 2px 8px rgba(47,107,94,.25); transition:background .15s, box-shadow .15s, transform .1s; }
.zelo-btn-primary:hover{ box-shadow:0 4px 14px rgba(47,107,94,.32); }
.zelo-btn-primary:active{ transform:scale(.97); }
.zelo-btn-secondary{ transition:border-color .15s, background .15s, transform .1s; }
.zelo-btn-secondary:active{ transform:scale(.97); }
.zelo-btn-ghost{ transition:color .15s; }

/* Entrada suave de conteúdo ao carregar cada tela */
@keyframes zeloFadeUp{ from{ opacity:0; transform:translateY(6px); } to{ opacity:1; transform:translateY(0); } }
#app > *, main > section, .zelo-card{ animation:zeloFadeUp .35s ease-out both; }
main > section:nth-child(2){ animation-delay:.03s; }
main > section:nth-child(3){ animation-delay:.06s; }

.zelo-fab{ transition:transform .15s ease, box-shadow .15s ease; }

/* Badges com leve textura de profundidade em vez de chapados */
.zelo-badge{ box-shadow:inset 0 0 0 1px rgba(0,0,0,.03); }

/* Scrollbar discreta (onde suportado) */
*{ scrollbar-width:thin; scrollbar-color:var(--zelo-border) transparent; }
::-webkit-scrollbar{ width:8px; height:8px; }
::-webkit-scrollbar-thumb{ background:var(--zelo-border); border-radius:999px; }

/* ===== Landing page: revelar ao rolar + entrada escalonada da demo ===== */
.zelo-reveal{ opacity:0; transform:translateY(16px); transition:opacity .5s ease, transform .5s ease; animation:none !important; }
.zelo-reveal.zelo-reveal-visivel{ opacity:1; transform:translateY(0); }

@keyframes zeloDemoIn{ from{ opacity:0; transform:translateX(10px); } to{ opacity:1; transform:translateX(0); } }
.zelo-demo-item{ opacity:0; animation:zeloDemoIn .4s ease-out forwards; }
.zelo-demo-item:nth-child(1){ animation-delay:.15s; }
.zelo-demo-item:nth-child(2){ animation-delay:.35s; }
.zelo-demo-item:nth-child(3){ animation-delay:.55s; }

@media (prefers-reduced-motion: reduce){
  .zelo-reveal, .zelo-demo-item, #app > *, main > section, .zelo-card{ animation:none !important; transition:none !important; opacity:1 !important; transform:none !important; }
}
