{"id":1965,"date":"2026-08-25T13:40:25","date_gmt":"2026-08-25T13:40:25","guid":{"rendered":"https:\/\/lean-app.com\/calculateur-macros\/"},"modified":"2026-08-25T13:40:27","modified_gmt":"2026-08-25T13:40:27","slug":"calculateur-macros","status":"publish","type":"post","link":"https:\/\/lean-app.com\/en\/calculateur-macros\/","title":{"rendered":"Calculateur de macros : ta r\u00e9partition prot\u00e9ines, glucides, lipides"},"content":{"rendered":"<link rel=\"preload\" as=\"image\" href=\"https:\/\/lean-app.com\/wp-content\/uploads\/2026\/05\/lvm-screen_depense.webp\" fetchpriority=\"low\">\n<link rel=\"preload\" as=\"image\" href=\"https:\/\/lean-app.com\/wp-content\/uploads\/2026\/05\/lvm-screen_bilan.webp\" fetchpriority=\"low\">\n<link rel=\"preload\" as=\"image\" href=\"https:\/\/lean-app.com\/wp-content\/uploads\/2026\/05\/lvm-screen_kcal.webp\" fetchpriority=\"low\">\n<link rel=\"preload\" as=\"image\" href=\"https:\/\/lean-app.com\/wp-content\/uploads\/2026\/05\/lvm-screen_strategie.webp\" fetchpriority=\"low\">\n<link rel=\"preload\" as=\"image\" href=\"https:\/\/lean-app.com\/wp-content\/uploads\/2026\/05\/lvm-screen_BMR.webp\" fetchpriority=\"low\">\n<link rel=\"preload\" as=\"image\" href=\"https:\/\/lean-app.com\/wp-content\/uploads\/2026\/05\/lvm-screen_NEAT.webp\" fetchpriority=\"low\">\n<link rel=\"preload\" as=\"image\" href=\"https:\/\/lean-app.com\/wp-content\/uploads\/2026\/05\/lvm-screen_EAT.webp\" fetchpriority=\"low\">\n<link rel=\"preload\" as=\"image\" href=\"https:\/\/lean-app.com\/wp-content\/uploads\/2026\/05\/lvm-screen_TEF.webp\" fetchpriority=\"low\">\n<style id=\"lvm-shell-styles\">#lvm-shell{\n  --bg:#FFFFFF; --paper:#F7F6F2; --paper-2:#F1EFE7;\n  --ink:#0E0E10; --ink-2:#1D1D1F; --muted:#6E6E73; --dim:#86868B;\n  --rule:#E8E6DF; --rule-soft:#EFEDE5;\n  --pink:#FF2D6E; --pink-soft:rgba(255,45,110,0.06);\n  --mfp:#A8A192;\n  --green:#0F8F5C; --red:#D02E2E; --amber:#C8A019;\n  --font-display:-apple-system,\"SF Pro Display\",system-ui,\"Helvetica Neue\",sans-serif;\n  --font-text:-apple-system,\"SF Pro Text\",system-ui,sans-serif;\n  --font-mono:ui-monospace,\"SF Mono\",Menlo,Consolas,monospace;\n}\n#lvm-shell *{box-sizing:border-box;-webkit-text-size-adjust:100%}\n#lvm-shell, #lvm-shell{margin:0;padding:0;background:var(--bg);color:var(--ink-2);font-family:var(--font-text);font-size:17px;line-height:1.7;-webkit-font-smoothing:antialiased}\n#lvm-shell ::selection{background:rgba(255,45,110,0.18);color:var(--ink)}\n#lvm-shell img{max-width:100%;display:block}\n#lvm-shell a{color:inherit}\n\n#lvm-shell .progress{position:fixed;top:0;left:0;right:0;height:2px;background:transparent;z-index:1000}\n#lvm-shell .progress > i{display:block;height:100%;width:100%;background:var(--pink);transform-origin:0 50%;transform:scaleX(0);transition:transform .05s linear}\n\n#lvm-shell .nav{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.86);backdrop-filter:saturate(180%) blur(14px);-webkit-backdrop-filter:saturate(180%) blur(14px);border-bottom:1px solid var(--rule)}\n#lvm-shell .nav-row{max-width:1160px;margin:0 auto;display:flex;align-items:center;gap:14px;padding:10px 22px}\n#lvm-shell .nav-brand{display:flex;align-items:center;gap:9px;text-decoration:none;color:var(--ink)}\n#lvm-shell .nav-brand img{width:28px;height:28px;border-radius:7px;object-fit:cover}\n#lvm-shell .nav-brand span{font-family:var(--font-display);font-weight:600;font-size:18px;letter-spacing:-.01em}\n#lvm-shell .nav-spacer{flex:1}\n#lvm-shell .nav-link{color:var(--muted);text-decoration:none;font-size:14px}\n#lvm-shell .nav-link:hover{color:var(--ink)}\n#lvm-shell .nav-stores{display:flex;gap:6px;align-items:center}\n#lvm-shell .nav-stores a{display:block;line-height:0}\n#lvm-shell .nav-stores img{height:28px;width:auto;border-radius:5px;transition:transform .15s}\n#lvm-shell .nav-stores a:hover img{transform:translateY(-1px)}\n\n#lvm-shell .wrap{max-width:760px;margin:0 auto;padding:0 28px}\n\n#lvm-shell .hero{padding:54px 0 0}\n#lvm-shell .crumb{font-size:13px;color:var(--muted);margin-bottom:18px}\n#lvm-shell .crumb a{text-decoration:none;color:var(--muted)}\n#lvm-shell .crumb a:hover{color:var(--ink)}\n#lvm-shell .eyebrow{font-family:var(--font-mono);font-size:12px;font-weight:500;text-transform:uppercase;letter-spacing:.06em;color:var(--pink);margin-bottom:18px}\n#lvm-shell h1{font-family:var(--font-display);font-weight:600;font-size:72px;line-height:1.0;letter-spacing:-.04em;color:var(--ink);margin:0 0 22px}\n#lvm-shell h1 .alt{display:block;font-weight:500;color:var(--muted);font-size:.66em;line-height:1.15;margin-top:14px;letter-spacing:-.03em}\n#lvm-shell .dek{font-family:var(--font-display);font-size:24px;line-height:1.4;font-weight:400;color:var(--ink-2);letter-spacing:-.015em;margin:0 0 22px;max-width:680px}\n\n#lvm-shell .byline{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--muted);margin-bottom:14px}\n#lvm-shell .byline .by-logo{width:26px;height:26px;border-radius:6px;object-fit:cover;flex-shrink:0;background:transparent;border:0}\n#lvm-shell .byline strong{color:var(--ink);font-weight:600;font-family:var(--font-display)}\n\n#lvm-shell .hero-stores{display:flex;gap:10px;margin:22px 0 18px;flex-wrap:wrap;align-items:center}\n#lvm-shell .hero-stores a{display:block;line-height:0;transition:transform .15s}\n#lvm-shell .hero-stores a:hover{transform:translateY(-2px)}\n#lvm-shell .hero-stores img{height:46px;width:auto;border-radius:9px}\n#lvm-shell .hero-stores .or{font-size:13px;color:var(--muted)}\n\n#lvm-shell .hero-bottom{display:grid;grid-template-columns:1.3fr 1fr;gap:48px;align-items:center;margin:38px 0 60px;padding-top:28px;border-top:1px solid var(--rule-soft)}\n#lvm-shell .hero-lead{font-family:var(--font-display);font-size:21px;line-height:1.5;color:var(--ink-2);font-weight:400}\n\n#lvm-shell .phone-wrap{display:flex;justify-content:center}\n#lvm-shell .phone{\n  position:relative;\n  width:280px;\n  background:linear-gradient(145deg,#2a2a2a,#0e0e0e);\n  border-radius:42px;\n  padding:5px;\n  border:1.5px solid rgba(255,255,255,.07);\n  box-shadow:0 30px 60px rgba(0,0,0,.18), 0 2px 6px rgba(0,0,0,.08);\n}\n#lvm-shell .phone .notch{\n  position:absolute;top:0;left:50%;transform:translateX(-50%);\n  width:96px;height:24px;background:#0a0a0a;border-radius:0 0 16px 16px;z-index:10;\n}\n#lvm-shell .phone-screen{\n  position:relative;\n  border-radius:34px;overflow:hidden;\n  background:#FAF0E6;\n  aspect-ratio:9\/19.5;\n}\n#lvm-shell .phone-screen img{\n  width:100%;height:100%;object-fit:cover;display:block;\n  transition:opacity .28s ease;\n}\n#lvm-shell .phone-zones{position:absolute;inset:0;z-index:15;pointer-events:none}\n#lvm-shell .phone-zones .z{position:absolute;left:4%;right:4%;cursor:pointer;background:transparent;border:0;padding:0;pointer-events:auto}\n#lvm-shell .phone-zones .z:focus-visible{outline:2px solid var(--pink);outline-offset:-4px;border-radius:6px}\n#lvm-shell .phone-navbar{position:absolute;left:0;right:0;bottom:0;height:9%;z-index:16;display:grid;grid-template-columns:repeat(4,1fr)}\n#lvm-shell .phone-navbar button{background:transparent;border:0;padding:0;cursor:pointer}\n#lvm-shell .phone-navbar button:focus-visible{outline:2px solid var(--pink);outline-offset:-3px;border-radius:6px}\n#lvm-shell .phone-back{\n  position:absolute;top:10px;left:10px;z-index:20;\n  width:30px;height:30px;border-radius:50%;\n  border:0;background:rgba(255,255,255,.78);backdrop-filter:blur(8px);\n  color:var(--ink);font-size:18px;font-weight:600;line-height:1;cursor:pointer;\n  display:none;align-items:center;justify-content:center;\n  box-shadow:0 2px 6px rgba(0,0,0,.12);\n}\n#lvm-shell .phone-back.on{display:flex}\n\n#lvm-shell .phone-cap{margin-top:14px;text-align:center;font-size:12px;color:var(--muted);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em}\n#lvm-shell .phone-stage{position:relative}\n#lvm-shell .tap-hint{position:absolute;z-index:30;pointer-events:none;animation:hintFloat 2.6s ease-in-out infinite}\n#lvm-shell .tap-hint .th-pill{display:inline-block;font-family:var(--font-display);font-size:15px;font-weight:600;color:#fff;line-height:1.25;letter-spacing:-.005em;background:var(--pink);padding:10px 16px;border-radius:14px;box-shadow:0 14px 32px rgba(255,45,110,.32);white-space:nowrap}\n#lvm-shell .tap-hint .th-pill small{display:block;font-size:11px;font-weight:500;color:rgba(255,255,255,.85);text-transform:uppercase;letter-spacing:.08em;margin-bottom:3px}\n#lvm-shell .tap-hint .th-arrow{position:absolute;color:var(--pink)}\n#lvm-shell .tap-hint.desktop{left:-204px;top:4px;text-align:right}\n#lvm-shell .tap-hint.desktop .th-arrow{right:-86px;top:58px;width:104px;height:34px;transform:none}\n#lvm-shell .tap-hint.mobile{display:none}\n#lvm-shell .tap-hint.hidden{opacity:0;transform:translateY(-6px);transition:opacity .35s ease, transform .35s ease;animation:none}\n@keyframes hintFloat{\n  0%, 100%{transform:translateY(0)}\n  50%{transform:translateY(-7px)}\n}\n@media (prefers-reduced-motion:reduce){#lvm-shell .tap-hint{animation:none}}\n#lvm-shell .phone-tabs{display:flex;justify-content:center;gap:8px;margin-top:10px;flex-wrap:nowrap}\n#lvm-shell .phone-tabs button{\n  background:transparent;border:1px solid var(--rule);color:var(--muted);\n  padding:6px 11px;border-radius:999px;font-size:11px;cursor:pointer;\n  font-family:var(--font-text);transition:all .15s;white-space:nowrap;\n}\n#lvm-shell .phone-tabs button:hover{color:var(--ink);border-color:var(--ink)}\n#lvm-shell .phone-tabs button.on{background:var(--ink);color:#fff;border-color:var(--ink)}\n\n#lvm-shell .snippet{background:var(--paper);border-radius:18px;padding:30px 32px;margin:48px 0 0;border:1px solid var(--rule-soft)}\n#lvm-shell .snippet .lbl{font-family:var(--font-mono);font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:14px}\n#lvm-shell .snippet p{margin:0;font-family:var(--font-display);font-size:21px;line-height:1.45;color:var(--ink);font-weight:500;letter-spacing:-.012em}\n\n#lvm-shell section{padding:64px 0;border-bottom:1px solid var(--rule-soft)}\n#lvm-shell section:last-of-type{border-bottom:0}\n#lvm-shell .section-label{display:flex;align-items:center;gap:14px;margin-bottom:30px}\n#lvm-shell .section-label .bar{width:24px;height:1px;background:var(--pink)}\n#lvm-shell .section-label .num{font-family:var(--font-mono);font-size:12px;font-weight:500;text-transform:uppercase;letter-spacing:.06em;color:var(--pink)}\n#lvm-shell h2{font-family:var(--font-display);font-weight:600;font-size:48px;line-height:1.05;letter-spacing:-.035em;color:var(--ink);margin:0 0 24px}\n#lvm-shell h3{font-family:var(--font-display);font-weight:600;font-size:32px;line-height:1.15;letter-spacing:-.025em;color:var(--ink);margin:36px 0 16px}\n#lvm-shell h4{font-family:var(--font-display);font-weight:500;font-size:20px;line-height:1.3;letter-spacing:-.015em;color:var(--ink);margin:24px 0 10px}\n#lvm-shell p{margin:0 0 22px;color:var(--ink-2)}\n#lvm-shell strong{color:var(--ink);font-weight:600}\n#lvm-shell ul, #lvm-shell ol{margin:0 0 22px;padding-left:22px;color:var(--ink-2)}\n#lvm-shell li{margin-bottom:8px}\n#lvm-shell a.inline{color:var(--pink);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}\n#lvm-shell a.inline:hover{text-decoration-thickness:2px}\n\n#lvm-shell .statement{margin:48px 0;padding:32px 0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);text-align:left}\n#lvm-shell .statement .num{font-family:var(--font-display);font-size:60px;font-weight:600;line-height:1;letter-spacing:-.04em;color:var(--pink);margin-bottom:14px}\n#lvm-shell .statement .lbl{font-family:var(--font-display);font-size:23px;line-height:1.35;font-weight:500;color:var(--ink);letter-spacing:-.012em}\n\n#lvm-shell .fig{margin:32px 0 18px;background:#fff;border:1px solid var(--rule);border-radius:20px;padding:28px 22px 20px;position:relative;overflow:hidden}\n#lvm-shell .fig-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:18px}\n#lvm-shell .fig-head .l{font-family:var(--font-mono);font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}\n#lvm-shell .fig-head .r{font-family:var(--font-mono);font-size:11px;font-weight:600;color:var(--ink);text-transform:uppercase;letter-spacing:.08em}\n#lvm-shell .fig-body{position:relative}\n#lvm-shell .fig-cap{margin:18px 4px 0;font-size:14px;color:var(--muted);line-height:1.5}\n#lvm-shell .fig-cap strong{color:var(--ink);font-weight:600}\n#lvm-shell .cv-wrap{position:relative;height:360px}\n\n#lvm-shell [data-term]{position:relative;cursor:help;border-bottom:1px dotted var(--dim)}\n#lvm-shell [data-term]:hover{color:var(--ink)}\n#lvm-shell .tt{position:absolute;left:50%;bottom:calc(100% + 12px);transform:translateX(-50%);min-width:200px;max-width:300px;background:#0c0c0c;color:#fff;font-size:13px;line-height:1.45;padding:11px 14px;border-radius:10px;box-shadow:0 12px 36px rgba(0,0,0,.32);opacity:0;visibility:hidden;transition:opacity .15s, visibility .15s;z-index:120;pointer-events:none;font-weight:400;font-family:var(--font-text)}\n#lvm-shell .tt::after{content:\"\";position:absolute;top:100%;left:50%;transform:translateX(-50%);border:6px solid transparent;border-top-color:#0c0c0c}\n#lvm-shell [data-term]:hover .tt, #lvm-shell [data-term]:focus .tt{opacity:1;visibility:visible}\n\n#lvm-shell .table{margin:24px 0;border:1px solid var(--rule);border-radius:16px;overflow:hidden;background:#fff}\n#lvm-shell .table-row{display:grid;grid-template-columns:1.55fr 1fr 1fr;border-bottom:1px solid var(--rule-soft);min-height:60px}\n#lvm-shell .table-row:last-child{border-bottom:0}\n#lvm-shell .table-row.head{background:var(--ink);color:#fff;border-bottom:0}\n#lvm-shell .table-row.head > div{padding:18px 18px;display:flex;align-items:center;gap:10px;font-family:var(--font-mono);font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.07em}\n#lvm-shell .table-row.head .brand-cell{justify-content:flex-start}\n#lvm-shell .table-row.head .brand-cell img{width:24px;height:24px;border-radius:6px;background:#fff;object-fit:cover}\n#lvm-shell .table-row.head .brand-cell.lean{color:#FFB8CE}\n#lvm-shell .table-row > .crit{padding:16px 18px;font-size:14px;color:var(--ink);font-weight:500;display:flex;align-items:center;border-right:1px solid var(--rule-soft)}\n#lvm-shell .table-row > .cell{padding:16px 14px;font-size:13px;line-height:1.45;color:var(--ink-2);display:flex;align-items:center;gap:10px;border-right:1px solid var(--rule-soft)}\n#lvm-shell .table-row > .cell:last-child{border-right:0}\n#lvm-shell .table-row > .cell.lean{background:var(--pink-soft);position:relative}\n#lvm-shell .table-row > .cell.lean::before{content:\"\";position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--pink)}\n#lvm-shell .icn{width:18px;height:18px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;font-size:13px;font-weight:600;color:#fff}\n#lvm-shell .icn.ok{background:var(--green)}\n#lvm-shell .icn.no{background:var(--red)}\n#lvm-shell .icn.mid{background:var(--amber)}\n#lvm-shell .icn svg{width:11px;height:11px}\n\n#lvm-shell .mini-row{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin:28px 0}\n#lvm-shell .mini-phone{position:relative;background:linear-gradient(145deg,#2a2a2a,#0e0e0e);border-radius:22px;padding:3px;border:1px solid rgba(255,255,255,.05);box-shadow:0 14px 32px rgba(0,0,0,.16);max-width:160px;margin:0 auto;width:100%}\n#lvm-shell .mini-phone .notch{position:absolute;top:0;left:50%;transform:translateX(-50%);width:40px;height:11px;background:#0a0a0a;border-radius:0 0 7px 7px;z-index:5}\n#lvm-shell .mini-phone .scr{border-radius:18px;overflow:hidden;background:#FAF0E6;aspect-ratio:9\/19.5}\n#lvm-shell .mini-phone .scr img{width:100%;height:100%;object-fit:cover}\n#lvm-shell .mini-phone.tiny{max-width:148px;padding:2px;border-radius:20px;border-width:1px}\n#lvm-shell .mini-phone.tiny .notch{width:30px;height:8px;border-radius:0 0 5px 5px}\n#lvm-shell .mini-phone.tiny .scr{border-radius:17px}\n#lvm-shell .mini-cap{text-align:center;margin-top:12px;font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted)}\n#lvm-shell .mini-cap strong{display:block;color:var(--ink);margin-top:4px;font-family:var(--font-display);font-size:14px;font-weight:500;letter-spacing:-.01em;text-transform:none}\n\n#lvm-shell .duo-row{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin:18px 0 0}\n#lvm-shell .duo-row .mini-phone{max-width:180px}\n\n#lvm-shell .method{display:grid;grid-template-columns:1fr 1.4fr;gap:36px;align-items:center;margin:42px 0}\n#lvm-shell .method.flip{grid-template-columns:1.4fr 1fr}\n#lvm-shell .method.flip .m-phone{order:2}\n#lvm-shell .method .m-tag{font-family:var(--font-mono);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--pink);margin-bottom:8px}\n#lvm-shell .method h3{margin-top:0}\n#lvm-shell .method p{font-size:16px;color:var(--muted);line-height:1.7}\n\n#lvm-shell .cta-band{margin:40px 0;padding:26px 28px;background:var(--paper);border-radius:16px;display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;border:1px solid var(--rule-soft)}\n#lvm-shell .cta-band .l{font-family:var(--font-display);font-size:18px;line-height:1.35;font-weight:500;color:var(--ink);flex:1;min-width:240px;letter-spacing:-.01em}\n#lvm-shell .cta-band .stores{display:flex;gap:10px;align-items:center}\n#lvm-shell .cta-band .stores a{line-height:0;transition:transform .15s}\n#lvm-shell .cta-band .stores a:hover{transform:translateY(-2px)}\n#lvm-shell .cta-band .stores img{height:42px;width:auto;border-radius:9px}\n\n#lvm-shell .pyramid{margin:30px auto;max-width:440px}\n#lvm-shell .pyramid .level{margin:6px auto;padding:13px 18px;border-radius:14px;color:#fff;font-family:var(--font-display);font-weight:500;font-size:15px;letter-spacing:-.01em;display:flex;justify-content:space-between;align-items:center;box-shadow:0 6px 18px rgba(0,0,0,.06)}\n#lvm-shell .pyramid .level .k{font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:.08em;opacity:.75}\n#lvm-shell .pyramid .l1{background:#0E0E10;width:100%}\n#lvm-shell .pyramid .l2{background:#1D1D1F;width:84%}\n#lvm-shell .pyramid .l3{background:#3a3a3c;width:68%}\n#lvm-shell .pyramid .l4{background:var(--pink);width:52%}\n#lvm-shell .pyramid-cap{text-align:center;font-size:13px;color:var(--muted);margin-top:14px}\n\n\/* Section 7 honnetete : scorecard horizontal bars *\/\n#lvm-shell .scorecard{margin:30px 0 10px;border:1px solid var(--rule);border-radius:20px;padding:28px 26px;background:#fff}\n#lvm-shell .scorecard-head{display:grid;grid-template-columns:1.4fr 1fr 1fr;column-gap:28px;align-items:center;padding-bottom:18px;margin-bottom:8px;border-bottom:1px solid var(--rule-soft)}\n#lvm-shell .scorecard-head .h-crit{font-family:var(--font-mono);font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}\n#lvm-shell .scorecard-head .h-brand{display:flex;align-items:center;gap:8px;font-family:var(--font-display);font-size:14px;font-weight:600;color:var(--ink)}\n#lvm-shell .scorecard-head .h-brand img{width:22px;height:22px;border-radius:5px;object-fit:cover}\n#lvm-shell .scorecard-row{display:grid;grid-template-columns:1.4fr 1fr 1fr;column-gap:28px;align-items:center;padding:14px 0;border-bottom:1px solid var(--rule-soft)}\n#lvm-shell .scorecard-row:last-child{border-bottom:0}\n#lvm-shell .scorecard-row .crit{font-size:14px;color:var(--ink);font-weight:500;padding-right:14px}\n#lvm-shell .scorecard-row .bar{display:flex;flex-direction:row-reverse;align-items:center;gap:10px}\n#lvm-shell .scorecard-row .bar .b{flex:1;height:8px;border-radius:99px;background:var(--rule-soft);overflow:hidden;position:relative}\n#lvm-shell .scorecard-row .bar .b > i{display:block;height:100%;border-radius:99px;transition:width 1s cubic-bezier(.22,.61,.36,1)}\n#lvm-shell .scorecard-row .bar.lean .b > i{background:var(--pink)}\n#lvm-shell .scorecard-row .bar.mfp .b > i{background:var(--mfp)}\n#lvm-shell .scorecard-row .bar .v{font-family:var(--font-mono);font-size:12px;font-weight:600;color:var(--ink);min-width:32px;text-align:left}\n\n\/* Section 8 pour qui : persona checklist *\/\n#lvm-shell .persona{margin:28px 0 10px;display:grid;grid-template-columns:1fr;gap:14px}\n#lvm-shell .persona-it{display:grid;grid-template-columns:54px 1fr;gap:16px;padding:22px 24px;background:#fff;border:1px solid var(--rule);border-radius:18px;align-items:center}\n#lvm-shell .persona-it.match{background:var(--pink-soft);border-color:rgba(255,45,110,.25)}\n#lvm-shell .persona-it .pic{width:54px;height:54px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--rule-soft);position:relative;font-family:var(--font-mono);font-size:13px;font-weight:600;color:var(--ink)}\n#lvm-shell .persona-it.match .pic{background:var(--pink);color:#fff}\n#lvm-shell .persona-it .pic svg{width:24px;height:24px}\n#lvm-shell .persona-it h4{margin:0 0 4px;font-size:17px;letter-spacing:-.01em}\n#lvm-shell .persona-it p{margin:0;font-size:14px;color:var(--muted);line-height:1.55}\n#lvm-shell .persona-it.match h4{color:var(--ink)}\n\n\/* Section 9 migration : timeline steps *\/\n#lvm-shell .steps{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin:28px 0;position:relative}\n#lvm-shell .steps::before{content:\"\";position:absolute;top:14px;left:7px;right:calc(20% - 18px);height:1px;background:linear-gradient(90deg,var(--pink) 0%,var(--rule-soft) 100%);z-index:0}\n#lvm-shell .step{position:relative;padding-top:24px;z-index:1}\n#lvm-shell .step::before{content:\"\";position:absolute;top:8px;left:0;width:14px;height:14px;border-radius:50%;background:var(--pink);border:3px solid #fff;box-shadow:0 0 0 1px var(--rule)}\n#lvm-shell .step .sn{font-family:var(--font-mono);font-size:11px;color:var(--pink);font-weight:600;letter-spacing:.08em}\n#lvm-shell .step h4{margin:6px 0 6px;font-size:15px;letter-spacing:-.01em}\n#lvm-shell .step p{font-size:13px;color:var(--muted);line-height:1.5;margin:0}\n\n\/* Section 10 debloque : feature stack numbered XL *\/\n#lvm-shell .feat-stack{margin:30px 0 10px;border-top:1px solid var(--rule)}\n#lvm-shell .feat-it{display:grid;grid-template-columns:auto 1fr auto;gap:24px;padding:26px 0;border-bottom:1px solid var(--rule);align-items:center}\n#lvm-shell .feat-it .fn{font-family:var(--font-display);font-size:48px;font-weight:600;color:var(--pink);line-height:1;letter-spacing:-.04em;width:74px}\n#lvm-shell .feat-it .ft{font-family:var(--font-display);font-size:22px;font-weight:600;color:var(--ink);letter-spacing:-.015em;line-height:1.25;margin-bottom:6px}\n#lvm-shell .feat-it .fd{font-size:15px;color:var(--muted);line-height:1.55;margin:0}\n#lvm-shell .feat-it .fc{font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:500}\n#lvm-shell .feat-it:last-child{border-bottom:0}\n\n#lvm-shell .faq{margin:22px 0}\n#lvm-shell .faq details{border-bottom:1px solid var(--rule);padding:20px 0}\n#lvm-shell .faq details:first-of-type{border-top:1px solid var(--rule)}\n#lvm-shell .faq summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:18px;font-family:var(--font-display);font-size:20px;font-weight:500;letter-spacing:-.015em;color:var(--ink)}\n#lvm-shell .faq summary::-webkit-details-marker{display:none}\n#lvm-shell .faq summary::after{content:\"+\";font-size:24px;color:var(--muted);font-weight:300;line-height:1;transition:transform .25s, color .25s}\n#lvm-shell .faq details[open] summary::after{transform:rotate(45deg);color:var(--pink)}\n#lvm-shell .faq details[open] summary{color:var(--pink)}\n#lvm-shell .faq .ans{margin-top:14px;font-size:16px;color:var(--muted);line-height:1.65}\n\n#lvm-shell .get-band{background:var(--paper-2);border-radius:24px;padding:48px 36px;margin:60px 0 40px;text-align:center}\n#lvm-shell .get-band .kicker{font-family:var(--font-mono);font-size:11px;text-transform:uppercase;color:var(--pink);font-weight:600;letter-spacing:.1em;margin-bottom:14px}\n#lvm-shell .get-band h3{font-size:36px;margin:0 0 14px;letter-spacing:-.025em}\n#lvm-shell .get-band p{font-size:16px;color:var(--muted);max-width:480px;margin:0 auto 26px}\n#lvm-shell .get-band .stores{display:flex;justify-content:center;gap:14px;flex-wrap:wrap}\n#lvm-shell .get-band .stores a{line-height:0;transition:transform .15s}\n#lvm-shell .get-band .stores a:hover{transform:translateY(-3px)}\n#lvm-shell .get-band .stores img{height:60px;width:auto;border-radius:11px}\n\n#lvm-shell .sources{font-size:14px;color:var(--muted);line-height:1.7}\n#lvm-shell .sources ol{padding-left:22px}\n#lvm-shell .sources li{margin-bottom:8px}\n\n#lvm-shell footer{padding:50px 0 60px;border-top:1px solid var(--rule);margin-top:40px}\n#lvm-shell footer .row{display:flex;justify-content:space-between;align-items:center;gap:18px;flex-wrap:wrap}\n#lvm-shell footer .kicker{font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--pink);font-weight:600}\n#lvm-shell footer p{font-size:13px;color:var(--muted);margin:8px 0 0}\n#lvm-shell footer .stores{display:flex;gap:8px}\n#lvm-shell footer .stores img{height:34px;width:auto;border-radius:6px}\n\n#lvm-shell .rev{opacity:0;transform:translateY(12px);transition:opacity .8s cubic-bezier(.22,.61,.36,1),transform .8s cubic-bezier(.22,.61,.36,1)}\n#lvm-shell .rev.on{opacity:1;transform:translateY(0)}\n@media (prefers-reduced-motion:reduce){#lvm-shell .rev{transition:none;opacity:1;transform:none}}\n\n@media (max-width:760px){\n  #lvm-shell .nav-row{padding:8px 18px;gap:8px}\n  #lvm-shell .nav-link{display:none}\n  #lvm-shell .nav-stores img{height:24px}\n  #lvm-shell .wrap{padding:0 22px}\n  #lvm-shell .hero{padding:34px 0 0}\n  #lvm-shell h1{font-size:46px;letter-spacing:-.035em}\n  #lvm-shell h1 .alt{font-size:.55em;margin-top:10px}\n  #lvm-shell .dek{font-size:20px}\n  #lvm-shell .hero-stores img{height:42px}\n  #lvm-shell .hero-bottom{grid-template-columns:1fr;gap:28px;margin:30px 0 40px;padding-top:24px;align-items:stretch}\n  #lvm-shell .phone-wrap{order:-1}\n  #lvm-shell .phone{width:240px}\n  #lvm-shell .tap-hint.desktop{display:none}\n  #lvm-shell .tap-hint.mobile{display:block;position:relative;left:auto;top:auto;text-align:center;margin:0 auto 10px;width:100%}\n  #lvm-shell .tap-hint.mobile .th-arrow{position:relative;display:block;margin:6px auto 0;width:34px;height:34px;transform:none;color:var(--pink)}\n  #lvm-shell .snippet{padding:24px 22px}\n  #lvm-shell .snippet p{font-size:18px}\n  #lvm-shell section{padding:48px 0}\n  #lvm-shell h2{font-size:34px;letter-spacing:-.03em}\n  #lvm-shell h3{font-size:24px}\n  #lvm-shell .section-label{margin-bottom:22px}\n  #lvm-shell .statement{padding:24px 0;margin:32px 0}\n  #lvm-shell .statement .num{font-size:44px}\n  #lvm-shell .statement .lbl{font-size:19px}\n  #lvm-shell .fig{padding:20px 14px 14px;border-radius:16px}\n  #lvm-shell .cv-wrap{height:310px}\n  #lvm-shell .method{grid-template-columns:1fr;gap:20px}\n  #lvm-shell .method.flip{grid-template-columns:1fr}\n  #lvm-shell .method.flip .m-phone{order:0}\n  #lvm-shell .mini-row{grid-template-columns:repeat(3,1fr);gap:10px}\n  #lvm-shell .mini-phone{padding:3px;border-radius:18px;border-width:1px;max-width:110px}\n  #lvm-shell .mini-phone .notch{width:42px;height:11px;border-radius:0 0 8px 8px}\n  #lvm-shell .mini-phone .scr{border-radius:15px}\n  #lvm-shell .mini-cap{font-size:10px}\n  #lvm-shell .mini-cap strong{font-size:13px}\n  #lvm-shell .duo-row{grid-template-columns:repeat(2,1fr);gap:12px}\n  #lvm-shell .duo-row .mini-phone{max-width:130px}\n  #lvm-shell .steps{grid-template-columns:1fr;gap:18px}\n  #lvm-shell .steps::before{display:none}\n  #lvm-shell .step{padding-top:0;padding-left:24px}\n  #lvm-shell .step::before{top:6px;left:0}\n  #lvm-shell .table-row{grid-template-columns:1.4fr .9fr .9fr}\n  #lvm-shell .table-row > .crit{padding:13px 12px;font-size:13px}\n  #lvm-shell .table-row > .cell{padding:13px 10px;font-size:12px;gap:8px}\n  #lvm-shell .table-row.head > div{padding:14px 12px;font-size:10px;gap:7px}\n  #lvm-shell .table-row.head .brand-cell img{width:20px;height:20px}\n  #lvm-shell .get-band{padding:36px 22px;border-radius:18px;margin:40px 0 30px}\n  #lvm-shell .get-band h3{font-size:28px}\n  #lvm-shell .get-band .stores img{height:50px}\n  #lvm-shell .cta-band{padding:22px;gap:14px}\n  #lvm-shell .cta-band .l{font-size:16px;min-width:0}\n  #lvm-shell .cta-band .stores img{height:38px}\n  #lvm-shell .faq summary{font-size:18px;gap:14px}\n  #lvm-shell .pyramid{max-width:100%}\n  #lvm-shell .pyramid .level{padding:11px 14px;font-size:14px}\n  #lvm-shell .scorecard{padding:20px 16px;border-radius:16px}\n  #lvm-shell .scorecard-head{grid-template-columns:1.2fr 1fr 1fr;column-gap:14px}\n  #lvm-shell .scorecard-head .h-brand{font-size:12px;gap:5px}\n  #lvm-shell .scorecard-head .h-brand img{width:18px;height:18px}\n  #lvm-shell .scorecard-row{grid-template-columns:1.2fr 1fr 1fr;column-gap:14px;padding:12px 0}\n  #lvm-shell .scorecard-row .crit{font-size:13px;padding-right:8px}\n  #lvm-shell .scorecard-row .bar{gap:6px}\n  #lvm-shell .scorecard-row .bar .v{font-size:11px;min-width:26px}\n  #lvm-shell .persona-it{grid-template-columns:44px 1fr;gap:12px;padding:16px 16px;border-radius:14px}\n  #lvm-shell .persona-it .pic{width:44px;height:44px;font-size:12px}\n  #lvm-shell .persona-it h4{font-size:15px}\n  #lvm-shell .persona-it p{font-size:13px}\n  #lvm-shell .feat-it{grid-template-columns:auto 1fr;gap:14px;padding:20px 0}\n  #lvm-shell .feat-it .fn{font-size:36px;width:54px}\n  #lvm-shell .feat-it .ft{font-size:18px}\n  #lvm-shell .feat-it .fd{font-size:13px}\n  #lvm-shell .feat-it .fc{display:none}\n}\n@media (max-width:480px){\n  #lvm-shell .phone-tabs{gap:5px}\n  #lvm-shell .phone-tabs button{padding:5px 8px;font-size:10px}\n  #lvm-shell .nav-stores{gap:4px}\n  #lvm-shell .nav-stores img{height:22px}\n  #lvm-shell .hero-stores img{height:40px}\n  #lvm-shell .crumb{font-size:12px}\n  #lvm-shell .table-row{grid-template-columns:1.3fr .85fr .85fr}\n  #lvm-shell .table-row > .crit{padding:11px 9px;font-size:12px}\n  #lvm-shell .table-row > .cell{padding:11px 8px;font-size:11px;gap:6px}\n  #lvm-shell .table-row.head > div{padding:11px 9px;font-size:9px;gap:5px}\n}\n\n\/* Calculator-specific styles, scoped #lvm-shell *\/\n#lvm-shell .calc-board{display:grid;grid-template-columns:1fr;gap:18px;margin:32px 0}\n@media(min-width:780px){#lvm-shell .calc-board{grid-template-columns:1fr 1fr;gap:24px}}\n#lvm-shell .calc-inputs{background:#FAF7F2;border-radius:14px;padding:22px;border:1px solid var(--rule-soft)}\n#lvm-shell .calc-inputs h3{font-family:var(--font-display);font-size:18px;font-weight:600;margin:0 0 16px;color:var(--ink);letter-spacing:-.01em}\n#lvm-shell .calc-row{margin:0 0 14px}\n#lvm-shell .calc-row label{display:block;font-size:13px;color:var(--muted);margin-bottom:6px;font-weight:500}\n#lvm-shell .calc-row input,#lvm-shell .calc-row select{width:100%;padding:11px 13px;border:1px solid var(--rule);border-radius:9px;font-size:16px;background:#fff;color:var(--ink);font-family:var(--font-text);box-sizing:border-box}\n#lvm-shell .calc-row input:focus,#lvm-shell .calc-row select:focus{outline:2px solid var(--pink);outline-offset:1px;border-color:var(--pink)}\n#lvm-shell .calc-sex{display:flex;gap:8px}\n#lvm-shell .calc-sex label{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:11px 8px;background:#fff;border:1px solid var(--rule);border-radius:9px;cursor:pointer;margin:0;font-size:14px;font-weight:500;color:var(--ink)}\n#lvm-shell .calc-sex input{display:none}\n#lvm-shell .calc-sex input:checked + span{color:var(--pink);font-weight:600}\n#lvm-shell .calc-sex label:has(input:checked){border-color:var(--pink);background:var(--pink-soft)}\n#lvm-shell .calc-bf{display:flex;align-items:center;gap:10px}\n#lvm-shell .calc-bf input[type=range]{flex:1;accent-color:var(--pink);height:6px}\n#lvm-shell .calc-bf .bf-val{font-weight:600;color:var(--pink);min-width:42px;font-family:var(--font-mono);font-size:15px}\n#lvm-shell .calc-results{display:grid;grid-template-columns:1fr;gap:12px}\n#lvm-shell .calc-tdee{background:#fff;border:1px solid var(--rule);border-radius:14px;padding:18px 20px;text-align:center}\n#lvm-shell .calc-tdee .label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-family:var(--font-mono)}\n#lvm-shell .calc-tdee .val{font-family:var(--font-display);font-size:40px;font-weight:600;letter-spacing:-.025em;margin-top:6px;color:var(--ink);line-height:1}\n#lvm-shell .calc-tdee .val .unit{font-size:14px;font-weight:500;color:var(--muted);margin-left:6px;letter-spacing:0}\n#lvm-shell .calc-tdee .note{font-size:12px;color:var(--dim);margin-top:6px}\n#lvm-shell .scen-grid{display:grid;grid-template-columns:1fr;gap:10px;margin-top:4px}\n#lvm-shell .scen-card{background:#fff;border:1px solid var(--rule);border-radius:12px;padding:14px 16px}\n#lvm-shell .scen-card.lent{border-left:4px solid #4CAF50}\n#lvm-shell .scen-card.mod{border-left:4px solid var(--pink)}\n#lvm-shell .scen-card.agg{border-left:4px solid #E84D44}\n#lvm-shell .scen-card .scen-h{display:flex;align-items:baseline;justify-content:space-between;gap:10px}\n#lvm-shell .scen-card .scen-name{font-family:var(--font-display);font-weight:600;font-size:15px;color:var(--ink);letter-spacing:-.01em}\n#lvm-shell .scen-card .scen-pct{font-family:var(--font-mono);font-size:12px;color:var(--muted);font-weight:600}\n#lvm-shell .scen-card .scen-kcal{font-family:var(--font-display);font-size:28px;font-weight:600;letter-spacing:-.02em;color:var(--ink);margin-top:6px;line-height:1}\n#lvm-shell .scen-card.mod .scen-kcal{color:var(--pink)}\n#lvm-shell .scen-card .scen-kcal .u{font-size:13px;font-weight:500;color:var(--muted);margin-left:4px;letter-spacing:0}\n#lvm-shell .scen-card .scen-rate{font-size:13px;color:var(--ink-2);margin-top:4px}\n#lvm-shell .scen-card .scen-warn{font-size:12px;color:#B23030;margin-top:6px;line-height:1.4}\n#lvm-shell .calc-delta{margin-top:10px;padding:14px 16px;background:var(--pink-soft);border-left:3px solid var(--pink);border-radius:0 10px 10px 0;font-size:14px;color:var(--ink);line-height:1.5}\n#lvm-shell .calc-delta b{color:var(--pink);font-family:var(--font-mono)}\n#lvm-shell .calc-note{margin-top:14px;font-size:13px;color:var(--muted);line-height:1.5}\n#lvm-shell .calc-note a{color:var(--pink);text-decoration:underline}\n\n\/* Statement block *\/\n#lvm-shell .statement{margin:54px 0;padding:48px 32px;background:#FAF7F2;border-radius:18px;text-align:center}\n#lvm-shell .statement p{font-family:var(--font-display);font-size:34px;line-height:1.2;font-weight:500;letter-spacing:-.025em;color:var(--ink);margin:0;max-width:680px;margin-inline:auto}\n#lvm-shell .statement .accent{color:var(--pink)}\n@media(max-width:640px){#lvm-shell .statement{padding:38px 22px}#lvm-shell .statement p{font-size:24px}}\n\n\/* Profil cards (no scrollable table) *\/\n#lvm-shell .profile-grid{display:grid;grid-template-columns:1fr;gap:16px;margin:32px 0}\n#lvm-shell .profile-card{background:#fff;border:1px solid var(--rule);border-radius:14px;padding:20px 22px}\n#lvm-shell .profile-card h4{font-family:var(--font-display);font-size:17px;font-weight:600;margin:0 0 4px;color:var(--ink)}\n#lvm-shell .profile-card .meta{font-size:13px;color:var(--muted);margin-bottom:14px}\n#lvm-shell .profile-card .rows{display:grid;grid-template-columns:1fr;gap:6px}\n#lvm-shell .profile-card .rw{display:grid;grid-template-columns:1fr auto;gap:10px;padding:8px 12px;background:#FAF7F2;border-radius:8px;font-size:14px;align-items:center}\n#lvm-shell .profile-card .rw .v{font-family:var(--font-mono);font-weight:600;color:var(--ink);font-size:13px}\n#lvm-shell .profile-card .rw.lean{background:var(--pink-soft);border-left:3px solid var(--pink)}\n#lvm-shell .profile-card .rw.lean .v{color:var(--pink)}\n#lvm-shell .profile-card .delta{font-size:12px;color:var(--dim);margin-top:8px}\n\n\/* 3 scenarios detailed cards *\/\n#lvm-shell .sce-detail{display:grid;grid-template-columns:1fr;gap:18px;margin:32px 0}\n#lvm-shell .sce-detail .sd{background:#fff;border:1px solid var(--rule);border-radius:14px;padding:22px 24px}\n#lvm-shell .sce-detail .sd.lent{border-left:4px solid #4CAF50}\n#lvm-shell .sce-detail .sd.mod{border-left:4px solid var(--pink)}\n#lvm-shell .sce-detail .sd.agg{border-left:4px solid #E84D44}\n#lvm-shell .sce-detail .sd .head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:6px;flex-wrap:wrap}\n#lvm-shell .sce-detail .sd h4{font-family:var(--font-display);font-size:19px;font-weight:600;margin:0;color:var(--ink);letter-spacing:-.015em}\n#lvm-shell .sce-detail .sd .pct{font-family:var(--font-mono);font-size:13px;font-weight:600;color:var(--muted)}\n#lvm-shell .sce-detail .sd.lent .pct{color:#4CAF50}\n#lvm-shell .sce-detail .sd.mod .pct{color:var(--pink)}\n#lvm-shell .sce-detail .sd.agg .pct{color:#E84D44}\n#lvm-shell .sce-detail .sd .lab{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-family:var(--font-mono);margin:10px 0 2px}\n#lvm-shell .sce-detail .sd p{margin:0;font-size:14px;line-height:1.55;color:var(--ink-2)}\n\n\/* BodyScan illust (defensive inline-equivalent here) *\/\n#lvm-shell .bodyscan-illust{margin:40px auto 8px;display:flex;flex-direction:column;align-items:center;gap:14px;max-width:220px}\n#lvm-shell .bodyscan-illust .mini-phone{max-width:200px;padding:3px;border:1px solid rgba(255,255,255,.07);border-radius:22px;background:linear-gradient(145deg,#2a2a2a,#0e0e0e);box-shadow:0 18px 36px rgba(0,0,0,.14);position:relative}\n#lvm-shell .bodyscan-illust .mini-phone .notch{position:absolute;top:0;left:50%;transform:translateX(-50%);width:40px;height:11px;background:#0a0a0a;border-radius:0 0 7px 7px;z-index:5}\n#lvm-shell .bodyscan-illust .mini-phone .scr{border-radius:18px;overflow:hidden;background:#FAF0E6;aspect-ratio:9\/19.5}\n#lvm-shell .bodyscan-illust .mini-phone .scr img{width:100%;height:100%;object-fit:cover;display:block}\n#lvm-shell .bodyscan-cap{font-size:13px;color:var(--muted);text-align:center;line-height:1.5}\n#lvm-shell .bodyscan-cap b{display:block;color:var(--ink);font-weight:600;margin-bottom:3px}\n\n\/* FAQ details *\/\n#lvm-shell details.faq{background:#fff;border:1px solid var(--rule);border-radius:10px;margin:8px 0;overflow:hidden}\n#lvm-shell details.faq summary{padding:16px 20px;font-weight:600;font-size:16px;color:var(--ink);cursor:pointer;list-style:none;position:relative;padding-right:48px;font-family:var(--font-display);letter-spacing:-.01em}\n#lvm-shell details.faq summary::-webkit-details-marker{display:none}\n#lvm-shell details.faq summary::after{content:\"+\";position:absolute;right:20px;top:50%;transform:translateY(-50%);color:var(--pink);font-size:22px;font-weight:300;line-height:1}\n#lvm-shell details.faq[open] summary::after{content:\"\\2212 \"}\n#lvm-shell details.faq .faq-body{padding:0 20px 18px;font-size:15px;line-height:1.65;color:var(--ink-2)}\n#lvm-shell details.faq .faq-body p{margin:0 0 8px}\n\n\/* Sources *\/\n#lvm-shell .sources{margin:48px 0 32px;padding:24px;background:#FAF7F2;border-radius:14px;font-size:13px;line-height:1.6;color:var(--muted)}\n#lvm-shell .sources h4{font-family:var(--font-display);font-size:14px;font-weight:600;margin:0 0 10px;color:var(--ink);text-transform:uppercase;letter-spacing:.06em}\n#lvm-shell .sources a{color:var(--pink);text-decoration:none}\n#lvm-shell .sources a:hover{text-decoration:underline}\n#lvm-shell .sources ol{margin:0;padding-left:22px}\n#lvm-shell .sources li{margin:4px 0}\n\n\/* Body copy *\/\n#lvm-shell h2.sect{font-family:var(--font-display);font-size:34px;font-weight:600;letter-spacing:-.03em;margin:64px 0 16px;line-height:1.15;color:var(--ink)}\n#lvm-shell h2.sect .num{font-family:var(--font-mono);font-size:13px;font-weight:500;color:var(--pink);display:block;text-transform:uppercase;letter-spacing:.08em;margin-bottom:6px;-webkit-font-smoothing:antialiased}\n#lvm-shell h3.sub{font-family:var(--font-display);font-size:22px;font-weight:600;margin:32px 0 12px;color:var(--ink);letter-spacing:-.015em}\n#lvm-shell .body p{margin:0 0 18px;font-size:17px;line-height:1.7;color:var(--ink-2)}\n#lvm-shell .body p b{color:var(--ink);font-weight:600}\n\n\/* CTA band *\/\n#lvm-shell .get-band{margin:48px 0 24px;padding:42px 32px;background:linear-gradient(135deg,#fff,#FAF7F2);border:1px solid var(--rule);border-radius:18px;text-align:center}\n#lvm-shell .get-band h3{font-family:var(--font-display);font-size:30px;font-weight:600;margin:0 0 6px;color:var(--ink);letter-spacing:-.025em}\n#lvm-shell .get-band p{margin:0 0 22px;font-size:16px;color:var(--muted);line-height:1.5}\n#lvm-shell .get-band .stores{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;align-items:center}\n#lvm-shell .get-band .stores img{height:54px;width:auto;border-radius:10px}\n@media(max-width:640px){#lvm-shell .get-band h3{font-size:22px}}\n\n#lvm-shell .micro-cta{margin:24px 0;padding:18px 22px;background:var(--pink-soft);border-left:3px solid var(--pink);border-radius:0 10px 10px 0;font-size:15px;line-height:1.55}\n#lvm-shell .micro-cta a{color:var(--pink);font-weight:600;text-decoration:none}\n#lvm-shell .micro-cta a:hover{text-decoration:underline}\n\n\n\/* NEAT-specific styles, scoped #lvm-shell *\/\n#lvm-shell .neat-meter{height:10px;border-radius:6px;background:#F1EFE7;margin:14px auto 10px;max-width:340px;overflow:hidden}\n#lvm-shell .neat-meter i{display:block;height:100%;width:30%;border-radius:6px;background:linear-gradient(90deg,#FFB25E,#FF8C00);transition:width .3s ease}\n#lvm-shell .neat-pill{display:inline-block;padding:5px 14px;border-radius:999px;font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;font-family:var(--font-mono);color:#0E0E10}\n#lvm-shell .neat-pill.ok{background:#A8D5A0}\n#lvm-shell .neat-pill.warn{background:#FF8C00;color:#fff}\n#lvm-shell .neat-pill.alert{background:#E84D44;color:#fff}\n#lvm-shell .bmr-duo{display:grid;grid-template-columns:1fr;gap:12px}\n@media(min-width:640px){#lvm-shell .bmr-duo{grid-template-columns:1fr 1fr}}\n#lvm-shell .bd-card{background:#fff;border:1px solid var(--rule);border-radius:12px;padding:16px 18px;text-align:center}\n\/* modificateur \"pas\" (PAS \"steps\" : #lvm-shell .steps existe deja dans le shell\n   comme stepper grid 5 colonnes, collision detectee au controle visuel desktop) *\/\n#lvm-shell .bd-card.pas{border-left:4px solid #FF8C00}\n#lvm-shell .bd-card .label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-family:var(--font-mono)}\n#lvm-shell .bd-card .v{font-family:var(--font-display);font-size:28px;font-weight:600;letter-spacing:-.02em;color:var(--ink);margin-top:6px;line-height:1}\n#lvm-shell .bd-card .v .u{font-size:13px;font-weight:500;color:var(--muted);margin-left:4px;letter-spacing:0}\n#lvm-shell .bd-card .s{font-size:12px;color:var(--dim);margin-top:6px;line-height:1.45}\n#lvm-shell .bd-card .s b{color:var(--ink);font-family:var(--font-mono)}\n#lvm-shell .share-card{background:#fff;border:1px solid var(--rule);border-left:4px solid #FF8C00;border-radius:12px;padding:16px 18px;margin-top:12px}\n#lvm-shell .share-card .label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-family:var(--font-mono);margin-bottom:6px}\n#lvm-shell .share-card p{margin:0;font-size:14px;line-height:1.6;color:var(--ink-2)}\n#lvm-shell .share-card b{color:var(--ink);font-family:var(--font-mono)}\n#lvm-shell .share-meter{height:10px;border-radius:6px;background:#F1EFE7;margin:10px 0 4px;overflow:hidden}\n#lvm-shell .share-meter i{display:block;height:100%;width:20%;border-radius:6px;background:#FF8C00;transition:width .3s ease}\n#lvm-shell .reco-card{background:#fff;border:1px solid var(--rule);border-left:4px solid var(--pink);border-radius:12px;padding:18px 20px}\n#lvm-shell .reco-card .rc-title{font-family:var(--font-display);font-weight:600;font-size:16px;color:var(--ink);letter-spacing:-.01em;margin-bottom:6px}\n#lvm-shell .reco-card .rc-body{margin:0;font-size:14px;line-height:1.6;color:var(--ink-2)}\n#lvm-shell .reco-card .rc-disclaimer{margin:12px 0 0;font-size:12px;line-height:1.5;color:var(--dim);border-top:1px solid var(--rule-soft);padding-top:10px}\n#lvm-shell .mvr{display:grid;grid-template-columns:1fr;gap:18px;margin:32px 0}\n#lvm-shell .mvr .mv{background:#fff;border:1px solid var(--rule);border-radius:14px;padding:22px 24px}\n#lvm-shell .mvr .mv.myth{border-left:4px solid #E84D44}\n#lvm-shell .mvr .mv.real{border-left:4px solid #4CAF50}\n#lvm-shell .mvr .mv .tag{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;font-family:var(--font-mono);margin-bottom:8px}\n#lvm-shell .mvr .mv.myth .tag{color:#E84D44}\n#lvm-shell .mvr .mv.real .tag{color:#4CAF50}\n#lvm-shell .mvr .mv h4{font-family:var(--font-display);font-size:19px;font-weight:600;margin:0 0 8px;color:var(--ink);letter-spacing:-.015em}\n#lvm-shell .mvr .mv p{margin:0 0 10px;font-size:14px;line-height:1.6;color:var(--ink-2)}\n#lvm-shell .mvr .mv p:last-child{margin-bottom:0}\n#lvm-shell .steps-out{font-family:var(--font-mono);font-size:13px;font-weight:700;color:#FF8C00;margin-left:8px}\n\/* keycards chiffrees couleur NEAT *\/\n#lvm-shell .key-grid{display:grid;grid-template-columns:1fr;gap:12px;margin:26px 0}\n@media(min-width:640px){#lvm-shell .key-grid{grid-template-columns:repeat(3,1fr)}}\n#lvm-shell .key-card{background:#fff;border:1px solid var(--rule);border-left:4px solid #FF8C00;border-radius:12px;padding:16px 18px}\n#lvm-shell .key-card .kv{font-family:var(--font-display);font-size:28px;font-weight:600;letter-spacing:-.02em;color:#FF8C00;line-height:1.1}\n#lvm-shell .key-card .kv span{font-size:13px;font-weight:500;color:var(--muted);margin-left:3px;letter-spacing:0}\n#lvm-shell .key-card .kl{font-size:13px;color:var(--dim);margin-top:6px;line-height:1.5}\n\/* aide bodyfat + popup BodyScan (zero lib externe) *\/\n#lvm-shell .bf-help{display:inline-block;background:none;border:0;padding:0;margin-top:8px;font-size:13px;font-weight:600;color:var(--pink);text-decoration:underline;cursor:pointer;font-family:inherit}\n#lvm-shell .bf-modal{position:fixed;inset:0;z-index:9999;display:none;align-items:center;justify-content:center;padding:18px}\n#lvm-shell .bf-modal.open{display:flex}\n#lvm-shell .bf-modal .bf-ovl{position:absolute;inset:0;background:rgba(14,14,16,.55)}\n#lvm-shell .bf-dialog{position:relative;background:#fff;border-radius:16px;max-width:340px;width:100%;padding:24px 22px 20px;text-align:center;box-shadow:0 24px 60px rgba(0,0,0,.25);max-height:88vh;overflow-y:auto}\n#lvm-shell .bf-dialog .bf-close{position:absolute;top:8px;right:10px;background:none;border:0;font-size:26px;line-height:1;color:#6E6E73;cursor:pointer;padding:6px}\n#lvm-shell .bf-dialog .bf-title{font-family:var(--font-display);font-size:19px;font-weight:600;color:var(--ink);letter-spacing:-.01em;margin:0 0 8px}\n#lvm-shell .bf-dialog .bf-text{font-size:14px;line-height:1.55;color:var(--ink-2);margin:0 0 14px}\n#lvm-shell .bf-dialog .bf-sub{font-size:12px;line-height:1.5;color:var(--dim);margin:14px 0}\n#lvm-shell .bf-dialog .bf-stores{display:flex;gap:10px;justify-content:center;align-items:center;flex-wrap:wrap}\n#lvm-shell .bf-dialog .bf-stores img{height:40px;width:auto;display:block}\n<\/style>\n<style id=\"lvm-collision-reset\">\n\/* Hard reset for global theme styles that collide with our content *\/\nbody.postid-1965 #lvm-shell .hero{display:block!important;align-items:initial!important;justify-content:initial!important;text-align:left!important;flex-direction:initial!important;padding:54px 0 0!important}\nbody.postid-1965 #lvm-shell .wrap,\nbody.postid-1965 #lvm-shell main.wrap{display:block!important;max-width:760px!important;margin-left:auto!important;margin-right:auto!important;padding-left:28px!important;padding-right:28px!important}\n@media (max-width:820px){\n  body.postid-1965 #lvm-shell .wrap,\n  body.postid-1965 #lvm-shell main.wrap{padding-left:18px!important;padding-right:18px!important}\n}\nhtml, body{overflow-x:hidden!important}\nbody.postid-1965 #lvm-shell{overflow-x:hidden;max-width:100vw}\nbody.postid-1965 #lvm-shell *{max-width:100%}\nbody.postid-1965 #lvm-shell .nav-row{max-width:100vw;box-sizing:border-box}\nbody.postid-1965 #lvm-shell.force-show .rev{opacity:1!important;transform:none!important}\n\n\/* === A.1 PHONE BACKGROUND CLASSES === *\/\nbody.postid-1965 #lvm-shell .phone-bg{position:absolute;inset:0;width:100%;height:100%;background-size:cover;background-position:center top;background-repeat:no-repeat;transition:opacity .28s ease;background-color:#FAF0E6}\nbody.postid-1965 #lvm-shell .phone-bg.tab-depense{background-image:url(https:\/\/lean-app.com\/wp-content\/uploads\/2026\/05\/lvm-screen_depense.webp)}\nbody.postid-1965 #lvm-shell .phone-bg.tab-bilan{background-image:url(https:\/\/lean-app.com\/wp-content\/uploads\/2026\/05\/lvm-screen_bilan.webp)}\nbody.postid-1965 #lvm-shell .phone-bg.tab-kcal{background-image:url(https:\/\/lean-app.com\/wp-content\/uploads\/2026\/05\/lvm-screen_kcal.webp)}\nbody.postid-1965 #lvm-shell .phone-bg.tab-strategie{background-image:url(https:\/\/lean-app.com\/wp-content\/uploads\/2026\/05\/lvm-screen_strategie.webp)}\nbody.postid-1965 #lvm-shell .phone-bg.sub-BMR{background-image:url(https:\/\/lean-app.com\/wp-content\/uploads\/2026\/05\/lvm-screen_BMR.webp)}\nbody.postid-1965 #lvm-shell .phone-bg.sub-NEAT{background-image:url(https:\/\/lean-app.com\/wp-content\/uploads\/2026\/05\/lvm-screen_NEAT.webp)}\nbody.postid-1965 #lvm-shell .phone-bg.sub-EAT{background-image:url(https:\/\/lean-app.com\/wp-content\/uploads\/2026\/05\/lvm-screen_EAT.webp)}\nbody.postid-1965 #lvm-shell .phone-bg.sub-TEF{background-image:url(https:\/\/lean-app.com\/wp-content\/uploads\/2026\/05\/lvm-screen_TEF.webp)}\n\n\/* === v11.3 CTA BANDS MOBILE (badges plus gros + centrage) === *\/\n@media (max-width:760px){\n  body.postid-1965 #lvm-shell .cta-band{flex-direction:column!important;align-items:center!important;text-align:center!important;padding:26px 22px!important;gap:20px!important}\n  body.postid-1965 #lvm-shell .cta-band .l{min-width:0!important;width:100%!important;font-size:16px!important;line-height:1.5!important;text-align:center!important}\n  body.postid-1965 #lvm-shell .cta-band .stores{width:100%!important;justify-content:center!important;flex-wrap:nowrap!important;gap:10px!important}\n  body.postid-1965 #lvm-shell .cta-band .stores a{flex:1!important;max-width:170px!important;display:flex!important;justify-content:center!important}\n  body.postid-1965 #lvm-shell .cta-band .stores picture{width:100%!important;display:block!important}\n  body.postid-1965 #lvm-shell .cta-band .stores img{height:56px!important;width:100%!important;max-width:170px!important;object-fit:contain!important;object-position:center!important;border-radius:10px!important}\n  body.postid-1965 #lvm-shell .get-band{padding:38px 22px!important}\n  body.postid-1965 #lvm-shell .get-band .stores{justify-content:center!important;flex-wrap:nowrap!important;gap:10px!important}\n  body.postid-1965 #lvm-shell .get-band .stores a{flex:1!important;max-width:170px!important;display:flex!important;justify-content:center!important}\n  body.postid-1965 #lvm-shell .get-band .stores picture{width:100%!important;display:block!important}\n  body.postid-1965 #lvm-shell .get-band .stores img{height:56px!important;width:100%!important;max-width:170px!important;object-fit:contain!important;object-position:center!important;border-radius:10px!important}\n  body.postid-1965 #lvm-shell .get-band h3{font-size:26px!important;line-height:1.2!important}\n  body.postid-1965 #lvm-shell .get-band p{font-size:15px!important}\n}\n\n\/* === v11.2 BRAND BANNER above table responsive === *\/\n@media (max-width:760px){\n  body.postid-1965 #lvm-shell .brand-banner img{width:54px!important;height:54px!important}\n  body.postid-1965 #lvm-shell .brand-banner > div{padding:16px 12px!important;gap:8px!important}\n  body.postid-1965 #lvm-shell .brand-banner > div > div{font-size:15px!important}\n}\n\n\/* === v11.4 SCORECARD partie 7: redesign mobile === *\/\n@media (max-width:760px){\n  body.postid-1965 #lvm-shell .scorecard{padding:18px 16px!important;border-radius:16px!important}\n  body.postid-1965 #lvm-shell .scorecard-head{display:none!important}\n  body.postid-1965 #lvm-shell .scorecard-row{\n    display:block!important;\n    padding:14px 0!important;\n    border-bottom:1px solid #E8E2D6!important;\n  }\n  body.postid-1965 #lvm-shell .scorecard-row .crit{\n    display:block!important;\n    font-size:13px!important;\n    font-weight:600!important;\n    color:#0E0E10!important;\n    margin-bottom:10px!important;\n    padding-right:0!important;\n  }\n  body.postid-1965 #lvm-shell .scorecard-row .bar{\n    display:grid!important;\n    grid-template-columns:54px 1fr 32px!important;\n    column-gap:8px!important;\n    align-items:center!important;\n    padding:5px 0!important;\n    flex-direction:initial!important;\n    position:relative!important;\n  }\n  body.postid-1965 #lvm-shell .scorecard-row .bar::before{\n    content:attr(data-brand)!important;\n    font-family:-apple-system,'SF Pro Display',sans-serif!important;\n    font-size:11px!important;\n    font-weight:600!important;\n    text-transform:uppercase!important;\n    letter-spacing:.05em!important;\n    color:#0E0E10!important;\n  }\n  body.postid-1965 #lvm-shell .scorecard-row .bar.lean::before{color:#FF2D6E!important}\n  body.postid-1965 #lvm-shell .scorecard-row .bar.mfp::before{color:#5B7FFF!important}\n  body.postid-1965 #lvm-shell .scorecard-row .bar .b{\n    height:10px!important;\n    width:100%!important;\n    border-radius:99px!important;\n    position:relative!important;\n    background:#EFEAE0!important;\n    overflow:hidden!important;\n  }\n  body.postid-1965 #lvm-shell .scorecard-row .bar .b > i{\n    display:block!important;\n    height:100%!important;\n    border-radius:99px!important;\n  }\n  body.postid-1965 #lvm-shell .scorecard-row .bar .v{\n    font-family:-apple-system,'SF Pro Display',sans-serif!important;\n    font-size:12px!important;\n    font-weight:700!important;\n    color:#0E0E10!important;\n    min-width:0!important;\n    text-align:right!important;\n  }\n}\n\n\/* === A.2 CHARTS MOBILE === *\/\n@media (max-width:760px){\n  \/* v13: charts FULL WIDTH (less card padding) + plus hauts pour vraie respiration *\/\n  body.postid-1965 #lvm-shell .cv-wrap{height:380px!important;min-height:360px!important;max-height:420px!important;width:100%!important}\n  body.postid-1965 #lvm-shell .cv-wrap canvas{width:100%!important;height:100%!important;display:block!important}\n  body.postid-1965 #lvm-shell .fig{padding:16px 4px 14px!important;margin:24px -4px 14px!important;overflow:visible!important}\n  body.postid-1965 #lvm-shell .fig-head{padding:0 12px!important;flex-wrap:wrap!important;gap:6px!important;margin-bottom:10px!important}\n  body.postid-1965 #lvm-shell .fig-body{padding:0 2px!important}\n  body.postid-1965 #lvm-shell .fig-cap{padding:0 12px!important;font-size:13px!important;margin-top:10px!important}\n}\n@media (max-width:480px){\n  body.postid-1965 #lvm-shell .cv-wrap{height:360px!important;min-height:340px!important;max-height:380px!important}\n  body.postid-1965 #lvm-shell .fig{padding:14px 2px 12px!important;margin:20px -6px 12px!important;border-radius:14px!important}\n  body.postid-1965 #lvm-shell .fig-body{padding:0!important}\n}\n\n\/* === v11.2 TABLEAU MOBILE STACKED CARDS avec mini-tags Lean\/MFP === *\/\n@media (max-width:760px){\n  body.postid-1965 #lvm-shell .table{border-radius:14px!important}\n  body.postid-1965 #lvm-shell .table-row.head{display:none!important}\n  body.postid-1965 #lvm-shell .table-row{\n    display:grid!important;\n    grid-template-columns:1fr 1fr!important;\n    grid-template-areas:\"crit crit\" \"lean mfp\"!important;\n    gap:0!important;\n    min-height:0!important;\n  }\n  body.postid-1965 #lvm-shell .table-row > .crit{\n    grid-area:crit!important;background:#0E0E10!important;color:#fff!important;\n    padding:11px 14px!important;font-size:13px!important;font-weight:600!important;\n    letter-spacing:-0.1px!important;border-right:0!important;line-height:1.35!important;\n    font-family:-apple-system,BlinkMacSystemFont,'SF Pro Display',sans-serif!important;text-transform:none!important;\n  }\n  body.postid-1965 #lvm-shell .table-row > .cell.lean{\n    grid-area:lean!important;border-right:1px solid #E8E2D6!important;\n    position:relative!important;background:#FFF1F5!important;padding-top:30px!important;\n  }\n  body.postid-1965 #lvm-shell .table-row > .cell:not(.lean):not(.crit){\n    grid-area:mfp!important;background:#F5F5F7!important;padding-top:30px!important;\n    position:relative!important;\n  }\n  body.postid-1965 #lvm-shell .table-row > .cell.lean::before{\n    content:\"LEAN\"!important;position:absolute!important;top:8px!important;left:12px!important;\n    right:auto!important;bottom:auto!important;width:auto!important;height:auto!important;\n    background:transparent!important;\n    font-family:-apple-system,'SF Pro Display',sans-serif!important;\n    font-size:10px!important;font-weight:700!important;letter-spacing:.07em!important;\n    color:#FF2D6E!important;\n  }\n  body.postid-1965 #lvm-shell .table-row > .cell:not(.lean):not(.crit)::before{\n    content:\"CRONOMETER\"!important;position:absolute!important;top:8px!important;left:12px!important;\n    font-family:-apple-system,'SF Pro Display',sans-serif!important;\n    font-size:10px!important;font-weight:700!important;letter-spacing:.07em!important;\n    color:#E15822!important;\n  }\n  body.postid-1965 #lvm-shell .table-row > .cell{\n    padding:12px 12px!important;font-size:13px!important;line-height:1.4!important;\n    align-items:flex-start!important;gap:7px!important;\n  }\n  body.postid-1965 #lvm-shell .icn{flex-shrink:0!important;margin-top:1px!important}\n}\n\n\/* === A.5 MINI-LOGOS partie 7 (triplet NEAT\/EAT\/TEF) === *\/\n@media (max-width:760px){\n  body.postid-1965 #lvm-shell .mini-row{gap:6px!important;margin:24px 0!important;grid-template-columns:repeat(3,1fr)!important}\n  body.postid-1965 #lvm-shell .mini-phone{max-width:100px!important;padding:2px!important;border-radius:14px!important;border-width:1px!important}\n  body.postid-1965 #lvm-shell .mini-phone.tiny{max-width:96px!important;padding:2px!important;border-radius:13px!important}\n  body.postid-1965 #lvm-shell .mini-phone .notch{width:30px!important;height:8px!important;border-radius:0 0 5px 5px!important}\n  body.postid-1965 #lvm-shell .mini-phone .scr{border-radius:11px!important}\n  body.postid-1965 #lvm-shell .mini-cap{font-size:10px!important;margin-top:8px!important}\n  body.postid-1965 #lvm-shell .mini-cap strong{font-size:12px!important;margin-top:2px!important}\n}\n\n\/* === MOCKUP TAP HINT MOBILE === *\/\n@media (max-width:760px){\n  body.postid-1965 #lvm-shell .tap-hint.mobile{position:relative!important;width:100%!important;left:auto!important;top:auto!important;text-align:center!important;margin:0 auto 14px!important;display:block!important}\n  body.postid-1965 #lvm-shell .tap-hint.desktop{display:none!important}\n  body.postid-1965 #lvm-shell .tap-hint.hidden{display:none!important;height:0!important;margin:0!important;padding:0!important}\n}\n\n\/* === A.6 BODYSCAN ILLUST partie BMR (override mobile mini-phone) === *\/\nbody.postid-1965 #lvm-shell .bodyscan-illust{margin:40px auto 8px!important;display:flex!important;flex-direction:column!important;align-items:center!important;gap:14px!important;max-width:220px!important}\nbody.postid-1965 #lvm-shell .bodyscan-illust .mini-phone{max-width:200px!important;padding:3px!important;border-radius:22px!important;border-width:1px!important}\nbody.postid-1965 #lvm-shell .bodyscan-illust .mini-phone .notch{width:40px!important;height:11px!important;border-radius:0 0 7px 7px!important}\nbody.postid-1965 #lvm-shell .bodyscan-illust .mini-phone .scr{border-radius:18px!important}\n@media (max-width:760px){\n  body.postid-1965 #lvm-shell .bodyscan-illust{max-width:180px!important}\n  body.postid-1965 #lvm-shell .bodyscan-illust .mini-phone{max-width:160px!important;padding:3px!important;border-radius:20px!important}\n  body.postid-1965 #lvm-shell .bodyscan-illust .mini-phone .notch{width:34px!important;height:9px!important;border-radius:0 0 6px 6px!important}\n  body.postid-1965 #lvm-shell .bodyscan-illust .mini-phone .scr{border-radius:16px!important}\n}\n\n\/* Fix CompressX picture wrappers : images ne doivent pas exploser *\/\n#lvm-shell picture{display:block;max-width:100%}\n#lvm-shell picture img{display:block;max-width:100%;height:auto}\n#lvm-shell .bodyscan-illust .mini-phone .scr picture{display:block;width:100%;height:100%}\n#lvm-shell .bodyscan-illust .mini-phone .scr picture img{width:100%!important;height:100%!important;object-fit:cover!important}\n#lvm-shell .pyramide-illust picture{display:block;width:100%}\n#lvm-shell .pyramide-illust picture img{width:100%!important;height:auto!important;border-radius:18px}<\/style>\n<div id=\"lvm-shell\" class=\"force-show\">\n\n<nav class=\"nav\"><div class=\"nav-row\">\n  <a class=\"nav-brand\" href=\"https:\/\/lean-app.com\/en\/\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/lean-app.com\/wp-content\/uploads\/2026\/05\/lvm-logo-lean-square-scaled.webp\" alt=\"Lean\" width=\"28\" height=\"28\"><span>Lean<\/span><\/a>\n  <div class=\"nav-spacer\"><\/div>\n  <a class=\"nav-link\" href=\"https:\/\/lean-app.com\/en\/\">Home<\/a>\n  <div class=\"nav-stores\">\n    <a href=\"https:\/\/apps.apple.com\/fr\/app\/lean-calorie-ai-podometre\/id6738668646?utm_source=seo&#038;utm_medium=blog&#038;utm_campaign=calc-macros\" target=\"_blank\" rel=\"noopener\" aria-label=\"App Store\"><img decoding=\"async\" src=\"https:\/\/lean-app.com\/wp-content\/uploads\/2026\/05\/lvm-appstore-official.webp\" alt=\"App Store\"><\/a>\n    <a href=\"https:\/\/play.google.com\/store\/apps\/details?id=com.lean.testsqflite&#038;utm_source=seo&#038;utm_medium=blog&#038;utm_campaign=calc-macros\" target=\"_blank\" rel=\"noopener\" aria-label=\"Google Play\"><img decoding=\"async\" src=\"https:\/\/lean-app.com\/wp-content\/uploads\/2026\/05\/lvm-googleplay-official.webp\" alt=\"Google Play\"><\/a>\n  <\/div>\n<\/div><\/nav>\n<div class=\"progress\"><i><\/i><\/div>\n<main class=\"wrap\">\n\n<section class=\"hero\" aria-labelledby=\"title\">\n  <div class=\"crumb\"><a href=\"https:\/\/lean-app.com\/en\/\">Home<\/a> &nbsp;\/&nbsp; Macro calculator<\/div>\n  <div class=\"eyebrow\">Calculator &middot; Macros &amp; split<\/div>\n  <h1 id=\"title\">Macro calculator&nbsp;: protein, carbs, fat\n    <span class=\"alt\">in the right order, on your real measurements<\/span>\n  <\/h1>\n  <p class=\"dek\">Fixed percentages like &laquo;&nbsp;40\/40\/20&nbsp;&raquo; have a hidden flaw: they split calories they do not even know. The right method has an order: first your protein (on your lean mass), then your fat (the hormonal floor), and carbs take the rest of YOUR real expenditure, computed from your measurements and your steps. That is what this calculator does, sources included.<\/p>\n  <div class=\"byline\">\n    <img class=\"by-logo\" src=\"https:\/\/lean-app.com\/wp-content\/uploads\/2026\/05\/lvm-logo-lean-square-scaled.webp\" alt=\"\" width=\"512\" height=\"512\" loading=\"lazy\" decoding=\"async\" \/>\n    <span><strong>The Lean Team<\/strong> &middot; 8&nbsp;min read &middot; Updated August 27, 2026<\/span>\n  <\/div>\n  <div class=\"hero-stores\">\n    <a href=\"https:\/\/apps.apple.com\/fr\/app\/lean-calorie-ai-podometre\/id6738668646?utm_source=seo&#038;utm_medium=blog&#038;utm_campaign=calc-macros\" target=\"_blank\" rel=\"noopener\">\n      <img src=\"https:\/\/lean-app.com\/wp-content\/uploads\/2026\/05\/lvm-appstore-official.webp\" alt=\"T\u00e9l\u00e9charger sur l'App Store\" width=\"413\" height=\"122\" loading=\"lazy\" decoding=\"async\" \/>\n    <\/a>\n    <a href=\"https:\/\/play.google.com\/store\/apps\/details?id=com.lean.testsqflite&#038;utm_source=seo&#038;utm_medium=blog&#038;utm_campaign=calc-macros\" target=\"_blank\" rel=\"noopener\">\n      <img src=\"https:\/\/lean-app.com\/wp-content\/uploads\/2026\/05\/lvm-googleplay-official.webp\" alt=\"Disponible sur Google Play\" width=\"315\" height=\"95\" loading=\"lazy\" decoding=\"async\" \/>\n    <\/a>\n    <span class=\"or\">Free download<\/span>\n  <\/div>\n\n  <div class=\"hero-bottom\">\n    <div class=\"hero-lead\">\n      Generic splits like &laquo;&nbsp;40\/40\/20&nbsp;&raquo; apply arbitrary percentages to a guesstimated total. That is exactly what Lean refuses: your expenditure is computed from your measurements (body fat, real steps), and your macros are counted with every logged meal. This page applies the same logic: your expenditure first, your grams second, in the order that matters.\n    <\/div>\n    <div class=\"phone-wrap rev\">\n      <div class=\"phone-stage\">\n        <div class=\"tap-hint mobile\" id=\"tapHintMobile\" aria-hidden=\"true\">\n          <span class=\"th-pill\"><small>Interactive demo<\/small>Tap the screen to explore the app<\/span>\n          <svg class=\"th-arrow\" viewbox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\">\n            <path d=\"M12 4 L12 20 M5 13 L12 20 L19 13\" stroke=\"currentColor\" stroke-width=\"2.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n          <\/svg>\n        <\/div>\n        <div class=\"tap-hint desktop\" id=\"tapHintDesktop\" aria-hidden=\"true\">\n          <span class=\"th-pill\"><small>Interactive demo<\/small>Tap the screen<br>to explore the app<\/span>\n          <svg class=\"th-arrow\" viewbox=\"0 0 104 34\" fill=\"none\" aria-hidden=\"true\">\n            <path d=\"M4 9 C 34 1, 64 20, 94 27\" stroke=\"currentColor\" stroke-width=\"2.6\" fill=\"none\" stroke-linecap=\"round\"\/>\n            <path d=\"M86 20 L 94 27 L 84 30\" stroke=\"currentColor\" stroke-width=\"2.6\" fill=\"none\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n          <\/svg>\n        <\/div>\n        <div class=\"phone\" id=\"phone\" role=\"img\" aria-label=\"Preview of the Lean app with TDEE drill-down\">\n          <div class=\"notch\"><\/div>\n          <div class=\"phone-screen\">\n            <button class=\"phone-back\" id=\"phoneBack\" aria-label=\"Back\">&#8249;<\/button>\n            <div id=\"phoneImg\" class=\"phone-bg tab-depense\" role=\"img\" aria-label=\"Lean preview, Expenditure tab\"><\/div>\n            <div class=\"phone-zones\" id=\"phoneZones\">\n              <div class=\"z\" data-sub=\"BMR\"  style=\"top:11%;height:21%\" role=\"button\" tabindex=\"0\" aria-label=\"BMR detail\"><\/div>\n              <div class=\"z\" data-sub=\"NEAT\" style=\"top:33%;height:16%\" role=\"button\" tabindex=\"0\" aria-label=\"NEAT detail\"><\/div>\n              <div class=\"z\" data-sub=\"EAT\"  style=\"top:50%;height:16%\" role=\"button\" tabindex=\"0\" aria-label=\"EAT detail\"><\/div>\n              <div class=\"z\" data-sub=\"TEF\"  style=\"top:67%;height:16%\" role=\"button\" tabindex=\"0\" aria-label=\"TEF detail\"><\/div>\n            <\/div>\n            <div class=\"phone-navbar\" id=\"phoneNav\" aria-hidden=\"false\">\n              <button data-tab=\"bilan\"     type=\"button\" aria-label=\"Balance tab\"><\/button>\n              <button data-tab=\"kcal\"      type=\"button\" aria-label=\"Calories tab\"><\/button>\n              <button data-tab=\"depense\"   type=\"button\" aria-label=\"Expenditure tab\"><\/button>\n              <button data-tab=\"strategie\" type=\"button\" aria-label=\"Strategy tab\"><\/button>\n            <\/div>\n          <\/div>\n        <\/div>\n        <div class=\"phone-tabs\" role=\"tablist\" aria-label=\"Navigate the Lean app\">\n          <button data-tab=\"bilan\"     type=\"button\">Balance<\/button>\n          <button data-tab=\"kcal\"      type=\"button\">Calories<\/button>\n          <button data-tab=\"depense\"   type=\"button\" class=\"on\">Expenditure<\/button>\n          <button data-tab=\"strategie\" type=\"button\">Strategy<\/button>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n\n  <div class=\"snippet rev\">\n    <div class=\"lbl\">Quick answer<\/div>\n    <p>The three-step method, the one used by the references of the field (Helms 2014, Kerksick 2018): the <b>protein<\/b> first, on your lean mass; the <b>fat<\/b> second, as a floor (20 to 30&nbsp;% of your calories, it carries your hormones); the <b>carbs<\/b> last, taking all remaining calories to fuel your training. For a 75&nbsp;kg man at 15&nbsp;% body fat who is cutting, that gives about <b>172&nbsp;g of protein, 168&nbsp;g of carbs and 50&nbsp;g of fat<\/b>. Calculate your exact split below.<\/p>\n  <\/div>\n<\/section>\n\n<h2 class=\"sect\"><span class=\"num\">02 &middot; Calculator<\/span>Calculate your macro split in grams<\/h2>\n<p>Your measurements, your steps, your goal: the calculator rebuilds your non-exercise expenditure (BMR on lean mass + NEAT from your steps + TEF, the same formulas as our <a href=\"\/en\/calculateur-tdee\/\">TDEE calculator<\/a>), applies your goal, then splits in order: protein on your lean mass, fat at 25&nbsp;% of calories, carbs on the rest. Your sessions (EAT) add on top: on training days, carbs go up. Body fat unknown? Go through our <a href=\"\/en\/calculateur-masse-grasse\/\">body fat calculator<\/a>.<\/p>\n\n<div class=\"calc-board\" id=\"calcBoard\">\n  <div class=\"calc-inputs\">\n    <h3>Your measurements<\/h3>\n    <div class=\"calc-row\">\n      <label>Sex<\/label>\n      <div class=\"calc-sex\">\n        <label><input type=\"radio\" name=\"sex\" value=\"M\" checked><span>Male<\/span><\/label>\n        <label><input type=\"radio\" name=\"sex\" value=\"F\"><span>Female<\/span><\/label>\n      <\/div>\n    <\/div>\n    <div class=\"calc-row\"><label for=\"cAge\">Age (years)<\/label><input id=\"cAge\" type=\"number\" min=\"14\" max=\"90\" value=\"30\"><\/div>\n    <div class=\"calc-row\"><label for=\"cWeight\">Weight (kg)<\/label><input id=\"cWeight\" type=\"number\" min=\"35\" max=\"200\" step=\"0.1\" value=\"75\"><\/div>\n    <div class=\"calc-row\"><label for=\"cHeight\">Height (cm)<\/label><input id=\"cHeight\" type=\"number\" min=\"140\" max=\"220\" value=\"178\"><\/div>\n    <div class=\"calc-row\">\n      <label for=\"cBodyfat\">Body fat<span class=\"steps-out\" id=\"bfVal\">15&nbsp;%<\/span><\/label>\n      <div class=\"calc-bf\"><input id=\"cBodyfat\" type=\"range\" min=\"5\" max=\"45\" step=\"0.5\" value=\"15\"><\/div>\n      <button type=\"button\" class=\"bf-help\" id=\"bfHelp\">You do not know your body fat&nbsp;?<\/button>\n      <div class=\"calc-note\" id=\"bfHint\">Typical ranges for a man: 10 to 25&nbsp;%. Measure it with our body fat calculator (tape) or the BodyScan photo.<\/div>\n    <\/div>\n    <div class=\"calc-row\">\n      <label for=\"cSteps\">Daily steps (7-day average)<span class=\"steps-out\" id=\"stepsVal\">8,000 steps<\/span><\/label>\n      <div class=\"calc-bf\"><input id=\"cSteps\" type=\"range\" min=\"1000\" max=\"30000\" step=\"500\" value=\"8000\"><\/div>\n      <div class=\"calc-note\">Your real average lives in the Health app or Google Fit. It is what calibrates your carbs, not a ticked box.<\/div>\n    <\/div>\n    <div class=\"calc-row\">\n      <label>Your goal<\/label>\n      <div class=\"calc-sex\">\n        <label><input type=\"radio\" name=\"goal\" value=\"cut\" checked><span>Cutting<\/span><\/label>\n        <label><input type=\"radio\" name=\"goal\" value=\"maintain\"><span>Maintenance<\/span><\/label>\n        <label><input type=\"radio\" name=\"goal\" value=\"bulk\"><span>Muscle gain<\/span><\/label>\n      <\/div>\n      <div class=\"calc-note\" id=\"goalHint\">Cutting: target at 80&nbsp;% of your non-exercise expenditure, protein at the top of the range.<\/div>\n    <\/div>\n  <\/div>\n\n  <div class=\"calc-results\">\n    <div class=\"calc-tdee\">\n      <div class=\"label\">Your calorie target (excluding sessions)<\/div>\n      <div class=\"val\"><span id=\"rKcal\">1&#8239;812<\/span><span class=\"unit\">kcal\/day<\/span><\/div>\n      <div class=\"neat-meter\" aria-hidden=\"true\"><i id=\"kcalBar\"><\/i><\/div>\n      <span class=\"neat-pill warn\" id=\"kcalPill\">Cutting target<\/span>\n      <div class=\"note\">Non-exercise expenditure rebuilt from your measurements (lean-mass BMR + step-based NEAT + TEF), then your goal applied. Your sessions add on top: eat your training carbs as extra on those days.<\/div>\n    <\/div>\n\n    <div class=\"bmr-duo\">\n      <div class=\"bd-card pas\">\n        <div class=\"label\">Proteins<\/div>\n        <div class=\"v\"><span id=\"rP\">172<\/span><span class=\"u\">g<\/span><\/div>\n        <div class=\"s\"><b id=\"rP4\">688<\/b> kcal &middot; 4 kcal\/g &middot; on your lean mass<\/div>\n      <\/div>\n      <div class=\"bd-card\">\n        <div class=\"label\">Carbohydrates<\/div>\n        <div class=\"v\"><span id=\"rG\">168<\/span><span class=\"u\">g<\/span><\/div>\n        <div class=\"s\"><b id=\"rG4\">672<\/b> kcal &middot; 4 kcal\/g &middot; the adjustment variable<\/div>\n      <\/div>\n    <\/div>\n\n    <div class=\"share-card\">\n      <div class=\"label\">Fats<\/div>\n      <div class=\"share-meter\" aria-hidden=\"true\"><i id=\"shareBar\"><\/i><\/div>\n      <p><b id=\"rL\">50<\/b>&nbsp;g per day (<b id=\"rL9\">453<\/b>&nbsp;kcal, 9&nbsp;kcal\/g), i.e. 25&nbsp;% of your calories: the floor supporting your hormones (healthy range: 20 to 30&nbsp;%, Helms 2014). Below 20&nbsp;% long term, it is no longer discipline, it is a risk.<\/p>\n    <\/div>\n\n    <div class=\"calc-delta\" id=\"deltaLine\">\n      In g\/kg of body weight: <b id=\"dPkg\">2,3<\/b> of protein, <b id=\"dGkg\">2,2<\/b> of carbs, <b id=\"dLkg\">0,7<\/b> of fat. On training days, add your session calories <b>as carbs<\/b> : they are what refills the tank.\n    <\/div>\n\n    <div class=\"reco-card\" id=\"recoCard\">\n      <div class=\"rc-title\" id=\"recoTitle\">Recommendation<\/div>\n      <p class=\"rc-body\" id=\"recoBody\"><\/p>\n      <p class=\"rc-disclaimer\">Educational estimate based on published recommendations (Helms 2014; Morton 2018; Kerksick 2018). This calculator is not a diagnostic tool and does not replace medical advice.<\/p>\n    <\/div>\n  <\/div>\n<\/div>\n\n<div class=\"micro-cta\">\n  This calculator gives your split with transparent formulas. <b>Lean goes further:<\/b> your three macro counters fill in real time with every logged food, your expenditure moves with your steps, and your daily target adjusts continuously. <a href=\"https:\/\/apps.apple.com\/fr\/app\/lean-calorie-ai-podometre\/id6738668646?utm_source=seo&#038;utm_medium=blog&#038;utm_campaign=calc-macros\">Track your macros in Lean.<\/a>\n<\/div>\n\n<div class=\"bf-modal\" id=\"bfModal\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"bfModalTitle\">\n  <div class=\"bf-ovl\" id=\"bfOvl\"><\/div>\n  <div class=\"bf-dialog\">\n    <button class=\"bf-close\" id=\"bfClose\" type=\"button\" aria-label=\"Fermer\">&times;<\/button>\n    <div class=\"bf-title\" id=\"bfModalTitle\">You do not know your body fat&nbsp;?<\/div>\n    <p class=\"bf-text\">Lean's AI BodyScan measures it in 5&nbsp;seconds from a single photo: body fat, lean mass and fat mass, straight from your phone.<\/p>\n    <div class=\"bodyscan-illust\" style=\"margin:0 auto;max-width:200px\">\n      <div class=\"mini-phone\" style=\"max-width:200px;padding:3px;border:1px solid rgba(255,255,255,.07);border-radius:22px;background:linear-gradient(145deg,#2a2a2a,#0e0e0e);box-shadow:0 18px 36px rgba(0,0,0,.14);position:relative;margin:0 auto\">\n        <div class=\"notch\" style=\"position:absolute;top:0;left:50%;transform:translateX(-50%);width:40px;height:11px;background:#0a0a0a;border-radius:0 0 7px 7px;z-index:5\"><\/div>\n        <div class=\"scr\" style=\"border-radius:18px;overflow:hidden;background:#FAF0E6;aspect-ratio:9\/19.5\"><img src=\"https:\/\/lean-app.com\/wp-content\/uploads\/2026\/05\/lvm-bodyscan-result.webp\" alt=\"R\u00e9sultat BodyScan IA : bodyfat mesur\u00e9 depuis une photo, masse maigre et masse grasse\" width=\"200\" height=\"433\" loading=\"lazy\" decoding=\"async\" style=\"width:100%;height:100%;object-fit:cover;display:block\"><\/div>\n      <\/div>\n    <\/div>\n    <p class=\"bf-sub\">Two options: our <a href=\"\/en\/calculateur-masse-grasse\/\">tape measure calculator<\/a> (2 minutes, free), or the BodyScan photo above. Meanwhile, leave the slider on an approximate value: an approximate body fat beats a guesstimated split.<\/p>\n    <div class=\"bf-stores\">\n      <a href=\"https:\/\/apps.apple.com\/fr\/app\/lean-calorie-ai-podometre\/id6738668646?utm_source=seo&#038;utm_medium=blog&#038;utm_campaign=calc-macros\" target=\"_blank\" rel=\"noopener\"><img src=\"https:\/\/lean-app.com\/wp-content\/uploads\/2026\/05\/lvm-appstore-official.webp\" alt=\"T\u00e9l\u00e9charger sur l'App Store\" width=\"413\" height=\"122\" loading=\"lazy\" decoding=\"async\"><\/a>\n      <a href=\"https:\/\/play.google.com\/store\/apps\/details?id=com.lean.testsqflite&#038;utm_source=seo&#038;utm_medium=blog&#038;utm_campaign=calc-macros\" target=\"_blank\" rel=\"noopener\"><img src=\"https:\/\/lean-app.com\/wp-content\/uploads\/2026\/05\/lvm-googleplay-official.webp\" alt=\"Disponible sur Google Play\" width=\"315\" height=\"95\" loading=\"lazy\" decoding=\"async\"><\/a>\n    <\/div>\n  <\/div>\n<\/div>\n\n<h2 class=\"sect\"><span class=\"num\">03 &middot; The science<\/span>Why the order of macros matters more than their percentages<\/h2>\n\n<div class=\"statement\"><p>One macro is fixed, one is protected, one adjusts. <span class=\"accent\">In that order.<\/span><\/p><\/div>\n\n<div class=\"key-grid\">\n  <div class=\"key-card\"><div class=\"kv\">1st<span>protein<\/span><\/div><div class=\"kl\">fixed on your lean mass: it protects muscle, whatever the goal (Morton 2018, Helms 2014)<\/div><\/div>\n  <div class=\"key-card\"><div class=\"kv\">20-30<span>% kcal<\/span><\/div><div class=\"kl\">the fat floor supporting hormonal production, not to be broken when cutting (Helms 2014)<\/div><\/div>\n  <div class=\"key-card\"><div class=\"kv\">the rest<span>carbs<\/span><\/div><div class=\"kl\">the adjustment variable: they follow your real expenditure and fuel your sessions (Kerksick 2018)<\/div><\/div>\n<\/div>\n\n<div class=\"body\">\n<p>Fixed-percentage splits, the famous &laquo;&nbsp;40\/40\/20&nbsp;&raquo;, have two structural flaws. First, they apply to a calorie total they do not compute: 40&nbsp;% of a wrong expenditure is still wrong. Second, they treat the three macros as interchangeable, when they have neither the same role nor the same urgency.<\/p>\n<p>The hierarchy that reaches consensus among the references of the field (Helms 2014 for contest preparation, Kerksick 2018 for the ISSN review) comes in three steps. <b>Protein first<\/b> : it is set in grams on your lean mass, not as a percentage, because its role (building and protecting muscle) does not depend on your calorie total. <b>Fat second<\/b> : it carries your hormonal production; below 20&nbsp;% of calories long term you are playing with fire, hence a 20-30&nbsp;% floor. <b>Carbs last<\/b> : everything that remains. Not &laquo;&nbsp;leftovers&nbsp;&raquo; in a dismissive sense: they are your training fuel, and it is precisely because they are the adjustment variable that they absorb the deficit when cutting and the surplus when bulking.<\/p>\n<p>This calculator adds the brick missing everywhere else: the starting calorie total is rebuilt from <b>your measurements<\/b> (BMR on lean mass, NEAT on your real steps, TEF), not from an activity box ticked on an optimistic day. The same formulas as our <a href=\"\/en\/calculateur-tdee\/\">TDEE calculator<\/a>, so the consistency is verifiable from page to page.<\/p>\n<p>Where does this fit in the equation? The macros you eat also determine the <a href=\"\/en\/effet-thermique-des-aliments\/\">TEF<\/a> (4th brick of TDEE = BMR + NEAT + EAT + TEF): protein burns 20 to 30&nbsp;% of its calories in digestion, carbs 5 to 10&nbsp;%, fat almost nothing. A protein-rich split slightly raises your expenditure, and Lean counts this effect on your actually logged macros.<\/p>\n<\/div>\n\n<div class=\"bodyscan-illust\" style=\"margin:40px auto 8px;display:flex;flex-direction:column;align-items:center;gap:14px;max-width:220px\">\n  <div class=\"mini-phone\" style=\"max-width:200px;padding:3px;border:1px solid rgba(255,255,255,.07);border-radius:22px;background:linear-gradient(145deg,#2a2a2a,#0e0e0e);box-shadow:0 18px 36px rgba(0,0,0,.14);position:relative\">\n    <div class=\"notch\" style=\"position:absolute;top:0;left:50%;transform:translateX(-50%);width:40px;height:11px;background:#0a0a0a;border-radius:0 0 7px 7px;z-index:5\"><\/div>\n    <div class=\"scr\" style=\"border-radius:18px;overflow:hidden;background:#FAF0E6;aspect-ratio:9\/19.5\"><img src=\"https:\/\/lean-app.com\/wp-content\/uploads\/2026\/05\/lvm-screen_kcal.webp\" alt=\"\u00c9cran Calories de Lean : les trois compteurs de macros remplis \u00e0 chaque aliment logg\u00e9\" width=\"200\" height=\"433\" loading=\"lazy\" decoding=\"async\" style=\"width:100%;height:100%;object-fit:cover;display:block\"><\/div>\n  <\/div>\n  <div class=\"bodyscan-cap\" style=\"font-size:13px;color:#6E6E73;text-align:center;line-height:1.5\"><b style=\"display:block;color:#0E0E10;font-weight:600;margin-bottom:3px\">Your 3 counters, live<\/b>Protein, carbs, fat: every logged food fills the counters in the app.<\/div>\n<\/div>\n\n<div class=\"body\">\n<p>One last note of honesty: the precision of your split depends on that of your expenditure, hence your body fat and your steps. It is a solid starting estimate, to adjust on your real results over the weeks: the perfect number does not exist, the measured trajectory does.<\/p>\n<\/div>\n\n<div class=\"micro-cta\">\n  The two upstream bricks: your <a href=\"\/en\/calculateur-masse-grasse\/\">tape-measured body fat<\/a> and your <a href=\"\/en\/calculateur-proteines\/\">lean-mass protein<\/a>. All the tools live on the <a href=\"\/en\/calculateurs\/\">calculators hub<\/a>.\n<\/div>\n\n<h2 class=\"sect\"><span class=\"num\">04 &middot; Three worked profiles<\/span>The same bodies, from body fat to macros<\/h2>\n<p>The profiles from our <a href=\"\/en\/calculateur-masse-grasse\/\">body fat<\/a> and <a href=\"\/en\/calculateur-proteines\/\">protein<\/a>calculators, carried through: their full split. Reproduce every number by entering the same parameters above.<\/p>\n\n<div class=\"profile-grid\">\n  <div class=\"profile-card\">\n    <h4>She cuts cleanly<\/h4>\n    <div class=\"meta\">Woman &middot; 31 &middot; 64&nbsp;kg &middot; 5ft5 &middot; body fat 27&nbsp;% &middot; 6,000 steps &middot; cutting<\/div>\n    <div class=\"rows\">\n      <div class=\"rw\"><span>Kcal target (excluding sessions)<\/span><span class=\"v\">&asymp;&nbsp;1,379 kcal\/day<\/span><\/div>\n      <div class=\"rw lean\"><span>Proteins<\/span><span class=\"v\">&asymp;&nbsp;126 g<\/span><\/div>\n      <div class=\"rw\"><span>Carbohydrates<\/span><span class=\"v\">&asymp;&nbsp;133 g<\/span><\/div>\n      <div class=\"rw\"><span>Fats<\/span><span class=\"v\">&asymp;&nbsp;38 g<\/span><\/div>\n    <\/div>\n    <div class=\"delta\">High protein for 46.7&nbsp;kg of lean mass: the cut protects her muscle. <b style=\"color:var(--pink)\">On session days, her carbs go up, not her deficit.<\/b><\/div>\n  <\/div>\n\n  <div class=\"profile-card\">\n    <h4>The lean athlete cutting<\/h4>\n    <div class=\"meta\">Man &middot; 29 &middot; 75&nbsp;kg &middot; 5ft10 &middot; body fat 12.5&nbsp;% &middot; 8,000 steps &middot; cutting<\/div>\n    <div class=\"rows\">\n      <div class=\"rw\"><span>Kcal target (excluding sessions)<\/span><span class=\"v\">&asymp;&nbsp;1,854 kcal\/day<\/span><\/div>\n      <div class=\"rw lean\"><span>Proteins<\/span><span class=\"v\">&asymp;&nbsp;177 g<\/span><\/div>\n      <div class=\"rw\"><span>Carbohydrates<\/span><span class=\"v\">&asymp;&nbsp;172 g<\/span><\/div>\n      <div class=\"rw\"><span>Fats<\/span><span class=\"v\">&asymp;&nbsp;51 g<\/span><\/div>\n    <\/div>\n    <div class=\"delta\">Tight daily carbs: the sign of a well-calibrated late-stage cut. <b style=\"color:var(--pink)\">His margin is in his steps: 2,000 more &asymp; 65 kcal of target, about ~16 g of carbs gained.<\/b><\/div>\n  <\/div>\n\n  <div class=\"profile-card\">\n    <h4>He builds cleanly<\/h4>\n    <div class=\"meta\">Man &middot; 42 &middot; 92&nbsp;kg &middot; 5ft11 &middot; body fat 26.5&nbsp;% &middot; 10,000 steps &middot; bulking<\/div>\n    <div class=\"rows\">\n      <div class=\"rw\"><span>Kcal target (excluding sessions)<\/span><span class=\"v\">&asymp;&nbsp;2,704 kcal\/day<\/span><\/div>\n      <div class=\"rw lean\"><span>Proteins<\/span><span class=\"v\">&asymp;&nbsp;128 g<\/span><\/div>\n      <div class=\"rw\"><span>Carbohydrates<\/span><span class=\"v\">&asymp;&nbsp;379 g<\/span><\/div>\n      <div class=\"rw\"><span>Fats<\/span><span class=\"v\">&asymp;&nbsp;75 g<\/span><\/div>\n    <\/div>\n    <div class=\"delta\">A moderate 10&nbsp;% surplus, all into carbs: the gain stays clean. <b style=\"color:var(--pink)\">Body fat re-measured every 4 weeks to check.<\/b><\/div>\n  <\/div>\n<\/div>\n\n<h2 class=\"sect\"><span class=\"num\">05 &middot; In practice<\/span>Living with your macros without turning them into a religion<\/h2>\n\n<div class=\"body\">\n<p>A split is only useful if it survives real life. The four rules that prevent 90&nbsp;% of dropouts:<\/p>\n<\/div>\n\n<div class=\"profile-grid\">\n  <div class=\"profile-card\">\n    <h4>1. Protein as the absolute priority<\/h4>\n    <div class=\"meta\">The only macro to hit to the gram<\/div>\n    <p style=\"margin:0;font-size:14px;line-height:1.55;color:var(--ink-2)\">Hit your protein every day, even when the rest slips: one source at every meal. Carbs and fat tolerate daily approximation, muscle does not.<\/p>\n  <\/div>\n  <div class=\"profile-card\">\n    <h4>2. Carbs around your sessions<\/h4>\n    <div class=\"meta\">The right macro at the right time<\/div>\n    <p style=\"margin:0;font-size:14px;line-height:1.55;color:var(--ink-2)\">Place most of your carbs before and after training: performance in the session, recovery afterwards. On off days they naturally come down.<\/p>\n  <\/div>\n  <div class=\"profile-card\">\n    <h4>3. Fat without hunting it<\/h4>\n    <div class=\"meta\">The floor fills itself<\/div>\n    <p style=\"margin:0;font-size:14px;line-height:1.55;color:var(--ink-2)\">Cooking oil, eggs, fatty fish, nuts: the 20-25&nbsp;% floor fills effortlessly in a normal diet. Just watch it does not collapse in an aggressive cut.<\/p>\n  <\/div>\n  <div class=\"profile-card\">\n    <h4>4. Precision on the trend, not the day<\/h4>\n    <div class=\"meta\">The weekly average makes the result<\/div>\n    <p style=\"margin:0;font-size:14px;line-height:1.55;color:var(--ink-2)\">A day at &plusmn;20&nbsp;g changes nothing; a week consistently off does. Look at your 7-day average, and adjust in small 10-15&nbsp;g steps.<\/p>\n  <\/div>\n<\/div>\n\n<div class=\"bodyscan-illust\" style=\"margin:40px auto 8px;display:flex;flex-direction:column;align-items:center;gap:14px;max-width:220px\">\n  <div class=\"mini-phone\" style=\"max-width:200px;padding:3px;border:1px solid rgba(255,255,255,.07);border-radius:22px;background:linear-gradient(145deg,#2a2a2a,#0e0e0e);box-shadow:0 18px 36px rgba(0,0,0,.14);position:relative\">\n    <div class=\"notch\" style=\"position:absolute;top:0;left:50%;transform:translateX(-50%);width:40px;height:11px;background:#0a0a0a;border-radius:0 0 7px 7px;z-index:5\"><\/div>\n    <div class=\"scr\" style=\"border-radius:18px;overflow:hidden;background:#FAF0E6;aspect-ratio:9\/19.5\"><img src=\"https:\/\/lean-app.com\/wp-content\/uploads\/2026\/05\/lvm-screen_bilan.webp\" alt=\"\u00c9cran Bilan de Lean : balance calorique et macros du jour en un regard\" width=\"200\" height=\"433\" loading=\"lazy\" decoding=\"async\" style=\"width:100%;height:100%;object-fit:cover;display:block\"><\/div>\n  <\/div>\n  <div class=\"bodyscan-cap\" style=\"font-size:13px;color:#6E6E73;text-align:center;line-height:1.5\"><b style=\"display:block;color:#0E0E10;font-weight:600;margin-bottom:3px\">The overview at a glance<\/b>Calorie balance and daily macros: the trend is read, not guessed.<\/div>\n<\/div>\n\n<div class=\"micro-cta\">\n  A useful reminder from our <a href=\"\/en\/etude-base-donnees-calories\/\">database study<\/a> : more than one entry in five is inconsistent on protein bars. After a scan, check the macros match the calories.\n<\/div>\n\n<h2 class=\"sect\"><span class=\"num\">06 &middot; Myth vs reality<\/span>The &laquo;&nbsp;40\/40\/20&nbsp;&raquo; and the fear of carbs<\/h2>\n\n<div class=\"key-grid\">\n  <div class=\"key-card\"><div class=\"kv\">0<span>study<\/span><\/div><div class=\"kl\">backs the universal &laquo;&nbsp;40\/40\/20&nbsp;&raquo;: it is a coaching convenience, not a scientific recommendation<\/div><\/div>\n  <div class=\"key-card\"><div class=\"kv\">&asymp;<span>at equal kcal<\/span><\/div><div class=\"kl\">at equal calories and protein, the carb\/fat share barely changes fat loss: the deficit decides (Kerksick 2018)<\/div><\/div>\n  <div class=\"key-card\"><div class=\"kv\">2&times;4<span>+1&times;9<\/span><\/div><div class=\"kl\">4 kcal\/g for protein and carbs, 9 for fat: the arithmetic that makes percentages misleading<\/div><\/div>\n<\/div>\n\n<div class=\"mvr\">\n  <div class=\"mv myth\">\n    <div class=\"tag\">The myth<\/div>\n    <h4>&laquo;&nbsp;There is a magic split, and carbs make you fat&nbsp;&raquo;<\/h4>\n    <p>The &laquo;&nbsp;40\/40\/20&nbsp;&raquo; (or the low-carb variant of the moment) promises a universal split. But a percentage means nothing without the total: 40&nbsp;% protein for a 55&nbsp;kg person at maintenance and for a 100&nbsp;kg man cutting are two unrelated realities. As for carbs &laquo;&nbsp;making you fat&nbsp;&raquo;: at equal calories and protein, comparative studies show no systematic low-carb advantage for fat loss (ISSN review, Kerksick 2018). The deficit drives the loss, not the war on one macro.<\/p>\n  <\/div>\n  <div class=\"mv real\">\n    <div class=\"tag\">The measured reality<\/div>\n    <h4>Grams ranked on YOUR expenditure<\/h4>\n    <p>The sequence that holds: a calorie total rebuilt from your measurements, protein fixed on your lean mass, a fat floor for your hormones, and carbs taking the rest, placed around your sessions. Your split changes when your body or your goal changes, not when fashion does.<\/p>\n    <p>The low-carb choice remains available as a personal preference (satiety, digestive comfort): as long as protein and calories are in place, it is a matter of taste, not physiology. This calculator gives the balanced version; feel free to shift carbs toward fat if you stick to it better.<\/p>\n  <\/div>\n<\/div>\n\n<div class=\"body\">\n<p>The practical consequence: pick the split you can hold for 12 weeks, not 12 days. Adherence beats optimization, which is precisely the first floor of the Progression Pyramid in the app: adherence &gt; calorie target &gt; the rest.<\/p>\n<\/div>\n\n<div class=\"micro-cta\">\n  To place your macros within your full expenditure: the <a href=\"\/en\/calculateur-tdee\/\">TDEE calculator<\/a> and the guide on <a href=\"\/en\/calculer-vraie-depense-calorique\/\">calculate your real calorie expenditure<\/a>.\n<\/div>\n\n<h2 class=\"sect\"><span class=\"num\">07 &middot; FAQ<\/span>Everything you wonder about macros<\/h2>\n<details class=\"faq\"><summary>How do you calculate your macros&nbsp;?<\/summary><div class=\"faq-body\"><p>In order: first compute your expenditure from your measurements (lean mass, real steps), apply your goal (deficit, maintenance or surplus), then split: protein in grams on your lean mass, fat at 20-30% of calories, and carbs take everything left. That is exactly what this page's calculator does, formulas on display.<\/p><\/div><\/details>\n<details class=\"faq\"><summary>What is a good macro split for cutting&nbsp;?<\/summary><div class=\"faq-body\"><p>There is no magic percentage: when cutting, protein goes up (2.3 to 3.1 g per kilo of lean mass, Helms 2014), fat holds its 20-25% floor, and carbs absorb the deficit. If your carbs drop below ~1 g\/kg, your deficit is probably too aggressive: raise the target rather than break your split.<\/p><\/div><\/details>\n<details class=\"faq\"><summary>Is the 40\/40\/20 valid&nbsp;?<\/summary><div class=\"faq-body\"><p>It is a mnemonic convenience, not a scientific recommendation. Two problems: percentages mean nothing without the calorie total, and they disconnect protein from the lean mass it must feed. That said, for some profiles the 40\/40\/20 happens to land near the right answer: this calculator tells you whether that is your case.<\/p><\/div><\/details>\n<details class=\"faq\"><summary>Do carbs make you fat&nbsp;?<\/summary><div class=\"faq-body\"><p>No: a calorie surplus makes you fat, whatever macro carries it. At equal calories and protein, low-carb vs high-carb comparisons show no systematic difference in fat loss (Kerksick 2018). Carbs even play a key training role: performance, recovery, and keeping intensity in a deficit.<\/p><\/div><\/details>\n<details class=\"faq\"><summary>Should some days have more carbs&nbsp;?<\/summary><div class=\"faq-body\"><p>The simple, robust version: add your session calories as carbs on training days, and stay on your base on off days. More sophisticated &laquo;&nbsp;cycling&nbsp;&raquo; (planned high\/low days) can help some people's adherence, but creates no metabolic magic: the weekly total remains the judge.<\/p><\/div><\/details>\n<details class=\"faq\"><summary>What is the minimum fat per day&nbsp;?<\/summary><div class=\"faq-body\"><p>The practical marker: do not stay below 20% of your calories long term (Helms 2014), i.e. about 0.5 to 0.6 g per kilo of body weight for most profiles. Fat carries hormonal production and the absorption of fat-soluble vitamins: it is a health floor, not an optimization variable.<\/p><\/div><\/details>\n<details class=\"faq\"><summary>Why are my sessions not in the calculation&nbsp;?<\/summary><div class=\"faq-body\"><p>Because they vary too much from day to day to live inside an average. The calculator gives your non-exercise base (BMR + NEAT + TEF); your sessions (EAT) add on top, as carbs, on the days they happen. That is more precise than a multiplier smoothing your week, and it is exactly how the app counts: every tracked session adds to the day it exists.<\/p><\/div><\/details>\n<details class=\"faq\"><summary>Do I have to weigh all my food&nbsp;?<\/summary><div class=\"faq-body\"><p>At the start, weighing the main sources (starches, meats, fats) for 2-3 weeks calibrates your eye: afterwards, scanning and estimates cover most meals, with an occasional recalibration weigh. Gram-level precision is only needed on protein and at the very end of a cut.<\/p><\/div><\/details>\n<details class=\"faq\"><summary>Do my macros change if my weight changes&nbsp;?<\/summary><div class=\"faq-body\"><p>Yes, doubly: your weight and composition move (hence lean mass and protein), and your expenditure moves with them (hence calories and carbs). Recompute every 3-4 weeks, or let the app do it continuously: that is one of its roles, BMR recalculated on measured body fat and a target adjusted daily.<\/p><\/div><\/details>\n<details class=\"faq\"><summary>Does this calculator give an exact prescription&nbsp;?<\/summary><div class=\"faq-body\"><p>No: a solid starting point, based on published consensus and your measurements. The individual optimum adjusts on your real results (weight, body fat, performance) over the weeks. And as always: with any condition or medical doubt, seek professional advice before changing your diet.<\/p><\/div><\/details>\n\n<div class=\"sources\">\n  <h4>Scientific sources<\/h4>\n  <ol>\n    <li>Helms ER, Aragon AA, Fitschen PJ. Evidence-based recommendations for natural bodybuilding contest preparation: nutrition and supplementation. J Int Soc Sports Nutr. 2014;11:20. <a href=\"https:\/\/pubmed.ncbi.nlm.nih.gov\/24864135\/\" target=\"_blank\" rel=\"noopener\">PubMed 24864135<\/a>.<\/li>\n    <li>Kerksick CM, Wilborn CD, Roberts MD, et al. ISSN exercise &amp; sports nutrition review update: research &amp; recommendations. J Int Soc Sports Nutr. 2018;15(1):38. <a href=\"https:\/\/pubmed.ncbi.nlm.nih.gov\/30068354\/\" target=\"_blank\" rel=\"noopener\">PubMed 30068354<\/a>.<\/li>\n    <li>Morton RW, Murphy KT, McKellar SR, et al. A systematic review, meta-analysis and meta-regression of the effect of protein supplementation on resistance training-induced gains in muscle mass and strength. Br J Sports Med. 2018;52(6):376-384. <a href=\"https:\/\/pubmed.ncbi.nlm.nih.gov\/28698222\/\" target=\"_blank\" rel=\"noopener\">PubMed 28698222<\/a>.<\/li>\n    <li>Phillips SM, Van Loon LJ. Dietary protein for athletes: from requirements to optimum adaptation. J Sports Sci. 2011;29 Suppl 1:S29-38. <a href=\"https:\/\/pubmed.ncbi.nlm.nih.gov\/22150425\/\" target=\"_blank\" rel=\"noopener\">PubMed 22150425<\/a>.<\/li>\n    <li>Ainsworth BE, Haskell WL, Herrmann SD, et al. 2011 Compendium of Physical Activities: a second update of codes and MET values. Med Sci Sports Exerc. 2011;43(8):1575-81. <a href=\"https:\/\/pubmed.ncbi.nlm.nih.gov\/21681120\/\" target=\"_blank\" rel=\"noopener\">PubMed 21681120<\/a>.<\/li>\n  <\/ol>\n<\/div>\n\n<div class=\"get-band\">\n  <h3>Your macros, counted effortlessly<\/h3>\n  <p>Three counters filling with every logged food, an expenditure moving with your steps, a target continuously recalculated on your measured body fat. This page's split, alive in your pocket. Free download, 7-day trial on the annual plan.<\/p>\n  <div class=\"stores\">\n    <a href=\"https:\/\/apps.apple.com\/fr\/app\/lean-calorie-ai-podometre\/id6738668646?utm_source=seo&#038;utm_medium=blog&#038;utm_campaign=calc-macros\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" src=\"https:\/\/lean-app.com\/wp-content\/uploads\/2026\/05\/lvm-appstore-official.webp\" alt=\"T\u00e9l\u00e9charger sur l'App Store\" loading=\"lazy\"><\/a>\n    <a href=\"https:\/\/play.google.com\/store\/apps\/details?id=com.lean.testsqflite&#038;utm_source=seo&#038;utm_medium=blog&#038;utm_campaign=calc-macros\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" src=\"https:\/\/lean-app.com\/wp-content\/uploads\/2026\/05\/lvm-googleplay-official.webp\" alt=\"Disponible sur Google Play\" loading=\"lazy\"><\/a>\n  <\/div>\n<\/div>\n<\/main>\n<\/div>\n\n<script data-wpmeteor-nooptimize=\"true\" type=\"application\/ld+json\">\n{\n  \"@context\": \"https:\/\/schema.org\",\n  \"@graph\": [\n    {\n      \"@type\": \"Article\",\n      \"@id\": \"https:\/\/lean-app.com\/calculateur-macros\/#article\",\n      \"headline\": \"Calculateur de macros : ta r\u00e9partition prot\u00e9ines, glucides, lipides sur tes mesures\",\n      \"description\": \"Calcule ta r\u00e9partition de macros en grammes : prot\u00e9ines sur ta masse maigre, lipides en plancher hormonal, glucides selon ta d\u00e9pense r\u00e9elle. Sourc\u00e9 et gratuit.\",\n      \"inLanguage\": \"fr-FR\",\n      \"author\": {\n        \"@type\": \"Organization\",\n        \"name\": \"L'\u00e9quipe Lean\",\n        \"url\": \"https:\/\/lean-app.com\/\"\n      },\n      \"publisher\": {\n        \"@type\": \"Organization\",\n        \"name\": \"Lean\",\n        \"url\": \"https:\/\/lean-app.com\/\"\n      },\n      \"datePublished\": \"2026-08-27\",\n      \"dateModified\": \"2026-08-27\",\n      \"mainEntityOfPage\": \"https:\/\/lean-app.com\/calculateur-macros\/\"\n    },\n    {\n      \"@type\": \"WebApplication\",\n      \"@id\": \"https:\/\/lean-app.com\/calculateur-macros\/#calculator\",\n      \"name\": \"Calculateur de macros (P, G, L)\",\n      \"applicationCategory\": \"HealthApplication\",\n      \"operatingSystem\": \"Web\",\n      \"url\": \"https:\/\/lean-app.com\/calculateur-macros\/\",\n      \"description\": \"R\u00e9partit tes calories en prot\u00e9ines, glucides et lipides \u00e0 partir de tes mesures (masse maigre, pas r\u00e9els) et de ton objectif.\"\n    },\n    {\n      \"@type\": \"BreadcrumbList\",\n      \"@id\": \"https:\/\/lean-app.com\/calculateur-macros\/#breadcrumb\",\n      \"itemListElement\": [\n        {\n          \"@type\": \"ListItem\",\n          \"position\": 1,\n          \"name\": \"Accueil\",\n          \"item\": \"https:\/\/lean-app.com\/\"\n        },\n        {\n          \"@type\": \"ListItem\",\n          \"position\": 2,\n          \"name\": \"Calculateurs\",\n          \"item\": \"https:\/\/lean-app.com\/calculateurs\/\"\n        },\n        {\n          \"@type\": \"ListItem\",\n          \"position\": 3,\n          \"name\": \"Calculateur macros\",\n          \"item\": \"https:\/\/lean-app.com\/calculateur-macros\/\"\n        }\n      ]\n    },\n    {\n      \"@type\": \"FAQPage\",\n      \"@id\": \"https:\/\/lean-app.com\/calculateur-macros\/#faq\",\n      \"mainEntity\": [\n        {\n          \"@type\": \"Question\",\n          \"name\": \"Comment calculer ses macros ?\",\n          \"acceptedAnswer\": {\n            \"@type\": \"Answer\",\n            \"text\": \"Dans l'ordre : d\u00e9pense calcul\u00e9e sur tes mesures, objectif appliqu\u00e9, puis prot\u00e9ines en grammes sur la masse maigre, lipides \u00e0 20-30 % des calories, glucides sur le reste.\"\n          }\n        },\n        {\n          \"@type\": \"Question\",\n          \"name\": \"Le 40\/40\/20, c'est valable ?\",\n          \"acceptedAnswer\": {\n            \"@type\": \"Answer\",\n            \"text\": \"C'est une commodit\u00e9 mn\u00e9motechnique, pas une recommandation scientifique : les pourcentages ne veulent rien dire sans le total calorique, et ils d\u00e9connectent les prot\u00e9ines de la masse maigre.\"\n          }\n        },\n        {\n          \"@type\": \"Question\",\n          \"name\": \"Les glucides font-ils grossir ?\",\n          \"acceptedAnswer\": {\n            \"@type\": \"Answer\",\n            \"text\": \"Non : le surplus calorique fait grossir. \u00c0 calories et prot\u00e9ines \u00e9gales, low carb et high carb donnent des pertes de gras comparables (Kerksick 2018).\"\n          }\n        },\n        {\n          \"@type\": \"Question\",\n          \"name\": \"Combien de lipides minimum par jour ?\",\n          \"acceptedAnswer\": {\n            \"@type\": \"Answer\",\n            \"text\": \"Ne descends pas durablement sous 20 % de tes calories (Helms 2014), soit environ 0,5 \u00e0 0,6 g par kilo de poids : les lipides portent la production hormonale.\"\n          }\n        }\n      ]\n    },\n    {\n      \"@type\": \"MobileApplication\",\n      \"@id\": \"https:\/\/lean-app.com\/#app\",\n      \"name\": \"Lean\",\n      \"operatingSystem\": \"iOS, Android\",\n      \"applicationCategory\": \"HealthApplication\",\n      \"url\": \"https:\/\/lean-app.com\/\",\n      \"downloadUrl\": [\n        \"https:\/\/apps.apple.com\/fr\/app\/lean-calorie-ai-podometre\/id6738668646\",\n        \"https:\/\/play.google.com\/store\/apps\/details?id=com.lean.testsqflite\"\n      ]\n    }\n  ]\n}\n<\/script>\n\n<script data-wpmeteor-nooptimize=\"true\">(function(){\n  var phoneImg = document.getElementById('phoneImg');\n  var phoneBack = document.getElementById('phoneBack');\n  var zones = document.getElementById('phoneZones');\n  var topTabs = document.querySelectorAll('.phone-tabs button');\n  var navTaps = document.querySelectorAll('.phone-navbar button');\n\n  var tabMap = {\n    bilan:    {src:'https:\/\/lean-app.com\/wp-content\/uploads\/2026\/05\/lvm-screen_bilan.webp',     drill:false},\n    kcal:     {src:'https:\/\/lean-app.com\/wp-content\/uploads\/2026\/05\/lvm-screen_kcal.webp',      drill:false},\n    depense:  {src:'https:\/\/lean-app.com\/wp-content\/uploads\/2026\/05\/lvm-screen_depense.webp',   drill:true},\n    strategie:{src:'https:\/\/lean-app.com\/wp-content\/uploads\/2026\/05\/lvm-screen_strategie.webp', drill:false}\n  };\n  var subMap = {\n    BMR:  'https:\/\/lean-app.com\/wp-content\/uploads\/2026\/05\/lvm-screen_BMR.webp',\n    NEAT: 'https:\/\/lean-app.com\/wp-content\/uploads\/2026\/05\/lvm-screen_NEAT.webp',\n    EAT:  'https:\/\/lean-app.com\/wp-content\/uploads\/2026\/05\/lvm-screen_EAT.webp',\n    TEF:  'https:\/\/lean-app.com\/wp-content\/uploads\/2026\/05\/lvm-screen_TEF.webp'\n  };\n  var currentTab = 'depense';\n\n  function setActive(tab){\n    topTabs.forEach(function(b){ b.classList.toggle('on', b.dataset.tab===tab); });\n  }\n  function showTab(tab){\n    var t = tabMap[tab]; if(!t) return;\n    currentTab = tab;\n    phoneImg.style.opacity = 0;\n    setTimeout(function(){\n      phoneImg.className = 'phone-bg tab-' + tab;\n      phoneImg.style.opacity = 1;\n      zones.style.display = t.drill ? 'block' : 'none';\n      phoneBack.classList.remove('on');\n    }, 150);\n    setActive(tab);\n  }\n  function showSub(sub){\n    var src = subMap[sub]; if(!src) return;\n    phoneImg.style.opacity = 0;\n    setTimeout(function(){\n      phoneImg.className = 'phone-bg sub-' + sub;\n      phoneImg.style.opacity = 1;\n      zones.style.display = 'none';\n      phoneBack.classList.add('on');\n    }, 150);\n  }\n\n  var hintD = document.getElementById('tapHintDesktop');\n  var hintM = document.getElementById('tapHintMobile');\n  function hideHints(){\n    if (hintD) hintD.classList.add('hidden');\n    if (hintM) hintM.classList.add('hidden');\n  }\n\n  topTabs.forEach(function(b){ b.addEventListener('click', function(){ hideHints(); showTab(b.dataset.tab); }); });\n  navTaps.forEach(function(b){ b.addEventListener('click', function(){ hideHints(); showTab(b.dataset.tab); }); });\n  zones.querySelectorAll('.z').forEach(function(z){\n    z.addEventListener('click', function(){ hideHints(); showSub(z.dataset.sub); });\n    z.addEventListener('keydown', function(e){\n      if (e.key==='Enter' || e.key===' ') { e.preventDefault(); hideHints(); showSub(z.dataset.sub); }\n    });\n  });\n  phoneBack.addEventListener('click', function(){ hideHints(); showTab(currentTab); });\n})();<\/script>\n\n<script data-wpmeteor-nooptimize=\"true\">\n(function(){\n  \/\/ ============================================================\n  \/\/ Repartition des macros : ESTIMATION PEDAGOGIQUE. Ordre P -> G -> L.\n  \/\/ Depense : memes formules que le calculateur TDEE live (BMR 370+21.6xFFM,\n  \/\/ NEAT = BMR x pas\/48000, TEF = X\/9). Sources : Helms 2014 (24864135,\n  \/\/ lipides 20-30% kcal), Morton 2018 (28698222), Kerksick 2018 (30068354).\n  \/\/ ============================================================\n  var LEAN_LANG = (((document.documentElement && document.documentElement.lang)||'').toLowerCase().indexOf('en')===0 || location.pathname.indexOf('\/en\/')===0) ? 'en' : 'fr';\n  function T(fr,en){return LEAN_LANG==='en'?en:fr;}\n  function byId(id){ return document.getElementById(id); }\n  function getSex(){\n    var r = document.querySelector('input[name=sex]:checked');\n    return r ? r.value : 'M';\n  }\n  function fmt(n){ return LEAN_LANG==='en' ? Math.round(n).toLocaleString('en-US') : Math.round(n).toLocaleString('fr-FR'); }\n  function fmt3(n){ return n.toLocaleString(LEAN_LANG==='en'?'en-US':'fr-FR', {minimumFractionDigits:3, maximumFractionDigits:3}); }\n  function fmt1(n){ return n.toLocaleString(LEAN_LANG==='en'?'en-US':'fr-FR', {minimumFractionDigits:1, maximumFractionDigits:1}); }\n  function clamp(v, lo, hi){ return Math.max(lo, Math.min(hi, v)); }\n  function compute(){\n    var sex = getSex();\n    var age = parseFloat(byId('cAge').value) || 0;\n    var w = parseFloat(byId('cWeight').value) || 0;\n    var h = parseFloat(byId('cHeight').value) || 0;\n    var bf = parseFloat(byId('cBodyfat').value) || 0;\n    var steps = parseFloat(byId('cSteps').value) || 0;\n    var goalEl = document.querySelector('input[name=goal]:checked');\n    var goal = goalEl ? goalEl.value : 'cut';\n    byId('bfVal').innerHTML = String(bf).replace('.', ',') + '\\u202F%';\n    byId('stepsVal').textContent = fmt(steps) + T(' pas', ' steps');\n    byId('bfHint').textContent = (sex === 'F')\n      ? T('Fourchettes usuelles pour une femme : 18 \u00e0 32\\u202F%. Mesure-le au ruban avec notre calculateur de masse grasse, ou en photo avec le BodyScan.','Typical ranges for a woman: 18 to 32%. Measure it with our body fat calculator (tape) or the BodyScan photo.')\n      : T('Fourchettes usuelles pour un homme : 10 \u00e0 25\\u202F%. Mesure-le au ruban avec notre calculateur de masse grasse, ou en photo avec le BodyScan.','Typical ranges for a man: 10 to 25%. Measure it with our body fat calculator (tape) or the BodyScan photo.');\n    byId('goalHint').textContent = (goal === 'cut')\n      ? T('En s\u00e8che : objectif \u00e0 80\\u202F% de ta d\u00e9pense hors sport, prot\u00e9ines en haut de fourchette.','Cutting: target at 80% of your non-exercise expenditure, protein at the top of the range.')\n      : (goal === 'maintain'\n        ? T('En maintien : objectif \u00e9gal \u00e0 ta d\u00e9pense hors sport, s\u00e9ances en plus les jours d\\u2019entra\u00eenement.','Maintenance: target equals your non-exercise expenditure, sessions added on training days.')\n        : T('En prise : surplus mod\u00e9r\u00e9 de 10\\u202F%, l\\u2019essentiel du suppl\u00e9ment part dans les glucides.','Bulking: a moderate 10% surplus, most of the extra goes into carbs.'));\n    if (!w || !h) return;\n    var ffm = w * (1 - bf \/ 100);\n    var bmr = 370 + 21.6 * ffm;\n    var neat = bmr * steps \/ 48000;\n    var x = bmr + neat;\n    var tef = x \/ 9;\n    var tdee = x + tef;\n    var factor = (goal === 'cut') ? 0.80 : (goal === 'maintain' ? 1.0 : 1.10);\n    var kcal = tdee * factor;\n    \/\/ P -> G -> L : proteines d abord (milieu de fourchette du calculateur proteines)\n    var pk = (goal === 'cut') ? 2.7 : (goal === 'maintain' ? 2.0 : 1.9);\n    var P = Math.round(ffm * pk);\n    var L = Math.round(kcal * 0.25 \/ 9);\n    var G = Math.round((kcal - P * 4 - L * 9) \/ 4);\n    if (G < 0) G = 0;\n    byId('rKcal').textContent = fmt(Math.round(kcal));\n    byId('kcalBar').style.width = clamp(kcal \/ 3200 * 100, 8, 100) + '%';\n    var pill = byId('kcalPill');\n    pill.className = 'neat-pill ok';\n    pill.textContent = (goal === 'cut') ? T('Objectif s\u00e8che','Cutting target') : (goal === 'maintain' ? T('Objectif maintien','Maintenance target') : T('Objectif prise de muscle','Muscle gain target'));\n    byId('rP').textContent = fmt(P);\n    byId('rP4').textContent = fmt(P * 4);\n    byId('rG').textContent = fmt(G);\n    byId('rG4').textContent = fmt(G * 4);\n    byId('rL').textContent = fmt(L);\n    byId('rL9').textContent = fmt(L * 9);\n    byId('shareBar').style.width = '25%';\n    byId('dPkg').textContent = (P \/ w).toFixed(1).replace('.', ',');\n    byId('dGkg').textContent = (G \/ w).toFixed(1).replace('.', ',');\n    byId('dLkg').textContent = (L \/ w).toFixed(1).replace('.', ',');\n    var title = byId('recoTitle');\n    var body = byId('recoBody');\n    if (goal === 'cut') {\n      title.textContent = T('En s\u00e8che : les glucides restants sont ton budget de performance','Cutting: the remaining carbs are your performance budget');\n      body.textContent = T('Prot\u00e9ines et lipides sont sanctuaris\u00e9s ; les glucides encaissent le d\u00e9ficit. Place-les autour de tes s\u00e9ances (avant et apr\u00e8s), et les jours d\\u2019entra\u00eenement dur, ajoute tes calories de s\u00e9ance en glucides plut\u00f4t que de creuser le d\u00e9ficit. Si les glucides descendent sous ~1 g\/kg, ton d\u00e9ficit est probablement trop agressif : remonte l\\u2019objectif d\\u2019un cran.','Protein and fat are protected; carbs absorb the deficit. Place them around your sessions (before and after), and on hard training days, add your session calories as carbs rather than deepening the deficit. If carbs drop below ~1 g\/kg, your deficit is probably too aggressive: ease the target up a notch.');\n    } else if (goal === 'maintain') {\n      title.textContent = T('En maintien : la r\u00e9partition qui se tient toute seule','Maintenance: the split that holds by itself');\n      body.textContent = T('\u00c0 ce niveau, ta r\u00e9partition est confortable : une source de prot\u00e9ines par repas, des lipides sans les traquer, et des glucides qui suivent ta faim et ton entra\u00eenement. Le vrai enjeu est la r\u00e9gularit\u00e9 du week-end, o\u00f9 les macros d\u00e9rivent sans qu\\u2019on le voie. Un tracking l\u00e9ger suffit \u00e0 garder le cap.','At this level, your split is comfortable: a protein source per meal, fats without hunting them, and carbs following your hunger and training. The real stake is weekend consistency, when macros drift unseen. Light tracking is enough to stay on course.');\n    } else {\n      title.textContent = T('En prise : le surplus va dans les glucides, pas dans le gras alimentaire','Bulking: the surplus goes into carbs, not dietary fat');\n      body.textContent = T('Ton surplus de 10\\u202F% est volontairement mod\u00e9r\u00e9 : au-del\u00e0, on stocke plus de gras sans construire plus de muscle. Les prot\u00e9ines n\\u2019ont pas besoin de monter (Morton 2018) : le suppl\u00e9ment part dans les glucides autour des s\u00e9ances, o\u00f9 il sert ta progression. Re-mesure ton bodyfat toutes les 4 semaines pour v\u00e9rifier que la prise reste propre.','Your 10% surplus is deliberately moderate: beyond that, you store more fat without building more muscle. Protein does not need to rise (Morton 2018): the extra goes into carbs around your sessions, where it serves your progression. Re-measure your body fat every 4 weeks to check the gain stays clean.');\n    }\n    if (age >= 50) {\n      body.textContent = body.textContent + T(' Apr\u00e8s 50 ans, garde les prot\u00e9ines en haut de fourchette : la r\u00e9sistance anabolique augmente les besoins par prise.',' After 50, keep protein at the top of the range: anabolic resistance raises per-meal needs.');\n    }\n  }\n  ['cAge','cWeight','cHeight','cBodyfat','cSteps'].forEach(function(id){\n    var el = byId(id);\n    if (el) { el.addEventListener('input', compute); el.addEventListener('change', compute); }\n  });\n  document.querySelectorAll('input[name=sex], input[name=goal]').forEach(function(el){ el.addEventListener('change', compute); });\n  compute();\n  \/\/ ---- popup BodyScan (aide bodyfat), zero lib externe ----\n  var modal = byId('bfModal');\n  function bfOpen(){ modal.classList.add('open'); document.body.style.overflow = 'hidden'; }\n  function bfShut(){ modal.classList.remove('open'); document.body.style.overflow = ''; }\n  if (modal) {\n    byId('bfHelp').addEventListener('click', bfOpen);\n    byId('bfClose').addEventListener('click', bfShut);\n    byId('bfOvl').addEventListener('click', bfShut);\n    document.addEventListener('keydown', function(e){ if (e.key === 'Escape') bfShut(); });\n  }\n})();\n<\/script>\n\n<script data-wpmeteor-nooptimize=\"true\">\n(function(){\n  var shell = document.getElementById('lvm-shell');\n  if (shell) shell.classList.add('force-show');\n})();\n<\/script>\n\n<!-- lean-mesh-draft -->\n<aside class=\"lean-mesh\" style=\"margin:48px auto;max-width:760px;padding:24px 28px;background:#ffffff;border-left:4px solid #FF2D6E;border-radius:0 12px 12px 0;box-shadow:0 6px 24px rgba(20,20,40,0.06);font-family:-apple-system,'SF Pro Text','Segoe UI',Roboto,Arial,sans-serif;color:#1a1a2e;\">\n<p style=\"margin:0 0 14px;font-size:13px;font-weight:700;letter-spacing:0.06em;text-transform:uppercase;color:#FF2D6E;\">Read also<\/p>\n<ul style=\"list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr;gap:10px;\">\n<li><a href=\"\/en\/calculateur-proteines\/\" style=\"display:block;padding:14px 16px;background:#FAF7F2;border-radius:8px;color:#1a1a2e;text-decoration:none;font-weight:600;line-height:1.4;\">Protein calculator (lean mass based) <span style=\"color:#4D4D52;font-weight:400;display:block;font-size:14px;margin-top:4px;\">The detail of the first brick: ranges, per-meal split, equivalents.<\/span><\/a><\/li>\n<li><a href=\"\/en\/calculateur-masse-grasse\/\" style=\"display:block;padding:14px 16px;background:#FAF7F2;border-radius:8px;color:#1a1a2e;text-decoration:none;font-weight:600;line-height:1.4;\">Body fat calculator (US Navy method) <span style=\"color:#4D4D52;font-weight:400;display:block;font-size:14px;margin-top:4px;\">The step before: measure your body fat with a tape to know your lean mass.<\/span><\/a><\/li>\n<li><a href=\"\/en\/calcul-metabolisme-de-base\/\" style=\"display:block;padding:14px 16px;background:#FAF7F2;border-radius:8px;color:#1a1a2e;text-decoration:none;font-weight:600;line-height:1.4;\">Basal metabolic rate: the most precise formula <span style=\"color:#4D4D52;font-weight:400;display:block;font-size:14px;margin-top:4px;\">Why your BMR is computed on your lean mass, not your weight.<\/span><\/a><\/li>\n<li><a href=\"\/en\/calculateur-tdee\/\" style=\"display:block;padding:14px 16px;background:#FAF7F2;border-radius:8px;color:#1a1a2e;text-decoration:none;font-weight:600;line-height:1.4;\">Full TDEE calculator: BMR + NEAT + EAT + TEF <span style=\"color:#4D4D52;font-weight:400;display:block;font-size:14px;margin-top:4px;\">Your expenditure broken down, brick by brick, on your real body fat.<\/span><\/a><\/li>\n<li><a href=\"\/en\/calculer-vraie-depense-calorique\/\" style=\"display:block;padding:14px 16px;background:#FAF7F2;border-radius:8px;color:#1a1a2e;text-decoration:none;font-weight:600;line-height:1.4;\">How to calculate your real calorie expenditure <span style=\"color:#4D4D52;font-weight:400;display:block;font-size:14px;margin-top:4px;\">The complete guide, from BMR to metabolic adaptation, with the traps of the market.<\/span><\/a><\/li>\n<li><a href=\"\/en\/calculateur-adaptation-metabolique\/\" style=\"display:block;padding:14px 16px;background:#FAF7F2;border-radius:8px;color:#1a1a2e;text-decoration:none;font-weight:600;line-height:1.4;\">Metabolic adaptation calculator <span style=\"color:#4D4D52;font-weight:400;display:block;font-size:14px;margin-top:4px;\">Has your BMR slowed down, and by how much: coefficient 100 to 0 %.<\/span><\/a><\/li>\n<li><a href=\"\/en\/depense-energetique-totale-v2\/\" style=\"display:block;padding:14px 16px;background:#FAF7F2;border-radius:8px;color:#1a1a2e;text-decoration:none;font-weight:600;line-height:1.4;\">Total daily energy expenditure: the complete guide <span style=\"color:#4D4D52;font-weight:400;display:block;font-size:14px;margin-top:4px;\">Everything that makes up your kcal\/day, from BMR to the thermic effect of food.<\/span><\/a><\/li>\n<\/ul>\n<\/aside>","protected":false},"excerpt":{"rendered":"<p>Calcule ta r\u00e9partition de macros en grammes : prot\u00e9ines sur ta masse maigre, lipides en plancher hormonal, glucides selon ta d\u00e9pense r\u00e9elle. Sourc\u00e9 et gratuit.<\/p>","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"single-lvm-blank","format":"standard","meta":{"footnotes":""},"categories":[13],"tags":[],"class_list":["post-1965","post","type-post","status-publish","format-standard","hentry","category-comparateurs"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Calculateur de macros : ta r\u00e9partition prot\u00e9ines, glucides, lipides - Lean<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/lean-app.com\/en\/calculateur-macros\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Calculateur de macros : ta r\u00e9partition prot\u00e9ines, glucides, lipides - Lean\" \/>\n<meta property=\"og:description\" content=\"Calcule ta r\u00e9partition de macros en grammes : prot\u00e9ines sur ta masse maigre, lipides en plancher hormonal, glucides selon ta d\u00e9pense r\u00e9elle. Sourc\u00e9 et gratuit.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/lean-app.com\/en\/calculateur-macros\/\" \/>\n<meta property=\"og:site_name\" content=\"Lean\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/share\/1GXD3qyMBy\/?mibextid=wwXIfr\" \/>\n<meta property=\"article:published_time\" content=\"2026-08-25T13:40:25+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-08-25T13:40:27+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/lean-app.com\/wp-content\/uploads\/2026\/05\/lvm-logo-lean-square-scaled.webp\" \/>\n<meta name=\"author\" content=\"L&#039;\u00e9quipe Lean\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"L&#039;\u00e9quipe Lean\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"15 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/lean-app.com\/calculateur-macros\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/lean-app.com\/calculateur-macros\/\"},\"author\":{\"@id\":\"https:\/\/lean-app.com\/#organization\"},\"headline\":\"Calculateur de macros : ta r\u00e9partition prot\u00e9ines, glucides, lipides\",\"datePublished\":\"2026-08-25T13:40:25+00:00\",\"dateModified\":\"2026-08-25T13:40:27+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/lean-app.com\/calculateur-macros\/\"},\"wordCount\":3210,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/lean-app.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/lean-app.com\/calculateur-macros\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/lean-app.com\/wp-content\/uploads\/2026\/05\/lvm-logo-lean-square-scaled.webp\",\"articleSection\":[\"Comparateurs\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/lean-app.com\/calculateur-macros\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/lean-app.com\/calculateur-macros\/\",\"url\":\"https:\/\/lean-app.com\/calculateur-macros\/\",\"name\":\"Calculateur de macros : ta r\u00e9partition prot\u00e9ines, glucides, lipides - Lean\",\"isPartOf\":{\"@id\":\"https:\/\/lean-app.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/lean-app.com\/calculateur-macros\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/lean-app.com\/calculateur-macros\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/lean-app.com\/wp-content\/uploads\/2026\/05\/lvm-logo-lean-square-scaled.webp\",\"datePublished\":\"2026-08-25T13:40:25+00:00\",\"dateModified\":\"2026-08-25T13:40:27+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/lean-app.com\/calculateur-macros\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/lean-app.com\/calculateur-macros\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/lean-app.com\/calculateur-macros\/#primaryimage\",\"url\":\"https:\/\/lean-app.com\/wp-content\/uploads\/2026\/05\/lvm-logo-lean-square-scaled.webp\",\"contentUrl\":\"https:\/\/lean-app.com\/wp-content\/uploads\/2026\/05\/lvm-logo-lean-square-scaled.webp\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/lean-app.com\/calculateur-macros\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/lean-app.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Calculateur de macros : ta r\u00e9partition prot\u00e9ines, glucides, lipides\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/lean-app.com\/#website\",\"url\":\"https:\/\/lean-app.com\/\",\"name\":\"Lean\",\"description\":\"Download and try the app for FREE \u2014 take control of your body FOR LIFE.Download and try the app for FREE \u2014 take control of your body FOR LIFE.\",\"publisher\":{\"@id\":\"https:\/\/lean-app.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/lean-app.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/lean-app.com\/#organization\",\"name\":\"Lean\",\"url\":\"https:\/\/lean-app.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/lean-app.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/lean-app.com\/wp-content\/uploads\/2025\/08\/Logo-for-Lean-App-the-best-calorie-and-TDEE-tracking-application.png\",\"contentUrl\":\"https:\/\/lean-app.com\/wp-content\/uploads\/2025\/08\/Logo-for-Lean-App-the-best-calorie-and-TDEE-tracking-application.png\",\"width\":1672,\"height\":1484,\"caption\":\"Lean\"},\"image\":{\"@id\":\"https:\/\/lean-app.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/share\/1GXD3qyMBy\/?mibextid=wwXIfr\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Calculateur de macros : ta r\u00e9partition prot\u00e9ines, glucides, lipides - Lean","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/lean-app.com\/en\/calculateur-macros\/","og_locale":"en_US","og_type":"article","og_title":"Calculateur de macros : ta r\u00e9partition prot\u00e9ines, glucides, lipides - Lean","og_description":"Calcule ta r\u00e9partition de macros en grammes : prot\u00e9ines sur ta masse maigre, lipides en plancher hormonal, glucides selon ta d\u00e9pense r\u00e9elle. Sourc\u00e9 et gratuit.","og_url":"https:\/\/lean-app.com\/en\/calculateur-macros\/","og_site_name":"Lean","article_publisher":"https:\/\/www.facebook.com\/share\/1GXD3qyMBy\/?mibextid=wwXIfr","article_published_time":"2026-08-25T13:40:25+00:00","article_modified_time":"2026-08-25T13:40:27+00:00","og_image":[{"url":"https:\/\/lean-app.com\/wp-content\/uploads\/2026\/05\/lvm-logo-lean-square-scaled.webp","type":"","width":"","height":""}],"author":"L'\u00e9quipe Lean","twitter_card":"summary_large_image","twitter_misc":{"Written by":"L'\u00e9quipe Lean","Est. reading time":"15 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/lean-app.com\/calculateur-macros\/#article","isPartOf":{"@id":"https:\/\/lean-app.com\/calculateur-macros\/"},"author":{"@id":"https:\/\/lean-app.com\/#organization"},"headline":"Calculateur de macros : ta r\u00e9partition prot\u00e9ines, glucides, lipides","datePublished":"2026-08-25T13:40:25+00:00","dateModified":"2026-08-25T13:40:27+00:00","mainEntityOfPage":{"@id":"https:\/\/lean-app.com\/calculateur-macros\/"},"wordCount":3210,"commentCount":0,"publisher":{"@id":"https:\/\/lean-app.com\/#organization"},"image":{"@id":"https:\/\/lean-app.com\/calculateur-macros\/#primaryimage"},"thumbnailUrl":"https:\/\/lean-app.com\/wp-content\/uploads\/2026\/05\/lvm-logo-lean-square-scaled.webp","articleSection":["Comparateurs"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/lean-app.com\/calculateur-macros\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/lean-app.com\/calculateur-macros\/","url":"https:\/\/lean-app.com\/calculateur-macros\/","name":"Calculateur de macros : ta r\u00e9partition prot\u00e9ines, glucides, lipides - Lean","isPartOf":{"@id":"https:\/\/lean-app.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/lean-app.com\/calculateur-macros\/#primaryimage"},"image":{"@id":"https:\/\/lean-app.com\/calculateur-macros\/#primaryimage"},"thumbnailUrl":"https:\/\/lean-app.com\/wp-content\/uploads\/2026\/05\/lvm-logo-lean-square-scaled.webp","datePublished":"2026-08-25T13:40:25+00:00","dateModified":"2026-08-25T13:40:27+00:00","breadcrumb":{"@id":"https:\/\/lean-app.com\/calculateur-macros\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/lean-app.com\/calculateur-macros\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/lean-app.com\/calculateur-macros\/#primaryimage","url":"https:\/\/lean-app.com\/wp-content\/uploads\/2026\/05\/lvm-logo-lean-square-scaled.webp","contentUrl":"https:\/\/lean-app.com\/wp-content\/uploads\/2026\/05\/lvm-logo-lean-square-scaled.webp"},{"@type":"BreadcrumbList","@id":"https:\/\/lean-app.com\/calculateur-macros\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/lean-app.com\/"},{"@type":"ListItem","position":2,"name":"Calculateur de macros : ta r\u00e9partition prot\u00e9ines, glucides, lipides"}]},{"@type":"WebSite","@id":"https:\/\/lean-app.com\/#website","url":"https:\/\/lean-app.com\/","name":"Lean","description":"Download and try the app for FREE \u2014 take control of your body FOR LIFE.Download and try the app for FREE \u2014 take control of your body FOR LIFE.","publisher":{"@id":"https:\/\/lean-app.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/lean-app.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/lean-app.com\/#organization","name":"Lean","url":"https:\/\/lean-app.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/lean-app.com\/#\/schema\/logo\/image\/","url":"https:\/\/lean-app.com\/wp-content\/uploads\/2025\/08\/Logo-for-Lean-App-the-best-calorie-and-TDEE-tracking-application.png","contentUrl":"https:\/\/lean-app.com\/wp-content\/uploads\/2025\/08\/Logo-for-Lean-App-the-best-calorie-and-TDEE-tracking-application.png","width":1672,"height":1484,"caption":"Lean"},"image":{"@id":"https:\/\/lean-app.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/share\/1GXD3qyMBy\/?mibextid=wwXIfr"]}]}},"_links":{"self":[{"href":"https:\/\/lean-app.com\/en\/wp-json\/wp\/v2\/posts\/1965","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lean-app.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/lean-app.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/lean-app.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/lean-app.com\/en\/wp-json\/wp\/v2\/comments?post=1965"}],"version-history":[{"count":0,"href":"https:\/\/lean-app.com\/en\/wp-json\/wp\/v2\/posts\/1965\/revisions"}],"wp:attachment":[{"href":"https:\/\/lean-app.com\/en\/wp-json\/wp\/v2\/media?parent=1965"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/lean-app.com\/en\/wp-json\/wp\/v2\/categories?post=1965"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/lean-app.com\/en\/wp-json\/wp\/v2\/tags?post=1965"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}