.plan-builder-shell{max-width:min(100%,480px);min-height:100dvh;padding:var(--space-md) var(--space-md) 0;flex-direction:column;margin:0 auto;display:flex}@media (min-width:480px){.plan-builder-shell{max-width:min(100%,560px);padding:var(--space-lg) var(--space-md) 0}}.plan-builder-progress{margin-bottom:var(--space-sm);justify-content:center;gap:8px;display:flex}.plan-builder-dot{border-radius:var(--radius-pill);background:var(--border);width:8px;height:8px;transition:background var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out), width var(--dur-mid) var(--ease-out)}.plan-builder-dot-on{background:linear-gradient(90deg, var(--accent), var(--gradient-teal-bright,var(--accent)));width:22px}.plan-builder-dot-done{background:var(--accent-strong)}.plan-builder-step-count{margin:0 0 var(--space-md);text-align:center;letter-spacing:.03em;color:var(--text-faint);font-size:12px;font-weight:600}@media (min-width:480px){.plan-builder-step-count{display:none}}@media (prefers-reduced-motion:reduce){.plan-builder-dot{transition:none}.plan-builder-dot-on{transform:none}}.plan-builder-card{gap:var(--space-md);background:linear-gradient(165deg, transparent 55%, color-mix(in srgb, var(--accent) 8%, transparent) 100%), var(--elev-2-surface);border:1px solid var(--elev-2-border);border-radius:var(--radius);padding:var(--space-md);box-shadow:var(--elev-2-shadow);flex-direction:column;display:flex}@media (min-width:480px){.plan-builder-card{padding:var(--space-lg)}}.plan-builder-card.fade-up.plan-step-in{animation:plan-step-in var(--dur-mid) var(--ease-out) backwards}@keyframes plan-step-in{0%{opacity:0;transform:translate(14px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.plan-builder-card.fade-up.plan-step-in{animation:none}}.plan-builder-card h1{margin:0;font-size:clamp(1.25rem,5.5vw,1.5rem);line-height:1.25}.plan-builder-sub{color:var(--text-muted);margin:0;font-size:16px}.plan-builder-runway{color:var(--accent-strong,var(--accent));margin:0;font-weight:700}.plan-builder-field-block{flex-direction:column;gap:8px;display:flex}.plan-builder-label{color:var(--text-muted);font-size:.85rem;font-weight:700}.plan-builder-hint{color:var(--accent-strong,var(--accent));margin:0;font-size:.82rem;font-weight:600}.plan-fix-option{text-align:left;flex-direction:column;align-items:flex-start;gap:4px}.plan-chip-row{flex-wrap:wrap;gap:8px;display:flex}.plan-chip{border:1.5px solid var(--border);background:var(--surface);min-width:44px;min-height:44px;color:var(--text-muted);font:inherit;cursor:pointer;transition:border-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out), background var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out);border-radius:999px;justify-content:center;align-items:center;padding:0 18px;font-weight:600;display:inline-flex}@media (hover:hover) and (pointer:fine){.plan-chip:hover{border-color:var(--accent);box-shadow:var(--shadow-sm);transform:translateY(-1px)}}.plan-chip:active{transform:scale(.96)}.plan-chip-on{border-color:var(--accent);color:var(--on-accent);background:var(--accent);box-shadow:0 2px 0 var(--btn-lip)}.plan-chip-on:active{box-shadow:0 0 0 var(--btn-lip)}@media (pointer:coarse){.plan-chip:not(.plan-chip-on):active{background:var(--surface-2)}}@media (prefers-reduced-motion:reduce){.plan-chip{transition:none}.plan-chip:hover,.plan-chip:active{transform:none}}.plan-choice-list{gap:var(--space-sm);flex-direction:column;display:flex}.plan-choice-list .btn{text-align:left;justify-content:flex-start;width:100%;min-height:52px}.plan-finish{border-radius:var(--radius);margin:0;padding:10px 14px;font-size:.9rem}.plan-finish-good{background:var(--accent-dim,var(--surface));color:var(--accent-strong,var(--accent));font-weight:600}.plan-finish-warn{background:var(--sun-dim,var(--surface));color:var(--sun-strong,var(--sun));border:1px solid var(--sun)}.plan-week-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.plan-week-row{align-items:center;gap:var(--space-sm);border:1px solid var(--border);border-radius:var(--radius);grid-template-columns:1fr auto;padding:10px 12px;display:grid}.plan-week-info{flex-direction:column;gap:2px;min-width:0;display:flex}.plan-week-meta{align-items:baseline;gap:6px;display:flex}.plan-week-num{color:var(--text-faint);text-transform:uppercase;font-size:12px;font-weight:700}.plan-week-note{color:var(--text-faint);margin:0 0 8px;font-size:12px}.plan-week-label{overflow-wrap:anywhere;font-size:.9rem;font-weight:600}.plan-week-actions{flex-direction:column;flex:none;gap:4px;display:flex}.plan-week-move{border:1px solid var(--border);background:var(--surface);width:44px;height:44px;color:var(--text-muted);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;font-size:14px;display:inline-flex}.plan-week-move:disabled{opacity:.35;cursor:default}@media (min-width:480px){.plan-week-actions{flex-direction:row}}.plan-week-disclosure{border:1px solid var(--border);border-radius:var(--radius);padding:0 12px}.plan-week-disclosure>summary{min-height:44px;color:var(--text-muted);cursor:pointer;align-items:center;font-size:.9rem;font-weight:600;list-style:none;display:flex}.plan-week-disclosure>summary::-webkit-details-marker{display:none}.plan-week-disclosure>summary:after{content:"▾";color:var(--text-faint);transition:transform var(--dur-fast) var(--ease-out);margin-left:auto}.plan-week-disclosure[open]>summary:after{transform:rotate(180deg)}.plan-week-disclosure[open]>summary{border-bottom:1px solid var(--border)}.plan-week-disclosure .plan-week-list{padding:12px 0}@media (prefers-reduced-motion:reduce){.plan-week-disclosure>summary:after{transition:none}}.plan-builder-footer{z-index:1;margin-top:auto;margin-inline:calc(var(--space-md) * -1);gap:var(--space-sm);padding:var(--space-md) var(--space-md) calc(var(--space-md) + env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid var(--border);flex-direction:column;display:flex;position:sticky;bottom:0}@media (min-width:760px){.plan-builder-footer{background:var(--surface-veil-strong,var(--surface));-webkit-backdrop-filter:blur(12px)saturate(1.2);backdrop-filter:blur(12px)saturate(1.2)}}.plan-builder-footer .btn{width:100%;min-height:52px}.plan-builder-back{min-height:44px;padding:0 var(--space-md);color:var(--text-muted);font:inherit;cursor:pointer;background:0 0;border:none;align-self:center;font-size:.9rem}.plan-builder-back:hover{color:var(--text)}.plan-reminder-options{gap:var(--space-sm);flex-direction:column;display:flex}.plan-reminder-options .btn{width:100%}@media (min-width:480px){.plan-reminder-options{flex-flow:wrap}.plan-reminder-options .btn{flex:auto;width:auto}}.plan-signup-gate{text-align:center;flex-direction:column;align-items:stretch;gap:8px;display:flex}.plan-signup-gate .btn{width:100%}.plan-signup-gate .linkish{min-height:44px;margin:0;padding:0}.plan-cta-card{justify-content:space-between;align-items:center;gap:var(--space-md);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-md);margin-bottom:var(--space-lg);flex-wrap:wrap;display:flex}@media (min-width:480px){.plan-cta-card{padding:var(--space-md) var(--space-lg);margin-bottom:var(--space-xl)}}.plan-cta-title{font-weight:700}.plan-cta-sub{color:var(--text-muted);font-size:.9rem}.plan-builder-teach{color:var(--text-faint);margin:0;font-size:.82rem}.plan-builder-teach-more{margin-top:var(--space-xs)}.plan-builder-teach-more summary{cursor:pointer;color:var(--text-faint);font-size:.78rem;font-weight:600;list-style:none}.plan-builder-teach-more summary::-webkit-details-marker{display:none}.plan-builder-teach-more summary:after{content:" ▾"}.plan-builder-teach-more[open] summary:after{content:" ▴"}.plan-builder-teach-more .plan-builder-teach{margin-top:6px}.plan-builder-teach-more .plan-builder-teach+.plan-builder-teach{margin-top:4px}@media (hover:hover) and (pointer:fine){.plan-builder-teach-more summary:hover{color:var(--text-muted)}}.plan-builder-teach-more summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:3px}@media (pointer:coarse){.plan-builder-teach-more summary{display:inline-block;position:relative}.plan-builder-teach-more summary:before{content:"";position:absolute;inset:-13px -8px}}.plan-path-section{flex-direction:column;gap:8px;display:flex}.plan-path-card{border-radius:var(--radius);text-align:left;font:inherit;box-shadow:var(--shadow-sm);transition:transform var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out);flex-direction:column;gap:4px;padding:12px 14px;display:flex}@media (hover:hover) and (pointer:fine){.plan-path-card:hover{box-shadow:var(--shadow);transform:translateY(-2px)}}.plan-path-card:active{box-shadow:var(--shadow-sm);transform:translateY(1px)scale(.99)}.plan-path-recommended{border:1.5px solid var(--accent);background:var(--accent-dim,var(--surface));color:inherit;cursor:pointer}.plan-path-alt{border:1px solid var(--border);background:var(--surface);color:inherit;cursor:pointer}.plan-path-alt-chosen{border-color:var(--accent);box-shadow:0 3px 0 var(--btn-lip), var(--shadow-sm)}@media (hover:hover) and (pointer:fine){.plan-path-alt-chosen:hover{box-shadow:0 3px 0 var(--btn-lip), var(--shadow)}}.plan-path-alt-chosen:active{box-shadow:0 1px 0 var(--btn-lip), var(--shadow-sm)}.plan-path-card:focus-visible{box-shadow:0 0 0 3px var(--accent-ring);outline:none}@media (prefers-reduced-motion:reduce){.plan-path-card,.plan-path-card:hover,.plan-path-card:active{transition:none;transform:none}}.plan-path-badge{text-transform:uppercase;letter-spacing:.04em;color:var(--accent-strong,var(--accent));font-size:10px;font-weight:700}.plan-path-label{font-weight:700}.plan-path-pro{color:var(--text-muted);margin:0;font-size:.85rem}.plan-path-con{color:var(--text-faint);font-size:.78rem}.plan-builder-preview{margin:var(--space-md) 0;padding:var(--space-sm) var(--space-md) var(--space-md);border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-2)}.plan-builder-preview .plan-builder-label{margin-top:var(--space-md)}.plan-builder-preview .plan-builder-label:first-child{margin-top:0}.plan-builder-preview .plan-builder-teach{margin-top:var(--space-xs)}
