:root{--ink:#1b2a24;--muted:#5b6b63;--line:#d8e0da;--panel:#fff;--page:#f3f6f3;--accent:#2f6f4e;color:var(--ink);background-color:var(--page);font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif}*{box-sizing:border-box}body{margin:0}.app{flex-direction:column;max-width:1400px;height:100vh;margin:0 auto;padding:1.5rem;display:flex}.app-header h1{margin:0 0 .25rem;font-size:1.9rem}.app-header p{color:var(--muted);max-width:60%;margin:0 0 1.5rem}.layout{flex:1;grid-template-columns:minmax(320px,380px) 1fr;gap:1.5rem;min-height:0;display:grid;overflow:hidden}@media (width>=1001px){.app{max-width:none;padding-right:0}}@media (width<=1000px){.app{height:auto;min-height:100vh}.layout{flex:none;grid-template-columns:1fr;height:auto}}.editor,.results{flex-direction:column;gap:1.25rem;min-height:0;display:flex;overflow:hidden auto}@media (width<=1000px){.editor,.results{overflow:visible}}.panel{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:1rem 1.25rem 1.25rem}.panel h2{margin:0 0 .75rem;font-size:1.1rem}.panel-header{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.5rem;display:flex}.panel-header h2{margin:0}.grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.75rem;display:grid}.field{color:var(--muted);flex-direction:column;gap:.25rem;font-size:.85rem;display:flex}.field input,.field select{font:inherit;color:var(--ink);border:1px solid var(--line);background:#fff;border-radius:6px;width:100%;padding:.4rem .5rem}.number-input{position:relative}.number-input input{padding-left:.5rem}.number-input-currency input{padding-left:1.5rem}.number-input-percentage input{padding-right:1.5rem}.number-input-unit{z-index:1;color:var(--muted);pointer-events:none;position:absolute;top:50%;transform:translateY(-50%)}.number-input-currency .number-input-unit{left:.5rem}.number-input-percentage .number-input-unit{right:.5rem}.field.checkbox{flex-direction:row;align-self:end;align-items:center;gap:.5rem}.field.checkbox input{width:auto}.field.colour input[type=color]{align-self:start;width:2.5rem;height:2.5rem;padding:.15rem}button{font:inherit;border:1px solid var(--accent);background:var(--accent);color:#fff;cursor:pointer;border-radius:6px;padding:.4rem .8rem}button.remove{color:var(--muted);border-color:var(--line);background:0 0;align-self:end}.income-list{flex-direction:column;gap:.75rem;margin:0;padding:0;list-style:none;display:flex}.income{border:1px solid var(--line);background:#fbfdfb;border-radius:8px;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:.6rem;padding:.75rem;display:grid}.hint{color:var(--muted);margin:.75rem 0 0;font-size:.85rem}.hint.warning{color:#a01018}.stats{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;display:grid}.stat{flex-direction:column;gap:.2rem;display:flex}.stat-value{color:var(--accent);font-size:1.4rem;font-weight:600}.stat-label{color:var(--muted);font-size:.8rem}.chart-panel .recharts-wrapper{font-size:.75rem}.app-footer{color:var(--muted);margin-top:.75rem;font-size:.8rem;line-height:1.2}
