:root{--bg:#111018;--panel:#1b1726;--panel-soft:#241f32;--text:#f4f0ff;--muted:#b9abc9;--accent:#a88cc8;--accent-strong:#c9a7ef;--border:#ffffff1a;--radius:18px;--space:16px}.setup-card{overflow-wrap:anywhere;margin-bottom:20px;padding:24px}.setup-card label{gap:7px;margin-bottom:16px;font-weight:600;display:grid}.setup-card input,.setup-card select,.setup-card textarea{width:100%;min-width:0;min-height:46px;font:inherit;color:var(--text);background:#211a2c;border:1px solid #675675;border-radius:10px;padding:10px 12px}.setup-card input:focus,.setup-card select:focus,.setup-card textarea:focus{outline-offset:2px;outline:2px solid #cfafff}.setup-card textarea{resize:vertical;min-height:90px}.setup-card fieldset{border:1px solid #675675;border-radius:12px;margin:8px 0 20px;padding:16px}.day-options{flex-wrap:wrap;gap:10px 20px;display:flex}.day-options label{align-items:center;margin:0;font-weight:400;display:flex}.day-options input{width:22px;min-height:22px}.setup-grid{grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr));gap:0 20px;display:grid}.setup-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.setup-card a:not(.button):not(.small-button){color:#d9baff}.setup-card>p{margin:0 0 18px;line-height:1.6}.setup-card h2{margin:0 0 18px;line-height:1.3}.setup-card form{margin-top:20px}.setup-card form+.button{margin-top:16px}.setup-card>.button+p{margin-top:20px}.setup-actions{margin:16px 0}.setup-card fieldset>p{margin:16px 0;line-height:1.6}.setup-card fieldset{margin-bottom:24px}.setup-card p:has(>.small-button){margin:16px 0 20px}.current-plan-summary p:last-child{margin-bottom:0}.weekday-preset{margin:4px 0 8px}.current-plan-summary{border-color:#75608d}.setup-card .muted{color:var(--muted)}[data-v2-status]{white-space:pre-line;line-height:1.5}.account-row{overflow-wrap:anywhere;border-top:1px solid #675675;flex-wrap:wrap;gap:12px;padding:16px 0;display:flex}.account-row h3,.account-row p,.account-row input{flex-basis:100%;margin:0}.account-row button{margin:0}@media (width<=520px){.setup-card{padding:18px}}.invitation-link{-webkit-user-select:text;user-select:text;-webkit-touch-callout:default;font-size:16px}.card{background:linear-gradient(180deg, var(--panel), var(--panel-soft));border:1px solid var(--border);border-radius:var(--radius);padding:var(--space);box-shadow:0 12px 30px #00000040}.hero-card{margin-bottom:14px}.card p{color:var(--muted)}.workout-day{margin-bottom:14px}.link-card{color:var(--text);font-weight:700;text-decoration:none}.button,.small-button{appearance:none;color:#140f1d;background:var(--accent);text-align:center;white-space:normal;vertical-align:middle;cursor:pointer;border:0;border-radius:999px;flex:none;justify-content:center;align-items:center;gap:8px;max-width:100%;margin:0;padding:9px 14px;font-family:inherit;font-size:.85rem;font-weight:800;line-height:1.3;text-decoration:none;display:inline-flex}.button:focus-visible,.small-button:focus-visible{outline:2px solid var(--accent-strong);outline-offset:3px}.button:disabled,.small-button:disabled{opacity:.55;cursor:wait}@media (width>=641px){.exercise-card:not(.exercise-log-card) .small-button{text-align:center;width:120px;padding:10px 18px}}.bottom-nav{border-top:1px solid var(--border);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:10;background:#111018f5;grid-template-columns:repeat(3,1fr);gap:6px;padding:8px;display:grid;position:fixed;bottom:0;left:0;right:0}.bottom-nav a{color:var(--muted);text-align:center;border-radius:999px;padding:10px 4px;font-size:.8rem;text-decoration:none}.bottom-nav a.active{background:var(--accent);color:#140f1d;font-weight:800}.app-header-main{min-width:0}.account-menu-toggle{display:none}.header-utility{justify-content:space-between;align-items:center;gap:12px;display:flex}.account-links{border:1px solid var(--border);background:#191420;border-radius:16px;flex-wrap:wrap;align-items:center;gap:6px;margin:12px 0 20px;padding:6px;display:flex}.account-links a,.account-links button{color:#c6bdd1;max-width:100%;min-height:42px;font:inherit;cursor:pointer;overflow-wrap:anywhere;background:0 0;border:1px solid #0000;border-radius:11px;justify-content:center;align-items:center;gap:8px;padding:10px 14px;font-size:.85rem;font-weight:600;line-height:1.3;text-decoration:none;transition:background-color .15s,color .15s;display:inline-flex}.account-links a:hover,.account-links button:hover{color:#fff;background:#2a2137}.account-links a[aria-current=page]{background:var(--accent);color:#140f1d;border-color:#c8a8ec}.account-links .account-profile{color:#f0e4ff;background:#251d31}.account-role{color:#ddc7f8;letter-spacing:.04em;text-transform:uppercase;background:#3a2c4b;border-radius:5px;padding:3px 6px;font-size:.65rem}.account-links button{color:#d6c6e3;border-color:#493957;margin-left:auto}.account-links a:focus-visible,.account-links button:focus-visible{outline-offset:2px;outline:2px solid #dab7ff}@media (width<=640px){.app-header.app-header{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:18px 14px;padding-top:20px;display:grid;position:relative}.app-header-main{display:contents}.header-utility{grid-area:1/1}.header-utility .eyebrow{margin:0}.account-menu-toggle{min-height:40px;display:inline-flex}.app-header h1{grid-column:1/-1}.account-links{grid-column:1/-1;margin:0;padding:12px;display:none}.account-links.is-open{z-index:20;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid;position:absolute;top:70px;left:18px;right:18px;box-shadow:0 14px 32px #0008}.account-links a,.account-links button{background:var(--accent);color:#140f1d;border:0;border-radius:999px;min-height:44px;margin:0;padding:10px 14px;font-size:.85rem;font-weight:800}.account-links .account-profile{background:var(--accent);color:#140f1d}.account-links a[aria-current=page]{outline:2px solid var(--accent-strong);outline-offset:2px}.app-header .streak-summary{grid-area:1/2;min-width:64px}.app-header .streak-label{font-size:.6rem}.app-header .streak-complete{max-width:80px}.bottom-nav{padding-bottom:max(8px, env(safe-area-inset-bottom))}}.exercise-list{gap:10px;margin-top:14px;display:grid}.exercise-card{border:1px solid var(--border);background:#ffffff0b;border-radius:14px;justify-content:space-between;align-items:center;gap:12px;padding:12px;display:flex}.exercise-card h3{margin:0 0 4px;font-size:1rem}.exercise-card p{color:var(--muted);margin:0}.tick-row{align-items:center;gap:10px;display:flex}.tick-row span{gap:3px;display:grid}.tick-row small{color:var(--muted)}.tick-row input[type=checkbox],.custom-check input[type=checkbox]{appearance:none;cursor:pointer;background:#ffffff0e;border:1px solid #c9a7ef61;border-radius:6px;flex:0 0 20px;width:20px;height:20px;margin:0;transition:background .12s,border-color .12s,box-shadow .12s}.tick-row input[type=checkbox]:hover,.custom-check input[type=checkbox]:hover{border-color:var(--accent-strong)}.tick-row input[type=checkbox]:focus-visible,.custom-check input[type=checkbox]:focus-visible{outline:none;box-shadow:0 0 0 3px #c9a7ef2e}.tick-row input[type=checkbox]:checked,.custom-check input[type=checkbox]:checked{background-color:var(--accent);border-color:var(--accent)}.tick-row input[type=checkbox]:checked:after,.custom-check input[type=checkbox]:checked:after{content:"✓";color:#140f1d;place-items:center;width:100%;height:100%;font-size:.85rem;font-weight:900;line-height:1;display:grid}.exercise-log-card{grid-template-columns:1fr;align-items:stretch;gap:16px;padding:16px;display:grid}.exercise-log-info{width:100%;min-width:0}.exercise-log-spacer,.exercise-guide-spacer{display:none}.set-logger{gap:8px;width:100%;min-width:0;display:grid}.exercise-guide-button{text-align:center;justify-self:stretch;width:100%;min-width:0;padding:11px 14px}.set-logger-head,.set-log-row{grid-template-columns:minmax(42px,.6fr) minmax(100px,1.5fr) minmax(90px,1.2fr) minmax(54px,.7fr);align-items:center;gap:10px;display:grid}.set-logger-head{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;text-align:center;padding:0 8px;font-size:.7rem;font-weight:800}.set-log-row{border:1px solid var(--border);background:#ffffff0b;border-radius:12px;padding:8px}.set-number{color:var(--text);text-align:center;font-size:.88rem;font-weight:800}.set-log-input{width:100%;min-width:0;color:var(--text);border:1px solid var(--border);font:inherit;text-align:center;background:#11101885;border-radius:8px;outline:none;padding:8px 6px;font-size:.85rem}.set-log-input::placeholder{color:#b9abc98c}.set-log-input:focus{border-color:var(--accent-strong);box-shadow:0 0 0 2px #c9a7ef1f}.set-weight-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.set-weight-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.set-weight-input{appearance:textfield}.custom-check{cursor:pointer;place-items:center;display:grid}.custom-check-box{display:none}.previous-performance{font-size:.72rem;line-height:1.4;color:var(--accent-strong)!important;margin-top:7px!important}.progression-guidance{font-size:.72rem;font-weight:700;line-height:1.4;color:#f6bd60!important;margin-top:5px!important}@media (width<=640px){.exercise-log-card{gap:14px;padding:16px}.set-logger-head,.set-log-row{grid-template-columns:minmax(34px,.55fr) minmax(72px,1.35fr) minmax(64px,1fr) minmax(42px,.6fr);gap:8px}.set-log-row{padding:8px}.set-log-input{padding:9px 6px;font-size:.88rem}.exercise-log-info h3{font-size:1.05rem}}.modal-backdrop{z-index:100;background:#000000b8;place-items:center;padding:18px;display:grid;position:fixed;inset:0}.modal-box{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);text-align:center;width:min(420px,100%);max-height:calc(100vh - 36px);padding:22px;overflow-y:auto;box-shadow:0 20px 60px #00000073}.modal-icon{background:var(--accent);color:#140f1d;border-radius:999px;place-items:center;width:48px;height:48px;margin:0 auto 12px;font-size:1.4rem;font-weight:900;display:grid}.modal-box h2{margin:0 0 10px}.modal-box p{color:var(--muted);text-align:center}.modal-box li{color:var(--muted);text-align:left}.modal-box ul{padding-left:20px}.modal-footer{justify-content:center;align-items:center;gap:12px;margin-top:20px;display:flex}.checkin-card{gap:24px;display:grid}.checkin-grid,.checkin-score-grid,.checkin-photo-grid{gap:12px;display:grid}.checkin-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.checkin-score-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.checkin-field{gap:8px;display:grid}.checkin-field>span{color:var(--text);font-weight:800}.checkin-field small{color:var(--muted);font-size:.72rem;font-weight:500}.checkin-field input,.checkin-field textarea{width:100%;min-width:0;color:var(--text);border:1px solid var(--border);font:inherit;background:#11101885;border-radius:10px;outline:none;padding:11px 12px}.checkin-field textarea{resize:vertical;min-height:100px}.checkin-field input:focus,.checkin-field textarea:focus{border-color:var(--accent-strong);box-shadow:0 0 0 2px #c9a7ef1f}.checkin-input-unit{border:1px solid var(--border);background:#11101885;border-radius:10px;grid-template-columns:1fr auto;align-items:center;display:grid;overflow:hidden}.checkin-input-unit:focus-within{border-color:var(--accent-strong);box-shadow:0 0 0 2px #c9a7ef1f}.checkin-input-unit input{background:0 0;border:0;border-radius:0;box-shadow:none!important}.checkin-input-unit>span{color:var(--muted);padding:0 12px;font-size:.85rem;font-weight:800}.checkin-section-heading h3{margin:0 0 4px;font-size:1.05rem}.checkin-section-heading p{margin:0;font-size:.85rem}.checkin-photo-grid{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:12px}.checkin-photo{gap:10px;display:grid}.checkin-photo-preview{aspect-ratio:2/3;width:100%;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;cursor:pointer;background:#ffffff0b;border:1px dashed #c9a7ef59;border-radius:14px;place-items:center;font-size:.8rem;font-weight:800;transition:border-color .12s,background .12s,transform .12s;display:grid;position:relative;overflow:hidden}.checkin-photo-preview:hover{border-color:var(--accent-strong);background:#fff1}.checkin-photo-preview:active{transform:scale(.995)}.checkin-photo-preview:focus-within{border-color:var(--accent-strong);box-shadow:0 0 0 3px #c9a7ef24}.checkin-photo-preview img{object-fit:cover;width:100%;height:100%}.checkin-photo-preview>span{text-align:center;width:100%;padding:12px;line-height:1.35}.checkin-notes-field{margin-top:2px}.checkin-actions{justify-content:flex-end;align-items:center;gap:16px;display:flex}.checkin-save-button{cursor:pointer;border:0;margin:0}.checkin-save-button:disabled{opacity:.6;cursor:wait}.checkin-saved-message{margin:0;font-size:.85rem;font-weight:800;color:#f6bd60!important}@media (width<=640px){.checkin-grid,.checkin-score-grid{grid-template-columns:1fr}.checkin-photo-remove{text-align:center;width:100%;margin-top:8px}.checkin-photo-grid{gap:8px}.checkin-photo-preview{border-radius:10px}.checkin-actions{gap:10px;display:grid}.checkin-saved-message{text-align:center}.checkin-save-button{width:100%}}.progress-intro{margin:4px 4px 28px}.progress-intro p{color:var(--muted);margin:0}.progress-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.progress-stat{flex-direction:column;gap:4px;display:flex}.progress-stat-label{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;font-size:.78rem;font-weight:700}.progress-stat-value{margin-top:5px;font-size:clamp(1.8rem,7vw,2.5rem);line-height:1}.progress-stat-unit{color:var(--muted);font-size:.8rem}.progress-empty{text-align:center;padding:34px 22px}.progress-empty-icon{color:var(--accent-strong);margin-bottom:10px;font-size:1.8rem;display:block}.progress-empty h3{margin:0 0 7px}.progress-empty p{max-width:460px;color:var(--muted);margin:0 auto;line-height:1.5}.progress-body-summary{gap:12px;display:grid}.progress-measurement-heading{justify-content:space-between;align-items:baseline;gap:16px;display:flex}.progress-measurement-heading span{color:var(--muted);font-weight:700}.progress-measurement-heading strong{font-size:1.4rem}.progress-change{color:var(--muted);margin-top:6px;font-size:.82rem}.progress-change-down{color:#73d99b}.progress-change-up{color:#f0b26a}.progress-chart{width:100%;height:120px;margin-top:22px;overflow:hidden}.progress-chart svg{width:100%;height:100%;overflow:visible}.progress-chart-grid{stroke:#ffffff1a;stroke-width:.5px;vector-effect:non-scaling-stroke}.progress-chart-line{fill:none;stroke:var(--accent-strong);stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.progress-chart-range{color:var(--muted);justify-content:space-between;margin-top:8px;font-size:.75rem;display:flex}.progress-history-actions{justify-content:center;margin-top:14px;display:flex}.recovery-current-grid{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.recovery-current-grid>div{text-align:center}.recovery-current-grid span{color:var(--muted);font-size:.75rem;font-weight:700;display:block}.recovery-current-grid strong{margin-top:5px;font-size:1.15rem;display:block}.recovery-chart{margin-top:26px}.recovery-energy{stroke:var(--accent-strong)}.recovery-sleep{stroke:#7fb4ff}.recovery-recovery{stroke:#70d99c}.recovery-legend{color:var(--muted);flex-wrap:wrap;gap:14px;margin-top:12px;font-size:.76rem;font-weight:700;display:flex}.recovery-legend span:before{content:"";border-radius:50%;width:9px;height:9px;margin-right:5px;display:inline-block}.recovery-legend-energy:before{background:var(--accent-strong)}.recovery-legend-sleep:before{background:#7fb4ff}.recovery-legend-recovery:before{background:#70d99c}.progress-checkin-list,.progress-workout-list,.completion-history{gap:12px;display:grid}.progress-checkin-header,.progress-session-header,.completion-week-header{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.progress-checkin-header h3,.progress-session-header h3{margin:0}.progress-checkin-measures{flex-wrap:wrap;justify-content:flex-end;gap:7px;display:flex}.progress-checkin-measures span,.progress-session-count{color:var(--muted);background:#ffffff0f;border-radius:999px;padding:5px 8px;font-size:.75rem;font-weight:700}.progress-photo-grid{grid-template-columns:repeat(3,1fr);gap:8px;margin-top:18px;display:grid}.progress-photo-label{color:var(--muted);text-align:center;text-transform:uppercase;margin-bottom:6px;font-size:.72rem;font-weight:700;display:block}.progress-photo-link,.progress-photo-missing{aspect-ratio:2/3;background:#ffffff0a;border-radius:10px;display:block;overflow:hidden}.progress-photo-link img{object-fit:cover;width:100%;height:100%}.progress-photo-missing{color:var(--muted);place-items:center;font-size:.75rem;display:grid}.progress-checkin-scores{grid-template-columns:repeat(3,1fr);gap:8px;margin-top:16px;display:grid}.progress-checkin-scores span{color:var(--muted);text-align:center;font-size:.75rem}.progress-checkin-scores strong{color:var(--text);margin-top:3px;display:block}.progress-checkin-notes{color:var(--muted);border-top:1px solid #ffffff14;margin:16px 0 0;padding-top:14px;line-height:1.5}.progress-exercise-history{gap:16px;margin-top:18px;display:grid}.progress-history-exercise{border-top:1px solid #ffffff14;padding-top:14px}.progress-history-exercise:first-child{border-top:0;padding-top:0}.progress-set-list{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.progress-set-pill{color:var(--muted);background:#ffffff0d;border-radius:8px;padding:6px 8px;font-size:.75rem}.progress-set-complete{color:var(--text);background:#70d99c1f}.completion-week-current{border-color:var(--accent-strong)}.completion-week-header{align-items:center}.completion-week-header strong{font-size:.9rem}.completion-week-header>span{color:var(--muted);font-size:.8rem;font-weight:700}.completion-day-grid{grid-template-columns:repeat(7,1fr);gap:5px;margin-top:14px;display:grid}.completion-day{background:#ffffff0a;border-radius:8px;place-items:center;gap:5px;min-width:0;padding:8px 2px;display:grid}.completion-day span{color:var(--muted);text-transform:uppercase;font-size:.62rem;font-weight:800}.completion-day strong{font-size:.9rem}.completion-day-perfect{background:#70d99c21}.completion-day-perfect strong{color:#70d99c}.completion-day-incomplete strong{color:#ffffff59}.completion-day-future,.completion-day-not-started{opacity:.4}.completion-day-in-progress{border-color:#b98aff}.completion-perfect-week{color:#f6bd60;margin-top:12px;font-size:.8rem;font-weight:800}@media (width>=720px){.progress-stat-grid{grid-template-columns:repeat(4,1fr)}.progress-body-summary{grid-template-columns:repeat(2,1fr)}.progress-checkin-list,.progress-workout-list{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}}@media (width<=440px){.progress-stat-grid{gap:8px}.progress-stat{padding:14px}.progress-stat-label{font-size:.67rem}.progress-stat-unit{font-size:.7rem}.progress-checkin-header,.progress-session-header{flex-direction:column}.progress-checkin-measures{justify-content:flex-start}.completion-week-header strong{font-size:.78rem}.completion-day{padding:7px 1px}.completion-day span{font-size:.56rem}}.error-page{place-items:center;min-height:calc(100vh - 160px);padding:24px 0;display:grid}.error-card{text-align:center;width:min(560px,100%);padding:clamp(28px,6vw,52px)}.error-status{color:var(--accent-strong);letter-spacing:-.05em;margin-bottom:12px;font-size:clamp(4rem,15vw,7rem);font-weight:900;line-height:.95}.error-card h2{margin:0 0 12px;font-size:clamp(1.5rem,5vw,2rem)}.error-message{max-width:420px;color:var(--muted);margin:0 auto 24px;line-height:1.6}.error-code{border:1px solid var(--border);color:var(--muted);background:#ffffff0b;border-radius:10px;padding:8px 12px;font-size:.78rem;display:inline-block}.error-code strong{color:var(--accent-strong)}.error-actions{justify-content:center;align-items:center;gap:10px;margin-top:26px;display:flex}.error-actions .button,.error-actions .small-button{cursor:pointer;border:0;margin:0}@media (width<=520px){.error-actions{display:grid}.error-actions .button,.error-actions .small-button{text-align:center;width:100%}}[hidden]{display:none!important}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;padding-bottom:76px;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.app-header{justify-content:space-between;align-items:flex-end;gap:20px;width:min(960px,100%);margin:0 auto;padding:24px 18px 8px;display:flex}.app-header h1{margin:0;font-size:clamp(1.8rem,5vw,2.25rem);line-height:1.1}.page-title-day{color:var(--muted);font-weight:600}.eyebrow{color:var(--accent-strong);text-transform:uppercase;letter-spacing:.08em;margin:0 0 6px;font-size:.75rem;font-weight:700}.app-shell{width:min(960px,100%);margin:0 auto;padding:12px}.today-intro{margin:4px 4px 30px}.today-intro h2{margin:0 0 6px;font-size:1.35rem}.today-intro p,.weekly-intro p{color:var(--muted);margin:0;line-height:1.6}.today-intro,.weekly-intro{flex-direction:column;align-items:flex-start;gap:14px;display:flex}.today-intro h2,.weekly-intro .setup-actions{margin:0}.plan-update-notice{border:1px solid var(--border);border-radius:16px;padding:16px}.routine-section{margin-bottom:30px}.routine-section-title{color:var(--text);margin:0 4px 12px;font-size:1.45rem;line-height:1.2}.routine-subtitle{margin:0 0 16px;font-size:1.2rem;line-height:1.25}.routine-subtitle-spaced{margin-top:26px}.weekly-intro{margin:4px 4px 28px}.streak-summary{text-align:right;flex-shrink:0;min-width:105px}.streak-count{justify-content:flex-end;align-items:center;gap:5px;line-height:1;display:flex}.streak-flame{font-size:1.45rem}.streak-count strong{font-size:1.55rem}.streak-label{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin-top:3px;font-size:.72rem;font-weight:700;display:block}.streak-complete{color:#f6bd60;margin-top:5px;font-size:.72rem;font-weight:800;display:block}.grid{gap:12px;display:grid}.section-subtitle{margin-top:22px}@media (width>=720px){.grid{grid-template-columns:repeat(2,1fr)}}@media (width<=520px){.app-header{align-items:flex-start}.page-title-day{display:inline}.streak-summary{min-width:82px}.streak-complete{max-width:120px;margin-left:auto}}
