*{box-sizing:border-box;margin:0;padding:0}body{background:#f0f2f5;color:#1a1a2e;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.navbar{background:#fff;border-bottom:1px solid #f0f0f0;box-shadow:0 1px 3px #0000000d;color:#1a1a2e;height:64px;justify-content:space-between;padding:0 2rem;position:-webkit-sticky;position:sticky;top:0;z-index:100}.nav-links,.navbar{align-items:center;display:flex}.nav-links{gap:.4rem}.nav-links button{background:#0000;border:1px solid #e5e7eb;border-radius:8px;color:#555;cursor:pointer;font-size:.875rem;font-weight:500;padding:6px 16px;transition:all .15s}.nav-links button:hover{background:#f9fafb;border-color:#d1d5db;color:#111}.nav-privacy-btn{font-size:.8rem!important}.nav-links button.active{background:#eef2ff;border-color:#c7d7fc;color:#4f7fe8}.main-content{margin:0 auto;max-width:1200px;padding:2rem}.card{background:#fff;border-radius:12px;box-shadow:0 1px 3px #00000014;padding:1.5rem}.card h3{color:#666;font-size:1rem;font-weight:500;margin-bottom:1rem}.card-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1rem}.card-header h3{margin-bottom:0}.nw-privacy-btn{background:none;border:1px solid #e5e7eb;border-radius:6px;color:#6b7280;cursor:pointer;font-size:.75rem;padding:3px 10px;transition:all .15s}.nw-privacy-btn:hover{background:#f3f4f6;border-color:#d1d5db;color:#111}.dashboard-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1.25rem}.dash-greeting{color:#111;font-size:1.5rem;font-weight:700;letter-spacing:-.02em}.dash-user-count{color:#bbb;font-size:.75rem;font-weight:400;margin-top:4px}.dash-user-count-link{cursor:pointer;text-decoration:underline;text-underline-offset:2px}.dash-user-count-link:hover{color:#888}.announcement-banner{background:#1d4ed8;border-radius:8px;color:#fff;font-size:.85rem;font-weight:500;margin-bottom:1rem;padding:10px 1rem;text-align:center}.dark .announcement-banner{background:#1e3a8a}.admin-open-btn{background:#0000;border:1px solid #e5e7eb;border-radius:7px;color:#555;cursor:pointer;font-size:.8rem;font-weight:500;padding:6px 12px}.admin-open-btn:hover{background:#f3f4f6}.dark .admin-open-btn{border-color:#222;color:#999}.dark .admin-open-btn:hover{background:#1a1a1a}.admin-panel{display:flex;flex-direction:column;max-height:80vh;max-width:500px;width:100%}.admin-panel-title{color:#111;font-size:1.1rem;font-weight:700;margin-bottom:1rem}.dark .admin-panel-title{color:#f9fafb}.admin-tabs{border-bottom:1px solid #f0f0f0;display:flex;gap:.25rem;margin-bottom:1.25rem;padding-bottom:.75rem}.dark .admin-tabs{border-bottom-color:#1a1a1a}.admin-tab{background:#0000;border:none;border-radius:6px;color:#888;cursor:pointer;font-size:.82rem;font-weight:500;padding:5px 12px}.admin-tab.active{background:#111;color:#fff}.dark .admin-tab{color:#666}.dark .admin-tab.active{background:#f9fafb;color:#111}.admin-loading{color:#aaa;font-size:.9rem}.admin-members{display:flex;flex-direction:column;overflow-y:auto}.admin-user-row{align-items:center;border-bottom:1px solid #f3f4f6;display:flex;gap:.75rem;padding:10px 0}.admin-user-row:last-child{border-bottom:none}.admin-user-info{display:flex;flex:1 1;flex-direction:column;gap:2px;min-width:0}.admin-user-name{color:#111;font-size:.88rem;font-weight:600}.admin-user-meta{color:#888;font-size:.8rem}.admin-user-noemail{color:#ccc;font-style:italic}.admin-user-dates{color:#bbb;font-size:.75rem}.admin-delete-btn{background:#0000;border:1px solid #fca5a5;border-radius:5px;color:#ef4444;cursor:pointer;font-size:.78rem;padding:4px 10px;white-space:nowrap}.admin-delete-btn:hover{background:#fff5f5}.admin-delete-confirm{align-items:center;color:#92400e;display:flex;font-size:.78rem;gap:6px;white-space:nowrap}.admin-delete-yes{background:#dc2626;border:none;border-radius:5px;color:#fff}.admin-delete-no,.admin-delete-yes{cursor:pointer;font-size:.78rem;padding:3px 8px}.admin-delete-no{background:#0000;border:1px solid #e5e7eb;border-radius:5px}.dark .admin-user-noemail{color:#333}.dark .admin-user-dates{color:#444}.dark .admin-delete-btn{border-color:#7f1d1d;color:#f87171}.dark .admin-delete-btn:hover{background:#1a0808}.dark .admin-delete-confirm{color:#fb923c}.dark .admin-delete-no{border-color:#222;color:#aaa}.admin-stats-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:1fr 1fr}.admin-stat-box{background:#f9fafb;border-radius:10px;padding:1rem;text-align:center}.admin-stat-value{color:#111;font-size:1.6rem;font-weight:700}.admin-stat-label{color:#888;font-size:.78rem;margin-top:4px}.dark .admin-stat-box{background:#111}.dark .admin-stat-value{color:#f9fafb}.admin-announcement{display:flex;flex-direction:column;gap:.75rem}.admin-announcement-hint{color:#888;font-size:.82rem;margin:0}.dark .admin-announcement-hint{color:#666}.admin-announcement-input{background:#fff;border:1px solid #e5e7eb;border-radius:8px;box-sizing:border-box;color:#111;font-family:inherit;font-size:.88rem;padding:10px 12px;resize:vertical;width:100%}.dark .admin-announcement-input{background:#111;border-color:#222;color:#f9fafb}.admin-announcement-actions{display:flex;gap:.5rem}.admin-announce-save{background:#111;border:none;border-radius:7px;color:#fff;cursor:pointer;font-size:.85rem;font-weight:600;padding:8px 16px}.admin-announce-save:hover{background:#333}.dark .admin-announce-save{background:#f9fafb;color:#111}.admin-announce-clear{background:#0000;border:1px solid #e5e7eb;border-radius:7px;color:#888;cursor:pointer;font-size:.85rem;padding:8px 14px}.admin-announce-clear:hover{background:#f3f4f6}.dark .admin-announce-clear{border-color:#222;color:#666}.greeting-cursor{animation:blink .9s step-end infinite;background:#111;display:inline-block;height:1.2em;margin-left:2px;vertical-align:text-bottom;width:2px}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.refresh-btn{background:#0000;border:1px solid #ddd;border-radius:6px;color:#555;cursor:pointer;padding:6px 14px}.top-row{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:1fr 2fr;margin-bottom:1rem}.net-worth-amount{color:#1a1a2e;font-size:2.5rem;font-weight:700;margin:.5rem 0 1rem}.nw-ratio-bar{background:#fee2e2;border-radius:4px;height:8px;margin-bottom:4px;overflow:hidden}.nw-ratio-fill{background:#22c55e;border-radius:4px;height:100%;transition:width .6s ease}.nw-ratio-labels{display:flex;font-size:.75rem;font-weight:500;justify-content:space-between;margin-bottom:1rem}.net-worth-breakdown{border-top:1px solid #f5f5f5;display:flex;gap:0;margin-top:.5rem;padding-top:1rem}.nw-monthly-change{border-top:1px solid #f5f5f5;font-size:.78rem;font-weight:600;margin-top:1rem;padding-top:.75rem;text-align:center}.breakdown-item{display:flex;flex:1 1;flex-direction:column}.breakdown-divider{background:#f0f0f0;margin:0 .5rem;width:1px}.breakdown-item .label{color:#999;font-size:.75rem;margin-bottom:2px}.breakdown-item .value{font-size:1rem;font-weight:600}.warn{color:#f59e0b}.positive{color:#22c55e}.negative{color:#ef4444}.changelog-btn,.changelog-wrap{align-items:center;display:flex;position:relative}.changelog-btn{background:#0000;border:1px solid #e5e7eb;border-radius:8px;color:#555;cursor:pointer;font-size:.875rem;font-weight:500;gap:6px;padding:6px 16px;transition:all .15s}.changelog-btn:hover{background:#f9fafb;border-color:#d1d5db;color:#111}.changelog-dot{background:#ef4444;border-radius:50%;flex-shrink:0;height:7px;width:7px}.changelog-panel{background:#fff;border:1px solid #e5e7eb;border-radius:14px;box-shadow:0 8px 30px #0000001f;overflow:hidden;position:absolute;right:0;top:calc(100% + 10px);width:360px;z-index:200}.changelog-panel-header{align-items:center;border-bottom:1px solid #f0f0f0;color:#111;display:flex;font-size:.95rem;font-weight:700;justify-content:space-between;padding:14px 18px}.changelog-close{background:none;border:none;border-radius:4px;color:#aaa;cursor:pointer;font-size:.85rem;padding:2px 4px}.changelog-close:hover{background:#f5f5f5;color:#555}.changelog-entries{max-height:420px;overflow-y:auto;padding:8px 0}.changelog-entry{padding:12px 18px}.changelog-entry+.changelog-entry{border-top:1px solid #f5f5f5}.changelog-date{color:#aaa;font-size:.72rem;font-weight:700;letter-spacing:.06em;margin-bottom:8px;text-transform:uppercase}.changelog-list{display:flex;flex-direction:column;gap:6px;list-style:none}.changelog-list li{color:#444;font-size:.82rem;line-height:1.4;padding-left:14px;position:relative}.changelog-list li:before{color:#4f7fe8;content:"·";font-weight:900;left:4px;position:absolute}.nav-username-btn{background:#f5f5f5;border:1px solid #e5e7eb;border-radius:20px;color:#444;cursor:pointer;font-size:.85rem;font-weight:500;padding:5px 14px;transition:all .15s}.nav-username-btn:hover{background:#ececec;color:#111}.nav-brand{color:#111;font-size:1.5rem;font-weight:800;letter-spacing:-.05em}.nav-brand:after{color:#4f7fe8;content:"."}.modal-overlay{align-items:center;background:#00000073;display:flex;inset:0;justify-content:center;padding:1rem;position:fixed;z-index:1000}.modal-card{background:#fff;border-radius:16px;box-shadow:0 20px 60px #0003;max-width:400px;padding:2rem;position:relative;width:100%}.modal-close{align-items:center;background:#f5f5f5;border:none;border-radius:50%;color:#666;cursor:pointer;display:flex;font-size:.75rem;height:28px;justify-content:center;position:absolute;right:1rem;top:1rem;width:28px}.modal-close:hover{background:#eee}.profile-header{align-items:center;display:flex;gap:1rem;margin-bottom:1.25rem}.profile-avatar{align-items:center;background:linear-gradient(135deg,#4f7fe8,#9b59b6);border-radius:50%;color:#fff;display:flex;flex-shrink:0;font-size:1.1rem;font-weight:700;height:52px;justify-content:center;width:52px}.profile-username{color:#1a1a2e;font-size:1.1rem;font-weight:700}.profile-since{color:#999;font-size:.8rem;margin-top:2px}.profile-stats{background:#f8f9fa;border-radius:10px;display:flex;gap:1rem;margin-bottom:1.5rem;padding:.75rem 1rem}.profile-stat{align-items:center;display:flex;flex:1 1;flex-direction:column}.profile-stat-value{color:#1a1a2e;font-size:1.3rem;font-weight:700}.profile-stat-label{color:#999;font-size:.75rem}.profile-section-title{color:#999;font-size:.8rem;font-weight:600;letter-spacing:.05em;margin-bottom:.75rem;margin-top:1.5rem;text-transform:uppercase}.profile-pw-form{display:flex;flex-direction:column;gap:.75rem;margin-bottom:.5rem}.profile-pw-form input{border:1px solid #e5e7eb;border-radius:8px;font-size:.9rem;outline:none;padding:10px 12px;transition:border-color .2s}.profile-pw-form input:focus{border-color:#4f7fe8}.profile-pw-success{background:#f0fff6;border:1px solid #bbf7d0;border-radius:6px;color:#22c55e;font-weight:500;padding:8px 12px}.accounts-list{display:flex;flex-direction:column;gap:.75rem;max-height:280px;overflow-y:auto}.account-row{align-items:center;display:flex;gap:.75rem}.account-icon{font-size:1.25rem}.account-info{display:flex;flex:1 1;flex-direction:column}.account-name{font-size:.95rem;font-weight:500}.account-subtype{color:#999;font-size:.8rem;text-transform:capitalize}.account-balance{font-size:.95rem;font-weight:600}.spending-mom-header{align-items:center;border-bottom:1px solid #f0f0f0;display:flex;justify-content:space-between;margin-bottom:1.25rem;padding-bottom:1rem}.spending-mom-header .right{text-align:right}.spending-mom-month{color:#888;font-size:.8rem;letter-spacing:.04em;text-transform:uppercase}.spending-mom-total{font-size:1.3rem;font-weight:700}.spending-mom-total.muted{color:#aaa;font-size:1.1rem}.spending-mom-badge{background:#f5f5f5;border-radius:20px;font-size:.8rem;font-weight:600;padding:4px 10px}.spending-mom-badge.negative{background:#fff0f0;color:#e85c4f}.spending-mom-badge.positive{background:#f0fff6;color:#34c789}.spending-bars{gap:.5rem}.spending-bars,.spending-category{display:flex;flex-direction:column}.spending-category{gap:4px}.spending-row{align-items:center;cursor:pointer;display:flex;justify-content:space-between;padding:4px 0;-webkit-user-select:none;user-select:none}.spending-row:hover .cat-name{color:#1a1a2e}.spending-label{align-items:center;display:flex;flex:1 1;font-size:.85rem;gap:6px;min-width:0}.cat-dot{border-radius:50%;flex-shrink:0;height:10px;width:10px}.cat-name{color:#444;overflow:hidden;text-overflow:ellipsis;text-transform:capitalize;white-space:nowrap}.cat-change{flex-shrink:0;font-size:.75rem;font-weight:600}.spending-row-right{align-items:center;display:flex;gap:8px}.cat-amount{font-size:.9rem;font-weight:600}.cat-expand{color:#aaa;font-size:.6rem}.bar-track{background:#f0f0f0;border-radius:4px;height:6px;overflow:visible;position:relative}.bar-fill{border-radius:4px;height:100%;transition:width .5s ease}.bar-marker{background:#0003;border-radius:1px;height:10px;position:absolute;top:-2px;transform:translateX(-50%);width:2px}.cat-tx-list{background:#fafafa;border-radius:8px;display:flex;flex-direction:column;gap:0;margin-top:2px;padding:.5rem .75rem}.cat-tx-row{align-items:center;border-bottom:1px solid #f0f0f0;display:flex;font-size:.82rem;gap:.75rem;padding:6px 0}.cat-tx-row:last-child{border-bottom:none}.cat-tx-date{color:#999;flex-shrink:0;width:48px}.cat-tx-name{color:#444;flex:1 1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cat-tx-amount{color:#e85c4f;flex-shrink:0;font-weight:600}.cat-tx-empty{color:#aaa;font-size:.82rem;padding:6px 0}.transactions-list{display:flex;flex-direction:column;gap:.6rem;max-height:360px;overflow-y:auto}.tx-row{align-items:center;border-bottom:1px solid #f5f5f5;display:flex;justify-content:space-between;padding:.5rem 0}.tx-info{display:flex;flex-direction:column}.tx-name{font-size:.9rem;font-weight:500}.tx-date{color:#aaa;font-size:.78rem}.tx-amount{font-size:.9rem;font-weight:600}.total-value{color:#1a1a2e;font-size:1.1rem;font-weight:700}.recharts-sector:focus,.recharts-wrapper path:focus,.recharts-wrapper svg:focus{outline:none}.income-header{align-items:flex-start;display:flex;flex-wrap:wrap;gap:.5rem;justify-content:space-between;margin-bottom:1rem}.income-header h3{margin-bottom:2px}.income-total{font-size:1.1rem;font-weight:700}.income-period-btns{display:flex;flex-shrink:0;gap:.3rem}.income-period-btn{background:#f5f5f5;border:1px solid #e5e7eb;border-radius:20px;color:#666;cursor:pointer;font-size:.75rem;font-weight:500;padding:4px 11px;transition:all .15s;white-space:nowrap}.income-period-btn.active{background:#111;border-color:#111;color:#fff}.income-period-btn:hover:not(.active){background:#ececec}.income-loading{color:#aaa;font-size:.9rem;padding:1rem 0}.income-list{display:flex;flex-direction:column}.income-row{align-items:center;border-bottom:1px solid #f5f5f5;display:flex;font-size:.875rem;gap:.75rem;padding:.65rem 0}.income-row:last-child{border-bottom:none}.income-date{color:#aaa;flex-shrink:0;font-size:.8rem;width:48px}.income-info{display:flex;flex:1 1;flex-direction:column;gap:2px;min-width:0}.income-name{color:#1a1a2e;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.income-cat{color:#aaa;font-size:.75rem;text-transform:capitalize}.income-amount{flex-shrink:0;font-size:.9rem;font-weight:700}.account-row-hoverable{cursor:pointer}.account-row-hoverable:hover{background:#fafafa;border-radius:8px}.account-row-hoverable .acct-edit-hint{color:#bbb;font-size:.75rem;margin-left:.4rem;opacity:0;transition:opacity .15s}.account-row-hoverable:hover .acct-edit-hint{opacity:1}.account-row-right-wrap{align-items:center;display:flex}.account-row-editing{background:#fafafa;border-radius:8px;padding-left:.25rem}.account-edit-wrap{flex:1 1}.account-balance-input{border:none;border-bottom:1px solid #d1d5db;color:#555;font-size:.82rem;width:80px}.account-balance-input,.account-name-input{background:#0000;outline:none;padding:0 0 1px}.account-name-input{border:none;border-bottom:1.5px solid #4f7fe8;color:#111;font-size:.9rem;font-weight:600;width:100%}.account-edit-actions{display:flex;gap:.4rem;margin-left:.75rem}.acct-save-btn{background:#111;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.78rem;font-weight:600;padding:3px 10px}.acct-cancel-btn{border:1px solid #e5e7eb;border-radius:6px;color:#555}.acct-cancel-btn,.acct-disconnect-btn{background:none;cursor:pointer;font-size:.78rem;padding:3px 10px}.acct-disconnect-btn{border:1px solid #fca5a5;border-radius:6px;color:#ef4444}.acct-disconnect-btn:hover{background:#fef2f2}.acct-disconnect-confirm-btn{background:#ef4444;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.78rem;font-weight:600;padding:3px 10px}.acct-disconnect-confirm-btn:hover{background:#dc2626}.account-disconnect-confirm-text{color:#ef4444;font-size:.8rem;font-weight:500}.account-row-manual{background:#fafff9}.account-balance-wrap{align-items:center;display:flex;gap:.4rem}.acct-delete-btn{background:none;border:none;border-radius:3px;color:#ccc;cursor:pointer;font-size:.7rem;padding:2px 4px;transition:color .15s}.acct-delete-btn:hover{color:#ef4444}.add-cash-btn{background:#0000;border:1px dashed #d1d5db;border-radius:8px;color:#888;cursor:pointer;font-size:.85rem;margin-top:.75rem;padding:8px;transition:all .15s;width:100%}.add-cash-btn:hover{background:#f0f4ff;border-color:#4f7fe8;color:#4f7fe8}.add-cash-form{display:flex;flex-direction:column;gap:.5rem;margin-top:.75rem}.add-cash-form input{border:1.5px solid #e5e7eb;border-radius:8px;font-size:.875rem;outline:none;padding:8px 10px;transition:border-color .15s}.add-cash-form input:focus{border-color:#4f7fe8}.add-cash-actions{display:flex;gap:.5rem}.add-cash-save{background:#111;border:none;border-radius:8px;color:#fff;flex:1 1;font-weight:500;padding:8px}.add-cash-cancel,.add-cash-save{cursor:pointer;font-size:.875rem}.add-cash-cancel{background:#f5f5f5;border:1px solid #e5e7eb;border-radius:8px;color:#666;padding:8px 14px}.connect-modal-card{background:#fff;border-radius:16px;box-shadow:0 20px 60px #0000002e;max-width:480px;padding:2.5rem;position:relative;width:100%}.investments-pie-card{margin-bottom:1rem}.inv-sort-row{display:flex;gap:.4rem;overflow-x:auto;padding-bottom:.75rem;scrollbar-width:none}.inv-sort-row::-webkit-scrollbar{display:none}.inv-sort-btn{background:#f5f5f5;border:1px solid #e5e7eb;border-radius:20px;color:#666;cursor:pointer;flex-shrink:0;font-size:.78rem;font-weight:500;padding:5px 13px;transition:all .15s;white-space:nowrap}.inv-sort-btn.active{background:#111;border-color:#111;color:#fff}.inv-sort-btn:hover:not(.active){background:#ececec}.inv-donut-wrap{align-items:center;display:flex;gap:1rem;justify-content:center;margin:-.5rem 0}.inv-donut-chart-wrap{flex:0 0 300px;position:relative}.inv-donut-center{left:50%;pointer-events:none;position:absolute;text-align:center;top:50%;transform:translate(-50%,-50%);z-index:1}.inv-stats-panel{display:flex;flex:0 0 auto;flex-direction:column;gap:1.4rem;min-width:140px;padding:.5rem 1.25rem}.inv-stat-label{color:#aaa;font-size:.68rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.inv-stat-value{color:#111;font-size:1rem;font-weight:700;margin-top:3px}.inv-stat-sub{font-size:.8rem;font-weight:600;margin-top:2px}.inv-center-total{color:#111;font-size:1.15rem;font-weight:800;line-height:1.2}.inv-center-gain{font-size:.82rem;font-weight:700;margin-top:3px}.inv-center-sub{font-size:.75rem;font-weight:600}.inv-center-label{color:#aaa;font-size:.68rem;margin-top:2px}.inv-list{display:flex;flex-direction:column;margin-top:.5rem}.inv-list-header{align-items:center;border-bottom:1px solid #f0f0f0;color:#666;display:flex;font-size:.9rem;font-weight:500;justify-content:space-between;padding:0 0 .75rem}.inv-total-val{color:#111;font-size:.95rem;font-weight:700}.inv-row{align-items:center;border-bottom:1px solid #f5f5f5;display:flex;justify-content:space-between;padding:.65rem 0}.inv-row:last-child{border-bottom:none}.inv-row-left{align-items:center;display:flex}.inv-ticker{color:#111;font-size:.9rem;font-weight:700}.inv-fullname{color:#aaa;font-size:.75rem;margin-top:2px;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.inv-row-right{align-items:center;display:flex;gap:.75rem}.inv-col{font-size:.88rem;font-weight:600;min-width:72px;text-align:right}.inv-val{color:#111}.inv-pct-col{color:#888;font-weight:500;min-width:44px}@media (max-width:768px){.inv-row-right{gap:.5rem}.inv-col{font-size:.8rem;min-width:60px}.inv-pct-col{display:none}.inv-fullname{max-width:120px}.inv-donut-wrap{flex-direction:column;margin:0}.inv-donut-chart-wrap{flex:initial;width:100%}.inv-stats-panel{flex-direction:row;flex-wrap:wrap;gap:1rem;padding:0 0 .5rem}.inv-stat-item{min-width:100px}}.muted-val{color:#ccc}.tx-view-toggle{display:flex;gap:.4rem;margin-bottom:1rem;padding-left:1.5rem}.tx-view-btn{background:#f5f5f5;border:1px solid #0000;border-radius:8px;color:#666;cursor:pointer;font-size:.82rem;font-weight:600;padding:5px 18px;transition:all .15s}.tx-view-btn:hover:not(.active){background:#ececec;color:#333}.tx-view-btn.active{background:#111;color:#fff}.cal-wrap{display:flex;flex-direction:column;gap:1rem}.cal-top{flex-wrap:wrap;justify-content:space-between}.cal-nav,.cal-top{gap:.75rem}.cal-nav,.cal-nav-btn,.cal-top{align-items:center;display:flex}.cal-nav-btn{background:#f5f5f5;border:none;border-radius:8px;color:#444;cursor:pointer;font-size:1.1rem;height:32px;justify-content:center;transition:background .15s;width:32px}.cal-nav-btn:hover:not(:disabled){background:#e5e7eb}.cal-nav-btn:disabled{cursor:default;opacity:.3}.cal-month-label{color:#111;font-size:1rem;font-weight:700;min-width:140px;text-align:center}.cal-summary{align-items:center;display:flex;flex-wrap:wrap;gap:.5rem}.cal-sum-stat{align-items:flex-end;display:flex;flex-direction:column}.cal-sum-label{color:#aaa;font-size:.65rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.cal-sum-item{font-size:.82rem;font-weight:600;white-space:nowrap}.cal-sum-divider{background:#e5e7eb;height:14px;width:1px}.cal-grid{border:1px solid #f0f0f0;border-radius:10px;display:grid;grid-template-columns:repeat(7,1fr);overflow:hidden}.cal-dow{background:#fafafa;border-bottom:1px solid #f0f0f0;color:#999;font-size:.7rem;font-weight:600;padding:6px 0;text-align:center}.cal-dow-short{display:none}.cal-cell{align-items:center;background:#fff;border-bottom:1px solid #f0f0f0;border-right:1px solid #f0f0f0;cursor:pointer;display:flex;flex-direction:column;min-height:70px;padding:6px 6px 5px;transition:background .12s;-webkit-user-select:none;user-select:none}.cal-cell:nth-child(7n){border-right:none}.cal-cell.cal-empty{background:#fafafa;cursor:default}.cal-cell.cal-has-tx:hover{background:#f5f8ff}.cal-cell.cal-selected{background:#eef2ff}.cal-today .cal-day-num{background:#111;border-radius:50%;color:#fff}.cal-day-num{align-items:center;color:#555;flex-shrink:0;font-size:.78rem;font-weight:700;height:22px;justify-content:center;width:22px}.cal-day-num,.cal-dots{display:flex;margin-bottom:4px}.cal-dots{gap:2px}.cal-dot{border-radius:50%;flex-shrink:0;height:5px;width:5px}.cal-dot.positive{background:#16a34a}.cal-dot.negative{background:#ef4444}.cal-day-total{font-size:.62rem;font-weight:700;margin-top:auto;text-align:center}.cal-day-panel{animation:slideDown .18s ease;border:1px solid #e5e7eb;border-radius:12px;overflow:hidden;overflow-x:hidden}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.cal-day-panel-header{align-items:flex-start;background:#fafafa;border-bottom:1px solid #f0f0f0;display:flex;justify-content:space-between;padding:14px 16px}.cal-day-panel-date{color:#111;font-size:.95rem;font-weight:700}.cal-day-panel-summary{display:flex;gap:.75rem;margin-top:3px}.cal-day-panel-summary span{font-size:.8rem;font-weight:600}.cal-day-panel-close{background:none;border:none;border-radius:4px;color:#aaa;cursor:pointer;flex-shrink:0;font-size:.85rem;padding:2px 4px}.cal-day-panel-close:hover{background:#f0f0f0;color:#555}.cal-day-tx-list{display:flex;flex-direction:column}.cal-day-tx-row{align-items:center;border-bottom:1px solid #f5f5f5;display:flex;gap:1rem;justify-content:space-between;padding:10px 16px}.cal-day-tx-row:last-child{border-bottom:none}.cal-day-tx-name{color:#333;flex:1 1;font-size:.875rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cal-day-tx-amt{flex-shrink:0;font-size:.875rem;font-weight:700}@media (max-width:768px){.cal-dow-full{display:none}.cal-dow-short{display:inline}.cal-cell{min-height:54px;padding:4px 3px}.cal-day-num{font-size:.72rem;height:20px;width:20px}.cal-dot{height:4px;width:4px}.cal-day-total{font-size:.55rem}}.holdings-list{display:flex;flex-direction:column;gap:.6rem;max-height:360px;overflow-y:auto}.holding-row{align-items:center;border-bottom:1px solid #f5f5f5;display:flex;justify-content:space-between;padding:.5rem 0}.holding-info{display:flex;flex-direction:column}.holding-ticker{color:#1a1a2e;font-size:.9rem;font-weight:700}.holding-name{color:#999;font-size:.78rem}.holding-values{align-items:center;display:flex;gap:.75rem}.holding-value{font-size:.9rem;font-weight:600}.holding-gain{font-size:.8rem;font-weight:500}.holding-pct{color:#aaa;font-size:.78rem}.chart-card,.chart-header{margin-bottom:1rem}.chart-header{align-items:flex-start;display:flex;justify-content:space-between}.chart-title-group{display:flex;flex-direction:column;gap:4px}.chart-title-group h3{margin-bottom:0}.chart-change{font-size:.85rem;font-weight:500}.change-period{color:#999;font-weight:400}.chart-loading{align-items:center;color:#aaa;display:flex;font-size:.9rem;height:220px;justify-content:center}.range-selector{display:flex;gap:4px}.range-btn{background:#0000;border:1px solid #e5e5e5;border-radius:6px;color:#666;cursor:pointer;font-size:.8rem;padding:4px 10px;transition:all .15s}.range-btn:hover{background:#f5f5f5}.range-btn.active{background:#1a1a2e;border-color:#1a1a2e;color:#fff}.chart-tooltip{background:#fff;border:1px solid #eee;border-radius:8px;box-shadow:0 2px 8px #0000001a;padding:8px 12px}.tooltip-value{color:#1a1a2e;font-size:.95rem;font-weight:600}.tooltip-date{color:#999;font-size:.78rem;margin-top:2px}.tabs-container{margin-top:1rem}.tab-bar{border-bottom:2px solid #f0f0f0;display:flex;gap:0;margin-bottom:1rem}.tab-btn{background:#0000;border:none;border-bottom:2px solid #0000;color:#999;cursor:pointer;font-size:.9rem;margin-bottom:-2px;padding:10px 20px;transition:all .15s;white-space:nowrap}.tab-btn:hover{color:#1a1a2e}.tab-btn.active{border-bottom-color:#1a1a2e;color:#1a1a2e;font-weight:600}.weekly-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1.25rem}.weekly-totals{display:flex;gap:2rem}.weekly-stat{align-items:flex-end;display:flex;flex-direction:column}.weekly-stat-label{color:#999;font-size:.72rem;letter-spacing:.04em;text-transform:uppercase}.weekly-stat-value{font-size:1rem;font-weight:700;margin-top:2px}.weekly-grid-wrapper{overflow-x:auto;padding-right:1rem}.weekly-grid{grid-gap:1px;background:#f0f0f0;border-radius:10px;display:grid;gap:1px;grid-template-columns:repeat(7,minmax(130px,1fr));min-width:700px;overflow:hidden}.day-col{background:#fff;display:flex;flex-direction:column;min-height:220px;padding:.85rem .75rem .75rem}.day-col-today{background:#fafbff}.day-col-header{margin-bottom:.85rem}.day-name{color:#1a1a2e;display:block;font-size:.82rem;font-weight:600}.day-date{color:#aaa;display:block;font-size:.72rem;margin-top:2px}.day-tx-list{display:flex;flex:1 1;flex-direction:column;gap:.55rem;max-height:196px;overflow-y:auto;scrollbar-color:#0000001f #0000;scrollbar-width:thin}.day-tx-list::-webkit-scrollbar{width:3px}.day-tx-list::-webkit-scrollbar-thumb{background:#00000026;border-radius:2px}.dark .day-tx-list{scrollbar-color:#ffffff1a #0000}.dark .day-tx-list::-webkit-scrollbar-thumb{background:#ffffff1a}.day-empty{color:#ccc;font-size:.8rem;padding-top:.25rem}.day-tx{border-bottom:1px solid #f5f5f5;display:flex;flex-direction:column;gap:1px;padding-bottom:.45rem}.day-tx:last-child{border-bottom:none}.day-tx-name{color:#444;font-size:.78rem;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.day-tx-amount{font-size:.76rem;font-weight:600}.day-total{align-items:center;border-top:2px solid #f0f0f0;color:#666;display:flex;font-size:.8rem;font-weight:600;justify-content:space-between;margin-top:.75rem;padding-top:.6rem}.empty-state,.error-state,.loading{color:#666;padding:4rem 2rem;text-align:center}.empty-state h2{color:#1a1a2e;font-size:1.5rem;margin-bottom:.5rem}.empty-state p,.error-state p{margin-bottom:1.5rem}.empty-state button,.error-state button{background:#1a1a2e;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1rem;padding:12px 24px}.empty-msg{color:#aaa;font-size:.9rem;padding:1rem 0;text-align:center}.nav-logout{background:#0000;border:1px solid #e5e7eb;border-radius:8px;color:#999;cursor:pointer;font-size:.85rem;font-weight:500;padding:6px 14px;transition:all .15s}.nav-logout:hover{background:#fef2f2;border-color:#fecaca;color:#ef4444}.auth-page{align-items:center;background:#f0f2f5;display:flex;justify-content:center;min-height:100vh;padding:1rem}.auth-card{background:#fff;border-radius:16px;box-shadow:0 4px 24px #00000014;max-width:400px;padding:2.5rem;width:100%}.auth-brand{color:#111;font-size:1.8rem;font-weight:800;letter-spacing:-.05em;margin-bottom:2rem;text-align:center}.auth-brand:after{color:#4f7fe8;content:"."}.auth-tabs{border-bottom:2px solid #f0f0f0;display:flex;margin-bottom:1.75rem}.auth-tab{background:#0000;border:none;border-bottom:2px solid #0000;color:#999;cursor:pointer;flex:1 1;font-size:.95rem;margin-bottom:-2px;padding:10px;transition:all .15s}.auth-tab.active{border-bottom-color:#1a1a2e;color:#1a1a2e;font-weight:600}.auth-form{gap:1.1rem}.auth-form,.form-group{display:flex;flex-direction:column}.form-group{gap:6px}.form-group label{color:#444;font-size:.85rem;font-weight:500}.form-group input{border:1.5px solid #e5e5e5;border-radius:8px;font-size:.95rem;outline:none;padding:10px 12px;transition:border-color .15s}.form-group input:focus{border-color:#1a1a2e}.auth-error{background:#fef2f2;border-radius:8px;color:#ef4444;font-size:.85rem;padding:10px 12px}.auth-submit{background:#1a1a2e;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1rem;font-weight:500;margin-top:.25rem;padding:12px;transition:opacity .2s}.auth-submit:disabled{cursor:default;opacity:.5}.auth-submit:hover:not(:disabled){opacity:.88}.auth-remember{justify-content:space-between;margin:.25rem 0 .5rem}.auth-remember,.remember-label{align-items:center;display:flex}.remember-label{color:#555;cursor:pointer;font-size:.85rem;gap:.5rem;-webkit-user-select:none;user-select:none}.remember-label input[type=checkbox]{accent-color:#1a1a2e;cursor:pointer;height:15px;width:15px}.auth-link-btn{background:none;border:none;color:#4f7fe8;cursor:pointer;font-size:.85rem;padding:0;text-decoration:none}.auth-link-btn:hover{text-decoration:underline}.forgot-link{font-size:.82rem}.optional-label{color:#aaa;font-size:.78rem;font-weight:400}.forgot-title{color:#111;font-size:1rem;font-weight:700;margin-bottom:4px}.forgot-sub{color:#777;font-size:.85rem;margin-bottom:1rem}.forgot-sent{padding:1rem 0;text-align:center}.forgot-sent-icon{font-size:2rem;margin-bottom:.75rem}.forgot-sent h3{font-size:1rem;font-weight:700;margin-bottom:.5rem}.forgot-sent p{color:#666;font-size:.85rem;line-height:1.5;margin-bottom:1.25rem}.profile-pw-success{color:#16a34a;font-size:.85rem;font-weight:600}.connect-page{display:flex;justify-content:center;padding:3rem 1rem}.connect-card{background:#fff;border-radius:16px;box-shadow:0 4px 20px #00000014;max-width:480px;padding:2.5rem;width:100%}.connect-card h2{font-size:1.5rem;margin-bottom:.75rem}.connect-card p{color:#666;line-height:1.6;margin-bottom:1.5rem}.supported-institutions{margin-bottom:2rem}.supported-institutions h4{color:#999;font-size:.85rem;margin-bottom:.75rem}.institution-list{display:flex;flex-wrap:wrap;gap:.4rem}.institution-badge{background:#f0f2f5;border-radius:20px;color:#555;font-size:.8rem;padding:4px 10px}.connect-btn{background:#1a1a2e;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1rem;padding:14px;transition:opacity .2s;width:100%}.connect-btn:disabled{cursor:default;opacity:.5}.success-msg{color:#22c55e;font-weight:500}.error-msg,.success-msg{margin-top:1rem;text-align:center}.error-msg{color:#ef4444;font-size:.9rem}@media (max-width:768px){.navbar{align-items:center;flex-direction:row;gap:.5rem;height:auto;padding:.6rem 1rem}.nav-brand{flex-shrink:0;font-size:1.1rem}.nav-links{-webkit-overflow-scrolling:touch;flex-wrap:nowrap;gap:.3rem;overflow-x:auto;scrollbar-color:#0000002e #0000;scrollbar-width:thin}.nav-links::-webkit-scrollbar{display:block;height:2px}.nav-links::-webkit-scrollbar-track{background:#0000}.nav-links::-webkit-scrollbar-thumb{background:#0000002e;border-radius:1px}.nav-links button,.nav-logout,.nav-username-btn{font-size:.75rem;padding:5px 10px;white-space:nowrap}.changelog-wrap{flex-shrink:0}.changelog-btn{font-size:.75rem;padding:5px 10px;white-space:nowrap}.changelog-panel{left:auto;max-height:70vh;right:0;width:calc(100vw - 2rem)}.main-content{padding:1rem}.top-row{grid-template-columns:1fr}.dash-greeting{font-size:1.2rem}.range-btn{font-size:.75rem;padding:4px 8px}.chart-change{font-size:.78rem}.weekly-totals{gap:1rem}.weekly-stat-value{font-size:.9rem}.tab-bar{-webkit-overflow-scrolling:touch;overflow-x:auto;touch-action:pan-x}.tab-btn{font-size:.85rem;padding:10px 14px}.auth-card,.connect-card{padding:1.75rem 1.25rem}.connect-page{padding:1.5rem 0}}.broken-banner{align-items:center;background:#fff8f0;border:1px solid #fed7aa;border-radius:8px;color:#92400e;display:flex;flex-wrap:wrap;font-size:.83rem;gap:.5rem;justify-content:space-between;margin-bottom:.75rem;padding:10px 12px}.broken-clean-btn{background:#f97316;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.78rem;font-weight:600;padding:4px 12px;white-space:nowrap}.broken-clean-btn:hover{background:#ea6c0a}.broken-clean-result{color:#15803d;font-size:.78rem;font-weight:500}.social-layout{grid-gap:1.5rem;align-items:start;display:grid;gap:1.5rem;grid-template-columns:1fr 280px}.social-sidebar{display:flex;flex-direction:column;gap:1rem}.leaderboard-card{padding:1.5rem}.social-stats-card{padding:1.25rem}.social-stats-title{color:#999;font-size:.8rem;font-weight:600;letter-spacing:.05em;margin-bottom:.75rem;text-transform:uppercase}.social-fun-fact{background:#f8f9ff;border-left:3px solid #4f7fe8;border-radius:0 6px 6px 0;color:#555;font-size:.83rem;font-style:italic;line-height:1.5;margin-bottom:1rem;padding:8px 10px}.social-stat-row{align-items:center;border-bottom:1px solid #f3f4f6;display:flex;justify-content:space-between;padding:8px 0}.social-stat-row:last-child{border-bottom:none}.social-stat-label{color:#888;font-size:.83rem}.social-stat-value{color:#1a1a2e;font-size:.88rem;font-weight:600}.social-stat-merchant{color:#4f7fe8}@media (max-width:768px){.social-layout{grid-template-columns:1fr}}.leaderboard-header{align-items:flex-start;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;margin-bottom:1.25rem}.leaderboard-title{color:#1a1a2e;font-size:1rem;font-weight:600}.leaderboard-subtitle{color:#999;font-size:.8rem;margin-top:2px}.leaderboard-anon-wrap{align-items:center;display:flex;gap:.5rem}.leaderboard-anon-label{color:#888;font-size:.78rem;white-space:nowrap}.anon-toggle{background:#e5e7eb;border:none;border-radius:10px;cursor:pointer;flex-shrink:0;height:20px;padding:0;position:relative;transition:background .2s;width:36px}.anon-toggle.anon-on{background:#4f7fe8}.anon-toggle-knob{background:#fff;border-radius:50%;display:block;height:14px;left:3px;position:absolute;top:3px;transition:left .2s;width:14px}.anon-toggle.anon-on .anon-toggle-knob{left:19px}.leaderboard-list{display:flex;flex-direction:column}.leaderboard-row{grid-gap:.5rem;align-items:center;border-bottom:1px solid #f3f4f6;display:grid;gap:.5rem;grid-template-columns:32px 1fr 56px 72px 56px;padding:10px 0}.leaderboard-row:last-child{border-bottom:none}.leaderboard-row-header{border-bottom:2px solid #f3f4f6;padding:4px 0 8px}.leaderboard-row-header span{color:#aaa;font-size:.72rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.leaderboard-row-top .lb-merchant{font-weight:600}.lb-rank{font-size:1.1rem;text-align:center}.lb-merchant{color:#1a1a2e;font-size:.88rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lb-stat{color:#555;font-size:.85rem;text-align:right}.lb-visits{color:#1a1a2e;font-weight:600}.lb-total{color:#4f7fe8;font-weight:500}.lb-users{color:#999}.leaderboard-empty{color:#aaa;font-size:.9rem;padding:2rem 0;text-align:center}.lb-cat-pills{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:1.25rem}.lb-cat-pill{background:#f5f5f5;border:1px solid #e5e7eb;border-radius:20px;color:#555;cursor:pointer;font-size:.78rem;font-weight:500;padding:5px 13px;transition:all .15s;white-space:nowrap}.lb-cat-pill:hover:not(.active){background:#ececec;color:#333}.lb-cat-pill.active{background:#111;border-color:#111;color:#fff}.social-streak{background:#fff8f0;border-radius:8px;color:#92400e;font-size:.82rem;font-weight:600;margin-top:.75rem;padding:8px 10px;text-align:center}.social-recap-btn{background:#f5f5f5;border:1px solid #e5e7eb;border-radius:8px;color:#555;cursor:pointer;font-size:.83rem;font-weight:500;margin-top:1rem;padding:9px;transition:all .15s;width:100%}.social-recap-btn:hover{background:#111;border-color:#111;color:#fff}.recap-modal{max-width:400px;padding:2rem;width:100%}.recap-month-label{color:#aaa;font-size:.72rem;font-weight:700;letter-spacing:.06em;margin-bottom:4px;text-transform:uppercase}.recap-title{color:#111;font-size:1.3rem;font-weight:700;margin-bottom:1.5rem}.recap-stats-grid{grid-gap:.75rem;display:grid;gap:.75rem;grid-template-columns:repeat(3,1fr);margin-bottom:1.25rem}.recap-stat{background:#f8f9fa;border-radius:10px;padding:12px 8px;text-align:center}.recap-stat-value{color:#111;font-size:1rem;font-weight:700}.recap-stat-label{color:#aaa;font-size:.68rem;letter-spacing:.04em;margin-top:3px;text-transform:uppercase}.recap-top{align-items:center;border-top:1px solid #f0f0f0;display:flex;justify-content:space-between;margin-bottom:.5rem;padding:10px 0}.recap-top-label{color:#888;font-size:.8rem}.recap-top-value{color:#111;font-size:.85rem;font-weight:600}.recap-mom{background:#f8f9fa;border-radius:6px;font-size:.85rem;padding:8px}.recap-mom,.recap-rank{font-weight:600;margin-bottom:1rem;text-align:center}.recap-rank{color:#555;font-size:.88rem}.recap-share-btn{background:#111;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:.9rem;font-weight:600;padding:11px;transition:opacity .15s;width:100%}.recap-share-btn:hover{opacity:.85}.profile-pref-row{align-items:center;border-bottom:1px solid #f3f4f6;display:flex;justify-content:space-between;padding:10px 0}.profile-pref-label{color:#444;font-size:.9rem}.theme-toggle{background:#e5e7eb;border:none;border-radius:12px;cursor:pointer;flex-shrink:0;height:24px;padding:0;position:relative;transition:background .2s;width:44px}.theme-toggle:after{background:#fff;border-radius:50%;box-shadow:0 1px 3px #0003;content:"";height:18px;left:3px;position:absolute;top:3px;transition:transform .2s;width:18px}.theme-toggle.on{background:#111}.theme-toggle.on:after{transform:translateX(20px)}.profile-danger-wrap{margin-top:1.25rem}.profile-delete-btn{background:#0000;border:1px solid #fca5a5;border-radius:8px;color:#ef4444;cursor:pointer;font-size:.9rem;font-weight:500;padding:10px;transition:background .15s;width:100%}.profile-delete-btn:hover{background:#fff5f5}.profile-delete-warn{color:#92400e;font-size:.85rem;font-weight:500;line-height:1.4}.profile-delete-yes{background:#dc2626;border:none;border-radius:7px;color:#fff;cursor:pointer;flex:1 1;font-size:.85rem;font-weight:600;padding:8px}.profile-delete-yes:hover{background:#b91c1c}.profile-delete-yes:disabled{cursor:not-allowed;opacity:.6}.profile-signout-wrap{margin-top:.75rem}.profile-signout-btn{background:#0000;border:1px solid #e5e7eb;border-radius:8px;color:#ef4444;cursor:pointer;font-size:.9rem;font-weight:500;padding:10px;transition:background .15s;width:100%}.profile-signout-btn:hover{background:#fff5f5;border-color:#fca5a5}.profile-signout-confirm{background:#fff8f0;border:1px solid #fed7aa;border-radius:8px;display:flex;flex-direction:column;gap:10px;padding:12px 14px}.profile-signout-confirm>span{color:#92400e;font-size:.88rem;font-weight:500}.profile-signout-actions{display:flex;gap:8px}.profile-signout-yes{background:#ef4444;border:none;border-radius:7px;color:#fff;cursor:pointer;flex:1 1;font-size:.85rem;font-weight:600;padding:8px}.profile-signout-yes:hover{background:#dc2626}.profile-signout-no{background:#fff;border:1px solid #e5e7eb;border-radius:7px;color:#555;cursor:pointer;flex:1 1;font-size:.85rem;padding:8px}.profile-signout-no:hover{background:#f9fafb}html.dark,html.dark body{background:#000}html.dark body{color:#e5e7eb}.dark .navbar{background:#000;border-bottom:1px solid #222}.dark .nav-brand{color:#f9fafb}.dark .nav-links button{background:#0000;border-color:#222;color:#d1d5db}.dark .nav-links button:hover{background:#1a1a1a;border-color:#333;color:#f9fafb}.dark .nav-links button.active{background:#f9fafb;border-color:#f9fafb;color:#111}.dark .changelog-btn{background:#0000;border-color:#222;color:#d1d5db}.dark .changelog-btn:hover{background:#1a1a1a;color:#f9fafb}.dark .nav-links::-webkit-scrollbar-thumb{background:#ffffff1f}.dark .nav-links{scrollbar-color:#ffffff1f #0000}.dark .card{background:#111;border-color:#222}.dark .nw-stat-value,.dark .nw-total,.dark h2,.dark h3{color:#f9fafb}.dark .nw-label,.dark .nw-stat-label{color:#888}.dark .nw-divider,.dark .ratio-bar-bg{background:#222}.dark .nw-monthly{color:#888}.dark .account-row{border-bottom-color:#1f1f1f}.dark .account-row-hoverable:hover{background:#1a1a1a}.dark .account-name{color:#f0f0f0}.dark .account-subtype{color:#666}.dark .acct-edit-hint{color:#444}.dark .add-cash-btn{background:#0000;border-color:#222;color:#888}.dark .add-cash-btn:hover{background:#1a1a1a;color:#f0f0f0}.dark .broken-banner{background:#1a0800;border-color:#5c2a00;color:#fb923c}.dark .broken-clean-result{color:#4ade80}.dark .tabs-container{background:#111;border-color:#222}.dark .tab-bar{border-bottom-color:#222}.dark .tab-btn{background:#0000;color:#888}.dark .tab-btn:hover{color:#e5e7eb}.dark .tab-btn.active{background:#f9fafb;color:#111}.dark .tx-view-btn{background:#0000;border-color:#222;color:#888}.dark .tx-view-btn:hover{background:#1a1a1a}.dark .tx-view-btn.active{background:#f9fafb;border-color:#f9fafb;color:#111}.dark .tx-day-label{color:#666}.dark .tx-merchant{color:#e5e7eb}.dark .tx-category{color:#666}.dark .tx-row{border-bottom-color:#1f1f1f}.dark .tx-row:hover{background:#1a1a1a}.dark .no-activity{color:#444}.dark .week-header-row{border-bottom-color:#222;color:#888}.dark .week-stat-val{color:#f9fafb}.dark .spend-cat-label{color:#d1d5db}.dark .spend-subrow-label{color:#888}.dark input,.dark select,.dark textarea{background:#1a1a1a;border-color:#222;color:#e5e7eb}.dark input::placeholder,.dark textarea::placeholder{color:#555}.dark input:focus,.dark select:focus{border-color:#444}.dark .modal-overlay{background:#000c}.dark .modal-card{background:#111;border-color:#222;color:#e5e7eb}.dark .modal-close{background:#0000;color:#888}.dark .modal-close:hover{background:#1a1a1a;color:#f0f0f0}.dark .profile-avatar{background:#1a1a1a;color:#e5e7eb}.dark .profile-username{color:#f9fafb}.dark .profile-since{color:#888}.dark .profile-stat-value{color:#f9fafb}.dark .profile-stat-label{color:#888}.dark .profile-section-title{border-bottom-color:#222;color:#888}.dark .profile-pw-success{color:#4ade80}.dark .auth-submit{background:#f9fafb;color:#111}.dark .auth-submit:hover{background:#fff}.dark .auth-error{color:#f87171}.dark .profile-pref-row{border-bottom-color:#222}.dark .profile-pref-label{color:#d1d5db}.dark .theme-toggle{background:#333}.dark .theme-toggle.on{background:#e5e7eb}.dark .theme-toggle.on:after{background:#111}.dark .profile-delete-btn{border-color:#7f1d1d;color:#f87171}.dark .profile-delete-btn:hover{background:#1a0808}.dark .profile-delete-warn{color:#fb923c}.dark .profile-signout-btn{border-color:#222;color:#f87171}.dark .profile-signout-btn:hover{background:#1a0808;border-color:#7f1d1d}.dark .profile-signout-confirm{background:#180800;border-color:#5c2a00}.dark .profile-signout-confirm>span{color:#fb923c}.dark .profile-signout-no{background:#1a1a1a;border-color:#222;color:#d1d5db}.dark .profile-signout-no:hover{background:#222}.dark .changelog-panel{background:#111;border-color:#222;box-shadow:0 8px 40px #000c}.dark .changelog-panel-header{border-bottom-color:#222;color:#f9fafb}.dark .changelog-close{background:#0000;color:#888}.dark .changelog-close:hover{background:#1a1a1a;color:#f0f0f0}.dark .changelog-date{color:#555}.dark .changelog-list li{color:#d1d5db}.dark .changelog-list li:before{color:#444}.dark .changelog-entry+.changelog-entry{border-top-color:#1f1f1f}.dark .auth-card{background:#111;border-color:#222;box-shadow:none}.dark .auth-title{color:#f9fafb}.dark .auth-subtitle{color:#888}.dark .auth-input{background:#1a1a1a;border-color:#222;color:#e5e7eb}.dark .auth-input::placeholder{color:#555}.dark .auth-link,.dark .auth-toggle{color:#888}.dark .auth-link:hover,.dark .auth-toggle:hover{color:#e5e7eb}.dark .dash-greeting{color:#f9fafb}.dark .dash-user-count{color:#888}.dark .dash-user-count-link:hover{color:#aaa}.dark .admin-users-title{color:#f9fafb}.dark .admin-user-row{border-bottom-color:#1a1a1a}.dark .admin-user-name{color:#f9fafb}.dark .admin-user-meta{color:#666}.dark .admin-user-noemail{color:#444}.dark .refresh-btn{background:#0000;border-color:#222;color:#888}.dark .refresh-btn:hover{background:#1a1a1a;color:#f0f0f0}.dark .empty-state h2,.dark .error-state p{color:#f9fafb}.dark .empty-state p,.dark .loading{color:#888}.dark .connect-card{background:#111;border-color:#222}.dark .connect-title{color:#f9fafb}.dark .connect-sub{color:#888}.dark .connect-card h2{color:#f9fafb}.dark .connect-card p{color:#888}.dark .connect-btn{background:#f9fafb;color:#111}.dark .connect-btn:hover:not(:disabled){background:#fff}.dark .institution-badge{background:#1a1a1a;border:1px solid #222;color:#bbb}.dark .inv-center-total,.dark .inv-stat-value{color:#f9fafb}.dark .inv-sort-btn{background:#1a1a1a;border-color:#333;color:#d1d5db}.dark .inv-sort-btn.active{background:#f9fafb;border-color:#f9fafb;color:#111}.dark .inv-sort-btn:hover:not(.active){background:#222}.dark .investments-pie-card text{fill:#ccc}.dark .inv-list-header{border-bottom-color:#222;color:#f9fafb}.dark .inv-row{border-bottom-color:#1a1a1a}.dark .inv-ticker{color:#f9fafb}.dark .inv-fullname{color:#666}.dark .inv-val{color:#d1d5db}.dark .inv-total-val{color:#888}.dark .muted-val{color:#555}.dark .weekly-grid{background:#222}.dark .day-col{background:#111}.dark .day-col-today{background:#141420}.dark .day-name{color:#f0f0f0}.dark .day-tx{border-bottom-color:#1f1f1f}.dark .day-tx-name{color:#d1d5db}.dark .day-total{border-top-color:#222;color:#888}.dark .spending-mom-header{border-bottom-color:#222}.dark .spending-mom-total{color:#f9fafb}.dark .spending-mom-total.muted{color:#666}.dark .spending-mom-badge{background:#1a1a1a;color:#888}.dark .spending-mom-badge.negative{background:#200a0a;color:#f87171}.dark .spending-mom-badge.positive{background:#071a0d;color:#4ade80}.dark .cat-name{color:#d1d5db}.dark .cat-amount,.dark .spending-row:hover .cat-name{color:#f9fafb}.dark .cat-expand{color:#444}.dark .cat-tx-list{background:#1a1a1a}.dark .cat-tx-row{border-bottom-color:#222}.dark .cat-tx-name{color:#d1d5db}.dark .cat-tx-empty{color:#555}.dark .account-row-editing{background:#1a1a1a}.dark .account-row-manual{background:#0000}.dark .acct-save-btn{background:#f9fafb;color:#111}.dark .acct-cancel-btn{border-color:#222;color:#888}.dark .acct-disconnect-btn:hover{background:#1a0808}.dark .net-worth-amount{color:#f9fafb}.dark .range-btn.active{background:#f9fafb;border-color:#f9fafb;color:#111}.dark .range-btn:hover{background:#1a1a1a}.dark .total-value{color:#f9fafb}.dark .holding-ticker,.dark .income-name{color:#e5e7eb}.dark .tooltip-value{color:#f9fafb}.dark .chart-tooltip{background:#181818;border-color:#222;box-shadow:0 2px 12px #0009}.dark .tooltip-date{color:#666}.dark .profile-stats{background:#1a1a1a}.dark .leaderboard-title,.dark .social-stat-value{color:#f9fafb}.dark .leaderboard-subtitle{color:#666}.dark .lb-merchant{color:#e5e7eb}.dark .lb-visits{color:#f9fafb}.dark .lb-stat{color:#888}.dark .lb-total{color:#7aadff}.dark .leaderboard-row{border-bottom-color:#1a1a1a}.dark .leaderboard-row-header{border-bottom-color:#222}.dark .social-fun-fact{background:#0f1420;border-left-color:#4f7fe8;color:#aaa}.dark .social-stat-row{border-bottom-color:#1a1a1a}.dark .leaderboard-anon-label,.dark .social-stat-label{color:#666}.dark .lb-cat-pill{background:#1a1a1a;border-color:#333;color:#d1d5db}.dark .lb-cat-pill:hover:not(.active){background:#222}.dark .lb-cat-pill.active{background:#f9fafb;border-color:#f9fafb;color:#111}.dark .social-streak{background:#1a1000;color:#d97706}.dark .social-recap-btn{background:#1a1a1a;border-color:#333;color:#d1d5db}.dark .social-recap-btn:hover{background:#f9fafb;color:#111}.dark .recap-title{color:#f9fafb}.dark .recap-stat{background:#1a1a1a}.dark .recap-stat-value{color:#f9fafb}.dark .recap-top{border-top-color:#222}.dark .recap-top-value{color:#f9fafb}.dark .recap-mom{background:#1a1a1a}.dark .recap-rank{color:#888}.dark .recap-share-btn{background:#f9fafb;color:#111}.dark .recap-share-btn:hover{opacity:.9}.dark .auth-tab.active{border-bottom-color:#f9fafb;color:#f9fafb}.dark .nw-privacy-btn{border-color:#222;color:#888}.dark .nw-privacy-btn:hover{background:#1a1a1a;border-color:#333;color:#f0f0f0}.dark .cal-month-label{color:#f9fafb}.dark .cal-nav-btn{background:#1a1a1a;color:#d1d5db}.dark .cal-nav-btn:hover:not(:disabled),.dark .cal-sum-divider{background:#222}.dark .cal-grid{border-color:#222}.dark .cal-dow{background:#1a1a1a;border-bottom-color:#222;color:#555}.dark .cal-cell{background:#111;border-bottom-color:#1f1f1f;border-right-color:#1f1f1f}.dark .cal-cell.cal-empty{background:#0a0a0a}.dark .cal-cell.cal-has-tx:hover{background:#1a1a1a}.dark .cal-cell.cal-selected{background:#181825}.dark .cal-today .cal-day-num{background:#f9fafb;color:#111}.dark .cal-day-num{color:#888}.dark .cal-day-panel{border-color:#222}.dark .cal-day-panel-header{background:#1a1a1a;border-bottom-color:#222}.dark .cal-day-panel-date{color:#f9fafb}.dark .cal-day-panel-close{color:#555}.dark .cal-day-panel-close:hover{background:#1a1a1a;color:#e5e7eb}.dark .cal-day-tx-row{background:#111;border-bottom-color:#1f1f1f}.dark .cal-day-tx-name{color:#d1d5db}
/*# sourceMappingURL=main.425fadc0.css.map*/