:root{--void:#08080a;--panel:#101013;--panel-2:#16161a;--panel-3:#1d1d22;--edge:#2a2a31;--edge-soft:#1c1c21;--edge-hot:#3d3d46;--volt:#d4ff32;--volt-ink:#08080a;--volt-wash:#d4ff321f;--volt-line:#d4ff326b;--ink:#f2f2f0;--ink-2:#a3a3ac;--ink-3:#7c7c86;--bad:#ff6b6b;--good:#9ae66e;--grid:#ffffff0e;--axis:#ffffff24;--c-chest:#3987e5;--c-back:#199e70;--c-shoulder:#d95926;--c-arm:#9085e9;--c-leg:#e66767;--c-abs:#008300;--c-other:#8a8a92;--font-display:"Oswald", "Zen Kaku Gothic New", sans-serif;--font-ui:"Zen Kaku Gothic New", system-ui, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, "SFMono-Regular", monospace;--r:2px}*{box-sizing:border-box;margin:0;padding:0}html{background:var(--void)}body{font-family:var(--font-ui);color:var(--ink);background:var(--void);-webkit-font-smoothing:antialiased;min-height:100dvh;font-size:15px;font-weight:400;overflow-x:clip}.plate{z-index:0;pointer-events:none;background-image:repeating-linear-gradient(#ffffff04 0 1px,#0000 1px 5px),radial-gradient(90% 55% at 82% -8%,#d4ff320e,#0000 70%),radial-gradient(70% 40% at -10% 12%,#ffffff09,#0000 70%);position:fixed;inset:0}.rail{z-index:6;background:linear-gradient(90deg, var(--volt) 0, var(--volt) 18%, #d4ff3240 34%, transparent 62%);height:2px;position:fixed;top:0;left:0;right:0}#root{z-index:1;position:relative}.shell{max-width:1120px;margin:0 auto;padding:0 .9rem 6.5rem}.panel{background:var(--panel);border:1px solid var(--edge);border-radius:var(--r);padding:1rem .95rem 1.05rem;transition:border-color .2s;box-shadow:inset 0 1px #ffffff09}.panel:hover{border-color:var(--edge-hot)}.brand{font-family:var(--font-display);letter-spacing:.12em;text-transform:uppercase;color:var(--ink);font-size:1.28rem;font-weight:600;line-height:1}.brand em{color:var(--volt);font-style:normal}.brand-sub{font-family:var(--font-mono);letter-spacing:.22em;color:var(--ink-3);margin-top:.4rem;font-size:.6rem}.head{align-items:center;gap:.55rem;margin-bottom:.95rem;display:flex}.head:before{content:"";background:var(--volt);flex:none;width:3px;height:12px}.head .label{font-family:var(--font-display);letter-spacing:.2em;text-transform:uppercase;color:var(--ink);white-space:nowrap;font-size:.78rem;font-weight:500}.head .rule{background:var(--edge);flex:1;min-width:.5rem;height:1px}.head .aside{font-family:var(--font-mono);letter-spacing:.1em;color:var(--ink-3);flex:none;font-size:.62rem}.note{letter-spacing:.04em;color:var(--ink-3);font-size:.7rem;line-height:1.6}.note b{font-family:var(--font-mono);color:var(--ink-2);font-weight:500}.topbar{justify-content:space-between;align-items:flex-start;gap:1rem;padding:1.5rem .15rem 1.15rem;display:flex}.icon-btn{font-family:var(--font-mono);letter-spacing:.14em;color:var(--ink-3);cursor:pointer;background:0 0;border:none;padding:.35rem .2rem;font-size:.64rem;transition:color .2s}.icon-btn:hover{color:var(--volt)}.stack{gap:.9rem;display:grid}.stack>*{min-width:0}.metrics{background:var(--edge);border:1px solid var(--edge);border-radius:var(--r);grid-template-columns:1fr 1fr;gap:1px;display:grid;overflow:hidden}.metric{background:var(--panel);padding:.85rem .8rem .9rem}.metric .k{letter-spacing:.16em;color:var(--ink-3);margin-bottom:.5rem;font-size:.66rem;display:block}.metric .v{font-family:var(--font-display);letter-spacing:-.005em;color:var(--ink);font-variant-numeric:tabular-nums;font-size:clamp(2rem,8.5vw,2.5rem);font-weight:600;line-height:.9;display:block}.metric .v.lit{color:var(--volt)}.metric .v.sm{font-size:clamp(1.3rem,5.5vw,1.6rem);line-height:1.05}.metric .v em{letter-spacing:.08em;color:var(--ink-3);margin-left:.2em;font-size:.4em;font-style:normal;font-weight:400}.metric .s{letter-spacing:.05em;color:var(--ink-3);margin-top:.55rem;font-size:.66rem;line-height:1.4;display:block}.metric .s b{font-family:var(--font-mono);color:var(--ink-2);font-weight:500}.chips{background:var(--edge-soft);border:1px solid var(--edge-soft);scrollbar-width:none;gap:1px;margin-bottom:.9rem;display:flex;overflow-x:auto;-webkit-mask-image:linear-gradient(90deg,#000 0 90%,#0000);mask-image:linear-gradient(90deg,#000 0 90%,#0000)}.chips::-webkit-scrollbar{display:none}.chip{font-family:var(--font-ui);letter-spacing:.08em;color:var(--ink-2);background:var(--panel);cursor:pointer;border:none;border-radius:0;flex:none;padding:.5rem .85rem;font-size:.72rem;font-weight:500;transition:background .15s,color .15s}.chip:hover{background:var(--panel-3);color:var(--ink)}.chip.on,.chip.on:hover{background:var(--volt);color:var(--volt-ink);font-weight:700}.chart-card .recharts-surface{overflow:visible}.legend-row{border-top:1px solid var(--edge-soft);flex-wrap:wrap;gap:.3rem .85rem;margin-top:.75rem;padding-top:.7rem;display:flex}.legend-item{letter-spacing:.06em;color:var(--ink-2);align-items:center;gap:.4rem;font-size:.68rem;display:inline-flex}.swatch{flex:none;width:9px;height:9px}.swatch.line{width:15px;height:2px}.tip{background:var(--panel-2);border:1px solid var(--edge-hot);border-radius:var(--r);padding:.55rem .65rem;box-shadow:0 8px 24px #0009}.tip .t-title{font-family:var(--font-mono);letter-spacing:.14em;color:var(--ink-3);border-bottom:1px solid var(--edge-soft);margin-bottom:.35rem;padding-bottom:.35rem;font-size:.62rem}.tip .t-row{color:var(--ink-2);align-items:center;gap:.45rem;font-size:.7rem;line-height:1.75;display:flex}.tip .t-row b{font-family:var(--font-mono);color:var(--ink);font-variant-numeric:tabular-nums;margin-left:auto;padding-left:1rem;font-weight:500}.cal-nav{flex:none;align-items:center;gap:1px;display:flex}.cal-nav button{background:var(--panel-2);border:1px solid var(--edge);color:var(--ink-2);cursor:pointer;width:1.7rem;height:1.7rem;font-size:.8rem;line-height:1;transition:background .15s,color .15s}.cal-nav button:hover{background:var(--panel-3);color:var(--volt)}.cal-month{font-family:var(--font-mono);letter-spacing:.1em;color:var(--ink);text-align:center;min-width:4.4rem;font-size:.7rem}.cal-grid{background:var(--edge-soft);border:1px solid var(--edge-soft);grid-template-columns:repeat(7,1fr);gap:1px;display:grid}.cal-wd{background:var(--panel);text-align:center;font-family:var(--font-mono);letter-spacing:.06em;color:var(--ink-3);padding:.3rem 0;font-size:.58rem}.cal-wd.sat{color:#6f93c4}.cal-wd.sun{color:#c47a7a}.cal-day{aspect-ratio:1;background:var(--panel);color:var(--ink-3);font-family:var(--font-display);cursor:pointer;border:none;justify-content:center;align-items:center;padding-bottom:6%;font-size:.8rem;font-weight:400;transition:background .15s,color .15s;display:flex;position:relative}.cal-day.empty{cursor:default;background:#0b0b0e}.cal-day:not(.empty):hover{background:var(--panel-3);color:var(--ink)}.cal-day.trained{background:var(--panel-3);color:var(--ink);font-weight:500}.cal-day.today{box-shadow:inset 0 0 0 1px var(--volt-line);color:var(--volt)}.cal-day.selected,.cal-day.selected:hover{background:var(--volt);color:var(--volt-ink);box-shadow:none;font-weight:600}.cal-day .stripe{gap:1px;height:3px;display:flex;position:absolute;bottom:15%;left:22%;right:22%}.cal-day .stripe i{flex:1}.cal-detail{border-top:1px solid var(--edge-soft);margin-top:.9rem;padding-top:.8rem}.cal-detail .d-head{font-family:var(--font-mono);letter-spacing:.1em;color:var(--ink);align-items:baseline;gap:.6rem;margin-bottom:.55rem;font-size:.68rem;display:flex}.cal-detail .d-head span{color:var(--ink-3);font-size:.62rem}.row{border-bottom:1px solid var(--edge-soft);align-items:center;gap:.55rem;padding:.42rem 0;font-size:.8rem;display:flex}.row:last-child{border-bottom:none}.row .name{color:var(--ink-2);text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.row .fig{font-family:var(--font-mono);color:var(--ink);font-variant-numeric:tabular-nums;letter-spacing:.02em;flex:none;margin-left:auto;font-size:.7rem}.row .fig small{color:var(--ink-3);margin-left:.35em;font-size:.85em}.cal-detail .ex{border-bottom:1px solid var(--edge-soft)}.cal-detail .ex:last-child{border-bottom:none}.cal-detail .ex .row{border-bottom:none;padding-bottom:.24rem}.cal-detail .sets{flex-wrap:wrap;gap:.28rem .5rem;margin:0;padding:0 0 .45rem 1.15rem;list-style:none;display:flex}.cal-detail .sets li{font-family:var(--font-mono);color:var(--ink-2);font-variant-numeric:tabular-nums;background:var(--panel-3);align-items:baseline;gap:.3em;padding:.14rem .4rem;font-size:.68rem;display:flex}.cal-detail .sets li b{color:var(--ink-3);font-size:.9em;font-weight:500}.cal-detail .sets li em{color:var(--ink-3);font-size:.95em;font-style:normal}.meters{margin-bottom:1.2rem}.meter{margin-bottom:.85rem}.meter:last-child{margin-bottom:0}.meter .m-head{letter-spacing:.06em;color:var(--ink-2);align-items:baseline;gap:.5rem;margin-bottom:.4rem;font-size:.72rem;display:flex}.meter .m-head b{font-family:var(--font-mono);color:var(--ink);font-variant-numeric:tabular-nums;margin-left:auto;font-size:.72rem;font-weight:500}.meter .m-head b i{color:var(--ink-3);font-style:normal}.meter .m-track{background:var(--panel-3);height:5px;position:relative;overflow:hidden}.meter .m-fill{height:100%;transition:width .5s cubic-bezier(.2,.8,.2,1)}.meter .m-track:after{content:"";background:var(--volt-line);width:1px;position:absolute;top:0;bottom:0;right:0}.meal-list{border-top:1px solid var(--edge-soft);margin-top:.95rem;padding-top:.8rem}.meal-row{border-bottom:1px solid var(--edge-soft);align-items:baseline;gap:.55rem;padding:.42rem 0;font-size:.78rem;display:flex}.meal-row:last-child{border-bottom:none}.meal-type{letter-spacing:.1em;color:var(--volt);border:1px solid var(--volt-line);flex:none;padding:.08rem .4rem;font-size:.62rem}.meal-desc{color:var(--ink-2);min-width:0;line-height:1.5}.meal-macros{font-family:var(--font-mono);color:var(--ink-3);font-variant-numeric:tabular-nums;letter-spacing:.02em;flex:none;margin-left:auto;font-size:.66rem}.field label{letter-spacing:.14em;color:var(--ink-3);margin-bottom:.35rem;font-size:.64rem;display:block}input,select,textarea{width:100%;font-family:var(--font-ui);color:var(--ink);background:var(--panel-2);border:1px solid var(--edge);border-radius:var(--r);outline:none;padding:.62rem .7rem;font-size:.95rem;font-weight:400;transition:border-color .15s,background .15s}input[type=number],input[type=date]{font-family:var(--font-mono);font-variant-numeric:tabular-nums}input:focus,select:focus,textarea:focus{border-color:var(--volt);background:var(--panel-3)}input::placeholder{color:var(--ink-3)}select option{background:var(--panel-2)}input[type=date]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}.btn{font-family:var(--font-display);letter-spacing:.18em;text-transform:uppercase;color:var(--volt-ink);background:var(--volt);border:1px solid var(--volt);border-radius:var(--r);cursor:pointer;padding:.78rem 1rem;font-size:.82rem;font-weight:600;transition:filter .15s,background .15s}.btn:hover{filter:brightness(1.08)}.btn:active{filter:brightness(.92)}.btn:disabled{opacity:.45;cursor:default;filter:none}.btn.ghost{color:var(--ink-2);border-color:var(--edge);background:0 0}.btn.ghost:hover{border-color:var(--volt-line);color:var(--ink);filter:none}.btn.google{background:var(--ink);border-color:var(--ink);color:var(--void);letter-spacing:.08em;text-transform:none;font-family:var(--font-ui);justify-content:center;align-items:center;gap:.6rem;font-weight:700;display:inline-flex}.err,.ok{font-family:var(--font-mono);letter-spacing:.04em;font-size:.7rem;line-height:1.5}.err{color:var(--bad)}.ok{color:var(--good)}.fab{right:max(1rem, env(safe-area-inset-right));bottom:max(1.1rem, env(safe-area-inset-bottom));z-index:20;border-radius:var(--r);background:var(--volt);width:3.3rem;height:3.3rem;color:var(--volt-ink);font-family:var(--font-display);cursor:pointer;border:none;font-size:1.7rem;font-weight:400;line-height:1;transition:transform .15s;position:fixed;box-shadow:0 10px 30px #000000a6}.fab:active{transform:scale(.94)}.sheet-bg{z-index:30;background:#040406c7;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--panel);border-top:2px solid var(--volt);border-left:1px solid var(--edge);border-right:1px solid var(--edge);width:min(640px,100%);max-height:90dvh;padding:1.1rem 1rem calc(1.5rem + env(safe-area-inset-bottom));animation:.22s cubic-bezier(.2,.8,.2,1) rise;overflow-y:auto}@keyframes rise{0%{transform:translateY(28px)}to{transform:translateY(0)}}.sheet-tabs{align-items:center;gap:1px;margin-bottom:1.15rem;display:flex}.sheet-tabs .chip{border:1px solid var(--edge)}.sheet-tabs .chip.on{border-color:var(--volt)}.sheet-tabs .icon-btn{margin-left:auto;padding-left:.8rem}.set-row{grid-template-columns:1.9rem 1fr 1fr 1.9rem;align-items:center;gap:.45rem;margin-bottom:.45rem;display:grid}.set-row .n{font-family:var(--font-mono);color:var(--ink-3);text-align:center;letter-spacing:.08em;font-size:.7rem}.set-row .rm{color:var(--ink-3);cursor:pointer;background:0 0;border:none;font-size:1rem}.set-row .rm:hover{color:var(--bad)}.form-grid{grid-template-columns:1fr 1fr;gap:.65rem;margin-bottom:.7rem;display:grid}.form-grid .wide{grid-column:1/-1}.login-wrap{place-items:center;min-height:100dvh;padding:1.2rem;display:grid}.login-card{flex-direction:column;gap:1.15rem;width:min(21rem,92vw);padding:1.7rem 1.4rem 1.5rem;display:flex}.login-card .mark{font-family:var(--font-display);letter-spacing:.04em;text-transform:uppercase;font-size:2.5rem;font-weight:600;line-height:.92}.login-card .mark span{color:var(--volt);display:block}.login-card .kicker{font-family:var(--font-mono);letter-spacing:.26em;color:var(--ink-3);border-top:1px solid var(--edge);padding-top:.9rem;font-size:.6rem}.reveal{animation:.42s cubic-bezier(.2,.8,.2,1) both fadeup}@keyframes fadeup{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.loading{min-height:60dvh;font-family:var(--font-mono);letter-spacing:.4em;color:var(--ink-3);place-items:center;font-size:.66rem;animation:1.3s steps(2,end) infinite blink;display:grid}@keyframes blink{50%{opacity:.3}}@media (prefers-reduced-motion:reduce){.reveal,.sheet,.loading{animation:none}*{transition-duration:.01ms!important}}@media (width>=560px){.metrics{grid-template-columns:repeat(4,1fr)}.shell{padding-inline:1.2rem}}@media (width>=900px){.stack{grid-template-columns:1fr 1fr;gap:1rem}.stack>.wide{grid-column:1/-1}.panel{padding:1.15rem 1.1rem 1.2rem}.topbar{padding-top:2rem}.brand{font-size:1.5rem}.cal-day{aspect-ratio:1.5}.meters{grid-template-columns:repeat(3,minmax(0,1fr));gap:0 1.6rem;display:grid}.meters .meter{margin-bottom:0}}
