:root{--accent:#3b82f6;--bg:#f4f6fb;--surface:#fff;--surface-2:#eef1f7;--text:#0f172a;--muted:#64748b;--border:#e2e8f0;--green:#10b981;--red:#ef4444;--amber:#f59e0b;--radius:18px;--shadow:0 1px 2px #0f172a0d, 0 8px 24px #0f172a0f;--safe-b:env(safe-area-inset-bottom,0px);--safe-t:env(safe-area-inset-top,0px);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--bg:#0b1120;--surface:#151d31;--surface-2:#1d2740;--text:#e8edf7;--muted:#8b98b3;--border:#26324d;--shadow:0 1px 2px #0000004d, 0 8px 24px #00000040;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{background:var(--bg);color:var(--text);margin:0}body{overscroll-behavior-y:none;-webkit-font-smoothing:antialiased;font:16px/1.45 -apple-system,BlinkMacSystemFont,Segoe UI,Inter,Roboto,sans-serif}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:0;padding:0}h1,h2,h3{letter-spacing:-.02em;margin:0}.muted{color:var(--muted)}.small{font-size:13px}.num{font-variant-numeric:tabular-nums}.green{color:var(--green)}.red{color:var(--red)}.shell{max-width:640px;padding:calc(var(--safe-t) + 16px) 16px calc(96px + var(--safe-b));margin:0 auto}.topbar{justify-content:space-between;align-items:center;gap:8px;margin-bottom:14px;display:flex}.topbar h1{font-size:26px}.stack{flex-direction:column;gap:12px;display:flex}.row{align-items:center;gap:10px;display:flex}.grow{flex:1;min-width:0}.between{justify-content:space-between}.wrap{flex-wrap:wrap}.card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px}.card h3{margin-bottom:10px;font-size:15px}.hero{background:linear-gradient(135deg, var(--accent), color-mix(in srgb, var(--accent) 55%, #7c3aed));color:#fff;padding:20px}.hero .label{opacity:.8;font-size:13px}.hero .big{letter-spacing:-.03em;margin:2px 0 12px;font-size:38px;font-weight:700}.hero .pair{gap:22px;display:flex}.hero .pair b{font-size:17px;display:block}.progress{background:#ffffff47;border-radius:99px;height:8px;margin-top:12px;overflow:hidden}.progress>div{background:#fff;border-radius:99px;height:100%;transition:width .4s}.progress.warn>div{background:#fde68a}.progress.over>div{background:#fecaca}.monthnav{align-items:center;gap:4px;display:flex}.iconbtn{background:var(--surface);width:38px;height:38px;box-shadow:var(--shadow);border-radius:12px;place-items:center;font-size:18px;display:grid}.iconbtn:disabled{opacity:.35}.chips{scrollbar-width:none;gap:8px;padding-bottom:4px;display:flex;overflow-x:auto}.chips::-webkit-scrollbar{display:none}.chip{background:var(--surface);box-shadow:var(--shadow);white-space:nowrap;border:1.5px solid #0000;border-radius:99px;padding:7px 13px;font-size:14px}.chip.on{border-color:var(--accent);color:var(--accent);background:color-mix(in srgb, var(--accent) 10%, var(--surface))}.list{flex-direction:column;display:flex}.item{border-bottom:1px solid var(--border);text-align:left;align-items:center;gap:12px;width:100%;padding:11px 0;display:flex}.item:last-child{border-bottom:0}.avatar{background:var(--surface-2);border-radius:13px;flex:none;place-items:center;width:42px;height:42px;font-size:21px;display:grid}.item .t{white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.item .s{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}.amount{white-space:nowrap;font-weight:700}.dayhead{color:var(--muted);justify-content:space-between;margin:14px 4px 4px;font-size:13px;font-weight:600;display:flex}.empty{text-align:center;color:var(--muted);padding:28px 8px}label.field{color:var(--muted);flex-direction:column;gap:6px;font-size:13px;font-weight:600;display:flex}input,select,textarea{background:var(--surface-2);width:100%;color:var(--text);border:1.5px solid #0000;border-radius:12px;outline:none;padding:12px 14px;font-size:16px}input:focus,select:focus,textarea:focus{border-color:var(--accent)}textarea{resize:vertical;min-height:110px}.btn{background:var(--accent);color:#fff;text-align:center;border-radius:14px;padding:13px 18px;font-weight:600}.btn.ghost{background:var(--surface-2);color:var(--text)}.btn.danger{background:color-mix(in srgb, var(--red) 14%, var(--surface));color:var(--red)}.btn.small{border-radius:11px;padding:8px 12px;font-size:14px}.btn:disabled{opacity:.5}.error{color:var(--red);font-size:14px}.seg{background:var(--surface-2);border-radius:13px;padding:3px;display:flex}.seg button{color:var(--muted);border-radius:10px;flex:1;padding:9px;font-weight:600}.seg button.on{background:var(--surface);color:var(--text);box-shadow:var(--shadow)}.pills{flex-wrap:wrap;gap:8px;display:flex}.pill{background:var(--surface-2);border:1.5px solid #0000;border-radius:12px;padding:8px 12px;font-size:14px}.pill.on{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 12%, var(--surface));color:var(--accent)}.tag{background:color-mix(in srgb, var(--accent) 14%, var(--surface));color:var(--accent);border-radius:99px;margin:0 4px 0 0;padding:2px 8px;font-size:12px;display:inline-block}.tabbar{z-index:20;background:color-mix(in srgb, var(--surface) 88%, transparent);-webkit-backdrop-filter:blur(16px);border-top:1px solid var(--border);padding-bottom:var(--safe-b);justify-content:center;display:flex;position:fixed;bottom:0;left:0;right:0}.tabbar nav{width:100%;max-width:640px;display:flex}.tabbar button{color:var(--muted);flex-direction:column;flex:1;align-items:center;gap:2px;padding:9px 0 8px;font-size:11px;font-weight:600;display:flex}.tabbar button .ic{font-size:21px;line-height:1}.tabbar button.on{color:var(--accent)}.fab{right:18px;bottom:calc(76px + var(--safe-b));z-index:21;background:var(--accent);color:#fff;width:58px;height:58px;box-shadow:0 10px 28px color-mix(in srgb, var(--accent) 45%, transparent);border-radius:20px;place-items:center;font-size:30px;display:grid;position:fixed}.backdrop{z-index:40;background:#080c188c;justify-content:center;align-items:flex-end;animation:.15s fade;display:flex;position:fixed;inset:0}.sheet{background:var(--bg);width:100%;max-width:640px;max-height:92dvh;padding:18px 16px calc(24px + var(--safe-b));border-radius:26px 26px 0 0;animation:.22s cubic-bezier(.2,.9,.3,1) up;overflow-y:auto}.sheet .grab{background:var(--border);border-radius:4px;width:40px;height:4px;margin:-6px auto 12px}.sheet h2{margin-bottom:14px;font-size:20px}@keyframes up{0%{opacity:0;transform:translateY(40px)}}@keyframes fade{0%{opacity:0}}@media (width>=700px){.backdrop{align-items:center}.sheet{border-radius:26px}}.amountinput{text-align:center;letter-spacing:-.03em;background:0 0;padding:6px;font-size:40px;font-weight:700}.toast{left:50%;bottom:calc(90px + var(--safe-b));color:#fff;z-index:60;box-shadow:var(--shadow);background:#0f172a;border-radius:14px;max-width:90vw;padding:11px 18px;font-size:14px;position:fixed;transform:translate(-50%)}.login{place-items:center;min-height:100dvh;padding:20px;display:grid}.login .card{width:100%;max-width:380px;padding:28px 22px}.logo{background:linear-gradient(135deg, var(--accent), #7c3aed);color:#fff;border-radius:20px;place-items:center;width:64px;height:64px;margin:0 auto 14px;font-size:32px;display:grid}.legend{flex-direction:column;gap:8px;margin-top:12px;display:flex}.legend .l{align-items:center;gap:10px;font-size:14px;display:flex}.dot{border-radius:4px;flex:none;width:11px;height:11px}.bars{align-items:flex-end;gap:8px;height:150px;display:flex}.bars .col{height:100%;color:var(--muted);flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:5px;font-size:11px;display:flex}.bars .bar{background:var(--accent);border-radius:8px 8px 3px 3px;width:100%;max-width:34px;min-height:3px}.bars .col.cur .bar{background:var(--accent)}.bars .col:not(.cur) .bar{opacity:.45}.switch{flex:none;width:50px;height:30px;position:relative}.switch input{opacity:0;width:0;height:0;position:absolute}.switch span{background:var(--border);border-radius:99px;transition:all .2s;position:absolute;inset:0}.switch span:after{content:"";background:#fff;border-radius:50%;width:24px;height:24px;transition:all .2s;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #0000004d}.switch input:checked+span{background:var(--accent)}.switch input:checked+span:after{transform:translate(20px)}.swatches{flex-wrap:wrap;gap:10px;display:flex}.swatch{border:3px solid var(--surface);width:34px;height:34px;box-shadow:0 0 0 2px var(--border);border-radius:50%}.swatch.on{box-shadow:0 0 0 2px var(--text)}.receipt{border-radius:14px;max-width:100%}
