@import"https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700;800&display=swap";:root{--butter: #ffd34d;--butter-d: #f6c544;--coral: #ee5b64;--ink: #26231d;--cream: #fffbf0;--wheat: #fbf1dc;--basil: #43a15b;--amber: #f5a623;--canvas: #f4edde;--muted: #8d8778;--line: #efe8da;--line-2: #eae2cf;--disabled: #e9e4d6;--check-border: #d8d2c2;--r-card: 20px;--r-pill: 28px;--shadow: 0 4px 16px rgba(38, 35, 29, .06);--shadow-lg: 0 8px 28px rgba(38, 35, 29, .1)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:Montserrat,system-ui,sans-serif;color:var(--ink);background:var(--cream);-webkit-font-smoothing:antialiased}h1{font-size:28px;font-weight:800;margin:0}h2{font-size:22px;font-weight:800;margin:0}h3{font-size:16px;font-weight:600;margin:0}p{margin:0}.app{display:flex;flex-direction:column;height:100dvh;max-width:480px;margin:0 auto;background:var(--cream);position:relative}.screen{flex:1;overflow-y:auto;padding:12px 20px 120px}.muted{color:var(--muted);font-weight:500}.row-gap>*+*{margin-top:12px}.btn{font-family:inherit;border:none;border-radius:var(--r-pill);height:56px;font-size:16px;font-weight:700;cursor:pointer;width:100%;transition:transform .08s,background .15s}.btn:active{transform:scale(.98)}.btn-primary{background:var(--butter);color:var(--ink)}.btn-primary:hover{background:var(--butter-d)}.btn-secondary{background:transparent;color:var(--ink);border:2px solid var(--ink)}.btn-ghost{background:transparent;color:var(--muted);height:40px;font-size:14px;border:none;font-family:inherit;font-weight:700;cursor:pointer}.btn:disabled{background:var(--disabled);color:var(--muted);cursor:default}.fab{width:48px;height:48px;border-radius:50%;border:none;background:var(--butter);cursor:pointer;display:grid;place-items:center;flex-shrink:0;color:var(--ink)}.fab:hover{background:var(--butter-d)}.card{background:#fff;border-radius:var(--r-card);box-shadow:var(--shadow);overflow:hidden}.list{background:#fff;border-radius:var(--r-card);box-shadow:var(--shadow)}.list-row{display:flex;align-items:center;gap:14px;padding:14px 18px;border-bottom:1px solid var(--line)}.list-row:last-child{border-bottom:none}.dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.dot.fresh{background:var(--basil)}.dot.soon{background:var(--amber)}.dot.urgent{background:var(--coral)}.dot.expired{background:var(--ink)}.more-btn{border:none;background:none;color:#a79f8d;font-size:15px;font-weight:700;cursor:pointer;padding:4px 6px;font-family:inherit}.swipe-wrap{position:relative;overflow:hidden;border-bottom:1px solid var(--line)}.swipe-wrap:last-child{border-bottom:none}.swipe-del{position:absolute;right:0;top:0;bottom:0;width:88px;border:none;background:var(--coral);color:#fff;font-family:inherit;font-size:13px;font-weight:700;cursor:pointer}.swipe-content{position:relative;background:#fff;transition:transform .18s ease;touch-action:pan-y}.swipe-content.dragging{transition:none}.method-card{display:flex;align-items:center;gap:16px;background:#fff;border-radius:18px;padding:16px 20px;box-shadow:var(--shadow);cursor:pointer;border:none;width:100%;font-family:inherit;text-align:left}.method-icon{width:44px;height:44px;border-radius:12px;background:var(--butter);display:grid;place-items:center;flex-shrink:0}.chip{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:9px 16px;font-size:13px;font-weight:600;border:1.5px solid var(--line-2);background:transparent;cursor:pointer;font-family:inherit;color:var(--ink);white-space:nowrap}.chip.active{background:var(--butter);border-color:var(--butter);font-weight:700}.chip.dark{background:var(--ink);color:#fff;border-color:var(--ink)}.chip-row{display:flex;gap:8px;margin-top:14px;overflow-x:auto;padding-bottom:2px}.badge{display:inline-flex;align-items:center;gap:6px;background:var(--butter);border-radius:12px;padding:6px 12px;font-size:12px;font-weight:700}.input{width:100%;height:54px;border-radius:16px;border:1.5px solid var(--line-2);background:#fff;padding:0 18px;font-family:inherit;font-size:15px;font-weight:600;color:var(--ink)}.input:focus{outline:none;border-color:var(--butter);border-width:2px}.add-inline{display:flex;align-items:center;gap:12px;background:var(--wheat);border-radius:16px;padding:0 18px;height:54px}.add-inline input{flex:1;border:none;background:transparent;font-family:inherit;font-size:14px;font-weight:600;color:var(--ink);outline:none}.add-inline input::placeholder{color:var(--muted)}.check{width:26px;height:26px;border-radius:8px;border:2px solid var(--check-border);background:transparent;display:grid;place-items:center;flex-shrink:0;cursor:pointer;padding:0}.check.checked{background:var(--butter);border-color:var(--butter)}.toggle{width:48px;height:28px;border-radius:999px;background:var(--disabled);border:none;position:relative;cursor:pointer;flex-shrink:0;transition:background .15s;padding:0}.toggle.on{background:var(--butter)}.toggle:after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #26231d33;transition:left .15s}.toggle.on:after{left:23px}.topbar{display:flex;align-items:center;height:44px;margin:0 0 8px}.topbar .title{flex:1;text-align:center;font-size:16px;font-weight:700}.topbar .side{width:40px;display:flex}.icon-btn{border:none;background:none;cursor:pointer;color:var(--ink);padding:4px;display:grid;place-items:center}.ph{background:repeating-linear-gradient(45deg,#fbf1dc,#fbf1dc 12px,#f6eacf 12px,#f6eacf 24px);display:grid;place-items:center;position:relative}.ph-note{font-family:ui-monospace,monospace;font-size:11px;color:#a79f8d}.img-action{position:absolute;top:10px;right:10px;width:32px;height:32px;background:var(--butter);border-radius:9px;display:grid;place-items:center;border:none;cursor:pointer}.stepper{display:inline-flex;align-items:center;border:1.5px solid var(--line-2);border-radius:999px;overflow:hidden}.stepper button{width:38px;height:34px;border:none;background:transparent;font-size:18px;font-weight:700;color:var(--ink);cursor:pointer;font-family:inherit}.stepper span{min-width:28px;text-align:center;font-size:14px;font-weight:700}.rtabs{display:flex;gap:28px;border-bottom:1.5px solid var(--line);margin:16px 0 14px}.rtab{padding:8px 2px;font-size:15px;font-weight:600;color:var(--muted);cursor:pointer;border:none;background:none;font-family:inherit;margin-bottom:-1.5px;border-bottom:3px solid transparent}.rtab.active{font-weight:700;color:var(--ink);border-bottom-color:var(--butter)}.sheet-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#26231d59;z-index:40;display:flex;align-items:flex-end;max-width:480px;margin:0 auto}.sheet{background:var(--cream);border-radius:32px 32px 0 0;padding:28px 28px calc(28px + env(safe-area-inset-bottom));width:100%;max-height:80dvh;overflow-y:auto}.sheet-grip{display:block;width:44px;height:5px;border-radius:3px;background:var(--line-2);margin:0 auto 20px}.day-chip{min-width:44px;height:56px;border-radius:14px;background:#fff;border:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-family:inherit;font-weight:600;color:var(--muted);cursor:pointer;padding:0 10px;flex-shrink:0}.day-chip.active{background:var(--butter);color:var(--ink);font-weight:700}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}.bottom-cta{position:absolute;left:0;right:0;bottom:80px;padding:12px 20px 14px;background:linear-gradient(transparent,var(--cream) 40%)}.tabbar{display:flex;justify-content:space-around;align-items:center;background:#fff;border-top:1px solid var(--line);height:80px;padding-bottom:calc(10px + env(safe-area-inset-bottom))}.tab{display:flex;flex-direction:column;align-items:center;gap:3px;border:none;background:none;color:#b4ac98;font-size:10px;font-weight:600;cursor:pointer;font-family:inherit}.tab.active{color:var(--ink);font-weight:700}.screen{animation:screen-in .18s ease-out}@keyframes screen-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.cook-progress{height:6px;border-radius:3px;background:var(--wheat);overflow:hidden}.cook-progress>span{display:block;height:100%;background:var(--butter);border-radius:3px;transition:width .25s ease}.toasts{position:fixed;left:16px;right:16px;bottom:96px;z-index:70;display:flex;flex-direction:column;gap:8px;max-width:448px;margin:0 auto;pointer-events:none}.toast{display:flex;align-items:center;gap:12px;background:var(--ink);color:#fff;border-radius:16px;padding:13px 18px;font-size:14px;font-weight:600;box-shadow:var(--shadow-lg);pointer-events:auto;animation:toast-in .2s ease-out}.toast-action{border:none;background:none;color:var(--butter);font-family:inherit;font-size:14px;font-weight:700;cursor:pointer;padding:2px 4px;white-space:nowrap}@keyframes toast-in{0%{transform:translateY(12px);opacity:0}to{transform:none;opacity:1}}.skel{position:relative;overflow:hidden;background:var(--wheat);border-radius:12px}.skel:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;transform:translate(-100%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.55),transparent);animation:skel-shimmer 1.3s infinite}@keyframes skel-shimmer{to{transform:translate(100%)}}.gen-stage{display:flex;align-items:center;gap:10px;font-size:14px;font-weight:600;color:var(--muted);margin:14px 0 4px}.gen-stage .dot-pulse{width:8px;height:8px;border-radius:50%;background:var(--butter);animation:dot-pulse 1s infinite}@keyframes dot-pulse{50%{transform:scale(1.6);opacity:.5}}.urgent-banner{display:flex;align-items:center;gap:10px;background:#fdecec;border:1px solid #F5C6C9;border-radius:16px;padding:12px 16px;margin-top:14px;font-size:13px;font-weight:600;color:var(--ink)}.sheet{animation:sheet-up .22s ease-out}@keyframes sheet-up{0%{transform:translateY(40px);opacity:.6}to{transform:none;opacity:1}}.t-urgent{color:var(--coral);font-weight:600}.center-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:20px;padding:40px 0}.brand-circle-y{position:absolute;width:300px;height:300px;border-radius:50%;background:var(--butter);top:-130px;right:-90px}.brand-circle-c{position:absolute;width:340px;height:340px;border-radius:50%;background:var(--coral);bottom:-150px;left:-100px}.dots{display:flex;gap:8px;margin-top:28px}.dots span{width:8px;height:8px;border-radius:4px;background:var(--line-2)}.dots span.on{width:24px;background:var(--butter)}
