*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:#fff8f3;color:#2b2118;-webkit-tap-highlight-color:transparent}
.top{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;position:sticky;top:0;background:#fff8f3ee;z-index:5}
.logo{font-weight:800;color:#2b2118;text-decoration:none;font-size:18px}.logo b{color:#ff6b35}.pill{background:#ffe1d3;border-radius:20px;padding:4px 10px;font-weight:700}
main{max-width:520px;margin:0 auto;padding:0 16px 24px}h1{font-size:26px;margin:10px 0 4px}h2{font-size:17px;margin:18px 0 8px}.sub{color:#6b5a4c;margin:0 0 14px}
.grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.task{background:#fff;border:2px solid #ffd9c6;border-radius:16px;padding:14px 10px;font-size:15px;font-weight:600;text-align:left;cursor:pointer;color:#2b2118}.task span{font-size:28px;display:block}
.task:active{transform:scale(.97)}.custom{display:flex;gap:8px;margin:12px 0}.custom input{flex:1;padding:12px;border-radius:12px;border:2px solid #ffd9c6;font-size:16px}
.btn{background:#ff6b35;color:#fff;border:0;border-radius:14px;padding:14px 18px;font-size:16px;font-weight:700;cursor:pointer}.btn.sm{padding:10px 14px;font-size:14px}.btn.ghost{background:#fff;color:#ff6b35;border:2px solid #ff6b35}.btn.wide{width:100%;margin-top:10px}
.start{width:100%;padding:26px;font-size:32px;border-radius:24px;margin-top:20px;box-shadow:0 8px 24px #ff6b3555}.start small{display:block;font-size:14px;font-weight:500;margin-top:6px}
.card{display:block;background:#fff;border-radius:16px;padding:14px;margin-top:14px;color:inherit;text-decoration:none;box-shadow:0 2px 8px #0000000d}.low{background:#e8f1ff}.soon{background:#f3f0ff;font-size:14px}
.stats{display:grid;grid-template-columns:repeat(3,1fr);text-align:center;gap:6px}.stats b{display:block;font-size:24px;color:#ff6b35}.stats small{color:#6b5a4c}
.hidden{display:none!important}.back{background:none;border:0;font-size:16px;color:#ff6b35;padding:8px 0;cursor:pointer}.big-emoji{font-size:56px;text-align:center}#v-prep h1,#v-done h1{text-align:center}
.tips{background:#fff;border-radius:14px;padding:12px 12px 12px 32px;line-height:1.6}.moods{display:flex;justify-content:space-between}.moods button{font-size:34px;background:#fff;border:2px solid transparent;border-radius:14px;padding:6px 8px;cursor:pointer}.moods button.on{border-color:#ff6b35;background:#ffe1d3}
.seg{display:flex;gap:6px}.seg button{flex:1;padding:12px 4px;border-radius:12px;border:2px solid #ffd9c6;background:#fff;font-size:15px;cursor:pointer;color:#2b2118}.seg button.on{background:#ff6b35;color:#fff;border-color:#ff6b35}
.safety{font-size:13px;color:#7a5a3a;background:#fff3cd;border-radius:10px;padding:10px;margin-top:14px}
.ring{position:relative;width:260px;height:260px;margin:20px auto 8px}.ring svg{transform:rotate(-90deg);width:100%;height:100%}.ring circle{fill:none;stroke-width:10}.ring .bg{stroke:#ffe1d3}.ring .fg{stroke:#ff6b35;stroke-linecap:round;stroke-dasharray:339.3;transition:stroke-dashoffset 1s linear}
.time{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:64px;font-weight:800;font-variant-numeric:tabular-nums}#rTask{text-align:center}.cheer{text-align:center;font-size:18px;font-weight:600;color:#ff6b35;min-height:26px}
.now{text-align:center;color:#6b5a4c;font-size:14px;min-height:20px}.row{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-top:12px}
canvas{width:100%;border-radius:16px;margin-top:12px;box-shadow:0 4px 16px #0002}.challenge{background:#e9ffe9;border-radius:14px;padding:12px;margin-bottom:12px;font-weight:600}
.ad-slot:empty{display:none}footer{text-align:center;padding:20px;color:#6b5a4c;font-size:14px}footer a{color:#ff6b35}
.page{max-width:620px;margin:0 auto;padding:0 18px 30px;line-height:1.6}
.shl{text-align:center;font-size:14px;color:#6b5a4c;margin:14px 0 6px}.shrow{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.shrow a,.shrow button{width:46px;height:46px;border-radius:50%;border:0;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0}.shrow svg{width:24px;height:24px;fill:#fff}
.tabs{display:flex;gap:4px;background:#ffe1d3;border-radius:20px;padding:3px}.tab{border:0;background:none;border-radius:16px;padding:5px 10px;font-weight:700;color:#2b2118;cursor:pointer;font-size:13px}.tab.on{background:#fff;color:#ff6b35}
.logo{font-size:16px}.chips{display:flex;gap:6px;overflow-x:auto;padding-bottom:4px}.chips button{flex:none;border:2px solid #ffd9c6;background:#fff;border-radius:20px;padding:8px 12px;font-size:14px;cursor:pointer;color:#2b2118}.chips button.on{background:#ff6b35;color:#fff;border-color:#ff6b35}
.slist .song{display:flex;align-items:center;gap:8px;background:#fff;border-radius:12px;padding:10px 12px;margin-bottom:6px;cursor:pointer}.song .st{flex:1;font-size:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.song .sd{color:#9a8878;font-size:13px}.song .fv{border:0;background:none;font-size:20px;color:#ff2d75;cursor:pointer}.song.playing{background:#ffe1d3;font-weight:700}
.mini{position:fixed;left:8px;right:8px;bottom:8px;max-width:504px;margin:0 auto;background:#2b2118;color:#fff;border-radius:16px;display:flex;align-items:center;gap:4px;padding:8px 10px;z-index:20;box-shadow:0 6px 20px #0004}.mini button{background:none;border:0;color:#fff;font-size:20px;padding:6px;cursor:pointer}.mini .mt{flex:1;font-size:14px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}#mShuf{opacity:.5}#mShuf.on{opacity:1}#mFav{color:#ff6b9a}
body{padding-bottom:80px}.pick{position:fixed;left:8px;right:8px;bottom:76px;max-width:504px;margin:0 auto;max-height:55vh;overflow:auto;background:#fff8f3;border-radius:16px;padding:10px;box-shadow:0 6px 30px #0005;z-index:19}.pick input{width:100%;padding:10px;border-radius:10px;border:2px solid #ffd9c6;font-size:16px;margin-bottom:8px}

.c21 h2{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.g21{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin:10px 0}
.d21{aspect-ratio:1;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;background:rgba(127,127,127,.15);color:#888}
.d21.ms{box-shadow:inset 0 0 0 2px #ffb300}.d21.on{background:#ff6b35;color:#fff;font-weight:700}.d21.nx{box-shadow:0 0 0 3px #ff6b35;color:#ff6b35;font-weight:700}
.c21 .gap{background:rgba(255,179,0,.12);border-radius:12px;padding:10px;margin:8px 0}.c21 .row{flex-wrap:wrap}

.btn.bored{display:block;width:100%;margin:6px 0 14px;padding:18px;font-size:22px;background:linear-gradient(135deg,#7c4dff,#ff2d75)}.btn.bored small{display:block;font-size:13px;font-weight:400;opacity:.9;margin-top:4px}
.toast{position:fixed;left:50%;top:70px;transform:translateX(-50%);background:#222;color:#fff;padding:12px 18px;border-radius:14px;z-index:99;text-align:center;box-shadow:0 6px 20px rgba(0,0,0,.3)}
button.pill{border:0;cursor:pointer;font:inherit;margin-right:4px}
.bgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.bdg{border:2px solid #eee;background:#fff;border-radius:14px;padding:10px 4px;display:flex;flex-direction:column;align-items:center;gap:2px;opacity:.55;font:inherit}.bdg span{font-size:34px}.bdg small{font-size:11px;color:#888}.bdg.on{opacity:1;border-color:#ffb300;cursor:pointer}
#bCard{width:100%;border-radius:16px;margin-top:12px}
.gform input,.gform select{width:100%;padding:10px;border:1px solid #ddd;border-radius:10px;margin:4px 0;font:inherit;box-sizing:border-box}.gform label{flex:1;font-size:13px}details summary{list-style:none;cursor:pointer}
.lb{padding:0;list-style:none;counter-reset:r}.lb li{display:flex;gap:8px;align-items:center;padding:8px 10px;border-radius:10px;background:rgba(127,127,127,.08);margin:4px 0;counter-increment:r}.lb li:before{content:counter(r);font-weight:700;width:20px}.lb li span{flex:1}.lb li small{color:#888}.lb li.me{background:rgba(255,107,53,.15)}.rep{border:0;background:none;color:#bbb;cursor:pointer}
.inst{position:relative;padding-right:36px}.inst .x{position:absolute;right:8px;top:8px;border:0;background:none;font-size:18px;cursor:pointer}
.sleep{align-items:center;flex-wrap:wrap;gap:6px;font-size:14px}.sleep .on{background:#ff6b35;color:#fff}

@media(max-width:420px){.top .logo{font-size:15px;white-space:nowrap}.top .pill{padding:4px 7px;font-size:13px}.tabs .tab{padding:5px 8px;font-size:13px}}
.crumb{font-size:13px;margin:6px 0}.plidx{list-style:none;padding:0}.plidx li{background:#fff;border-radius:12px;padding:10px 12px;margin:6px 0}a.btn.start{display:block;text-align:center;text-decoration:none;margin:12px 0}

.phbox{margin:14px 0;padding:12px;border:2px dashed #ffb4a0;border-radius:16px}.phbox label{cursor:pointer}.phnote{font-size:13px;margin:8px 0 0;opacity:.85}
.tgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.tiny{display:flex;flex-direction:column;align-items:center;gap:2px;padding:10px 6px;border:0;border-radius:14px;background:#fff3ec;font:600 14px system-ui;color:#333;cursor:pointer;text-align:center}.tiny span{font-size:28px}.tiny small{opacity:.6;font-weight:500}.caprow{display:flex;gap:8px;align-items:center;margin:10px 0;flex-wrap:wrap}.caprow select{flex:1;min-width:0;padding:10px;border-radius:12px;border:2px solid #ffb4a0;font:600 15px system-ui;background:#fff}#durSeg{flex-wrap:wrap}
.tsub{grid-column:1/-1;margin:14px 0 0}.tsubp{grid-column:1/-1;margin:0}
.tgrid{grid-template-columns:repeat(3,1fr);gap:6px}.tiny{font-size:12.5px;padding:8px 4px;line-height:1.2}.tiny span{font-size:24px}.tgrid:not(.open) .tiny.x{display:none}.tmore{grid-column:1/-1;margin-top:6px}
.vidbox{margin:14px 0;padding:12px;border-radius:16px;background:#fff3ec;text-align:center}#vidCanvas,#vidOut{width:60%;max-width:280px;border-radius:14px;margin:10px auto;display:block}#vidCanvas.hidden,#vidOut.hidden{display:none}

.lvp{margin-right:6px}.land{text-align:center;border:3px solid #ff2d75}.land h1{font-size:1.5rem;margin:.2em 0 .5em}.lcard{background:linear-gradient(135deg,#ff6b35,#ff2d75);color:#fff;border-radius:18px;padding:18px;margin-bottom:12px}.le{font-size:64px}.lcard p{font-weight:700;font-size:1.15rem;margin:.4em 0}.lcap{display:inline-block;background:rgba(0,0,0,.25);border-radius:20px;padding:6px 14px;font-style:italic;font-weight:700}.lgo{font-size:1.3rem;padding:18px;margin-bottom:8px}
.nudge{border:2px dashed #ffb300;text-align:center}.nudge .row{justify-content:center}.lvl{text-align:center}.lvbig{font-size:64px}.xpbar{height:14px;background:#eee;border-radius:8px;overflow:hidden;margin:8px 0}.xpbar i{display:block;height:100%;background:linear-gradient(90deg,#ffb300,#ff2d75)}.frn{font-weight:700}
.pulse{animation:pu .6s 4}@keyframes pu{50%{transform:scale(1.08)}}
