:root{--bg:#fbf6ef;--card:#fff;--ink:#2e2621;--ink-2:#6f6259;--ink-3:#7a6b60;--line:#efe6da;--brand:#b9531f;--brand-ink:#9e4419;--brand-2:#f29a5b;--brand-soft:#fde9dc;--green:#2e7039;--green-soft:#e2f1e3;--orange:#9a5a00;--orange-soft:#fcefd9;--red:#b23a35;--red-soft:#fbe3e1;--blue:#2f6299;--blue-soft:#e3ecf7;--shadow:0 1px 2px #5032140d, 0 6px 20px #50321412;--radius:20px;--tabbar:64px;--safe-b:env(safe-area-inset-bottom,0px);--safe-t:env(safe-area-inset-top,0px);--font:-apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-round:ui-rounded, "SF Pro Rounded", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%;margin:0}body{font-variant-numeric:lining-nums;background:var(--bg);color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased;overscroll-behavior-y:none;font-size:16px;line-height:1.4}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:0;padding:0}input,select,textarea{border:1.5px solid var(--line);background:var(--card);border-radius:14px;outline:none;width:100%;padding:12px 14px;font-size:16px}input:focus,select:focus,textarea:focus{border-color:var(--brand-2)}h1,h2,h3{font-family:var(--font-round);letter-spacing:-.01em;margin:0}h1{font-size:28px;font-weight:800}h2{font-size:20px;font-weight:750}h3{font-size:17px;font-weight:700}.app{max-width:560px;min-height:100%;margin:0 auto;position:relative}.page{padding:calc(16px + var(--safe-t)) 16px calc(var(--tabbar) + var(--safe-b) + 24px)}.layer{z-index:30;background:var(--bg);-webkit-overflow-scrolling:touch;animation:.28s cubic-bezier(.2,.8,.2,1) slide-in;position:fixed;inset:0;overflow-y:auto}.layer>.inner{max-width:560px;min-height:100%;padding-bottom:calc(24px + var(--safe-b));margin:0 auto}@keyframes slide-in{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:none}}.topbar{z-index:5;padding:calc(10px + var(--safe-t)) 12px 10px;-webkit-backdrop-filter:saturate(1.4)blur(12px);background:#fbf6efeb;align-items:center;gap:8px;display:flex;position:sticky;top:0}.topbar h2{text-align:center;flex:1;margin-right:44px;font-size:18px}.icon-btn{background:var(--card);width:44px;height:44px;box-shadow:var(--shadow);border-radius:50%;flex:none;place-items:center;font-size:20px;display:grid}.tabbar{z-index:20;padding-bottom:var(--safe-b);-webkit-backdrop-filter:saturate(1.4)blur(14px);border-top:1px solid var(--line);background:#fffffff0;position:fixed;bottom:0;left:0;right:0}.tabbar nav{max-width:560px;height:var(--tabbar);grid-template-columns:repeat(5,1fr);margin:0 auto;display:grid}.tab{color:var(--ink-3);flex-direction:column;justify-content:center;align-items:center;gap:3px;font-size:11px;font-weight:600;display:flex;position:relative}.tab svg{width:26px;height:26px}.tab.on{color:var(--brand)}.tab .dot{background:var(--brand);color:#fff;border-radius:9px;place-items:center;min-width:18px;height:18px;padding:0 5px;font-size:11px;display:grid;position:absolute;top:8px;left:calc(50% + 8px)}.card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px}.section{margin-top:24px}.section-head{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:10px;display:flex}.link{color:var(--brand-ink);margin:-12px 0;padding:12px 0;font-size:15px;font-weight:650;display:inline-block}.muted{color:var(--ink-2)}.faint{color:var(--ink-3);font-size:14px}.small{font-size:14px}.row{align-items:center;gap:12px;display:flex}.grow{flex:1;min-width:0}.stack>*+*{margin-top:10px}.center{text-align:center}.ellipsis{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.btn{background:var(--brand);color:#fff;border-radius:16px;justify-content:center;align-items:center;gap:8px;min-height:52px;padding:0 20px;font-size:17px;font-weight:700;transition:transform .12s,opacity .12s;display:inline-flex;box-shadow:0 6px 16px #e46f3547}.btn:active{transform:scale(.97)}.btn.block{width:100%}.btn.soft{background:var(--brand-soft);color:var(--brand-ink);box-shadow:none}.btn.ghost{background:var(--card);color:var(--ink);box-shadow:var(--shadow)}.btn.green{background:var(--green);box-shadow:0 6px 16px #3f8f4d40}.btn.small{border-radius:12px;min-height:44px;padding:0 14px;font-size:15px}.btn:disabled{opacity:.45}.btn-row{gap:10px;display:flex}.btn-row>*{flex:1}.chips{scrollbar-width:none;gap:8px;margin:0 -16px;padding:2px 16px 6px;display:flex;overflow-x:auto}.chips::-webkit-scrollbar{display:none}.chips.wrap{flex-wrap:wrap;margin:0;padding:0;overflow:visible}.chip{background:var(--card);min-height:44px;box-shadow:0 0 0 1.5px var(--line) inset;white-space:nowrap;border-radius:19px;flex:none;align-items:center;gap:6px;padding:0 14px;font-size:15px;font-weight:600;display:inline-flex}.chip.on{background:var(--ink);color:#fff;box-shadow:none}.chip.brand.on{background:var(--brand)}.pill{white-space:nowrap;text-overflow:ellipsis;border-radius:10px;align-items:center;gap:4px;max-width:100%;padding:3px 9px;font-size:13px;font-weight:700;display:inline-flex;overflow:hidden}.pill.green{background:var(--green-soft);color:var(--green)}.pill.orange{background:var(--orange-soft);color:var(--orange)}.pill.red{background:var(--red-soft);color:var(--red)}.pill.blue{background:var(--blue-soft);color:var(--blue)}.pill.gray{color:var(--ink-2);background:#f1ece6}.hello{align-items:flex-start;gap:12px;display:flex}.hello h1{font-size:26px}.avatar{background:linear-gradient(135deg, var(--brand-2), var(--brand));color:#fff;width:48px;height:48px;box-shadow:var(--shadow);border-radius:50%;flex:none;place-items:center;font-size:20px;font-weight:800;display:grid}.ask{text-align:left;background:var(--card);width:100%;box-shadow:var(--shadow);color:var(--ink-2);border-radius:18px;align-items:center;gap:12px;margin-top:16px;padding:14px 16px;display:flex}.ask .spark{background:linear-gradient(135deg, #ffcf7a, var(--brand));border-radius:12px;flex:none;place-items:center;width:36px;height:36px;font-size:18px;display:grid}.reminder{background:var(--card);box-shadow:var(--shadow);border-radius:16px;align-items:flex-start;gap:12px;padding:12px 14px;display:flex}.reminder .ic{font-size:20px;line-height:1.2}.reminder.red{background:var(--red-soft);box-shadow:none}.reminder.orange{background:var(--orange-soft);box-shadow:none}.reminder.blue{background:var(--blue-soft);box-shadow:none}.reminder.green{background:var(--green-soft);box-shadow:none}.reminder .t{font-size:15px;font-weight:650}.reminder .x{color:var(--ink-3);flex:none;width:44px;height:44px;margin:-10px -12px -10px 0;font-size:20px}.reminder .act{color:var(--ink);text-underline-offset:3px;margin:-6px 0 -12px;padding:12px 0;font-size:14px;font-weight:700;text-decoration:underline;display:inline-block}.tiles{grid-template-columns:1fr 1fr;gap:12px;display:grid}.tile{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);text-align:left;flex-direction:column;justify-content:space-between;min-height:104px;padding:14px;display:flex}.tile .e{font-size:28px}.tile .t{font-size:15px;font-weight:700;line-height:1.25}.tile .n{color:var(--ink-2);font-size:13px}.meal-row{align-items:center;gap:12px;padding:10px 0;display:flex}.meal-row+.meal-row{border-top:1px solid var(--line)}.meal-row .when{width:76px;color:var(--ink-2);flex:none;font-size:14px;font-weight:600}.meal-row .emo{font-size:26px}.hero{aspect-ratio:4/3;border-radius:18px;place-items:center;font-size:56px;display:grid;position:relative;overflow:hidden}.hero:after{content:"";background:radial-gradient(circle at 30% 20%,#ffffff8c,#0000 55%);position:absolute;inset:0}.hero span{z-index:1;filter:drop-shadow(0 6px 10px #50280a2e);position:relative}.rgrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.rcard{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);text-align:left;flex-direction:column;gap:8px;padding:8px;display:flex;position:relative}.rcard .title{min-height:38px;padding:0 4px;font-size:15px;font-weight:700;line-height:1.25}.rcard .meta{color:var(--ink-2);flex-wrap:wrap;align-items:center;gap:6px;padding:0 4px 4px;font-size:13px;display:flex}.rcard .fav{z-index:2;place-items:center;width:44px;height:44px;font-size:18px;display:grid;position:absolute;top:8px;right:8px}.hscroll{scroll-snap-type:x mandatory;scrollbar-width:none;gap:12px;margin:0 -16px;padding:2px 16px 10px;display:flex;overflow-x:auto}.hscroll::-webkit-scrollbar{display:none}.hscroll>*{scroll-snap-align:start;flex:none;width:168px}.detail-hero{aspect-ratio:auto;border-radius:0 0 32px 32px;height:260px;font-size:96px}.detail-top{top:calc(12px + var(--safe-t));z-index:3;justify-content:space-between;display:flex;position:absolute;left:12px;right:12px}.facts{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.ing{align-items:center;gap:12px;padding:11px 0;display:flex}.ing+.ing{border-top:1px solid var(--line)}.ing .st{text-align:center;flex:none;width:26px;font-size:16px}.ing .amt{white-space:nowrap;font-weight:700}.step{gap:14px;padding:12px 0;display:flex}.step+.step{border-top:1px solid var(--line)}.step .num{background:var(--brand-soft);width:30px;height:30px;color:var(--brand-ink);border-radius:50%;flex:none;place-items:center;font-weight:800;display:grid}.bottom-bar{padding:12px 16px calc(12px + var(--safe-b));background:linear-gradient(to top, var(--bg) 70%, #fbf6ef00);z-index:4;gap:10px;display:flex;position:sticky;bottom:0}.bottom-bar>*{flex:1}.nutri{text-align:center;grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.nutri b{font-size:18px;font-family:var(--font-round);display:block}.nutri span{color:var(--ink-2);font-size:12px}.stepper{background:var(--card);box-shadow:0 0 0 1.5px var(--line) inset;border-radius:16px;align-items:center;gap:4px;padding:4px;display:inline-flex}.stepper button{width:44px;height:44px;color:var(--brand-ink);background:var(--brand-soft);border-radius:12px;font-size:22px;font-weight:700}.stepper .v{text-align:center;min-width:44px;font-size:18px;font-weight:800;font-family:var(--font-round)}.list{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:2px 14px}.item{text-align:left;align-items:center;gap:12px;width:100%;padding:12px 0;display:flex}.item+.item{border-top:1px solid var(--line)}.item-link{color:inherit;text-decoration:none}.item .emo{text-align:center;flex:none;width:36px;font-size:26px}.item .name{font-weight:650}.item .sub{color:var(--ink-2);font-size:13px}.check{border:2px solid var(--ink-3);color:#fff;border-radius:9px;flex:none;place-items:center;width:28px;height:28px;font-size:16px;font-weight:900;display:grid}.check.on{background:var(--green);border-color:var(--green)}.item.done .name{color:var(--ink-3);text-decoration:line-through}.group-title{color:var(--ink-2);align-items:center;gap:8px;margin:20px 4px 8px;font-size:15px;font-weight:750;display:flex}.segment{background:#f0e8de;border-radius:14px;grid-auto-columns:1fr;grid-auto-flow:column;gap:4px;padding:4px;display:grid}.segment button{min-height:44px;color:var(--ink-2);border-radius:11px;font-size:14px;font-weight:650}.segment button.on{background:var(--card);color:var(--ink);box-shadow:0 1px 3px #00000014}.sheet-bg{z-index:50;background:#28190f59;justify-content:center;align-items:flex-end;animation:.2s fade;display:flex;position:fixed;inset:0}.sheet{background:var(--bg);width:100%;max-width:560px;max-height:92vh;padding:10px 16px calc(20px + var(--safe-b));border-radius:26px 26px 0 0;animation:.28s cubic-bezier(.2,.8,.2,1) up;overflow-y:auto}.sheet .grab{background:#dccfc1;border-radius:3px;width:40px;height:5px;margin:0 auto 12px}.sheet h2{margin-bottom:14px}@keyframes up{0%{opacity:.5;transform:translateY(40px)}to{opacity:1;transform:none}}@keyframes fade{0%{opacity:0}to{opacity:1}}.field{margin-top:14px}.field>label{color:var(--ink-2);margin:0 0 6px 4px;font-size:14px;font-weight:650;display:block}.hint{color:var(--ink-3);margin:6px 4px 0;font-size:13px}.suggest{margin-top:6px}.suggest button{text-align:left;border-radius:12px;align-items:center;gap:10px;width:100%;padding:10px 12px;display:flex}.suggest button:active{background:var(--brand-soft)}.cook{z-index:40;padding:calc(12px + var(--safe-t)) 18px calc(18px + var(--safe-b));background:#fffaf4;flex-direction:column;animation:.2s fade;display:flex;position:fixed;inset:0}.cook .progress{background:var(--line);border-radius:3px;height:6px;margin:12px 0 20px;overflow:hidden}.cook .progress div{background:var(--brand);height:100%;transition:width .3s}.cook .text{font-family:var(--font-round);flex:1;font-size:27px;font-weight:700;line-height:1.3;overflow-y:auto}.timers{flex-wrap:wrap;gap:8px;margin-bottom:12px;display:flex}.timer{background:var(--blue-soft);color:var(--blue);font-variant-numeric:tabular-nums;border-radius:14px;align-items:center;gap:8px;padding:8px 12px;font-weight:800;display:inline-flex}.timer.ring{background:var(--red);color:#fff;animation:.8s infinite alternate pulse}@keyframes pulse{0%{transform:scale(1)}to{transform:scale(1.05)}}.chat{flex-direction:column;gap:10px;padding:12px 16px 120px;display:flex}.bubble{white-space:pre-line;border-radius:18px;max-width:86%;padding:11px 14px;font-size:15.5px}.bubble.user{background:var(--brand);color:#fff;border-bottom-right-radius:6px;align-self:flex-end}.bubble.bot{background:var(--card);box-shadow:var(--shadow);border-bottom-left-radius:6px;align-self:flex-start}.composer{z-index:35;padding:10px 12px calc(10px + var(--safe-b));border-top:1px solid var(--line);background:#fbf6eff5;position:fixed;bottom:0;left:0;right:0}.composer form{gap:8px;max-width:560px;margin:0 auto;display:flex}.composer button{background:var(--brand);color:#fff;border-radius:16px;flex:none;width:50px;height:50px;font-size:22px}.mini{background:var(--card);box-shadow:var(--shadow);text-align:left;border-radius:14px;align-items:center;gap:10px;width:100%;padding:8px 12px 8px 8px;display:flex}.mini .h{border-radius:12px;flex:none;place-items:center;width:52px;height:52px;font-size:28px;display:grid}.empty{text-align:center;padding:28px 16px}.empty .e{font-size:48px}.toast{left:50%;bottom:calc(var(--tabbar) + var(--safe-b) + 16px);z-index:80;background:var(--ink);color:#fff;border-radius:14px;max-width:calc(100% - 32px);padding:12px 18px;font-size:15px;font-weight:600;animation:.25s up;position:fixed;transform:translate(-50%);box-shadow:0 10px 30px #0003}.banner{background:var(--red-soft);color:var(--red);border-radius:14px;margin-bottom:12px;padding:10px 14px;font-size:14px;font-weight:600}.switch{background:#ddd2c6;border-radius:15px;flex:none;width:50px;height:30px;transition:background .2s;position:relative}.switch:after{content:"";background:#fff;border-radius:50%;width:24px;height:24px;transition:transform .2s;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #0003}.switch.on{background:var(--green)}.switch.on:after{transform:translate(20px)}.options{gap:10px;display:grid}.option{background:var(--card);box-shadow:var(--shadow);text-align:left;border-radius:18px;align-items:center;gap:12px;padding:16px;font-size:17px;font-weight:700;display:flex}.option .e{font-size:28px}.option.on{box-shadow:0 0 0 2.5px var(--brand) inset;background:var(--brand-soft)}.logo{background:linear-gradient(135deg, #ffc27a, var(--brand));border-radius:28px;place-items:center;width:96px;height:96px;margin:0 auto;font-size:52px;display:grid;box-shadow:0 16px 36px #e46f3559}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}@media (width>=600px){.rgrid{grid-template-columns:repeat(3,minmax(0,1fr))}}
