:root{--bg: #f2f2f7;--card: #ffffff;--text: #000000;--secondary: rgba(60, 60, 67, .6);--tertiary: rgba(60, 60, 67, .3);--sep: rgba(60, 60, 67, .18);--tint: #ff375f;--tint-press: #d30f45;--tint-soft: rgba(255, 55, 95, .12);--ok: #34c759;--err: #ff3b30;--fill: rgba(120, 120, 128, .16);--fill-2: rgba(120, 120, 128, .12);--ph: rgba(60, 60, 67, .3);--seg: rgba(120, 120, 128, .16);--seg-on: #ffffff;--ink: rgba(28, 28, 30, .82);--vvh: 100dvh;--vvt: 0px;--dock: calc(78px + env(safe-area-inset-bottom, 0px)) ;--bar-h: calc(44px + env(safe-area-inset-top, 0px)) ;--radius: 22px;--ease-out: cubic-bezier(.23, 1, .32, 1);--glass: color-mix(in srgb, #f4f4f6 80%, transparent);--glass-edge: rgba(0, 0, 0, .14);--glass-hi: rgba(255, 255, 255, .9);--glass-lo: rgba(255, 255, 255, .35);color-scheme:light dark;font:17px/1.35 -apple-system,BlinkMacSystemFont,SF Pro Text,PingFang SC,Helvetica Neue,sans-serif;font-optical-sizing:auto}.app.meal-mode{--tint: #34c759;--tint-press: #248a3d;--tint-soft: rgba(52, 199, 89, .16)}@media(prefers-color-scheme:dark){:root{--bg: #000000;--card: #1c1c1e;--text: #ffffff;--secondary: rgba(235, 235, 245, .6);--tertiary: rgba(235, 235, 245, .3);--sep: rgba(84, 84, 88, .65);--tint-press: #ff6482;--tint-soft: rgba(255, 55, 95, .22);--ok: #30d158;--fill: rgba(120, 120, 128, .32);--fill-2: rgba(120, 120, 128, .24);--ph: rgba(235, 235, 245, .3);--seg: rgba(120, 120, 128, .32);--seg-on: #636366;--ink: rgba(44, 44, 46, .88);--glass: color-mix(in srgb, #2a2a2c 78%, transparent);--glass-edge: rgba(255, 255, 255, .18);--glass-hi: rgba(255, 255, 255, .42);--glass-lo: rgba(255, 255, 255, .08)}.app.meal-mode{--tint: #30d158;--tint-press: #30d158;--tint-soft: rgba(48, 209, 88, .22)}.tag.warm{color:#ffd60a}.tag.drop{color:#c4c2ff}}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html{-webkit-text-size-adjust:100%;overscroll-behavior:none}html,body{position:fixed;inset:0;width:100%;height:100%;margin:0;overflow:hidden;overscroll-behavior:none;background:var(--bg);color:var(--text)}body{font:inherit}button,a,label,[role=button],.chip,.part-chip,.pick-chip,.film-add{touch-action:manipulation;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.grab,.sheet-head{touch-action:pan-x;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.ask{touch-action:pan-x}button,input,textarea,select{font:inherit;color:inherit}button,a,.film-add{cursor:pointer;transition:transform .1s ease-out}input,textarea,select{font-size:max(16px,1em);-webkit-user-select:text;user-select:text}::placeholder{color:var(--ph)}:focus-visible{outline:2px solid var(--tint);outline-offset:2px}@media(min-width:760px){body{background:#d1d1d6}.app{box-shadow:0 18px 50px #0000002e}}@media(min-width:760px)and (prefers-color-scheme:dark){body{background:#1c1c1e}.app{box-shadow:0 18px 50px #00000080}}.app{position:fixed;top:var(--vvt);left:50%;transform:translate(-50%);width:min(480px,100%);height:var(--vvh);background:#000;overflow:hidden;--sheet: 0;accent-color:var(--tint)}.chrome{position:absolute;inset:0;display:flex;flex-direction:column;background:var(--bg);transform:scale(calc(1 - .045 * var(--sheet)));transform-origin:50% 8%;border-radius:calc(20px * var(--sheet));overflow:hidden}.app.sheet-open .pane{overflow:hidden}.nav{position:absolute;z-index:4;top:0;left:0;right:0;display:flex;align-items:center;justify-content:flex-end;gap:2px;min-height:var(--bar-h);padding:env(safe-area-inset-top,0px) 10px 0 16px;background:transparent}.nav:after{content:"";position:absolute;left:0;right:0;top:0;height:calc(100% + 10px);background:color-mix(in srgb,var(--bg) calc(var(--bar, 0) * 94%),transparent);opacity:1;pointer-events:none}.nav-compact{position:absolute;left:50%;bottom:0;transform:translate(-50%);max-width:calc(100% - 132px);height:44px;padding:0 8px;border:0;background:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:17px;font-weight:650;letter-spacing:-.022em;line-height:44px;opacity:var(--bar, 0);pointer-events:none}.nav-add,.iconbtn,.today-btn,.hero-date,.text,.pill,.addmore,.more-action,.ghost,.step-btn,.ask-cancel,.ask-actions button,.banner button,.textlink{border:0;background:none}.nav-add{width:44px;height:44px;padding:0;display:grid;place-items:center;color:#fff}.nav-add span,.nav-more span{width:36px;height:36px;border-radius:18px;display:grid;place-items:center;background:var(--glass);color:var(--tint);-webkit-backdrop-filter:blur(24px) saturate(180%);backdrop-filter:blur(24px) saturate(180%);box-shadow:inset 0 1px 0 var(--glass-hi),inset 0 -.5px 0 var(--glass-lo),inset 0 0 0 .5px var(--glass-edge)}.nav-more span{color:var(--text)}.nav-add:disabled{opacity:.35}.iconbtn{width:44px;height:44px;display:grid;place-items:center;color:var(--tint);border-radius:22px}.iconbtn:disabled{opacity:.35}.date-proxy{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.nav-day{display:block;font-size:34px;font-weight:700;letter-spacing:-.03em;line-height:1.02;font-optical-sizing:auto}.nav-week{display:block;margin-top:2px;font-size:15px;font-weight:600;letter-spacing:-.01em;color:var(--secondary)}.nav-week em{margin-left:8px;font-style:normal;font-weight:650;color:var(--tint);font-size:13px}.dayhead{flex:none;padding-top:var(--bar-h);background:var(--bg);z-index:3}.hero{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;padding:2px 20px 0}.hero-date{flex:1;min-width:0;color:inherit;display:flex;flex-direction:column;align-items:flex-start;padding:0;text-align:left}.hero-date:disabled{opacity:1}.today-btn{flex:none;margin-bottom:2px;min-height:32px;padding:0 12px;border-radius:999px;background:var(--tint-soft);color:var(--tint);font-size:15px;font-weight:600;letter-spacing:-.01em}.week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));padding:12px 10px 0}.week button{min-width:0;min-height:58px;padding:0;border:0;background:none;display:flex;flex-direction:column;align-items:center;gap:3px;color:var(--text)}.week .wk{font-size:13px;font-weight:600;letter-spacing:.02em;color:var(--secondary)}.week .num{width:36px;height:36px;border-radius:18px;display:grid;place-items:center;font-size:16px;font-weight:590;font-variant-numeric:tabular-nums;letter-spacing:-.02em}.week button.on .num{background:var(--tint);color:#fff}.week button.today:not(.on) .num{color:var(--tint);font-weight:700}.week button.future,.week button.future .wk,.week button.future .num{color:var(--tertiary)}.week .dots{display:flex;gap:3px;height:5px;align-items:center}.week .dot{width:5px;height:5px;border-radius:3px;background:#ff375f}.week .dot.meal{background:#30d158}.week-goal{margin:6px 20px 0;color:var(--secondary);font-size:13px;font-weight:600;display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px}.pullhint{margin:0;height:0;overflow:hidden;display:flex;align-items:flex-end;justify-content:center;color:var(--secondary);font-size:13px;font-weight:650;line-height:28px;transition:height .2s ease-out}.pullhint.live{transition:none}.summary{display:flex;flex-direction:column;margin:16px 16px 0;background:var(--card);border-radius:var(--radius);overflow:hidden}.summary-top{display:flex;align-items:center;gap:16px;padding:16px 16px 8px}.summary .stat-grid{border-top:0;padding:4px 8px 14px}.summary .stat+.stat:before{content:none}.summary .stat b{font-size:20px;letter-spacing:-.03em}.summary .stats-4 .stat b{font-size:18px}.summary .stat-foot{border:0;text-align:center;padding:0 16px 14px}.rings{width:88px;height:88px;flex:none}.ring,.ring-track{fill:none;stroke-width:6;stroke-linecap:round}.ring{transform:rotate(-90deg);transform-origin:36px 36px}.ring-track{stroke:#78788033}.r1{stroke:#ff375f}.r2{stroke:#30d158}.r3{stroke:#64d2ff}.ringkey{flex:1;min-width:0;display:flex;flex-direction:column;gap:5px}.ringkey p{display:flex;align-items:baseline;gap:8px;margin:0;min-width:0}.ringkey i{width:8px;height:8px;border-radius:4px;align-self:center;flex:none}.ringkey .k1{background:#ff375f}.ringkey .k2{background:#30d158}.ringkey .k3{background:#64d2ff}.ringkey b{min-width:1.6ch;font-size:20px;font-weight:700;letter-spacing:-.03em;line-height:1;font-variant-numeric:tabular-nums}.ringkey span{color:var(--secondary);font-size:15px;font-weight:500}.viewport{flex:1;min-height:0;overflow:hidden;touch-action:pan-y}.viewport.dragging{touch-action:none}.pager{display:flex;height:100%;min-height:0;width:calc(var(--pane, 100%) * 3);transform:translate3d(var(--px, -33.333%),0,0);will-change:transform}.pane::-webkit-scrollbar{display:none}.pane{width:var(--pane, 33.333%);flex:none;height:100%;min-height:0;max-height:100%;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scrollbar-width:none;display:flex;flex-direction:column;padding-top:12px;padding-bottom:var(--dock)}.edge{margin:auto;text-align:center;color:var(--secondary);padding:24px;font-size:17px}.pad,.sheet-pad{padding:12px 16px 28px;display:flex;flex-direction:column}.pad{flex:1;padding-top:0}.pad>.excard:first-child{margin-top:0}.sheet-pad.tight{padding-bottom:0}.dock{position:absolute;z-index:5;left:50%;right:auto;bottom:max(10px,env(safe-area-inset-bottom,0px));width:min(312px,calc(100% - 28px));transform:translate(-50%);border-radius:30px;background:var(--glass);-webkit-backdrop-filter:blur(28px) saturate(180%);backdrop-filter:blur(28px) saturate(180%);box-shadow:inset 0 1px 0 var(--glass-hi),inset 0 -.5px 0 var(--glass-lo),inset 0 0 0 .5px var(--glass-edge),0 8px 22px #00000014}.tabbar{display:flex;min-height:56px;padding:4px;background:transparent}.tabbar button{position:relative;flex:1;min-height:48px;border:0;border-radius:24px;background:none;color:var(--secondary);font-size:10px;font-weight:500;letter-spacing:.01em;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;padding:2px 0 0}.tabbar button.active{color:var(--tint);font-weight:600;background:color-mix(in srgb,var(--tint) 16%,transparent)}.tabbar button:active{transform:none;opacity:.55}.stats{background:var(--card);border-radius:var(--radius);overflow:hidden}.stat-grid{display:flex;padding:14px 0 12px}.stat{flex:1;min-width:0;text-align:center;position:relative;padding:0 4px}.stat+.stat:before{content:"";position:absolute;left:0;top:4px;bottom:4px;width:.5px;background:var(--sep)}.stat b{display:block;font-size:22px;font-weight:700;letter-spacing:-.03em;line-height:1.05;font-variant-numeric:tabular-nums}.stats-4 .stat b{font-size:18px}.stat span{display:block;margin-top:3px;font-size:12px;font-weight:500;color:var(--secondary)}.stat-foot{margin:0;padding:8px 14px 11px;border-top:.5px solid var(--sep);color:var(--secondary);font-size:13px;text-align:center}.cap{margin:16px 4px 6px;color:var(--secondary);font-size:13px;font-weight:400}.cap.ico,.lbl.ico{display:flex;align-items:center;gap:4px}.note-card{margin:12px 0 0;background:var(--card);border-radius:var(--radius);padding:14px 16px;color:var(--text);font-size:17px;line-height:1.35;white-space:pre-wrap}.excard{background:var(--card);border-radius:var(--radius);margin-top:12px;overflow:hidden}.exhead,button.exhead{display:flex;align-items:center;gap:12px;width:100%;padding:14px 8px 12px 16px;border:0;background:transparent;text-align:left;color:inherit;appearance:none;-webkit-appearance:none}.exhead h3{margin:0;font-size:20px;font-weight:700;letter-spacing:-.02em;line-height:1.2}.exhead .grow{flex:1;min-width:0}.exhead p,.meta{margin:3px 0 0;color:var(--secondary);font-size:15px;font-weight:500}.exhead h3 .meta{font-weight:500;margin:0 0 0 6px;display:inline-flex;align-items:center;gap:3px;vertical-align:1px}.clamp{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.meal .exhead>svg{color:var(--tertiary);flex:none}.meal-thumb{width:44px;height:44px;border-radius:12px;object-fit:cover;flex:none;background:var(--fill)}.setline{position:relative;display:flex;align-items:center;gap:8px;min-height:52px;padding:6px 4px 6px 16px}.setline:before,.addmore:before{content:"";position:absolute;left:28px;right:0;top:0;height:.5px;background:var(--sep)}.meal .setline:before{left:16px}.addmore:before{left:16px}.setmain{flex:1;min-width:0;min-height:44px;display:flex;align-items:center;gap:8px;padding:0;border:0;background:none;color:inherit;text-align:left}.setmain:disabled{opacity:1}.setline .idx{width:22px;text-align:center;font-size:15px;font-weight:600;font-variant-numeric:tabular-nums;color:var(--secondary);flex:none}.setline .load{font-weight:650;font-variant-numeric:tabular-nums;font-size:17px;letter-spacing:-.02em;white-space:nowrap}.meal .setline .load{font-size:17px}.setline .load small{font-size:13px;font-weight:500;color:var(--secondary);margin-left:2px}.setline .load em{font-style:normal;font-size:13px;font-weight:500;color:var(--tertiary);margin:0 3px}.setline.warm .load,.setline.warm .load b,.setline.warm .load small{font-weight:500;color:var(--secondary)}.spacer{flex:1}.ghost{width:44px;height:44px;color:var(--secondary);display:grid;place-items:center;flex:none}.addmore,.more-action{position:relative;width:100%;min-height:44px;display:flex;align-items:center;gap:6px;color:var(--tint);font-size:17px;font-weight:400}.addmore{justify-content:flex-start;padding:0 16px;font-size:17px}.more-action{justify-content:center;margin-top:12px;background:var(--card);border-radius:var(--radius);font-size:17px}.tag{font-size:13px;font-weight:650;border-radius:8px;padding:3px 8px;background:var(--fill);color:var(--secondary);flex:none}.tag.warm{background:#ffd60a47;color:#8a6500}.tag.drop{background:#5856d629;color:#5856d6}.tag.pend{background:#ff3b301f;color:var(--err)}.tag.uni{background:var(--tint-soft);color:var(--tint)}.is-new{animation:flash 1.1s ease}@keyframes flash{0%{background:#34c75947}to{background:transparent}}.setline.pending{opacity:.72}.empty{margin:auto;text-align:center;padding:36px 24px;color:var(--secondary)}.empty strong{display:block;color:var(--text);font-size:22px;font-weight:700;letter-spacing:-.02em;line-height:1.15}.empty p{margin:6px 0 0;font-size:15px;line-height:1.4}.empty-mark{width:64px;height:64px;margin:0 auto 14px;border-radius:32px;display:grid;place-items:center;background:var(--tint-soft);color:var(--tint)}.empty-cta{margin-top:16px;min-height:44px;padding:0 22px;border:0;border-radius:12px;background:var(--tint);color:#fff;font-size:17px;font-weight:600}.banner{display:flex;align-items:center;gap:8px;background:var(--tint-soft);border-radius:16px;padding:10px 8px 10px 14px;margin-bottom:12px;font-size:15px;line-height:1.3}.banner span{flex:1;min-width:0}.banner button{color:var(--tint);font-weight:600;min-height:40px;padding:0 8px;flex:none}.banner>svg{color:var(--ok);flex:none}.overlay{position:absolute;inset:0;z-index:20;background:transparent;overflow:hidden}.overlay.dim{z-index:30}.sheet-host{pointer-events:none}.sheet-host .sheet-dim,.sheet-host .sheet-panel,.overlay.dim .backdrop,.overlay.dim .ask{pointer-events:auto}.sheet-dim,.backdrop{position:absolute;inset:0;border:0;padding:0;background:#00000052;opacity:0}.sheet-dim:active,.backdrop:active{transform:none}.sheet-panel{position:absolute;left:0;right:0;bottom:0;top:max(10px,env(safe-area-inset-top,0px));display:flex;flex-direction:column;background:var(--bg);border-radius:28px 28px 0 0;overflow:hidden;box-shadow:inset 0 .5px #ffffff8c,0 -12px 40px #0000002e;will-change:transform;transform:translate3d(0,100%,0)}.sheet-head{position:relative;flex:none;display:grid;grid-template-columns:72px 1fr 72px;align-items:center;min-height:44px;padding:0 8px 4px;background:transparent}.sheet-head:after{content:"";position:absolute;left:0;right:0;bottom:-16px;height:16px;background:linear-gradient(var(--bg),transparent);opacity:var(--edge, 0);pointer-events:none;z-index:1}.sheet-head h2{margin:0;text-align:center;font-size:17px;font-weight:650;letter-spacing:-.02em}.sheet-head .text{color:var(--tint);font-size:17px;font-weight:400;min-height:44px;padding:0 4px;text-align:left}.sheet-head .save{font-weight:650;text-align:right}.sheet-head .text:disabled{opacity:.4}.sheet-body{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scrollbar-width:none}.sheet-body::-webkit-scrollbar{display:none}.grab{position:relative;width:36px;height:5px;border-radius:99px;background:#7878805c;margin:6px auto 2px}.grab:before{content:"";position:absolute;inset:-12px -48px -10px}.pick-sticky{position:sticky;top:0;z-index:2;background:var(--bg);padding:4px 0 8px}.part-scroll{display:flex;gap:8px;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none;padding:4px 16px 10px}.part-scroll::-webkit-scrollbar,.film::-webkit-scrollbar,.hscroll::-webkit-scrollbar{display:none}.part-chip{flex:none;width:80px;min-height:88px;padding:10px 6px;border:0;border-radius:18px;background:var(--card);color:inherit;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;font-size:15px;font-weight:650}.part-chip.on{background:var(--tint);color:#fff}.part-chip.on .badge{background:#ffffff38;color:#fff}.search{display:flex;align-items:center;gap:6px;min-height:44px;margin:0 16px;background:var(--fill);border-radius:14px;padding:0 8px 0 10px}.search svg{color:var(--secondary);flex:none}.search input{width:100%;border:0;background:transparent;font-size:17px;font-weight:400;padding:8px 0;outline:none}.search .ghost{width:32px;height:32px;color:var(--secondary)}.lbl{margin:18px 4px 6px;color:var(--secondary);font-size:13px;font-weight:400}.inset{background:var(--card);border-radius:var(--radius);overflow:hidden}.inset+.lbl,.pick-grid+.inset,.inset+.inset{margin-top:12px}.pick-card{position:relative;width:100%;display:flex;align-items:center;gap:12px;text-align:left;color:inherit;border:0;background:transparent;min-height:60px;padding:12px 16px}.pick-card+.pick-card:before{content:"";position:absolute;left:56px;right:0;top:0;height:.5px;background:var(--sep)}.pick-card strong{display:block;font-size:17px;font-weight:600;letter-spacing:-.01em}.pick-card .sub{display:block;margin-top:2px;color:var(--secondary);font-size:13px}.pick-card>svg{color:var(--tertiary);flex:none}.mini-pills{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.mini-pill{font-size:12px;font-weight:650;font-variant-numeric:tabular-nums;background:var(--fill);border-radius:999px;padding:2px 7px}.mini-pill.warm{color:var(--secondary);font-weight:600}.pick-grid{display:flex;flex-wrap:wrap;gap:8px}.pick-chip{border:0;background:var(--card);color:inherit;border-radius:999px;min-height:40px;padding:0 16px;font-size:16px;font-weight:600}.picked{display:flex;align-items:center;gap:12px;background:var(--card);border-radius:var(--radius);padding:14px}.picked h3{margin:0;font-size:22px;font-weight:700;letter-spacing:-.02em;line-height:1.15}.picked .sub{margin:4px 0 0;color:var(--secondary);font-size:13px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.kicker{margin:0;color:var(--secondary);font-size:13px;font-weight:500}.pill{margin-left:auto;flex:none;background:var(--fill);color:var(--tint);font-weight:600;font-size:15px;border-radius:999px;min-height:32px;padding:0 12px}.btn-soft,.btn,.fab,.login-go{border:0;border-radius:14px;min-height:44px;font-size:17px}.empty-cta,.fab,.login-go{border-radius:999px}.btn-soft{margin-top:12px;background:var(--tint-soft);color:var(--tint);font-weight:600}.btn{background:var(--card);color:var(--tint);font-weight:400}.btn.block,.btn-soft,.fab,.login-go{width:100%}.empty .btn-soft{width:auto;display:inline-flex;align-items:center;padding:0 18px;margin-top:16px}.btn-row{display:flex;flex-direction:row;gap:8px;margin-top:12px;background:none}.btn-row .btn{flex:1;border-radius:14px;min-height:48px;background:var(--card)}.btn.block{margin-top:12px}.fab{height:50px;background:var(--tint);color:#fff;font-weight:600;letter-spacing:-.01em;display:flex;align-items:center;justify-content:center;gap:6px}.fab:disabled,.login-go:disabled,.empty-cta:disabled{opacity:.45}.fab:active,.empty-cta:active,.login-go:active{filter:brightness(.92)}.fab.analyze{margin-top:16px}.row{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;background:var(--card);border-radius:var(--radius);padding:10px 14px;margin-top:12px;font-size:17px}.row span{line-height:1.3}.lab{display:inline-flex;align-items:center;gap:8px}.lab svg{color:var(--tint);flex:none}.mc svg{flex:none}.mc{display:inline-flex;align-items:center;gap:3px}.mc.kcal svg{color:#ff9f0a}.mc.pro svg{color:#ff375f}.mc.carb svg{color:#007aff}.mc.fat svg{color:#248a3d}.setline .macros{display:inline-flex;flex-wrap:wrap;gap:2px 8px;margin:0}.meal .setline{flex-wrap:wrap;row-gap:4px}.stat .mc{display:inline-flex}.switch{appearance:none;-webkit-appearance:none;width:51px;height:31px;border-radius:999px;background:var(--fill);position:relative;flex:none;margin:0;touch-action:manipulation;transition:background-color .2s ease-out}.switch:after{content:"";position:absolute;top:2px;left:2px;width:27px;height:27px;border-radius:50%;background:#fff;box-shadow:0 2px 6px #00000038;transition:transform .2s ease-out}.switch:checked{background:#34c759}.switch:checked:after{transform:translate(20px)}.setcard{background:var(--card);border-radius:var(--radius);padding:16px;margin-top:12px}.settop{display:flex;align-items:center;min-height:36px}.settop b{color:var(--text);font-size:17px;font-weight:650}.settop .ghost{margin-left:auto}.pair{display:flex;flex-direction:column;gap:10px}.step{display:flex;align-items:center;background:var(--fill);border-radius:18px;min-height:76px;padding:8px;gap:4px}.step-btn{width:44px;height:44px;border-radius:22px;background:var(--card);color:var(--tint);font-size:28px;font-weight:400;line-height:1}.step-val{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center}.step-val input{width:100%;border:0;background:transparent;text-align:center;font-size:32px;font-weight:700;letter-spacing:-.03em;font-variant-numeric:tabular-nums;padding:0;outline:none}.step-val span{font-size:13px;font-weight:600;color:var(--secondary)}.effort{margin-top:14px}.effort-top{display:flex;align-items:baseline;gap:8px}.effort-top span{color:var(--secondary);font-size:13px}.effort-top b{font-size:20px;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:-.02em}.effort-top em{margin-left:auto;font-style:normal;font-weight:650;color:var(--tint);font-size:15px}.effort input[type=range]{width:100%;height:40px;margin:4px 0 0;accent-color:var(--tint);touch-action:pan-y}.effort-scale{display:flex;justify-content:space-between;margin-top:4px;color:var(--secondary);font-size:13px;font-weight:600}.effort-scale .here{color:var(--tint)}.seg{display:flex;background:var(--seg);border-radius:12px;padding:3px;gap:3px;margin-top:14px}.seg button{flex:1;min-height:40px;border:0;border-radius:9px;background:transparent;color:var(--text);font-size:16px;font-weight:600}.seg button.on{background:var(--seg-on);font-weight:650;box-shadow:0 1px 3px #0000001f,0 .5px #fff6 inset}.meal-seg{margin-top:0}.meal-seg button{min-height:48px;font-size:15px}.note{width:100%;margin-top:8px;background:var(--card);border:0;border-radius:var(--radius);padding:12px 16px;font-size:17px;line-height:1.35;min-height:72px;resize:vertical}.hint{color:var(--secondary);font-size:13px;margin:10px 4px 0;line-height:1.45}.errbox,.err{color:var(--err)}.errbox{background:#ff3b301f;border-radius:var(--radius);padding:10px 12px;font-size:15px;margin-bottom:12px}.ai-note{background:var(--tint-soft);color:var(--text);border-radius:var(--radius);padding:10px 12px;font-size:15px;margin:12px 0 0;line-height:1.4}.think{margin-top:12px;background:var(--card);border-radius:var(--radius);padding:12px 14px}.think-kicker{display:flex;align-items:center;gap:8px;font-size:16px;font-weight:600}.think-kicker .spin{flex:none}.think-wait{margin-left:auto;color:var(--secondary);font-size:13px;font-weight:500;font-variant-numeric:tabular-nums}.think-label{margin:10px 0 0;font-size:12px;color:var(--secondary)}.think-log{margin-top:4px;max-height:7.2em;overflow:auto;white-space:pre-wrap;word-break:break-word;font-size:14px;line-height:1.45;color:var(--text)}.film{display:flex;gap:8px;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none;margin-top:16px;padding-bottom:2px}.film-add{position:relative;flex:none;width:104px;height:104px;border-radius:18px;background:var(--card);color:var(--tint);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;font-size:15px;font-weight:600}.file{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.ph{position:relative;flex:none;width:104px;height:104px;border-radius:18px;overflow:hidden;background:var(--fill)}.ph img{width:100%;height:100%;object-fit:cover}.ph-x{position:absolute;top:4px;right:4px;width:26px;height:26px;border:0;border-radius:13px;background:#0000008c;color:#fff;font-size:16px;line-height:1}.ph-state{position:absolute;inset:0;display:grid;place-items:center;background:#0006;color:#fff;font-size:13px;font-weight:650}input[type=time],.goal-in{border:0;background:transparent;color:var(--tint);font-size:17px;font-weight:600;text-align:right;width:5.5em}.goal-in.date{width:9.2em}.seg.body-sex{margin-top:0}.food{background:var(--card);border-radius:var(--radius);margin-top:10px;overflow:hidden}.food-top,.field-line{display:flex;align-items:center;gap:8px;min-height:44px;padding:0 8px 0 14px}.field-line{border-top:.5px solid var(--sep)}.food-top input,.field-line input{flex:1;min-width:0;border:0;background:transparent;font-size:17px;padding:10px 0;outline:none}.food-top input{font-weight:650}.field-line input{text-align:right;font-weight:600;font-variant-numeric:tabular-nums}.field-line span{color:var(--secondary);font-size:15px;flex:none}.macro-grid{display:grid;grid-template-columns:1fr 1fr;border-top:.5px solid var(--sep)}.macro-grid .field-line{border-top:0}.macro-grid .field-line:nth-child(odd){box-shadow:inset -.5px 0 0 var(--sep)}.macro-grid .field-line:nth-child(n+3){border-top:.5px solid var(--sep)}.ask{position:absolute;left:8px;right:8px;bottom:0;z-index:1;background:transparent;will-change:transform;transform:translate3d(0,110%,0);padding:0 0 calc(8px + env(safe-area-inset-bottom,0px))}.ask .grab{width:auto;height:18px;margin:0;border-radius:22px 22px 0 0;background:var(--card)}.ask .grab:after{content:"";position:absolute;left:50%;top:7px;width:36px;height:5px;transform:translate(-50%);border-radius:99px;background:#78788066}.ask h3,.ask p{margin:0;text-align:center;background:var(--card)}.ask h3{padding:2px 16px 0;font-size:13px;font-weight:600;color:var(--secondary)}.ask p{padding:2px 16px 10px;color:var(--secondary);font-size:13px;line-height:1.35}.ask-actions{background:var(--card);border-radius:0 0 22px 22px;overflow:hidden}.ask .grab+.ask-actions{border-radius:0 0 22px 22px}.ask-actions button,.ask-actions a{display:flex;width:100%;min-height:56px;align-items:center;justify-content:center;gap:8px;border:0;border-bottom:.5px solid var(--sep);background:transparent;color:var(--tint);font-size:20px;font-weight:400;text-decoration:none}.ask-actions .danger{color:var(--err)}.ask-actions :last-child{border-bottom:0}.ask-cancel{width:100%;margin-top:8px;min-height:56px;border-radius:22px;background:var(--card);font-size:20px;font-weight:650;color:var(--tint)}.toast,.syncbar{background:var(--ink);color:#fff;-webkit-backdrop-filter:saturate(160%) blur(20px);backdrop-filter:saturate(160%) blur(20px);box-shadow:inset 0 .5px #ffffff38,0 8px 24px #0000002e}.toast{position:absolute;z-index:40;top:calc(8px + env(safe-area-inset-top,0px));left:50%;transform:translate(-50%);padding:10px 16px;border-radius:999px;font-size:15px;font-weight:600;letter-spacing:-.01em;max-width:calc(100% - 32px);pointer-events:none}.syncbar{position:absolute;z-index:25;left:50%;transform:translate(-50%);bottom:calc(var(--dock) + 10px);display:flex;align-items:center;gap:8px;padding:8px 14px;border-radius:999px;font-size:13px;font-weight:650;pointer-events:none;white-space:nowrap}.syncbar.wait{opacity:.92}.syncbar .spin{border-color:#ffffff47;border-top-color:#fff}.app.sheet-open .syncbar{bottom:calc(12px + env(safe-area-inset-bottom,0px))}.app.resting .syncbar{bottom:calc(var(--dock) + 72px)}.restbar{position:absolute;z-index:6;left:12px;right:12px;bottom:calc(var(--dock) + 8px);display:flex;align-items:center;gap:6px;min-height:52px;padding:6px 8px 6px 14px;border-radius:26px;background:var(--glass);color:var(--text);-webkit-backdrop-filter:blur(24px) saturate(180%);backdrop-filter:blur(24px) saturate(180%);box-shadow:inset 0 1px 0 var(--glass-hi),inset 0 0 0 .5px var(--glass-edge),0 8px 22px #00000014}.restbar b{min-width:3.2em;display:inline-flex;align-items:center;gap:4px;font-size:22px;font-weight:700;letter-spacing:-.03em;font-variant-numeric:tabular-nums}.restbar button{border:0;border-radius:999px;min-height:36px;padding:0 10px;background:transparent;color:var(--tint);font-size:14px;font-weight:650}.restbar button.on{background:var(--tint-soft)}.stats-page{flex:1;min-height:0;overflow-y:auto;padding:calc(var(--bar-h) + 8px) 16px var(--dock);background:var(--bg)}.statpage h1{margin:0 4px 14px;font-size:34px;font-weight:700;letter-spacing:-.03em;line-height:1.05}.statblock{background:var(--card);border-radius:22px;padding:16px;margin-bottom:12px}.statblock h2{margin:0;display:flex;align-items:center;gap:6px;font-size:17px;font-weight:650;letter-spacing:-.02em;color:var(--text)}.statblock h2 svg{color:var(--secondary);flex:none}.statblock h2.h-train svg{color:#ff375f}.statblock h2.h-meal svg{color:#30d158}.statblock h2.h-best svg{color:#ff9f0a}.tilegrid h2{font-size:15px}.ringrow{display:flex;align-items:center;gap:16px;margin-top:12px}.ringrow .rings{width:132px;height:132px;flex:none}.fit-legend{flex:1;min-width:0;display:flex;flex-direction:column;gap:8px}.fit-legend p{margin:0;display:flex;flex-direction:column}.fit-legend span{display:inline-flex;align-items:center;gap:4px;font-size:13px;font-weight:600;color:var(--secondary)}.ring-i.r1{color:#ff375f}.ring-i.r2{color:#30d158}.ring-i.r3{color:#64d2ff}.fit-legend b{font-size:22px;font-weight:700;letter-spacing:-.03em;font-variant-numeric:tabular-nums;line-height:1.15}.fit-legend small{font-size:15px;font-weight:650}.fit-legend .c1,.tile-num.c1{color:#ff375f}.fit-legend .c2{color:#30d158}.fit-legend .c3,.tile-num.c3{color:#64d2ff}.tilegrid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.tilegrid .statblock{margin-bottom:12px}.tile-num{margin:8px 0 0;font-size:28px;font-weight:700;letter-spacing:-.04em;line-height:1.05}.tile-num small{font-size:15px;font-weight:650}.tilegrid .bars{height:84px;margin-top:10px}.bars i.v{background:#ff375f}.bars i.k{background:#64d2ff}.statlead{margin:8px 0 0;font-size:28px;font-weight:700;letter-spacing:-.04em}.bars{display:flex;align-items:flex-end;gap:8px;height:96px;margin:14px 0 8px}.bars div{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;height:100%;justify-content:flex-end}.bars i{display:block;width:100%;max-width:22px;border-radius:7px;background:var(--tint)}.bars span{font-size:12px;font-weight:600;color:var(--secondary)}.exscroll{display:flex;gap:8px;overflow-x:auto;margin-top:12px;scrollbar-width:none}.exscroll::-webkit-scrollbar{display:none}.exscroll button{flex:none;display:inline-flex;align-items:center;gap:5px;border:0;border-radius:999px;min-height:36px;padding:0 14px;background:var(--fill);font-size:15px;font-weight:650}.exscroll button.on{background:var(--tint);color:#fff}.chart{width:100%;height:150px;margin-top:8px;color:var(--tint)}.chart circle{fill:currentColor}.chart-scale{display:flex;justify-content:space-between;margin:0;color:var(--secondary);font-size:12px;font-weight:600}.bestlist{margin-top:8px}.bestlist div{display:grid;grid-template-columns:auto 1fr auto;gap:2px 10px;align-items:center;padding:12px 0;border-top:.5px solid var(--sep)}.bestlist .badge{grid-column:1;grid-row:1 / span 2}.bestlist b{grid-column:2;grid-row:1;font-size:17px}.bestlist span:not(.badge){grid-column:2;grid-row:2;color:var(--secondary);font-size:13px}.bestlist em{grid-column:3;grid-row:1 / span 2;align-self:center;font-style:normal;font-weight:700;font-variant-numeric:tabular-nums}body.login{--tint: #007aff;position:fixed;inset:0;overflow:auto;height:auto;min-height:var(--vvh);display:flex;align-items:center;justify-content:center;padding:calc(24px + env(safe-area-inset-top,0px)) 24px calc(24px + env(safe-area-inset-bottom,0px));background:var(--bg)}.login-box{width:100%;max-width:400px}.login-icon{width:84px;height:84px;border-radius:22%;display:block;margin:0 auto;box-shadow:0 10px 28px #0000001f}.login-box h1{margin:18px 0 4px;text-align:center;font-size:34px;font-weight:700;letter-spacing:-.022em;line-height:1.05}.login-box .muted{margin:0;text-align:center}.login-box form{margin-top:28px;display:flex;flex-direction:column;gap:12px}.login-box input[type=password]{width:100%;border:0;background:var(--card);border-radius:var(--radius);min-height:44px;padding:0 16px;text-align:left;font-size:17px}.login-go{height:50px;background:#007aff;color:#fff;font-weight:600}.login-go .spin{border-color:#ffffff59;border-top-color:#fff}.login-box .err{min-height:1.2em;margin:0;font-size:15px;text-align:center}.foot-hint{margin-top:28px!important;font-size:13px;line-height:1.4}.small{font-size:13px}.muted{color:var(--secondary)}@media(prefers-color-scheme:dark){.login-go{background:#0a84ff}.ring-track{stroke:#ffffff29}.sheet-panel{box-shadow:inset 0 .5px #ffffff29,0 -12px 40px #00000073}.switch:checked{background:#30d158}}.badge{width:32px;height:32px;border-radius:16px;display:grid;place-items:center;flex:none;background:var(--tint-soft);color:var(--tint)}.part-chip .badge{width:36px;height:36px}.badge.tone-back,.badge.tone-core{background:#5856d624;color:#5856d6}.badge.tone-legs,.badge.tone-snack{background:#34c75929;color:#248a3d}.badge.tone-shoulder,.badge.tone-sun{background:#ff9f0a2e;color:#c93400}.badge.tone-arm,.badge.tone-sunrise{background:#ff375f24;color:#d30f45}.badge.tone-cardio,.badge.tone-moon{background:#5e5ce629;color:#4f46e5}.badge.tone-full{background:#0a84ff29;color:#007aff}@media(prefers-color-scheme:dark){.badge.tone-legs,.badge.tone-snack{color:#30d158}.badge.tone-shoulder,.badge.tone-sun{color:#ffb340}.badge.tone-arm,.badge.tone-sunrise{color:#ff6482}.badge.tone-back,.badge.tone-core,.badge.tone-cardio,.badge.tone-moon{color:#c4c2ff}.badge.tone-full{color:#64d2ff}.mc.kcal svg{color:#ffb340}.mc.pro svg{color:#ff6482}.mc.carb svg{color:#64d2ff}.mc.fat svg{color:#30d158}}.loading{padding:8px 0}.loading p{text-align:center;color:var(--secondary);margin:0 0 16px;font-size:13px}.spin{width:22px;height:22px;margin:8px auto 10px;border:2.5px solid var(--fill);border-top-color:var(--tint);border-radius:50%;animation:spin .7s linear infinite}.spin.sm{width:16px;height:16px;border-width:2px;margin:0}@keyframes spin{to{transform:rotate(360deg)}}.skel-stats,.skel-card{border-radius:var(--radius);margin-top:12px;height:92px;background:linear-gradient(90deg,var(--card) 25%,var(--fill) 37%,var(--card) 63%);background-size:400% 100%;animation:shimmer 1.3s ease infinite}.skel-stats{height:72px;margin-top:0}.skel-card.short{height:64px;width:70%}@keyframes shimmer{0%{background-position:100% 0}to{background-position:0 0}}.with-ico{display:inline-flex;align-items:center;justify-content:center;gap:6px}.fab.with-ico,.btn.with-ico,.btn-soft.with-ico,.addmore.with-ico{display:flex}.grow{flex:1;min-width:0}button:active:not(:disabled):not(.sheet-dim):not(.backdrop),a:active,.film-add:active{transform:scale(.97)}.tabbar button:active{transform:none}@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))){.dock,.nav-add span,.nav-more span{background:var(--card)}.toast,.syncbar{background:var(--text);color:var(--bg)}}@media(prefers-reduced-transparency:reduce){.dock,.nav-add span,.nav-more span,.toast,.syncbar{-webkit-backdrop-filter:none;backdrop-filter:none}.dock,.nav-add span,.nav-more span{background:var(--card)}.toast,.syncbar{background:var(--text);color:var(--bg)}.sheet-dim,.backdrop{background:#000000b8}}@media(prefers-contrast:more){.summary,.stats,.excard,.sheet-panel,.part-chip,.fab,.empty-cta,.login-go,.more-action,.note,.food,.inset,.dock,.nav-add span,.nav-more span{outline:1px solid var(--text)}}.coach-wrap{min-height:100%;display:flex;flex-direction:column}.coach{flex:1;padding:12px 16px 8px;display:flex;flex-direction:column;gap:8px}.coach-edit{padding:0 16px 14px}.coach-area{width:100%;min-height:140px;border:0;border-radius:16px;background:var(--fill);padding:12px 14px;resize:vertical;line-height:1.45}.coach-log{display:flex;flex-direction:column;gap:8px}.coach-empty{margin:4px 4px 0;color:var(--secondary);font-size:15px;line-height:1.45}.bubble{max-width:100%;min-width:0;padding:12px 14px;border-radius:18px;line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere;scroll-margin-top:8px;scroll-margin-bottom:84px}.bubble.user{align-self:flex-end;max-width:82%;background:var(--tint);color:#fff;border-bottom-right-radius:6px}.bubble.coach{align-self:flex-start;background:var(--card);border-bottom-left-radius:6px}.bubble.enter{animation:coach-in .18s var(--ease-out) both}.bubble.wait{display:flex;flex-direction:column;gap:8px;min-width:min(100%,240px);animation-delay:40ms}.wait-dots{display:flex;gap:5px;height:8px;align-items:center}.wait-dots i{display:block;width:6px;height:6px;border-radius:50%;background:var(--secondary);animation:wait-dot 1.2s linear infinite}.wait-dots i:nth-child(2){animation-delay:.15s}.wait-dots i:nth-child(3){animation-delay:.3s}.wait-copy{color:var(--secondary);font-size:15px}.wait-track{height:3px;border-radius:99px;background:var(--fill);overflow:hidden}.wait-bar{display:block;height:100%;border-radius:inherit;background:var(--tint);transform-origin:left center;transform:scaleX(.06);animation:wait-fill 40s linear forwards}@keyframes coach-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes wait-dot{0%,to{opacity:.28}40%{opacity:1}}@keyframes wait-fill{0%{transform:scaleX(.06)}8%{transform:scaleX(.28)}22%{transform:scaleX(.55)}45%{transform:scaleX(.74)}to{transform:scaleX(.92)}}.note-card.fresh,.excard.fresh{animation:coach-in .2s var(--ease-out) both;animation-delay:var(--d, 0ms)}.errbox .retry{display:block;margin-top:8px;min-height:32px;padding:0;border:0;background:none;color:var(--tint);font-weight:650}.coach-chips{display:flex;flex-wrap:wrap;gap:8px}.coach-chips button,.chip{border:0;background:var(--fill);color:var(--text);border-radius:999px;min-height:36px;padding:0 12px;font-size:15px}.chip.remember{align-self:flex-start;max-width:100%;text-align:left}.coach-item{display:flex;align-items:center;gap:10px;padding:12px 16px;border-top:.5px solid var(--sep)}.coach-item h3{margin:0;font-size:17px;font-weight:650}.coach-item p{margin:2px 0 0;color:var(--secondary);font-size:15px}.coach-item .hint{font-size:13px}.coach-compose{position:sticky;bottom:0;display:flex;gap:8px;padding:8px 16px calc(8px + env(safe-area-inset-bottom,0px));background:color-mix(in srgb,var(--bg) 92%,transparent)}.coach-compose input{flex:1;min-width:0;height:44px;border:0;border-radius:22px;background:var(--card);padding:0 16px}.coach-compose button{flex:none;height:44px;padding:0 16px;border:0;border-radius:22px;background:var(--tint);color:#fff;font-weight:650}.coach-compose button:disabled{opacity:.45}.coach-sum{white-space:pre-wrap}.coach-sum .cap{margin:0 0 8px}.coach-sum>p{margin:0}.coach-sync{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin-top:10px;color:var(--secondary);font-size:13px}.coach-sync button,.coach-sync a{color:var(--tint);font-weight:600;background:none;border:0;padding:0;min-height:32px}.empty .coach-ask{display:flex;width:fit-content;margin:12px auto 0}@media(prefers-reduced-motion:reduce){.spin,.skel-stats,.skel-card,.is-new,.ring{animation:none;transition:none}.chrome{transform:none;border-radius:0}button,a,.film-add,.switch,.switch:after{transition:none}button:active,a:active,.film-add:active{transform:none}.bubble.enter,.note-card.fresh,.excard.fresh,.wait-dots i,.wait-bar{animation:none}.wait-dots i{opacity:.7}.wait-bar{transform:scaleX(.45)}}
