.pet-svg{display:block;overflow:visible;--pet-phase: 0s;--pet-breathe-dur: 3s;--pet-blink-dur: 5s}.pet-svg .pet-body{transform-box:fill-box;transform-origin:50% 100%;animation:pet-breathe var(--pet-breathe-dur) ease-in-out infinite;animation-delay:var(--pet-phase)}@keyframes pet-breathe{0%,to{transform:translateY(0) scaleY(1)}50%{transform:translateY(-1.2px) scaleY(1.035)}}.pet-svg .pet-eyes{transform-box:fill-box;transform-origin:50% 50%;animation:pet-blink var(--pet-blink-dur) ease-in-out infinite;animation-delay:var(--pet-phase)}@keyframes pet-blink{0%,92%,to{transform:scaleY(1)}95%{transform:scaleY(.12)}}.pet-svg .pet-zzz{transform-box:fill-box;transform-origin:50% 100%;animation:pet-zzz 3.2s ease-in-out infinite;animation-delay:var(--pet-phase)}@keyframes pet-zzz{0%{transform:translateY(2px);opacity:.35}50%{transform:translateY(-2px);opacity:1}to{transform:translateY(-5px);opacity:0}}.pet-tap-target{cursor:pointer;-webkit-tap-highlight-color:transparent}.pet-svg.is-tapped{animation:pet-bounce .5s ease}@keyframes pet-bounce{0%{transform:translateY(0) rotate(0)}25%{transform:translateY(-8px) rotate(-4deg)}50%{transform:translateY(0) rotate(3deg)}70%{transform:translateY(-3px) rotate(-2deg)}to{transform:translateY(0) rotate(0)}}.pet-svg.is-mood-shift{animation:pet-pop .45s ease}@keyframes pet-pop{0%{transform:scale(1)}35%{transform:scale(1.14) rotate(-3deg)}65%{transform:scale(.97) rotate(2deg)}to{transform:scale(1)}}@media(prefers-reduced-motion:reduce){.pet-svg .pet-body,.pet-svg .pet-eyes,.pet-svg .pet-zzz,.pet-svg.is-tapped,.pet-svg.is-mood-shift{animation:none!important}}.board{position:relative;min-height:100%;padding:calc(16px + env(safe-area-inset-top)) calc(16px + env(safe-area-inset-right)) calc(16px + env(safe-area-inset-bottom)) calc(16px + env(safe-area-inset-left));background:radial-gradient(circle at 20% 0%,rgba(255,201,60,.1),transparent 40%),radial-gradient(circle at 90% 10%,rgba(77,171,247,.1),transparent 40%),var(--bg)}.board-columns{display:flex;gap:18px;align-items:stretch;min-height:calc(100vh - 32px);overflow-x:auto;padding:8px 4px 16px;-webkit-overflow-scrolling:touch}.kid-column{position:relative;flex:1 1 280px;min-width:240px;max-width:460px;display:flex;flex-direction:column;background:var(--surface);border:4px solid var(--kid);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);overflow:hidden}.kid-header{display:block;width:100%;text-align:left;padding:16px 16px 14px;background:color-mix(in srgb,var(--kid) 16%,var(--surface));border-bottom:3px solid color-mix(in srgb,var(--kid) 40%,transparent);transition:background .15s ease}.kid-header:active{background:color-mix(in srgb,var(--kid) 26%,var(--surface))}.kid-header-top{display:flex;align-items:center;gap:12px}.kid-avatar{flex:0 0 auto;line-height:0;border-radius:50%;box-shadow:0 0 0 3px var(--surface),0 2px 6px #3d3a4b2e}.kid-name{flex:1 1 auto;font-size:1.7rem;font-weight:800;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kid-pet{flex:0 0 auto;line-height:0}.kid-stats{display:flex;gap:10px;margin-top:12px}.stat{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;background:var(--surface);box-shadow:var(--shadow-card),0 3px #3d3a4b1f;font-size:1.35rem;font-weight:800;transition:transform .1s ease,box-shadow .1s ease}.stat:active{transform:translateY(2px);box-shadow:var(--shadow-card),0 1px #3d3a4b1f}.stat-icon{font-size:1.3rem;line-height:1}.stat-today .stat-value{color:var(--done, #2a9d5c)}.stat-streak .stat-value{color:var(--flame)}.stat-best{font-size:.8rem;font-weight:700;color:var(--muted);margin-left:4px;white-space:nowrap}.stat-streak.is-zero{opacity:.4}.streak-graced{margin-top:10px;padding:6px 12px;border-radius:999px;background:color-mix(in srgb,var(--flame) 14%,#fff);color:color-mix(in srgb,var(--flame) 65%,var(--ink));font-size:.95rem;font-weight:800;text-align:center}.kid-progress{margin-top:12px}.progress-label{font-size:1.05rem;font-weight:700;color:var(--muted);margin-bottom:6px}.progress-bar{height:12px;border-radius:999px;background:color-mix(in srgb,var(--kid) 18%,#fff);overflow:hidden}.progress-fill{height:100%;border-radius:999px;background:var(--kid);transition:width .35s cubic-bezier(.22,1,.36,1)}.kid-column.is-all-done{border-color:var(--done);box-shadow:0 0 0 4px color-mix(in srgb,var(--done) 30%,transparent),var(--shadow-pop)}.kid-cards{display:flex;flex-direction:column;gap:10px;padding:14px;flex:1 1 auto}.card-slot{transition:transform .3s cubic-bezier(.22,1,.36,1)}.chore-card{display:flex;align-items:center;gap:14px;width:100%;min-height:76px;padding:12px 16px;border-radius:var(--radius-md);background:var(--surface);border:3px solid #ece8f2;box-shadow:var(--shadow-card),0 3px #d4cfe0;text-align:left;transition:background .2s ease,border-color .2s ease,box-shadow .1s ease,transform .1s ease}.chore-card:active{transform:translateY(2px);box-shadow:var(--shadow-card),0 1px #d4cfe0}.chore-icon{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:52px;height:52px;border-radius:var(--radius-sm);background:#fff8ef;line-height:0;transition:background .2s ease}.chore-label{flex:1 1 auto;font-size:1.35rem;font-weight:700;color:var(--ink);line-height:1.15;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.chore-reward{flex:0 0 auto;display:inline-flex;align-items:center;gap:2px;padding:3px 8px;border-radius:999px;background:#fff8e0;border:2px solid color-mix(in srgb,var(--star, #ffc93c) 60%,#fff);font-size:.95rem;font-weight:800;color:#d99a00;line-height:1;transition:background .2s ease,border-color .2s ease,opacity .2s ease}.chore-reward-star{font-size:.9rem}.chore-card.is-done .chore-reward{background:color-mix(in srgb,var(--done) 22%,#fff);border-color:var(--done);color:color-mix(in srgb,var(--done) 70%,var(--ink));opacity:.85}.chore-check{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;border:3px solid #d9d4e2;background:transparent;transition:background .2s ease,border-color .2s ease,transform .2s ease}.chore-card.is-done{background:color-mix(in srgb,var(--done) 18%,#fff);border-color:var(--done);box-shadow:var(--shadow-card),0 3px color-mix(in srgb,var(--done) 60%,#b0cdb5)}.chore-card.is-done:active{box-shadow:var(--shadow-card),0 1px color-mix(in srgb,var(--done) 60%,#b0cdb5)}.chore-card.is-done .chore-icon{background:color-mix(in srgb,var(--done) 26%,#fff)}.chore-card.is-done .chore-label{color:color-mix(in srgb,var(--done) 60%,var(--ink))}.chore-card.is-done .chore-check{background:var(--done);border-color:var(--done);transform:scale(1.05)}.empty-column{flex:1 1 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:40px 16px;text-align:center;color:var(--muted)}.empty-text{margin:0;font-size:1.4rem;font-weight:800}.parent-btn{position:absolute;top:14px;right:16px;z-index:20;display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:999px;background:var(--surface);box-shadow:var(--shadow-card);color:var(--muted);font-size:1rem;font-weight:700;opacity:.7;transition:opacity .15s ease,transform .12s ease}.parent-btn:hover{opacity:1}.parent-btn:active{transform:scale(.95)}.parent-btn-gear{font-size:1.05rem;line-height:1}.board-firstrun{min-height:100%;display:flex;align-items:center;justify-content:center;padding:24px;background:radial-gradient(circle at 20% 10%,rgba(255,201,60,.18),transparent 45%),radial-gradient(circle at 85% 80%,rgba(151,117,250,.16),transparent 45%),var(--bg)}.firstrun-card{max-width:460px;width:100%;text-align:center;padding:40px 32px;background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-pop)}.firstrun-emoji{font-size:4.5rem;line-height:1;margin-bottom:8px;animation:firstrun-bob 2s ease-in-out infinite}@keyframes firstrun-bob{0%,to{transform:translateY(0) rotate(-6deg)}50%{transform:translateY(-8px) rotate(6deg)}}.firstrun-title{margin:0 0 8px;font-size:2.1rem;font-weight:800;color:var(--ink)}.firstrun-sub{margin:0 0 28px;font-size:1.2rem;color:var(--muted);font-weight:600}.firstrun-btn{display:inline-block;padding:18px 40px;border-radius:999px;background:var(--kid-3);color:#fff;font-size:1.5rem;font-weight:800;box-shadow:var(--shadow-pop);transition:transform .12s ease}.firstrun-btn:active{transform:scale(.96)}.confetti-layer{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none;z-index:15}.confetti-piece{position:absolute;top:38%;display:block;opacity:0;will-change:transform,opacity;animation-name:confetti-fly;animation-timing-function:cubic-bezier(.2,.6,.4,1);animation-fill-mode:forwards}@keyframes confetti-fly{0%{transform:translate(0) rotate(0) scale(.6);opacity:0}12%{opacity:1;transform:translate(calc(var(--drift) * .25),var(--rise)) rotate(calc(var(--spin) * .2)) scale(1)}to{transform:translate(var(--drift),var(--fall)) rotate(var(--spin)) scale(.9);opacity:0}}.chore-card.is-just-completed{animation:card-pop .42s cubic-bezier(.34,1.56,.64,1);z-index:1}@keyframes card-pop{0%{transform:scale(1)}45%{transform:scale(1.08)}to{transform:scale(1)}}.chore-check-path{stroke-dasharray:24;stroke-dashoffset:0}.chore-card.is-just-completed .chore-check-path{animation:check-draw .34s ease-out .06s both}@keyframes check-draw{0%{stroke-dashoffset:24}to{stroke-dashoffset:0}}.stat-today .stat-value.is-bumping{animation:counter-bump .3s cubic-bezier(.34,1.56,.64,1);display:inline-block}@keyframes counter-bump{0%{transform:scale(1)}40%{transform:scale(1.2)}to{transform:scale(1)}}.star-fly{position:fixed;left:0;top:0;z-index:60;font-size:26px;line-height:1;pointer-events:none;filter:drop-shadow(0 2px 4px rgba(61,58,75,.25));animation-name:star-fly-arc;animation-timing-function:cubic-bezier(.4,0,.6,1);animation-fill-mode:forwards}@keyframes star-fly-arc{0%{transform:translate(var(--fx),var(--fy)) scale(.7);opacity:0}15%{opacity:1;transform:translate(calc((var(--fx) + var(--mx)) / 2),calc((var(--fy) + var(--my)) / 2)) scale(1.15)}55%{opacity:1;transform:translate(var(--mx),var(--my)) scale(1.25)}to{transform:translate(var(--tx),var(--ty)) scale(.85);opacity:.9}}.kid-column.is-anticipating{animation:column-anticipate .3s ease}@keyframes column-anticipate{0%{transform:scale(1)}60%{transform:scale(1.015)}to{transform:scale(1)}}.kid-pet.is-perking{animation:pet-perk .3s cubic-bezier(.34,1.56,.64,1);display:inline-block}@keyframes pet-perk{0%{transform:translateY(0) scale(1)}55%{transform:translateY(-6px) scale(1.18)}to{transform:translateY(0) scale(1)}}.alldone{position:absolute;top:0;right:0;bottom:0;left:0;z-index:40;display:flex;align-items:center;justify-content:center;padding:16px;text-align:center;cursor:pointer;background:radial-gradient(circle at 50% 42%,color-mix(in srgb,var(--kid) 24%,rgba(255,255,255,.94)),#ffffffeb)}.alldone-stage{display:flex;flex-direction:column;align-items:center;gap:10px}.alldone-pet{line-height:0}.alldone-headline{margin:0;font-size:2rem;font-weight:800;line-height:1.05;color:var(--ink);text-shadow:0 2px 0 color-mix(in srgb,var(--kid) 30%,transparent)}.alldone-sub{margin:0;font-size:1.5rem;font-weight:800;color:#d99a00}.alldone-anticipation{animation:alldone-bg-in .3s ease both}.alldone-anticipation .alldone-stage{opacity:0;transform:scale(.8)}.alldone-burst{animation:alldone-bg-in .2s ease both}.alldone-burst .alldone-stage{animation:alldone-stage-burst .5s cubic-bezier(.34,1.56,.64,1) both}.alldone-burst .alldone-pet{animation:alldone-pet-bounce 1s ease-in-out .4s 1}.alldone-settle{animation:alldone-bg-out .6s ease both}.alldone-settle .alldone-stage{animation:alldone-stage-settle .6s ease both}.alldone-reduced,.alldone-reduced .alldone-stage{animation:none}@keyframes alldone-bg-in{0%{opacity:0}to{opacity:1}}@keyframes alldone-bg-out{0%{opacity:1}to{opacity:0}}@keyframes alldone-stage-burst{0%{opacity:0;transform:scale(.6)}70%{opacity:1;transform:scale(1.06)}to{opacity:1;transform:scale(1)}}@keyframes alldone-pet-bounce{0%,to{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-12px) rotate(3deg)}}@keyframes alldone-stage-settle{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.12)}}@media(prefers-reduced-motion:reduce){.confetti-piece,.firstrun-emoji,.card-slot,.progress-fill,.chore-card.is-just-completed,.chore-card.is-just-completed .chore-check-path,.stat-today .stat-value.is-bumping,.star-fly,.kid-column.is-anticipating,.kid-pet.is-perking,.alldone,.alldone .alldone-stage,.alldone .alldone-pet{animation:none!important;transition:none!important}.chore-card:active,.stat:active{transform:none!important}.alldone .alldone-stage{opacity:1!important;transform:none!important}}.room-screen{display:flex;flex-direction:column;height:100%;background:var(--bg);overflow:hidden;position:relative}.room-header{display:flex;align-items:center;gap:12px;padding:calc(12px + env(safe-area-inset-top)) calc(16px + env(safe-area-inset-right)) 12px calc(16px + env(safe-area-inset-left));background:var(--surface);box-shadow:var(--shadow-card);flex-shrink:0;z-index:10;position:relative}.room-header__back{display:flex;align-items:center;justify-content:center;min-width:56px;min-height:56px;border-radius:var(--radius-md);background:var(--bg);font-size:24px;transition:transform .1s;flex-shrink:0}.room-header__back:active{transform:scale(.93)}.room-header__avatar{flex-shrink:0;border-radius:50%;overflow:hidden}.room-header__info{flex:1;min-width:0}.room-header__name{font-size:20px;font-weight:800;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.room-header__balance{display:inline-flex;align-items:center;gap:4px;background:var(--star);color:#5a3e00;font-size:22px;font-weight:900;padding:6px 14px;border-radius:var(--radius-sm);flex-shrink:0;min-width:56px;justify-content:center}.room-header__balance-star{font-size:20px}.room-header__shop-btn{display:flex;align-items:center;justify-content:center;gap:6px;min-width:56px;min-height:56px;padding:0 14px;border-radius:var(--radius-md);background:#ffc93c;color:#5a3e00;font-size:16px;font-weight:800;flex-shrink:0;transition:transform .1s,box-shadow .1s;box-shadow:0 3px #e5a800}.room-header__shop-btn:active{transform:translateY(2px);box-shadow:0 1px #e5a800}.room-scene-wrap{flex:1;position:relative;overflow:hidden;min-height:0}.room-scene-bg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.room-slot{position:absolute;display:flex;align-items:stretch;justify-content:stretch;border-radius:var(--radius-sm);cursor:pointer;border:3px solid transparent;transition:border-color .15s,transform .1s,box-shadow .15s;background:transparent;overflow:hidden}.room-slot--filled>svg,.room-slot--filled>span>svg{width:100%;height:100%;display:block;pointer-events:none}.room-slot--empty>svg{width:100%;height:100%;display:block;pointer-events:none}.room-slot:hover,.room-slot:focus-visible{border-color:var(--star);box-shadow:0 0 0 3px #ffc93c59;transform:scale(1.04);z-index:5}.room-slot:active{transform:scale(.97)}.room-slot--empty,.room-slot--filled{opacity:1}.room-pet{position:absolute;pointer-events:none;right:8%;bottom:8%;z-index:6;filter:drop-shadow(0 4px 8px rgba(61,58,75,.2));display:flex;flex-direction:column;align-items:center}.room-pet .pet-wrap{pointer-events:auto}.room-pet .pet-tap-target{cursor:pointer}.pet-speech{pointer-events:none;background:var(--surface);color:var(--ink);font-size:14px;font-weight:800;padding:7px 12px;border-radius:14px;margin-bottom:6px;box-shadow:var(--shadow-pop);white-space:nowrap;position:relative;animation:pet-speech-pop .22s ease}.pet-speech:after{content:"";position:absolute;left:50%;bottom:-6px;transform:translate(-50%);border-left:7px solid transparent;border-right:7px solid transparent;border-top:7px solid var(--surface)}@keyframes pet-speech-pop{0%{transform:scale(.6) translateY(6px);opacity:0}to{transform:scale(1) translateY(0);opacity:1}}.room-status{position:absolute;left:50%;bottom:2%;transform:translate(-50%);z-index:7;pointer-events:none;max-width:92%;text-align:center;background:#ffffffeb;color:var(--ink);font-size:15px;font-weight:800;line-height:1.25;padding:8px 16px;border-radius:var(--radius-md);box-shadow:var(--shadow-card)}.room-header__sub{font-size:13px;font-weight:700;color:var(--muted);line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media(prefers-reduced-motion:reduce){.pet-speech{animation:none!important}}.slot-picker-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#3d3a4b73;z-index:50;display:flex;align-items:center;justify-content:center;padding:16px;animation:fade-in .15s ease}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.slot-picker-panel{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-pop);width:100%;max-width:480px;max-height:80vh;display:flex;flex-direction:column;overflow:hidden;animation:slide-up .18s ease}@keyframes slide-up{0%{transform:translateY(24px);opacity:0}to{transform:translateY(0);opacity:1}}.slot-picker-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px 12px;border-bottom:2px solid var(--bg);flex-shrink:0}.slot-picker-title{font-size:18px;font-weight:800;color:var(--ink)}.slot-picker-close{font-size:22px;min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);color:var(--muted);transition:background .1s}.slot-picker-close:hover{background:var(--bg)}.slot-picker-list{overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:8px;flex:1}.slot-picker-item{display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:var(--radius-md);background:var(--bg);border:3px solid transparent;transition:border-color .12s,background .12s,transform .1s;min-height:56px;width:100%;text-align:left}.slot-picker-item:hover,.slot-picker-item:focus-visible{background:#fff5d6;border-color:var(--star)}.slot-picker-item:active{transform:scale(.98)}.slot-picker-item--selected{border-color:var(--done);background:#e8faf0}.slot-picker-item--remove{background:#fff0f0;color:#c33}.slot-picker-item--remove:hover{background:#ffe0e0;border-color:#ff6b6b}.slot-picker-item__art{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:52px;height:52px}.slot-picker-item__label{font-size:16px;font-weight:700;flex:1}.slot-picker-item__check{font-size:22px;color:var(--done);flex-shrink:0}.slot-picker-empty{padding:28px 16px;text-align:center;color:var(--muted);font-size:16px;line-height:1.5}.shop-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#3d3a4b66;z-index:40;animation:fade-in .15s ease}.shop-panel{position:fixed;left:0;right:0;bottom:0;max-height:80vh;background:var(--surface);border-radius:var(--radius-lg) var(--radius-lg) 0 0;box-shadow:var(--shadow-pop);z-index:41;display:flex;flex-direction:column;overflow:hidden;animation:sheet-up .22s ease;padding-bottom:env(safe-area-inset-bottom)}@keyframes sheet-up{0%{transform:translateY(40px);opacity:0}to{transform:translateY(0);opacity:1}}.shop-panel__header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px 10px;flex-shrink:0;border-bottom:2px solid var(--bg)}.shop-panel__title{font-size:22px;font-weight:900}.shop-panel__balance{display:inline-flex;align-items:center;gap:4px;background:var(--star);color:#5a3e00;font-size:18px;font-weight:900;padding:4px 12px;border-radius:var(--radius-sm)}.shop-panel__close{font-size:22px;min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);color:var(--muted);transition:background .1s}.shop-panel__close:hover{background:var(--bg)}.shop-panel__scroll{overflow-y:auto;padding:12px 16px 24px;flex:1}.shop-section{margin-bottom:20px}.shop-section__title{font-size:14px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 10px 4px}.shop-section__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px}.shop-card{display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 8px 10px;border-radius:var(--radius-md);background:var(--bg);border:3px solid transparent;cursor:pointer;transition:border-color .12s,transform .1s,box-shadow .12s;position:relative;min-height:56px}.shop-card--affordable{background:#fffbe8;border-color:var(--star)}.shop-card--affordable:hover,.shop-card--affordable:focus-visible{box-shadow:0 4px 12px #ffc93c4d;transform:translateY(-2px)}.shop-card--unaffordable{opacity:.75;cursor:default}.shop-card--owned{background:#e8faf0;border-color:var(--done);cursor:default;opacity:.85}.shop-card:active:not(.shop-card--owned):not(.shop-card--unaffordable){transform:scale(.96)}.shop-card__art{display:flex;align-items:center;justify-content:center;width:70px;height:60px}.shop-card__name{font-size:12px;font-weight:700;text-align:center;line-height:1.2;color:var(--ink)}.shop-card__price{display:inline-flex;align-items:center;gap:3px;font-size:13px;font-weight:800;color:#5a3e00;background:var(--star);border-radius:8px;padding:2px 8px}.shop-card__owned-badge{font-size:11px;font-weight:800;color:#2a7a4b;background:#b8f5d2;border-radius:8px;padding:2px 8px;text-transform:uppercase;letter-spacing:.04em}.shop-card__need-more{font-size:11px;font-weight:700;color:var(--muted);text-align:center}.shop-card--dream{border-color:#ffb300;background:linear-gradient(135deg,#fffdf2,#fff4cf);box-shadow:0 0 0 1px #ffb30040,0 4px 14px #ffb30047}.shop-card--dream:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:var(--radius-md);pointer-events:none;background:linear-gradient(115deg,transparent 30%,rgba(255,255,255,.55) 48%,transparent 66%);background-size:250% 100%;animation:dream-shimmer 3.2s ease-in-out infinite}.shop-card--dream.shop-card--owned:after{display:none}@keyframes dream-shimmer{0%{background-position:140% 0}60%,to{background-position:-40% 0}}@media(prefers-reduced-motion:reduce){.shop-card--dream:after{animation:none}}.shop-card__dream-mark{position:absolute;top:4px;right:6px;font-size:14px;z-index:1;line-height:1;filter:drop-shadow(0 1px 1px rgba(180,120,0,.4))}.shop-collected{text-align:center;padding:22px 16px 24px;margin-bottom:8px;border-radius:var(--radius-md);background:linear-gradient(135deg,#fff7d6,#ffe8a3);border:3px solid #ffb300;box-shadow:0 4px 16px #ffb3004d}.shop-collected__trophy{font-size:48px;line-height:1;animation:collected-pop 1.6s ease-in-out infinite}.shop-collected__title{margin-top:8px;font-size:18px;font-weight:900;color:#8a5a00}.shop-collected__sub{margin-top:4px;font-size:13px;font-weight:700;color:#a0712a}@keyframes collected-pop{0%,to{transform:scale(1) rotate(-4deg)}50%{transform:scale(1.12) rotate(4deg)}}@media(prefers-reduced-motion:reduce){.shop-collected__trophy{animation:none}}.shop-fanfare{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:99;display:flex;align-items:center;justify-content:center}.shop-fanfare__burst{animation:fanfare-burst .7s ease-out forwards;font-size:64px;filter:drop-shadow(0 0 20px rgba(255,201,60,.8))}@keyframes fanfare-burst{0%{transform:scale(.2);opacity:0}40%{transform:scale(1.3);opacity:1}70%{transform:scale(1);opacity:1}to{transform:scale(1.1);opacity:0}}.place-offer{position:fixed;bottom:calc(24px + env(safe-area-inset-bottom));left:50%;transform:translate(-50%);background:var(--ink);color:#fff;border-radius:var(--radius-md);padding:12px 20px;display:flex;align-items:center;gap:10px;box-shadow:var(--shadow-pop);z-index:60;animation:toast-in .2s ease;white-space:nowrap}@keyframes toast-in{0%{transform:translate(-50%) translateY(16px);opacity:0}to{transform:translate(-50%) translateY(0);opacity:1}}.place-offer__text{font-size:14px;font-weight:700}.place-offer__btn{background:var(--star);color:#5a3e00;font-size:13px;font-weight:800;padding:6px 14px;border-radius:var(--radius-sm);transition:transform .1s}.place-offer__btn:active{transform:scale(.95)}.place-offer__dismiss{font-size:18px;opacity:.6;padding:4px;min-width:32px;min-height:32px;display:flex;align-items:center;justify-content:center}.shop-pin-prompt{display:flex;flex-direction:column;align-items:center;gap:14px;padding:24px 20px;min-height:340px;justify-content:center}.shop-pin-prompt__label{font-size:.95rem;font-weight:700;color:var(--ink);text-align:center;margin:0;max-width:260px;line-height:1.4}.shop-pin-dots{display:flex;gap:14px}.shop-pin-dots--error .shop-pin-dot{border-color:#e03131}.shop-pin-dot{width:18px;height:18px;border-radius:50%;border:3px solid #d8d4e8;background:transparent;transition:background .12s,border-color .12s}.shop-pin-dot.filled{background:var(--ink);border-color:var(--ink)}.shop-pin-prompt__error{font-size:.8rem;color:#e03131;font-weight:600;margin:0}.shop-pin-keypad{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;width:100%;max-width:240px}.shop-pin-key{height:56px;font-size:1.3rem;font-weight:700;background:var(--surface);border:2px solid #e8e4f0;border-radius:var(--radius-md);color:var(--ink);cursor:pointer;transition:background .1s;display:flex;align-items:center;justify-content:center}.shop-pin-key:active{background:#f0ecff}.shop-pin-key--empty{background:transparent;border:none;pointer-events:none}.shop-pin-cancel{font-size:.82rem;font-weight:600;color:var(--muted);background:none;border:none;cursor:pointer;padding:4px 12px;text-decoration:underline}.parent-root{display:flex;flex-direction:column;height:100%;min-height:100dvh;background:var(--bg);color:var(--ink);font-family:var(--font)}.gate-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100dvh;padding:24px;gap:24px}.gate-title{font-size:1.8rem;font-weight:700;margin:0;text-align:center;color:var(--ink)}.gate-subtitle{font-size:1rem;color:var(--muted);text-align:center;margin:0;max-width:320px}.pin-dots{display:flex;gap:16px;justify-content:center}.pin-dot{width:20px;height:20px;border-radius:50%;border:3px solid var(--muted);background:transparent;transition:background .15s,border-color .15s}.pin-dot.filled{background:var(--ink);border-color:var(--ink)}.pin-keypad{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;width:100%;max-width:280px}.pin-key{height:72px;font-size:1.6rem;font-weight:700;background:var(--surface);border:2px solid #e8e4f0;border-radius:var(--radius-md);box-shadow:var(--shadow-card);color:var(--ink);cursor:pointer;transition:background .1s,transform .08s;display:flex;align-items:center;justify-content:center}.pin-key:active{background:#f0ecff;transform:scale(.95)}.pin-key.delete-key{font-size:1.2rem;color:var(--muted)}.pin-key.empty-key{background:transparent;border:none;box-shadow:none;pointer-events:none}.pin-error{color:#e03131;font-size:.9rem;font-weight:600;min-height:1.4em;text-align:center}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-8px)}40%{transform:translate(8px)}60%{transform:translate(-6px)}80%{transform:translate(4px)}}.pin-dots.shake{animation:shake .4s ease}.gate-small-print{font-size:.75rem;color:var(--muted);text-align:center;max-width:300px;line-height:1.5;margin:0}.gate-step-label{font-size:.95rem;color:var(--muted);font-weight:600;text-align:center;margin:0}.parent-header{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;background:var(--surface);border-bottom:2px solid #f0ecf8;gap:12px;flex-shrink:0}.parent-header-title{font-size:1.2rem;font-weight:700;margin:0;color:var(--ink);white-space:nowrap}.btn-exit{padding:10px 20px;background:var(--ink);color:#fff;border-radius:var(--radius-sm);font-size:.9rem;font-weight:700;cursor:pointer;border:none;white-space:nowrap;transition:opacity .15s}.btn-exit:hover{opacity:.85}.tab-bar{display:flex;background:var(--surface);border-bottom:2px solid #f0ecf8;overflow-x:auto;scrollbar-width:none;flex-shrink:0}.tab-bar::-webkit-scrollbar{display:none}.tab-btn{padding:14px 20px;font-size:.9rem;font-weight:600;color:var(--muted);white-space:nowrap;border-bottom:3px solid transparent;margin-bottom:-2px;cursor:pointer;background:none;border-left:none;border-right:none;border-top:none;transition:color .15s}.tab-btn.active{color:var(--ink);border-bottom-color:var(--ink)}.tab-btn:hover:not(.active){color:var(--ink)}.tab-content{flex:1;overflow-y:auto;padding:20px}.section-heading{font-size:1rem;font-weight:700;margin:0 0 12px;color:var(--ink);display:flex;align-items:center;gap:8px}.kid-cards{display:flex;flex-direction:column;gap:16px}.kid-card{background:var(--surface);border-radius:var(--radius-md);box-shadow:var(--shadow-card);overflow:hidden}.kid-card-header{display:flex;align-items:center;gap:12px;padding:14px 16px;border-left:5px solid var(--kid-accent, #ccc)}.kid-card-name{font-size:1.1rem;font-weight:700;margin:0;flex:1}.kid-card-stats{display:flex;gap:12px;flex-wrap:wrap}.stat-pill{font-size:.82rem;font-weight:600;padding:4px 10px;border-radius:999px;background:#f0ecf8;color:var(--ink);white-space:nowrap}.kid-chore-list{padding:0 16px 14px;display:flex;flex-direction:column;gap:6px}.kid-chore-row{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:var(--radius-sm);background:#faf9ff;border:1px solid #f0ecf8;cursor:pointer;transition:background .1s}.kid-chore-row:hover{background:#f0ecf8}.kid-chore-row.done{background:#f0fff4;border-color:#c8f5da}.kid-chore-label{font-size:.9rem;font-weight:600;flex:1}.chore-done-tick{width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.85rem;flex-shrink:0;border:2px solid #c8f5da;background:var(--done);color:#fff}.chore-undone-circle{width:22px;height:22px;border-radius:50%;border:2px solid #d8d4e8;flex-shrink:0}.chore-empty-msg{font-size:.88rem;color:var(--muted);font-style:italic;padding:8px 0}.builder-section{display:flex;flex-direction:column;gap:16px;margin-bottom:24px}.builder-kid-block{background:var(--surface);border-radius:var(--radius-md);box-shadow:var(--shadow-card);overflow:hidden}.builder-kid-header{display:flex;align-items:center;gap:10px;padding:12px 16px;border-left:5px solid var(--kid-accent, #ccc);border-bottom:1px solid #f0ecf8}.builder-kid-name{font-size:1rem;font-weight:700;margin:0;flex:1}.builder-actions{display:flex;gap:8px;flex-wrap:wrap;padding:12px 16px;border-bottom:1px solid #f0ecf8}.btn-sm{padding:8px 14px;font-size:.82rem;font-weight:600;border-radius:var(--radius-sm);cursor:pointer;border:1.5px solid #e0dcee;background:var(--surface);color:var(--ink);white-space:nowrap;transition:background .1s,border-color .1s}.btn-sm:hover{background:#f0ecf8;border-color:#c8c0e0}.btn-sm.danger{color:#c92a2a;border-color:#ffc9c9;background:#fff5f5}.btn-sm.danger:hover{background:#ffe3e3}.btn-sm.primary{background:var(--ink);color:#fff;border-color:var(--ink)}.btn-sm.primary:hover{opacity:.85}.builder-chore-list{display:flex;flex-direction:column;gap:0}.builder-chore-row{display:flex;align-items:center;gap:8px;padding:8px 16px;border-bottom:1px solid #f5f3fc}.builder-chore-row:last-child{border-bottom:none}.builder-chore-label{flex:1;font-size:.9rem;font-weight:600}.chore-move-btns{display:flex;flex-direction:column;gap:2px}.btn-icon{width:28px;height:28px;display:flex;align-items:center;justify-content:center;font-size:.85rem;border-radius:6px;cursor:pointer;background:#f0ecf8;border:none;color:var(--ink);transition:background .1s}.btn-icon:hover{background:#e0dcee}.btn-icon:disabled{opacity:.3;cursor:default}.btn-remove{width:28px;height:28px;display:flex;align-items:center;justify-content:center;font-size:1rem;border-radius:6px;cursor:pointer;background:#fff5f5;border:none;color:#c92a2a;transition:background .1s}.btn-remove:hover{background:#ffe3e3}.builder-add-chore{padding:12px 16px;border-top:1px solid #f0ecf8}.add-chore-label{font-size:.82rem;font-weight:600;color:var(--muted);margin-bottom:8px}.library-grid{display:flex;flex-wrap:wrap;gap:6px}.library-chip{display:flex;align-items:center;gap:6px;padding:6px 10px;border-radius:var(--radius-sm);background:#f5f3fc;border:1.5px solid #e0dcee;font-size:.8rem;font-weight:600;cursor:pointer;transition:background .1s}.library-chip:hover{background:#ece6ff}.clear-day-confirm{display:flex;flex-direction:column;gap:6px;padding:10px 16px;background:#fff5f5;border-top:1px solid #ffc9c9}.clear-day-confirm-text{font-size:.82rem;color:#c92a2a;font-weight:600;margin:0}.clear-day-confirm-btns{display:flex;gap:8px}.global-repeat-bar{padding:12px 0;margin-bottom:16px}.library-section{display:flex;flex-direction:column;gap:16px}.library-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px}.library-item-card{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--surface);border-radius:var(--radius-sm);box-shadow:var(--shadow-card);font-size:.9rem;font-weight:600}.library-item-badge{font-size:.65rem;font-weight:700;padding:2px 6px;border-radius:999px;background:#f0ecf8;color:var(--muted);margin-left:auto;white-space:nowrap}.add-custom-chore-form{background:var(--surface);border-radius:var(--radius-md);box-shadow:var(--shadow-card);padding:16px;display:flex;flex-direction:column;gap:12px}.form-label{font-size:.82rem;font-weight:700;color:var(--muted);margin-bottom:4px;display:block}.form-input{width:100%;padding:10px 14px;font-size:.95rem;border:2px solid #e0dcee;border-radius:var(--radius-sm);background:#faf9ff;color:var(--ink);outline:none;transition:border-color .15s}.form-input:focus{border-color:#9775fa}.icon-picker-grid{display:flex;flex-wrap:wrap;gap:8px}.icon-picker-btn{width:48px;height:48px;border-radius:var(--radius-sm);border:2px solid #e0dcee;background:#f5f3fc;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:border-color .1s,background .1s}.icon-picker-btn:hover{background:#ece6ff;border-color:#b89dfc}.icon-picker-btn.selected{border-color:#9775fa;background:#e8e0ff}.profiles-section{display:flex;flex-direction:column;gap:16px}.profile-card{background:var(--surface);border-radius:var(--radius-md);box-shadow:var(--shadow-card);overflow:hidden}.profile-card-header{display:flex;align-items:center;gap:12px;padding:14px 16px;border-left:5px solid var(--kid-accent, #ccc)}.profile-card-name{font-size:1rem;font-weight:700;margin:0;flex:1}.profile-actions{display:flex;gap:8px;flex-wrap:wrap;padding:12px 16px;border-top:1px solid #f0ecf8}.profile-edit-form{padding:12px 16px;border-top:1px solid #f0ecf8;display:flex;flex-direction:column;gap:12px}.picker-grid{display:flex;flex-wrap:wrap;gap:8px}.picker-btn{border:2px solid #e0dcee;border-radius:var(--radius-sm);background:#f5f3fc;cursor:pointer;padding:4px;display:flex;flex-direction:column;align-items:center;gap:4px;transition:border-color .1s,background .1s}.picker-btn:hover{background:#ece6ff;border-color:#b89dfc}.picker-btn.selected{border-color:#9775fa;background:#e8e0ff}.picker-btn-label{font-size:.62rem;font-weight:600;color:var(--muted);white-space:nowrap}.delete-confirm-box{margin:0 16px 14px;padding:12px;background:#fff5f5;border:1.5px solid #ffc9c9;border-radius:var(--radius-sm)}.delete-confirm-text{font-size:.85rem;color:#c92a2a;font-weight:600;margin:0 0 10px}.delete-confirm-btns{display:flex;gap:8px}.add-kid-card{background:var(--surface);border-radius:var(--radius-md);box-shadow:var(--shadow-card);padding:16px}.add-kid-card-title{font-size:1rem;font-weight:700;margin:0 0 14px;color:var(--ink)}.backup-section{display:flex;flex-direction:column;gap:20px}.backup-card{background:var(--surface);border-radius:var(--radius-md);box-shadow:var(--shadow-card);padding:18px;display:flex;flex-direction:column;gap:10px}.backup-card-title{font-size:1rem;font-weight:700;margin:0;color:var(--ink)}.backup-card-desc{font-size:.85rem;color:var(--muted);margin:0}.backup-error{font-size:.85rem;color:#c92a2a;font-weight:600}.import-confirm-box{padding:12px;background:#fff9e6;border:1.5px solid #ffe066;border-radius:var(--radius-sm);display:flex;flex-direction:column;gap:8px}.import-confirm-text{font-size:.85rem;color:#7c5c00;font-weight:600;margin:0}.import-confirm-btns{display:flex;gap:8px}.toggle-row{display:flex;align-items:center;justify-content:space-between;padding:6px 0}.toggle-row-label{font-size:.95rem;font-weight:600}.toggle-switch{position:relative;width:48px;height:26px;flex-shrink:0}.toggle-switch input{opacity:0;width:0;height:0;position:absolute}.toggle-track{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:999px;background:#d8d4e8;transition:background .2s;cursor:pointer}.toggle-track:after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;transition:transform .2s}.toggle-switch input:checked+.toggle-track{background:var(--done)}.toggle-switch input:checked+.toggle-track:after{transform:translate(22px)}.inline-edit{display:flex;gap:8px;align-items:center}.inline-edit input{flex:1;padding:8px 12px;font-size:.95rem;border:2px solid #9775fa;border-radius:var(--radius-sm);background:#faf9ff;color:var(--ink);outline:none}.template-panel{padding:12px 16px;border-top:1px solid #f0ecf8;background:#faf9ff;display:flex;flex-direction:column;gap:10px}.template-panel-title{font-size:.82rem;font-weight:700;color:var(--ink);margin:0}.template-panel-hint{font-size:.77rem;color:var(--muted);margin:0;line-height:1.4}.template-row{display:flex;flex-direction:column;gap:6px;padding:8px 10px;background:var(--surface);border-radius:var(--radius-sm);border:1.5px solid #e8e4f0}.template-row-label{display:flex;align-items:center;gap:8px}.template-row-kind{font-size:.88rem;font-weight:700;color:var(--ink)}.template-badge{font-size:.7rem;font-weight:700;padding:2px 8px;border-radius:999px;background:#e8e0ff;color:#6b4fd4;white-space:nowrap}.template-badge--none{background:#f0ecf8;color:var(--muted)}.template-row-actions{display:flex;gap:6px;flex-wrap:wrap}.toggle-row-label-stack{display:flex;flex-direction:column;gap:2px;flex:1;margin-right:12px}.toggle-row-sublabel{font-size:.75rem;color:var(--muted);line-height:1.4}.mt-4{margin-top:4px}.mt-8{margin-top:8px}.mt-12{margin-top:12px}.empty-state{text-align:center;padding:32px 16px;color:var(--muted);font-size:.95rem}@font-face{font-family:"Baloo 2";font-style:normal;font-weight:400 800;font-display:swap;src:url(/fonts/baloo2-latin-ext-v23.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Baloo 2";font-style:normal;font-weight:400 800;font-display:swap;src:url(/fonts/baloo2-latin-v23.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg: #fff8ef;--surface: #ffffff;--ink: #3d3a4b;--muted: #8b87a0;--kid-0: #ff6b6b;--kid-1: #4dabf7;--kid-2: #51cf66;--kid-3: #9775fa;--kid-4: #ffa94d;--kid-5: #f783ac;--star: #ffc93c;--flame: #ff7a30;--done: #51cf66;--radius-lg: 24px;--radius-md: 16px;--radius-sm: 10px;--shadow-card: 0 4px 12px rgba(90, 62, 45, .13), 0 1px 3px rgba(61, 58, 75, .09);--shadow-pop: 0 8px 24px rgba(61, 58, 75, .16);--font: "Baloo 2", ui-rounded, "SF Pro Rounded", "Arial Rounded MT Bold", "Comic Sans MS", system-ui, sans-serif}*{box-sizing:border-box}html,body,#root{height:100%}#root{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}button{font-family:inherit;color:inherit;border:none;background:none;padding:0;cursor:pointer}input,select{font-family:inherit}.screen-layer{height:100%;will-change:transform,opacity}.screen-enter-from-right{animation:screen-in-right .32s cubic-bezier(.22,1,.36,1) both}.screen-enter-from-left{animation:screen-in-left .32s cubic-bezier(.22,1,.36,1) both}.screen-enter-fade{animation:screen-fade .24s ease both}@keyframes screen-in-right{0%{transform:translate(8%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes screen-in-left{0%{transform:translate(-8%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes screen-fade{0%{opacity:0}to{opacity:1}}@media(prefers-reduced-motion:reduce){.screen-layer{animation:none!important}}
