:root{--paper:#f3f6f1;--ink:#143b36;--ink-soft:#3d5b55;--card:#fff;--line:#dce5df;--teal:#0d7a6f;--coral:#e0574f;--sunshine:#e8a013;--display:"Shantell Sans", system-ui, sans-serif;--body:system-ui, -apple-system, "Segoe UI", sans-serif}*{box-sizing:border-box}body{background:var(--paper);color:var(--ink);font-family:var(--body);-webkit-font-smoothing:antialiased;min-height:100dvh;margin:0;font-size:16px;line-height:1.5}.shell{max-width:26rem;padding:max(env(safe-area-inset-top), 1.25rem) 1.25rem calc(env(safe-area-inset-bottom) + 1.5rem);margin:0 auto}.braid{background:linear-gradient(90deg, var(--teal) 0 33.4%, var(--coral) 33.4% 66.7%, var(--sunshine) 66.7% 100%);border:none;border-radius:3px;width:5.5rem;height:6px;margin:.75rem 0 0}h1{font-family:var(--display);margin:0;font-size:1.75rem;font-weight:700;line-height:1.2}.greeting-sub{color:var(--ink-soft);margin:.25rem 0 0;font-size:.95rem}.signin{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:.5rem;min-height:90dvh;display:flex}.signin .braid{margin:1rem auto 2rem}.google-btn{background:var(--ink);color:#fff;font:600 1rem var(--body);cursor:pointer;border:none;border-radius:999px;align-items:center;gap:.6rem;padding:.85rem 1.6rem;text-decoration:none;display:inline-flex}.google-btn:active{transform:scale(.98)}.members{gap:.5rem;margin:1.25rem 0 0;display:flex}.member-chip{background:var(--card);border:1px solid var(--line);border-radius:999px;align-items:center;gap:.4rem;padding:.3rem .75rem .3rem .45rem;font-size:.9rem;font-weight:600;display:inline-flex}.member-dot{border-radius:50%;width:.9rem;height:.9rem;display:inline-block}.card{background:var(--card);border:1px solid var(--line);border-radius:1rem;margin-top:1rem;padding:1rem 1.1rem}.card h2{font-family:var(--display);margin:0 0 .35rem;font-size:1.05rem;font-weight:500}.card p{color:var(--ink-soft);margin:0;font-size:.92rem}.coming{opacity:.75}.coming h2:after{content:"soon";font:600 .65rem var(--body);color:var(--ink-soft);border:1px solid var(--line);vertical-align:middle;border-radius:999px;margin-left:.5rem;padding:.1rem .5rem}.btn{background:var(--teal);color:#fff;font:600 .95rem var(--body);cursor:pointer;border:none;border-radius:999px;margin-top:.75rem;padding:.6rem 1.2rem;text-decoration:none;display:inline-block}.btn:active{transform:scale(.98)}.btn.quiet{color:var(--teal);border:1px solid var(--line);background:0 0}.signout{color:var(--ink-soft);font:inherit;cursor:pointer;background:0 0;border:none;margin-top:2rem;padding:0;font-size:.85rem;text-decoration:underline}.shell.has-tabs{padding-bottom:calc(env(safe-area-inset-bottom) + 5rem)}.tabbar{background:var(--card);border-top:1px solid var(--line);padding:.5rem 0 calc(env(safe-area-inset-bottom) + .5rem);justify-content:space-around;display:flex;position:fixed;bottom:0;left:0;right:0}.tabbar button{font:600 .95rem var(--display);color:var(--ink-soft);cursor:pointer;background:0 0;border:none;border-radius:999px;padding:.4rem 1rem}.tabbar button.active{color:var(--ink);background:linear-gradient(0deg, var(--paper), var(--paper)) padding-box, linear-gradient(90deg, var(--teal), var(--coral), var(--sunshine)) border-box;border:2px solid #0000}.section-label{font-family:var(--display);color:var(--ink-soft);margin:1.25rem 0 -.5rem;font-size:.95rem;font-weight:500}.todo{border-bottom:1px solid var(--line)}.todo:last-of-type{border-bottom:none}.todo-row{align-items:center;gap:.6rem;padding:.5rem 0;display:flex}.tick{border:2px solid var(--line);cursor:pointer;background:0 0;border-radius:50%;flex:none;width:1.4rem;height:1.4rem}.tick:active{background:var(--teal);border-color:var(--teal)}.todo-title{text-align:left;font:inherit;color:inherit;cursor:pointer;background:0 0;border:none;flex:1;padding:0}.recur-mark{color:var(--ink-soft);margin-left:.4rem}.due{color:var(--ink-soft);background:var(--paper);border-radius:999px;flex:none;padding:.1rem .5rem;font-size:.8rem}.due.overdue{color:#fff;background:var(--coral)}.assign{cursor:pointer;background:0 0;border:2px solid;flex:none;width:1.1rem;height:1.1rem}.subtasks{padding:0 0 .5rem 2rem}.subtask{align-items:center;gap:.5rem;padding:.15rem 0;font-size:.92rem;display:flex}.subtask .done{color:var(--ink-soft);text-decoration:line-through}.subtask .member-dot{width:.7rem;height:.7rem}.todo-detail{color:var(--ink-soft);flex-wrap:wrap;align-items:center;gap:.75rem;padding:.25rem 0 .75rem 2rem;font-size:.9rem;display:flex}.todo-detail label{align-items:center;gap:.4rem;display:flex}.todo-detail input,.todo-detail select,.add-todo input,.add-subtask input,.quick-add input{font:inherit;border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:.5rem;padding:.35rem .6rem}.todo-detail .delete{color:var(--coral);font:inherit;cursor:pointer;background:0 0;border:none;font-size:.85rem;text-decoration:underline}.add-todo{padding:.5rem 0 0}.add-todo input{width:100%}.add-subtask input{width:12rem}.toy-card{background:linear-gradient(135deg,#fff,#fdf3f2);border-color:#f2d9d6}.toy-received{align-items:flex-start;gap:.6rem;margin-bottom:.75rem;display:flex}.toy-received .member-dot{margin-top:.35rem}.toy-message{font-family:var(--display);margin:0;font-size:1.05rem;font-weight:500}.toy-meta{color:var(--ink-soft);margin:.15rem 0 0;font-size:.8rem}.toy-btn{background:var(--coral);margin-top:0}.meal-picker-input{font:inherit;border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:.5rem;padding:.35rem .6rem}.meal-day{border-bottom:1px solid var(--line);align-items:center;gap:.6rem;padding:.55rem 0;display:flex}.meal-day:last-child{border-bottom:none}.meal-day.today .meal-dow{color:var(--teal)}.meal-dow{min-width:3.6rem;color:var(--ink-soft);flex:none;font-size:.85rem;font-weight:700}.meal-slot{text-align:left;font:inherit;color:inherit;cursor:pointer;background:0 0;border:none;flex:1;padding:.2rem 0}.meal-empty{color:var(--ink-soft)}.basket{cursor:pointer;background:0 0;border:none;flex:none;font-size:1.1rem}.meal-picker{flex:1}.meal-picker input{width:100%;font:inherit;border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:.5rem;padding:.35rem .6rem}.meal-picker-options{flex-wrap:wrap;gap:.35rem;margin-top:.4rem;display:flex}.meal-picker-options button{background:var(--paper);border:1px solid var(--line);font:inherit;cursor:pointer;color:var(--ink);border-radius:999px;padding:.25rem .7rem;font-size:.85rem}.meal-picker-actions{gap:.75rem;margin-top:.4rem;display:flex}.meal-picker-actions button{color:var(--ink-soft);font:inherit;cursor:pointer;background:0 0;border:none;padding:0;font-size:.82rem;text-decoration:underline}.toast{color:var(--teal);margin:.5rem 0 0;font-weight:600}.recipe-thumb{object-fit:cover;border-radius:.5rem;flex:none;width:2.4rem;height:2.4rem}.recipe-thumb.placeholder{background:var(--paper);place-items:center;font-size:1.1rem;display:grid}.recipe-hero{object-fit:cover;border-radius:1rem;width:100%;max-height:14rem;margin-top:1rem}.recipe-lines{margin:.25rem 0 0;padding-left:1.2rem}.recipe-lines li{margin:.2rem 0}.list-index{padding:.25rem 1.1rem}.list-row{border:none;border-bottom:1px solid var(--line);width:100%;font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;align-items:center;gap:.75rem;padding:.9rem 0;display:flex}.list-row:last-child{border-bottom:none}.list-row .member-dot{width:1rem;height:1rem}.list-name{flex:1;font-size:1.05rem;font-weight:600}.count-pill{background:var(--paper);color:var(--ink);border:1px solid var(--line);border-radius:999px;flex:none;place-items:center;min-width:1.8rem;height:1.8rem;padding:0 .4rem;font-size:.85rem;font-weight:700;display:inline-grid}.count-pill.all-done{background:var(--teal);color:#fff;border-color:var(--teal)}.list-detail-header{border-bottom:3px solid;align-items:center;gap:.6rem;margin-top:.75rem;padding-bottom:.5rem;display:flex}.list-detail-header h2{font-family:var(--display);flex:1;margin:0;font-size:1.15rem;font-weight:500}.list-detail-header .back{background:var(--card);border:1px solid var(--line);cursor:pointer;width:2rem;height:2rem;color:var(--ink);border-radius:50%;flex:none;font-size:1rem}.add-todo.top{border-bottom:1px solid var(--line);margin-bottom:.25rem;padding:0 0 .5rem}.tick.ticked{background:var(--teal);border-color:var(--teal);color:#fff;font-size:.85rem;line-height:1}.list-header{justify-content:space-between;align-items:center;display:flex}.list-edit{color:var(--ink-soft);cursor:pointer;background:0 0;border:none;padding:.2rem .4rem;font-size:1rem}.archive-toggle{color:var(--ink-soft);font:inherit;cursor:pointer;background:0 0;border:none;padding:.5rem 0 0;font-size:.82rem;text-decoration:underline}.archive-empty{color:var(--ink-soft);margin:.5rem 0 0;font-size:.85rem}.todo-row.archived{padding:.25rem 0}.todo-title.done{color:var(--ink-soft);text-decoration:line-through}.btn.small{margin-top:0;padding:.25rem .75rem;font-size:.8rem}.todo-notes{width:100%;font:inherit;border:1px solid var(--line);background:var(--card);color:var(--ink);resize:vertical;border-radius:.5rem;padding:.4rem .6rem;font-size:.9rem}.cal-controls{flex-direction:column;gap:.5rem;margin-top:.75rem;display:flex}.segmented{background:var(--card);border:1px solid var(--line);border-radius:999px;width:fit-content;padding:.2rem;display:flex}.segmented button{font:600 .9rem var(--body);color:var(--ink-soft);cursor:pointer;background:0 0;border:none;border-radius:999px;padding:.35rem .9rem}.segmented button.active{background:var(--ink);color:#fff}.cal-nav{align-items:center;gap:.5rem;font-weight:600;display:flex}.cal-nav button{border:1px solid var(--line);background:var(--card);cursor:pointer;width:1.8rem;height:1.8rem;color:var(--ink);border-radius:50%;font-size:1rem}.week-strip{grid-template-columns:repeat(7,1fr);gap:.25rem;margin-top:1rem;display:grid}.month-grid{grid-template-columns:repeat(7,1fr);gap:.15rem;margin-top:1rem;display:grid}.dow-head{text-align:center;color:var(--ink-soft);font-size:.7rem;font-weight:600}.day-cell{background:var(--card);border:1px solid var(--line);cursor:pointer;font:inherit;color:inherit;border-radius:.6rem;flex-direction:column;align-items:center;gap:.15rem;min-height:3.2rem;padding:.35rem .1rem;display:flex}.day-cell .dow{color:var(--ink-soft);font-size:.7rem}.day-cell .dom{font-size:.95rem;font-weight:600}.day-cell.today .dom{background:var(--ink);color:#fff;border-radius:50%;place-items:center;width:1.5rem;height:1.5rem;display:grid}.day-cell.selected{border-color:var(--ink);border-width:2px}.day-cell.other-month{opacity:.4}.dots{gap:2px;min-height:6px;display:flex}.dot{border-radius:50%;width:5px;height:5px;display:inline-block}.event{align-items:center;gap:.6rem;padding:.35rem 0;display:flex}.event-bar{border-radius:2px;flex:none;align-self:stretch;width:4px}.event-time{color:var(--ink-soft);flex:none;min-width:3.2rem;font-size:.85rem}.quick-add .qa-title{width:100%;margin-bottom:.5rem}.quick-add .qa-row{align-items:center;gap:.5rem;display:flex}.quick-add .btn{margin-top:0;margin-left:auto}:focus-visible{outline:3px solid var(--sunshine);outline-offset:2px}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
