:root{color-scheme:light;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;--app-bg: #FBF8F2;--app-panel: #F5F1E5;--app-panel-strong: #ECE5D5;--app-text: #2B3323;--app-title: #465330;--app-primary: #66703B;--app-primary-hover: #465330;--app-secondary: #A7B16B;--app-link: #8A9253;--app-border: #DDD7C8;--app-success: #66703B;--app-warning: #C7B37A;--app-white: #FFFEFA;color:var(--app-text);background:var(--app-bg);font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}button{font:inherit}.app-shell{display:grid;grid-template-columns:260px minmax(0,1fr);min-height:100vh}.sidebar{display:flex;flex-direction:column;gap:32px;padding:28px 20px;background:#101827;color:#f8fafc}.brand{display:flex;align-items:center;gap:12px}.brand-logo{display:block;width:52px;height:52px;object-fit:contain;flex:0 0 auto;border:1px solid rgb(221 215 200 / .72);border-radius:8px;padding:5px;background:#fbf8f2f0;box-shadow:0 8px 20px #2b332338}.brand strong,.brand small{display:block}.brand small{margin-top:2px;color:#a8b3c7}.nav-list{display:grid;gap:8px}.nav-action{display:flex;align-items:center;gap:10px;text-decoration:none;min-height:44px;width:100%;border:1px solid transparent;border-radius:8px;padding:0 12px;background:transparent;color:#dbe4f0;font-weight:700;text-align:left;cursor:pointer}.nav-action:hover{background:#263347}.nav-action:disabled:hover,.nav-action.disabled:hover{background:transparent}.nav-action svg{flex:0 0 auto}.expense-action svg{color:#f87171}.income-action svg{color:#4ade80}.cuadre-action svg{color:#60a5fa}.main-content{min-width:0;padding:28px}.movements-page{display:grid;grid-template-rows:auto minmax(0,1fr) auto;min-height:calc(100vh - 56px);gap:16px}.table-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px}h1{margin:0;font-size:1.55rem;line-height:1.15}.notice{border-left:4px solid #dc2626;padding:12px 14px;background:#fff1f2;color:#9f1239;font-weight:700}.table-frame{min-width:0;overflow:auto;border:1px solid #d8e0ea;border-radius:8px;background:#fff}.movements-table{width:100%;min-width:1180px;border-collapse:collapse}.movements-table th,.movements-table td{height:48px;border-bottom:1px solid #e7edf4;padding:0 14px;text-align:left;vertical-align:middle;white-space:nowrap}.movements-table th{position:sticky;top:0;z-index:1;background:#edf2f7;color:#40516a;font-size:.78rem;font-weight:800;text-align:center;text-transform:uppercase;box-shadow:inset 0 -1px #cfd9e6}.movement-row{cursor:pointer}.movement-row:nth-child(odd){background:#fff}.movement-row:nth-child(2n){background:#fbfdff}.movement-row:focus-visible{outline:2px solid #2563eb;outline-offset:-2px}.movements-table tbody .movement-row:hover{background:#f2f7fc}.movements-table tbody tr:last-child td{border-bottom:0}.table-message{height:120px;color:#65758b;font-weight:700;text-align:center}.movements-table td.date-cell,.movements-table td.current-value-cell,.movements-table td.medium-cell,.movements-table td.category-cell{text-align:center}.movements-table td.current-value-cell{font-style:italic}.category-badge{display:inline-flex;align-items:center;justify-content:center;min-height:28px;max-width:100%;border-radius:8px;padding:0 10px;background:transparent;color:#172033;font-weight:500;overflow:hidden;text-overflow:ellipsis;vertical-align:middle}.amount{color:#0f8a52;font-weight:800}.movements-table td.amount.income{text-align:right}.movements-table td.amount.expense{text-align:left}.remarks-cell{max-width:260px;overflow:hidden;text-overflow:ellipsis}.amount.negative{color:#c2413f}.medium-icon{display:inline-grid;width:32px;height:32px;place-items:center;color:#40516a}.medium-icon.card{color:#1f5ca8}.medium-icon.cash{color:#117646}.medium-icon.bank{color:#6040a6}.medium-icon.undefined,.medium-icon.custom{color:#667085}.transaction-context-menu{position:fixed;z-index:80;display:grid;min-width:164px;overflow:hidden;border:1px solid #d8e0ea;border-radius:8px;padding:4px;background:#fff;box-shadow:0 18px 44px #0f172a2e}.transaction-context-menu button{display:flex;align-items:center;gap:9px;min-height:34px;border:0;border-radius:6px;padding:0 10px;background:transparent;color:#172033;font-weight:700;text-align:left;cursor:pointer}.transaction-context-menu button svg{flex:0 0 auto}.transaction-context-menu button:hover,.transaction-context-menu button:focus-visible{background:#f2f7fc;outline:none}.transaction-context-menu .danger-menu-action{color:#b42318}.transaction-context-menu .danger-menu-action:hover,.transaction-context-menu .danger-menu-action:focus-visible{background:#fff1f2}.paginator{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:48px;color:#53667d;font-weight:700}.pager-controls{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.pager-buttons{display:flex;gap:8px}.pager-buttons button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:38px;border:1px solid #ccd6e3;border-radius:8px;padding:0 12px;background:#fff;color:#223047;font-weight:800;cursor:pointer}.pager-buttons button:disabled{cursor:not-allowed;opacity:.45}.pager-jump{display:flex;align-items:center;gap:8px;color:#53667d;font-weight:800}.pager-jump input{width:72px;min-height:38px;border:1px solid #ccd6e3;border-radius:8px;padding:0 8px;background:#fff;color:#172033;font:inherit;font-weight:800;text-align:center}.pager-jump input:disabled{opacity:.58}.pager-jump button{min-height:38px;border:1px solid #ccd6e3;border-radius:8px;padding:0 12px;background:#fff;color:#223047;font:inherit;font-weight:800;cursor:pointer}.pager-jump button:disabled{cursor:not-allowed;opacity:.45}.floating-layer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;pointer-events:none}.floating-dialog{position:fixed;pointer-events:auto;width:min(var(--floating-dialog-width),calc(100vw - 28px));max-height:min(760px,calc(100vh - 28px));overflow:auto;border:1px solid #d8e0ea;border-radius:8px;background:#fff;box-shadow:0 22px 70px #0f172a3d;animation:floating-dialog-enter .18s cubic-bezier(.2,.8,.2,1) both}@keyframes floating-dialog-enter{0%{opacity:0;transform:translateY(8px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}.floating-dialog-header{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid #e5ebf3;padding:18px 20px;cursor:move;touch-action:none;-webkit-user-select:none;user-select:none}.floating-dialog-header h2{margin:0;font-size:1.15rem}.icon-button{display:grid;width:36px;height:36px;place-items:center;border:1px solid #d8e0ea;border-radius:8px;background:#fff;color:#263347;cursor:pointer}.floating-dialog-header .icon-button{cursor:pointer}.dialog-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;padding:20px}.dialog-form label{display:grid;gap:7px;min-width:0}.dialog-form label>span{color:#53667d;font-size:.84rem;font-weight:800}.dialog-form input,.dialog-form select,.dialog-form textarea{width:100%;min-height:42px;border:1px solid #ccd6e3;border-radius:8px;padding:0 10px;background:#fff;color:#172033;font:inherit}.money-input{position:relative;display:grid}.money-input input{padding-right:38px}.money-input span{position:absolute;right:12px;top:50%;color:#53667d;font-weight:800;pointer-events:none;transform:translateY(-50%)}.full-row,.form-error,.dialog-actions{grid-column:1 / -1}.reconciliation-last-date{display:flex;align-items:center;justify-content:space-between;gap:16px;border:1px solid #d8e0ea;border-radius:8px;padding:12px 14px;background:#f7f9fc}.reconciliation-last-date span{color:#53667d;font-size:.84rem;font-weight:800}.reconciliation-last-date strong{color:#172033;font-weight:700}.money-input input:read-only{background:#f7f9fc;color:#40516a}.form-error{margin:0;border-left:4px solid #dc2626;padding:10px 12px;background:#fff1f2;color:#9f1239;font-weight:700}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;border-top:1px solid #e5ebf3;padding-top:16px}.primary-button,.secondary-button,.danger-button{min-height:40px;border-radius:8px;padding:0 14px;font-weight:800;cursor:pointer}.primary-button{border:0;background:#2563eb;color:#fff}.primary-button:disabled{cursor:not-allowed;opacity:.58}.secondary-button{border:1px solid #ccd6e3;background:#fff;color:#223047}.danger-button{border:1px solid #dc2626;background:#dc2626;color:#fff}.danger-button:disabled{cursor:not-allowed;opacity:.58}.dialog-delete-button{margin-right:auto}.confirm-dialog-body{display:grid;gap:18px;padding:20px}.confirm-dialog-body p{margin:0;color:#172033;font-weight:700}@media(prefers-reduced-motion:reduce){.floating-dialog{animation:none}}@media(max-width:820px){.app-shell{grid-template-columns:1fr}.sidebar{gap:18px;padding:18px}.nav-list{grid-template-columns:repeat(3,minmax(150px,1fr));overflow-x:auto}.nav-action{justify-content:center;white-space:nowrap}.main-content{padding:20px 14px}.movements-page{min-height:calc(100vh - 164px)}.table-toolbar,.paginator,.pager-controls{align-items:flex-start;flex-direction:column}.dialog-form{grid-template-columns:1fr}}.listing-format-field{gap:10px}.listing-format-options{display:flex;align-items:center;gap:18px;flex-wrap:wrap}.listing-format-options .settings-check{margin:0}.listing-format-label{color:#64748b;font-size:.8rem;font-weight:800;text-transform:uppercase}.table-filters{display:flex;align-items:center;justify-content:flex-end;gap:8px;position:relative;flex-wrap:wrap}.category-filter{position:relative}.date-filter-fields{display:flex;align-items:center;gap:8px}.date-filter-fields label{display:flex;align-items:center;gap:6px;min-height:38px;border:1px solid #ccd6e3;border-radius:8px;padding:0 8px;background:#fff;color:#53667d;font-size:.82rem;font-weight:800}.date-filter-fields input{width:132px;min-height:30px;border:0;background:transparent;color:#172033;font:inherit;font-size:.9rem;font-weight:700;outline:none}.amount-filter-fields{display:flex;align-items:center;gap:8px}.amount-filter-fields label{display:flex;align-items:center;gap:6px;min-height:38px;border:1px solid #ccd6e3;border-radius:8px;padding:0 8px;background:#fff;color:#53667d;font-size:.82rem;font-weight:800}.filter-money-input{position:relative;display:grid}.filter-money-input input{width:104px;min-height:30px;border:0;padding-right:18px;background:transparent;color:#172033;font:inherit;font-size:.9rem;font-weight:700;outline:none;text-align:right}.filter-money-input>span{position:absolute;right:0;top:50%;color:#53667d;transform:translateY(-50%);pointer-events:none}.filter-menu-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:38px;border:1px solid #ccd6e3;border-radius:8px;padding:0 12px;background:#fff;color:#223047;font:inherit;font-weight:800;cursor:pointer}.filter-menu-button:hover,.filter-menu-button:focus-visible{border-color:#9fb1c6;background:#f7f9fc;outline:none}.filter-menu-button.active{border-color:#2563eb;background:#eff6ff;color:#1d4ed8}.filter-icon-button{display:inline-grid;width:38px;height:38px;place-items:center;border:1px solid #ccd6e3;border-radius:8px;background:#fff;color:#223047;cursor:pointer}.filter-icon-button:hover,.filter-icon-button:focus-visible{border-color:#9fb1c6;background:#f7f9fc;outline:none}.filter-icon-button:disabled{cursor:not-allowed;opacity:.45}.apply-filter-button{border-color:#2563eb;background:#2563eb;color:#fff}.apply-filter-button:hover,.apply-filter-button:focus-visible{border-color:#1d4ed8;background:#1d4ed8}.clear-filter-button{color:#5f6f84}.more-filter-button.active{border-color:#2563eb;background:#eff6ff;color:#1d4ed8}.more-filters-dialog{display:grid;gap:16px;padding:20px}.more-filters-dialog label{display:grid;gap:7px}.more-filters-dialog label>span{color:#53667d;font-size:.84rem;font-weight:800}.more-filters-dialog input{width:100%;min-height:42px;border:1px solid #ccd6e3;border-radius:8px;padding:0 10px;background:#fff;color:#172033;font:inherit}.dialog-amount-filter-fields{align-items:stretch}.more-filters-dialog .dialog-amount-filter-fields label{display:grid;gap:7px;min-height:auto;border:0;padding:0;background:transparent}.more-filters-dialog .dialog-amount-filter-fields .filter-money-input input{min-height:42px;border:1px solid #ccd6e3;padding:0 28px 0 10px}.more-filters-dialog .dialog-amount-filter-fields .filter-money-input>span{right:10px}.secondary-button:disabled{cursor:not-allowed;opacity:.58}.category-filter-menu{position:absolute;top:calc(100% + 8px);right:0;z-index:70;width:360px;max-height:min(520px,calc(100vh - 160px));overflow:auto;border:1px solid #d8e0ea;border-radius:8px;padding:10px;background:#fff;box-shadow:0 18px 44px #0f172a2e}.category-filter-group{display:grid;gap:4px;margin-top:8px}.category-filter-group-title{display:flex;align-items:center;min-height:28px;border-radius:6px;padding:0 10px;background:#edf2f7;color:#172033;font-weight:800}.category-filter-option{display:flex;align-items:center;gap:8px;min-height:32px;border-radius:6px;padding:0 8px;color:#172033;font-weight:500}.category-filter-option:hover{background:#f7f9fc}.category-filter-option input{width:16px;height:16px;margin:0;accent-color:#2563eb}.uncategorized-option{font-weight:800}.filter-error{margin:8px 0 0;color:#9f1239;font-size:.84rem;font-weight:800}@media(max-width:820px){.table-filters{width:100%}.date-filter-fields,.amount-filter-fields{flex-wrap:wrap;width:100%}.category-filter-menu{left:0;right:auto;width:min(360px,calc(100vw - 28px))}}.nav-action.router-link-exact-active{border-color:#39506f;background:#263347;color:#fff}.summary-page{display:grid;gap:16px;min-height:calc(100vh - 56px)}.summary-header{display:flex;align-items:center;justify-content:space-between;gap:16px}.summary-header h1{margin:0;color:#172033;font-size:1.6rem}.summary-header p{margin:4px 0 0;color:#64748b;font-weight:650}.summary-refresh-button{display:inline-flex;align-items:center;gap:8px}.summary-refresh-button svg{flex:0 0 auto}.summary-metrics{display:grid;grid-template-columns:repeat(4,minmax(160px,1fr));gap:12px}.summary-metric,.summary-panel{border:1px solid #d8e0ea;border-radius:8px;background:#fff}.summary-metric{display:grid;gap:8px;padding:16px}.summary-metric span{color:#64748b;font-size:.82rem;font-weight:800;text-transform:uppercase}.summary-metric strong{color:#172033;font-size:1.55rem;line-height:1.1}.summary-metric strong.positive{color:#0f8a52}.summary-metric strong.negative{color:#c2413f}.summary-metric.emphasized strong{font-style:italic}.income-metric strong{color:#0f8a52}.expense-metric strong{color:#c2413f}.summary-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(260px,.8fr);gap:16px}.summary-panel{padding:16px}.summary-panel>header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.summary-panel h2{margin:0;color:#172033;font-size:1rem}.summary-panel header span,.empty-summary{color:#64748b;font-size:.85rem;font-weight:750}.summary-definition-list{display:grid;gap:12px;margin:0}.summary-definition-list div{display:flex;align-items:baseline;justify-content:space-between;gap:16px;min-height:28px;border-bottom:1px solid #edf2f7}.summary-definition-list div:last-child{border-bottom:0}.summary-definition-list dt{color:#64748b;font-size:.82rem;font-weight:800}.summary-definition-list dd{margin:0;color:#172033;font-weight:850;text-align:right}.historic-totals-table{display:grid;gap:10px}.historic-totals-header,.historic-totals-row{display:grid;grid-template-columns:minmax(90px,.8fr) repeat(2,minmax(120px,1fr));align-items:center;gap:12px}.historic-totals-header{color:#64748b;font-size:.78rem;font-weight:850;text-transform:uppercase}.historic-totals-row{min-height:34px;border-bottom:1px solid #edf2f7}.historic-totals-row:last-child{border-bottom:0}.historic-totals-row strong{color:#172033}.historic-totals-row span{color:#172033;font-weight:850;text-align:right}.historic-totals-row.expense-row span{color:#c2413f}.historic-totals-row.income-row span{color:#0f8a52}.category-summary-list,.recent-summary-list{display:grid;gap:10px}.category-summary-row{display:grid;grid-template-columns:minmax(190px,1fr) minmax(140px,1.2fr) 100px;align-items:center;gap:12px}.category-summary-label{display:flex;align-items:center;gap:8px;min-width:0}.category-summary-label strong{min-width:0;overflow:hidden;color:#243449;font-size:.92rem;text-overflow:ellipsis;white-space:nowrap}.category-summary-label small{color:#64748b;font-weight:800}.category-dot{width:12px;height:12px;border-radius:999px;box-shadow:inset 0 0 0 1px #00000014}.category-summary-bar{height:8px;overflow:hidden;border-radius:999px;background:#edf2f7}.category-summary-bar span{display:block;height:100%;min-width:4px;border-radius:inherit}.category-summary-amount{color:#172033;font-weight:850;text-align:right}.reconciliation-summary-panel dl{display:grid;gap:14px;margin:0}.reconciliation-summary-panel div{display:grid;gap:4px}.reconciliation-summary-panel dt{color:#64748b;font-size:.82rem;font-weight:800}.reconciliation-summary-panel dd{margin:0;color:#172033;font-size:1.05rem;font-weight:850}.recent-summary-row{display:grid;grid-template-columns:110px minmax(180px,1fr) minmax(160px,.9fr) 110px;align-items:center;gap:12px;min-height:38px;border-bottom:1px solid #edf2f7}.recent-summary-row:last-child{border-bottom:0}.recent-summary-row span,.recent-summary-row small{color:#64748b;font-weight:750}.recent-summary-row strong{min-width:0;overflow:hidden;color:#172033;text-overflow:ellipsis;white-space:nowrap}.recent-summary-row em{color:#0f8a52;font-style:normal;font-weight:850;text-align:right}.recent-summary-row em.negative{color:#c2413f}@media(max-width:980px){.summary-metrics,.summary-grid{grid-template-columns:1fr}.category-summary-row,.historic-totals-header,.historic-totals-row,.recent-summary-row{grid-template-columns:1fr;align-items:start}.category-summary-amount,.historic-totals-row span,.recent-summary-row em{text-align:left}}.settings-page{display:grid;grid-auto-rows:max-content;align-content:start;gap:16px;min-height:calc(100vh - 56px)}.settings-header{display:flex;align-items:center;justify-content:space-between;gap:16px}.settings-header h1{margin:0;color:#172033;font-size:1.6rem}.settings-panel{display:grid;align-self:start;gap:14px;align-content:start;max-width:760px;border:1px solid #d8e0ea;border-radius:8px;padding:16px;background:#fff}.settings-panel>header{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid #edf2f7;padding-bottom:12px}.settings-panel h2{margin:0;color:#172033;font-size:1rem}.settings-form{display:grid;gap:16px}.settings-row{display:flex;align-items:end;justify-content:space-between;gap:16px;min-height:72px;border:1px solid #e5ebf3;border-radius:8px;padding:14px;background:#fbfdff}.settings-check{display:flex;align-items:center;gap:10px;color:#172033;font-weight:850}.settings-check input{width:18px;height:18px;margin:0;accent-color:#2563eb}.settings-spinbox{display:grid;gap:6px;width:132px}.settings-spinbox span{color:#64748b;font-size:.8rem;font-weight:800;text-transform:uppercase}.settings-spinbox input{width:100%;min-height:40px;border:1px solid #ccd6e3;border-radius:8px;padding:0 8px;background:#fff;color:#172033;font:inherit;font-weight:800;text-align:center}.settings-spinbox.disabled span,.settings-spinbox input:disabled{opacity:.55}.settings-actions{display:flex;justify-content:flex-end;gap:10px;border-top:1px solid #edf2f7;padding-top:16px}.settings-actions button{display:inline-flex;align-items:center;gap:8px}.password-settings-form label{display:grid;gap:7px}.password-settings-form label>span{color:#64748b;font-size:.8rem;font-weight:800;text-transform:uppercase}.password-settings-form input{min-height:40px}.settings-success{margin:0;border-left:4px solid #16a34a;padding:10px 12px;background:#f0fdf4;color:#166534;font-weight:800}@media(max-width:680px){.settings-row{align-items:stretch;flex-direction:column}.settings-spinbox{width:100%}.settings-actions{flex-direction:column-reverse}.settings-actions button{justify-content:center;width:100%}}.settings-wide-panel{max-width:none}.catalog-create-row{display:grid;align-items:center;gap:10px;border:1px solid #e5ebf3;border-radius:8px;padding:12px;background:#fbfdff}.group-create-row{grid-template-columns:130px minmax(160px,1fr) minmax(180px,1.4fr) 140px auto}.category-create-row{grid-template-columns:minmax(220px,1.1fr) minmax(170px,1fr) minmax(180px,1.2fr) auto}.catalog-create-row input,.catalog-create-row select,.settings-table input,.settings-table select{width:100%;min-height:38px;border:1px solid #ccd6e3;border-radius:8px;padding:0 9px;background:#fff;color:#172033;font:inherit}.color-input{display:flex;align-items:center;gap:8px;min-height:38px;border:1px solid #ccd6e3;border-radius:8px;padding:0 8px;background:#fff;color:#40516a;font-size:.82rem;font-weight:800}.color-input input{width:28px;min-height:28px;border:0;padding:0;background:transparent;cursor:pointer}.compact-color-input{width:142px}.settings-table-frame{overflow:auto;border:1px solid #d8e0ea;border-radius:8px;background:#fff}.settings-table{width:100%;border-collapse:collapse}.category-groups-table{min-width:920px}.categories-config-table{min-width:820px}.settings-table th,.settings-table td{min-height:46px;border-bottom:1px solid #edf2f7;padding:10px 12px;text-align:left;vertical-align:middle}.settings-table th{background:#edf2f7;color:#40516a;font-size:.78rem;font-weight:850;text-transform:uppercase}.settings-table tbody tr:nth-child(2n){background:#fbfdff}.settings-table tbody tr:last-child td{border-bottom:0}.settings-table td strong{color:#172033}.catalog-color-chip,.category-group-pill{display:inline-flex;align-items:center;min-height:28px;border-radius:8px;padding:0 10px;color:#172033;font-weight:750;box-shadow:inset 0 0 0 1px #00000014}.catalog-color-chip{min-width:92px;justify-content:center;font-size:.82rem}.settings-row-actions{width:210px;text-align:right;white-space:nowrap}.settings-row-actions button{margin-left:8px}.icon-text-button{display:inline-flex;align-items:center;justify-content:center;gap:8px}.row-error{display:block;margin-top:6px;color:#9f1239;font-weight:800}@media(max-width:1100px){.group-create-row,.category-create-row{grid-template-columns:1fr 1fr}}@media(max-width:680px){.group-create-row,.category-create-row{grid-template-columns:1fr}.catalog-create-row .primary-button{width:100%}}.settings-tabs{display:inline-flex;align-items:center;width:fit-content;overflow:hidden;border:1px solid #ccd6e3;border-radius:8px;background:#fff}.settings-tabs button{min-height:40px;border:0;border-right:1px solid #e5ebf3;padding:0 16px;background:transparent;color:#40516a;font:inherit;font-weight:850;cursor:pointer}.settings-tabs button:last-child{border-right:0}.settings-tabs button:hover,.settings-tabs button:focus-visible{background:#f7f9fc;outline:none}.settings-tabs button.active{background:#2563eb;color:#fff}.settings-tabs button:disabled:hover,.settings-tabs button:disabled:focus-visible{background:transparent}.cpi-settings-panel{max-width:520px}.cpi-table-frame{max-height:calc(100vh - 260px)}.cpi-table{min-width:320px}.cpi-table th,.cpi-table td{text-align:center}.cpi-table td:last-child{font-weight:850}@media(max-width:680px){.settings-tabs{display:grid;width:100%}.settings-tabs button{border-right:0;border-bottom:1px solid #e5ebf3}.settings-tabs button:last-child{border-bottom:0}}.catalog-dialog-form{grid-template-columns:repeat(2,minmax(0,1fr))}.dialog-color-input{display:flex;align-items:center;gap:10px;min-height:42px;border:1px solid #ccd6e3;border-radius:8px;padding:0 10px;background:#fff}.dialog-color-input input{width:32px;min-height:32px;border:0;padding:0;background:transparent}.dialog-color-input strong{color:#40516a;font-size:.9rem}.table-icon-button{width:34px;height:34px;margin-left:0}.settings-table .settings-row-actions{width:56px;text-align:center}.settings-table .settings-row-actions button{margin-left:0}.settings-panel>header .primary-button{flex:0 0 auto}.cpi-dialog-form{grid-template-columns:repeat(2,minmax(0,1fr))}.cpi-dialog-form input:read-only{background:#f7f9fc;color:#40516a;font-weight:850}.user-active-field input[type=checkbox]{width:18px;min-height:18px;accent-color:#66703B}.charts-action svg{color:#fbbf24}.charts-page{position:relative;display:grid;gap:16px;min-height:calc(100vh - 56px)}.charts-header{display:flex;align-items:center;justify-content:space-between;gap:16px}.charts-header h1{margin:0;color:#172033;font-size:1.6rem}.charts-header p{margin:4px 0 0;color:#64748b;font-weight:650}.charts-grid{display:grid;gap:16px}.chart-panel{display:grid;gap:14px;min-width:0;border:1px solid #d8e0ea;border-radius:8px;padding:16px;background:#fff}.chart-panel>header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.chart-panel h2{margin:0;color:#172033;font-size:1rem}.chart-panel header span{color:#64748b;font-size:.85rem;font-weight:750}.chart-legend{display:flex;align-items:center;gap:14px;flex-wrap:wrap;justify-content:flex-end}.chart-legend span{display:inline-flex;align-items:center;gap:7px;color:#40516a;font-weight:800}.chart-legend i{width:22px;height:3px;border-radius:999px}.chart-canvas{min-width:0;overflow:hidden;border:1px solid #edf2f7;border-radius:8px;background:#fbfdff}.chart-canvas svg{display:block;width:100%;min-height:260px}.chart-grid line{stroke:#e5ebf3;stroke-width:1}.chart-grid text,.chart-x-labels text{fill:#64748b;font-size:12px;font-weight:750}.chart-axis{stroke:#cbd5e1;stroke-width:1.2}.chart-line{fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:3.2}.chart-line-current{opacity:.92}.chart-line-nominal{opacity:.95}.chart-points circle{stroke:#fff;stroke-width:1.5}@media(max-width:780px){.charts-header,.chart-panel>header{align-items:stretch;flex-direction:column}.chart-legend{justify-content:flex-start}}.chartjs-canvas{position:relative;height:340px;padding:12px}.chartjs-canvas canvas{max-width:100%}.chart-reset-button{flex:0 0 auto;min-height:34px;padding:0 10px;font-size:.84rem}.chart-panel-actions{display:flex;align-items:center;gap:8px;flex:0 0 auto}.chart-help-dialog{padding:18px 20px 20px}.chart-help-dialog dl{display:grid;gap:12px;margin:0}.chart-help-dialog div{display:grid;grid-template-columns:130px minmax(0,1fr);gap:14px;align-items:start;border-bottom:1px solid #edf2f7;padding-bottom:12px}.chart-help-dialog div:last-child{border-bottom:0;padding-bottom:0}.chart-help-dialog dt{color:#40516a;font-weight:850}.chart-help-dialog dd{margin:0;color:#172033;font-weight:400}.login-page{--login-bg: #FBF8F2;--login-panel: #F5F1E5;--login-text: #2B3323;--login-title: #465330;--login-primary: #66703B;--login-primary-hover: #465330;--login-secondary: #A7B16B;--login-link: #8A9253;--login-border: #DDD7C8;--login-success: #66703B;--login-warning: #C7B37A;display:grid;min-height:100vh;align-items:center;justify-items:start;padding:28px clamp(24px,7vw,96px);background:linear-gradient(135deg,#2b33236b,#46533057),url(/assets/login-background.jpg) center / cover no-repeat,var(--login-bg)}.login-panel{display:grid;gap:22px;width:min(460px,100%);border:1px solid rgb(221 215 200 / .52);border-radius:8px;padding:26px 28px 28px;background:#f5f1e58a;color:var(--login-text);box-shadow:0 24px 72px #2b332338;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);animation:login-panel-enter .22s ease-out both}.login-header{display:grid;justify-items:center;border-bottom:1px solid rgb(221 215 200 / .68);padding-bottom:20px}.login-brand-logo{display:block;width:min(100%,340px);max-height:120px;object-fit:contain}.login-header strong,.login-header small{display:block}.login-header strong{color:var(--login-title);font-size:1.1rem}.login-header small{margin-top:2px;color:var(--login-link);font-weight:700}.login-title-block{display:flex;align-items:flex-start;gap:12px;border-top:1px solid var(--login-border);padding-top:22px}.login-title-block>svg{flex:0 0 auto;margin-top:2px;color:var(--login-primary)}.login-title-block h1{margin:0;color:var(--login-title);font-size:1.55rem}.login-title-block p{margin:5px 0 0;color:var(--login-text);font-weight:650;opacity:.82}.login-form{display:grid;gap:16px}.login-form label{display:grid;gap:7px}.login-form label>span{color:var(--login-title);font-size:.84rem;font-weight:800}.login-field{display:flex;align-items:center;gap:10px;min-height:44px;border:1px solid var(--login-border);border-radius:8px;padding:0 10px;background:var(--login-bg);color:var(--login-link)}.login-field:focus-within{border-color:var(--login-primary);box-shadow:0 0 0 3px #66703b29}.login-field input{min-width:0;flex:1 1 auto;border:0;padding:0;background:transparent;color:var(--login-text);font:inherit;font-weight:700;outline:none}.login-password-toggle{display:grid;width:32px;height:32px;flex:0 0 auto;place-items:center;border:0;border-radius:8px;background:transparent;color:var(--login-link);cursor:pointer}.login-password-toggle:hover,.login-password-toggle:focus-visible{background:#a7b16b2e;color:var(--login-primary-hover);outline:none}.login-submit-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;border:0;border-radius:8px;background:var(--login-primary);color:#fff;font:inherit;font-weight:850;cursor:pointer}.login-submit-button:hover,.login-submit-button:focus-visible{background:var(--login-primary-hover);outline:none}@keyframes login-panel-enter{0%{opacity:0;transform:translateY(8px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}@media(max-width:720px){.login-page{align-items:stretch;justify-items:center;padding:14px}.login-panel{align-self:center;padding:22px}.login-brand-logo{max-height:96px}}.login-brand-title{display:block;color:var(--login-title);font-size:1.42rem;font-weight:900;line-height:1}@media(prefers-reduced-motion:reduce){.login-panel{animation:none}}body{background:var(--app-bg);color:var(--app-text)}.main-content{background:var(--app-bg)}.sidebar{background:var(--app-title);color:var(--app-bg);box-shadow:inset -1px 0 #ddd7c847}.brand strong{color:var(--app-bg)}.brand small{color:#ddd7c8}.nav-action{color:#f5f1e5}.nav-action:hover,.nav-action:focus-visible{background:#f5f1e51f;border-color:#ddd7c847;outline:none}.nav-action.router-link-exact-active{border-color:var(--app-secondary);background:#f5f1e52e;color:#fff}h1,.summary-header h1,.settings-header h1,.charts-header h1,.summary-panel h2,.settings-panel h2,.chart-panel h2,.floating-dialog-header h2{color:var(--app-title)}.table-frame,.floating-dialog,.summary-metric,.summary-panel,.settings-panel,.settings-table-frame,.chart-panel,.chart-section-toolbar,.category-filter-menu,.transaction-context-menu{border-color:var(--app-border);background:var(--app-white)}.floating-dialog-header,.settings-panel>header,.dialog-actions,.summary-definition-list div,.recent-summary-row,.historic-totals-row,.chart-help-dialog div{border-color:var(--app-border)}.movements-table th,.settings-table th{background:var(--app-panel-strong);color:var(--app-title);box-shadow:inset 0 -1px 0 var(--app-border)}.movements-table th,.movements-table td,.settings-table th,.settings-table td{border-bottom-color:var(--app-border)}.movement-row:nth-child(odd),.settings-table tbody tr:nth-child(odd){background:var(--app-white)}.movement-row:nth-child(2n),.settings-table tbody tr:nth-child(2n){background:var(--app-bg)}.movements-table tbody .movement-row:hover,.transaction-context-menu button:hover,.transaction-context-menu button:focus-visible{background:var(--app-panel)}.primary-button,.apply-filter-button,.login-submit-button,.settings-tabs button.active,.charts-tabs button.active,.chart-value-toggle button.active{background:var(--app-primary);color:#fff}.primary-button:hover,.primary-button:focus-visible,.apply-filter-button:hover,.apply-filter-button:focus-visible,.login-submit-button:hover,.login-submit-button:focus-visible{background:var(--app-primary-hover)}.secondary-button,.filter-menu-button,.filter-icon-button,.pager-buttons button,.pager-jump button,.icon-button,.settings-tabs,.charts-tabs,.chart-value-toggle,.chart-kind-toggle{border-color:var(--app-border);background:var(--app-white);color:var(--app-title)}.secondary-button:hover,.secondary-button:focus-visible,.filter-menu-button:hover,.filter-menu-button:focus-visible,.filter-icon-button:hover,.filter-icon-button:focus-visible,.pager-buttons button:hover,.pager-buttons button:focus-visible,.pager-jump button:hover,.pager-jump button:focus-visible,.icon-button:hover,.icon-button:focus-visible,.settings-tabs button:hover,.settings-tabs button:focus-visible,.charts-tabs button:hover,.charts-tabs button:focus-visible,.chart-value-toggle button:hover,.chart-value-toggle button:focus-visible,.chart-kind-toggle button:hover,.chart-kind-toggle button:focus-visible{background:var(--app-panel);outline:none}.filter-menu-button.active,.more-filter-button.active{border-color:var(--app-primary);background:#a7b16b38;color:var(--app-primary-hover)}.dialog-form input,.dialog-form select,.dialog-form textarea,.more-filters-dialog input,.more-filters-dialog .dialog-amount-filter-fields .filter-money-input input,.settings-spinbox input,.catalog-create-row input,.catalog-create-row select,.settings-table input,.settings-table select,.pager-jump input,.date-filter-fields label,.amount-filter-fields label,.chart-date-fields label,.color-input,.dialog-color-input,.login-field{border-color:var(--app-border);background:var(--app-white);color:var(--app-text)}.dialog-form label>span,.more-filters-dialog label>span,.settings-spinbox span,.summary-panel header span,.empty-summary,.reconciliation-summary-panel dt,.chart-panel header span,.chart-help-dialog dt,.pager-jump,.paginator,.table-message{color:var(--app-link)}.settings-row,.catalog-create-row,.reconciliation-last-date,.chart-canvas,.more-filters-dialog,.category-filter-group-title{border-color:var(--app-border);background:var(--app-panel)}.settings-success{border-left-color:var(--app-success);background:#66703b1f;color:var(--app-primary-hover)}.notice{border-left-color:var(--app-warning);background:#c7b37a2e;color:var(--app-title)}.summary-metric span,.summary-definition-list dt,.historic-totals-header,.category-summary-label small,.recent-summary-row span,.recent-summary-row small,.charts-header p,.summary-header p{color:var(--app-link)}.summary-metric strong,.summary-definition-list dd,.historic-totals-row strong,.recent-summary-row strong,.reconciliation-summary-panel dd,.settings-table td strong,.category-summary-label strong,.chart-help-dialog dd{color:var(--app-text)}.category-summary-bar{background:var(--app-border)}.nav-action svg{color:currentColor}.nav-action:disabled,.nav-action.disabled{cursor:not-allowed;opacity:.48}.nav-action:disabled:hover,.nav-action:disabled:focus-visible,.nav-action.disabled:hover,.nav-action.disabled:focus-visible{background:transparent;border-color:transparent;outline:none}.settings-tabs button:disabled{cursor:not-allowed;opacity:.48}.settings-tabs button:disabled:hover,.settings-tabs button:disabled:focus-visible{background:transparent;outline:none}.charts-page.loading .charts-grid,.charts-page.loading .distribution-grid{opacity:.38;pointer-events:none}.charts-loading-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1100;display:grid;place-items:center;padding:24px;background:#fbf8f27a;-webkit-backdrop-filter:blur(1.5px);backdrop-filter:blur(1.5px)}.charts-loading-panel{min-width:min(320px,100%);display:grid;justify-items:center;gap:10px;padding:22px 24px;border:1px solid var(--app-border);border-radius:8px;background:#f5f1e5f5;color:var(--app-text);box-shadow:0 18px 56px #2b33232e}.charts-loading-panel strong{color:var(--app-title);font-size:1rem}.charts-loading-panel p{margin:0;color:var(--app-link);font-size:.9rem}.charts-loading-spinner{width:34px;height:34px;border:3px solid rgb(102 112 59 / .24);border-top-color:var(--app-primary);border-radius:50%;animation:charts-loading-spin .78s linear infinite}@keyframes charts-loading-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.charts-loading-spinner{animation:none}}.chart-detail-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px}.chart-series-button{min-height:34px;padding:0 10px;gap:6px;font-size:.84rem}.chart-series-dialog{display:grid;gap:14px;padding:16px 18px 18px}.chart-series-search{display:flex;align-items:center;gap:8px;min-height:42px;padding:0 12px;border:1px solid var(--app-border);border-radius:8px;background:#fffdf8;color:var(--app-link)}.chart-series-search input{width:100%;min-width:0;border:0;outline:0;background:transparent;color:var(--app-text);font:inherit}.chart-series-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.chart-series-actions .secondary-button{min-height:32px;padding:0 10px;font-size:.82rem}.chart-series-actions span{margin-left:auto;color:var(--app-link);font-size:.84rem;font-weight:800}.chart-series-list{display:grid;gap:4px;max-height:min(420px,52vh);overflow:auto;padding:2px 4px 2px 0}.chart-series-row{display:grid;grid-template-columns:auto auto minmax(0,1fr);align-items:center;gap:9px;min-height:34px;padding:6px 8px;border-radius:7px;color:var(--app-text);font-size:.9rem}.chart-series-row:hover{background:#ddd7c857}.chart-series-row input{margin:0}.chart-series-row>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chart-series-swatch{width:12px;height:12px;border-radius:999px;box-shadow:inset 0 0 0 1px #2b332324}@media(max-width:780px){.chart-detail-actions{justify-content:stretch}.chart-detail-actions>*,.chart-series-button{width:100%}.chart-series-actions span{width:100%;margin-left:0}}.charts-header-actions{display:flex;align-items:center;gap:8px;flex:0 0 auto}.charts-topbar{display:flex;align-items:center;justify-content:space-between;gap:16px}.charts-controls{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}.charts-tabs{display:inline-flex;align-items:center;width:fit-content;overflow:hidden;border:1px solid var(--app-border);border-radius:8px;background:var(--app-white)}.charts-tabs button{min-height:40px;border:0;border-right:1px solid var(--app-border);padding:0 16px;background:transparent;color:var(--app-title);font:inherit;font-weight:850;cursor:pointer}.charts-tabs button:last-child{border-right:0}.charts-tabs button.active{background:var(--app-primary);color:#fff}.chart-value-toggle{display:inline-flex;align-items:center;width:fit-content;overflow:hidden;border:1px solid var(--app-border);border-radius:8px;background:var(--app-white)}.chart-value-toggle button{min-height:38px;border:0;border-right:1px solid var(--app-border);padding:0 13px;background:transparent;color:var(--app-title);cursor:pointer;font:inherit;font-size:.88rem;font-weight:800}.chart-value-toggle button:last-child{border-right:0}.chart-value-toggle button.active{background:var(--app-primary);color:#fff}.chart-date-fields{display:flex;align-items:center;gap:8px}.chart-date-fields label{display:flex;align-items:center;gap:6px;min-height:38px;border:1px solid var(--app-border);border-radius:8px;padding:0 8px;background:var(--app-white);color:var(--app-link);font-size:.84rem;font-weight:800}.chart-date-fields input{width:132px;min-height:30px;border:0;background:transparent;color:var(--app-text);font:inherit;font-size:.88rem;font-weight:750;outline:none}.chart-section-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;border:1px solid var(--app-border);border-radius:8px;padding:14px 16px;background:var(--app-white)}.chart-section-toolbar h2{margin:0;color:var(--app-title);font-size:1rem}.chart-section-toolbar span{display:block;margin-top:3px;color:var(--app-link);font-size:.85rem;font-weight:650}.chart-kind-toggle{display:inline-flex;overflow:hidden;border:1px solid var(--app-border);border-radius:8px;background:var(--app-white)}.chart-kind-toggle button{min-height:36px;border:0;border-right:1px solid var(--app-border);padding:0 14px;background:transparent;color:var(--app-title);font:inherit;font-weight:800;cursor:pointer}.chart-kind-toggle button:last-child{border-right:0}.chart-kind-toggle button.active{background:var(--app-title);color:#fff}.distribution-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.distribution-wide-chart{grid-column:1 / -1}.doughnut-canvas{min-height:330px;padding:16px 18px 18px}.doughnut-panel-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px}.doughnut-panel-actions .chart-series-button{min-height:32px}@media(max-width:780px){.doughnut-panel-actions{justify-content:flex-start}}.doughnut-total{color:var(--app-text);font-size:1rem;font-weight:850;white-space:nowrap}.doughnut-panel{animation:doughnutPanelIn .42s ease-out both}.distribution-grid .doughnut-panel:nth-child(2){animation-delay:60ms}.distribution-grid .doughnut-panel:nth-child(3){animation-delay:.12s}.distribution-grid .doughnut-panel:nth-child(4){animation-delay:.18s}.distribution-grid .doughnut-panel:nth-child(5){animation-delay:.24s}.distribution-grid .doughnut-panel:nth-child(6){animation-delay:.3s}@keyframes doughnutPanelIn{0%{opacity:0;transform:translateY(8px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}@media(max-width:1080px){.charts-topbar{align-items:stretch;flex-direction:column}.charts-controls{justify-content:flex-start}}@media(max-width:980px){.distribution-grid{grid-template-columns:1fr}.distribution-wide-chart{grid-column:auto}}@media(max-width:780px){.charts-header-actions{align-items:stretch}}@media(max-width:680px){.chart-section-toolbar{align-items:stretch;flex-direction:column}.chart-kind-toggle,.chart-value-toggle,.chart-date-fields label,.chart-date-fields input{width:100%}.chart-kind-toggle button,.chart-value-toggle button{flex:1 1 0}.chart-date-fields{align-items:stretch;flex-direction:column;width:100%}}@media(prefers-reduced-motion:reduce){.doughnut-panel{animation:none}}.startup-warnings-body{display:grid;gap:18px;padding:20px}.startup-warnings-body ul{display:grid;gap:10px;margin:0;padding:0;list-style:none}.startup-warnings-body li{display:flex;align-items:flex-start;gap:10px;border:1px solid var(--app-border);border-left:4px solid var(--app-warning);border-radius:8px;padding:12px;background:#c7b37a24;color:var(--app-text);font-weight:750}.startup-warnings-body li svg{flex:0 0 auto;color:var(--app-warning);margin-top:1px}.summary-warnings-panel{display:grid;gap:12px}.summary-warnings-list{display:grid;gap:10px}.summary-warning-row,.summary-no-warnings{display:flex;align-items:flex-start;gap:10px;min-height:42px;margin:0;border:1px solid var(--app-border);border-radius:8px;padding:11px 12px;color:var(--app-text);font-weight:750}.summary-warning-row{border-left:4px solid var(--app-warning);background:#c7b37a24}.summary-warning-row svg{flex:0 0 auto;color:var(--app-warning);margin-top:1px}.summary-no-warnings{border-left:4px solid var(--app-success);background:#66703b1a}.summary-no-warnings svg{flex:0 0 auto;color:var(--app-success);margin-top:1px}.connection-lost-layer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;display:grid;place-items:center;padding:24px;background:#2b33236b;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);pointer-events:auto}.connection-lost-panel{width:min(520px,100%);display:grid;grid-template-columns:auto minmax(0,1fr);gap:16px;align-items:start;padding:22px;border:1px solid var(--app-border);border-radius:8px;background:#f5f1e5f5;color:var(--app-text);box-shadow:0 22px 70px #2b332347}.connection-lost-panel svg{color:#9f2f2f}.connection-lost-panel h2{margin:0 0 8px;color:var(--app-title);font-size:1.18rem}.connection-lost-panel p{margin:0 0 14px;color:var(--app-text);line-height:1.45}.connection-lost-error{color:#9f2f2f;font-weight:700}@media(max-width:560px){.connection-lost-panel{grid-template-columns:1fr}}.connection-lost-panel>div{display:grid}.connection-lost-panel .primary-button{justify-self:end}
