@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2) format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--accent: #0f766e;--accent-soft: #e6f2f0;--ink: #16191d;--ink-2: #4b5159;--ink-3: #8a8f98;--line: #eceef0;--page: #f8f9f8;--card: #ffffff;--up: #0f766e;--neg: #b42318;--warn-bg: #fdf3e1;--warn: #92600a;--radius: 18px;--gap: 20px;color-scheme:light;font-family:Inter Variable,system-ui,-apple-system,Segoe UI,sans-serif;font-feature-settings:"tnum" 1,"cv11" 1;color:var(--ink);background:var(--page);-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{margin:0;background:var(--page)}h1,h2{margin:0;font-weight:600;letter-spacing:-.01em}p{margin:0;line-height:1.55}.app{min-height:100vh;display:flex;flex-direction:column}.topbar{position:sticky;top:0;z-index:10;display:flex;flex-direction:column;gap:10px;padding:14px 32px 12px;background:#f8f9f8e0;-webkit-backdrop-filter:saturate(1.4) blur(12px);backdrop-filter:saturate(1.4) blur(12px);border-bottom:1px solid var(--line)}.topbar-row{display:flex;align-items:center;gap:20px;max-width:1116px;width:100%;margin:0 auto}.topbar>.pills{max-width:1116px;width:100%;margin:0 auto}.brand{display:flex;align-items:center;gap:10px;font-weight:650;font-size:17px;white-space:nowrap;color:inherit;text-decoration:none}.nav{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none}.nav::-webkit-scrollbar{display:none}.nav a{color:var(--ink-2);text-decoration:none;font-size:14px;font-weight:500;padding:7px 10px;border-radius:9px;white-space:nowrap}.nav a:hover{background:#eff1f0;color:var(--ink)}.nav a.nav-on{color:var(--accent);background:var(--accent-soft)}.brand-mark{width:22px;height:22px;border-radius:7px;background:var(--accent);position:relative}.brand-mark:after{content:"";position:absolute;inset:6px;border-radius:50%;border:2px solid #fff}.pills{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;flex:1}.pills::-webkit-scrollbar{display:none}.pill{border:1px solid transparent;background:transparent;color:var(--ink-2);padding:5px 13px;border-radius:999px;font:inherit;font-size:14px;cursor:pointer;white-space:nowrap;transition:background .15s,color .15s}.pill:hover{background:#eff1f0;color:var(--ink)}.pill-on,.pill-on:hover{background:var(--accent);color:#fff}.content{width:100%;max-width:1180px;margin:0 auto;padding:32px;flex:1}.dash{display:grid;gap:var(--gap)}.tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--gap)}.two-up{display:grid;grid-template-columns:1fr 1fr;gap:var(--gap)}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:24px 26px;min-width:0}.card-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:18px;flex-wrap:wrap}.card-head h2{font-size:15px;color:var(--ink)}.label{font-size:13px;color:var(--ink-3);font-weight:500}.muted{color:var(--ink-3);font-size:14px}.neg{color:var(--neg)}.up{color:var(--up);font-weight:600}.hero{padding:34px 32px 26px}.hero-number{font-size:clamp(40px,6vw,60px);font-weight:650;letter-spacing:-.035em;margin:6px 0 8px;line-height:1.05}.hero-sub{color:var(--ink-2);font-size:15px;display:flex;align-items:center;flex-wrap:wrap;gap:4px 8px}.dot{width:4px;height:4px;background:var(--ink-3);border-radius:50%;display:inline-block}.tile{padding:22px 22px 20px}.tile-number{font-size:26px;font-weight:650;letter-spacing:-.02em;margin:8px 0 4px}.tile-sub{font-size:13px;color:var(--ink-3)}.tile-accent{background:var(--accent);border-color:var(--accent);color:#fff}.tile-accent .label,.tile-accent .tile-sub{color:#ffffffbf}.chart-tall{height:280px;margin:0 -6px}.donut{display:flex;align-items:center;gap:28px}.donut-chart{width:150px;height:150px;flex:none}.legend{list-style:none;margin:0;padding:0;display:grid;gap:10px;flex:1;min-width:0;font-size:14px}.legend li{display:grid;grid-template-columns:10px 1fr auto 40px;align-items:center;gap:10px}.legend-label{color:var(--ink-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.legend-value{font-weight:600}.legend-pct{color:var(--ink-3);text-align:right;font-size:13px}.legend-inline{display:flex;flex-wrap:wrap;gap:8px 20px;margin-top:14px;color:var(--ink-2);font-size:13px}.legend-inline li{display:flex;gap:8px}.swatch{width:10px;height:10px;border-radius:3px;display:inline-block;flex:none}.swatch-line{height:3px;width:16px;border-radius:2px}.swatch-dash{width:16px;height:0;border-top:2px dashed var(--ink-3);border-radius:0}.tip{background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px 14px;box-shadow:0 8px 28px #16191d14;font-size:13px;min-width:220px;max-width:320px}.tip-title{font-weight:600;margin-bottom:6px}.tip-row{display:flex;justify-content:space-between;gap:16px;color:var(--ink-2);padding:2px 0}.tip-sub{border-top:1px solid var(--line);margin-top:6px;padding-top:6px}.list{list-style:none;margin:0;padding:0}.list li{display:flex;align-items:center;gap:14px;padding:12px 0;border-top:1px solid var(--line)}.list li:first-child{border-top:0;padding-top:0}.list-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.list-title{font-size:14px;font-weight:550;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.list-sub{font-size:13px;color:var(--ink-3)}.list-value{font-weight:600;font-size:14px;white-space:nowrap}.tag{display:inline-block;font-size:11px;font-weight:600;padding:1px 7px;border-radius:999px;margin-left:8px}.tag-warn{background:var(--warn-bg);color:var(--warn)}.loans{display:grid;grid-template-columns:1fr 1fr;gap:16px}.loan{background:var(--page);border-radius:14px;padding:16px 18px}.loan-number{font-size:22px;font-weight:650;letter-spacing:-.02em;margin:4px 0}.explain{margin-top:16px;font-size:13px;color:var(--ink-2)}.explain summary{cursor:pointer;color:var(--ink-3);list-style:none;width:fit-content}.explain summary::-webkit-details-marker{display:none}.explain summary:before{content:"＋ "}.explain[open] summary:before{content:"－ "}.explain p{margin-top:8px;max-width:70ch}.btn{font:inherit;font-size:14px;font-weight:550;border-radius:10px;padding:10px 18px;border:1px solid var(--line);background:#fff;color:var(--ink);cursor:pointer}.btn:disabled{opacity:.5;cursor:default}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-quiet{border-color:transparent;background:transparent;color:var(--ink-3);padding:6px 10px}.btn-quiet:hover{color:var(--ink)}.btn-danger:hover{color:var(--neg)}.welcome{max-width:560px;margin:8vh auto;padding:40px;display:grid;gap:16px;justify-items:start}.welcome h1{font-size:26px}.welcome p{color:var(--ink-2)}.loading{color:var(--ink-3);text-align:center;padding:20vh 0}.notice{padding:14px 18px;border-radius:12px;margin-bottom:var(--gap);font-size:14px}.notice-error{background:#fdecea;color:var(--neg)}.footer{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;max-width:1180px;width:100%;margin:0 auto;padding:8px 32px 32px;font-size:12px;color:var(--ink-3)}.footer-actions{display:flex;gap:4px}.page{display:grid;gap:var(--gap)}.page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:4px}.page-head h1{font-size:28px;letter-spacing:-.02em}.page-head .muted{margin-top:4px}.back{display:inline-block;color:var(--ink-3);text-decoration:none;font-size:14px;margin-bottom:8px}.back:hover{color:var(--ink)}.detail-sub{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}.row-gap{display:flex;gap:10px;flex-wrap:wrap}.empty{color:var(--ink-3);text-align:center;padding:48px 24px}.tiles-2{grid-template-columns:repeat(2,1fr)}.tiles-3{grid-template-columns:repeat(3,1fr)}.filters{display:grid;gap:10px}.chips{display:flex;gap:6px;flex-wrap:wrap}.chip{font:inherit;font-size:13px;padding:6px 12px;border-radius:999px;cursor:pointer;border:1px solid var(--line);background:#fff;color:var(--ink-2)}.chip:hover{border-color:#d7dbdf;color:var(--ink)}.chip-on,.chip-on:hover{background:var(--ink);border-color:var(--ink);color:#fff}.chip-count{opacity:.55;margin-left:2px}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--gap)}.inv-card{color:inherit;text-decoration:none;display:flex;flex-direction:column;gap:4px;transition:border-color .15s,box-shadow .15s}.inv-card:hover{border-color:#d7dbdf;box-shadow:0 6px 24px #16191d0d}.inv-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.inv-type{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--ink-3)}.inv-name{font-size:17px;font-weight:600;letter-spacing:-.01em}.inv-figures{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:18px 0 14px}.inv-figures .label{font-size:12px}.inv-fig{font-weight:600;font-size:15px;margin-top:2px}.inv-foot{border-top:1px solid var(--line);padding-top:12px;margin-top:auto}.tag-active{background:var(--accent-soft);color:var(--accent)}.tag-planned{background:#eef2ff;color:#4338ca}.tag-returned{background:#f1f3f5;color:var(--ink-2)}.tag-written_off{background:#fdecea;color:var(--neg)}.page-head .tag,.list-sub .tag{margin-left:0}.timeline{list-style:none;margin:0;padding:0;position:relative}.timeline li{display:flex;align-items:center;gap:14px;padding:10px 0;position:relative}.timeline li:not(:last-child):after{content:"";position:absolute;left:5px;top:30px;bottom:-10px;width:2px;background:var(--line)}.tl-dot{width:12px;height:12px;border-radius:50%;border:2px solid var(--accent);background:#fff;flex:none;z-index:1}.timeline li.done .tl-dot{background:var(--accent)}.details{margin:0;display:grid;gap:10px}.details div{display:flex;justify-content:space-between;gap:16px;font-size:14px;border-bottom:1px solid var(--line);padding-bottom:10px}.details dt{color:var(--ink-3)}.details dd{margin:0;font-weight:550;text-align:right}.notes-label{margin-top:18px}.notes{font-size:14px;color:var(--ink-2);margin-top:4px;white-space:pre-wrap}.delete-link{margin-top:18px;padding-left:0}.cash-card{display:flex;flex-direction:column}.btn-update{margin-top:16px;align-self:flex-start}.history{list-style:none;padding:0;margin:8px 0 0;display:grid;gap:6px}.history li{display:flex;justify-content:space-between}.link{background:none;border:0;padding:0;font:inherit;color:inherit;cursor:pointer;text-align:left;text-decoration:none}.link:hover{color:var(--accent)}.list-spaced{margin-top:12px}.explain-top{margin-top:0}.btn-small{padding:6px 12px;font-size:13px}.btn-danger-solid{color:var(--neg);border-color:#f3c7c2}.btn-danger-solid:hover{background:#fdecea}.data-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}.data-actions>div{display:flex;flex-direction:column;gap:6px;align-items:flex-start}.data-actions .list-sub{margin-bottom:8px;flex:1}.notice:not(.notice-error){background:var(--accent-soft);color:var(--accent);margin:16px 0 0}.verdict{border-radius:14px;padding:16px 20px;font-size:15px;line-height:1.5}.verdict-good{background:var(--accent-soft);color:#0b4f4a}.verdict-bad{background:#fdecea;color:#7a1d14}.afford{margin:8px 0 6px}.tile-accent .field label{color:#ffffffbf}.tile-accent .affix{border-color:transparent}.afford-answer{font-size:15px;font-weight:600;color:#fff!important}.switch{width:40px;height:24px;border-radius:999px;border:0;padding:3px;cursor:pointer;background:#d7dbdf;flex:none;transition:background .15s}.switch span{display:block;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 2px #0003;transition:transform .15s}.switch-on{background:var(--accent)}.switch-on span{transform:translate(16px)}.trial-foot{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:18px;flex-wrap:wrap}.table-wrap{overflow-x:auto;margin-top:12px}.month-table{width:100%;border-collapse:collapse;font-size:13px}.month-table th{text-align:right;font-weight:550;color:var(--ink-3);padding:8px 10px;border-bottom:1px solid var(--line);white-space:nowrap}.month-table td{text-align:right;padding:7px 10px;border-bottom:1px solid var(--line);white-space:nowrap}.month-table th:first-child,.month-table td:first-child{text-align:left;padding-left:0}.forecast-link{font-size:14px;color:var(--accent);text-decoration:none;font-weight:550}.confirm-message{padding:8px 26px 20px;color:var(--ink-2);font-size:15px;line-height:1.55}.btn-danger-fill{background:var(--neg);border-color:var(--neg);color:#fff}.colours{display:flex;flex-wrap:wrap;gap:8px}.colour{width:28px;height:28px;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1px var(--line);cursor:pointer}.colour-on{box-shadow:0 0 0 2px var(--ink)}.inv-foot{display:flex;justify-content:space-between;align-items:center;gap:12px}.card-delete{font-size:13px;color:var(--ink-3);opacity:0;transition:opacity .15s}.inv-card:hover .card-delete,.card-delete:focus{opacity:1}.card-delete:hover{color:var(--neg)}@media(hover:none){.card-delete{opacity:1}}.sheet-backdrop{position:fixed;inset:0;z-index:50;background:#16191d47;display:flex;align-items:center;justify-content:center;padding:24px;animation:fade .15s ease-out}.sheet{background:#fff;border-radius:20px;width:100%;max-width:480px;max-height:calc(100vh - 48px);display:flex;flex-direction:column;box-shadow:0 24px 64px #16191d2e;animation:rise .18s ease-out}.sheet-wide{max-width:680px}.sheet-head{display:flex;justify-content:space-between;align-items:center;padding:22px 26px 6px}.sheet-head h2{font-size:18px}.icon-btn{background:none;border:0;width:32px;height:32px;border-radius:8px;cursor:pointer;color:var(--ink-3);font-size:14px;flex:none}.icon-btn:hover{background:#f1f3f5;color:var(--ink)}@keyframes fade{0%{opacity:0}}@keyframes rise{0%{transform:translateY(12px);opacity:0}}.form{display:flex;flex-direction:column;min-height:0}.form-body,.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px 16px}.form-body{padding:16px 26px 20px;overflow-y:auto}.form-grid{margin-top:12px}.form-actions{display:flex;gap:10px;padding:16px 26px 22px;border-top:1px solid var(--line)}.spacer{flex:1}.field{display:flex;flex-direction:column;gap:6px;min-width:0}.field-wide{grid-column:1 / -1}.field label,.field-label{font-size:13px;font-weight:550;color:var(--ink-2)}.hint{font-size:12px;color:var(--ink-3)}.field input,.field select,.field textarea{font:inherit;font-size:15px;color:var(--ink);width:100%;border:1px solid #dfe3e6;border-radius:10px;padding:10px 12px;background:#fff}.field textarea{resize:vertical}.field input:focus,.field select:focus,.field textarea:focus,.affix:focus-within{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #0f766e1f}.affix{display:flex;align-items:center;border:1px solid #dfe3e6;border-radius:10px;background:#fff}.affix input{border:0;box-shadow:none!important;min-width:0}.affix-pre{padding-left:12px;color:var(--ink-3)}.affix-pre+input{padding-left:6px}.affix-post{padding-right:12px;color:var(--ink-3);font-size:14px;white-space:nowrap}.segmented{display:flex;background:#f1f3f5;border-radius:10px;padding:3px;gap:2px}.segmented button{flex:1;font:inherit;font-size:14px;border:0;background:transparent;color:var(--ink-2);padding:8px 10px;border-radius:8px;cursor:pointer;white-space:nowrap}.segmented button.on{background:#fff;color:var(--ink);font-weight:550;box-shadow:0 1px 3px #16191d1a}.checkbox{display:flex;gap:10px;align-items:flex-start;font-size:14px;color:var(--ink-2);cursor:pointer}.checkbox input{width:18px;height:18px;accent-color:var(--accent);margin:1px 0 0;flex:none}.summary{background:var(--accent-soft);color:var(--ink-2);border-radius:10px;padding:12px 14px;font-size:14px}.summary b{color:var(--accent)}.adjust summary{cursor:pointer;font-size:13px;color:var(--ink-3)}.adjust .hint{margin-top:6px}.stages{display:grid;gap:10px}.stage{display:grid;grid-template-columns:1.4fr 1fr 1fr 32px;gap:10px;align-items:end}.stage-2{grid-template-columns:1fr 1fr 32px}.btn-add{align-self:flex-start;padding-left:0;color:var(--accent)}@media(max-width:960px){.tiles{grid-template-columns:1fr 1fr}.tiles-3{grid-template-columns:1fr 1fr 1fr}.two-up{grid-template-columns:1fr}.data-actions{grid-template-columns:1fr;gap:22px}}@media(max-width:640px){:root{--gap: 14px}.topbar{padding:12px 16px 10px}.topbar-row{flex-direction:column;align-items:stretch;gap:10px}.content{padding:18px 16px}.card{padding:20px 18px}.hero{padding:26px 20px 20px}.tile{padding:18px 16px}.tile-number{font-size:21px}.tiles-2,.tiles-3{grid-template-columns:1fr}.donut{flex-direction:column;align-items:stretch}.donut-chart{align-self:center}.chart-tall{height:230px}.loans{grid-template-columns:1fr}.footer{padding:8px 16px 24px}.page-head h1{font-size:24px}.cards{grid-template-columns:1fr}.sheet-backdrop{padding:0;align-items:flex-end}.sheet,.sheet-wide{max-width:none;border-radius:20px 20px 0 0;max-height:92vh}.sheet-head{padding:18px 18px 4px}.form-body,.form-grid{grid-template-columns:1fr}.form-body{padding:12px 18px 18px}.form-actions{padding:14px 18px calc(14px + env(safe-area-inset-bottom))}.stage{grid-template-columns:1fr 1fr 32px}.stage>.field:first-child{grid-column:1 / -1}.stage-2>.field:first-child{grid-column:auto}}
