:root,:root[data-theme=light]{
  --bg:#FFFFFF; --bg2:#F7F3EC; --card:#FFFFFF; --line:#E6DCCB;
  --gold:#6B3410; --orange:#B24A0E; --cream:#2B1810; --muted:#5E4A3A;
  --ok:#1E6B34; --err:#A3200F;
  --inset:#FFFFFF; --btntxt:#FFFFFF; --tabsbg:#FFFFFF; --hl1:#FFF4DE; --hl2:#FFFFFF; --hlb:#EBCB8A; --toastbg:#2B1810; --toasttx:#FFF6E6;
  --fs:19px; --r:18px;
}
:root[data-theme=dark]{
  --bg:#2B1810; --bg2:#3A2218; --card:#44291D; --line:#5C3B2A;
  --gold:#E3B866; --orange:#E8873A; --cream:#F4E6CF; --muted:#CDB89A;
  --ok:#8FD19E; --err:#FFB4A2;
  --inset:#2B1810; --btntxt:#2B1810; --tabsbg:#241109; --hl1:#5A341F; --hl2:#44291D; --hlb:#7A4B2E; --toastbg:#F4E6CF; --toasttx:#2B1810;
}
:root[data-fs=big]{--fs:22px} :root[data-fs=huge]{--fs:25px}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--cream);font:var(--fs)/1.5 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;min-height:100vh}
h1,h2,h3{font-family:Georgia,"Times New Roman",serif;color:var(--gold);line-height:1.2;margin:0 0 .5em}
h1{font-size:1.7rem} h2{font-size:1.45rem} h3{font-size:1.2rem}
p{margin:.4em 0 .9em}
a{color:var(--orange)}
.muted{color:var(--muted);font-size:.92em}
.wrap{max-width:560px;margin:0 auto;padding:16px 16px 110px}
.top{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 16px;max-width:560px;margin:0 auto}
.brand{font-family:Georgia,serif;color:var(--gold);font-size:1.1rem;line-height:1.1}
.brand small{display:block;color:var(--orange);font-size:.8rem;letter-spacing:.06em}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:18px;margin:0 0 14px;box-shadow:0 2px 14px rgba(60,35,15,.06)}
.card.hl{background:linear-gradient(160deg,var(--hl1),var(--hl2));border-color:var(--hlb)}
.btn{display:block;width:100%;min-height:56px;padding:14px 18px;border:0;border-radius:14px;background:var(--orange);color:var(--btntxt);font:700 1.05rem system-ui,sans-serif;cursor:pointer;text-align:center;text-decoration:none}
.btn:active{transform:scale(.99)}
.btn.alt{background:transparent;border:2px solid var(--gold);color:var(--gold)}
.btn.ghost{background:var(--bg2);color:var(--cream);border:1px solid var(--line)}
.btn.danger{background:transparent;border:2px solid var(--err);color:var(--err)}
.btn[disabled]{opacity:.55;cursor:default}
.btn.sm{min-height:44px;font-size:.95rem;width:auto;display:inline-block;padding:10px 16px}
.row{display:flex;gap:10px;flex-wrap:wrap}
.row>*{flex:1}
label{display:block;margin:12px 0 6px;font-weight:600;color:var(--cream)}
input[type=text],input[type=tel],input[type=email],input[type=password],textarea{width:100%;min-height:54px;padding:12px 14px;border-radius:12px;border:2px solid var(--line);background:var(--inset);color:var(--cream);font:inherit}
textarea{min-height:120px;resize:vertical}
input:focus,textarea:focus,button:focus-visible,a:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
.chk{display:flex;gap:12px;align-items:flex-start;margin:14px 0;font-weight:400}
.chk input{width:28px;height:28px;margin-top:3px;flex:none;accent-color:var(--orange)}
.err{color:var(--err);font-weight:600;margin:10px 0}
.ok{color:var(--ok);font-weight:600}
.consent{font-size:.88em;color:var(--muted);background:var(--inset);border:1px solid var(--line);border-radius:12px;padding:12px;margin:8px 0}
.tabs{position:fixed;left:0;right:0;bottom:0;background:var(--tabsbg);border-top:1px solid var(--line);display:flex;justify-content:center;padding-bottom:env(safe-area-inset-bottom)}
.tabs .in{display:flex;width:100%;max-width:560px}
.tab{flex:1;min-height:68px;background:none;border:0;color:var(--muted);font:600 .78rem system-ui,sans-serif;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;cursor:pointer}
.tab .ic{font-size:1.5rem;line-height:1}
.tab[aria-current=page]{color:var(--gold)}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:0 0 14px}
.stat{background:var(--card);border:1px solid var(--line);border-radius:14px;text-align:center;padding:12px 6px}
.stat b{display:block;font:700 1.7rem Georgia,serif;color:var(--gold)}
.stat span{font-size:.8rem;color:var(--muted)}
.cal{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.cal .wd{text-align:center;font-size:.75rem;color:var(--muted)}
.day{aspect-ratio:1;border-radius:12px;border:2px solid var(--line);background:var(--inset);color:var(--cream);font:600 .95rem system-ui,sans-serif;cursor:pointer;min-height:44px}
.day.done{background:var(--orange);color:var(--btntxt);border-color:var(--orange)}
.day.today{border-color:var(--gold)}
.day.off{opacity:.35;cursor:default}
.bar{height:12px;border-radius:8px;background:var(--bg2);overflow:hidden;margin:8px 0}
.bar i{display:block;height:100%;background:linear-gradient(90deg,var(--orange),var(--gold))}
.candle{height:210px;display:flex;align-items:flex-end;justify-content:center;margin:6px 0 14px;position:relative}
.cdl{width:46px;height:110px;background:linear-gradient(#F4E6CF,#D9C3A0);border-radius:8px 8px 6px 6px;position:relative;box-shadow:0 0 0 2px #00000022 inset}
.flame{position:absolute;left:50%;bottom:104px;width:26px;height:56px;margin-left:-13px;border-radius:50% 50% 50% 50%/60% 60% 40% 40%;background:radial-gradient(circle at 50% 70%,#FFF3C4 0%,#FFC857 40%,#E8873A 75%,transparent 100%);filter:blur(.3px);transform-origin:50% 90%;opacity:0;transition:opacity .6s}
.lit .flame{opacity:1;animation:fl 1.6s ease-in-out infinite}
.glow{position:absolute;left:50%;bottom:60px;width:190px;height:190px;margin-left:-95px;border-radius:50%;background:radial-gradient(circle,#E8873A55,transparent 65%);opacity:0;transition:opacity .8s}
.lit .glow{opacity:1}
@keyframes fl{0%,100%{transform:scale(1) rotate(-1deg)}50%{transform:scale(1.07,1.12) rotate(1.5deg)}}
@media (prefers-reduced-motion:reduce){.lit .flame{animation:none}}
.item{border-top:1px solid var(--line);padding:12px 0}
.item:first-child{border-top:0}
.tag{display:inline-block;font-size:.78rem;border:1px solid var(--gold);color:var(--gold);border-radius:20px;padding:2px 10px;margin-left:6px}
.tag.go{border-color:var(--ok);color:var(--ok)}
.menu{position:absolute;right:12px;top:58px;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:6px;min-width:220px;z-index:10;box-shadow:0 10px 30px #0004}
.menu button{display:block;width:100%;text-align:left;background:none;border:0;color:var(--cream);font:inherit;padding:14px;border-radius:10px;cursor:pointer;min-height:52px}
.menu button:hover{background:var(--bg2)}
#toast{position:fixed;left:50%;bottom:90px;transform:translateX(-50%) translateY(20px);background:var(--toastbg);color:var(--toasttx);padding:12px 18px;border-radius:14px;font-weight:700;opacity:0;pointer-events:none;transition:.3s;max-width:90vw;text-align:center;z-index:20}
#toast.show{opacity:1;transform:translateX(-50%)}
.link{background:none;border:0;color:var(--orange);font:inherit;text-decoration:underline;cursor:pointer;padding:6px 0}
.hero{text-align:center;padding:26px 8px 8px}
.hero .cross{font-size:2.6rem;color:var(--gold)}

.stage{background:linear-gradient(#2B1810,#3A2218);border-radius:14px;padding:6px 0 0;margin:0 0 14px;color:#F4E6CF}
.stage .candle{margin:0}
.vl{display:flex;align-items:center;justify-content:space-between;gap:10px;border-top:1px solid var(--line);padding:12px 0}
.vl:first-child{border-top:0}
.notice{background:var(--hl1);border:2px solid var(--hlb);border-radius:14px;padding:14px;margin:0 0 14px}
.seg{display:flex;gap:8px;margin:6px 0 12px}
.seg button{flex:1;min-height:52px;border-radius:12px;border:2px solid var(--line);background:var(--inset);color:var(--cream);font:inherit;cursor:pointer}
.seg button[aria-pressed=true]{border-color:var(--orange);background:var(--orange);color:var(--btntxt);font-weight:700}

.brand{display:block;text-decoration:none}.brand img{display:block;height:48px;width:auto}
.hero img{display:block;margin:0 auto 6px}

/* vela viva: chama que tremula e brilho que pulsa */
.candle2{width:min(200px,60%);margin:0 auto;padding:10px 0 0}
.candle2 svg{display:block;width:100%;height:auto;overflow:visible}
.candle2 .fl,.candle2 .cglow{opacity:0;transition:opacity .9s}
.candle2.lit .fl,.candle2.lit .cglow{opacity:1}
.candle2 .fl1,.candle2 .fl2,.candle2 .fl{transform-box:fill-box;transform-origin:50% 100%}
.candle2 .cglow{transform-box:fill-box;transform-origin:50% 50%}
.candle2.lit .fl1{animation:flick1 2.3s ease-in-out infinite}
.candle2.lit .fl2{animation:flick2 1.7s ease-in-out infinite}
.candle2.lit .fl{animation:sway 4.1s ease-in-out infinite}
.candle2.lit .cglow{animation:glowp 3s ease-in-out infinite}
@keyframes flick1{0%,100%{transform:scale(1,1) skewX(0)}18%{transform:scale(.95,1.06) skewX(-2.5deg)}37%{transform:scale(1.04,.97) skewX(1.8deg)}58%{transform:scale(.97,1.08) skewX(-1.2deg)}79%{transform:scale(1.03,.98) skewX(2.2deg)}}
@keyframes flick2{0%,100%{transform:scale(1,1)}25%{transform:scale(.92,1.08)}50%{transform:scale(1.06,.95)}75%{transform:scale(.96,1.05)}}
@keyframes sway{0%,100%{transform:rotate(0)}30%{transform:rotate(-1.6deg)}65%{transform:rotate(1.4deg)}}
@keyframes glowp{0%,100%{opacity:.78;transform:scale(1)}50%{opacity:1;transform:scale(1.09)}}
@media (prefers-reduced-motion:reduce){.candle2.lit .fl1,.candle2.lit .fl2,.candle2.lit .fl,.candle2.lit .cglow{animation:none}}
.bell{position:relative;margin-left:auto;margin-right:8px;min-width:48px}.bdg{position:absolute;top:-6px;right:-6px;background:#B03A1F;color:#fff;border-radius:12px;min-width:22px;height:22px;display:grid;place-items:center;font:700 .8rem system-ui;padding:0 5px}
.cats{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:8px 0 12px}.cat{min-height:54px;border-radius:12px;border:2px solid var(--line);background:var(--inset);color:var(--cream);font:inherit;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px}.cat[aria-pressed=true]{border-color:var(--orange);background:var(--orange);color:var(--btntxt)}
