.fn-shell{background:var(--bg);min-height:100dvh}.fn-shell.is-ink{background:var(--ink)}.fn-shell.is-ink .fn-shell-topbar{background:linear-gradient(to bottom, var(--ink) 0%, var(--ink) 62%, transparent 100%)}.fn-shell.is-ink .fn-shell-back{background:var(--ink-panel-raised);border:1px solid var(--ink-hairline);box-shadow:none;color:var(--ink-text-primary)}.fn-shell-topbar{z-index:40;pointer-events:none;background:linear-gradient(to bottom, var(--bg) 0%, var(--bg) 62%, transparent 100%);padding-top:env(safe-area-inset-top);position:fixed;top:0;left:0;right:0}.fn-shell-topbar-inner{max-width:560px;height:var(--fn-topbar);align-items:center;margin:0 auto;padding:0 20px;display:flex}.fn-shell-topbar-inner>*{pointer-events:auto}.fn-shell-topbar-inner>.fn-shell-flex,.fn-shell-topbar-inner>.fn-shell-back-slot{pointer-events:none}.fn-shell-back{background:var(--surface);width:38px;height:38px;box-shadow:var(--shadow-soft);color:var(--ink);cursor:pointer;border:none;border-radius:999px;place-items:center;padding:0;transition:transform .11s ease-out;display:grid}.fn-shell-back:active{transform:scale(.94)}.fn-shell-back-slot{width:38px}.fn-shell-flex{flex:1}.fn-shell-page{max-width:560px;padding:calc(var(--fn-topbar) + env(safe-area-inset-top)) 20px 0;align-content:start;gap:24px;margin:0 auto;display:grid}
.fn-tile{text-align:left;background:var(--surface);width:100%;box-shadow:var(--shadow-soft);cursor:pointer;border:none;border-radius:18px;align-items:center;gap:12px;margin:0 0 12px;padding:16px;transition:background .2s ease-out,box-shadow .2s ease-out,color .2s ease-out,transform .11s ease-out;display:flex}.fn-tile:last-child{margin-bottom:0}.fn-tile:active:not(:disabled){transform:scale(.99)}.fn-tile:disabled{cursor:default;opacity:.55}.fn-tile.on{background:var(--ink);box-shadow:var(--shadow-selected)}.fn-tile .mid{flex:1;min-width:0}.fn-tile .t{font:700 19px/1.25 var(--body);letter-spacing:-.38px;color:var(--ink);transition:color .2s ease-out;display:block}.fn-tile.on .t{color:#fff}.fn-tile .s{font:500 14px/1.4 var(--body);letter-spacing:-.07px;color:var(--ink-3);margin-top:4px;transition:color .2s ease-out;display:block}.fn-tile.on .s{color:#ffffffb3}.fn-tile .chip{background:var(--surface-2);width:40px;height:40px;font:600 12px var(--mono);letter-spacing:.96px;color:var(--ink);border-radius:18px;flex:none;place-items:center;transition:background .2s ease-out,color .2s ease-out;display:grid}.fn-tile.on .chip{background:var(--overlay-white-light);color:#fff}.fn-tile .radio{border:1.5px solid var(--surface-3);border-radius:999px;flex:none;width:26px;height:26px;transition:border-color .2s ease-out}.fn-tile.on .radio{border:2px solid #fff;place-items:center;display:grid}.fn-tile.on .radio:after{content:"";background:#fff;border-radius:999px;width:12px;height:12px}.fn-tile .check{border:1.5px solid var(--surface-3);border-radius:10px;flex:none;place-items:center;width:26px;height:26px;transition:background .2s ease-out,border-color .2s ease-out;display:grid}.fn-tile.on .check{background:#fff;border:2px solid #fff}.fn-tile .chev{flex:none;place-items:center;display:grid}
.fn-ssel-g10 .fn-tile{margin-bottom:10px}.fn-ssel-g10 .fn-tile:last-child{margin-bottom:0}
.flog-root{max-width:560px;min-height:100dvh;padding:env(safe-area-inset-top) 20px 20px;flex-direction:column;margin:0 auto;display:flex}.flog-topbar{height:var(--fn-topbar);flex:0 0 var(--fn-topbar);align-items:center;display:flex}.flog-topbar-tray{margin-left:auto}.flog-back{background:var(--surface);width:38px;height:38px;box-shadow:var(--shadow-soft);color:var(--ink);cursor:pointer;border:none;border-radius:999px;place-items:center;padding:0;transition:transform .11s ease-out;display:grid}.flog-back:active{transform:scale(.94)}.flog-fade{animation:.2s ease-out both flogFadeIn}@keyframes flogFadeIn{0%{opacity:0}to{opacity:1}}.flog-entry{flex-direction:column;flex:1;min-height:0;display:flex}.flog-kick,.flog-sub{opacity:1;max-height:80px;transition:max-height .24s ease-out,opacity .24s ease-out,margin .24s ease-out;overflow:hidden}.flog-kick{margin:0 0 12px;display:block}.flog-sub{margin:12px 0 0}.flog-head.is-collapsed .flog-kick,.flog-head.is-collapsed .flog-sub{opacity:0;max-height:0;margin:0}.flog-head.is-collapsed .flog-kick{visibility:hidden}.flog-title{margin:0;transition:font-size .24s ease-out,letter-spacing .24s ease-out,line-height .24s ease-out}.flog-head.is-collapsed .flog-title{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.flog-ways{margin-top:24px;transition:opacity .24s ease-out}.flog-ways.is-hidden{opacity:0;pointer-events:none}.flog-ways-label{margin-bottom:10px;display:block}.flog-way{text-align:left;background:var(--surface);width:100%;box-shadow:var(--shadow-soft);cursor:pointer;border:none;border-radius:22px;align-items:center;gap:13px;padding:13px 16px;transition:transform .12s ease-out,opacity .18s ease-out;display:flex}.flog-way:active:not(:disabled){transform:scale(.98)}.flog-way:disabled{opacity:.49;cursor:default}.flog-way+.flog-way{margin-top:8px}.flog-way-idx{background:var(--brand-soft);width:30px;height:30px;color:var(--brand-deep);font:600 10px/1 var(--mono);letter-spacing:.6px;border-radius:999px;flex:0 0 30px;place-items:center;display:grid}.flog-way-sub{margin-top:2px;display:block}.flog-bottom{margin-top:auto;padding-top:16px;position:sticky;bottom:20px}.flog-notice{background:var(--warn-bg);border-radius:22px;margin-bottom:12px;padding:16px}.flog-notice-title{color:var(--warn)}.flog-notice-body{color:var(--ink-2);margin-top:3px;display:block}.flog-photo-strip{background:var(--surface);box-shadow:var(--shadow-soft);border-radius:22px;align-items:center;gap:12px;margin-bottom:12px;padding:10px;display:flex}.flog-photo-thumb{object-fit:cover;background:var(--surface-2);border-radius:14px;width:52px;height:52px}.flog-photo-name{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.flog-suggest{scrollbar-width:none;gap:8px;margin-bottom:12px;display:flex;overflow-x:auto}.flog-suggest::-webkit-scrollbar{display:none}.flog-pill{background:var(--surface);border:1px solid var(--surface-2);height:36px;font:500 14px/1 var(--body);letter-spacing:-.07px;color:var(--ink);cursor:pointer;border-radius:999px;flex:none;align-items:center;gap:6px;padding:0 14px;transition:transform .12s ease-out;display:inline-flex}.flog-pill:active{transform:scale(.96)}.flog-rail{grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px;display:grid}.flog-rail-chip{border:1px solid var(--surface-2);background:var(--surface);box-shadow:var(--shadow-soft);color:var(--ink);cursor:pointer;border-radius:999px;flex-direction:column;align-items:center;gap:4px;padding:12px 0;transition:transform .12s ease-out;display:flex}.flog-rail-chip:active:not(:disabled){transform:scale(.96)}.flog-rail-chip:disabled{opacity:.49;cursor:default}.flog-rail-chip .fn-mono-xs{color:var(--ink)}.flog-rail-chip svg{color:var(--ink-2)}.flog-rail-chip.is-active{background:var(--ink);border-color:var(--ink);box-shadow:var(--shadow-selected)}.flog-rail-chip.is-active svg,.flog-rail-chip.is-active .fn-mono-xs{color:#fff}.flog-inputbar{background:var(--surface);border:1px solid var(--surface-2);box-shadow:var(--shadow-hero-app);border-radius:28px;align-items:flex-end;padding:6px 6px 6px 18px;display:flex}.flog-inputbar textarea{resize:none;min-width:0;font:500 16px/1.4 var(--body);letter-spacing:-.15px;color:var(--ink);background:0 0;border:none;outline:none;flex:1;max-height:5.6em;padding:12px 8px 12px 0}.flog-inputbar textarea::placeholder{color:var(--ink-3)}.flog-circles{gap:8px;display:flex}.flog-circle{cursor:pointer;background:var(--surface-2);width:44px;height:44px;color:var(--ink);border:none;border-radius:999px;place-items:center;transition:transform .12s ease-out,background .18s ease-out,opacity .18s ease-out;display:grid}.flog-circle:active:not(:disabled){transform:scale(.92)}.flog-circle:disabled{opacity:.49;cursor:default}.flog-circle.is-send{background:var(--ink);color:#fff;box-shadow:var(--shadow-ink-app)}.flog-circle.is-sm{width:36px;height:36px}.flog-turnstile{justify-content:center;margin-top:12px;display:flex}.flog-processing{text-align:center;padding-bottom:var(--fn-topbar);flex-direction:column;flex:1;justify-content:center;display:flex}.flog-squircle{background:var(--surface);width:74px;height:74px;box-shadow:var(--shadow-hero-app);border-radius:22px;place-items:center;margin:0 auto 18px;animation:.9s ease-in-out infinite alternate flogBreathe;display:grid}@keyframes flogBreathe{0%{transform:scale(1)}to{transform:scale(1.06)}}.flog-proc-title{margin:0}.flog-proc-sub{color:var(--ink-3);margin:6px 0 0}.flog-skel-card{background:var(--surface);box-shadow:var(--shadow-hero-app);text-align:left;border-radius:26px;margin-top:22px;padding:18px}.flog-skel-row{align-items:center;gap:14px;display:flex}.flog-skel-row+.flog-skel-row{margin-top:14px}.flog-skel-main{flex:1;min-width:0}.flog-skel-title{background:var(--surface-2);border-radius:6px;height:13px}.flog-skel-pills{gap:8px;margin-top:8px;display:flex}.flog-skel-pill{background:var(--surface-2);border-radius:999px;width:34px;height:16px}.flog-skel-thumb{background:var(--surface-2);border-radius:14px;flex:0 0 52px;width:52px;height:52px}.flog-result{padding-bottom:var(--fn-cta-h,94px);flex:1}.flog-result-intro{margin-bottom:24px}.flog-card{background:var(--surface);box-shadow:var(--shadow-hero-app);border-radius:26px}.flog-card-head{align-items:baseline;gap:10px;padding:16px 18px;display:flex}.flog-card-title{-webkit-line-clamp:2;-webkit-box-orient:vertical;flex:1;min-width:0;display:-webkit-box;overflow:hidden}.flog-kcal-cluster{white-space:nowrap;align-items:baseline;display:flex}.flog-kcal{font:800 24px/1 var(--disp);letter-spacing:-.72px;color:var(--ink)}.flog-cal{margin-left:3px}.flog-card-foot{border-top:1px solid var(--surface-2);justify-content:space-between;align-items:center;padding:13px 18px;display:flex}.flog-macros{gap:14px;display:flex}.flog-macro{align-items:center;gap:4px;display:flex}.flog-macro-val{color:var(--ink-2)}.flog-dot{width:18px;height:18px;font:600 10px/1 var(--mono);color:#fff;border-radius:999px;place-items:center;display:grid}.flog-dot.is-p{background:var(--macro-protein)}.flog-dot.is-c{background:var(--macro-carb)}.flog-dot.is-f{background:var(--macro-fat)}.flog-insight{background:var(--ink);color:#fff;border-radius:22px;margin-top:12px;padding:16px 18px}.flog-insight-label{color:var(--ink-text-secondary);margin-bottom:8px;display:block}.flog-insight-title{font:700 19px/1.25 var(--body);letter-spacing:-.38px;color:#fff;margin:0 0 6px}.flog-insight-body{font:500 17px/1.35 var(--body);letter-spacing:-.085px;margin:0}.flog-seg-h1{color:#fff}.flog-seg-h1C{color:var(--brand)}.flog-seg-h2{color:#ffffffb3}.flog-shimmer{position:relative;overflow:hidden}.flog-shimmer:after{content:"";background:linear-gradient(100deg,#0000 30%,#ffffff1a 50%,#0000 70%);animation:2s linear infinite flogSweep;position:absolute;inset:0;transform:translate(-100%)}@keyframes flogSweep{to{transform:translate(100%)}}.flog-shim-bar{background:#ffffff29;border-radius:6px;height:11px;margin:0 0 8px}.flog-shim-bar:first-child{margin-bottom:10px}.flog-shim-bar:last-child{margin-bottom:0}.flog-logas{margin:20px 0 10px;display:block}.flog-chips{flex-wrap:wrap;gap:8px;display:flex}.flog-mealchip{cursor:pointer;background:var(--surface);box-shadow:var(--shadow-soft);font:600 15px/1.35 var(--body);letter-spacing:-.15px;color:var(--ink);border:none;border-radius:999px;align-items:center;gap:6px;padding:10px 16px;transition:background .15s ease-out,color .15s ease-out,transform .12s ease-out;display:inline-flex}.flog-mealchip:active{transform:scale(.96)}.flog-mealchip.is-sel{background:var(--ink);color:#fff}.flog-failed{text-align:center;padding-bottom:var(--fn-topbar);flex-direction:column;flex:1;justify-content:center;align-items:center;display:flex}.flog-failed-title{margin:12px 0 0}.flog-failed-sub{color:var(--ink-3);margin:8px 0 0}.flog-retry{background:var(--ink);color:#fff;height:52px;font:700 18px/1 var(--body);letter-spacing:-.27px;box-shadow:var(--shadow-ink-app);cursor:pointer;border:none;border-radius:999px;margin-top:16px;padding:0 28px;transition:transform .17s ease-out,opacity .17s ease-out}.flog-retry:active{opacity:.92;transition-duration:.11s;transform:scale(.96)}@media (prefers-reduced-motion:reduce){.flog-fade,.flog-squircle,.flog-shimmer:after{animation:none}.flog-kick,.flog-sub,.flog-title,.flog-ways{transition:none}}
.fn-streak-body{text-align:center;justify-items:center;display:grid}.fn-streak-hero{background:var(--brand-soft);border-radius:50%;justify-content:center;align-items:center;width:150px;height:150px;animation:.32s cubic-bezier(.34,1.56,.64,1) both fn-streak-enter;display:inline-flex;overflow:hidden}@keyframes fn-streak-enter{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.fn-streak-flame-outer{transform-origin:50% 88%;animation:1.8s ease-in-out infinite fn-streak-flicker}.fn-streak-flame-inner{transform-origin:50% 92%;animation:1.4s ease-in-out infinite reverse fn-streak-flicker}@keyframes fn-streak-flicker{0%,to{transform:scale(1)rotate(0)}30%{transform:scaleX(.965)scaleY(1.035)rotate(-1.2deg)}60%{transform:scaleX(1.03)scaleY(.975)rotate(.8deg)}80%{transform:scaleX(.985)scaleY(1.015)rotate(-.5deg)}}.fn-streak-kicker{margin-top:18px}.fn-streak-copy{margin:18px 0 0}.fn-streak-week{justify-content:center;gap:10px;margin-top:24px;display:flex}.fn-streak-day{flex-direction:column;align-items:center;gap:7px;display:flex}.fn-streak-dot{background:var(--brand-soft);border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.fn-streak-day .fn-mono-xs{color:var(--ink-4)}.fn-streak-day.is-today .fn-streak-dot{background:var(--ink)}.fn-streak-day.is-today .fn-mono-xs{color:var(--ink)}@media (prefers-reduced-motion:reduce){.fn-streak-hero,.fn-streak-flame-outer,.fn-streak-flame-inner{animation:none}}
.fn-wheel-col{position:relative}.fn-wheel-band{background:var(--surface);height:80px;box-shadow:var(--shadow-soft);border-radius:999px;position:absolute;top:50%;left:24px;right:24px;transform:translateY(-50%)}.fn-wheel-list{scroll-snap-type:y mandatory;overscroll-behavior-y:auto;overscroll-behavior-x:contain;scrollbar-width:none;height:100%;margin:0;padding-inline:0;list-style:none;position:relative;overflow-y:auto}.fn-wheel-list::-webkit-scrollbar{display:none}.fn-wheel-list:focus-visible{outline:2px solid var(--brand);outline-offset:-2px;border-radius:18px}.fn-wheel-item{scroll-snap-align:center;cursor:pointer;font-family:var(--disp);letter-spacing:-.72px;color:var(--ink-4);place-items:center;font-size:24px;font-weight:800;line-height:1;transition:font-size .12s ease-out,letter-spacing .12s ease-out,color .12s ease-out;display:grid}.fn-wheel-item[data-d="1"]{color:var(--ink-3)}.fn-wheel-item[data-d="0"]{letter-spacing:-1.98px;color:var(--ink);font-size:44px}.fn-wheel-col.md .fn-wheel-item{letter-spacing:-.91px;color:var(--ink-4);font-size:26px}.fn-wheel-col.md .fn-wheel-item[data-d="1"]{color:var(--ink-4)}.fn-wheel-col.md .fn-wheel-item[data-d="0"]{letter-spacing:-1.2px;color:var(--ink);font-size:30px}.fn-wheel-fade{pointer-events:none;background:linear-gradient(to bottom, var(--bg) 0%, transparent 22%, transparent 78%, var(--bg) 100%);position:absolute;inset:0}.fn-wheel-unit{text-align:center;font:600 12px/1.5 var(--mono);letter-spacing:.96px;text-transform:uppercase;color:var(--ink-3);margin-top:18px}@media (prefers-reduced-motion:reduce){.fn-wheel-item{transition:none}}
.fn-age-wheel{width:min(360px,100%);margin-inline:auto}
.fn-seg{background:var(--surface-2);border-radius:999px;padding:4px;display:inline-flex}.fn-unit-toggle{justify-content:center;margin-bottom:8px;display:flex}.fn-seg button{font:600 15px var(--body);letter-spacing:-.15px;color:var(--ink-3);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:999px;padding:9px 20px;transition:color .2s ease-out,background .2s ease-out,box-shadow .2s ease-out,transform .11s ease-out}.fn-seg button:active{transform:scale(.97)}.fn-seg button.on{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-soft)}
.fn-hgt-wheel{width:min(360px,100%);margin-inline:auto}
.fn-wheel-wp{width:100%;position:relative}.fn-wheel-wp-band{background:var(--surface);height:80px;box-shadow:var(--shadow-soft);border-radius:999px;position:absolute;top:50%;left:24px;right:24px;transform:translateY(-50%)}.fn-wheel-wp-row{justify-content:center;align-items:center;height:100%;display:flex;position:relative}.fn-wheel-wp-dot{font-family:var(--disp);letter-spacing:-1.98px;color:var(--ink);font-size:44px;font-weight:800;line-height:1}.fn-wheel-wp-unit{font:600 12px/1.5 var(--mono);letter-spacing:.96px;color:var(--ink-3);margin-left:8px;transform:translateY(6px)}.fn-wheel-wp-fade{pointer-events:none;background:linear-gradient(to bottom, var(--bg) 0%, transparent 22%, transparent 78%, var(--bg) 100%);position:absolute;inset:0}
.fn-bmi{width:100%}.fn-bmi-kicker{margin-bottom:6px}.fn-bmi-value-row{align-items:baseline;gap:8px;margin-bottom:12px;display:flex}.fn-bmi-value{font-family:var(--disp);letter-spacing:-2.6px;color:var(--ink);font-size:40px;font-weight:800;line-height:.94}.fn-bmi-zone{font:600 15px/1.35 var(--body);letter-spacing:-.15px}.fn-bmi-marker-row{height:30px;margin-bottom:4px;position:relative}.fn-bmi-marker{width:48px;transition:left .12s ease-out;position:absolute;top:0}.fn-bmi-marker-pill{background:var(--ink);text-align:center;font:600 11px/19px var(--mono);letter-spacing:.66px;color:#fff;border-radius:999px;padding:3px 0}.fn-bmi-marker-pill.pulse{animation:.24s ease-out fn-bmi-pulse}@keyframes fn-bmi-pulse{50%{transform:scale(1.08)}}.fn-bmi-marker-tri{border-left:5px solid #0000;border-right:5px solid #0000;border-top:5px solid var(--ink);width:0;height:0;margin:0 auto}.fn-bmi-bar{border-radius:999px;gap:2px;height:14px;display:flex;overflow:hidden}.fn-bmi-bar>div{flex-basis:0;transition:opacity .15s ease-out}.fn-bmi-legend{gap:2px;margin-top:8px;display:flex}.fn-bmi-legend>div{text-align:left;flex-basis:0;min-width:0}.fn-bmi-legend-label{font:600 10px/1.5 var(--mono);letter-spacing:.6px;white-space:nowrap}.fn-bmi-legend-range{font:600 10px/1.5 var(--mono);letter-spacing:.6px;color:var(--ink-4);white-space:nowrap}.fn-bmi-sentence{font:500 14px/1.4 var(--body);letter-spacing:-.07px;color:var(--ink-2);margin:12px 0 0}@media (prefers-reduced-motion:reduce){.fn-bmi-marker,.fn-bmi-bar>div{transition:none}.fn-bmi-marker-pill.pulse{animation:none}}
