:root{--bg:#0f1115;--surface:#171a21;--surface-2:#1f2430;--surface-3:#2a303c;--border:#2a303c;--text:#e8eaed;--muted:#98a1b3;--faint:#6b7488;--accent:#4c8dff;--accent-dim:#24365c;--success:#2fbf71;--success-dim:#17392a;--danger:#ff5c5c;--danger-dim-bg:#24161b;--danger-dim-border:#4a2630;--pr:#ffb020;--dropset:#b57bff;--tap:48px;--radius:12px;--pad:14px;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--tabbar-h:60px;--viewport-shortfall:0px;--tabbar-pad:max(0px, min(var(--safe-bottom), 10px) - var(--viewport-shortfall));--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-synthesis:none;-webkit-text-size-adjust:100%;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}html,body,#root{height:100%}html{background:var(--bg)}body{background:var(--bg);color:var(--text);overscroll-behavior-y:none;margin:0;overflow:hidden}button,input,select,textarea{font:inherit;color:inherit}button{-webkit-tap-highlight-color:transparent;touch-action:manipulation;-webkit-user-select:none;user-select:none;cursor:pointer}h1,h2,h3{letter-spacing:-.01em;margin:0;font-weight:650}.app{height:100dvh;height:var(--app-height,100dvh);--bottom-inset:calc(var(--tabbar-h) + var(--tabbar-pad));flex-direction:column;display:flex}.app.no-tabs{--bottom-inset:calc(var(--safe-bottom) + 76px)}.topbar{padding:calc(var(--safe-top) + 10px) var(--pad) 10px;background:var(--bg);border-bottom:1px solid var(--border);z-index:20;align-items:center;gap:10px;display:flex;position:sticky;top:0}.topbar h1{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:20px;overflow:hidden}.topbar .sub{color:var(--muted);letter-spacing:0;font-size:12px;font-weight:500;display:block}main{-webkit-overflow-scrolling:touch;padding:var(--pad);padding-bottom:calc(var(--bottom-inset) + 90px);flex:1;overflow-y:auto}main.with-footer{padding-bottom:calc(var(--bottom-inset) + 110px)}.tabbar{z-index:30;background:var(--bg);border-top:1px solid var(--border);padding-bottom:var(--tabbar-pad);grid-template-columns:repeat(5,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.tabbar a{height:var(--tabbar-h);color:var(--faint);-webkit-tap-highlight-color:transparent;flex-direction:column;justify-content:center;align-items:center;gap:3px;font-size:10.5px;font-weight:600;text-decoration:none;display:flex}.tabbar a.active{color:var(--accent)}.tabbar svg{width:22px;height:22px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--pad);margin-bottom:12px}.card.tight{padding:10px var(--pad)}.row{align-items:center;gap:10px;display:flex}.row.between{justify-content:space-between}.col{flex-direction:column;gap:10px;display:flex}.grow{flex:1;min-width:0}.muted{color:var(--muted)}.faint{color:var(--faint)}.small{font-size:13px}.tiny{font-size:11.5px}.mono{font-variant-numeric:tabular-nums}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.stack>*+*{margin-top:8px}.sep{background:var(--border);height:1px;margin:12px 0}.section-title{letter-spacing:.07em;text-transform:uppercase;color:var(--faint);margin:20px 2px 8px;font-size:12px;font-weight:700}main>.section-title:first-child{margin-top:4px}.btn{min-height:var(--tap);border:1px solid var(--border);background:var(--surface-2);color:var(--text);border-radius:10px;justify-content:center;align-items:center;gap:8px;padding:0 16px;font-size:15px;font-weight:600;display:inline-flex}.btn:active{filter:brightness(1.25);transform:scale(.985)}.btn:disabled{opacity:.45;pointer-events:none}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.success{background:var(--success);border-color:var(--success);color:#06170f}.btn.danger{color:var(--danger);border-color:var(--danger-dim-border);background:var(--danger-dim-bg)}.btn.ghost{background:0 0}.btn.block{width:100%}.btn.lg{min-height:56px;font-size:17px}.btn.sm{border-radius:9px;min-height:38px;padding:0 12px;font-size:13px}.btn.icon{min-width:var(--tap);padding:0}.iconbtn{width:40px;height:40px;color:var(--muted);background:0 0;border:none;border-radius:10px;flex:none;justify-content:center;align-items:center;display:inline-flex}.iconbtn:active{background:var(--surface-2)}.iconbtn svg{width:20px;height:20px}label.field{margin-bottom:12px;display:block}label.field>span{color:var(--muted);margin-bottom:6px;font-size:12.5px;font-weight:600;display:block}.input{width:100%;min-height:var(--tap);border:1px solid var(--border);background:var(--surface-2);border-radius:10px;outline:none;padding:0 12px;font-size:16px}textarea.input{resize:vertical;min-height:80px;padding:12px;line-height:1.4}select.input{appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--muted) 50%), linear-gradient(135deg, var(--muted) 50%, transparent 50%);background-position:calc(100% - 18px) 21px,calc(100% - 13px) 21px;background-repeat:no-repeat;background-size:5px 5px,5px 5px;padding-right:34px}.input:focus{border-color:var(--accent)}.searchfield{position:relative}.searchfield .input{padding-right:var(--tap)}.searchfield .input::-webkit-search-cancel-button{appearance:none}.searchclear{width:var(--tap);height:100%;color:var(--faint);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:flex;position:absolute;top:0;right:0}.searchclear:active{color:var(--text)}.input::placeholder{color:var(--faint)}.badge{letter-spacing:.03em;background:var(--surface-3);color:var(--muted);white-space:nowrap;border-radius:999px;align-items:center;gap:4px;padding:2px 7px;font-size:10.5px;font-weight:700;display:inline-flex}.badge.pr{color:var(--pr);background:#3a2b0c}.badge.accent{background:var(--accent-dim);color:#a9c6ff}.badge.up{background:var(--success-dim);color:var(--success)}.badge.down{color:var(--danger);background:#3a1c1c}.list{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);flex-direction:column;display:flex;overflow:hidden}.list>*+*{border-top:1px solid var(--border)}.listitem{text-align:left;width:100%;min-height:58px;color:inherit;background:0 0;border:none;align-items:center;gap:12px;padding:10px 14px;text-decoration:none;display:flex}.listitem:active{background:var(--surface-2)}.listitem.done{background:color-mix(in srgb, var(--success) 10%, transparent);box-shadow:inset 3px 0 0 var(--success)}.donetick{color:var(--success);flex:none}.chev{color:var(--faint);flex:none}.empty{text-align:center;color:var(--muted);padding:36px 20px;font-size:14px;line-height:1.5}.setgrid{grid-template-columns:30px minmax(58px, 1fr) 1fr 1fr var(--tap);align-items:center;gap:6px;display:grid}.setgrid.time{grid-template-columns:30px minmax(58px, 1fr) 2fr var(--tap)}.setgrid.plan{grid-template-columns:30px 1fr 1fr}.setgrid.plan.time{grid-template-columns:30px 1fr}.setgrid.plan.range{grid-template-columns:30px 1fr 1.45fr}.repsrange{align-items:center;gap:4px;display:flex}.repsrange span{color:var(--faint);flex:none;font-size:13px}.setgrid .span-all{grid-column:1/-1}.setgrid .head{letter-spacing:.05em;text-transform:uppercase;color:var(--faint);text-align:center;padding-bottom:2px;font-size:10.5px;font-weight:700}.setgrid .head.left{text-align:left}.setgrid .head.toggle{font:inherit;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);cursor:pointer;text-underline-offset:3px;background:0 0;border:none;margin:-6px 0 -4px;padding:6px 2px;font-size:10.5px;font-weight:700;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.setgrid .head.toggle.on{color:var(--accent);text-decoration-style:solid}.setnum{color:var(--muted);text-align:center;font-variant-numeric:tabular-nums;font-size:14px;font-weight:700}.prev{color:var(--faint);text-align:center;font-variant-numeric:tabular-nums;flex-direction:column;justify-content:center;align-items:center;gap:1px;font-size:12px;line-height:1.15;display:flex;overflow:hidden}.prev .prevline{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.confetti{pointer-events:none;z-index:70;width:100%;height:100%;position:fixed;inset:0}.prev.tap{color:var(--muted);-webkit-text-decoration:underline dotted var(--surface-3);text-decoration:underline dotted var(--surface-3);text-underline-offset:3px}.setinput{width:100%;height:var(--tap);text-align:center;border:1px solid var(--border);background:var(--surface-2);font-variant-numeric:tabular-nums;border-radius:10px;outline:none;padding:0 2px;font-size:16px;font-weight:600}.setinput:focus{border-color:var(--accent);background:var(--surface-3)}.setinput::placeholder{color:var(--faint);font-weight:400}.checkbtn{width:100%;height:var(--tap);border:1px solid var(--border);background:var(--surface-2);color:var(--faint);border-radius:10px;justify-content:center;align-items:center;display:flex}.checkbtn svg{width:22px;height:22px}.checkbtn.done{background:var(--success);border-color:var(--success);color:#06170f}.checkbtn:disabled{opacity:.35}.resumebar{left:0;right:0;bottom:var(--bottom-inset);z-index:28;background:var(--accent-dim);color:#d7e4ff;border-top:1px solid #3a5a9e;align-items:stretch;width:100%;height:52px;display:flex;position:fixed}.resumebar .main{min-width:0;padding:0 4px 0 var(--pad);color:inherit;text-align:left;background:0 0;border:none;flex:1;align-items:center;gap:10px;font-size:14px;font-weight:600;display:flex}.resumebar .discard{width:52px;color:var(--danger);background:0 0;border:none;border-left:1px solid #ffffff1f;flex:none;justify-content:center;align-items:center;display:flex}.resumebar .discard:active{background:#00000026}.resttimer{left:8px;right:8px;bottom:calc(var(--bottom-inset) + 8px);z-index:40;background:var(--surface-3);border:1px solid #3a4358;border-radius:14px;align-items:center;gap:8px;padding:8px 8px 8px 14px;display:flex;position:fixed;overflow:hidden;box-shadow:0 8px 28px #0000008c}.resttimer .fill{background:var(--accent-dim);transform-origin:0;z-index:-1;transition:transform .95s linear;position:absolute;inset:0}.resttimer.elapsed .fill{background:var(--success-dim)}.app.has-resume .resttimer{bottom:calc(var(--bottom-inset) + 60px)}.resttimer .time{font-variant-numeric:tabular-nums;min-width:62px;font-size:22px;font-weight:700}.resttimer .lbl{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:11px;font-weight:600}.footer-action{z-index:25;padding:10px var(--pad) calc(10px + var(--safe-bottom));background:linear-gradient(to top, var(--bg) 72%, transparent);gap:10px;display:flex;position:fixed;bottom:0;left:0;right:0}.footer-action.hidden{display:none}.scrolltop-btn{right:var(--pad);bottom:calc(var(--bottom-inset) + var(--pad));z-index:26;border:1px solid var(--border);background:var(--surface-2);width:44px;height:44px;color:var(--text);opacity:1;border-radius:50%;justify-content:center;align-items:center;transition:opacity .15s,transform .15s;display:flex;position:fixed;box-shadow:0 4px 14px #00000059}.scrolltop-btn.hidden{opacity:0;pointer-events:none;transform:translateY(6px)}.backdrop{z-index:50;padding-bottom:var(--keyboard-inset,0px);background:#0009;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{width:100%;max-height:calc(88vh - var(--keyboard-inset,0px));background:var(--bg);border-top:1px solid var(--border);padding-bottom:var(--safe-bottom);border-top-left-radius:18px;border-top-right-radius:18px;flex-direction:column;animation:.18s ease-out slideup;display:flex}@keyframes slideup{0%{opacity:.6;transform:translateY(16px)}}.sheet header{padding:14px var(--pad) 10px;border-bottom:1px solid var(--border);align-items:center;gap:10px;display:flex}.sheet header h2{flex:1;font-size:17px}.sheet .body{padding:var(--pad);overflow-y:auto}.sheet .body.flush{padding:0}.chartbox{height:220px;position:relative}.chartbox.empty{text-align:center;border:1px dashed var(--border);border-radius:10px;justify-content:center;align-items:center;padding:0 20px;display:flex}.progressvalue{font-variant-numeric:tabular-nums;font-size:22px;font-weight:700}.upper{text-transform:uppercase;letter-spacing:.06em}.rangeselect{appearance:none;border:1px solid var(--border);background-color:var(--surface-2);background-image:linear-gradient(45deg, transparent 50%, var(--muted) 50%), linear-gradient(135deg, var(--muted) 50%, transparent 50%);height:32px;color:var(--text);background-position:calc(100% - 15px) 14px,calc(100% - 10px) 14px;background-repeat:no-repeat;background-size:5px 5px,5px 5px;border-radius:999px;outline:none;flex:none;padding:0 26px 0 12px;font-size:12.5px;font-weight:600}.musclesplit-centre{pointer-events:none;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.musclesplit-centre .v{font-size:22px;font-weight:700;line-height:1}.musclesplit-centre .k{color:var(--faint);margin-top:2px;font-size:11px}.musclesplit-row{align-items:center;gap:8px;padding:3px 0;font-size:13.5px;display:flex}.musclesplit-row .dot{border-radius:50%;flex:none;width:9px;height:9px}.wcard{color:inherit;text-decoration:none;display:block}.wcard:active{background:var(--surface-2)}.wcard-title{margin-bottom:12px;font-size:17px}.wcard-stats{border-bottom:1px solid var(--border);gap:22px;padding-bottom:12px;display:flex}.wcard-stats .k{color:var(--faint);margin-bottom:3px;font-size:11.5px}.wcard-stats .v{font-size:16px;font-weight:650}.wcard-list{padding-top:4px}.wcard-ex{align-items:center;gap:12px;padding:8px 0;font-size:15px;display:flex}.wcard-more{text-align:center;color:var(--faint);padding:8px 0 2px;font-size:13.5px}.calgrid{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.calgrid .dow{text-align:center;color:var(--faint);padding-bottom:2px;font-size:10px;font-weight:700}.calcell{aspect-ratio:1;color:var(--faint);background:var(--surface-2);border:none;border-radius:8px;justify-content:center;align-items:center;padding:0;font-size:12px;display:flex}.calcell.blank{background:0 0}.calcell.has{background:var(--accent);color:#fff;font-weight:700}.calcell.today{outline:1.5px solid var(--muted);outline-offset:-1.5px}.toast{left:50%;bottom:calc(var(--tabbar-h) + var(--tabbar-pad) + 20px);z-index:60;background:var(--surface-3);color:var(--text);text-align:center;border:1px solid #3a4358;border-radius:999px;max-width:90vw;padding:11px 18px;font-size:14px;font-weight:600;position:fixed;transform:translate(-50%);box-shadow:0 8px 28px #00000080}.stat{text-align:center;flex:1}.stat .v{font-variant-numeric:tabular-nums;font-size:20px;font-weight:700}.stat .k{color:var(--faint);margin-top:1px;font-size:11px}.chips{scrollbar-width:none;gap:8px;margin-bottom:10px;padding-bottom:4px;display:flex;overflow-x:auto}.chips::-webkit-scrollbar{display:none}.chip{border:1px solid var(--border);background:var(--surface);min-height:36px;color:var(--muted);border-radius:999px;flex:none;padding:0 14px;font-size:13px;font-weight:600}.chip.on{background:var(--accent-dim);color:#b9d0ff;border-color:#3a5a9e}input[type=date].input{appearance:none;height:var(--tap);text-align:left;min-width:0;color:var(--text);font-family:inherit;line-height:normal}input[type=date].input::-webkit-date-and-time-value{text-align:left;line-height:calc(var(--tap) - 2px);margin:0}input[type=date].input::-webkit-calendar-picker-indicator{opacity:.55;margin-left:auto}.subtabs{border-bottom:1px solid var(--border);margin-bottom:14px;display:flex}.subtabs button{min-height:42px;color:var(--muted);background:0 0;border:none;flex:1;padding:0 8px 10px;font-size:14px;font-weight:600;position:relative}.subtabs button.on{color:var(--text)}.subtabs button.on:after{content:"";background:var(--accent);border-radius:2px;height:2px;position:absolute;bottom:-1px;left:0;right:0}.profilehead{top:calc(-1 * var(--pad));z-index:15;margin:calc(-1 * var(--pad)) calc(-1 * var(--pad)) 0;padding:var(--pad) var(--pad) 0;background:var(--bg);position:sticky}.segmented{background:var(--surface-2);border:1px solid var(--border);border-radius:999px;flex:none;gap:2px;padding:2px;display:flex}.segmented button{min-height:32px;color:var(--muted);white-space:nowrap;background:0 0;border:none;border-radius:999px;padding:0 12px;font-size:12.5px;font-weight:600}.segmented button.on{background:var(--accent);color:#fff}.bodygraph{grid-template-columns:1fr 1fr;gap:12px;margin-bottom:14px;display:grid}.bodygraph-figure{flex-direction:column;align-items:center;gap:6px;display:flex}.bodygraph-figure svg{width:100%;max-width:168px;height:auto;display:block}.bodygraph-key{border-top:1px solid var(--border);padding-top:10px}.bodygraph-key-scale{flex-wrap:wrap;gap:6px 12px;display:flex}.bodygraph-key-step{align-items:center;gap:5px;display:flex}.swatch{border-radius:3px;flex:none;width:11px;height:11px}.bodygraph-legend{border-top:1px solid var(--border);margin-top:12px;padding-top:10px}.setnum-warmup{color:var(--pr)}.setnum-failure{color:var(--danger)}.setnum-dropset{color:var(--dropset)}.yeargrid{grid-template-columns:repeat(3,1fr);gap:16px 10px;display:grid}.yearmonth-head{width:100%;color:inherit;background:0 0;border:none;min-height:0;margin-bottom:5px;padding:0}.yeardots{grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.yeardot{aspect-ratio:1;background:var(--surface-2);border:none;border-radius:2px;padding:0}.yeardot.blank{background:0 0}.yeardot.has{background:var(--accent)}.yeardot.today{outline:1px solid var(--muted);outline-offset:-1px}.yearstrip+.yearstrip{margin-top:22px}.yearstrip-title{letter-spacing:-.01em;font-size:20px;font-weight:700}.yearstrip-months,.yearstrip-days{gap:1px;display:grid}.yearstrip-months{margin-bottom:5px}.yearstrip-month{text-align:left;color:var(--muted);white-space:nowrap;background:0 0;border:none;padding:0;font-size:10px;line-height:1.3}.yearstrip-days{grid-template-rows:repeat(7,auto);grid-auto-flow:column}.yearcell{aspect-ratio:1;background:var(--surface-2);border:none;border-radius:1.5px;min-width:0;padding:0}.yearcell.pad{background:0 0}.yearcell.has{background:var(--accent)}.yearcell.today{outline:1px solid var(--muted);outline-offset:-1px}.yearcell.sel{outline:1.5px solid var(--text);outline-offset:1px;border-radius:1px}.landscape-guard{display:none}@media (orientation:landscape) and (hover:none) and (pointer:coarse){.landscape-guard{z-index:100;background:var(--bg);color:var(--text);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:20px;padding:24px;display:flex;position:fixed;inset:0}.app{display:none}}.landscape-guard-phone{border:3px solid var(--faint);border-radius:10px;width:46px;height:78px;animation:1.8s ease-in-out infinite landscape-guard-rotate}@keyframes landscape-guard-rotate{0%,15%{transform:rotate(0)}50%,65%{transform:rotate(-90deg)}to{transform:rotate(0)}}@media (prefers-reduced-motion:reduce){.landscape-guard-phone{animation:none;transform:rotate(-90deg)}}
