:root{color:#e6edf3;font-synthesis:none;--bg:#0d1117;--panel:#161b22;--panel-muted:#0d1117;--border:#30363d;--text:#e6edf3;--muted:#8b949e;--blue:#2f81f7;--green:#3fb950;--red:#f85149;--orange:#d29922;--purple:#a371f7;background:#0d1117;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Noto Sans,Helvetica,Arial,sans-serif}*{box-sizing:border-box}body,#root{background:var(--bg);min-width:320px;min-height:100vh;margin:0}button,input,select{font:inherit}button,select,label,summary{-webkit-tap-highlight-color:transparent}button{color:inherit}.app-shell{flex-direction:column;min-height:100vh;display:flex}.topbar{z-index:20;background:#010409;border-bottom:1px solid #21262d;justify-content:space-between;align-items:center;height:64px;padding:0 clamp(16px,3vw,48px);display:flex;position:sticky;top:0}.topbar-left,.brand,.primary-nav,.topbar-actions,.merchant-cell,.notice,.bulk-bar{align-items:center;display:flex}.topbar-left{gap:clamp(12px,2.5vw,34px);min-width:0}.topbar-actions{gap:8px}.brand{gap:10px}.primary-nav{gap:5px}.brand-mark{border:1px solid var(--border);width:34px;height:34px;color:var(--muted);background:var(--panel);border-radius:6px;place-items:center;font:600 11px ui-monospace,SFMono-Regular,Menlo,monospace;display:grid}.brand strong,.brand span{display:block}.brand strong{font-size:14px;line-height:1.2}.brand span{color:var(--muted);margin-top:2px;font:10px ui-monospace,SFMono-Regular,Menlo,monospace}.local-pill{color:var(--muted);font:11px ui-monospace,SFMono-Regular,Menlo,monospace}.local-pill i{background:var(--green);border-radius:50%;width:7px;height:7px;margin-right:7px;display:inline-block;box-shadow:0 0 0 3px #3fb9501a}.shared-pill{color:#79c0ff;background:#2f81f71a;border:1px solid #2f81f773;border-radius:20px;align-items:center;gap:6px;height:30px;padding:0 9px;font-size:11px;display:inline-flex}.topbar-button{border:1px solid var(--border);color:#c9d1d9;cursor:pointer;background:#161b22;border-radius:6px;align-items:center;gap:7px;height:34px;padding:0 10px;font-size:11px;display:inline-flex}.topbar-button:hover{color:#f0f6fc;border-color:#8b949e}.primary-nav .topbar-button{color:var(--muted);background:0 0;border-color:#0000}.primary-nav .topbar-button:hover{border-color:var(--border);background:var(--panel);color:var(--text)}.primary-nav .topbar-button.active{color:#79c0ff;background:#2f81f71f;border-color:#2f81f773}.primary-nav .topbar-button.has-disputes{color:#e3b341;background:#d2992221;border-color:#d29922b3}.nav-alert{background:var(--orange);color:#0d1117;border-radius:9px;place-items:center;min-width:18px;height:18px;padding:0 5px;font:700 9px ui-monospace,SFMono-Regular,Menlo,monospace;display:inline-grid}.topbar-button.icon-only{justify-content:center;width:34px;padding:0}.user-pill{border:1px solid var(--border);max-width:210px;height:30px;color:var(--text);border-radius:20px;align-items:center;gap:6px;padding:0 9px;font-size:11px;display:inline-flex}.user-pill span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.user-pill svg{color:var(--muted);flex:none}main{flex-direction:column;flex:1;width:min(1600px,100% - 40px);margin:0 auto;padding:28px 0 56px;display:flex}.page-header{justify-content:space-between;align-items:end;margin-bottom:20px;display:flex}.path-label{color:var(--blue);margin:0 0 5px;font:11px ui-monospace,SFMono-Regular,Menlo,monospace}h1,h2,h3{margin:0}h1{font-size:24px;line-height:1.3}h2{font:600 13px ui-monospace,SFMono-Regular,Menlo,monospace}.page-header>span{color:var(--muted);font:11px ui-monospace,SFMono-Regular,Menlo,monospace}.notice{border:1px solid;border-radius:6px;gap:10px;margin-bottom:16px;padding:9px 12px;font-size:12px}.notice.success{color:#7ee787;background:#2ea0431a;border-color:#3fb95059}.notice.error{color:#ff7b72;background:#f851491a;border-color:#f8514959}.notice>span{border:1px solid;border-radius:50%;place-items:center;width:19px;height:19px;font-size:10px;display:grid}.notice p{flex:1;margin:0}.notice button{cursor:pointer;opacity:.7;background:0 0;border:0;font-size:18px}.summary-grid{grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:14px;display:grid}.metric-card{background:var(--panel);border:1px solid var(--border);border-radius:6px;min-height:102px;padding:16px}.metric-card span,.metric-card strong,.metric-card small{display:block}.metric-card span{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font:10px ui-monospace,SFMono-Regular,Menlo,monospace}.metric-card strong{letter-spacing:-.04em;margin:13px 0 5px;font:600 22px ui-monospace,SFMono-Regular,Menlo,monospace}.metric-card small{color:#6e7681;font-size:10px}.metric-card.dispute-alert{box-shadow:inset 3px 0 0 var(--orange);background:#d299221c;border-color:#d29922bf}.metric-card.dispute-alert span,.metric-card.dispute-alert strong{color:#e3b341}.metric-card.dispute-alert small{color:#c69026}.positive{color:var(--green)!important}.negative{color:var(--red)!important}.workspace-grid{flex:1;grid-template-columns:minmax(0,1fr);align-items:stretch;gap:14px;display:grid}.workspace-grid.with-breakdown{grid-template-columns:minmax(0,1fr) 420px}.transactions-panel,.insights-panel{background:var(--panel);border:1px solid var(--border);border-radius:6px;overflow:visible}.transactions-panel{flex-direction:column;min-width:0;min-height:100%;display:flex}.panel-heading{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;min-height:55px;padding:14px 16px;display:flex}.panel-tools{align-items:center;gap:8px;display:flex}.rules-count{border:1px solid var(--border);color:var(--muted);border-radius:20px;padding:4px 8px;font:9px ui-monospace,SFMono-Regular,Menlo,monospace}.breakdown-toggle{border:1px solid var(--border);color:#c9d1d9;cursor:pointer;background:#21262d;border-radius:6px;align-items:center;gap:7px;height:32px;padding:0 10px;font:10px ui-monospace,SFMono-Regular,Menlo,monospace;display:inline-flex}.breakdown-toggle:hover{border-color:#8b949e}.breakdown-toggle.active{border-color:var(--blue);color:#79c0ff;background:#2f81f71a}.sticky-controls{z-index:100;background:#0d1117;position:sticky;top:64px;overflow:visible;box-shadow:0 8px 18px #01040961}.filters{border-bottom:1px solid var(--border);background:#0d1117;flex-wrap:wrap;align-items:center;gap:10px;padding:14px;display:flex;position:relative;overflow:visible}.filters select,.search-field,.bulk-bar select,.month-trigger,.category-trigger{border:1px solid var(--border);height:42px;color:var(--text);background:#21262d;border-radius:6px;outline:none;font-size:13px}.filters select{min-width:170px;padding:0 32px 0 12px}.filters select:focus,.search-field:focus-within,.month-filter.open .month-trigger,.category-filter.open .category-trigger{border-color:var(--blue);box-shadow:0 0 0 3px #2f81f726}.search-field{background:var(--bg);flex:1;align-items:center;min-width:280px;padding:0 12px;display:flex}.search-field>svg{color:var(--muted);flex:none;margin-right:9px}.search-field input{width:100%;color:var(--text);background:0 0;border:0;outline:0;font-size:13px}.search-field input::placeholder{color:#6e7681}.search-clear{width:26px;height:26px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:4px;flex:none;place-items:center;padding:0;font-size:20px;line-height:1;display:grid}.search-clear:hover{color:var(--text);background:#21262d}.filters-locked{background:#0b0f14}.filters-locked .search-field,.filters-locked select,.filters-locked .month-trigger,.filters-locked .category-trigger{opacity:.58;cursor:not-allowed}.filters-locked .search-field input,.filters button:disabled,.filters select:disabled{cursor:not-allowed}.month-filter{z-index:102;position:relative}.month-trigger{cursor:pointer;align-items:center;gap:9px;min-width:180px;padding:0 12px;display:flex}.month-trigger>svg:first-child{color:var(--muted)}.month-trigger b{color:#79c0ff;text-align:center;background:#2f81f721;border-radius:12px;min-width:32px;margin-left:auto;padding:3px 6px;font:600 10px ui-monospace,SFMono-Regular,Menlo,monospace}.month-trigger>svg:last-child{color:var(--muted)}.month-menu{z-index:30;border:1px solid var(--border);background:#161b22;border-radius:8px;width:430px;padding:14px;position:absolute;top:49px;left:0;box-shadow:0 12px 34px #010409cc}.month-menu-header{border-bottom:1px solid #21262d;justify-content:space-between;align-items:center;padding:2px 2px 9px;display:flex}.month-menu-header strong{font-size:13px}.month-grid{grid-template-columns:repeat(2,1fr);gap:8px;padding-top:12px;display:grid}.month-grid button{text-align:left;border:1px solid var(--border);color:#c9d1d9;cursor:pointer;text-transform:capitalize;background:#0d1117;border-radius:6px;grid-template-columns:minmax(0,1fr) auto 16px;align-items:center;gap:8px;min-width:0;padding:11px 10px 11px 12px;display:grid}.month-grid button:hover{background:#1c2128;border-color:#8b949e}.month-grid button.selected{border-color:var(--blue);color:#79c0ff;background:#2f81f71a}.month-grid button span{font-size:13px}.month-grid button small{color:var(--muted);white-space:nowrap;font:9px ui-monospace,SFMono-Regular,Menlo,monospace}.month-grid button i{border:1px solid var(--border);width:15px;height:15px;color:var(--muted);border-radius:50%;place-items:center;font:9px ui-monospace,SFMono-Regular,Menlo,monospace;display:grid}.month-grid button.selected i{border-color:var(--blue);background:var(--blue);color:#fff}.category-filter{z-index:101;position:relative}.category-trigger{cursor:pointer;color:#f0f6fc;border-color:#484f58;align-items:center;gap:10px;min-width:255px;max-width:310px;padding:0 12px;font-size:14px;font-weight:600;display:flex}.category-trigger>svg:first-child{color:#8b949e;flex:none}.category-trigger span{text-align:left;text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.category-trigger>svg:last-child{color:var(--muted);flex:none}.category-menu{z-index:32;background:#161b22;border:1px solid #484f58;border-radius:8px;width:310px;max-height:min(520px,100vh - 150px);padding:7px;position:absolute;top:49px;left:0;overflow-y:auto;box-shadow:0 14px 38px #010409d9}.category-menu-search{z-index:1;color:#8b949e;background:#0d1117;border:1px solid #484f58;border-radius:6px;align-items:center;gap:8px;height:42px;margin-bottom:7px;padding:0 9px;display:flex;position:sticky;top:0}.category-menu-search:focus-within{border-color:var(--blue);box-shadow:0 0 0 3px #2f81f726}.category-menu-search input{color:#f0f6fc;background:0 0;border:0;outline:0;width:100%;min-width:0;font-size:14px}.category-menu-search input::placeholder{color:#6e7681}.category-menu-search button{color:#8b949e;cursor:pointer;background:0 0;border:0;border-radius:4px;flex:none;place-items:center;width:27px;height:27px;padding:0;display:grid}.category-menu-search button:hover{color:#f0f6fc;background:#21262d}.category-menu>button{color:#e6edf3;cursor:pointer;text-align:left;background:0 0;border:0;border-radius:5px;grid-template-columns:25px 1fr 18px;align-items:center;gap:9px;width:100%;min-height:42px;padding:7px 9px;font-size:14px;display:grid}.category-menu>button:hover{background:#21262d}.category-menu>button.selected{color:#79c0ff;background:#2f81f71f}.category-menu>button>svg{color:#8b949e}.category-menu>button.selected>svg{color:#79c0ff}.category-menu-empty{color:#8b949e;text-align:center;padding:18px 10px;font-size:13px}.bulk-bar{border-bottom:1px solid var(--border);background:#2f81f714;gap:9px;min-height:58px;padding:8px 14px;font-size:12px}.bulk-bar strong{color:#79c0ff;margin-right:7px}.bulk-bar>button,.bulk-category-trigger{border:1px solid var(--border);cursor:pointer;background:#21262d;border-radius:6px;min-height:38px;padding:8px 12px;font-size:11px}.bulk-bar>button:hover,.bulk-category-trigger:hover{border-color:#8b949e}.bulk-category-picker{z-index:103;position:relative}.bulk-category-trigger{color:#e6edf3;text-align:left;grid-template-columns:20px minmax(0,1fr) 16px;align-items:center;gap:8px;width:225px;display:grid}.bulk-category-trigger span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.bulk-category-menu{background:#161b22;border:1px solid #484f58;border-radius:8px;width:310px;max-height:min(520px,100vh - 150px);padding:7px;position:absolute;top:46px;left:0;overflow-y:auto;box-shadow:0 14px 38px #010409d9}.bulk-category-menu>button{color:#e6edf3;cursor:pointer;text-align:left;background:0 0;border:0;border-radius:5px;grid-template-columns:25px minmax(0,1fr);align-items:center;gap:9px;width:100%;min-height:42px;padding:7px 9px;font-size:14px;display:grid}.bulk-category-menu>button:hover{background:#21262d;border-color:#0000}.bulk-bar .clear-selection{color:#f0f6fc;background:#21262d;border:1px solid #484f58;min-height:42px;margin-left:auto;padding:9px 16px;font-size:13px;font-weight:600}.bulk-bar .clear-selection:hover{border-color:var(--blue);color:#79c0ff}.table-wrap{z-index:0;flex:1;position:relative;overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:980px;font-size:12px}th{text-align:left;color:var(--muted);border-bottom:1px solid var(--border);background:#0d1117;height:36px}th button{cursor:pointer;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;white-space:nowrap;background:0 0;border:0;padding:9px 6px;font:600 10px ui-monospace,SFMono-Regular,Menlo,monospace}th button:hover{color:var(--text)}td{vertical-align:middle;border-bottom:1px solid #21262d;padding:10px 7px}tbody tr:hover{background:#1c2128}tbody tr.selected-row{background:#2f81f714}tbody tr.disputed-row{box-shadow:inset 3px 0 0 var(--orange)}.checkbox-cell{text-align:center;width:50px;min-width:50px;padding:0 8px}.checkbox-cell input[type=checkbox]{accent-color:var(--blue);cursor:pointer;vertical-align:middle;width:20px;height:20px}tbody tr[data-transaction-row]{outline:none}tbody tr[data-transaction-row]:focus{box-shadow:inset 3px 0 0 var(--blue), inset 0 0 0 1px #2f81f759;background:#1c2128}tbody tr.null-row{opacity:.58}tbody tr.null-row .amount-cell{text-decoration:line-through;color:var(--muted)!important}.date-cell{color:var(--muted);white-space:nowrap;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.owner-header,.owner-cell{width:100px;min-width:100px}.owner-badge{color:#79c0ff;white-space:nowrap;background:0 0;border:0;max-width:100%;padding:0;font:700 10px ui-monospace,SFMono-Regular,Menlo,monospace;display:inline}.owner-badge.owner-anna{color:#f2a4cf}.merchant-column{width:175px;min-width:175px;max-width:175px}.merchant-cell{align-items:flex-start;gap:7px;width:100%;min-width:0}.source-logo{border:1px solid var(--border);background:#f6f8fa;border-radius:6px;flex:none;place-items:center;width:32px;height:32px;display:grid;overflow:hidden}.source-logo img{object-fit:contain;width:23px;height:23px;display:block}.merchant-toggle{width:calc(100% - 39px);min-width:0;color:inherit;cursor:pointer;text-align:left;background:0 0;border:0;border-radius:4px;padding:3px 2px}.merchant-toggle:hover,.merchant-toggle:focus-visible{background:#21262d;outline:none}.merchant-cell strong,.merchant-cell small{display:block}.merchant-cell strong{text-overflow:ellipsis;white-space:nowrap;max-width:125px;font-size:12px;overflow:hidden}.merchant-cell small{color:#6e7681;text-overflow:ellipsis;white-space:nowrap;max-width:125px;margin-top:2px;font-size:9px;overflow:hidden}.merchant-column.expanded .merchant-cell strong,.merchant-column.expanded .merchant-cell small{text-overflow:clip;white-space:normal;overflow-wrap:anywhere;max-width:100%;overflow:visible}.purpose-cell{color:var(--muted);width:40%;min-width:340px;max-width:520px}.purpose-line{align-items:flex-start;gap:5px;display:flex}.purpose-toggle{width:100%;min-width:0;color:inherit;cursor:text;font:inherit;text-align:left;text-overflow:ellipsis;white-space:nowrap;-webkit-user-select:text;user-select:text;background:0 0;border:0;border-radius:4px;padding:5px 4px;line-height:1.45;display:block;overflow:hidden}.purpose-toggle:hover,.purpose-toggle:focus-visible{color:#e6edf3;background:#21262d;outline:none}.purpose-cell.expanded .purpose-toggle{text-overflow:clip;white-space:normal;overflow-wrap:anywhere;color:#e6edf3;overflow:visible}.comment-toggle{color:#6e7681;cursor:pointer;background:0 0;border:0;border-radius:5px;flex:none;place-items:center;width:30px;height:30px;padding:0;display:grid}.comment-toggle:hover,.comment-toggle:focus-visible{color:#e6edf3;background:#21262d;outline:none}.comment-toggle.has-comment{color:#79c0ff}.dispute-toggle{color:#8b949e;cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #484f58;border-radius:5px;flex:none;align-items:center;gap:6px;min-height:30px;padding:5px 8px;font-size:10px;display:inline-flex}.dispute-toggle:hover{border-color:var(--orange);color:#e3b341}.dispute-toggle.active{color:#e3b341;background:#d299221f;border-color:#d29922b3}.dispute-toggle:disabled{opacity:.55;cursor:wait}.mobile-dispute,.mobile-category-tag{display:none}.mobile-category-tag{border:1px solid var(--border);color:#c9d1d9;white-space:nowrap;background:#21262d;border-radius:20px;align-items:center;gap:5px;max-width:100%;padding:4px 7px;font-size:10px}.transaction-comment{color:#d2a8ff;white-space:normal;overflow-wrap:anywhere;align-items:flex-start;gap:7px;margin:5px 4px 2px;font-size:12px;line-height:1.45;display:flex}.transaction-comment svg{flex:none;margin-top:1px}.comment-editor{background:#0d1117;border:1px solid #484f58;border-radius:6px;margin:8px 4px 3px;padding:8px}.comment-editor textarea{resize:vertical;border:1px solid var(--border);color:#e6edf3;background:#161b22;border-radius:5px;outline:0;width:100%;min-height:72px;padding:8px;font:12px/1.45 -apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;display:block}.comment-editor textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px #2f81f726}.comment-editor>div{justify-content:flex-end;align-items:center;gap:7px;margin-top:7px;display:flex}.comment-editor small{color:#6e7681;margin-right:auto;font:9px ui-monospace,SFMono-Regular,Menlo,monospace}.comment-editor button{border:1px solid var(--border);color:#c9d1d9;cursor:pointer;background:#21262d;border-radius:5px;align-items:center;gap:5px;min-height:31px;padding:0 9px;font-size:11px;display:inline-flex}.comment-editor button:hover{color:#f0f6fc;border-color:#8b949e}.comment-editor .save-comment{color:#fff;background:#1f6feb;border-color:#1f6feb}.comment-editor button:disabled{opacity:.6;cursor:wait}.editable-field{align-items:center;gap:7px;display:flex}.row-category-icon{color:#8b949e;flex:none;place-items:center;width:25px;height:25px;display:grid}td select{border:1px solid var(--border);color:#c9d1d9;background:#21262d;border-radius:5px;outline:none;max-width:165px;height:32px;padding:0 26px 0 9px;font-size:11px}td select:hover,td select:focus{border-color:#8b949e}td select:disabled{opacity:.68;cursor:not-allowed}td select.unassigned,.allocation-select.unassigned{color:#d29922;background:#d2992214}.allocation-select.family{color:#7ee787;background:#3fb95014}.allocation-select.private{color:#79c0ff;background:#2f81f714}.suggestion-dot{color:#d2a8ff;place-items:center;display:grid}td select.has-suggestion{border-color:#a371f7a6}.row-category-picker{width:216px;min-width:216px;position:relative}.row-category-picker.open{z-index:25}.row-category-picker>button{border:1px solid var(--border);color:#e6edf3;cursor:pointer;text-align:left;background:#21262d;border-radius:6px;grid-template-columns:24px minmax(0,1fr) 16px;align-items:center;gap:8px;width:100%;min-height:38px;padding:6px 9px;font-size:13px;display:grid}.row-category-picker>button:hover,.row-category-picker.open>button{border-color:#8b949e}.row-category-picker>button.unassigned{color:#d29922;background:#d2992214}.row-category-picker>button.has-suggestion{border-color:#a371f7a6;grid-template-columns:24px minmax(0,1fr) 16px 18px}.row-category-picker>button>svg:first-child{color:#8b949e}.row-category-picker>button>span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.row-category-picker .inline-suggestion{color:#d2a8ff}.readonly-category{border:1px solid var(--border);color:#c9d1d9;background:#21262d;border-radius:6px;grid-template-columns:24px minmax(0,1fr);align-items:center;gap:8px;width:216px;min-height:38px;padding:6px 9px;font-size:13px;display:grid}.readonly-category span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.row-category-menu{z-index:45;background:#161b22;border:1px solid #484f58;border-radius:8px;width:300px;max-height:min(520px,100vh - 130px);padding:7px;position:absolute;top:44px;left:0;overflow-y:auto;box-shadow:0 16px 40px #010409e0}.row-category-menu>button{color:#e6edf3;cursor:pointer;text-align:left;background:0 0;border:0;border-radius:5px;grid-template-columns:25px minmax(0,1fr) 20px;align-items:center;gap:9px;width:100%;min-height:43px;padding:7px 9px;font-size:14px;display:grid}.row-category-menu>button:hover{background:#21262d}.row-category-menu>button.selected{color:#79c0ff;background:#2f81f71f}.row-category-menu>button.suggested{color:#d2a8ff;background:#a371f717;border:1px solid #a371f780;margin-bottom:6px}.row-category-menu>button span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.row-category-menu>button span small{color:#a371f7;text-transform:uppercase;letter-spacing:.08em;font:8px ui-monospace,SFMono-Regular,Menlo,monospace;display:block}.family-header{text-align:center;width:82px}.family-header button{float:none}.family-cell{text-align:center;width:82px}.family-cell input[type=checkbox]{accent-color:#6e7681;cursor:pointer;vertical-align:middle;width:22px;height:22px}.family-cell input[type=checkbox]:disabled{opacity:.4;cursor:not-allowed}.amount-cell{text-align:right;white-space:nowrap;padding-right:16px;font:600 11px ui-monospace,SFMono-Regular,Menlo,monospace}th.amount-cell button{float:right}tfoot td{border:0;border-top:1px solid var(--border);background:#0d1117;height:43px;font-weight:600}tfoot td:first-child{text-align:right;color:#c9d1d9}tfoot td span{color:#6e7681;margin-left:7px;font-weight:400}.empty-state{min-height:220px;color:var(--muted);flex-direction:column;justify-content:center;align-items:center;display:flex}.empty-state>span{font-size:26px}.empty-state strong{color:var(--text);margin:8px 0 3px}.empty-state p{margin:0;font-size:11px}.insights-panel{min-width:0;padding-bottom:14px}.mobile-breakdown-back{display:none}.breakdown-back{color:#8b949e;cursor:pointer;background:0 0;border:0;align-items:center;gap:5px;margin:0 0 7px;padding:0;font-size:11px;display:inline-flex}.breakdown-back:hover{color:#79c0ff}.category-bars{padding:13px 14px}.category-row{cursor:pointer;text-align:left;background:0 0;border:1px solid #0000;border-bottom-color:#21262d;border-radius:6px;grid-template-columns:7px minmax(0,1fr) auto;align-items:center;gap:8px;width:100%;padding:10px 8px;display:grid}.category-row:hover{background:#1c2128;border-color:#30363d}.category-row:hover .category-name{color:var(--blue)}.category-key{border-radius:50%;width:6px;height:6px}.category-name{color:#c9d1d9;white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:7px;font-size:12px;display:flex;overflow:hidden}.category-name svg{color:#8b949e;flex:none}.category-row>strong{font:600 11px ui-monospace,SFMono-Regular,Menlo,monospace}.bar-track{background:#21262d;border-radius:3px;grid-column:2/4;height:3px;overflow:hidden}.bar-fill{border-radius:inherit;height:100%;display:block}.category-preview{grid-column:2/4;gap:4px;margin-top:2px;display:grid}.category-preview>span{color:#8b949e;grid-template-columns:18px minmax(0,1fr) auto;align-items:center;gap:7px;min-width:0;display:grid}.category-preview i,.breakdown-items i{color:#6e7681;background:#21262d;border-radius:50%;place-items:center;width:18px;height:18px;font:9px ui-monospace,SFMono-Regular,Menlo,monospace;display:grid}.category-preview b{text-overflow:ellipsis;white-space:nowrap;color:#8b949e;font-size:10px;font-weight:500;overflow:hidden}.category-preview small{color:#c9d1d9;font:9px ui-monospace,SFMono-Regular,Menlo,monospace}.breakdown-detail{padding:14px}.breakdown-total{background:#0d1117;border:1px solid #30363d;border-radius:6px;justify-content:space-between;align-items:end;padding:12px;display:flex}.breakdown-total span{color:#8b949e;font-size:11px}.breakdown-total strong{font:600 18px ui-monospace,SFMono-Regular,Menlo,monospace}.breakdown-items{gap:2px;margin-top:10px;display:grid}.breakdown-items>div{border-bottom:1px solid #21262d;grid-template-columns:22px minmax(0,1fr) auto;align-items:center;gap:8px;min-width:0;padding:9px 5px;display:grid}.breakdown-items span{min-width:0}.breakdown-items b,.breakdown-items small{display:block}.breakdown-items b{text-overflow:ellipsis;white-space:nowrap;color:#c9d1d9;font-size:11px;overflow:hidden}.breakdown-items small{color:#6e7681;margin-top:2px;font:9px ui-monospace,SFMono-Regular,Menlo,monospace}.breakdown-items strong{font:600 10px ui-monospace,SFMono-Regular,Menlo,monospace}.breakdown-empty{color:#8b949e;text-align:center;padding:28px 8px;font-size:12px}.key-0{background:var(--blue)}.key-1{background:var(--green)}.key-2{background:var(--orange)}.key-3{background:var(--purple)}.key-4{background:var(--red)}.allocation-summary{border-top:1px solid var(--border);margin:0 14px;padding:14px 0 4px}.allocation-summary h3{margin:0 0 8px;font:600 11px ui-monospace,SFMono-Regular,Menlo,monospace}.allocation-summary button{cursor:pointer;text-align:left;color:#c9d1d9;background:0 0;border:0;grid-template-columns:1fr auto;gap:6px;width:100%;padding:5px 0;font-size:10px;display:grid}.allocation-summary button strong{font:600 9px ui-monospace,SFMono-Regular,Menlo,monospace}.allocation-summary button i{background:#21262d;border-radius:3px;grid-column:1/3;height:3px;display:block;overflow:hidden}.allocation-summary button b{border-radius:inherit;background:var(--blue);height:100%;display:block}.allocation-summary button:disabled{cursor:default;opacity:.8}.loading-screen{width:100%;min-height:100vh;color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:14px;display:flex}.loading-logout{border:1px solid var(--border);background:var(--panel);color:var(--text);cursor:pointer;border-radius:6px;padding:8px 12px}.login-screen,.setup-screen{place-items:center;width:100%;min-height:100vh;padding:24px;display:grid}.login-card,.setup-card{border:1px solid var(--border);background:var(--panel);border-radius:10px;width:min(500px,100%);padding:30px}.login-card{width:min(420px,100%)}.login-card .brand-mark,.setup-card .brand-mark{margin-bottom:22px}.login-card h1,.setup-card h1{margin-bottom:10px}.login-card>p:not(.path-label){color:var(--muted);margin:0 0 22px;font-size:13px;line-height:1.6}.login-card>button{color:#fff;cursor:pointer;background:#1f6feb;border:1px solid #1f6feb;border-radius:6px;justify-content:center;align-items:center;gap:8px;width:100%;min-height:44px;font-weight:600;display:flex}.login-error{max-width:520px;color:var(--red);background:#f851491a;border:1px solid #f8514966;border-radius:6px;margin:0 0 14px;padding:10px 12px;font-size:12px}.setup-card .login-error{margin-top:18px;line-height:1.55}.signed-in-user{border:1px solid var(--border);background:var(--panel-muted);border-radius:6px;gap:3px;margin:16px 0 0;padding:11px 12px;display:grid}.signed-in-user span{color:var(--muted);text-transform:uppercase;font:9px ui-monospace,SFMono-Regular,Menlo,monospace}.signed-in-user strong{overflow-wrap:anywhere;font-size:13px}.signed-in-user code{color:var(--muted);overflow-wrap:anywhere;-webkit-user-select:all;user-select:all;margin-top:4px;font-size:9px}.setup-actions{gap:8px;display:flex}.setup-actions button{border:1px solid var(--border);background:var(--panel-muted);min-height:40px;color:var(--text);cursor:pointer;border-radius:6px;padding:0 13px}.setup-actions .retry-button{color:#fff;background:#1f6feb;border-color:#1f6feb;font-weight:600}.file-input{display:none}.import-button{color:#fff;cursor:pointer;background:#1f6feb;border:1px solid #1f6feb;border-radius:6px;align-items:center;gap:7px;height:32px;padding:0 10px;font:600 10px ui-monospace,SFMono-Regular,Menlo,monospace;display:inline-flex}.import-button:disabled{opacity:.6;cursor:wait}.modal-backdrop{z-index:1000;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#010409b8;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.import-modal{background:var(--panel);border:1px solid #484f58;border-radius:10px;width:min(980px,100%);max-height:calc(100vh - 48px);overflow:auto;box-shadow:0 24px 80px #010409a6}.import-modal-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;min-height:76px;padding:18px 20px;display:flex}.import-modal-header h2{text-overflow:ellipsis;white-space:nowrap;max-width:760px;font-size:16px;overflow:hidden}.import-modal-header>button{border:1px solid var(--border);width:34px;height:34px;color:var(--muted);cursor:pointer;background:0 0;border-radius:6px;place-items:center;display:grid}.import-stats{grid-template-columns:repeat(4,1fr);gap:10px;padding:16px 20px;display:grid}.import-stats article{border:1px solid var(--border);background:var(--panel-muted);border-radius:6px;min-width:0;padding:13px}.import-stats span,.import-stats strong,.import-stats small{display:block}.import-stats span{color:var(--muted);text-transform:uppercase;font:9px ui-monospace,SFMono-Regular,Menlo,monospace}.import-stats strong{text-overflow:ellipsis;white-space:nowrap;margin:8px 0 4px;font:600 18px ui-monospace,SFMono-Regular,Menlo,monospace;overflow:hidden}.import-stats small{color:var(--muted);font-size:10px}.preview-table-wrap{border:1px solid var(--border);border-radius:6px;margin:0 20px;overflow-x:auto}.preview-table{min-width:680px}.preview-table th{text-transform:uppercase;padding:0 10px;font:600 9px ui-monospace,SFMono-Regular,Menlo,monospace}.preview-table td{padding:9px 10px}.preview-table th:first-child,.preview-table td:first-child{white-space:nowrap;width:110px}.preview-table th:nth-child(2),.preview-table td:nth-child(2){width:180px}.preview-table th:last-child,.preview-table td:last-child{text-align:right;white-space:nowrap;width:120px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.preview-gap td{color:var(--muted);padding:13px;text-align:center!important}.preview-gap span,.preview-gap small{display:block}.preview-gap span{font-size:20px;line-height:10px}.preview-gap small{margin-top:6px;font-size:9px}.import-note{color:var(--muted);background:#2f81f714;border:1px solid #2f81f759;border-radius:6px;align-items:flex-start;gap:9px;margin:14px 20px 0;padding:11px 12px;font-size:11px;line-height:1.5;display:flex}.import-note svg{color:var(--blue);flex:none}.import-actions{justify-content:flex-end;gap:9px;padding:16px 20px 20px;display:flex}.import-actions button{border:1px solid var(--border);background:var(--panel-muted);min-height:40px;color:var(--text);cursor:pointer;border-radius:6px;padding:0 15px}.import-actions .confirm-import{color:#fff;background:#1f6feb;border-color:#1f6feb;align-items:center;gap:7px;font-weight:600;display:inline-flex}.import-actions button:disabled{opacity:.55;cursor:not-allowed}:root[data-theme=light]{color:#1f2328;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f6f8fa;--panel:#fff;--panel-muted:#f6f8fa;--border:#d0d7de;--text:#1f2328;--muted:#59636e;--blue:#0969da;--green:#1a7f37;--red:#cf222e;--orange:#9a6700;--purple:#8250df;background:#f6f8fa}:root[data-theme=light] .topbar{background:#fff;border-color:#d8dee4}:root[data-theme=light] .brand-mark,:root[data-theme=light] .topbar-button,:root[data-theme=light] .breakdown-toggle,:root[data-theme=light] .filters select,:root[data-theme=light] .month-trigger,:root[data-theme=light] .category-trigger,:root[data-theme=light] .bulk-bar>button,:root[data-theme=light] .bulk-category-trigger,:root[data-theme=light] .row-category-picker>button,:root[data-theme=light] .readonly-category,:root[data-theme=light] .comment-editor button{color:#1f2328;background:#f6f8fa}:root[data-theme=light] .primary-nav .topbar-button{color:#59636e;background:0 0;border-color:#0000}:root[data-theme=light] .primary-nav .topbar-button.active{color:#0969da;background:#0969da14;border-color:#0969da59}:root[data-theme=light] .primary-nav .topbar-button.has-disputes{color:#7d4e00;background:#fff8c5;border-color:#bf8700}:root[data-theme=light] .modal-backdrop{background:#1f232859}:root[data-theme=light] .import-modal{border-color:#afb8c1;box-shadow:0 24px 70px #1f232838}:root[data-theme=light] .preview-table th,:root[data-theme=light] .sticky-controls,:root[data-theme=light] .filters,:root[data-theme=light] th,:root[data-theme=light] tfoot td{background:#f6f8fa}:root[data-theme=light] .sticky-controls,:root[data-theme=light] .search-field:focus-within{box-shadow:none}:root[data-theme=light] .month-menu,:root[data-theme=light] .category-menu,:root[data-theme=light] .bulk-category-menu,:root[data-theme=light] .row-category-menu{background:#fff;border-color:#d0d7de;box-shadow:0 12px 34px #1f23282e}:root[data-theme=light] .category-menu-search,:root[data-theme=light] .month-grid button,:root[data-theme=light] .comment-editor,:root[data-theme=light] .breakdown-total{background:#fff}:root[data-theme=light] .category-menu-search input,:root[data-theme=light] .comment-editor textarea{color:#1f2328;background:#fff}:root[data-theme=light] .category-menu>button,:root[data-theme=light] .bulk-category-menu>button,:root[data-theme=light] .row-category-menu>button{color:#1f2328}:root[data-theme=light] .category-menu>button:hover,:root[data-theme=light] .bulk-category-menu>button:hover,:root[data-theme=light] .row-category-menu>button:hover,:root[data-theme=light] tbody tr:hover,:root[data-theme=light] .category-row:hover,:root[data-theme=light] .merchant-toggle:hover,:root[data-theme=light] .purpose-toggle:hover{background:#f3f4f6}:root[data-theme=light] td,:root[data-theme=light] .category-row,:root[data-theme=light] .breakdown-items>div{border-color:#d8dee4}:root[data-theme=light] .purpose-cell.expanded .purpose-toggle,:root[data-theme=light] .category-name,:root[data-theme=light] .breakdown-items b,:root[data-theme=light] tfoot td:first-child{color:#1f2328}:root[data-theme=light] .bulk-bar{background:#0969da12}:root[data-theme=light] .shared-pill{color:#0969da;background:#0969da14;border-color:#0969da59}:root[data-theme=light] .owner-badge{color:#0550ae;background:0 0}:root[data-theme=light] .owner-badge.owner-anna{color:#9e2f6a}:root[data-theme=light] .metric-card.dispute-alert{background:#fff8c5;border-color:#bf8700;box-shadow:inset 3px 0 #bf8700}:root[data-theme=light] .metric-card.dispute-alert span,:root[data-theme=light] .metric-card.dispute-alert strong,:root[data-theme=light] .metric-card.dispute-alert small{color:#7d4e00}:root[data-theme=light] .dispute-toggle.active{color:#7d4e00;background:#fff8c5}:root[data-theme=light] .notice.success{color:#116329;background:#dafbe1;border-color:#4ac26b}:root[data-theme=light] .transaction-comment{color:#6639ba;background:#8250df14}:root[data-theme=light] .comment-toggle.has-comment{color:#6639ba}:root[data-theme=light] .category-preview i,:root[data-theme=light] .breakdown-items i{color:#424a53;background:#eaeef2}@media (width<=1250px){.workspace-grid.with-breakdown{grid-template-columns:1fr}.insights-panel{grid-template-columns:minmax(0,1.5fr) minmax(260px,.5fr);display:grid}.insights-panel .panel-heading{grid-column:1/3}.category-bars,.breakdown-detail{border-right:1px solid var(--border)}.allocation-summary{border-top:0}}@media (width<=760px){main{width:min(100% - 20px,1600px);padding:18px 0 32px}.summary-grid{grid-template-columns:1fr 1fr}.workspace-grid.with-breakdown{display:block}.workspace-grid.with-breakdown .transactions-panel{display:none}.workspace-grid.with-breakdown .insights-panel{width:100%;display:block}.workspace-grid.with-breakdown .insights-panel .panel-heading{display:flex}.workspace-grid.with-breakdown .mobile-breakdown-back{color:var(--blue);cursor:pointer;background:0 0;border:0;align-items:center;gap:6px;margin:0 0 8px;padding:0;font-size:12px;display:inline-flex}.workspace-grid.with-breakdown .breakdown-back,.local-pill,.user-pill{display:none}.topbar-left{flex:1;gap:8px}.brand>div:last-child{display:none}.primary-nav{flex:1;min-width:0}.primary-nav .topbar-button{flex:1;justify-content:center;min-width:0;padding:0 7px;font-size:10px}.primary-nav .topbar-button span{text-overflow:ellipsis;white-space:nowrap;display:inline;overflow:hidden}.topbar-actions .topbar-button span{display:none}.panel-tools{gap:5px}.rules-count{display:none}.import-button,.breakdown-toggle{padding:0 8px}.modal-backdrop{align-items:end;padding:0}.import-modal{border-radius:12px 12px 0 0;width:100%;max-height:94vh}.import-modal-header{min-height:66px;padding:14px}.import-modal-header h2{max-width:calc(100vw - 90px);font-size:13px}.import-stats{grid-template-columns:1fr 1fr;gap:7px;padding:12px 14px}.import-stats article{padding:10px}.import-stats strong{font-size:15px}.preview-table-wrap{margin:0 14px}.import-note{margin:12px 14px 0}.import-actions{padding:12px 14px 16px}.import-actions button{flex:1;padding:0 9px;font-size:11px}.topbar-button{justify-content:center;width:34px;padding:0}.shared-pill{justify-content:center;width:32px;padding:0;font-size:0}.filters{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;padding:10px;display:grid}.search-field{grid-column:1/-1;width:100%;min-width:0}.month-filter,.category-filter{width:100%;min-width:0}.month-trigger,.category-trigger{width:100%;min-width:0;max-width:none}.filters>select{grid-column:1/-1;width:100%}.month-menu{width:min(430px,100vw - 32px)}.month-menu,.category-menu{max-width:calc(100vw - 20px)}.category-menu{width:min(310px,100vw - 20px);left:auto;right:0}.table-wrap{background:var(--bg);padding:10px;overflow:visible}table,tbody,tfoot{width:100%;min-width:0;display:block}thead{display:none}tbody{gap:10px;display:grid}tbody tr[data-transaction-row]{border:1px solid var(--border);background:var(--panel);border-radius:8px;grid-template-columns:34px minmax(0,1fr) auto;grid-template-areas:"check merchant amount""date purpose purpose"".category family";align-items:start;gap:9px 10px;min-width:0;min-height:142px;padding:11px;display:grid}.shared-table tbody tr[data-transaction-row]{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"merchant amount""date owner""purpose purpose""category category";min-height:166px}tbody tr[data-transaction-row]:focus{box-shadow:inset 3px 0 0 var(--blue)}tbody tr[data-transaction-row]>td{border:0;min-width:0;padding:0}tbody .checkbox-cell{text-align:left;grid-area:check;width:34px;min-width:34px}tbody .date-cell{grid-area:date;align-self:center;font-size:10px}tbody .owner-cell{text-align:right;grid-area:owner;width:auto;min-width:0}tbody .owner-badge{padding:0;font-size:9px}tbody .merchant-column{grid-area:merchant;width:auto;min-width:0;max-width:none}tbody .purpose-cell{border-top:1px solid var(--border);grid-area:purpose;width:auto;min-width:0;max-width:none;padding-top:3px}tbody .category-cell{grid-area:category}tbody .family-cell{grid-area:family;align-self:center;width:42px}tbody .amount-cell{grid-area:amount;padding:4px 0 0 8px;font-size:12px}.merchant-cell{width:100%}.merchant-toggle{pointer-events:none;cursor:default;width:calc(100% - 39px)}.merchant-cell strong,.merchant-cell small,.merchant-column.expanded .merchant-cell strong,.merchant-column.expanded .merchant-cell small{text-overflow:clip;white-space:normal;overflow-wrap:anywhere;max-width:100%;overflow:visible}.purpose-line{flex-wrap:wrap;padding-top:6px}.purpose-toggle,.purpose-cell.expanded .purpose-toggle{text-overflow:clip;white-space:normal;overflow-wrap:anywhere;flex:220px;overflow:visible}.shared-table .desktop-dispute,.shared-table .desktop-category{display:none}.shared-table .mobile-category-tag{color:#4b2f1d;background:#f4dfc2;border-color:#d7b98d;margin-left:auto;display:inline-flex}.shared-table .mobile-dispute{justify-content:center;width:100%;min-height:38px;margin:0;display:flex}.shared-table .transaction-comment{border-left:2px solid var(--purple);background:#a371f712;border-radius:0 5px 5px 0;margin:7px 4px 3px;padding:7px 8px}.row-category-picker,.readonly-category{width:100%;min-width:0}.row-category-menu{width:min(300px,100vw - 54px)}tfoot{margin-top:10px}tfoot tr{grid-template-columns:minmax(0,1fr) auto;align-items:center;display:grid}tfoot td{padding:10px;display:block}tfoot td:first-child{text-align:left}}@media (width<=520px){.topbar{padding:0 10px}.brand span{display:none}.summary-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px}.metric-card{min-height:104px;padding:12px 10px}.metric-card strong{margin:11px 0 5px;font-size:17px}.metric-card small{font-size:9px;line-height:1.35}.month-grid{grid-template-columns:1fr}.insights-panel{display:block}.category-bars,.breakdown-detail{border-right:0}.page-header{align-items:start}.rules-count{display:none}}@media (hover:none){.dispute-toggle:hover:not(.active){color:var(--muted);background:0 0;border-color:#484f58}}
