@import"https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700&display=swap";:root{color-scheme:light;--bg: #e9edf5;--content-bg: #f7f9fc;--panel: #ffffff;--panel-muted: #eef1f7;--text: #1b2a4a;--text-muted: #5b6789;--border: #e6eaf2;--primary: #2f5bea;--primary-dark: #2348c8;--success: #15a06b;--warning: #e0a106;--danger: #d1503b;--success-text: #0f7d52;--warning-text: #9a6b00;--danger-text: #b8412e;--shadow: 0 20px 50px rgba(27, 42, 74, .1);--shadow-card: 0 1px 3px rgba(27, 42, 74, .06);--income: #15a06b;--income-strong: #0f7d52;--expense: #d1503b;--info: #2f5bea;--info-bg: rgba(47, 91, 234, .12);--accent-bg: #eef2fe;--accent-text: #2348c8;--row-border: #eef1f7;--input-bg: #ffffff;--brand-grad-a: #2f5bea;--brand-grad-b: #2348c8;--tint-neutral: #eef2fe;--tint-income: #e9f7f1;--tint-expense: #fdeeeb;--surface-2: #f1f4f9;--text-2: #5b6789;--backdrop: rgba(27, 42, 74, .45);--seg-active-bg: #ffffff;--seg-hover-bg: rgba(27, 42, 74, .04);--toast-bg: #1b2a4a;--rail-bg: #ffffff;--avatar-bg: #1b2a4a;--navy: #1b2a4a;--navy-2: #223461;--hero-income: #34d8a0;--hero-expense: #fb8a72}[data-theme=dark]{color-scheme:dark;--bg: #0c1322;--content-bg: #131c2f;--panel: #17223a;--panel-muted: #1f2c47;--text: #e9edf6;--text-muted: #9aa6c4;--border: #283655;--primary: #5b82f5;--primary-dark: #2f5bea;--success: #2dd4a0;--warning: #f5bd3f;--danger: #f47a63;--success-text: #2dd4a0;--warning-text: #f5bd3f;--danger-text: #f47a63;--shadow: 0 20px 50px rgba(0, 0, 0, .5);--shadow-card: 0 1px 3px rgba(0, 0, 0, .35);--income: #2dd4a0;--income-strong: #34d8a0;--expense: #f47a63;--info: #8fb0ff;--info-bg: rgba(91, 130, 245, .22);--accent-bg: rgba(91, 130, 245, .18);--accent-text: #aec4ff;--row-border: #1f2c47;--input-bg: #1f2c47;--brand-grad-a: #5b82f5;--brand-grad-b: #2f5bea;--tint-neutral: rgba(91, 130, 245, .16);--tint-income: rgba(45, 212, 160, .12);--tint-expense: rgba(244, 122, 99, .12);--surface-2: #1f2c47;--text-2: #9aa6c4;--backdrop: rgba(0, 0, 0, .62);--seg-active-bg: #28365a;--seg-hover-bg: rgba(255, 255, 255, .06);--toast-bg: #28365a;--rail-bg: #17223a;--avatar-bg: #2f5bea;--navy: #1b2a4a;--navy-2: #243763;--hero-income: #34d8a0;--hero-expense: #fb8a72}*{box-sizing:border-box}:where(button,a,input,select,textarea,summary,label.switch,[tabindex]):focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:8px}.nav-item:focus-visible,.theme-toggle:focus-visible{outline-color:#fff}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}body{margin:0;font-family:Manrope,system-ui,sans-serif;background:var(--bg);color:var(--text)}button,input,select{font-family:inherit}.app{display:grid;grid-template-columns:76px 1fr;min-height:100vh;background:var(--panel);transition:grid-template-columns .18s ease}.app.rail-expanded{grid-template-columns:236px 1fr}@media (max-width: 720px){.app,.app.rail-expanded{grid-template-columns:64px 1fr}}.sidebar{background:var(--rail-bg);border-right:1px solid var(--border);display:flex;flex-direction:column;align-items:stretch;gap:8px;padding:16px 12px;position:sticky;top:0;height:100vh;overflow-y:auto;overflow-x:hidden}.rail-brand{display:flex;align-items:center;justify-content:center;height:56px;padding:0;margin-bottom:8px;min-width:0}.rail-brand-icon{width:44px;height:44px;border-radius:12px;overflow:hidden;flex-shrink:0;display:grid;place-items:center;background:var(--navy)}.rail-brand-icon img{width:100%;height:100%;object-fit:cover}.nav{display:flex;flex-direction:column;gap:6px}.nav-item{border:none;background:transparent;color:var(--text-muted);cursor:pointer;display:flex;align-items:center;gap:12px;height:46px;padding:0 12px;border-radius:12px;font-weight:600;font-size:14px;white-space:nowrap;overflow:hidden;transition:background .15s,color .15s}.nav-item:hover{background:var(--panel-muted);color:var(--text)}.nav-item.active{background:var(--accent-bg);color:var(--primary)}.nav-item.active .nav-icon{color:var(--primary)}.nav-icon{flex-shrink:0;width:20px;height:20px;display:grid;place-items:center}.app:not(.rail-expanded) .nav-label,.app:not(.rail-expanded) .rail-brand-text{display:none}.app:not(.rail-expanded) .nav-item{justify-content:center;padding:0;gap:0}.app:not(.rail-expanded) .rail-brand{justify-content:center;padding:0}.main{display:flex;flex-direction:column;min-width:0}.content{display:flex;flex-direction:column;gap:20px;padding:24px 28px 28px;min-width:0;background:var(--content-bg);flex:1}.topbar{display:flex;align-items:center;gap:14px;background:var(--panel);padding:20px 28px 12px;position:sticky;top:0;z-index:20}.topbar-title{display:flex;flex-direction:column;min-width:0}.rail-toggle{border:none;background:transparent;color:var(--text);width:38px;height:38px;border-radius:10px;display:grid;place-items:center;cursor:pointer;flex-shrink:0}.rail-toggle:hover{background:var(--panel-muted)}.title{font-size:26px;font-weight:800;letter-spacing:-.02em;margin:0;color:var(--text)}.subtitle{color:var(--text-muted);font-size:13px;margin-top:2px}.topbar-spacer{flex:1}.topbar-actions{display:flex;align-items:center;gap:10px}.balance-pill{display:flex;flex-direction:column;align-items:flex-end;padding-right:14px;margin-right:2px;border-right:1px solid var(--border)}.balance-pill-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.balance-pill-value{font-size:15px;font-weight:700}.icon-btn{border:1px solid var(--border);background:var(--panel);color:var(--text-muted);width:42px;height:42px;border-radius:12px;display:grid;place-items:center;cursor:pointer;transition:background .15s,color .15s}.icon-btn:hover{background:var(--panel-muted);color:var(--text)}button.primary{border:none;background:var(--primary);color:#fff;padding:11px 18px;border-radius:12px;font-weight:600;cursor:pointer;box-shadow:0 6px 16px #2f5bea47;transition:background .15s,box-shadow .15s}button.primary:hover{background:var(--primary-dark)}button.primary.with-icon{display:inline-flex;align-items:center;gap:7px;padding:9px 15px 9px 12px}.user-menu{position:relative}.user-chip{display:flex;align-items:center;gap:10px;border:none;background:transparent;cursor:pointer;padding:4px 8px 4px 4px;border-radius:999px;transition:background .15s}.user-chip:hover{background:var(--panel-muted)}.avatar{width:38px;height:38px;border-radius:50%;background:var(--avatar-bg);color:#fff;display:grid;place-items:center;font-weight:700;font-size:14px;flex-shrink:0}.user-chip-text{display:flex;flex-direction:column;align-items:flex-start;line-height:1.2}.user-chip-name{font-weight:700;font-size:14px;color:var(--text)}.user-chip-sub{font-size:11px;color:var(--text-muted)}.user-chip-caret{color:var(--text-muted);display:grid;place-items:center;transition:transform .18s}.user-menu.open .user-chip-caret{transform:rotate(180deg)}.user-dropdown{position:absolute;top:calc(100% + 10px);right:0;width:264px;background:var(--panel);border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow);padding:8px;z-index:30;animation:dropdown-in .14s ease}@keyframes dropdown-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.user-dropdown-header{display:flex;align-items:center;gap:12px;padding:10px 12px 14px;border-bottom:1px solid var(--border);margin-bottom:6px}.user-dropdown-name{font-weight:700;font-size:14px}.user-dropdown-sub{font-size:12px;color:var(--text-muted)}.dropdown-section-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);padding:6px 12px 4px}.dropdown-item{display:flex;align-items:center;gap:12px;width:100%;border:none;background:transparent;color:var(--text);padding:10px 12px;border-radius:10px;font-size:14px;font-weight:600;cursor:pointer;text-align:left}.dropdown-item:hover{background:var(--panel-muted)}.dropdown-item svg{flex-shrink:0;color:var(--text-muted)}.dropdown-item-right{margin-left:auto;font-size:12px;color:var(--text-muted);font-weight:500}button.ghost{border:1px solid var(--border);background:var(--input-bg);color:var(--text);padding:10px 14px;border-radius:12px;cursor:pointer}button.danger{border:none;background:#ef44441f;color:var(--danger);padding:8px 12px;border-radius:12px;cursor:pointer}.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;padding:0}.kpis.kpis-6{grid-template-columns:repeat(6,1fr)}.kpis.kpis-top{padding:0}.kpis.kpis-auto{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.kpi-value.neutral{color:var(--primary)}.kpi-card:has(.kpi-value.neutral){border-top-color:var(--primary)}.kpi-card{background:var(--panel);border-radius:16px;padding:16px 18px;box-shadow:0 2px 12px #1a1b390f;border:1px solid var(--border);border-top-width:3px;transition:box-shadow .15s}.kpi-card:hover{box-shadow:0 4px 20px #1a1b391a}.kpi-card:has(.kpi-value.income){border-top-color:var(--success)}.kpi-card:has(.kpi-value.expense){border-top-color:var(--danger)}.kpi-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.kpi-value{font-size:20px;font-weight:700;margin-top:8px;letter-spacing:-.02em;color:var(--text)}.kpi-value.income{color:var(--income)}.kpi-value.expense{color:var(--expense)}.kpi-meta{color:var(--text-muted);font-size:12px;margin-top:6px}.filters{display:flex;flex-wrap:wrap;gap:10px;padding:12px 24px 16px}.filters .search{flex:1 1 220px;min-width:180px}.filters select{flex:0 1 160px;min-width:130px}.filters input,.filters select{width:100%;border:1px solid var(--border);border-radius:12px;padding:10px 12px;background:var(--input-bg);color:var(--text)}.table-card{background:var(--panel);border:1px solid var(--border);border-radius:20px;padding:6px 0;box-shadow:var(--shadow-card);overflow:visible}.split-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:0}.split .table-wrap{border-right:1px solid var(--border)}.loading,.error-banner{padding:12px 24px;font-size:13px}.error-banner{background:#ef44441f;color:var(--danger)}table{width:100%;border-collapse:collapse}thead th{text-align:left;font-size:11px;letter-spacing:.06em;text-transform:uppercase;font-weight:700;color:var(--text-muted);padding:14px 24px;border-bottom:1px solid var(--border)}tbody td{padding:16px 24px;border-bottom:1px solid var(--row-border);font-size:14px;vertical-align:middle}tbody tr{transition:background .12s}tbody tr:hover{background:var(--content-bg)}.row-editable{cursor:pointer}.row-editable:active{-webkit-user-select:none;user-select:none}tbody tr:last-child td{border-bottom:none}.concept-title{font-weight:600}.concept-meta{font-size:11px;color:var(--text-muted)}.amount{font-weight:600}.amount.income{color:var(--income-strong)}.amount.expense{color:var(--expense)}.currency-tag{display:inline-block;margin-left:5px;padding:1px 5px;border-radius:4px;font-size:10px;font-weight:700;letter-spacing:.04em;background:var(--info-bg);color:var(--info);vertical-align:middle}.kpi-currencies{display:flex;flex-direction:column;gap:2px}.kpi-currencies .kpi-currency-row{display:flex;align-items:center;gap:5px}.kpi-currencies .kpi-currency-label{font-size:10px;font-weight:700;letter-spacing:.04em;color:var(--info);background:var(--info-bg);padding:1px 4px;border-radius:3px}.badge{padding:6px 10px;border-radius:999px;font-size:12px;font-weight:600}.badge.paid{background:#22c55e26;color:var(--success-text)}.badge.planned,.badge.pending{background:#f59e0b33;color:var(--warning-text)}.badge.overdue{background:#ef44442e;color:var(--danger-text)}.badge.income{background:var(--tint-income);color:var(--income)}.badge.expense{background:var(--tint-expense);color:var(--expense)}.actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.empty{text-align:center;color:var(--text-muted)}.pagination{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;padding:16px 24px 18px}.page-indicator{font-size:13px;color:var(--text-muted)}.pagination-left{display:flex;align-items:center;gap:12px}.pagination-pages{display:flex;align-items:center;gap:6px}.page-btn{min-width:36px;height:36px;padding:0 10px;border:1px solid var(--border);background:var(--panel);color:var(--text-muted);border-radius:10px;font-weight:600;font-size:13px;cursor:pointer;display:grid;place-items:center;transition:background .12s,color .12s,border-color .12s}.page-btn:hover:not(:disabled){background:var(--panel-muted);color:var(--text)}.page-btn.active{background:var(--primary);border-color:var(--primary);color:#fff}.page-btn:disabled{opacity:.45;cursor:not-allowed}.page-size-select{border:1px solid var(--border);background:var(--panel);color:var(--text-muted);border-radius:10px;padding:7px 10px;font-size:13px;cursor:pointer}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;background:var(--backdrop);display:flex;justify-content:center;overflow-y:auto;padding:20px}.modal{margin:auto;background:var(--panel);border-radius:20px;width:min(520px,100%);box-shadow:var(--shadow);padding:20px 22px;max-height:calc(100vh - 40px);max-height:calc(100dvh - 40px);overflow-y:auto}.modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.modal-body{display:grid;gap:12px}.modal-body label{display:grid;gap:6px;font-size:12px;color:var(--text-muted)}.modal-body input,.modal-body select{border:1px solid var(--border);border-radius:12px;padding:10px 12px;font-size:14px;background:var(--input-bg);color:var(--text)}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:10px}@media (max-width: 1100px){.kpis,.kpis.kpis-6{grid-template-columns:repeat(2,1fr)}.risk-row,.alerts,.split-grid{grid-template-columns:1fr}}@media (max-width: 720px){.content{padding:16px}.balance-pill,.user-chip-text{display:none}.title{font-size:18px}.user-chip{padding:4px}}.risk-row{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.risk-card{background:var(--panel);border-radius:18px;padding:16px 18px;box-shadow:var(--shadow)}.risk-card.danger{border:1px solid rgba(239,68,68,.3)}.risk-title{color:var(--text-muted);font-size:12px}.risk-value{font-size:20px;font-weight:700;margin-top:6px}.risk-meta{color:var(--text-muted);font-size:12px;margin-top:6px}.actions-row{display:flex;gap:12px;align-items:center;background:var(--panel);border-radius:20px;padding:14px 18px;box-shadow:var(--shadow)}.actions-note{margin-left:auto;color:var(--text-muted);font-size:12px}.alerts{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.alert-item{background:var(--accent-bg);color:var(--accent-text);padding:12px 16px;border-radius:14px;font-size:13px}.tabs{display:flex;gap:8px}.tab{border:1px solid var(--border);background:var(--input-bg);padding:10px 14px;border-radius:12px;cursor:pointer;color:var(--text-muted);font-weight:600}.tab.active{background:#6c5ce71f;color:var(--primary);border-color:transparent}.side-panel{padding:20px}.side-title{font-weight:700;margin-bottom:12px}.side-content{display:grid;gap:12px}.side-item{display:grid;gap:4px;font-size:13px;color:var(--text-muted)}.side-item strong{color:var(--text);font-size:14px}.side-actions{display:grid;gap:8px;margin-top:6px}.side-empty{color:var(--text-muted);font-size:13px}.section-header{display:flex;justify-content:space-between;align-items:flex-start;padding:20px 24px 12px}.section-header h2{font-size:18px;font-weight:700;margin:0 0 4px}.toast{position:fixed;bottom:24px;right:24px;background:var(--toast-bg);color:#fff;padding:12px 20px;border-radius:14px;font-size:13px;font-weight:500;z-index:1000;box-shadow:var(--shadow)}.switch{position:relative;display:inline-block;width:40px;height:22px;cursor:pointer}.switch input{opacity:0;width:0;height:0}.switch-track{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--border);border-radius:999px;transition:background .2s}.switch-track:before{content:"";position:absolute;left:3px;top:3px;width:16px;height:16px;background:#fff;border-radius:50%;transition:transform .2s}.switch input:checked~.switch-track{background:var(--primary)}.switch input:checked~.switch-track:before{transform:translate(18px)}.switch input:disabled~.switch-track{opacity:.5;cursor:not-allowed}.inactive-section{border-top:1px solid var(--border);margin-top:8px}.row-inactive{background:var(--panel-muted)}.row-inactive .concept-title,.row-inactive .concept-meta{color:var(--text-muted)}.inactive-summary{padding:12px 24px;font-size:13px;font-weight:600;color:var(--text-muted);cursor:pointer;list-style:none}.inactive-badge{background:var(--panel-muted);color:var(--text-muted)}.progress-bar{height:6px;background:var(--panel-muted);border-radius:999px;overflow:hidden;margin-top:6px}.progress-fill{height:100%;background:var(--primary);border-radius:999px}.progress-bar-wrap{display:flex;align-items:center;gap:8px}.progress-bar-track{flex:1;height:6px;background:var(--panel-muted);border-radius:999px;overflow:hidden;min-width:60px}.progress-bar-fill{height:100%;background:var(--primary);border-radius:999px}.progress-label{font-size:12px;color:var(--text-muted);white-space:nowrap}.table-wrap{overflow-x:auto}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg)}.login-card{background:var(--panel);border:1px solid var(--border);border-radius:16px;padding:48px 40px;width:100%;max-width:380px;display:flex;flex-direction:column;align-items:center;gap:24px;box-shadow:0 4px 24px #00000012}.login-desc{font-size:14px;color:var(--text-muted);text-align:center;margin:0}.google-btn{display:flex;align-items:center;gap:10px;padding:11px 24px;border:1px solid var(--border);border-radius:8px;background:var(--panel);color:var(--text);font-size:14px;font-weight:600;cursor:pointer;transition:background .15s,box-shadow .15s;width:100%;justify-content:center}.google-btn:hover{background:var(--panel-muted);box-shadow:0 2px 8px #00000014}.segmented-control{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;background:var(--panel-muted);border-radius:14px;padding:4px;margin-bottom:2px}.seg-btn{border:none;background:transparent;color:var(--text-muted);padding:9px 6px;border-radius:10px;font-size:12px;font-weight:600;cursor:pointer;transition:background .15s,color .15s,box-shadow .15s;white-space:nowrap;letter-spacing:.01em;display:inline-flex;align-items:center;justify-content:center;gap:6px}.seg-dot{width:7px;height:7px;border-radius:50%;background:currentColor;flex-shrink:0}.seg-btn:hover:not(.active){background:var(--seg-hover-bg);color:var(--text)}.seg-btn.active{background:var(--seg-active-bg);color:var(--text);box-shadow:0 1px 5px #1a1b3921}.seg-btn.active[data-type=gasto]{color:var(--danger-text)}.seg-btn.active[data-type=ingreso]{color:var(--success-text)}.seg-btn.active[data-type=cuotas]{color:var(--primary)}.seg-btn.active[data-type=recurrente]{color:var(--warning-text)}.segmented-control.cols-2{grid-template-columns:repeat(2,1fr)}.modal-tf{padding:0;display:flex;flex-direction:column;max-height:calc(100vh - 40px);max-height:calc(100dvh - 40px);width:min(560px,100%);overflow:hidden}.tf-header{align-items:flex-start;padding:22px 22px 0;margin-bottom:14px}.tf-head-main{display:flex;align-items:center;gap:13px;min-width:0}.tf-badge{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;flex-shrink:0}.tf-badge.expense{background:var(--tint-expense);color:var(--danger)}.tf-badge.income{background:var(--tint-income);color:var(--success)}.tf-badge.neutral{background:var(--tint-neutral);color:var(--primary)}.tf-badge.warning{background:#e0a10626;color:var(--warning-text)}.tf-title{margin:0;font-size:19px;font-weight:800;letter-spacing:-.01em;color:var(--text)}.tf-sub{margin:2px 0 0;font-size:12.5px;color:var(--text-muted)}.tf-close{border:1px solid var(--border);background:var(--panel);color:var(--text-muted);width:34px;height:34px;border-radius:10px;display:grid;place-items:center;cursor:pointer;flex-shrink:0;transition:background .15s,color .15s,border-color .15s}.tf-close:hover{background:var(--panel-muted);color:var(--text)}.modal-tf>.segmented-control{margin:0 22px 16px}.tf-form{display:flex;flex-direction:column;min-height:0;flex:1}.modal-tf .modal-body{flex:1;min-height:0;overflow-y:auto;padding:0 22px 6px;align-content:start}.modal-tf .tf-label{display:block;margin-bottom:7px;font-size:12px;font-weight:600;color:var(--text-muted)}.tf-hint{display:block;margin-top:6px;font-size:11.5px;color:var(--text-muted)}.tf-row2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.tf-amount{display:flex;align-items:center;gap:10px;border:1.5px solid var(--border);border-radius:14px;padding:10px 12px;background:var(--input-bg);transition:border-color .15s,box-shadow .15s}.tf-amount:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px var(--info-bg)}.tf-amount-cur{font-size:20px;font-weight:700;color:var(--text-muted)}.tf-amount input{flex:1;min-width:0;border:none;background:transparent;padding:0;font-size:26px;font-weight:800;color:var(--text);outline:none}.tf-amount input::placeholder{color:var(--text-muted);opacity:.45}.tf-ccy{display:inline-flex;background:var(--panel-muted);border-radius:9px;padding:3px;gap:2px;flex-shrink:0}.tf-ccy button{border:none;background:transparent;padding:6px 11px;border-radius:7px;font-size:12px;font-weight:700;color:var(--text-muted);cursor:pointer;transition:background .15s,color .15s,box-shadow .15s}.tf-ccy button.active{background:var(--seg-active-bg);color:var(--text);box-shadow:0 1px 3px #1b2a4a21}.tf-rate{display:flex;align-items:center;gap:8px;border:1.5px solid var(--border);border-radius:12px;padding:8px 12px;background:var(--input-bg);transition:border-color .15s,box-shadow .15s}.tf-rate:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px var(--info-bg)}.tf-rate-cur{font-size:16px;font-weight:700;color:var(--text-muted)}.tf-rate input{flex:1;min-width:0;border:none;background:transparent;padding:0;font-size:17px;font-weight:700;color:var(--text);outline:none}.tf-rate-refresh{flex-shrink:0;border:none;background:var(--panel-muted);color:var(--text-muted);border-radius:8px;padding:6px 11px;font-size:12px;font-weight:700;cursor:pointer;transition:background .15s,color .15s}.tf-rate-refresh:hover:not(:disabled){color:var(--text)}.tf-rate-refresh:disabled{opacity:.6;cursor:default}.tf-chips{display:flex;flex-wrap:wrap;gap:8px}.tf-chip{display:inline-flex;align-items:center;gap:7px;border:1.5px solid var(--border);background:var(--panel);border-radius:11px;padding:7px 12px;font-size:13px;font-weight:600;color:var(--text);cursor:pointer;transition:border-color .15s,background .15s,color .15s}.tf-chip:hover{border-color:var(--primary)}.tf-chip.active{border-color:var(--primary);background:var(--accent-bg);color:var(--accent-text)}.tf-chip-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.tf-chip-new{border-style:dashed;color:var(--text-muted)}.tf-chip-new:hover{color:var(--primary)}.tf-chip-add{display:inline-flex;align-items:center;gap:4px;border:1.5px solid var(--primary);border-radius:11px;padding:3px 4px 3px 10px;background:var(--panel)}.tf-chip-add input{border:none!important;background:transparent;padding:4px 0!important;font-size:13px;font-weight:600;color:var(--text);outline:none;width:130px}.tf-chip-add-ok,.tf-chip-add-cancel{border:none;background:transparent;display:grid;place-items:center;width:26px;height:26px;border-radius:7px;cursor:pointer;flex-shrink:0}.tf-chip-add-ok{color:var(--success-text)}.tf-chip-add-cancel{color:var(--text-muted)}.tf-chip-add-ok:hover{background:var(--tint-income)}.tf-chip-add-cancel:hover{background:var(--panel-muted)}.tf-chip-add-ok:disabled{opacity:.5;cursor:default}.tf-hint-error{color:var(--danger-text)}.modal-tf input[type=number]::-webkit-outer-spin-button,.modal-tf input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.modal-tf input[type=number]{-moz-appearance:textfield}.tf-combo{position:relative}.tf-combo>input{width:100%}.tf-combo-list{z-index:2100;margin:0;padding:5px;list-style:none;max-height:264px;overflow-y:auto;background:var(--panel);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow)}.tf-combo-opt{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 11px;border-radius:9px;font-size:13.5px;color:var(--text);cursor:pointer}.tf-combo-opt.active{background:var(--accent-bg);color:var(--accent-text)}.tf-combo-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tf-combo-text mark{background:transparent;color:var(--primary);font-weight:700}.tf-combo-opt.active .tf-combo-text mark{color:inherit}.tf-combo-cat{flex-shrink:0;font-size:11px;font-weight:600;color:var(--text-muted);background:var(--panel-muted);padding:2px 8px;border-radius:999px}.tf-combo-opt.active .tf-combo-cat{background:#ffffff2e;color:inherit}.tf-date{position:relative}.tf-date-trigger{display:flex;align-items:center;gap:9px;width:100%;border:1px solid var(--border);border-radius:12px;padding:10px 12px;font-size:14px;background:var(--input-bg);color:var(--text);cursor:pointer;text-align:left;transition:border-color .15s,box-shadow .15s}.tf-date-trigger:hover{border-color:var(--primary)}.tf-date-trigger.empty{color:var(--text-muted)}.tf-date-ic{color:var(--text-muted);flex-shrink:0}.tf-cal{z-index:2100;width:268px;padding:12px;background:var(--panel);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow);-webkit-user-select:none;user-select:none}.tf-cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.tf-cal-title{font-size:13.5px;font-weight:700;color:var(--text);text-transform:capitalize}.tf-cal-nav{display:grid;place-items:center;width:30px;height:30px;border:none;border-radius:8px;background:transparent;color:var(--text-muted);cursor:pointer;transition:background .15s,color .15s}.tf-cal-nav:hover{background:var(--panel-muted);color:var(--text)}.tf-cal-dow,.tf-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.tf-cal-dow{margin-bottom:4px}.tf-cal-dow span{text-align:center;font-size:10.5px;font-weight:700;color:var(--text-muted);padding:4px 0}.tf-cal-day{aspect-ratio:1;border:none;border-radius:9px;background:transparent;color:var(--text);font-size:12.5px;font-weight:600;cursor:pointer;transition:background .12s,color .12s}.tf-cal-day:hover{background:var(--panel-muted)}.tf-cal-day.today{color:var(--primary)}.tf-cal-day.selected{background:var(--primary);color:#fff}.tf-cal-foot{display:flex;justify-content:flex-end;margin-top:8px;padding-top:8px;border-top:1px solid var(--border)}.tf-cal-today{border:none;background:transparent;color:var(--primary);font-size:12.5px;font-weight:700;cursor:pointer;padding:4px 8px;border-radius:8px}.tf-cal-today:hover{background:var(--accent-bg)}.tf-readonly{background:var(--surface-2);color:var(--text-2);cursor:default;width:100%}.modal-tf select{-moz-appearance:none;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%235b6789' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:34px}[data-theme=dark] .modal-tf select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%239aa6c4' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E")}.modal-foot{display:flex;align-items:center;gap:12px;padding:14px 22px 20px;border-top:1px solid var(--border)}.tf-confirm{display:inline-flex;align-items:center;gap:10px;font-size:13.5px;font-weight:600;color:var(--text);cursor:pointer}.modal-foot-actions{display:flex;gap:10px;margin-left:auto}.tf-shared{display:inline-flex;align-items:center;gap:10px;margin-top:12px;font-size:13px;font-weight:600;color:var(--text);cursor:pointer}.tf-hint-shared{color:var(--primary);font-weight:600}@media (max-width: 560px){.modal-backdrop{padding:12px}.modal,.modal-tf{width:100%;max-height:calc(100vh - 24px);max-height:calc(100dvh - 24px)}.tf-header{padding:16px 16px 0}.modal-tf>.segmented-control{margin:0 16px 12px}.modal-tf .modal-body{padding:0 16px 6px}.modal-foot{padding:12px 16px 16px}.modal-foot-actions{flex:1;justify-content:flex-end}}.cat-admin{width:100%}.cat-panel{background:var(--panel);border:1px solid var(--border);border-radius:18px;box-shadow:var(--shadow-card);padding:22px}.cat-panel-head{margin-bottom:18px}.cat-panel-title{display:flex;align-items:center;gap:13px}.cat-panel-icon{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;background:var(--tint-neutral);color:var(--primary);flex-shrink:0}.cat-panel-title h3{margin:0;font-size:18px;font-weight:800;color:var(--text)}.cat-panel-title p{margin:2px 0 0;font-size:12.5px;color:var(--text-muted)}.cat-add{display:flex;gap:10px;margin-bottom:16px}.cat-add input{flex:1;border:1px solid var(--border);border-radius:12px;padding:10px 14px;font-size:14px;background:var(--input-bg);color:var(--text)}.cat-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:8px}.cat-row{display:flex;align-items:center;gap:12px;padding:11px 14px;border:1px solid var(--border);border-radius:12px;background:var(--panel);transition:border-color .15s,background .15s}.cat-row:hover,.cat-row.editing{border-color:var(--primary)}.cat-dot{width:11px;height:11px;border-radius:50%;flex-shrink:0}.cat-name{flex:1;font-size:14px;font-weight:600;color:var(--text);min-width:0}.cat-edit-input{flex:1;border:1px solid var(--border)!important;border-radius:9px;padding:7px 10px!important;font-size:14px;font-weight:600;background:var(--input-bg);color:var(--text);min-width:0}.cat-row-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}.cat-confirm-label{font-size:13px;font-weight:600;color:var(--danger-text);margin-right:2px}.cat-icon-btn{border:none;background:transparent;color:var(--text-muted);width:32px;height:32px;border-radius:9px;display:grid;place-items:center;cursor:pointer;transition:background .15s,color .15s}.cat-icon-btn:hover{background:var(--panel-muted);color:var(--text)}.cat-icon-btn.ok:hover{background:var(--tint-income);color:var(--success-text)}.cat-icon-btn.danger:hover{background:var(--tint-expense);color:var(--danger-text)}.cat-icon-btn:disabled{opacity:.5;cursor:default}.cat-empty{padding:18px 14px;text-align:center;color:var(--text-muted);font-size:13.5px;border:1px dashed var(--border);border-radius:12px}.mov-hero{display:grid;grid-template-columns:1.15fr 1fr 1fr;gap:16px}@media (max-width: 1100px){.mov-hero{grid-template-columns:1fr}}.hero-saldo{background:linear-gradient(150deg,var(--navy) 0%,var(--navy-2) 100%);color:#fff;border-radius:18px;padding:22px 24px;display:flex;flex-direction:column;gap:12px;box-shadow:var(--shadow-card)}.hero-saldo-label{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#fff9}.hero-saldo-value{font-size:clamp(28px,4vw,36px);font-weight:800;letter-spacing:-.02em;line-height:1}.hero-saldo-breakdown{display:flex;gap:32px;margin-top:4px}.hero-bd-label{font-size:11px;color:#ffffff8c}.hero-bd-value{font-size:15px;font-weight:700;margin-top:3px}.hero-bd-value.income{color:var(--hero-income)}.hero-bd-value.expense{color:var(--hero-expense)}.hero-metric{background:var(--panel);border:1px solid var(--border);border-radius:18px;padding:20px 22px;display:flex;flex-direction:column;gap:16px}.hero-metric-title{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}.hero-metric-rows{display:flex;flex-direction:column;gap:14px}.hero-metric-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.hero-metric-key{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--text)}.hero-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0}.hero-dot.income{background:var(--income)}.hero-dot.expense{background:var(--expense)}.hero-metric-val{font-weight:700;font-size:15px;text-align:right}.hero-metric-val.income{color:var(--income-strong)}.hero-metric-val.expense{color:var(--expense)}.filter-seg{display:inline-flex;background:var(--panel-muted);border-radius:12px;padding:4px;gap:2px}.filter-seg-btn{border:none;background:transparent;padding:9px 18px;border-radius:9px;font-weight:600;font-size:13px;cursor:pointer;color:var(--text-muted);transition:background .15s,color .15s,box-shadow .15s;white-space:nowrap}.filter-seg-btn[data-dir=income]{color:var(--income-strong)}.filter-seg-btn[data-dir=expense]{color:var(--expense)}.filter-seg-btn.active{background:var(--seg-active-bg);color:var(--text);box-shadow:0 1px 4px #1b2a4a21}.filter-seg-btn.active[data-dir=income]{color:var(--income-strong)}.filter-seg-btn.active[data-dir=expense]{color:var(--expense)}.concept-cell{display:flex;align-items:center;gap:14px}.row-icon{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;flex-shrink:0}.row-icon.income{background:var(--tint-income);color:var(--income)}.row-icon.expense{background:var(--tint-expense);color:var(--expense)}.col-amount{text-align:right}td.col-amount .currency-tag{margin-left:6px}.amount-ars{display:block;margin-top:2px;font-size:11px;font-weight:600;color:var(--text-muted)}.status{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:600}.status-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.status.paid{color:var(--success-text)}.status.paid .status-dot{background:var(--success)}.status.pending{color:var(--warning-text)}.status.pending .status-dot{background:var(--warning)}.status.overdue{color:var(--danger-text)}.status.overdue .status-dot{background:var(--danger)}.row-menu{display:flex;justify-content:flex-end}.icon-btn-plain{border:none;background:transparent;color:var(--text-muted);width:34px;height:34px;border-radius:9px;display:grid;place-items:center;cursor:pointer;transition:background .12s,color .12s}.icon-btn-plain:hover{background:var(--panel-muted);color:var(--text)}.row-menu-dropdown{width:196px;background:var(--panel);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow);padding:6px;z-index:60;animation:dropdown-in .12s ease}.row-menu-item{display:flex;width:100%;border:none;background:transparent;color:var(--text);padding:10px 12px;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;text-align:left}.row-menu-item:hover{background:var(--panel-muted)}.row-menu-item.danger{color:var(--danger-text)}.row-menu-item.danger:hover{background:var(--tint-expense)}.kpi-groups{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;padding:20px 24px 4px}.kpi-group{display:flex;flex-direction:column;gap:8px}.kpi-group-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);padding-left:2px}.kpi-group-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}@media (max-width: 1100px){.kpi-groups{grid-template-columns:1fr}}@media (max-width: 520px){.kpi-group-cards{grid-template-columns:1fr}}.active-filters{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:0 24px 12px}.active-filters-label{font-size:12px;font-weight:600;color:var(--text-muted)}.filter-chip{display:inline-flex;align-items:center;gap:6px;background:var(--accent-bg);color:var(--accent-text);border-radius:999px;padding:4px 6px 4px 12px;font-size:12px;font-weight:600}.filter-chip-remove{border:none;background:transparent;color:inherit;cursor:pointer;width:20px;height:20px;border-radius:50%;display:grid;place-items:center;font-size:13px;line-height:1}.filter-chip-remove:hover{background:#00000014}.filters-clear{border:none;background:transparent;color:var(--primary);font-weight:600;font-size:12px;cursor:pointer;padding:4px 6px;border-radius:8px}.filters-clear:hover{background:var(--panel-muted)}th.sortable{padding:0}.th-sort{width:100%;border:none;background:transparent;cursor:pointer;font:inherit;color:inherit;text-transform:inherit;letter-spacing:inherit;display:inline-flex;align-items:center;gap:6px;padding:16px 24px}.th-sort:hover,.th-sort.active{color:var(--text)}.th-sort-arrow{font-size:10px;opacity:.55}.th-sort.active .th-sort-arrow{opacity:1;color:var(--primary)}.actions button{min-height:40px}.danger-solid{border:none;background:var(--danger);color:#fff;padding:10px 16px;border-radius:12px;font-weight:600;cursor:pointer}.danger-solid:hover{filter:brightness(.93)}.confirm-message{font-size:14px;color:var(--text);line-height:1.5;margin:0}.theme-toggle{margin-top:auto;border:1px solid var(--border);background:transparent;color:var(--text-muted);padding:10px 14px;border-radius:12px;font-weight:600;font-size:13px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;width:100%;transition:background .15s,color .15s}.theme-toggle:hover{background:var(--panel-muted);color:var(--text)}.stats{display:flex;flex-direction:column;gap:14px}.app:has(.stats){height:100vh;overflow:hidden}.main:has(.stats){height:100vh}.content:has(.stats){min-height:0;overflow:hidden;padding-bottom:20px}.stats{height:100%;min-height:0}.stats-toolbar,.stats-kpis{flex-shrink:0}.content:has(.stats) .stats-row{flex:1 1 0;min-height:0}.stats-toolbar{display:flex;align-items:center;justify-content:flex-end;gap:12px}.stats-seg{display:inline-flex;background:var(--panel-muted);border-radius:12px;padding:4px;gap:2px}.stats-seg-btn{border:none;background:transparent;padding:8px 18px;border-radius:9px;font-weight:600;font-size:13px;cursor:pointer;color:var(--text-muted);transition:background .15s,color .15s,box-shadow .15s}.stats-seg-btn.active{background:var(--seg-active-bg);color:var(--text);box-shadow:0 1px 4px #1b2a4a21}.stats-export.with-icon{display:inline-flex;align-items:center;gap:7px;font-weight:600;font-size:13px}.stats-export:disabled{opacity:.5;cursor:not-allowed}.stats-empty{background:var(--panel);border:1px dashed var(--border);border-radius:16px;padding:18px 22px;color:var(--text-muted);font-size:14px}.stats-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.stats-kpis .kpi-card{padding:14px 16px;gap:6px}.stats-kpis .kpi-value{font-size:clamp(20px,2.4vw,26px)}.stats-kpis .kpi-badge{width:26px;height:26px}@media (max-width: 1100px){.stats-kpis{grid-template-columns:repeat(2,1fr)}}@media (max-width: 560px){.stats-kpis{grid-template-columns:1fr}}.kpi-card{background:var(--panel);border:1px solid var(--border);border-radius:16px;padding:18px 20px;display:flex;flex-direction:column;gap:8px;box-shadow:var(--shadow-card)}.kpi-head{display:flex;align-items:center;justify-content:space-between}.kpi-label{font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--text-muted)}.kpi-badge{width:30px;height:30px;border-radius:9px;flex-shrink:0}.kpi-badge.income{background:var(--tint-income)}.kpi-badge.expense{background:var(--tint-expense)}.kpi-badge.accent{background:var(--tint-income)}.kpi-badge.info{background:var(--tint-neutral)}.kpi-badge.warning{background:var(--tint-expense)}.kpi-value{font-size:clamp(24px,3vw,30px);font-weight:800;letter-spacing:-.02em;line-height:1.05;color:var(--text)}.kpi-sub{font-size:12px;color:var(--text-muted)}.kpi-delta{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:600}.kpi-delta.up{color:var(--success-text)}.kpi-delta.down{color:var(--danger-text)}.stats-row{display:grid;gap:16px}.stats-row-2{grid-template-columns:1.35fr 1fr}@media (max-width: 1100px){.stats-row-2{grid-template-columns:1fr}}.stats-card{background:var(--panel);border:1px solid var(--border);border-radius:18px;padding:16px 18px;box-shadow:var(--shadow-card);min-width:0;display:flex;flex-direction:column;min-height:0;overflow:hidden}.stats-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:8px;flex-shrink:0}.stats-card-title{margin:0;font-size:16px;font-weight:700;color:var(--text)}.stats-card-sub{margin:2px 0 0;font-size:12px;color:var(--text-muted)}.stats-legend{display:flex;gap:16px;flex-shrink:0}.stats-legend-item{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--text-muted)}.stats-swatch{width:10px;height:10px;border-radius:3px;display:inline-block}.stats-chart{flex:1 1 0;min-height:0;width:100%;overflow:hidden}.stats-chart svg{display:block}.stats-grid{stroke:var(--border);stroke-width:1}.stats-axis{fill:var(--text-muted);font-size:11px;font-family:inherit}.stats-muted{color:var(--text-muted);font-size:13px}.donut-wrap{display:flex;align-items:center;justify-content:safe center;gap:22px;flex-wrap:nowrap;flex:1 1 0;min-height:0}.donut-svg{height:100%;max-height:160px;width:auto;aspect-ratio:1 / 1;flex-shrink:0}.donut-center-label{fill:var(--text-muted);font-size:11px;font-family:inherit}.donut-center-value{fill:var(--text);font-size:16px;font-weight:800;font-family:inherit}.donut-legend{list-style:none;margin:0;padding:0;flex:1 1 0;min-width:0;min-height:0;display:flex;flex-direction:column;justify-content:safe center;gap:clamp(4px,1.2vh,7px)}.donut-legend li{display:flex;align-items:center;gap:9px;font-size:13px;color:var(--text)}.donut-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0}.donut-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.donut-pct{font-weight:700;color:var(--text-muted)}.topcat{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;justify-content:safe center;gap:clamp(8px,1.8vh,14px);flex:1 1 0;min-height:0;overflow:hidden}.topcat-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:clamp(4px,1vh,7px)}.topcat-name{font-size:13px;font-weight:600;color:var(--text)}.topcat-value{font-size:14px;font-weight:700;color:var(--text)}.topcat-track{height:7px;border-radius:99px;background:var(--panel-muted);overflow:hidden}.topcat-fill{height:100%;border-radius:99px;transition:width .4s ease}.top-empty{padding:10px 0}
