.tp-page{--tp-ink: #0f172a;--tp-ink-2: #475569;--tp-ink-3: #94a3b8;--tp-bg: #ffffff;--tp-card: #ffffff;--tp-card-alt: #f8fafc;--tp-rule: #e2e8f0;--tp-rule-soft: #eef2f7;--tp-load-deload: #cbd5e1;--tp-load-base: #94a3b8;--tp-load-test: #94a3b8;--tp-load-build: #64748b;--tp-load-peak: #0f172a;--tp-strength: #ea580c;--tp-cardio: #0284c7;--tp-intensity: #dc2626;--tp-long: #059669;--tp-recovery: #7c3aed;--tp-rest: #94a3b8;--tp-font: "DM Sans", "Inter", system-ui, -apple-system, sans-serif;--tp-mono: "IBM Plex Mono", monospace;--tp-gutter: 1rem;font-family:var(--tp-font);background:var(--tp-bg);color:var(--tp-ink);font-size:15px;line-height:1.5;min-height:100vh}.tp-kind-strength{--tp-accent: var(--tp-strength)}.tp-kind-cardio{--tp-accent: var(--tp-cardio)}.tp-kind-intensity{--tp-accent: var(--tp-intensity)}.tp-kind-long{--tp-accent: var(--tp-long)}.tp-kind-recovery{--tp-accent: var(--tp-recovery)}.tp-kind-rest{--tp-accent: var(--tp-rest)}.tp-backbar{padding:.25rem var(--tp-gutter) 0;max-width:900px;margin:0 auto}.tp-page .back-link{display:inline-flex;align-items:center;min-height:44px;font-family:var(--tp-mono);font-size:12px;color:var(--tp-ink-3);text-decoration:none}.tp-page .back-link:hover{color:var(--tp-ink)}.tp-page main{max-width:900px;margin:0 auto;padding:0 var(--tp-gutter) 4rem}.tp-pinned{position:sticky;top:0;z-index:5;background:var(--tp-bg);border-bottom:1px solid var(--tp-rule);padding-bottom:.4rem}.tp-head{padding:.25rem 0 .4rem}.tp-head-row{display:flex;align-items:center;justify-content:space-between;gap:1rem}.tp-title{font-size:1.3rem;font-weight:700;letter-spacing:-.03em;line-height:1.05}.tp-jump{flex-shrink:0;min-height:34px;padding:0 .9rem;border:1px solid var(--tp-rule);border-radius:8px;background:var(--tp-card);color:var(--tp-ink-2);font-family:var(--tp-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:background .12s,color .12s,border-color .12s}.tp-jump:hover{background:var(--tp-ink);border-color:var(--tp-ink);color:#fff}.tp-progress{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:2px;align-items:end}.tp-progress-week{background:none;border:none;cursor:pointer;padding:.2rem 0 .15rem;display:flex;flex-direction:column;align-items:center;gap:.25rem;font-family:inherit;min-width:0;border-radius:5px}.tp-progress-week:hover{background:var(--tp-card-alt)}.tp-progress-week.is-active{background:var(--tp-card-alt);box-shadow:inset 0 0 0 2px var(--tp-ink)}.tp-progress-bar-track{width:100%;height:22px;display:flex;align-items:flex-end;justify-content:center}.tp-progress-bar{width:72%;min-height:4px;border-radius:3px 3px 0 0;background:currentColor;display:block}.tp-progress-num{font-family:var(--tp-mono);font-size:10px;font-weight:700;color:var(--tp-ink-3)}.tp-progress-week.is-active .tp-progress-num{color:var(--tp-ink)}.tp-progress-week.tp-phase--deload{color:var(--tp-load-deload)}.tp-progress-week.tp-phase--base{color:var(--tp-load-base)}.tp-progress-week.tp-phase--test{color:var(--tp-load-test)}.tp-progress-week.tp-phase--build{color:var(--tp-load-build)}.tp-progress-week.tp-phase--peak{color:var(--tp-load-peak)}.tp-progress-week.tp-phase--base,.tp-progress-week.tp-phase--build,.tp-progress-week.tp-phase--peak,.tp-progress-week.tp-phase--deload,.tp-progress-week.tp-phase--test{background:none}.tp-progress-week.is-active{background:var(--tp-card-alt)}.tp-phase{font-size:9px;letter-spacing:.1em;text-transform:uppercase;font-weight:700;padding:.15rem .5rem;border-radius:20px;color:#fff;white-space:nowrap}.tp-phase--deload{background:var(--tp-load-deload);color:var(--tp-ink)}.tp-phase--base{background:var(--tp-load-base)}.tp-phase--test{background:var(--tp-load-test)}.tp-phase--build{background:var(--tp-load-build)}.tp-phase--peak{background:var(--tp-load-peak)}.tp-agenda{display:flex;flex-direction:column;gap:.9rem;padding-top:.5rem}.tp-block,.tp-day{scroll-margin-top:calc(var(--tp-pinned-h, 118px) + .5rem)}.tp-block-head{display:flex;align-items:baseline;gap:.45rem;flex-wrap:wrap;padding:.25rem 0;margin-bottom:.3rem;background:var(--tp-bg);border-bottom:1px solid var(--tp-rule)}.tp-block-week{font-size:14px;font-weight:700;letter-spacing:-.01em}.tp-block-name{font-size:12px;color:var(--tp-ink-2)}.tp-block-range{font-family:var(--tp-mono);font-size:10px;color:var(--tp-ink-3);margin-left:auto;white-space:nowrap}.tp-day{border:1px solid var(--tp-rule);border-left:4px solid var(--tp-accent, var(--tp-rule));border-radius:8px;background:var(--tp-card);margin-bottom:.22rem;overflow:hidden}.tp-day.is-today{box-shadow:0 0 0 2px var(--tp-ink)}.tp-day.is-open{background:var(--tp-card-alt)}.tp-day.is-rest{border-left-style:dashed}.tp-day-head{display:flex;align-items:center;gap:.5rem;width:100%;min-height:40px;padding:.3rem .7rem;background:none;border:none;cursor:pointer;font-family:inherit;text-align:left}.tp-day-head:hover{background:var(--tp-card-alt)}.tp-day-head:disabled{cursor:default;opacity:.65}.tp-day-head:disabled:hover{background:none}.tp-day-when{flex:0 0 2.2rem;display:flex;flex-direction:column;line-height:1.15}.tp-day-name{font-family:var(--tp-mono);font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--tp-ink-3)}.tp-day-date{font-family:var(--tp-mono);font-size:15px;font-weight:700;color:var(--tp-ink)}.tp-day-focus{flex:0 1 auto;font-size:13.5px;font-weight:700;color:var(--tp-accent, var(--tp-ink));min-width:0}.tp-day-today{flex:0 0 auto;font-family:var(--tp-mono);font-size:9px;letter-spacing:.1em;text-transform:uppercase;font-weight:700;color:#fff;background:var(--tp-ink);border-radius:20px;padding:.1rem .45rem}.tp-day-chevron{flex:0 0 auto;margin-left:auto;width:.45rem;height:.45rem;border-right:2px solid var(--tp-ink-3);border-bottom:2px solid var(--tp-ink-3);transform:rotate(45deg);transition:transform .15s}.tp-day.is-open .tp-day-chevron{transform:rotate(-135deg)}.tp-day-body{padding:.1rem .7rem .5rem}.tp-tabs{display:flex;gap:.3rem;padding-bottom:.7rem}.tp-tab{flex:1 1 0;min-height:40px;padding:0 .5rem;border:1px solid var(--tp-rule);border-radius:8px;background:var(--tp-card);color:var(--tp-ink-2);font-family:inherit;font-size:12px;font-weight:600;cursor:pointer;transition:background .12s,color .12s,border-color .12s}.tp-tab:hover{border-color:var(--tp-accent, var(--tp-ink-3));color:var(--tp-ink)}.tp-tab.is-active{background:var(--tp-accent, var(--tp-ink));border-color:var(--tp-accent, var(--tp-ink));color:#fff}.tp-options{list-style:none;display:flex;flex-direction:column;gap:.5rem}.tp-option{background:var(--tp-card);border:1px solid var(--tp-rule);border-radius:8px;padding:.75rem .8rem .85rem}.tp-option-label{font-family:var(--tp-mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;font-weight:700;color:var(--tp-ink);margin-bottom:.55rem}.tp-headline{display:flex;align-items:baseline;gap:.5rem;flex-wrap:wrap;margin-bottom:.7rem}.tp-headline strong{font-family:var(--tp-mono);font-size:1.45rem;font-weight:700;letter-spacing:-.02em;color:var(--tp-accent, var(--tp-ink));line-height:1}.tp-headline-sub{font-size:12px;color:var(--tp-ink-2)}.tp-meta-line{font-size:11.5px;color:var(--tp-ink-3);margin:-.4rem 0 .7rem}.tp-exercises{list-style:none;border-top:1px solid var(--tp-rule-soft)}.tp-exercise{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;padding:.26rem 0;border-bottom:1px solid var(--tp-rule-soft);font-size:13px}.tp-exercise-name{color:var(--tp-ink)}.tp-exercise-reps{font-family:var(--tp-mono);font-size:12px;font-weight:700;color:var(--tp-ink-2);white-space:nowrap}.tp-exercise--total .tp-exercise-name,.tp-exercise--total .tp-exercise-reps{color:var(--tp-accent, var(--tp-ink));font-weight:700}.tp-notice{font-size:12.5px;color:var(--tp-ink-3);padding:.2rem 0 .4rem}@media(min-width:560px){.tp-page{--tp-gutter: 1.5rem}.tp-title{font-size:2.2rem}.tp-progress-bar-track{height:44px}.tp-day-head{padding:.6rem .9rem}.tp-day-body{padding:.2rem .9rem 1rem}.tp-tab{flex:0 1 8rem}}@media(min-width:900px){.tp-page{--tp-gutter: 2.5rem}.tp-progress-bar-track{height:54px}.tp-progress-num{font-size:11px}.tp-block-head{padding:.7rem 0 .5rem}.tp-block-week{font-size:15px}.tp-day-when{flex-basis:2.6rem}.tp-day-focus{font-size:14px}.tp-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:.6rem}}@media(min-width:1180px){.tp-page{--tp-gutter: 4rem}}
