:root{
  --bg:#e4e3ea; --card:#fff; --txt:#2d2540; --suave:#6b7280;
  --roxo:#7c3aed; --cor:#7c3aed;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;overflow-x:hidden;max-width:100%}
body{
  font-family:-apple-system,"Segoe UI",Roboto,system-ui,sans-serif;
  background:linear-gradient(180deg,#d7d6e0,#e4e3ea 220px);
  color:var(--txt);-webkit-tap-highlight-color:transparent;
  padding-bottom:84px;min-height:100vh;
}
#confete{position:fixed;inset:0;pointer-events:none;z-index:90;width:100%;height:100%}
/* Campos de texto sempre de lado a lado (largura cheia) e confortáveis */
textarea{width:100%;box-sizing:border-box;border:2px solid #e5e7eb;border-radius:12px;
  padding:.6rem .7rem;font:inherit;resize:vertical;min-height:90px;line-height:1.35}
textarea:focus{outline:none;border-color:#c4b5fd}

/* Topo */
.topo{position:sticky;top:0;z-index:50;display:flex;align-items:center;
  justify-content:space-between;gap:.5rem;padding:1.5rem 1.1rem;min-height:92px;
  background:linear-gradient(120deg,#7c3aed 0%,#6366f1 45%,#22d3ee 100%);
  box-shadow:0 4px 18px rgba(124,58,237,.25)}
.logo{font-weight:800;color:#fff;text-decoration:none;font-size:1.55rem;
  letter-spacing:.3px;text-shadow:0 2px 6px rgba(0,0,0,.18)}
.topo-acoes{display:flex;gap:.4rem;align-items:center}

/* ===== Hero / banner do topo (Família Digital) ===== */
.hero{position:relative;overflow:hidden;color:#fff;padding:.9rem clamp(1.3rem,5vw,3.6rem) 1.3rem;
  border-radius:0 0 28px 28px;box-shadow:0 8px 26px rgba(124,58,237,.28);
  background:linear-gradient(120deg,#7c3aed 0%,#6d5ae6 38%,#36b3e8 72%,#22d3ee 100%)}
.hero .blob{position:absolute;pointer-events:none;z-index:1}
.blob-coral{top:-34px;left:16%;width:230px;height:120px;background:#fb7185;opacity:.85;
  border-radius:62% 38% 55% 45%/60% 55% 45% 40%;transform:rotate(-8deg)}
.blob-verde{right:11%;bottom:-36px;width:124px;height:112px;background:#34d399;opacity:.8;
  border-radius:58% 42% 50% 50%/56% 48% 52% 44%;transform:rotate(7deg)}
.blob-amarela{left:-18px;bottom:-22px;width:96px;height:96px;background:#fbbf24;opacity:.85;
  border-radius:46% 54% 42% 58%/55% 44% 56% 45%}
.hero-top{position:relative;z-index:3;display:flex;align-items:flex-start;
  justify-content:flex-end;gap:.9rem;flex-wrap:wrap}
.hero-controles{display:flex;gap:.4rem;align-items:center;flex-wrap:wrap}
.hero .mini{background:rgba(255,255,255,.20);color:#fff;border:1px solid rgba(255,255,255,.38)}
.hero-espaco{display:flex;flex-direction:column;align-items:center;gap:.3rem;text-decoration:none;
  color:#fff;font-weight:700;font-size:.76rem;text-shadow:0 1px 3px rgba(0,0,0,.2);
  max-width:92px;text-align:center;line-height:1.15}
.he-avatar{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;
  font-size:1.35rem;border:2px solid rgba(255,255,255,.85);box-shadow:0 3px 9px rgba(0,0,0,.22)}
.hero-carrossel{position:relative;z-index:2;margin-top:.5rem;overflow:hidden}
.hc-track{display:flex;transition:transform .45s ease}
.hc-slide{min-width:100%;padding:.5rem .2rem 0 clamp(.4rem,5vw,4rem);box-sizing:border-box;
  display:block;text-decoration:none;color:inherit;cursor:pointer}
.hc-slide:hover .hc-titulo{text-decoration:underline;text-underline-offset:4px}
.hc-titulo{margin:.1rem 0;font-size:2.5rem;font-weight:800;line-height:1.04;
  text-shadow:0 3px 12px rgba(0,0,0,.20)}
.hc-sub{margin:.45rem 0 0;font-size:.9rem;line-height:1.35;max-width:78%;opacity:.96;
  text-shadow:0 1px 5px rgba(0,0,0,.18)}
.hc-seta{position:absolute;top:42%;transform:translateY(-50%);z-index:4;
  width:30px;height:30px;border-radius:50%;border:none;cursor:pointer;display:grid;
  place-items:center;background:rgba(255,255,255,.22);color:#fff;font-size:1.3rem;line-height:1}
.hc-seta:hover{background:rgba(255,255,255,.4)}
.hc-prev{left:-2px}.hc-next{right:-2px}
.hc-dots{display:flex;gap:.4rem;justify-content:center;margin-top:.8rem}
.hc-dot{width:32px;height:6px;border-radius:99px;background:rgba(255,255,255,.45);
  cursor:pointer;transition:.3s}
.hc-dot.on{background:#fff;width:46px}
/* ===== Coleta de Desafios (Placar) ===== */
.desafios{margin-top:1.6rem}
.desafio-card{display:flex;align-items:center;gap:.8rem;justify-content:space-between;
  background:#fff;border:2px solid #fde68a;border-left:6px solid #f59e0b;border-radius:16px;
  padding:.7rem .9rem;margin:.5rem 0;box-shadow:0 2px 8px rgba(0,0,0,.05)}
.desafio-card.feito{opacity:.72;border-color:#bbf7d0;border-left-color:#22c55e}
.desafio-main{display:flex;flex-direction:column;gap:.15rem;min-width:0}
.desafio-main strong{font-size:1.02rem}
.desafio-periodo{font-size:.72rem;font-weight:800;color:#b45309;text-transform:uppercase;letter-spacing:.4px}
.desafio-card.feito .desafio-periodo{color:#15803d}
.desafio-desc{margin:.1rem 0 0;font-size:.82rem;color:var(--suave)}
.desafio-lado{display:flex;flex-direction:column;align-items:center;gap:.35rem;flex:none}
.desafio-pts{font-weight:800;color:#f59e0b;font-size:1.05rem}
.desafio-ok{font-size:.8rem;font-weight:800;color:#16a34a}
/* ===== Banner da página Mural (creme, pinceladas vivas) ===== */
.hero-mural{background:#f7efe9;box-shadow:0 6px 22px rgba(0,0,0,.10)}
.hero-mural .blob{opacity:.95}
.hero-mural .hc-titulo{color:#7c3aed;text-shadow:none}
.hero-mural .hc-sub{color:#6b6478;text-shadow:none;opacity:1}
.hero-mural .mini{background:rgba(124,58,237,.10);color:#7c3aed;border-color:rgba(124,58,237,.30)}
.hero-mural .hero-espaco{color:#7c3aed;text-shadow:none}
.hero-mural .he-avatar{border-color:rgba(124,58,237,.45)}
.hero-mural-titulo{position:relative;z-index:2;padding:1.1rem clamp(.4rem,5vw,4rem) .3rem}
.hero-mural-titulo .hc-titulo{font-size:2.6rem;font-weight:800;line-height:1.04;margin:.1rem 0}
.hero-mural-titulo .hc-sub{margin:.4rem 0 0;font-size:.9rem;max-width:80%}
/* Presença (quem está online) — barrinha discreta + pop-up retrô */
.online-mini{display:flex;align-items:center}
.online-mini .on-mini{margin-left:-7px}
.online-mini .on-mini:first-child{margin-left:0}
.on-mini svg{height:24px;width:auto;border-radius:50%;border:2px solid #22c55e;
  background:#fff;box-shadow:0 0 0 1px #fff}
#online-pops{position:fixed;right:10px;bottom:78px;z-index:120;display:flex;
  flex-direction:column;gap:.5rem;pointer-events:none}
.msn-pop{pointer-events:auto;display:flex;align-items:center;gap:.5rem;cursor:pointer;
  background:#fff;border-radius:14px;padding:.5rem .7rem;min-width:200px;
  border-left:5px solid var(--cor,#22c55e);box-shadow:0 8px 24px rgba(45,37,64,.22);
  animation:msnIn .35s cubic-bezier(.2,1.3,.5,1)}
.msn-pop.out{animation:msnOut .4s ease forwards}
.msn-av svg{height:38px;width:auto;border-radius:50%;border:2px solid #22c55e}
.msn-tx{display:flex;flex-direction:column;line-height:1.15}
.msn-tx b{font-size:.92rem}
.msn-tx span{font-size:.78rem;color:#16a34a;font-weight:700}
@keyframes msnIn{from{transform:translateX(120%);opacity:0}to{transform:translateX(0);opacity:1}}
@keyframes msnOut{to{transform:translateX(120%);opacity:0}}
.notif-chip{display:inline-flex;align-items:center;gap:.15rem;font-size:.74rem;
  font-weight:800;color:#fff;text-decoration:none;padding:.18rem .45rem;
  border-radius:999px;line-height:1;animation:notifPop .3s ease}
.nc-red{background:#ef4444;box-shadow:0 2px 6px rgba(239,68,68,.4)}
.nc-green{background:#22c55e;box-shadow:0 2px 6px rgba(34,197,94,.4)}
@keyframes notifPop{from{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}
.mini{border:1px solid #ddd6fe;background:#fff;color:var(--roxo);border-radius:999px;
  padding:.35rem .7rem;font-size:.8rem;font-weight:700;cursor:pointer;text-decoration:none}
.mini:active{transform:scale(.95)}

.conteudo{max-width:680px;margin:0 auto;padding:1rem}
.titulo-pg{font-size:1.35rem;margin:.2rem 0 .3rem}
.sub{color:var(--suave);margin:0 0 1rem;font-size:.9rem}
.vazio{color:var(--suave);text-align:center;padding:1.2rem}

/* Navbar inferior */
.navbar{position:fixed;left:0;right:0;bottom:0;z-index:60;display:flex;
  background:#fff;border-top:1px solid #ece9f7;padding:.3rem .2rem env(safe-area-inset-bottom)}
.navbar a{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;
  text-decoration:none;color:var(--suave);font-size:.7rem;font-weight:700;
  padding:.45rem 0;border-radius:12px}
.navbar a span{display:flex;align-items:center;justify-content:center}
.navbar a svg{width:23px;height:23px;display:block}
.navbar a.on{color:var(--roxo);background:#f3effe}
/* botão de alternar posição do menu */
.nav-toggle{flex:none;border:none;background:transparent;cursor:pointer;color:var(--suave);
  display:flex;align-items:center;justify-content:center;padding:.4rem;border-radius:12px}
.nav-toggle svg{width:22px;height:22px}
.nav-toggle:hover{background:#f3effe;color:var(--roxo)}
/* menu na lateral (esquerda/direita) — alterna via botão, salvo no aparelho */
.navbar.pos-left,.navbar.pos-right{flex-direction:column;left:auto;right:auto;bottom:auto;
  top:0;height:100vh;width:74px;justify-content:center;gap:.15rem;overflow-y:auto;
  border-top:none;padding:.5rem .25rem}
.navbar.pos-left{left:0;border-right:1px solid #ece9f7}
.navbar.pos-right{right:0;border-left:1px solid #ece9f7}
.navbar.pos-left a,.navbar.pos-right a{flex:none;width:100%}
body.nav-left{padding-bottom:0;padding-left:74px}
body.nav-right{padding-bottom:0;padding-right:74px}

/* Entrar / carinhas */
.entrar{text-align:center;padding-top:1rem;--cor:var(--roxo)}
.boasvindas{font-size:1.4rem;margin:.5rem 0 1.5rem}
.carinhas{display:grid;grid-template-columns:1fr 1fr;gap:1rem;max-width:420px;margin:0 auto}
.carinha{display:flex;flex-direction:column;align-items:center;gap:.3rem;
  text-decoration:none;color:var(--txt);background:#fff;border-radius:22px;
  padding:1rem .6rem 1.1rem;border:3px solid var(--cor);box-shadow:0 8px 24px rgba(124,58,237,.10)}
.carinha:active{transform:scale(.96)}
/* Avatar da tela de login: altura própria (corpo inteiro) + nome embaixo */
.av-login{display:block;line-height:0;width:100%}
.av-login svg{display:block;height:auto;width:124px;max-width:100%;margin:0 auto;
  border-radius:16px;background:#faf8ff}
.bolha{width:88px;height:88px;border-radius:50%;display:grid;place-items:center;
  font-size:2.6rem;background:var(--cor);box-shadow:0 6px 16px rgba(0,0,0,.12)}
.bolha.peq{width:48px;height:48px;font-size:1.5rem;flex:none}
.carinha .nome{font-weight:800;font-size:1.15rem;color:var(--cor);margin-top:.35rem}
.carinha.grande{max-width:200px;margin:0 auto 1rem;border-width:4px}

/* PIN */
.erro{color:#dc2626;font-weight:700}
.form-pin{max-width:320px;margin:0 auto}
#pin{width:100%;text-align:center;font-size:2rem;letter-spacing:.4rem;
  padding:.6rem;border:3px solid var(--cor);border-radius:16px;margin-bottom:.8rem;
  font-weight:800;color:var(--cor)}
.teclado{display:grid;grid-template-columns:repeat(3,1fr);gap:.6rem}
.tecla{font-size:1.5rem;font-weight:800;padding:1rem 0;border-radius:16px;
  border:none;background:#fff;color:var(--txt);box-shadow:0 3px 8px rgba(0,0,0,.08);cursor:pointer}
.tecla:active{transform:scale(.93)}
.tecla.ok{background:var(--cor);color:#fff}
.tecla.apagar{background:#fee2e2;color:#dc2626}
.voltar{display:block;text-align:center;margin-top:1rem;color:var(--suave)}
.dica{text-align:center;color:var(--suave);font-size:.82rem;margin-top:1rem}

/* Painel do jogo (Hoje) */
.painel-jogo{background:linear-gradient(135deg,var(--cor),#0000),#fff;
  border-radius:20px;padding:1rem;color:#fff;margin-bottom:1rem;
  background:linear-gradient(135deg,var(--cor),color-mix(in srgb,var(--cor) 60%,#000))}
.saudacao{display:flex;align-items:center;gap:.7rem;margin-bottom:.6rem}
.saudacao strong{font-size:1.2rem}
.nivel{font-size:.85rem;opacity:.95}
.placar-mini{display:flex;gap:.6rem}
.pj{flex:1;background:rgba(255,255,255,.18);border-radius:14px;padding:.5rem;text-align:center}
.pj span{font-size:1.6rem;font-weight:800;display:block}
.pj small{opacity:.9}
.medalhas{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.7rem}
.medalha{background:rgba(255,255,255,.22);border-radius:999px;padding:.2rem .6rem;
  font-size:.78rem;font-weight:700}

/* Tabs dos dias */
.dias-tabs{display:flex;gap:.3rem;overflow-x:auto;padding-bottom:.4rem;margin-bottom:.6rem}
.dia-tab{flex:none;text-decoration:none;color:var(--suave);background:#fff;
  border-radius:16px;padding:.35rem .7rem;font-weight:700;font-size:.85rem;
  border:2px solid transparent;display:flex;flex-direction:column;align-items:center;line-height:1.1}
.dia-tab small{font-size:.62rem;opacity:.85;font-weight:600}
.dia-tab.today{border-color:#ddd6fe}
.dia-tab.on{background:var(--roxo);color:#fff}
.aviso-dia{background:#fef9c3;border-radius:12px;padding:.6rem .8rem;font-size:.85rem;margin:.2rem 0 .8rem}

/* Barra de progresso */
.progresso{height:12px;background:#ece9f7;border-radius:999px;overflow:hidden;margin-bottom:1rem}
.progresso .fill{height:100%;background:linear-gradient(90deg,#22c55e,#16a34a);
  width:0;transition:width .5s ease}

/* Cards de tarefa */
.cards{display:flex;flex-direction:column;gap:.7rem}
.card{display:flex;align-items:center;gap:.7rem;background:var(--card);
  border-radius:18px;padding:.7rem .8rem;box-shadow:0 4px 14px rgba(45,37,64,.07);
  border-left:6px solid #e5e7eb;transition:transform .15s,opacity .3s}
.card.pontua{border-left-color:var(--cor,#7c3aed)}
.card-hora{font-weight:800;font-size:.8rem;color:var(--suave);min-width:44px;text-align:center}
.card-hora small{display:block;font-weight:600;opacity:.7}
.card-icone{font-size:1.7rem;flex:none}
.card-corpo{flex:1;min-width:0}
.card-tit{font-weight:700;line-height:1.25}
.pts{display:inline-block;margin-top:.2rem;background:#ecfdf5;color:#059669;
  font-weight:800;font-size:.72rem;border-radius:999px;padding:.1rem .5rem}
.cumprir{flex:none;width:48px;height:48px;border-radius:50%;border:3px solid #d1d5db;
  background:#fff;font-size:1.3rem;color:#d1d5db;cursor:pointer;display:grid;place-items:center}
.cumprir:active{transform:scale(.9)}
.cumprir.só-ver{border-style:dashed;cursor:default}
/* Agenda inteligente: blocos automáticos e despertador */
.card-local{font-size:.76rem;color:var(--suave);margin-top:.1rem;font-style:italic}
.tag-auto{display:inline-block;margin-top:.2rem;font-size:.72rem;color:#64748b;
  background:#f1f5f9;border-radius:999px;padding:.05rem .55rem}
.card.modo-auto{border-left-color:#cbd5e1}
.cumprir.auto-mark{border-style:dotted;cursor:default;color:#94a3b8;font-size:1.3rem}
.card.modo-despertador{background:linear-gradient(90deg,#fff7ed,#ffedd5);border-left-color:#f59e0b}
.tag-auto.alarme-tag{color:#b45309;background:#fef3c7}
.cumprir.alarme{border-color:#f59e0b;background:#fff;font-size:1.4rem;cursor:pointer}
.card.modo-despertador.tocando{animation:pulseAlarme .7s ease infinite}
@keyframes pulseAlarme{0%,100%{box-shadow:0 0 0 0 rgba(245,158,11,.55)}
  50%{box-shadow:0 0 0 12px rgba(245,158,11,0)}}
.card.feito{opacity:.65}
.card.feito .card-tit{text-decoration:line-through;color:var(--suave)}
.card.feito .cumprir{background:#22c55e;border-color:#22c55e;color:#fff}
.card.pop{animation:pop .4s ease}
@keyframes pop{0%{transform:scale(1)}40%{transform:scale(1.04)}100%{transform:scale(1)}}

/* Toast */
.toast{position:fixed;left:50%;top:14%;transform:translateX(-50%);z-index:95;
  background:#111827;color:#fff;padding:.8rem 1.2rem;border-radius:16px;
  font-weight:800;font-size:1.05rem;box-shadow:0 12px 32px rgba(0,0,0,.3);
  max-width:88%;text-align:center;animation:toastin .3s}
@keyframes toastin{from{opacity:0;transform:translate(-50%,-12px)}to{opacity:1}}

/* Placar */
.ranking{display:flex;flex-direction:column;gap:.6rem}
.rank-linha{display:flex;align-items:center;gap:.7rem;background:#fff;border-radius:16px;
  padding:.7rem .8rem;box-shadow:0 3px 12px rgba(45,37,64,.06);border-left:6px solid var(--cor)}
.rank-linha.eu{outline:2px solid var(--cor)}
.pos{font-weight:800;color:var(--suave);min-width:28px}
.rank-info{flex:1;min-width:0}
.rank-detalhe{font-size:.8rem;display:flex;gap:.5rem;flex-wrap:wrap;color:var(--suave)}
.rank-detalhe .g{color:#059669;font-weight:800}
.rank-detalhe .p{color:#dc2626;font-weight:800}
.rank-saldo{font-size:1.5rem;font-weight:800;color:var(--cor)}
.rank-saldo.neg{color:#dc2626}

/* Semana */
.grupo-dia{background:#fff;border-radius:16px;margin:.5rem 0;overflow:hidden;
  box-shadow:0 3px 12px rgba(45,37,64,.06)}
.grupo-dia>summary{cursor:pointer;font-weight:800;padding:.8rem 1rem;list-style:none;display:flex;justify-content:space-between}
.grupo-dia>summary::-webkit-details-marker{display:none}
.grupo-dia .cont{background:#ece9f7;border-radius:999px;padding:.1rem .6rem;font-size:.8rem;color:var(--suave)}
.mini-cards{padding:0 .8rem .8rem}
.mini-card{display:flex;align-items:center;gap:.5rem;padding:.45rem 0;border-top:1px solid #f1f0f7}
.mini-card.feito{opacity:.55;text-decoration:line-through}
.mc-hora{font-size:.75rem;color:var(--suave);min-width:42px}
.mc-ic{font-size:1.05rem}
.mc-tit{flex:1;font-size:.9rem}
.mc-pts{color:#059669;font-weight:800;font-size:.75rem}
.det-wrap{background:#fff;border-radius:16px;box-shadow:0 3px 12px rgba(45,37,64,.06);
  padding:.3rem .8rem .7rem}
/* Semana da família */
.sem-fam{padding:0 .6rem .6rem;display:flex;flex-direction:column;gap:.5rem}
.sem-pessoa{border-left:4px solid var(--cor,#7c3aed);border-radius:10px;background:#faf9ff;padding:.3rem .5rem}
.sem-pnome{display:flex;align-items:center;gap:.4rem;text-decoration:none;color:var(--cor,#7c3aed);
  font-weight:800;font-size:.86rem}
.sem-av svg{height:24px;width:auto;border-radius:50%;border:2px solid var(--cor,#7c3aed)}
.sem-pessoa .mini-cards{padding:0}
.sem-pessoa .mc-tit{font-size:.84rem}
/* Família: abas de pessoa + linha do tempo lado a lado */
.fam-tabs{display:flex;gap:.4rem;overflow-x:auto;padding-bottom:.4rem;margin-bottom:.4rem;
  -webkit-overflow-scrolling:touch}
.fam-tab{flex:none;display:flex;flex-direction:column;align-items:center;gap:.15rem;
  text-decoration:none;color:var(--suave);font-size:.72rem;font-weight:700;background:#fff;
  border-radius:14px;padding:.35rem .55rem;min-width:56px;border:2px solid transparent}
.fam-tab.on{border-color:var(--roxo);color:var(--roxo)}
.fam-tab .ft-ic{font-size:1.5rem;line-height:1.2}
.fam-tab .ft-av svg{height:30px;border-radius:50%}
.timeline{display:flex;flex-direction:column;gap:.5rem}
.tl-row{display:flex;gap:.5rem;align-items:flex-start}
.tl-hora{flex:none;width:44px;text-align:right;font-weight:800;font-size:.76rem;
  color:var(--roxo);padding-top:.55rem}
.tl-itens{flex:1;min-width:0;display:flex;flex-wrap:wrap;gap:.4rem;
  border-left:2px solid #ece9f7;padding-left:.55rem}
.tl-card{display:flex;align-items:center;gap:.4rem;background:#fff;border-radius:12px;
  padding:.35rem .55rem;text-decoration:none;color:var(--txt);max-width:100%;
  box-shadow:0 2px 8px rgba(45,37,64,.06);border-left:4px solid var(--cor,#7c3aed)}
.tl-card.feito{opacity:.5}
.tl-av{border:2.5px solid var(--cor,#7c3aed);border-radius:50%;padding:1px;flex:none;
  background:#fff}
.tl-av svg{height:30px;width:auto;border-radius:50%;display:block}
.tl-tx{display:flex;flex-direction:column;line-height:1.15;min-width:0}
.tl-nome{font-size:.72rem;font-weight:800;color:var(--cor,#7c3aed)}
.tl-at{font-size:.84rem;word-break:break-word}
.tl-ic{margin-right:.15rem}

/* Admin */
.filtros{display:flex;gap:.5rem;margin-bottom:.8rem}
.filtros select{flex:1;padding:.55rem;border-radius:12px;border:1px solid #ddd6fe;font-weight:600}
.bloco-add,.bloco-pin{background:#fff;border-radius:14px;margin:.6rem 0;
  padding:.3rem .9rem;box-shadow:0 3px 12px rgba(45,37,64,.06)}
.bloco-add>summary,.bloco-pin>summary{cursor:pointer;font-weight:800;padding:.6rem 0}
.form-tarefa,.adm-item{display:flex;flex-direction:column;gap:.5rem;margin:.5rem 0}
.linha2,.adm-top{display:flex;gap:.5rem;align-items:flex-end;flex-wrap:wrap}
.hora{width:70px;padding:.55rem;border-radius:10px;border:1px solid #e5e7eb;text-align:center}
/* Campo com rótulo em cima (mais claro no celular) */
.campo-mini{display:flex;flex-direction:column;gap:2px;font-size:.64rem;font-weight:800;
  color:#9ca3af;text-transform:uppercase;letter-spacing:.02em}
.campo-mini .hora{width:76px}
.campo-mini.campo-full{width:100%}
.campo-mini.campo-full input{width:100%}
/* Editor de recorrência dentro da linha de tarefa */
.rep-edit{margin:.1rem 0}
.rep-edit>summary{font-size:.9rem;font-weight:800;color:#7c3aed;cursor:pointer;
  list-style:none;padding:.35rem 0}
.rep-edit>summary::-webkit-details-marker{display:none}
.rep-edit>summary small{color:#9ca3af;font-weight:600;margin-left:.3rem}
.rep-edit[open]>summary{margin-bottom:.35rem}
.form-tarefa input:not(.hora),.adm-item input:not(.hora){padding:.6rem;border-radius:10px;border:1px solid #e5e7eb;flex:1}
.adm-ic{font-size:1.4rem}
.adm-baixo{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}
.chk{display:flex;align-items:center;gap:.3rem;font-size:.85rem;color:var(--suave)}
/* Recorrência: chips de dias da semana + atalhos */
.repetir-box{background:#f8f7ff;border:1px solid #ece9fb;border-radius:12px;padding:.55rem .65rem;display:flex;flex-direction:column;gap:.45rem}
.rep-tit{font-weight:800;font-size:.85rem;color:var(--roxo,#7c3aed)}
.dias-chips{display:flex;gap:.3rem;flex-wrap:wrap}
.dia-chip{position:relative;cursor:pointer}
.dia-chip input{position:absolute;opacity:0;width:0;height:0}
.dia-chip span{display:inline-block;padding:.32rem .5rem;border-radius:999px;border:1px solid #ddd6f5;background:#fff;font-size:.78rem;font-weight:700;color:#6b7280}
.dia-chip input:checked+span{background:var(--roxo,#7c3aed);border-color:var(--roxo,#7c3aed);color:#fff}
.rep-presets{display:flex;gap:.3rem;flex-wrap:wrap}
.rep-presets .btn-sm{padding:.25rem .55rem;font-size:.75rem}
.rep-hint{color:#9ca3af;font-size:.72rem}
.lista-admin .adm-item{background:#fff;border-radius:14px;padding:.7rem .8rem;
  box-shadow:0 3px 12px rgba(45,37,64,.06)}
.btn{background:var(--roxo);color:#fff;border:none;border-radius:12px;padding:.6rem 1rem;
  font-weight:800;cursor:pointer}
.btn:active{transform:scale(.96)}
.btn-sm{padding:.4rem .7rem;font-size:.85rem}
.btn.perigo{background:#fee2e2;color:#dc2626}
.form-pin-adm{display:flex;gap:.5rem;margin:.5rem 0}
.form-pin-adm input{flex:1;padding:.6rem;border-radius:10px;border:1px solid #e5e7eb}

/* Admin: pessoas/agendas */
.lista-pessoas{display:flex;flex-direction:column;gap:.4rem;margin:.5rem 0}
.pessoa-linha{display:flex;align-items:center;gap:.6rem;padding:.4rem .2rem;border-top:1px solid #f1f0f7}
.pessoa-linha .bolha.peq{width:38px;height:38px;font-size:1.2rem}
.pl-nome{flex:1;font-weight:700}
.pl-nome small{color:var(--suave);font-weight:500}
.pl-voce{color:var(--suave);font-size:.8rem;font-style:italic}
.form-pessoa{display:flex;flex-direction:column;gap:.5rem;margin-top:.6rem;border-top:1px dashed #e5e7eb;padding-top:.6rem}
.cor-pick{width:48px;height:40px;padding:2px;border:1px solid #e5e7eb;border-radius:10px;background:#fff}

/* Avatar nas telas */
.av{display:inline-grid;place-items:center;line-height:0;flex:none}
.av svg{display:block;border-radius:50%}
.av-88{width:88px;height:88px}
.av-52{width:52px;height:52px}
.av-46{width:46px;height:46px}

/* Loja do avatar */
.avatar-topo{text-align:center;margin-bottom:.6rem}
.avatar-grande{margin:0 auto;filter:drop-shadow(0 8px 18px rgba(124,58,237,.18))}
.avatar-grande svg{height:260px;width:auto;display:block;margin:0 auto}
.casa-grande{margin:0 auto;filter:drop-shadow(0 8px 18px rgba(124,58,237,.18))}
.casa-grande svg{width:100%;max-width:380px;height:auto;display:block;margin:0 auto;border-radius:14px}
.casa-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}
.li-prev .casa-img{height:auto;width:100%;max-width:100%;border-radius:8px}
.saldo-estrelas{font-size:1.25rem;margin-top:.3rem;font-weight:700}
.saldo-estrelas strong{color:#f59e0b}
.loja-cat{margin:1rem 0}
.cat-tit{font-size:1.05rem;margin:.2rem 0 .5rem}
.loja-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(86px,1fr));gap:.55rem}
.loja-item{background:#fff;border-radius:14px;padding:.45rem .3rem;text-align:center;
  box-shadow:0 3px 10px rgba(45,37,64,.06);border:2px solid transparent;
  display:flex;flex-direction:column;align-items:center;gap:.25rem}
.loja-item.equip{border-color:var(--roxo);background:#faf8ff}
.li-prev{height:104px;display:flex;align-items:center;justify-content:center}
.li-prev svg{height:104px;width:auto;max-width:100%}
.li-prev .li-img{height:104px;width:auto;max-width:100%;border-radius:10px}
.li-nome{font-size:.74rem;font-weight:700;color:var(--txt)}
.cat-sub{font-size:.9rem;font-weight:800;color:#b45309;margin:1rem 0 .4rem}
.li-petfoto{position:relative;width:96px;height:96px;border-radius:50%;overflow:hidden;
  background:#fff7ed;border:3px solid #5b4636;display:grid;place-items:center;margin:0 auto}
.li-petfoto img{width:100%;height:100%;object-fit:cover}
.li-petfoto.add{border-style:dashed;border-color:#c7b8e6;background:#f6f3ff}
.li-petemoji{font-size:2.6rem}
.li-mem{position:absolute;bottom:2px;right:8px;font-size:1.1rem;filter:drop-shadow(0 1px 1px #0003)}
.li-badge{display:inline-block;font-size:.72rem;font-weight:800;border-radius:999px;padding:.18rem .55rem}
.li-badge.ok{background:#ede9fe;color:var(--roxo)}
.li-badge.falta{background:#f3f4f6;color:#9ca3af}

/* ---- Jogos (caixa + memória) ---- */
.jogos-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.8rem;margin-top:.4rem}
.jogo-card{display:flex;flex-direction:column;align-items:center;gap:.25rem;background:#fff;
  border-radius:18px;padding:1rem .6rem;text-decoration:none;color:var(--txt);
  box-shadow:0 4px 14px rgba(45,37,64,.08);border:2px solid transparent;transition:.12s}
.jogo-card:active{transform:scale(.97)}
.jogo-card:not(.breve):hover{border-color:#c4b5fd}
.jogo-card.breve{opacity:.6}
.jogo-emoji{font-size:42px;line-height:1}
.jogo-nome{font-weight:800}
.jogo-sub{font-size:.78rem;color:#9ca3af}
.jogo-badge{margin-top:.3rem;font-size:.74rem;font-weight:800;border-radius:999px;padding:.2rem .6rem}
.jogo-badge.premio{background:#fef3c7;color:#b45309}
.jogo-badge.ok{background:#dcfce7;color:#15803d}
.jogo-badge.soon{background:#f3f4f6;color:#9ca3af}
.cacos-barra{display:flex;align-items:center;justify-content:center;gap:.12rem;margin:.4rem 0}
.cacos-barra .caco{font-size:1.5rem;color:#e5e7eb;line-height:1}
.cacos-barra .caco.cheio{color:#f59e0b;text-shadow:0 1px 3px rgba(245,158,11,.4)}
.cacos-barra small{margin-left:.4rem;font-weight:800;color:#9ca3af;font-size:.78rem}

/* ---- Desafio de Hábito (meta de dias + torcida) ---- */
.habitos{margin:1rem 0}
.habito-card{background:linear-gradient(135deg,#fff,#fff7ed);border:2px solid #fde68a;
  border-radius:18px;padding:.9rem 1rem;margin:.6rem 0;box-shadow:0 4px 16px rgba(245,158,11,.12)}
.habito-card.concluido{border-color:#86efac;background:linear-gradient(135deg,#fff,#f0fdf4)}
.habito-top{display:flex;justify-content:space-between;align-items:center;gap:.5rem;flex-wrap:wrap}
.habito-titulo{font-weight:800;font-size:1.02rem;color:var(--txt)}
.habito-alvo{font-weight:800;background:#fef3c7;color:#b45309;border-radius:999px;padding:.15rem .6rem;font-size:.85rem}
.habito-premio{font-size:.9rem;margin:.3rem 0;color:#7c5b1e}
.habito-prog-num{font-size:1.05rem;font-weight:800;margin:.2rem 0;color:#b45309}
.habito-vitoria{font-size:1.05rem;font-weight:800;color:#15803d;margin:.2rem 0}
.habito-barra{height:14px;background:#fde68a;border-radius:999px;overflow:hidden;margin:.3rem 0 .5rem}
.habito-barra span{display:block;height:100%;background:linear-gradient(90deg,#f59e0b,#ef4444);
  border-radius:999px;transition:width .5s}
.habito-card.concluido .habito-barra span{background:linear-gradient(90deg,#22c55e,#16a34a)}
.habito-acoes{display:flex;flex-wrap:wrap;gap:.45rem;align-items:center}
.habito-acoes form{margin:0}
.habito-ok{font-weight:800;color:#15803d}
.habito-aguarda{font-size:.85rem;color:#9ca3af;font-weight:700}
.habito-torcer{display:flex;gap:.3rem;align-items:center}
.habito-torcer input{border:1.5px solid #e5e7eb;border-radius:999px;padding:.3rem .6rem;font-size:.82rem;max-width:160px}
.habito-falhas{margin-top:.5rem;font-size:.82rem;color:#92400e;background:#fffbeb;border-radius:10px;padding:.5rem .6rem}
.falhas-tit{display:block;margin-bottom:.4rem}
.falha-dia{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;margin-bottom:.35rem}
.falha-data{min-width:44px}
.falha-dia small{color:#2563eb;font-weight:700}
/* Central "➕ Adicionar" (aniversário/evento/aviso, com escopo) */
.add-bloco{background:#fff;border-radius:16px;box-shadow:0 2px 10px rgba(45,37,64,.06);
  margin-bottom:.8rem;padding:.4rem .2rem;overflow:hidden}
.add-bloco>summary{font-size:1.05rem;font-weight:800;color:#3b2a5c;cursor:pointer;
  padding:.7rem .8rem;display:flex;align-items:center;gap:.5rem;list-style:none}
.add-bloco>summary::-webkit-details-marker{display:none}
.add-bloco>summary small{font-weight:600;color:#9ca3af;font-size:.8rem}
.add-bloco[open]>summary{border-bottom:1px solid #f1f0f6}
/* Título do bloco quando mostra os 3 juntos (visão geral, sem foco) */
.ab-titulo{font-size:1.05rem;font-weight:800;color:#3b2a5c;padding:.7rem .8rem;
  display:flex;align-items:center;gap:.5rem;border-bottom:1px solid #f1f0f6}
.ab-titulo small{font-weight:600;color:#9ca3af;font-size:.8rem}
.ab-ic{font-size:1.4rem}
.add-form{display:flex;flex-direction:column;gap:.6rem;padding:.8rem}
.add-form input,.add-form textarea,.add-form select{border:2px solid #e5e7eb;border-radius:12px;
  padding:.55rem .7rem;font-size:.95rem;font-family:inherit}
.add-form .linha2{display:flex;gap:.5rem;flex-wrap:wrap}
.add-form .linha2 .hora{flex:1;min-width:70px}
.escopo-toggle{display:flex;gap:.5rem}
.esc-chip{flex:1}
.esc-chip input{display:none}
.esc-chip span{display:block;text-align:center;padding:.55rem .4rem;border-radius:12px;
  border:2px solid #e5e7eb;font-weight:700;font-size:.85rem;color:#6b7280;cursor:pointer}
.esc-chip input:checked+span{border-color:#7c3aed;background:#f3effe;color:#6d28d9}
/* 🐾 Nossos Bichinhos (pets reais da família) */
.pet-tirar{margin:.2rem 0 .8rem}
.pet-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.7rem;margin:.5rem 0 1rem}
.pet-card{background:#fff;border-radius:16px;padding:.7rem;text-align:center;
  box-shadow:0 2px 10px rgba(45,37,64,.07);border:2px solid transparent}
.pet-card.eh-meu{border-color:#f59e0b;background:#fffbeb}
.pet-card.memoria{background:#fffdf7}
.pet-foto{position:relative;width:96px;height:96px;margin:0 auto .4rem;border-radius:50%;
  overflow:hidden;background:#fff7ed;border:3px solid #5b4636;display:grid;place-items:center}
.pet-foto img{width:100%;height:100%;object-fit:cover}
.pet-emoji{font-size:3rem}
.pet-mem{position:absolute;bottom:2px;right:6px;font-size:1.2rem;filter:drop-shadow(0 1px 1px #0003)}
.pet-nome{font-weight:800;color:#3b2a5c}
.pet-preco{font-size:.82rem;font-weight:800;color:#b45309}
.pet-faltam{font-size:.76rem;font-weight:700;color:#9ca3af}
.pet-nota{font-size:.78rem;color:#7c5a2e;margin:.15rem 0}
.pet-acoes{display:flex;align-items:center;justify-content:center;gap:.35rem;flex-wrap:wrap;margin-top:.4rem}
.pet-badge-meu{font-size:.76rem;font-weight:800;color:#b45309;background:#fef3c7;border-radius:999px;padding:.2rem .5rem}
.foto-btn{display:inline-block;background:#eef2ff;color:#4338ca;font-weight:700;border-radius:12px;padding:.55rem .8rem;cursor:pointer;text-align:center}
.foto-preview{width:110px;height:110px;object-fit:cover;border-radius:14px;margin:.2rem auto;display:block;border:2px solid #e5e7eb}
.habito-torcida{display:flex;flex-wrap:wrap;gap:.3rem;margin-top:.55rem}
.torc-bolha{background:#ede9fe;color:#5b21b6;border-radius:999px;padding:.2rem .6rem;font-size:.78rem;font-weight:600}
.mini-lbl{display:flex;flex-direction:column;font-size:.72rem;font-weight:700;color:#6b7280;gap:2px}
.padrinho-edit{margin-top:.4rem;padding-top:.4rem;border-top:1px dashed #e5e7eb}
.padrinho-edit .hora{width:100%;max-width:260px}
.conf-box{background:#f9fafb;border:1.5px solid #eef2ff;border-radius:12px;padding:.6rem;margin:.2rem 0}

.mem-dificuldade{display:flex;gap:.4rem;justify-content:center;margin:.4rem 0;flex-wrap:wrap}
.mem-dificuldade .btn small{opacity:.85;font-weight:700}
.mem-dificuldade .btn.ativo{background:var(--roxo);color:#fff}
.mem-status{display:flex;gap:.6rem;align-items:center;justify-content:center;
  font-weight:700;color:var(--txt);margin:.3rem 0 .6rem}
.mem-tabuleiro{display:grid;grid-template-columns:repeat(var(--cols,4),1fr);gap:.5rem;
  max-width:380px;margin:0 auto}
.mem-carta{aspect-ratio:1;border:none;background:transparent;padding:0;cursor:pointer;
  perspective:500px}
.mem-carta>span{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  border-radius:14px;font-size:1.9rem;backface-visibility:hidden;transition:transform .3s}
.mem-carta{position:relative}
.mem-frente{background:linear-gradient(135deg,#a78bfa,#7c3aed);color:#fff}
.mem-verso{background:#fff;border:2px solid #ede9fe;transform:rotateY(180deg)}
.mem-carta.virada .mem-frente{transform:rotateY(180deg)}
.mem-carta.virada .mem-verso{transform:rotateY(360deg)}
.mem-carta.ok .mem-verso{background:#dcfce7;border-color:#86efac}
.mem-carta.ok{animation:mem-pop .3s}
@keyframes mem-pop{50%{transform:scale(1.12)}}
.mem-fim{position:fixed;inset:0;background:rgba(45,37,64,.45);display:flex;
  align-items:center;justify-content:center;z-index:50;padding:1rem}
.mem-fim[hidden]{display:none}
.mem-fim-card{background:#fff;border-radius:22px;padding:1.6rem 1.4rem;text-align:center;
  max-width:320px;box-shadow:0 18px 50px rgba(0,0,0,.3)}
.mem-fim-msg{font-weight:700;margin:.6rem 0 1rem;color:var(--txt)}
/* Quiz Bíblico */
.quiz-area{margin:.6rem 0}
.quiz-prog{text-align:center;font-weight:800;color:#7c5a2e;font-size:.85rem;margin:.3rem 0 .6rem}
.quiz-pergunta[hidden]{display:none}
.quiz-num{font-size:.78rem;font-weight:800;color:#9ca3af;text-align:center}
.quiz-txt{font-size:1.15rem;text-align:center;color:#3b2a5c;margin:.4rem 0 .9rem;line-height:1.3}
.quiz-opcoes{display:flex;flex-direction:column;gap:.5rem;max-width:440px;margin:0 auto}
.quiz-op{border:2px solid #e5e7eb;background:#fff;border-radius:14px;padding:.8rem 1rem;
  font-size:1rem;font-weight:700;color:#3b2a5c;cursor:pointer;text-align:left;transition:transform .1s}
.quiz-op:active{transform:scale(.98)}
.quiz-op:disabled{cursor:default}
.quiz-op.certa{border-color:#22c55e;background:#dcfce7;color:#15803d}
.quiz-op.errada{border-color:#ef4444;background:#fee2e2;color:#b91c1c}
.quiz-ref{text-align:center;font-size:.85rem;color:#7c5a2e;font-weight:700;margin:.7rem 0 .3rem}
.quiz-ref[hidden]{display:none}
#quiz-prox{display:block;margin:.9rem auto 0}
#quiz-prox[hidden]{display:none}
/* Admin: reordenar tarefas (▲▼) + emoji editável */
.adm-mover{display:flex;flex-direction:column;gap:2px;flex:none}
.mini-mv{width:30px;height:22px;border:1px solid #d1d5db;background:#fff;border-radius:7px;
  font-size:.7rem;line-height:1;cursor:pointer;color:#6b7280;padding:0}
.mini-mv:active{transform:scale(.9);background:#ede9fe}
.ic-edit{text-align:center}
/* Humor do dia (Daylio) */
.humor-box{background:#fff;border-radius:18px;padding:.7rem .8rem;margin:.6rem 0;
  box-shadow:0 4px 14px rgba(45,37,64,.06);text-align:center}
.humor-tit{font-weight:700;color:var(--suave);font-size:.9rem}
.humor-faces{display:flex;justify-content:space-around;gap:.3rem;margin-top:.5rem}
.humor-face{flex:1;border:2px solid transparent;background:#f6f5fb;border-radius:14px;
  padding:.35rem 0;font-size:1.7rem;cursor:pointer;transition:transform .15s}
.humor-face:active{transform:scale(.9)}
.humor-face.on{border-color:var(--roxo);background:#f1ecff;transform:scale(1.08)}
.humor-face.pop{animation:pop .3s ease}
/* Curtidas no placar */
.rank-meta{font-size:.74rem;color:#b45309;background:#fef3c7;border-radius:8px;
  padding:.1rem .4rem;margin-top:.25rem;display:inline-block}
.rank-meta.meta-camp{color:#7c3aed;background:#ede9fe}
.nivel-tag{background:#ede9fe;color:#6d28d9;font-weight:800;border-radius:6px;
  padding:0 .35rem;font-size:.74rem}
.rank-brilho{margin-top:.25rem;font-size:.8rem;font-weight:700;
  background:linear-gradient(90deg,#e0f2fe,#ede9fe);border-radius:8px;
  padding:.15rem .5rem;display:inline-block;color:#334155}
.rank-brilho strong{color:#0891b2}
.rank-brilho small{color:var(--suave);font-weight:600}
.rank-curtir{margin-top:.3rem}
.btn-curtir{border:2px solid #fbcfe8;background:#fff;border-radius:999px;
  padding:.1rem .6rem;font-size:.82rem;font-weight:800;color:#db2777;cursor:pointer}
.btn-curtir.on{background:#fce7f3;border-color:#f9a8d4}
.btn-curtir.pop{animation:pop .3s ease}
.btn-curtir:active{transform:scale(.92)}
.cur-mine{font-size:.8rem;color:#9d174d;font-weight:700}
.rank-curtidores{font-size:.72rem;color:#be185d;font-weight:600;margin-top:.15rem}
.modo-agenda{display:flex;align-items:center;justify-content:space-between;gap:.6rem;
  flex-wrap:wrap;background:#fff;border-radius:14px;padding:.6rem .8rem;margin-bottom:.7rem;
  box-shadow:0 3px 12px rgba(45,37,64,.06);font-size:.86rem}
/* Remédio na agenda (destaque saúde) */
.card.modo-remedio{background:linear-gradient(90deg,#ecfeff,#e0f2fe);border-left-color:#0891b2}
.tag-auto.remedio-tag{color:#0e7490;background:#cffafe}
.cumprir.remedio-cum{border-color:#22c55e}
.card.modo-remedio.tocando{animation:pulseAlarme .7s ease infinite}
/* Compromisso na igreja (destaque especial) */
.card.modo-igreja{background:linear-gradient(90deg,#f5f3ff,#faf5ff);border-left-color:#7c3aed}
.tag-auto.igreja-tag{color:#6d28d9;background:#ede9fe}
.card.modo-evento_card{background:linear-gradient(90deg,#fff7ed,#fef9c3);border-left-color:#f59e0b}
.tag-auto.evento-tag{color:#b45309;background:#fef3c7}
.tag-auto.obrig-tag{color:#b45309;background:#fef3c7}
.adm-item.travada{background:#faf9ff;opacity:.92}
.adm-item.travada input{background:transparent;border-color:#eee;color:#555}

/* ===== Hub "✨ Mais" ===== */
.hub-cards{display:flex;flex-direction:column;gap:.7rem;margin-top:1rem}
.hub-card{display:flex;align-items:center;gap:.8rem;background:#fff;border-radius:18px;
  padding:.9rem 1rem;text-decoration:none;color:var(--txt);position:relative;
  box-shadow:0 4px 14px rgba(45,37,64,.07);border-left:6px solid var(--c,#7c3aed)}
.hub-card:active{transform:scale(.99)}
.hub-ic{font-size:2rem}
.hub-txt{display:flex;flex-direction:column;line-height:1.2}
.hub-txt small{color:var(--suave);font-size:.78rem}
.hub-card-sonho{background:linear-gradient(100deg,#faf5ff,#f0f9ff)}
.hub-badge{margin-left:auto;background:var(--c,#7c3aed);color:#fff;font-weight:800;
  font-size:.8rem;border-radius:999px;min-width:24px;text-align:center;padding:.1rem .5rem}
.hub-badge.novo{background:#f59e0b;font-size:.7rem}
.voltar-link{display:inline-block;color:var(--roxo);text-decoration:none;font-weight:800;
  font-size:.9rem;margin-bottom:.3rem}

/* ===== Lista de compras ===== */
.add-inline{display:flex;gap:.5rem;margin:.6rem 0 1rem}
.add-inline input{flex:1;min-width:0;border:2px solid #e5e7eb;border-radius:12px;
  padding:.6rem .7rem;font:inherit}
.add-inline .btn{flex:none;font-size:1.3rem;padding:.4rem .9rem}
.lista-check{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.4rem}
.check-item{display:flex;flex-direction:column;gap:.35rem;background:#fff;border-radius:12px;
  padding:.5rem .6rem;box-shadow:0 2px 8px rgba(45,37,64,.05)}
.ci-linha{display:flex;align-items:center;gap:.6rem}
.cbox{flex:none;width:30px;height:30px;border-radius:8px;border:2px solid #cbd5e1;
  background:#fff;cursor:pointer;display:grid;place-items:center}
.cbox-v{opacity:0;color:#fff;font-weight:900}
.check-item.ok .cbox{background:#16a34a;border-color:#16a34a}
.check-item.ok .cbox-v{opacity:1}
.check-tx{flex:1;word-break:break-word}
.check-item.ok .check-tx{text-decoration:line-through;color:var(--suave)}
.check-del{flex:none}
.lixo{background:none;border:none;cursor:pointer;font-size:1.05rem;opacity:.55}
.lixo:active{transform:scale(.9)}
/* ===== Listas de Compras (abas + cards de lista) ===== */
/* ===== Central de Ideias & Bugs ===== */
.ideia-stats{display:flex;gap:.6rem;justify-content:center;margin:.4rem 0 .7rem;
  font-size:.82rem;color:var(--suave);font-weight:700}
.tipo-toggle{display:flex;gap:.5rem}
.tipo-toggle label{flex:1;display:flex;align-items:center;justify-content:center;gap:.3rem;
  background:#f6f4fb;border-radius:12px;padding:.5rem;cursor:pointer;font-weight:700;font-size:.9rem}
.tipo-toggle input{accent-color:#2563eb}
.ideia-card{border-left:4px solid var(--cor)}
.ideia-tags{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap;margin-top:.35rem}
.st-tag{font-size:.74rem;font-weight:700;border-radius:999px;padding:.12rem .55rem}
.st-tag.st-novo{background:#e0ecff;color:#1d4ed8}
.st-tag.st-fazendo{background:#ffedd5;color:#c2410c}
.st-tag.st-feito{background:#dcfce7;color:#15803d}
.st-tag.st-recusado{background:#f1f1f4;color:#6b7280}
.st-sub{font-size:.72rem;color:var(--suave)}
.ideia-card.st-feito,.ideia-card.st-recusado{opacity:.72}
.st-form select{border:1px solid #e5e3ee;border-radius:10px;padding:.3rem .4rem;
  font-size:.8rem;background:#fff;font-weight:700}
.apoio-btn{display:inline-flex;align-items:center;gap:.25rem}
.apoio-btn.apoiei{background:#e0ecff;color:#1d4ed8;border-color:#bcd2ff}
/* ===== Relatório de Humor ===== */
.btn-relatorio{display:block;text-align:center;background:#efeafd;color:#6d28d9;
  margin:.2rem 0 .6rem;font-weight:800}
.rel-destaques{background:linear-gradient(135deg,#f3eefe,#fbeff6);border-radius:16px;
  padding:.7rem .9rem;margin-bottom:.9rem}
.rel-destaques p{margin:.25rem 0;font-size:.92rem;line-height:1.4}
.rel-cards{display:flex;gap:.5rem;margin-bottom:.4rem}
.rel-card{flex:1;background:#fff;border-radius:16px;padding:.7rem .4rem;text-align:center;
  box-shadow:0 2px 8px rgba(124,58,237,.1)}
.rel-num{display:block;font-size:1.8rem;line-height:1.1}
.rel-lbl{font-size:.72rem;color:var(--suave);line-height:1.25}
.rel-sec{font-size:1rem;margin:1.2rem 0 .5rem}
.rel-distrib{display:flex;flex-direction:column;gap:.4rem}
.rel-barra-linha{display:flex;align-items:center;gap:.5rem}
.rel-barra-em{font-size:1.2rem;width:1.6rem;text-align:center}
.rel-barra-trilho{flex:1;height:14px;background:#f1eff7;border-radius:8px;overflow:hidden}
.rel-barra-fill{height:100%;border-radius:8px;min-width:2px;transition:width .4s}
.rel-barra-fill.m1{background:#22c55e}.rel-barra-fill.m2{background:#84cc16}
.rel-barra-fill.m3{background:#facc15}.rel-barra-fill.m4{background:#fb923c}
.rel-barra-fill.m5{background:#ef4444}
.rel-barra-n{font-size:.8rem;color:var(--suave);width:1.6rem;text-align:right;font-weight:700}
.rel-semana{display:flex;justify-content:space-between;gap:.2rem;text-align:center}
.rel-sem-col{flex:1;background:#f6f4fb;border-radius:12px;padding:.45rem .1rem}
.rel-sem-em{display:block;font-size:1.3rem}
.rel-sem-nm{font-size:.66rem;color:var(--suave);font-weight:700}
.rel-nota{font-size:.85rem;color:var(--suave);margin:.55rem 0}
.rel-nuvens{display:flex;flex-direction:column;gap:.6rem}
.rel-nuvem{border-radius:16px;padding:.7rem .8rem}
.rel-nuvem.bons{background:#e9fbf0}.rel-nuvem.dificeis{background:#eef2ff}
.rel-nuvem strong{display:block;margin-bottom:.4rem;font-size:.9rem}
.rel-tags{display:flex;flex-wrap:wrap;gap:.35rem;align-items:center}
.rel-tag{background:#fff;border-radius:999px;padding:.1rem .55rem;font-weight:700;line-height:1.5}
.rel-aviso{font-size:.76rem;color:var(--suave);text-align:center;margin-top:.7rem;font-style:italic}
.rel-vazio{text-align:center;padding:1.5rem 1rem;background:#faf8fe;border-radius:18px}
.rel-vazio.compacto{padding:1rem;text-align:left}
.rel-vazio-ic{font-size:2.4rem;display:block;margin-bottom:.4rem}
.rel-vazio strong{display:block;margin-bottom:.3rem}
.rel-vazio p{font-size:.88rem;color:var(--suave);margin-bottom:.7rem}
/* ===== Atalho do avatar (home) → árvore ===== */
.saud-av{position:relative;display:inline-flex;text-decoration:none;flex:none}
.saud-av-tree{position:absolute;bottom:-3px;right:-5px;font-size:.8rem;line-height:1;
  background:#fff;border-radius:50%;padding:1px 2px;box-shadow:0 1px 4px rgba(0,0,0,.25)}
/* ===== Árvore Genealógica ===== */
@keyframes arvPisca{0%,100%{box-shadow:0 0 0 2px #fde68a,0 2px 10px rgba(234,179,8,.3)}
  50%{box-shadow:0 0 0 5px #facc15,0 4px 18px rgba(234,179,8,.6)}}
.arv-card.pisca{animation:arvPisca .8s ease-in-out 3}
.arv-acoes{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin:.4rem 0 .6rem}
.arv-cont{font-size:.78rem;color:var(--suave)}
.arv-wrap{overflow:auto;-webkit-overflow-scrolling:touch;border-radius:16px;
  background:linear-gradient(#f6faf4,#eef6ff);padding:1rem .5rem;border:1px solid #e2e8f0}
.arv-tree{position:relative;display:flex;flex-direction:column;align-items:center;
  width:max-content;min-width:100%;gap:2.4rem}
.arv-links{position:absolute;top:0;left:0;pointer-events:none;z-index:0}
.arv-link-p{fill:none;stroke:#86b8e8;stroke-width:2.2}
.arv-link-m{fill:none;stroke:#f0a8c8;stroke-width:3}
.arv-gen{position:relative;z-index:1;display:flex;justify-content:center;
  align-items:flex-start;gap:1.4rem;width:100%}
.arv-unit{display:flex;gap:.35rem}
.arv-card{position:relative;width:84px;background:#fff;border:none;border-radius:14px;
  padding:.5rem .25rem;display:flex;flex-direction:column;align-items:center;gap:.15rem;
  cursor:pointer;box-shadow:0 2px 8px rgba(30,41,59,.12);border-top:4px solid #cbd5e1}
.arv-card.sx-m{border-top-color:#5ba3e0}
.arv-card.sx-f{border-top-color:#ec6fa6}
.arv-card.eu{box-shadow:0 0 0 2px #fde68a,0 2px 10px rgba(234,179,8,.3)}
.arv-card.falecido{opacity:.72;background:#f8fafc}
.arv-foto{font-size:1.7rem;width:46px;height:46px;border-radius:50%;display:flex;
  align-items:center;justify-content:center;background:#eef2f7}
.arv-card.sx-m .arv-foto{background:#e0f0ff}
.arv-card.sx-f .arv-foto{background:#fde6f0}
.arv-nome{font-size:.66rem;font-weight:700;line-height:1.15;text-align:center;color:#1e293b}
.arv-datas{font-size:.58rem;color:var(--suave);line-height:1.1;text-align:center}
.arv-dica{font-size:.76rem;color:var(--suave);text-align:center;margin-top:.5rem}
.arv-form input,.arv-form select,.arv-form textarea{width:100%;margin:.25rem 0;padding:.5rem;
  border:1px solid #d8d8e0;border-radius:10px;font-size:.9rem;background:#fff}
.arv-form textarea{min-height:48px;resize:vertical}
.arv-linha{display:flex;gap:.4rem}
.arv-linha select{flex:1.2}.arv-linha input{flex:1;min-width:0}
.arv-check{display:flex;align-items:center;gap:.4rem;font-size:.9rem;margin:.3rem 0}
/* ===== Controle Menstrual ===== */
.cic-painel{display:flex;gap:.5rem;margin-bottom:.5rem}
.cic-prev-card{flex:1;background:#fff;border-radius:16px;padding:.6rem .3rem;text-align:center;
  box-shadow:0 2px 8px rgba(219,39,119,.12)}
.cic-prev-card.destaque{background:linear-gradient(135deg,#fce7f3,#fbcfe8)}
.cic-big{display:block;font-size:1.9rem;font-weight:800;line-height:1;color:#be185d}
.cic-big.sm{font-size:1.5rem}
.cic-lbl{font-size:.7rem;color:var(--suave);line-height:1.25}
.cic-info{font-size:.82rem;color:var(--suave);background:#fdf2f8;border-radius:12px;
  padding:.5rem .7rem;margin-bottom:.7rem;line-height:1.5}
.cic-vazio{text-align:center;background:#fdf2f8;border-radius:16px;padding:1rem;margin-bottom:.7rem}
.cic-vazio strong{display:block;margin-bottom:.3rem;color:#be185d}
.cic-vazio p{font-size:.85rem;color:var(--suave)}
.cic-dia .cic-mark{display:block;font-size:.85rem;line-height:1.2}
.cic-dia.marcado{background:#fce7f3;border-color:#f9a8d4}
.cic-dia.f-leve{background:#fdf2f8}.cic-dia.f-intenso{background:#fbcfe8}
.cic-dia.previsto{outline:2px dashed #f0abfc;outline-offset:-3px}
.cic-dia.fertil{background:#ede9fe}
.cic-fluxos{display:flex;gap:.5rem;justify-content:center;margin:.6rem 0}
.cic-fluxo-op{flex:1;background:#fff;border:2px solid #f3e8ff;border-radius:14px;
  padding:.5rem .2rem;display:flex;flex-direction:column;align-items:center;gap:.15rem;cursor:pointer}
.cic-fluxo-op.sel{border-color:#db2777;background:#fce7f3}
.cic-fluxo-op small{font-size:.72rem;color:var(--suave)}
.cic-colica{display:flex;align-items:center;gap:.4rem;justify-content:center;
  font-size:.9rem;margin:.3rem 0 .6rem}
/* ===== Calendário de Humor ===== */
.cal-topo{display:flex;align-items:center;justify-content:space-between;gap:.6rem;margin:.6rem 0}
.cal-titulo{font-size:1.1rem}
.cal-nav{flex:none;width:38px;height:38px;border-radius:12px;background:#efeafd;
  color:#6d28d9;font-size:1.3rem;font-weight:800;display:grid;place-items:center;text-decoration:none}
.cal-nav.off{opacity:.25;pointer-events:none}
.cal-resumo{font-size:.82rem;color:var(--suave);text-align:center;margin-bottom:.5rem}
.cal-grade{width:100%;border-collapse:collapse;table-layout:fixed}
.cal-grade th{font-size:.7rem;color:var(--suave);font-weight:700;padding:.2rem 0}
.cal-grade td{padding:2px;text-align:center}
.cal-dia{width:100%;aspect-ratio:1;border:none;background:#f6f4fb;border-radius:12px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;
  cursor:pointer;padding:0}
.cal-dia .cal-num{font-size:.66rem;color:var(--suave);font-weight:700}
.cal-dia .cal-emoji{font-size:1.15rem;line-height:1}
.cal-dia.tem{background:#fff;box-shadow:0 2px 7px rgba(124,58,237,.14)}
.cal-dia.hoje{outline:2px solid #7c3aed}
.cal-dia.futuro{opacity:.35}
.cal-dia:active{transform:scale(.92)}
.cal-vazio{background:transparent}
.cal-legenda{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;margin-top:.8rem;
  font-size:.74rem;color:var(--suave)}
/* Seletor de humor (bottom sheet) */
.humor-sheet{position:fixed;inset:0;z-index:60;display:flex;align-items:flex-end}
.humor-sheet[hidden]{display:none}
.humor-sheet-bg{position:absolute;inset:0;background:rgba(20,12,40,.45)}
.humor-sheet-box{position:relative;width:100%;background:#fff;border-radius:20px 20px 0 0;
  padding:1rem .9rem calc(1rem + env(safe-area-inset-bottom));box-shadow:0 -6px 24px rgba(0,0,0,.2);
  animation:sheetUp .2s ease}
@keyframes sheetUp{from{transform:translateY(100%)}to{transform:translateY(0)}}
.humor-sheet-box>strong{display:block;text-align:center;margin-bottom:.7rem}
.humor-opcoes{display:flex;justify-content:space-between;gap:.3rem}
.humor-op{flex:1;border:none;background:#f6f4fb;border-radius:14px;padding:.5rem .2rem;
  display:flex;flex-direction:column;align-items:center;gap:2px;cursor:pointer}
.humor-op span{font-size:1.7rem;line-height:1}
.humor-op small{font-size:.62rem;color:var(--suave)}
.humor-op:active{transform:scale(.9)}
.humor-sheet-acoes{display:flex;justify-content:center;gap:.6rem;margin-top:.8rem}
.nova-lista .form-nova-lista{display:flex;flex-direction:column;gap:.55rem}
.lbl-data{display:flex;flex-direction:column;gap:.25rem;font-size:.82rem;
  color:var(--suave);font-weight:700}
.lbl-data input{font:inherit}
.aba-bar{display:flex;gap:.4rem;margin:.8rem 0 .6rem}
.aba-3 .aba-btn{font-size:.8rem;padding:.5rem .25rem;gap:.25rem}
.aba-3 .aba-n{padding:0 .35rem}
.aba-btn{flex:1;border:none;background:#efeafd;color:#6d28d9;font-weight:800;
  padding:.55rem;border-radius:12px;cursor:pointer;font-size:.9rem;
  display:flex;align-items:center;justify-content:center;gap:.35rem}
.aba-btn.on{background:#7c3aed;color:#fff;box-shadow:0 3px 10px rgba(124,58,237,.3)}
.aba-n{background:rgba(0,0,0,.12);border-radius:999px;padding:0 .45rem;font-size:.78rem}
.aba-btn.on .aba-n{background:rgba(255,255,255,.25)}
.aba-painel{display:flex;flex-direction:column;gap:.8rem}
.aba-painel[hidden]{display:none}   /* [hidden] vence o display:flex */
.lista-card{background:#fff;border-radius:16px;padding:.8rem;
  box-shadow:0 4px 14px rgba(45,37,64,.07);border-left:5px solid #7c3aed}
.lista-card.feita{border-left-color:#16a34a;opacity:.92}
.lista-head{display:flex;align-items:center;gap:.55rem;cursor:pointer;
  list-style:none;flex-wrap:wrap}
.lista-head::-webkit-details-marker{display:none}   /* tira a setinha padrão */
.lista-chevron{flex:none;color:#7c3aed;font-size:.85rem;transition:transform .18s}
.lista-card[open] .lista-chevron{transform:rotate(90deg)}
.lista-corpo{margin-top:.7rem}
.lista-titulo{flex:1;display:flex;flex-direction:column;gap:.15rem;min-width:0}
.lista-titulo strong{font-size:1.05rem}
.lista-data{font-size:.78rem;color:#7c3aed;font-weight:700}
.lista-meta{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}
.lista-prog{font-size:.8rem;font-weight:800;color:var(--suave);
  background:#f3f0fb;border-radius:999px;padding:.1rem .5rem}
.add-item{margin-top:.5rem}
.lista-acoes{display:flex;gap:.4rem;margin-top:.6rem;flex-wrap:wrap;align-items:center}
/* Aprovação dos pais (Compras/Manutenção) */
.aprovar-lote{margin:.6rem 0}
.apv-btn{flex:none}
.btn.apv-go{background:#16a34a;color:#fff}
.apv-tag{display:inline-block;font-size:.68rem;font-weight:800;padding:.05rem .4rem;
  border-radius:999px;margin-left:.35rem;vertical-align:middle;white-space:nowrap}
.apv-tag.ok{background:#dcfce7;color:#15803d}
.apv-tag.pend{background:#fef3c7;color:#b45309}
.check-item.pendente{background:#fffbeb}
.check-item.pendente .cbox{border-color:#f59e0b;border-style:dashed}
/* Lista profissional: orientações (marca/embalagem/preço) + edição por papel */
.ci-badges{display:flex;flex-wrap:wrap;gap:.3rem;padding-left:2.4rem}
.ci-badge{font-size:.72rem;font-weight:700;background:#eef2ff;color:#4338ca;
  border-radius:999px;padding:.1rem .5rem}
.ci-badge.preco{background:#dcfce7;color:#15803d}
.ci-edit{padding-left:2.4rem}
.ci-edit>summary{font-size:.74rem;color:#6b7280;font-weight:700;cursor:pointer;
  list-style:none;width:max-content}
.ci-edit>summary::-webkit-details-marker{display:none}
.ci-edit[open]>summary{margin-bottom:.35rem}
.ci-form{display:flex;flex-wrap:wrap;gap:.35rem;margin-bottom:.35rem}
.ci-form input{flex:1;min-width:120px;border:1.5px solid #e5e7eb;border-radius:9px;
  padding:.4rem .55rem;font-size:.85rem}
.check-item.arq{opacity:.6}
.arquivados{margin-top:.5rem}
.arquivados>summary{font-size:.78rem;color:#6b7280;font-weight:700;cursor:pointer}
.comprados-box{margin-top:.5rem}
.comprados-box[hidden]{display:none}
.comprados-box>summary{font-size:.82rem;color:#15803d;font-weight:800;cursor:pointer}
.comprados-box .ul-feitos{margin-top:.4rem}
.desejo-card.pendente{border-left-color:#f59e0b;background:#fffbeb}

/* ===== Lista de desejos ===== */
.desejo-grid{display:flex;flex-direction:column;gap:.7rem;margin-top:.7rem}
.desejo-card{background:#fff;border-radius:16px;overflow:hidden;border-left:5px solid var(--cor,#db2777);
  box-shadow:0 4px 14px rgba(45,37,64,.07)}
.desejo-card.ok{opacity:.7}
.desejo-img{display:block;width:100%;max-height:240px;object-fit:cover}
.desejo-corpo{padding:.6rem .8rem;display:flex;flex-direction:column;gap:.2rem}
.desejo-quem{font-size:.76rem;color:var(--suave);font-weight:700}
.desejo-tx{word-break:break-word}
.desejo-card.ok .desejo-tx{text-decoration:line-through}
.desejo-acoes{display:flex;gap:.5rem;padding:0 .8rem .7rem;align-items:center}

/* ===== Cartaz dos Sonhos ===== */
.sonho-tabs{display:flex;gap:.5rem;overflow-x:auto;padding-bottom:.3rem}
.sonho-tab{flex:none;display:flex;flex-direction:column;align-items:center;gap:.1rem;
  text-decoration:none;color:var(--suave);font-size:.74rem;font-weight:700;opacity:.6}
.sonho-tab.on{opacity:1;color:var(--roxo)}
.sonho-tab .av svg{height:40px;border-radius:50%}
.sonho-board{column-count:2;column-gap:.6rem;margin-top:.6rem}
.sonho-card{break-inside:avoid;margin-bottom:.6rem;background:#fff;border-radius:14px;
  overflow:hidden;box-shadow:0 4px 14px rgba(124,58,237,.1);position:relative}
.sonho-img{display:block;width:100%}
.sonho-tx{padding:.55rem .65rem;font-size:.9rem;word-break:break-word}
.sonho-del{position:absolute;top:.3rem;right:.3rem}
.sonho-del .lixo{background:rgba(255,255,255,.85);border-radius:50%;width:28px;height:28px;opacity:.9}

/* Colaboradoras no login */
.colab-tit{text-align:center;color:var(--suave);font-size:1rem;margin:1.4rem 0 .6rem}
.colab-grid{display:flex;gap:.7rem;justify-content:center;flex-wrap:wrap}
.colab-card{display:flex;flex-direction:column;align-items:center;gap:.3rem;
  text-decoration:none;color:var(--txt);background:#fff;border-radius:16px;
  padding:.8rem 1.2rem;box-shadow:0 4px 14px rgba(45,37,64,.08);
  border:2px solid var(--cor,#0ea5e9)}
.colab-card:active{transform:scale(.96)}
.colab-emoji{font-size:2.4rem;line-height:1}

/* Peso & Cardápio */
.prog-card{background:linear-gradient(100deg,#ecfeff,#f0fdf4);border:2px solid #a7f3d0;
  border-radius:16px;padding:.8rem 1rem;margin-bottom:1rem;box-shadow:0 4px 14px rgba(16,185,129,.1)}
.prog-card.prog-bom{background:linear-gradient(100deg,#dcfce7,#d1fae5)}
.sug-linha{font-size:.84rem;margin:.3rem 0;line-height:1.3}
.aderir-btn{width:100%;font-size:1rem}
.aderir-btn.on{background:#16a34a}
.rec-sel{width:100%;padding:.5rem;border-radius:12px;border:1px solid #ddd6fe;font-weight:600;margin-bottom:.2rem}
.rec-tag{color:#7c3aed;font-weight:800}
.pl-pin{display:flex;gap:.4rem;margin-top:.45rem}
.pl-pin input{flex:1;min-width:0;border:2px solid #e5e7eb;border-radius:10px;padding:.35rem .5rem;font:inherit}
/* Participantes do evento */
.part-pick{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center;margin:.2rem 0}
.part-tit{font-size:.82rem;font-weight:800;color:var(--suave);width:100%}
.part-chk{display:inline-flex;align-items:center;gap:.25rem;background:#faf9ff;
  border:1px solid #ede9fe;border-radius:999px;padding:.2rem .55rem;font-size:.84rem;font-weight:600}
.fest-parts{display:flex;gap:.2rem;margin-top:.3rem}
.fest-part svg{height:26px;width:auto;border-radius:50%;border:2px solid #fff;background:#fff}
/* Alternador Minha agenda / Família */
.ag-toggle{display:flex;gap:.4rem;background:#efeaff;border-radius:999px;padding:.25rem;margin:.4rem 0}
.ag-toggle a{flex:1;text-align:center;text-decoration:none;color:var(--suave);
  font-weight:800;font-size:.85rem;padding:.45rem 0;border-radius:999px}
.ag-toggle a.on{background:#fff;color:var(--roxo);box-shadow:0 2px 8px rgba(124,58,237,.15)}
.fam-av{vertical-align:middle}
.fam-av svg{height:34px;border-radius:50%;vertical-align:middle}
/* Mural da Família (mini rede social) */
.rank-humor{font-size:1rem}
.mural{margin-top:1.4rem}
.mural textarea{width:100%;border:2px solid #e5e7eb;border-radius:12px;padding:.5rem;
  font:inherit;resize:vertical;box-sizing:border-box}
/* Composer (escrever no mural) */
.composer{background:linear-gradient(135deg,#faf5ff,#f0f9ff);border:2px solid #ede9fe;
  border-radius:18px;padding:.8rem;box-shadow:0 4px 14px rgba(124,58,237,.08)}
.composer-top{display:flex;align-items:center;gap:.5rem;margin-bottom:.6rem}
.composer-top .post-av svg{height:40px;border-radius:50%}
.tipo-chips{display:flex;gap:.4rem;overflow-x:auto;padding-bottom:.4rem;margin-bottom:.5rem;
  -webkit-overflow-scrolling:touch;max-width:100%}
.chip{flex:none}
.chip input{display:none}
.media-chip{display:inline-flex;align-items:center;gap:.2rem;padding:.3rem .7rem;
  border-radius:999px;background:#fff;border:2px solid #c4b5fd;color:var(--roxo);
  font-size:.84rem;font-weight:800;cursor:pointer;white-space:nowrap}
.media-chip:active{transform:scale(.94)}
.chip span{display:inline-block;padding:.3rem .7rem;border-radius:999px;background:#fff;
  border:2px solid #e9e5f5;font-size:.84rem;font-weight:700;color:#6b5b8a;cursor:pointer;
  white-space:nowrap;transition:transform .1s}
.chip input:checked+span{background:var(--roxo);border-color:var(--roxo);color:#fff;transform:scale(1.04)}
.chip span:active{transform:scale(.94)}
.foto-preview{max-width:100%;max-height:240px;border-radius:12px;margin:.5rem 0;
  border:2px solid #ede9fe}
.foto-preview[hidden]{display:none}
.composer-acoes{display:flex;align-items:center;gap:.6rem;margin-top:.5rem}
.btn-foto{flex:none;background:#fff;border:2px solid #c4b5fd;color:var(--roxo);font-weight:800;
  border-radius:12px;padding:.5rem .8rem;cursor:pointer;font-size:.9rem}
.btn-foto:active{transform:scale(.95)}
.composer-acoes .btn{flex:1;margin:0}
.post-img{display:block;max-width:100%;border-radius:12px;margin:.5rem 0}
.feed{display:flex;flex-direction:column;gap:.7rem;margin-top:.7rem}
.post{background:#fff;border-radius:16px;padding:.7rem .8rem;
  box-shadow:0 4px 14px rgba(45,37,64,.07);border-left:5px solid var(--cor,#7c3aed)}
.post-top{display:flex;align-items:center;gap:.5rem}
.post-av svg{height:40px;width:auto;border-radius:50%}
.post-meta{flex:1;min-width:0;line-height:1.15}
.post-tipo{display:block;font-size:.74rem;color:var(--suave)}
.post-texto{margin:.5rem 0;white-space:pre-wrap;word-break:break-word;overflow-wrap:anywhere}
.post-reacoes{display:flex;flex-wrap:wrap;gap:.25rem}
.reac{border:1px solid #eee;background:#faf9ff;border-radius:999px;padding:.1rem .5rem;
  font-size:.9rem;cursor:pointer}
.reac.on{background:#ede9fe;border-color:#c4b5fd}
.reac.pop{animation:pop .3s ease}
.reac-n{font-weight:800;font-size:.74rem;color:var(--roxo)}
.post-coms{margin-top:.5rem;border-top:1px solid #f1f1f4;padding-top:.4rem;
  display:flex;flex-direction:column;gap:.2rem}
.post-com{font-size:.85rem;word-break:break-word;overflow-wrap:anywhere}
.post-comform{display:flex;gap:.4rem;margin-top:.5rem}
.post-comform input{flex:1;min-width:0;border:2px solid #e5e7eb;border-radius:10px;padding:.35rem .5rem;font:inherit}
/* Enquetes no mural */
#enquete-box{margin:.2rem 0 .5rem;display:flex;flex-direction:column;gap:.4rem}
#enquete-box[hidden]{display:none}
.enq-opt{border:2px solid #e5e7eb;border-radius:10px;padding:.45rem .6rem;font:inherit}
.enq-pergunta{font-weight:800}
.enquete{display:flex;flex-direction:column;gap:.4rem;margin:.2rem 0 .4rem}
.enq-bar{position:relative;overflow:hidden;display:flex;align-items:center;gap:.5rem;
  border:2px solid #ede9fe;background:#faf9ff;border-radius:12px;padding:.55rem .7rem;
  cursor:pointer;font:inherit;text-align:left;width:100%}
.enq-bar .enq-fill{position:absolute;left:0;top:0;bottom:0;width:0;background:#ede9fe;
  transition:width .4s ease;z-index:0}
.enq-bar.voted{border-color:var(--roxo)}
.enq-bar.voted .enq-fill{background:#ddd6fe}
.enq-lbl{position:relative;z-index:1;flex:1;font-weight:700;word-break:break-word}
.enq-stat{position:relative;z-index:1;font-size:.8rem;color:var(--roxo);font-weight:800;white-space:nowrap}
.enq-total{font-size:.78rem;color:var(--suave);font-weight:700}
.post-tipo{flex-wrap:wrap}
.li-badge.comprar{background:#fef3c7;color:#b45309}
.li-badge.usar{background:#ede9fe;color:var(--roxo)}
/* Card inteiro clicável (compra/usa tocando em qualquer lugar) */
.loja-form{display:contents}
.loja-item.card-btn{cursor:pointer;font:inherit;color:inherit;width:100%;
  -webkit-appearance:none;appearance:none}
.loja-item.card-btn:active{transform:scale(.96)}
.loja-item.compravel{border-color:#fcd34d}
.loja-item.bloqueado{opacity:.55}
/* Bloqueado por NÍVEL: dourado/aspiracional (≠ cinza de "faltam estrelinhas"). */
.loja-item.nivel-lock{opacity:.7}
.li-badge.nivel{background:#fef9c3;color:#a16207;border:1px solid #fde68a}
/* Lembrete festivo de aniversário */
.habitos-topo{display:flex;flex-direction:column;gap:.5rem;margin-bottom:.8rem}
.hab-link{display:flex;align-items:center;gap:.7rem;border-radius:16px;padding:.55rem .75rem;
  text-decoration:none;color:#3b2a5c;border-left:6px solid var(--cor);
  background:linear-gradient(100deg,#fff7ed,#fef3c7,#ffe4e6);
  box-shadow:0 4px 14px rgba(245,158,11,.18);transition:transform .12s ease}
.hab-link:active{transform:scale(.98)}
.hab-link-emoji{font-size:1.7rem;flex:none}
.hab-link-txt{flex:1;min-width:0}
.hab-link-txt strong{display:block;font-size:.92rem;color:#9a3412;white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis}
.hab-link-txt small{font-size:.78rem;color:#7c5a2e}
.hab-link-barra{height:8px;background:#fde68a;border-radius:999px;overflow:hidden;margin-top:.3rem}
.hab-link-barra span{display:block;height:100%;background:linear-gradient(90deg,#f59e0b,#ef4444)}
.hab-link.concluido{background:linear-gradient(100deg,#dcfce7,#bbf7d0)}
.hab-link.concluido .hab-link-barra span{background:linear-gradient(90deg,#22c55e,#16a34a)}
.hab-link.concluido .hab-link-txt strong{color:#15803d}
.hab-link-ir{font-size:1.5rem;color:#c2870b;flex:none;font-weight:700}
.fests{display:flex;flex-direction:column;gap:.55rem;margin-bottom:.8rem}
.fest{display:flex;align-items:center;gap:.7rem;border-radius:16px;padding:.6rem .8rem;
  background:linear-gradient(100deg,#fde68a,#fbcfe8,#ddd6fe);
  box-shadow:0 4px 14px rgba(124,58,237,.18)}
.fest-emoji{font-size:1.9rem;flex:none}
.fest-txt{flex:1;min-width:0;line-height:1.25}
.fest-txt strong{display:block;font-size:.98rem;color:#3b2a5c}
.fest-txt div{font-size:.8rem;color:#5b4780}
.fest-av{flex:none}
.fest-av svg{height:46px;width:auto;display:block}
.fest-evento{background:linear-gradient(100deg,#bae6fd,#a7f3d0,#ddd6fe)}
.fest-aviso{background:linear-gradient(100deg,#fecaca,#fca5a5);border:2px solid #ef4444;
  color:#7f1d1d;animation:avisoPulse 1.6s ease infinite}
.fest-aviso strong{color:#b91c1c}
.aviso-corpo.clamp{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden}
.fest-aviso.aberto .aviso-corpo.clamp{-webkit-line-clamp:unset;overflow:visible}
.aviso-toque{font-weight:800;text-decoration:underline;white-space:nowrap}
.fest-aviso .tq-fechar{display:none}
.fest-aviso.aberto .tq-abrir{display:none}
.fest-aviso.aberto .tq-fechar{display:inline}
@keyframes avisoPulse{0%,100%{box-shadow:0 0 0 0 rgba(239,68,68,.35)}50%{box-shadow:0 0 0 6px rgba(239,68,68,0)}}
.btn-aviso{background:#dc2626}
.btn-aviso:active{background:#b91c1c}
/* Links pro perfil no placar */
.rank-avlink{cursor:pointer}
.rank-namelink{color:inherit;text-decoration:none}
.rank-namelink:active{opacity:.6}
.ver-perfil{font-size:.7rem;opacity:.4}
/* Perfil do membro */
.perfil-topo{text-align:center;background:#fff;border-radius:20px;padding:1rem;
  margin-bottom:1rem;box-shadow:0 4px 16px rgba(45,37,64,.08);border-top:5px solid var(--cor,#7c3aed)}
.perfil-av svg{height:120px;width:auto;border-radius:50%;border:3px solid var(--cor,#7c3aed);background:#faf9ff}
.perfil-nome{font-size:1.3rem;margin:.3rem 0 .1rem}
.perfil-liga{font-weight:800;color:var(--cor,#7c3aed);font-size:.9rem}
.perfil-bio{font-style:italic;color:var(--txt);margin:.5rem 0 .2rem}
.perfil-bio-edit{margin-top:.4rem}
.perfil-bio-edit summary{cursor:pointer;font-size:.82rem;color:var(--suave)}
.perfil-bio-edit input{width:100%;border:2px solid #e5e7eb;border-radius:10px;padding:.4rem .6rem;font:inherit;margin:.4rem 0}
.perfil-stats{display:grid;grid-template-columns:1fr 1fr;gap:.6rem;margin-bottom:.4rem}
.pstat{background:#fff;border-radius:14px;padding:.7rem;text-align:center;box-shadow:0 3px 12px rgba(45,37,64,.06)}
.pst-n{display:block;font-size:1.3rem;font-weight:800;color:var(--roxo)}
.pstat small{color:var(--suave);font-size:.74rem}
.perfil-medalhas{display:flex;flex-wrap:wrap;gap:.4rem}
.medalha-card{background:#fef9c3;border-radius:999px;padding:.25rem .7rem;font-size:.84rem;font-weight:700;color:#92400e}
/* Cartaz dos Sonhos no perfil — de fora a fora (1 coluna larga) */
.cartaz-perfil{display:flex;flex-direction:column;gap:.7rem}
.cartaz-item{background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 4px 14px rgba(124,58,237,.1);border-left:5px solid var(--roxo)}
.cartaz-img{display:block;width:100%;max-height:340px;object-fit:cover}
.cartaz-tx{padding:.7rem .9rem;font-weight:600}
/* Desejos no perfil */
.perfil-desejos{display:flex;flex-direction:column;gap:.4rem}
.pdesejo{display:flex;align-items:center;gap:.6rem;background:#fff;border-radius:12px;padding:.4rem .6rem;box-shadow:0 2px 8px rgba(45,37,64,.05)}
.pdesejo img{width:46px;height:46px;object-fit:cover;border-radius:8px;flex:none}
.pdesejo.ok{opacity:.6}
.pdesejo.ok span{text-decoration:line-through}
/* Diário pessoal */
.diario-feed{display:flex;flex-direction:column;gap:.6rem}
.diario-item{position:relative;background:linear-gradient(180deg,#fffef5,#fff);
  border-radius:14px;padding:.7rem .8rem;box-shadow:0 3px 12px rgba(45,37,64,.06);
  border-left:4px solid #f59e0b}
.diario-data{font-size:.74rem;color:var(--suave);font-weight:700;margin-bottom:.2rem}
.diario-tx{white-space:pre-wrap;word-break:break-word}
.diario-del{position:absolute;top:.4rem;right:.4rem}
/* Slots do cartaz (criação com 6 campos) */
.prog-barra{height:8px;background:#fff;border-radius:999px;overflow:hidden}
.prog-barra span{display:block;height:100%;background:#16a34a;transition:width .4s}
.sonho-slot{display:flex;gap:.5rem;align-items:flex-start;margin-bottom:.7rem;
  background:#faf9ff;border-radius:12px;padding:.5rem}
.slot-num{flex:none;width:26px;height:26px;border-radius:50%;background:var(--roxo);color:#fff;
  font-weight:800;display:grid;place-items:center;font-size:.85rem;margin-top:.2rem}
.slot-corpo{flex:1;min-width:0;display:flex;flex-direction:column;gap:.4rem}
.slot-corpo textarea{width:100%;border:2px solid #e5e7eb;border-radius:10px;padding:.45rem;font:inherit;resize:vertical;box-sizing:border-box}
.slot-foto-btn.on{background:#16a34a;color:#fff;border-color:#16a34a}
.fest-hoje{background:linear-gradient(100deg,#fca5a5,#fcd34d,#f9a8d4,#c4b5fd);
  animation:festPulse 1.2s ease infinite}
@keyframes festPulse{0%,100%{box-shadow:0 0 0 0 rgba(244,114,182,.55)}
  50%{box-shadow:0 0 0 12px rgba(244,114,182,0)}}
.btn.comprar{background:#f59e0b}

/* ---------- Compras: volta das VÁRIAS listas (10/07) ---------- */
.titulo-linha{display:flex;align-items:center;justify-content:space-between;gap:.6rem;
  flex-wrap:wrap;margin:.2rem 0 .3rem}
.titulo-linha .titulo-pg{margin:0}
.form-nova{display:flex;gap:.5rem;flex-wrap:wrap;background:#fff;border-radius:14px;
  padding:.7rem;box-shadow:0 4px 14px rgba(45,37,64,.07);margin:0 0 1rem}
/* Só abre ao clicar em "+ Nova lista" (o display acima venceria o hidden). */
.form-nova[hidden]{display:none}
.form-nova input{border:2px solid #e5e7eb;border-radius:12px;padding:.55rem .7rem;
  font-size:.95rem}
.form-nova input[name=nome]{flex:2;min-width:160px}
.form-nova input[type=date]{flex:1;min-width:130px}
.secao-t{font-size:.98rem;margin:1.2rem 0 .55rem;display:flex;align-items:center;gap:.45rem}
.secao-t .aba-n{background:#efeafd;color:#6d28d9}
.grade-listas{display:flex;flex-direction:column;gap:.8rem}
.lista-card.aguarda{border-left-color:#f59e0b}
.lista-link{display:block;text-decoration:none;color:inherit}
.lista-link .lista-meta{margin-top:.35rem}
.lista-prog.est{background:#dcfce7;color:#15803d}
.acao-dir{margin-left:auto}
.vazio-secao{margin:.2rem 0 .4rem}
.add-item-form{background:#fff;border-radius:14px;padding:.7rem;margin:.6rem 0 1rem;
  box-shadow:0 4px 14px rgba(45,37,64,.07);display:flex;flex-direction:column;gap:.45rem}
.add-item-form input{border:2px solid #e5e7eb;border-radius:12px;padding:.55rem .7rem;
  font-size:.95rem;min-width:0}
.linha-medidas{display:grid;grid-template-columns:1fr 1fr 1.2fr auto;gap:.45rem}
.linha-medidas .btn{font-size:1.2rem;padding:.4rem .8rem}
.med{font-size:.78rem;font-weight:800;color:#6d28d9;background:#efeafd;border-radius:999px;
  padding:.05rem .45rem;margin-left:.35rem;white-space:nowrap}
.ci-badge.quem{background:#f3f4f6;color:#6b7280}
.ci-badge.pago{background:#fef3c7;color:#92400e}
.ci-badge .est{font-style:italic;font-weight:600;opacity:.75;margin-left:.15rem}
.lista-prog.est i{font-style:italic;font-weight:600;opacity:.8}
.total-est{margin:.8rem 0 .2rem;font-size:.95rem}
.total-est span{font-size:.75rem;color:var(--suave)}
.total-est.pago b{color:#92400e}
.rodape-lista{margin-top:1.2rem;align-items:flex-start}

/* Item na ordem natural: qtd → unid → o quê → preço unitário → + */
.linha-item{display:flex;flex-wrap:wrap;gap:.45rem}
.linha-item input{border:2px solid #e5e7eb;border-radius:12px;
  padding:.55rem .7rem;font-size:.95rem;min-width:0}
.linha-item .li-qtd{flex:0 1 4.2rem}
.linha-item .li-und{flex:0 1 4.8rem}
.linha-item .li-nome{flex:2 1 9rem}
.linha-item .li-preco{flex:1 1 6.5rem}
.linha-item .btn{font-size:1.2rem;padding:.4rem .8rem}

/* Comprovante da compra (foto do ticket / anexos) */
.comprovante-box{background:#fff;border-radius:14px;padding:.7rem .8rem;
  margin:.9rem 0;box-shadow:0 4px 14px rgba(45,37,64,.07)}
.comprovante-box .secao-t{margin:.1rem 0 .5rem}
.anexo-botoes{display:flex;flex-wrap:wrap;gap:.5rem}
.anexo-botoes label{cursor:pointer}
.aviso-anexo{color:#b45309;font-weight:700}
.anexos-lista{list-style:none;padding:0;margin:.6rem 0 0;display:flex;
  flex-direction:column;gap:.35rem}
.anexos-lista li{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}
.anexos-lista a{font-weight:700;color:#6d28d9;text-decoration:none}

/* ---- Hora da compra (lista inteira + validação do valor pago) ---- */
.modo-compra-link{display:block;text-align:center;margin:.6rem 0 .9rem;
  background:#15803d;color:#fff}
.mc-mercado{display:flex;align-items:center;flex-wrap:wrap;gap:.45rem;
  margin:.2rem 0 .9rem;padding:.55rem .7rem;border-radius:12px;
  background:var(--card,#fff);box-shadow:0 1px 6px rgba(0,0,0,.06)}
.mc-mercado label{font-size:.82rem;font-weight:800;color:#374151}
.mc-mercado input{flex:1;min-width:9rem;border:1.5px solid #e5e7eb;
  border-radius:9px;padding:.4rem .55rem;font-size:.92rem}
.mc-mercado #mc-mercado-ok{font-size:.78rem;font-weight:800;color:#15803d}
.mc-item.travado{opacity:.55}
.mc-item .cbox[disabled]{cursor:not-allowed}
.mc-valida{display:flex;flex-wrap:wrap;align-items:end;gap:.4rem;
  padding:.4rem 0 .2rem 2.4rem}
/* O `display` acima venceria o atributo hidden — devolve a palavra a ele. */
.mc-valida[hidden],.mc-acoes[hidden],.mc-pago[hidden]{display:none}
.mc-valida label{font-size:.78rem;font-weight:700;color:#374151;
  display:flex;flex-direction:column;gap:.2rem}
.mc-valida .mc-preco{border:1.5px solid #15803d;border-radius:9px;
  padding:.4rem .55rem;font-size:1rem;width:8.5rem}
.mc-valida .mc-sem{opacity:.7}
.mc-acoes{display:flex;gap:.4rem;padding:.3rem 0 0 2.4rem}
.mc-rodape{position:sticky;bottom:0;display:flex;flex-wrap:wrap;gap:.6rem 1.2rem;
  justify-content:center;margin-top:1rem;padding:.6rem .8rem;border-radius:14px;
  background:var(--card,#fff);box-shadow:0 -2px 12px rgba(0,0,0,.08);
  font-size:.92rem}
.mc-rodape b{color:#15803d}
