:root{--bg:#faf8f5;--surface:#fff;--text:#1f2933;--muted:#6b7280;--border:#e5e0d8;--accent:#2f7d4f;--accent-text:#fff;--danger:#b42318;--tabbar-h:4rem;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font:16px/1.45 system-ui,Segoe UI,Roboto,sans-serif}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#14181c;--surface:#1e242a;--text:#e8eaed;--muted:#9aa4af;--border:#2f373f;--accent:#4cae76;--accent-text:#0b1a12;--danger:#f97066}}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0}h1,h2,h3{margin:0;line-height:1.2}h1{font-size:1.4rem}h2{font-size:1.25rem}h3{font-size:1.05rem}.muted{color:var(--muted);margin:0}.error{color:var(--danger);margin:0}.stack{flex-direction:column;gap:.75rem;display:flex}.screen{min-height:100dvh;padding:1rem}.screen.center{justify-content:center;align-items:center;display:flex}.card{background:var(--surface);border:1px solid var(--border);border-radius:14px;width:100%;max-width:28rem;padding:1rem}.shell .card{max-width:none}.btn{font:inherit;border:1px solid var(--border);background:var(--surface);min-height:2.75rem;color:var(--text);cursor:pointer;border-radius:12px;padding:0 1rem}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-text);font-weight:600}.btn.danger{color:var(--danger);border-color:var(--danger)}.btn.ghost{color:var(--muted);background:0 0;border-color:#0000}.btn:disabled{opacity:.6;cursor:default}.field{flex-direction:column;gap:.3rem;font-size:.9rem;font-weight:600;display:flex}.field input{font:inherit;border:1px solid var(--border);background:var(--bg);min-height:2.75rem;color:var(--text);border-radius:12px;padding:0 .8rem;font-weight:400}ul.plain,ol.plain{flex-direction:column;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}code,pre{background:var(--bg);border-radius:6px;padding:.1rem .35rem;font-family:ui-monospace,Consolas,monospace}pre{margin:0;padding:.7rem;overflow-x:auto}.code-row{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.invite-code{letter-spacing:.15em;padding:.4rem .8rem;font-size:1.6rem}.shell{min-height:100dvh}.content{max-width:40rem;padding:.85rem .85rem calc(var(--tabbar-h) + 4rem + env(safe-area-inset-bottom));margin:0 auto}.bottombar{z-index:10;padding-bottom:env(safe-area-inset-bottom);background:var(--surface);border-top:1px solid var(--border);position:fixed;inset:auto 0 0}.tabs{height:var(--tabbar-h);display:flex}.tabs a{color:var(--muted);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:.1rem;font-size:1.3rem;text-decoration:none;display:flex}.tabs a span{font-size:.72rem}.tabs a.active{color:var(--accent);font-weight:600}.origin{opacity:.65;margin-left:.3rem;font-size:.8rem}.owner-badge{background:var(--accent-soft,#e4e4e7);min-width:1.1rem;height:1.1rem;color:var(--muted);letter-spacing:.02em;vertical-align:middle;border-radius:999px;justify-content:center;align-items:center;margin-left:.35rem;padding:0 .25rem;font-size:.65rem;font-weight:600;display:inline-flex}.row{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.row.space-between{justify-content:space-between}.row.tight{gap:.5rem}.grow{flex:1;min-width:6rem}.link-btn{align-items:center;text-decoration:none;display:inline-flex}.prewrap{white-space:pre-wrap;margin:0}.search,.field textarea{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:12px;width:100%;padding:.7rem .8rem}.field textarea{background:var(--bg);resize:vertical;font-weight:400}.search{min-height:2.75rem;padding-block:0}.recipe-card{color:inherit;flex-direction:column;gap:.15rem;padding:.7rem .9rem;text-decoration:none;display:flex}.ingredient-row{align-items:center;gap:.4rem;display:flex}.ingredient-row input{font:inherit;border:1px solid var(--border);background:var(--bg);min-width:0;min-height:2.75rem;color:var(--text);border-radius:12px;padding:0 .6rem}.ingredient-row .amount{width:4.5rem}.ingredient-row .unit{width:5rem}.ingredient-row .name{flex:1}.icon-btn{font:inherit;width:2.25rem;min-height:2.5rem;color:var(--muted);cursor:pointer;background:0 0;border:none}a{color:var(--accent)}.banner{background:var(--surface);border:1px dashed var(--border);color:var(--muted);border-radius:10px;margin:0;padding:.6rem .9rem;font-size:.9rem}.add-form{gap:.5rem;display:flex}.quick-add-bar{border-bottom:1px solid var(--border);max-width:40rem;margin:0 auto;padding:.5rem 1rem}.quick-add-bar input{min-height:2.5rem;padding:0 .7rem;font-size:.95rem}.quick-add-bar .btn{min-height:2.5rem;padding:0 1rem;font-size:.9rem}.add-form input{min-width:0;font:inherit;border:1px solid var(--border);background:var(--surface);min-height:2.75rem;color:var(--text);border-radius:12px;flex:1;padding:0 .9rem}.group{flex-direction:column;gap:.2rem;display:flex}.group.card{border-radius:10px;padding:.45rem .6rem}.group-title{font-size:.82rem}.group ul.plain{gap:0}.shopping-groups{gap:.4rem}.item-row{background:var(--surface);align-items:center;gap:.35rem;display:flex}.item-row>.item-text{flex:1;min-width:0}.item-text-wrap{flex-wrap:wrap;flex:1;align-items:baseline;column-gap:.3rem;min-width:0;display:flex}.item-row .item-text{min-width:0;font:inherit;text-align:left;min-height:1.9rem;color:var(--text);cursor:pointer;background:0 0;border:none;padding:0;font-size:.9rem}.qty{color:var(--muted);margin-right:.15rem}.item-row.done .item-text{color:var(--muted);cursor:default;text-decoration:line-through}.check{border:1.5px solid var(--border);width:1.4rem;height:1.4rem;color:var(--accent-text);font:inherit;cursor:pointer;background:0 0;border-radius:50%;flex:none;font-size:.75rem}.check.on{background:var(--accent);border-color:var(--accent)}.cook-item .check{width:1.9rem;height:1.9rem}.handle{width:1.4rem;height:1.9rem;color:var(--muted);font:inherit;letter-spacing:-.15em;cursor:grab;touch-action:none;background:0 0;border:none;flex:none}.checked-card{padding:.7rem .75rem}.undo-bar{border-bottom:1px solid var(--border);align-items:stretch;max-width:40rem;height:2.5rem;margin:0 auto;font-size:.85rem;display:flex}.undo-btn{min-width:0;color:var(--text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;flex:1;align-items:center;gap:.4rem;padding:0 .5rem 0 1rem;display:flex}.undo-btn>span:first-child{color:var(--accent);font-weight:700}.undo-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.undo-close{width:2.75rem;color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:none}.modal-backdrop{z-index:20;background:#00000073;justify-content:center;align-items:flex-end;padding:1rem;display:flex;position:fixed;inset:0}.modal{max-width:28rem;max-height:100%;overflow-y:auto}.field select{font:inherit;border:1px solid var(--border);background:var(--bg);min-height:2.75rem;color:var(--text);border-radius:12px;padding:0 .6rem;font-weight:400}.section-row{align-items:center;gap:.25rem;display:flex}.section-row input{min-width:0;font:inherit;border:1px solid var(--border);background:var(--surface);min-height:2.75rem;color:var(--text);border-radius:12px;flex:1;padding:0 .8rem}.icon-btn:disabled{opacity:.3;cursor:default}.dev-toggle{z-index:30;min-height:2.25rem;font-size:.8rem;position:fixed;top:.5rem;right:.5rem}.week-nav{align-items:center;gap:.6rem;display:flex}.week-nav .btn{width:2.9rem;padding:0;font-size:1.1rem}.week-title{flex-direction:column;flex:1;align-items:center;line-height:1.3;display:flex}.day-group{padding:.55rem .7rem}.day-group.today{border-color:var(--accent);box-shadow:inset 4px 0 0 var(--accent)}.day-group-header{margin-bottom:.3rem}.day-label{flex:none;align-items:baseline;gap:.4rem;line-height:1.3;display:flex}.meal-row{width:100%;min-height:2.25rem;font:inherit;text-align:left;color:var(--text);cursor:pointer;border-radius:8px;align-items:center;gap:.5rem;padding:.3rem .4rem;display:flex}.meal-row:disabled{cursor:default;opacity:.7}.meal-label{text-overflow:ellipsis;white-space:nowrap;max-width:6rem;color:var(--muted);flex:none;font-size:.85rem;overflow:hidden}.day-meal{flex-direction:column;flex:1;min-width:0;line-height:1.3;display:flex}.add-meal-btn{color:var(--accent);background:0 0;border:none;justify-content:flex-start;min-height:2rem;padding:.3rem .4rem}.meal-title{text-overflow:ellipsis;font-weight:600;overflow:hidden}.badge{flex:none;font-size:1rem}.segmented{border:1px solid var(--border);border-radius:12px;display:flex;overflow:hidden}.segmented button{min-height:2.5rem;color:var(--text);font:inherit;cursor:pointer;background:0 0;border:none;flex:1}.segmented button.on{background:var(--accent);color:var(--accent-text);font-weight:600}.pick-list{max-height:40vh;overflow-y:auto}.pick{width:100%;font:inherit;text-align:left;color:var(--text);background:var(--bg);border:1px solid var(--border);cursor:pointer;border-radius:10px;flex-direction:column;gap:.1rem;padding:.6rem .8rem;display:flex}.pick.on{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.shop-row{cursor:pointer;align-items:center;gap:.75rem;min-height:2.75rem;display:flex}.shop-row input{width:1.4rem;height:1.4rem;accent-color:var(--accent);flex:none}.shop-text{flex-direction:column;min-width:0;line-height:1.3;display:flex}.modal>*{flex-shrink:0}.pick-list{max-height:min(40vh,16rem)}.stack.tight{gap:.25rem}.pick-card{width:100%;font:inherit;text-align:left;color:var(--text);cursor:pointer}.draft-note{background:var(--bg);border-style:dashed;gap:.6rem;padding:.9rem}.draft-card{border-color:var(--accent);align-items:center;gap:.5rem;padding:.4rem .4rem .4rem 1rem;display:flex}.draft-link{min-width:0;color:var(--text);flex-direction:column;flex:1;gap:.1rem;padding:.4rem 0;text-decoration:none;display:flex}.tab-icon{line-height:1;display:inline-block;position:relative}.tab-icon .dot{background:var(--accent);border:2px solid var(--surface);border-radius:50%;width:.65rem;height:.65rem;position:absolute;top:-.15rem;right:-.45rem}.tabs a .tab-icon{font-size:1.3rem}.link-btn{justify-content:center}.btn.big{min-height:3.1rem;font-size:1.02rem}.report-btn{justify-content:flex-start;min-height:2.5rem;padding-left:0;font-size:.9rem}.tip{color:var(--muted);font-size:.95rem}.ingredient-row{align-items:flex-start;gap:.3rem}.ingredient-row input{text-align:center;padding:0 .4rem;font-size:.95rem}.ingredient-row .amount{flex:none;width:3rem;padding:0 .15rem}.ingredient-row .unit{flex:none;width:3.4rem;padding:0 .2rem}.ingredient-row textarea.name{min-width:0;font:inherit;border:1px solid var(--border);background:var(--bg);min-height:2.75rem;color:var(--text);resize:none;field-sizing:content;border-radius:12px;flex:1;padding:.6rem;font-size:.95rem;line-height:1.3;overflow:hidden}.ingredient-row .icon-btn{flex:none;width:2rem}.ingredient-row .unit::-webkit-calendar-picker-indicator{display:none!important}.ingredient-head{color:var(--muted);gap:.3rem;margin-bottom:-.4rem;font-size:.75rem;display:flex}.ingredient-head .amount{text-align:center;flex:none;width:3rem}.ingredient-head .unit{text-align:center;flex:none;width:3.4rem}.ingredient-head .name{flex:1;padding-left:.6rem}.ingredient-head:after{content:"";flex:none;width:2rem}.shell.cooking .content{padding-bottom:2rem}.shell.cooking.has-timerbar .content{padding-bottom:13rem}.shell.has-quickadd .content{padding-bottom:calc(var(--tabbar-h) + 8.5rem + env(safe-area-inset-bottom))}.cook-timerbar{z-index:10;background:var(--surface);border-top:1px solid var(--border);max-height:40vh;padding:.2rem 1rem env(safe-area-inset-bottom);position:fixed;inset:auto 0 0;overflow-y:auto}.cook-timerbar-inner{max-width:40rem;margin:0 auto}.cook-timerbar .timer-row+.timer-row{border-top:1px solid var(--border)}.wake{color:var(--muted);font-size:.85rem}.wake-on{color:var(--accent);font-weight:600}.timer-strip{flex-wrap:wrap;gap:.4rem;margin-bottom:.75rem;display:flex}.timer-chip{background:var(--accent);color:var(--accent-text);border-radius:999px;padding:.3rem .7rem;font-size:.9rem}.timer-row{align-items:center;gap:.5rem;padding:.4rem 0;display:flex}.timer-info{flex-direction:column;flex:1;min-width:0;line-height:1.2;display:flex}.timer-time{font-variant-numeric:tabular-nums;font-size:1.6rem}.timer-row .btn{min-height:2.75rem;padding:0 .8rem}.quick-times{flex-wrap:wrap;gap:.5rem;display:flex}.quick-times .btn{flex:1;min-width:4.5rem}.cook-item{width:100%;font:inherit;text-align:left;color:var(--text);cursor:pointer;background:0 0;border:none;align-items:flex-start;gap:.6rem;padding:.45rem 0;font-size:1rem;line-height:1.4;display:flex}.cook-item .check{color:var(--muted);flex:none;justify-content:center;align-items:center;font-size:.85rem;font-weight:600;display:inline-flex}.cook-item .check.on{color:var(--accent-text)}.cook-item.done{color:var(--muted)}.cook-item.done .step-text,.cook-item.done>span:last-child{text-decoration:line-through}.steps{flex-direction:column;gap:.2rem;display:flex}.step-heading{color:var(--muted);margin:.6rem 0 0;font-size:.9rem}.step-timers{flex-wrap:wrap;gap:.4rem;padding:0 0 .4rem 2.5rem;display:flex}.step-timers .btn{min-height:2.25rem}.alarm-overlay{z-index:100;background:#000000b3;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.alarm-card{background:var(--surface);border:3px solid var(--accent);border-radius:16px;width:100%;max-width:26rem;padding:1.25rem;animation:1s ease-in-out infinite alarm-pulse}.alarm-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;padding:.4rem 0;font-size:1.15rem;display:flex}@keyframes alarm-pulse{50%{transform:scale(1.02)}}@media (prefers-reduced-motion:reduce){.alarm-card{animation:none}}.small{font-size:.85rem}.card-inner{padding:0}.prose{max-width:40rem;margin:0 auto;line-height:1.55}.prose h1{margin-bottom:.25rem}.prose h2{margin-top:1rem;font-size:1.15rem}.prose ul{flex-direction:column;gap:.5rem;margin:0;padding-left:1.25rem;display:flex}.pill{background:var(--accent);color:var(--accent-text);border-radius:999px;padding:.15rem .6rem;font-size:.8rem;font-weight:600}.pill.full,.pill.revoked{background:var(--border);color:var(--muted)}.invite.revoked,.invite.full{opacity:.75}.option+.option{border-top:1px solid var(--border);padding-top:1rem}.option h3{font-size:1rem}.invite-message{width:100%;font:inherit;border:1px solid var(--border);background:var(--bg,#fff);color:inherit;resize:vertical;border-radius:10px;padding:.6rem;font-size:.9rem}.banner.warn{color:#5c4200;background:#fff4d6;border:1px solid #f0d78a}@media (prefers-color-scheme:dark){.banner.warn{color:#f3e3b0;background:#3a3117;border-color:#6b5a22}}.tag-row{flex-wrap:wrap}.chip{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;border-radius:999px;padding:.4rem .8rem;font-size:.85rem}.chip.selected{background:var(--accent);border-color:var(--accent);color:var(--accent-text);font-weight:600}.recipe-tags{flex-wrap:wrap;gap:.3rem;margin-top:.1rem;display:flex}.tag-pill{background:var(--bg);border:1px solid var(--border);color:var(--muted);border-radius:999px;padding:.1rem .55rem;font-size:.75rem}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.staple-row{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:.6rem .9rem}
