:root{--paper: oklch(.975 .012 85);--paper-2: oklch(.945 .016 84);--line: oklch(.9 .018 84);--ink: oklch(.28 .02 60);--ink-soft: oklch(.48 .022 65);--ink-faint: oklch(.63 .02 70);--green: oklch(.62 .12 145);--green-deep: oklch(.5 .12 148);--green-soft: oklch(.93 .05 145);--amber: oklch(.78 .13 70);--tomato: oklch(.62 .18 28);--prio: oklch(.58 .22 28);--ah: oklch(.6 .13 245);--dirk: oklch(.6 .19 28);--toko: oklch(.6 .12 190);--kruidvat: oklch(.66 .15 55);--radius: 14px;--radius-lg: 22px;--shadow-sheet: 0 -8px 40px oklch(.4 .03 70 / .18);--shadow-fab: 0 8px 24px oklch(.5 .12 148 / .4);--font-hand: "Shantell Sans", "Comic Sans MS", cursive;--font-body: "Nunito", system-ui, sans-serif;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%;margin:0}body{font-family:var(--font-body);color:var(--ink);background:var(--paper);background-image:radial-gradient(oklch(.99 .01 85 / .6) 1px,transparent 1px);background-size:22px 22px;-webkit-font-smoothing:antialiased;overscroll-behavior-y:none}button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}.app{max-width:560px;margin:0 auto;min-height:100%;display:flex;flex-direction:column;position:relative}.topbar{position:sticky;top:0;z-index:20;padding:calc(var(--safe-top) + 14px) 18px 12px;display:flex;align-items:baseline;justify-content:space-between;gap:10px;background:linear-gradient(var(--paper) 70%,transparent);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.brand{font-family:var(--font-hand);font-weight:700;font-size:clamp(1.6rem,6vw,2.1rem);line-height:1;color:var(--green-deep);letter-spacing:-.5px}.brand .leaf{display:inline-block;transform:rotate(-12deg);margin-right:2px}.topbar-actions{display:flex;align-items:center;gap:6px}.icon-btn{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;color:var(--ink-soft);transition:background .15s,color .15s}.icon-btn:active{background:var(--paper-2)}.icon-btn svg{width:22px;height:22px}.who{font-size:.78rem;color:var(--ink-faint);font-weight:600}.app-tabs{position:sticky;top:calc(var(--safe-top) + 58px);z-index:19;display:grid;grid-template-columns:1fr 1fr;gap:4px;margin:0 14px;padding:4px;border-radius:16px;background:color-mix(in oklch,var(--paper-2) 82%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.app-tabs button{min-height:42px;border-radius:12px;display:flex;align-items:center;justify-content:center;gap:7px;color:var(--ink-faint);font-size:.82rem;font-weight:850;transition:color .15s,background .15s,transform .12s}.app-tabs button:active{transform:scale(.98)}.app-tabs button.active{color:var(--green-deep);background:var(--paper);box-shadow:0 2px 8px #52453614}.app-tabs svg{width:18px;height:18px}.list{flex:1;padding:8px 0 140px}.cat-header{position:sticky;top:calc(var(--safe-top) + 58px);z-index:10;display:flex;align-items:center;gap:10px;padding:14px 18px 4px;background:linear-gradient(var(--paper) 75%,transparent)}.cat-header h2{font-family:var(--font-hand);font-weight:600;font-size:1.02rem;margin:0;color:var(--ink-soft);text-transform:lowercase}.cat-header .rule{flex:1;height:2px;border-radius:2px;background:repeating-linear-gradient(90deg,var(--line) 0 6px,transparent 6px 10px)}.cat-header .count{font-size:.74rem;font-weight:700;color:var(--ink-faint)}.store-band{padding:18px 18px 2px}.store-band .store-title{font-family:var(--font-hand);font-weight:700;font-size:1.25rem;display:inline-flex;align-items:center;gap:8px}.row{display:flex;align-items:center;gap:12px;padding:9px 14px 9px 18px;position:relative;user-select:none;-webkit-user-select:none}.row:after{content:"";position:absolute;left:48px;right:14px;bottom:0;height:1px;background:var(--line)}.row:active{background:#f8f1e3b3}.tick{flex:none;width:24px;height:24px;border-radius:8px;border:2px solid var(--ink-faint);display:grid;place-items:center;transition:transform .15s,background .15s,border-color .15s}.tick svg{width:15px;height:15px;stroke:var(--paper);opacity:0;transform:scale(.5);transition:opacity .15s,transform .2s cubic-bezier(.2,.9,.3,1.2)}.row-main{flex:1;min-width:0;display:flex;align-items:baseline;gap:8px}.priority-dot{flex:none;width:10px;height:10px;border-radius:50%;opacity:0}.priority-dot.on{opacity:1;background:var(--prio);box-shadow:0 0 #df23216b;animation:priopulse 1.5s ease-out infinite}.priority-dot.interactive{width:12px;height:12px}@keyframes priopulse{0%{box-shadow:0 0 #df23216b}70%{box-shadow:0 0 0 8px #df232100}to{box-shadow:0 0 #df232100}}.row-name{font-weight:700;font-size:1.02rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.row-qty{flex:none;font-size:.86rem;font-weight:700;color:var(--green-deep)}.store-pill{flex:none;font-size:.68rem;font-weight:800;padding:2px 8px;border-radius:999px;letter-spacing:.3px;color:var(--store-c, var(--ink-soft));background:color-mix(in oklch,var(--store-c, var(--ink-faint)) 16%,var(--paper))}.store-pill[data-store=AH]{--store-c: var(--ah)}.store-pill[data-store=Dirk]{--store-c: var(--dirk)}.store-pill[data-store=Toko]{--store-c: var(--toko)}.store-pill[data-store=Kruidvat]{--store-c: var(--kruidvat)}.dots{flex:none;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;color:var(--ink-faint)}.dots:active{background:var(--paper-2)}.dots svg{width:18px;height:18px}.row.checked .row-name{text-decoration:line-through;text-decoration-color:var(--ink-faint);color:var(--ink-faint)}.row.checked .row-qty{color:var(--ink-faint)}.row.checked .tick{background:var(--green);border-color:var(--green)}.row.checked .tick svg{opacity:1;transform:scale(1)}.checked-section{margin-top:22px}.checked-bar{display:flex;align-items:center;justify-content:space-between;padding:10px 18px;color:var(--ink-faint);font-size:.82rem;font-weight:700}.clear-btn{color:var(--tomato);font-weight:800;font-size:.8rem;padding:6px 10px;border-radius:10px}.clear-btn:active{background:color-mix(in oklch,var(--tomato) 12%,var(--paper))}.chores-view{flex:1;padding:28px 18px calc(var(--safe-bottom) + 42px)}.chores-loading{padding:22vh 0;text-align:center;color:var(--ink-faint);font-weight:750}.person-kicker{display:block;color:var(--green-deep);font-size:.7rem;line-height:1.2;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.person-list+.person-list{margin-top:44px}.person-head{display:flex;align-items:end;justify-content:space-between;gap:16px;padding:0 2px 10px;border-bottom:2px solid var(--ink)}.person-head h2{margin:2px 0 -2px;font-family:var(--font-hand);font-size:1.55rem;line-height:1}.person-score{color:var(--ink-faint);font-size:.76rem;font-weight:850}.person-tasks{display:flex;flex-direction:column}.chore-card{--chore-state: var(--green);position:relative;padding:5px 0 10px;border-bottom:1px solid var(--line);transition:background .18s,opacity .18s}.chore-card.overdue{--chore-state: var(--tomato);margin-inline:-10px;padding-inline:10px;background:color-mix(in oklch,var(--tomato) 7%,var(--paper))}.chore-card.completed{opacity:.58}.chore-card-head{width:100%;min-height:58px;display:flex;align-items:center;gap:11px;padding:7px 0;text-align:left}.chore-card-head:disabled,.chore-subtask:disabled{cursor:wait}.chore-title-block{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.chore-title{color:var(--ink);font-size:1.02rem;font-weight:900}.chore-meta{color:var(--ink-faint);font-size:.7rem;font-weight:750}.overdue-label{color:var(--tomato)}.chore-progress{flex:none;min-width:36px;color:var(--ink-faint);font-size:.76rem;font-weight:900;text-align:right}.chore-check{flex:none;width:23px;height:23px;border:2px solid var(--ink-faint);border-radius:7px;display:grid;place-items:center;color:var(--paper);transition:transform .14s,border-color .14s,background .14s}.chore-check svg{width:14px;height:14px;opacity:0;transform:scale(.5);transition:opacity .14s,transform .18s cubic-bezier(.2,.9,.3,1.2)}.chore-check.checked{border-color:var(--chore-state);background:var(--chore-state)}.chore-check.checked svg{opacity:1;transform:scale(1)}.chore-subtasks{padding:0 0 2px 34px}.chore-subtask{width:100%;min-height:40px;display:flex;align-items:center;gap:10px;padding:5px 0;color:var(--ink-soft);text-align:left;font-size:.88rem;font-weight:700}.chore-subtask .chore-check{width:19px;height:19px;border-width:1.5px;border-radius:6px}.chore-subtask .chore-check svg{width:12px;height:12px}.chore-subtask.completed span:last-child{color:var(--ink-faint);text-decoration:line-through;text-decoration-thickness:1.5px}.chores-reset-note{max-width:330px;margin:38px auto 0;color:var(--ink-faint);font-size:.76rem;line-height:1.45;font-weight:700;text-align:center}.little-treat-section{margin-top:48px}.earned-treat{position:relative;display:flex;align-items:center;gap:14px;padding:17px 18px;border:2px dashed color-mix(in oklch,var(--amber) 52%,var(--line));border-radius:18px;background:color-mix(in oklch,var(--amber) 9%,var(--paper));transform:rotate(-.35deg)}.earned-treat:before,.earned-treat:after{content:"";position:absolute;top:50%;width:13px;height:26px;border-radius:50%;background:var(--paper);transform:translateY(-50%)}.earned-treat:before{left:-8px}.earned-treat:after{right:-8px}.earned-treat-icon{flex:none;font-size:1.7rem;transform:rotate(-8deg)}.earned-treat>div{min-width:0;display:flex;flex-direction:column;gap:2px}.earned-treat-period{color:#8a5619;font-size:.68rem;font-weight:950;letter-spacing:.07em;text-transform:uppercase}.earned-treat strong{color:var(--ink);font-family:var(--font-hand);font-size:1.12rem;line-height:1.15}.little-treat-button{width:100%;min-height:64px;margin-top:12px;display:flex;align-items:center;gap:13px;padding:12px 16px;border-radius:18px;background:var(--ink);color:var(--paper);text-align:left;transition:transform .13s,background .18s}.little-treat-button:active{transform:scale(.98)}.little-treat-button.open{background:#4b321c}.little-treat-button svg{flex:none;width:23px;height:23px;color:var(--amber)}.little-treat-button>span{display:flex;flex-direction:column;gap:1px}.little-treat-button strong{font-family:var(--font-hand);font-size:1.1rem}.little-treat-button small{color:#ded6c9;font-size:.72rem;font-weight:750}.treat-options-reveal{display:grid;grid-template-rows:0fr;transition:grid-template-rows .28s cubic-bezier(.16,1,.3,1)}.treat-options-reveal.open{grid-template-rows:1fr}.treat-options-reveal>div{overflow:hidden}.treat-options{padding:8px 2px 2px}.treat-option{width:100%;min-height:48px;display:flex;align-items:center;gap:11px;padding:7px 9px;border-bottom:1px solid var(--line);color:var(--ink-soft);text-align:left;font-size:.9rem;font-weight:800}.treat-option:disabled{opacity:.6}.treat-option.selected{color:var(--green-deep)}.treat-radio{flex:none;width:22px;height:22px;display:grid;place-items:center;border:2px solid var(--ink-faint);border-radius:50%}.treat-option.selected .treat-radio{border-color:var(--green);background:var(--green);color:var(--paper)}.treat-radio svg{width:13px;height:13px}.treat-option-error{margin:8px 9px 2px;color:var(--tomato);font-size:.75rem;font-weight:800}.chore-celebration{--celebration-accent: var(--green-deep);--celebration-soft: var(--green);--celebration-secondary: var(--tomato);position:fixed;top:0;right:0;bottom:0;left:0;z-index:120;pointer-events:none;display:grid;place-items:center;padding:24px;overflow:hidden;contain:layout paint;animation:celebration-veil 3.6s cubic-bezier(.22,1,.36,1) both}.chore-celebration.celebration-nina{--celebration-accent: oklch(.53 .15 16);--celebration-soft: oklch(.69 .13 16);--celebration-secondary: oklch(.74 .12 58)}.chore-celebration:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at 50% 46%,oklch(.975 .012 85 / .94) 0 18%,oklch(.975 .012 85 / .62) 36%,transparent 70%)}.celebration-flourish{position:absolute;top:23%;left:50%;color:var(--celebration-secondary);font-size:clamp(2.5rem,15vw,5rem);line-height:1;text-shadow:-48px 28px 0 color-mix(in oklch,var(--celebration-soft) 78%,var(--paper)),52px 22px 0 color-mix(in oklch,var(--celebration-secondary) 72%,var(--paper));animation:celebration-star 1.1s cubic-bezier(.16,1,.3,1) both}.celebration-note{position:relative;width:min(86vw,390px);display:flex;flex-direction:column;align-items:center;gap:5px;padding:26px 24px 25px;border:2px solid color-mix(in oklch,var(--celebration-soft) 34%,var(--line));border-radius:26px;background:color-mix(in oklch,var(--paper) 94%,transparent);box-shadow:0 22px 60px #46351838;color:var(--ink-soft);text-align:center;transform:rotate(-1deg);animation:celebration-note-in 3.25s cubic-bezier(.16,1,.3,1) both}.celebration-note:after{content:"";position:absolute;left:22px;right:22px;bottom:15px;height:2px;background:repeating-linear-gradient(90deg,var(--line) 0 6px,transparent 6px 10px)}.celebration-kicker{color:var(--celebration-accent);font-size:.7rem;font-weight:950;letter-spacing:.1em;text-transform:uppercase}.celebration-note strong{font-family:var(--font-hand);color:var(--celebration-accent);font-size:clamp(1.8rem,8vw,2.65rem);line-height:1.05}.celebration-note>span:last-child{padding-bottom:12px;font-size:.88rem;font-weight:750}@keyframes celebration-veil{0%{opacity:0}8%,82%{opacity:1}to{opacity:0}}@keyframes celebration-note-in{0%{opacity:0;transform:translateY(18px) scale(.9) rotate(-3deg)}16%,82%{opacity:1;transform:translateY(0) scale(1) rotate(-1deg)}to{opacity:0;transform:translateY(-8px) scale(.98) rotate(-1deg)}}@keyframes celebration-star{0%{opacity:0;transform:translate(-50%,16px) scale(.35) rotate(-20deg)}24%,78%{opacity:1;transform:translate(-50%) scale(1) rotate(8deg)}to{opacity:0;transform:translate(-50%,-8px) scale(.8) rotate(15deg)}}.fab{position:fixed;right:max(18px,calc(50% - 262px));bottom:calc(var(--safe-bottom) + 22px);width:62px;height:62px;border-radius:22px;background:var(--green);color:var(--paper);display:grid;place-items:center;box-shadow:var(--shadow-fab);z-index:30;transition:transform .12s}.fab:active{transform:scale(.92)}.fab svg{width:30px;height:30px}.empty{text-align:center;padding:18vh 30px 0;color:var(--ink-faint)}.empty .big{font-family:var(--font-hand);font-size:1.7rem;color:var(--ink-soft);margin-bottom:6px}.empty .sub{font-size:.95rem;line-height:1.5}.update-toast{position:fixed;left:50%;bottom:calc(var(--safe-bottom) + 24px);transform:translate(-50%);z-index:45;display:flex;align-items:center;gap:14px;width:min(92vw,420px);background:var(--green-deep);color:var(--paper);padding:12px 14px 12px 18px;border-radius:16px;box-shadow:0 10px 30px #27753961;font-size:.9rem;font-weight:700;animation:snackin .28s cubic-bezier(.2,.9,.3,1)}.update-toast span{flex:1;min-width:0}.update-toast button{flex:none;background:var(--paper);color:var(--green-deep);border-radius:999px;padding:8px 12px;font-weight:900}.undo-toast{position:fixed;left:50%;bottom:calc(var(--safe-bottom) + 94px);transform:translate(-50%);z-index:46;display:flex;align-items:center;gap:14px;width:min(92vw,420px);min-height:58px;background:var(--ink);color:var(--paper);padding:10px 12px 10px 16px;border-radius:18px;box-shadow:0 14px 36px #30271f47;font-size:.92rem;font-weight:800;animation:snackin .28s cubic-bezier(.2,.9,.3,1)}.undo-copy{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.undo-copy span,.undo-copy small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.undo-copy small{color:#d5d0c7c7;font-size:.74rem;font-weight:700}.undo-toast button{flex:none;min-height:38px;background:var(--amber);color:#382414;border-radius:999px;padding:8px 14px;font-weight:950}.undo-toast button:active{transform:scale(.96)}@keyframes snackin{0%{opacity:0;transform:translate(-50%,16px)}to{opacity:1;transform:translate(-50%)}}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#342c2359;z-index:50;animation:fade .2s ease;touch-action:none}@keyframes fade{0%{opacity:0}to{opacity:1}}.sheet{position:fixed;left:0;right:0;bottom:0;z-index:60;max-width:560px;margin:0 auto;background:var(--paper);border-radius:26px 26px 0 0;box-shadow:var(--shadow-sheet);display:flex;flex-direction:column;padding:8px 20px calc(var(--safe-bottom) + 14px);animation:sheetup .32s cubic-bezier(.16,1,.3,1);transition:transform .18s cubic-bezier(.16,1,.3,1);max-height:min(92vh,780px);overflow-y:auto;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.sheet.dragging{transition:none}.item-sheet{padding-top:6px;max-height:min(76vh,640px)}@keyframes sheetup{0%{opacity:0}to{opacity:1}}.grabber{width:72px;height:30px;border-radius:999px;display:grid;place-items:center;margin:0 auto 8px;flex:none;cursor:grab;touch-action:none}.grabber:before{content:"";width:42px;height:5px;border-radius:3px;background:var(--line)}.grabber:active{cursor:grabbing}.grabber:focus-visible{outline:2px solid var(--green);outline-offset:1px}.sheet h3{font-family:var(--font-hand);font-weight:700;font-size:1.4rem;margin:0 0 12px;flex:none}.field{margin-bottom:12px}.field label{display:block;font-size:.78rem;font-weight:800;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.4px;margin-bottom:6px}.field input[type=text],.field select{width:100%;font-family:inherit;font-size:1.05rem;font-weight:600;color:var(--ink);min-height:46px;padding:10px 14px;border:2px solid var(--line);border-radius:var(--radius);background:var(--paper)}.field input[type=text]{user-select:text;-webkit-user-select:text;-webkit-touch-callout:default}.field select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--ink-soft) 50%),linear-gradient(135deg,var(--ink-soft) 50%,transparent 50%);background-position:calc(100% - 20px) 20px,calc(100% - 14px) 20px;background-size:6px 6px,6px 6px;background-repeat:no-repeat;padding-right:42px}.field input:focus,.field select:focus{outline:none;border-color:var(--green)}.chips{display:flex;flex-wrap:wrap;gap:7px}.chip{min-height:40px;padding:7px 13px;border-radius:999px;border:2px solid var(--line);font-weight:700;font-size:.9rem;color:var(--ink-soft);transition:all .12s}.chip.on{border-color:var(--green);background:var(--green-soft);color:var(--green-deep)}.chip.cat.on{border-color:var(--amber);background:color-mix(in oklch,var(--amber) 22%,var(--paper));color:#6c4302}.prio-chip{display:inline-flex;align-items:center;gap:8px}.prio-chip.on{border-color:var(--prio);background:color-mix(in oklch,var(--prio) 12%,var(--paper));color:var(--prio)}.toggle-row{min-height:56px;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:8px 0}.toggle-copy{min-width:0;display:flex;flex-direction:column;gap:2px}.toggle-copy span{font-size:.98rem;font-weight:800}.toggle-copy small{color:var(--ink-faint);font-size:.8rem;font-weight:700}.field-help{margin:-1px 0 9px;color:var(--ink-faint);font-size:.78rem;line-height:1.35;font-weight:700}.treat-settings{margin-top:10px;padding-top:16px;border-top:1px solid var(--line)}.treat-settings-list{display:flex;flex-direction:column;gap:7px}.treat-settings-row{display:flex;align-items:center;gap:7px}.treat-settings-row input[type=text]{flex:1;min-width:0;min-height:42px;padding:8px 11px;font-size:.9rem;border-width:1.5px}.treat-settings-row>button{flex:none;width:38px;height:38px;display:grid;place-items:center;border-radius:50%;color:var(--ink-faint)}.treat-settings-row>button:active{background:color-mix(in oklch,var(--tomato) 10%,var(--paper));color:var(--tomato)}.treat-settings-row svg,.add-treat-option svg{width:17px;height:17px}.add-treat-option{min-height:40px;margin-top:8px;display:inline-flex;align-items:center;gap:7px;color:var(--green-deep);font-size:.82rem;font-weight:900}.treat-settings-save{min-height:42px;margin-top:7px;display:flex;align-items:center;justify-content:flex-end;gap:10px}.treat-settings-save span{flex:1;color:var(--tomato);font-size:.73rem;font-weight:800}.treat-settings-save span.saved{color:var(--green-deep)}.treat-settings-save button{min-height:38px;padding:7px 12px;border-radius:11px;background:var(--green-soft);color:var(--green-deep);font-size:.8rem;font-weight:900}.treat-settings-save button:disabled{opacity:.55}.switch{flex:none;width:58px;height:34px;border-radius:999px;padding:3px;background:var(--paper-2);border:2px solid var(--line);transition:background .16s,border-color .16s}.switch span{display:block;width:24px;height:24px;border-radius:50%;background:var(--ink-faint);transition:transform .18s cubic-bezier(.2,.9,.3,1),background .16s}.switch.on{background:var(--green-soft);border-color:var(--green)}.switch.on span{transform:translate(24px);background:var(--green-deep)}.sheet-actions{position:sticky;bottom:0;display:flex;gap:10px;flex:none;margin:8px -20px 0;padding:10px 20px 0;background:linear-gradient(transparent,var(--paper) 24%,var(--paper) 100%)}.btn{flex:1;min-height:52px;padding:12px;border-radius:var(--radius);font-weight:800;font-size:1rem;text-align:center}.btn-primary{background:var(--green);color:var(--paper)}.btn-primary:active{background:var(--green-deep)}.btn-ghost{background:var(--paper-2);color:var(--ink-soft)}.btn-danger{background:color-mix(in oklch,var(--tomato) 14%,var(--paper));color:var(--tomato);flex:none;width:54px;display:grid;place-items:center}.btn-danger svg{width:22px;height:22px}.add-screen{position:fixed;top:0;right:0;bottom:0;left:0;z-index:70;background:var(--paper);max-width:560px;margin:0 auto;display:flex;flex-direction:column;animation:slideup .3s cubic-bezier(.16,1,.3,1)}@keyframes slideup{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.add-head{display:flex;align-items:center;justify-content:space-between;padding:calc(var(--safe-top) + 14px) 14px 8px}.add-head .title{font-family:var(--font-hand);font-weight:700;font-size:1.4rem;color:var(--green-deep)}.add-store-row{padding:4px 18px 8px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}.add-store-row .lbl{font-size:.78rem;font-weight:800;color:var(--ink-faint);text-transform:uppercase}.mini-chip{padding:5px 11px;border-radius:999px;border:2px solid var(--line);font-weight:800;font-size:.78rem;color:var(--ink-soft)}.mini-chip.on{border-color:var(--green);background:var(--green-soft);color:var(--green-deep)}.add-lines{flex:1;overflow-y:auto;padding:6px 18px 20px}.add-line{display:flex;align-items:center;gap:9px;padding:4px 0;animation:linein .2s ease}@keyframes linein{0%{opacity:0;transform:translate(-6px)}to{opacity:1;transform:none}}.add-line .bullet{color:var(--green);font-weight:900;font-size:1.2rem;font-family:var(--font-hand)}.prio-toggle{flex:none;width:28px;height:30px;display:grid;place-items:center;border-radius:999px}.prio-toggle:active{background:color-mix(in oklch,var(--prio) 10%,var(--paper))}.prio-toggle:not(.on) .priority-dot{opacity:1;width:9px;height:9px;border:2px solid var(--line);background:transparent;animation:none}.add-line input{flex:1;min-width:0;border:none;background:none;font-family:inherit;font-size:1.1rem;font-weight:600;color:var(--ink);padding:6px 0;border-bottom:2px dashed transparent}.add-line input:focus{outline:none;border-bottom-color:var(--green-soft)}.add-line .del-line{color:var(--ink-faint);width:30px;height:30px;display:grid;place-items:center}.add-hint{color:var(--ink-faint);font-size:.85rem;padding:10px 4px}.confirm-fab{position:fixed;right:max(18px,calc(50% - 262px));bottom:calc(var(--safe-bottom) + 22px);width:64px;height:64px;border-radius:22px;background:var(--green);color:var(--paper);display:grid;place-items:center;box-shadow:var(--shadow-fab);z-index:80;transition:transform .12s}.confirm-fab:active{transform:scale(.92)}.confirm-fab:disabled{opacity:.4}.confirm-fab svg{width:32px;height:32px}.processing{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;background:#faf6eef0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;padding:30px;text-align:center;animation:fade .2s}.processing .spinner{width:46px;height:46px;border-radius:50%;border:4px solid var(--green-soft);border-top-color:var(--green);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.processing .ptext{font-family:var(--font-hand);font-size:1.5rem;color:var(--green-deep)}.processing .psub{color:var(--ink-soft);font-size:.9rem;max-width:280px}.processing .preview-lines{margin-top:6px;color:var(--ink-faint);font-size:.85rem;line-height:1.7;max-height:30vh;overflow:hidden}.login{min-height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:30px;text-align:center;gap:8px}.login .logo{font-family:var(--font-hand);font-weight:700;font-size:clamp(2.4rem,11vw,3.4rem);color:var(--green-deep);line-height:1.05}.login .tag{color:var(--ink-soft);font-size:1rem;margin-bottom:26px;max-width:280px}.login form{width:100%;max-width:320px;display:flex;flex-direction:column;gap:12px}.login input{width:100%;font-family:inherit;text-align:center;font-size:1.15rem;font-weight:700;padding:14px;border:2px solid var(--line);border-radius:var(--radius);background:var(--paper);color:var(--ink)}.login input:focus{outline:none;border-color:var(--green)}.toast-err{color:var(--tomato);font-weight:700;font-size:.88rem;min-height:1.2em}@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}.chore-celebration{animation:none!important}.chore-celebration:before{background:#faf6eecc}.celebration-flourish{display:none}.celebration-note{animation:none!important}}
