:root{color-scheme:light dark;--bg:#0e1116;--bg-elevated:#161b22;--fg:#e6edf3;--fg-muted:#8b949e;--border:#30363d;--accent:#4ade80;--warn:#fbbf24;--danger:#f87171;--bg-deep:#090b0f;--accent-cool:#38bdf8;--accent-ink:#06170d;--shadow:0 1.5rem 3rem -1.5rem rgb(0 0 0/0.65);--font-sans:ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--font-mono:ui-monospace,"SF Mono","Cascadia Code",Menlo,monospace}@media (prefers-color-scheme:light){:root{--bg:#f7f6f3;--bg-elevated:#ffffff;--fg:#1a1d21;--fg-muted:#5c6370;--border:#dcdcd6;--accent:#16a34a;--warn:#b45309;--danger:#b91c1c;--bg-deep:#fbfaf7;--accent-cool:#0284c7;--accent-ink:#ffffff;--shadow:0 1.5rem 3rem -1.75rem rgb(26 29 33/0.18)}}*{box-sizing:border-box}body,html{margin:0;padding:0}body{background:var(--bg);color:var(--fg);font-family:var(--font-sans);line-height:1.5;-webkit-font-smoothing:antialiased}a{color:inherit}.page{max-width:60rem;margin:0 auto;padding:2rem 1.25rem 4rem}.page-header{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.75rem;margin-bottom:2rem}.page-header h1{margin:0;font-size:1.5rem;letter-spacing:-.01em}.nav{display:flex;gap:1rem;font-size:.875rem;color:var(--fg-muted)}.nav a:hover{color:var(--fg)}.nav form{display:inline}.link-button{font:inherit;font-size:inherit;padding:0;border:none;background:none;color:inherit;text-decoration:underline;text-underline-offset:.2em;cursor:pointer}.link-button:hover{color:var(--fg);border:none}section+section{margin-top:2rem}h2{font-size:1rem;font-weight:600;margin:0 0 .75rem}.muted{color:var(--fg-muted)}.small{font-size:.8125rem}.mono{font-family:var(--font-mono);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:.75rem;padding:1rem 1.125rem}.tiles{display:grid;grid-gap:.75rem;gap:.75rem;grid-template-columns:repeat(auto-fit,minmax(13rem,1fr))}.tile-label{font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;color:var(--fg-muted)}.tile-value{font-size:1.75rem;font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;margin-top:.25rem}.tile-note{font-size:.8125rem;color:var(--fg-muted);margin-top:.125rem}.up{color:var(--warn)}.down{color:var(--fg-muted)}.ok{color:var(--accent)}.alert{color:var(--danger)}table{width:100%;border-collapse:collapse;font-size:.875rem}th{text-align:left;font-weight:500;color:var(--fg-muted);font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;padding:0 .5rem .5rem 0}td{padding:.4rem .5rem .4rem 0;border-top:1px solid var(--border);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}td:last-child,th:last-child{padding-right:0}.numeric{text-align:right}.chart{width:100%;height:auto;display:block;overflow:visible}.chart-bar{fill:var(--accent)}.chart-bar-muted{fill:var(--border)}.chart-axis{stroke:var(--border);stroke-width:1}.chart-label{fill:var(--fg-muted);font-size:9px;font-family:var(--font-sans)}.chart-line{fill:none;stroke-width:1.75;stroke-linejoin:round}.zone-bar{display:flex;height:.75rem;border-radius:999px;overflow:hidden;background:var(--border)}.zone-legend{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:.5rem;font-size:.75rem;color:var(--fg-muted)}.zone-swatch{display:inline-block;width:.625rem;height:.625rem;border-radius:2px;margin-right:.35rem;vertical-align:baseline}.upload{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem}input[type=file]{color:var(--fg-muted)}button,input[type=file]{font:inherit;font-size:.875rem}button{padding:.4rem .9rem;border-radius:.5rem;border:1px solid var(--border);background:var(--bg);color:var(--fg);cursor:pointer}button:hover{border-color:var(--fg-muted)}.notice{border-left:2px solid var(--accent);padding:.25rem 0 .25rem .75rem;font-size:.875rem}.notice-error{border-color:var(--danger)}.empty{color:var(--fg-muted);font-size:.875rem}.activity-row a{text-decoration:none}.activity-row a:hover{text-decoration:underline}.badge{display:inline-block;font-size:.6875rem;text-transform:uppercase;letter-spacing:.05em;padding:.1rem .45rem;border:1px solid;border-radius:999px;white-space:nowrap}.badge.muted{color:var(--fg-muted)}.workout-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.structure{list-style:none;margin:.75rem 0 .5rem;padding:0;font-size:.8125rem}.structure li{display:flex;gap:.5rem;padding:.25rem 0;border-top:1px solid var(--border)}.structure .repeat{flex:0 0 2.5rem;color:var(--accent);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.structure .segments{display:flex;flex-direction:column;gap:.125rem}.week-head{display:flex;justify-content:space-between;font-size:.8125rem;color:var(--fg-muted);margin-bottom:.5rem}.progress{height:.5rem;border-radius:999px;background:var(--border);overflow:hidden}.progress-fill{height:100%;background:var(--accent)}.today-row td{background:color-mix(in srgb,var(--accent) 8%,transparent)}.changes{list-style:none;margin:0;padding:0}.changes li+li{margin-top:.625rem;padding-top:.625rem;border-top:1px solid var(--border)}.form-grid{display:grid;grid-gap:.75rem;gap:.75rem;grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));margin-bottom:.75rem}.field{display:flex;flex-direction:column;gap:.25rem;font-size:.8125rem;color:var(--fg-muted)}.field input,.field select{font:inherit;font-size:.875rem;color:var(--fg);background:var(--bg);border:1px solid var(--border);border-radius:.5rem;padding:.4rem .6rem}.field input:focus,.field select:focus{outline:none;border-color:var(--accent)}.weekday-choice{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.75rem}.weekday-option{display:flex;flex-direction:column;align-items:center;gap:.125rem;min-width:3.25rem;padding:.4rem .5rem;border:1px solid var(--border);border-radius:.5rem;cursor:pointer;font-size:.8125rem}.weekday-option:hover{border-color:var(--fg-muted)}.weekday-option:has(input:checked){border-color:var(--accent)}.checkbox-row{display:flex;align-items:flex-start;gap:.5rem;cursor:pointer}.actions{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;margin-top:1.5rem}.actions a{text-decoration:none}.field textarea{font:inherit;font-size:.875rem;color:var(--fg);background:var(--bg);border:1px solid var(--border);border-radius:.5rem;padding:.4rem .6rem;resize:vertical}.field textarea:focus{outline:none;border-color:var(--accent)}.checkin .actions{margin-top:.75rem}.scale-grid{display:grid;grid-gap:.75rem;gap:.75rem;grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));margin-bottom:.75rem}.scale-field{border:0;margin:0;padding:0}.scale-field legend{font-size:.8125rem;color:var(--fg-muted);padding:0 0 .25rem}.scale-row{display:flex;gap:.3rem}.scale-option{flex:1 1;display:flex;align-items:center;justify-content:center;min-height:2.25rem;border:1px solid var(--border);border-radius:.5rem;cursor:pointer;font-size:.875rem}.scale-option input{position:absolute;opacity:0;pointer-events:none}.scale-option:hover{border-color:var(--fg-muted)}.scale-option:has(input:checked){border-color:var(--accent);color:var(--accent)}.scale-hints{display:flex;justify-content:space-between;margin-top:.2rem}.chips{display:flex;flex-wrap:wrap;gap:.3rem}.badge.alert{color:var(--danger)}button.secondary{font-size:.8125rem;padding:.25rem .6rem;color:var(--fg-muted)}.diff-list{list-style:none;margin:.25rem 0 0;padding:0 0 0 .75rem;border-left:1px solid var(--border)}.diff-list li+li{margin-top:.125rem}.auth-shell{position:relative;overflow:hidden;min-height:100dvh;display:grid;align-content:center;justify-content:center;grid-gap:clamp(1.75rem,4vw,2.75rem);gap:clamp(1.75rem,4vw,2.75rem);padding:clamp(2rem,6vh,4.5rem) max(clamp(1.25rem,5vw,3.5rem),(100% - 76rem)/2);grid-template-areas:"hero" "form" "extras";grid-template-columns:minmax(0,1fr);background:radial-gradient(60rem 38rem at 12% 2%,color-mix(in srgb,var(--accent) 30%,transparent),transparent 60%),radial-gradient(50rem 34rem at 88% 96%,color-mix(in srgb,var(--accent-cool) 24%,transparent),transparent 58%),var(--bg-deep)}@media (min-width:64rem){.auth-shell{grid-template-areas:"hero form" "extras form";grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);column-gap:clamp(2.5rem,6vw,5.5rem);row-gap:2.5rem}}.auth-hero{grid-area:hero;position:relative}.auth-form{grid-area:form;position:relative;align-self:center;width:100%;max-width:25rem}.auth-extras{grid-area:extras;position:relative}.auth-bars{position:absolute;inset:auto 0 0;height:clamp(6rem,20vh,10rem);display:flex;align-items:flex-end;gap:clamp(.25rem,.8vw,.6rem);padding:0 clamp(1.25rem,5vw,3.5rem);pointer-events:none;-webkit-mask-image:linear-gradient(0deg,#000,transparent 88%);mask-image:linear-gradient(0deg,#000,transparent 88%)}@media (prefers-color-scheme:light){.auth-bars{opacity:.7}}.auth-bars span{flex:1 1;border-radius:.25rem .25rem 0 0;background:linear-gradient(to top,color-mix(in srgb,var(--accent) 20%,transparent),color-mix(in srgb,var(--accent) 9%,transparent))}.auth-mark{display:flex;align-items:center;gap:.5rem;margin:0 0 clamp(1.5rem,4vw,2.25rem);font-size:.9375rem;font-weight:600;letter-spacing:.01em}.auth-logo{fill:var(--accent);flex:0 0 auto}.auth-headline{margin:0;max-width:16ch;font-size:clamp(2.125rem,5.5vw,3.25rem);font-weight:600;line-height:1.05;letter-spacing:-.03em;text-wrap:balance}.auth-headline em{font-style:normal;color:var(--accent);background:linear-gradient(100deg,var(--accent),var(--accent-cool));-webkit-background-clip:text;background-clip:text}@supports ((-webkit-background-clip:text) or (background-clip:text)) or (-webkit-background-clip:text){.auth-headline em{color:transparent}}.auth-lead{margin:1.125rem 0 0;max-width:40ch;font-size:clamp(1rem,1.4vw,1.0625rem);line-height:1.6;color:var(--fg-muted)}.auth-features{list-style:none;margin:0;padding:0;display:grid;grid-gap:1.125rem;gap:1.125rem;max-width:32rem}.auth-feature{display:grid;grid-template-columns:1.75rem 1fr;grid-gap:.75rem;gap:.75rem}.auth-feature-icon{display:grid;place-items:center;width:1.75rem;height:1.75rem;border-radius:.5rem;background:color-mix(in srgb,var(--accent) 15%,transparent);color:var(--accent)}.auth-feature b{display:block;font-size:.9375rem;font-weight:600;margin-bottom:.125rem}.auth-feature-text{display:block;font-size:.875rem;line-height:1.55;color:var(--fg-muted)}.auth-proof{margin:clamp(1.75rem,4vw,2.25rem) 0 0;max-width:24rem;padding:.875rem 1rem 1rem;border:1px solid var(--border);border-radius:1rem;background:color-mix(in srgb,var(--bg-elevated) 72%,transparent);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.auth-proof-top{display:flex;align-items:center;justify-content:space-between;gap:.5rem;font-size:.6875rem;text-transform:uppercase;letter-spacing:.08em;color:var(--fg-muted)}.auth-proof-tag{padding:.05rem .4rem;border:1px solid var(--border);border-radius:999px}.auth-proof-title{margin:.375rem 0 0;font-size:1.125rem;font-weight:600}.auth-proof-title s{margin-left:.375rem;font-size:.9375rem;font-weight:400;color:var(--fg-muted);text-decoration-thickness:1px}.auth-proof-why{margin:.625rem 0 0;padding-left:.75rem;border-left:2px solid var(--accent);font-size:.8125rem;line-height:1.55;color:var(--fg-muted)}.auth-card{padding:clamp(1.5rem,3vw,2rem);border:1px solid var(--border);border-radius:1.25rem;background:color-mix(in srgb,var(--bg-elevated) 88%,transparent);box-shadow:var(--shadow),inset 0 1px 0 color-mix(in srgb,white 7%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.auth-card h2{margin:0;font-size:1.375rem;font-weight:600;letter-spacing:-.015em}.auth-card-intro{margin:.5rem 0 0;font-size:.875rem;line-height:1.6;color:var(--fg-muted)}.auth-card .notice{margin:1rem 0 0;font-size:.8125rem}.auth-field{display:flex;flex-direction:column;gap:.375rem;margin:1.5rem 0 0;font-size:.8125rem;color:var(--fg-muted)}.auth-field input{font:inherit;font-size:1rem;color:var(--fg);background:var(--bg);border:1px solid var(--border);border-radius:.75rem;padding:.7rem .85rem}.auth-field input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 20%,transparent)}.button-primary{width:100%;margin-top:1rem;padding:.7rem 1rem;font-size:.9375rem;font-weight:600;border:1px solid transparent;border-radius:.75rem;color:var(--accent-ink);background:linear-gradient(to bottom,color-mix(in srgb,var(--accent) 88%,white),var(--accent));box-shadow:0 .5rem 1.5rem -.75rem color-mix(in srgb,var(--accent) 65%,transparent)}.button-primary:hover{border-color:transparent;filter:brightness(1.07)}.auth-hint{margin:.875rem 0 0;line-height:1.55}.auth-hint,.auth-legal{font-size:.75rem;color:var(--fg-muted)}.auth-legal{margin:1.25rem 0 0;padding:0 .25rem;line-height:1.6}.auth-back{margin:1.25rem 0 0;font-size:.875rem}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}