.planner-shell{--bg:#0f1115;--bg-alt:#171a21;--card:#1d212b;--card-hover:#242936;--border:#2b303c;--text:#eef0f4;--text-dim:#9aa1b1;--accent:#5ee6a0;--accent-dark:#2fae76;--warn-bg:#3a2c14;--warn-border:#8a6a20;--warn-text:#f0d789;--radius:14px;color:var(--text);background-color:var(--bg);-webkit-tap-highlight-color:transparent;min-height:100vh;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:16px;position:relative;overflow-x:hidden}.planner-shell button,.planner-shell a,.planner-shell .btn,.planner-shell .option-card,.planner-shell .check-card,.planner-shell .day-tab,.planner-shell .day-dot,.planner-shell .day-nav-arrow{touch-action:manipulation;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}html:has(.planner-shell){scroll-behavior:smooth}.bg-blobs{z-index:0;pointer-events:none;position:fixed;inset:0;overflow:hidden}.blob{filter:blur(70px);opacity:.5;will-change:transform;background:radial-gradient(circle,#5ee6a059,#0000 70%);border-radius:50%;position:absolute}.blob-a{width:420px;height:420px;animation:22s ease-in-out infinite drift1;top:-140px;right:-80px}.blob-b{opacity:.35;width:340px;height:340px;animation:26s ease-in-out infinite drift2;bottom:-100px;left:-100px}.blob-c{opacity:.25;width:260px;height:260px;animation:30s ease-in-out infinite drift3;top:45%;right:10%}@keyframes drift1{0%,to{transform:translate(0)scale(1)}50%{transform:translate(-40px,50px)scale(1.1)}}@keyframes drift2{0%,to{transform:translate(0)scale(1)}50%{transform:translate(50px,-30px)scale(1.15)}}@keyframes drift3{0%,to{transform:translate(0)}50%{transform:translate(-30px,-40px)}}.topbar,.wizard{z-index:1;position:relative}.loading-overlay{z-index:100;opacity:0;pointer-events:none;background:#0f1115f5;flex-direction:column;justify-content:center;align-items:center;gap:1.5rem;transition:opacity .35s;display:flex;position:fixed;inset:0}.loading-overlay.visible{opacity:1;pointer-events:all}.loader-ring{width:64px;height:64px;color:var(--accent);justify-content:center;align-items:center;animation:1.4s linear infinite spin;display:flex}.loader-ring svg{width:36px;height:36px}@keyframes spin{to{transform:rotate(360deg)}}.loading-text{color:var(--text);min-height:1.5em;font-size:1.05rem;font-weight:600;transition:opacity .2s}.loading-track{background:var(--border);border-radius:2px;width:220px;height:4px;overflow:hidden}.loading-fill{background:var(--accent);width:0%;height:100%;transition:width .35s}@media (prefers-reduced-motion:reduce){.blob{animation:none}.step,.reveal,.check-card,.loader-ring,.progress-step span{transition:none!important;animation:none!important}.step.slide-out-fwd,.step.slide-out-back,.step.slide-in-fwd,.step.slide-in-back{opacity:1;transform:none}.reveal{opacity:1}}.topbar{padding:calc(1.25rem + env(safe-area-inset-top)) 1.5rem 1.25rem;background:var(--bg-alt);border-bottom:1px solid var(--border);z-index:10;flex-direction:column;gap:1rem;display:flex;position:sticky;top:0}.brand{letter-spacing:.02em;align-items:center;gap:.5rem;font-size:1.3rem;font-weight:700;display:flex}.brand span{color:var(--accent)}.brand-mark{width:24px;height:24px;color:var(--accent);flex-shrink:0}.progress{justify-content:space-between;gap:.5rem;width:100%;max-width:720px;margin:0 auto;display:flex;position:relative}.progress-track{background:var(--border);z-index:0;height:2px;position:absolute;top:13px;left:8.33%;right:8.33%}.progress-fill{background:linear-gradient(90deg, var(--accent-dark), var(--accent));width:0%;height:100%;transition:width .5s cubic-bezier(.4,0,.2,1)}.progress-step{z-index:1;text-align:center;color:var(--text-dim);flex-direction:column;flex:1;align-items:center;gap:.35rem;font-size:.75rem;display:flex;position:relative}.progress-step span{background:var(--card);border:1px solid var(--border);border-radius:50%;justify-content:center;align-items:center;width:26px;height:26px;font-size:.8rem;font-weight:600;transition:background .3s,border-color .3s,transform .3s;display:flex}.progress-step.active{color:var(--text)}.progress-step.active span{background:var(--accent);color:#0a0e0a;border-color:var(--accent);transform:scale(1.15);box-shadow:0 0 0 4px #5ee6a02e}.progress-step.done span{background:var(--accent-dark);color:#0a0e0a;border-color:var(--accent-dark)}.wizard{max-width:820px;padding:2rem 1.5rem calc(4rem + env(safe-area-inset-bottom));margin:0 auto}.step{opacity:0;transition:opacity .28s cubic-bezier(.4,0,.2,1),transform .28s cubic-bezier(.4,0,.2,1);display:none;transform:translate(0)}.step.active{opacity:1;display:block;transform:translate(0)}.step.slide-out-fwd{opacity:0;transform:translate(-28px)}.step.slide-out-back,.step.slide-in-fwd{opacity:0;transform:translate(28px)}.step.slide-in-back{opacity:0;transform:translate(-28px)}.planner-shell h1{margin-bottom:.25rem;font-size:1.6rem}.planner-shell h2{border-top:1px solid var(--border);margin:2rem 0 1rem;padding-top:1.5rem;font-size:1.25rem}.planner-shell h3{color:var(--text-dim);text-transform:uppercase;letter-spacing:.04em;margin:1.75rem 0 .75rem;font-size:1rem}.subtitle{color:var(--text-dim);margin-bottom:1rem;line-height:1.5}.card-grid{gap:.85rem;margin-bottom:1rem;display:grid}.two-col{grid-template-columns:repeat(2,1fr)}.three-col{grid-template-columns:repeat(3,1fr)}.four-col{grid-template-columns:repeat(4,1fr)}.option-card{background:var(--card);border:1.5px solid var(--border);border-radius:var(--radius);color:var(--text);cursor:pointer;text-align:center;padding:1.25rem 1rem;font-family:inherit;transition:border-color .15s,background .15s,transform .15s,box-shadow .15s;position:relative}.option-card:hover{background:var(--card-hover);transform:translateY(-2px)}.option-card:active{transform:translateY(0)scale(.97)}.option-card.selected{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent), 0 8px 20px -8px #5ee6a059;background:#5ee6a014}.option-card .icon{width:44px;height:44px;color:var(--text-dim);justify-content:center;align-items:center;margin:0 auto .6rem;transition:color .15s;display:flex}.option-card .icon svg{width:100%;height:100%}.option-card:hover .icon,.option-card.selected .icon{color:var(--accent)}.option-card .option-title{font-size:1.05rem;font-weight:600}.option-card .option-desc{color:var(--text-dim);margin-top:.4rem;font-size:.82rem;line-height:1.4}.option-card.small{padding:.9rem;font-weight:600}.option-card.small .icon.small-icon{width:22px;height:22px;margin-bottom:.4rem}.check-badge{background:var(--accent);color:#0a0e0a;opacity:0;border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;transition:all .15s;display:flex;position:absolute;top:.6rem;right:.6rem;transform:scale(.4)}.check-badge svg{width:11px;height:11px}.option-card.selected .check-badge{opacity:1;transform:scale(1)}.form-grid{grid-template-columns:1fr 1fr;gap:1.1rem;display:grid}.form-grid label,label.full-width{color:var(--text-dim);flex-direction:column;gap:.4rem;font-size:.85rem;font-weight:500;display:flex}.form-grid label{grid-column:span 1}.planner-shell input,.planner-shell select,.planner-shell textarea{background:var(--card);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:.65rem .75rem;font-family:inherit;font-size:.95rem}.planner-shell input:focus,.planner-shell select:focus,.planner-shell textarea:focus{outline:2px solid var(--accent);outline-offset:1px}label.full-width{margin-top:1.25rem}.planner-shell textarea{resize:vertical}.account-panel{background:var(--card);border:1.5px solid var(--border);border-radius:var(--radius);margin-bottom:1.5rem;padding:1.25rem 1.5rem}.account-panel-title{align-items:center;gap:.5rem;font-size:1.05rem;font-weight:600;display:flex}.account-panel.signed-in{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1.5rem;display:flex}.account-form{flex-direction:column;gap:.75rem;max-width:360px;margin-top:1rem;display:flex}.account-form input{width:100%}.account-error{color:#ff8080;font-size:.85rem}.account-toggle{color:var(--accent);text-align:left;cursor:pointer;background:0 0;border:none;padding:0;font-family:inherit;font-size:.85rem}.account-toggle:hover{text-decoration:underline}.account-toggle:disabled{opacity:.6;cursor:default;text-decoration:none}.push-optin{align-items:center;gap:.4rem;margin-top:.75rem;display:flex}.spin{animation:1s linear infinite spin}.progress-history{background:var(--card);border:1.5px solid var(--border);border-radius:var(--radius);margin:1.5rem 0;padding:1.25rem 1.5rem}.weight-log-form{color:var(--text-dim);align-items:center;gap:.6rem;margin-top:.85rem;display:flex}.weight-log-form input{flex:1;max-width:220px}.weight-chart{width:100%;height:100px;margin-top:1rem}.workout-history-list{flex-direction:column;gap:.4rem;margin-top:.5rem;display:flex}.workout-history-row{border:1px solid var(--border);border-radius:8px;justify-content:space-between;padding:.55rem .8rem;font-size:.88rem;display:flex}.wh-full{color:var(--accent);font-weight:600}.wh-partial{color:var(--text-dim)}.input-pair{gap:.6rem;display:flex}.input-pair-item{flex:1;position:relative}.input-pair-item input{width:100%;padding-right:2.1rem}.input-pair-unit{color:var(--text-dim);pointer-events:none;font-size:.8rem;position:absolute;top:50%;right:.75rem;transform:translateY(-50%)}.checkbox-grid{grid-template-columns:repeat(4,1fr);gap:.6rem;display:grid}.seven-col{grid-template-columns:repeat(7,1fr)}.check-card{background:var(--card);border:1.5px solid var(--border);cursor:pointer;border-radius:10px;justify-content:center;align-items:center;gap:.4rem;padding:.6rem .5rem;font-size:.85rem;transition:all .15s;display:flex}.check-card:has(input:checked){border-color:var(--accent);background:#5ee6a014;animation:.3s checkBounce}.check-card input{width:14px;height:14px}.none-option{border-style:dashed}@keyframes checkBounce{0%{transform:scale(1)}45%{transform:scale(1.07)}to{transform:scale(1)}}.nav-row{justify-content:space-between;align-items:center;gap:.75rem;margin-top:2rem;display:flex}.btn{border:1px solid var(--border);cursor:pointer;border-radius:9px;padding:.75rem 1.5rem;font-family:inherit;font-size:.95rem;font-weight:600;transition:background .15s,border-color .15s,transform .15s,box-shadow .15s}.btn.primary{background:var(--accent);border-color:var(--accent);color:#0a0e0a}.btn.primary:disabled{opacity:.4;cursor:not-allowed}.btn.primary:not(:disabled):hover{background:var(--accent-dark);border-color:var(--accent-dark);box-shadow:0 6px 16px -6px #5ee6a080}.btn.primary:not(:disabled):active{transform:scale(.96)}.btn.secondary{color:var(--text);background:0 0}.btn.secondary:hover{background:var(--card)}.btn.secondary:active{transform:scale(.96)}.btn.ghost{color:var(--text-dim);background:0 0;border-color:#0000}.btn.ghost:hover{color:var(--text)}.resume-banner{border:1px solid var(--accent-dark);background:#5ee6a014;border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem;padding:1rem 1.25rem;font-size:.9rem;display:flex}.resume-actions{flex-shrink:0;gap:.6rem;display:flex}.resume-actions .btn{padding:.5rem 1.1rem;font-size:.85rem}.disclaimer{background:var(--warn-bg);border:1px solid var(--warn-border);color:var(--warn-text);border-radius:10px;margin:1rem 0 1.5rem;padding:.9rem 1.1rem;font-size:.85rem;line-height:1.5}.legal-page{max-width:680px}.legal-page h2{border-top:none;margin:1.75rem 0 .6rem;padding-top:0;font-size:1.1rem}.legal-page p{color:var(--text-dim);margin-bottom:.85rem;line-height:1.65}.legal-page ul{color:var(--text-dim);margin-bottom:.85rem;padding-left:1.4rem;line-height:1.65;list-style:outside}.legal-page li{margin-bottom:.5rem}.legal-page strong{color:var(--text)}.note{background:var(--card);border-left:3px solid var(--accent);color:var(--text-dim);border-radius:8px;margin-bottom:.6rem;padding:.7rem 1rem;font-size:.85rem}@keyframes revealUp{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.reveal{opacity:0;animation:.5s cubic-bezier(.4,0,.2,1) forwards revealUp;animation-delay:var(--reveal-delay,0s)}.landing{padding:calc(3.5rem + env(safe-area-inset-top)) 0 calc(1rem + env(safe-area-inset-bottom))}.landing-hero{text-align:center;max-width:640px;margin:0 auto 3rem}.landing-brand{justify-content:center;margin-bottom:1.5rem}.landing-headline{margin-bottom:1rem;font-size:2.1rem;line-height:1.2}.landing-sub{color:var(--text-dim);margin-bottom:2rem;font-size:1.05rem;line-height:1.6}.landing-cta{align-items:center;gap:.5rem;padding:.85rem 1.75rem;font-size:1rem;display:inline-flex}.landing-login-toggle{margin:1rem auto 0;display:block}.landing-login-form{text-align:left;margin:1.25rem auto 0}.landing-features{grid-template-columns:repeat(2,1fr);gap:1rem;max-width:720px;margin:0 auto;display:grid}.landing-feature-card{background:var(--card);border:1.5px solid var(--border);border-radius:var(--radius);padding:1.25rem}.landing-feature-icon{width:40px;height:40px;color:var(--accent);background:#5ee6a01a;border-radius:10px;justify-content:center;align-items:center;margin-bottom:.75rem;display:flex}.landing-feature-title{margin-bottom:.35rem;font-weight:600}.landing-feature-body{color:var(--text-dim);font-size:.88rem;line-height:1.5}.landing-why{background:var(--card);border:1.5px solid var(--border);border-radius:var(--radius);max-width:640px;margin:3rem auto 0;padding:1.5rem 1.75rem}.landing-why h2{border-top:none;margin-bottom:.6rem;padding-top:0;font-size:1.15rem}.landing-why p{color:var(--text-dim);margin:0;line-height:1.6}.landing-disclaimer{text-align:center;max-width:640px;color:var(--text-dim);opacity:.75;margin:2.5rem auto 0;font-size:.78rem;line-height:1.5}.landing-footer-links{text-align:center;justify-content:center;align-items:center;gap:.5rem;margin:1rem auto 0;font-size:.78rem;display:flex}.landing-footer-links a{color:var(--text-dim);text-decoration:none}.landing-footer-links a:hover{color:var(--accent);text-decoration:underline}.landing-footer-links span{color:var(--text-dim);opacity:.5}@media (max-width:640px){.landing-headline{font-size:1.6rem}.landing-features{grid-template-columns:1fr}}.stats-grid{grid-template-columns:repeat(4,1fr);gap:.75rem;display:grid}.stat-tile{background:var(--card);border:1px solid var(--border);text-align:center;border-radius:12px;padding:1rem}.stat-icon{width:22px;height:22px;color:var(--accent);margin:0 auto .5rem}.stat-icon svg{width:100%;height:100%}.stat-tile .value{color:var(--accent);font-size:1.4rem;font-weight:700}.stat-tile .label{color:var(--text-dim);text-transform:uppercase;letter-spacing:.03em;margin-top:.25rem;font-size:.75rem}.supp-list{gap:.65rem;display:grid}.supp-item{background:var(--card);border:1px solid var(--border);border-radius:10px;gap:.75rem;padding:.85rem 1rem;display:flex}.supp-icon{width:32px;height:32px;color:var(--accent);background:#5ee6a01a;border-radius:9px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.supp-icon svg{width:17px;height:17px}.supp-body{flex:1;min-width:0}.supp-item .supp-name{flex-wrap:wrap;justify-content:space-between;gap:.5rem;font-weight:600;display:flex}.supp-item .supp-dose{color:var(--accent);font-size:.85rem;font-weight:500}.supp-item .supp-reason{color:var(--text-dim);margin-top:.3rem;font-size:.85rem;line-height:1.4}.affiliate-disclosure{color:var(--text-dim);margin:-.5rem 0 .9rem;font-size:.78rem;font-style:italic}.supp-shop-link{color:var(--accent);align-items:center;gap:.35rem;margin-top:.55rem;font-size:.8rem;font-weight:600;text-decoration:none;transition:color .15s;display:inline-flex}.supp-shop-link:hover{color:var(--accent-dark);text-decoration:underline}.workout-week{flex-direction:column;gap:.9rem;display:flex}.day-card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:1rem 1.15rem}.day-card.rest{opacity:.75}.day-card .day-header{justify-content:space-between;align-items:center;margin-bottom:.6rem;display:flex}.day-card .day-name{font-size:1.05rem;font-weight:700}.day-focus-wrap{color:var(--accent);align-items:center;gap:.4rem;font-size:.85rem;font-weight:600;display:flex}.day-icon{flex-shrink:0;width:16px;height:16px}.day-icon svg{width:100%;height:100%}.exercise-row{border-top:1px solid var(--border);justify-content:space-between;padding:.35rem 0;font-size:.88rem;display:flex}.exercise-row:first-of-type{border-top:none}.exercise-row .ex-name{color:var(--text);align-items:center;gap:.5rem;display:flex}.exercise-row .ex-scheme{color:var(--text-dim);flex-shrink:0;padding-left:.75rem}.substitution-tag{color:var(--warn-text);background:var(--warn-bg);border-radius:5px;margin-left:.5rem;padding:1px 6px;font-size:.7rem}.week-tracker{flex-direction:column;gap:.9rem;display:flex}.week-header{justify-content:space-between;align-items:baseline;display:flex}.week-title{font-size:1.1rem;font-weight:700}.week-progress-label{color:var(--text-dim);font-size:.8rem}.week-progress-track{background:var(--border);border-radius:3px;height:6px;overflow:hidden}.week-progress-fill{background:linear-gradient(90deg, var(--accent-dark), var(--accent));height:100%;transition:width .4s cubic-bezier(.4,0,.2,1)}.day-swipe-nav{justify-content:center;align-items:center;gap:.6rem;margin-bottom:.25rem;display:flex}.day-nav-arrow{border:1.5px solid var(--border);background:var(--card);width:32px;height:32px;color:var(--text-dim);cursor:pointer;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;transition:border-color .15s,background .15s,color .15s;display:flex}.day-nav-arrow:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.day-nav-arrow:disabled{opacity:.35;cursor:default}.day-dots{align-items:center;gap:.45rem;display:flex}.day-dot{border:1.5px solid var(--border);background:var(--card);color:#0a0e0a;cursor:pointer;border-radius:50%;justify-content:center;align-items:center;width:11px;height:11px;padding:0;transition:transform .15s,border-color .15s,background .15s;display:flex;position:relative}.day-dot:hover{transform:scale(1.25)}.day-dot.active{border-color:var(--accent);background:var(--accent);transform:scale(1.35)}.day-dot.done{border-color:var(--accent-dark);background:var(--accent-dark)}.day-dot.done.active{background:var(--accent);border-color:var(--accent)}.day-dot.rest{border-style:dashed}.day-dot svg{width:7px;height:7px}.tracker-card{touch-action:pan-y;-webkit-user-select:none;user-select:none;cursor:grab;position:relative}.tracker-card:active{cursor:grabbing}.tracker-card.slide-fwd{animation:.3s cubic-bezier(.4,0,.2,1) trackerSlideFwd}.tracker-card.slide-back{animation:.3s cubic-bezier(.4,0,.2,1) trackerSlideBack}@keyframes trackerSlideFwd{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:translate(0)}}@keyframes trackerSlideBack{0%{opacity:0;transform:translate(-24px)}to{opacity:1;transform:translate(0)}}.swipe-hint{text-align:center;color:var(--text-dim);opacity:.6;margin-bottom:.5rem;font-size:.72rem;display:block}.mark-complete-btn{border:1.5px solid var(--accent);background:var(--accent);color:#0a0e0a;cursor:pointer;border-radius:9px;justify-content:center;align-items:center;gap:.4rem;width:100%;margin-top:.9rem;padding:.7rem;font-size:.88rem;font-weight:700;transition:background .15s,border-color .15s,color .15s,transform .15s;display:flex}.mark-complete-btn:hover{background:var(--accent-dark);border-color:var(--accent-dark)}.mark-complete-btn:active{transform:scale(.98)}.mark-complete-btn.done{border-color:var(--border);color:var(--text-dim);background:0 0}.mark-complete-btn.done:hover{border-color:var(--accent);color:var(--accent)}.week-complete-banner{border:1px solid var(--accent-dark);color:var(--accent);background:#5ee6a014;border-radius:12px;flex-wrap:wrap;align-items:center;gap:1rem;padding:1.1rem 1.25rem;display:flex}.week-complete-banner>svg{flex-shrink:0}.week-complete-title{color:var(--text);font-size:1rem;font-weight:700}.week-complete-sub{color:var(--text-dim);margin-top:.15rem;font-size:.82rem}.week-complete-banner .btn{flex-shrink:0;margin-left:auto}.ex-preview{flex-shrink:0;align-items:center;display:inline-flex;position:relative}.ex-bullet{background:var(--accent-dark);cursor:pointer;border:none;border-radius:50%;flex-shrink:0;width:9px;height:9px;padding:0;transition:transform .15s,background .15s,box-shadow .15s}.ex-bullet:hover,.ex-bullet:focus-visible{background:var(--accent);outline:none;transform:scale(1.35);box-shadow:0 0 0 4px #5ee6a02e}.ex-preview-popover{z-index:20;background:var(--bg-alt);border:1px solid var(--border);white-space:normal;border-radius:10px;padding:.6rem;animation:.15s popIn;position:absolute;bottom:calc(100% + 10px);left:0;box-shadow:0 12px 28px -8px #0000008c}@keyframes popIn{0%{opacity:0;transform:translateY(4px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.ex-preview-images{gap:.4rem;display:flex}.ex-preview-images img{object-fit:cover;background:var(--card);border-radius:7px;width:108px;height:108px;display:block}.ex-preview-caption{color:var(--text-dim);text-align:center;margin-top:.45rem;font-size:.75rem;font-weight:600;display:block}.ex-preview-empty{max-width:190px;color:var(--text-dim);padding:.35rem .25rem;font-size:.8rem;display:block}@media (max-width:640px){.form-grid{grid-template-columns:1fr}.three-col,.two-col,.four-col{grid-template-columns:1fr 1fr}.checkbox-grid,.seven-col{grid-template-columns:repeat(3,1fr)}.stats-grid{grid-template-columns:1fr 1fr}.progress-step{font-size:.65rem}.day-dots{gap:.55rem}.day-dot{width:13px;height:13px}}@media print{.topbar,.nav-row{display:none}.step{display:none!important}.step[data-step="5"]{display:block!important}.planner-shell{color:#000;background:#fff}.stat-tile,.supp-item,.day-card{background:#fff;border-color:#ccc}}
