:root{--bg: #0b1120;--card: #111a2e;--card-2: #1a2540;--text: #f1f5f9;--muted: #94a3b8;--green: #16a34a;--green-2: #22c55e;--red: #ef4444;--border: #243049}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}input,button{font-family:inherit}.center{min-height:100%;display:flex;align-items:center;justify-content:center;padding:24px}.muted{color:var(--muted)}.error{color:var(--red);margin-top:12px;font-size:14px}.card{width:100%;max-width:420px;background:var(--card);border:1px solid var(--border);border-radius:20px;padding:28px 24px}.card h1{margin:0 0 16px;font-size:24px}.login{text-align:center}.logo{font-size:56px;margin-bottom:8px}input[type=email],input[type=text],input[type=number]{width:100%;padding:16px;font-size:18px;background:var(--card-2);border:1px solid var(--border);border-radius:12px;color:var(--text);margin-top:8px}.field-label{display:block;margin-top:20px;font-size:14px;color:var(--muted)}.amount-input{display:flex;align-items:center;gap:8px;font-size:28px;margin-top:8px;background:var(--card-2);border:1px solid var(--border);border-radius:12px;padding:0 16px}.amount-input span{color:var(--muted)}.amount-input input{background:transparent;border:none;margin:0;padding:16px 0;font-size:28px}.amount-input input:focus{outline:none}.segment{display:flex;gap:8px;margin-top:8px}.segment button{flex:1;padding:14px;font-size:16px;background:var(--card-2);border:1px solid var(--border);border-radius:12px;color:var(--text)}.segment button.active{background:var(--green);border-color:var(--green);font-weight:600}button.primary{width:100%;margin-top:24px;padding:16px;font-size:18px;font-weight:600;background:var(--green);color:#fff;border:none;border-radius:12px;cursor:pointer}button.primary:disabled{opacity:.6}button.ghost{width:100%;margin-top:10px;padding:14px;font-size:16px;background:transparent;color:var(--muted);border:1px solid var(--border);border-radius:12px}button.link{background:none;border:none;color:var(--green-2);font-size:15px;cursor:pointer}.home{max-width:480px;margin:0 auto;padding:16px}.topbar{display:flex;justify-content:space-between;align-items:center;padding:8px 4px 16px}.brand{font-weight:600;font-size:18px}.topbar-actions{display:flex;gap:16px;align-items:center}.balance{background:linear-gradient(160deg,#14532d,#166534);border-radius:24px;padding:32px 24px;text-align:center}.balance.over{background:linear-gradient(160deg,#7f1d1d,#991b1b)}.balance-label{font-size:15px;opacity:.85}.balance-amount{font-size:56px;font-weight:700;margin:6px 0;letter-spacing:-1px}.balance-sub{font-size:14px;opacity:.85}.balance-sub .edit{margin-left:8px;color:#fff;text-decoration:underline}.big-add{font-size:20px;padding:20px;margin-top:20px}.cat-card{background:linear-gradient(160deg,#14532d,#166534);border-radius:20px;padding:20px 22px;margin-top:14px}.cat-card.over{background:linear-gradient(160deg,#7f1d1d,#991b1b)}.cat-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.cat-name{font-size:18px;font-weight:600}.cat-tag{font-size:12px;opacity:.8;text-transform:capitalize}.cat-amount{font-size:40px;font-weight:700;letter-spacing:-1px;margin:4px 0 2px}.cat-sub{font-size:13px;opacity:.85}.alloc-list{list-style:none;margin:10px 0 0;padding:0}.alloc-list li{display:flex;justify-content:space-between;padding:6px 0;font-size:16px;border-top:1px solid rgba(255,255,255,.12)}.alloc-list li:first-child{border-top:none}.alloc-list small{opacity:.7;font-size:12px}.alloc-list .neg{color:#fecaca}.chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.chip{padding:8px 14px;border-radius:999px;background:var(--card-2);border:1px solid var(--border);color:var(--text);font-size:14px}.chip.active{background:var(--green);border-color:var(--green);font-weight:600}.leaderboard{list-style:none;margin:0;padding:0}.leaderboard li{display:flex;align-items:center;gap:12px;padding:16px 14px;border-bottom:1px solid var(--border)}.leaderboard li.me{background:var(--card-2);border-radius:12px}.leaderboard .rank{font-size:22px;min-width:34px;text-align:center}.leaderboard .lb-name{flex:1;font-size:16px}.leaderboard .lb-saved{font-size:18px;font-weight:700;color:var(--green-2)}.leaderboard .lb-saved.neg{color:#fca5a5}.alloc-row{display:flex;align-items:center;gap:12px;margin-top:8px}.alloc-name{min-width:90px;font-size:15px}.list{margin-top:28px}.list h2{font-size:16px;color:var(--muted);font-weight:600;margin:0 0 8px}.list ul{list-style:none;margin:0;padding:0}.list li{display:flex;align-items:center;gap:8px;padding:14px 4px;border-bottom:1px solid var(--border)}.t-main{flex:1;display:flex;flex-direction:column}.t-note{font-size:16px}.t-date{font-size:13px;color:var(--muted)}.t-amount{font-size:16px;font-weight:600;color:#fca5a5}.del{background:none;border:none;color:var(--muted);font-size:16px;padding:8px;cursor:pointer}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;display:flex;align-items:flex-end;z-index:50}.sheet{width:100%;max-width:480px;margin:0 auto;background:var(--card);border-radius:24px 24px 0 0;padding:12px 20px calc(20px + env(safe-area-inset-bottom));animation:slideUp .2s ease-out}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.sheet-handle{width:40px;height:4px;background:var(--border);border-radius:2px;margin:0 auto 16px}.entry-amount{text-align:center;font-size:48px;font-weight:700;margin-bottom:12px}.entry-amount span{color:var(--muted);margin-right:4px}.note-input{margin-bottom:12px}.keypad{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.key{padding:18px;font-size:24px;font-weight:600;background:var(--card-2);border:1px solid var(--border);border-radius:14px;color:var(--text);cursor:pointer}.key:active{background:var(--green)}.key-del{color:var(--muted)}.sheet-actions{display:flex;gap:12px;margin-top:16px}.sheet-actions .ghost,.sheet-actions .primary{margin-top:0}
