:root{--bg:#0f1115;--surface:#171a21;--surface-2:#1f232c;--line:#2a2f3a;--text:#e8eaed;--muted:#9aa3b2;--accent:#5b9dff;--protein:#6fd3a2;--carbs:#f0c674;--fat:#f08c84;--fiber:#a78bda;--danger:#ef6461;--radius:14px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@media (prefers-color-scheme:light){:root:not([data-theme=dark]){--bg:#f6f7f9;--surface:#fff;--surface-2:#eef0f4;--line:#dfe3ea;--text:#14171c;--muted:#5f6875;--accent:#2f6fdb;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;margin:0;font:16px/1.45 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.app{max-width:680px;margin:0 auto;padding:0 16px 96px}header.bar{z-index:10;background:var(--bg);padding:env(safe-area-inset-top) 0 8px;align-items:center;gap:8px;display:flex;position:sticky;top:0}h1{text-align:center;flex:1;margin:0;font-size:19px;font-weight:600}h2{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:20px 0 8px;font-size:13px}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none}.btn{background:var(--surface-2);border:1px solid var(--line);border-radius:10px;justify-content:center;align-items:center;gap:6px;min-height:44px;padding:10px 14px;display:inline-flex}.btn:active{transform:scale(.98)}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.btn.ghost{background:0 0}.btn.danger{color:var(--danger)}.btn:disabled{opacity:.5}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.row{text-align:left;align-items:center;gap:12px;width:100%;padding:12px 14px;display:flex}.row+.row{border-top:1px solid var(--line)}.row .grow{flex:1;min-width:0}.row .name{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.row .grow>.sub{display:block}.sub{color:var(--muted);font-size:13px}.kcal{font-variant-numeric:tabular-nums;font-weight:600}input,select{font:inherit;color:inherit;background:var(--surface-2);border:1px solid var(--line);border-radius:10px;width:100%;min-height:44px;padding:11px 12px}input:focus,select:focus{outline:2px solid var(--accent);outline-offset:-1px}label{color:var(--muted);margin:10px 0 4px;font-size:13px;display:block}.grid2{grid-template-columns:1fr 1fr;gap:10px;display:grid}.grid4{grid-template-columns:repeat(2,1fr);gap:10px;display:grid}@media (width>=520px){.grid4{grid-template-columns:repeat(4,1fr)}}.summary{align-items:center;gap:18px;padding:16px;display:flex}.ring{flex:0 0 108px}.ring text{fill:var(--text);font-variant-numeric:tabular-nums}.ring .big{font-size:21px;font-weight:700}.ring .lbl{fill:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-size:9px}.macros{flex:1;gap:10px;display:grid}.macro .top{justify-content:space-between;margin-bottom:4px;font-size:13px;display:flex}.track{background:var(--surface-2);border-radius:3px;height:6px;overflow:hidden}.fill{border-radius:3px;height:100%;transition:width .25s}.tabs{background:var(--surface);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom);z-index:20;display:flex;position:fixed;bottom:0;left:0;right:0}.tabs button{padding:10px 4px calc(10px + env(safe-area-inset-bottom));color:var(--muted);flex:1;justify-items:center;gap:3px;font-size:11px;display:grid}.tabs button[aria-current=true]{color:var(--accent)}.tabs .ic{font-size:19px;line-height:1}.empty{color:var(--muted);text-align:center;padding:22px 12px;font-size:14px}.warn{color:#f0d79a;background:#3a2f16;border:1px solid #6b5620;border-radius:10px;margin:10px 0;padding:10px 12px;font-size:13px}@media (prefers-color-scheme:light){:root:not([data-theme=dark]) .warn{color:#6b5620;background:#fdf5e2;border-color:#e5cf92}}.err{color:#f3b3b1;background:#3b1f20;border:1px solid #7a3336;border-radius:10px;margin:10px 0;padding:10px 12px;font-size:13px}.sheet{z-index:30;background:#0000008c;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet>div{background:var(--bg);width:100%;max-height:88vh;padding:16px 16px calc(24px + env(safe-area-inset-bottom));border-radius:18px 18px 0 0;max-width:680px;margin:0 auto;overflow:auto}.sheet h3{margin:4px 0 12px;font-size:17px}.stack{gap:10px;margin-top:14px;display:grid}.seg{gap:6px;display:flex}.seg button{border:1px solid var(--line);background:var(--surface-2);border-radius:10px;flex:1;min-height:44px;padding:10px 4px;font-size:13px}.seg button[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.spin{text-align:center;color:var(--muted);padding:30px}.unitbtn{background:var(--surface-2);border:1px solid var(--line);border-radius:10px;justify-content:space-between;align-items:center;gap:8px;width:100%;min-height:44px;padding:11px 12px;display:flex}.unitbtn:focus-visible{outline:2px solid var(--accent);outline-offset:-1px}.unitbtn[aria-expanded=true]{border-color:var(--accent)}.unitbtn .chev{color:var(--muted);font-size:10px}.unitlist{width:100%;margin-top:10px;padding:4px}.unitlist:focus{outline:none}.unitlist .grp{text-transform:uppercase;letter-spacing:.07em;color:var(--muted);margin:10px 10px 4px;font-size:11px;font-weight:600}.unitlist>div:first-child .grp{margin-top:4px}.unitlist .grp .hint{text-transform:none;letter-spacing:0;opacity:.8;font-weight:400}.unitopt{text-align:left;border-radius:9px;align-items:center;gap:10px;width:100%;min-height:44px;padding:9px 10px;display:flex}.unitopt .tick{width:14px;color:var(--accent);flex:0 0 14px;font-size:12px}.unitopt .uname{flex:none}.unitopt .eq{color:var(--muted);font-variant-numeric:tabular-nums;text-align:right;margin-left:auto;padding-left:10px;font-size:12px}.unitopt.here{background:var(--surface-2)}.unitopt[aria-selected=true]{color:var(--accent);font-weight:600}.unitopt:disabled{opacity:.45}.unitopt:disabled .eq{font-size:11px}.fillrow{flex-wrap:wrap;align-items:center;gap:10px;margin-top:12px;display:flex}.fillrow .seg{flex:1;min-width:210px}.fillrow .seg button{min-height:40px;padding:8px 2px;font-size:12px}.daypick{margin-top:8px}.daypick button{justify-items:center;gap:2px;padding:8px 2px;line-height:1.2;display:grid}.daypick .dname{font-size:12px}.daypick .dcals{opacity:.75;font-variant-numeric:tabular-nums;font-size:11px}.daypick button[aria-pressed=true] .dcals{opacity:.9}.ledger{grid-template-columns:repeat(3,1fr);margin-top:10px;display:grid}.ledger>div{justify-items:center;gap:2px;padding:12px 8px;display:grid}.ledger>div+div{border-left:1px solid var(--line)}.ledger .lbl{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:11px}.ledger .val{font-variant-numeric:tabular-nums;font-size:19px;font-weight:600}.ledger .val.good{color:var(--protein)}.ledger .val.over{color:var(--danger)}.ledgernote{text-align:center;margin-top:6px}.row .btn.ghost.danger{min-height:34px;padding:6px 10px;font-size:18px;line-height:1}.statgrid{grid-template-columns:1fr 1fr;margin-top:8px;display:grid}.stat{border-top:1px solid var(--line);gap:2px;padding:12px 14px;display:grid}.statgrid>.stat:nth-child(-n+2){border-top:none}.statgrid>.stat:nth-child(odd){border-right:1px solid var(--line)}.stat .lbl{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:11px}.stat .val{font-variant-numeric:tabular-nums;font-size:19px;font-weight:600}.stat .val.good{color:var(--protein)}.stat .val.bad{color:var(--danger)}.stat .sub{font-size:12px}.tabs button{font-size:10px}.tabs .ic{font-size:17px}.lnk{color:inherit;justify-items:center;gap:2px;text-decoration:none;display:grid}.signin{gap:12px;max-width:320px;margin:15vh auto;padding:0 16px;display:grid}.signin h1{text-align:center;margin:0 0 8px}.signin label{color:var(--muted);gap:4px;font-size:13px;display:grid}.signin button{background:var(--accent);color:#fff;border:0;border-radius:10px;padding:11px;font-size:15px}.signin button:disabled{opacity:.6}.signin .linky{color:var(--muted);background:0 0;border:0;padding:4px;font-size:13px;text-decoration:underline}.signin .sub{color:var(--muted);margin:0;font-size:13px}.secret{word-break:break-all;background:var(--surface-2);border:1px solid var(--line);border-radius:8px;padding:10px;font-size:12px;line-height:1.5;display:block}.sect{border-top:1px solid var(--line)}.sect>summary{cursor:pointer;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);justify-content:space-between;align-items:center;min-height:44px;padding:15px 2px;font-size:13px;list-style:none;display:flex}.sect>summary::-webkit-details-marker{display:none}.sect>summary:after{content:"⌄";font-size:14px;transition:transform .15s}.sect[open]>summary{color:var(--text)}.sect[open]>summary:after{transform:rotate(180deg)}.sect>summary:focus-visible{outline:2px solid var(--accent);outline-offset:-2px;border-radius:6px}.sect>div{padding-bottom:20px}.subhead{margin:20px 0 6px;font-size:13px}.wk>summary{cursor:pointer;align-items:center;gap:12px;padding:12px 14px;list-style:none;display:flex}.wk>summary::-webkit-details-marker{display:none}.wk>summary:after{content:"⌄";color:var(--muted);transition:transform .15s}.wk[open]>summary:after{transform:rotate(180deg)}.wk[open]>summary{border-bottom:1px solid var(--line)}.wk .row{padding-left:14px}.linky{text-align:left;padding:0}.spark{width:100%;height:64px;margin:6px 0 14px;display:block}.split{background:var(--surface-2);border-radius:5px;height:10px;margin:12px 0 6px;display:flex;overflow:hidden}.split .seg.fat{background:var(--accent)}.split .seg.lean{background:#7bd88f}.key{vertical-align:baseline;border-radius:2px;width:9px;height:9px;display:inline-block}.key.fat{background:var(--accent)}.key.lean{background:#7bd88f}.sessionbar{align-items:center;gap:12px;margin-bottom:10px;padding:12px 14px;display:flex}.wktitle{background:0 0;border:0;width:100%;padding:0;font-size:17px;font-weight:600}.wktitle:focus{outline:none}.timer{font-variant-numeric:tabular-nums;font-size:20px;font-weight:600}.exblock{margin-bottom:10px}.setrow{grid-template-columns:44px 1fr 1fr 48px;align-items:center;gap:8px;padding:6px 14px;display:grid}.setrow.head{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding-bottom:0;font-size:11px}.setrow.head span{text-align:center}.setrow input{text-align:center;min-height:44px}.setrow.done input{background:#1d3326;border-color:#2f5a3c}.setno{background:var(--surface-2);min-height:44px;color:var(--muted);border-radius:8px;font-size:13px}.tick{background:var(--surface-2);border:1px solid var(--line);min-height:44px;color:var(--muted);border-radius:8px}.tick[aria-pressed=true]{color:#fff;background:#2f7a4a;border-color:#2f7a4a}.chips{flex-wrap:wrap;gap:6px;margin:10px 0 0;display:flex}.chip{border:1px solid var(--line);background:var(--surface-2);border-radius:999px;padding:6px 10px;font-size:12px}.chip[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:#fff}.tabs .dot{background:var(--accent);border-radius:50%;width:7px;height:7px;margin-left:26px;position:absolute;top:6px}.tabs button{position:relative}.session{padding-bottom:8px}.sessionhead{z-index:10;background:var(--bg);border-bottom:1px solid var(--line);margin:0 -16px 10px;padding:0 2px;position:sticky;top:0}.sessionhead .row{padding:10px 14px}.sessionhead .timer{font-variant-numeric:tabular-nums;color:var(--text);font-size:13px;font-weight:600}.discard{text-align:center;margin:22px 0 4px}.linky.danger{color:var(--danger);background:0 0;border:0;font-size:13px;text-decoration:underline}.resume{left:0;right:0;bottom:calc(58px + env(safe-area-inset-bottom));z-index:20;background:var(--accent);color:#fff;text-align:left;border:0;align-items:center;gap:12px;padding:11px 16px;font-size:14px;display:flex;position:fixed}.resume .sub{color:#ffffffd9}.resume .timer{font-variant-numeric:tabular-nums;font-weight:600}.restbar{background:var(--surface-2);border-top:1px solid var(--line);font-variant-numeric:tabular-nums;align-items:center;gap:8px;padding:8px 14px;font-size:14px;display:flex}.restbar.up{color:#fff;background:#2f7a4a}.restbar button{border:1px solid var(--line);background:var(--surface);border-radius:8px;min-height:34px;padding:6px 10px;font-size:12px}.restbar.up button{color:#fff;background:0 0;border-color:#fff6}.restpick{width:auto;min-height:36px;padding:6px 8px;font-size:12px}.mealhead{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px;margin:20px 0 8px;display:flex}.mealhead h2{margin:0}.mealhead .sub{font-variant-numeric:tabular-nums}
