:root{color:#3e3430;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--safe-area-background:#ffe8d6;--app-background-image:linear-gradient(to bottom, #ffe8d6 0, #ffe8d6 4rem, #ffe8d600 10rem), radial-gradient(circle at 8% 4%, #ffd5b980, transparent 24rem), radial-gradient(circle at 100% 40%, #daf0e380, transparent 23rem), linear-gradient(#fffaf2, #fffaf2);background-color:var(--safe-area-background);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--ink:#3e3430;--muted:#887a72;--line:#eadfd5;--paper:#fffdf9;--cream:#fffaf2;--coral:#ff8a65;--coral-dark:#ed6e4c;--peach:#ffe6d9;--mint:#d9f0e5;--sky:#dceef8;--sky-dark:#4f86a8;--shadow:0 16px 42px #674a331a;font-family:-apple-system,BlinkMacSystemFont,Hiragino Sans,Yu Gothic,Meiryo,sans-serif}*{box-sizing:border-box}html{overscroll-behavior:none;width:100%;min-width:320px;height:100%;overflow:clip}body{overscroll-behavior:none;background-color:var(--safe-area-background);width:100%;min-width:320px;height:100dvh;margin:0;overflow:clip}#root{background-color:var(--safe-area-background);background-image:var(--app-background-image);width:100%;height:100%;overflow:clip}button,input{font:inherit}button{-webkit-tap-highlight-color:transparent}button:focus-visible,input:focus-visible{outline-offset:3px;outline:3px solid #ff8a658c}.app-shell{width:min(100%,520px);min-height:100%;padding:max(1.1rem, env(safe-area-inset-top)) 1rem max(2.5rem, env(safe-area-inset-bottom));margin:0 auto}.main-app-shell{overscroll-behavior:none;height:100dvh;min-height:0;padding-bottom:max(.9rem, env(safe-area-inset-bottom));flex-direction:column;display:flex;overflow:hidden}.main-app-shell .app-header,.main-app-shell .child-tabs{flex:none}.main-app-shell .main-content{flex:auto;min-height:0}.app-header{justify-content:space-between;align-items:center;gap:1rem;padding:.35rem .25rem 1.15rem;display:flex}.eyebrow,.sheet-eyebrow{color:var(--coral-dark);letter-spacing:.13em;margin:0 0 .28rem;font-size:.72rem;font-weight:800}h1,h2,p{margin-top:0}h1{letter-spacing:.03em;margin-bottom:0;font-size:clamp(1.35rem,5vw,1.65rem)}h2{margin-bottom:0;font-size:1.35rem}.manage-button,.add-child-tab,.icon-button,.month-arrow{color:var(--ink);cursor:pointer;background:0 0;border:0}.manage-button{min-height:2.75rem;color:var(--coral-dark);border-radius:.8rem;padding:.55rem .75rem;font-weight:800}.manage-button:hover,.manage-button:active{background:var(--peach)}.child-tabs{border-bottom:1px solid #eadfd5e6;align-items:center;gap:.4rem;min-width:0;padding:.25rem 0 1rem;display:flex}.child-tab-scroll{scrollbar-width:none;flex:1;gap:.45rem;min-width:0;margin-bottom:-.5rem;padding-bottom:.5rem;display:flex;overflow-x:auto}.child-tab-scroll::-webkit-scrollbar{display:none}.child-tab,.add-child-tab{white-space:nowrap;cursor:pointer;border:1px solid #0000;border-radius:999px;min-height:2.85rem}.child-tab{color:var(--muted);background:#fffdf99e;flex:none;padding:.45rem 1.05rem;font-weight:800}.child-tab:hover{border-color:var(--line);color:var(--ink)}.child-tab.is-active{color:#fff;background:var(--coral);box-shadow:0 5px 12px #ed6e4c40}.add-child-tab{color:var(--coral-dark);background:var(--peach);flex:0 0 2.85rem;font-size:1.45rem;line-height:1}.main-content{padding-top:1.35rem}.date-trigger{width:100%;color:var(--ink);text-align:left;cursor:pointer;background:#fffdf9b8;border:1px solid #eadfd5e6;border-radius:1.1rem;align-items:center;gap:.8rem;padding:.88rem 1rem;display:flex;box-shadow:0 5px 18px #674a330a}.date-trigger:hover{background:var(--paper);border-color:#f7b49d}.date-trigger-icon{width:2.1rem;height:2.1rem;color:var(--coral-dark);background:var(--peach);border-radius:.7rem;flex:0 0 2.1rem;place-items:center;font-size:1.1rem;display:grid}.date-trigger-label,.date-trigger-value{display:block}.date-trigger-label{color:var(--muted);font-size:.7rem;font-weight:700}.date-trigger-value{margin-top:.15rem;font-size:.95rem;font-weight:800}.date-trigger-arrow{color:var(--muted);margin-left:auto;font-size:1.7rem;line-height:1}.score-card{color:#fff;background:linear-gradient(142deg, #ffab8e, var(--coral));box-shadow:var(--shadow);text-align:center;border-radius:2rem;margin:1.15rem 0 1rem;padding:1.7rem 1rem 1.55rem;transition:background .18s,box-shadow .18s;position:relative;overflow:hidden}.score-card.is-negative{background:linear-gradient(142deg, #91c4de, var(--sky-dark));box-shadow:0 16px 42px #3d6f8e33}.score-card.has-point-effect{transform-origin:50% 60%}.score-card.has-point-effect.is-increasing{animation:.56s cubic-bezier(.2,.8,.3,1) card-cheer}.score-card.has-point-effect.is-decreasing{animation:.52s cubic-bezier(.2,.8,.3,1) card-bubble}@keyframes card-cheer{0%,to{transform:translateY(0)scale(1)rotate(0)}24%{transform:translateY(.18rem)scale(.975)rotate(-.6deg)}52%{transform:translateY(-.32rem)scale(1.025)rotate(.65deg)}76%{transform:translateY(0)scale(1.006)rotate(-.2deg)}}@keyframes card-bubble{0%,to{transform:translateY(0)scale(1)}30%{transform:translateY(.18rem)scale(.985)}62%{transform:translateY(-.16rem)scale(1.012)}82%{transform:translateY(.05rem)scale(.998)}}.score-card:after{z-index:0;content:"";border:1.2rem solid #ffffff29;border-radius:50%;width:11rem;height:11rem;position:absolute;bottom:-3.3rem;right:-2.2rem}.point-effects{z-index:2;border-radius:inherit;pointer-events:none;position:absolute;inset:0;overflow:hidden}.point-particle{--particle-x:0rem;--particle-y:-4rem;--particle-spin:60deg;color:#fff7b0;opacity:0;text-shadow:0 2px 5px #633e232e;font-size:1rem;line-height:1;position:absolute;top:48%;left:50%}.point-effects.is-increasing .point-particle{animation:.72s cubic-bezier(.18,.72,.28,1) both sparkle-burst}.point-effects.is-decreasing .point-particle{color:#eaf9ffeb;text-shadow:0 2px 5px #26567326;animation:.76s ease-out both bubble-pop}.point-particle:first-child{--particle-x:-7rem;--particle-y:-3.7rem;--particle-spin:-80deg;font-size:1.15rem;animation-delay:0s}.point-particle:nth-child(2){--particle-x:-4.6rem;--particle-y:-5.3rem;--particle-spin:55deg;font-size:.72rem;animation-delay:35ms}.point-particle:nth-child(3){--particle-x:-1.5rem;--particle-y:-5.8rem;--particle-spin:-45deg;font-size:.64rem;animation-delay:70ms}.point-particle:nth-child(4){--particle-x:2.2rem;--particle-y:-5.5rem;--particle-spin:75deg;font-size:1rem;animation-delay:20ms}.point-particle:nth-child(5){--particle-x:5.3rem;--particle-y:-4.1rem;--particle-spin:-60deg;font-size:.78rem;animation-delay:55ms}.point-particle:nth-child(6){--particle-x:7rem;--particle-y:-1.6rem;--particle-spin:90deg;font-size:.6rem;animation-delay:90ms}.point-particle:nth-child(7){--particle-x:-6.4rem;--particle-y:-.8rem;--particle-spin:60deg;font-size:.8rem;animation-delay:85ms}.point-particle:nth-child(8){--particle-x:6.3rem;--particle-y:.6rem;--particle-spin:-75deg;font-size:.92rem;animation-delay:.105s}@keyframes sparkle-burst{0%{opacity:0;transform:translate(-50%,-50%)scale(.15)rotate(0)}18%{opacity:1}68%{opacity:1}to{opacity:0;transform:translate(calc(-50% + var(--particle-x)), calc(-50% + var(--particle-y))) scale(1.15) rotate(var(--particle-spin))}}@keyframes bubble-pop{0%{opacity:0;transform:translate(-50%,-50%)scale(.1)}22%{opacity:.92}72%{opacity:.7}to{opacity:0;transform:translate(calc(-50% + var(--particle-x)), calc(-50% + var(--particle-y))) scale(1.35) rotate(var(--particle-spin))}}.score-caption,.score-unit,.score-message{z-index:1;position:relative}.score-caption{margin-bottom:.15rem;font-size:.95rem;font-weight:800}.score-value{z-index:1;letter-spacing:-.06em;font-variant-numeric:tabular-nums;margin:.05rem 0;font-size:clamp(4.6rem,24vw,7rem);font-weight:900;line-height:1.05;display:block;position:relative}.score-value.is-increasing{animation:.44s cubic-bezier(.2,.8,.3,1) point-pop-up}.score-value.is-decreasing{animation:.42s cubic-bezier(.2,.8,.3,1) point-pop-down}@keyframes point-pop-up{0%{opacity:.55;transform:translateY(.55rem)scale(.82)}58%{opacity:1;transform:translateY(-.28rem)scale(1.1)}to{transform:translateY(0)scale(1)}}@keyframes point-pop-down{0%{opacity:.55;transform:translateY(-.55rem)scale(.82)}58%{opacity:1;transform:translateY(.28rem)scale(1.06)}to{transform:translateY(0)scale(1)}}.score-unit{opacity:.88;margin:0;font-size:.86rem;font-weight:800}.score-message{opacity:.9;margin:1.2rem 0 0;font-size:.78rem}.total-points-card{background:#fffdf9cc;border:1px solid #eadfd5e6;border-radius:1.1rem;align-items:center;gap:.55rem;margin:0 0 1.15rem;padding:.72rem .9rem;display:flex;box-shadow:0 5px 18px #674a330d}.total-points-icon{color:#fff;background:var(--coral);border-radius:50%;flex:0 0 2.2rem;place-items:center;width:2.2rem;height:2.2rem;font-size:.92rem;display:grid;box-shadow:0 4px 10px #ed6e4c33}.total-points-label{color:var(--muted);flex:1;margin:0;font-size:.78rem;font-weight:800}.total-points-value{color:var(--coral-dark);font-variant-numeric:tabular-nums;font-size:1.42rem;line-height:1;display:inline-block}.total-points-unit{color:var(--muted);font-size:.68rem;font-weight:800}.total-points-card.is-negative .total-points-icon{background:var(--sky-dark);box-shadow:0 4px 10px #3d6f8e2e}.total-points-card.is-negative .total-points-value{color:#3f7597}.total-points-card.is-increasing .total-points-value{animation:.44s cubic-bezier(.2,.8,.3,1) total-point-up}.total-points-card.is-decreasing .total-points-value{animation:.42s cubic-bezier(.2,.8,.3,1) total-point-down}@keyframes total-point-up{0%{transform:translateY(.3rem)scale(.82)}55%{transform:translateY(-.12rem)scale(1.12)}to{transform:translateY(0)scale(1)}}@keyframes total-point-down{0%{transform:translateY(-.3rem)scale(.82)}55%{transform:translateY(.12rem)scale(1.08)}to{transform:translateY(0)scale(1)}}.point-actions{justify-content:center;gap:clamp(1rem,8vw,2.8rem);padding:.2rem 0 .5rem;display:flex}.point-button{width:clamp(5.4rem,28vw,7rem);height:clamp(5.4rem,28vw,7rem);color:var(--ink);background:var(--paper);cursor:pointer;border:0;border-radius:50%;font-size:3.3rem;font-weight:300;line-height:1;transition:transform .12s,box-shadow .12s;box-shadow:0 9px 24px #674a331f}.point-button:hover{transform:translateY(-2px);box-shadow:0 12px 28px #674a3329}.point-button:active{transform:scale(.9)}.point-button.minus{color:#3f7597;background:var(--sky)}.point-button.plus{color:#fff;background:var(--coral)}.point-button.minus:active{transform:scale(.88)rotate(-6deg)}.point-button.plus:active{transform:scale(.88)rotate(6deg)}.storage-note,.small-note,.sheet-help{color:var(--muted);text-align:center;margin:1rem 0 0;font-size:.72rem;line-height:1.6}.centered-state{justify-content:center;align-items:center;padding:2rem 1.25rem;display:flex}.state-card,.onboarding{text-align:center;width:100%;max-width:25rem}.onboarding{flex-direction:column}.state-card{background:var(--paper);box-shadow:var(--shadow);border-radius:1.6rem;padding:2rem 1.35rem}.state-card h1{margin-bottom:.8rem}.state-card p:not(.eyebrow):not(.small-note){color:var(--muted);line-height:1.7}.state-icon,.onboarding-mark{color:#fff;background:var(--coral);border-radius:50%;place-items:center;margin:0 auto 1rem;font-weight:900;display:grid}.state-icon{width:3.2rem;height:3.2rem;font-size:1.8rem}.onboarding-mark{color:#fff8f1;background:var(--coral);width:4.7rem;height:4.7rem;font-size:2.25rem;box-shadow:0 12px 24px #ed6e4c38}.onboarding h1{margin-bottom:.8rem}.onboarding-copy{max-width:19rem;color:var(--muted);margin:0 auto 1.5rem;line-height:1.7}.onboarding-form,.inline-form{text-align:left}.onboarding-form{width:100%}.onboarding-form label,.inline-form label{margin-bottom:.45rem;font-size:.78rem;font-weight:800;display:block}.onboarding-form input,.inline-form input,.managed-child input{border:1px solid var(--line);width:100%;min-height:3rem;color:var(--ink);background:var(--paper);border-radius:.8rem;padding:.7rem .9rem}.onboarding-form input{margin-bottom:.75rem}.onboarding-form .primary-button{width:100%}.primary-button{color:#fff;background:var(--coral-dark);cursor:pointer;border:0;border-radius:.85rem;min-height:3.05rem;padding:.7rem 1.25rem;font-weight:800;box-shadow:0 6px 14px #ed6e4c33}.primary-button:hover{background:#d95f40}.primary-button.compact{flex:none;min-height:3rem}.form-row{gap:.6rem;display:flex}.form-row input{min-width:0}.form-error{color:#c64c39;margin:.45rem 0 0;font-size:.76rem;line-height:1.5}.sheet-layer{z-index:10;width:100%;max-width:none;height:100%;max-height:none;color:inherit;background:#3629234d;border:0;justify-content:center;align-items:flex-end;margin:0;padding:1rem;display:flex;position:fixed;inset:0;overflow:hidden}.sheet-layer:modal{background:0 0}.sheet-layer::backdrop{background:#3629234d}.bottom-sheet{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;width:min(100%,520px);max-height:min(90dvh,46rem);padding:.75rem 1rem max(1.4rem, env(safe-area-inset-bottom));background:var(--paper);border-radius:1.5rem 1.5rem .7rem .7rem;animation:.16s ease-out sheet-in;overflow:auto;box-shadow:0 -12px 40px #36292329}@keyframes sheet-in{0%{opacity:0;transform:translateY(1rem)}to{opacity:1;transform:translateY(0)}}.sheet-handle{background:var(--line);border-radius:999px;width:2.8rem;height:.28rem;margin:0 auto .85rem}.sheet-header{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.35rem;display:flex}.icon-button{width:2.6rem;height:2.6rem;color:var(--muted);background:#f6eee8;border-radius:50%;font-size:1.7rem;line-height:1}.icon-button:hover{color:var(--ink);background:var(--peach)}.month-navigation{justify-content:space-between;align-items:center;margin-bottom:.9rem;display:flex}.month-navigation strong{font-size:1rem}.month-arrow{width:2.8rem;height:2.8rem;color:var(--coral-dark);background:var(--peach);border-radius:50%;font-size:2rem;line-height:1}.month-arrow:hover{background:#ffd6c4}.calendar-weekdays,.calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:.25rem;display:grid}.calendar-weekdays{color:var(--muted);text-align:center;margin-bottom:.25rem;font-size:.72rem;font-weight:800}.calendar-weekdays .sunday{color:#d96a59}.calendar-weekdays .saturday{color:#668d9e}.calendar-day{min-width:0;min-height:3.8rem;color:var(--ink);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:.75rem;padding:.35rem .15rem}.calendar-day:hover:not(:disabled){background:#fff4ed;border-color:#f4b59f}.calendar-day.is-outside{color:#b8ada6}.calendar-day.is-selected{border-color:var(--coral);background:var(--peach);box-shadow:inset 0 0 0 1px var(--coral)}.calendar-day.is-future{color:#cfc5be;cursor:not-allowed;opacity:.52}.calendar-day-number,.calendar-day-point{display:block}.calendar-day-number{font-size:.8rem;font-weight:800}.calendar-day-point{color:var(--coral-dark);font-variant-numeric:tabular-nums;margin-top:.25rem;font-size:.68rem;font-weight:800}.calendar-day.is-outside .calendar-day-point{color:#b8ada6}.calendar-day.is-future .calendar-day-point{color:inherit}.sheet-help{margin-top:.85rem}.manager-sheet{padding-bottom:max(1.35rem, env(safe-area-inset-bottom))}.inline-form{background:#fff7ef;border-radius:1rem;padding:1rem}.managed-child-list{margin-top:1rem}.managed-child{border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:.5rem;min-height:3.4rem;padding:.35rem .25rem;display:grid}.managed-child.editing{grid-template-columns:minmax(0,1fr) auto auto}.managed-child.editing .form-error{grid-column:1/-1}.managed-child-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:800;overflow:hidden}.text-button{color:var(--coral-dark);cursor:pointer;white-space:nowrap;background:0 0;border:0;padding:.45rem .2rem;font-size:.76rem;font-weight:800}.text-button.muted{color:var(--muted)}.text-button.danger{color:#c64c39}.empty-list{color:var(--muted);text-align:center;margin:1.2rem 0;font-size:.8rem}@media (width>=600px){.app-shell{background:#fffdf97a;border-radius:2rem;min-height:calc(100% - 2rem);margin-top:1rem;box-shadow:0 5px 45px #674a330f}.main-app-shell{height:calc(100dvh - 2rem);min-height:0}.sheet-layer{padding:1.5rem}.bottom-sheet{border-radius:1.5rem}}@media (width<=599px) and (height>=741px){.main-app-shell .main-content{flex-direction:column;display:flex}.main-app-shell .point-actions{margin-top:auto;padding-bottom:0}}@media (height<=740px){.main-app-shell{padding-top:max(.55rem, env(safe-area-inset-top));padding-bottom:max(.55rem, env(safe-area-inset-bottom))}.main-app-shell .app-header{padding:.05rem .25rem .5rem}.main-app-shell .eyebrow{margin-bottom:.1rem;font-size:.65rem}.main-app-shell h1{font-size:1.25rem}.main-app-shell .manage-button{min-height:2.35rem;padding:.35rem .65rem}.main-app-shell .child-tabs{padding:.15rem 0 .55rem}.main-app-shell .child-tab,.main-app-shell .add-child-tab{min-height:2.45rem}.main-app-shell .child-tab{padding:.35rem .9rem}.main-app-shell .add-child-tab{flex-basis:2.45rem}.main-app-shell .main-content{padding-top:.65rem}.main-app-shell .date-trigger{gap:.65rem;padding:.55rem .8rem}.main-app-shell .date-trigger-icon{flex-basis:1.85rem;width:1.85rem;height:1.85rem}.main-app-shell .score-card{border-radius:1.5rem;margin:.65rem 0 .55rem;padding:.85rem 1rem .8rem}.main-app-shell .score-caption{font-size:.82rem}.main-app-shell .score-value{font-size:clamp(3.5rem,19vw,4.4rem)}.main-app-shell .score-message{margin-top:.55rem;font-size:.7rem}.main-app-shell .total-points-card{gap:.45rem;margin-bottom:.6rem;padding:.45rem .75rem}.main-app-shell .total-points-icon{flex-basis:1.85rem;width:1.85rem;height:1.85rem}.main-app-shell .point-actions{padding:0}.main-app-shell .point-button{width:clamp(4.5rem,min(24vw,13dvh),5.5rem);height:clamp(4.5rem,min(24vw,13dvh),5.5rem);font-size:2.8rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}
