:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#090c13;--panel:#ffffff0e;--panel-2:#ffffff14;--line:#ffffff1a;--text:#eef1f7;--muted:#98a2b6;--accent:#a9b6ff;--accent-ink:#0d1233;--pos:#6fe3a5;--neg:#ff9080;--r:22px}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{min-height:100%}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;overscroll-behavior-y:none;margin:0;font:16px/1.4 -apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI,Roboto,sans-serif}body:before{content:"";z-index:-1;background:radial-gradient(60% 45% at 10% 0,#5c54f057,#0000 70%),radial-gradient(50% 40% at 100% 18%,#12a09642,#0000 70%),radial-gradient(70% 50% at 50% 115%,#7d46c83d,#0000 70%);position:fixed;inset:0}[hidden]{display:none!important}h1,h2,p{margin:0}h1{letter-spacing:-.02em;font-size:30px;font-weight:700}h2{font-size:17px;font-weight:650}button,input,select{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:0;padding:0}button:disabled{opacity:.4;cursor:default}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.muted{color:var(--muted)}.small{font-size:13px}.cap:first-letter{text-transform:uppercase}.cap{display:inline-block}.pos{color:var(--pos)}.neg{color:var(--neg)}.app{min-height:100dvh;display:flex}.side{display:none}.main{width:100%;min-width:0;max-width:1120px;padding:calc(env(safe-area-inset-top) + 20px) 16px calc(env(safe-area-inset-bottom) + 108px);flex:1;margin:0 auto}.page-head{justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:18px;display:flex}.grid{gap:14px;display:grid}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);-webkit-backdrop-filter:blur(26px)saturate(1.3);min-width:0;padding:18px}.main>.card{margin-bottom:14px}.card-head{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px;display:flex}.hero{background:linear-gradient(140deg,#a9b6ff29,#ffffff0a 60%)}.big{letter-spacing:-.03em;font-variant-numeric:tabular-nums;margin:2px 0 14px;font-size:38px;font-weight:700}.of{letter-spacing:0;font-size:18px;font-weight:500}.stats{border-top:1px solid var(--line);grid-template-columns:repeat(3,1fr);gap:8px;padding-top:14px;display:grid}.stat{font-variant-numeric:tabular-nums;font-size:18px;font-weight:650}.note{color:var(--muted);margin-top:12px;font-size:14px}.note b{color:var(--text)}.empty h2{margin-bottom:6px}.empty .btn-row{margin-top:14px}.btn{white-space:nowrap;background:var(--panel-2);border:1px solid var(--line);border-radius:14px;justify-content:center;align-items:center;gap:8px;min-height:44px;padding:0 18px;font-weight:600;display:inline-flex}.btn.primary{background:var(--accent);color:var(--accent-ink);border-color:#0000}.btn.ghost{background:0 0}.btn.danger{color:var(--neg)}.btn.grow,.grow{flex:1}.small-btn{border-radius:12px;min-height:36px;padding:0 12px;font-size:13px}.btn-row{flex-wrap:wrap;gap:10px;display:flex}.link{color:var(--accent);min-height:32px;font-size:14px;font-weight:600}.icon-btn{background:var(--panel-2);width:40px;height:40px;color:var(--muted);border-radius:12px;flex:none;place-items:center;display:grid}.chart{width:100%;height:150px;display:block}.chart path{fill:none;vector-effect:non-scaling-stroke}.chart path[fill^=url]{fill:url(#fill)}.chart-cur{stroke:var(--accent);stroke-width:2.5px;stroke-linejoin:round}.chart-prev{stroke:var(--muted);stroke-width:1.5px;stroke-dasharray:4 5;opacity:.7}.legend{color:var(--muted);gap:16px;margin-top:10px;font-size:13px;display:flex}.dot{vertical-align:middle;border-top:2.5px solid var(--accent);width:14px;height:0;margin-right:4px;display:inline-block}.dot.prev{border-top:2px dashed var(--muted)}.list{flex-direction:column;display:flex}.row{text-align:left;border-top:1px solid #ffffff0f;align-items:center;gap:12px;width:100%;padding:10px 0;display:flex}.row:first-child{border-top:0}.row.static{cursor:default}.bubble{border-radius:14px;flex:none;place-items:center;width:42px;height:42px;font-size:20px;display:grid}.row-main{flex-direction:column;flex:1;min-width:0;display:flex}.row-title{white-space:nowrap;text-overflow:ellipsis;font-weight:550;overflow:hidden}.amount{font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:600}.datebox{background:var(--panel-2);border-radius:14px;flex-direction:column;flex:none;justify-content:center;align-items:center;width:42px;height:42px;line-height:1.05;display:flex}.datebox b{font-size:16px}.datebox span{color:var(--muted);font-size:10px}.cat-list{flex-direction:column;gap:14px;display:flex}.cat-line{font-variant-numeric:tabular-nums;justify-content:space-between;align-items:center;gap:10px;margin-bottom:7px;display:flex}.cat-right{align-items:center;gap:6px;display:flex}.progress{background:#ffffff14;border-radius:99px;height:7px;overflow:hidden}.progress-fill{border-radius:99px;height:100%;transition:width .3s}input,select{border:1px solid var(--line);background:#00000040;border-radius:14px;width:100%;min-width:0;min-height:44px;padding:0 14px;font-size:16px}input::placeholder{color:#6f7a90}.search{margin-bottom:14px}.limit{align-items:center;gap:4px;display:flex}.limit input{text-align:right;border-radius:10px;width:76px;min-height:34px;padding:0 8px}.inline-form{gap:10px;display:flex}.field{border:1px solid var(--line);background:#00000040;border-radius:14px;align-items:center;gap:8px;padding-right:14px;display:flex}.field input{background:0 0;border:0;font-weight:600}.bill-form{grid-template-columns:1fr 1fr;gap:8px;margin-top:14px;display:grid}.bill-form>:first-child,.bill-form>:last-child{grid-column:1/-1}.btn-row.top{margin-top:12px}.stack{flex-direction:column;gap:12px;display:flex}.copy{flex-direction:column;gap:4px;display:flex}.copy input{text-overflow:ellipsis;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:14px}.steps summary{cursor:pointer;color:var(--accent);min-height:32px;font-weight:600}.steps ol{flex-direction:column;gap:8px;margin:10px 0;padding-left:22px;font-size:15px;display:flex}.steps code{background:#ffffff1a;border-radius:6px;padding:1px 6px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px}.splash,.login{min-height:100dvh;color:var(--muted);place-items:center;padding:24px 16px;display:grid}.login .card{width:100%;max-width:400px;color:var(--text)}.login form{flex-direction:column;gap:12px;margin-top:16px;display:flex}.login .brand{align-items:center;gap:10px;font-size:22px;font-weight:700;display:flex}.login .logo{background:var(--accent);width:38px;height:38px;color:var(--accent-ink);border-radius:12px;place-items:center;font-size:15px;font-weight:800;display:grid}.month-nav{justify-content:space-between;align-items:center;margin-bottom:14px;font-weight:600;display:flex}.pair{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px;display:grid}.mini{background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:12px 14px}.day{padding:12px 18px 6px}.day-head{justify-content:space-between;align-items:baseline;margin-bottom:2px;font-size:14px;font-weight:600;display:flex}.tabbar{left:12px;right:12px;bottom:calc(env(safe-area-inset-bottom) + 10px);z-index:20;border:1px solid var(--line);-webkit-backdrop-filter:blur(26px)saturate(1.4);background:#121622bd;border-radius:28px;grid-template-columns:repeat(5,1fr);align-items:center;padding:8px 6px;display:grid;position:fixed}.tabbar button{min-height:46px;color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:3px;font-size:11px;font-weight:600;display:flex}.tabbar button.on{color:var(--text)}.tabbar .fab{background:var(--accent);width:54px;height:54px;min-height:0;color:var(--accent-ink);border-radius:50%;margin:0 auto;box-shadow:0 8px 24px #7887ff66}.overlay{z-index:40;background:#04060c99;justify-content:center;align-items:flex-end;animation:.15s fade;display:flex;position:fixed;inset:0}.sheet{border:1px solid var(--line);width:100%;max-width:520px;max-height:92dvh;padding:18px 18px calc(env(safe-area-inset-bottom) + 18px);background:#141926;border-radius:28px 28px 0 0;flex-direction:column;gap:14px;animation:.22s rise;display:flex;overflow-y:auto}.sheet-head{justify-content:space-between;align-items:center;display:flex}.segment{background:#0000004d;border-radius:14px;grid-template-columns:1fr 1fr;padding:4px;display:grid}.segment button{min-height:38px;color:var(--muted);border-radius:11px;font-weight:600}.segment button.on{background:var(--panel-2);color:var(--text)}.amount-field{justify-content:center;align-items:baseline;gap:8px;padding:6px 0;display:flex}.amount-field input{text-align:right;letter-spacing:-.02em;background:0 0;border:0;width:62%;min-height:60px;padding:0;font-size:44px;font-weight:700}.amount-field input:focus{outline:none}.amount-field span{color:var(--muted);font-size:24px;font-weight:600}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{border:1px solid var(--line);background:var(--panel);border-radius:12px;min-height:38px;padding:0 12px;font-size:14px;font-weight:550}.fields{grid-template-columns:1.4fr 1fr;gap:10px;display:grid}.fields label{flex-direction:column;gap:4px;min-width:0;display:flex}.address{flex-direction:column;gap:4px;display:flex}.address .link{align-self:flex-start;align-items:center;text-decoration:none;display:inline-flex}.sheet-actions{gap:10px;display:flex}@keyframes fade{0%{opacity:0}}@keyframes rise{0%{opacity:0;transform:translateY(30px)}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}@media (width>=900px){.tabbar{display:none}.side{border-right:1px solid var(--line);background:#ffffff06;flex-direction:column;flex:none;gap:22px;width:236px;height:100vh;padding:28px 18px;display:flex;position:sticky;top:0}.brand{align-items:center;gap:10px;padding:0 8px;font-size:19px;font-weight:700;display:flex}.logo{background:var(--accent);width:34px;height:34px;color:var(--accent-ink);border-radius:11px;place-items:center;font-size:14px;font-weight:800;display:grid}.side nav{flex-direction:column;flex:1;gap:4px;display:flex}.side nav button{min-height:44px;color:var(--muted);text-align:left;border-radius:13px;align-items:center;gap:12px;padding:0 12px;font-weight:600;display:flex}.side nav button.on{background:var(--panel-2);color:var(--text)}.main{padding:36px 36px 56px}.grid{grid-template-columns:1fr 1fr;gap:18px}.grid .wide{grid-column:1/-1}.overlay{align-items:center}.sheet{border-radius:28px;padding-bottom:18px}.big{font-size:44px}}
