:root{--bg:#f4f5f7;--surface:#fff;--surface-2:#f8f9fb;--text:#101319;--muted:#667085;--line:#e3e6ea;--accent:#2f5bd7;--accent-soft:#e8eefc;--on-accent:#fff;--pos:#0b8457;--neg:#cf2b2b;--warn-bg:#fff6e5;--warn-line:#ffd58a;--warn-text:#7a4f00;--radius:14px;--shadow:0 1px 2px #1013190f, 0 1px 3px #1013190a;--tap:44px}@media (prefers-color-scheme:dark){:root{--bg:#0f1115;--surface:#181b21;--surface-2:#1f232a;--text:#f2f4f7;--muted:#98a2b3;--line:#2a2f38;--accent:#6b91ff;--accent-soft:#1d2740;--on-accent:#0f1115;--pos:#3ddc97;--neg:#ff7070;--warn-bg:#2e2413;--warn-line:#5c4416;--warn-text:#f5c86b;--shadow:none}}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);-webkit-text-size-adjust:100%;overscroll-behavior-y:none;font:16px/1.45 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.num{font-variant-numeric:tabular-nums;white-space:nowrap}.pos{color:var(--pos)}.neg{color:var(--neg)}.muted{color:var(--muted)}.app{background:var(--bg);flex-direction:column;max-width:560px;height:100%;margin:0 auto;display:flex}.topbar{padding:max(8px, env(safe-area-inset-top)) 12px 8px;background:var(--surface);border-bottom:1px solid var(--line);z-index:10;align-items:center;gap:8px;display:flex;position:sticky;top:0}.topbar h1{letter-spacing:-.01em;flex:1;margin:0;font-size:18px;font-weight:650}.topbar .sub{color:var(--muted);font-size:12px;font-weight:400;display:block}.screen{-webkit-overflow-scrolling:touch;flex:1;padding:12px 12px 24px;overflow-y:auto}.tabbar{border-top:1px solid var(--line);background:var(--surface);padding-bottom:env(safe-area-inset-bottom);display:flex}.tabbar a{min-height:var(--tap);color:var(--muted);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;padding:6px 0;font-size:12px;text-decoration:none;display:flex}.tabbar a.on{color:var(--accent);font-weight:600}.tabbar .glyph{font-size:19px;line-height:1}.badge{background:var(--neg);color:#fff;text-align:center;border-radius:9px;min-width:17px;height:17px;padding:0 5px;font-size:11px;font-weight:700;line-height:17px;position:absolute;transform:translate(14px,-10px)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:10px;padding:14px}.card.tappable{cursor:pointer;text-align:left;width:100%;font:inherit;color:inherit}.card.tappable:active{background:var(--surface-2)}.card-head{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.card-title{font-weight:620}.section-title{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:18px 4px 8px;font-size:13px;font-weight:600}.section-title:first-child{margin-top:4px}.banner{background:var(--warn-bg);border:1px solid var(--warn-line);color:var(--warn-text);border-radius:var(--radius);margin-bottom:10px;padding:12px 14px}.banner .big{letter-spacing:-.02em;font-size:22px;font-weight:700}.empty{text-align:center;color:var(--muted);padding:48px 24px}.empty .glyph{margin-bottom:12px;font-size:40px;display:block}.row{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:10px 0;display:flex}.row:last-child{border-bottom:none}.row .grow{flex:1;min-width:0}.row .name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.hint{color:var(--muted);margin:6px 2px;font-size:13px}.progress{background:var(--line);border-radius:3px;height:6px;margin:10px 0 6px;overflow:hidden}.progress>i{background:var(--accent);height:100%;transition:width .2s;display:block}.progress.over>i{background:var(--neg)}.btn{min-height:var(--tap);border:1px solid var(--line);background:var(--surface);color:var(--text);font:inherit;cursor:pointer;border-radius:11px;padding:10px 16px;font-weight:550}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.45;cursor:default;transform:none}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.btn.danger{color:var(--neg)}.btn.block{width:100%;display:block}.btn.small{min-height:36px;padding:6px 12px;font-size:14px}.btn.link{color:var(--accent);background:0 0;border:none;min-height:36px;padding:8px 4px}.btn-row{flex-wrap:wrap;gap:8px;display:flex}.btn-row .btn{flex:1;min-width:130px}.fab{box-shadow:0 0 0 10px var(--bg);margin-top:18px;position:sticky;bottom:10px}label.field{margin-bottom:14px;display:block}label.field>span{color:var(--muted);margin-bottom:5px;font-size:13px;font-weight:600;display:block}input[type=text],input[type=tel],input[type=number],textarea,select{width:100%;min-height:var(--tap);border:1px solid var(--line);background:var(--surface);color:var(--text);border-radius:11px;padding:10px 12px;font:16px/1.4 inherit}input:focus,textarea:focus,select:focus{outline:2px solid var(--accent);outline-offset:-1px}textarea{resize:vertical;min-height:72px}input.amount{font-variant-numeric:tabular-nums;min-height:56px;font-size:26px;font-weight:650}input.share{text-align:right;font-variant-numeric:tabular-nums;max-width:120px}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{border:1px solid var(--line);background:var(--surface);min-height:38px;color:var(--text);font:inherit;cursor:pointer;border-radius:19px;padding:7px 13px;font-size:15px}.chip.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent);font-weight:600}.chip.ghost{border-style:dashed}.seg{border:1px solid var(--line);background:var(--surface);border-radius:11px;display:flex;overflow:hidden}.seg button{min-height:var(--tap);border:none;border-right:1px solid var(--line);color:var(--text);font:inherit;cursor:pointer;background:0 0;flex:1;padding:8px 6px;font-size:14px}.seg button:last-child{border-right:none}.seg button.on{background:var(--accent);color:var(--on-accent);font-weight:600}.tag{background:var(--surface-2);border:1px solid var(--line);color:var(--muted);white-space:nowrap;border-radius:10px;padding:2px 8px;font-size:12px;display:inline-block}.tag.warn{background:var(--warn-bg);border-color:var(--warn-line);color:var(--warn-text)}.day-head{color:var(--muted);margin:20px 4px 8px;font-size:13px;font-weight:600}.copybox{align-items:center;gap:8px;display:flex}.copybox code{text-overflow:ellipsis;white-space:nowrap;background:var(--surface-2);border:1px solid var(--line);border-radius:9px;flex:1;padding:10px 12px;font-size:13px;overflow:hidden}
