:root{font-family:system-ui,-apple-system,sans-serif;line-height:1.5;font-weight:400;color:#ffffffde;background-color:#1a1a2e;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}body{margin:0;min-width:320px;min-height:100vh}.app{max-width:1200px;margin:0 auto;padding:2rem}header{display:flex;align-items:baseline;gap:1.5rem;margin-bottom:2rem;padding-bottom:1rem;border-bottom:1px solid rgba(255,255,255,.08);flex-wrap:wrap}.nav{display:flex;gap:2px;background:#ffffff0f;border-radius:6px;padding:2px;margin-left:auto}.nav a{padding:6px 16px;border-radius:4px;color:#ffffff80;text-decoration:none;font-size:.85em;font-weight:500;transition:color .15s,background .15s}.nav a:hover{color:#fffc}.nav a.active{background:#ffffff1f;color:#fff}header h1{font-size:1.6em;margin:0;font-weight:600}.net-worth-header{display:flex;align-items:baseline;gap:24px}.net-worth-tier{display:flex;flex-direction:column;align-items:flex-end}.net-worth-value{font-size:1.4em;font-weight:300;color:#4ade80;line-height:1.2}.net-worth-label{font-size:.65em;color:#ffffff4d;font-weight:400}.loading,.error{display:flex;justify-content:center;align-items:center;min-height:50vh;font-size:1.2em}.error{color:#f87171}.chart-section{margin-bottom:1.5rem;padding:1.5rem;background:#ffffff08;border-radius:12px;border:1px solid rgba(255,255,255,.06)}.chart-section h2{font-size:1.1em;font-weight:500;margin:0 0 .5rem;opacity:.8}.section-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem;flex-wrap:wrap;gap:1rem}.metric-row{display:flex;gap:1.5rem;flex-wrap:wrap;margin-top:.25rem}.big-number{font-size:1.4em;font-weight:300}.change{font-size:.9em;align-self:flex-end;padding-bottom:2px}.change.positive{color:#4ade80}.change.negative{color:#f87171}.metric{display:flex;flex-direction:column;gap:.1rem}.metric-label{font-size:.7em;text-transform:uppercase;letter-spacing:.05em;opacity:.5}.metric-value{font-size:1em;font-weight:400}.metric.positive .metric-value{color:#4ade80}.metric.negative .metric-value{color:#f87171}.controls{display:flex;gap:.5rem;align-items:center}.time-range-selector{display:flex;gap:2px;background:#ffffff0f;border-radius:6px;padding:2px}.range-btn{padding:4px 10px;border:none;background:transparent;color:#ffffff80;cursor:pointer;border-radius:4px;font-size:.75em;font-weight:500}.range-btn.active{background:#ffffff1f;color:#fff}.range-btn:hover:not(.active){color:#fffc}.toggle-btn{padding:4px 12px;border:1px solid rgba(255,255,255,.15);background:transparent;color:#ffffff80;cursor:pointer;border-radius:6px;font-size:.75em}.toggle-btn.active{background:#818cf826;border-color:#818cf8;color:#818cf8}.overview-layout{display:flex;gap:20px}.overview-main{flex:1;min-width:0}.account-sidebar{width:260px;flex-shrink:0;background:#ffffff05;border-radius:8px;padding:8px 0;max-height:calc(100vh - 120px);overflow-y:auto}.sidebar-group{padding:0 10px;margin-bottom:6px}.sidebar-group-header{display:flex;align-items:center;gap:6px;padding:6px 0 3px;font-size:12px;font-weight:600;text-transform:capitalize}.sidebar-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.sidebar-inst{color:#ffffffb3}.sidebar-total{margin-left:auto;color:#fff6;font-weight:400}.sidebar-account{display:flex;align-items:center;gap:5px;padding:2px 0 2px 8px;font-size:11px}.sidebar-account .sidebar-dot{width:5px;height:5px}.sidebar-account-name{flex:1;min-width:0;color:#ffffff73;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-account-bal{color:#ffffff59;font-variant-numeric:tabular-nums;flex-shrink:0}.accounts-table{width:100%;border-collapse:collapse;font-size:13px}.accounts-table th{text-align:left;padding:4px 8px;color:#ffffff4d;font-weight:500;font-size:11px;border-bottom:1px solid rgba(255,255,255,.08)}.accounts-table th.right{text-align:right}.accounts-table td{padding:3px 8px;vertical-align:top}.accounts-table .dim{color:#ffffff59;font-size:12px}.accounts-table .amount{font-variant-numeric:tabular-nums}.accounts-login-row td{border-top:1px solid rgba(255,255,255,.06);padding-top:6px}.accounts-dot{display:inline-block;width:6px;height:6px;border-radius:50%;margin-right:6px;vertical-align:middle}.accounts-open{color:#fff3;font-size:10px;margin-left:4px;text-decoration:none}.accounts-open:hover{color:#ffffff80}.inst-name{font-weight:500;text-transform:capitalize}.inst-total{font-weight:400;opacity:.7}.account-gain{font-size:.8em;margin-top:.1rem}.account-gain.positive{color:#4ade80}.account-gain.negative{color:#f87171}.gain-pct{opacity:.7}.allocation-bar{display:flex;height:8px;border-radius:4px;overflow:hidden;margin-bottom:1.5rem;gap:2px}.allocation-segment{border-radius:4px;min-width:4px;transition:opacity .15s}.allocation-segment:hover{opacity:.8}.portfolio-groups{display:flex;flex-direction:column;gap:1rem}.portfolio-group{background:#ffffff05;border-radius:8px;overflow:hidden}.portfolio-group-header{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;border-left:3px solid;background:#ffffff08}.portfolio-group-name{display:flex;align-items:baseline;gap:.75rem}.portfolio-pct{font-size:.8em;opacity:.5}.portfolio-group-totals{display:flex;align-items:baseline;gap:1.5rem}.portfolio-return{font-size:.85em}.portfolio-table{width:100%;border-collapse:collapse;font-size:.85em}.portfolio-table th{text-align:left;padding:6px 12px;border-bottom:1px solid rgba(255,255,255,.06);font-weight:500;opacity:.5;font-size:.8em;text-transform:uppercase;letter-spacing:.05em}.portfolio-table td{padding:6px 12px;border-bottom:1px solid rgba(255,255,255,.03)}.portfolio-table .right{text-align:right}.portfolio-table .amount{font-variant-numeric:tabular-nums;white-space:nowrap}.portfolio-table .acct{opacity:.5;font-size:.9em;text-transform:capitalize}.portfolio-table tbody tr:hover{background:#ffffff08}.account-filter{padding:6px 12px;border:1px solid rgba(255,255,255,.15);background:#ffffff0d;color:#fff;border-radius:6px;font-size:.85em}.spending-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}@media(max-width:900px){.spending-grid{grid-template-columns:1fr}}.search-input{padding:6px 12px;border:1px solid rgba(255,255,255,.15);background:#ffffff0d;color:#fff;border-radius:6px;font-size:.85em;width:250px}.search-input::placeholder{color:#ffffff4d}.table-container{max-height:500px;overflow-y:auto}.txn-table{width:100%;border-collapse:collapse;font-size:.85em}.txn-table th{text-align:left;padding:8px 12px;border-bottom:1px solid rgba(255,255,255,.1);-webkit-user-select:none;user-select:none;font-weight:500;opacity:.6;font-size:.85em;text-transform:uppercase;letter-spacing:.05em;position:sticky;top:0;background:#131328;z-index:1}.txn-table td{padding:6px 12px;border-bottom:1px solid rgba(255,255,255,.03)}.txn-table .date{white-space:nowrap;opacity:.6;font-variant-numeric:tabular-nums}.txn-table .desc{max-width:400px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.txn-table .acct{opacity:.5;font-size:.9em}.txn-table .amount{font-variant-numeric:tabular-nums;white-space:nowrap}.txn-table .right{text-align:right}.positive{color:#4ade80}.negative{color:#f87171}.txn-table th.sortable{cursor:pointer}.txn-table th.sortable:hover{color:#fffc}.sort-indicator{font-size:.7em;opacity:.6}.txn-table tbody tr:hover{background:#ffffff08}.spending-top-bar{display:flex;align-items:start;gap:1rem;margin-bottom:1.25rem}.spending-top-bar .summary-cards{flex:1;margin-bottom:0}.time-presets{display:flex;gap:2px;background:#ffffff0f;border-radius:6px;padding:2px;flex-shrink:0;align-self:center}.time-preset-btn{padding:5px 12px;border-radius:4px;border:none;background:transparent;color:#fff6;font-size:.8em;font-weight:500;cursor:pointer;transition:color .15s,background .15s}.time-preset-btn:hover{color:#ffffffb3}.time-preset-btn.active{background:#ffffff1f;color:#fff}.summary-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem;margin-bottom:1.25rem}@media(max-width:900px){.summary-cards{grid-template-columns:repeat(2,1fr)}}.summary-card{background:#ffffff08;border:1px solid rgba(255,255,255,.06);border-radius:8px;padding:.75rem 1rem;display:flex;flex-direction:column;gap:.15rem}.summary-card-label{font-size:.7em;text-transform:uppercase;letter-spacing:.05em;color:#fff6}.summary-card-value{font-size:1.2em;font-weight:500;font-variant-numeric:tabular-nums}.summary-card-change{font-size:.85em;font-weight:400}.category-list{display:flex;flex-direction:column;gap:.5rem}.category-row{display:flex;align-items:center;gap:1rem;padding:.5rem .75rem;border-radius:8px;transition:background .15s}.category-row:hover{background:#ffffff0a}.category-info{display:flex;align-items:center;gap:.5rem;min-width:180px;flex-shrink:0}.category-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.category-name{font-size:.9em;color:#ffffffd9;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.category-count{font-size:.7em;color:#ffffff4d;white-space:nowrap}.category-bar-area{flex:1;display:flex;align-items:center;gap:.75rem;min-width:0}.category-bar-track{flex:1;height:6px;background:#ffffff0a;border-radius:3px;overflow:hidden}.category-bar-fill{height:100%;border-radius:3px;transition:width .3s ease}.sparkline-svg{flex-shrink:0}.category-total{font-size:.9em;font-weight:500;font-variant-numeric:tabular-nums;color:#ffffffd9;min-width:80px;text-align:right;flex-shrink:0}.filter-pill{display:flex;align-items:center;gap:.4rem;padding:4px 10px;background:#818cf826;border:1px solid #818cf8;color:#818cf8;border-radius:20px;font-size:.75em;cursor:pointer;white-space:nowrap;transition:background .15s}.filter-pill:hover{background:#818cf840}.filter-pill-x{font-size:1.1em;line-height:1;opacity:.7}.spending-chart-row{display:flex;align-items:center;gap:0}.spending-chart-bar{flex:1;min-width:0}.spending-chart-pie{width:400px;flex-shrink:0}.category-buttons{display:flex;flex-wrap:wrap;gap:8px;padding:0 4px 16px}.category-btn{display:flex;align-items:center;gap:6px;padding:6px 12px;border:1px solid rgba(255,255,255,.1);border-radius:20px;background:transparent;color:#ffffffb3;font-size:12px;cursor:pointer;transition:all .15s ease}.category-btn:hover{border-color:#ffffff4d;background:#ffffff0d}.category-btn.active{color:#fffffff2}.category-btn-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.category-btn-name{white-space:nowrap}.category-btn-amount{color:#fff6;font-size:11px}.cat-stats-table{width:100%;border-collapse:collapse;font-size:.8em}.cat-stats-table th{text-align:left;padding:6px 10px;border-bottom:1px solid rgba(255,255,255,.1);font-weight:500;opacity:.4;font-size:.85em;text-transform:lowercase;letter-spacing:.03em}.cat-stats-table td{padding:5px 10px;border-bottom:1px solid rgba(255,255,255,.03)}.cat-stats-row{cursor:pointer}.cat-stats-row:hover{background:#ffffff0a}.cat-stats-table .cat-dot{display:inline-block;width:8px;height:8px;border-radius:50%}.cat-stats-table .cat-name{font-weight:500;color:#fffc}.cat-stats-table .right{text-align:right}.cat-stats-table .num{font-variant-numeric:tabular-nums;color:#ffffffb3}.cat-stats-table .dim{color:#ffffff59}.cat-stats-row.excluded{opacity:.3}.cat-stats-row.excluded:hover{opacity:.5}.drill-link{opacity:0;margin-left:6px;font-size:.85em;color:#ffffff4d}.cat-stats-row:hover .drill-link{opacity:1}.drill-link:hover{color:#ffffffb3}.cat-stats-row.expanded{background:#ffffff0a}.expanded-txns-cell{padding:0!important}.tree-txn-desc{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cat-actions{width:1%;white-space:nowrap}.reclassify-btn{background:#ffffff0f;border:1px solid rgba(255,255,255,.1);border-radius:4px;color:#ffffff4d;font-size:11px;padding:1px 6px;cursor:pointer}.reclassify-btn:hover{color:#fffc;border-color:#ffffff4d}.reclassify-inline{display:flex;gap:4px}.reclassify-input{background:#ffffff0f;border:1px solid rgba(255,255,255,.2);border-radius:4px;color:#fffc;padding:2px 8px;font-size:11px;width:200px}.reclassify-input::placeholder{color:#ffffff4d}.cat-stats-totals{border-bottom:1px solid rgba(255,255,255,.1)}.cat-stats-totals .cat-name{font-weight:600;color:#fff9;text-transform:uppercase;font-size:.85em;letter-spacing:.03em}.cat-stats-totals .num{color:#fffc;font-weight:500}.back-arrow{color:#ffffff4d;font-size:.9em}.spending-tabs{display:flex;gap:2px;background:#ffffff0f;border-radius:6px;padding:2px;margin-bottom:1.25rem;width:fit-content}.spending-tab{padding:6px 18px;border-radius:4px;border:none;background:transparent;color:#fff6;font-size:.85em;font-weight:500;cursor:pointer;transition:color .15s,background .15s}.spending-tab:hover{color:#ffffffb3}.spending-tab.active{background:#ffffff1f;color:#fff}.recurring-review{padding:8px 14px;border-bottom:1px solid rgba(255,255,255,.06)}.recurring-review-label{font-size:11px;color:#fff6;text-transform:lowercase;margin-bottom:6px}.recurring-review-item{display:flex;align-items:center;gap:10px;padding:4px 0}.recurring-desc{font-size:13px;color:#ffffffb3}.recurring-meta{font-size:11px;color:#ffffff59;flex:1}.recurring-group{margin-bottom:4px}.recurring-group-header{display:flex;justify-content:space-between;padding:6px 10px;font-size:.8em;font-weight:600;color:#ffffff80;border-bottom:1px solid rgba(255,255,255,.08);margin-top:8px}.tree-summary{color:#fff6;font-size:.85em;margin-bottom:8px}.tree-group-row{display:flex;align-items:center;gap:8px;padding:6px 4px;cursor:pointer;border-bottom:1px solid rgba(255,255,255,.06)}.tree-group-row:hover{background:#ffffff08}.tree-toggle{font-size:9px;color:#ffffff4d;width:12px}.tree-group-name{font-weight:600;font-size:.85em;color:#fff9}.tree-group-stats{margin-left:auto;font-size:.8em;color:#ffffff59;font-variant-numeric:tabular-nums}.tree-item{display:flex;align-items:center;gap:8px;padding:4px;cursor:pointer;font-size:.85em}.tree-item:hover{background:#ffffff08}.tree-indent{width:20px;flex-shrink:0}.tree-item-name{color:#ffffffb3}.tree-item-stats{margin-left:auto;font-variant-numeric:tabular-nums;color:#ffffff80;font-size:.9em}.tree-item-actions{display:flex;gap:4px;margin-left:8px}.tree-txns{padding:2px 0 6px 28px;border-bottom:1px solid rgba(255,255,255,.04)}.tree-txn-row{display:flex;gap:16px;padding:2px 0;font-size:11px;color:#ffffff80}.tree-txn-row .num{font-variant-numeric:tabular-nums;margin-left:auto}.recurring-txns{padding:4px 14px 8px;border-top:1px solid rgba(255,255,255,.06);background:#ffffff05}.recurring-txn-row{display:flex;gap:16px;padding:3px 0;font-size:12px;color:#fff9}.recurring-txn-row .num{font-variant-numeric:tabular-nums}.clickable{cursor:pointer}.clickable:hover{color:#ffffffe6}.breadcrumb-link{cursor:pointer;color:#ffffff80}.breadcrumb-link:hover{color:#ffffffe6}.breadcrumb-sep{color:#ffffff40;font-weight:300}.suggestion-badge{display:inline-flex;align-items:center;justify-content:center;background:#818cf8;color:#fff;font-size:11px;font-weight:600;border-radius:10px;min-width:20px;height:20px;padding:0 6px;margin-left:8px;vertical-align:middle}.suggestions-list{display:flex;flex-direction:column;gap:6px}.suggestion-card{background:#ffffff08;border:1px solid rgba(255,255,255,.06);border-radius:8px;overflow:hidden}.suggestion-header{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;cursor:pointer;gap:12px}.suggestion-header:hover{background:#ffffff08}.suggestion-info{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0}.suggestion-pattern{background:#ffffff14;padding:2px 8px;border-radius:4px;font-size:12px;color:#ffffffb3}.suggestion-arrow{color:#ffffff4d;font-size:12px}.suggestion-path{color:#4ade80;font-size:13px;font-weight:500}.suggestion-count{color:#ffffff59;font-size:11px}.suggestion-confidence{font-size:11px;font-weight:600;padding:1px 6px;border-radius:3px}.suggestion-confidence.high{background:#4ade8026;color:#4ade80}.suggestion-confidence.med{background:#fbbf2426;color:#fbbf24}.suggestion-confidence.low{background:#f8717126;color:#f87171}.suggestion-actions{display:flex;gap:6px;flex-shrink:0}.suggestion-accept,.suggestion-reject{padding:4px 12px;border-radius:4px;font-size:12px;font-weight:500;cursor:pointer;border:1px solid;transition:background .15s,opacity .15s}.suggestion-accept{background:#4ade801f;border-color:#4ade804d;color:#4ade80}.suggestion-accept:hover{background:#4ade8040}.suggestion-reject{background:transparent;border-color:#ffffff1a;color:#fff6}.suggestion-reject:hover{background:#f871711f;border-color:#f871714d;color:#f87171}.suggestion-accept:disabled,.suggestion-reject:disabled{opacity:.4;cursor:not-allowed}.suggestion-reasoning{padding:0 14px 8px;color:#ffffff59;font-size:12px;font-style:italic}.suggestion-matches{border-top:1px solid rgba(255,255,255,.06);max-height:300px;overflow-y:auto}.reject-feedback{display:flex;align-items:center;gap:6px;padding:6px 14px 10px}.reject-feedback-input{flex:1;background:#ffffff0f;border:1px solid rgba(255,255,255,.15);border-radius:4px;color:#fffc;padding:5px 10px;font-size:12px}.reject-feedback-input::placeholder{color:#ffffff4d}.suggestion-matches .txn-table{font-size:12px}
