:root{--bg:#f4f5f8;--card:#fff;--text:#1d2230;--muted:#8a90a2;--line:#eceef3;--chip:#f1f2f6;--accent:#0e9667;--accent-soft:#dcf4ea;--danger:#e5484d;--dash:#d3d7e0;--shadow:0 1px 2px #1418280a, 0 6px 24px #1418280d;--r:22px;--safe-t:env(safe-area-inset-top,0px);--safe-b:env(safe-area-inset-bottom,0px)}@media (prefers-color-scheme:dark){:root{--bg:#111318;--card:#1b1e25;--text:#eef0f5;--muted:#8990a0;--line:#272b34;--chip:#252932;--accent:#1db37e;--accent-soft:#163a2d;--dash:#343945;--shadow:none}}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{height:100%;margin:0}html,body,button,a,input{touch-action:manipulation}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-webkit-user-select:none;user-select:none;overscroll-behavior-y:none;font:16px/1.4 -apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI,Roboto,sans-serif}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:22px;height:22px}[hidden]{display:none!important}#app{max-width:480px;padding:calc(var(--safe-t) + 8px) 16px calc(var(--safe-b) + 24px);margin:0 auto}.screen.with-fab{padding-bottom:76px}.top{justify-content:space-between;align-items:center;gap:10px;height:52px;margin-bottom:8px;display:flex}.brand{letter-spacing:-.3px;align-items:center;gap:10px;font-size:20px;font-weight:700;display:flex}.title{text-align:center;white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-size:18px;font-weight:700;overflow:hidden}.title.left{text-align:left;padding-left:4px}.logo{background:var(--accent);color:#fff;border-radius:10px;place-items:center;width:30px;height:30px;font-size:18px;font-weight:800;line-height:1;display:inline-grid}.logo.big{border-radius:19px;width:60px;height:60px;font-size:36px}.top-actions{gap:6px;display:flex}.icon-btn{background:var(--card);width:42px;height:42px;box-shadow:var(--shadow);border-radius:14px;flex:none;place-items:center;display:grid}.icon-btn.ghost{box-shadow:none;background:0 0}.icon-btn:active{transform:scale(.94)}.card{background:var(--card);border-radius:var(--r);box-shadow:var(--shadow)}.total{margin-bottom:14px;padding:20px}.total small{color:var(--muted);text-transform:uppercase;letter-spacing:.5px;font-size:13px;font-weight:600;display:block}.total>b{letter-spacing:-1px;font-variant-numeric:tabular-nums;color:var(--accent);margin:2px 0;font-size:38px;line-height:1.15;display:block}.total.neutral>b{color:var(--text)}.total p{color:var(--muted);margin:0;font-size:14px}.total-actions{gap:8px;margin-top:16px;display:flex}.total-actions .btn{flex:1;height:44px;padding:0 10px}.total-actions svg{width:18px;height:18px}.btn{background:var(--accent);color:#fff;white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;gap:6px;height:40px;padding:0 16px;font-size:15px;font-weight:600;display:inline-flex}.btn.soft{background:var(--accent-soft);color:var(--accent)}.btn.danger{color:var(--danger);background:0 0}.btn.block{width:100%;height:50px;font-size:16px;display:flex}.btn:active{opacity:.8}.btn:disabled{opacity:.4}.sec{text-transform:uppercase;letter-spacing:.5px;color:var(--muted);margin:22px 6px 8px;font-size:13px;font-weight:600}.sec.split{justify-content:space-between;gap:12px;display:flex}.sec.split span:last-child{font-variant-numeric:tabular-nums}.list{margin-bottom:10px;overflow:hidden}.row{text-align:left;justify-content:space-between;align-items:center;gap:12px;width:100%;padding:14px 16px;display:flex}.row+.row{border-top:1px solid var(--line)}.row.link:active{background:var(--chip)}.row small{color:var(--muted);margin-top:1px;font-size:13px;display:block}.row b{font-weight:600}.row .grow{flex:1;min-width:0}.row .grow b{white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}.row.danger b{color:var(--danger)}.chev{color:var(--muted);font-size:22px}.avatar{background:var(--accent-soft);width:42px;height:42px;color:var(--accent);border-radius:50%;flex:none;place-items:center;font-size:18px;font-weight:700;display:grid}.bal,.amt{font-variant-numeric:tabular-nums;flex:none;font-weight:700}.bal.zero{color:var(--muted);font-size:14px;font-weight:500}.amt.pay{color:var(--accent)}.entry.done>*{opacity:.45}.d1 .entry{padding:9px 14px}.d1 .entry b{font-size:15px}.d1 .entry small{margin-top:0;font-size:12px}.d1 .amt{font-size:15px}.d2 .entry{padding:7px 14px}.d2 .entry .grow{align-items:baseline;gap:8px;display:flex}.d2 .entry .grow b{font-size:14px}.d2 .entry small{white-space:nowrap;flex:none;margin-top:0;font-size:12px}.d2 .amt{font-size:14px}.d1 .sec,.d2 .sec{margin-top:14px}.fold{text-align:left;justify-content:space-between;align-items:center;gap:12px;display:flex}.fold>span{align-items:center;gap:6px;min-width:0;display:flex}.fold svg{stroke-width:2.5px;flex:none;width:14px;height:14px;transition:transform .15s}.fold.open svg{transform:rotate(90deg)}.sec.fold{width:calc(100% - 12px);margin-bottom:4px;padding:4px 0}.sec.fold:not(.open){margin-top:10px}.year{margin-top:14px;overflow:hidden}.year-head{font-variant-numeric:tabular-nums;width:100%;padding:12px 14px 12px 12px;font-weight:700}.year-head b{background:var(--accent-soft);color:var(--accent);letter-spacing:.3px;border-radius:999px;padding:4px 12px;font-size:15px}.year-head small{color:var(--muted);margin-left:4px;font-size:13px;font-weight:500}.year-head svg{color:var(--muted)}.year-head:active,.ym-head:active{background:var(--chip)}.ym{border-top:1px solid var(--line)}.ym-head{width:100%;color:var(--muted);font-variant-numeric:tabular-nums;padding:10px 16px 10px 22px;font-size:14px;font-weight:600}.ym-head.open{color:var(--text)}.ym-list{padding:0 0 6px 42px}.ym-list .swipe+.swipe{border-top:0}.ym-list .entry{border-left:2px solid var(--line);padding:6px 16px 6px 12px}.ym-list .entry b{font-size:14px;font-weight:500}.ym-list .entry small{margin-top:0;font-size:12px}.ym-list .amt{font-size:14px;font-weight:600}.d2 .ym-list .entry{padding-top:4px;padding-bottom:4px}.swipe{position:relative;overflow:hidden}.swipe+.swipe{border-top:1px solid var(--line)}.swipe .row{background:var(--card);touch-action:pan-y;position:relative}.swipe-del{background:var(--danger);color:#fff;width:84px;font-size:15px;font-weight:600;position:absolute;top:0;bottom:0;right:0}.swipe-del:active{opacity:.8}.add-row{border-radius:var(--r);border:2px dashed var(--dash);width:100%;height:52px;color:var(--muted);justify-content:center;align-items:center;gap:6px;font-weight:600;display:flex}.add-row:active{background:var(--chip)}.add-row svg{width:18px;height:18px}.hint{text-align:center;color:var(--muted);margin:22px 0 0;font-size:14px;line-height:1.5}.empty{text-align:center;color:var(--muted);padding:40px 20px}.fab{z-index:10;max-width:480px;padding:20px 16px calc(var(--safe-b) + 14px);background:linear-gradient(to top, var(--bg) 62%, transparent);pointer-events:none;margin:0 auto;position:fixed;bottom:0;left:0;right:0}.fab .btn{pointer-events:auto;height:52px;box-shadow:0 6px 18px #0e966747}.backdrop{z-index:20;background:#0a0c1459;animation:.2s bd;position:fixed;inset:0}@keyframes bd{0%{opacity:0}}.sheet{left:0;right:0;bottom:var(--kb,0px);z-index:21;max-width:480px;max-height:calc(var(--vh,100vh) - max(var(--safe-t) - var(--kb,0px), 0px) - 16px);-webkit-overflow-scrolling:touch;background:var(--card);padding:8px 20px calc(max(var(--safe-b) - var(--kb,0px), 0px) + 20px);border-radius:26px 26px 0 0;margin:0 auto;animation:.26s cubic-bezier(.2,.9,.3,1) up;position:fixed;overflow-y:auto}@keyframes up{0%{transform:translateY(100%)}}.grab{background:var(--line);border-radius:3px;width:40px;height:5px;margin:0 auto 14px}.sheet h2{letter-spacing:-.3px;margin:0;font-size:22px}.sheet .sub{color:var(--muted);margin:2px 0 14px;font-size:14px}.sheet h4{text-transform:uppercase;letter-spacing:.5px;color:var(--muted);margin:14px 0 8px;font-size:13px}.actions{gap:8px;margin-top:14px;display:grid}input{font:inherit;color:var(--text);-webkit-user-select:text;user-select:text}.field{background:var(--chip);appearance:none;text-align:left;border:0;border-radius:16px;width:100%;height:50px;padding:0 14px;font-size:16px;display:block}.field:focus{outline:2px solid var(--accent-soft)}.field[type=date]{align-items:center;min-width:0;line-height:50px;display:flex}.field::-webkit-date-and-time-value{text-align:left;height:50px;min-height:0;margin:0;padding:0;line-height:50px}.amount{background:var(--chip);border:2px solid #0000;border-radius:18px;justify-content:flex-end;align-items:baseline;gap:8px;margin-top:12px;padding:8px 16px;display:flex}.amount.bad{border-color:var(--danger);animation:.35s shake}.amount b{text-align:right;letter-spacing:-1px;font-variant-numeric:tabular-nums;white-space:nowrap;flex:1;min-width:0;font-size:38px;font-weight:700;line-height:1.25;overflow:hidden}.amount.empty b{color:var(--muted);opacity:.5}.amount span{color:var(--muted);font-size:26px;font-weight:700}.amount.pay:not(.empty) b{color:var(--accent)}.fields{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:10px;display:grid}.fields label{min-width:0;display:block}.numpad{grid-template-columns:repeat(3,1fr);gap:6px;margin-top:14px;display:grid}.numpad button{background:var(--chip);font-variant-numeric:tabular-nums;border-radius:14px;place-items:center;height:48px;font-size:22px;font-weight:500;display:grid}.numpad button:active{background:var(--accent-soft);color:var(--accent)}.row.col{flex-direction:column;align-items:stretch}.seg{background:var(--chip);border-radius:12px;gap:4px;padding:3px;display:flex}.seg button{height:36px;color:var(--muted);border-radius:9px;flex:1;font-size:14px;font-weight:600}.seg button.on{background:var(--card);color:var(--text);box-shadow:0 1px 3px #1418281f}.preview{box-shadow:none;border:1px solid var(--line);border-radius:14px;margin:0}.about{color:var(--muted);padding:10px 8px;font-size:13px;line-height:1.5}.lock,.desktop{z-index:50;background:var(--bg);text-align:center;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.lock-inner{width:100%;max-width:300px}.lock p{margin:18px 0 16px;font-size:18px;font-weight:600}.pin-dots{justify-content:center;gap:16px;margin-bottom:28px;display:flex}.pin-dots i{border:2px solid var(--muted);border-radius:50%;width:14px;height:14px}.pin-dots i.on{background:var(--accent);border-color:var(--accent)}.pin-dots.shake{animation:.35s shake}@keyframes shake{20%,60%{transform:translate(-10px)}40%,80%{transform:translate(10px)}}.keypad{grid-template-columns:repeat(3,1fr);justify-items:center;gap:14px;display:grid}.keypad button{background:var(--card);width:72px;height:72px;box-shadow:var(--shadow);border-radius:50%;font-size:26px;font-weight:500}.keypad button:active{background:var(--accent-soft)}.keypad button.blank{visibility:hidden}.keypad button.del{box-shadow:none;background:0 0;font-size:16px}.text-btn{color:var(--muted);margin-top:22px;font-size:14px;text-decoration:underline}.text-btn.clear{margin:18px auto 0;padding:8px 12px;display:block}.desktop h1{margin:20px 0 8px;font-size:22px}.desktop p{color:var(--muted);margin:0 0 14px}.toast{left:50%;bottom:calc(var(--safe-b) + 84px);z-index:60;background:var(--text);color:var(--bg);white-space:nowrap;border-radius:999px;padding:10px 18px;font-size:14px;font-weight:500;animation:.2s bd;position:fixed;transform:translate(-50%)}.gate>div{width:100%;max-width:340px}.gate-icon{border-radius:20px;margin:0 auto;display:block;box-shadow:0 8px 24px #14182826}.gate h1{margin-top:18px}.gate .lead{color:var(--text);margin:0 0 20px;font-size:16px;line-height:1.5}.gate .btn.block{height:52px}.steps{text-align:left;background:var(--card);box-shadow:var(--shadow);border-radius:18px;margin:0 0 8px;padding:0;list-style:none}.steps li{align-items:center;gap:12px;padding:14px 16px;font-size:15px;line-height:1.4;display:flex}.steps li+li{border-top:1px solid var(--line)}.steps .num{background:var(--accent-soft);width:26px;height:26px;color:var(--accent);border-radius:50%;flex:none;place-items:center;font-size:14px;font-weight:700;display:grid}.steps svg{vertical-align:-3px;width:17px;height:17px;color:var(--accent)}.gate-note{font-size:13px;margin-top:18px!important}
