@font-face{font-family:League Spartan;src:url(/macros/_astro/leaguespartan-var.DYuVdnqx.woff2)format("woff2");font-weight:400 700;font-style:normal;font-display:swap}@font-face{font-family:Lora;src:url(/macros/_astro/lora-var.BplyFJq7.woff2)format("woff2");font-weight:400 700;font-style:normal;font-display:swap}@font-face{font-family:Lora;src:url(/macros/_astro/lora-var-italic.CJHaBEzm.woff2)format("woff2");font-weight:400 700;font-style:italic;font-display:swap}:root{--bg:#fbf5f6;--surface:#fff;--surface-2:#f2eaee;--cream:#f4e9d8;--text:#362430;--muted:#76656f;--line:#efdfe5;--field-line:#9b8891;--accent:#8a3b63;--accent-dk:#6d2c4d;--accent-text:#fff;--green:#5b6a53;--green-fill:#6d7d64;--green-bg:#eef2ea;--amber:#8a5a28;--amber-fill:#c78a5e;--amber-bg:#fdf6ee;--red:#a5365a;--red-fill:#a5365a;--red-bg:#f7e6ea;--fat:#8a5a28;--radius:18px;--radius-sm:12px;--shadow:0 10px 30px #78325a1a;--font:"League Spartan", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-body:"Lora", "Georgia", "Times New Roman", serif;--font-ui:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;color-scheme:light}*{box-sizing:border-box}html{font-family:var(--font-body);-webkit-text-size-adjust:100%;font-size:16px;line-height:1.55}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;padding-bottom:env(safe-area-inset-bottom);margin:0}a{color:var(--accent-dk)}:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:2px solid var(--accent-dk);outline-offset:2px}h1,h2,h3,.band,.stat .big,.macro-out .g,.goals button .kcal,.result-line .amount,.stepper .value,.topnav a,button.primary,button.big{font-family:var(--font)}main{max-width:640px;margin:0 auto;padding:16px 16px 96px}h1{letter-spacing:-.01em;margin:8px 0 2px;font-size:2rem;line-height:1.15}h2{margin:28px 0 10px;font-size:1.375rem;line-height:1.3}h3{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:.8rem;font-weight:600;font-family:var(--font-ui);margin:18px 0 8px}p{margin:6px 0}.tagline{color:var(--muted);margin:0 0 8px}.muted{color:var(--muted)}.small{font-size:.85rem}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);margin:12px 0;padding:16px}.row{align-items:center;gap:10px;display:flex}.row.between{justify-content:space-between}.row.wrap{flex-wrap:wrap}.grow{flex:1;min-width:0}button{font:inherit;font-family:var(--font-ui);border:1px solid var(--field-line);background:var(--surface);color:var(--text);border-radius:var(--radius-sm);cursor:pointer;min-height:40px;padding:8px 12px;font-size:.95rem;transition:background .18s}button:active{transform:translateY(1px)}button.primary{background:var(--accent);color:var(--accent-text);border-color:var(--accent);font-weight:700}button.primary:hover{background:var(--accent-dk);border-color:var(--accent-dk)}button.big{width:100%;min-height:52px;padding:14px;font-size:1.1rem}button.ghost{background:0 0}button.link{min-height:0;color:var(--accent-dk);background:0 0;border:none;padding:4px 6px;text-decoration:underline}button.icon{width:40px;padding:0;font-size:1.2rem;line-height:1}button.locked{background:var(--surface-2);border-color:var(--text)}input[type=number],input[type=text],input[type=search]{font:inherit;font-family:var(--font-ui);border:1px solid var(--field-line);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);width:100%;min-height:40px;padding:8px 10px;font-size:1rem}input[type=number]{text-align:right;width:92px}input[type=range],input[type=checkbox],input[type=radio]{accent-color:var(--accent)}input[type=range]{width:100%}label{font-family:var(--font-ui);color:var(--muted);margin-bottom:4px;font-size:.85rem;display:block}.targets-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.band{font-size:1.3rem;font-weight:700}.band-sub{color:var(--muted);font-size:.9rem}.slot{margin-top:16px}.item{border-top:1px solid var(--line);grid-template-columns:1fr auto;gap:6px 10px;padding:10px 0;display:grid}.item:first-of-type{border-top:none}.item .name{font-weight:600}.item .qty{color:var(--muted);font-size:.9rem}.stepper{align-items:center;gap:4px;display:inline-flex}.stepper .value{text-align:center;font-variant-numeric:tabular-nums;min-width:96px}.item-actions{grid-column:1/-1;justify-content:flex-end;align-items:center;gap:6px;display:flex}.tag{background:var(--surface-2);color:var(--muted);text-transform:uppercase;letter-spacing:.04em;vertical-align:middle;font-size:.72rem;font-weight:600;font-family:var(--font-ui);border-radius:999px;padding:2px 7px;display:inline-block}.tag.fat{background:color-mix(in srgb, var(--fat) 18%, transparent);color:var(--fat)}.tag.locked{background:var(--text);color:var(--bg)}.tag.max{background:var(--amber-bg);color:var(--amber)}.empty{color:var(--muted);padding:8px 0}.picker{background:color-mix(in srgb, var(--bg) 92%, black);z-index:10;padding:16px;position:fixed;inset:0;overflow-y:auto}.picker .sheet{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);max-width:640px;box-shadow:var(--shadow);margin:0 auto;padding:16px}.picker .sheet h2{margin-top:0}.list{margin:0;padding:0;list-style:none}.list li{border-top:1px solid var(--line)}.list li:first-child{border-top:none}.list button.rowbtn{text-align:left;background:0 0;border:none;border-radius:0;justify-content:space-between;align-items:baseline;gap:10px;width:100%;padding:10px 4px;display:flex}.list .hint{color:var(--muted);white-space:nowrap;font-size:.85rem}.tabs{flex-wrap:wrap;gap:6px;margin:8px 0 12px;display:flex}.tabs button.on{background:var(--accent);color:var(--accent-text);border-color:var(--accent)}.solve-bar{z-index:5;background:var(--bg);border-top:1px solid var(--line);padding:10px 0 12px;position:sticky;bottom:0}.stale{text-align:center;color:var(--muted);margin-top:6px;font-size:.85rem}.macro{margin:10px 0}.macro .head{font-variant-numeric:tabular-nums;justify-content:space-between;align-items:baseline;display:flex}.macro .head .label{font-weight:600}.macro .head .nums{font-size:.95rem}.macro .bar{background:var(--surface-2);border-radius:999px;height:10px;margin-top:4px;position:relative;overflow:hidden}.macro .bar .fill{border-radius:999px;height:100%;transition:width .25s}.macro.green .fill{background:var(--green-fill)}.macro.amber .fill{background:var(--amber-fill)}.macro.red .fill{background:var(--red-fill)}.macro .status{margin-top:3px;font-size:.85rem}.macro.green .status{color:var(--green)}.macro.amber .status{color:var(--amber)}.macro.red .status{color:var(--red)}.result-line{border-top:1px solid var(--line);grid-template-columns:auto 1fr auto;align-items:baseline;gap:4px 10px;padding:8px 0;display:grid}.result-line:first-of-type{border-top:none}.result-line .amount{white-space:nowrap;font-variant-numeric:tabular-nums;font-size:1.1rem;font-weight:700}.result-line .food{min-width:0}.result-line .detail{color:var(--muted);grid-column:1/-1;padding-left:2px;font-size:.85rem}.result-line.fat-add .amount{color:var(--fat)}.issue{background:var(--amber-bg);border:1px solid var(--amber-fill);border-radius:var(--radius-sm);margin:10px 0;padding:10px 14px}.issue.red{border-color:var(--red);background:var(--red-bg)}.issue ul{margin:6px 0 0;padding-left:18px}.issue li{margin:2px 0}.closer{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:10px;padding:8px 0;display:flex}.closer:first-of-type{border-top:none}.footer{color:var(--muted);margin-top:40px;font-size:.8rem}@media (width<=420px){.targets-grid{grid-template-columns:1fr}}.calc-hero{margin:8px 0 20px}.calc-hero h1{text-transform:uppercase;letter-spacing:.02em;margin-bottom:4px;font-size:2.6rem;line-height:1.1}.calc-hero .strap{font-family:var(--font-body);color:var(--text);margin:0 0 14px;font-size:1.25rem;font-style:italic}.calc-grid{grid-template-columns:1fr;align-items:start;gap:16px;display:grid}@media (width>=900px){.calc-grid{grid-template-columns:1fr 1fr}.calc-grid .sticky{position:sticky;top:12px}}main.wide{max-width:1040px}.segmented{flex-wrap:wrap;gap:6px;margin:4px 0 12px;display:flex}.segmented button{flex:auto;min-width:0}.segmented button.on{background:var(--accent);color:var(--accent-text);border-color:var(--accent)}.segmented.stack{flex-direction:column}.segmented.stack button{text-align:left;padding:10px 12px}.segmented .hint{opacity:.8;font-size:.8rem;font-weight:400;display:block}.field{margin:0 0 12px}.field .row input[type=number]{width:100px}.field .row .unit{color:var(--muted);font-size:.9rem}.field-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.stat{margin:4px 0 10px}.stat .big{letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:2.6rem;font-weight:800;line-height:1}.stat .big small{color:var(--muted);margin-left:6px;font-size:1rem;font-weight:500}.stack-bar{background:var(--surface-2);border-radius:999px;height:14px;margin:10px 0 6px;display:flex;overflow:hidden}.stack-bar span{height:100%;display:block}.part-bmr{background:var(--accent)}.part-neat{background:color-mix(in srgb, var(--accent) 65%, var(--bg))}.part-eat{background:color-mix(in srgb, var(--accent) 40%, var(--bg))}.part-tef{background:var(--fat)}.legend{font-variant-numeric:tabular-nums;grid-template-columns:1fr 1fr;gap:4px 12px;font-size:.9rem;display:grid}.legend .dot{vertical-align:middle;border-radius:999px;width:10px;height:10px;margin-right:6px;display:inline-block}.goals{grid-template-columns:1fr 1fr;gap:8px;margin-top:10px;display:grid}.goals button{text-align:left;padding:10px 12px;line-height:1.2;display:block}.goals button .kcal{font-variant-numeric:tabular-nums;font-size:1.3rem;font-weight:700;display:block}.goals button.on{background:var(--accent);color:var(--accent-text);border-color:var(--accent)}.macro-out{grid-template-columns:1fr 1fr 1fr;gap:8px;margin-top:10px;display:grid}.macro-out>div{background:var(--surface-2);border-radius:var(--radius-sm);padding:10px}.macro-out .g{font-variant-numeric:tabular-nums;font-size:1.7rem;font-weight:800;line-height:1.1}.macro-out .lbl{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:.8rem}.macro-out .sub{color:var(--muted);margin-top:4px;font-size:.8rem}details.maths{margin-top:12px;font-size:.9rem}details.maths summary{cursor:pointer;color:var(--accent-dk);font-weight:700;font-family:var(--font)}details.maths table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;margin-top:8px}details.maths td{border-top:1px solid var(--line);vertical-align:top;padding:4px 0}details.maths td:last-child{text-align:right;white-space:nowrap}.note{background:var(--amber-bg);border:1px solid var(--amber-fill);border-radius:var(--radius-sm);margin:10px 0;padding:10px 14px;font-size:.95rem}.notice{z-index:20;background:var(--bg);padding:24px 16px;position:fixed;inset:0;overflow-y:auto}.notice .sheet{max-width:560px;margin:0 auto}.notice h2{margin-top:0;font-size:1.4rem}.prose{margin-top:8px}.prose h2{margin-top:36px}.refs{color:var(--muted);font-size:.85rem}.refs li{margin:6px 0}.topnav{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:4px;display:flex}.topnav a{color:var(--muted);font-size:.95rem;text-decoration:none}.topnav a:hover{color:var(--accent-dk)}.calc-grid>*,.card{min-width:0}.segmented button{flex:1 1 0}.card>.row.between{flex-wrap:wrap}.segmented.stack button{flex:none;height:auto}.authbar{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);gap:8px;margin:8px 0 4px;padding:10px 14px}.authbar a{color:var(--accent-dk)}button.dayrow{text-align:left;border:none;border-top:1px solid var(--line);background:0 0;border-radius:0;justify-content:space-between;align-items:baseline;gap:10px;width:100%;padding:10px 4px;display:flex}button.dayrow:first-child{border-top:none}.list li.row button.rowbtn{flex:1}.billing{border-top:1px solid var(--line);gap:8px;margin-top:8px;padding-top:8px}.card.sample .band,.card.sample .band-sub{color:var(--muted)}.card.sample input[type=range]{opacity:.6}.sample-note{border-radius:var(--radius-sm);background:var(--surface-2);border:1px dashed var(--field-line);margin:0 0 12px;padding:10px 12px;font-size:.95rem}.sample-note a{color:var(--accent-dk)}.locked-note{color:var(--muted);margin:18px 0 0;font-size:.95rem}.locked{opacity:.45;pointer-events:none;user-select:none}.intro-band{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);grid-template-columns:1fr 1fr;gap:12px;margin:0 0 20px;padding:16px;font-size:.95rem;display:grid}.intro-band a{color:var(--accent-dk);font-weight:700}@media (width<=640px){.intro-band{grid-template-columns:1fr}}.landing .lead{margin:8px 0 20px;font-size:1.1rem}.landing section{margin:22px 0}.landing .steps{margin:8px 0;padding-left:22px}.landing .steps li{margin:8px 0}.landing .steps a{color:var(--accent-dk)}.landing .demo-slot{margin:8px 0 12px}.landing .demo-slot .slot{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin-bottom:2px;font-size:.8rem}.landing .demo .result-line{padding:5px 0}.landing .signup h2{margin-top:0}.landing button.link{min-height:0;color:var(--accent-dk);font-size:inherit;background:0 0;border:none;padding:0;text-decoration:underline;display:inline}
