@font-face{font-family:Fredoka;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/fredoka-latin-500-normal-B0JifZgm.woff2) format("woff2"),url(/assets/fredoka-latin-500-normal-BL692wg7.woff) format("woff")}@font-face{font-family:Fredoka;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/fredoka-latin-600-normal-C4zohCW5.woff2) format("woff2"),url(/assets/fredoka-latin-600-normal-CcrEjrB4.woff) format("woff")}@font-face{font-family:Fredoka;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/fredoka-latin-700-normal-BOIZVyIN.woff2) format("woff2"),url(/assets/fredoka-latin-700-normal-C8FeHd3X.woff) format("woff")}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/nunito-latin-400-normal-r8SDr6Up.woff2) format("woff2"),url(/assets/nunito-latin-400-normal-DKg4f3fz.woff) format("woff")}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/nunito-latin-600-normal-Br8yIETf.woff2) format("woff2"),url(/assets/nunito-latin-600-normal-Cd0eNu1l.woff) format("woff")}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/nunito-latin-700-normal-Dort48En.woff2) format("woff2"),url(/assets/nunito-latin-700-normal-OcDqTBcA.woff) format("woff")}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/nunito-latin-800-normal-Dz8SOQK_.woff2) format("woff2"),url(/assets/nunito-latin-800-normal-D-J0wlBY.woff) format("woff")}@font-face{font-family:DM Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/dm-mono-latin-400-normal-4GdczIuU.woff2) format("woff2"),url(/assets/dm-mono-latin-400-normal--0xN8mdc.woff) format("woff")}@font-face{font-family:DM Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/dm-mono-latin-500-normal-DRMDZjhP.woff2) format("woff2"),url(/assets/dm-mono-latin-500-normal-CN8Miw6E.woff) format("woff")}:root{font-family:Nunito,system-ui,sans-serif;color:#2e2140;background:#fff6e3;font-synthesis:none;--cream: #fff6e3;--paper: #fffdf6;--ink: #2e2140;--coral: #ff6b5a;--sky: #37b6f0;--mint: #2ecc96;--grape: #9b6bf2;--sun: #ffc53d;--brass: #f2b33d;--brass-dark: #9a5b08;--soft-ink: #675c74;--motion-press: .12s;--motion-state: .24s;--motion-layout: .36s;--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-stamp: cubic-bezier(.22, 1, .36, 1)}*{box-sizing:border-box}html{min-width:320px;background:var(--cream)}body{min-width:320px;min-height:100vh;margin:0;background:radial-gradient(circle at 12px 12px,rgb(46 33 64 / 7%) 3px,transparent 3.5px) 0 0 / 34px 34px,var(--cream);color:var(--ink);font-size:16px;font-weight:600;line-height:1.4}button,input{font:inherit}button{color:inherit}button,[role=button]{-webkit-tap-highlight-color:transparent;touch-action:manipulation}button:focus-visible,input:focus-visible,[role=button]:focus-visible{outline:4px solid var(--sky);outline-offset:3px}button:disabled{cursor:not-allowed;opacity:.42}h1,h2,p{margin-top:0}.app-shell{width:min(1120px,calc(100% - 32px));margin:0 auto;padding:24px 0 80px}.masthead{display:flex;align-items:center;justify-content:space-between;gap:22px;margin-bottom:30px}.brand{min-height:54px;padding:0;border:0;background:transparent;font-family:Fredoka,sans-serif;font-size:clamp(2.35rem,7vw,3.8rem);font-weight:700;letter-spacing:-.025em;line-height:.95;cursor:pointer;transform-origin:left center;transition:transform var(--motion-state) var(--ease-out)}.brand:hover{transform:rotate(-1deg) scale(1.015)}.brand:active{transform:rotate(.5deg) scale(.98)}.brand span{padding:0 4px;background:linear-gradient(transparent 60%,var(--sun) 60%,var(--sun) 92%,transparent 92%)}.masthead-actions{display:flex;align-items:center;justify-content:flex-end;gap:14px}.owed{min-width:170px;padding:9px 18px;transform:rotate(1deg);border:3px solid var(--ink);border-radius:16px;background:#fff;box-shadow:6px 6px 0 var(--sun);text-align:center}.owed strong{display:block;color:var(--brass-dark);font-family:Fredoka,sans-serif;font-size:1.85rem;line-height:1;white-space:nowrap}.owed strong.amount-bump{animation:amount-bump .3s var(--ease-stamp)}.owed span{display:block;margin-top:2px;color:var(--soft-ink);font-size:.68rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.button{min-height:44px;padding:9px 15px;border:2.5px solid var(--ink);border-radius:14px;background:#fff;box-shadow:3px 3px 0 var(--ink);font-weight:800;cursor:pointer;transition:transform var(--motion-press) var(--ease-out),box-shadow var(--motion-press) var(--ease-out),background .15s ease-out,filter var(--motion-press) ease-out}.button:hover:not(:disabled){background:#fff9e9;filter:saturate(1.06)}.button:active:not(:disabled){transform:translate(3px,3px);box-shadow:0 0 0 var(--ink)}.button.primary,.button.pay{background:var(--sun)}.button.primary:hover:not(:disabled),.button.pay:hover:not(:disabled){background:#ffd466}.button.secondary{background:#fff}.button.small{min-height:38px;padding:6px 11px;font-size:.82rem}.parent-button{background:var(--ink);color:#fff}.parent-button,.lock-button{display:inline-flex;align-items:center;justify-content:center;gap:7px}.app-icon{flex:0 0 auto}.parent-button:hover:not(:disabled){background:#49385f}.lock-button{background:#fff}.icon-button{display:inline-grid;width:44px;height:44px;place-items:center;padding:0;border:0;border-radius:12px;background:transparent;font-size:1.35rem;font-weight:800;cursor:pointer;transition:transform var(--motion-press) var(--ease-out),background .15s ease-out}.icon-button:hover{background:#2e214017;transform:rotate(-3deg) scale(1.05)}.icon-button:active{transform:rotate(2deg) scale(.9)}.icon-button.subtle{color:var(--soft-ink)}.mode-banner{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:0 0 22px;padding:10px 14px;border:2px dashed rgb(46 33 64 / 28%);border-radius:14px;background:#ffffff9e;animation:banner-arrive var(--motion-state) var(--ease-out)}.mode-banner>div{display:flex;align-items:center;gap:8px}.mode-banner small,.device-copy{color:var(--soft-ink);font-size:.82rem}.mode-dot{width:11px;height:11px;border:2px solid var(--ink);border-radius:50%;background:var(--mint)}.board{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,410px),1fr));gap:28px;align-items:start}.kid-card{--accent: var(--coral);overflow:hidden;border:3px solid var(--ink);border-radius:24px;background:#fff;box-shadow:7px 8px 0 var(--accent),9px 11px 18px #2e21401c;transition:box-shadow var(--motion-state) var(--ease-out)}.child-view .kid-card{max-width:720px;margin:0 auto}.kid-card-header{display:flex;min-height:82px;align-items:center;gap:13px;padding:13px 16px;border-bottom:3px solid var(--ink);background:var(--accent);color:var(--header-ink)}.kid-card-header h1{margin:0;font-family:Fredoka,sans-serif;font-size:clamp(1.8rem,5vw,2.35rem);font-weight:650;line-height:1.05;overflow-wrap:anywhere}.avatar-button{display:grid;width:56px;height:56px;flex:0 0 56px;place-items:center;overflow:hidden;padding:2px;border:3px solid var(--ink);border-radius:50%;background:#fff;cursor:pointer;transition:transform var(--motion-state) var(--ease-out),box-shadow var(--motion-state) var(--ease-out)}.avatar-button.static{cursor:default}.avatar-button:not(.static):hover{transform:rotate(-4deg) scale(1.04);box-shadow:3px 3px 0 var(--ink)}.avatar-button:not(.static):active{transform:rotate(2deg) scale(.94);box-shadow:1px 1px 0 var(--ink)}.avatar-art{display:block;width:100%;height:100%}.kid-name-input{width:100%;min-width:0;padding:5px 7px;border:2px solid transparent;border-radius:10px;background:transparent;color:var(--header-ink);font-family:Fredoka,sans-serif;font-size:1.6rem;font-weight:650}.kid-name-input:focus{border-color:var(--ink);background:#fff;color:var(--ink)}.header-delete{flex:0 0 44px;color:var(--header-ink)}.kid-card-body{display:grid;gap:15px;padding:16px}.coin-jar{display:flex;min-height:64px;align-items:center;gap:12px;padding:8px 12px;border:2.5px dashed rgb(46 33 64 / 28%);border-radius:16px;background:#fff9e8}.coin-jar>span{flex:0 0 auto;color:var(--soft-ink);font-family:DM Mono,monospace;font-size:.72rem}.coin-row{min-width:0;flex:1}.coins{display:flex;align-items:center;padding-left:13px}.coins i{width:29px;height:29px;flex:0 0 29px;margin-left:-13px;border:2.5px solid var(--ink);border-radius:50%;background:radial-gradient(circle,var(--brass) 47%,#ce8617 50%,var(--brass) 57%);box-shadow:1px 2px #b87816;transform-origin:center bottom}.coin-more{margin-left:4px;font-weight:900}.no-coins{color:var(--soft-ink);font-size:.85rem}.chore-list{display:grid;gap:9px}.chore-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:11px;min-height:72px;padding:8px 10px;border:2.5px solid var(--ink);border-radius:15px;background:var(--paper);cursor:pointer;transition:background .15s ease-out,transform .12s ease-out}.parent-card .chore-row{grid-template-columns:auto minmax(0,1fr) auto auto}.chore-row:hover{transform:translate(2px)}.chore-row.counted{background:#eafbf3}.chore-row.pop{animation:stamp .34s var(--ease-stamp)}.chore-row.reverse{animation:unstamp .22s var(--ease-out)}.step-zone{display:flex;align-items:center;gap:5px}.step-placeholder{width:0}.step-button{display:grid;place-items:center;padding:0;border:2.5px solid var(--ink);border-radius:50%;color:var(--ink);font-family:Fredoka,sans-serif;font-weight:800;line-height:1;cursor:pointer;box-shadow:2px 2px 0 var(--ink);transition:transform var(--motion-press) var(--ease-out),box-shadow var(--motion-press) var(--ease-out),filter var(--motion-press) ease-out}.step-button:hover{transform:translateY(-1px) rotate(-2deg);box-shadow:3px 4px 0 var(--ink);filter:saturate(1.1)}.step-button:active{transform:translate(2px,2px) scale(.88);box-shadow:0 0 0 var(--ink)}.step-button.plus{width:52px;height:52px;background:var(--sun);font-size:2rem}.step-button.minus{width:44px;height:44px;background:#fff;font-size:1.5rem}.chore-copy{min-width:0}.chore-copy>strong{display:block;line-height:1.22;overflow-wrap:anywhere;-webkit-hyphens:auto;hyphens:auto}.stars{display:flex;align-items:center;gap:4px;margin-top:2px;color:var(--brass-dark);font-size:.77rem;letter-spacing:.02em}.stamp-arrival{display:inline-block;transform-origin:left center;animation:stamp-arrive .3s var(--ease-stamp)}.stamp-arrival.pending{animation-name:pending-stamp-arrive}.stars small{color:var(--soft-ink);font-family:DM Mono,monospace}.pending-badge{display:inline-flex;width:fit-content;align-items:center;gap:4px;margin-top:5px;padding:3px 7px;border:2px solid var(--ink);border-radius:10px;background:#eee6ff;color:#4e2b85;font-size:.72rem;font-weight:900}.pending-stamps{display:flex;width:fit-content;align-items:center;gap:5px;margin-top:5px;color:#7045b8;font-family:Fredoka,sans-serif;font-size:1.45rem;font-weight:700;letter-spacing:.05em;line-height:1;text-shadow:1px 1px 0 white;transform:rotate(-2deg)}.pending-stamps>span{padding:2px 7px 4px;border:2px dashed #7045b8;border-radius:10px;background:#f1eaff;box-shadow:2px 2px #d4c1f4}.pending-stamps small{color:#4e2b85;font-family:DM Mono,monospace;font-size:.72rem;letter-spacing:0}.pending-badge>span,.approval-row strong>span{font-size:1rem}.chore-money{text-align:right;white-space:nowrap}.chore-money strong{display:block;color:var(--brass-dark);font-family:DM Mono,monospace;font-size:.83rem}.chore-money small{display:block;color:var(--soft-ink);font-family:DM Mono,monospace;font-size:.62rem}.row-admin{display:flex}.approval-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:9px 14px;margin:-3px 7px 4px;padding:10px 12px;border:2.5px dashed var(--ink);border-top:0;border-radius:0 0 14px 14px;background:#f5f0ff;transform-origin:top center;animation:approval-unfold var(--motion-state) var(--ease-out)}.approval-row strong{display:inline-flex;align-items:center;gap:6px;color:#4e2b85;font-size:.82rem}.approval-row>div{display:flex;flex-wrap:wrap;gap:8px}.button.approve,.approve-all{background:var(--mint)}.approve-all{width:100%;margin-top:4px}.chore-editor,.add-chore{display:flex;flex-wrap:wrap;align-items:end;gap:8px;padding:11px;border:2.5px dashed var(--ink);border-radius:15px;background:#fff9e8}.add-chore{margin-top:2px}.chore-editor label,.add-chore label{min-width:130px;flex:1}.chore-editor .price-field,.add-chore .price-field{min-width:78px;max-width:92px}.editor-actions{display:flex;flex-wrap:wrap;gap:7px}label{display:grid;gap:5px;color:var(--soft-ink);font-size:.82rem;font-weight:800}input{width:100%;min-height:44px;padding:9px 11px;border:2.5px solid rgb(46 33 64 / 34%);border-radius:12px;background:#fff;color:var(--ink);font-size:1rem;font-weight:700}input::placeholder{color:#786e83}.kid-card-footer{display:flex;min-height:78px;align-items:center;justify-content:space-between;gap:14px;padding:12px 16px;border-top:3px dashed rgb(46 33 64 / 20%)}.kid-card-footer>span{font-size:.85rem}.kid-card-footer>span small{display:block;margin-top:2px;color:#4e2b85;font-size:.72rem;font-weight:900}.kid-card-footer .footer-pending{width:fit-content;margin-top:5px;padding:2px 7px;border:2px dashed #7045b8;border-radius:9px;background:#f1eaff;font-family:Fredoka,sans-serif;font-size:.85rem}.kid-card-footer strong{display:block;color:var(--brass-dark);font-family:Fredoka,sans-serif;font-size:1.55rem}.payout-blocked{margin:-8px 16px 13px;color:#4e2b85;font-size:.78rem;font-weight:800;text-align:right}.parent-toolbar{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}.history{margin-top:48px;padding-top:19px;border-top:3px dashed rgb(46 33 64 / 25%)}.section-heading{display:flex;align-items:center;gap:9px;margin-bottom:12px}.section-heading h2{margin:0;font-family:Fredoka,sans-serif;font-size:1.45rem}.section-heading>span{display:grid;min-width:28px;height:28px;place-items:center;border:2px solid var(--ink);border-radius:50%;background:var(--sun);font-family:DM Mono,monospace;font-size:.7rem}.history ul{display:grid;gap:7px;margin:0;padding:0;list-style:none}.history li{display:grid;grid-template-columns:88px minmax(0,1fr) auto auto;align-items:center;gap:12px;min-height:58px;padding:8px 12px;border:2.5px solid var(--ink);border-radius:14px;background:#fff}.history time{color:var(--soft-ink);font-family:DM Mono,monospace;font-size:.72rem}.history-person{min-width:0}.history-person strong,.history-person small{display:block;overflow-wrap:anywhere}.history-person small{color:var(--soft-ink)}.history-amount{color:var(--brass-dark);font-family:Fredoka,sans-serif;font-size:1.1rem;white-space:nowrap}.empty-copy{max-width:55ch;color:var(--soft-ink);font-style:italic}.child-view{max-width:760px;margin:0 auto}.kid-statistics{--accent: var(--coral);max-width:680px;margin:12px auto 0;border:3px solid var(--ink);border-radius:0 0 18px 18px;background:var(--paper);box-shadow:5px 6px 0 var(--accent),7px 9px 15px #2e21401a}.statistics-toggle{display:grid;width:100%;min-height:68px;grid-template-columns:44px minmax(0,1fr) 24px;align-items:center;gap:11px;padding:9px 14px;border:0;border-radius:0 0 15px 15px;background:transparent;color:var(--ink);text-align:left;cursor:pointer}.statistics-toggle:hover{background:#fff9e8}.statistics-toggle:focus-visible{outline:4px solid var(--sky);outline-offset:3px}.statistics-seal{display:grid;width:44px;height:44px;place-items:center;transform:rotate(-5deg);border:2.5px solid var(--ink);border-radius:50%;background:var(--sun);color:var(--ink);font-size:1.25rem;text-shadow:1px 1px 0 white}.statistics-summary-copy{min-width:0}.statistics-summary-copy strong,.statistics-summary-copy small{display:block}.statistics-summary-copy strong{font-family:Fredoka,sans-serif;font-size:1.25rem;line-height:1.1}.statistics-summary-copy small{margin-top:2px;color:var(--soft-ink);font-size:.78rem;line-height:1.25}.statistics-chevron{width:18px;height:18px;justify-self:center;transition:transform .18s ease-out}.kid-statistics.open .statistics-chevron{transform:rotate(180deg)}.statistics-sheet{padding:4px 16px 16px;border-top:3px dashed rgb(46 33 64 / 22%)}.statistics-total{display:flex;align-items:end;justify-content:space-between;gap:16px;padding:16px 2px 13px}.statistics-total span{font-weight:900}.statistics-total strong{color:var(--brass-dark);font-family:Fredoka,sans-serif;font-size:clamp(2rem,9vw,3rem);line-height:.95;white-space:nowrap}.statistics-breakdown,.statistics-ledger{margin:0}.statistics-breakdown{display:grid;grid-template-columns:1fr 1fr;border:2.5px solid var(--ink);border-radius:14px;background:#fff9e8}.statistics-breakdown>div{padding:10px 12px}.statistics-breakdown>div+div{border-left:2.5px dashed rgb(46 33 64 / 28%)}.statistics-breakdown dt,.statistics-ledger dt{color:var(--soft-ink);font-size:.78rem;font-weight:800}.statistics-breakdown dd{margin:2px 0 0;color:var(--brass-dark);font-family:DM Mono,monospace;font-size:.92rem;font-weight:500;white-space:nowrap}.statistics-ledger{margin-top:14px;border-top:2px dashed rgb(46 33 64 / 25%)}.statistics-ledger>div{display:grid;min-height:56px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:15px;border-bottom:2px dashed rgb(46 33 64 / 20%)}.statistics-ledger dt{display:flex;align-items:center;gap:9px}.statistics-ledger dt span{display:grid;width:30px;height:30px;flex:0 0 30px;place-items:center;border:2px solid var(--ink);border-radius:50%;background:#fff;color:var(--ink);font-family:Fredoka,sans-serif;font-size:.85rem;font-weight:800}.statistics-ledger dd{margin:0;color:var(--ink);font-family:Fredoka,sans-serif;font-size:1.25rem;font-weight:700;text-align:right}.statistics-note{margin:11px 0 0;color:var(--soft-ink);font-size:.72rem;text-align:center}.switch-kid{min-height:44px;margin:0 0 13px;padding:6px 2px;border:0;background:transparent;font-weight:800;cursor:pointer}.chooser{max-width:900px;margin:0 auto}.chooser-heading{margin:26px 0 22px;text-align:center}.chooser-heading p{margin-bottom:3px;color:var(--soft-ink)}.chooser-heading h1{margin:0;font-family:Fredoka,sans-serif;font-size:clamp(2rem,7vw,3.5rem);line-height:1}.kid-choices{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:22px}.kid-choice{display:grid;min-height:220px;place-items:center;align-content:center;gap:8px;padding:18px;border:3px solid var(--ink);border-radius:22px;background:#fff;box-shadow:7px 7px 0 var(--accent),9px 10px 18px #2e21401a;cursor:pointer;transition:transform .16s ease-out,box-shadow .16s ease-out}.kid-choice:hover{transform:translate(-2px,-2px);box-shadow:9px 9px 0 var(--accent),11px 13px 20px #2e21401f}.kid-choice:active{transform:translate(3px,3px) scale(.97);box-shadow:2px 2px 0 var(--accent),4px 5px 10px #2e214017}.choice-avatar{display:block;width:108px;height:108px}.kid-choice strong{font-family:Fredoka,sans-serif;font-size:1.5rem}.kid-choice small{color:var(--brass-dark);font-family:DM Mono,monospace}.parent-empty,.child-empty{max-width:580px;margin:50px auto;padding:34px;border:3px solid var(--ink);border-radius:20px;background:#fff;box-shadow:7px 7px 0 var(--sky);text-align:center}.parent-empty>span{color:var(--sun);font-size:3rem;text-shadow:2px 2px 0 var(--ink)}.parent-empty h1{margin-bottom:8px;font-family:Fredoka,sans-serif;font-size:2rem}.setup-shell,.loading-screen,.error-screen{display:grid;min-height:100vh;place-items:center;padding:24px}.setup-card,.error-screen section{position:relative;width:min(100%,560px);padding:clamp(26px,7vw,48px);border:3px solid var(--ink);border-radius:24px;background:#fff;box-shadow:9px 10px 0 var(--sky),12px 16px 26px #2e214021}.setup-stage{min-width:0}.setup-card h1,.error-screen h1{max-width:13ch;margin-bottom:12px;font-family:Fredoka,sans-serif;font-size:clamp(2rem,8vw,3.15rem);letter-spacing:-.025em;line-height:.98}.setup-card>p:not(.setup-step),.error-screen p{max-width:48ch;color:var(--soft-ink)}.setup-card form,.modal-content{display:grid;gap:14px}.setup-step,.picker-label{margin-bottom:9px;color:var(--soft-ink);font-family:DM Mono,monospace;font-size:.72rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase}.setup-mark{position:absolute;top:-24px;right:28px;display:grid;width:58px;height:58px;place-items:center;transform:rotate(8deg);border:3px solid var(--ink);border-radius:50%;background:var(--sun);font-size:1.8rem}.setup-next{width:100%;margin-top:7px}.recovery-code{padding:16px;border:3px solid var(--ink);border-radius:14px;background:#fff9e8;font-family:DM Mono,monospace;font-size:clamp(1.05rem,5vw,1.45rem);font-weight:500;letter-spacing:.08em;text-align:center;overflow-wrap:anywhere}.copy-button{width:100%;margin:10px 0 16px}.check-row{display:grid;grid-template-columns:24px 1fr;align-items:start;gap:10px}.check-row input{width:22px;min-height:22px;margin:1px 0 0}.device-note,.device-copy{color:var(--soft-ink)}.field-error{margin:4px 0 0;color:#9a241b;font-size:.85rem;font-weight:800;animation:error-nudge .26s var(--ease-out)}.loading-screen{align-content:center;gap:15px}.loading-screen p{color:var(--soft-ink)}.loading-coin{display:grid;width:68px;height:68px;place-items:center;border:4px solid var(--ink);border-radius:50%;background:var(--sun);box-shadow:5px 5px 0 var(--ink);font-family:Fredoka,sans-serif;font-size:2rem;animation:coin-settle .65s cubic-bezier(.16,1,.3,1) both}.error-screen section>span{display:grid;width:54px;height:54px;place-items:center;margin-bottom:18px;border:3px solid var(--ink);border-radius:50%;background:var(--coral);color:#fff;font-family:Fredoka,sans-serif;font-size:2rem}.save-error{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:18px;padding:12px 14px;border:3px solid var(--ink);border-radius:14px;background:#ffe1dc;box-shadow:4px 4px 0 var(--coral);color:#71190f;font-weight:800}.modal-scrim{position:fixed;z-index:50;inset:0;display:grid;place-items:center;padding:20px;overflow-y:auto;background:#2e21409e}.modal-panel{width:min(100%,520px);max-height:calc(100vh - 40px);overflow-y:auto;padding:26px;border:3px solid var(--ink);border-radius:22px;background:#fff;box-shadow:8px 8px 0 var(--sky),11px 14px 28px #00000038}.modal-panel.danger{box-shadow:8px 8px 0 var(--coral),11px 14px 28px #00000038}.modal-panel h2{margin-bottom:8px;font-family:Fredoka,sans-serif;font-size:1.65rem;line-height:1.08}.modal-panel>p{margin-bottom:18px;color:var(--soft-ink)}.modal-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px;margin-top:22px}.danger-button{background:var(--coral)!important;color:#fff}.text-button{justify-self:start;min-height:44px;padding:4px 0;border:0;background:transparent;color:#55416f;font-weight:800;text-decoration:underline;cursor:pointer}.swatches{display:flex;flex-wrap:wrap;gap:12px}.swatch{position:relative;width:46px;height:46px;padding:0;border:3px solid var(--ink);border-radius:50%;background:var(--swatch);box-shadow:2px 2px 0 var(--ink);cursor:pointer;transition:transform var(--motion-press) var(--ease-out),box-shadow var(--motion-press) var(--ease-out),outline-offset var(--motion-press) ease-out}.swatch.active{outline:3px solid var(--ink);outline-offset:3px;transform:rotate(-5deg) scale(1.08);box-shadow:4px 5px 0 var(--ink)}.swatch:hover:not(.active){transform:translateY(-2px) rotate(3deg)}.swatch:active{transform:translate(2px,2px) scale(.92);box-shadow:0 0 0 var(--ink)}.swatch span{position:absolute;top:-7px;right:-4px;display:grid;width:18px;height:18px;place-items:center;border:2px solid var(--ink);border-radius:50%;background:#fff}.avatar-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(64px,1fr));gap:9px}.avatar-grid button{min-height:64px;padding:3px;border:2.5px solid rgb(46 33 64 / 28%);border-radius:14px;background:var(--paper);cursor:pointer;transition:transform var(--motion-press) var(--ease-out),box-shadow var(--motion-press) var(--ease-out),background .15s ease-out}.avatar-grid button.active{border-color:var(--ink);background:var(--sun);box-shadow:3px 3px 0 var(--ink);transform:rotate(-2deg) scale(1.035)}.avatar-grid button:hover:not(.active){transform:translateY(-2px) rotate(2deg)}.avatar-grid button:active{transform:translate(2px,2px) scale(.94);box-shadow:0 0 0 var(--ink)}.update-toast{position:fixed;z-index:40;right:18px;bottom:18px;left:18px;display:flex;width:fit-content;max-width:calc(100% - 36px);align-items:center;gap:12px;margin-left:auto;padding:10px 12px;border:3px solid var(--ink);border-radius:14px;background:#fff;box-shadow:6px 6px 0 var(--sun),9px 11px 20px #2e21402e;animation:toast-arrive .32s var(--ease-out)}.celebration{position:fixed;z-index:60;inset:0;overflow:hidden;pointer-events:none}.celebration i{--angle: calc(var(--i) * 18deg - 99deg);--distance: calc(88px + var(--i) * 3px);position:absolute;top:var(--origin-y);left:var(--origin-x);color:var(--sun);font-family:Fredoka,sans-serif;font-size:1.45rem;font-style:normal;text-shadow:2px 2px 0 var(--ink);transform-origin:0 0;animation:payout-burst calc(.72s + var(--i) * 8ms) var(--ease-out) forwards;animation-delay:calc(var(--i) * 8ms)}.celebration i:nth-of-type(3n){color:var(--celebration-accent)}.payout-seal{position:absolute;top:var(--origin-y);left:var(--origin-x);display:grid;width:66px;height:66px;place-items:center;border:3px solid var(--ink);border-radius:50%;background:var(--sun);box-shadow:5px 6px 0 var(--celebration-accent),8px 10px 18px #2e214033;color:var(--ink);font-family:Fredoka,sans-serif;font-size:2rem;font-weight:800;animation:payout-seal .9s var(--ease-stamp) both}@keyframes stamp{0%{transform:scale(1)}42%{transform:scale(1.035) rotate(-.5deg);box-shadow:0 0 0 5px #2ecc9638}to{transform:scale(1);box-shadow:none}}@keyframes unstamp{0%{transform:translate(0)}45%{transform:translate(-4px) rotate(.35deg);background:#fff4ef}to{transform:translate(0)}}@keyframes coin-settle{0%{transform:translateY(-12px) rotate(-8deg);opacity:0}to{transform:none;opacity:1}}@keyframes stamp-arrive{0%{transform:translateY(-5px) scale(1.35) rotate(-8deg);opacity:0;filter:blur(1px)}60%{transform:translateY(1px) scale(.94) rotate(2deg);opacity:1;filter:blur(0)}to{transform:none;opacity:1;filter:blur(0)}}@keyframes pending-stamp-arrive{0%{transform:translateY(-8px) scale(1.42) rotate(-12deg);opacity:0;filter:blur(1px)}58%{transform:translateY(1px) scale(.92) rotate(-1deg);opacity:1;filter:blur(0)}to{transform:rotate(-2deg);opacity:1;filter:blur(0)}}@keyframes approval-unfold{0%{clip-path:inset(0 0 82% 0 round 0 0 14px 14px);transform:translateY(-5px);opacity:.35}to{clip-path:inset(0 round 0 0 14px 14px);transform:none;opacity:1}}@keyframes amount-bump{0%{transform:scale(.92);filter:blur(1px);opacity:.55}58%{transform:scale(1.08) rotate(-1deg);filter:blur(0);opacity:1}to{transform:none;filter:blur(0);opacity:1}}@keyframes banner-arrive{0%{clip-path:inset(0 9% 0 9% round 14px);transform:translateY(-5px);opacity:.45}to{clip-path:inset(0 round 14px);transform:none;opacity:1}}@keyframes error-nudge{0%,to{transform:translate(0)}30%{transform:translate(-5px)}62%{transform:translate(3px)}}@keyframes toast-arrive{0%{transform:translateY(18px) scale(.96);opacity:0}to{transform:none;opacity:1}}@keyframes payout-burst{0%{transform:translate(-50%,-50%) rotate(var(--angle)) translate(0) scale(.25);opacity:0;filter:blur(2px)}18%{opacity:1;filter:blur(0)}72%{transform:translate(-50%,-50%) rotate(var(--angle)) translate(var(--distance)) scale(1);opacity:1}to{transform:translate(-50%,-50%) rotate(calc(var(--angle) + 28deg)) translate(calc(var(--distance) + 38px)) scale(.65);opacity:0;filter:blur(1px)}}@keyframes payout-seal{0%{transform:translate(-50%,-50%) scale(.35) rotate(-18deg);opacity:0;filter:blur(2px)}38%{transform:translate(-50%,-50%) scale(1.08) rotate(5deg);opacity:1;filter:blur(0)}62%{transform:translate(-50%,-50%) scale(.96) rotate(-2deg);opacity:1}82%{transform:translate(-50%,-50%) scale(1) rotate(0);opacity:1}to{transform:translate(-50%,-62%) scale(.82);opacity:0;filter:blur(1px)}}::view-transition-old(root){animation:view-out .14s ease-in both}::view-transition-new(root){animation:view-in var(--motion-layout) var(--ease-out) both}::view-transition-group(*){animation-duration:var(--motion-layout);animation-timing-function:var(--ease-out)}@keyframes view-out{to{opacity:.5;transform:scale(.992);filter:blur(1px)}}@keyframes view-in{0%{opacity:.2;transform:translateY(7px) scale(.995);filter:blur(2px)}to{opacity:1;transform:none;filter:blur(0)}}@media(max-width:720px){.app-shell{width:min(100% - 22px,1120px);padding-top:14px}.masthead{align-items:flex-start;gap:10px;margin-bottom:22px}.masthead-actions{display:grid;justify-items:end;gap:9px}.owed{min-width:137px;padding:8px 12px}.owed strong{font-size:1.45rem}.owed span{font-size:.58rem}.parent-button,.lock-button{min-height:44px;padding:7px 10px;font-size:.78rem}.mode-banner{align-items:flex-start}.mode-banner>div{display:grid;grid-template-columns:12px 1fr}.mode-banner small{grid-column:2}.device-copy{display:none}.kid-card{border-radius:20px;box-shadow:5px 6px 0 var(--accent),7px 9px 15px #2e21401a}.kid-card-body{padding:11px}.chore-row,.parent-card .chore-row{grid-template-columns:auto minmax(0,1fr) auto;gap:8px}.parent-card .chore-money{grid-column:2;text-align:left}.parent-card .row-admin{grid-column:3;grid-row:1 / 3;flex-direction:column;align-self:center;justify-content:center;margin:0}.approval-row{align-items:stretch;flex-direction:column}.approval-row>div .button{flex:1}.step-zone{flex-direction:column-reverse}.step-button.plus{width:50px;height:50px}.chore-money strong{font-size:.76rem}.chore-money small{max-width:64px;white-space:normal}.history li{grid-template-columns:72px minmax(0,1fr) auto;gap:8px}.history li .icon-button{grid-column:3}.kid-statistics{margin-right:5px;margin-left:5px}.save-error{align-items:flex-start}}@media(max-width:450px){.brand{font-size:2.1rem}.owed{min-width:122px}.parent-button,.lock-button{max-width:130px}.coin-jar{align-items:flex-start;flex-direction:column;gap:6px}.statistics-total{display:grid;gap:5px}.statistics-total strong{white-space:normal}.statistics-breakdown{grid-template-columns:1fr}.statistics-breakdown>div+div{border-top:2.5px dashed rgb(46 33 64 / 28%);border-left:0}.chore-row{padding:8px}.chore-copy>strong{font-size:.9rem}.step-button.plus{width:46px;height:46px}.step-button.minus{width:44px;height:44px}.add-chore>label:first-child{min-width:100%;flex-basis:100%}.modal-panel{padding:21px}.modal-actions .button{flex:1}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.celebration{display:none}::view-transition-group(*),::view-transition-old(root),::view-transition-new(root){animation-duration:.01ms!important}}
