:root{--bg:#f2f2f7;--surface:#fff;--surface-2:#f2f2f7;--fill:#7676801f;--separator:#3c3c432e;--label:#000;--label-2:#3c3c4399;--label-3:#3c3c434d;--accent:#5856d6;--accent-soft:#5856d61f;--red:#ff3b30;--orange:#ff9500;--blue:#007aff;--font:-apple-system, BlinkMacSystemFont, "SF Pro Text", "SF Pro Display", "Inter", "Helvetica Neue", system-ui, sans-serif;--font-round:ui-rounded, "SF Pro Rounded", -apple-system, BlinkMacSystemFont, system-ui, sans-serif;--radius:12px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#000;--surface:#1c1c1e;--surface-2:#2c2c2e;--fill:#7676803d;--separator:#54545899;--label:#fff;--label-2:#ebebf599;--label-3:#ebebf54d;--accent:#5e5ce6;--accent-soft:#5e5ce638;--red:#ff453a;--orange:#ff9f0a;--blue:#0a84ff;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#000;--surface:#1c1c1e;--surface-2:#2c2c2e;--fill:#7676803d;--separator:#54545899;--label:#fff;--label-2:#ebebf599;--label-3:#ebebf54d;--accent:#5e5ce6;--accent-soft:#5e5ce638;--red:#ff453a;--orange:#ff9f0a;--blue:#0a84ff;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0}body{background:var(--bg);color:var(--label);font-family:var(--font);-webkit-font-smoothing:antialiased;font-size:15px;line-height:1.4}button,input,select,textarea{font:inherit;color:inherit}.num{font-variant-numeric:tabular-nums}:focus-visible{outline:3px solid var(--accent-soft);outline-offset:1px}[hidden]{display:none!important}.shell{grid-template-columns:240px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{background:var(--surface);border-right:.5px solid var(--separator);flex-direction:column;gap:4px;height:100vh;padding:24px 12px;display:flex;position:sticky;top:0}.brand{font-family:var(--font-round);letter-spacing:-.02em;padding:0 12px 16px;font-size:26px;font-weight:800}.brand span{color:var(--accent)}.nav-item{text-align:left;cursor:pointer;background:0 0;border:0;border-radius:10px;align-items:center;gap:10px;padding:9px 12px;font-size:15px;font-weight:500;display:flex}.nav-item:hover{background:var(--fill)}.nav-item.active{background:var(--accent);color:#fff}.nav-item .badge{background:var(--red);color:#fff;border-radius:999px;margin-left:auto;padding:0 7px;font-size:12px;font-weight:600;line-height:20px}.nav-item.active .badge{color:var(--accent);background:#fff}.nav-spacer{flex:1}.main{min-width:0;padding:28px max(20px, env(safe-area-inset-right,0px)) 80px max(20px, env(safe-area-inset-left,0px));width:100%;max-width:1180px}.tabbar{display:none}@media (max-width:820px){.shell{grid-template-columns:1fr}.sidebar{display:none}.main{padding:16px max(16px, env(safe-area-inset-right,0px)) calc(96px + env(safe-area-inset-bottom,0px)) max(16px, env(safe-area-inset-left,0px))}.tabbar{z-index:20;padding:6px max(8px, env(safe-area-inset-left,0px)) calc(6px + env(safe-area-inset-bottom,0px));background:color-mix(in srgb, var(--surface) 85%, transparent);-webkit-backdrop-filter:saturate(180%)blur(20px);border-top:.5px solid var(--separator);grid-template-columns:repeat(4,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.tab{color:var(--label-2);cursor:pointer;background:0 0;border:0;flex-direction:column;align-items:center;gap:2px;padding:4px 0;font-size:10.5px;font-weight:500;display:flex;position:relative}.tab svg{width:24px;height:24px}.tab.active{color:var(--accent)}.tab .dot{background:var(--red);border-radius:50%;width:8px;height:8px;position:absolute;top:2px;left:calc(50% + 8px)}}.large-title{letter-spacing:.01em;margin:0;font-size:34px;font-weight:700;line-height:1.15}.title-row{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:18px;display:flex}.subtitle{color:var(--label-2);margin:4px 0 0;font-size:15px}.section-title{text-transform:uppercase;color:var(--label-2);letter-spacing:.02em;margin:24px 16px 6px;font-size:13px;font-weight:400}.section-foot{color:var(--label-2);margin:6px 16px 0;font-size:13px}h2{margin:0;font-size:20px;font-weight:700}.group{background:var(--surface);border-radius:var(--radius);overflow:hidden}.row{text-align:left;background:0 0;border:0;align-items:center;gap:12px;width:100%;min-height:44px;padding:11px 16px;display:flex;position:relative}.row+.row:before{content:"";background:var(--separator);height:.5px;position:absolute;top:0;left:56px;right:0}.group.plain .row+.row:before{left:16px}button.row{cursor:pointer}button.row:hover{background:var(--fill)}.row .grow{flex:1;min-width:0}.row .title{text-overflow:ellipsis;white-space:nowrap;font-size:16px;overflow:hidden}.row .meta{color:var(--label-2);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.row .value{font-variant-numeric:tabular-nums;white-space:nowrap;font-size:16px}.value.in{color:var(--accent)}.value.muted{color:var(--label-3);text-decoration:line-through}.chev{color:var(--label-3);font-size:18px}.icon{color:#fff;border-radius:8px;flex:none;place-items:center;width:30px;height:30px;font-size:15px;display:grid}.icon svg{width:17px;height:17px}.tag{background:var(--fill);color:var(--label-2);vertical-align:1px;border-radius:999px;margin-left:6px;padding:1px 7px;font-size:11px;font-weight:600;display:inline-block}.tag.warn{color:var(--orange);background:#ff950029}.tag.red{color:var(--red);background:#ff3b3024}.tag.accent{background:var(--accent-soft);color:var(--accent)}.segmented{background:var(--fill);border-radius:9px;gap:2px;padding:2px;display:inline-flex}.segmented button{cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:7px;padding:6px 14px;font-size:13px;font-weight:500}.segmented button.on{background:var(--surface);font-weight:600;box-shadow:0 3px 8px #0000001f,0 3px 1px #0000000a}.stepper{align-items:center;gap:4px;display:inline-flex}.circle-btn{background:var(--fill);cursor:pointer;width:32px;height:32px;color:var(--accent);border:0;border-radius:50%;place-items:center;font-size:17px;display:grid}.btn{cursor:pointer;background:var(--accent);color:#fff;border:0;border-radius:12px;padding:12px 18px;font-size:16px;font-weight:600}.btn:disabled{opacity:.45;cursor:default}.btn.secondary{background:var(--accent-soft);color:var(--accent)}.btn.plain{color:var(--accent);background:0 0;padding:8px 6px}.btn.danger{color:var(--red);background:0 0}.btn.small{border-radius:9px;padding:7px 12px;font-size:14px}.field{flex-direction:column;gap:4px;display:flex}.field label,.field .lbl{color:var(--label-2);font-size:13px}.input,select.input,textarea.input{background:var(--fill);border:0;border-radius:10px;width:100%;min-height:40px;padding:10px 12px;font-size:16px}.input:focus{outline:2px solid var(--accent);outline-offset:0}.form-grid{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;display:grid}.cards{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:16px;display:grid}@media (max-width:980px){.cards{grid-template-columns:1fr}}.card{background:var(--surface);border-radius:16px;flex-direction:column;gap:14px;min-width:0;padding:18px;display:flex}.hero-amount{font-family:var(--font-round);letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:44px;font-weight:700;line-height:1}.hero-amount.neg{color:var(--red)}.kv{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}@media (max-width:520px){.kv{grid-template-columns:repeat(2,minmax(0,1fr))}}.kv div{background:var(--surface-2);border-radius:10px;min-width:0;padding:10px 12px}.kv b{font-variant-numeric:tabular-nums;white-space:nowrap;text-overflow:ellipsis;font-size:17px;display:block;overflow:hidden}.kv span{color:var(--label-2);font-size:12px}.today{align-items:center;gap:16px;display:flex}.today .txt{min-width:0}.today .big{font-family:var(--font-round);font-variant-numeric:tabular-nums;font-size:30px;font-weight:700}.meter{background:var(--fill);border-radius:999px;height:10px;overflow:hidden}.meter span{border-radius:999px;height:100%;display:block}.bar-chart{width:100%;height:auto;display:block}.bar-chart text{fill:var(--label-2);font-size:11px;font-family:var(--font)}.bar-chart .grid{stroke:var(--separator);stroke-width:.5px}.bar-chart .marker{stroke:var(--orange);stroke-width:1.5px;stroke-dasharray:4 4}.legend{color:var(--label-2);flex-wrap:wrap;gap:14px;font-size:12px;display:flex}.legend i{vertical-align:-1px;border-radius:3px;width:10px;height:10px;margin-right:5px;display:inline-block}.filters{flex-wrap:wrap;align-items:flex-end;gap:10px;margin-bottom:16px;display:flex}.filters .field{flex:140px;min-width:0}.totals{flex-wrap:wrap;gap:10px;margin-bottom:16px;display:flex}.totals div{background:var(--surface);border-radius:12px;flex:150px;padding:10px 14px}.totals b{font-variant-numeric:tabular-nums;font-size:18px;display:block}.totals span{color:var(--label-2);font-size:12px}.day-head{color:var(--label-2);padding:14px 16px 6px;font-size:13px;font-weight:500}.flow-bars{flex-direction:column;gap:8px;display:flex}.flow-bar{grid-template-columns:150px minmax(0,1fr) 90px;align-items:center;gap:10px;font-size:13px;display:grid}.flow-bar .track{background:var(--fill);border-radius:6px;height:12px;overflow:hidden}.flow-bar .track span{border-radius:6px;height:100%;display:block}@media (max-width:520px){.flow-bar{grid-template-columns:100px minmax(0,1fr) 76px}}.sheet-backdrop{z-index:40;background:#0006;justify-content:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--bg);width:min(480px,100%);height:100%;padding:0 0 40px;overflow-y:auto;box-shadow:-10px 0 30px #00000026}@media (max-width:820px){.sheet-backdrop{align-items:flex-end}.sheet{border-radius:14px 14px 0 0;height:92%}}.sheet-head{background:color-mix(in srgb, var(--bg) 88%, transparent);-webkit-backdrop-filter:blur(20px);z-index:2;justify-content:space-between;align-items:center;gap:8px;padding:12px;display:flex;position:sticky;top:0}.sheet-head b{font-size:17px}.sheet-body{flex-direction:column;gap:6px;padding:4px 16px;display:flex}.form-group{background:var(--surface);border-radius:var(--radius);padding:4px 16px}.form-row{align-items:center;gap:12px;min-height:46px;display:flex;position:relative}.form-row+.form-row:before{content:"";background:var(--separator);height:.5px;position:absolute;top:0;left:0;right:-16px}.form-row>label{flex:0 0 130px;font-size:16px}.form-row .input{text-align:right;background:0 0;min-height:0;padding:8px 0}.form-row select.input{text-align-last:right}.form-row textarea.input{text-align:left}.toast{left:50%;bottom:calc(100px + env(safe-area-inset-bottom,0px));z-index:60;background:var(--label);color:var(--bg);border-radius:999px;padding:10px 18px;font-size:14px;font-weight:500;position:fixed;transform:translate(-50%)}.empty{text-align:center;color:var(--label-2);padding:28px 16px}.banner{color:var(--label);background:#ff950024;border-radius:12px;margin-bottom:16px;padding:12px 14px;font-size:14px}.auth{place-items:center;min-height:100vh;padding:24px;display:grid}.auth-box{text-align:center;flex-direction:column;gap:14px;width:min(380px,100%);display:flex}.auth-box .brand{padding:0;font-size:40px}.auth-box .form-group{text-align:left}.sankey-wrap{-webkit-overflow-scrolling:touch;overflow-x:auto}.sankey{display:block}.sankey .sk-name,.sankey .sk-value{paint-order:stroke;stroke:var(--surface);stroke-width:4px;stroke-linejoin:round}.sankey .sk-name{fill:var(--label);font-size:12px;font-weight:600}.sankey .sk-value{fill:var(--label-2);font-variant-numeric:tabular-nums;font-size:11px}@media (prefers-reduced-motion:no-preference){.mascot{transition:transform .3s}.mascot-panique{animation:.6s ease-in-out 2 shake}.meter span,.flow-bar .track span{transition:width .4s}}@keyframes shake{0%,to{transform:rotate(0)}25%{transform:rotate(-6deg)}75%{transform:rotate(6deg)}}
