:root{--bg: #0f1115;--card: #151821;--text: #eaeefb;--muted: #a7b0c2;--ring: #3b82f6;--shadow: 0 10px 30px rgba(0,0,0,.25)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Arial}.wrapper{max-width:1100px;margin:32px auto;padding:0 16px}header h1{margin:0 0 6px;font-size:42px}.subtitle{margin:0 0 24px;color:var(--muted)}.grid{display:grid;gap:16px;grid-template-columns:1fr}@media (min-width: 1000px){.grid{grid-template-columns:1fr 1fr}}.card{background:var(--card);border-radius:16px;padding:20px;box-shadow:var(--shadow);border:1px solid rgba(255,255,255,.06)}.form{display:grid;gap:12px}label{display:grid;gap:6px;font-weight:600}input[type=text],input[type=number]{background:#0f1320;color:var(--text);border:1px solid rgba(255,255,255,.08);border-radius:10px;padding:10px 12px;outline:none}input:focus{border-color:var(--ring);box-shadow:0 0 0 3px #3b82f640}input[type=range]{width:100%;accent-color:var(--ring)}.split{display:flex;justify-content:space-between;align-items:center}.primary,.ghost{margin-top:8px;padding:10px 14px;border-radius:10px;cursor:pointer;font-weight:700}.primary{background:#2563eb;color:#fff;border:none}.primary:hover{filter:brightness(1.05)}.ghost{background:transparent;color:var(--muted);border:1px solid rgba(255,255,255,.15)}.ghost:hover{border-color:#ffffff4d}.error{margin:4px 0 0;color:#fecaca;background:#7f1d1d;border:1px solid #fecaca33;padding:8px 10px;border-radius:8px;font-size:14px}.muted{color:var(--muted)}.small{font-size:13px}.summary{display:grid;grid-template-columns:repeat(3,1fr);background:#0f1320;border:1px solid rgba(255,255,255,.06);border-radius:12px;padding:12px 14px;gap:10px;margin-bottom:14px}.summary>div{display:grid;gap:4px}.bars{display:grid;gap:14px}.barRow{display:grid;gap:8px;margin-bottom:10px}.barHeader{display:flex;align-items:center;justify-content:space-between;font-weight:600}.barValue{color:var(--muted);font-weight:700}.barTrack{background:#0b0e16;border:1px solid rgba(255,255,255,.06);border-radius:999px;height:14px;overflow:hidden}.barFill{height:100%;border-radius:999px;transition:width .25s ease}.chartWrap{margin-top:10px;background:#0f1320;border-radius:12px;padding:10px;border:1px solid rgba(255,255,255,.06)}.totals{margin-top:14px;display:grid;gap:6px}.totals div{display:flex;gap:8px;align-items:baseline}.catColumns{display:grid;gap:12px;grid-template-columns:1fr}@media (min-width: 900px){.catColumns{grid-template-columns:1fr 1fr}}.catCard{background:#0f1320;border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:12px}.catCard.over{border-color:#ef4444}.catHeader{display:grid;gap:6px;margin-bottom:6px}.capline{display:flex;flex-wrap:wrap;gap:8px;color:var(--muted)}.capline .sep{opacity:.6}.warn{margin:6px 0 10px;color:#fecaca;background:#7f1d1d;border:1px solid #fecaca33;padding:8px 10px;border-radius:8px;font-size:14px}.catGrid{display:grid;gap:8px}.catRow{display:grid;grid-template-columns:1fr 140px 36px;gap:8px}.catName,.catAmt{background:#0b0e16;color:var(--text);border:1px solid rgba(255,255,255,.08);border-radius:10px;padding:10px 12px;outline:none}.catName:focus,.catAmt:focus{border-color:var(--ring);box-shadow:0 0 0 3px #3b82f640}.iconBtn{background:transparent;border:1px solid rgba(255,255,255,.15);color:var(--muted);border-radius:10px;cursor:pointer}.iconBtn:hover{border-color:#ffffff59;color:#fff}
