*{box-sizing:border-box;margin:0;padding:0}:root{--bg1:#4aa8e8;--bg2:#2fae87;--card:#fff;--ink:#24413d;--ink-soft:#5f7d78;--accent:#ff9d43;--gold:#ffc93c;--green:#35c98e;--radius:22px;--shadow:0 10px 30px #183c362e}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 #cfe4de;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}.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 #183c3640}.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:#e8f3ef}.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}.task-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;margin-top:12px;display:grid}.task-btn{color:var(--ink);background:#e8f3ef;border:3px solid #0000;border-radius:18px;flex-direction:column;align-items:center;gap:2px;padding:16px 10px;font-size:1rem;font-weight:700;transition:transform .12s;display:flex}.task-btn:hover{transform:translateY(-2px)scale(1.03)}.task-btn.selected{border-color:var(--kid-color,var(--accent));box-shadow:var(--shadow);background:#fff}.task-btn .emoji{font-size:2rem}.task-btn .tname{text-align:center;line-height:1.15}.task-btn .tpoints{color:var(--ink-soft);font-size:.85rem;font-weight:800}.task-btn.small{padding:10px 8px}.task-btn.small .emoji{font-size:1.5rem}.task-btn.small .tname{font-size:.85rem}.task-toggle-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px;display:grid}.deed-confirm{text-align:center;padding:12px 0}.deed-confirm-emoji{font-size:4.6rem;line-height:1.1;animation:.35s cubic-bezier(.2,1.6,.4,1) pop-in}.deed-confirm .stars{color:var(--accent);white-space:nowrap}.deed-thanks{text-align:center;border:2px solid var(--gold);background:#fdf7e3;border-radius:16px;padding:12px;font-size:1.25rem;font-weight:800;animation:.45s cubic-bezier(.2,1.6,.4,1) pop-in}.deed-thanks-stars{color:var(--accent);font-size:1.5rem}.garden-caption{color:var(--ink-soft);margin-bottom:12px;font-weight:700}.garden{border-radius:18px;height:260px;position:relative;overflow:hidden;box-shadow:inset 0 0 0 2px #183c360f}.garden-scene{width:100%;height:100%;display:block;position:absolute;inset:0}.garden-flowerbed{pointer-events:none;position:absolute;inset:0}.flower-spot{position:absolute;transform:translate(-50%)}.flower-grow{transform-origin:50% 100%;animation:1.1s cubic-bezier(.34,1.4,.5,1) backwards flower-grow}@keyframes flower-grow{0%{transform:scale(.04)}to{transform:scale(1)}}.flower-sway{transform-origin:50% 100%;animation:4s ease-in-out infinite alternate flower-sway}@keyframes flower-sway{0%{transform:rotate(calc(-1 * var(--sway,1.2deg)))}to{transform:rotate(var(--sway,1.2deg))}}.garden-critters{pointer-events:none;z-index:40;width:100%;height:100%;display:block;position:absolute;inset:0}.critter-roam{animation:critter-roam var(--dur,10s) ease-in-out infinite alternate}@keyframes critter-roam{0%{transform:translate(0)}to{transform:translateX(var(--roam,100px))}}.critter-face{transform-box:fill-box;transform-origin:50%;animation:critter-face calc(var(--dur,10s) * 2) step-end infinite}@keyframes critter-face{0%,to{transform:scaleX(1)}50%{transform:scaleX(-1)}}.bee-bob{animation:1.1s ease-in-out infinite alternate bee-bob}@keyframes bee-bob{0%{transform:translateY(-5px)rotate(-6deg)}to{transform:translateY(5px)rotate(6deg)}}.bee-wings{transform-box:fill-box;transform-origin:50% 100%;animation:.12s ease-in-out infinite alternate bee-wings}@keyframes bee-wings{0%{transform:scaleY(1)}to{transform:scaleY(.45)}}.butterfly-float{animation:2.4s ease-in-out infinite alternate butterfly-float}@keyframes butterfly-float{0%{transform:translateY(-9px)rotate(-5deg)}to{transform:translateY(7px)rotate(5deg)}}.butterfly-wing{transform-box:fill-box;transform-origin:100%;animation:.5s ease-in-out infinite alternate butterfly-wing}@keyframes butterfly-wing{0%{transform:scaleX(1)}to{transform:scaleX(.25)}}.rabbit-hop{animation:1.5s ease-in-out infinite rabbit-hop}@keyframes rabbit-hop{0%,45%,to{transform:translateY(0)}22%{transform:translateY(-9px)}}.hedgehog-walk{animation:hedgehog-walk var(--dur,50s) linear infinite}@keyframes hedgehog-walk{0%{transform:translate(-60px)}to{transform:translate(860px)}}.hedgehog-waddle{transform-box:fill-box;transform-origin:50% 100%;animation:.55s ease-in-out infinite alternate hedgehog-waddle}@keyframes hedgehog-waddle{0%{transform:rotate(-3deg)translateY(0)}to{transform:rotate(3deg)translateY(-1px)}}.cloud-drift{animation:cloud-drift var(--dur,60s) ease-in-out infinite alternate}@keyframes cloud-drift{0%{transform:translate(-40px)}to{transform:translate(40px)}}.birds-fly{animation:42s linear infinite birds-fly}@keyframes birds-fly{0%{transform:translate(-100px)}to{transform:translate(900px)}}.sun-breathe{transform-box:fill-box;transform-origin:50%;animation:6s ease-in-out infinite alternate sun-breathe}@keyframes sun-breathe{0%{transform:scale(.94)}to{transform:scale(1.06)}}.smoke-rise{animation:5s ease-in-out infinite alternate smoke-rise}@keyframes smoke-rise{0%{transform:translate(0)}to{transform:translate(4px,-6px)}}.window-glow{animation:3s ease-in-out infinite alternate window-glow}@keyframes window-glow{0%{opacity:.25}to{opacity:.5}}@media (prefers-reduced-motion:reduce){.flower-grow,.flower-sway,.critter-roam,.critter-face,.bee-bob,.bee-wings,.butterfly-float,.butterfly-wing,.rabbit-hop,.hedgehog-walk,.hedgehog-waddle,.cloud-drift,.birds-fly,.sun-breathe,.smoke-rise,.window-glow{animation:none}}.flower-svg{width:100%;height:auto;display:block;overflow:visible}.garden-empty{text-align:center;max-width:85%;color:var(--ink);background:#ffffffd1;border-radius:12px;padding:10px 14px;font-weight:700;position:absolute;bottom:16px;left:50%;transform:translate(-50%)}.garden-hint{color:var(--ink-soft);margin-top:10px;font-size:.9rem;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:#e8f3ef;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}.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:#f0f4f2;border-color:#d7e2dd}.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}.celebrate-overlay{z-index:50;background:#12302bbf;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)}}.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)}}.deed-list{list-style:none}.deed-list li{border-bottom:1px solid #e8f3ef;justify-content:space-between;align-items:center;padding:9px 4px;font-weight:600;display:flex}.deed-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}
