.fire-planner *{box-sizing:border-box}.fire-planner-root .fire-results-anchor{scroll-margin-top:6.5rem;outline:none}.fire-planner{--fp-accent:hsl(var(--primary));--fp-accent-soft-bg:hsl(var(--primary)/0.12);--fp-accent-dashed:hsl(var(--primary)/0.42);--fp-accent-hover:color-mix(in hsl,hsl(var(--primary)) 88%,hsl(var(--foreground)) 12%);--fp-track-empty:hsl(var(--muted));--fp-text-xs:13px;--fp-text-sm:14px;--fp-text-md:15px;--fp-coral:#D85A30;--fp-coral-light:#FAECE7;--fp-amber:#BA7517;--fp-amber-light:#FAEEDA;--fp-blue:#378ADD;--fp-blue-light:#E6F1FB;--fp-bg:hsl(var(--card));--fp-bg-2:hsl(var(--muted));--fp-bg-3:hsl(var(--background));--fp-border:hsl(var(--border)/0.9);--fp-border-2:hsl(var(--border));--fp-text:hsl(var(--foreground));--fp-text-2:hsl(var(--muted-foreground));--fp-text-3:hsl(var(--muted-foreground)/0.88);--fp-radius-md:8px;--fp-radius-lg:12px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:16px;line-height:1.45;color:var(--fp-text);background:var(--fp-bg-3);min-height:100vh}.fire-planner--embedded{background:transparent;min-height:0}.fire-planner--embedded .fire-planner-wrapper{max-width:none;margin:0;padding:0}.fire-planner-wrapper{max-width:1000px;margin:0 auto;padding:2rem 1.5rem 4rem}.planner-step-shell{display:flex;flex-direction:column;gap:1rem}.planner-stepper{background:linear-gradient(180deg,hsl(var(--card)) 0,hsl(var(--card)/.96) 100%);border:1px solid var(--fp-border);border-radius:var(--fp-radius-lg);padding:1rem 1.1rem}.planner-stepper-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.planner-stepper-copy{flex:1;min-width:0}.planner-step-title{font-size:22px;line-height:1.1;letter-spacing:-.03em;margin:0}.planner-step-description{font-size:14px;color:var(--fp-text-2);margin:.45rem 0 0;max-width:44rem}.planner-step-status{align-self:flex-start;padding:.45rem .75rem;border-radius:999px;background:var(--fp-accent-soft-bg);color:var(--fp-accent);font-size:13px;font-weight:600;white-space:nowrap}.planner-step-list{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.55rem;margin-top:1rem}.planner-step-item{display:flex;align-items:flex-start;gap:.55rem;padding:.7rem;border:1px solid var(--fp-border);border-radius:12px;background:hsl(var(--card));text-align:left;cursor:pointer;transition:transform .15s ease,border-color .15s ease,background .15s ease,box-shadow .15s ease}.planner-step-item:disabled{cursor:not-allowed;opacity:.6}.planner-step-item-index{display:inline-flex;align-items:center;justify-content:center;width:1.55rem;height:1.55rem;border-radius:999px;background:hsl(var(--muted));color:var(--fp-text);font-size:12px;font-weight:700;flex-shrink:0}.planner-step-item-copy{display:flex;flex-direction:column;gap:.18rem;min-width:0}.planner-step-item-title{font-size:13px;font-weight:700;color:var(--fp-text);line-height:1.2}.planner-step-item.is-active{border-color:hsl(var(--primary)/.35);background:linear-gradient(180deg,hsl(var(--card)) 0,var(--fp-accent-soft-bg) 100%);box-shadow:0 10px 24px -20px hsl(var(--primary))}.planner-step-item.is-complete .planner-step-item-index{background:var(--fp-accent);color:hsl(var(--primary-foreground))}.planner-step-item:not(:disabled):hover{transform:translateY(-1px);border-color:hsl(var(--primary)/.3)}.planner-step-card .section{margin-bottom:0}.planner-section-stack{display:flex;flex-direction:column;gap:.9rem}.planner-step-nav{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem}.planner-step-nav-main{display:flex;flex-direction:column;align-items:flex-end;gap:.45rem;flex:1}.planner-step-hint{margin:0;font-size:13px;color:var(--fp-text-3)}.page-header{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:4px}.fire-planner h1{font-size:28px;font-weight:600;letter-spacing:-.5px}.subtitle{font-size:var(--fp-text-md);color:var(--fp-text-2);margin-bottom:1.75rem}.badge{display:inline-block;font-size:var(--fp-text-xs);font-weight:500;padding:3px 10px;border-radius:20px}.badge-teal{background:var(--fp-accent-soft-bg);color:var(--fp-accent)}.badge-coral{background:var(--fp-coral-light);color:var(--fp-coral)}.badge-amber{background:var(--fp-amber-light);color:var(--fp-amber)}.summary-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--fp-border);border:1px solid var(--fp-border);border-radius:var(--fp-radius-lg);overflow:hidden;margin-bottom:1.5rem}.summary-cell{background:var(--fp-bg);padding:1.1rem 1.4rem}.summary-cell .s-label{font-size:var(--fp-text-xs);color:var(--fp-text-3);text-transform:uppercase;letter-spacing:.5px;margin-bottom:5px}.summary-cell .s-value{font-size:24px;font-weight:600;letter-spacing:-.5px;color:var(--fp-accent)}.summary-cell .s-value.neutral{color:var(--fp-text)}.summary-cell .s-value.warn{color:var(--fp-coral)}.summary-cell .s-meta{font-size:var(--fp-text-xs);color:var(--fp-text-3);margin-top:3px}.section{background:var(--fp-bg);border:1px solid var(--fp-border);border-radius:var(--fp-radius-lg);margin-bottom:.85rem;overflow:hidden}.section-header{justify-content:space-between;padding:.85rem 1.25rem .5rem;background:transparent}.section-header,.section-title{display:flex;align-items:center}.section-title{gap:10px}.section-title h3{font-size:var(--fp-text-md);font-weight:600;letter-spacing:.2px;text-transform:uppercase;color:var(--fp-text-2);margin:0}.section-icon{width:24px;height:24px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:14px;flex-shrink:0}.icon-teal{background:var(--fp-accent-soft-bg)}.icon-coral{background:var(--fp-coral-light)}.icon-amber{background:var(--fp-amber-light)}.section-body{padding:.4rem 1.25rem 1.15rem}.pair{display:grid;grid-template-columns:1fr;gap:1rem;margin-bottom:1rem}.field,.pair .section{margin-bottom:0}.field label{display:block;font-size:var(--fp-text-sm);font-weight:500;color:var(--fp-text-2);margin-bottom:6px}.input-row{display:grid;gap:1rem;margin-bottom:1rem}.input-row.cols-3{grid-template-columns:repeat(3,1fr)}.input-row.cols-2{grid-template-columns:repeat(2,1fr)}.input-wrap{display:flex;align-items:center;border:1px solid var(--fp-border-2);border-radius:var(--fp-radius-md);background:var(--fp-bg);height:38px;overflow:hidden;transition:border-color .15s,box-shadow .15s}.input-wrap:focus-within{border-color:var(--fp-accent);box-shadow:0 0 0 3px var(--fp-accent-soft-bg)}.input-wrap .prefix,.input-wrap .suffix{padding:0 11px;font-size:14px;color:var(--fp-text-2);background:var(--fp-bg-2);height:100%;display:flex;align-items:center;flex-shrink:0}.input-wrap .prefix{border-right:1px solid var(--fp-border)}.input-wrap .suffix{border-left:1px solid var(--fp-border)}.input-wrap input[type=number],.input-wrap input[type=text]{border:none;background:transparent;padding:0 11px;font-size:15px;font-weight:500;color:var(--fp-text);width:100%;height:100%;outline:none}.fire-planner .pension-add-name-input{flex:1;min-width:0;font-size:var(--fp-text-sm);font-weight:500;border:1px solid var(--fp-border-2);border-radius:var(--fp-radius-md);padding:8px 10px;outline:none;color:var(--fp-text);background:var(--fp-bg);transition:border-color .15s,box-shadow .15s}.fire-planner .pension-add-name-input::-moz-placeholder{color:var(--fp-text-2);opacity:1}.fire-planner .pension-add-name-input::placeholder{color:var(--fp-text-2);opacity:1}.fire-planner .pension-add-name-input:focus{border-color:var(--fp-accent);box-shadow:0 0 0 3px var(--fp-accent-soft-bg)}.slider-field{margin-bottom:1.1rem}.slider-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:7px}.slider-label{font-size:14px;font-weight:500;color:var(--fp-text-2)}.slider-value{font-size:16px;font-weight:600;color:var(--fp-text)}.slider-meta{font-weight:400;color:var(--fp-text-2);margin-left:2px}.slider-ticks{display:flex;justify-content:space-between;font-size:var(--fp-text-xs);color:var(--fp-text-3);margin-top:5px}.fire-planner input[type=range].fp-range{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:18px;background:transparent;outline:none;cursor:pointer;--fp-range-fill:0%}.fire-planner input[type=range].fp-range::-webkit-slider-runnable-track{height:4px;border-radius:2px;background:linear-gradient(to right,var(--fp-accent) 0,var(--fp-accent) var(--fp-range-fill),var(--fp-track-empty) var(--fp-range-fill),var(--fp-track-empty) 100%)}.fire-planner input[type=range].fp-range::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:16px;height:16px;margin-top:-6px;border-radius:50%;background:var(--fp-accent);border:2px solid hsl(var(--card));box-shadow:0 0 0 1px var(--fp-accent)}.fire-planner input[type=range].fp-range::-moz-range-track{height:4px;border-radius:2px;background:var(--fp-track-empty)}.fire-planner input[type=range].fp-range::-moz-range-progress{height:4px;border-radius:2px;background:var(--fp-accent)}.fire-planner input[type=range].fp-range::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:var(--fp-accent);border:2px solid hsl(var(--card));box-shadow:0 0 0 1px var(--fp-accent);cursor:pointer}.divider{height:1px;background:var(--fp-border);margin:1.1rem 0}.budget-segments{display:flex;height:7px;border-radius:4px;overflow:hidden;margin:8px 0 6px}.seg-income{background:var(--fp-accent)}.seg-living{background:var(--fp-blue)}.seg-invest{background:var(--fp-amber)}.budget-legend{display:flex;gap:14px;flex-wrap:wrap}.legend-item{display:flex;align-items:center;gap:6px;font-size:14px;color:var(--fp-text-2)}.legend-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.strategy-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:1.25rem}.strategy-card{border:1px solid var(--fp-border-2);border-radius:var(--fp-radius-md);padding:10px 11px;cursor:pointer;transition:all .15s}.strategy-card:hover{background:var(--fp-bg-2)}.strategy-card.active{border-color:var(--fp-accent);background:var(--fp-accent-soft-bg)}.strategy-card .s-name{font-size:14px;font-weight:600;margin-bottom:3px}.strategy-card .s-ret{font-size:19px;font-weight:600;color:var(--fp-accent)}.strategy-card .s-vol{font-size:var(--fp-text-sm);color:var(--fp-text-2);margin-top:2px}.alloc-item{margin-bottom:12px}.alloc-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:5px}.alloc-name{font-size:14px}.alloc-right{display:flex;align-items:center;gap:8px}.alloc-pct{font-size:14px;font-weight:600;min-width:34px;text-align:right}.alloc-bar-bg{height:5px;background:var(--fp-bg-3);border-radius:3px}.alloc-bar{height:100%;border-radius:3px}.fire-goals{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:1.5rem}.fire-card{border:1px solid var(--fp-border-2);border-radius:var(--fp-radius-md);padding:14px 12px;cursor:pointer;text-align:center;transition:all .15s}.fire-card:hover{background:var(--fp-bg-2)}.fire-card.active{border-color:var(--fp-accent);background:var(--fp-accent-soft-bg)}.fire-card .fc-icon{font-size:22px;margin-bottom:6px}.fire-card .fc-name{font-size:15px;font-weight:600}.fire-card .fc-desc{font-size:var(--fp-text-sm);color:var(--fp-text-2);margin-top:4px;line-height:1.45}.pension-row{display:grid;grid-template-columns:1fr 130px 30px;gap:10px;align-items:center;padding:9px 0;border-bottom:1px solid var(--fp-border)}.pension-row .p-name{font-size:14px;font-weight:500}.pension-row .p-amount{font-size:var(--fp-text-xs);color:var(--fp-text-3)}.del-btn{width:26px;height:26px;border:none;background:none;color:var(--fp-text-3);cursor:pointer;border-radius:4px;display:flex;align-items:center;justify-content:center;font-size:17px}.del-btn:hover{background:var(--fp-coral-light);color:var(--fp-coral)}.add-btn{display:inline-flex;align-items:center;gap:5px;font-size:var(--fp-text-sm);color:var(--fp-accent);border:1px dashed var(--fp-accent-dashed);border-radius:var(--fp-radius-md);padding:5px 12px;cursor:pointer;background:transparent;margin-top:8px;margin-right:6px}.add-btn:hover{background:var(--fp-accent-soft-bg)}.events-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem}.events-col-title{font-size:var(--fp-text-sm);font-weight:600;margin-bottom:5px}.events-col-desc{font-size:var(--fp-text-xs);color:var(--fp-text-3);margin-bottom:4px;line-height:1.4}.planner-group{display:flex;flex-direction:column;gap:.85rem}.planner-group-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.planner-group-title-wrap{min-width:0}.planner-group-title{margin:0;font-size:14px;font-weight:700;color:var(--fp-text)}.planner-group-description{margin:.25rem 0 0;font-size:13px;color:var(--fp-text-3);line-height:1.45}.planner-chip{display:inline-flex;align-items:center;gap:.35rem;padding:.35rem .65rem;border-radius:999px;background:var(--fp-bg-2);color:var(--fp-text-2);font-size:12px;font-weight:600;white-space:nowrap}.planner-item-list{display:flex;flex-direction:column;gap:.75rem}.planner-item-card{border:1px solid var(--fp-border);border-radius:12px;padding:.95rem;background:linear-gradient(180deg,hsl(var(--card)) 0,hsl(var(--muted)/.24) 100%)}.planner-item-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.9rem}.planner-item-head .input-wrap{flex:1}.planner-select{width:100%;height:38px;border:1px solid var(--fp-border-2);border-radius:var(--fp-radius-md);background:var(--fp-bg);color:var(--fp-text);padding:0 .8rem;font-size:14px;font-weight:500;outline:none}.planner-select:focus{border-color:var(--fp-accent);box-shadow:0 0 0 3px var(--fp-accent-soft-bg)}.planner-empty-state{margin:0;padding:.9rem 1rem;border:1px dashed var(--fp-border);border-radius:12px;color:var(--fp-text-3);font-size:13px;text-align:center;background:hsl(var(--muted)/.15)}.planner-toggle{display:inline-flex;align-items:center;gap:.55rem;font-size:13px;color:var(--fp-text-2)}.planner-toggle input{width:16px;height:16px;accent-color:var(--fp-accent)}.cta-bar{display:flex;gap:1rem;margin-top:1.75rem}.profile-input{display:flex;align-items:center;border:1px solid var(--fp-border-2);border-radius:var(--fp-radius-md);height:46px;overflow:hidden;flex:1;background:var(--fp-bg)}.profile-input input[type=text]{border:none;background:transparent;padding:0 14px;font-size:14px;color:var(--fp-text);flex:1;height:100%;outline:none}.profile-input input::-moz-placeholder{color:var(--fp-text-3)}.profile-input input::placeholder{color:var(--fp-text-3)}.save-btn{height:100%;padding:0 14px;background:var(--fp-bg-2);border:none;border-left:1px solid var(--fp-border);font-size:var(--fp-text-sm);color:var(--fp-text-2);cursor:pointer}.save-btn:hover{color:var(--fp-text)}.btn-primary{background:var(--fp-accent);color:hsl(var(--primary-foreground));border:none;border-radius:var(--fp-radius-md);height:46px;min-width:172px;padding:0 1.1rem;font-size:15px;font-weight:600;cursor:pointer;letter-spacing:.1px}.btn-primary:hover{background:var(--fp-accent-hover)}.btn-primary:active{transform:scale(.99)}.btn-primary:disabled,.btn-secondary:disabled{opacity:.55;cursor:not-allowed}.btn-secondary{min-width:120px;height:46px;padding:0 1rem;border-radius:var(--fp-radius-md);border:1px solid var(--fp-border-2);background:var(--fp-bg);color:var(--fp-text);font-size:15px;font-weight:600;cursor:pointer}.btn-secondary:hover:not(:disabled){background:var(--fp-bg-2)}.hint{color:var(--fp-text-3);margin-top:6px;line-height:1.45}.fp-toast,.hint{font-size:var(--fp-text-sm)}.fp-toast{position:fixed;bottom:24px;right:24px;background:var(--fp-accent);color:hsl(var(--primary-foreground));padding:8px 16px;border-radius:20px;opacity:0;transition:opacity .3s;pointer-events:none;z-index:9999}.fp-toast.show{opacity:1}@media (max-width:1024px){.strategy-grid,.summary-strip{grid-template-columns:repeat(2,1fr)}.events-grid{grid-template-columns:1fr}.planner-stepper-head{flex-direction:column}.planner-step-status{align-self:flex-start}.planner-step-list{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:768px){.fire-planner-wrapper{padding:1rem 1rem 2rem}.summary-strip{grid-template-columns:repeat(2,1fr)}.fire-goals{grid-template-columns:1fr}.input-row.cols-3,.strategy-grid{grid-template-columns:repeat(2,1fr)}.pension-row{grid-template-columns:1fr 100px 30px}.planner-step-nav{flex-direction:column-reverse}.planner-step-nav,.planner-step-nav-main{align-items:stretch}.planner-step-list{grid-template-columns:repeat(2,minmax(0,1fr))}.btn-primary,.btn-secondary{width:100%}}@media (max-width:640px){.planner-step-title{font-size:20px}.input-row.cols-2,.input-row.cols-3,.planner-step-list{grid-template-columns:1fr}.planner-stepper{padding:.9rem}}