:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--border:#2a2f3a;--line:#262a33;--raised:#1e222b;--bg:#0f1115;--card:#171a21;--text:#e8e9ec;--muted:#8b8f98;--accent:#5b8def;--up:#3ecf8e;--warn:#e0a83c;--down:#ef5b5b}*{box-sizing:border-box}html,body{margin:0;padding:0}html{-moz-text-size-adjust:100%;text-size-adjust:100%;background:var(--bg)}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:transparent;min-height:100dvh;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.wrap{max-width:760px;padding:calc(24px + env(safe-area-inset-top)) 16px calc(92px + env(safe-area-inset-bottom));margin:0 auto}h1{margin:0 0 4px;font-size:20px;font-weight:600}h2{margin:16px 0 10px;font-size:15px;font-weight:600}.sub{color:var(--muted);margin-bottom:24px;font-size:14px}.card{background:var(--card);border-radius:14px;margin-bottom:16px;padding:20px}.total-label{color:var(--muted);font-size:13px}.total-value{margin-top:4px;font-size:40px;font-weight:700}.total-value.negative{color:var(--down)}button{background:var(--accent);color:#fff;cursor:pointer;touch-action:manipulation;border:none;border-radius:10px;width:100%;padding:12px 20px;font-family:inherit;font-size:15px;font-weight:600;transition:opacity .15s,transform .1s,background-color .15s,border-color .15s}button.secondary{border:1px solid var(--border);color:var(--text);background:0 0}@media (hover:hover){button:hover:not(:disabled):not([class*=cl-]){opacity:.9}button.secondary:hover:not(:disabled){background:var(--raised);opacity:1}}button:active:not(:disabled):not([class*=cl-]){transform:scale(.98)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}:where(input:not([type=checkbox],[type=radio],[type=range],[type=color],[class*=cl-]),select:not([class*=cl-]),textarea:not([class*=cl-])){font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:10px;min-width:0;padding:10px 12px}:where(input,select,textarea)::placeholder{color:var(--muted);opacity:1}:where(input,select,textarea):not([class*=cl-]):focus{outline:2px solid var(--accent);outline-offset:1px}:where(select:not([class*=cl-])){appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%238b8f98' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;padding-right:32px}select[class]{padding-right:32px}@supports (-webkit-touch-callout:none){input,select,textarea{font-size:16px!important}}table{border-collapse:collapse;width:100%;margin-top:4px}th,td{text-align:left;border-bottom:1px solid #262a33;padding:9px 8px;font-size:14px}th{color:var(--muted);text-transform:uppercase;font-size:11px;font-weight:500}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.error{color:var(--down);margin-top:12px;font-size:14px}.stale-note{color:var(--warn);margin-top:12px;font-size:13px}.as-of.stale{color:var(--warn)}.inst-header{justify-content:space-between;align-items:baseline;display:flex}.inst-name{font-size:15px;font-weight:600}.inst-total{font-variant-numeric:tabular-nums;color:var(--muted);font-size:14px}.type-tag select{text-transform:none;margin-left:4px;padding-top:4px;padding-bottom:4px;font-size:12px}.type-tag{color:var(--muted);text-transform:uppercase;font-size:11px}.top-row{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:0;display:flex}.top-row h1{margin-bottom:4px}.logout-btn{flex-shrink:0;width:auto;padding:8px 14px;font-size:13px}.card-actions{gap:8px;margin-top:14px;display:flex}.card-actions button{flex:1;width:auto;padding:10px 14px;font-size:14px}button.danger{background:var(--down);color:#fff}.manage-toggle{width:auto;margin-top:10px;padding:7px 12px;font-size:13px}.manage-toggle[aria-pressed=true]{border-color:var(--accent);color:var(--accent)}.hidden-section .holdings-title{color:var(--muted)}.hidden-row td{opacity:.62}.hidden-row:hover td{opacity:1}.manual-badge{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;vertical-align:middle;border:1px solid #2a2f3a;border-radius:999px;margin-left:8px;padding:2px 7px;font-size:10px;font-weight:600;display:inline-block}.manual-updated{color:var(--muted);margin-top:2px;font-size:11px}.manual-row-actions{justify-content:flex-end;gap:10px;margin-top:4px;display:flex}.link-btn{width:auto;color:var(--accent);background:0 0;border:none;padding:0;font-size:12px;font-weight:600}.link-btn.danger-link{color:var(--down)}.manual-id code{word-break:break-all;color:var(--text);font-size:11px}.inst-header-right{align-items:center;gap:12px;display:flex}.disconnect-btn{width:auto;color:var(--down);background:0 0;border:1px solid #3a2a2e;border-radius:8px;padding:5px 10px;font-size:12px;font-weight:600}.text-input{background-color:var(--bg);width:100%;color:var(--text);border:1px solid #2a2f3a;border-radius:10px;margin-bottom:12px;padding:12px 14px;font-size:15px}.text-input:focus{outline:2px solid var(--accent);outline-offset:1px}button:disabled{opacity:.6;cursor:not-allowed}.spinner{border:3px solid #2a2f3a;border-top-color:var(--accent);border-radius:50%;width:28px;height:28px;margin:24px auto;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.as-of{color:var(--muted);margin-top:6px;font-size:12px}.hero-delta{font-variant-numeric:tabular-nums;margin-top:6px;font-size:13px;font-weight:600}.hero-delta.up{color:var(--up)}.hero-delta.down{color:var(--down)}.top-actions{flex-shrink:0;gap:8px;display:flex}.icon-btn{width:auto;padding:8px 10px}.icon-btn svg{width:16px;height:16px;display:block}.icon-btn svg.spin{animation:.9s linear infinite spin}.num.inflow{color:var(--up)}.pending-tag{color:var(--muted);font-size:11px;font-style:italic}.txn-date-header td{color:var(--muted);text-transform:uppercase;background-color:#2f3542;padding:6px 8px;font-size:11px;font-weight:600}.txn-date-header:first-child td{padding-top:6px}.txn-table .acct-row.last-in-day td{border-bottom:none}.empty-note{color:var(--muted);margin:12px 0 0;font-size:14px}.tab-bar{z-index:10;-webkit-backdrop-filter:blur(12px);padding-bottom:env(safe-area-inset-bottom);background:#171a21eb;border-top:1px solid #262a33;display:flex;position:fixed;bottom:0;left:0;right:0}.tab-bar button{color:var(--muted);background:0 0;border:none;border-radius:0;flex-direction:column;flex:1;align-items:center;gap:3px;padding:9px 0 10px;font-size:11px;font-weight:500;display:flex}.tab-bar button.active{color:var(--accent)}.tab-bar svg{width:22px;height:22px}.chart-readout{align-items:baseline;gap:8px;min-height:20px;margin:6px 0 8px;display:flex}.chart-readout-value{font-variant-numeric:tabular-nums;font-size:15px;font-weight:600}.chart-readout-date{color:var(--muted);font-size:12px}.chart-readout-split{color:var(--muted);font-variant-numeric:tabular-nums;margin:-4px 0 8px;font-size:12px}.chart-svg{touch-action:none;-webkit-user-select:none;user-select:none;width:100%;height:auto;display:block}.chart-tick{fill:var(--muted);font-variant-numeric:tabular-nums;font-size:10px}.chart-xlabel{fill:var(--muted);font-size:10px}.chart-info-btn{width:auto;color:var(--muted);background:0 0;border:none;align-self:center;margin-left:auto;padding:4px;line-height:0}.chart-info-btn svg{width:16px;height:16px}.chart-info-btn[aria-expanded=true]{color:var(--accent)}.chart-info{color:var(--muted);margin-top:8px;font-size:12px}.chart-info p{margin:4px 0 0}.chart-ranges{justify-content:space-between;gap:4px;margin-top:6px;display:flex}.chart-range{width:auto;color:var(--muted);background:0 0;border:none;border-radius:8px;flex:1;padding:7px 0;font-size:12px;font-weight:600}.chart-range[aria-pressed=true]{color:var(--accent);background:#5b8def24}.chart-note{color:var(--muted);margin-top:6px;font-size:11px}.chart-legend{gap:14px;margin-top:4px;display:flex}.chart-legend-item{color:var(--muted);align-items:center;gap:6px;font-size:12px;display:flex}.chart-legend-dot{border-radius:50%;width:9px;height:9px}.summary-row{justify-content:space-between;gap:12px;display:flex}.summary-row>div{flex:1}.summary-value{font-variant-numeric:tabular-nums;margin-top:2px;font-size:17px;font-weight:600}.summary-value.inflow{color:var(--up)}.summary-value.negative{color:var(--down)}.cat-list{flex-direction:column;gap:10px;margin-top:10px;display:flex}.cat-row{align-items:center;gap:10px;display:flex}.cat-name{color:var(--text);text-transform:capitalize;text-overflow:ellipsis;white-space:nowrap;flex:0 0 34%;font-size:13px;overflow:hidden}.cat-track{flex:1}.cat-bar{background:var(--accent);border-radius:0 4px 4px 0;min-width:2px;height:14px}.cat-val{color:var(--muted);font-variant-numeric:tabular-nums;flex:none;font-size:12px}.search-input{margin:12px 0 4px;padding:10px 12px;font-size:14px}.gain{font-variant-numeric:tabular-nums;margin-top:2px;font-size:11px}.gain.inflow{color:var(--up)}.gain.loss{color:var(--down)}.insight-list{flex-direction:column;gap:8px;margin:10px 0 0;padding:0;list-style:none;display:flex}.insight{font-size:14px}.insight-up{color:var(--up)}.insight-down{color:var(--down)}.insight-neutral{color:var(--text)}.insight-warn{color:var(--warn)}.trend-row{scrollbar-width:thin;align-items:flex-end;gap:2px;margin-top:12px;padding-bottom:4px;display:flex;overflow-x:auto}.trend-col{cursor:pointer;background:0 0;border:none;border-radius:0;flex-direction:column;flex:1 0 42px;justify-content:flex-end;align-items:center;gap:4px;padding:0;display:flex}.trend-bar{opacity:.45;border-radius:4px 4px 0 0;width:100%;max-width:24px;display:block}.trend-bar.up{background:var(--up)}.trend-bar.down{background:var(--down)}.trend-col.active .trend-bar{opacity:1}.trend-val{color:var(--muted);font-variant-numeric:tabular-nums;font-size:10px}.trend-label{color:var(--muted);padding-bottom:2px;font-size:11px}.trend-col.active .trend-label{color:var(--accent);font-weight:600}.meter-track{background:#5b8def29;border-radius:5px;height:10px;margin-top:8px;overflow:hidden}.meter-track.warn{background:#e0a83c29}.meter-track.over{background:#ef5b5b29}.meter-fill{background:var(--accent);border-radius:5px 0 0 5px;min-width:2px;height:100%}.meter-fill.warn{background:var(--warn)}.meter-fill.over{background:var(--down);border-radius:5px}.meter-fill.done{background:var(--up);border-radius:5px}.done-tag{color:var(--up);font-weight:600}.recat-select{appearance:none;width:auto;margin:8px 0 4px;padding:8px 10px;font-size:13px}.txn-main{align-items:center;gap:10px;display:flex}.txn-logo{object-fit:contain;background:var(--card,#fff);border-radius:6px;flex:none;width:28px;height:28px}.txn-logo-fallback{color:var(--muted);background:var(--track,#7f7f7f26);text-transform:uppercase;justify-content:center;align-items:center;font-size:13px;font-weight:600;display:flex}.txn-text{min-width:0}.txn-edit{margin-top:6px}.rename-row{align-items:center;gap:8px;margin:4px 0;display:flex}.rename-row .text-input{flex:auto;min-width:0}.rename-row button{flex:none;width:auto;padding:8px 12px;font-size:13px}.rename-hint{color:var(--muted);font-size:11px}.low-conf-tag{color:var(--warn,#d08a2a);font-size:11px;font-style:italic}.txn-detail{gap:4px;margin:8px 0 2px;display:grid}.txn-detail-row{gap:8px;font-size:12px;display:flex}.txn-detail-row dt{color:var(--muted);flex:0 0 84px}.txn-detail-row dd{word-break:break-word;min-width:0;margin:0}.txn-detail-row a{color:var(--accent,#6ea8fe)}.acct-mask{color:var(--muted);font-size:12px}.util{margin-top:6px}.util-label{color:var(--muted);font-size:11px}.budget-row{margin-top:16px}.budget-summary{text-align:left;width:100%;color:var(--text);cursor:pointer;background:0 0;border:none;padding:0;display:block}.budget-line{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.budget-name{text-transform:capitalize;font-size:14px;font-weight:500}.budget-amounts{color:var(--muted);font-variant-numeric:tabular-nums;font-size:13px}.over-tag{color:var(--down);font-weight:600}.budget-edit{flex-direction:column;gap:8px;display:flex}.budget-edit .card-actions{margin-top:0}.budget-input{margin-bottom:0}.budget-add{border-top:1px solid #262a33;flex-direction:column;gap:8px;margin-top:20px;padding-top:16px;display:flex}.budget-select{appearance:none;margin-bottom:0}.cash-tag{color:var(--muted);font-variant-numeric:tabular-nums;margin-top:2px;font-size:11px}.cash-tag.idle{color:var(--warn);font-weight:600}.cash-dot{background:var(--warn);vertical-align:middle;border-radius:50%;width:6px;height:6px;margin-right:5px;display:inline-block}.cash-chip{letter-spacing:.04em;text-transform:uppercase;vertical-align:middle;border:1px solid #2a2f3a;border-radius:999px;margin-left:8px;padding:2px 7px;font-size:10px;font-weight:600;display:inline-block}.cash-chip.idle{color:var(--warn);border-color:#e0a83c73}.holdings-summary .cash-chip{margin-left:0;margin-right:2px}.holdings-toggle{width:100%;color:var(--text);text-align:left;background:0 0;border:none;border-radius:0;justify-content:space-between;align-items:center;gap:8px;padding:12px 0 4px;display:flex}.holdings-title{align-items:baseline;gap:6px;font-size:15px;font-weight:600;display:flex}.holdings-count{color:var(--muted);font-size:12px;font-weight:500}.holdings-summary{color:var(--muted);font-variant-numeric:tabular-nums;align-items:center;gap:6px;font-size:14px;display:flex}.holdings-summary .chevron{width:16px;height:16px;transition:transform .15s}.holdings-summary .chevron.open{transform:rotate(180deg)}.acct-row{cursor:pointer}.acct-row:active td{background:#5b8def0f}.acct-chart-cell{padding-top:12px;padding-bottom:16px}.inv-activity{border-top:1px solid #262a33;margin-top:14px;padding-top:12px}.inv-activity .txn-table td{padding:6px 0}.account-link-row{border-top:1px solid var(--border,#262a33);padding:10px 0}.account-link-row:first-of-type{border-top:none}.account-link-row p{margin:0 0 6px}.account-link-linked{justify-content:space-between;align-items:center;gap:8px;padding:4px 0;font-size:13px;display:flex}.brand{align-items:center;gap:10px;display:flex}.brand-logo{border-radius:50%;flex-shrink:0;width:34px;height:34px;display:block}.brand h1{letter-spacing:-.01em;margin:0;font-size:22px}.top-row .sub{margin:6px 0 24px}.top-actions{align-items:center}.user-button-slot{align-items:center;min-width:34px;min-height:34px;display:flex}.action-row{gap:8px;margin-top:10px;display:flex}.action-row>button{flex-direction:column;flex:1 1 0;align-items:center;gap:6px;width:auto;min-width:0;padding:12px 6px;font-size:13px;line-height:1.2;display:flex}.action-row svg{width:20px;height:20px;display:block}.action-row>button[aria-pressed=true]{border-color:var(--accent);color:var(--accent)}.sheet-backdrop{z-index:40;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);opacity:0;background:#0000008c;transition:opacity .25s;position:fixed;inset:0}.sheet-backdrop[data-open=true]{opacity:1}.sheet-backdrop[data-open=false],.sheet[data-open=false]{pointer-events:none}.sheet{z-index:41;background:var(--card);border:1px solid var(--line);max-height:92dvh;padding-bottom:env(safe-area-inset-bottom);border-bottom:none;border-radius:20px 20px 0 0;outline:none;flex-direction:column;transition:transform .32s cubic-bezier(.32,.72,0,1);display:flex;position:fixed;bottom:0;left:0;right:0;transform:translateY(100%);box-shadow:0 -12px 40px #00000073}.sheet[data-open=true]{transform:translateY(0)}.sheet-handle{background:var(--border);border-radius:3px;flex-shrink:0;width:36px;height:5px;margin:8px auto 0}.sheet-header{flex-shrink:0;align-items:center;gap:8px;padding:10px 12px 10px 20px;display:flex}.sheet-header h2{text-overflow:ellipsis;white-space:nowrap;flex:1;margin:0;font-size:17px;overflow:hidden}.sheet-icon-btn{background:var(--raised);width:36px;height:36px;color:var(--text);border-radius:50%;flex-shrink:0;place-items:center;padding:0;display:grid}.sheet-icon-btn svg{width:18px;height:18px}.sheet-body{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:4px 20px 24px;overflow-y:auto}@media (min-width:720px){.sheet{border:1px solid var(--line);width:440px;height:100dvh;max-height:none;padding-top:env(safe-area-inset-top);border-right:none;border-radius:20px 0 0 20px;top:0;left:auto;transform:translate(100%);box-shadow:-12px 0 40px #00000073}.sheet[data-open=true]{transform:translate(0)}.sheet-handle{display:none}.sheet-header{padding-top:16px}}@media (prefers-reduced-motion:reduce){.sheet,.sheet-backdrop{transition:none}}.panel-section{margin-top:20px}.panel-section:first-child{margin-top:4px}.section-label{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;margin:0 0 10px;font-size:12px;font-weight:600}.panel-note strong{color:var(--text)}.panel-note{color:var(--muted);margin:8px 0 0;font-size:13px;line-height:1.45}.field{color:var(--muted);flex-direction:column;gap:6px;margin-bottom:12px;font-size:13px;display:flex}.field input{width:100%;font-size:15px}.invite-link{border:1px solid var(--border);background:var(--bg);border-radius:12px;align-items:center;gap:8px;margin-top:12px;padding:6px 6px 6px 12px;display:flex}.invite-link input{min-width:0;color:var(--text);text-overflow:ellipsis;background:0 0;border:none;flex:1;padding:6px 0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px}.invite-link input:focus{outline:none}.invite-link button{flex-shrink:0;width:auto;padding:8px 14px;font-size:13px}.peer-list{border:1px solid var(--line);border-radius:14px;flex-direction:column;display:flex;overflow:hidden}.peer-item{width:100%;color:var(--text);text-align:left;background:0 0;border-radius:0;align-items:center;gap:12px;padding:12px 14px;font-weight:500;display:flex}.peer-item+.peer-item{border-top:1px solid var(--line)}.peer-item-text{flex:1;min-width:0}.peer-item-name{text-overflow:ellipsis;white-space:nowrap;font-size:15px;display:block;overflow:hidden}.peer-item-meta{color:var(--muted);margin-top:2px;font-size:12px;font-weight:400;display:block}.peer-item .chevron{width:16px;height:16px;color:var(--muted);flex-shrink:0}.peer-item-action{width:auto;padding:7px 12px;font-size:13px}.avatar{width:36px;height:36px;color:var(--accent);text-transform:uppercase;background:#5b8def29;border-radius:50%;flex-shrink:0;place-items:center;font-size:15px;font-weight:700;display:grid}.avatar.small{width:28px;height:28px;font-size:13px}.peer-row{justify-content:space-between;align-items:center;gap:12px;padding:10px 0;display:flex}.peer-row+.peer-row{border-top:1px solid var(--line)}.peer-row>span:first-child{min-width:0;font-size:14px}.peer-row select{flex-shrink:0;max-width:55%;padding-top:8px;padding-bottom:8px;font-size:14px}.button-pair{gap:8px;margin-top:12px;display:flex}.button-pair>button{flex:1 1 0;width:auto}button.danger-outline{color:var(--down);background:0 0;border:1px solid #ef5b5b59}.status-note{color:var(--up);margin-top:10px;font-size:13px}.incoming-head{align-items:center;gap:10px;margin-bottom:8px;display:flex}.incoming-head h3{flex:1;margin:0;font-size:15px}.pill{color:var(--muted);border:1px solid var(--border);border-radius:999px;padding:2px 8px;font-size:11px;font-weight:600}.incoming-account{padding:10px 0}.incoming-account+.incoming-account{border-top:1px solid var(--line)}.incoming-account .peer-row{padding:0}.incoming-account-name{font-size:14px}.incoming-account-date{color:var(--muted);font-size:12px}.incoming-account-value{font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:600}.incoming-account .link-btn{margin-top:6px}.incoming-txn{color:var(--muted);justify-content:space-between;gap:12px;padding:6px 0 0;font-size:13px;display:flex}.privacy-panel h3{margin:0 0 8px;font-size:15px}.privacy-panel p{font-size:13px;line-height:1.5}.privacy-panel .text-input{margin-top:4px}.auth-wrap{min-height:100dvh;padding:calc(24px + env(safe-area-inset-top)) 16px calc(24px + env(safe-area-inset-bottom));flex-direction:column;justify-content:center;align-items:center;gap:20px;display:flex}.auth-wrap .brand h1{font-size:24px}.demo-panel{width:100%;max-width:400px;margin:0}.demo-panel h2{margin:0 0 6px}.demo-panel .action-row{margin-top:14px}.demo-panel form{flex:1 1 0;display:flex}.demo-panel form button{width:100%}.institution-group{border:1px solid var(--line);border-radius:12px;margin-top:14px;padding:4px 12px}.institution-name{color:var(--text);margin:8px 0 2px;font-size:13px;font-weight:600}.sheet-form{margin-top:12px}.sheet-form select{width:100%;font-size:15px}
