@font-face{font-family:Fredoka;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/fredoka-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Fredoka;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/fredoka-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Fredoka;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/fredoka-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Fredoka;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/fredoka-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Fredoka;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/fredoka-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Fredoka;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/fredoka-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Nunito;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/nunito-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Nunito;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/nunito-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Nunito;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/nunito-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Nunito;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/nunito-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Nunito;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/nunito-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Nunito;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/nunito-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Nunito;font-style:normal;font-weight:800;font-display:swap;src:url(/fonts/nunito-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Nunito;font-style:normal;font-weight:800;font-display:swap;src:url(/fonts/nunito-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg:#f4f1fb;--surface:#fff;--ink:#26203a;--muted:#6f6786;--grape:#6d3bef;--grape-d:#5325c8;--grape-soft:#ece4fd;--pop:#ff5c8a;--pop-d:#e0357a;--pop-soft:#ffe1ec;--pop-ink:#c2295c;--teal:#12b5a5;--teal-d:#0e7d72;--teal-soft:#d3f4ef;--coral:#f2643f;--amber:#e0930c;--sky:#2f7fe0;--moss:#3f9a52;--line:#e7e1f3;--line-soft:#f1ecfa;--disp:"Fredoka", system-ui, sans-serif;--body:"Nunito", system-ui, sans-serif;--num:"Fredoka", system-ui, sans-serif;--tabbar-h:66px}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--ink);font-family:var(--body);-webkit-font-smoothing:antialiased;min-height:100dvh;font-weight:600}input,textarea,select,button{font-family:inherit;font-size:max(16px,1rem)}:focus-visible{outline:3px solid var(--grape);outline-offset:2px;border-radius:4px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.app{width:100%;max-width:412px;min-height:100dvh;padding:env(safe-area-inset-top) 16px calc(var(--tabbar-h) + env(safe-area-inset-bottom) + 18px);margin:0 auto}.app[data-keyboard=open]{--tabbar-h:0px;padding-bottom:18px}.app[data-keyboard=open] .tabbar,.app[data-keyboard=open] .toast-region{display:none}.topbar{background:var(--bg);z-index:5;justify-content:space-between;align-items:center;gap:12px;padding:16px 0 10px;display:flex;position:sticky;top:0}.brand{align-items:center;gap:10px;min-width:0;display:flex}.brand img{border-radius:10px;flex:none;width:32px;height:32px;display:block}.brand h1{font-family:var(--disp);letter-spacing:-.015em;white-space:nowrap;margin:0;font-size:18px;font-weight:700}.screen-title{font-family:var(--disp);letter-spacing:-.01em;margin:4px 0;font-size:27px;font-weight:700}.hint{color:var(--muted);margin:2px 0 14px;font-size:14px;font-weight:600;line-height:1.55}.empty{text-align:center;color:var(--muted);padding:38px 20px;font-size:14px;font-weight:600;line-height:1.6}.notice{background:var(--pop-soft);color:var(--pop-ink);border:1px solid var(--pop);border-radius:14px;margin-bottom:12px;padding:12px 14px;font-size:13.5px;font-weight:700;line-height:1.5}.tabbar{width:100%;max-width:412px;height:calc(var(--tabbar-h) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--line);z-index:10;background:#ffffffeb;display:flex;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.tabbar button{color:var(--muted);cursor:pointer;background:0 0;border:0;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;padding-top:4px;font-size:10.5px;font-weight:700;transition:color .12s;display:flex}.tabbar button svg{stroke:currentColor;fill:none;stroke-width:2.2px;stroke-linecap:round;stroke-linejoin:round;width:23px;height:23px}.tabbar button[aria-current=page]{color:var(--grape)}.who{background:var(--surface);border:1px solid var(--line);border-radius:14px;flex:none;gap:6px;padding:4px;display:flex}.who button{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:10px;align-items:center;gap:7px;padding:7px 12px;font-size:13px;font-weight:700;transition:all .15s;display:flex}.who button.on{background:var(--bg);color:var(--ink);box-shadow:inset 0 0 0 2px var(--grape)}.dot{border-radius:50%;flex:none;width:8px;height:8px;display:inline-block}.count{color:var(--muted);font-size:13px;font-weight:700}.section-h{font-family:var(--disp);letter-spacing:.01em;color:var(--muted);text-transform:uppercase;align-items:center;gap:7px;margin:22px 2px 9px;font-size:14px;font-weight:600;display:flex}.task-list{margin:0;padding:0;list-style:none}.task{background:var(--surface);border:1px solid var(--line);border-radius:18px;align-items:center;gap:13px;margin-bottom:10px;padding:14px;transition:opacity .3s,border-color .15s;display:flex}.task.done{opacity:.5}.task-hit{cursor:pointer;flex:1;align-items:center;gap:13px;min-width:0;display:flex}.task.done .task-hit{cursor:default}.check-input{opacity:0;width:28px;height:28px;cursor:inherit;margin:0;position:absolute}.check{border:2.5px solid var(--line);background:var(--bg);border-radius:10px;flex:none;place-items:center;width:28px;height:28px;transition:all .15s;display:grid}.check svg{stroke:#fff;opacity:0;width:16px;height:16px;transition:transform .25s cubic-bezier(.3,1.6,.5,1),opacity .15s;transform:scale(.4)}.check-input:checked+.check{background:var(--grape);border-color:var(--grape)}.check-input:checked+.check svg{opacity:1;transform:scale(1)}.check-input:focus-visible+.check{outline:3px solid var(--grape);outline-offset:2px}.task .body{flex:1;min-width:0}.task .title{letter-spacing:-.01em;font-size:15.5px;font-weight:700;display:block}.task.done .title{text-decoration:line-through}.task .meta{align-items:center;gap:8px;margin-top:5px;display:flex}.chip{border-radius:999px;align-items:center;gap:5px;padding:3px 9px;font-size:11.5px;font-weight:700;display:inline-flex}.chip.plain{background:var(--line-soft);color:var(--muted)}.chip.recur{background:var(--grape-soft);color:var(--grape-d)}.chip.late{background:var(--pop-soft);color:var(--pop-ink)}.chip.due{background:var(--teal-soft);color:var(--teal-d)}.days{gap:6px;display:flex}.day{border:2px solid var(--line);background:var(--surface);width:40px;height:40px;color:var(--muted);cursor:pointer;border-radius:12px;flex:none;font-size:14px;font-weight:800}.day.on{border-color:var(--grape);background:var(--grape-soft);color:var(--grape-d)}.fld input[type=date]{border:2px solid var(--line);background:var(--surface);width:100%;color:var(--ink);border-radius:14px;outline:none;min-height:48px;padding:12px 14px;font-weight:600}.fld input[type=date]:focus{border-color:var(--grape)}.pts{font-family:var(--num);color:var(--pop-ink);background:var(--pop-soft);border-radius:12px;flex:none;padding:6px 11px;font-size:16px;font-weight:700}.pts:before{content:"+"}.hint-num{font-family:var(--num);color:var(--pop-ink)}.reward-list{margin:0;padding:0;list-style:none}.reward{background:var(--surface);border:1px solid var(--line);border-radius:18px;align-items:center;gap:12px;margin-bottom:10px;padding:14px;display:flex}.reward .emoji{background:var(--grape-soft);border-radius:14px;flex:none;place-items:center;width:46px;height:46px;font-size:23px;display:grid}.reward .body{flex:1;min-width:0}.reward .title{letter-spacing:-.01em;font-size:15.5px;font-weight:700;display:block}.reward .cost{font-family:var(--num);color:var(--muted);margin-top:3px;font-size:13px;font-weight:600;display:block}.reward .redeem{background:var(--grape);color:#fff;cursor:pointer;border:0;border-radius:13px;flex:none;padding:10px 16px;font-size:13.5px;font-weight:700;transition:all .15s}.reward .redeem:disabled{background:var(--line);color:var(--muted);cursor:not-allowed}.reward .redeem:not(:disabled):active{background:var(--grape-d);transform:scale(.96)}.reward .redeem.ok{background:var(--pop-ink);color:#fff}.confetti{z-index:35;pointer-events:none;border-radius:2px;width:9px;height:14px;position:fixed}.pts-float{font-family:var(--num);color:var(--pop-ink);pointer-events:none;z-index:30;font-size:24px;font-weight:700;animation:1s cubic-bezier(.3,-.4,.4,1) forwards floatUp;position:absolute}@keyframes floatUp{0%{opacity:0;transform:translateY(8px)scale(.7)}25%{opacity:1;transform:translateY(-4px)scale(1.15)}to{opacity:0;transform:translateY(-40px)scale(1)}}.toast-region{bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom) + 16px);z-index:40;pointer-events:none;width:max-content;max-width:340px;position:fixed;left:50%;transform:translate(-50%)}.toast{background:var(--grape-d);color:#fff;pointer-events:auto;border-radius:14px;align-items:center;gap:14px;padding:12px 18px;font-size:14px;font-weight:700;animation:.25s toast-in;display:flex;box-shadow:0 8px 24px -6px #3c1e7880}.toast-action{color:#fff;cursor:pointer;background:#ffffff29;border:0;border-radius:10px;flex:none;padding:6px 12px;font-size:13px;font-weight:800}@keyframes toast-in{0%{opacity:0;transform:translateY(6px)}}.nudge{background:var(--grape-soft);border:1px solid var(--grape);color:var(--grape-d);border-radius:14px;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;padding:10px 12px;font-size:13px;font-weight:700;display:flex}.nudge-actions{flex:none;align-items:center;gap:6px;display:flex}.nudge .toast-action{background:var(--grape)}.nudge-dismiss{color:var(--grape-d);cursor:pointer;background:0 0;border:0;border-radius:8px;padding:6px 8px;font-size:15px;line-height:1}.balances{grid-template-columns:1fr 1fr;gap:11px;margin-bottom:6px;display:grid}.bcard{background:var(--surface);border:1px solid var(--line);background-image:linear-gradient(160deg, color-mix(in srgb, var(--seat) 12%, #fff), #fff);border-radius:20px;padding:16px}.bcard .name{align-items:center;gap:7px;margin-bottom:9px;font-size:13.5px;font-weight:700;display:flex}.bcard .amt{font-family:var(--num);color:var(--pop-ink);font-size:38px;font-weight:700;line-height:1}.bcard .amt small{color:var(--muted);margin-left:3px;font-size:13px;font-weight:600}.event-list{background:var(--surface);border:1px solid var(--line);border-radius:18px;margin:0;padding:0 14px;list-style:none}.event{border-bottom:1px solid var(--line-soft)}.event:last-child{border-bottom:0}.event-main{align-items:center;gap:11px;padding:12px 2px;display:flex}.event .ic{border-radius:11px;flex:none;place-items:center;width:32px;height:32px;display:grid}.event .ic svg{fill:none;stroke-linecap:round;stroke-linejoin:round;width:16px;height:16px}.event .ic{background:var(--grape-soft)}.event .ic svg{stroke:var(--grape)}.event .ic .emo{font-size:18px;line-height:1}.event .body{flex:1;min-width:0}.event .lbl{color:var(--ink);font-size:15px;font-weight:700;display:block}.event .sub{color:#5d566f;margin-top:3px;font-size:12.5px;font-weight:600;display:block}.event .amt{font-family:var(--num);color:var(--grape);flex:none;font-size:16.5px;font-weight:700}.event.reversed .lbl{color:var(--muted);text-decoration:line-through}.undo-line{color:var(--ink);margin-top:4px;font-size:12.5px;font-weight:700;display:block}.confirm{background:var(--bg);border-radius:14px;margin:0 0 12px;padding:12px}.confirm p{margin:0 0 10px;font-size:13.5px;line-height:1.5}.secondary.wide{width:100%;margin-top:12px}.fld{margin-bottom:15px;display:block}.fld .lbl{color:var(--muted);margin-bottom:7px;font-size:13px;font-weight:700;display:block}.fld input[type=text]{border:2px solid var(--line);background:var(--surface);width:100%;color:var(--ink);border-radius:14px;outline:none;padding:12px 14px;font-weight:600}.fld input[type=text]:focus{border-color:var(--grape)}.emoji-input{text-align:center;width:5.5rem!important;font-size:24px!important}.seg{flex-wrap:wrap;gap:7px;display:flex}.seg button{border:2px solid var(--line);background:var(--surface);color:var(--muted);cursor:pointer;border-radius:13px;align-items:center;gap:6px;padding:9px 14px;font-size:13.5px;font-weight:700;transition:all .12s;display:flex}.seg button.on{border-color:var(--grape);background:var(--grape-soft);color:var(--grape-d)}.seg.modes{margin:6px 0 18px}.stepper{border:2px solid var(--line);background:var(--surface);border-radius:14px;align-items:center;width:fit-content;display:flex;overflow:hidden}.stepper button{width:46px;height:46px;color:var(--grape);cursor:pointer;font-size:24px;font-family:var(--disp);background:0 0;border:0}.stepper .n{font-family:var(--num);text-align:center;min-width:62px;color:var(--pop-ink);font-size:19px;font-weight:700}.toggle{cursor:pointer;background:0 0;border:0;align-items:center;gap:10px;padding:0;display:flex}.toggle .track{background:var(--line);border-radius:999px;flex:none;width:48px;height:28px;transition:all .15s;position:relative}.toggle .track:after{content:"";background:#fff;border-radius:50%;width:22px;height:22px;transition:all .18s cubic-bezier(.3,1.5,.5,1);position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #0003}.toggle.on .track{background:var(--grape)}.toggle.on .track:after{transform:translate(20px)}.toggle-label{color:var(--muted);font-size:14px;font-weight:700}.toggle.on .toggle-label{color:var(--grape-d)}.primary{background:var(--grape);color:#fff;cursor:pointer;width:100%;font-size:17px;font-weight:700;font-family:var(--disp);letter-spacing:-.01em;border:0;border-radius:16px;margin-top:8px;padding:16px}.primary:active{background:var(--grape-d)}.primary:disabled{background:var(--line);color:var(--muted);cursor:not-allowed}.form-actions{gap:10px;margin-top:12px;display:flex}.secondary,.danger{border:2px solid var(--line);background:var(--surface);color:var(--muted);cursor:pointer;border-radius:14px;flex:1;padding:13px;font-size:14px;font-weight:700}.danger{border-color:var(--pop-soft);color:var(--pop-ink)}.danger.armed{background:var(--pop-ink);border-color:var(--pop-ink);color:#fff}.swatches{flex-wrap:wrap;gap:10px;display:flex}.swatch{cursor:pointer;border:3px solid #0000;border-radius:12px;width:38px;height:38px;padding:0}.swatch.on{border-color:var(--ink)}.person-edit{background:var(--surface);border:1px solid var(--line);border-radius:18px;margin-bottom:14px;padding:16px}.row-edit{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:10px;flex:none;place-items:center;padding:6px;display:grid}.row-edit svg{stroke:currentColor;fill:none;stroke-linecap:round;stroke-linejoin:round;width:17px;height:17px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.build-stamp{text-align:center;color:var(--muted);opacity:.7;padding:18px 0 4px;font-size:11px;font-weight:600}
