@font-face{font-family:Bricolage Grotesque;font-style:normal;font-weight:400 800;font-display:swap;src:url(/fonts/BricolageGrotesque.woff2) format("woff2")}@font-face{font-family:Instrument Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/InstrumentSans-400.woff2) format("woff2")}@font-face{font-family:Instrument Sans;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/InstrumentSans-500.woff2) format("woff2")}@font-face{font-family:Instrument Sans;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/InstrumentSans-600.woff2) format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/JetBrainsMono-400.woff2) format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/JetBrainsMono-500.woff2) format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/JetBrainsMono-700.woff2) format("woff2")}:root{--sumi: #0d1020;--sumi-2: #161a2b;--sumi-3: #1f2439;--rule: #2a3048;--rule-soft: #1f2336;--washi: #eef0f6;--ash: #8a90a6;--ash-dim: #5a6078;--out: #f0509e;--in: #3ecf8e;--move: #6e9bf0;--fee: #d9a441;--commit: #a99ae0;--genkin: var(--in);--bank: var(--move);--invest: var(--out);--warn: var(--fee);--tag: #d98bc5;--c-rent: #e05c3e;--c-food: #d9a441;--c-study: #45b0a6;--c-transport: #6e9bf0;--c-soft: #b57ce0;--c-other: #5c6577;--bg: var(--sumi);--panel: var(--sumi-2);--panel-hi: var(--sumi-3);--sunken: #0a0d19;--line: var(--rule-soft);--line-hi: var(--rule);--text: var(--washi);--dim: var(--ash);--dimmer: var(--ash-dim);--add-a: #8a3ff2;--add-b: #e0288f;--grad: linear-gradient(140deg, var(--add-a), var(--add-b));--display: "Bricolage Grotesque", ui-sans-serif, system-ui, sans-serif;--body: "Instrument Sans", ui-sans-serif, system-ui, sans-serif;--sans: var(--body);--mono: "JetBrains Mono", ui-monospace, "SF Mono", monospace;--r-sm: 6px;--r-md: 10px;--r-lg: 14px;--r-xl: 20px;--r-pill: 999px;--shadow: 0 1px 0 rgba(255, 255, 255, .03) inset, 0 8px 24px rgba(0, 0, 0, .35);--ring: 0 0 0 3px rgba(110, 155, 240, .18)}*{box-sizing:border-box}[hidden]{display:none!important}html,body{margin:0;padding:0}body{min-height:100vh;background:#0b0e14;color:var(--washi);font-family:var(--body);font-size:15px;line-height:1.55;display:flex;justify-content:center;-webkit-font-smoothing:antialiased}button{font-family:inherit}input,textarea,select{font-family:var(--mono)}::selection{background:#6e9bf047}:focus-visible{outline:2px solid var(--move);outline-offset:2px;border-radius:4px}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}.app{width:100%;max-width:440px;min-height:100vh;display:flex;flex-direction:column;background:var(--sumi);position:relative}.eyebrow{font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;color:var(--ash);text-transform:uppercase;white-space:nowrap}.sub{color:var(--ash-dim);font-weight:400}.is-in{color:var(--in)}.is-out{color:var(--out)}.num{font-family:var(--mono);font-variant-numeric:tabular-nums}.header{display:flex;justify-content:space-between;align-items:flex-start;padding:20px 18px 12px}.brand{font-family:var(--display);font-size:20px;font-weight:600;letter-spacing:-.01em}.brand-sub{font-size:10px;letter-spacing:.24em;color:var(--fee);font-family:var(--mono);margin-top:2px;text-transform:uppercase}.seg{display:inline-flex;gap:2px;background:var(--sumi-3);padding:3px;border-radius:var(--r-md)}.seg-btn{flex:1;border:none;background:transparent;color:var(--ash);font-family:var(--body);font-size:12.5px;font-weight:500;padding:9px 12px;border-radius:var(--r-sm);cursor:pointer;white-space:nowrap;transition:color .12s ease,background .12s ease}.seg-btn:hover{color:var(--washi)}.seg-btn.active{background:var(--sumi);color:var(--washi);box-shadow:0 1px 3px #0006}.seg-sm{padding:3px;border-radius:var(--r-sm)}.seg-sm .seg-btn{font-family:var(--mono);font-size:11px;padding:5px 9px;border-radius:5px}.keys{display:flex;flex-wrap:wrap;gap:6px 14px;padding:10px 4px 2px;font-family:var(--mono);font-size:10.5px;color:var(--ash-dim)}.key{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}kbd{font-family:var(--mono);font-size:10.5px;font-weight:500;color:var(--washi);background:var(--sumi-3);border:1px solid var(--rule);border-bottom-width:2px;border-radius:5px;padding:2px 6px;line-height:1.45}.scroll{flex:1;overflow-y:auto;padding:0 14px calc(150px + env(safe-area-inset-bottom))}.tab{display:none}.tab.active{display:block}.panel{background:var(--sumi-2);border:1px solid var(--rule-soft);border-radius:var(--r-lg);padding:14px 16px;margin-top:12px;min-width:0}.panel-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px}.panel-sub{font-size:12px;font-family:var(--mono);color:var(--washi)}.hero{padding:8px 4px 24px;border-bottom:1px solid var(--rule-soft)}.hero .big{font-family:var(--mono);font-variant-numeric:tabular-nums;font-weight:700;font-size:44px;letter-spacing:-.03em;line-height:1.05;margin-top:8px}.hero-sym{font-size:26px;color:var(--ash);margin-right:4px}.runway{margin-top:12px;font-size:14px;color:var(--washi);background:none;border:0;padding:0;text-align:left;font-family:var(--body);cursor:pointer}.runway b{font-family:var(--mono);color:var(--fee);font-weight:500}.runway b.is-in{color:var(--in)}.hero-sub{font-size:12.5px;color:var(--ash);margin-top:4px}.pill{font-family:var(--mono);font-size:10px;border-radius:var(--r-pill);padding:1px 7px;border:1px solid var(--rule);color:var(--ash);white-space:nowrap}.pill.tag{color:var(--tag);border-color:#d98bc559}.pill.fx{color:var(--fee);border-color:#d9a4414d}.pill.link{color:var(--move);border-color:#6e9bf059}.bucket-row{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:16px}.bucket{background:var(--sumi-2);border:1px solid var(--rule-soft);border-radius:var(--r-md);padding:12px;min-width:0}.bucket .n{font-size:11px;color:var(--ash)}.bucket .v{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:15px;font-weight:500;margin-top:4px}.bucket.is-invest .v{color:var(--move)}.chart-wrap{width:100%;height:240px;position:relative;overflow:hidden}.chart-wrap svg{width:100%;height:100%;display:block}.chart-legend{display:flex;justify-content:center;gap:16px;font-family:var(--mono);font-size:10.5px;color:var(--ash-dim);padding-top:8px}.chart-legend span{display:inline-flex;align-items:center;gap:5px}.legend-swatch{width:14px;height:3px;border-radius:2px}.chart-tip{position:absolute;pointer-events:none;background:var(--sumi-3);border:1px solid var(--rule);border-radius:var(--r-sm);font-family:var(--mono);font-size:12px;padding:8px 10px;color:var(--washi);white-space:nowrap;opacity:0;transition:opacity .1s;box-shadow:var(--shadow);z-index:5}.chart-tip .tip-label{color:var(--ash);margin-bottom:4px}.chart-tip .tip-row{display:flex;justify-content:space-between;gap:14px}.donut-wrap{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:18px;padding-top:4px}.dk-donut-svg{width:180px;height:180px;flex-shrink:0}.dk-legend{flex:1 1 200px;display:flex;flex-direction:column;gap:6px;font-family:var(--mono);font-size:12px;min-width:0}.dk-legend-row{display:flex;align-items:center;gap:8px}.dk-legend-row i{width:9px;height:9px;border-radius:3px;flex-shrink:0}.dk-legend-row span{color:var(--ash);flex:1}.dk-legend-row b{font-weight:500;font-variant-numeric:tabular-nums}.dk-legend-row em{font-style:normal;color:var(--ash-dim);width:36px;text-align:right}@media(max-width:440px){.donut-wrap{flex-direction:column}}.link-btn{background:none;border:none;color:var(--move);font-family:var(--mono);font-size:11px;cursor:pointer;padding:2px 4px}.empty{font-size:13px;color:var(--ash-dim);font-family:var(--mono);padding:10px 0}.spend-yen{color:var(--out);font-weight:500;font-family:var(--mono);font-variant-numeric:tabular-nums}.income-yen{color:var(--in);font-weight:500;font-family:var(--mono);font-variant-numeric:tabular-nums}.lg-summary{display:flex;gap:14px;font-family:var(--mono);font-size:12px;color:var(--ash)}.lg-summary:not(:empty){padding-bottom:10px}.lg-day{display:flex;justify-content:space-between;align-items:baseline;font-family:var(--mono);font-size:11px;letter-spacing:.1em;color:var(--ash);padding:16px 2px 6px}.lg-day .spend-yen,.lg-day .income-yen{font-size:12px;letter-spacing:0}.lg-strike{text-decoration:line-through;opacity:.55}.xfer-path{font-size:11px;white-space:nowrap;font-family:var(--mono)}.xfer-amt{font-weight:500;color:var(--move);font-variant-numeric:tabular-nums;font-family:var(--mono)}.chip-row{display:flex;gap:6px;margin-top:8px}.chip-scroll{overflow-x:auto;scrollbar-width:none;padding-bottom:2px}.chip-scroll::-webkit-scrollbar{display:none}.chip-grid{display:flex;flex-wrap:wrap;gap:7px;margin-top:18px}.chip{border:1px solid var(--rule);background:transparent;color:var(--ash);font-family:var(--body);font-size:12px;padding:5px 11px;border-radius:var(--r-pill);cursor:pointer;white-space:nowrap;flex-shrink:0;transition:color .12s ease,border-color .12s ease,background .12s ease;display:inline-flex;align-items:center;gap:6px}.chip:hover{color:var(--washi);border-color:var(--rule)}.chip b{font-weight:400;font-family:var(--mono);font-size:11px;color:var(--chip, var(--ash-dim))}.chip.active{background:var(--sumi-3);color:var(--washi);border-color:var(--chip, var(--washi))}.chip.active b{color:var(--ash)}.chip-grid .chip{padding:8px 13px;font-size:12px}.composer{background:var(--sumi-2);border:1px solid var(--rule);border-radius:var(--r-lg);padding:6px;transition:border-color .15s ease,box-shadow .15s ease}.composer:focus-within{border-color:#e8b44a80;box-shadow:0 0 0 3px #e8b44a14}.composer-input{width:100%;background:transparent;border:none;outline:none;resize:vertical;min-height:56px;padding:12px 12px 6px;color:var(--washi);font-family:var(--mono);font-size:15px;line-height:1.5}.composer-input::placeholder{color:var(--ash-dim)}.composer-bar{display:flex;align-items:center;gap:8px;padding:4px 6px}.tool-btn{width:38px;height:38px;display:flex;align-items:center;justify-content:center;background:var(--sumi-3);border:1px solid var(--rule);border-radius:50%;font-size:15px;cursor:pointer;color:var(--washi);touch-action:none;user-select:none;-webkit-user-select:none;flex-shrink:0}.tool-btn:active{background:var(--sumi)}.tool-btn.live{background:#e05c3e26;border-color:var(--out);color:var(--out)}.composer-status{flex:1;font-family:var(--mono);font-size:11px;color:var(--ash);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.cmd-preview,.cmd-drop{background:var(--sumi-2);border:1px solid var(--rule);border-radius:var(--r-md);padding:10px 12px;margin-top:8px}.cmd-preview-head,.cmd-drop-head{display:flex;justify-content:space-between;align-items:center;gap:8px;padding-bottom:6px}.cmd-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:baseline;gap:3px 10px;padding:9px 0;border-top:1px solid var(--rule-soft);font-family:var(--mono);font-size:13px}.cmd-row .cmd-meta{grid-column:1 / -1;grid-row:2}.cmd-preview-head+.cmd-row,.cmd-drop-head+.cmd-row,.cmd-drop>.cmd-row:first-child{border-top:none}.cmd-name{font-weight:500;color:var(--washi);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cmd-meta{color:var(--ash);font-size:11.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.cmd-meta em{font-style:normal;color:var(--ash-dim);margin:0 5px}.cmd-dot{display:inline-block;width:7px;height:7px;border-radius:2px;margin-right:5px;vertical-align:baseline}.cmd-fee{color:var(--fee)}.cmd-tag{color:var(--tag)}.cmd-amt{font-weight:500;font-variant-numeric:tabular-nums;white-space:nowrap;justify-self:end}.cmd-amt.is-in{color:var(--in)}.cmd-amt.is-out{color:var(--out)}.cmd-amt-input{width:68px;background:var(--sumi);border:1px solid var(--rule);border-radius:6px;padding:3px 6px;color:inherit;font-size:13px;font-weight:500;text-align:right;outline:none}.cmd-amt-input:focus{border-color:var(--rule)}.cmd-x{background:transparent;border:none;color:var(--ash-dim);font-size:17px;line-height:1;cursor:pointer;padding:0 2px}.cmd-x:hover{color:var(--out)}.cmd-preview-foot,.cmd-drop-foot{display:flex;align-items:center;gap:10px;padding-top:10px;margin-top:2px;border-top:1px solid var(--rule-soft);font-family:var(--mono);font-size:13px}.cmd-drop-foot{font-size:11px;color:var(--ash);gap:14px}.cmd-preview-foot b{font-variant-numeric:tabular-nums}.cmd-status{font-family:var(--mono);font-size:12px;color:var(--ash);padding:4px 0}.cmd-status b{color:var(--washi);font-weight:500}.badge{font-family:var(--mono);font-size:10px;color:var(--ash);border:1px solid var(--rule);border-radius:var(--r-pill);padding:3px 9px;white-space:nowrap}.badge.is-ai{color:var(--in);border-color:#86b95f59;background:#86b95f14}.cmd-preview .btn-primary{margin-top:12px}.field{margin-bottom:12px}.field-label{display:block;font-size:11.5px;color:var(--ash);font-family:var(--body);margin-bottom:6px;white-space:nowrap}.field-input,.field-select,.field-num{background:var(--sumi-3);border:1px solid var(--rule);border-radius:var(--r-md);padding:11px 13px;font-size:15px;outline:none;color:var(--washi);transition:border-color .12s ease,box-shadow .12s ease}.field-input{width:100%;font-weight:500}.field-input:focus,.field-select:focus,.field-num:focus{border-color:var(--move);box-shadow:var(--ring)}select.field-input,.field-select{font-weight:400;font-size:14px;font-family:var(--body)}.field-sm{font-size:12px;font-weight:400;padding:7px 10px;width:auto}#lg-search,#add-note,#edit-note,#edit-tag{font-weight:400;font-family:var(--body)}.field-row{display:flex;align-items:center;gap:8px;margin-bottom:10px;flex-wrap:wrap}.field-row .field-label{margin:0}.field-select{flex:1;min-width:0}.field-select.field-cur{flex:0 0 auto;width:62px;padding:10px 6px}.field-num{width:96px;font-weight:500;font-variant-numeric:tabular-nums}.big-input-wrap{display:flex;align-items:center;justify-content:center;gap:6px;background:var(--sumi-2);border:1px solid var(--rule);border-radius:var(--r-lg);padding:24px 16px;transition:border-color .15s ease}.big-input-wrap:focus-within{border-color:var(--move)}.big-input-sym{font-size:34px;color:var(--ash);font-family:var(--mono)}.big-input{background:transparent;border:none;outline:none;color:var(--washi);font-size:48px;font-family:var(--mono);font-variant-numeric:tabular-nums;font-weight:700;width:60%;text-align:left}.conv-row{display:flex;justify-content:center;gap:10px;font-family:var(--mono);color:var(--ash);font-size:14px;margin-top:12px}.conv-row .sep{color:var(--ash-dim)}.conv-inline{font-family:var(--mono);font-size:12px;color:var(--fee);white-space:nowrap}.check-row{display:flex;align-items:center;gap:9px;font-family:var(--mono);font-size:12px;color:var(--washi);cursor:pointer}.check-row input{width:16px;height:16px;accent-color:var(--in)}.hint{font-size:11px;color:var(--ash-dim);font-family:var(--mono);margin-top:10px;line-height:1.55;padding:0 2px}.hint b{color:var(--ash)}.btn{border:1px solid transparent;border-radius:var(--r-md);font-family:var(--body);font-size:14px;font-weight:600;padding:12px 16px;cursor:pointer;white-space:nowrap;transition:opacity .12s ease,background .12s ease,color .12s ease,border-color .12s ease}.btn:disabled{opacity:.4;cursor:default}.btn-primary{background:var(--washi);color:#12161e}.btn-primary:hover{background:#fff}.btn-alt{background:var(--move);color:#0b1016}.btn-ghost{background:transparent;border-color:var(--rule);color:var(--ash);font-weight:500}.btn-ghost:hover{color:var(--washi);border-color:var(--rule)}.btn-ghost.danger{color:var(--out);border-color:#e05c3e4d}.btn-danger{background:transparent;border-color:#e05c3e66;color:var(--out);font-weight:600;padding:11px 14px}.btn-danger:hover{background:#e05c3e1a}.btn-block{display:block;width:100%;margin-top:18px;padding:15px;border-radius:var(--r-md);font-size:14px}.btn-sm{font-size:12.5px;font-weight:500;padding:7px 11px}.cmd-preview .btn-primary{width:100%;padding:13px;border-radius:var(--r-md)}.modal-backdrop{position:fixed;inset:0;z-index:100;display:flex;align-items:flex-end;justify-content:center;background:#080a0e99;backdrop-filter:blur(4px);animation:modal-fade .18s ease}.modal-backdrop[hidden]{display:none}.modal-sheet{width:100%;max-width:480px;max-height:88vh;display:flex;flex-direction:column;background:var(--sumi-2);border:1px solid var(--rule);border-bottom:none;border-radius:22px 22px 0 0;padding:10px 18px calc(18px + env(safe-area-inset-bottom));box-shadow:0 -12px 40px #0006;animation:modal-up .22s cubic-bezier(.32,.72,0,1)}.modal-handle{width:36px;height:4px;border-radius:2px;background:var(--rule);margin:4px auto 10px}.modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.modal-title{font-family:var(--display);font-size:15px;font-weight:600;letter-spacing:-.01em;color:var(--washi)}.modal-close{width:30px;height:30px;display:flex;align-items:center;justify-content:center;background:var(--sumi-3);border:1px solid var(--rule);border-radius:50%;color:var(--ash);font-size:13px;cursor:pointer}.modal-body{overflow-y:auto;padding-top:12px}.modal-body .hint{margin-top:6px}.edit-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.edit-actions{display:flex;gap:10px;margin-top:8px}.edit-actions .btn-primary{flex:1;padding:14px;border-radius:var(--r-md)}.edit-actions .btn-danger{padding:14px 18px;border-radius:var(--r-md)}@keyframes modal-fade{0%{opacity:0}to{opacity:1}}@keyframes modal-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}.nav{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:440px;display:grid;grid-template-columns:repeat(4,1fr);align-items:center;background:#0e111bf0;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-top:1px solid var(--rule-soft);height:calc(64px + env(safe-area-inset-bottom));padding:0 6px env(safe-area-inset-bottom);z-index:50}.nav-btn{background:transparent;border:none;color:var(--ash-dim);display:flex;flex-direction:column;align-items:center;gap:4px;cursor:pointer;padding:6px 0;transition:color .12s ease}.nav-btn.active{color:var(--washi);font-weight:600}.nav-icon{font-size:17px;line-height:1}.nav-label{font-size:11px;font-family:var(--body);letter-spacing:.01em}.nav-icon svg{width:21px;height:21px;display:block;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.nav-icon{position:relative}.nav-btn.active .nav-icon:after{content:"";position:absolute;left:50%;top:50%;translate:-50% -50%;width:34px;height:34px;border-radius:12px;background:radial-gradient(circle,rgba(138,63,242,.22),transparent 70%);z-index:-1}.bucket.is-invest{border-color:#6e9bf04d}.desktop{display:none}@media(min-width:1100px){.app{display:none}.desktop{display:grid;grid-template-columns:230px minmax(0,1fr);width:100%;max-width:1560px;min-height:100vh}}.dside{border-right:1px solid var(--rule-soft);padding:24px 16px 32px;display:flex;flex-direction:column;gap:24px;position:sticky;top:0;align-self:start;height:100vh;overflow-y:auto}.brand-row{display:flex;align-items:center;gap:8px}.brand-logo{display:block}.dside-brand .brand{font-family:var(--display);font-size:19px;font-weight:600}.dside-brand .brand-sub{display:block;margin:0;font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;color:var(--fee)}.dnav{display:flex;flex-direction:column;gap:2px}.dnav-btn{display:flex;align-items:center;gap:12px;padding:9px 12px;border:0;border-radius:var(--r-sm);background:transparent;color:var(--ash);font-family:var(--body);font-size:14px;text-align:left;cursor:pointer}.dnav-btn:hover{color:var(--washi)}.dnav-btn.active{background:var(--sumi-3);color:var(--washi)}.dnav-btn svg{width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex:0 0 auto}.dside-foot{margin-top:auto}.dside-fee{font-size:22px;color:var(--fee);font-variant-numeric:tabular-nums}.dside-note{font-size:12px;color:var(--ash)}.applbl{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ash-dim);margin:24px 0 12px;display:flex;justify-content:space-between;align-items:center;gap:12px}.applbl:first-child{margin-top:0}table.mini{width:100%;border-collapse:collapse;font-size:13px}table.mini td{padding:7px 0;border-bottom:1px solid var(--rule-soft)}table.mini td:last-child{text-align:right;font-family:var(--mono);font-variant-numeric:tabular-nums}table.mini tr:last-child td{border-bottom:0}.dmain{padding:0 28px 56px;min-width:0}.dview{display:flex;flex-direction:column;gap:16px}.dk-title{font-family:var(--display);font-size:21px;font-weight:600;letter-spacing:-.02em;margin:0}.dk-title-sub{font-size:13px;color:var(--ash);margin-top:2px}.dk-lede{color:var(--ash);font-size:14px;max-width:62ch;margin:0}.dk-bignum{font-size:32px;font-weight:700;letter-spacing:-.03em;line-height:1.15;font-variant-numeric:tabular-nums}.dk-dry{font-size:13px}.dk-dry b{font-family:var(--mono)}.dk-header{position:sticky;top:0;z-index:20;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:18px 4px 16px;background:#0b0e14;border-bottom:1px solid var(--rule-soft)}.dk-header.is-hero{position:static;align-items:flex-end;border-bottom:0;padding-bottom:4px}.dk-hero .hero-big{font-family:var(--mono);font-variant-numeric:tabular-nums;font-weight:700;font-size:46px;letter-spacing:-.035em;line-height:1.02;margin-top:6px}.dk-hero .hero-line{margin-top:8px;font-size:14.5px;color:var(--ash)}.dk-hero .hero-line b{font-family:var(--mono);font-weight:500;color:var(--fee)}.dk-hero .hero-grow,.dk-hero .hero-grow b{color:var(--in)}.dk-header .brand{font-family:var(--display);font-size:20px;font-weight:600;letter-spacing:-.01em}.dk-header .brand-sub{display:inline;margin-left:12px;font-family:var(--mono);font-size:10.5px;letter-spacing:.2em;color:var(--fee)}.dk-header-right{display:flex;align-items:center;gap:18px}.dk-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:28px;align-items:start}.dk-col{display:flex;flex-direction:column;min-width:0}.dk-cmd{display:flex;flex-direction:column}.dk-cmd .keys{padding:10px 2px 0}.dk-cmd .cmd-row{grid-template-columns:auto minmax(0,1fr) auto}.dk-cmd .cmd-row .cmd-meta{grid-column:2;grid-row:1}.cmdbox{border:1px solid var(--rule);border-radius:var(--r-lg);background:var(--sumi-2);padding:14px 16px;transition:border-color .15s ease,box-shadow .15s ease}.cmdbox:focus-within{border-color:#e8b44a8c;box-shadow:0 0 0 3px #e8b44a12}.cmd-line{display:flex;align-items:center;gap:12px}.cmd-caret{font-family:var(--mono);font-size:15px;color:var(--ash-dim)}.cmd-ink-wrap{position:relative;flex:1;min-width:0;height:24px}.cmd-ink,.cmd-input{position:absolute;inset:0;font-family:var(--mono);font-size:16px;line-height:24px;white-space:pre;overflow:hidden;letter-spacing:0}.cmd-ink{color:var(--washi);pointer-events:none}.cmd-input{width:100%;background:none;border:0;outline:none;color:transparent;caret-color:var(--washi)}.cmd-input::placeholder{color:var(--ash-dim)}.ink-amt{color:var(--washi);font-weight:500}.ink-cat{color:var(--in)}.ink-bucket{color:var(--move)}.ink-fee{color:var(--fee)}.ink-tag{color:var(--tag)}.ink-date{color:var(--ash)}.ink-in{color:var(--in)}.cmd-enter{font-family:var(--mono);font-size:10.5px;color:var(--ash-dim);flex-shrink:0}.cmd-facts:empty{display:none}.factrow{display:flex;flex-wrap:wrap;gap:8px;padding-top:14px}.fact{display:inline-flex;align-items:center;gap:7px;padding:5px 10px;border:1px solid var(--rule);border-radius:var(--r-sm);background:var(--sumi);font-family:var(--mono);font-size:12.5px;color:var(--washi);font-variant-numeric:tabular-nums}.fact i{font-style:normal;font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--ash-dim)}.fact.is-fee{border-color:#d9a44159;color:var(--fee)}.fact.is-in{border-color:#86b95f59;color:var(--in)}.fact.is-bucket{border-color:#6e9bf059;color:var(--move)}.fact.is-tag{border-color:#d98bc559;color:var(--tag)}.dk-cmd .cmd-status{padding-top:12px}.dk-filters{display:flex;align-items:center;gap:10px;margin:22px 0 12px}.searchwrap{flex:1;display:flex;align-items:center;gap:10px;padding:10px 14px;border:1px solid var(--rule-soft);border-radius:var(--r-md);background:var(--sumi-2);min-width:0}.searchwrap:focus-within{border-color:var(--rule)}.searchglyph{color:var(--ash-dim);font-size:13px}#dk-search{flex:1;min-width:0;background:none;border:0;outline:none;color:var(--washi);font-family:var(--body);font-size:14px}#dk-search::placeholder{color:var(--ash-dim)}.fchips{display:flex;gap:8px;overflow-x:auto;padding-bottom:8px;scrollbar-width:thin}.fchip{flex:0 0 auto;padding:7px 14px;border:1px solid var(--rule-soft);border-radius:var(--r-pill);background:var(--sumi-2);color:var(--ash);font-family:var(--body);font-size:13px;cursor:pointer;white-space:nowrap}.fchip b{font-family:var(--mono);font-weight:400;color:var(--ash-dim);margin-left:4px}.fchip:hover{color:var(--washi);border-color:var(--rule)}.fchip.is-on{background:var(--washi);border-color:var(--washi);color:var(--sumi)}.fchip.is-on b{color:#0e111699}.dk-list{margin-top:6px}.lday{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:22px 4px 8px;font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ash-dim)}.lday b{font-weight:500;font-size:13px;letter-spacing:0;font-variant-numeric:tabular-nums}.lrow{display:grid;grid-template-columns:22px 3px minmax(0,1fr) auto auto;align-items:center;gap:14px;padding:12px 12px 12px 8px;border-bottom:1px solid var(--rule-soft);border-radius:var(--r-md);cursor:pointer}.lrow:hover{background:var(--sumi-2)}.lrow.is-sel{background:#6e9bf017;box-shadow:inset 2px 0 0 var(--move);border-bottom-color:transparent}.lrow.is-offset .lamt .v{text-decoration:line-through;color:var(--ash-dim)}.lcheck{width:17px;height:17px;border:1px solid var(--rule);border-radius:5px;background:var(--sumi-2);justify-self:center}.lcheck.is-blank{border:0;background:none}.lrow.is-sel .lcheck{background:var(--move);border-color:var(--move);position:relative}.lrow.is-sel .lcheck:after{content:"✓";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:11px;color:#0e1116}.lbar{align-self:stretch;border-radius:2px;min-height:34px}.lmain{min-width:0}.ltitle{font-size:15px;color:var(--washi);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lsub{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-top:3px;font-size:12.5px;color:var(--ash)}.lsub em{font-style:normal;color:var(--ash-dim)}.lsub .pill.link{cursor:pointer;background:none}.lamt{text-align:right;font-family:var(--mono);font-variant-numeric:tabular-nums;white-space:nowrap}.lamt .v{font-size:15.5px}.lamt .s{font-size:11.5px;color:var(--ash-dim);margin-top:2px}.lact{display:flex;gap:2px;opacity:0;transition:opacity .12s ease}.lrow:hover .lact,.lrow.is-editing .lact{opacity:1}.ledit{display:grid;grid-template-columns:130px 110px minmax(0,1fr) 90px 90px;gap:8px;grid-column:3 / span 2}.lrow.is-editing{background:var(--sumi-2);cursor:default}.dk-rail{position:sticky;top:18px;display:flex;flex-direction:column}.dk-rail .applbl{margin:26px 0 10px}.dk-rail .applbl:first-child{margin-top:0}.rail-tiles{display:grid;grid-template-columns:1fr 1fr;gap:8px}.rail-spark svg{width:100%;height:auto;display:block}.rail-legend{display:flex;gap:16px;margin-top:10px;font-family:var(--mono);font-size:11px}.rail-legend .is-actual{color:var(--move)}.rail-legend .is-proj{color:var(--fee)}.rail-donut{display:flex;align-items:center;gap:16px}.rail-donut-svg{width:96px;height:96px;flex-shrink:0}.rail-donut-legend{flex:1;display:flex;flex-direction:column;gap:7px;min-width:0;font-size:13px}.rail-donut-legend div{display:flex;align-items:center;gap:8px}.rail-donut-legend i{width:9px;height:9px;border-radius:2px;flex-shrink:0}.rail-donut-legend span{flex:1;text-transform:capitalize;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rail-donut-legend b{font-family:var(--mono);font-weight:400;color:var(--ash);font-variant-numeric:tabular-nums}.rail-empty{font-size:12.5px}.rail-keys{display:flex;flex-direction:column;gap:2px}.rail-keys div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:7px 0;font-size:13.5px;color:var(--ash)}.rail-keys kbd{flex-shrink:0}.dk-chart svg{width:100%;height:auto;display:block}.dk-hover{position:relative;cursor:crosshair}.dk-heatmap svg{width:100%;height:auto;display:block}.dk-whatif{display:flex;align-items:center;gap:8px;font-family:var(--mono);font-size:10px;color:var(--fee);margin-left:auto}.dk-whatif input[type=range]{width:130px;accent-color:var(--fee)}.dk-in{color:var(--in)}.dk-out{color:var(--out)}.dk-none,.dk-dim{color:var(--ash-dim)}.dk-sub{color:var(--ash);font-weight:500;font-size:11px}.dk-icon{background:none;border:none;color:var(--ash-dim);cursor:pointer;font-size:13px;padding:3px 5px;border-radius:5px}.dk-icon:hover{color:var(--washi);background:var(--rule-soft)}.dk-icon.danger:hover{color:var(--out)}.dk-icon.ok{color:var(--in)}.dk-edit-input{width:100%;background:var(--sumi);border:1px solid var(--rule);border-radius:6px;color:var(--washi);font-size:12px;padding:4px 7px;outline:none}.dk-edit-input:focus{border-color:var(--move)}.dk-edit-input.num{text-align:right;font-variant-numeric:tabular-nums}.dk-ledger-foot{display:flex;gap:22px;padding:10px 4px 2px;font-family:var(--mono);font-size:12px;color:var(--ash);flex-wrap:wrap}.dk-ledger-foot b{font-weight:500;font-variant-numeric:tabular-nums}.dk-empty{padding:22px;text-align:center;color:var(--ash-dim);font-size:12.5px}.save-indicator{position:fixed;top:max(12px,env(safe-area-inset-top));left:50%;transform:translate(-50%) translateY(-8px);display:flex;align-items:center;gap:8px;padding:8px 14px;background:var(--sumi-3);border:1px solid var(--rule);border-radius:var(--r-pill);box-shadow:var(--shadow);color:var(--ash);font:500 12px var(--body);letter-spacing:.02em;z-index:999;opacity:0;pointer-events:none;transition:opacity .18s ease,transform .18s ease}.save-indicator.show{opacity:1;transform:translate(-50%) translateY(0)}.save-indicator.save-err{color:var(--out);border-color:var(--out)}.save-spinner{width:12px;height:12px;border-radius:50%;border:2px solid var(--rule);border-top-color:var(--move);animation:save-spin .7s linear infinite;flex-shrink:0}.save-indicator.save-err .save-spinner{animation:none;border:none;width:auto;height:auto}.save-indicator.save-err .save-spinner:before{content:"⚠"}@keyframes save-spin{to{transform:rotate(360deg)}}.card{background:var(--sumi-2);border:1px solid var(--rule-soft);border-radius:var(--r-lg);padding:16px}.card+.card{margin-top:16px}.cardhead{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.cardhead-right{display:flex;flex-direction:column;gap:8px;align-items:flex-end}.cardfoot{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:12px;padding-top:12px;border-top:1px solid var(--rule-soft);flex-wrap:wrap}.cardsplit{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px;padding-top:12px;border-top:1px solid var(--rule-soft);font-size:12.5px}.cardsplit:empty{display:none}.statgrid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:16px}.statgrid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}@media(max-width:1340px){.statgrid,.statgrid2{grid-template-columns:minmax(0,1fr)}}.kpis{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.kpi{background:var(--sumi-2);border:1px solid var(--rule-soft);border-radius:var(--r-md);padding:12px;text-align:center}.kpi .k{font-size:10px;color:var(--ash-dim);letter-spacing:.1em;font-family:var(--mono)}.kpi .v{font-family:var(--mono);font-size:15px;margin-top:3px;font-variant-numeric:tabular-nums}.kpi .v.out{color:var(--out)}.kpi .v.in{color:var(--in)}.kpi .v.fee{color:var(--fee)}.legend{display:flex;flex-wrap:wrap;gap:8px 12px;margin-top:12px}.legend span{font-family:var(--mono);font-size:10.5px;color:var(--ash-dim);display:flex;align-items:center;gap:5px}.legend i{width:9px;height:9px;border-radius:2px;display:inline-block}.legend-split{justify-content:space-between}.legend-ramp{gap:4px}.chips{display:flex;gap:8px;flex-wrap:wrap}.chip-f{font-size:12px;border:1px solid var(--rule);border-radius:var(--r-pill);padding:5px 11px;color:var(--ash);background:transparent;cursor:pointer;display:flex;gap:6px;align-items:center;font-family:var(--body)}.chip-f b{font-family:var(--mono);font-size:11px;color:var(--ash-dim);font-weight:400}.chip-f:hover:not(:disabled){color:var(--washi)}.chip-f[aria-pressed=true]{border-color:var(--washi);color:var(--washi);background:var(--sumi-3)}.chip-f[aria-pressed=true] b{color:var(--ash)}.chip-f:disabled{opacity:.4;cursor:default}.rangebadge{display:inline-flex;align-items:center;gap:8px;background:#6e9bf01f;border:1px solid rgba(110,155,240,.4);color:var(--move);border-radius:var(--r-pill);padding:4px 10px;font-family:var(--mono);font-size:11.5px}.rangebadge button{background:none;border:0;color:inherit;cursor:pointer;font-family:inherit;opacity:.7;padding:0}.rangebadge button:hover{opacity:1}.helper{font-size:11.5px;color:var(--ash-dim);margin:8px 0 0;font-family:var(--mono);line-height:1.5}.selbar{position:sticky;bottom:0;z-index:5;display:flex;align-items:center;gap:8px;flex-wrap:wrap;background:var(--sumi-3);border:1px solid var(--rule);border-radius:var(--r-lg);padding:12px;box-shadow:var(--shadow);margin-top:16px}.selbar .count{font-family:var(--mono);font-size:13px;padding-right:12px;border-right:1px solid var(--rule)}.selbar .spacer{margin-left:auto}.selbar .btn:disabled{opacity:.4}.row{display:flex;align-items:center;gap:12px;padding:12px 8px;border-bottom:1px solid var(--rule-soft);border-radius:var(--r-sm)}.row .mark{width:3px;align-self:stretch;border-radius:2px;background:var(--out);flex:0 0 auto}.row.in .mark{background:var(--in)}.row.mv .mark{background:var(--move)}.row .txt{min-width:0;flex:1}.row .t1{font-size:14px}.row .t2{font-size:11.5px;color:var(--ash);display:flex;gap:8px;align-items:center;margin-top:1px}.row .amt{font-family:var(--mono);font-size:14.5px;text-align:right;flex:0 0 auto;font-weight:500;font-variant-numeric:tabular-nums}.row .amt small{display:block;font-size:10.5px;color:var(--ash-dim);font-weight:400}.row .pill{font-family:var(--mono);font-size:10px;border-radius:var(--r-pill);padding:1px 7px;border:1px solid var(--rule);color:var(--ash);background:none;margin:0}.movegrid{display:grid;grid-template-columns:1fr 44px 1fr;gap:12px;align-items:end;margin-top:12px}.movearrow{text-align:center;color:var(--move);font-size:20px;padding-bottom:12px}.movefield{display:flex;gap:6px;margin-top:6px}.movefield .field-cur{max-width:64px}.seg-wide{display:flex;width:100%}.seg-wide .seg-btn{flex:1}.card .field label,.dview .field label{display:block;font-size:11.5px;color:var(--ash);margin-bottom:6px}.card .field+.field{margin-top:10px}.adjwrap{max-width:880px;display:flex;flex-direction:column}.adjtable{padding:0;overflow:hidden}.adjrow{display:grid;grid-template-columns:1.1fr 1fr 1fr 1.4fr;gap:12px;align-items:center;padding:16px;border-bottom:1px solid var(--rule-soft)}.adjrow:last-child{border-bottom:0}.adjhead{padding:12px 16px;background:#00000026;border-bottom:1px solid var(--rule)}.adjname{font-size:14.5px;font-weight:600}.adjsub{font-size:11.5px;color:var(--ash)}.adjbook{font-size:15px;color:var(--ash);font-variant-numeric:tabular-nums}.adjdiff{text-align:right}.adjdiff .mono{font-size:16px}.adjsummary{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;border-color:var(--rule)}.adjactions{display:flex;gap:8px}.cb{width:17px;height:17px;border-radius:5px;border:1.5px solid var(--rule);flex:0 0 auto;display:grid;place-items:center;font-size:11px;color:transparent}.cb.on{background:var(--move);border-color:var(--move);color:#0b0e14}.msel{position:fixed;left:12px;right:12px;bottom:14px;z-index:60;background:#171c26f5;border:1px solid var(--rule);border-radius:var(--r-xl);padding:12px;box-shadow:var(--shadow);backdrop-filter:blur(16px)}.msel-head{display:flex;justify-content:space-between;font-size:12.5px;color:var(--ash);margin-bottom:12px}.msel-row{display:flex;gap:8px;margin-top:8px}.msel-row .btn{flex:1;padding-left:4px;padding-right:4px}@media(min-width:1100px){.msel{display:none}}.chart-flat{height:auto;padding:0;overflow-x:auto}.chart-flat svg{width:100%;height:auto;display:block}#st-heat svg{min-width:260px}.dk-drag{cursor:ew-resize;user-select:none}.btn-block{width:100%}.btn-ghost.btn-block+.btn-block,.btn.btn-block+.btn.btn-block{margin-top:8px}.app.is-selecting .nav{display:none}.btn-primary:disabled{background:transparent;color:var(--ash-dim);border-color:var(--rule)}.statgrid2,.dk-split-card{display:flex;flex-direction:column;gap:12px}.dk-split-card .donut-wrap{flex:1}.dk-split-card #dk-see-entries{margin-top:auto}.kpis-wide{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:16px}@media(max-width:900px){.kpis-wide{grid-template-columns:repeat(2,minmax(0,1fr))}}.apptitle-wrap{display:flex;align-items:center;gap:8px}.apptitle-logo{display:block}.apptitle{font-family:var(--display);font-size:19px;font-weight:600;letter-spacing:-.02em;margin:0}.header{align-items:center}.search{display:flex;align-items:center;gap:8px;background:var(--sumi-2);border:1px solid var(--rule);border-radius:var(--r-md);padding:9px 12px;margin-top:4px}.search-glyph{color:var(--ash-dim);font-size:15px}.search input{flex:1;min-width:0;background:none;border:0;outline:none;color:var(--washi);font-family:var(--body);font-size:14px}.search input::placeholder{color:var(--ash-dim)}button.row{width:100%;background:none;color:var(--washi);text-align:left;cursor:pointer;font-family:var(--body);border:0;border-bottom:1px solid var(--rule-soft);transition:background .12s ease}button.row:active,button.row:hover{background:var(--sumi-2)}.row.in .amt{color:var(--in)}.row.sel{background:#6e9bf01a;border-bottom-color:transparent;box-shadow:inset 2px 0 0 var(--move)}.row .amt.lg-strike{text-decoration:line-through;opacity:.55}.row .t2{flex-wrap:wrap}#home-kpis,#month-row{grid-template-columns:repeat(4,1fr)}#home-kpis .kpi,#month-row .kpi{padding:10px 4px}#home-kpis .v,#month-row .v{font-size:12.5px;overflow-wrap:anywhere}.srow{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 2px;border-bottom:1px solid var(--rule-soft)}.srow .sl{font-size:14px}.srow .sd{font-size:11.5px;color:var(--ash);margin-top:1px}.srow-input{width:128px;flex:0 0 auto;background:var(--sumi-3);border:1px solid var(--rule);border-radius:var(--r-md);padding:8px 10px;color:var(--washi);font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:14px;text-align:right}.srow-input:focus{outline:none;border-color:var(--move);box-shadow:var(--ring)}.srow input[type=checkbox]{width:20px;height:20px;accent-color:var(--in);flex:0 0 auto}.row .amt small.is-fee{color:var(--fee)}.is-commit{color:var(--commit)}.is-dim{color:var(--ash-dim)}.pill.sub{color:var(--commit);border-color:#a99ae066}.commitbar{display:flex;height:8px;margin-top:10px;border-radius:var(--r-pill);overflow:hidden;background:var(--sumi-3)}.commitbar>i,.commitbar>span{display:block;height:100%;background:var(--commit)}.committed-line{display:block;width:100%;margin-top:10px;padding:0;border:0;background:none;color:var(--ash);font-family:var(--body);font-size:12.5px;line-height:1.5;text-align:left;cursor:pointer}.committed-line b{font-weight:500}.strip{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;align-items:end;gap:3px;margin-top:12px}.strip i{display:block;border-radius:3px;background:var(--sumi-3)}.strip i.has{background:#a99ae04d}.strip i.big{background:var(--commit)}.strip i.today{outline:1.5px solid var(--washi);outline-offset:1px}.strip-lg{gap:4px}.striplbl{display:flex;justify-content:space-between;font-family:var(--mono);font-size:9.5px;color:var(--ash-dim);margin-top:5px}.subs-back{margin:2px 0 6px}.hero-commit{padding-bottom:18px;border-bottom:1px solid var(--rule-soft)}.hero-commit .big{color:var(--commit)}.card-commit{border-color:#a99ae073;background:#a99ae00f}.subnext-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.subnext-name{font-size:14px}.subnext-meta{font-size:11.5px;color:var(--ash);margin-top:2px}.subnext-amt{font-size:15px;color:var(--commit);text-align:right}.subnext-amt small{display:block;font-size:10.5px;color:var(--ash-dim)}.row.sb .mark{background:var(--commit)}.row.is-off{opacity:.5}.subalert{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 10px;border:1px solid rgba(217,164,65,.35);border-radius:var(--r-md);background:#d9a4410d}.subalert+.subalert{margin-top:8px}.subalert .txt{flex:1;min-width:160px}.subalert .t1{font-size:13.5px}.subalert .t2{font-size:11.5px;color:var(--ash);margin-top:2px}.dot{width:6px;height:6px;border-radius:var(--r-pill);background:var(--commit);flex:0 0 auto}.dot.warn{background:var(--fee)}.dot.bad{background:var(--out)}.dot.off{background:var(--ash-dim)}.subs-empty{border:1px solid rgba(169,154,224,.4);border-radius:var(--r-md);background:#a99ae00d;padding:20px 16px;margin-top:16px}.subs-empty h4{font-family:var(--display);font-size:17px;font-weight:600;margin:0}.subs-empty p{color:var(--ash);font-size:13px;margin:8px 0 0}.suggest-list{margin:12px 0}.suggest-row{display:flex;align-items:center;gap:10px;font-size:13px;padding:7px 0;border-bottom:1px solid var(--rule-soft)}.suggest-row span:nth-of-type(1){flex:1;min-width:0}.suggest-row input{width:18px;height:18px;accent-color:var(--commit);flex:0 0 auto}.sub-sheet-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding-bottom:14px;margin-bottom:4px;border-bottom:1px solid var(--rule-soft)}.sub-sheet-name{font-family:var(--display);font-size:17px;font-weight:600}.sub-sheet-meta{font-size:12px;color:var(--ash);margin-top:2px}.sub-sheet-amt{font-size:18px;color:var(--commit);text-align:right}.sub-sheet-amt small{display:block;font-size:10.5px;color:var(--ash-dim)}.sub-sheet-actions{display:grid;gap:8px;margin-top:18px}.sub-sheet-actions .btn{justify-content:flex-start}.sheetcard{position:fixed;left:12px;right:12px;bottom:96px;z-index:40;background:#171c26f7;border:1px solid rgba(169,154,224,.5);border-radius:var(--r-xl);padding:16px;box-shadow:var(--shadow);backdrop-filter:blur(16px)}.due-head{display:flex;align-items:center;gap:8px;margin-bottom:12px}.due-date{margin-left:auto;font-family:var(--mono);font-size:11.5px;color:var(--ash)}.due-row{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.due-name{font-size:16px}.due-amt{font-size:20px;color:var(--commit)}.due-meta{font-size:12.5px;color:var(--ash);margin-top:4px}.due-actions{display:flex;gap:8px;margin-top:8px}.due-actions .btn{flex:1}.app.is-selecting .sheetcard{display:none}.dnav-badge{margin-left:auto;font-family:var(--mono);font-size:10px;color:var(--commit);border:1px solid rgba(169,154,224,.4);border-radius:var(--r-pill);padding:0 6px}.dside-commit{font-size:20px;color:var(--commit);font-variant-numeric:tabular-nums}.dk-cardhead-row{display:flex;align-items:flex-end;justify-content:space-between;gap:24px}.dk-sub-strip-right{text-align:right}.dk-sub-strip-right .mono{font-size:18px}.dk-subtable{padding:0;overflow:hidden}.subhead,.subrow{display:grid;grid-template-columns:minmax(0,1.6fr) 118px 132px 124px 108px;gap:12px;align-items:center;padding:12px 14px}.subhead{border-bottom:1px solid var(--rule);background:#00000026}.subhead span{font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--ash-dim)}.subrow{border-bottom:1px solid var(--rule-soft);border-left:2px solid transparent;cursor:pointer}.subrow:last-child{border-bottom:0}.subrow:hover{background:#ffffff05}.subrow.due{border-left-color:var(--commit);background:#a99ae00f}.subrow.off{opacity:.5}.subname .t1{font-size:14.5px}.subname .t2{font-size:11.5px;color:var(--ash);margin-top:1px;display:flex;gap:8px;align-items:center}.subrow .samt,.subrow .speriod,.subrow .snext{font-size:14px;font-variant-numeric:tabular-nums}.subrow .speriod,.subrow .snext{font-size:12.5px;color:var(--ash)}.subrow .samt small,.subrow .snext small{display:block;font-size:10.5px;color:var(--ash-dim)}.subrow .num{text-align:right}.dk-alertcard{padding:0;overflow:hidden}.dk-alertcard.is-warn{border-color:#d9a44159}.dk-alertrow{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 14px}.dk-alertrow+.dk-alertrow{border-top:1px solid var(--rule-soft)}.dk-alertrow .txt{flex:1;min-width:200px}.dk-alertrow .t1{font-size:13.5px}.dk-alertrow .t2{font-size:11.5px;color:var(--ash);margin-top:2px}.dk-yearchart{width:100%;height:130px;margin-top:12px;display:block}.subformgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:12px}.subformgrid .field{margin:0}.subformgrid .field:nth-child(4){grid-column:span 2}table.mini td.strong{color:var(--washi)}.helper.warn{color:var(--fee)}@media(max-width:1400px){.subformgrid{grid-template-columns:repeat(2,minmax(0,1fr))}.subformgrid .field:nth-child(4){grid-column:span 2}}.ink-commit{color:var(--commit)}.fact.is-commit{border-color:#a99ae066;color:var(--commit)}.cmd-amt.is-commit{color:var(--commit)}.cmd-row.is-sub{border-left:2px solid var(--commit);padding-left:8px}.trend-seg{margin-top:12px;align-self:flex-start}.trend-note{margin-top:6px;max-width:34em}.chip-week{margin-left:auto;border-color:#a99ae073;color:var(--commit)}.chip-week:hover{color:var(--commit);border-color:var(--commit)}.poster-wrap{margin-top:14px;border:1px solid var(--rule);border-radius:var(--r-md);overflow:hidden;background:#0e1116}.poster-wrap svg{display:block;width:100%;height:auto}.week-actions{display:flex;gap:10px;margin-top:14px}.week-actions .btn{margin-top:0}.chip-sep{width:1px;align-self:stretch;background:var(--rule);margin:2px 4px}:root{--cap-violet: #8a3ff2;--cap-pink: #e0288f;--cap-spend: #f0509e;--cap-indigo: #25235e;--cap-card: #161a2b;--cap-line: #262b40}.fab-add{position:fixed;right:max(16px,calc(50% - 204px));bottom:calc(80px + env(safe-area-inset-bottom));width:56px;height:56px;display:flex;align-items:center;justify-content:center;border:0;border-radius:18px;background:linear-gradient(135deg,var(--cap-violet),var(--cap-pink));box-shadow:0 10px 26px #8a3ff259;cursor:pointer;z-index:51}.fab-add:active{transform:scale(.95)}.fab-add svg{width:24px;height:24px;stroke:#fff;fill:none;stroke-width:2.4;stroke-linecap:round}.is-capture .fab-add,.cap-close,.cap-title{display:none}.app.is-capture{background:radial-gradient(120% 60% at 0% 0%,rgba(122,32,110,.55),transparent 60%),#0d1020;background-repeat:no-repeat}.is-capture .header{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:18px 18px 14px}.app.is-capture .apptitle-wrap{display:none}.is-capture .cap-close{display:flex;justify-self:start;width:38px;height:38px;align-items:center;justify-content:center;background:none;border:0;color:var(--washi);cursor:pointer;margin-left:-8px}.cap-close svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round}.is-capture .cap-title{display:block;text-align:center}.cap-title-sub{font-size:11px;letter-spacing:.3em;color:var(--ash);margin-bottom:2px}.cap-title-main{font-family:var(--display);font-size:19px;font-weight:700;letter-spacing:-.01em}.is-capture #unit-toggle{justify-self:end}.is-capture #add-mode{display:flex;width:100%;background:#0c0f1c;border:1px solid var(--cap-line);border-radius:14px;padding:4px;margin-bottom:14px}.is-capture #add-mode .seg-btn{font-size:14px;font-weight:600;padding:11px 8px;border-radius:10px;color:var(--ash)}.is-capture #add-mode .seg-btn.active{background:var(--cap-indigo);color:#fff;box-shadow:none}.is-capture .composer{background:var(--cap-card);border-color:var(--cap-line);border-radius:16px;padding:8px 14px 10px}.is-capture .composer:focus-within{border-color:#8a3ff28c;box-shadow:0 0 0 3px #8a3ff21f}.is-capture .composer-input{font-family:var(--body);font-size:15px;padding:10px 2px 14px;min-height:72px;border-bottom:1px solid var(--cap-line);resize:none}.is-capture .composer-bar{gap:18px;padding:10px 4px 0}.cap-tool{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:48px;background:none;border:0;padding:2px 4px;color:var(--ash);font-family:var(--body);font-size:11.5px;cursor:pointer;touch-action:none;user-select:none;-webkit-user-select:none}.cap-tool svg{width:22px;height:22px;stroke:var(--washi);fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.cap-tool:disabled{opacity:.55}.cap-tool.live,.cap-tool.live svg{color:var(--cap-spend);stroke:var(--cap-spend)}.is-capture .keys{flex-wrap:nowrap;overflow-x:auto;gap:8px;margin:0 -14px;padding:12px 14px 2px;scrollbar-width:none;-webkit-mask-image:linear-gradient(90deg,#000 88%,transparent);mask-image:linear-gradient(90deg,#000 88%,transparent)}.is-capture .keys::-webkit-scrollbar{display:none}.is-capture .key{flex-shrink:0;border:1px solid var(--cap-line);border-radius:8px;padding:5px 10px;color:var(--ash);font-family:var(--body);font-size:11.5px}.is-capture .key kbd{background:none;border:0;padding:0;font-size:12px}.cap-preview{background:var(--cap-card);border:1px solid var(--cap-line);border-radius:16px;padding:16px 18px 14px;margin-top:14px}.cap-preview-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.cap-preview-head .eyebrow{font-size:11px;letter-spacing:.2em}.cap-badge{display:inline-flex;align-items:center;gap:6px;background:#8a3ff229;color:#b48cff;border-radius:8px;padding:4px 10px;font-size:12px;font-weight:600}.cap-badge svg{width:12px;height:12px;fill:currentColor}.cap-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:start;gap:0 10px;padding:12px 0}.cap-row+.cap-row{border-top:1px solid var(--cap-line)}.cap-row-main{min-width:0}.cap-name{display:block;font-family:var(--display);font-size:18px;font-weight:700;color:#fff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cap-name i{color:var(--ash-dim);font-weight:500}.cap-meta{display:flex;align-items:center;gap:8px;margin-top:4px;min-width:0}.cap-meta-text{font-size:12.5px;color:var(--ash);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.cap-meta-text em{font-style:normal;color:var(--ash-dim);margin:0 6px}.cap-pencil,.cap-x{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:30px;height:30px;background:none;border:0;border-radius:8px;color:var(--ash);cursor:pointer}.cap-pencil[aria-pressed=true]{background:#8a3ff22e;color:#b48cff}.cap-pencil svg,.cap-x svg{width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.cap-x{margin-top:1px}.cap-amt{font-family:var(--mono);font-size:22px;font-weight:500;font-variant-numeric:tabular-nums;white-space:nowrap;line-height:1.3}.cap-amt.is-out{color:var(--cap-spend)}.cap-amt.is-in{color:var(--in)}.cap-amt.is-commit{color:var(--commit)}.cap-edit{grid-column:1 / -1;display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}.cap-field{display:flex;flex-direction:column;gap:4px;min-width:0}.cap-field-wide{grid-column:1 / -1}.cap-field span{font-size:11px;color:var(--ash);letter-spacing:.04em}.cap-field input{width:100%;min-width:0;background:#0e1120;border:1px solid var(--cap-line);border-radius:10px;padding:9px 10px;color:var(--washi);font-family:var(--body);font-size:15px;outline:none;color-scheme:dark}.cap-field input:focus{border-color:#8a3ff299}.cap-total{display:flex;align-items:baseline;gap:10px;padding-top:14px;margin-top:2px;border-top:1px solid var(--cap-line)}.cap-total .eyebrow{flex:1;font-size:11px;letter-spacing:.2em}.cap-total b{font-family:var(--mono);font-size:22px;font-weight:500;font-variant-numeric:tabular-nums}.cap-total .sub{font-size:13px}.cap-foot{position:fixed;left:50%;transform:translate(-50%);bottom:calc(64px + env(safe-area-inset-bottom));width:100%;max-width:440px;padding:14px 18px 12px;background:#0d1020;border-top:1px solid var(--rule-soft);z-index:49}.cap-commit{width:100%;height:50px;border:0;border-radius:12px;background:linear-gradient(90deg,var(--cap-violet),var(--cap-pink));color:#fff;font-family:var(--body);font-size:16px;font-weight:700;cursor:pointer}.cap-commit:disabled{background:var(--sumi-3);color:var(--ash-dim);cursor:default}.cap-foot-hint{text-align:center;font-size:12.5px;color:var(--ash);margin-top:10px}.is-capture .scroll{padding-bottom:calc(230px + env(safe-area-inset-bottom))}.man-top{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;margin-bottom:12px}.pill-seg{display:flex;gap:6px}.mpill{background:#0e1120;border:1px solid var(--cap-line);border-radius:10px;padding:8px 14px;color:var(--ash);font-family:var(--body);font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap}.mpill.active{background:var(--cap-card);border-color:#3a4060;color:#fff}.amt-card{display:flex;flex-direction:column;align-items:center;gap:6px;background:var(--cap-card);border:1px solid var(--cap-line);border-radius:16px;padding:22px 16px 16px;margin-bottom:12px;cursor:text}.amt-card:focus-within{border-color:#8a3ff28c;box-shadow:0 0 0 3px #8a3ff21f}.amt-line{display:flex;align-items:baseline;justify-content:center;gap:8px;width:100%}.amt-sym{font-family:var(--mono);font-size:24px;color:var(--ash)}.amt-input{width:1.4ch;max-width:80%;min-width:0;background:none;border:0;outline:none;color:#fff;font-family:var(--mono);font-size:44px;font-weight:500;font-variant-numeric:tabular-nums;text-align:center;padding:0}.amt-input::placeholder{color:#fff}.amt-input:focus::placeholder{color:var(--ash-dim)}.amt-conv{font-family:var(--mono);font-size:12px;color:var(--ash)}#add-fee{color:var(--fee)}.cap-input,.cap-select{width:100%;min-width:0;background:#0e1120;border:1px solid var(--cap-line);border-radius:12px;padding:12px 14px;color:var(--washi);font-family:var(--body);font-size:15px;outline:none;color-scheme:dark}.cap-input::placeholder{color:var(--ash-dim)}.cap-input:focus,.cap-select:focus{border-color:#8a3ff299}.cap-select{appearance:none;-webkit-appearance:none;padding-right:34px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23c9cfdb' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:14px}.cap-label{font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ash);margin:16px 0 8px}.cat-chips{display:flex;flex-wrap:wrap;gap:8px}.cat-chip,.cat-more{background:#0e1120;border:1px solid var(--cap-line);border-radius:10px;padding:8px 16px;color:var(--washi);font-family:var(--body);font-size:13.5px;font-weight:500;cursor:pointer}.cat-chip.active{background:#2a2358;border-color:#6a55c8;color:#fff}.cat-chip.is-extra{display:none}.cat-chips.is-open .cat-chip.is-extra,.cat-chip.is-extra.active{display:inline-block}.cat-more{color:#b48cff;border-color:transparent}.cap-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.cap-field-col{display:flex;flex-direction:column;min-width:0}#add-cur-label,.cap-grid .cap-label{margin-top:16px}.move-card{background:var(--cap-card);border:1px solid var(--cap-line);border-radius:16px;padding:2px 16px 16px}.move-line{display:grid;grid-template-columns:1fr 64px 1fr;gap:8px}.move-cur{padding-left:12px;padding-right:26px;background-position:right 8px center}.move-arrow{text-align:center;color:var(--ash-dim);font-size:18px;margin:10px 0 -8px}.move-fee{font-family:var(--mono);font-size:12px;color:var(--fee);margin-top:12px;min-height:1em}.move-note{font-size:12.5px;line-height:1.5;color:var(--ash);margin:12px 2px 0}.move-cost .panel-sub{font-family:var(--mono);font-size:12px;color:var(--ash)}.brand-tile{width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:var(--sumi-2);border:1px solid var(--rule-soft);border-radius:12px;flex-shrink:0}.app .apptitle-wrap{display:flex;align-items:center;gap:12px}.app .brand{font-size:19px;font-weight:700;color:#fff}.app .brand-sub{color:var(--ash);font-family:var(--body);letter-spacing:.2em}.app .seg{background:var(--sumi-2);border:1px solid var(--rule-soft)}.app .seg-btn.active{background:var(--cap-indigo);color:#fff;box-shadow:none}.app .seg-sm .seg-btn{font-family:var(--body);font-weight:600}.app:has(.tab[data-tab=home].active){background:radial-gradient(90% 40% at 0% 0%,rgba(122,32,110,.35),transparent 65%),var(--sumi);background-repeat:no-repeat}.app .hero{border-bottom:0;padding:4px 2px 18px}.app .hero .eyebrow{font-family:var(--body);font-size:11px;letter-spacing:.14em}.app .hero .big{font-size:46px;color:#fff;letter-spacing:-.02em}.app .hero-sym{font-size:inherit;color:inherit;margin-right:0}.app .runway{font-size:14px;color:var(--ash);margin-top:6px}.app .runway b{font-family:var(--body);font-weight:700;color:var(--cap-spend)}.app .runway b.is-in{color:var(--in)}.app .trend-seg{margin-top:14px}.app .trend-seg .seg-btn{font-size:12.5px;padding:7px 12px}.committed-line .commitbar{margin-top:0;height:7px}.committed-cap{display:block;margin-top:8px;font-size:12px;color:var(--ash)}.app #home-committed{margin-top:16px}.app .bucket-row{margin-top:4px;gap:10px}.app .bucket{border-radius:12px;padding:14px 14px 12px;background:var(--sumi-2);border-color:var(--rule-soft)}.app .bucket .n{font-size:12px}.app .bucket .v{font-size:16px;margin-top:6px;color:#fff}.app .bucket.is-invest .v{color:var(--move)}.app .applbl{font-family:var(--body);font-size:11px;letter-spacing:.16em;color:var(--ash);margin:26px 0 4px;padding-bottom:10px;border-bottom:1px solid var(--rule-soft)}.app .applbl .link-btn{font-family:var(--body);font-size:12.5px;font-weight:600;letter-spacing:0;text-transform:none;color:#b48cff}.app #home-kpis{grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}.app .kpi{text-align:left;border-radius:12px;padding:14px 14px 12px}.app .kpi .k{font-family:var(--body);font-size:12px;letter-spacing:0;text-transform:capitalize;color:var(--ash)}.app .kpi .v{font-size:17px;margin-top:6px}.app .kpi .v.fee,.app .kpi .v:not(.out):not(.in){color:#fff}.app button.row{border-radius:0;padding:12px 2px;gap:12px}.app button.row:hover,.app button.row:active{background:#ffffff05}.app .row .mark{background:var(--mark, var(--out));width:3px}.app .row .t1{font-size:15px;color:#fff}.app .row .t2{font-size:12px;gap:6px;margin-top:2px}.app .row .amt{color:var(--out);font-size:15px}.app .row.in .amt{color:var(--in)}.app .row .pill.sub{font-family:var(--body);font-size:10.5px;color:var(--ash);background:var(--sumi-2);border-color:var(--rule);padding:1px 8px}.app .tab[data-tab=home] .row .mark{display:none}.app .search{background:var(--sumi-2);border-color:var(--rule-soft);border-radius:12px;padding:13px 14px}.lg-bar{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:14px}.lg-bar .chip-row{margin-top:0}.app #lg-kind .chip{border-radius:10px;padding:7px 14px;font-size:13px;font-weight:600;border-color:var(--rule);color:var(--ash)}.app #lg-kind .chip.active{background:var(--cap-indigo);border-color:#5b4fc4;color:#fff}.lg-filters-btn{display:inline-flex;align-items:center;gap:6px;background:none;border:1px solid var(--rule);border-radius:10px;padding:7px 14px;color:var(--washi);font-family:var(--body);font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap}.lg-filters-btn svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linejoin:round}.lg-filters-btn.active,.lg-filters-btn[aria-expanded=true]{border-color:#5b4fc4;color:#cbb8ff}.lg-filters{margin-top:4px}.app .lg-summary{justify-content:space-between;margin-top:16px;font-size:13px}.lg-count{font-family:var(--body);color:var(--ash)}.lg-totals{display:flex;gap:8px}.app .spend-yen{color:var(--out)}.app .income-yen{color:var(--in)}.app .lg-day{font-family:var(--body);font-size:11px;letter-spacing:.16em;text-transform:uppercase;padding:18px 2px 8px;border-bottom:1px solid var(--rule-soft)}.app .lg-day .spend-yen,.app .lg-day .income-yen{font-family:var(--mono)}.modal-sheet{background:#111427;border-color:var(--rule-soft)}.modal-eyebrow{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--ash)}#edit-modal .modal-title{font-size:19px;font-weight:700;color:#fff;margin-top:2px}#edit-modal .modal-close{background:none;border:0;color:var(--ash)}#edit-modal .modal-close svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round}.edit-body{padding-top:14px}.edit-body .cap-label small{text-transform:none;letter-spacing:.02em;font-weight:400}.edit-amt{font-family:var(--mono);font-size:17px}.edit-math,.edit-fee{font-family:var(--mono);font-size:12px;color:#b48cff;margin-top:8px;min-height:1em}.edit-fee{color:var(--ash)}.edit-fee:empty,.edit-math:empty{display:none}.edit-save{margin-top:20px}.edit-delete{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;margin-top:12px;padding:8px;background:none;border:0;color:var(--ash);font-family:var(--body);font-size:13.5px;font-weight:600;cursor:pointer}.edit-delete:hover{color:var(--out)}.edit-delete svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
