.confirm-overlay[data-v-0a3a3eab]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;display:flex;align-items:center;justify-content:center;background:#00000073;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.confirm-dialog[data-v-0a3a3eab]{background:var(--card-bg, #fff);border-radius:12px;padding:24px 28px;max-width:420px;width:90%;box-shadow:0 8px 32px #0000002e}.confirm-message[data-v-0a3a3eab]{font-size:.95rem;line-height:1.5;margin:0 0 20px;color:var(--text, #1a1a2e)}.confirm-actions[data-v-0a3a3eab]{display:flex;gap:10px;justify-content:flex-end}.btn-danger[data-v-0a3a3eab]{background:var(--red, #ef4444);color:#fff;border:none;padding:8px 18px;border-radius:8px;cursor:pointer;font-weight:600;font-size:.85rem}.btn-danger[data-v-0a3a3eab]:hover{opacity:.9}.modal-enter-active[data-v-0a3a3eab],.modal-leave-active[data-v-0a3a3eab]{transition:opacity .15s ease}.modal-enter-active .confirm-dialog[data-v-0a3a3eab],.modal-leave-active .confirm-dialog[data-v-0a3a3eab]{transition:transform .15s ease}.modal-enter-from[data-v-0a3a3eab],.modal-leave-to[data-v-0a3a3eab]{opacity:0}.modal-enter-from .confirm-dialog[data-v-0a3a3eab],.modal-leave-to .confirm-dialog[data-v-0a3a3eab]{transform:scale(.95)}.resumen-tab[data-v-b43c9ca6]{display:flex;flex-direction:column;gap:1.25rem}.kpi-hero[data-v-b43c9ca6]{background:var(--card-bg, #fff);border:1px solid var(--border, #e0dcd4);border-radius:12px;padding:1.5rem;text-align:center}.kpi-label[data-v-b43c9ca6]{color:var(--muted, #888);font-size:.85rem;text-transform:uppercase;letter-spacing:.05em}.kpi-amount[data-v-b43c9ca6]{display:block;font-size:2.2rem;margin:.25rem 0}.kpi-delta[data-v-b43c9ca6]{display:inline-flex;align-items:center;gap:.3rem;font-size:.9rem;font-weight:600;padding:.2rem .6rem;border-radius:20px;margin-bottom:.75rem}.delta-up[data-v-b43c9ca6]{color:#dc2626;background:#fef2f2}.delta-down[data-v-b43c9ca6]{color:#059669;background:#ecfdf5}.kpi-sub[data-v-b43c9ca6]{display:flex;justify-content:center;gap:1.5rem;font-size:.9rem;color:var(--muted, #888)}.kpi-sub .positive[data-v-b43c9ca6]{color:#059669}.kpi-sub .negative[data-v-b43c9ca6]{color:#dc2626}.charts-grid[data-v-b43c9ca6]{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem}@media (max-width: 768px){.charts-grid[data-v-b43c9ca6]{grid-template-columns:1fr}.kpi-amount[data-v-b43c9ca6]{font-size:1.8rem}}.merchant-list[data-v-b43c9ca6]{display:flex;flex-direction:column}.merchant-row[data-v-b43c9ca6]{display:flex;align-items:center;gap:.75rem;padding:.5rem 0;border-bottom:1px solid var(--border-light, #f0ece4)}.merchant-row[data-v-b43c9ca6]:last-child{border-bottom:none}.merchant-rank[data-v-b43c9ca6]{width:1.5rem;height:1.5rem;display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--border-light, #f0ece4);font-size:.75rem;font-weight:700;flex-shrink:0}.merchant-name[data-v-b43c9ca6]{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.merchant-count[data-v-b43c9ca6]{font-size:.8rem}.merchant-amount[data-v-b43c9ca6]{white-space:nowrap}.gastos-tab[data-v-1623ad94]{display:flex;flex-direction:column;gap:1rem;position:relative;padding-bottom:4rem}.gastos-filters[data-v-1623ad94]{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap}.filter-select[data-v-1623ad94]{padding:.4rem .6rem;border:1px solid var(--border, #e0dcd4);border-radius:6px;background:var(--card-bg, #fff);font-size:.85rem}.gastos-total[data-v-1623ad94]{margin-left:auto;font-size:.85rem}.empty-state[data-v-1623ad94]{text-align:center;padding:3rem 1rem}.date-group[data-v-1623ad94]{margin-bottom:.5rem}.date-header[data-v-1623ad94]{display:flex;justify-content:space-between;padding:.5rem 0;font-size:.85rem;font-weight:600;border-bottom:2px solid var(--border, #e0dcd4);text-transform:capitalize}.date-total[data-v-1623ad94]{color:var(--muted, #888)}.tx-list[data-v-1623ad94]{display:flex;flex-direction:column}.tx-row[data-v-1623ad94]{display:flex;align-items:center;gap:.6rem;padding:.6rem 0;border-bottom:1px solid var(--border-light, #f0ece4)}.tx-row[data-v-1623ad94]:last-child{border-bottom:none}.tx-card-badge[data-v-1623ad94]{width:1.8rem;height:1.8rem;border-radius:50%;background:var(--accent, #2563eb);color:#fff;display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:700;flex-shrink:0}.tx-info[data-v-1623ad94]{flex:1;display:flex;flex-direction:column;gap:.15rem;overflow:hidden}.tx-title[data-v-1623ad94]{font-size:.9rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tx-category[data-v-1623ad94]{font-size:.75rem;color:var(--muted, #888);cursor:pointer}.tx-category[data-v-1623ad94]:hover{color:var(--accent, #2563eb);text-decoration:underline}.category-edit-input[data-v-1623ad94]{font-size:.75rem;padding:.15rem .3rem;border:1px solid var(--accent, #2563eb);border-radius:4px;width:120px}.tx-amount-col[data-v-1623ad94]{white-space:nowrap;font-size:.9rem}.tx-amount-col .positive[data-v-1623ad94]{color:#059669}.tx-delete-btn[data-v-1623ad94]{background:none;border:none;color:var(--muted, #888);font-size:1.1rem;cursor:pointer;padding:.2rem;line-height:1;opacity:0;transition:opacity .15s}.tx-row:hover .tx-delete-btn[data-v-1623ad94]{opacity:1}.fab[data-v-1623ad94]{position:fixed;bottom:1.5rem;right:1.5rem;width:3.2rem;height:3.2rem;border-radius:50%;background:var(--accent, #2563eb);color:#fff;font-size:1.8rem;border:none;cursor:pointer;box-shadow:0 4px 12px #0003;display:flex;align-items:center;justify-content:center;z-index:100;transition:transform .15s}.fab[data-v-1623ad94]:hover{transform:scale(1.1)}.modal-overlay[data-v-1623ad94]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:200}.quick-add-modal[data-v-1623ad94]{background:var(--card-bg, #fff);border-radius:12px;padding:1.5rem;width:90%;max-width:400px}.quick-add-modal h3[data-v-1623ad94]{margin:0 0 1rem;font-size:1.1rem}.quick-add-form[data-v-1623ad94]{display:flex;flex-direction:column;gap:.75rem}.quick-add-form label[data-v-1623ad94]{display:flex;flex-direction:column;gap:.25rem;font-size:.85rem;font-weight:500}.quick-add-form input[data-v-1623ad94],.quick-add-form select[data-v-1623ad94]{padding:.5rem;border:1px solid var(--border, #e0dcd4);border-radius:6px;font-size:.9rem}.quick-add-actions[data-v-1623ad94]{display:flex;gap:.75rem;justify-content:flex-end;margin-top:.5rem}.btn-primary[data-v-1623ad94]{padding:.5rem 1.2rem;background:var(--accent, #2563eb);color:#fff;border:none;border-radius:6px;cursor:pointer;font-weight:600}.btn-primary[data-v-1623ad94]:disabled{opacity:.5;cursor:not-allowed}.btn-secondary[data-v-1623ad94]{padding:.5rem 1.2rem;background:var(--border-light, #f0ece4);border:none;border-radius:6px;cursor:pointer}:root{--bg: #f0efe9;--surface: #ffffff;--surface-2: #f7f6f3;--border: #e0dcd4;--border-mid: #c5c0b6;--text: #181715;--muted: #635e58;--muted-light: #9c9590;--primary: #2563eb;--primary-dark: #1d4ed8;--primary-bg: #eff6ff;--primary-border: #bfdbfe;--good: #15803d;--good-bg: #f0fdf4;--good-border: #86efac;--danger: #b91c1c;--danger-bg: #fff1f2;--danger-border: #fecdd3;--warning: #92400e;--warning-bg: #fffbeb;--warning-border: #fde68a;--shadow-sm: 0 1px 3px rgba(0,0,0,.06), 0 1px 2px rgba(0,0,0,.04);--shadow-md: 0 4px 12px rgba(0,0,0,.08), 0 2px 4px rgba(0,0,0,.04);--sidebar-w: 210px;--topbar-h: 56px;--radius: 12px;--radius-sm: 8px}*{box-sizing:border-box}body{margin:0;font-family:Outfit,sans-serif;background:var(--bg);color:var(--text);font-size:14px;line-height:1.5}.page{min-height:100vh;display:flex;flex-direction:column;padding:0}.container{flex:1;display:flex;flex-direction:column;width:100%}.topbar{position:sticky;top:0;z-index:100;height:var(--topbar-h);display:flex;align-items:center;gap:12px;padding:0 24px;background:var(--surface);border-bottom:1px solid var(--border);box-shadow:0 1px 0 var(--border),0 2px 8px #0000000d}.topbar-brand{display:flex;flex-direction:column;gap:0;margin-right:auto}.topbar-brand h1{font-family:Fraunces,serif;font-size:20px;font-weight:700;letter-spacing:-.02em;margin:0;line-height:1.1;color:var(--text)}.topbar-brand .muted{font-size:11px;color:var(--muted-light)}.topbar-period{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--muted)}.topbar-period .month-input{width:auto;min-width:130px;padding:5px 8px;font-size:13px;height:32px}.period-sep{color:var(--muted-light);font-size:12px}.topbar-actions{display:flex;gap:6px;align-items:center}.app-shell{display:flex;flex:1;min-height:0}.tabs{width:var(--sidebar-w);flex-shrink:0;background:var(--surface-2);border-right:1px solid var(--border);display:flex;flex-direction:column;gap:3px;padding:14px 10px;position:sticky;top:var(--topbar-h);height:calc(100vh - var(--topbar-h));overflow-y:auto;overflow-x:hidden;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tabs button{display:flex;align-items:center;gap:8px;width:100%;background:transparent;border:0;border-left:3px solid transparent;border-radius:var(--radius-sm);padding:9px 12px 9px 9px;font-family:inherit;font-weight:500;font-size:13.5px;color:var(--muted);cursor:pointer;text-align:left;transition:background .1s ease,color .1s ease,border-color .1s ease;white-space:nowrap}.tabs button svg{flex-shrink:0;opacity:.55;transition:opacity .1s ease}.tabs button:hover{background:var(--bg);color:var(--text)}.tabs button:hover svg{opacity:.8}.tabs button.active{background:var(--primary-bg);color:var(--primary);font-weight:700;border-left-color:var(--primary)}.tabs button.active svg{opacity:1}.main-content{flex:1;padding:clamp(16px,2vw,24px);min-width:0;overflow-x:hidden}.auth-card{max-width:440px;margin:80px auto;box-shadow:var(--shadow-md)}.status-card,.card{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-sm)}.status-card{padding:18px 22px;display:flex;justify-content:space-between;align-items:center;margin-bottom:18px;gap:16px;border-left:4px solid var(--primary)}.status-card h3{margin:0 0 4px;font-size:14px;font-weight:700;color:var(--text)}.status-card p{margin:0;color:var(--muted);font-size:13px}.status-card small{display:inline-block;text-transform:uppercase;font-weight:700;font-size:11px;letter-spacing:.07em;color:var(--primary);background:var(--primary-bg);padding:3px 10px;border-radius:4px;border:1px solid var(--primary-border)}.card{padding:22px 24px}h1,h2,h3,h4,p{margin:0}h2{margin-top:6px;font-family:Fraunces,serif;font-size:42px;font-weight:600;color:var(--text);font-variant-numeric:tabular-nums;letter-spacing:-.02em;line-height:1.05}h3{font-size:15px;font-weight:700;color:var(--text);letter-spacing:-.01em}h4{text-transform:uppercase;font-size:10.5px;font-weight:800;letter-spacing:.09em;color:var(--muted-light);margin-bottom:12px}.badge{display:inline-block;padding:3px 10px;border-radius:4px;background:var(--primary-bg);border:1px solid var(--primary-border);color:var(--primary);font-weight:700;font-size:11px;letter-spacing:.06em;text-transform:uppercase}.month-input,input,select,button{border-radius:var(--radius-sm);border:1px solid var(--border);font:inherit;transition:border-color .12s ease,box-shadow .12s ease}.month-input,input,select{width:100%;padding:10px 12px;background:var(--surface);color:var(--text);font-size:13.5px}input:focus,select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #1d4ed81a}input::placeholder{color:var(--muted-light)}select option{background:var(--surface);color:var(--text)}input[type=month],input[type=date]{color-scheme:light}.btn-primary{background:var(--primary);color:#fff;border:0;font-weight:700;padding:10px 20px;cursor:pointer;font-size:13.5px;transition:background .12s ease,box-shadow .12s ease;box-shadow:0 1px 3px #2563eb4d}.btn-primary:hover{background:var(--primary-dark);box-shadow:0 2px 6px #2563eb59}.btn-primary:disabled{opacity:.45;cursor:not-allowed}.btn-secondary{background:var(--primary-bg);color:var(--primary);border:1px solid var(--primary-border);font-weight:700;padding:9px 16px;cursor:pointer;font-size:13.5px;transition:background .12s ease}.btn-secondary:hover{background:#dbeafe}.btn-ghost{border:1px solid var(--border);background:var(--surface);color:var(--muted);border-radius:var(--radius-sm);font-weight:600;padding:8px 12px;cursor:pointer;font-size:13.5px;transition:border-color .12s ease,color .12s ease}.btn-ghost:hover{border-color:var(--border-mid);color:var(--text)}.btn-icon-only{width:34px;height:34px;padding:0;display:flex;align-items:center;justify-content:center;flex-shrink:0}.btn-icon-only.active{background:var(--primary-bg);border-color:var(--primary-border);color:var(--primary)}.block{width:100%;margin-top:12px}.toast-container{position:fixed;bottom:24px;right:24px;z-index:9999;display:flex;flex-direction:column;gap:8px;pointer-events:none}.toast{pointer-events:all;display:flex;align-items:center;gap:10px;padding:12px 16px;border-radius:var(--radius-sm);font-size:13px;font-weight:500;line-height:1.4;max-width:360px;box-shadow:0 4px 16px #00000024;background:var(--surface);border:1px solid var(--border);color:var(--text)}.toast-success{background:var(--good-bg);border-color:var(--good-border);color:var(--good)}.toast-error{background:var(--danger-bg);border-color:var(--danger-border);color:var(--danger)}.toast-close{margin-left:auto;flex-shrink:0;background:none;border:none;cursor:pointer;font-size:16px;line-height:1;padding:0 2px;color:inherit;opacity:.6}.toast-close:hover{opacity:1}.toast-enter-active,.toast-leave-active{transition:all .25s ease}.toast-enter-from{opacity:0;transform:translateY(12px)}.toast-leave-to{opacity:0;transform:translate(24px)}@keyframes input-pulse{0%{box-shadow:0 0 #1d4ed880;outline-color:var(--primary)}50%{box-shadow:0 0 0 6px #1d4ed826}to{box-shadow:0 0 #1d4ed800;outline-color:var(--primary)}}.input-highlight input,.input-highlight select,.input-highlight textarea{animation:input-pulse .7s ease 2;outline:2px solid var(--primary)}.feedback{margin-bottom:14px;padding:10px 14px;border:1px solid var(--good-border);border-radius:var(--radius-sm);background:var(--good-bg);color:var(--good);font-weight:600;font-size:13px}.error-line{margin-top:10px;color:var(--danger);font-weight:600}.pwa-update-banner{margin-bottom:14px;padding:10px 14px;border:1px solid var(--primary-border);border-radius:var(--radius-sm);background:var(--primary-bg);color:var(--primary);font-weight:600;display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:13px}.period-line{margin-bottom:16px;font-weight:500;font-size:12px;color:var(--muted-light)}.grid-2{display:grid;grid-template-columns:1fr 2fr;gap:14px}.config-grid{display:grid;grid-template-columns:minmax(360px,1fr) minmax(360px,1fr);gap:12px;align-items:start}.config-grid .card{height:fit-content;padding:16px}.config-card-full{grid-column:1 / -1}.summary-lines{margin:12px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:4px 0}.summary-lines p,.available{display:flex;justify-content:space-between;align-items:baseline;padding:6px 0;font-size:13px;font-variant-numeric:tabular-nums;border-bottom:1px solid var(--bg)}.summary-lines p:last-child{border-bottom:none}.summary-lines p:nth-child(2n){background:var(--bg);margin:0 -4px;padding:6px 4px;border-radius:3px}.formula-inline{display:inline-block;margin-left:6px;color:var(--muted-light);font-size:11px;font-weight:400;font-style:italic}.chart-card{min-height:280px}.stacked-chart{margin-top:12px;display:flex;flex-direction:column;gap:10px}.chart-head-actions{display:flex;align-items:center;gap:10px}.chart-head-actions select{min-width:180px;padding:7px 10px;border-radius:var(--radius-sm)}.chart-legend{display:flex;flex-wrap:wrap;gap:8px;padding:8px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2)}.chart-legend span{display:inline-flex;align-items:center;gap:5px;color:var(--muted);font-weight:600;font-size:12px}.chart-legend i{width:8px;height:8px;border-radius:2px;display:inline-block;flex-shrink:0}.stacked-row{display:grid;grid-template-columns:110px 1fr 130px;gap:10px;align-items:center}.stacked-label{color:var(--muted);font-weight:600;font-size:12px;font-variant-numeric:tabular-nums}.stacked-track{width:100%;min-height:16px;border-radius:3px;background:var(--bg);overflow:hidden}.stacked-fill{height:16px;display:flex;overflow:hidden;border-radius:3px}.stacked-segment{height:16px}.stacked-total{font-weight:700;color:var(--text);text-align:right;font-size:13px;font-variant-numeric:tabular-nums}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}label{display:flex;flex-direction:column;gap:6px;font-weight:600;font-size:11.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}label.full{grid-column:1 / -1}.input-with-toggle{display:flex;align-items:center;gap:0}.input-with-toggle input{flex:1;border-radius:var(--radius-sm) 0 0 var(--radius-sm)}.toggle-visibility{all:unset;display:flex;align-items:center;justify-content:center;padding:0 10px;height:38px;background:var(--surface-2);border:1px solid var(--border);border-left:none;border-radius:0 var(--radius-sm) var(--radius-sm) 0;cursor:pointer;font-size:14px;line-height:1;transition:background .15s}.toggle-visibility:hover{background:var(--border)}.blue,.income{color:var(--good)}.red{color:var(--danger)}.green{color:var(--good)}.muted{color:var(--muted)}.tx-item{display:flex;justify-content:space-between;align-items:center;padding:13px 16px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);transition:box-shadow .15s ease,transform .1s ease}.tx-item:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.tx-item+.tx-item{margin-top:8px}.tx-item p{color:var(--muted);margin-top:3px;font-size:12px}.tag{color:var(--primary);font-size:12px;font-weight:600}.tx-actions{display:flex;align-items:center;gap:10px}.tx-amounts{display:flex;flex-direction:column;align-items:flex-end}.tx-original{color:var(--muted);font-weight:600;font-size:12px;font-variant-numeric:tabular-nums}.delete-btn{border:0;color:var(--danger);background:transparent;cursor:pointer;font-weight:600;font-size:12px;opacity:.55;transition:opacity .12s ease}.delete-btn:hover{opacity:1}.movements-table tbody tr.row-billed,.movements-table tbody tr.row-billed:nth-child(2n){background:color-mix(in srgb,var(--primary) 10%,transparent);border-left:3px solid var(--primary)}.movements-table tbody tr.row-billed:hover{background:color-mix(in srgb,var(--primary) 18%,transparent)}.movements-table thead tr.totals-row{background:color-mix(in srgb,var(--surface-2) 60%,var(--bg));border-top:2px solid var(--border);font-weight:600;font-size:.82rem}.movements-table thead tr.totals-row td{padding:6px 10px;white-space:nowrap}.movements-table tbody tr.row-flagged,.movements-table tbody tr.row-flagged:nth-child(2n){background:color-mix(in srgb,#e67e22 12%,transparent);border-left:3px solid #e67e22}.movements-table tbody tr.row-flagged:hover{background:color-mix(in srgb,#e67e22 22%,transparent)}.line-item{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px;margin-top:10px}.line-item input{max-width:180px}.line-item.row-head{margin-top:4px;color:var(--muted);font-weight:700;font-size:11px;text-transform:uppercase;letter-spacing:.06em}.section-head{display:flex;justify-content:space-between;align-items:center;margin-top:12px}.section-help{margin-top:6px;color:var(--muted);font-size:12px}.savings-meta{margin-top:10px;display:flex;justify-content:space-between;gap:10px;font-weight:600;color:var(--muted);font-size:12px}.savings-head,.savings-row{display:grid;grid-template-columns:2fr 1fr 1.2fr 1.2fr 1fr auto;gap:10px;align-items:center}.savings-head{margin-top:10px;margin-bottom:6px;color:var(--muted);font-weight:700;font-size:11px;text-transform:uppercase;letter-spacing:.06em}.savings-row+.savings-row{margin-top:8px}.savings-row input{width:100%}.savings-row-total{margin-top:8px;padding-top:8px;border-top:1px dashed var(--border)}.savings-row-total strong{color:var(--text);font-size:13px;font-variant-numeric:tabular-nums}.savings-total-stack{display:flex;flex-direction:column;gap:3px}.card-spending{margin-top:14px}.debt-panel-inline{max-height:620px;overflow:auto;scrollbar-width:thin}.debt-cards-stack{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:10px;margin-top:8px;align-items:start}.debt-card{border:1px solid var(--border);border-radius:var(--radius-sm);padding:14px 16px;background:var(--surface);min-height:150px;transition:box-shadow .15s ease;box-shadow:var(--shadow-sm)}.debt-card:hover{box-shadow:var(--shadow-md)}.debt-card-title{font-weight:700;color:var(--text);font-size:14px;margin-bottom:4px}.liquidity-panel-inline{margin-top:12px;padding-top:10px;border-top:1px solid var(--border)}.liquidity-total-line{margin-top:8px}.analytics-panel{margin-top:16px}.analytics-meta{display:flex;gap:12px;align-items:center;color:var(--muted);font-weight:600;font-size:12px}.analytics-filters-grid{margin-top:10px;display:grid;grid-template-columns:repeat(6,minmax(130px,1fr));gap:8px}.analytics-grid{margin-top:14px;display:grid;grid-template-columns:repeat(2,minmax(300px,1fr));gap:12px}.analytics-card{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);padding:14px}.bar-list{display:flex;flex-direction:column;gap:7px;margin-top:10px}.bar-row{display:grid;grid-template-columns:1.3fr 2.2fr auto;gap:8px;align-items:center}.bar-label{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bar-track{width:100%;height:8px;background:var(--bg);border-radius:2px;overflow:hidden}.bar-fill{height:100%;border-radius:2px}.bar-fill.primary{background:var(--primary)}.bar-fill.expense{background:var(--danger)}.bar-fill.neutral{background:var(--muted-light)}.bar-fill.warning{background:#f97316}.bar-value{font-weight:700;color:var(--text);font-size:12px;font-variant-numeric:tabular-nums;white-space:nowrap}.analytics-kpis{margin-top:10px;display:grid;grid-template-columns:repeat(2,minmax(140px,1fr));gap:10px}.kpi-chip{border:1px solid var(--border);border-radius:var(--radius-sm);padding:12px;background:var(--surface-2);display:flex;flex-direction:column;gap:3px}.kpi-chip span{color:var(--muted);font-weight:700;font-size:11px;text-transform:uppercase;letter-spacing:.06em}.kpi-chip strong{font-size:22px;color:var(--text);font-variant-numeric:tabular-nums;font-family:Fraunces,serif;font-weight:600;line-height:1.15}.kpi-chip small{color:var(--muted-light);font-weight:500;font-size:11px}.top-expenses-list{margin-top:8px;display:flex;flex-direction:column;gap:5px}.top-expense-row{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);padding:8px 10px;display:flex;justify-content:space-between;align-items:center;gap:8px;transition:background .1s ease}.top-expense-row:hover{background:var(--surface-2)}.top-expense-row p{margin-top:1px;color:var(--muted);font-size:11px}.import-box{margin-top:18px;border-top:1px solid var(--border);padding-top:16px}.movements-totals{margin:18px 0;border-top:1px solid var(--border);padding-top:16px}.totals-cards{display:grid;grid-template-columns:repeat(3,minmax(160px,1fr));gap:12px}.total-card{border:1px solid var(--border);border-radius:var(--radius-sm);padding:16px;background:var(--surface)}.total-card p{color:var(--muted);font-weight:700;font-size:11px;text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px}.total-card strong{font-size:22px;line-height:1.1;font-variant-numeric:tabular-nums;font-family:Fraunces,serif;font-weight:600;color:var(--text)}.total-card small{display:block;font-size:11px;font-variant-numeric:tabular-nums;margin-top:2px}.kpi-highlight-grid{margin-top:14px;display:grid;grid-template-columns:repeat(3,minmax(180px,1fr));gap:10px}.kpi-highlight-card{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);padding:16px;box-shadow:var(--shadow-sm);transition:box-shadow .15s ease}.kpi-highlight-card:hover{box-shadow:var(--shadow-md)}.kpi-highlight-card p{margin-bottom:3px;color:var(--muted);font-weight:700;font-size:11px;text-transform:uppercase;letter-spacing:.06em}.kpi-highlight-card strong{margin-top:6px;display:block;font-size:32px;line-height:1.1;font-family:Fraunces,serif;font-weight:600;font-variant-numeric:tabular-nums;color:var(--text)}.table-wrap{overflow-x:auto;width:100%;scrollbar-width:thin;scrollbar-color:var(--border) transparent}.movements-table{width:100%;border-collapse:collapse;min-width:980px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.movements-table th,.movements-table td{padding:9px 12px;border-bottom:1px solid var(--border);text-align:left;white-space:nowrap;font-size:13px;font-variant-numeric:tabular-nums}.movements-table th{background:var(--surface-2);color:var(--muted);font-weight:700;font-size:11px;text-transform:uppercase;letter-spacing:.07em;position:relative}.movements-table tbody tr:last-child td{border-bottom:none}.movements-table tbody tr:nth-child(2n){background:var(--surface-2)}.movements-table tbody tr:hover{background:var(--primary-bg)}.empty-cell{text-align:center!important;color:var(--muted);font-weight:600;padding:28px!important}.th-with-filter{min-width:140px}.th-sort-btn,.th-filter-btn{border:0;background:transparent;color:inherit;font:inherit;cursor:pointer}.th-sort-btn{font-weight:700}.th-filter-btn{margin-left:6px;font-size:11px}.th-filter-btn.active{color:var(--primary);font-weight:800}.th-filter-menu{position:absolute;top:calc(100% + 4px);right:4px;z-index:20;min-width:180px;max-height:220px;overflow:auto;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);box-shadow:0 8px 24px #0000001f;padding:8px;scrollbar-width:thin}.filter-option{display:flex;flex-direction:row;align-items:center;gap:8px;font-weight:500;font-size:13px;padding:4px 2px;color:var(--text)}.filter-option input{width:auto;accent-color:var(--primary)}.filter-menu-actions{display:flex;justify-content:space-between;gap:8px;margin-top:6px}.filters-box{margin-bottom:14px;border:1px solid var(--border);background:var(--surface);border-radius:var(--radius-sm);padding:12px}.filters-box.compact{display:flex;flex-direction:column;gap:10px}.compact-filters-grid{display:grid;grid-template-columns:2fr 1.2fr 1fr 1fr 1fr;gap:8px}.advanced-filters-grid{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr));gap:8px}.filters-actions{display:flex;gap:8px;margin-top:2px}.checkbox-line{flex-direction:row;align-items:center;gap:8px;font-weight:600;font-size:13px;color:var(--muted);text-transform:none;letter-spacing:normal}.checkbox-line input{width:auto;accent-color:var(--primary)}.exchange-meta{margin-top:10px;color:var(--muted);font-weight:500;font-size:12px}.card-row{border:1px solid var(--border);border-radius:var(--radius-sm);padding:12px 14px;background:var(--surface-2)}.card-row+.card-row{margin-top:8px}.link-btn{background:none;border:none;color:var(--primary);font-weight:600;cursor:pointer;padding:0;font-size:inherit;text-decoration:underline;text-underline-offset:3px}.statements-section-title{margin:24px 0 10px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.07em;font-size:11px}.statements-list{display:flex;flex-direction:column;gap:12px}.statement-card{padding:18px 20px}.statement-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:10px}.statement-header-left{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.statement-badge{display:inline-block;padding:2px 9px;border-radius:4px;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.badge-unpaid{background:var(--danger-bg);color:var(--danger);border:1px solid var(--danger-border)}.badge-partial{background:var(--warning-bg);color:var(--warning);border:1px solid var(--warning-border)}.badge-paid{background:var(--good-bg);color:var(--good);border:1px solid var(--good-border)}.payments-list{margin-top:14px;padding-top:12px;border-top:1px solid var(--border)}.payments-list h5{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);margin-bottom:8px}.payment-row{display:flex;align-items:center;gap:10px;padding:5px 0;border-bottom:1px solid var(--border);font-size:12px;flex-wrap:wrap;color:var(--muted)}.payment-row span{flex:1;min-width:80px}.payment-form{margin-top:14px;padding-top:12px;border-top:1px solid var(--border)}.payment-form h5{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);margin-bottom:10px}.payment-form-actions{display:flex;gap:8px;margin-top:12px}.detected-txs{margin:10px 0;border:1px solid var(--border);border-radius:6px;overflow:hidden}.detected-txs-title{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);padding:5px 8px;background:var(--surface2, var(--surface));margin:0;border-bottom:1px solid var(--border)}.detected-tx-row{display:flex;gap:10px;padding:4px 8px;font-size:11px;border-bottom:1px solid var(--border);align-items:center}.detected-tx-row:last-child{border-bottom:none}.detected-tx-row span:nth-child(2){flex:1;color:var(--text)}.detected-tx-row span:last-child{font-weight:600;white-space:nowrap}.onboarding-panel{background:var(--primary-bg);border:1px solid var(--primary-border);border-radius:var(--radius-sm);padding:16px 18px;margin-bottom:18px}.onboarding-panel-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:14px;gap:12px}.onboarding-panel-header h3{margin:0 0 5px;color:var(--primary);font-size:14px}.onboarding-progress{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted)}.progress-bar-track{width:120px;height:4px;background:var(--primary-border);border-radius:2px;overflow:hidden}.progress-bar-fill{height:100%;background:var(--primary);border-radius:2px;transition:width .4s ease}.onboarding-checklist{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px}.onboarding-step{display:flex;align-items:center;gap:10px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 12px}.onboarding-step.step-done{opacity:.5}.step-indicator{flex-shrink:0;width:26px;height:26px;border-radius:50%;background:var(--primary);color:#fff;font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center}.step-done .step-indicator{background:var(--good)}.step-body{flex:1;min-width:0}.step-body strong{font-size:13px;display:block;margin-bottom:1px;color:var(--text)}.step-body p{font-size:12px;color:var(--muted);margin:0;line-height:1.4}.step-go-btn{flex-shrink:0;font-size:12px;padding:5px 12px}.onboarding-all-done{text-align:center;color:var(--good);font-weight:600;font-size:14px;margin:0}@media (max-width: 900px){.app-shell{flex-direction:column}.tabs{width:100%;height:auto;position:static;flex-direction:row;overflow-x:auto;border-right:none;border-bottom:1px solid var(--border);padding:6px 8px;gap:2px;scrollbar-width:none}.tabs button{flex-direction:row;white-space:nowrap;padding:8px 12px}.topbar-period{display:none}.topbar-brand{margin-right:0}}@media (max-width: 768px){.topbar{padding:0 12px;gap:8px}.topbar-actions .btn-ghost:not(:last-child){display:none}.grid-2,.config-grid,.form-grid,.compact-filters-grid,.advanced-filters-grid,.totals-cards,.kpi-highlight-grid,.debt-cards-stack,.analytics-filters-grid,.analytics-grid,.analytics-kpis,.savings-head,.savings-row{grid-template-columns:1fr}.stacked-row{grid-template-columns:1fr;gap:4px}.stacked-total{text-align:left}.savings-head{display:none}.chart-head-actions{width:100%;flex-wrap:wrap}.chart-head-actions select{min-width:0;width:100%}}@media (max-width: 480px){.main-content{padding:12px}.topbar-brand h1{font-size:15px}.tabs button{font-size:12px;padding:7px 10px}.card,.status-card{border-radius:var(--radius-sm);padding:12px}.movements-table{min-width:780px}.movements-table th,.movements-table td{padding:7px 8px;font-size:12px}.filters-actions{flex-wrap:wrap}.filters-actions .btn-secondary,.filters-actions .btn-ghost{flex:1 1 calc(50% - 4px)}.toast-container{bottom:16px;right:16px;left:16px}.toast{max-width:100%}}.imported-sources-box{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:8px 12px;margin-bottom:10px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm)}.imported-tag-chip{display:inline-flex;align-items:center;gap:4px;font-size:.72rem;background:var(--surface);border:1px solid var(--border);border-radius:99px;padding:2px 8px 2px 10px;max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chip-delete{background:none;border:none;cursor:pointer;color:var(--danger, #e53935);font-size:.75rem;padding:0 2px;line-height:1;flex-shrink:0}.chip-delete:hover{opacity:.7}.stmt-reconciliation{margin:12px 0;border:1px solid var(--border);border-radius:var(--radius-sm);padding:14px 16px;background:var(--surface-2)}.stmt-reconciliation h5{font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--muted-light);margin:0 0 12px}.recon-grid{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.recon-col{display:flex;flex-direction:column;gap:2px;min-width:120px}.recon-label{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted-light)}.recon-value{font-size:18px;font-family:Fraunces,serif;font-weight:600;font-variant-numeric:tabular-nums;color:var(--text)}.recon-sub{font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}.recon-sep{font-size:20px;color:var(--border-mid);font-weight:300;align-self:center;padding-bottom:4px}.recon-result .recon-value{font-size:22px}.stmt-pending-block{border:1px solid var(--border);border-radius:var(--radius-sm);padding:12px;margin:8px 0}.pending-row{display:flex;align-items:baseline;gap:10px;margin-bottom:6px}.pending-row:last-child{margin-bottom:0}.pending-row>span{color:var(--muted);font-size:13px;min-width:110px}.pending-row strong{font-size:20px;font-family:Fraunces,serif;font-variant-numeric:tabular-nums}.pending-row small{font-size:11px}.loading-bar{position:fixed;top:0;left:0;right:0;height:3px;z-index:9998;background:var(--border, #e2e8f0);overflow:hidden}.loading-bar-fill{height:100%;width:40%;background:var(--primary, #2f6ee5);border-radius:0 2px 2px 0;animation:loading-slide 1.2s ease-in-out infinite}@keyframes loading-slide{0%{transform:translate(-100%)}to{transform:translate(350%)}}.badge-overdue{background:var(--danger-bg);color:var(--danger);border:1px solid var(--danger-border)}.badge-urgent{background:#fff7ed;color:#c2410c;border:1px solid #fed7aa}.badge-soon{background:var(--warning-bg);color:var(--warning);border:1px solid var(--warning-border)}.badge-ok{background:var(--good-bg);color:var(--good);border:1px solid var(--good-border)}.due-overdue{color:var(--danger)}.due-urgent{color:#c2410c}.due-soon{color:var(--warning)}.due-ok{color:var(--good)}.due-days-inline{font-size:11px;font-weight:600;margin-left:4px}.pie-chart-container{display:flex;gap:18px;align-items:flex-start;margin-top:10px}.pie-donut{width:140px;height:140px;min-width:140px;border-radius:50%;position:relative;display:flex;align-items:center;justify-content:center}.pie-donut-hole{width:80px;height:80px;border-radius:50%;background:var(--surface);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.pie-donut-hole strong{font-size:12px;font-family:Fraunces,serif;line-height:1.2}.pie-donut-hole small{font-size:10px}.pie-legend{flex:1;display:flex;flex-direction:column;gap:5px}.pie-legend-item{display:flex;align-items:center;gap:6px;font-size:12px}.pie-swatch{width:10px;height:10px;min-width:10px;border-radius:2px;display:inline-block}.pie-legend-label{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--muted)}.pie-legend-value{font-variant-numeric:tabular-nums;white-space:nowrap}.pie-legend-item small{min-width:40px;text-align:right;font-variant-numeric:tabular-nums}@media (max-width: 600px){.pie-chart-container{flex-direction:column;align-items:center}}
