:root{color-scheme:light;--page: #e0e3ff;--surface: #ffffff;--surface-2: #f1f2ff;--ink: #14143a;--ink-2: #4a4c75;--muted: #646790;--line: #e3e5f7;--line-strong: #c5c9ef;--primary: #4338ca;--primary-ink: #ffffff;--gold: #a15c00;--gold-fill: #f5b301;--gold-wash: #fff4cc;--band: linear-gradient(115deg, #312e81 0%, #4f46e5 45%, #9333ea 80%, #c026d3 100%);--band-ink: #ffffff;--head-bg: #312e81;--head-ink: #ffffff;--pos: #047857;--neg: #dc2626;--pos-wash: #d1fae5;--neg-wash: #fee2e2;--partial-wash: #fef3c7;--partial-ink: #92400e;--pending-wash: #eef0fb;--accent: #4f46e5;--shadow: 0 1px 2px rgba(49, 46, 129, .06), 0 6px 18px rgba(67, 56, 202, .08);--radius: 14px;--k1: #4f46e5;--k2: #0ea5e9;--k3: #8b5cf6;--k4: #10b981;--k5: #f59e0b;--k6: #ec4899;--k7: #f97316;--k8: #14b8a6;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--page: #0f1029;--surface: #181a3a;--surface-2: #20234a;--ink: #eef0ff;--ink-2: #c3c6ee;--muted: #9497c4;--line: #2a2d55;--line-strong: #3d4175;--primary: #6366f1;--primary-ink: #ffffff;--gold: #fbbf24;--gold-fill: #f5b301;--gold-wash: #33290a;--band: linear-gradient(115deg, #1e1b4b 0%, #3730a3 45%, #6b21a8 80%, #86198f 100%);--band-ink: #ffffff;--head-bg: #262a5c;--head-ink: #e0e3ff;--pos: #34d399;--neg: #f87171;--pos-wash: #0f3a2c;--neg-wash: #3f1a24;--partial-wash: #3a2d0a;--partial-ink: #fcd34d;--pending-wash: #23264d;--accent: #818cf8;--shadow: 0 0 0 1px rgba(255, 255, 255, .06), 0 6px 18px rgba(0, 0, 0, .25)}}:root[data-theme=dark]{color-scheme:dark;--page: #0f1029;--surface: #181a3a;--surface-2: #20234a;--ink: #eef0ff;--ink-2: #c3c6ee;--muted: #9497c4;--line: #2a2d55;--line-strong: #3d4175;--primary: #6366f1;--primary-ink: #ffffff;--gold: #fbbf24;--gold-fill: #f5b301;--gold-wash: #33290a;--band: linear-gradient(115deg, #1e1b4b 0%, #3730a3 45%, #6b21a8 80%, #86198f 100%);--band-ink: #ffffff;--head-bg: #262a5c;--head-ink: #e0e3ff;--pos: #34d399;--neg: #f87171;--pos-wash: #0f3a2c;--neg-wash: #3f1a24;--partial-wash: #3a2d0a;--partial-ink: #fcd34d;--pending-wash: #23264d;--accent: #818cf8;--shadow: 0 0 0 1px rgba(255, 255, 255, .06), 0 6px 18px rgba(0, 0, 0, .25)}*{box-sizing:border-box}html,body{margin:0;background:var(--page);color:var(--ink)}body{font-size:14px;line-height:1.45;-webkit-font-smoothing:antialiased}button,input{font:inherit;color:inherit}h1,h2,h3,p{margin:0}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.muted{color:var(--muted)}.small{font-size:12.5px}.pos{color:var(--pos)}.neg{color:var(--neg)}.app{max-width:1440px;margin:0 auto;padding:0 20px 40px}main{display:grid;gap:16px}main>*,.charts>*,.insights>*{min-width:0}.topbar{display:flex;align-items:center;gap:16px;padding:16px 0;flex-wrap:wrap}.brand{display:flex;align-items:center;gap:12px;margin-right:auto}.brand-mark{width:40px;height:40px;border-radius:10px;display:grid;place-items:center;font-weight:800;background:linear-gradient(135deg,#ffd75e,#f5b301 45%,#c2410c);color:#fff;letter-spacing:.5px;box-shadow:inset 0 0 0 1px #ffffff40}.brand h1{font-size:18px;font-weight:700;letter-spacing:-.2px}.brand p{font-size:12px;color:var(--muted)}.tabs{display:flex;background:var(--surface);border-radius:10px;padding:3px;box-shadow:var(--shadow)}.tabs button{border:0;background:none;padding:7px 14px;border-radius:8px;cursor:pointer;color:var(--ink-2);font-weight:500}.tabs button.on{background:var(--primary);color:var(--primary-ink);font-weight:650;box-shadow:0 2px 8px #4f46e559}.actions{display:flex;gap:6px}button.ghost{border:1px solid var(--line-strong);background:var(--surface);border-radius:8px;padding:7px 12px;cursor:pointer;font-weight:500}button.ghost:hover{background:var(--surface-2)}button.ghost.icon{width:36px;padding:7px 0;font-size:16px;line-height:1}button.ghost.small{padding:3px 10px;font-size:12px}button:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow)}.controls{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px}.month-nav{display:flex;align-items:center;gap:6px}.month-pick input{border:1px solid var(--line-strong);background:var(--surface);border-radius:8px;padding:6px 10px}.month-title{font-size:20px;font-weight:700;margin-left:10px;letter-spacing:-.3px}.targets{display:flex;flex-wrap:wrap;align-items:end;gap:12px}.target-input{display:grid;gap:2px;font-size:11.5px;color:var(--muted);font-weight:500}.money-field{display:flex;align-items:center;border:1px solid var(--line-strong);border-radius:8px;background:var(--surface);padding-left:9px}.money-field i{font-style:normal;color:var(--muted)}.money-field input{border:0;background:none;width:72px;padding:6px 8px 6px 4px;font-weight:650;font-size:14px}.money-field:focus-within{outline:2px solid var(--accent)}.money-field input:focus-visible{outline:none}.banner{background:var(--band);color:var(--band-ink);box-shadow:0 8px 24px #4f46e540;border-radius:var(--radius);padding:14px 18px;display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px 16px;align-items:baseline}.banner strong{font-size:16px;letter-spacing:.6px;color:#ffd75e}.banner span{opacity:.9;font-size:13px}.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}.kpi{padding:12px 14px 12px 16px;display:grid;gap:2px;align-content:start;position:relative;overflow:hidden}.kpi:before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:var(--kc, var(--k1))}.kpi:nth-child(8n+1){--kc: var(--k1)}.kpi:nth-child(8n+2){--kc: var(--k2)}.kpi:nth-child(8n+3){--kc: var(--k3)}.kpi:nth-child(8n+4){--kc: var(--k4)}.kpi:nth-child(8n+5){--kc: var(--k5)}.kpi:nth-child(8n+6){--kc: var(--k6)}.kpi:nth-child(8n+7){--kc: var(--k7)}.kpi:nth-child(8n+8){--kc: var(--k8)}.kpi-label{font-size:12px;color:var(--muted);font-weight:500}.kpi-value{font-size:24px;font-weight:700;letter-spacing:-.5px}.kpi-sub{font-size:12px;color:var(--ink-2)}.meter{height:6px;border-radius:3px;background:var(--surface-2);margin-top:6px;overflow:hidden;box-shadow:inset 0 0 0 1px var(--line)}.meter span{display:block;height:100%;background:linear-gradient(90deg,#f5b301,#f97316);border-radius:3px}.insights{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:12px}.insight{padding:14px 16px;display:grid;gap:8px;align-content:start}.insight h3,.chart h3,.journal h3{font-size:14px;font-weight:650}.strength{display:flex;gap:16px;align-items:center}.ring{width:96px;height:96px;flex:none}.ring-track{fill:none;stroke:var(--surface-2);stroke-width:8}.ring-fill{fill:none;stroke-width:8;stroke-linecap:round;stroke:var(--muted);transition:stroke-dasharray .4s}.ring.strong .ring-fill{stroke:#0ca30c}.ring.solid .ring-fill{stroke:var(--accent)}.ring.building .ring-fill{stroke:#fab219}.ring.weak .ring-fill{stroke:#d03b3b}.ring-num{font-size:22px;font-weight:750;fill:var(--ink)}.ring-of{font-size:10px;fill:var(--muted)}.strength-side{display:grid;gap:8px;flex:1;min-width:0}.badge{justify-self:start;font-size:12px;font-weight:650;padding:2px 10px;border-radius:99px;background:var(--surface-2)}.badge.strong{background:var(--pos-wash);color:var(--pos)}.badge.solid{background:color-mix(in srgb,var(--accent) 15%,transparent);color:var(--accent)}.badge.building{background:var(--partial-wash);color:var(--partial-ink)}.badge.weak{background:var(--neg-wash);color:var(--neg)}.parts{list-style:none;margin:0;padding:0;display:grid;gap:5px;font-size:12px}.parts li{display:grid;grid-template-columns:108px 1fr 44px;align-items:center;gap:8px;color:var(--ink-2)}.parts b{text-align:right;font-weight:600;font-variant-numeric:tabular-nums;color:var(--ink)}.bar{height:6px;background:var(--surface-2);border-radius:3px;overflow:hidden;box-shadow:inset 0 0 0 1px var(--line)}.bar span{display:block;height:100%;background:linear-gradient(90deg,#6366f1,#a855f7);border-radius:3px}.trend-head{font-size:22px;font-weight:700;letter-spacing:-.3px}.trend-head.up{color:var(--pos)}.trend-head.down{color:var(--neg)}.trend-head.flat,.trend-head.na{color:var(--ink-2)}.facts{margin:0;display:grid;gap:0}.facts div{display:flex;justify-content:space-between;gap:12px;padding:5px 0;border-bottom:1px solid var(--line);font-size:13px}.facts div:last-child{border-bottom:0}.facts dt{color:var(--ink-2)}.facts dd{margin:0;font-weight:650;font-variant-numeric:tabular-nums;text-align:right}.facts small{color:var(--muted);font-weight:400}.charts{display:grid;grid-template-columns:1fr 1fr;gap:12px}.chart{margin:0;padding:14px 12px 8px 8px;min-width:0}.chart.wide{grid-column:1 / -1}.chart figcaption{padding:0 6px 6px 10px}.chart figcaption p{color:var(--muted);font-size:12.5px}.kpis.compact{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}.empty{display:grid;place-items:center;align-content:center;gap:10px;text-align:center;min-height:180px;color:var(--muted);padding:24px;font-size:13px}.empty.big{min-height:260px;gap:6px}.empty.big h3{color:var(--ink)}.tip{background:var(--surface);border-radius:8px;box-shadow:0 4px 16px #00000024,0 0 0 1px var(--line);padding:8px 10px;font-size:12px;min-width:170px}.tip-title{font-weight:650;margin-bottom:4px;color:var(--ink)}.tip-row{display:flex;align-items:center;gap:6px;color:var(--ink-2);padding:1px 0}.tip-row i{width:12px;height:3px;border-radius:2px;background:var(--k);flex:none}.tip-row i.dash{background:repeating-linear-gradient(90deg,var(--k) 0 4px,transparent 4px 6px)}.tip-row b{margin-left:auto;color:var(--ink);font-variant-numeric:tabular-nums;padding-left:12px}.recharts-legend-item-text{color:var(--ink-2)!important}.journal{padding:14px 0 6px}.journal-head{padding:0 16px 10px;display:grid;gap:2px}.table-scroll{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:13px;font-variant-numeric:tabular-nums}th{text-align:left;font-size:11.5px;font-weight:650;color:var(--head-ink);background:var(--head-bg);padding:9px 10px;white-space:nowrap;position:sticky;top:0}td{padding:3px 10px;border-bottom:1px solid var(--line);white-space:nowrap;height:38px}.num{text-align:right}.center{text-align:center}tbody tr:hover td{background:var(--surface-2)}tr.today td{background:var(--gold-wash)}tr.today td:first-child{box-shadow:inset 3px 0 0 var(--gold-fill)}.today-tag{margin-left:8px;font-size:10.5px;font-weight:700;color:var(--gold);text-transform:uppercase;letter-spacing:.4px}tr.skipped td{color:var(--muted)}tr.skipped .date{text-decoration:line-through}.week-row td{background:color-mix(in srgb,var(--accent) 9%,var(--surface));font-size:12px;font-weight:600;color:var(--ink-2);height:32px}tfoot td{font-weight:700;border-top:2px solid var(--accent);border-bottom:0;background:var(--surface-2);height:42px}input.cell{width:92px;border:1px solid transparent;background:transparent;border-radius:6px;padding:5px 7px;text-align:right;font-variant-numeric:tabular-nums}input.cell:hover:not(:disabled){border-color:var(--line-strong);background:var(--surface)}input.cell:focus{border-color:var(--accent);background:var(--surface);outline:none;box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 25%,transparent)}input.cell::placeholder{color:var(--line-strong)}input.cell.pos{color:var(--pos);font-weight:650}input.cell.neg{color:var(--neg);font-weight:650}input.cell.custom{color:var(--gold);font-weight:650}td:nth-child(7) input.cell{width:56px}input.cell.note{width:100%;min-width:200px;text-align:left}td.notes{width:100%}input[type=checkbox]{width:16px;height:16px;accent-color:var(--gold-fill);cursor:pointer}.status{display:inline-flex;align-items:center;gap:6px;padding:2px 10px;border-radius:99px;font-size:12px;font-weight:600}.status i{font-style:normal;font-size:11px}.status.met{background:var(--pos-wash);color:var(--pos)}.status.partial{background:var(--partial-wash);color:var(--partial-ink)}.status.loss{background:var(--neg-wash);color:var(--neg)}.status.flat,.status.pending,.status.skip{background:var(--pending-wash);color:var(--ink-2)}.status.missing{background:var(--partial-wash);color:var(--partial-ink)}.foot{margin-top:20px;color:var(--muted);font-size:12px;text-align:center}.toast{position:fixed;bottom:20px;left:50%;transform:translate(-50%);background:var(--ink);color:var(--page);padding:10px 16px;border-radius:10px;font-size:13px;box-shadow:0 6px 20px #0003}@media(max-width:900px){.charts{grid-template-columns:1fr}}@media(max-width:600px){.app{padding:0 12px 32px}.month-title{font-size:17px;margin-left:4px}.kpis{grid-template-columns:1fr 1fr}.kpi-value{font-size:20px}.tabs{order:3;width:100%}.tabs button{flex:1}}button.primary{border:0;border-radius:10px;padding:10px 16px;font-weight:650;cursor:pointer;color:var(--primary-ink);background:linear-gradient(115deg,#4f46e5,#9333ea);box-shadow:0 4px 14px #4f46e559}button.primary:hover{filter:brightness(1.08)}button.primary:disabled{opacity:.6;cursor:wait}button.primary.small,button.ghost.small{padding:5px 12px;font-size:12.5px}button.link{border:0;background:none;padding:0;color:var(--accent);font-weight:650;cursor:pointer;text-decoration:underline}.splash{min-height:100vh;display:grid;place-items:center;color:var(--ink-2)}.login-page{min-height:100vh;display:grid;place-items:center;padding:24px 16px;background:radial-gradient(circle at 15% 10%,#c7cbff 0,transparent 45%),radial-gradient(circle at 85% 90%,#f5d0fe 0,transparent 40%),var(--page)}:root[data-theme=dark] .login-page{background:var(--page)}.login-card{width:100%;max-width:380px;background:var(--surface);border-radius:18px;padding:28px 26px;display:grid;gap:14px;box-shadow:0 20px 50px #312e812e;border-top:5px solid #f5b301}.login-brand{display:flex;align-items:center;gap:12px;margin-bottom:6px}.login-brand h1{font-size:19px}.login-brand p{color:var(--muted);font-size:13px}.field{display:grid;gap:5px;font-size:13px;font-weight:600;color:var(--ink-2)}.field input{border:1px solid var(--line-strong);border-radius:10px;padding:10px 12px;background:var(--surface);font-size:15px;font-weight:400;color:var(--ink)}.field input:focus{outline:2px solid var(--accent);outline-offset:0;border-color:transparent}.field small{color:var(--muted);font-weight:400}.form-error{background:var(--neg-wash);color:var(--neg);border-radius:8px;padding:8px 10px;font-size:13px;font-weight:600}.switch{text-align:center;font-size:13px;color:var(--ink-2)}.sync{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:600;padding:6px 10px;border-radius:99px;border:0}.sync i{font-style:normal}.sync.saved{background:var(--pos-wash);color:var(--pos)}.sync.saving{background:var(--partial-wash);color:var(--partial-ink)}.sync.error{background:var(--neg-wash);color:var(--neg);cursor:pointer}.user-chip{display:inline-flex;align-items:center;gap:7px;padding:3px 10px 3px 3px;border-radius:99px;background:var(--surface);box-shadow:var(--shadow);font-weight:600;font-size:13px}.avatar{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;color:#fff;font-weight:700;background:linear-gradient(135deg,#6366f1,#c026d3)}.actions{align-items:center;flex-wrap:wrap}.notice{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin-bottom:16px;background:var(--gold-wash);border:1px solid #f5b301;border-radius:var(--radius);padding:10px 14px}.notice-actions{display:flex;gap:8px}@media(max-width:600px){.user-name{display:none}}.capital{padding:14px 16px 16px;display:grid;gap:12px}.capital h3{font-size:14px;font-weight:650}.capital h4{font-size:12.5px;font-weight:650;color:var(--ink-2);margin:0 0 6px}.capital-grid{display:grid;grid-template-columns:minmax(240px,1fr) minmax(240px,1fr) minmax(240px,1.1fr);gap:20px;align-items:start}.capital-sum{display:grid;gap:10px}.start-capital .money-field input{width:100%;font-size:18px}.start-capital small{font-weight:400}.facts div.total{border-top:2px solid var(--line-strong);border-bottom:2px solid var(--line-strong)}.facts div.total dd{font-size:16px}.flow-form{display:grid;gap:10px;background:var(--surface-2);border-radius:12px;padding:12px}.flow-form .field input{padding:8px 10px;font-size:14px}.flow-form .money-field input{width:100%;font-size:14px;font-weight:600}.seg{display:grid;grid-template-columns:1fr 1fr;background:var(--surface);border-radius:10px;padding:3px;box-shadow:inset 0 0 0 1px var(--line-strong)}.seg button{border:0;background:none;border-radius:8px;padding:7px;font-weight:600;color:var(--ink-2);cursor:pointer}.seg button.on.withdrawal{background:var(--neg);color:#fff}.seg button.on.deposit{background:var(--pos);color:#fff}.flow-list ul{list-style:none;margin:0;padding:0;display:grid;gap:6px;max-height:260px;overflow:auto}.flow-list li{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:8px 10px;border-radius:10px;background:var(--surface-2);font-size:13px}.flow-amt{font-weight:700;font-variant-numeric:tabular-nums}.flow-meta{color:var(--ink-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.flow-chip{display:inline-block;margin-right:8px;padding:1px 7px;border-radius:99px;font-size:11px;font-weight:700}.flow-chip.neg{background:var(--neg-wash);color:var(--neg)}.flow-chip.pos{background:var(--pos-wash);color:var(--pos)}.balance-cell{font-weight:600}.balance-head{font-size:26px;font-weight:750;letter-spacing:-.5px}.small-empty{min-height:120px;padding:8px}@media(max-width:1000px){.capital-grid{grid-template-columns:1fr}}.sp-settings{padding:14px 16px;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:end;gap:14px}.sp-settings h3{font-size:15px;font-weight:700}.sp-controls{display:flex;flex-wrap:wrap;gap:14px;align-items:end}.pct-field{padding-left:0;padding-right:9px}.pct-field input{width:64px;padding-left:10px}.sp-mode{min-width:250px}.sp-mode button.on.mode{background:var(--primary);color:var(--primary-ink)}.sp-warn{flex-basis:100%;background:var(--partial-wash);color:var(--partial-ink);border-radius:8px;padding:8px 10px;font-size:13px;font-weight:600}.investor-form{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr .8fr auto;gap:10px;align-items:end;padding:12px 16px 14px;margin:0 16px 12px;background:var(--surface-2);border-radius:12px}.investor-form .field input{padding:8px 10px;font-size:14px}.investor-form .money-field input{width:100%;font-size:14px;font-weight:600}.investor-form .form-error{grid-column:1 / -1}.investor-actions{display:flex;gap:8px}.row-actions{display:flex;gap:6px;justify-content:flex-end}.sp-table td{height:42px}.whatif-body{display:grid;gap:12px;padding:4px 10px 6px}.whatif-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.whatif .money-field input{width:100%}input[type=range]{accent-color:var(--accent);width:100%}@media(max-width:1000px){.investor-form{grid-template-columns:1fr 1fr}}.field input::placeholder,.money-field input::placeholder{color:var(--muted);opacity:.55;font-weight:400}
