:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#e6edf7;background:#080b10;color-scheme:dark;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;--bg: #080b10;--panel: #0f151d;--panel-raised: #121923;--panel-soft: #0a0f15;--border: #202a37;--border-strong: #313d4d;--muted: #8d9aae;--muted-strong: #b6c2d4;--ink: #eef5ff;--accent: #2563eb;--accent-strong: #1d4ed8;--accent-soft: rgba(37, 99, 235, .12);--danger: #fb7185;--shadow: 0 1px 0 rgba(255, 255, 255, .03);--shadow-soft: 0 1px 0 rgba(255, 255, 255, .03)}*{box-sizing:border-box}body{margin:0;min-width:320px;background:var(--bg)}button,input,select{font:inherit}button,select,input{transition:border-color .14s ease,background-color .14s ease,color .14s ease,box-shadow .14s ease}button{min-height:36px;border:1px solid var(--border);border-radius:5px;background:#101720;color:var(--ink);cursor:pointer}button:hover:not(:disabled){border-color:var(--border-strong);background:#141c27}button:disabled{cursor:not-allowed;opacity:.42}button:focus-visible,input:focus-visible,select:focus-visible{outline:0;box-shadow:0 0 0 2px #2563eb38}main{min-height:100vh;padding:24px}.appHeader{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin:0 auto 20px;max-width:1540px}.appHeader h1,.chartHeader h2,.sectionHeader h2{margin:0;color:var(--ink);letter-spacing:0}.appHeader h1{font-size:30px;line-height:1.15}.appHeader p,.chartHeader p{margin:8px 0 0;max-width:760px;color:var(--muted)}.primaryAction,.stateActions button{flex:0 0 auto;border-color:var(--border-strong);background:#111925;color:#c9d6e8;padding:0 16px;font-weight:750;box-shadow:0 1px #00000057}.primaryAction{background:#14213a;color:#dbeafe}.primaryAction:hover:not(:disabled),.stateActions button:hover:not(:disabled){border-color:#2563ebb8;background:#152034;color:#eff6ff}.primaryAction:hover:not(:disabled){background:#18294a}.primaryAction:active:not(:disabled),.stateActions button:active:not(:disabled){background:#101827;box-shadow:inset 0 1px 2px #0000005c}.currencySelect{flex:0 0 auto;min-height:36px;min-width:126px;border:1px solid var(--border);border-radius:5px;background:var(--panel);color:var(--ink);padding:0 30px 0 10px;font-weight:750}.currencySelect:focus{border-color:var(--accent);outline:0;box-shadow:0 0 0 2px #2563eb33}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 430px;gap:20px;max-width:1540px;margin:0 auto;align-items:start}.visuals,.controls{display:grid;gap:16px}.controls{position:sticky;top:16px;max-height:calc(100vh - 32px);overflow:auto;padding-right:4px;scrollbar-color:#33445b transparent}.chartShell,.summary,.scenarioPanel,.globalPanel{border:1px solid var(--border);border-radius:6px;background:var(--panel);box-shadow:var(--shadow-soft)}.chartShell{padding:18px;box-shadow:var(--shadow)}.chartHeader,.sectionHeader,.scenarioTitle{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}.chartHeader{margin-bottom:12px}.chartHeader h2,.sectionHeader h2{font-size:18px}.legend{display:flex;flex-wrap:wrap;gap:8px 14px;justify-content:flex-end;color:var(--muted-strong);font-size:14px}.legendItem,.scenarioCell{display:inline-flex;gap:8px;align-items:center;white-space:nowrap}.swatch{width:10px;height:10px;border-radius:2px;display:inline-block;flex:0 0 auto;box-shadow:none}.swatch.large{width:13px;height:13px}.swatch.cash{background:#2dd4bf}.swatch.invested{background:#a78bfa}.swatch.pension{background:#fb7185}.swatch.salary{background:#60a5fa}.swatch.bonus{background:#c084fc}.swatch.expenses{background:#fb923c}.swatch.assetReturn{background:#34d399}.chart{width:100%;height:auto;display:block}.plotArea{fill:#0a0f15;stroke:#1c2633}.gridLine{stroke:#1b2531;stroke-width:1}.gridLine.vertical{stroke-dasharray:3 5}.zeroLine{stroke:#5f6f84;stroke-width:1.5;stroke-dasharray:5 5}.axisText{fill:#91a0b5;font-size:13px}.smallChart{padding-bottom:10px}.summary{overflow:hidden}.summary .sectionHeader{padding:16px 18px 8px}.tableWrap{overflow-x:auto}table{width:100%;border-collapse:collapse;min-width:720px}th,td{padding:12px 18px;border-top:1px solid #202d3d;text-align:right}th:first-child,td:first-child{text-align:left}th{color:#8d9aae;font-size:12px;text-transform:uppercase}td{color:#edf4ff;font-weight:650}tbody tr:hover{background:#94a3b80a}.sectionHeader,.scenarioTitle{align-items:center}.controls>.sectionHeader{padding:0 2px}.stateActions{display:grid;grid-template-columns:1fr 1fr;gap:8px;align-items:center;border:1px solid var(--border);border-radius:6px;background:var(--panel);padding:10px;box-shadow:var(--shadow-soft)}.stateActions button{padding:0 10px;font-size:13px}.fileInput{display:none}.stateMessage{grid-column:1 / -1;min-height:18px;color:var(--muted);font-size:12px}.scenarioPanel{padding:14px;cursor:pointer}.scenarioPanel:hover{border-color:var(--border-strong);background:var(--panel-raised)}.globalPanel{display:grid;gap:14px;padding:14px}.compactPanel{gap:8px;padding:10px 14px}.dateRow{display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--muted-strong);font-size:13px}.dateRow input{min-height:32px;width:150px;border:1px solid var(--border);border-radius:5px;background:#0c131d;color:var(--ink);padding:0 8px;font-weight:750}.dateRow input:focus{border-color:var(--accent);outline:0;box-shadow:0 0 0 2px #2563eb33}.addScenarioControl{width:100%}.scenarioPanel.active{border-color:#2563ebc7;box-shadow:0 0 0 1px #2563eb47}.scenarioPanel button,.scenarioPanel input,.scenarioPanel label{cursor:auto}.scenarioPanel button,.scenarioPanel input[type=range]{cursor:pointer}.scenarioPanel.collapsed{padding-bottom:14px}.scenarioIdentity{display:inline-flex;align-items:center;gap:6px;min-width:0}.collapseButton{display:inline-grid;place-items:center;width:30px;min-height:30px;border:0;background:transparent}.collapseButton:hover:not(:disabled){background:#94a3b814}.chevron{width:8px;height:8px;border-right:2px solid #91a0b5;border-bottom:2px solid #91a0b5;transform:rotate(45deg) translateY(-2px);transition:transform .14s ease}.collapseButton.collapsed .chevron{transform:rotate(-45deg) translate(-1px)}.selectScenario{display:inline-flex;align-items:center;gap:8px;min-width:0;padding:0 8px;border:0;background:transparent}.selectScenario:hover:not(:disabled){background:transparent}.selectScenario input{width:140px;min-width:0;border:0;background:transparent;color:var(--ink);font-weight:750;outline:0}.scenarioActions{display:flex;flex:0 0 auto;flex-wrap:nowrap;justify-content:flex-end;gap:6px}.iconButton{display:inline-grid;place-items:center;width:32px;min-height:32px;padding:0;color:#a8b5c7}.iconButton svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2}.iconButton.visibilityToggle.visible{border-color:#2563eb75;background:#2563eb1f;color:#93c5fd}.iconButton.visibilityToggle.hidden{background:transparent;color:#64748b}.iconButton.danger:not(:disabled):hover{border-color:#fb718573;background:#fb718514;color:var(--danger)}.categoryStack{display:grid;gap:8px;margin-top:16px}.controlCategory{border:1px solid #202d3d;border-radius:5px;background:var(--panel-soft)}.categorySummary{display:flex;align-items:center;width:100%;min-height:36px;border:0;border-radius:5px;padding:0 10px;background:transparent;color:#cad6e6;cursor:pointer;font-size:13px;font-weight:750;text-align:left}.categorySummary:hover:not(:disabled){background:#94a3b80d}.categorySummary:before{content:"";width:7px;height:7px;margin-right:10px;border-right:2px solid #91a0b5;border-bottom:2px solid #91a0b5;transform:rotate(-45deg);transition:transform .14s ease}.controlCategory.open .categorySummary{border-bottom:1px solid #202d3d;border-radius:5px 5px 0 0}.controlCategory.open .categorySummary:before{transform:rotate(45deg) translateY(-2px)}.sliderGrid{display:grid;gap:14px;padding:12px 10px}.sliderRow{display:grid;gap:7px}.sliderMeta,.textControlRow{display:flex;justify-content:space-between;align-items:center;gap:10px;color:var(--muted-strong);font-size:13px}.textControlRow input{min-height:32px;width:150px;border:1px solid var(--border);border-radius:5px;background:#0c131d;color:var(--ink);padding:0 9px;font-weight:750;text-align:right}.textControlRow input:focus{border-color:var(--accent);outline:0;box-shadow:0 0 0 2px #2563eb33}input[type=range]{width:100%;accent-color:var(--accent-strong)}.numberField{display:flex;align-items:center;border:1px solid transparent;border-radius:5px;background:transparent;overflow:hidden}.valueField{flex:0 0 auto;width:112px;min-height:30px}.numberField:focus-within{border-color:var(--accent);background:#0c131d;box-shadow:0 0 0 2px #2563eb33}.numberField:hover{background:#94a3b80d}.numberField input{width:100%;min-width:0;border:0;outline:0;padding:5px 7px;color:var(--ink);font-size:13px;font-weight:750;font-variant-numeric:tabular-nums;text-align:right;background:transparent;appearance:textfield;-moz-appearance:textfield}.numberField input::-webkit-outer-spin-button,.numberField input::-webkit-inner-spin-button{margin:0;appearance:none;-webkit-appearance:none}.numberField span{color:#91a0b5;font-size:12px;font-weight:750}.numberField .prefix{padding-left:8px}.numberField .suffix{padding-right:8px}@media(max-width:1180px){.workspace{grid-template-columns:1fr}.controls{position:static;max-height:none;grid-row:1}}@media(max-width:680px){main{padding:14px}.appHeader,.chartHeader{display:grid}.scenarioIdentity{width:100%}.primaryAction,.scenarioActions,.legend{justify-content:flex-start}.appHeader h1{font-size:24px}.chartShell{padding:12px}.axisText{font-size:12px}.valueField{width:118px}}
