:root{--nut-icon-height:16px;--nut-icon-width:16px;--nut-icon-line-height:16px;--nut-icon-color:#171a26;--animate-duration:1s;--animate-delay:0s}page{--nut-icon-height:16px;--nut-icon-width:16px;--nut-icon-line-height:16px;--nut-icon-color:#171a26;--animate-duration:1s;--animate-delay:0s}.nut-icon{color:var(--nut-icon-color,#171a26);display:inline-block;font-size:var(--nut-icon-width,16px);height:var(--nut-icon-height,16px);line-height:var(--nut-icon-line-height,16px);position:relative;text-align:right;width:var(--nut-icon-width,16px)}.nut-icon-img{height:var(--nut-icon-height);object-fit:contain;width:var(--nut-icon-width)}.nut-icon-Loading,.nut-icon-Loading1,.nut-icon-loading,.nut-icon-loading1{animation:rotation 1s linear infinite;display:inline-block}.nut-icon-am-infinite{-webkit-animation-direction:alternate;animation-direction:alternate;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.nut-icon-am-jump{-webkit-animation-delay:var(--animate-delay);animation-delay:var(--animate-delay);-webkit-animation-duration:var(--animate-duration);animation-duration:var(--animate-duration);-webkit-animation-name:nutJumpOne;animation-name:nutJumpOne;-webkit-animation-timing-function:ease;animation-timing-function:ease}.nut-icon-am-jump.nut-icon-am-infinite{-webkit-animation-name:nutJump;animation-name:nutJump}.nut-icon-am-rotate{-webkit-animation-delay:var(--animate-delay);animation-delay:var(--animate-delay);-webkit-animation-duration:var(--animate-duration);animation-duration:var(--animate-duration);-webkit-animation-name:rotation;animation-name:rotation;-webkit-animation-timing-function:linear;animation-timing-function:linear}.nut-icon-am-rotate.nut-icon-am-infinite{-webkit-animation-direction:normal;animation-direction:normal}.nut-icon-am-blink{-webkit-animation-delay:var(--animate-delay);animation-delay:var(--animate-delay);-webkit-animation-duration:var(--animate-duration);animation-duration:var(--animate-duration);-webkit-animation-name:nutBlink;animation-name:nutBlink;-webkit-animation-timing-function:ease-in-out;animation-timing-function:linear}.nut-icon-am-breathe{-webkit-animation-delay:var(--animate-delay);animation-delay:var(--animate-delay);-webkit-animation-duration:var(--animate-duration);animation-duration:var(--animate-duration);-webkit-animation-name:nutBreathe;animation-name:nutBreathe;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}.nut-icon-am-flash{-webkit-animation-delay:var(--animate-delay);animation-delay:var(--animate-delay);-webkit-animation-duration:var(--animate-duration);animation-duration:var(--animate-duration);-webkit-animation-name:nutFlash;animation-name:nutFlash;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}.nut-icon-am-bounce{-webkit-animation-delay:var(--animate-delay);animation-delay:var(--animate-delay);-webkit-animation-duration:var(--animate-duration);animation-duration:var(--animate-duration);-webkit-animation-name:nutBounce;animation-name:nutBounce;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}.nut-icon-am-bounce.nut-icon-am-infinite{-webkit-animation-direction:normal;animation-direction:normal}.nut-icon-am-shake{-webkit-animation-delay:var(--animate-delay);animation-delay:var(--animate-delay);-webkit-animation-duration:var(--animate-duration);animation-duration:var(--animate-duration);-webkit-animation-name:nutShake;animation-name:nutShake;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}@keyframes rotation{0%{-webkit-transform:rotate(0deg)}to{-webkit-transform:rotate(1turn)}}@-webkit-keyframes nutJump{to{transform:scale3d(.8,1,.9) translateY(-10px)}}@keyframes nutJump{to{transform:scale3d(.8,1,.9) translateY(-10px)}}@-webkit-keyframes nutJumpOne{50%{transform:scale3d(.8,1,.9) translateY(-10px)}to{transform:scaleZ(1) translateY(0)}}@keyframes nutJumpOne{50%{transform:scale3d(.8,1,.9) translateY(-10px)}to{transform:scaleZ(1) translateY(0)}}@-webkit-keyframes nutBlink{0%{opacity:0}to{opacity:1}}@keyframes nutBlink{0%{opacity:0}to{opacity:1}}@-webkit-keyframes nutBreathe{0%,to{transform:scale(1)}50%{transform:scale(1.2)}}@keyframes nutBreathe{0%,to{transform:scale(1)}50%{transform:scale(1.2)}}@-webkit-keyframes nutFlash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes nutFlash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@-webkit-keyframes nutBounce{0%,20%,53%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1);-webkit-transform:translateZ(0);transform:translateZ(0)}40%,43%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06);-webkit-transform:translate3d(0,-30px,0) scaleY(1.1);transform:translate3d(0,-30px,0) scaleY(1.1)}70%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06);-webkit-transform:translate3d(0,-15px,0) scaleY(1.05);transform:translate3d(0,-15px,0) scaleY(1.05)}80%{-webkit-transform:translateZ(0) scaleY(.95);transform:translateZ(0) scaleY(.95);-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1)}90%{-webkit-transform:translate3d(0,-4px,0) scaleY(1.02);transform:translate3d(0,-4px,0) scaleY(1.02)}}@keyframes nutBounce{0%,20%,53%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1);-webkit-transform:translateZ(0);transform:translateZ(0)}40%,43%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06);-webkit-transform:translate3d(0,-30px,0) scaleY(1.1);transform:translate3d(0,-30px,0) scaleY(1.1)}70%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06);-webkit-transform:translate3d(0,-15px,0) scaleY(1.05);transform:translate3d(0,-15px,0) scaleY(1.05)}80%{-webkit-transform:translateZ(0) scaleY(.95);transform:translateZ(0) scaleY(.95);-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1)}90%{-webkit-transform:translate3d(0,-4px,0) scaleY(1.02);transform:translate3d(0,-4px,0) scaleY(1.02)}}@-webkit-keyframes nutShake{0%{-webkit-transform:translateX(0);transform:translate(0)}6.5%{-webkit-transform:translateX(-6px) rotateY(-9deg);transform:translate(-6px) rotateY(-9deg)}18.5%{-webkit-transform:translateX(5px) rotateY(7deg);transform:translate(5px) rotateY(7deg)}31.5%{-webkit-transform:translateX(-3px) rotateY(-5deg);transform:translate(-3px) rotateY(-5deg)}43.5%{-webkit-transform:translateX(2px) rotateY(3deg);transform:translate(2px) rotateY(3deg)}50%{-webkit-transform:translateX(0);transform:translate(0)}}@keyframes nutShake{0%{-webkit-transform:translateX(0);transform:translate(0)}6.5%{-webkit-transform:translateX(-6px) rotateY(-9deg);transform:translate(-6px) rotateY(-9deg)}18.5%{-webkit-transform:translateX(5px) rotateY(7deg);transform:translate(5px) rotateY(7deg)}31.5%{-webkit-transform:translateX(-3px) rotateY(-5deg);transform:translate(-3px) rotateY(-5deg)}43.5%{-webkit-transform:translateX(2px) rotateY(3deg);transform:translate(2px) rotateY(3deg)}50%{-webkit-transform:translateX(0);transform:translate(0)}}.plan-page{padding-bottom:5rem}.fm-menu-block{background-color:#fff;border-radius:.5rem;box-shadow:0 .1rem .4rem rgba(0,0,0,.04);margin:.3rem .4rem;padding:.45rem .5rem}.fm-menu-block-head{align-items:baseline;display:flex;justify-content:space-between;margin-bottom:.35rem}.fm-menu-block-title{color:var(--fm-title);font-size:.75rem;font-weight:700}.fm-menu-block-meta{color:var(--fm-text-secondary);font-size:.55rem}.fm-menu-dish-card{align-items:center;border-bottom:.025rem solid var(--fm-border);display:flex;gap:.35rem;padding:.35rem 0}.fm-menu-dish-card:last-child{border-bottom:none;padding-bottom:.1rem}.fm-menu-dish-info{display:flex;flex:1;flex-direction:column;gap:.15rem;min-width:0}.fm-menu-dish-name-row{align-items:center;display:flex;gap:.25rem}.fm-menu-dish-name{color:var(--fm-title);font-size:.7rem;font-weight:600}.fm-menu-dish-meta{color:var(--fm-text-secondary);font-size:.55rem}.fm-menu-swap-btn{background-color:var(--fm-primary-light);border:.0375rem solid var(--fm-primary);border-radius:.5rem;color:var(--fm-primary);flex-shrink:0;font-size:.55rem;padding:.15rem .4rem}.fm-swap-popup{max-height:75vh;overflow-y:auto}.fm-swap-sub{color:var(--fm-text-secondary);display:block;font-size:.55rem;margin-bottom:.35rem}.fm-swap-cand-list{max-height:40vh}.fm-swap-cand{align-items:center;background-color:#fffcf5;border:.0375rem solid var(--fm-border);border-radius:.4rem;display:flex;gap:.35rem;margin-bottom:.25rem;padding:.35rem .4rem}.fm-swap-cand.on{background-color:var(--fm-primary-light);border-color:var(--fm-primary)}.fm-swap-cand-info{display:flex;flex:1;flex-direction:column;gap:.1rem;min-width:0}.fm-swap-cand-name{color:var(--fm-title);font-size:.65rem;font-weight:600}.fm-swap-cand-meta{color:var(--fm-text-secondary);font-size:.55rem}.fm-swap-cand-pick{color:var(--fm-primary);flex-shrink:0;font-size:.55rem;font-weight:600}.fm-swap-hint{color:var(--fm-text-secondary);display:block;font-size:.55rem;margin:.2rem 0 .35rem}.fm-swap-empty{padding:.6rem .2rem;text-align:center}.fm-swap-empty-emoji{display:block;font-size:1.2rem;margin-bottom:.25rem}.fm-swap-empty-title{color:var(--fm-title);display:block;font-size:.65rem;font-weight:600;margin-bottom:.2rem}.fm-swap-empty-text{color:var(--fm-text-secondary);display:block;font-size:.6rem;line-height:1.6}.fm-bottom-bar-secondary{background-color:#fff;border-top:.025rem solid var(--fm-border);bottom:0;left:0;padding:.25rem .4rem calc(.25rem + env(safe-area-inset-bottom));position:fixed;right:0;z-index:100}.fm-plan-scroll{height:calc(100vh - 5.5rem)}.fm-group{background-color:#fff;border-radius:.5rem;box-shadow:0 .1rem .4rem rgba(0,0,0,.04);margin:.3rem .4rem;overflow:hidden}.fm-group-header{align-items:center;background-color:var(--fm-primary-light);display:flex;justify-content:space-between;padding:.35rem .5rem}.fm-group-title{color:var(--fm-title);font-size:.7rem;font-weight:600}.fm-group-count{color:var(--fm-text-secondary);font-size:.6rem}.fm-list-item{align-items:center;border-bottom:.025rem solid var(--fm-border);display:flex;gap:.3rem;padding:.35rem .5rem}.fm-item-name{color:var(--fm-title);flex:1;font-size:.7rem}.fm-item-checked{color:#c8c8c8;text-decoration:line-through}.fm-item-qty{color:var(--fm-primary);font-size:.65rem;font-weight:500}.fm-people-bar{align-items:center;background-color:#fff;border-radius:.4rem;box-shadow:0 .1rem .4rem rgba(0,0,0,.04);display:flex;gap:.4rem;justify-content:center;margin:.3rem .4rem 0;padding:.35rem .5rem}.fm-people-label{color:var(--fm-title);font-size:.65rem}.fm-people-btn{background-color:var(--fm-primary-light);border:.0375rem solid var(--fm-primary);border-radius:50%;color:var(--fm-primary);font-size:.8rem;height:1.4rem;line-height:1.3rem;text-align:center;width:1.4rem}.fm-people-btn.disabled{opacity:.35}.fm-people-num{color:var(--fm-title);font-size:.85rem;font-weight:700;min-width:1.5rem;text-align:center}.fm-list-hint{color:var(--fm-text-secondary);display:block;font-size:.55rem;line-height:1.6;margin:.25rem .5rem 0}.fm-item-main{align-items:center;display:flex;flex:1;flex-wrap:wrap;gap:.25rem;min-width:0}.fm-tag-have{background-color:#e8f5e9;border-radius:.3rem;color:#4caf50;flex-shrink:0;font-size:.5rem;padding:.05rem .35rem}.fm-tag-pantry{background-color:#f2f2f2;border-radius:.3rem;color:#8a8a8a;flex-shrink:0;font-size:.5rem;padding:.05rem .35rem}.fm-buy-confirm{margin:.4rem .4rem .6rem}.fm-timeline{padding:.7rem .5rem}.fm-timeline-item{display:flex;padding-bottom:.7rem;position:relative}.fm-timeline-dot{background-color:var(--fm-primary);border-radius:50%;box-shadow:0 0 0 .1rem var(--fm-primary-light);flex-shrink:0;height:.4rem;margin-right:.45rem;margin-top:.15rem;width:.4rem;z-index:1}.fm-timeline-line{background-color:var(--fm-primary-light);bottom:0;left:.175rem;position:absolute;top:.55rem;width:.05rem}.fm-timeline-content{flex:1}.fm-timeline-time{color:var(--fm-primary);display:block;font-size:.6rem;font-weight:600;margin-bottom:.15rem}.fm-timeline-action{color:var(--fm-title);display:block;font-size:.7rem;line-height:1.5}.fm-timeline-total{background-color:var(--fm-primary-light);border-radius:.3rem;color:var(--fm-text-secondary);font-size:.6rem;margin-top:.5rem;padding:.35rem .5rem}.fm-dish-detail{background-color:#fff;border-radius:.5rem;box-shadow:0 .1rem .4rem rgba(0,0,0,.04);margin:.3rem .4rem;overflow:hidden}.fm-dish-header{align-items:center;background-color:var(--fm-primary-light);display:flex;justify-content:space-between;padding:.45rem .5rem}.fm-dish-name{color:var(--fm-title);font-size:.8rem;font-weight:700}.fm-dish-meta{color:var(--fm-text-secondary);font-size:.6rem}.fm-dish-section{border-bottom:.025rem solid var(--fm-border);padding:.45rem .5rem}.fm-dish-section-title{color:var(--fm-primary);display:block;font-size:.65rem;font-weight:600;margin-bottom:.35rem}.fm-dish-ing{display:flex;justify-content:space-between;padding:.2rem 0}.fm-dish-ing-name{color:var(--fm-title);font-size:.7rem}.fm-dish-ing-qty{color:var(--fm-primary);font-size:.7rem;font-weight:500}.fm-dish-step{display:flex;gap:.35rem;padding:.25rem 0}.fm-dish-step-num{background-color:var(--fm-primary);border-radius:50%;color:#fff;flex-shrink:0;font-size:.6rem;height:1rem;line-height:1rem;text-align:center;width:1rem}.fm-dish-step-content{flex:1}.fm-dish-step-text{color:var(--fm-title);display:block;font-size:.7rem;line-height:1.6}.fm-dish-step-tag{background-color:#e8f5e9;border-radius:.3rem;color:#4caf50;display:inline-block;font-size:.55rem;margin-top:.15rem;padding:.075rem .35rem}.fm-dish-tags{display:flex;flex-wrap:wrap;gap:.2rem;padding:.35rem .5rem}.fm-dish-tag{background-color:var(--fm-primary-light);border-radius:.5rem;color:var(--fm-primary);font-size:.6rem;padding:.1rem .45rem}