:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f6f5f2;--panel:#fbfaf8;--card:#fff;--ink:#232824;--ink-soft:#4c524d;--ink-mid:#5c625d;--muted:#8b918b;--faint:#9aa09a;--green:#1e8a5a;--green-deep:#1e6a48;--green-soft:#7fbf9e;--green-tint:#e7f0ea;--red:#c0392b;--border:#00000012;--border-strong:#0000001f;--border-faint:#0000000a;--chip:#f0f2ee;--input-bg:#faf9f6;--warn-ink:#b4552d;--warn-bg:#fdf3ee;--warn-border:#ecd9cf;--overlay:#14181452;--scroll-thumb:#0000002e;--scroll-thumb-hover:#0000004d}[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#141614;--panel:#1a1d1a;--card:#202420;--ink:#e6e8e4;--ink-soft:#c4c9c4;--ink-mid:#b0b5af;--muted:#878d87;--faint:#71776f;--green:#35a877;--green-deep:#7ed0a8;--green-soft:#3c8266;--green-tint:#21372b;--red:#e2695a;--border:#ffffff14;--border-strong:#ffffff26;--border-faint:#ffffff0d;--chip:#2a2e2a;--input-bg:#1a1d1a;--warn-ink:#dd8a63;--warn-bg:#322620;--warn-border:#4d372c;--overlay:#0000008c;--scroll-thumb:#ffffff2e;--scroll-thumb-hover:#ffffff4d}*{box-sizing:border-box}html,body{overscroll-behavior:none;background-color:var(--bg);height:100%;overflow:hidden}body{color:var(--ink);margin:0;font-family:Instrument Sans,system-ui,sans-serif}#root{height:100dvh;display:flex}*{scrollbar-width:thin;scrollbar-color:var(--scroll-thumb) transparent}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--scroll-thumb);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--scroll-thumb-hover)}button,input{font-family:inherit}.num{font-variant-numeric:tabular-nums}.app{flex:1;min-width:0;display:flex}.sidebar{border-right:1px solid var(--border);background:var(--panel);flex-direction:column;flex:none;width:192px;padding:18px 12px;display:flex}.logo{align-items:center;gap:8px;padding:0 8px 20px;display:flex}.logo-dot{background:var(--green);border-radius:50%;width:10px;height:10px}.logo-name{letter-spacing:-.02em;font-size:15px;font-weight:700}.nav{flex-direction:column;gap:2px;display:flex}.nav button{text-align:left;cursor:pointer;color:var(--muted);background:0 0;border:none;border-radius:8px;align-items:center;padding:9px 10px;font-size:13px;font-weight:500;display:flex}.nav button.active{color:var(--ink);background:var(--green-tint);font-weight:600}.sidebar-foot{color:var(--faint);margin-top:auto;padding:10px;font-size:10.5px;line-height:1.5}.main{flex-direction:column;flex:1;min-width:0;display:flex;position:relative}.topbar{border-bottom:1px solid var(--border);flex:none;align-items:center;gap:10px;height:56px;padding:0 20px;display:flex}.topbar-title{font-size:15px;font-weight:600}.topbar-right{align-items:center;gap:8px;margin-left:auto;display:flex}.btn-pill{border:1px solid var(--border-strong);background:var(--card);color:var(--ink-soft);cursor:pointer;border-radius:999px;padding:5px 12px;font-size:11px}.content{flex-direction:column;flex:1;gap:16px;padding:20px;display:flex;overflow:auto}.content>*{flex-shrink:0}.card{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:18px 20px}.card-label{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-size:11px;font-weight:600}.stat-label{color:var(--muted);font-size:11px}.stat-value{margin-top:3px;font-size:19px;font-weight:700}.section-label{color:var(--ink-mid);margin:0 0 10px;font-size:12px;font-weight:600}.row-2{gap:16px;display:flex}.col{flex-direction:column;gap:12px;display:flex}.networth-big{letter-spacing:-.02em;font-size:34px;font-weight:700}.networth-sub{color:var(--muted);margin-top:4px;font-size:12px;font-weight:600}.card-row{justify-content:space-between;align-items:center;gap:8px;display:flex}.currency-select{color:var(--ink-mid);background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:4px 8px;font-size:11px;font-weight:600}.stat-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.coverage-badge{color:var(--muted);background:var(--bg);border:1px dashed var(--border);border-radius:999px;padding:2px 8px;font-size:10px;font-weight:600}.networth-chart{width:100%;height:180px}.networth-chart .recharts-line-curve{stroke:var(--green)}.networth-chart .recharts-cartesian-axis-tick text{fill:var(--muted);font-size:11px}.networth-chart .recharts-line-dot{stroke:var(--green);fill:var(--card)}.networth-chart .recharts-default-tooltip{margin:0;box-shadow:none!important;background:0 0!important;border:none!important;padding:0!important}.networth-tooltip{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:10px 14px;box-shadow:0 4px 20px #0000000f}[data-theme=dark] .networth-tooltip{box-shadow:0 8px 24px #00000059}.networth-tooltip .stat-value{margin-top:2px}.empty-note{color:var(--faint);font-size:11.5px;line-height:1.5}.accounts-grid{grid-template-columns:repeat(4,1fr);gap:10px;display:grid}.account-card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:12px 14px}.account-name{font-size:12.5px;font-weight:600}.account-type{color:var(--faint);margin-top:1px;font-size:10.5px}.account-bal{margin-top:8px;font-size:14px;font-weight:600}.spend-row{grid-template-columns:110px 1fr 80px;align-items:center;gap:10px;font-size:12px;display:grid}.spend-row-gap .spend-name,.spend-row-gap .spend-amt{color:var(--muted)}.spend-row-gap .spend-track{border:1px dashed var(--border);background:0 0}.spend-row-gap .spend-fill{opacity:.45}.spend-name{color:var(--ink-mid)}.spend-track{background:var(--chip);border-radius:4px;height:8px}.spend-fill{background:var(--green-soft);border-radius:4px;height:8px}.spend-amt{text-align:right;color:var(--ink-soft)}.chips{gap:8px;display:flex}.chips button{background:var(--card);border:1px solid var(--border-strong);color:var(--ink-mid);cursor:pointer;border-radius:999px;padding:6px 12px;font-size:11.5px}.chips button.active{background:var(--ink);color:var(--bg);border-color:var(--ink);font-weight:600}.filter-panel{flex-direction:column;gap:10px;margin-bottom:14px;display:flex}.filter-section .chips{flex-wrap:wrap}.filter-label{letter-spacing:.06em;text-transform:uppercase;color:var(--faint);margin-bottom:6px;font-size:10.5px;font-weight:600}.month-nav{align-items:center;gap:6px;margin-left:4px;display:inline-flex}.month-nav button{padding:4px 10px;font-size:16px;line-height:1}.month-label{text-align:center;min-width:5em;font-size:12px;font-weight:600}.range-inputs{align-items:center;gap:6px;margin-left:4px;display:inline-flex}.range-inputs input[type=date]{border:1px solid var(--border-strong);background:var(--card);border-radius:8px;padding:5px 8px;font-size:11.5px}.cat-subs{flex-direction:column;gap:2px;padding-left:16px;display:flex}.cat-sub-row{align-items:center;gap:4px;display:flex}.cat-add-sub{opacity:.7;padding:4px 8px;font-size:11px}.table-card{background:var(--card);border:1px solid var(--border);border-radius:14px;overflow:hidden}.tx-head,.tx-row{grid-template-columns:92px 1fr 110px 150px 120px;align-items:center;gap:12px;padding:11px 18px;display:grid}.tx-head{letter-spacing:.05em;text-transform:uppercase;color:var(--faint);border-bottom:1px solid var(--border);padding:10px 18px;font-size:10.5px;font-weight:600}.tx-row{border-bottom:1px solid var(--border-faint);font-size:12.5px}.tx-date{color:var(--faint);font-size:11.5px}.tx-desc{text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.tx-acct{color:var(--muted);font-size:11.5px}.tx-amt{text-align:right;font-weight:600}.pill{background:var(--chip);color:var(--ink-mid);border-radius:999px;padding:3px 8px;font-size:10.5px;font-weight:600}.pill-green{background:var(--green-tint);color:var(--green-deep)}.tx-sub{color:var(--faint);font-size:10px;display:none}.chatbar{border-top:1px solid var(--border);background:var(--card);flex:none;align-items:center;gap:10px;height:58px;padding:0 14px;display:flex}.chatbar-spark{background:var(--green-tint);width:26px;height:26px;color:var(--green);border-radius:50%;flex:none;place-items:center;font-size:12px;display:grid}.chatbar input{border:1px solid var(--border-strong);background:var(--input-bg);height:38px;color:var(--ink);border-radius:19px;outline:none;flex:1;min-width:0;padding:0 14px;font-size:12.5px}.chatbar input::placeholder{color:inherit;opacity:.45}.chatbar button{background:var(--green);color:#fff;cursor:pointer;border:none;border-radius:19px;height:38px;padding:0 18px;font-size:12.5px;font-weight:600}.chat-panel{background:var(--card);border:1px solid var(--border-strong);z-index:5;border-radius:14px;flex-direction:column;width:360px;height:330px;display:flex;position:absolute;bottom:66px;right:14px;overflow:hidden;box-shadow:0 14px 36px #00000024}.chat-panel-head{border-bottom:1px solid var(--border);align-items:center;gap:8px;padding:10px 14px;display:flex}.chat-dot{background:var(--green);border-radius:50%;width:7px;height:7px}.chat-title{font-size:12px;font-weight:600}.chat-sub{color:var(--faint);font-size:10px}.chat-panel-actions{align-items:center;gap:8px;margin-left:auto;display:flex}.chat-new{cursor:pointer;color:var(--faint);background:0 0;border:none;padding:2px 4px;font-size:11px}.chat-new:disabled{cursor:default;opacity:.5}.chat-close{cursor:pointer;color:var(--faint);background:0 0;border:none;padding:2px;font-size:14px}.chat-box{flex-direction:column;flex:1;gap:8px;padding:12px 14px;display:flex;overflow:auto}.bubble{max-width:86%;color:var(--ink);border-radius:12px;padding:8px 11px;font-size:12.5px;line-height:1.45}.bubble.user{background:var(--green-tint);align-self:flex-end}.bubble.agent{background:var(--chip);white-space:pre-wrap;align-self:flex-start}.bubble.tool{border:1px dashed var(--border-strong);color:var(--faint);background:0 0;align-self:flex-start;padding:4px 9px;font-size:11px}.bubble.tool.ok{color:var(--green);border-color:var(--green-tint)}.bubble.tool.error{color:var(--warn-ink);border-color:var(--warn-border)}.bubble.notice{background:var(--warn-bg);color:var(--warn-ink);align-self:center;font-size:11.5px}.bubble.entry{background:var(--card);border:1px solid var(--green-tint);border-left:3px solid var(--green);border-radius:10px;align-self:stretch;max-width:none;padding:10px 12px}.bubble.entry.cancelled{opacity:.55;border-left-color:var(--border-strong)}.bubble.entry.cancelled .entry-line{text-decoration:line-through}.entry-head{color:var(--green);margin-bottom:3px;font-size:10.5px;font-weight:600}.bubble.entry.cancelled .entry-head{color:var(--faint)}.entry-line{font-size:13px;font-weight:600}.entry-note{color:var(--faint);margin-top:2px;font-size:11.5px}.bubble.entry.edit .entry-line.edit-old{color:var(--faint);font-weight:500;text-decoration:line-through}.edit-arrow{color:var(--faint);font-size:11px;line-height:1.4}.bubble.entry.edit.reverted{border-left-color:var(--border-strong)}.bubble.entry.edit.reverted .entry-head{color:var(--faint)}.bubble.entry.edit.reverted .entry-line.edit-old{color:var(--ink);font-weight:600;text-decoration:none}.bubble.entry.edit.reverted .entry-line.edit-new{color:var(--faint);font-weight:500;text-decoration:line-through}.bubble.entry.removal{border-color:var(--warn-border);border-left-color:var(--red)}.bubble.entry.removal .entry-head{color:var(--red)}.bubble.entry.removal .entry-line{color:var(--faint);font-weight:500;text-decoration:line-through}.bubble.entry.removal.restored{border-left-color:var(--border-strong)}.bubble.entry.removal.restored .entry-head{color:var(--faint)}.bubble.entry.removal.restored .entry-line{color:var(--ink);font-weight:600;text-decoration:none}.entry-actions{gap:8px;margin-top:9px;display:flex}.entry-actions button{cursor:pointer;border-radius:999px;padding:4px 14px;font-size:11.5px}.entry-keep{background:var(--green);border:1px solid var(--green);color:#fff}.entry-undo{border:1px solid var(--border-strong);color:var(--faint);background:0 0}.entry-undo:hover{color:var(--ink)}.chat-empty{color:var(--faint);text-align:center;margin:auto;padding:18px 10px;font-size:12px}.bottomnav{border-top:1px solid var(--border);background:var(--panel);flex:none;height:58px;display:none}.bottomnav button{cursor:pointer;color:var(--faint);background:0 0;border:none;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:4px;font-size:10.5px;font-weight:500;display:flex}.bottomnav button .dot{background:0 0;border-radius:50%;width:6px;height:6px;display:block}.bottomnav button.active{color:var(--green-deep);font-weight:600}.bottomnav button.active .dot{background:var(--green)}.section-row{justify-content:space-between;align-items:center;margin:0 0 10px;display:flex}.modal-overlay{background:var(--overlay);z-index:20;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--card);border-radius:16px;flex-direction:column;width:min(440px,100vw - 32px);max-height:min(640px,100dvh - 48px);display:flex;overflow:hidden;box-shadow:0 18px 48px #0000002e}.modal-head{justify-content:space-between;align-items:center;padding:14px 18px 10px;display:flex}.modal-title{font-size:13.5px;font-weight:600}.modal-body{padding:0 18px 18px;overflow:auto}.form{flex-direction:column;gap:8px;display:flex}.form-label{color:var(--muted);margin-top:6px;font-size:11px;font-weight:600}.form-input{border:1px solid var(--border-strong);background:var(--input-bg);height:38px;color:var(--ink);border-radius:10px;outline:none;width:100%;padding:0 12px;font-size:13px}.form-input:focus{border-color:var(--green)}.amount-input{height:46px;font-size:20px;font-weight:700}.form-cols{grid-template-columns:1fr 1fr;gap:10px;display:grid}.form-err{color:var(--red);margin-top:4px;font-size:12px}.form-actions{justify-content:flex-end;gap:8px;margin-top:10px;display:flex}.btn-primary{background:var(--green);color:#fff;cursor:pointer;border:none;border-radius:10px;height:36px;padding:0 18px;font-size:12.5px;font-weight:600}.btn-primary:disabled{opacity:.6;cursor:default}.btn-ghost{border:1px solid var(--border-strong);background:var(--card);height:36px;color:var(--ink-soft);cursor:pointer;border-radius:10px;padding:0 14px;font-size:12.5px;font-weight:500}.btn-danger{border:1px solid color-mix(in srgb, var(--red) 40%, transparent);background:var(--card);height:36px;color:var(--red);cursor:pointer;border-radius:10px;margin-right:auto;padding:0 14px;font-size:12.5px;font-weight:600}.grid-picker{grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:6px;display:grid}.grid-picker button{border:1px solid var(--border-strong);background:var(--card);color:var(--ink-soft);cursor:pointer;border-radius:10px;flex-direction:column;align-items:center;gap:1px;min-width:0;padding:8px 6px;font-size:12px;font-weight:500;display:flex}.grid-picker button.active{background:var(--green-tint);border-color:var(--green);color:var(--green-deep);font-weight:600}.gp-sub{color:var(--faint);font-size:9.5px}.grid-picker button.active .gp-sub{color:var(--green-deep);opacity:.75}.sheet-balance{align-items:baseline;gap:10px;font-size:22px;font-weight:700;display:flex}.sheet-anchor{color:var(--faint);font-size:11px;font-weight:500}.sheet-actions{flex-direction:column;gap:6px;margin-top:8px;display:flex}.sheet-actions .btn-ghost{text-align:left;justify-content:flex-start}.chip-add{margin-left:auto;font-weight:600;background:var(--green)!important;border-color:var(--green)!important;color:#fff!important}button.tx-row{border:none;border-bottom:1px solid var(--border-faint);cursor:pointer;width:100%;color:inherit;font:inherit;background:0 0}button.tx-row:hover{background:var(--panel)}.day-head{color:var(--faint);letter-spacing:.04em;justify-content:space-between;padding:8px 16px 4px;font-size:10.5px;font-weight:600;display:none}.onboard{flex:1;justify-content:center;align-items:flex-start;padding-top:24px;display:flex}.onboard-title{letter-spacing:-.01em;margin:6px 0 8px;font-size:20px}.cat-row{align-items:center;gap:6px;display:flex}.cat-name{text-align:left;cursor:pointer;color:var(--ink);background:0 0;border:none;border-radius:8px;flex:1;padding:7px 8px;font-size:12.5px}.cat-name:hover{background:var(--chip)}.cat-del{cursor:pointer;color:var(--faint);background:0 0;border:none;border-radius:6px;padding:2px 6px;font-size:14px}.cat-del:hover{color:var(--red)}.gear{display:none}button.account-card{text-align:left;cursor:pointer;font:inherit;color:inherit}button.account-card:hover{border-color:var(--green-soft)}button.account-card.account-card-archived{background:var(--bg);border-style:dashed}button.account-card.account-card-archived .account-name,button.account-card.account-card-archived .account-bal{color:var(--muted)}button.account-card.account-card-archived:hover{border-color:var(--border)}.gate{flex-direction:column;gap:12px;width:320px;margin:auto;display:flex}.gate input{border:1px solid var(--border-strong);background:var(--card);border-radius:10px;outline:none;height:38px;padding:0 12px;font-size:13px}.gate button{background:var(--green);color:#fff;cursor:pointer;border:none;border-radius:10px;height:38px;font-size:13px;font-weight:600}.gate-err{color:var(--red);font-size:12px}.pnl-pos{color:var(--green)}.pnl-neg{color:var(--red)}.warn-note{color:var(--warn-ink);background:var(--warn-bg);border:1px solid var(--warn-border);border-radius:10px;margin-bottom:12px;padding:8px 12px;font-size:12px}.hold-head,.hold-row{grid-template-columns:minmax(80px,1.2fr) 90px 1fr 1fr 1fr 1fr 1fr;align-items:center;gap:12px;padding:11px 18px;display:grid}.hold-head{letter-spacing:.05em;text-transform:uppercase;color:var(--faint);border-bottom:1px solid var(--border);padding:10px 18px;font-size:10.5px;font-weight:600}.hold-row{border-bottom:1px solid var(--border-faint);font-size:12.5px}.hold-num{text-align:right}.alloc-row{align-items:center;gap:8px;font-size:12px;display:flex}.alloc-dot{border-radius:50%;flex:none;width:8px;height:8px}.alloc-name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.alloc-pct{color:var(--muted);text-align:right;width:48px}.alloc-val{text-align:right;width:90px;font-weight:500}.trade-row{border-bottom:1px solid var(--border-faint);grid-template-columns:92px 64px 1fr 150px 28px;align-items:center;gap:12px;padding:11px 18px;font-size:12.5px;display:grid}.trade-detail{color:var(--muted);font-size:11.5px;font-weight:400}.watch-add{align-items:center;gap:12px;margin-bottom:16px;display:flex}.watch-add .form-input{max-width:220px}.watch-grid{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px;margin-bottom:16px;display:grid}.watch-card{background:var(--card);border:1px solid var(--border);text-align:left;cursor:pointer;border-radius:14px;padding:14px 16px}.watch-card.active{border-color:var(--green-soft)}.watch-price{margin-top:6px;font-size:17px;font-weight:600}.watch-cur{color:var(--muted);font-size:11px;font-weight:500}.watch-chg{margin-top:2px;font-size:12px;font-weight:600}.chart-box{height:320px}@media (width<=800px){.sidebar{display:none}.bottomnav{display:flex}.row-2{flex-direction:column}.accounts-grid{grid-template-columns:repeat(2,1fr)}.content{padding:14px}.tx-head{display:none}.tx-row{grid-template-columns:1fr auto;padding:12px 16px}.tx-date,.tx-cat,.tx-acct{display:none}.tx-sub{grid-column:1;display:block}.chat-panel{width:auto;bottom:124px;left:12px;right:12px}.modal-overlay{align-items:flex-end}.modal{border-radius:16px 16px 0 0;width:100vw;max-height:calc(100dvh - 60px)}.day-head{display:flex}.gear{display:inline-block}.hold-head,.hold-row{grid-template-columns:1fr 1fr 1fr;padding:12px 16px}.hold-head>:nth-child(2),.hold-row>:nth-child(2),.hold-head>:nth-child(3),.hold-row>:nth-child(3),.hold-head>:nth-child(4),.hold-row>:nth-child(4),.hold-head>:nth-child(5),.hold-row>:nth-child(5){display:none}.trade-row{grid-template-columns:64px 1fr 28px}.trade-row .tx-date,.trade-row .tx-acct{display:none}.watch-add{flex-wrap:wrap}.chart-box{height:240px}}
