:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#182230;background:#eef2f6;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;--border: #d5dde8;--muted: #64748b;--panel: #ffffff;--ink: #182230}*{box-sizing:border-box}body{margin:0;min-width:320px}button,input{font:inherit}button{min-height:36px;border:1px solid var(--border);border-radius:7px;background:#fff;color:var(--ink);cursor:pointer}button:hover:not(:disabled){border-color:#94a3b8;background:#f8fafc}button:disabled{cursor:not-allowed;opacity:.45}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:#101828;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{flex:0 0 auto;border-color:#1d4ed8;background:#1d4ed8;color:#fff;padding:0 16px;font-weight:700}.primaryAction:hover{background:#1e40af}.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}.chartShell,.summary,.scenarioPanel,.globalPanel{border:1px solid var(--border);border-radius:8px;background:var(--panel);box-shadow:0 1px 2px #1018280f}.chartShell{padding:18px}.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:#334155;font-size:14px}.legendItem,.scenarioCell{display:inline-flex;gap:8px;align-items:center;white-space:nowrap}.swatch{width:10px;height:10px;border-radius:50%;display:inline-block;flex:0 0 auto}.swatch.large{width:13px;height:13px}.swatch.cash{background:#0f766e}.swatch.invested{background:#7c3aed}.swatch.salary{background:#2563eb}.swatch.bonus{background:#7c3aed}.swatch.expenses{background:#c2410c}.swatch.assetReturn{background:#059669}.chart{width:100%;height:auto;display:block}.plotArea{fill:#fbfcfe;stroke:#e2e8f0}.gridLine{stroke:#e4e9f1;stroke-width:1}.gridLine.vertical{stroke-dasharray:3 5}.zeroLine{stroke:#475569;stroke-width:1.5;stroke-dasharray:5 5}.axisText{fill:#64748b;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:13px 18px;border-top:1px solid #e2e8f0;text-align:right}th:first-child,td:first-child{text-align:left}th{color:#475569;font-size:12px;text-transform:uppercase}td{color:#101828;font-weight:650}.sectionHeader{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:8px;background:#fff;padding:10px;box-shadow:0 1px 2px #1018280f}.stateActions button{padding:0 10px;font-size:13px;font-weight:700}.fileInput{display:none}.stateMessage{grid-column:1 / -1;min-height:18px;color:#64748b;font-size:12px}.scenarioPanel{padding:14px;cursor:pointer}.scenarioPanel:hover{border-color:#b8c3d1}.globalPanel{display:grid;gap:14px;padding:14px}.scenarioPanel.active{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1f}.scenarioPanel button,.scenarioPanel input,.scenarioPanel label{cursor:auto}.scenarioPanel button,.scenarioPanel input[type=range],.scenarioPanel label.toggle{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:#f1f5f9}.chevron{width:8px;height:8px;border-right:2px solid #64748b;border-bottom:2px solid #64748b;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 input{width:140px;min-width:0;border:0;background:transparent;color:#101828;font-weight:750;outline:0}.scenarioActions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.scenarioActions button{padding:0 10px;font-size:13px}.toggle{display:inline-flex;align-items:center;min-height:36px;gap:6px;color:#475569;font-size:13px;font-weight:650}.toggle input{width:16px;height:16px;accent-color:#2563eb}.categoryStack{display:grid;gap:8px;margin-top:16px}.controlCategory{border:1px solid #e2e8f0;border-radius:7px;background:#fbfcfe}.categorySummary{display:flex;align-items:center;width:100%;min-height:36px;border:0;border-radius:7px;padding:0 10px;background:transparent;color:#334155;cursor:pointer;font-size:13px;font-weight:750;text-align:left}.categorySummary:hover:not(:disabled){background:#f8fafc}.categorySummary:before{content:"";width:7px;height:7px;margin-right:10px;border-right:2px solid #64748b;border-bottom:2px solid #64748b;transform:rotate(-45deg);transition:transform .14s ease}.controlCategory.open .categorySummary{border-bottom:1px solid #e2e8f0;border-radius:7px 7px 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{display:flex;justify-content:space-between;align-items:center;gap:10px;color:#475569;font-size:13px}input[type=range]{width:100%;accent-color:#2563eb}.numberField{display:flex;align-items:center;border:1px solid transparent;border-radius:7px;background:transparent;overflow:hidden}.valueField{flex:0 0 auto;width:112px;min-height:30px}.numberField:focus-within{border-color:#2563eb;background:#fff;box-shadow:0 0 0 3px #2563eb1f}.numberField:hover{background:#f8fafc}.numberField input{width:100%;min-width:0;border:0;outline:0;padding:5px 7px;color:#101828;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:#64748b;font-size:12px;font-weight:700}.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,.scenarioTitle{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}}
