.plan-card{margin:0;width:100%;background:var(--color-bg-white);border:1px solid var(--color-border);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-lg);overflow:hidden}.plan-card__bar{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.6rem 1rem;border-bottom:1px solid var(--color-border);font-family:var(--font-mono);font-size:var(--font-size-xs);letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-muted);line-height:var(--leading-snug)}.plan-stage{display:block;width:100%;height:auto;background:var(--color-bg-white)}.plan-readout{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem 1.6rem;padding:.8rem 1rem;border-top:1px solid var(--color-border);font-family:var(--font-mono);font-size:var(--font-size-xs);letter-spacing:.06em;color:var(--color-text-muted)}.plan-readout b{font-weight:var(--fw-semibold);color:var(--color-text-dark)}.plan-readout__waste b{color:var(--accent-text)}.plan-replay{margin-left:auto;background:none;border:1px solid var(--color-border);border-radius:var(--border-radius-sm);font-family:var(--font-mono);font-size:var(--font-size-xs);letter-spacing:.06em;color:var(--color-text-muted);padding:.2rem .6rem;cursor:pointer;transition:border-color .15s ease,color .15s ease}.plan-replay:hover{border-color:var(--blue-300);color:var(--blue-600)}.plan-boundary{stroke-dashoffset:0}.plan-stage.is-animate .plan-boundary{stroke-dasharray:1000;stroke-dashoffset:1000;animation:lp-draw 1.3s ease forwards}@keyframes lp-draw{to{stroke-dashoffset:0}}.plan-stage.is-animate .plank{opacity:0;animation:lp-lay .5s ease forwards;animation-delay:var(--d)}@keyframes lp-lay{to{opacity:1}}.plan-stage.is-animate .plan-dim{opacity:0;animation:lp-lay .6s ease forwards;animation-delay:1.1s}.plan-stage.is-animate .plan-label{opacity:0;animation:lp-lay .6s ease forwards;animation-delay:3.4s}@media (prefers-reduced-motion:reduce){.plan-stage.is-animate .plan-boundary{animation:none;stroke-dashoffset:0}.plan-stage.is-animate .plan-dim,.plan-stage.is-animate .plan-label,.plan-stage.is-animate .plank{animation:none;opacity:1}}