:root{--bg:#f4f7f5;--surface:#fff;--line:#dfe6e2;--text:#101915;--muted:#5d6b64;--accent:#10965c;--accent-ink:#fff;--accent-soft:#e2f5ec;--danger:#c0392b;--radius:18px;color:var(--text);background:var(--bg);-webkit-text-size-adjust:100%;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:16px;line-height:1.45}@media (prefers-color-scheme:dark){:root{--bg:#0d1512;--surface:#16211c;--line:#26352e;--text:#eef4f0;--muted:#94a69c;--accent:#2fd08a;--accent-ink:#06130c;--accent-soft:#173326;--danger:#ff7b6b}}*{box-sizing:border-box}body{background:var(--bg);margin:0}h1{letter-spacing:-.02em;margin:0 0 4px;font-size:1.6rem}h2{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:0 0 12px;font-size:.8rem}p{margin:0 0 8px}.muted{color:var(--muted)}.small{font-size:.82rem}.shell{flex-direction:column;max-width:560px;min-height:100dvh;margin:0 auto;display:flex}.content{flex-direction:column;flex:1;gap:14px;padding:8px 16px 104px;display:flex}.onboarding .content{padding-bottom:32px}.topbar{justify-content:space-between;align-items:center;padding:14px 16px 6px;display:flex}.brand{letter-spacing:.18em;color:var(--muted);font-size:.82rem}.brand b{color:var(--accent)}.avatar{background:var(--accent-soft);width:36px;height:36px;color:var(--accent);border-radius:50%;place-items:center;font-weight:700;text-decoration:none;display:grid}.hero{padding:36px 16px 12px}.hero h1{margin-top:10px;font-size:2rem}.greeting{padding:6px 2px 0}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:18px}.card.accent{border-color:var(--accent)}.big{letter-spacing:-.03em;margin:0;font-size:2.6rem;font-weight:750;line-height:1.1}.big small{color:var(--muted);font-size:1rem;font-weight:500}.note{background:var(--accent-soft);border-radius:12px;margin-top:12px;padding:10px 12px;font-size:.9rem}.note.sweet-warn{background:#f5a6231a;border-left:3px solid #f5a623}.macros,.weights{grid-template-columns:repeat(3,1fr);gap:10px;margin-top:14px;display:grid}.macro,.weights>div{background:var(--bg);border-radius:12px;flex-direction:column;padding:10px 12px;display:flex}.macro b,.weights b{font-size:1.15rem}.bar{background:var(--bg);border-radius:8px;height:8px;margin:14px 0 6px;overflow:hidden}.bar i{background:var(--accent);border-radius:8px;height:100%;display:block}.bar.over i{background:var(--danger)}.macros{grid-template-columns:repeat(auto-fit,minmax(72px,1fr))}.macro-rows{flex-direction:column;gap:10px;margin-top:6px;display:flex}.macro-head{justify-content:space-between;font-size:.92rem;display:flex}.macro-row .bar{height:6px;margin:6px 0 0}.btn.link{text-align:center;flex:none;text-decoration:none;display:block}.date-nav{justify-content:space-between;align-items:center;display:flex}.date-nav h1{margin:0;font-size:1.3rem}.date-nav button{border:1px solid var(--line);background:var(--surface);width:44px;height:44px;color:var(--text);cursor:pointer;border-radius:50%;font-size:1.4rem;line-height:1}.date-nav button:disabled{opacity:.35;cursor:default}.meal-head{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.entries,.food-list{margin:0;padding:0;list-style:none}.entries{margin-bottom:12px}.entries:empty{margin:0}.entries button,.food-list button{width:100%;font:inherit;color:var(--text);border:0;border-bottom:1px solid var(--line);text-align:left;cursor:pointer;background:0 0;justify-content:space-between;align-items:center;gap:12px;min-height:48px;padding:12px 0;display:flex}.food-list button{flex-direction:column;align-items:flex-start;gap:2px}.food-list{flex:1;overflow-y:auto}.list-label{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:14px 0 0;font-size:.75rem}.empty{text-align:center;padding:24px 0}.sheet{z-index:10;background:var(--bg);padding:16px 16px calc(16px + env(safe-area-inset-bottom));flex-direction:column;gap:12px;max-width:560px;margin:0 auto;display:flex;position:fixed;inset:0}.sheet-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.sheet-head h1{margin:0;font-size:1.25rem}.close{border:1px solid var(--line);background:var(--surface);width:44px;height:44px;color:var(--text);cursor:pointer;border-radius:50%;flex:none;font-size:1.5rem;line-height:1}.sheet .btn{flex:1 0 auto}.sheet>.btn{flex:none}.scale{grid-template-columns:repeat(5,1fr);gap:8px;display:grid}.scale .chip{padding:9px 0}.reminders{border-color:var(--st-part)}.reminders p{margin:0;padding:4px 0}.toggle{justify-content:space-between;align-items:center;gap:16px;min-height:44px;display:flex}.toggle input{width:22px;height:22px;accent-color:var(--accent);flex:none}.field.indent{margin-left:16px}.close.small{width:36px;height:36px;font-size:1.2rem}.form.scroll{overflow-y:auto}.swaps{border-top:1px solid var(--line);padding-top:8px}.swaps summary{cursor:pointer;color:var(--accent);padding:10px 0;font-weight:650}.recipe-fit{border-bottom:1px solid var(--line);padding:12px 0}.recipe-fit .tag{flex:none;margin:0}.recipe-fit p{margin:6px 0 8px}.struck{color:var(--muted);text-decoration:line-through}.decision{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:12px 0;display:flex}.decision .tag{flex:none;margin:0}.actions.top{margin-top:14px}:root{--st-done:#10965c;--st-part:#b7791f;--st-rest:#2b6cb0}@media (prefers-color-scheme:dark){:root{--st-done:#1a9f63;--st-part:#bd8410;--st-rest:#4f8fe6}}.tiles.three{grid-template-columns:repeat(3,1fr);gap:8px}.tiles.three .tile{padding:12px}.stat{letter-spacing:-.02em;font-size:1.6rem}.year-title{margin:0}.row.end{align-items:flex-end}.btn.fit{flex:none}.legend{color:var(--muted);flex-wrap:wrap;gap:6px 14px;margin:10px 0;font-size:.8rem;display:flex}.legend span{align-items:center;gap:6px;display:inline-flex}.legend>span>i.line{background:var(--accent);width:16px;height:2px}.legend>span>i.dots{background:var(--muted);border-radius:50%;width:7px;height:7px}.legend .day{cursor:default;width:22px;height:22px;font-style:normal}.year{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:16px 14px;display:grid}.month h3{margin:0 0 6px;font-size:.85rem}.days{grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.day{aspect-ratio:1;background:var(--bg);cursor:pointer;font:inherit;color:var(--muted);font-variant-numeric:tabular-nums;border:0;border-radius:5px;place-items:center;padding:0;font-size:.62rem;line-height:1;display:grid;position:relative}.day.st-completed{background:var(--st-done);color:#06130c;font-weight:700}.day.st-partial{box-shadow:inset 0 0 0 2px var(--st-part);color:var(--text);font-weight:700}.day.st-rest{color:var(--text)}.day.st-rest:after{content:"";background:var(--st-rest);border-radius:50%;width:5px;height:5px;position:absolute;top:1px;right:1px}.day.today{outline:1.5px solid var(--muted);outline-offset:-1.5px}.day.sel{outline:2px solid var(--text);outline-offset:1px}.chart{margin:12px 0 0}.chart-plot{position:relative}.chart svg{touch-action:pan-y;width:100%;height:auto;display:block}.chart .grid{stroke:var(--line);stroke-width:1px}.chart .tick{fill:var(--muted);font-size:10px}.chart .cross{stroke:var(--muted);stroke-width:1px;stroke-dasharray:3 3}.chart .line{fill:none;stroke:var(--accent);stroke-width:2px;stroke-linejoin:round;stroke-linecap:round}.chart .marker{fill:var(--accent);stroke:var(--surface);stroke-width:2px}.chart .dot{fill:var(--muted);stroke:var(--surface);stroke-width:1px}.tip{background:var(--bg);border:1px solid var(--line);pointer-events:none;white-space:nowrap;border-radius:10px;flex-direction:column;gap:2px;padding:6px 10px;font-size:.78rem;display:flex;position:absolute;top:0;transform:translate(-50%)}.table-view{margin-top:8px;font-size:.85rem}.table-view summary{color:var(--muted);cursor:pointer;padding:8px 0}.table-view table{border-collapse:collapse;width:100%}.table-view th,.table-view td{text-align:left;border-bottom:1px solid var(--line);padding:6px 8px 6px 0;font-weight:400}.table-view th{color:var(--muted)}.big-title{letter-spacing:-.02em;margin:0 0 6px;font-size:1.5rem;font-weight:750}.btn.wide{flex:none;width:100%}.card .btn.wide,.card .btn.link{margin-top:12px}.btn.small-btn{flex:none;min-height:44px;padding:8px 16px}.block{display:block}.tag{background:var(--accent-soft);color:var(--accent);border-radius:999px;margin-left:8px;padding:2px 8px;font-size:.7rem;font-weight:650}.entries a{min-height:48px;color:var(--text);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:12px 0;text-decoration:none;display:flex}.entries button:disabled{opacity:.5;cursor:default}.tiles{grid-template-columns:1fr 1fr;gap:12px;display:grid}.tile{border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);color:var(--text);flex-direction:column;gap:4px;padding:16px;text-decoration:none;display:flex}.tile span{color:var(--muted);font-size:.85rem}.ex-name{color:var(--text);text-decoration:underline;-webkit-text-decoration-color:var(--line);text-decoration-color:var(--line);text-underline-offset:4px;font-size:1.05rem;font-weight:700}.set-grid{grid-template-columns:32px 1fr 1fr 48px;align-items:center;gap:8px;margin:10px 0 12px;display:grid}.set-row{display:contents}.set-no{text-align:center;color:var(--muted);font-weight:650}.set-grid input{text-align:center;padding:10px}.check{border:1px solid var(--line);background:var(--bg);width:48px;height:44px;color:var(--muted);cursor:pointer;border-radius:12px;font-size:1.1rem}.check.on{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.rest{left:50%;bottom:calc(72px + env(safe-area-inset-bottom));z-index:5;background:var(--accent);width:min(528px,100% - 32px);color:var(--accent-ink);border-radius:16px;align-items:center;gap:12px;padding:10px 10px 10px 18px;display:flex;position:fixed;transform:translate(-50%)}.rest b{font-variant-numeric:tabular-nums;flex:1;font-size:1.4rem}.rest button{font:inherit;background:var(--accent-ink);min-height:44px;color:var(--accent);cursor:pointer;border:0;border-radius:10px;padding:10px 14px;font-weight:650}.map-card{justify-content:center;display:flex}.muscle-map{width:min(100%,260px);height:auto}.muscle-map .body{fill:var(--line)}.muscle-map .region{fill:#0000;stroke:#0000;stroke-width:2px;cursor:pointer;outline:none;transition:fill .15s,stroke .15s}.muscle-map .region:hover,.muscle-map .region:focus-visible{fill:var(--accent);fill-opacity:.45;stroke:var(--accent)}.muscle-map .region.on{fill:var(--accent);fill-opacity:.7;stroke:var(--accent)}.top{margin-top:10px}.top a{color:var(--accent)}.picks li{border-bottom:1px solid var(--line);align-items:center;gap:8px;display:flex}.picks button{border-bottom:0;flex:1;justify-content:flex-start}.grow{flex:1}.box{border:1.5px solid var(--line);width:26px;height:26px;color:var(--accent-ink);border-radius:8px;flex:none;place-items:center;font-size:.9rem;display:grid}.box.on{background:var(--accent);border-color:var(--accent)}.info{border:1px solid var(--line);width:44px;height:44px;color:var(--accent);border-radius:50%;flex:none;place-items:center;font-size:.85rem;text-decoration:none;display:grid}.sticky-cta{bottom:calc(76px + env(safe-area-inset-bottom));z-index:4;position:sticky}.btn:disabled{opacity:.5;cursor:default}.video{aspect-ratio:16/9;border-radius:var(--radius);background:#000;width:100%}.video-slot{flex-direction:column;gap:4px}.video-slot .btn{margin-top:8px}.photo-loop{margin:0}.frames{aspect-ratio:3/2;border-radius:var(--radius);background:#000;position:relative;overflow:hidden}.frames img{object-fit:contain;opacity:0;width:100%;height:100%;transition:opacity .25s;position:absolute;inset:0}.frames img.on{opacity:1}.frames button{color:#fff;cursor:pointer;background:#0009;border:0;border-radius:50%;width:44px;height:44px;font-size:.85rem;position:absolute;bottom:10px;right:10px}.frames:has(.stick){background:var(--surface);border:1px solid var(--line)}.stick{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.stick .props{stroke:var(--muted);stroke-width:4px;fill:none;stroke-linecap:round}.stick .person{fill:var(--accent);stroke:none}.photo-loop figcaption{margin-top:6px}@media (prefers-reduced-motion:reduce){.frames img{transition:none}}.chip.static{cursor:default;align-items:center;display:inline-flex}.video-slot{aspect-ratio:16/9;text-align:center;border-radius:var(--radius);border:1px dashed var(--line);color:var(--muted);place-items:center;padding:16px;font-size:.9rem;display:grid}ol.plain li{padding:5px 0}.chat-log{flex-direction:column;gap:10px;max-height:52vh;margin-bottom:14px;display:flex;overflow-y:auto}.chat-bubble{white-space:pre-wrap;border-radius:16px;max-width:86%;padding:10px 14px;font-size:.95rem;line-height:1.5}.chat-bubble.user{background:var(--accent);color:#000;border-bottom-right-radius:4px;align-self:flex-end}.chat-bubble.assistant{background:var(--surface-raised,var(--surface));border:1px solid var(--line);border-bottom-left-radius:4px;align-self:flex-start}.chat-row{gap:8px;margin-top:4px;display:flex}.chat-input{border:1px solid var(--line);background:var(--surface);color:var(--text);border-radius:24px;outline:none;flex:1;padding:10px 14px;font-size:.95rem}.chat-input:focus{border-color:var(--accent)}.chat-dots{align-items:center;gap:4px;height:20px;display:inline-flex}.chat-dots span{background:var(--muted);border-radius:50%;width:7px;height:7px;animation:1.2s ease-in-out infinite both dot-bounce}.chat-dots span:first-child{animation-delay:0s}.chat-dots span:nth-child(2){animation-delay:.2s}.chat-dots span:nth-child(3){animation-delay:.4s}@keyframes dot-bounce{0%,80%,to{opacity:.4;transform:scale(.7)}40%{opacity:1;transform:scale(1)}}.stats{margin:0 0 10px}.stats>div{border-bottom:1px solid var(--line);justify-content:space-between;gap:12px;padding:9px 0;display:flex}.stats>div:last-child{border-bottom:0}.stats dt{color:var(--muted)}.stats dd{text-align:right;margin:0;font-weight:600}.plain{margin:8px 0 0;padding-left:20px}.plain li{padding:3px 0}.form{flex-direction:column;gap:14px;display:flex}fieldset{border:0;flex-direction:column;gap:14px;min-width:0;margin:0;padding:0;display:flex}fieldset+fieldset{border-top:1px solid var(--line);padding-top:16px}legend{margin-bottom:10px;padding:0;font-size:1.15rem;font-weight:700}.field{flex-direction:column;flex:1;gap:6px;min-width:0;display:flex}.field>span{color:var(--muted);font-size:.85rem}.row{gap:12px;display:flex}input,select{width:100%;font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:12px}input:focus-visible,select:focus-visible,button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--line);cursor:pointer;border-radius:999px;min-height:44px;padding:9px 14px}.chip.on{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:600}.goals{grid-template-columns:1fr 1fr;gap:10px;display:grid}.goal{font:inherit;text-align:left;color:var(--text);background:var(--bg);border:1px solid var(--line);cursor:pointer;border-radius:14px;flex-direction:column;gap:4px;padding:14px;display:flex}.goal span{color:var(--muted);font-size:.85rem}.goal.on{border-color:var(--accent);background:var(--accent-soft)}.steps{gap:6px;display:flex}.steps i{background:var(--line);border-radius:4px;flex:1;height:4px}.steps i.on{background:var(--accent)}.actions{flex-wrap:wrap;gap:10px;display:flex}.btn{font:inherit;background:var(--accent);min-height:48px;color:var(--accent-ink);cursor:pointer;border:0;border-radius:14px;flex:1;padding:14px 18px;font-weight:650}.btn.ghost{color:var(--text);border:1px solid var(--line);background:0 0}.btn.danger{color:var(--danger);border:1px solid var(--danger);background:0 0}.error{color:var(--danger);margin:0}.ok{color:var(--accent);margin:0}.tabs{background:var(--surface);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom);justify-content:center;display:flex;position:fixed;bottom:0;left:0;right:0}.tabs a{max-width:112px;color:var(--muted);flex-direction:column;flex:1;align-items:center;gap:3px;padding:9px 4px 8px;font-size:.7rem;text-decoration:none;display:flex}.tabs svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:22px;height:22px}.tabs a.active{color:var(--accent);font-weight:650}
