:root{color-scheme:light;--paper: #f4efe6;--paper-2: #fffaf4;--desk: #e4dccf;--ink: #2c241c;--ink-soft: #4e433b;--line: #e0d5c6;--chili: #7c3a2d;--chili-dark: #5e2c22;--in: #1d5c40;--in-bg: #e4f2ea;--low: #7a4e0d;--low-bg: #f8efd2;--out: #5c564f;--out-bg: #ece7e0;--callout: #f7ecd2;--danger: #7c3a2d;--serif: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;--sans: "Avenir Next", "Segoe UI", sans-serif;--radius: 18px;--shadow: 0 10px 30px rgba(68, 44, 24, .08)}*{box-sizing:border-box}html{font-size:16px}html,body{margin:0;padding:0;background:var(--desk);color:var(--ink);font-family:var(--sans);line-height:1.45}body{font-size:17px}body.modal-open{overflow:hidden}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer}#app{width:min(32rem,100%);min-height:100dvh;margin:0 auto;background:var(--paper)}.shell{min-height:100dvh}.skip{position:absolute;left:.75rem;top:.75rem;transform:translateY(-150%);background:var(--ink);color:var(--paper-2);padding:.6rem .8rem;border-radius:10px;z-index:20}.skip:focus{transform:none}.top{padding:calc(.9rem + env(safe-area-inset-top)) 1rem .85rem;border-bottom:1px solid var(--line);background:var(--paper)}.back{display:inline-flex;align-items:center;min-height:44px;margin-bottom:.15rem;color:var(--chili);font-weight:650;text-decoration:none}.brand{margin:0;font-family:var(--serif);font-size:.95rem;letter-spacing:.01em}.household{margin:.1rem 0 0;color:var(--ink-soft);font-size:.92rem}.page{padding:1rem 1rem calc(8rem + env(safe-area-inset-bottom))}.page-plain{padding-bottom:2.5rem}html{scroll-padding-bottom:7rem}h1,h2,h3,h4{font-family:var(--serif);font-weight:650;letter-spacing:-.02em;line-height:1.2}h1{font-size:2rem;margin:.15rem 0 .35rem}h2{font-size:1.35rem;margin:0 0 .3rem}h3{font-size:1.08rem;margin:0}h4{font-size:1rem;margin:.85rem 0 .35rem}p{margin:.35rem 0}.lede,.quiet,.meta,.hint{color:var(--ink-soft)}.lede{margin-top:0;margin-bottom:1rem}.meta,.hint,.quiet{font-size:.95rem}.hint{margin-top:.45rem}.kicker{display:block;margin:0 0 .2rem;color:var(--chili-dark);font-size:.82rem;font-weight:700;letter-spacing:.02em}.notes{white-space:pre-wrap}.block,.banner,.note-block,.empty,.shop-row,.item-row,.blend-block,.choice{margin:0 0 1rem}.banner,.note-block,.callout{background:var(--callout);border-radius:var(--radius);padding:1rem}.callout{color:#3d2e16;margin-bottom:.8rem}.blocker{margin:0 0 .8rem;padding:.75rem .9rem;border-radius:14px;background:var(--out-bg);color:var(--ink)}.flash{margin:0 0 .8rem;padding:.75rem .9rem;border-radius:14px;background:var(--in-bg);color:var(--in)}.empty{padding:.2rem 0 .4rem}.cards{display:grid;gap:.7rem}.meal-card,.hub-link{display:flex;flex-direction:column;gap:.15rem;min-height:48px;padding:.95rem 1rem;text-decoration:none;color:inherit;background:var(--paper-2);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.meal-card.is-waiting{background:#f7f3eb}.meal-name{font-family:var(--serif);font-size:1.28rem;line-height:1.25}.meal-line{color:var(--ink-soft);font-size:.98rem}.stack{display:grid;gap:.6rem;margin:.8rem 0}.stack .btn{width:100%}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:.75rem 1rem;border-radius:14px;border:1px solid transparent;text-decoration:none;font-weight:680;text-align:center;touch-action:manipulation}.btn.primary{background:var(--chili);color:#fffaf4}.btn.ghost{background:var(--paper-2);color:var(--ink);border-color:var(--line)}.btn.danger{background:transparent;color:var(--danger);border-color:transparent;min-height:48px}.page>.btn.primary,.block>.btn.primary,form>.btn.primary{width:100%;margin:.2rem 0 .8rem}.page>.btn.danger,form+.btn.danger{width:100%}.text-link{display:inline-flex;align-items:center;min-height:44px;color:var(--chili-dark);font-weight:680}.form-links{margin-top:.4rem}.field,fieldset.field{display:block;margin:0 0 .9rem;border:0;padding:0;color:var(--ink-soft);font-size:.95rem}fieldset.field{display:flex;flex-direction:column;gap:.15rem}.field :is(input,textarea,select){margin-top:.35rem}.optional{font-weight:500}input,textarea,select{width:100%;min-height:48px;padding:.65rem .75rem;border:1px solid #d5c9b8;border-radius:12px;background:#fff;font-size:16px}textarea{min-height:6.5rem;resize:vertical}.text-btn{display:inline-flex;align-items:center;min-height:44px;margin:0 0 .2rem;padding:0;border:0;background:transparent;color:var(--chili-dark);font-weight:680}.check{display:flex;align-items:center;gap:.7rem;min-height:48px;color:var(--ink)}.check input{width:1.15rem;height:1.15rem;min-height:0}.form-error{color:var(--danger);font-weight:650}.edit-list{list-style:none;margin:0 0 .8rem;padding:0}.edit-list li{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem;padding:.75rem 0;border-bottom:1px solid var(--line)}.edit-list li span{flex:1 1 8rem;font-weight:680}.edit-list li select{flex:1 1 9rem;width:auto}.edit-list button,.item-head a,.edit-list a{min-height:44px;border:0;background:transparent;color:var(--chili-dark);font-weight:680;text-align:left;text-decoration:none;padding:0}.item-row,.shop-row,.blend-block,.choice{padding:.85rem 0;border-bottom:1px solid var(--line)}.choice{margin-top:.3rem;padding:.7rem .8rem .2rem;border:1px solid var(--line);border-radius:16px;background:var(--paper-2)}.item-head{display:flex;justify-content:space-between;gap:.75rem;align-items:center}.status{display:grid;grid-template-columns:repeat(3,1fr);gap:.4rem;margin-top:.55rem}.status button{min-height:48px;border-radius:12px;border:1px solid var(--line);background:var(--paper-2);font-weight:720}.status-in.is-on{background:var(--in);color:#fff;border-color:var(--in)}.status-low.is-on{background:var(--low);color:#fff;border-color:var(--low)}.status-out.is-on{background:var(--out);color:#fff;border-color:var(--out)}.chips{display:flex;gap:.45rem;overflow-x:auto;padding-bottom:.2rem;margin-bottom:.8rem}.chip{flex:0 0 auto;min-height:44px;padding:.45rem .8rem;border-radius:999px;border:1px solid var(--line);background:var(--paper-2);font-weight:680}.chip.is-on{background:var(--ink);color:var(--paper-2);border-color:var(--ink)}details.add-item{margin-top:.6rem;background:var(--paper-2);border:1px solid var(--line);border-radius:var(--radius);padding:.3rem .9rem .2rem}details.add-item summary{min-height:52px;display:flex;align-items:center;font-family:var(--serif);font-size:1.2rem;cursor:pointer}.rate{display:grid;gap:.55rem;margin-top:.8rem}.rate .btn{width:100%}.tabbar{position:fixed;left:50%;bottom:0;transform:translate(-50%);width:min(32rem,100%);display:grid;grid-template-columns:repeat(3,1fr);gap:.25rem;padding:.35rem .5rem calc(.35rem + env(safe-area-inset-bottom));background:var(--paper);border-top:1px solid var(--line);z-index:5}.tab{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.1rem;min-height:52px;text-decoration:none;color:var(--ink-soft);font-size:.78rem;font-weight:720;border-radius:12px}.tab svg{width:24px;height:24px}.tab[aria-current=page]{color:var(--chili-dark);background:#7c3a2d14}.modal-back{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;display:flex;align-items:flex-end;justify-content:center;padding:1rem;background:#2c241c75}.modal{width:min(32rem,100%);margin-bottom:env(safe-area-inset-bottom);padding:1.15rem 1.1rem 1rem;background:var(--paper-2);border-radius:22px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}:focus-visible{outline:3px solid var(--chili);outline-offset:2px}@media(hover:hover){.meal-card:hover,.hub-link:hover,.btn.ghost:hover{border-color:#cbbba6}}@media(min-width:720px){#app{box-shadow:var(--shadow)}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
