.tool-fpp{padding:2.4rem 0 1.4rem}.tool-fpp__shell{max-width:920px;margin:0 auto}.tool-fpp__hero{text-align:center;padding:0 1rem;margin-bottom:1.6rem}.tool-fpp__form{display:grid;gap:1.05rem}.tool-fpp__submit-btn{justify-self:center}.tool-fpp__submit{margin-top:.5rem;width:100%}.tool-fpp__cycle-row{display:grid;grid-template-columns:1fr auto;gap:.85rem;align-items:end}.tool-fpp__cycle-stepper{display:inline-flex;align-items:center;gap:.4rem;padding:.45rem;border-radius:999px;background:var(--tool-bg);border:1px solid var(--tool-line-strong)}.tool-fpp__step-btn{width:36px;height:36px;border-radius:50%;border:none;background:#fff;color:var(--tool-fg);font-size:1.05rem;font-weight:600;cursor:pointer;box-shadow:0 4px 12px rgba(39,39,39,.08);transition:transform .15s,color .15s}.tool-fpp__step-btn:active{transform:scale(.94)}.tool-fpp__step-btn:disabled{color:var(--tool-fg-soft);cursor:not-allowed;opacity:.5}.tool-fpp__cycle-value{min-width:64px;text-align:center;font-variant-numeric:tabular-nums;color:var(--tool-fg);font-weight:600;font-size:1rem}.tool-fpp__cycle-suffix{color:var(--tool-fg-soft);font-size:.8rem}.tool-fpp__timeline{margin-top:.4rem;padding:1.2rem 1.2rem 1.4rem;border-radius:var(--tool-radius-md);background:var(--tool-bg);border:1px solid var(--tool-line)}.tool-fpp__timeline-head{display:flex;align-items:baseline;justify-content:space-between;gap:.8rem;margin-bottom:.85rem}.tool-fpp__timeline-title{margin:0;color:var(--tool-fg);font-size:.92rem;font-weight:600;letter-spacing:.03em}.tool-fpp__timeline-pct{color:var(--tool-accent);font-size:.92rem;font-weight:700;font-variant-numeric:tabular-nums}.tool-fpp__bar{position:relative;height:12px;border-radius:999px;background:rgba(35,63,105,.14);overflow:visible}.tool-fpp__bar-fill{position:absolute;inset:0 auto 0 0;width:0;border-radius:999px;background:linear-gradient(90deg,rgba(255,188,213,.55),rgba(251,105,158,.55),rgba(190,15,79,.689));transition:width 1.2s cubic-bezier(.22, .7, .18, 1)}.tool-fpp__bar-marker{position:absolute;top:50%;left:0;width:22px;height:22px;border-radius:50%;background:#fff;border:1px solid var(--tool-accent);transform:translate(-50%,-50%);box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);transition:left 1.2s cubic-bezier(.22, .7, .18, 1)}.tool-fpp__bar-trimesters{position:absolute;inset:0;pointer-events:none}.tool-fpp__bar-trimester{position:absolute;top:50%;width:1px;height:18px;background:rgba(39,39,39,.22);transform:translateY(-50%)}.tool-fpp__bar-trimester--t1{left:33.33%}.tool-fpp__bar-trimester--t2{left:66.66%}.tool-fpp__legend{display:flex;justify-content:space-between;gap:.6rem;margin-top:.85rem;color:var(--tool-fg-soft);font-size:.74rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase}.tool-fpp__milestones{margin-top:1.4rem;display:grid;gap:.65rem}.tool-fpp__milestone{border-radius:var(--tool-radius-md);background:#fff;border:1px solid var(--tool-line);overflow:hidden;transition:border-color .2s}.tool-fpp__milestone[open]{border-color:var(--tool-accent);box-shadow:0 12px 28px rgba(39,39,39,.06)}.tool-fpp__milestone summary{list-style:none;cursor:pointer;padding:.85rem 1.05rem;display:flex;align-items:center;gap:.6rem;color:var(--tool-fg);font-size:.94rem;font-weight:600}.tool-fpp__milestone summary::-webkit-details-marker{display:none}.tool-fpp__milestone summary::after{content:"+";margin-left:auto;color:var(--tool-accent);font-size:1.1rem;font-weight:600;transition:transform .25s}.tool-fpp__milestone[open] summary::after{content:"−"}.tool-fpp__milestone[data-state=past]{opacity:.5}.tool-fpp__milestone[data-state=near]{border-color:var(--tool-warm);background:rgba(214,175,114,.08)}.tool-fpp__milestone-week{display:inline-flex;align-items:center;justify-content:center;min-width:56px;padding:.25rem .55rem;border-radius:999px;background:var(--tool-accent-soft);color:var(--tool-accent);font-size:.72rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.tool-fpp__milestone-body{padding:0 1.05rem 1.05rem;color:var(--tool-fg-muted);font-size:.9rem;line-height:1.65}.tool-fpp__error{margin-top:.6rem}.tool-fpp__cta-row{justify-content:center}.tool-fpp__cta-row .btn{flex:0 0 auto;justify-content:center}