:root{--bg: #f3efe4;--card: #fbf8f1;--text: #2f3a30;--muted: #7f8a7b;--border: #e4dccb;--line: #a9b59f;--accent: #5e7a5c;--accent-ink: #fbf8f1;--accent-soft: #e3e9da;--clay: #a8664a;--clay-soft: #f1e1d5;--sage: #557a55;--sage-soft: #e1eadb;--sky: #5d7f92;--sky-soft: #e0e9ec;--warn: #a8664a;--tab-h: 64px;--serif: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;color-scheme:light;font-family:-apple-system,BlinkMacSystemFont,system-ui,sans-serif;-webkit-tap-highlight-color:transparent}*{box-sizing:border-box}html,body{margin:0;color:var(--text);background-color:var(--bg)}body{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .35 0 0 0 0 .3 0 0 0 0 .2 0 0 0 .09 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"),radial-gradient(ellipse at 100% 0%,rgba(169,181,159,.28),transparent 55%),radial-gradient(ellipse at 0% 100%,rgba(214,196,160,.25),transparent 60%);background-attachment:fixed}button{font:inherit;color:inherit;cursor:pointer}input{font:inherit}h1,h2,h3{margin:0}h1,h2{font-family:var(--serif);font-weight:600;letter-spacing:-.01em}.paper{background-color:var(--card);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.55' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .4 0 0 0 0 .35 0 0 0 0 .25 0 0 0 .05 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");border:1px solid var(--border)}.app{position:relative;max-width:560px;margin:0 auto;min-height:100dvh;padding:env(safe-area-inset-top) 18px calc(var(--tab-h) + env(safe-area-inset-bottom) + 24px)}.bg-sprig{position:absolute;top:calc(env(safe-area-inset-top) - 6px);right:-8px;width:120px;color:var(--line);opacity:.55;pointer-events:none;transform:rotate(8deg)}.top{position:relative;display:flex;align-items:baseline;justify-content:space-between;padding:26px 0 14px}.top h1{font-size:34px}.top .muted{margin-right:80px}.muted{color:var(--muted)}.small{font-size:13px}.center{text-align:center;justify-content:center}.pad{padding:40px 0}.row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.warn{color:var(--warn);font-size:13px;margin:8px 0 0}.banner{background:var(--clay-soft);color:var(--text);border-radius:12px;padding:8px 12px;margin-top:12px;font-size:14px}button.primary,.actions button,.passcode button{border:1px solid var(--border);border-radius:999px;padding:10px 20px;font-weight:600;background:var(--card);color:var(--text)}button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}button.link{border:0;background:none;color:var(--accent);padding:8px;font-size:14px}.tag{font-size:11px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;padding:3px 9px;border-radius:999px}.tag.cook{background:var(--clay-soft);color:var(--clay)}.tag.left{background:var(--sage-soft);color:var(--sage)}.tag.flex{background:var(--sky-soft);color:var(--sky)}.tonight{position:relative;overflow:hidden;border-radius:26px;padding:26px 20px 92px;text-align:center;box-shadow:0 10px 30px #505a3c14}.tonight-hills{position:absolute;left:0;right:0;bottom:0;width:100%;height:86px;color:var(--line)}.tonight-sprig{position:absolute;left:-14px;top:-8px;width:70px;color:var(--line);opacity:.5;transform:scaleX(-1) rotate(-10deg)}.eyebrow{font-size:12px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--accent)}.tonight-icon{width:76px;height:76px;margin:10px 0 4px;color:var(--accent)}.tonight h2{font-size:28px;margin-bottom:10px}.tonight .actions{position:relative;margin-top:20px}.shopnote{display:flex;gap:12px;align-items:center;width:100%;text-align:left;margin:14px 0 0;padding:12px 14px;border-radius:16px;border:1px solid #e8d3c4;background:var(--clay-soft);font-size:15px;line-height:1.4}.shopnote .ui-icon{color:var(--clay);width:22px;height:22px}.shopnote .chev{margin-left:auto}.card{border-radius:18px;padding:10px 16px;margin:16px 0}.card h3,.sheet h3{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin:8px 0 6px}.card h3 .leaf{width:13px;color:var(--line)}.line{display:flex;align-items:center;gap:10px;width:100%;text-align:left;border:0;background:none;padding:11px 0;border-top:1px dashed var(--border)}.card h3+.line{border-top:0}.line-day{width:34px;font-weight:600;color:var(--muted);font-size:14px}.line-icon{width:26px;height:26px;flex:none;color:var(--accent)}.line-name{flex:1}.divider{display:flex;justify-content:center;margin:14px 0 0}.divider svg{width:150px;color:var(--line);opacity:.8}.week-nav{display:flex;align-items:center;justify-content:space-between;border-radius:999px;padding:4px;margin-bottom:12px}.week-nav button{border:0;background:none;font-size:24px;width:44px;height:40px;border-radius:999px;color:var(--accent)}.week-nav div{display:flex;flex-direction:column;align-items:center;cursor:pointer}.week-nav strong{font-family:var(--serif);font-size:17px}.week-nav small{color:var(--muted);font-size:12px}.days{display:flex;flex-direction:column;gap:8px;margin-top:10px}.day{display:flex;align-items:center;gap:12px;text-align:left;width:100%;border-radius:18px;padding:12px 14px}.day.today{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset,0 6px 18px #505a3c14}.day.past{opacity:.55}.day-date{display:flex;flex-direction:column;align-items:center;width:36px}.day-date strong{font-family:var(--serif)}.day-date small{color:var(--muted)}.day-icon{width:34px;height:34px;flex:none;color:var(--accent)}.day-main{flex:1;display:flex;flex-direction:column;gap:4px}.day-name{font-weight:600;font-size:16px}.chev{color:var(--line);font-size:22px}.shop-summary{justify-content:space-between;margin:4px;font-family:var(--serif);font-size:17px}.item{display:flex;gap:12px;align-items:flex-start;padding:10px 0;border-top:1px dashed var(--border);cursor:pointer}.shop-group h3+.item{border-top:0}.item input{appearance:none;-webkit-appearance:none;width:22px;height:22px;margin:1px 0 0;flex:none;border:1.5px solid var(--line);border-radius:50%;background:var(--card);display:grid;place-content:center}.item input:checked{background:var(--accent);border-color:var(--accent)}.item input:checked:after{content:"";width:6px;height:10px;border:solid var(--accent-ink);border-width:0 2px 2px 0;transform:translateY(-1px) rotate(45deg)}.item-text{display:flex;flex-direction:column}.item-text small{color:var(--muted);font-size:12px}.item.done .item-name{text-decoration:line-through;color:var(--muted)}.staples summary{cursor:pointer;color:var(--muted);padding:12px 4px;font-weight:600}.sheet-bg{position:fixed;inset:0;background:#2f3a3047;z-index:20;display:flex;align-items:flex-end;justify-content:center;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}.sheet{position:relative;overflow:hidden;width:100%;max-width:560px;max-height:88dvh;display:flex;flex-direction:column;border-radius:26px 26px 0 0;padding-bottom:env(safe-area-inset-bottom);border-bottom:0;animation:up .2s ease-out}.sheet-sprig{position:absolute;right:44px;top:-18px;width:80px;color:var(--line);opacity:.35;pointer-events:none;transform:rotate(30deg)}@keyframes up{0%{transform:translateY(30px);opacity:0}}.sheet-head{position:relative;display:flex;justify-content:space-between;align-items:flex-start;padding:20px 18px 8px;gap:12px}.sheet-head h2{font-size:24px}.close{border:1px solid var(--border);background:var(--bg);border-radius:50%;width:32px;height:32px;flex:none;color:var(--muted)}.sheet-body{position:relative;overflow-y:auto;padding:0 18px 24px}.menu{display:flex;flex-direction:column;gap:6px;margin:12px 0}.menu button{text-align:left;border:1px solid var(--border);background:var(--bg);padding:13px 14px;border-radius:14px;font-size:16px}.menu button.current{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset}.ings,.steps{padding-left:20px;margin:4px 0 12px}.ings li,.steps li{margin:5px 0;line-height:1.45}.ings li::marker{color:var(--line)}.steps li::marker{color:var(--accent);font-family:var(--serif);font-weight:600}.sample{background:var(--sky-soft);color:var(--sky);padding:8px 12px;border-radius:12px;font-size:14px}.sheet a{color:var(--accent)}.tabs{position:fixed;left:0;right:0;bottom:0;z-index:10;display:flex;justify-content:center;gap:4px;background:#fbf8f1eb;border-top:1px solid var(--border);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);padding:6px 8px calc(6px + env(safe-area-inset-bottom))}.tabs button{flex:1;max-width:180px;border:0;background:none;border-radius:14px;padding:6px;display:flex;flex-direction:column;align-items:center;gap:2px;font-size:12px;font-weight:600;color:var(--muted)}.tabs svg{width:24px;height:24px}.tabs button.active{color:var(--accent)}.passcode{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.passcode-sprig{width:110px;color:var(--accent);margin-bottom:8px}.passcode h1{font-size:38px}.passcode form{display:flex;gap:8px;margin-top:8px}.passcode input{font-size:16px;padding:10px 14px;border:1px solid var(--border);border-radius:999px;background:var(--card);color:var(--text)}.week-nav,.tonight,.card,.days{position:relative;z-index:1}.k-leftover .meal-icon{color:var(--sage)}.k-main .meal-icon{color:var(--accent)}.k-flex .meal-icon{color:var(--sky)}.h-icon{width:18px;height:18px;color:var(--accent)}.ui-icon{width:20px;height:20px;flex:none}.menu button{display:flex;align-items:center;gap:10px}.menu button .ui-icon{color:var(--accent)}.time{display:inline-flex;align-items:center;gap:4px}.time .ui-icon{width:15px;height:15px}.tag.custom{background:var(--clay-soft);color:var(--clay)}.k-custom .meal-icon{color:var(--clay)}.write{display:flex;flex-direction:column;gap:10px;margin-top:8px}.write input{font-size:17px;padding:12px 14px;border:1px solid var(--border);border-radius:14px;background:var(--bg);color:var(--text)}.write input:focus{outline:2px solid var(--accent);outline-offset:0}.write p{margin:0}button.primary:disabled{opacity:.45}html,body{overflow-x:hidden;max-width:100%}.app{overflow-x:clip}.bg-sprig{right:0}.day-main,.line-name,.item-text,.sheet-head>div,.menu button,.tonight h2,.shopnote span{min-width:0;overflow-wrap:anywhere}
