:root{--bg:#0a0f1c;--surface:#121a2b;--surface-2:#1a2438;--border:#243047;--text:#e8eef8;--dim:#8494ae;--accent:#5b8dff;--accent-ink:#fff;--danger:#f2607a;--ok:#34d399;--warn:#f59e0b;--r:14px;--r-sm:10px}@media (prefers-color-scheme:light){:root{--bg:#f4f6fa;--surface:#fff;--surface-2:#eef1f7;--border:#e0e5ee;--text:#0f172a;--dim:#64748b;--accent:#2563eb}}*{box-sizing:border-box}html,body{margin:0}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:15px;line-height:1.4}.i{flex:none;width:20px;height:20px}.dim{color:var(--dim)}.error{color:var(--danger);margin:0;font-size:.82rem}.hint{color:var(--dim);margin:0;font-size:.8rem}.boot{text-align:center;color:var(--dim);padding:4rem 1rem}.banner{text-align:center;background:color-mix(in srgb, var(--danger) 16%, transparent);color:var(--danger);padding:.6rem 1rem;font-size:.82rem}.app{max-width:560px;padding-bottom:calc(4.6rem + env(safe-area-inset-bottom));margin:0 auto}.topbar{z-index:20;padding:.55rem .9rem;padding-top:calc(.55rem + env(safe-area-inset-top));background:var(--bg);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:.5rem;display:flex;position:sticky;top:0}.topbar h1{letter-spacing:-.01em;margin:0;font-size:1.05rem;font-weight:650}.topbar-tools{align-items:center;gap:.15rem;display:flex}.content{gap:.7rem;padding:.75rem .9rem 0;display:grid}button{font:inherit;cursor:pointer;color:var(--text);background:0 0;border:none;padding:0}button:disabled{opacity:.55;cursor:default}.icon-btn{width:2.2rem;height:2.2rem;color:var(--dim);border-radius:999px;place-items:center;display:grid}.icon-btn:active{background:var(--surface-2)}.text-btn{color:var(--dim);padding:.35rem .4rem;font-size:.82rem}.primary{background:var(--accent);color:var(--accent-ink);border-radius:var(--r-sm);min-height:2.85rem;padding:0 1.1rem;font-weight:600}.primary.block{width:100%}.hero{border-radius:var(--r);background:linear-gradient(150deg, var(--accent), color-mix(in srgb, var(--accent) 40%, #7c3aed));color:#fff;gap:.3rem;padding:.95rem 1rem 1rem;display:grid}.hero--over{background:linear-gradient(150deg, var(--danger), #b3123f)}.hero--commit{background:linear-gradient(150deg,#f59e0b,#c2410c)}.hero--empty{background:var(--surface);border:1px solid var(--border);color:var(--dim);text-align:center;padding:1.5rem}.hero-label{text-transform:uppercase;letter-spacing:.07em;opacity:.8;font-size:.68rem}.hero-value{letter-spacing:-.025em;font-variant-numeric:tabular-nums;font-size:1.85rem;line-height:1.15}.hero-hint{opacity:.82;font-size:.76rem}.hero-bar{background:#ffffff40;border-radius:999px;height:5px;margin-top:.35rem;overflow:hidden}.hero-bar span{background:#fff;height:100%;transition:width .3s;display:block}.hero-grid{border-top:1px solid #fff3;grid-template-columns:repeat(3,1fr);gap:.4rem;margin-top:.55rem;padding-top:.55rem;display:grid}.hero-grid>div{gap:.05rem;min-width:0;display:grid}.hero-grid span{text-transform:uppercase;letter-spacing:.05em;opacity:.78;font-size:.63rem}.hero-grid strong{font-variant-numeric:tabular-nums;font-size:.85rem;font-weight:600}.chips{scrollbar-width:none;-ms-overflow-style:none;gap:.35rem;padding-bottom:.15rem;display:flex;overflow-x:auto}.chips::-webkit-scrollbar{display:none}.chips-sep{background:var(--border);flex:none;width:1px;margin:.25rem .15rem}.pill{background:var(--surface);border:1px solid var(--border);color:var(--dim);white-space:nowrap;border-radius:999px;flex:none;align-items:center;gap:.3rem;padding:.38rem .75rem;font-size:.79rem;display:inline-flex}.pill.on{color:var(--text);border-color:var(--accent);background:color-mix(in srgb, var(--accent) 18%, transparent);font-weight:600}.icon-pill.on{border-color:var(--chip);background:color-mix(in srgb, var(--chip) 18%, transparent);color:var(--chip)}.pill .i{width:15px;height:15px}.listing-total{justify-content:space-between;align-items:baseline;padding:0 .15rem;font-size:.8rem;display:flex}.listing-total strong{font-variant-numeric:tabular-nums;font-size:.95rem}input,select,textarea{width:100%;min-width:0;max-width:100%;color:var(--text);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm);-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:.58rem .7rem;font-family:inherit;font-size:16px}input:focus{outline:2px solid var(--accent);outline-offset:1px}input::placeholder{color:var(--dim)}input.flat{min-height:2.5rem}.search{margin-bottom:.1rem}.amount-field{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm);align-items:center;gap:.4rem;padding:.45rem .8rem;display:flex}.amount-field:focus-within{outline:2px solid var(--accent);outline-offset:1px}.amount-prefix,.amount-suffix{color:var(--dim);flex:none;font-size:1rem}.amount-input{letter-spacing:-.02em;font-variant-numeric:tabular-nums;background:0 0;border:none;padding:.2rem 0;font-size:1.7rem;font-weight:650;outline:none!important}.amount-field.compact .amount-input{font-size:1.3rem}.amount-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.amount-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.amount-input[type=number]{-moz-appearance:textfield}.two{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}.mini{gap:.25rem;display:grid}.mini>span{color:var(--dim);font-size:.72rem}.linky{color:var(--accent);font-size:inherit;text-decoration:underline}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);gap:.6rem;padding:.85rem .9rem;display:grid}.panel h2{margin:0;font-size:.9rem;font-weight:650}.salary-row{align-items:stretch;gap:.5rem;display:flex}.salary-row .amount-field{flex:1}.list{gap:.85rem;display:grid}.day-header{color:var(--dim);text-transform:uppercase;letter-spacing:.05em;justify-content:space-between;padding:0 .2rem .3rem;font-size:.72rem;display:flex}.entries{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);margin:0;padding:0;list-style:none;overflow:hidden}.entry{grid-template-columns:auto 1fr auto;align-items:center;gap:.15rem .65rem;padding:.6rem .75rem;display:grid}.entry+.entry{border-top:1px solid var(--border)}.entry-icon{width:2.1rem;height:2.1rem;color:var(--chip);background:color-mix(in srgb, var(--chip) 16%, transparent);border-radius:10px;place-items:center;display:grid}.entry-icon .i{width:17px;height:17px}.entry-main{gap:.05rem;min-width:0;display:grid}.entry-name{text-overflow:ellipsis;white-space:nowrap;font-size:.9rem;overflow:hidden}.entry-meta{color:var(--dim);text-overflow:ellipsis;white-space:nowrap;font-size:.72rem;overflow:hidden}.entry-amount{font-variant-numeric:tabular-nums;font-size:.95rem;font-weight:600}.entry-tools{grid-column:2/-1;gap:.1rem;margin-top:.15rem;display:flex}.entry-tools.right{grid-column:auto;justify-content:flex-end}.entry-tools button{width:2rem;height:2rem;color:var(--dim);border-radius:8px;place-items:center;display:grid}.entry-tools button .i{width:16px;height:16px}.entry-tools button.danger{color:var(--danger)}.entry-tools button:active{background:var(--surface-2)}.empty{text-align:center;color:var(--dim);background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:2.5rem 1rem}.empty p{margin:0 0 .25rem}.plan{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);gap:.55rem;padding:.85rem .9rem;display:grid}.plan header{justify-content:space-between;align-items:flex-start;gap:.5rem;display:flex}.plan-title{gap:.1rem;min-width:0;display:grid}.plan h3{margin:0;font-size:.95rem;font-weight:600}.plan-title span{font-size:.75rem}.badge{font-variant-numeric:tabular-nums;background:color-mix(in srgb, var(--accent) 18%, transparent);color:var(--accent);border-radius:999px;flex:none;padding:.2rem .55rem;font-size:.68rem;font-weight:700}.badge.done{background:color-mix(in srgb, var(--ok) 18%, transparent);color:var(--ok)}.badge.soon{background:color-mix(in srgb, var(--warn) 20%, transparent);color:var(--warn)}.plan-bar{background:var(--surface-2);border-radius:999px;height:5px;overflow:hidden}.plan-bar span{background:var(--accent);height:100%;display:block}.plan-figures{grid-template-columns:repeat(3,1fr);gap:.4rem;display:grid}.plan-figures>div{gap:.05rem;min-width:0;display:grid}.plan-figures span{text-transform:uppercase;letter-spacing:.05em;color:var(--dim);font-size:.63rem}.plan-figures strong{font-variant-numeric:tabular-nums;font-size:.92rem}.plan-note{margin:0;font-size:.76rem}.breakdown{gap:.7rem;margin:0;padding:0;list-style:none;display:grid}.breakdown li{grid-template-columns:auto 1fr auto;align-items:center;gap:.6rem;display:grid}.breakdown-main{gap:.25rem;min-width:0;display:grid}.breakdown-top{justify-content:space-between;gap:.5rem;font-size:.83rem;display:flex}.breakdown-top strong{font-variant-numeric:tabular-nums}.breakdown-bar{background:var(--surface-2);border-radius:999px;height:5px;overflow:hidden}.breakdown-bar span{height:100%;display:block}.breakdown-pct{font-variant-numeric:tabular-nums;text-align:right;min-width:2.2rem;font-size:.75rem}.fab{z-index:30;right:max(1rem,50vw - 280px + 1rem);bottom:calc(4.6rem + env(safe-area-inset-bottom));background:var(--accent);width:3.4rem;height:3.4rem;color:var(--accent-ink);border-radius:999px;place-items:center;display:grid;position:fixed;box-shadow:0 6px 20px #00000059}.fab .i{width:24px;height:24px}.fab:active{transform:scale(.94)}.tabbar{z-index:30;background:var(--surface);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom);grid-template-columns:repeat(3,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.tabbar button{color:var(--dim);justify-items:center;gap:.1rem;padding:.5rem .25rem .55rem;font-size:.65rem;display:grid}.tabbar button.on{color:var(--accent);font-weight:600}@media (min-width:560px){.tabbar{border-left:1px solid var(--border);border-right:1px solid var(--border);max-width:560px;margin:0 auto}}.sheet-backdrop{z-index:50;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0000008c;justify-content:center;align-items:flex-end;animation:.15s fade;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.sheet{background:var(--bg);border-top:1px solid var(--border);border-radius:20px 20px 0 0;flex-direction:column;width:100%;max-width:560px;height:94dvh;max-height:94dvh;animation:.22s cubic-bezier(.2,.8,.2,1) rise;display:flex}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes rise{0%{transform:translateY(6%)}to{transform:none}}.sheet-grabber{background:var(--border);border-radius:999px;flex:none;width:34px;height:4px;margin:.5rem auto .15rem}.sheet-head{flex:none;justify-content:space-between;align-items:center;padding:.4rem .9rem .6rem;display:flex}.sheet-head h2{margin:0;font-size:1rem;font-weight:650}.sheet-close{width:2rem;height:2rem;color:var(--dim);border-radius:999px;place-items:center;display:grid}.sheet-body{-webkit-overflow-scrolling:touch;padding:.25rem .9rem calc(1.25rem + env(safe-area-inset-bottom));flex:1;overflow-y:auto}.sheet-form{flex-direction:column;gap:.95rem;min-height:100%;display:flex}.sheet-form .primary.block{margin-top:auto}.cat-grid{grid-template-columns:repeat(4,1fr);gap:.45rem;display:grid}.cat-tile{border-radius:var(--r-sm);background:var(--surface);border:1px solid var(--border);color:var(--dim);text-align:center;justify-items:center;gap:.2rem;padding:.5rem .2rem;font-size:.63rem;line-height:1.2;display:grid}.cat-tile .i{width:19px;height:19px}.cat-tile.on{color:var(--chip);border-color:var(--chip);background:color-mix(in srgb, var(--chip) 15%, transparent);font-weight:600}.date-row{align-items:center;gap:.5rem;display:flex}.date-row input{flex:1;min-height:2.35rem}.calc{background:var(--surface-2);border-radius:var(--r-sm);grid-template-columns:repeat(3,1fr);gap:.4rem;padding:.6rem .7rem;display:grid}.calc>div{gap:.05rem;min-width:0;display:grid}.calc span{text-transform:uppercase;letter-spacing:.05em;color:var(--dim);font-size:.63rem}.calc strong{font-variant-numeric:tabular-nums;font-size:.9rem}.login-wrap{place-items:center;min-height:100dvh;padding:1.25rem;display:grid}.login{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);gap:.55rem;width:100%;max-width:340px;padding:1.4rem 1.2rem;display:grid}.login .brand{letter-spacing:-.02em;margin:0;font-size:1.3rem;font-weight:700}.login label{color:var(--dim);margin-bottom:.2rem;font-size:.75rem;display:block}.login .muted{color:var(--dim);margin:0 0 .6rem;font-size:.82rem}.login button{margin-top:.5rem}.about-head{justify-content:space-between;align-items:flex-start;gap:.6rem;display:flex}.about-head p{margin:.1rem 0 0}.about-reload{text-align:left;font-size:.78rem}.changelog{gap:.85rem;margin:0;padding:0;list-style:none;display:grid}.changelog>li{gap:.3rem;display:grid}.changelog-head{align-items:center;gap:.4rem;font-size:.85rem;display:flex}.changelog-head .dim{margin-left:auto;font-size:.72rem}.changelog ul{border-left:2px solid var(--border);gap:.25rem;margin:0;padding:0 0 0 .75rem;list-style:none;display:grid}.changelog ul li{color:var(--dim);font-size:.79rem;line-height:1.45}.seg{background:var(--surface-2);border-radius:var(--r-sm);grid-template-columns:1fr 1fr;gap:.35rem;padding:.25rem;display:grid}.seg-btn{color:var(--dim);border-radius:8px;justify-content:center;align-items:center;gap:.35rem;padding:.55rem .5rem;font-size:.85rem;display:flex}.seg-btn.on{background:color-mix(in srgb, var(--chip) 20%, transparent);color:var(--chip);box-shadow:inset 0 0 0 1px var(--chip);font-weight:600}.seg-btn .i{width:17px;height:17px}.tag{text-transform:uppercase;letter-spacing:.03em;vertical-align:1px;border-radius:4px;margin-right:.35rem;padding:.05rem .35rem;font-size:.65rem;font-weight:700;display:inline-block}.tag--credit{color:#a78bfa;background:#8b5cf633}.tag--cash{color:#4ade80;background:#22c55e33}.split-bar{background:var(--surface-2);border-radius:999px;height:8px;display:flex;overflow:hidden}.split-bar span{height:100%;display:block}.split-grid{grid-template-columns:1fr 1fr;gap:.6rem;display:grid}.split-item{align-items:center;gap:.5rem;min-width:0;display:flex}.split-item>div{gap:.05rem;min-width:0;display:grid}.split-item span{font-size:.72rem}.split-item strong{font-variant-numeric:tabular-nums;font-size:.95rem}.install{background:var(--surface);border:1px solid var(--accent);border-radius:var(--r);align-items:center;gap:.7rem;padding:.8rem .9rem;display:flex;position:relative}.install--ios{align-items:flex-start}.install-lead{width:26px;height:26px;color:var(--accent)}.install-body{flex:1;gap:.15rem;min-width:0;display:grid}.install-body strong{font-size:.9rem}.install-body span{font-size:.78rem}.install-btn{flex:none;min-height:2.4rem;padding:0 .9rem;font-size:.85rem}.install-x{width:1.9rem;height:1.9rem;color:var(--dim);border-radius:999px;place-items:center;display:grid;position:absolute;top:.35rem;right:.35rem}.install-x .i{width:15px;height:15px}.install-steps{counter-reset:step;gap:.45rem;margin:.5rem 0 0;padding:0;list-style:none;display:grid}.install-steps li{color:var(--text);align-items:center;gap:.5rem;font-size:.8rem;display:flex}.install-steps .i{width:18px;height:18px;color:var(--accent);flex:none}.install-steps b{font-weight:650}
