@import"https://fonts.googleapis.com/css2?family=Heebo:wght@300;400;500;600;700&family=DM+Mono:wght@400;500&display=swap";:root{--bg: #f5f0e8;--surface: #ffffff;--surface-alt: #faf7f2;--surface-dark: #1c1713;--border: #e0d8cc;--border-strong: #c8bfb1;--text: #1c1713;--text-secondary:#7a6e63;--text-muted: #b0a496;--text-inverse: #f5f0e8;--ok: #166534;--ok-bg: #f0fdf4;--ok-border: #86efac;--over: #dc2626;--over-bg: #fef2f2;--over-border: #fca5a5;--empty: #78350f;--empty-bg: #fffbeb;--empty-border: #fcd34d;--income: #1e3a5f;--income-bg: #eff6ff;--income-border: #bfdbfe;--pending: #581c87;--pending-bg: #faf5ff;--shadow-sm: 0 1px 3px 0 rgba(28,23,19,.08), 0 1px 2px -1px rgba(28,23,19,.06);--shadow: 0 4px 6px -1px rgba(28,23,19,.08), 0 2px 4px -2px rgba(28,23,19,.06);--shadow-lg: 0 10px 15px -3px rgba(28,23,19,.1), 0 4px 6px -4px rgba(28,23,19,.06);--radius-sm: 3px;--radius: 6px;--radius-lg: 10px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--space-16: 64px;--font-hebrew: "Heebo", "Arial Hebrew", system-ui, sans-serif;--font-mono: "DM Mono", "Courier New", monospace;--z-raised: 10;--z-overlay: 100;--z-modal: 200;--z-toast: 300}*,*:before,*:after{box-sizing:border-box}html{font-family:var(--font-hebrew);font-size:16px;line-height:1.75;color:var(--text);background:var(--bg);direction:rtl}body{margin:0;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit;color:inherit}button{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:var(--radius);padding:var(--space-2) var(--space-4);cursor:pointer;display:inline-flex;align-items:center;gap:var(--space-2);justify-content:center;transition:all .15s ease}button:hover{border-color:var(--border-strong);background:var(--surface-alt)}input,select,textarea{border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-2) var(--space-3);background:var(--surface);color:var(--text);width:100%;transition:border-color .15s ease,box-shadow .15s ease}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--text-secondary);box-shadow:0 0 0 3px #1c17130f}.auth-shell{min-height:100vh;display:grid;place-items:center;padding:var(--space-6);background:var(--bg)}.auth-card{width:min(440px,100%);padding:var(--space-8);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg)}.auth-card h1{margin-top:0}.auth-form{display:grid;gap:var(--space-4)}.auth-form label{display:grid;gap:var(--space-1)}.auth-error{color:var(--over)}.link-button{border:0;background:transparent}.mfa-qr{width:220px;max-width:100%;margin:auto}.mfa-secret,.secret-once code{direction:ltr;display:block;overflow-wrap:anywhere;padding:var(--space-3);background:var(--surface-alt);border:1px solid var(--border)}.inline-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--space-3);align-items:end}.secret-once{margin-block:var(--space-4);padding:var(--space-4);border:1px solid var(--empty-border);background:var(--empty-bg)}textarea{min-height:80px;resize:vertical}.searchable-select{position:relative;width:100%;min-width:0}.searchable-select-input{min-height:38px}.field-input-like .searchable-select-input{padding:var(--space-3) var(--space-4);font-family:var(--font-hebrew);font-size:.9rem}.searchable-select-menu{position:absolute;z-index:var(--z-modal);top:calc(100% + 4px);right:0;left:0;max-height:230px;overflow:auto;padding:var(--space-1);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:var(--shadow-lg)}.searchable-select-option{width:100%;justify-content:flex-start;border:0;background:transparent;border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);text-align:start}.searchable-select-option:hover,.searchable-select-option.selected{background:var(--surface-alt)}.searchable-select-empty{padding:var(--space-3);color:var(--text-muted);font-size:.85rem}table{width:100%;border-collapse:collapse}th{color:var(--text-muted);font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;padding:var(--space-2) var(--space-4);border-bottom:2px solid var(--border-strong);text-align:start}td{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border);text-align:start;vertical-align:middle}.amount{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.topbar{position:sticky;top:0;z-index:var(--z-raised);background:var(--surface-dark);height:52px;display:flex;align-items:center;justify-content:space-between;padding:0 var(--space-6);border-bottom:1px solid rgba(245,240,232,.08)}.topbar-logo{font-family:var(--font-mono);font-size:.875rem;color:var(--text-inverse);opacity:.6;letter-spacing:.08em;text-transform:uppercase;background:transparent;border:none;cursor:pointer;padding:0;transition:opacity .15s ease}.topbar-logo:hover{opacity:1;background:transparent;border:none}.topbar-nav{display:flex;align-items:center;gap:var(--space-6);list-style:none;margin:0;padding:0}.topbar-nav button{font-size:.875rem;color:#f5f0e899;background:transparent;border:none;padding:var(--space-1) 0;cursor:pointer;display:flex;align-items:center;gap:var(--space-2);transition:color .15s ease}.topbar-nav button:hover{color:var(--text-inverse);background:transparent;border:none}.topbar-nav button.active{color:var(--text-inverse)}.mobile-nav{display:none;position:fixed;inset-inline:0;bottom:0;z-index:var(--z-raised);background:var(--surface);border-top:1px solid var(--border);padding:var(--space-2);grid-template-columns:repeat(10,minmax(64px,1fr));overflow-x:auto;box-shadow:0 -4px 12px #1c171314}.mobile-nav button{flex-direction:column;gap:2px;font-size:.7rem;padding:var(--space-2) var(--space-1);color:var(--text-muted);background:transparent;border:none}.mobile-nav button.active{color:var(--text)}.mobile-nav button:hover{background:var(--surface-alt);color:var(--text)}.main-content{max-width:1280px;margin:0 auto;padding:0 var(--space-6) var(--space-16)}.cycle-controls{display:flex;align-items:center;gap:var(--space-2)}.cycle-selector{display:flex;flex-direction:column;align-items:center;gap:0;padding:var(--space-1) var(--space-3);border-radius:var(--radius);transition:background .15s ease;cursor:default}.cycle-name{font-family:var(--font-mono);font-size:1rem;font-weight:500;color:var(--text-inverse);line-height:1.2}.cycle-range{font-size:.7rem;color:#f5f0e873;letter-spacing:.04em;line-height:1}.cycle-nav-btn{width:32px;height:32px;padding:0;border-radius:var(--radius);background:transparent;border:1px solid rgba(245,240,232,.15);color:#f5f0e899;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .15s ease}.cycle-nav-btn:hover{background:#f5f0e814;color:var(--text-inverse);border-color:#f5f0e84d}.page{display:grid;gap:var(--space-4)}.page-header{padding:var(--space-8) 0 var(--space-4);display:flex;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;gap:var(--space-4)}.page-title{font-family:var(--font-mono);font-size:2rem;font-weight:500;color:var(--text);line-height:1;margin:0}.page-subtitle{font-size:.8rem;color:var(--text-muted);margin-top:var(--space-1);font-family:var(--font-mono)}.dashboard-header-side{display:flex;align-items:flex-end;gap:var(--space-6)}.dashboard-meetings{display:flex;align-items:center;gap:var(--space-3);font-size:.78rem;color:var(--text-secondary);text-align:right;white-space:nowrap}.dashboard-meeting-dates{display:grid;gap:3px}.dashboard-meetings strong{color:var(--text);font-weight:600}.dashboard-invite-btn{min-height:34px;padding:0 var(--space-3);font-size:.78rem;white-space:nowrap}.section-label{font-size:.7rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);margin:var(--space-6) 0 var(--space-3)}.section-label.annual-section-label{display:flex;align-items:center;gap:var(--space-2);color:var(--empty)}.page-actions{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap}.activity-list{display:grid;gap:var(--space-3)}.activity-row{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-4);display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--space-4);align-items:center;box-shadow:var(--shadow-sm)}.activity-main{min-width:0;display:grid;gap:var(--space-2)}.activity-tags{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.event-badge,.cycle-pill{display:inline-flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:.68rem;font-weight:700;line-height:1.2;padding:3px 7px;border-radius:var(--radius-sm);white-space:nowrap}.event-default{background:var(--surface-alt);color:var(--text-secondary)}.event-transaction{background:#eef2ff;color:#3730a3}.event-category{background:var(--ok-bg);color:var(--ok)}.event-budget{background:var(--income-bg);color:var(--income)}.event-annual{background:var(--empty-bg);color:var(--empty)}.event-paid{background:#ecfdf5;color:#047857}.event-import{background:#f0fdfa;color:#0d9488}.event-sms,.event-rule{background:var(--pending-bg);color:var(--pending)}.event-warning{background:var(--empty-bg);color:var(--empty);border:1px solid var(--empty-border)}.event-danger{background:var(--over-bg);color:var(--over)}.cycle-pill{background:var(--surface-alt);color:var(--text-muted);border:1px solid var(--border)}.activity-description{font-size:.95rem;line-height:1.45;color:var(--text);overflow-wrap:anywhere}.activity-meta{font-size:.75rem;color:var(--text-muted);font-family:var(--font-mono)}.activity-side{display:flex;align-items:center;gap:var(--space-3)}.activity-amount{color:var(--text-secondary);white-space:nowrap}.activity-link{min-width:72px;height:34px;padding:0 var(--space-3)}.segmented-control.compact{width:auto}.segmented-control.compact .segment-btn{min-width:92px}.summary-bar-wrap{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-6);box-shadow:var(--shadow-sm)}.account-status{background:var(--surface);border:1px solid var(--border);border-right:5px solid var(--ok);border-radius:var(--radius-lg);padding:var(--space-4) var(--space-6);display:flex;align-items:center;justify-content:space-between;gap:var(--space-6);box-shadow:var(--shadow-sm)}.account-status.over{border-right-color:var(--over)}.account-status.missing{border-right-color:var(--border-strong)}.account-status-label{display:block;font-size:.8rem;color:var(--text-muted);margin-bottom:2px}.account-status-value{display:block;font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:1.65rem;font-weight:600;line-height:1}.account-status.ok .account-status-value{color:var(--ok)}.account-status.over .account-status-value{color:var(--over)}.account-status.missing .account-status-value{color:var(--text-secondary)}.account-status-meta{display:flex;align-items:center;gap:var(--space-2);color:var(--text-secondary);font-size:.85rem;white-space:nowrap}.account-status-meta span:last-child{font-family:var(--font-mono);color:var(--text)}.summary-row{display:flex;align-items:center;gap:var(--space-4);margin-bottom:var(--space-3)}.summary-row:last-child{margin-bottom:0}.summary-label{font-size:.98rem;font-weight:600;color:var(--text-secondary);min-width:64px}.summary-track{flex:1;height:10px;background:var(--border);border-radius:99px;overflow:hidden}.summary-fill{height:100%;border-radius:99px;transform-origin:right center;transition:width .6s cubic-bezier(.16,1,.3,1);width:0}.summary-fill.income{background:var(--income)}.summary-fill.ok{background:var(--ok)}.summary-fill.over{background:var(--over)}.summary-amounts{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:1rem;font-weight:600;color:var(--text);min-width:190px;white-space:nowrap}.summary-gap{margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px dashed var(--border);color:var(--over);font-size:1.08rem;font-weight:700;display:flex;align-items:center;gap:var(--space-2)}.donut-grid-container{display:flex;flex-direction:column;gap:var(--space-2)}.donut-row-group{display:grid;gap:var(--space-2)}.donut-row{display:grid;grid-template-columns:repeat(var(--donut-cols, 3),minmax(0,1fr));gap:var(--space-4);padding-bottom:var(--space-2)}.donut-card-placeholder{visibility:hidden}.donut-card{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);width:100%;min-height:178px;padding:var(--space-4) var(--space-3) var(--space-3);border-radius:var(--radius-lg);border:2px solid transparent;background:var(--surface);cursor:pointer;transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease;box-shadow:var(--shadow-sm);position:relative;text-align:center}.donut-card:hover{box-shadow:var(--shadow);transform:translateY(-2px)}.donut-card.active{box-shadow:var(--shadow-lg)}.donut-card.ok.active{border-color:var(--ok)}.donut-card.income.active{border-color:var(--income)}.donut-card.over.active{border-color:var(--over)}.donut-card.empty.active,.donut-card.none.active{border-color:var(--border-strong)}.donut-card.annual-event{border-right:5px solid var(--empty-border);background:linear-gradient(to bottom,rgba(254,243,199,.45),var(--surface) 58%)}.donut-card.annual-event.active{border-color:var(--empty-border)}.donut-card.annual-event.over{border-right-color:var(--over-border);background:linear-gradient(to bottom,var(--over-bg),var(--surface) 62%)}.donut-card.annual-event.over.active{border-color:var(--over)}.donut-ring-wrap{position:relative;width:112px;height:112px;flex-shrink:0}.donut-ring-wrap svg{width:100%;height:100%}.donut-progress{transition:stroke-dasharray .7s cubic-bezier(.16,1,.3,1)}.donut-center{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;pointer-events:none}.donut-actual{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:var(--donut-actual-size, .95rem);font-weight:700;color:var(--text);line-height:1;max-width:94px;white-space:nowrap}.donut-diff{font-size:.54rem;font-weight:600;line-height:1;text-align:center;max-width:96px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.donut-diff.ok{color:var(--ok)}.donut-diff.income{color:var(--income)}.donut-diff.over{color:var(--over)}.donut-diff.empty,.donut-diff.none{color:var(--text-muted);font-style:italic}.donut-planned{font-family:var(--font-mono);font-size:.52rem;color:var(--text-muted);line-height:1;max-width:96px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.donut-label{display:flex;flex-direction:column;align-items:center;gap:2px;text-align:center;min-width:0}.donut-icon{line-height:1;display:inline-flex;align-items:center;justify-content:center;color:var(--text-secondary)}.donut-icon svg{width:17px;height:17px;stroke:currentColor}.donut-name{font-size:.82rem;font-weight:600;color:var(--text);line-height:1.3;text-align:center;max-width:96px;overflow-wrap:anywhere}.donut-pending{font-family:var(--font-mono);font-size:.7rem;color:var(--pending);line-height:1}.donut-active-dot{position:absolute;bottom:-14px;left:50%;transform:translate(-50%);width:0;height:0;border-left:8px solid transparent;border-right:8px solid transparent;border-top:8px solid var(--text);z-index:2}.donut-card.ok.active .donut-active-dot{border-top-color:var(--ok)}.donut-card.income.active .donut-active-dot{border-top-color:var(--income)}.donut-card.over.active .donut-active-dot{border-top-color:var(--over)}.donut-card.empty.active .donut-active-dot,.donut-card.none.active .donut-active-dot{border-top-color:var(--border-strong)}.donut-card.annual-event.empty.active .donut-active-dot,.donut-card.annual-event.ok.active .donut-active-dot{border-top-color:var(--empty)}.annual-event-badge{font-size:.6rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;background:var(--empty-bg);color:var(--empty);border:1px solid var(--empty-border);border-radius:99px;padding:1px 6px;line-height:1.25}.expansion-panel{width:100%;animation:expansion-in .28s cubic-bezier(.16,1,.3,1) forwards;position:relative;margin-top:calc(-1 * var(--space-2))}@keyframes expansion-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.expansion-arrow{width:14px;height:8px;background:var(--surface);clip-path:polygon(50% 0%,0% 100%,100% 100%);margin:0 auto;position:relative;z-index:2}.expansion-inner{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);overflow:hidden}.expansion-panel.annual .expansion-inner{border-top:3px solid var(--empty)}.expansion-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--border);background:var(--surface-alt)}.expansion-title{display:flex;align-items:center;gap:var(--space-2);font-weight:600;font-size:.95rem}.expansion-icon{font-size:1.1rem}.expansion-close{width:28px;height:28px;border-radius:var(--radius);border:1px solid var(--border);background:transparent;cursor:pointer;color:var(--text-muted);padding:0;display:flex;align-items:center;justify-content:center;transition:all .15s ease}.expansion-close:hover{background:var(--surface);color:var(--text)}.expansion-empty{padding:var(--space-8);text-align:center;color:var(--text-muted)}.expansion-footer{padding:var(--space-3) var(--space-5);border-top:1px solid var(--border);background:var(--surface)}.event-summary-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-bottom:1px solid var(--border);background:var(--surface)}.event-summary-item{display:flex;flex-direction:column;align-items:center;padding:var(--space-3) var(--space-4);border-left:1px solid var(--border);text-align:center}.event-summary-item:last-child{border-left:none}.event-summary-item .label{font-size:.65rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin-bottom:2px}.event-summary-item .value{font-family:var(--font-mono);font-size:1rem;font-weight:700}.event-summary-item.ok .value{color:var(--ok)}.event-summary-item.over .value{color:var(--over)}.annual-event-tx-list{max-height:420px;overflow:auto}.annual-event-tx-row{display:grid;grid-template-columns:3.5rem minmax(10rem,1fr) minmax(6rem,auto) 6rem 1.75rem;-moz-column-gap:var(--space-3);column-gap:var(--space-3);align-items:center;padding:var(--space-3) var(--space-5);border-bottom:1px solid var(--border)}.annual-event-tx-row:last-child{border-bottom:none}.annual-event-tx-row:hover{background:var(--surface-alt)}.tx-category-badge{font-size:.68rem;padding:2px 7px;border-radius:99px;background:var(--empty-bg);color:var(--empty);border:1px solid var(--empty-border);white-space:nowrap;justify-self:start}.tx-list{max-height:460px;overflow:auto}.tx-row{display:grid;grid-template-columns:3.5rem minmax(12rem,1fr) 5.5rem 4.5rem minmax(9rem,.85fr) 3.5rem 1.75rem;-moz-column-gap:var(--space-3);column-gap:var(--space-3);padding:var(--space-3) var(--space-5);border-bottom:1px solid var(--border);transition:background .1s ease;align-items:start}.tx-row:last-child{border-bottom:none}.tx-row:hover{background:var(--surface-alt)}.tx-row.has-note{padding-bottom:var(--space-2)}.tx-row.annual .tx-amount{color:var(--text-muted)}.tx-row.duplicate-review{grid-template-rows:auto auto;background:var(--empty-bg)}.tx-row.duplicate-review:hover{background:var(--empty-bg)}.tx-date{font-family:var(--font-mono);font-size:.78rem;color:var(--text-muted);padding-top:2px;white-space:nowrap}.tx-merchant-wrap{display:flex;flex-direction:column;gap:3px;min-width:0}.tx-merchant-name{font-size:.875rem;font-weight:500;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tx-annual-icon{margin-inline-start:4px;font-size:.7rem}.tx-inline-flag{margin-inline-start:var(--space-1);padding:1px 5px;border-radius:99px;background:var(--pending-bg);color:var(--pending);font-family:var(--font-mono);font-size:.65rem}.tx-note{font-size:.75rem;color:var(--text-secondary);font-style:italic;display:flex;align-items:center;gap:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tx-note-icon{font-size:.7rem;opacity:.6}.tx-amount{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:.9rem;font-weight:600;color:var(--text);text-align:start;white-space:nowrap;padding-top:1px}.tx-payment-cell{min-height:20px;display:flex;align-items:flex-start}.tx-user-note{font-size:.78rem;color:var(--text-secondary);line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-top:1px}.tx-user-note.empty{color:var(--text-muted)}.payment-badge{display:inline-flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:.68rem;font-weight:600;padding:2px 7px;border-radius:99px;white-space:nowrap}.payment-badge.installment{background:var(--empty-bg);color:var(--empty);border:1px solid var(--empty-border)}.payment-badge.cash{background:var(--surface-alt);color:var(--text-secondary);border:1px solid var(--border)}.source-badge{display:inline-flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:.62rem;font-weight:700;padding:2px 6px;border-radius:var(--radius-sm);white-space:nowrap;text-transform:uppercase;min-width:34px}.source-sms{background:var(--pending-bg);color:var(--pending)}.source-excel{background:#f0fdfa;color:#0d9488}.source-manual{background:var(--surface-alt);color:var(--text-muted);border:1px solid var(--border)}.source-auto{background:var(--surface-alt);color:var(--text-secondary);font-style:italic}.tx-edit{width:28px;height:28px;border-radius:var(--radius);border:1px solid var(--border);background:transparent;color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;opacity:0;transition:opacity .15s ease,background .15s ease}.tx-row:hover .tx-edit,.annual-event-tx-row:hover .tx-edit,.tx-edit:focus-visible{opacity:1}.tx-edit:hover{background:var(--surface);color:var(--text);border-color:var(--border-strong)}.duplicate-review-actions{grid-column:2 / -1;grid-row:2;display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding-top:var(--space-2);border-top:1px dashed var(--empty-border)}.duplicate-review-candidate{color:var(--empty);font-size:.78rem;font-weight:600}.duplicate-review-candidate.muted{color:var(--text-muted)}.duplicate-review-buttons{display:flex;flex-wrap:wrap;gap:var(--space-2)}.duplicate-review-buttons .btn{padding:var(--space-1) var(--space-3);font-size:.78rem}.tx-subcat-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-2) var(--space-5);background:var(--surface-alt);border-bottom:1px solid var(--border);border-top:1px solid var(--border);position:sticky;top:0;z-index:1}.tx-list>.tx-group:first-child>.tx-subcat-header{border-top:none}.tx-subcat-name{font-size:.72rem;font-weight:700;color:var(--text-muted)}.tx-subcat-total{font-family:var(--font-mono);font-size:.8rem;font-weight:600;color:var(--text-secondary)}.btn{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-5);border-radius:var(--radius);font-size:.875rem;font-weight:500;cursor:pointer;transition:all .15s ease;white-space:nowrap;border:1px solid transparent}.btn-primary,button.primary{background:var(--text);color:var(--text-inverse);border-color:var(--text)}.btn-primary:hover,button.primary:hover{opacity:.88;background:var(--text);color:var(--text-inverse);border-color:var(--text)}.btn-secondary{background:transparent;color:var(--text);border-color:var(--border-strong)}.btn-secondary:hover{background:var(--surface-alt)}.btn-danger,button.danger{background:transparent;color:var(--over);border-color:var(--over-border)}.btn-danger:hover,button.danger:hover{background:var(--over-bg);color:var(--over)}.btn-ghost{background:transparent;color:var(--text-secondary);border-color:transparent}.btn-ghost:hover{background:var(--surface-alt);color:var(--text)}.icon-btn,.iconButton{width:34px;height:34px;padding:0;border-radius:var(--radius);display:flex;align-items:center;justify-content:center;background:transparent;border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;transition:all .15s ease;flex-shrink:0}.icon-btn:hover,.iconButton:hover{background:var(--surface-alt);color:var(--text);border-color:var(--border-strong)}.icon-btn.danger:hover,.iconButton.danger:hover{background:var(--over-bg);color:var(--over);border-color:var(--over-border)}.empty-state{text-align:center;padding:var(--space-16) var(--space-6);color:var(--text-muted);display:grid;justify-items:center;gap:var(--space-3)}.empty-state-icon{font-size:2.5rem;opacity:.4}.empty-state-title{font-size:1rem;font-weight:500;color:var(--text-secondary);margin:0}.empty-state-text{font-size:.875rem;margin:0}.cycle-jump-list{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-2)}.locked-banner,.alert{background:var(--over-bg);border:1px solid var(--over-border);border-radius:var(--radius);padding:var(--space-3) var(--space-5);font-size:.875rem;color:var(--over);display:flex;align-items:center;gap:var(--space-3);font-weight:600}.current-budget-banner{background:#fee2e2;border:2px solid #dc2626;border-right-width:8px;border-radius:var(--radius);color:#7f1d1d;padding:var(--space-4) var(--space-5);font-size:1rem;font-weight:800;display:flex;align-items:center;gap:var(--space-3);box-shadow:0 0 0 3px #dc262614,var(--shadow-sm)}.success-alert{background:var(--ok-bg);border:1px solid var(--ok-border);border-radius:var(--radius);padding:var(--space-3) var(--space-5);font-size:.875rem;color:var(--ok);font-weight:600}.budget-planner{display:grid;gap:0}.budget-planner.has-installments,.budget-planner.has-planning-notes{grid-template-columns:220px minmax(0,1fr);gap:var(--space-4);align-items:start}.budget-planner.has-planning-notes:not(.has-installments){grid-template-columns:minmax(0,1fr) 240px}.budget-planner.has-installments.has-planning-notes{grid-template-columns:220px minmax(0,1fr) 240px}.budget-main{display:grid;gap:0;min-width:0}.budget-columns{display:grid;grid-template-columns:1fr 1.6fr;gap:0;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow);overflow:hidden}.budget-columns>*:first-child{border-left:1px solid var(--border)}.budget-col{min-width:0;background:var(--surface)}.budget-col-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-5);border-bottom:2px solid var(--border-strong)}.budget-col-header.income{background:var(--income-bg)}.budget-col-header.expense{background:var(--surface-alt)}.budget-col-title{font-size:.8rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-secondary)}.budget-col-total{font-family:var(--font-mono);font-size:1.1rem;font-weight:600;font-variant-numeric:tabular-nums}.budget-col-header.income .budget-col-total{color:var(--income)}.budget-col-header.expense .budget-col-total{color:var(--text)}.budget-col-body{display:grid;align-content:start}.budget-row{display:flex;flex-direction:row-reverse;align-items:center;justify-content:space-between;padding:var(--space-2) var(--space-5);border-bottom:1px solid var(--border);min-height:44px;gap:var(--space-3);transition:background .12s ease}.budget-row:last-child{border-bottom:none}.budget-row:hover{background:#1c171306}.budget-col.income .budget-row:hover{background:var(--income-bg)}.budget-row.sub{padding-right:var(--space-10);background:var(--surface-alt);min-height:38px}.budget-row.sub:hover{background:#1c17130a}.budget-row.recurring{opacity:.7;cursor:default}.budget-row-label{display:flex;align-items:center;gap:var(--space-2);flex:1;min-width:0;justify-content:flex-start;text-align:right}.budget-row-label[role=button]{cursor:pointer}.budget-row-name{font-size:.9rem;font-weight:500;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.budget-row.sub .budget-row-name{font-weight:400;font-size:.85rem;color:var(--text-secondary)}.budget-row:not(.sub) .budget-row-label:not([role=button]):before{content:"";width:24px;height:24px;flex:0 0 24px}.budget-row-chevron{margin-right:var(--space-1);color:var(--text-muted);font-size:.75rem;transition:transform .2s ease;cursor:pointer;padding:4px;border-radius:var(--radius-sm);flex-shrink:0;width:24px;height:24px;background:transparent;border:none}.budget-row-chevron:hover{color:var(--text);background:var(--surface-alt);border:none}.budget-row.open .budget-row-chevron{transform:rotate(90deg)}.history-trigger{width:24px;height:24px;min-width:24px;border-radius:var(--radius-sm);border:1px solid transparent;background:transparent;color:var(--text-muted);cursor:pointer;opacity:0;padding:0;flex-shrink:0;transition:opacity .15s ease,background .15s ease,border-color .15s ease,color .15s ease}.budget-row:hover .history-trigger,.history-trigger:focus-visible,.history-trigger.active{opacity:1}.history-trigger:hover,.history-trigger.active{background:var(--surface-alt);border-color:var(--border);color:var(--text)}.history-popover{position:absolute;z-index:var(--z-modal);width:340px;overflow:hidden;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);animation:history-popover-in .18s cubic-bezier(.16,1,.3,1) forwards}@keyframes history-popover-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.history-popover.flip{animation-name:history-popover-in-flip}@keyframes history-popover-in-flip{0%{opacity:0;transform:translateY(calc(-100% + 4px))}to{opacity:1;transform:translateY(-100%)}}.history-arrow{position:absolute;top:-6px;right:8px;width:12px;height:6px;background:var(--surface);clip-path:polygon(50% 0%,0% 100%,100% 100%);filter:drop-shadow(0 -1px 0 var(--border))}.history-popover.flip .history-arrow{top:auto;bottom:-6px;transform:rotate(180deg)}.history-header{padding:var(--space-3) var(--space-4);font-size:.7rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--text-muted);background:var(--surface-alt);border-bottom:1px solid var(--border)}.history-loading,.history-empty{padding:var(--space-5);text-align:center;font-size:.8rem;color:var(--text-muted)}.history-table{width:100%;border-collapse:collapse}.history-table th{padding:var(--space-2) var(--space-3);font-size:.65rem;font-weight:700;letter-spacing:.06em;text-align:start;text-transform:uppercase;color:var(--text-muted);border-bottom:1px solid var(--border)}.history-row{border-bottom:1px solid var(--border);transition:background .1s ease}.history-row:last-child{border-bottom:none}.history-row:hover{background:var(--surface-alt)}.history-row td{padding:var(--space-3);font-size:.82rem;vertical-align:middle;white-space:nowrap}.h-cycle,.h-planned,.h-actual{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.h-cycle{font-size:.78rem;color:var(--text-secondary)}.h-planned{font-weight:600;color:var(--text)}.h-actual{font-size:.78rem}.h-actual.ok{color:var(--ok)}.h-actual.over{color:var(--over)}.h-actual.empty{color:var(--text-muted)}.h-apply-btn{min-width:42px;padding:3px 10px;border-radius:99px;border:1px solid var(--border-strong);background:transparent;color:var(--text-secondary);cursor:pointer;font-size:.72rem;font-weight:600;white-space:nowrap}.h-apply-btn:hover:not(:disabled){background:var(--text);border-color:var(--text);color:var(--text-inverse)}.h-apply-btn:disabled{opacity:.45;cursor:not-allowed}.budget-row.sub .budget-row-name:before{content:"∟ ";color:var(--text-muted);font-size:.7rem}.budget-row-flag{font-size:.75rem;color:var(--over);cursor:help;flex-shrink:0}.budget-row-recurring-icon{font-size:.7rem;color:var(--text-muted);flex-shrink:0}.budget-row-meta{font-size:.75rem;color:var(--text-muted);white-space:nowrap}.budget-badge{font-family:var(--font-mono);font-size:.875rem;font-weight:600;background:#1c17131a;color:var(--text);border:2px solid transparent;border-radius:99px;padding:3px 12px;min-width:72px;width:auto;max-width:120px;text-align:center;direction:ltr;cursor:pointer;transition:all .15s ease;flex-shrink:0;outline:none;-moz-appearance:textfield;font-variant-numeric:tabular-nums}.budget-badge::-webkit-inner-spin-button,.budget-badge::-webkit-outer-spin-button{display:none}.budget-badge:hover:not(:disabled){background:#1c171329}.budget-badge:focus{background:var(--surface);border-color:var(--border-strong);box-shadow:0 0 0 3px #1c171312;cursor:text;min-width:90px}.budget-col.income .budget-badge:focus{border-color:var(--income);box-shadow:0 0 0 3px #1e3a5f14}.budget-badge.zero{background:#1c17130d;color:var(--text-muted)}.budget-badge.auto-sum{background:transparent;color:var(--text-secondary);border:2px dashed var(--border);cursor:default;font-style:italic}.budget-badge:disabled{background:var(--surface-alt);color:var(--text-muted);cursor:not-allowed;font-style:italic}.budget-badge.invalid{background:var(--over-bg);border-color:var(--over-border);color:var(--over)}.budget-badge.annual-derived{background:var(--empty-bg);border-color:var(--empty-border);color:var(--empty);font-style:italic;cursor:default}.budget-badge.just-updated{animation:badge-flash .7s ease forwards}@keyframes badge-flash{0%{background:var(--ok-bg);border-color:var(--ok)}to{background:#1c17131a;border-color:transparent}}.installment-sidebar,.planning-notes-sidebar{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden;display:flex;flex-direction:column;position:sticky;top:calc(52px + var(--space-4));max-height:calc(100vh - 80px);overflow-y:auto}.planning-notes-sidebar{border-color:#fb923c;border-inline-start-width:4px}.sidebar-header{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-4) var(--space-4) var(--space-3);border-bottom:1px solid var(--border);background:var(--surface-alt);flex-wrap:wrap}.sidebar-title{display:inline-flex;align-items:center;gap:var(--space-2);font-size:.8rem;font-weight:700;color:var(--text);flex:1;min-width:0;white-space:nowrap}.sidebar-count{font-family:var(--font-mono);font-size:.75rem;background:var(--empty-bg);color:var(--empty);border:1px solid var(--empty-border);border-radius:99px;padding:1px 8px;font-weight:700}.sidebar-add-all{width:100%;margin-top:var(--space-1);font-size:.75rem;color:var(--text-secondary);background:transparent;border:1px dashed var(--border);border-radius:var(--radius);padding:var(--space-1) var(--space-3)}.sidebar-add-all:hover:not(:disabled){border-color:var(--text);color:var(--text)}.sidebar-add-all:disabled{opacity:.55;cursor:wait}.sidebar-items{display:flex;flex-direction:column}.planning-notes-list{gap:0}.installment-item{padding:var(--space-4);border-bottom:1px solid var(--border);display:flex;flex-direction:column;gap:var(--space-2);transition:background .15s ease,opacity .15s ease}.installment-item:last-child{border-bottom:none}.installment-item:hover{background:var(--surface-alt)}.installment-item.added{opacity:.6;background:var(--ok-bg)}.installment-item.foreign{border-inline-start:3px solid var(--income-border)}.planning-note-item{padding:var(--space-3);border-bottom:1px solid var(--border);display:grid;gap:var(--space-2);transition:background .15s ease,opacity .15s ease}.planning-note-item:last-child{border-bottom:none}.planning-note-item:hover{background:var(--surface-alt)}.planning-note-item.done{opacity:.68;background:var(--ok-bg)}.planning-note-summary{display:flex;align-items:flex-start;gap:var(--space-2);width:100%;padding:0;border:none;background:transparent;color:inherit;text-align:right;cursor:pointer}.planning-note-chevron{margin-top:2px;color:var(--text-muted);flex:0 0 auto;transition:transform .16s ease}.planning-note-item.open .planning-note-chevron{transform:rotate(180deg)}.planning-note-title{color:var(--text);font-size:.78rem;font-weight:700;line-height:1.45;min-width:0}.planning-note-details{display:grid;gap:var(--space-3);padding-inline-start:calc(14px + var(--space-2))}.planning-note-detail-block{display:grid;gap:2px}.planning-note-detail-label{color:var(--text-muted);font-size:.64rem;font-weight:800}.planning-note-change,.planning-note-transaction{color:#7c2d12;font-size:.74rem;font-weight:600;line-height:1.45}.planning-note-transaction{color:var(--text-secondary);font-family:var(--font-mono);direction:ltr;text-align:right}.planning-note-meta{display:flex;flex-wrap:wrap;gap:var(--space-2);color:var(--text-muted);font-size:.68rem;font-weight:700}.planning-note-actions{padding-inline-start:calc(14px + var(--space-2))}.planning-note-done-btn{width:100%;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-1);border:1px dashed var(--border);border-radius:var(--radius);background:transparent;color:var(--text-secondary);padding:var(--space-1) var(--space-2);font-size:.72rem;font-weight:700}.planning-note-done-btn:hover:not(:disabled),.planning-note-done-btn.active{border-color:var(--ok-border);background:var(--ok-bg);color:var(--ok)}.planning-note-done-btn:disabled{opacity:.55;cursor:wait}.planning-note-item.done .planning-note-title,.planning-note-item.done .planning-note-change,.planning-note-item.done .planning-note-transaction{text-decoration:line-through;text-decoration-thickness:2px}.inst-merchant{font-size:.85rem;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.inst-note{font-size:.72rem;color:var(--text-secondary);font-style:italic;display:flex;align-items:center;gap:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.inst-note-icon{font-size:.65rem;opacity:.6;flex-shrink:0}.inst-meta{display:flex;align-items:center;gap:var(--space-2)}.inst-badge{font-family:var(--font-mono);font-size:.68rem;font-weight:700;background:var(--empty-bg);color:var(--empty);border:1px solid var(--empty-border);border-radius:99px;padding:2px 8px;white-space:nowrap}.inst-amount{font-family:var(--font-mono);font-size:.92rem;font-weight:700;color:var(--text);white-space:nowrap}.inst-category{font-size:.72rem;color:var(--text-muted);display:flex;align-items:center;gap:4px;flex-wrap:wrap;line-height:1.35}.inst-cat-sep{opacity:.4;font-size:.65rem}.inst-add-btn,.inst-added-confirm,.inst-undo-btn{width:100%;padding:var(--space-2) var(--space-3);font-size:.78rem;font-weight:600;border-radius:var(--radius);margin-top:var(--space-1);display:inline-flex;align-items:center;justify-content:center;gap:var(--space-1)}.inst-add-btn{background:var(--surface-dark);color:var(--text-inverse);border:none;cursor:pointer;transition:opacity .15s ease}.inst-add-btn:hover:not(:disabled){opacity:.85}.inst-add-btn:disabled{opacity:.55;cursor:wait}.inst-added-confirm{color:var(--ok);text-align:center;background:var(--ok-bg);border:1px solid var(--ok-border)}.inst-undo-btn{color:var(--text-secondary);background:var(--surface);border:1px solid var(--border);cursor:pointer;transition:background .15s ease,border-color .15s ease}.inst-undo-btn:hover:not(:disabled){background:var(--surface-alt);border-color:var(--border-strong)}.inst-undo-btn:disabled{opacity:.6;cursor:wait}.numberInput{font-family:var(--font-mono);direction:ltr;text-align:left}.budget-subcategories{overflow:hidden;max-height:0;opacity:0;transition:max-height .28s cubic-bezier(.16,1,.3,1),opacity .2s ease}.budget-subcategories.open{max-height:600px;opacity:1}.budget-section-divider{padding:var(--space-2) var(--space-5);font-size:.65rem;letter-spacing:.07em;text-transform:uppercase;color:var(--text-muted);background:var(--surface-alt);border-bottom:1px solid var(--border);border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}.budget-section-divider.annual{background:var(--empty-bg);color:var(--empty);border-color:var(--empty-border)}.budget-section-divider.final{min-height:8px;padding:0;background:var(--surface)}.budget-row.annual-source{background:#fffbebb3}.annual-event-budget-row{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-5);border-bottom:1px solid var(--empty-border);cursor:pointer;gap:var(--space-4);background:#fffbebb8;transition:background .15s ease}.annual-event-budget-row:hover{background:#fef3c7}.annual-event-budget-row.over{background:var(--over-bg);border-bottom-color:var(--over-border)}.aer-label{display:flex;align-items:center;gap:var(--space-2);min-width:0;font-size:.875rem;font-weight:600;color:var(--text)}.aer-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.aer-chevron{font-size:.8rem;color:var(--text-muted);transition:transform .18s ease}.aer-chevron.open{transform:rotate(90deg)}.aer-amounts{display:flex;flex-direction:column;align-items:flex-end;gap:4px;min-width:230px;max-width:52%}.aer-numbers{display:flex;align-items:center;gap:var(--space-2);font-family:var(--font-mono);font-size:.8rem;white-space:nowrap}.aer-planned,.aer-spent{color:var(--text-muted)}.aer-sep{color:var(--border-strong)}.aer-remaining{font-weight:700}.aer-remaining.ok{color:var(--ok)}.aer-remaining.over{color:var(--over)}.aer-track{width:100%;height:4px;background:var(--border);border-radius:99px;overflow:hidden}.aer-fill{height:100%;border-radius:99px;transform-origin:right center;transition:width .5s cubic-bezier(.16,1,.3,1)}.aer-fill.ok{background:var(--ok)}.aer-fill.over{background:var(--over)}.aer-expansion{background:var(--empty-bg);border-bottom:1px solid var(--empty-border);padding:var(--space-2) var(--space-5) var(--space-3)}.aer-empty{padding:var(--space-4);color:var(--text-muted);text-align:center;font-size:.82rem}.aer-tx-list{display:grid;background:var(--surface);border:1px solid var(--empty-border);border-radius:var(--radius);overflow:hidden}.aer-tx-row{display:grid;grid-template-columns:3.2rem minmax(8rem,1fr) minmax(5rem,auto) 5.5rem 1.75rem;gap:var(--space-2);align-items:center;padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border)}.aer-tx-row:last-child{border-bottom:none}.aer-tx-row:hover{background:var(--surface-alt)}.aer-add-btn{margin-top:var(--space-2);width:100%;border:1px dashed var(--empty-border);border-radius:var(--radius);color:var(--empty)}.aer-add-btn:hover{background:var(--empty-bg);border-color:var(--empty)}.budget-add-row{margin:var(--space-3) var(--space-5);justify-self:start;background:transparent;border-color:transparent;color:var(--text-secondary);font-size:.85rem;padding:var(--space-2) var(--space-3)}.budget-add-row:hover{background:var(--surface-alt);color:var(--text)}.budget-action-bar{position:sticky;bottom:68px;display:flex;justify-content:flex-start;gap:var(--space-3);padding:var(--space-3) 0;background:linear-gradient(to top,var(--bg) 70%,transparent);pointer-events:none;z-index:var(--z-raised)}.budget-action-bar>*{pointer-events:all}.budget-footer{position:sticky;bottom:0;background:var(--surface-dark);color:var(--text-inverse);border-radius:0 0 var(--radius-lg) var(--radius-lg);padding:var(--space-4) var(--space-6);display:flex;align-items:center;justify-content:space-between;gap:var(--space-6);z-index:var(--z-raised)}.budget-footer-item{display:flex;flex-direction:column;align-items:center;gap:2px}.budget-footer-label{font-size:.65rem;opacity:.5;letter-spacing:.06em;text-transform:uppercase}.budget-footer-value{font-family:var(--font-mono);font-size:1.1rem;font-weight:500;font-variant-numeric:tabular-nums}.budget-footer-value.income,.budget-footer-value.ok{color:#86efac}.budget-footer-value.over{color:#fca5a5}.budget-footer-item.reference{border-inline-start:1px solid rgba(245,240,232,.14);padding-inline-start:var(--space-6)}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.loans-page{padding-bottom:var(--space-8)}.loans-total-strip{background:var(--surface-dark);color:var(--text-inverse);border-radius:var(--radius-lg);padding:var(--space-5) var(--space-6);display:flex;align-items:center;justify-content:space-between;gap:var(--space-6);box-shadow:var(--shadow-sm)}.loans-total-strip>div{display:grid;gap:var(--space-2)}.loans-total-label{font-size:.78rem;color:#f5f0e894}.loans-total-amount{font-family:var(--font-mono);font-size:2rem;font-weight:500;line-height:1;font-variant-numeric:tabular-nums}.loans-total-breakdown{font-size:.82rem;color:#f5f0e899;font-family:var(--font-mono);white-space:nowrap}.loan-upload-zone{min-height:112px;border:1px dashed var(--border-strong);border-radius:var(--radius-lg);background:var(--surface);color:var(--text-secondary);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2);cursor:pointer;transition:border-color .15s ease,background .15s ease,color .15s ease}.loan-upload-zone:hover,.loan-upload-zone.uploading{border-color:var(--text-secondary);background:var(--surface-alt);color:var(--text)}.loan-upload-zone input{display:none}.upload-diff{background:var(--ok-bg);border:1px solid var(--ok-border);border-radius:var(--radius-lg);padding:var(--space-5) var(--space-6);display:grid;gap:var(--space-2)}.upload-diff-title{font-weight:700;color:var(--ok)}.upload-diff-foot{margin-top:var(--space-2);padding-top:var(--space-2);border-top:1px solid var(--ok-border);color:var(--text-secondary);font-size:.82rem}.diff-row{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-2);font-size:.875rem}.diff-arrow{color:var(--text-muted)}.diff-old{text-decoration:line-through;color:var(--text-muted);font-family:var(--font-mono)}.diff-new{color:var(--ok);font-weight:700;font-family:var(--font-mono)}.diff-delta{color:var(--ok);font-size:.8rem;font-family:var(--font-mono)}.diff-delta.negative{color:var(--over)}.loans-section-label{font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);margin:var(--space-5) 0 0}.mortgage-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm)}.mortgage-card-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-4) var(--space-5);cursor:pointer;transition:background .15s ease}.mortgage-card-header:hover{background:var(--surface-alt)}.mortgage-card-main{display:flex;align-items:center;gap:var(--space-3);min-width:0}.mortgage-card-main svg{color:var(--text-muted);transform:rotate(90deg);transition:transform .15s ease}.mortgage-card-main svg.open{transform:rotate(0)}.mortgage-card-main>span{display:grid;gap:2px}.mortgage-card-number{font-family:var(--font-mono);font-size:.8rem;color:var(--text-muted);direction:ltr;text-align:right}.mortgage-card-bank{font-weight:600;font-size:.9rem}.mortgage-card-meta{font-size:.76rem;color:var(--text-muted);display:flex;flex-wrap:wrap;gap:var(--space-4);padding:0 var(--space-5) var(--space-3)}.manual-override-note{margin:0 var(--space-5) var(--space-3);padding:var(--space-2) var(--space-3);border:1px solid var(--empty-border);border-radius:var(--radius);background:var(--empty-bg);color:var(--empty);font-size:.78rem}.manual-override-inline{display:inline-flex;margin-inline-start:var(--space-2);padding:1px 6px;border-radius:99px;background:var(--empty-bg);color:var(--empty);border:1px solid var(--empty-border);font-size:.68rem}.mortgage-tracks{border-top:1px solid var(--border);background:var(--surface-alt)}.mortgage-track-row{display:grid;grid-template-columns:2rem minmax(8rem,1fr) 5rem 7rem 8rem 5rem;gap:var(--space-3);align-items:center;padding:var(--space-3) var(--space-5);border-bottom:1px solid var(--border);font-size:.82rem}.mortgage-track-row:last-child{border-bottom:none}.mortgage-track-row.closed{opacity:.45}.track-number{font-family:var(--font-mono);font-size:.7rem;background:var(--surface);border:1px solid var(--border);border-radius:99px;width:22px;height:22px;display:flex;align-items:center;justify-content:center;font-weight:700}.track-type{color:var(--text-secondary)}.track-rate,.track-payment,.track-balance,.track-end{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.track-rate,.track-end{font-size:.75rem;color:var(--text-muted)}.track-payment{font-weight:700}.track-balance{color:var(--text-secondary)}.loans-table{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm)}.loans-table-row{display:grid;grid-template-columns:minmax(10rem,1fr) 9rem 9rem 6rem 3rem;gap:var(--space-3);align-items:center;padding:var(--space-3) var(--space-5);border-bottom:1px solid var(--border);font-size:.875rem}.loans-table-row.header{background:var(--surface-alt);font-size:.7rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted);border-bottom:2px solid var(--border-strong)}.loans-table-row.total{background:var(--surface-alt);font-weight:700;border-top:2px solid var(--border-strong);border-bottom:none}.loans-table-row .amount,.loans-table-row .balance,.loans-table-row .day{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.loans-table-row .balance{color:var(--text-secondary)}.loans-table-row .day{color:var(--text-muted);font-size:.8rem}.loan-name{font-weight:600}.editable-amount{justify-self:start;font-family:var(--font-mono);font-weight:700;color:var(--text);background:transparent;border-color:transparent;padding:var(--space-1) var(--space-2)}.editable-amount:hover{background:var(--surface-alt);border-color:var(--border)}.amount-editor{display:inline-grid;grid-template-columns:minmax(5.8rem,1fr) 32px 32px;gap:var(--space-1);align-items:center;max-width:11rem}.amount-editor input{height:32px;padding:var(--space-1) var(--space-2);font-family:var(--font-mono)}.amount-editor .icon-btn{width:32px;height:32px}.empty-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-8);color:var(--text-muted);text-align:center}.wizard-steps{display:flex;position:relative;margin-bottom:var(--space-8)}.wizard-steps:before{content:"";position:absolute;top:14px;right:14px;left:14px;height:1px;background:var(--border);z-index:0}.wizard-step{flex:1;display:flex;flex-direction:column;align-items:center;gap:var(--space-2);position:relative;z-index:1}.wizard-step-dot{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:.8rem;font-weight:500;border:2px solid var(--border);background:var(--bg);color:var(--text-muted);transition:all .2s ease}.wizard-step.active .wizard-step-dot{background:var(--text);color:var(--text-inverse);border-color:var(--text)}.wizard-step.done .wizard-step-dot{background:var(--ok);color:#fff;border-color:var(--ok)}.wizard-step-label{font-size:.75rem;color:var(--text-muted)}.wizard-step.active .wizard-step-label{color:var(--text);font-weight:500}.wizard-step.done .wizard-step-label{color:var(--ok)}.upload-zone{border:2px dashed var(--border-strong);border-radius:var(--radius-lg);padding:var(--space-16) var(--space-8);text-align:center;cursor:pointer;transition:all .2s ease;background:var(--surface);display:flex;flex-direction:column;align-items:center;gap:var(--space-3)}.upload-zone:hover{border-color:var(--text-secondary);background:var(--surface-alt)}.upload-zone input{display:none}.upload-zone-icon{font-size:2.5rem;opacity:.45}.file-list{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-5);display:grid;gap:var(--space-4);box-shadow:var(--shadow-sm)}.file-list h2{margin:0;font-size:.8rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.06em}.file-item{display:flex;align-items:center;gap:var(--space-3);font-size:.9rem}.done-panel{background:var(--surface);border:1px solid var(--ok-border);border-radius:var(--radius-lg);padding:var(--space-8);text-align:center;box-shadow:var(--shadow-sm);color:var(--ok)}.done-panel h2{margin:var(--space-4) 0 var(--space-3);font-size:1.25rem}.done-panel p{color:var(--text-secondary);margin:var(--space-2) 0;font-family:var(--font-mono)}.import-summary-line{padding:var(--space-4) var(--space-6);color:var(--text-secondary);font-size:.9rem;border-top:1px solid var(--border)}.import-review{display:grid;gap:var(--space-6)}.import-review-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.import-row-list{display:grid}.import-row{display:grid;gap:var(--space-4);padding:var(--space-5);border-top:1px solid var(--border)}.import-row:first-child{border-top:none}.import-row.muted{background:var(--surface-alt);opacity:.78}.import-row-main{display:grid;grid-template-columns:minmax(150px,180px) 1fr;gap:var(--space-4);align-items:start}.import-action-select{display:grid;gap:var(--space-2)}.import-action-select span,.import-field span{font-size:.72rem;color:var(--text-muted);font-weight:600}.import-edit-grid{display:grid;grid-template-columns:repeat(4,minmax(130px,1fr));gap:var(--space-3)}.import-field{display:grid;gap:var(--space-2);min-width:0}.import-field input,.import-field select,.import-action-select select{min-height:38px}.duplicate-panel{display:grid;gap:var(--space-3);padding:var(--space-4);background:var(--empty-bg);border:1px solid var(--empty-border);border-radius:var(--radius)}.duplicate-panel.handled{background:var(--ok-bg);border-color:var(--ok-border)}.duplicate-title{display:flex;align-items:center;gap:var(--space-2);color:var(--empty);font-weight:700;font-size:.9rem}.duplicate-panel.handled .duplicate-title{color:var(--ok)}.foreign-sms-status{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-radius:var(--radius);font-size:.85rem;font-weight:600}.foreign-sms-status.matched{background:var(--ok-bg);color:var(--ok);border:1px solid var(--ok-border)}.foreign-sms-status.missing{background:var(--empty-bg);color:var(--empty);border:1px solid var(--empty-border)}.duplicate-compare{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3)}.transaction-snapshot{display:grid;gap:var(--space-1);padding:var(--space-3);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);font-size:.85rem}.transaction-snapshot strong{font-size:.75rem;color:var(--text-muted)}.merge-fields{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3)}.merge-fields>span{display:inline-flex;align-items:center;gap:var(--space-2);font-weight:700;color:var(--text-secondary);font-size:.85rem}.duplicate-handled-row{display:flex;justify-content:flex-end}.check-row.compact{display:inline-flex;width:auto;align-items:center;gap:var(--space-2);color:var(--text-secondary);font-size:.85rem}.import-confirm-bar{position:sticky;bottom:var(--space-4);display:flex;justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-4);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);z-index:2}.import-confirm-bar span{color:var(--text-secondary);font-weight:600}.reconciliation-report{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.reconciliation-report.ok{border-color:var(--ok-border)}.reconciliation-report.error{border-color:var(--over-border)}.reconciliation-header{display:flex;justify-content:space-between;gap:var(--space-5);padding:var(--space-5);background:var(--surface-alt);border-bottom:1px solid var(--border)}.reconciliation-title{display:flex;align-items:flex-start;gap:var(--space-3)}.reconciliation-report.ok .reconciliation-title{color:var(--ok)}.reconciliation-report.error .reconciliation-title{color:var(--over)}.reconciliation-title h2{margin:0;font-size:1.05rem}.reconciliation-title p{margin:2px 0 0;color:var(--text-secondary);font-size:.82rem}.reconciliation-stats{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap;color:var(--text-secondary);font-family:var(--font-mono);font-size:.78rem}.reconciliation-stats span{padding:var(--space-1) var(--space-2);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface)}.reconciliation-section{padding:var(--space-5);border-top:1px solid var(--border)}.reconciliation-section:first-of-type{border-top:none}.reconciliation-section h3{margin:0 0 var(--space-3);font-size:.85rem;color:var(--text-secondary)}.reconciliation-list{display:grid;gap:var(--space-2)}.reconciliation-row{display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--space-3);align-items:start;padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.reconciliation-row>div{display:grid;gap:2px;min-width:0}.reconciliation-row strong{font-size:.9rem}.reconciliation-row span{color:var(--text-secondary);font-size:.82rem;overflow-wrap:anywhere}.reconciliation-row.matched{color:var(--ok);border-color:var(--ok-border);background:var(--ok-bg)}.reconciliation-row.error{color:var(--over);border-color:var(--over-border);background:var(--over-bg)}.reconciliation-row.warning{color:var(--empty);border-color:var(--empty-border);background:var(--empty-bg)}.reconciliation-row .reconciliation-detail{color:currentColor;font-family:var(--font-mono)}.slideover-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#1c171366;z-index:var(--z-overlay);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.slideover{position:fixed;top:0;left:0;bottom:0;width:420px;max-width:100vw;background:var(--surface);box-shadow:var(--shadow-lg);z-index:var(--z-modal);overflow-y:auto;display:flex;flex-direction:column}.slideover-header{padding:var(--space-6);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.slideover-title{font-size:1rem;font-weight:600;margin:0}.slideover-close{width:32px;height:32px;border-radius:var(--radius);border:1px solid var(--border);background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text-secondary);padding:0;flex-shrink:0}.slideover-close:hover{background:var(--surface-alt);color:var(--text)}.slideover-body{padding:var(--space-6);flex:1;display:flex;flex-direction:column;gap:var(--space-5)}.slideover-footer{padding:var(--space-5) var(--space-6);border-top:1px solid var(--border);display:flex;gap:var(--space-3);flex-wrap:wrap;flex-shrink:0}.field-group{display:flex;flex-direction:column;gap:var(--space-2)}.field-label{display:block;font-size:.8rem;font-weight:500;color:var(--text-secondary)}.field-input{width:100%;padding:var(--space-3) var(--space-4);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);font-family:var(--font-hebrew);font-size:.9rem;color:var(--text);transition:border-color .15s ease,box-shadow .15s ease}.field-input:focus{outline:none;border-color:var(--text-secondary);box-shadow:0 0 0 3px #1c17130f}.field-input.amount-input{direction:ltr;text-align:left;font-family:var(--font-mono)}.field-hint{margin:0;font-size:.78rem;line-height:1.45;color:var(--text-secondary)}.field-hint.warning{color:var(--over);font-weight:500}.check-row{display:flex;align-items:center;gap:var(--space-3);font-size:.875rem;color:var(--text)}.check-row input{width:auto}.tx-annual-section{margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px dashed var(--border);display:grid;gap:var(--space-3)}.tx-annual-section.active{background:var(--empty-bg);border-radius:var(--radius);padding:var(--space-4);border:1px solid var(--empty-border)}.tx-annual-label{display:flex;align-items:center;gap:var(--space-2);font-weight:500}.tx-annual-description{font-size:.8rem;color:var(--text-secondary)}.segmented-control{display:flex;gap:0;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;width:100%}.segment-btn,.segmented-control button{flex:1;padding:var(--space-2) var(--space-3);font-size:.8rem;font-weight:500;background:var(--surface);color:var(--text-secondary);border:none;border-left:1px solid var(--border);border-radius:0;cursor:pointer;transition:all .15s ease}.segment-btn:last-child,.segmented-control button:last-child{border-left:none}.segment-btn:hover,.segmented-control button:hover{background:var(--surface-alt)}.segment-btn.active,.segmented-control button.active{background:var(--text);color:var(--text-inverse)}.installment-fields{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:var(--space-3);margin-top:var(--space-3);padding:var(--space-3);background:var(--empty-bg);border-radius:var(--radius);border:1px solid var(--empty-border)}.installment-separator{font-size:.8rem;color:var(--text-muted);text-align:center}.tx-meta-row{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap;font-size:.75rem;color:var(--text-muted)}.readonly-note{min-height:52px;background:var(--surface-alt);color:var(--text-secondary);font-style:italic;cursor:default}.note-propagation-hint{font-size:.72rem;color:var(--text-muted);margin:var(--space-1) 0 0;display:flex;align-items:center;gap:4px}.inline-mini-form{display:grid;grid-template-columns:1fr auto;gap:var(--space-2)}.category-dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:calc(var(--z-modal) + 1);background:#1c171375;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:grid;place-items:center;padding:var(--space-4)}.category-dialog{width:min(520px,100%);max-height:min(760px,calc(100vh - var(--space-8)));overflow:auto;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg)}.delete-category-dialog{width:min(860px,100%)}.category-dialog-header,.category-dialog-footer{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--border)}.category-dialog-footer{justify-content:flex-start;border-bottom:none;border-top:1px solid var(--border);flex-wrap:wrap}.category-dialog-header h2{margin:0;font-size:1rem;font-weight:700}.category-dialog-body{padding:var(--space-6);display:grid;gap:var(--space-5)}.category-dialog-warning,.planning-change-preview{border-radius:var(--radius);padding:var(--space-3) var(--space-4);font-weight:700}.category-dialog-warning{display:flex;align-items:flex-start;gap:var(--space-3);background:var(--empty-bg);border:1px solid var(--empty-border);color:var(--empty)}.delete-move-list{display:grid;gap:var(--space-3)}.delete-move-row{display:grid;grid-template-columns:minmax(180px,1.2fr) minmax(160px,1fr) minmax(160px,1fr);gap:var(--space-3);align-items:start;padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-alt)}.delete-move-summary{display:grid;gap:var(--space-1);color:var(--text-secondary);font-size:.86rem}.delete-move-summary strong{color:var(--text-primary);font-size:.92rem}@media (max-width: 760px){.delete-move-row{grid-template-columns:1fr}}.planning-change-preview{background:var(--surface-alt);border:1px dashed var(--border-strong);color:var(--text-secondary);line-height:1.6}.toast-container{position:fixed;bottom:var(--space-6);left:var(--space-6);z-index:var(--z-toast);display:flex;flex-direction:column;gap:var(--space-3);pointer-events:none}.toast{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-4) var(--space-5);background:var(--surface-dark);color:var(--text-inverse);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);font-size:.875rem;max-width:340px;pointer-events:all;cursor:pointer;border:none;animation:toast-in .3s cubic-bezier(.16,1,.3,1) forwards;font-family:var(--font-hebrew);text-align:start}.toast.error{background:var(--over-bg);color:var(--over);border:1px solid var(--over-border)}.toast.warning{background:var(--empty-bg);color:var(--empty);border:1px solid var(--empty-border)}.toast-icon{flex-shrink:0}.toast-action{margin-inline-start:var(--space-3);color:inherit;font-weight:700;text-decoration:underline;text-underline-offset:3px;white-space:nowrap}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.inline-create{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap}.rules-editor{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--space-6);display:grid;gap:var(--space-5)}.rule-toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap;color:var(--text-muted)}.search-box{display:flex;align-items:center;gap:var(--space-2);min-width:min(360px,100%);background:var(--surface-alt);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-2) var(--space-3)}.search-box input{border:none;background:transparent;padding:0;flex:1;width:auto;box-shadow:none}.search-box input:focus{outline:none;box-shadow:none;border:none}.rule-grid{display:grid;grid-template-columns:minmax(180px,1.4fr) minmax(140px,1fr) minmax(140px,1fr) 80px 80px;gap:var(--space-2);align-items:center}.rule-grid.new-rule{background:var(--surface-alt);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-4)}.rules-table{display:grid;gap:var(--space-2);max-height:560px;overflow:auto}.rule-head{color:var(--text-muted);font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;padding-inline:var(--space-2)}.rules-table .rule-grid:not(.rule-head){border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-2);background:var(--surface)}.row-actions{display:flex;gap:var(--space-1);justify-content:end}.category-search-row{position:relative;display:flex;align-items:flex-start;gap:var(--space-2);flex-wrap:wrap;margin-bottom:var(--space-1)}.category-search-box{min-width:min(440px,100%)}.category-search-suggestions{flex-basis:100%;display:flex;flex-wrap:wrap;gap:var(--space-1);margin-top:calc(-1 * var(--space-1))}.category-search-suggestions button{min-height:28px;padding:var(--space-1) var(--space-2);border-color:var(--border);background:var(--surface);color:var(--text-secondary);font-size:.82rem}.category-section{display:grid;gap:var(--space-2)}.category-section-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin:var(--space-4) 0 0}.category-section-header .section-label{margin:0}.category-manage{display:grid;gap:var(--space-1)}.category-drop-zone{min-height:4px;border:1px dashed transparent;border-radius:var(--radius);transition:min-height .15s ease,background .15s ease,border-color .15s ease}.category-drop-zone.child{margin-inline-start:var(--space-8)}.category-drop-zone.active{min-height:26px;background:var(--income-bg);border-color:var(--income-border);box-shadow:inset 0 0 0 1px var(--surface)}.manage-row{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-2) var(--space-3);display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.manage-row.child{padding-inline-start:var(--space-8);background:var(--surface-alt)}.manage-row.deleted{opacity:.72}.manage-row.deleted .manage-name{text-decoration:line-through;color:var(--text-muted)}.manage-note{font-size:.82rem;color:var(--text-muted);white-space:nowrap}.manage-row.drop-target{border-color:var(--text-secondary);box-shadow:0 0 0 3px #1c17130f}.manage-row.highlighted{border-color:var(--empty-border);box-shadow:0 0 0 3px #fcd34d59}.manage-name{flex:1;min-width:0;font-weight:600;line-height:1.35}.manage-row.child .manage-name{font-weight:500}.child-count{font-size:.82rem;white-space:nowrap}.fold-button:disabled{opacity:.35;cursor:default}.fold-button:disabled:hover{background:transparent;border-color:var(--border);color:var(--text-secondary)}.drag-handle{cursor:grab;touch-action:none}.drag-handle:active{cursor:grabbing}.add-subcategory-button{white-space:nowrap;min-height:34px;padding:var(--space-1) var(--space-3)}.compare-page{gap:var(--space-5)}.range-separator{color:var(--text-muted);font-size:.875rem}.compare-section{display:grid;gap:var(--space-4)}.compare-section-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding-top:var(--space-2)}.compare-section-header h2{margin:0;font-size:1rem;font-weight:700;color:var(--text-secondary)}.compare-overview-card{display:grid;gap:var(--space-4);min-width:0;background:var(--surface);border:1px solid var(--border);border-top:4px solid var(--income);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--space-5)}.compare-overview-stats{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:var(--space-3);font-family:var(--font-mono);font-size:.85rem;font-weight:700;white-space:nowrap}.compare-overview-stats span{display:inline-flex;align-items:center;min-height:26px;padding:2px var(--space-2);border-radius:var(--radius-sm)}.compare-overview-stats .income{color:var(--income);background:var(--income-bg);border:1px solid var(--income-border)}.compare-overview-stats .expense{color:var(--over);background:var(--over-bg);border:1px solid var(--over-border)}.compare-overview-chart{height:300px}.compare-chart-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-5);align-items:start}.compare-chart-card{display:grid;gap:var(--space-4);min-width:0;background:var(--surface);border:1px solid var(--border);border-top:4px solid var(--chart-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--space-5)}.compare-card-header,.compare-subchart-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);min-width:0}.compare-card-title-block{display:grid;gap:var(--space-2);min-width:0}.compare-card-title-block h2,.compare-subchart-header h3{margin:0;color:var(--text);line-height:1.2;overflow-wrap:anywhere}.donut-card.attention .donut-name,.donut-card.attention .donut-icon,.expansion-title.attention{color:var(--over)}.compare-card-title-block h2{font-size:1.1rem;font-weight:700}.compare-subchart-header h3{font-size:.95rem;font-weight:700}.compare-type-pill{justify-self:start;display:inline-flex;align-items:center;min-height:22px;padding:2px var(--space-2);border-radius:var(--radius-sm);font-size:.72rem;font-weight:700;line-height:1}.compare-type-pill.income{background:var(--income-bg);color:var(--income);border:1px solid var(--income-border)}.compare-type-pill.expense{background:var(--surface-alt);color:var(--text-secondary);border:1px solid var(--border)}.compare-card-stats{display:grid;justify-items:end;gap:2px;white-space:nowrap}.compare-card-stats span,.compare-subchart-header span{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-weight:700;color:var(--text)}.compare-card-stats span{font-size:1.15rem}.compare-card-stats small{color:var(--text-muted);font-size:.75rem}.compare-chart-wrap{min-width:0}.compare-expand-button{justify-self:start;min-height:34px;padding:var(--space-1) var(--space-3);color:var(--text-secondary);background:var(--surface-alt)}.compare-stack-legend{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-2);min-width:0}.compare-stack-legend span{display:inline-flex;align-items:center;gap:5px;max-width:100%;padding:2px var(--space-2);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-alt);color:var(--text-secondary);font-size:.72rem;line-height:1.25}.compare-stack-legend i{width:9px;height:9px;border-radius:2px;flex-shrink:0}.compare-subcategory-grid{display:grid;grid-template-columns:1fr;gap:var(--space-3);padding-top:var(--space-4);border-top:1px dashed var(--border)}.compare-subchart{display:grid;gap:var(--space-3);min-width:0;padding:var(--space-4);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-alt)}.chart-band{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--space-6);min-height:310px}.comparison-table{width:100%;border-collapse:separate;border-spacing:0;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm)}.comparison-table th{background:var(--surface-alt);border-bottom:2px solid var(--border-strong)}.comparison-table td{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.comparison-table td.label{font-family:var(--font-hebrew);font-weight:500}.fund-widget{background:var(--surface);border:1px solid var(--border);border-right:5px solid var(--empty);border-radius:var(--radius-lg);padding:var(--space-4) var(--space-6);display:flex;align-items:center;justify-content:space-between;gap:var(--space-6);box-shadow:var(--shadow-sm);cursor:pointer;transition:box-shadow .2s ease;width:100%;text-align:start}.fund-widget:hover{box-shadow:var(--shadow);background:var(--surface)}.fund-widget.ok{border-right-color:var(--ok-border)}.fund-widget.warn{border-right-color:var(--empty-border)}.fund-widget.over{border-right-color:var(--over-border)}.fund-widget.placeholder{border-right-color:var(--border-strong)}.fund-widget-main{display:flex;align-items:center;gap:var(--space-4)}.fund-widget-icon{opacity:.72;color:var(--empty);display:inline-flex}.fund-widget-label{display:block;font-size:.75rem;color:var(--text-muted);margin-bottom:2px}.fund-widget-balance,.fund-widget-placeholder{display:block;font-family:var(--font-mono);font-size:1.65rem;font-weight:500;line-height:1}.fund-widget-balance.ok{color:var(--ok)}.fund-widget-balance.warn{color:var(--empty)}.fund-widget-balance.over{color:var(--over)}.fund-widget-placeholder{color:var(--text-secondary)}.fund-widget-meta{font-size:.75rem;color:var(--text-muted);font-family:var(--font-mono);display:flex;gap:var(--space-4);flex-wrap:wrap}.fund-widget-link{font-size:.8rem;color:var(--text-secondary);white-space:nowrap;display:flex;align-items:center;gap:var(--space-1)}.annual-page{gap:var(--space-5)}.annual-year-select{width:128px;font-family:var(--font-mono);text-align:center}.annual-create-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--space-6);display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto;gap:var(--space-4);align-items:end}.annual-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-4)}.annual-summary-cell{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-5) var(--space-6);box-shadow:var(--shadow-sm)}.annual-summary-value{font-family:var(--font-mono);font-size:1.65rem;font-weight:500;color:var(--text);line-height:1.1;margin-bottom:var(--space-1);overflow-wrap:anywhere}.annual-summary-label{font-size:.75rem;color:var(--text-muted)}.annual-summary-cell.fund-ok .annual-summary-value{color:var(--ok)}.annual-summary-cell.fund-warn .annual-summary-value{color:var(--empty)}.annual-summary-cell.fund-over .annual-summary-value{color:var(--over)}.annual-timeline{--chip-area-height: 184px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.annual-curve-wrap{padding:var(--space-4) var(--space-4) 0;background:linear-gradient(to bottom,rgba(28,23,19,.015),transparent 54%),var(--surface)}.annual-curve{display:block;width:100%;height:210px;overflow:visible}.annual-grid-line{stroke:var(--border);stroke-width:1;stroke-dasharray:5 6}.annual-axis-label{fill:var(--text-muted);font-family:var(--font-mono);font-size:12px}.annual-area{fill:var(--ok);opacity:.07}.annual-line{fill:none;stroke-linecap:round;stroke-linejoin:round}.annual-line.solid{stroke:var(--ok);stroke-width:3}.annual-line.dashed{stroke:var(--text-secondary);stroke-width:2.4;stroke-dasharray:8 7}.expense-dot{stroke:var(--surface);stroke-width:3}.expense-dot.past{fill:var(--ok)}.expense-dot.future{fill:var(--empty)}.today-line{stroke:var(--text);stroke-width:1;opacity:.24}.today-dot{fill:var(--text);opacity:.42}.month-columns{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));border-top:1px solid var(--border)}.month-col{border-inline-start:1px solid var(--border);padding:var(--space-3) var(--space-2);min-height:var(--chip-area-height);cursor:pointer;transition:background .12s ease,opacity .12s ease;position:relative;display:flex;flex-direction:column;gap:var(--space-2);min-width:0}.month-col:first-child{border-inline-start:none}.month-col:hover{background:#1c171306}.month-col.current{background:#1c17130b;box-shadow:inset 0 2px 0 var(--text)}.month-col.selected{background:#1c171309}.month-col.past{opacity:.72}.month-header{display:flex;flex-direction:column;align-items:center;gap:4px;margin-bottom:var(--space-1)}.month-name{font-family:var(--font-mono);font-size:.7rem;font-weight:500;color:var(--text-muted);text-align:center}.month-col.current .month-name{color:var(--text);font-weight:700}.month-today-dot{width:5px;height:5px;border-radius:50%;background:var(--text)}.month-chips{display:flex;flex-direction:column;gap:var(--space-1);flex:1;min-width:0}.month-chips.mobile{gap:var(--space-2)}.month-add-hint{position:absolute;bottom:var(--space-2);left:50%;transform:translate(-50%);font-family:var(--font-mono);font-size:.85rem;color:var(--text-muted);opacity:0;transition:opacity .15s ease}.month-col:hover .month-add-hint{opacity:1}.expense-chip{display:flex;flex-direction:column;align-items:flex-end;width:100%;padding:5px 6px;border-radius:var(--radius);border:1px solid var(--empty-border);background:var(--empty-bg);cursor:pointer;text-align:end;transition:all .15s ease;position:relative;min-width:0}.expense-chip:hover{border-color:var(--empty);box-shadow:var(--shadow-sm);background:var(--empty-bg)}.expense-chip.paid{background:var(--ok-bg);border-color:var(--ok-border);opacity:.9}.chip-name{font-size:.65rem;font-weight:600;color:var(--text);line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.chip-amount{font-family:var(--font-mono);font-size:.68rem;color:var(--empty);line-height:1.2}.expense-chip.paid .chip-amount{color:var(--ok)}.chip-check{position:absolute;top:2px;left:5px;font-size:.62rem;color:var(--ok)}.annual-mobile-month{display:none}.annual-items-table{width:100%;border-collapse:separate;border-spacing:0;margin-top:var(--space-3);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.annual-items-table th{background:var(--surface-alt)}.annual-items-table td.amount{font-family:var(--font-mono);font-weight:500}.annual-items-table tbody tr:hover td{background:#1c171306;cursor:pointer}.annual-items-table tfoot td{font-weight:600;border-top:2px solid var(--border-strong)}.annual-items-table tfoot .amount{font-family:var(--font-mono);font-size:1rem}.status-paid{color:var(--ok);font-size:.82rem}.status-pending{color:var(--empty);font-size:.82rem}.annual-item-row.row-over td{background:#dc26260f}.annual-item-row.row-done td{background:#16a34a0f}.annual-item-row.row-overdue td{background:#ea580c0f}.annual-item-row.row-future td{background:#6366f10a}.annual-item-row.row-over:hover td{background:#dc26261f!important}.annual-item-row.row-done:hover td{background:#16a34a1f!important}.annual-item-row.row-overdue:hover td{background:#ea580c1f!important}.annual-item-row.row-future:hover td{background:#6366f114!important}.spent-cell.row-over{color:var(--over);font-weight:600}.spent-cell.row-done{color:var(--ok)}.spent-cell.row-overdue{color:#ea580c}.spent-cell.row-future{color:var(--text-muted)}.annual-status-badge{display:inline-block;padding:2px 9px;border-radius:99px;font-size:.7rem;font-weight:600;white-space:nowrap}.annual-status-badge.row-over{background:#dc26261f;color:#b91c1c}.annual-status-badge.row-done{background:#16a34a1f;color:#15803d}.annual-status-badge.row-overdue{background:#ea580c1f;color:#c2410c}.annual-status-badge.row-future{background:#6366f11a;color:#4338ca}.annual-dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#1c171366;z-index:var(--z-overlay);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:grid;place-items:center;padding:var(--space-4)}.annual-dialog{width:min(520px,100%);max-height:min(760px,calc(100vh - var(--space-8)));background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);overflow:auto}.annual-dialog-header,.annual-dialog-footer{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--border)}.annual-dialog-footer{justify-content:flex-start;border-bottom:none;border-top:1px solid var(--border);flex-wrap:wrap}.annual-dialog-header h2{margin:0;font-size:1rem;font-weight:600}.annual-dialog-body{padding:var(--space-6);display:grid;gap:var(--space-5)}.annual-pay-box{display:grid;gap:var(--space-3);background:var(--surface-alt);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-4)}.ok-text{color:var(--ok)}.over-text{color:var(--over)}.okText{color:var(--ok)}.overText{color:var(--over)}.muted{color:var(--text-muted)}@media (min-width: 1600px){html{font-size:18px}.main-content{max-width:1660px;padding-inline:var(--space-8)}.topbar{height:58px;padding-inline:var(--space-8)}.donut-card{min-height:192px;padding-block:var(--space-4)}.donut-ring-wrap,.donut-ring-wrap svg{width:120px;height:120px}.donut-diff,.donut-planned{max-width:104px}.donut-name{font-size:.88rem;max-width:130px}.tx-list{max-height:560px}}@media (min-width: 2200px){html{font-size:19px}.main-content{max-width:1860px}.tx-list{max-height:640px}}@media (max-width: 1024px){.topbar-nav{gap:var(--space-3)}.topbar-nav button{font-size:.78rem}.donut-row{grid-template-columns:repeat(3,minmax(0,1fr))}.compare-chart-grid,.compare-subcategory-grid,.budget-planner.has-installments,.budget-planner.has-planning-notes,.budget-planner.has-installments.has-planning-notes{grid-template-columns:1fr}.installment-sidebar,.planning-notes-sidebar{position:static;max-height:none;overflow:visible}.sidebar-header{padding:var(--space-3) var(--space-4)}.sidebar-add-all{width:auto;margin-top:0;margin-inline-start:auto}.sidebar-items{flex-direction:row;overflow-x:auto;gap:var(--space-3);padding:var(--space-3) var(--space-4);scrollbar-width:none}.sidebar-items::-webkit-scrollbar{display:none}.installment-item{min-width:160px;max-width:160px;border:1px solid var(--border);border-radius:var(--radius-lg);flex-shrink:0;background:var(--surface)}.planning-note-item{min-width:220px;max-width:260px;border:1px solid var(--border);border-radius:var(--radius-lg);flex-shrink:0;background:var(--surface)}}@media (max-width: 768px){.budget-columns{grid-template-columns:1fr}.budget-columns>*:first-child{border-left:none;border-bottom:2px solid var(--border-strong)}.budget-footer{gap:var(--space-3);padding:var(--space-3) var(--space-4);flex-wrap:wrap}.budget-footer-item.reference{padding-inline-start:0;border-inline-start:none}.loans-total-strip{align-items:flex-start;flex-direction:column;gap:var(--space-3)}.loans-total-breakdown{white-space:normal}.mortgage-card-header{align-items:flex-start;flex-direction:column}.mortgage-track-row{grid-template-columns:2rem minmax(0,1fr) 5rem}.track-payment,.track-balance,.track-end{grid-column:2 / -1}.loans-table{background:transparent;border:none;box-shadow:none;display:grid;gap:var(--space-3);overflow:visible}.loans-table-row.header{display:none}.loans-table-row{grid-template-columns:1fr auto;gap:var(--space-2);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.loans-table-row>span:first-child{grid-column:1 / -1}.loans-table-row.total{border:1px solid var(--border-strong)}}@media (max-width: 640px){.topbar{padding:0 var(--space-4)}.topbar-nav{display:none}.mobile-nav{display:grid;grid-template-columns:repeat(9,minmax(64px,1fr))}.main-content{padding:0 var(--space-4) calc(var(--space-16) + var(--space-6))}.donut-row{grid-template-columns:repeat(2,minmax(0,1fr))}.account-status{align-items:stretch;flex-direction:column;gap:var(--space-3)}.account-status-meta{justify-content:space-between;white-space:normal}.rule-grid{grid-template-columns:1fr}.rule-head{display:none}.row-actions{justify-content:stretch}.tx-row{grid-template-columns:1fr 5.8rem;grid-template-rows:auto auto auto;-moz-column-gap:var(--space-2);column-gap:var(--space-2);row-gap:3px;padding:var(--space-3) var(--space-4)}.tx-merchant-wrap{grid-column:1;grid-row:1}.tx-amount{grid-column:2;grid-row:1;text-align:start}.tx-date{grid-column:1;grid-row:2;display:inline-flex;align-items:center}.tx-payment-cell{grid-column:1;grid-row:2;margin-inline-start:3.6rem}.source-badge{grid-column:1;grid-row:2;justify-self:start;margin-inline-start:8.4rem}.tx-user-note{grid-column:1 / -1;grid-row:3;white-space:normal}.tx-user-note.empty{display:none}.tx-edit{grid-column:2;grid-row:2;justify-self:end;opacity:1}.duplicate-review-actions{grid-column:1 / -1;grid-row:4;align-items:stretch;flex-direction:column}.duplicate-review-buttons{width:100%}.duplicate-review-buttons .btn{flex:1}.activity-row{grid-template-columns:1fr;gap:var(--space-3)}.activity-side{justify-content:space-between}.activity-link{min-width:84px}.budget-row{padding-inline:var(--space-4)}.budget-row.sub{padding-right:var(--space-8)}.history-trigger{opacity:1}.history-popover{width:min(340px,calc(100vw - 24px))}.budget-footer-value{font-size:.95rem}.fund-widget{align-items:stretch;flex-direction:column;gap:var(--space-3)}.compare-chart-card{padding:var(--space-4)}.compare-card-header{flex-direction:column;gap:var(--space-3)}.compare-card-stats{justify-items:start}.compare-overview-stats{justify-content:flex-start}.compare-chart-wrap{overflow-x:auto;padding-bottom:var(--space-1)}.compare-chart-wrap .recharts-responsive-container{min-width:560px}.fund-widget-meta{gap:var(--space-2)}.annual-summary,.annual-create-panel{grid-template-columns:1fr}.annual-summary-value{font-size:1.35rem}.annual-timeline{background:transparent;border:none;box-shadow:none;overflow:visible}.annual-curve-wrap,.month-columns{display:none}.annual-mobile-month{display:grid;gap:var(--space-3)}.month-scroll-strip{display:flex;gap:var(--space-2);overflow-x:auto;padding-bottom:var(--space-1)}.month-scroll-strip button{flex:0 0 48px;height:36px;padding:0;font-family:var(--font-mono)}.month-scroll-strip button.active{background:var(--text);color:var(--text-inverse);border-color:var(--text)}.mobile-month-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--space-5);display:grid;gap:var(--space-4)}.mobile-month-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3)}.mobile-month-head div{display:grid;gap:2px}.mobile-month-head span{color:var(--text-muted);font-size:.8rem}.mobile-bar-chart{height:96px;display:grid;grid-template-columns:repeat(12,1fr);align-items:end;gap:3px;border-bottom:1px solid var(--border)}.mobile-bar-chart span{min-height:6px;background:var(--border-strong);border-radius:3px 3px 0 0}.mobile-bar-chart span.active{background:var(--text)}.annual-items-table thead{display:none}.annual-items-table,.annual-items-table tbody,.annual-items-table tfoot,.annual-items-table tr,.annual-items-table td{display:block}.annual-items-table tr{border-bottom:1px solid var(--border);padding:var(--space-3) var(--space-4)}.annual-items-table td{border-bottom:none;padding:2px 0}.annual-items-table tfoot tr{border-bottom:none;border-top:2px solid var(--border-strong)}.import-row-main,.import-edit-grid,.duplicate-compare{grid-template-columns:1fr}.import-confirm-bar{position:static;flex-direction:column;align-items:stretch}.reconciliation-header{flex-direction:column}.dashboard-header-side{width:100%;align-items:stretch;justify-content:space-between;flex-wrap:wrap}.dashboard-meetings{align-items:flex-start;flex-wrap:wrap;white-space:normal}.page-header{padding-top:var(--space-5)}.summary-amounts{min-width:120px;font-size:.9rem}}@media (max-width: 360px){.donut-row{grid-template-columns:1fr}}
