:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;font-family:system-ui,sans-serif}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}body{margin:0;padding:2rem}.app-layout{grid-template-columns:380px 1fr;align-items:start;gap:1.5rem;max-width:min(1800px,100vw);margin:0 auto;display:grid}.config-pane{max-height:calc(100vh - 4rem);position:sticky;top:2rem;overflow-y:auto}@media (width<=900px){.app-layout{grid-template-columns:1fr}.config-pane{max-height:none;position:static}}.dashboard{min-width:0;max-width:min(1400px,100vw);margin:0 auto}.config-panel{border:1px solid color-mix(in srgb, currentColor 15%, transparent);border-radius:8px;flex-direction:column;gap:.65rem;padding:1rem;display:flex}.config-section{flex-direction:column;gap:.75rem;display:flex}.config-subsection{flex-direction:column;gap:.65rem;display:flex}.config-section-title{margin:0;font-size:1rem;font-weight:700}.config-subsection-title{letter-spacing:.025em;text-transform:uppercase;opacity:.72;margin:0;font-size:.8rem;font-weight:650}.config-field{justify-content:space-between;align-items:center;gap:.75rem;font-size:.85rem;display:flex}.config-field>span:first-child{opacity:.85}.config-field input,.config-field select{font:inherit;color:inherit;border:1px solid color-mix(in srgb, currentColor 25%, transparent);background:0 0;border-radius:4px;padding:.2rem .4rem}.config-seed-controls{align-items:center;gap:.4rem;display:flex}.config-seed-controls input{width:6.5rem}.config-seed-controls button{font:inherit;color:inherit;border:1px solid color-mix(in srgb, currentColor 25%, transparent);cursor:pointer;background:0 0;border-radius:4px;padding:.2rem .5rem}.config-error{color:#c0392b;margin:0;font-size:.75rem}.config-panel-header{justify-content:space-between;align-items:flex-start;gap:1rem;padding:.1rem .1rem .5rem;display:flex}.config-panel-title{margin:0;font-size:1.05rem}.config-panel-header p{opacity:.68;margin:.2rem 0 0;font-size:.75rem}.config-panel-actions{gap:.4rem;display:flex}.config-panel-actions button,.config-dialog button{font:inherit;color:inherit;border:1px solid color-mix(in srgb, currentColor 25%, transparent);cursor:pointer;background:0 0;border-radius:5px;padding:.3rem .55rem}.config-category{border:1px solid color-mix(in srgb, currentColor 14%, transparent);border-radius:7px;overflow:clip}.config-category[open]{border-color:color-mix(in srgb, currentColor 24%, transparent)}.config-category-summary{cursor:pointer;background:color-mix(in srgb, currentColor 3%, transparent);-webkit-user-select:none;user-select:none;grid-template-columns:auto 1fr auto;align-items:center;gap:.75rem;padding:.7rem .75rem;display:grid}.config-category-summary:before{content:"▸";opacity:.62;font-size:.72rem;transition:transform .12s}.config-category[open]>.config-category-summary:before{transform:rotate(90deg)}.config-category-title{margin:0;font-size:.95rem;font-weight:700;display:inline}.config-category-value{max-width:13rem;color:color-mix(in srgb, currentColor 66%, transparent);text-align:right;text-overflow:ellipsis;white-space:nowrap;font-size:.73rem;overflow:hidden}.config-category-body{border-top:1px solid color-mix(in srgb, currentColor 10%, transparent);flex-direction:column;gap:.8rem;padding:.8rem .75rem .9rem;display:flex}.config-dialog{box-sizing:border-box;width:min(42rem,100vw - 2rem);max-height:calc(100vh - 3rem);color:inherit;border:1px solid color-mix(in srgb, currentColor 25%, transparent);background:canvas;border-radius:10px;padding:0;overflow:auto;box-shadow:0 1rem 3rem #00000040}.config-dialog::backdrop{background:#00000073}.config-dialog-header{z-index:1;border-bottom:1px solid color-mix(in srgb, currentColor 14%, transparent);background:canvas;justify-content:space-between;align-items:center;gap:1rem;padding:.85rem 1rem;display:flex;position:sticky;top:0}.config-dialog-header h2{margin:0;font-size:1.05rem}.config-dialog-close{width:2rem;height:2rem;padding:0!important;font-size:1.2rem!important;line-height:1!important}.config-dialog-body,.config-dialog-fields,.config-tools-section{flex-direction:column;gap:.75rem;display:flex}.config-dialog-body{padding:1rem}.config-tools-section{border-top:1px solid color-mix(in srgb, currentColor 14%, transparent);padding-top:.9rem}.config-tools-section h3{margin:0;font-size:.9rem}.config-tools-danger{margin-top:.5rem}.config-reset-button{font:inherit;color:inherit;border:1px solid color-mix(in srgb, currentColor 25%, transparent);cursor:pointer;background:0 0;border-radius:4px;align-self:flex-start;padding:.25rem .6rem;font-size:.78rem}.config-scenario-io{flex-direction:column;gap:.4rem;display:flex}.config-scenario-io-buttons{gap:.5rem;display:flex}.config-scenario-io-buttons button{font:inherit;color:inherit;border:1px solid color-mix(in srgb, currentColor 25%, transparent);cursor:pointer;background:0 0;border-radius:4px;padding:.3rem .6rem;font-size:.8rem}.config-json-editor{flex-direction:column;flex:1;gap:.5rem;min-height:0;display:flex}.config-json-textarea{min-height:42vh;color:inherit;background:color-mix(in srgb, currentColor 4%, transparent);border:1px solid color-mix(in srgb, currentColor 20%, transparent);resize:vertical;border-radius:6px;flex:1;padding:.6rem;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:.78rem;line-height:1.4}.config-json-editor-actions{align-items:center;gap:.5rem;display:flex}.config-json-editor-actions button{font:inherit;color:inherit;border:1px solid color-mix(in srgb, currentColor 25%, transparent);cursor:pointer;background:0 0;border-radius:4px;padding:.3rem .6rem;font-size:.8rem}.config-json-applied{opacity:.75;font-size:.78rem}.config-field-input{align-items:center;gap:.3rem;display:flex}.config-field-input input[type=text]{text-align:right;width:6rem}.config-field-affix{opacity:.7;font-size:.8rem}.config-field-slider{flex:1;justify-content:flex-end}.config-field-slider input[type=range]{flex:1;min-width:5rem}.config-field-checkbox{justify-content:space-between}.config-hint{opacity:.75;margin:.2rem 0;font-size:.78rem}.market-recenter-targets{border-left:2px solid color-mix(in srgb, currentColor 16%, transparent);flex-direction:column;gap:.6rem;padding:.65rem 0 .1rem .7rem;display:flex}.market-recenter-title{letter-spacing:.025em;text-transform:uppercase;opacity:.72;margin:0;font-size:.75rem;font-weight:650}.market-effective-returns{background:color-mix(in srgb, currentColor 4%, transparent);border:1px solid color-mix(in srgb, currentColor 12%, transparent);border-radius:6px;padding:.7rem}.market-effective-header{justify-content:space-between;align-items:baseline;gap:.75rem;display:flex}.market-effective-header h3{margin:0;font-size:.82rem}.market-effective-header span{opacity:.62;font-size:.7rem}.market-effective-returns dl{grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;margin:.6rem 0 0;display:grid}.market-effective-returns dl>div{background:color-mix(in srgb, currentColor 4%, transparent);border-radius:4px;justify-content:space-between;align-items:baseline;gap:.4rem;padding:.4rem .5rem;display:flex}.market-effective-returns dt{opacity:.7;font-size:.74rem}.market-effective-returns dd{font-variant-numeric:tabular-nums;margin:0;font-size:.86rem;font-weight:650}.market-effective-returns>p{opacity:.65;margin:.55rem 0 0;font-size:.7rem;line-height:1.35}.config-advanced{border-top:1px solid color-mix(in srgb, currentColor 12%, transparent);padding-top:.5rem}.config-advanced>summary{cursor:pointer;opacity:.8;-webkit-user-select:none;user-select:none;font-size:.8rem}.config-advanced-body{flex-direction:column;gap:.6rem;margin-top:.6rem;padding-left:.25rem;display:flex}.preset-quick-buttons{flex-wrap:wrap;gap:.4rem;display:flex}.preset-quick-button{font:inherit;color:inherit;border:1px solid color-mix(in srgb, currentColor 25%, transparent);cursor:pointer;background:0 0;border-radius:4px;padding:.2rem .5rem;font-size:.78rem}.segmented-control{flex-wrap:wrap;gap:.3rem;display:flex}.segmented-option{font:inherit;color:inherit;border:1px solid color-mix(in srgb, currentColor 25%, transparent);cursor:pointer;background:0 0;border-radius:4px;padding:.2rem .5rem;font-size:.78rem}.segmented-option.active{border-color:color-mix(in srgb, currentColor 70%, transparent);background:color-mix(in srgb, currentColor 10%, transparent);font-weight:600}.icon-button{font:inherit;color:inherit;border:1px solid color-mix(in srgb, currentColor 25%, transparent);cursor:pointer;background:0 0;border-radius:4px;flex-shrink:0;width:1.4rem;height:1.4rem;line-height:1}.icon-button:disabled{opacity:.35;cursor:not-allowed}.phase-timeline{flex-wrap:wrap;align-items:stretch;gap:.4rem;display:flex}.phase-arrow{opacity:.5;align-items:center;display:flex}.phase-card{border:1px solid color-mix(in srgb, currentColor 20%, transparent);background:color-mix(in srgb, currentColor 4%, transparent);border-radius:6px;flex-direction:column;gap:.5rem;min-width:9.5rem;padding:.45rem .55rem;display:flex}.phase-card-header{align-items:center;gap:.3rem;display:flex}.phase-card-label-field{flex:1}.phase-card-label-input{width:100%;font-size:.82rem;font-weight:600}.phase-card-terminal{opacity:.65;margin:0;font-size:.75rem;font-style:italic}.phase-card-transitions{flex-direction:column;gap:.3rem;display:flex}.transition-row{align-items:center;gap:.3rem;display:flex}.transition-row select{font:inherit;color:inherit;border:1px solid color-mix(in srgb, currentColor 25%, transparent);background:0 0;border-radius:4px;max-width:6.5rem;padding:.15rem .2rem;font-size:.72rem}.transition-value-field{flex:1;justify-content:flex-start;gap:.2rem}.transition-value-field>span:empty{display:none}.transition-value-field input{width:3.5rem}.phase-card-add-transition,.profile-event-add{font:inherit;color:inherit;border:1px dashed color-mix(in srgb, currentColor 30%, transparent);cursor:pointer;background:0 0;border-radius:4px;align-self:flex-start;padding:.15rem .4rem;font-size:.72rem}.phase-add-select select{width:100%}.expense-phase-card{border-top:1px solid color-mix(in srgb, currentColor 10%, transparent);padding-top:.6rem}.expense-phase-card:first-of-type{border-top:none;padding-top:0}.profile-event-row{align-items:center;gap:.3rem;display:flex}.profile-event-row>input[type=text]{font:inherit;color:inherit;border:1px solid color-mix(in srgb, currentColor 25%, transparent);background:0 0;border-radius:4px;flex:1;padding:.2rem .4rem}.profile-event-age-field input{width:3.2rem}.toolbar-row{border-bottom:1px solid color-mix(in srgb, currentColor 15%, transparent);flex-wrap:wrap;align-items:center;gap:1.5rem;margin:1rem 0 1.5rem;padding-bottom:.75rem;display:flex}.toolbar-control{opacity:.85;align-items:center;gap:.4rem;font-size:.85rem;display:flex}.stat-line{opacity:.85;flex-wrap:wrap;gap:1.25rem;font-size:.85rem;display:flex}.stat-line strong{margin-right:.3em;font-weight:600}.recomputing{opacity:.7;font-style:italic}.chart-grid{grid-template-columns:repeat(auto-fit,minmax(22rem,1fr));gap:1rem 1.25rem;display:grid}.error{color:#c0392b}
