:root{--pink:#FF6F9C;--pink2:#FF8FAB;--pink3:#FFB3C7;--yellow:#FFD166;--yellow2:#FFE08A;--bg:#FFF7FA;--bg2:#FFFBEF;--txt:#3A2630;--txt2:#9A7E89;--card:#fff;--line:#F6DCE4;--cinza:#D6D2D4}
@media (prefers-color-scheme:dark){:root{--bg:#241820;--bg2:#2c1f27;--card:#33242d;--txt:#F7E9EE;--txt2:#B9A6AE;--line:#4a3540}}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0}
body{background:var(--bg);color:var(--txt);font-family:'Nunito',system-ui,sans-serif;font-size:16px;padding-bottom:84px;-webkit-user-select:none;user-select:none}
input,textarea,select{-webkit-user-select:text;user-select:text}
h1,h2,h3,.grande,.ringtxt{font-family:'Fredoka','Nunito',sans-serif}
h1{font-size:22px;margin:0}h2{font-size:18px;margin:0 0 10px}h3{font-size:15px;margin:14px 0 6px;color:var(--txt2)}
p{margin:6px 0}code{background:var(--line);padding:1px 5px;border-radius:5px;font-size:13px}
button{font:inherit;color:inherit;cursor:pointer;border:0;background:none}
.topo{background:linear-gradient(160deg,var(--pink),var(--pink2));color:#fff;padding:max(12px,env(safe-area-inset-top)) 16px 18px;border-radius:0 0 26px 26px;box-shadow:0 6px 18px #ff6f9c33}
.topo.curto{padding-bottom:12px}
.topo-bar{display:flex;align-items:center;gap:8px;max-width:900px;margin:0 auto}
.topo-bar h1{flex:1}
.topo-main{display:flex;gap:16px;align-items:center;max-width:900px;margin:14px auto 0}
.topo-main h1{font-size:19px}.topo-main p{margin:2px 0 8px;opacity:.95}
.ring{flex:none}.ringtxt{fill:#fff;font-size:22px;font-weight:700}
.ib{width:40px;height:40px;border-radius:50%;background:#ffffff33;font-size:18px;position:relative;flex:none}
.ib.sm{width:32px;height:32px;font-size:20px}.ib.on{background:var(--yellow)}.ib:disabled{opacity:.3}
.badge{position:absolute;top:-3px;right:-3px;background:var(--yellow);color:var(--txt);border-radius:10px;font-size:11px;padding:1px 6px}
.mespick{flex:1;text-align:center}
.sel{font:inherit;font-weight:700;border:0;border-radius:14px;padding:8px 12px;background:#ffffff33;color:#fff;max-width:100%}
.sel option{color:#3A2630}
.navdia{display:flex;align-items:center;gap:6px}.navdia h1{flex:1}
.pill{display:inline-block;background:var(--yellow);color:var(--txt);border-radius:20px;padding:4px 12px;font-weight:800;font-size:14px}
.link{color:#fff;text-decoration:underline;margin-left:8px;font-size:13px}
.conteudo{max-width:900px;margin:0 auto;padding:16px}
.grid{display:grid;gap:14px}@media(min-width:760px){.grid{grid-template-columns:1fr 1fr;align-items:start}}
.card{background:var(--card);border-radius:20px;padding:14px 16px;margin-bottom:14px;box-shadow:0 2px 10px #c9708a1a;border:1px solid var(--line)}
.grid .card{margin-bottom:0}
.card.destaque{display:flex;gap:16px;align-items:center;background:linear-gradient(160deg,var(--pink),var(--pink2));color:#fff}
.card.destaque .mudo{color:#fff;opacity:.9}.grande{font-size:19px}
.ctr{text-align:center}.mudo{color:var(--txt2);font-size:14px}
.cab{display:flex;justify-content:space-between;width:100%;padding:0;font-size:16px}
.cat-cab{display:flex;align-items:center;gap:8px;margin-bottom:6px}
.cat-cab b{flex:1;font-family:'Fredoka',sans-serif;font-size:18px}.ico{font-size:22px}
.badge2{color:#fff;border-radius:12px;padding:2px 10px;font-weight:800;font-size:13px}
.hab{display:flex;align-items:center;gap:10px;padding:9px 0;border-top:1px solid var(--line)}
.hab span,.hab .edit{flex:1}.hab.na span{color:var(--txt2);text-decoration:line-through}
.dot{width:34px;height:34px;border-radius:50%;border:2.5px solid var(--cor,var(--pink));background:transparent;color:#fff;font-weight:900;font-size:18px;display:grid;place-items:center;flex:none;touch-action:manipulation;transition:transform .08s}
.dot:active{transform:scale(.88)}
.dot.done{background:var(--cor,var(--pink))}.dot.na{background:var(--cinza);border-color:var(--cinza)}
.dot.mini{width:14px;height:14px;border-width:2px;display:inline-block;vertical-align:middle;margin:0 2px 0 8px}
.dot.undone{opacity:.85}
.linha{display:flex;align-items:center;gap:10px;justify-content:space-between;padding:7px 0;border-top:1px solid var(--line)}
.linha:first-of-type{border-top:0}
.bar{height:9px;border-radius:6px;background:var(--line);overflow:hidden}.bar i{display:block;height:100%;border-radius:6px}
.hbar{margin:8px 0}.hbar .linha{border:0;padding:2px 0}
.chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.chips span{background:var(--bg2);border-radius:10px;padding:2px 8px;font-size:13px}
.dia.fut{opacity:.55;border-style:dashed}
.toggle{display:flex;background:#ffffff33;border-radius:20px;padding:3px;max-width:340px;margin:10px auto 0}
.toggle button{flex:1;border-radius:17px;padding:7px;font-weight:800;color:#fff}.toggle .on{background:#fff;color:var(--pink)}
.nav{position:fixed;bottom:0;left:0;right:0;display:flex;background:var(--card);border-top:1px solid var(--line);padding:6px 4px max(6px,env(safe-area-inset-bottom));z-index:10;justify-content:center}
.nav button{flex:1;max-width:110px;font-size:10.5px;font-weight:700;color:var(--txt2);display:flex;flex-direction:column;align-items:center;gap:1px;padding:4px 0;border-radius:12px}
.nav button span{font-size:20px}.nav .on{color:var(--pink);background:var(--bg)}
.tab{border-collapse:collapse;width:100%;font-size:13px}.tab th{font-weight:800;padding:4px;text-align:center;color:var(--txt2)}.tab th.hj{color:var(--pink)}
.tab td{padding:4px;text-align:center;border-top:1px solid var(--line)}.tab td.nome{text-align:left;min-width:130px;padding-right:8px}
.tab .catrow td{background:var(--bg2);font-weight:800;text-align:left;border-top:0}
.tab .dot{width:28px;height:28px;font-size:14px;border-width:2px}
.rolagem{overflow-x:auto;-webkit-overflow-scrolling:touch}
.tab.geral td,.tab.geral th{padding:2px 3px;min-width:18px}.tab.geral td.nome{position:sticky;left:0;background:var(--card);min-width:140px;font-size:12px;z-index:1}
.mp{display:block;width:12px;height:12px;border-radius:50%;border:1.5px solid var(--cor);margin:auto}.mp.done{background:var(--cor)}.mp.na{background:var(--cinza);border-color:var(--cinza)}.mp.vazio{border:0}
.total{font-weight:800;text-align:right;margin:10px 0 0}.legenda{font-size:13px;color:var(--txt2)}
.sw{display:inline-block;width:12px;height:12px;border-radius:4px;vertical-align:middle;margin:0 4px 0 10px}
.cal{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}.cw{text-align:center;font-weight:800;color:var(--txt2);font-style:normal;font-size:13px}
.cd{aspect-ratio:1;border-radius:12px;background:var(--bg2);font-weight:800;display:grid;place-items:center}
.cd.fds{background:transparent;border:1.5px dashed var(--line);color:var(--txt2)}.cd.hj{outline:3px solid var(--yellow)}
.spark{width:100%;height:80px}
.btn{background:var(--bg2);border:1.5px solid var(--line);border-radius:14px;padding:9px 14px;font-weight:800}
.btn.rosa{background:var(--pink);border-color:var(--pink);color:#fff}.btn.peq{padding:4px 10px;font-size:13px}.btn:disabled{opacity:.45}
.grande-btn{width:100%;margin-top:6px}
.botoes{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0}
.form{display:grid;gap:10px;margin:10px 0;padding:12px;background:var(--bg2);border-radius:14px}
input,textarea,select{font:inherit;color:var(--txt);background:var(--card);border:1.5px solid var(--line);border-radius:12px;padding:9px 11px;width:100%;min-width:0}
select.sel{width:auto}
.edit{border-style:dashed;padding:5px 8px}
.perg{display:grid;gap:6px;font-weight:700;margin:10px 0;font-size:14px}
.x{font-size:14px;padding:4px;flex:none}
.meta{display:flex;gap:6px;margin:6px 0}
.cfgcat select{width:60px;flex:none}.cfgcat .edit{flex:1}.cfgcat .ib{background:var(--line);color:var(--txt)}
.linha select{width:auto;max-width:48%}
.aviso{background:var(--yellow2);color:#5a4300;border-radius:14px;padding:10px 12px;font-weight:700;font-size:14px}
.dica{text-align:center;color:var(--txt2);font-size:13px}
.chip{position:fixed;left:50%;transform:translateX(-50%);bottom:92px;background:var(--txt);color:var(--bg);padding:6px 14px;border-radius:20px;font-size:13px;font-weight:700;z-index:11}
.chip.erro{background:#c0392b;color:#fff}
.setup{padding-top:max(28px,env(safe-area-inset-top))}
details{margin:8px 0}summary{cursor:pointer;color:var(--txt2);font-weight:700}
.tab:not(.geral){table-layout:fixed}
.tab:not(.geral) td.nome{min-width:0;width:38%;font-size:12.5px;line-height:1.2;word-break:break-word}
.tab:not(.geral) .dot{width:26px;height:26px;font-size:13px}
@media(min-width:600px){.tab:not(.geral) td.nome{width:30%;font-size:14px}.tab:not(.geral) .dot{width:30px;height:30px}}
.tab:not(.geral) td.nome{width:44%;font-size:12px;word-break:normal;overflow-wrap:break-word;hyphens:auto;padding-right:4px}
.tab:not(.geral) td,.tab:not(.geral) th{padding:4px 1px}
.tab:not(.geral) .dot{width:25px;height:25px}
.tab:not(.geral) th:first-child{width:42%}
/* roda da vida, perfil */
.roda{width:100%;max-width:380px;height:auto}
.cab2{align-items:flex-start;border:0}.cab2 p{margin:2px 0}
.ib.dark{background:var(--bg2);border:1.5px solid var(--pink);width:34px;height:34px}.ib.dark.on{background:var(--yellow)}
.ib.mini{width:30px;height:30px;font-size:18px;font-weight:900;background:var(--line);color:var(--txt)}
.faixa{background:var(--bg2);border:1.5px dashed var(--yellow);border-radius:14px;padding:10px 12px;font-size:13px;font-weight:700;margin:10px 0}
.faixa.vazia{display:grid;gap:8px;border-color:var(--pink);background:var(--card)}.faixa .btn{justify-self:start}
.link2{color:var(--pink);font-weight:800;text-decoration:underline;margin-left:6px}
.link3{color:var(--pink);font-weight:800;font-size:13px;padding:4px 0}
.grp{margin:16px 0 6px;font-size:14px;letter-spacing:.5px}
.card.rc{padding:10px 14px;margin-bottom:8px}
.linha.sem{border:0;padding:2px 0;gap:8px}.flex1{flex:1}.nota{min-width:22px;text-align:center;font-size:18px}
.tg{display:flex;justify-content:space-between;align-items:center;width:100%;padding:9px 0;text-align:left;font-weight:700}
.tg i{flex:none;width:38px;height:22px;border-radius:11px;background:#E8D6DC;position:relative;transition:background .15s;margin-left:12px}
.tg i::after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#fff;transition:left .15s}
.tg.on i{background:var(--pink)}.tg.on i::after{left:18px}
.fundo{position:fixed;inset:0;background:#0006;z-index:20}
.folha{position:fixed;left:0;right:0;bottom:0;max-height:75vh;overflow:auto;background:var(--card);border-radius:22px 22px 0 0;padding:16px;z-index:21;display:grid;gap:8px;max-width:600px;margin:0 auto}
.folha h3{margin:0 0 4px;color:var(--txt)}
.perfil-topo{display:flex;gap:14px;align-items:center;max-width:900px;margin:14px auto 0}.perfil-topo p{margin:2px 0;opacity:.9}
.avatar{width:64px;height:64px;border-radius:50%;background:#ffffff40;display:grid;place-items:center;font-size:34px}
.avatares{display:flex;flex-wrap:wrap;gap:8px}.av{width:46px;height:46px;border-radius:50%;background:var(--bg2);font-size:24px;border:2px solid transparent}.av.on{border-color:var(--pink);background:var(--pink3)}
/* hábitos semanais */
.nav button{font-size:10px}.nav button span{font-size:19px}
.sadd{display:flex;gap:6px;margin-top:8px}
.card.hoje{outline:3px solid var(--yellow)}
.cat-cab .mudo{font-family:'Nunito',sans-serif;font-size:12px;font-weight:600}
.sadd input{flex:1}
/* mensagem e versículo do dia */
.dia-msg{background:linear-gradient(160deg,var(--bg2),var(--card));border-color:var(--yellow2)}
.dia-msg .msg{font-weight:800;font-size:16px;margin:0 0 10px;line-height:1.35}
.dia-msg blockquote{margin:0;padding:8px 0 0 12px;border-left:3px solid var(--yellow);font-size:15px;line-height:1.45;font-style:italic}
.dia-msg cite{display:block;margin-top:6px;font-style:normal;font-weight:700;font-size:13px;color:var(--txt2)}
/* setas de variação */
.seta.up{color:#2E9E5B}.seta.down{color:#D64545}.seta.zero{color:var(--txt2)}
.destaque .seta{background:#fff;border-radius:7px;padding:0 5px;font-size:.85em}
/* arrastar para reordenar */
.grip{flex:none;width:26px;align-self:stretch;display:flex;align-items:center;justify-content:center;font-size:22px;line-height:1;color:var(--txt2);touch-action:none;cursor:grab;-webkit-user-select:none;user-select:none}
.hab.arrastando{background:var(--bg2);box-shadow:0 6px 18px #0003;border-radius:12px;position:relative;z-index:5}
.hab .grip{flex:none;width:26px}
