*{box-sizing:border-box;margin:0;padding:0}:root{--bg1:#667eea;--bg2:#764ba2;--card:#fff;--ink:#2d2a45;--ink-soft:#6b6790;--accent:#ff6b9d;--gold:#ffc93c;--green:#35c98e;--radius:22px;--shadow:0 10px 30px #2d2a452e}html,body{min-height:100%}body{background:linear-gradient(160deg, var(--bg1), var(--bg2)) fixed;color:var(--ink);-webkit-font-smoothing:antialiased;font-family:"Baloo 2",Comic Sans MS,system-ui,sans-serif}#root{max-width:900px;min-height:100vh;margin:0 auto;padding:20px 16px 60px}h1,h2,h3{font-weight:800}button{cursor:pointer;border:none;font-family:inherit}input,select{color:var(--ink);background:#fff;border:2px solid #d9d6ee;border-radius:12px;outline:none;width:100%;padding:10px 14px;font-family:inherit;font-size:1rem}input:focus,select:focus{border-color:var(--bg1)}label{color:var(--ink-soft);margin:12px 0 4px;font-size:.85rem;font-weight:700;display:block}input[type=checkbox]{width:20px;height:20px;accent-color:var(--green);flex:none;padding:0}.checkbox-row{color:var(--ink);cursor:pointer;align-items:center;gap:10px;font-size:1rem;display:flex}.settings-section{background:#f7f6fc;border-radius:16px;margin-top:18px;padding:16px}.money-input{align-items:center;gap:8px;font-size:1.3rem;font-weight:800;display:flex}.money-input input{max-width:180px}.card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:18px;padding:22px}.topbar{color:#fff;justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px;display:flex}.topbar h1{text-shadow:0 2px 8px #0003;font-size:1.5rem}.row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.grid2{grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:18px;display:grid}.btn{background:var(--bg1);color:#fff;border-radius:999px;padding:12px 24px;font-size:1.05rem;font-weight:700;transition:transform .12s,box-shadow .12s;box-shadow:0 4px 14px #2d2a4540}.btn:hover{transform:translateY(-2px)scale(1.03)}.btn:active{transform:scale(.97)}.btn.ghost{box-shadow:none;color:#fff;background:#ffffff2e;border:2px solid #ffffff80}.btn.subtle{color:var(--ink);box-shadow:none;background:#efedfb}.btn.danger{background:#e5484d}.btn.big{padding:18px 44px;font-size:1.4rem}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.profiles{flex-wrap:wrap;justify-content:center;gap:22px;margin-top:30px;display:flex}.profile-btn{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);text-align:center;border-top:8px solid var(--kid-color,var(--accent));min-width:170px;padding:26px 30px;transition:transform .15s}.profile-btn:hover{transform:translateY(-4px)scale(1.04)}.profile-btn .avatar{font-size:4rem;line-height:1.2}.profile-btn .name{font-size:1.35rem;font-weight:800}.profile-btn .streak{color:var(--ink-soft);font-size:.9rem;font-weight:600}.kid-header{color:#fff;align-items:center;gap:14px;display:flex}.kid-header .avatar{font-size:2.6rem}.stat-pills{flex-wrap:wrap;gap:10px;margin:14px 0 4px;display:flex}.pill{color:#fff;background:#ffffff38;border-radius:999px;padding:7px 16px;font-size:.95rem;font-weight:700}.instrument-row{justify-content:center;gap:14px;margin:10px 0;display:flex}.instrument-btn{color:var(--ink);background:#efedfb;border:3px solid #0000;border-radius:18px;padding:14px 26px;font-size:1.15rem;font-weight:700}.instrument-btn.selected{border-color:var(--kid-color,var(--accent));box-shadow:var(--shadow);background:#fff}.instrument-btn .emoji{font-size:1.6rem;display:block}.timer-display{text-align:center;font-variant-numeric:tabular-nums;letter-spacing:2px;margin:8px 0;font-size:4.6rem;font-weight:800}.timer-display.running{color:var(--green)}.timer-display.paused{color:var(--ink-soft);animation:1.6s ease-in-out infinite paused-blink}@keyframes paused-blink{0%,to{opacity:1}50%{opacity:.45}}.timer-controls{justify-content:center;gap:14px;display:flex}.forest-caption{color:var(--ink-soft);margin-bottom:12px;font-weight:700}.forest{border-radius:18px;height:250px;position:relative;overflow:hidden;box-shadow:inset 0 0 0 2px #2d2a450f}.forest-scene{width:100%;height:100%;display:block;position:absolute;inset:0}.forest-flowers{pointer-events:none;flex-wrap:wrap;justify-content:space-around;align-items:flex-end;gap:6px;padding:0 12px 6px;display:flex;position:absolute;inset:auto 0 0}.flower-plot{text-align:center;flex-direction:column;flex:1 1 0;align-items:center;min-width:0;display:flex}.flower-svg{width:78px;height:133px;transition:all .4s;display:block}.flower-svg .sway{transform-box:view-box;transform-origin:50% 96%;animation:flower-sway var(--sway-dur,5s) ease-in-out infinite alternate}@keyframes flower-sway{0%{transform:rotate(calc(var(--sway-amp,1.5deg) * -1))}to{transform:rotate(var(--sway-amp,1.5deg))}}.flower-svg .twinkle{animation:2.4s ease-in-out infinite flower-twinkle}.flower-svg .twinkle.t2{animation-delay:.8s}.flower-svg .twinkle.t3{animation-delay:1.6s}@keyframes flower-twinkle{0%,to{opacity:.25}50%{opacity:1}}.forest-scene .drift{animation:forest-drift var(--drift-dur,48s) ease-in-out infinite alternate}@keyframes forest-drift{0%{transform:translate(-16px)}to{transform:translate(24px)}}.forest-scene .sun-glow{animation:7s ease-in-out infinite sun-pulse}@keyframes sun-pulse{0%,to{opacity:.55}50%{opacity:1}}.forest-scene .tree-sway{transform-box:fill-box;transform-origin:50% 100%;animation:tree-sway var(--tree-dur,7s) ease-in-out infinite alternate}@keyframes tree-sway{0%{transform:rotate(calc(var(--tree-amp,.8deg) * -1))}to{transform:rotate(var(--tree-amp,.8deg))}}.forest-scene .birds-fly{animation:38s linear infinite birds-fly}@keyframes birds-fly{0%{transform:translate(-80px)}to{transform:translate(880px)}}.forest-scene .rabbit-roam{animation:12s ease-in-out infinite alternate rabbit-roam}@keyframes rabbit-roam{0%{transform:translate(0)}to{transform:translate(90px)}}.forest-scene .rabbit-face{transform-box:fill-box;transform-origin:50%;animation:24s step-end infinite rabbit-face}@keyframes rabbit-face{0%,49.9%{transform:scaleX(1)}50%,to{transform:scaleX(-1)}}.forest-scene .rabbit-hop{animation:1.4s ease-in-out infinite rabbit-hop}@keyframes rabbit-hop{0%,40%,to{transform:translateY(0)}20%{transform:translateY(-9px)}}.forest-scene .deer-walk{animation:55s linear infinite deer-walk}@keyframes deer-walk{0%{transform:translate(-60px)}to{transform:translate(860px)}}.forest-scene .deer-bob{animation:.8s ease-in-out infinite deer-bob}@keyframes deer-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-1.2px)}}.forest-scene .deer-legs{transform-box:fill-box;transform-origin:50% 0;animation:.8s ease-in-out infinite alternate deer-legs}.forest-scene .deer-legs.back{animation-direction:alternate-reverse}@keyframes deer-legs{0%{transform:rotate(-9deg)}to{transform:rotate(9deg)}}.forest-scene .star-twinkle{animation:3.2s ease-in-out infinite star-twinkle}@keyframes star-twinkle{0%,to{opacity:.3}50%{opacity:1}}.forest-scene .rainbow-in{animation:3s ease-out both rainbow-in}@keyframes rainbow-in{0%{opacity:0}to{opacity:1}}.forest-scene .firefly-drift{animation:6s ease-in-out infinite alternate firefly-drift}@keyframes firefly-drift{0%{transform:translate(0)}50%{transform:translate(9px,-7px)}to{transform:translate(-6px,4px)}}.forest-scene .firefly-glow{animation:3s ease-in-out infinite firefly-glow}@keyframes firefly-glow{0%,to{opacity:.05}50%{opacity:1}}.forest-scene .leaf-fall{animation:11s linear infinite leaf-fall}@keyframes leaf-fall{0%{transform:translate(-30px,-300px)rotate(0)}50%{transform:translate(24px,-150px)rotate(200deg)}to{transform:translate(0)rotate(400deg)}}.forest-scene .snow-fall{animation:12s linear infinite snow-fall}@keyframes snow-fall{0%{transform:translate(-8px,-300px)}50%{transform:translate(8px,-150px)}to{transform:translate(0)}}.forest-scene .flame-flicker{transform-box:fill-box;transform-origin:50% 100%;animation:.35s ease-in-out infinite alternate flame-flicker}@keyframes flame-flicker{0%{transform:scale(.92,.88)}to{transform:scale(1.05,1.1)}}.forest-scene .swing-sway{transform-box:fill-box;transform-origin:50% 0;animation:3.4s ease-in-out infinite alternate swing-sway}@keyframes swing-sway{0%{transform:rotate(-7deg)}to{transform:rotate(7deg)}}.forest-scene .frog-hop{animation:3.6s ease-in-out infinite frog-hop}@keyframes frog-hop{0%,80%,to{transform:translateY(0)}88%{transform:translateY(-6px)}}.forest-scene .butterfly-flit{animation:butterfly-flit var(--flit-dur,12s) ease-in-out infinite}@keyframes butterfly-flit{0%,to{transform:translate(0)}25%{transform:translate(18px,-12px)}50%{transform:translate(36px,2px)}75%{transform:translate(14px,10px)}}.forest-scene .wing-flap{transform-box:fill-box;transform-origin:50%;animation:.5s ease-in-out infinite alternate wing-flap}@keyframes wing-flap{0%{transform:scaleX(1)}to{transform:scaleX(.25)}}.forest-scene .bee-orbit-x{animation:3.1s ease-in-out infinite alternate bee-orbit-x}@keyframes bee-orbit-x{0%{transform:translate(-10px)}to{transform:translate(10px)}}.forest-scene .bee-orbit-y{animation:2.3s ease-in-out infinite alternate bee-orbit-y}@keyframes bee-orbit-y{0%{transform:translateY(-6px)}to{transform:translateY(5px)}}.forest-scene .squirrel-scamper{animation:7s ease-in-out infinite squirrel-scamper}@keyframes squirrel-scamper{0%,15%{transform:translateY(0)}35%,55%{transform:translateY(-24px)}75%,to{transform:translateY(0)}}.forest-scene .fox-trot{animation:42s linear infinite fox-trot}@keyframes fox-trot{0%{transform:translate(-60px)}to{transform:translate(860px)}}.forest-scene .hedgehog-trundle{animation:20s ease-in-out infinite alternate hedgehog-trundle}@keyframes hedgehog-trundle{0%{transform:translate(0)}to{transform:translate(100px)}}.forest-scene .hedgehog-face{transform-box:fill-box;transform-origin:50%;animation:40s step-end infinite hedgehog-face}@keyframes hedgehog-face{0%,49.9%{transform:scaleX(1)}50%,to{transform:scaleX(-1)}}.forest-scene .note-float{animation:2.4s ease-out infinite note-float}.forest-scene .note-float.n2{animation-delay:.8s}.forest-scene .note-float.n3{animation-delay:1.6s}@keyframes note-float{0%{opacity:0;transform:translateY(0)}15%{opacity:1}to{opacity:0;transform:translateY(-14px)}}.forest-scene .woodpecker-peck{animation:2.2s ease-in-out infinite woodpecker-peck}@keyframes woodpecker-peck{0%,45%,to{transform:translate(0)}6%,18%,30%{transform:translate(2.4px)}12%,24%,36%{transform:translate(0)}}.forest-scene .owl-eyes{transform-box:fill-box;transform-origin:50%;animation:4.5s linear infinite owl-blink}@keyframes owl-blink{0%,92%,to{transform:scaleY(1)}95%{transform:scaleY(.1)}}.forest-scene .critter{cursor:pointer;-webkit-tap-highlight-color:transparent}.forest-scene .name-bubble{animation:.18s ease-out both bubble-pop}@keyframes bubble-pop{0%{opacity:0}to{opacity:1}}.forest-scene .critter.poked .rabbit-hop,.forest-scene .critter.poked .frog-hop{animation:.45s ease-out 2 poke-hop}@keyframes poke-hop{0%,to{transform:translateY(0)}50%{transform:translateY(-22px)}}.forest-scene .critter.poked .deer-bob{animation:.6s ease-out poke-startle}@keyframes poke-startle{0%,to{transform:translateY(0)}40%{transform:translateY(-9px)}}.forest-scene .critter.poked .scatter{animation:.8s ease-out poke-scatter}@keyframes poke-scatter{0%,to{transform:translate(0)}50%{transform:translate(8px,-16px)}}.forest-scene .critter.poked .squirrel-scamper{animation:.6s ease-in both poke-dash}@keyframes poke-dash{to{transform:translateY(-46px)}}.forest-scene .critter.poked .hedgehog-body{transform-box:fill-box;transform-origin:50% 100%;animation:.5s ease-in-out 2 alternate poke-curl}@keyframes poke-curl{to{transform:scale(.82)}}.forest-scene .critter.poked .owl-eyes{animation:.3s linear 3 owl-blink}.forest-scene .critter.poked .wing-flap{animation-duration:.12s}.forest-scene .critter.poked .note-float{animation-duration:.6s}.forest-scene .critter.poked .woodpecker-peck{animation-duration:.5s}@media (prefers-reduced-motion:reduce){.flower-svg .sway,.flower-svg .twinkle,.forest-scene .drift,.forest-scene .sun-glow,.forest-scene .tree-sway,.forest-scene .birds-fly,.forest-scene .rabbit-roam,.forest-scene .rabbit-face,.forest-scene .rabbit-hop,.forest-scene .deer-walk,.forest-scene .deer-bob,.forest-scene .deer-legs,.forest-scene .star-twinkle,.forest-scene .rainbow-in,.forest-scene .firefly-drift,.forest-scene .firefly-glow,.forest-scene .leaf-fall,.forest-scene .snow-fall,.forest-scene .flame-flicker,.forest-scene .swing-sway,.forest-scene .frog-hop,.forest-scene .butterfly-flit,.forest-scene .wing-flap,.forest-scene .bee-orbit-x,.forest-scene .bee-orbit-y,.forest-scene .squirrel-scamper,.forest-scene .fox-trot,.forest-scene .hedgehog-trundle,.forest-scene .hedgehog-face,.forest-scene .note-float,.forest-scene .woodpecker-peck,.forest-scene .owl-eyes,.forest-scene .critter.poked *{animation:none}.forest-scene .note-float{opacity:.6}}.flower-label{color:var(--ink);background:#ffffffd1;border-radius:999px;max-width:100%;padding:1px 10px;font-size:.85rem;font-weight:800;line-height:1.25}@media (width<=480px){.forest{height:280px}.flower-label{padding:1px 7px;font-size:.72rem}}.flower-status{color:var(--ink-soft);border-radius:999px;margin-left:6px;font-size:.72rem;font-weight:700}.garden-style-options{grid-template-columns:1fr 1fr;gap:14px;display:grid}.garden-style-option{color:var(--ink);cursor:pointer;background:#efedfb;border:3px solid #0000;border-radius:18px;flex-direction:column;align-items:center;gap:4px;padding:14px;display:flex}.garden-style-option.selected{border-color:var(--accent);box-shadow:var(--shadow);background:#fff}.garden-style-preview{align-items:flex-end;display:flex}.garden-style-preview .flower-svg{width:56px;height:96px}.garden-style-badge{color:var(--accent);font-size:.75rem;font-weight:800}@media (width<=480px){.garden-style-options{grid-template-columns:1fr}}.forest-empty{text-align:center;width:100%;color:var(--ink);background:#ffffffd1;border-radius:12px;margin-bottom:10px;padding:10px;font-weight:700}.pulse{animation:1.6s ease-in-out infinite pulse}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.progress-track{background:#efedfb;border-radius:999px;height:22px;overflow:hidden}.progress-fill{background:linear-gradient(90deg, var(--green), #7be3b8);border-radius:999px;min-width:8px;height:100%;transition:width .6s}.progress-label{color:var(--ink-soft);justify-content:space-between;margin-top:6px;font-size:.9rem;font-weight:700;display:flex}.progress-track.compact{height:12px;margin-top:4px}.pocket-card{border-top:7px solid var(--kid-color,var(--green))}.pocket-heading,.payout-main,.pocket-footer,.breakdown-row{justify-content:space-between;align-items:center;gap:14px;display:flex}.money-total{color:var(--green);white-space:nowrap;font-size:2.4rem;font-weight:800}.instrument-progress-list{gap:12px;display:grid}.pocket-footer{color:var(--ink-soft);margin-top:16px;font-size:.82rem;font-weight:700}.previous-payout{text-align:center;background:#fdf7e3;border-radius:14px;margin-top:16px;padding:12px 14px;font-weight:700}.payout-list{gap:10px;display:grid}.payout-row{border:2px solid #e6e3f2;border-radius:16px;padding:14px}.payout-row.paid{background:#f2fcf8;border-color:#a8e8cf}.payout-row .meta{color:var(--ink-soft);font-size:.8rem;font-weight:600}.payout-actions{align-items:center;gap:16px;display:flex}.payout-amount{white-space:nowrap;font-size:1.35rem}.paid-check{color:var(--ink);cursor:pointer;align-items:center;gap:7px;margin:0;display:flex}.payout-details{color:var(--ink-soft);margin-top:10px;font-size:.85rem;font-weight:600}.payout-details summary{cursor:pointer;font-weight:700}.breakdown-row{padding-top:7px}.bonus-row{color:var(--green)}.badge-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:12px;display:grid}.badge-tile{text-align:center;border:2px solid var(--gold);background:#fdf7e3;border-radius:16px;padding:14px 8px}.badge-tile.locked{filter:grayscale();opacity:.55;background:#f2f1f8;border-color:#dcd9ee}.badge-tile .emoji{font-size:2.2rem}.badge-tile .bname{font-size:.85rem;font-weight:800}.badge-tile .bdesc{color:var(--ink-soft);font-size:.72rem;line-height:1.25}.badge-tile.silhouette .emoji{filter:brightness(0)opacity(.35)}.friends-heading{color:var(--ink-soft);margin-bottom:8px;font-size:.9rem;font-weight:800}.celebrate-overlay{z-index:50;background:#1e193cbf;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.celebrate-card{text-align:center;background:#fff;border-radius:28px;max-width:90vw;padding:40px 50px;animation:.45s cubic-bezier(.2,1.6,.4,1) pop-in}.celebrate-card .emoji{font-size:5rem;animation:.9s ease-in-out infinite wiggle;display:inline-block}@keyframes pop-in{0%{opacity:0;transform:scale(.4)}to{opacity:1;transform:scale(1)}}@keyframes wiggle{0%,to{transform:rotate(-8deg)}50%{transform:rotate(8deg)}}.mood-row{justify-content:center;gap:18px;display:flex}.mood-btn{background:#efedfb;border:3px solid #0000;border-radius:20px;flex-direction:column;align-items:center;gap:4px;padding:18px 22px;transition:transform .12s,border-color .12s;display:flex}.mood-btn:hover{border-color:var(--bg1);box-shadow:var(--shadow);background:#fff;transform:translateY(-3px)scale(1.06)}.mood-btn .memoji{font-size:3rem;line-height:1.1}.mood-btn .mlabel{color:var(--ink);font-size:.9rem;font-weight:800}.bar-chart .bar-mood{font-size:.85rem;line-height:1}.confetti-piece{z-index:60;border-radius:3px;width:12px;height:12px;animation:linear forwards fall;position:fixed;top:-20px}@keyframes fall{to{transform:translateY(110vh)rotate(720deg)}}.session-list{list-style:none}.session-list li{border-bottom:1px solid #efedfb;justify-content:space-between;align-items:center;padding:9px 4px;font-weight:600;display:flex}.session-list .meta{color:var(--ink-soft);font-size:.85rem;font-weight:600}.bar-chart{align-items:flex-end;gap:8px;height:110px;margin-top:8px;display:flex}.bar-chart .bar-col{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:4px;height:100%;display:flex}.bar-chart .bar{background:var(--kid-color,var(--bg1));border-radius:8px 8px 3px 3px;width:100%;max-width:44px;min-height:3px;transition:height .4s}.bar-chart .bar-label{color:var(--ink-soft);font-size:.72rem;font-weight:700}.bar-chart .bar-value{font-size:.72rem;font-weight:800}.stat-big{font-size:2rem;font-weight:800}.stat-caption{color:var(--ink-soft);font-size:.85rem;font-weight:700}.error-text{color:#e5484d;margin-top:8px;font-weight:700}.center{text-align:center}.mt{margin-top:16px}.mt-small{margin-top:8px}@media (width<=560px){.pocket-heading,.payout-main,.pocket-footer{flex-direction:column;align-items:flex-start}.payout-actions{justify-content:space-between;width:100%}}
