:root{--bg:#0a0a0b;--card:#141416;--border:#26262a;--text:#ededf0;--muted:#8a8a94;--green:#30d158;--amber:#ffd60a;--red:#ff453a;--blue:#0a84ff;--radius:10px;--ease:cubic-bezier(.22, 1, .36, 1);-webkit-font-smoothing:antialiased;font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#root{background:var(--bg);min-height:100%;color:var(--text);margin:0;padding:0}body{font-size:14px;line-height:1.45}.app{max-width:860px;margin:0 auto;padding:24px 18px 80px}.center{min-height:60vh;color:var(--muted);flex-direction:column;place-items:center;gap:12px;display:grid}.masthead{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.wordmark{letter-spacing:-.02em;font-size:18px;font-weight:650}.tabs{background:var(--card);border:1px solid var(--border);border-radius:9px;gap:4px;padding:3px;display:flex}.tabs button{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:7px;padding:6px 14px;font-family:inherit;font-size:13px;font-weight:550}.tabs button.active{color:var(--text);background:#232328}.banner{color:#ff8f88;background:#ff453a1a;border:1px solid #ff453a4d;border-radius:8px;margin-bottom:16px;padding:9px 13px;font-size:13px}.month-nav{justify-content:center;align-items:center;gap:18px;margin-bottom:18px;display:flex}.month-nav button{background:var(--card);border:1px solid var(--border);color:var(--text);cursor:pointer;border-radius:8px;width:34px;height:34px;font-size:16px}.month-nav button:hover{background:#1e1e22}.month-label{text-align:center;min-width:110px;font-size:15px;font-weight:620}.to-budget{border:1px solid var(--border);border-radius:var(--radius);background:linear-gradient(135deg,#1c1c20,#16161a);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:22px;padding:18px 22px;display:flex}.to-budget .label{text-transform:uppercase;letter-spacing:.07em;color:var(--muted);margin-bottom:3px;font-size:11px}.to-budget .amount{letter-spacing:-.03em;font-variant-numeric:tabular-nums;font-size:32px;font-weight:680}.to-budget .amount.zero{color:var(--green)}.to-budget .amount.neg{color:var(--red)}.income-note{color:var(--muted);font-size:13px}.income-note strong{color:var(--text);font-weight:600}.budget-table{border:1px solid var(--border);border-radius:var(--radius);background:var(--card);overflow:hidden}.brow{border-bottom:1px solid #1d1d21;grid-template-columns:1fr 110px 110px 110px;align-items:center;gap:10px;padding:9px 14px;display:grid}.brow:last-child{border-bottom:0}.bhead{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);background:#101012;padding:8px 14px;font-size:11px;font-weight:600}.group-row{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);background:#101013;padding:7px 14px;font-size:11px;font-weight:600}.catname{font-weight:520}.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.muted{color:var(--muted)}.small{font-size:12px}.neg{color:var(--red)!important}.flag{color:var(--amber)}.assigned-cell{cursor:pointer;border-radius:6px;margin:-2px -6px;padding:2px 6px}.assigned-cell:hover{background:#232328}.assigned-cell input{text-align:right;border:1px solid var(--blue);width:90px;color:var(--text);font:inherit;font-variant-numeric:tabular-nums;background:#0a0a0b;border-radius:6px;padding:3px 6px}.row-actions{gap:8px;margin-top:14px;display:flex}.ghost{border:1px solid var(--border);color:var(--text);cursor:pointer;background:0 0;border-radius:8px;padding:7px 14px;font-family:inherit;font-size:13px}.ghost:hover{background:#1e1e22}.section-head{justify-content:space-between;align-items:center;margin:26px 0 10px;display:flex}.section-head h2{margin:0;font-size:15px}.acct-row,.txn-row{background:var(--card);border:1px solid var(--border);border-radius:9px;justify-content:space-between;align-items:center;gap:10px;margin-bottom:7px;padding:11px 14px;display:flex}.txn-row{grid-template-columns:auto 1fr auto auto;display:grid}.txn-payee{text-overflow:ellipsis;white-space:nowrap;font-weight:530;overflow:hidden}.modal-bg{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:10;background:#0009;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal{background:#17171a;border:1px solid #2c2c32;border-radius:14px;flex-direction:column;gap:12px;width:100%;max-width:380px;padding:22px;display:flex}.modal h3{margin:0 0 4px;font-size:16px}.modal label{color:var(--muted);flex-direction:column;gap:5px;font-size:12px;display:flex}.modal input,.modal select{color:var(--text);font:inherit;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;background:#0f0f11;border:1px solid #2c2c32;border-radius:8px;padding:9px 11px;font-size:14px}.modal input:focus,.modal select:focus{border-color:var(--blue);outline:none}.split{align-items:end;gap:10px;display:flex}.grow{flex:1}.dir{align-items:center;flex-direction:row!important;gap:7px!important}.modal-actions{justify-content:flex-end;gap:8px;margin-top:6px;display:flex}.fund-all{background:var(--blue);color:#fff;cursor:pointer;border:0;border-radius:8px;padding:9px 16px;font-family:inherit;font-size:14px;font-weight:560}.fund-all:disabled{opacity:.35;cursor:not-allowed}.fund-all:hover:not(:disabled){filter:brightness(1.1)}
