:root{color:var(--color-text-primary);background:radial-gradient(ellipse 85% 38rem at 50% 0%, var(--color-page-glow), transparent 100%), var(--color-page);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--color-page:#f1f3ed;--color-page-glow:#f8f5e9;--color-surface:#fff;--color-surface-soft:#e9eee8;--color-surface-selected:#e6efe7;--color-surface-action:#edf5ee;--color-surface-income:#dfeee2;--color-surface-expense:#f8e4de;--color-surface-balance:#f3e8cd;--color-surface-danger:#fff8f6;--color-surface-warning:#fff9eb;--color-text-primary:#26332b;--color-text-secondary:#5f6b62;--color-text-tertiary:#49564e;--color-on-primary:#fff;--color-on-danger:#fff;--color-border-card:#e6eae5;--color-border-subtle:#edf0ec;--color-border-control:#808a82;--color-border-warning:#f0d29b;--color-primary:#3e704a;--color-primary-hover:#315d3d;--color-focus:#6c9875;--color-income:#397448;--color-expense:#a84f40;--color-danger:#9b2c2c;--color-danger-hover:#862222;--color-warning:#805b1d;--color-balance:#a87b20;--color-selection-text:#24402a;--color-selection-surface:#d9e9dc;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{min-width:0;min-height:100vh;margin:0}button,input,select{font:inherit}button,input,select,a{-webkit-tap-highlight-color:transparent}::selection{color:var(--color-selection-text);background:var(--color-selection-surface)}#root{min-height:100vh}.storage-message{color:var(--color-text-secondary);padding-top:28px}.storage-message h1{color:var(--color-text-primary);margin:0 0 8px;font-size:22px}.storage-message p{max-width:520px;line-height:1.5}.app-shell{width:min(1120px,100% - 32px);margin:0 auto}.page-heading{flex-direction:column;align-items:stretch;gap:16px;padding:25px 0 18px;display:flex}.eyebrow{color:var(--color-text-secondary);letter-spacing:1.25px;margin:0 0 8px;font-size:11px;font-weight:750}.month-picker{color:var(--color-text-secondary);justify-content:space-between;align-items:center;gap:12px;font-size:13px;font-weight:600;display:flex}.month-picker input{border:1px solid var(--color-border-control);width:min(170px,58%);min-height:44px;color:var(--color-text-primary);background:var(--color-surface);font:inherit;border-radius:9px;padding:0 12px;font-size:16px}.summary-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.summary-card{border:1px solid var(--color-border-card);background:var(--color-surface);border-radius:12px;min-width:0;padding:12px 9px 11px}.summary-heading{align-items:center;gap:5px;display:flex}.summary-heading h2{color:var(--color-text-secondary);margin:0;font-size:clamp(11px,2.7vw,13px);font-weight:600}.summary-dot{background:var(--color-text-secondary);border-radius:50%;width:8px;height:8px}.income-card .summary-dot{background:var(--color-income)}.income-card{background:var(--color-surface-income)}.expense-card .summary-dot{background:var(--color-expense)}.expense-card{background:var(--color-surface-expense)}.balance-card .summary-dot{background:var(--color-balance)}.balance-card{background:var(--color-surface-balance)}.summary-value{color:var(--color-text-primary);letter-spacing:-.8px;overflow-wrap:anywhere;font-variant-numeric:tabular-nums;margin:10px 0 3px;font-size:18px;font-weight:700}.balance-card{grid-area:1/1/auto/-1}.balance-card .summary-value{font-size:clamp(20px,6vw,26px)}.summary-caption{color:var(--color-text-secondary);margin:0;font-size:11px;line-height:1.35}.storage-warning{border:1px solid var(--color-border-warning);color:var(--color-warning);background:var(--color-surface-warning);border-radius:8px;margin:14px 0 0;padding:10px 13px;font-size:12px}.content-grid{grid-template-columns:minmax(0,1fr);align-items:start;gap:12px;margin-top:14px;display:grid}.transactions-panel{order:-1}.panel{border:1px solid var(--color-border-card);background:var(--color-surface);border-radius:13px;min-width:0}.form-panel{padding:17px 15px}.panel-heading,.transactions-heading{justify-content:space-between;align-items:center;gap:16px;display:flex}.panel-heading h2,.transactions-heading h2{color:var(--color-text-primary);letter-spacing:-.4px;margin:0;font-size:18px;font-weight:650}.panel-heading .eyebrow,.transactions-heading .eyebrow{margin-bottom:5px}.form-icon{width:32px;height:32px;color:var(--color-primary);background:var(--color-surface-selected);border-radius:10px;place-items:center;display:grid}.form-panel form{margin-top:20px;display:grid}.type-switch{background:var(--color-surface-soft);border:0;border-radius:10px;grid-template-columns:1fr 1fr;gap:4px;margin:0 0 19px;padding:4px;display:grid}.type-switch legend{clip:rect(0, 0, 0, 0);white-space:nowrap;clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.type-option{min-height:44px;color:var(--color-text-secondary);cursor:pointer;border:1px solid #0000;border-radius:7px;justify-content:center;align-items:center;font-size:13px;font-weight:600;transition:background .14s,color .14s,box-shadow .14s;display:flex}.type-option input{opacity:0;width:1px;height:1px;position:absolute}.type-option:has(input:focus-visible){outline:2px solid var(--color-focus);outline-offset:2px}.type-option.active{color:var(--color-text-primary);background:var(--color-surface);border-color:var(--color-border-control);box-shadow:0 1px 3px #17281a0d}.field-label{color:var(--color-text-secondary);margin:0 0 6px;font-size:13px;font-weight:650}.form-control{box-sizing:border-box;border:1px solid var(--color-border-control);width:100%;min-height:44px;color:var(--color-text-primary);background:var(--color-surface);font:inherit;border-radius:8px;outline:none;margin-bottom:14px;padding:0 11px;font-size:16px;transition:border-color .14s,box-shadow .14s}.form-control:focus{border-color:var(--color-focus);box-shadow:0 0 0 3px #4e865c1a}.amount-input-wrap{position:relative}.amount-input-wrap>span{z-index:1;color:var(--color-text-secondary);font-size:13px;position:absolute;top:13px;left:11px}.amount-input{padding-left:36px}.submit-button{min-height:48px;color:var(--color-on-primary);background:var(--color-primary);cursor:pointer;font:inherit;border:0;border-radius:8px;justify-content:space-between;align-items:center;margin-top:2px;padding:0 14px;font-size:14px;font-weight:650;transition:background .14s,transform .14s;display:flex}.submit-button:hover{background:var(--color-primary-hover)}.submit-button:active{transform:translateY(1px)}.submit-button:focus-visible{outline:3px solid var(--color-focus);outline-offset:3px}.submit-button svg{flex-shrink:0}.local-note{color:var(--color-text-secondary);text-align:center;margin:13px 0 0;font-size:12px;line-height:1.5}.transactions-panel{background:0 0;border:0;padding:0}.transaction-count{color:var(--color-text-tertiary);background:var(--color-surface-soft);white-space:nowrap;border-radius:20px;padding:5px 9px;font-size:12px}.empty-state{text-align:center;align-content:center;justify-items:center;min-height:190px;padding:20px;display:grid}.empty-icon{width:43px;height:43px;color:var(--color-primary);background:var(--color-surface-selected);border-radius:14px;place-items:center;margin-bottom:13px;display:grid}.transaction-empty-monogram{object-fit:contain;border-radius:20px;width:80px;height:80px;margin-bottom:16px;display:block}.empty-state h3{color:var(--color-text-primary);margin:0;font-size:13px;font-weight:650}.empty-state p{color:var(--color-text-secondary);margin:5px 0 0;font-size:11px}.date-groups{gap:10px;margin-top:14px;display:grid}.date-group{border:1px solid var(--color-border-card);background:var(--color-surface);border-radius:11px;padding:8px 11px}.date-group-header{border-bottom:1px solid var(--color-border-subtle);flex-direction:column;align-items:start;gap:5px;padding:9px 0;display:flex}.date-group-header h3{color:var(--color-text-tertiary);text-transform:capitalize;margin:0;font-size:13px;font-weight:650}.daily-totals{flex-wrap:wrap;justify-content:start;gap:10px;font-size:12px;font-weight:650;display:flex}.daily-income,.transaction-amount.income{color:var(--color-income)}.daily-expense,.transaction-amount.expense{color:var(--color-expense)}.daily-empty{color:var(--color-text-secondary);font-weight:500}.transaction-list{margin:0;padding:0;list-style:none}.transaction-row{border-bottom:1px solid var(--color-border-subtle);grid-template-columns:30px minmax(0,1fr) 44px;align-items:center;gap:6px;min-height:60px;padding:12px 0;display:grid}.transaction-row:last-child{border-bottom:0}.transaction-type-icon{border-radius:10px;place-items:center;width:31px;height:31px;display:grid}.transaction-type-icon.income{color:var(--color-income);background:var(--color-surface-income)}.transaction-type-icon.expense{color:var(--color-expense);background:var(--color-surface-expense)}.transaction-copy{grid-column:2;gap:3px;min-width:0;display:grid}.transaction-type-icon,.transaction-delete-button{grid-row:1/3}.transaction-delete-button{grid-column:3}.transaction-category{color:var(--color-text-tertiary);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:650;overflow:hidden}.transaction-description{color:var(--color-text-secondary);overflow-wrap:anywhere;font-size:12px}.transaction-amount{overflow-wrap:anywhere;font-variant-numeric:tabular-nums;grid-column:2;font-size:12px;font-weight:650}.transaction-delete-button,.transaction-delete-spacer{place-items:center;width:44px;height:44px;display:grid}.transaction-delete-button{color:var(--color-danger);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:7px;justify-self:end}.transaction-delete-button:hover,.transaction-delete-button:focus-visible{border-color:var(--color-danger);color:var(--color-danger);background:var(--color-surface-danger);outline:none}.sort-note{color:var(--color-text-secondary);text-align:right;margin:15px 0 0;font-size:12px}.debt-section{padding-top:38px;scroll-margin-top:20px}.debt-section-heading{flex-direction:column;align-items:stretch;gap:14px;margin-bottom:14px;display:flex}.debt-section-heading h2{color:var(--color-text-primary);letter-spacing:-1px;margin:0;font-size:28px;font-weight:650}.debt-description{color:var(--color-text-secondary);margin:6px 0 0;font-size:14px}.debt-summary{gap:8px;display:flex}.debt-summary>div{border:1px solid var(--color-border-card);background:var(--color-surface);border-radius:10px;flex:1;gap:5px;min-width:0;padding:10px;display:grid}.debt-summary span{color:var(--color-text-secondary);font-size:12px}.debt-summary strong{color:var(--color-text-primary);letter-spacing:-.3px;font-size:clamp(12px,3.5vw,16px)}.debt-content-grid{grid-template-columns:minmax(0,1fr);align-items:start;gap:12px;display:grid}.loan-form-panel,.loan-list-panel{padding:17px 15px}.loan-form-panel h3,.loan-list-panel h3{color:var(--color-text-primary);letter-spacing:-.4px;margin:0;font-size:17px;font-weight:650}.loan-form-panel form{margin-top:19px;display:grid}.loan-form-row{grid-template-columns:minmax(0,1fr);gap:0;display:grid}.loan-form-row>div,.loan-form-row .form-control{min-width:0}.loan-calculation-note{color:var(--color-text-secondary);margin:-1px 0 13px;font-size:12px;line-height:1.5}.form-error{color:var(--color-danger);margin:0 0 12px;font-size:11px}.loan-empty-state{min-height:250px}.loan-list{gap:10px;margin-top:18px;display:grid}.loan-group{gap:10px;display:grid}.loan-group-heading{min-height:28px;color:var(--color-text-secondary);align-items:center;gap:8px;margin:0;font-size:12px;font-weight:650;display:flex}.loan-group-heading h4{color:inherit;font-size:inherit;font-weight:inherit;margin:0}.loan-group-count{min-width:22px;min-height:22px;color:var(--color-text-secondary);background:var(--color-surface-soft);border-radius:999px;justify-content:center;align-items:center;padding:0 7px;font-size:11px;font-weight:600;display:inline-flex}.loan-group-empty{border:1px dashed var(--color-border-card);color:var(--color-text-secondary);border-radius:10px;margin:0;padding:12px;font-size:13px}.loan-completed-group{border-top:1px solid var(--color-border-subtle);padding-top:10px}.loan-completed-heading{cursor:pointer;list-style:none}.loan-completed-heading::-webkit-details-marker{display:none}.loan-completed-heading .loan-chevron{margin-left:auto}.loan-completed-group[open]>.loan-completed-heading .loan-chevron{transform:rotate(180deg)}.loan-completed-list{gap:10px;margin-top:8px;display:grid}.loan-card{border:1px solid var(--color-border-card);background:var(--color-surface);border-radius:10px;overflow:hidden}.loan-summary{cursor:pointer;grid-template-columns:minmax(0,1fr) auto 10px;align-items:center;gap:8px;min-height:68px;padding:12px 10px;list-style:none;display:grid}.loan-summary::-webkit-details-marker{display:none}.loan-summary-copy,.loan-summary-balance{gap:4px;min-width:0;display:grid}.loan-summary-title{align-items:center;gap:8px;min-width:0;display:flex}.loan-summary-title strong{min-width:0;color:var(--color-text-tertiary);text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.paid-badge{color:#2f6b3d;letter-spacing:.04em;background:#d3e7d6;border-radius:999px;flex:none;padding:3px 7px;font-size:9px;font-weight:750;line-height:1.2}.loan-summary-copy small,.loan-summary-balance small{color:var(--color-text-secondary);font-size:12px}.loan-summary-balance{text-align:right}.loan-summary-balance strong{color:var(--color-primary);white-space:nowrap;font-size:14px}.loan-chevron{color:var(--color-text-secondary);transition:transform .14s}.loan-card[open] .loan-chevron{transform:rotate(180deg)}.loan-details{border-top:1px solid var(--color-border-subtle);padding:0 10px 12px}.loan-breakdown{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:13px 0;display:grid}.loan-breakdown span{color:var(--color-text-secondary);justify-content:space-between;gap:7px;font-size:12px;display:flex}.loan-breakdown strong{color:var(--color-text-tertiary);white-space:nowrap;font-weight:600}.loan-details h4{color:var(--color-text-tertiary);margin:4px 0 8px;font-size:13px;font-weight:650}.loan-tools{border-top:1px solid var(--color-border-subtle);justify-content:space-between;align-items:start;gap:8px;padding:10px 0 13px;display:flex}.loan-tools>span{color:var(--color-text-secondary);font-size:12px;line-height:1.4}.delete-button{border:1px solid var(--color-danger);min-height:44px;color:var(--color-danger);background:var(--color-surface-danger);cursor:pointer;font:inherit;border-radius:7px;flex-shrink:0;justify-content:center;align-items:center;gap:5px;padding:0 10px;font-size:12px;font-weight:650;display:inline-flex}.delete-button:hover,.delete-button:focus-visible{border-color:var(--color-danger);background:var(--color-surface-danger);outline:none}.confirm-overlay{z-index:20;background:#17231cb3;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.confirm-dialog{border:1px solid var(--color-border-card);background:var(--color-surface);border-radius:14px;width:min(100%,390px);padding:23px;box-shadow:0 20px 60px #10201430}.confirm-dialog h2{color:var(--color-text-primary);letter-spacing:-.4px;margin:0;font-size:19px;font-weight:650}.confirm-dialog>p:last-of-type{color:var(--color-text-secondary);margin:9px 0 20px;font-size:12px;line-height:1.6}.confirm-actions{justify-content:end;gap:8px;display:flex}.cancel-button{border:1px solid var(--color-border-control);min-height:44px;color:var(--color-text-secondary);background:var(--color-surface);cursor:pointer;font:inherit;border-radius:7px;padding:0 13px;font-size:12px;font-weight:600}.cancel-button:hover,.cancel-button:focus-visible{background:var(--color-surface-soft);outline:2px solid var(--color-focus);outline-offset:1px}.confirm-delete-button{border-color:var(--color-danger);min-height:44px;color:var(--color-on-danger);background:var(--color-danger);padding-inline:16px}.confirm-delete-button:hover,.confirm-delete-button:focus-visible{border-color:var(--color-danger-hover);color:var(--color-on-danger);background:var(--color-danger-hover)}.installment-list{margin:0;padding:0;list-style:none}.installment-row{border-top:1px solid var(--color-border-subtle);gap:8px;padding:10px 0;scroll-margin:20px 0 120px;display:grid}.installment-row:target{outline:2px solid var(--color-primary);outline-offset:4px;border-radius:8px}.installment-info,.installment-action{gap:4px;display:grid}.installment-info strong,.installment-action>strong{color:var(--color-text-tertiary);font-size:13px;font-weight:650}.installment-info>span{color:var(--color-text-secondary);font-size:12px}.installment-title{align-items:center;gap:7px;display:flex}.installment-action{grid-template-columns:minmax(0,1fr) minmax(0,1fr);place-items:end stretch;gap:8px;display:grid}.installment-action>strong{grid-column:1/-1}.payment-date-label{min-width:0;color:var(--color-text-secondary);justify-items:start;gap:3px;font-size:12px;display:grid}.payment-date-input{border:1px solid var(--color-border-control);width:100%;min-height:44px;color:var(--color-text-primary);background:var(--color-surface);font:inherit;border-radius:6px;padding:0 6px;font-size:16px}.payment-date-input:focus-visible{border-color:var(--color-focus);outline:2px solid color-mix(in srgb, var(--color-focus) 35%, transparent);outline-offset:1px}.payment-button{border:1px solid var(--color-border-control);min-height:44px;color:var(--color-primary);background:var(--color-surface-action);cursor:pointer;font:inherit;border-radius:7px;padding:0 8px;font-size:12px;font-weight:650}.payment-button:hover{border-color:var(--color-primary);background:var(--color-surface-selected)}.payment-button:disabled{cursor:not-allowed;opacity:.55}.payment-button.paid{border-color:var(--color-danger);color:var(--color-danger);background:var(--color-surface-danger);font-weight:650}.payment-button.paid:hover{border-color:var(--color-danger-hover);color:var(--color-on-danger);background:var(--color-danger)}.payment-button:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}@media (width>=760px){.app-shell{width:min(1120px,100% - 64px)}.page-heading{flex-direction:row;justify-content:flex-end;align-items:end;gap:24px;padding:34px 0 24px}.month-picker{gap:6px;display:grid}.month-picker input{width:auto;min-width:160px;font-size:13px}.summary-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.balance-card{grid-area:auto}.summary-card{padding:17px 19px 15px}.summary-heading{gap:8px}.summary-heading h2{font-size:12px}.summary-value,.balance-card .summary-value{font-size:clamp(18px,2.5vw,25px)}.summary-caption{font-size:12px}.content-grid{grid-template-columns:minmax(280px,.78fr) minmax(0,1.5fr);gap:16px;margin-top:18px}.transactions-panel,.form-panel{order:0}.form-panel{padding:21px}.form-control{font-size:14px}.transactions-panel{padding:0}.empty-state{min-height:260px}.date-group-header{flex-direction:row;justify-content:space-between;align-items:center;gap:12px}.daily-totals{justify-content:end}.transaction-row{grid-template-columns:33px minmax(0,1fr) auto 44px;gap:10px;min-height:59px}.transaction-amount{grid-area:1/3;max-width:38vw;font-size:12px}.transaction-copy,.transaction-type-icon,.transaction-delete-button{grid-row:1}.transaction-delete-button{grid-column:4}.debt-section{padding-top:50px}.debt-section-heading{flex-direction:row;justify-content:space-between;align-items:end;gap:24px;margin-bottom:18px}.debt-summary{gap:10px}.debt-summary>div{flex:initial;min-width:120px;padding:11px 13px}.debt-summary span{font-size:12px}.debt-summary strong{font-size:16px}.debt-content-grid{grid-template-columns:minmax(320px,.9fr) minmax(0,1.35fr);gap:16px}.loan-form-panel,.loan-list-panel{padding:21px}.loan-form-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}.loan-summary{grid-template-columns:minmax(0,1fr) auto 14px;gap:14px;min-height:72px;padding:13px 14px}.loan-tools{align-items:center;gap:12px}.installment-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.installment-action{flex-shrink:0;grid-template-columns:minmax(0,1fr);justify-items:end}.installment-action>strong{grid-column:auto}.payment-date-label{justify-items:end}.payment-date-input{width:132px;min-height:40px;font-size:12px}}.app-shell{padding-top:max(16px, env(safe-area-inset-top));padding-bottom:calc(100px + env(safe-area-inset-bottom))}.home-content{grid-template-columns:minmax(0,1fr);margin-top:14px}.app-navigation.app-navigation-without-add{grid-template-columns:repeat(4,minmax(0,1fr))}.app-navigation.app-navigation-without-add>.app-nav-link{grid-column:auto}.home-heading h1{letter-spacing:-.8px;margin:0;font-size:28px}.home-heading p{color:var(--color-text-secondary);margin:6px 0 0;font-size:14px}.home-heading{margin-right:auto}.home-month-picker{gap:8px;display:grid}.home-month-picker>span{color:var(--color-text-secondary);font-size:12px;font-weight:650}.month-navigation{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.empty-add-button{min-height:44px;color:var(--color-on-primary);background:var(--color-primary);cursor:pointer;border:0;border-radius:10px;margin-top:18px;padding:10px 18px;font-weight:650}.empty-add-button:hover{background:var(--color-primary-hover)}.empty-add-button:focus-visible,.receipt-dismiss:focus-visible,.app-nav-link:focus-visible,.modal-close:focus-visible,.feedback-actions a:focus-visible{outline:3px solid var(--color-focus);outline-offset:3px}.finance-feedback{margin-bottom:8px}.save-feedback{min-height:28px;color:var(--color-text-secondary);padding:4px 0;font-size:12px}.save-feedback p{align-items:start;gap:6px;margin:0;line-height:1.5;display:flex}.save-feedback svg{flex-shrink:0;margin-top:1px}.save-feedback-error{border:1px solid var(--color-border-warning);color:var(--color-warning);background:var(--color-surface-warning);border-radius:12px;padding:14px}.feedback-actions{flex-wrap:wrap;align-items:center;gap:8px 16px;margin-top:10px;display:flex}.feedback-actions a{min-height:44px;color:var(--color-primary);align-items:center;font-weight:650;display:inline-flex}.payment-receipt{border:1px solid var(--color-border-card);background:var(--color-surface-action);border-radius:12px;justify-content:space-between;gap:12px;margin-top:8px;padding:14px;display:flex}.payment-receipt p{overflow-wrap:anywhere;margin:0 0 10px;font-size:14px;line-height:1.5}.receipt-dismiss{width:44px;height:44px;color:var(--color-text-secondary);cursor:pointer;background:0 0;border:0;border-radius:8px;flex-shrink:0;place-items:center;display:grid}.payment-review h3{overflow-wrap:anywhere;margin:8px 0}.payment-review-amount{overflow-wrap:anywhere;font-variant-numeric:tabular-nums;margin:10px 0 20px;font-size:28px;font-weight:700}.payment-review dl{gap:12px;display:grid}.payment-review dt{color:var(--color-text-secondary);font-size:12px}.payment-review dd{margin:4px 0 0;font-size:14px;font-weight:650}.payment-review>p:last-of-type,.deletion-description{color:var(--color-text-secondary);overflow-wrap:anywhere;font-size:14px;line-height:1.6}.debt-page{padding-top:18px}.debt-page h1{color:var(--color-text-primary);letter-spacing:-1px;margin:0;font-size:28px;font-weight:650}.debt-page-list{margin-top:18px}.monthly-debt-panel{gap:14px;margin-top:16px;padding:16px 15px;display:grid}.monthly-debt-heading{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:12px;display:grid}.monthly-debt-heading .eyebrow{margin-bottom:4px}.monthly-debt-heading h2{color:var(--color-text-primary);letter-spacing:-.4px;margin:0;font-size:18px;font-weight:650}.monthly-debt-controls{flex-wrap:wrap;grid-area:2/1/auto/-1;align-items:center;gap:5px;display:flex}.month-step-button{border:1px solid var(--color-border-control);width:40px;height:40px;color:var(--color-text-primary);background:var(--color-surface);cursor:pointer;border-radius:10px;flex:none;place-items:center;padding:0;display:grid}.month-step-button:hover,.month-step-button:focus-visible,.current-month-button:hover,.current-month-button:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}.monthly-debt-month-picker{border:1px solid var(--color-border-control);width:158px;min-height:40px;color:var(--color-text-primary);background:var(--color-surface);cursor:pointer;border-radius:10px;justify-content:space-between;align-items:center;gap:8px;padding:0 10px;font-size:13px;font-weight:600;display:flex;position:relative}.monthly-debt-month-picker:focus-within{outline:3px solid var(--color-focus);outline-offset:2px}.monthly-debt-month-picker input{opacity:0;cursor:pointer;width:100%;height:100%;font:inherit;position:absolute;inset:0}.monthly-debt-month-picker svg{color:var(--color-text-secondary);flex:none}.monthly-debt-month-picker span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.current-month-button{border:1px solid var(--color-border-control);min-height:40px;color:var(--color-primary);background:var(--color-surface-selected);cursor:pointer;font:inherit;border-radius:10px;padding:0 10px;font-size:12px;font-weight:650}.monthly-debt-export{border:1px solid var(--color-border-control);width:40px;height:40px;color:var(--color-primary);background:var(--color-surface);cursor:pointer;font:inherit;border-radius:10px;flex:0 0 40px;grid-area:1/2;justify-content:center;align-items:center;padding:0;display:grid}.monthly-debt-export:hover,.monthly-debt-export:focus-visible{border-color:var(--color-primary);outline:none}.monthly-debt-export:disabled{cursor:progress;opacity:.7}.monthly-debt-export-error{color:var(--color-danger);font-size:11px}.monthly-debt-metrics{gap:7px;display:grid}.monthly-debt-metric{border:1px solid var(--color-border-card);background:var(--color-surface);border-radius:13px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:4px 12px;min-width:0;padding:12px 14px;display:grid}.monthly-debt-metric span{color:var(--color-text-secondary);font-size:13px;line-height:1.3}.monthly-debt-metric small{color:var(--color-text-secondary);text-align:right;grid-column:2;font-size:11px;line-height:1.3}.monthly-debt-metric strong{min-width:0;color:var(--color-text-primary);text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums;font-size:clamp(13px,4vw,17px);line-height:1.25}.monthly-debt-total{background:var(--color-surface-expense)}.monthly-debt-total>span{color:var(--color-text-primary);font-weight:600}.monthly-debt-total strong{font-size:clamp(15px,4.4vw,19px)}.monthly-debt-empty{border:1px dashed var(--color-border-card);color:var(--color-text-secondary);text-align:center;border-radius:11px;padding:16px 12px;font-size:13px}.monthly-debt-details{color:var(--color-text-secondary);font-size:12px}.monthly-debt-details>summary{width:fit-content;color:var(--color-primary);cursor:pointer;font-weight:650}.monthly-debt-details ul{gap:0;margin:8px 0 0;padding:0;list-style:none;display:grid}.monthly-debt-details li{border-top:1px solid var(--color-border-card);cursor:default;touch-action:pan-y;-webkit-user-select:none;user-select:none;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;padding:10px 0;display:flex}.monthly-debt-details li.is-paid{background:color-mix(in srgb, var(--color-surface-income) 50%, var(--color-surface));border-radius:6px;padding-inline:9px}.monthly-debt-details li.is-selected{outline:2px solid var(--color-primary);background:var(--color-surface-selected);padding-inline:9px}.monthly-debt-select-button{border:1px solid var(--color-border-control);color:#0000;background:var(--color-surface);cursor:pointer;border-radius:50%;flex:0 0 30px;place-items:center;width:30px;height:30px;padding:0;display:grid}.monthly-debt-select-button[aria-pressed=true]{border-color:var(--color-primary);color:var(--color-on-primary);background:var(--color-primary)}.monthly-debt-details li>span{gap:3px;min-width:0;display:grid}.monthly-debt-details li strong{overflow-wrap:anywhere;color:var(--color-text-primary);font-size:12px}.monthly-debt-details li small{color:var(--color-text-secondary);font-size:11px}.monthly-debt-details li.is-paid .monthly-debt-status{color:var(--color-income);font-weight:650}.monthly-debt-status-sr-only{clip:rect(0, 0, 0, 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.monthly-debt-payment-link{width:fit-content;color:var(--color-primary);text-underline-offset:2px;font-size:11px;font-weight:650;text-decoration:underline}.monthly-debt-payment-link:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:2px}.monthly-debt-item-amount{text-align:right;flex:none}.monthly-debt-selection{z-index:3;border:1px solid var(--color-primary);color:var(--color-on-primary);background:var(--color-primary);border-radius:12px;justify-content:space-between;align-items:center;gap:12px;margin-top:12px;padding:12px 14px;display:flex;position:sticky;bottom:76px;box-shadow:0 8px 24px #25482e35}.monthly-debt-selection>div{gap:2px;display:grid}.monthly-debt-selection span{font-size:12px}.monthly-debt-selection strong{font-size:18px}.monthly-debt-selection button{min-height:40px;color:var(--color-on-primary);cursor:pointer;background:0 0;border:1px solid #ffffff80;border-radius:8px;justify-content:center;align-items:center;gap:5px;padding:0 10px;font-size:12px;font-weight:650;display:inline-flex}.monthly-debt-overdue{border:1px solid var(--color-border-warning);color:var(--color-warning);background:var(--color-surface-warning);border-radius:11px;gap:9px;padding:11px 12px;display:grid}.monthly-debt-overdue>div:first-child{gap:3px;display:grid}.monthly-debt-overdue>div:first-child strong{font-size:12px}.monthly-debt-overdue>div:first-child span{font-size:11px}.monthly-debt-overdue .monthly-debt-details,.monthly-debt-overdue .monthly-debt-details>summary,.monthly-debt-overdue .monthly-debt-details li strong{color:var(--color-warning)}.app-navigation{z-index:10;padding:8px 16px calc(8px + env(safe-area-inset-bottom));border-top:1px solid var(--color-border-card);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#ffffffed;grid-template-columns:repeat(5,minmax(0,1fr));align-items:center;gap:8px;display:grid;position:fixed;bottom:0;left:0;right:0}.app-nav-link{min-height:52px;color:var(--color-text-secondary);-webkit-tap-highlight-color:transparent;border-radius:12px;align-content:center;justify-items:center;gap:2px;font-size:12px;font-weight:600;text-decoration:none;display:grid}.app-navigation>.app-nav-link:nth-of-type(2){grid-column:2}.app-navigation>.app-nav-link:nth-of-type(3){grid-column:4}.app-navigation>.app-nav-link:nth-of-type(4){grid-column:5}.app-nav-link[aria-current=page]{color:var(--color-primary);background:var(--color-surface-selected)}.nav-icon{display:block}.floating-action{z-index:12;width:76px;height:64px;color:var(--color-on-primary);background:var(--color-primary);cursor:pointer;font:inherit;border:0;border-radius:18px;align-content:center;justify-items:center;padding:0;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 8px 24px #25482e40}.floating-action span{font-size:11px;font-weight:650}.floating-action:hover,.floating-action:focus-visible{background:var(--color-primary-hover);outline:3px solid var(--color-focus);outline-offset:3px}.fab-plus{display:block}.recurring-page{padding-top:18px}.settings-page{padding-top:20px}.pwa-status{z-index:30;border:1px solid var(--color-border-card);width:min(680px,100% - 24px);color:var(--color-text-primary);background:var(--color-surface);text-align:center;border-top:0;border-radius:0 0 12px 12px;flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;margin:0 auto;padding:10px 14px;font-size:12px;line-height:1.4;display:flex;position:sticky;top:0;box-shadow:0 5px 20px #10201412}.pwa-status-offline{color:var(--color-warning);background:var(--color-surface-warning)}.pwa-status-ready{color:var(--color-primary);background:var(--color-surface-selected)}.pwa-status button{border:1px solid var(--color-border-control);min-height:36px;color:var(--color-primary);background:var(--color-surface);cursor:pointer;font:inherit;border-radius:7px;flex:none;padding:0 9px;font-weight:650}.pwa-status button:disabled{cursor:not-allowed;opacity:.55}.settings-card-heading{align-items:start;gap:11px;display:flex}.settings-card-heading h2{color:var(--color-text-primary);margin:1px 0 0;font-size:15px;font-weight:650}.pwa-action{margin-top:14px}.pwa-install-help{margin-top:13px}.pwa-privacy-note{border-top:1px solid var(--color-border-subtle);margin:13px 0 0;padding-top:11px}.settings-heading{margin-bottom:18px}.settings-heading .eyebrow{margin-bottom:4px}.settings-heading h1{color:var(--color-text-primary);letter-spacing:-.8px;margin:0;font-size:28px;font-weight:650}.settings-heading>p:last-child{color:var(--color-text-secondary);margin:6px 0 0;font-size:13px}.settings-storage-card,.settings-card{border:1px solid var(--color-border-card);background:var(--color-surface);border-radius:14px}.settings-storage-card{align-items:start;gap:12px;padding:15px;display:flex}.settings-storage-icon,.settings-icon{width:38px;height:38px;color:var(--color-primary);background:var(--color-surface-selected);border-radius:11px;flex:none;place-items:center;display:grid}.settings-storage-card strong{color:var(--color-text-primary);font-size:13px;display:block}.settings-storage-card p,.settings-card-heading p{color:var(--color-text-secondary);margin:4px 0 0;font-size:12px;line-height:1.5}.settings-sections{gap:12px;margin-top:14px;display:grid}.settings-card{min-width:0;padding:16px}.settings-card-heading{align-items:start;gap:11px;margin-bottom:15px;display:flex}.settings-card-heading h2{color:var(--color-text-primary);letter-spacing:-.2px;margin:2px 0 0;font-size:16px;font-weight:650}.settings-primary-button,.settings-danger-button,.settings-file-picker{border:1px solid var(--color-primary);min-height:44px;color:var(--color-on-primary);background:var(--color-primary);cursor:pointer;font:inherit;text-align:center;border-radius:9px;justify-content:center;align-items:center;gap:8px;padding:0 15px;font-size:12px;font-weight:650;display:inline-flex}.settings-primary-button:hover,.settings-primary-button:focus-visible,.settings-file-picker:hover,.settings-file-picker:focus-within{border-color:var(--color-primary-hover);background:var(--color-primary-hover);outline:2px solid var(--color-focus);outline-offset:2px}.settings-file-picker{color:var(--color-primary);background:var(--color-surface-selected);position:relative}.settings-file-picker:hover,.settings-file-picker:focus-within{color:var(--color-primary-hover);background:var(--color-surface-soft)}.settings-file-picker input{cursor:pointer;opacity:0;width:100%;height:100%;position:absolute;inset:0}.settings-danger-button{border-color:var(--color-danger);color:var(--color-on-danger);background:var(--color-danger)}.settings-danger-button:hover:not(:disabled),.settings-danger-button:focus-visible:not(:disabled){border-color:var(--color-danger-hover);background:var(--color-danger-hover);outline:2px solid var(--color-focus);outline-offset:2px}.settings-primary-button:disabled,.settings-danger-button:disabled{cursor:not-allowed;opacity:.6}.settings-help,.settings-privacy-note,.settings-feedback,.settings-error,.settings-inline-warning{font-size:11px;line-height:1.5}.settings-help{color:var(--color-text-secondary);margin:7px 0 0}.settings-privacy-note{color:var(--color-text-secondary);align-items:start;gap:6px;margin:14px 0 0;display:flex}.settings-privacy-note svg{flex:none;margin-top:1px}.settings-feedback{color:var(--color-income);margin:10px 0 0}.settings-error{color:var(--color-danger);margin:10px 0 0}.settings-inline-warning{border:1px solid var(--color-border-warning);color:var(--color-warning);background:var(--color-surface-warning);border-radius:9px;margin:12px 0 0;padding:10px 12px}.restore-preview{border:1px solid var(--color-border-card);background:var(--color-page);border-radius:11px;margin-top:16px;padding:13px}.restore-preview-heading{color:var(--color-primary);align-items:center;gap:7px;font-size:12px;display:flex}.restore-file-name{overflow-wrap:anywhere;color:var(--color-text-primary);margin:10px 0 0;font-size:12px;font-weight:650}.restore-counts{gap:7px;margin:13px 0;display:grid}.restore-counts>div{color:var(--color-text-secondary);justify-content:space-between;gap:12px;font-size:12px;display:flex}.restore-counts dd{color:var(--color-text-primary);margin:0;font-weight:650}.restore-replace-note{color:var(--color-warning);margin:0 0 12px;font-size:11px;line-height:1.5}.restore-confirmation>p{color:var(--color-text-secondary);margin:0 0 12px;font-size:13px;line-height:1.55}.restore-confirmation>p+p{margin-bottom:20px;font-size:12px}.recurring-page h1{color:var(--color-text-primary);letter-spacing:-1px;margin:0;font-size:28px;font-weight:650}.recurring-heading{flex-direction:column;gap:14px;margin-bottom:16px;display:flex}.recurring-description{color:var(--color-text-secondary);margin:6px 0 0;font-size:14px;line-height:1.5}.recurring-summary{gap:8px;display:flex}.recurring-summary>div{border:1px solid var(--color-border-card);background:var(--color-surface);border-radius:10px;flex:1;gap:5px;min-width:0;padding:10px;display:grid}.recurring-summary span{color:var(--color-text-secondary);font-size:12px}.recurring-summary strong{color:var(--color-text-primary);text-overflow:ellipsis;white-space:nowrap;font-size:clamp(12px,3.5vw,16px);overflow:hidden}.recurring-list{gap:10px;display:grid}.recurring-card{padding:13px 12px 10px}.recurring-card-main{grid-template-columns:36px minmax(0,1fr) auto;align-items:center;gap:9px;display:grid}.recurring-icon{width:34px;height:34px;color:var(--color-primary);background:var(--color-surface-selected);border-radius:10px;place-items:center;display:grid}.recurring-copy{min-width:0}.recurring-copy h2,.recurring-copy h3{color:var(--color-text-primary);text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:14px;font-weight:650;overflow:hidden}.recurring-copy p{color:var(--color-text-secondary);text-overflow:ellipsis;white-space:nowrap;margin:4px 0 0;font-size:11px;overflow:hidden}.recurring-amount{color:var(--color-text-primary);white-space:nowrap;font-size:12px}.recurring-card-footer{border-top:1px solid var(--color-border-subtle);flex-direction:column;align-items:stretch;gap:9px;margin-top:12px;padding-top:10px;display:flex}.recurring-due{color:var(--color-text-secondary);font-size:12px}.recurring-actions{justify-content:end;gap:7px;display:flex}.recurring-pause-button,.recurring-paid-button{border:1px solid var(--color-border-control);min-height:40px;color:var(--color-text-secondary);background:var(--color-surface);cursor:pointer;font:inherit;white-space:nowrap;border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:0 9px;font-size:11px;font-weight:650;display:inline-flex}.recurring-delete-button{border:1px solid var(--color-border-control);width:40px;height:40px;color:var(--color-danger);background:var(--color-surface);cursor:pointer;border-radius:8px;flex:0 0 40px;place-items:center;padding:0;display:inline-grid}.recurring-delete-button:hover,.recurring-delete-button:focus-visible{border-color:var(--color-danger);background:var(--color-surface-danger);outline:2px solid var(--color-focus);outline-offset:1px}.recurring-pause-button:hover,.recurring-pause-button:focus-visible{border-color:var(--color-focus);outline:2px solid var(--color-focus);outline-offset:1px}.recurring-paid-button{border-color:var(--color-primary);color:var(--color-on-primary);background:var(--color-primary)}.recurring-paid-button:hover,.recurring-paid-button:focus-visible{background:var(--color-primary-hover);outline:2px solid var(--color-focus);outline-offset:1px}.recurring-paused-section{gap:10px;margin-top:24px;display:grid}.recurring-paused-section>h2{color:var(--color-text-secondary);margin:0;font-size:14px;font-weight:650}.recurring-card-paused{opacity:.72}.recurring-resume-footer{flex-direction:row;justify-content:space-between;align-items:center}.recurring-note{color:var(--color-text-secondary);text-align:center;margin:14px 0 0;font-size:11px}.recurring-empty{text-align:center;align-content:center;justify-items:center;min-height:220px;padding:22px;display:grid}.recurring-empty h2{color:var(--color-text-primary);margin:0;font-size:15px;font-weight:650}.recurring-empty p{max-width:280px;color:var(--color-text-secondary);margin:6px 0 0;font-size:12px;line-height:1.5}.app-modal{width:100%;max-width:600px;max-height:min(90dvh,900px);padding:20px 18px calc(24px + env(safe-area-inset-bottom));border:1px solid var(--color-border-card);color:var(--color-text-primary);background:var(--color-page);border-bottom:0;border-radius:22px 22px 0 0;margin:0 auto;position:fixed;inset:auto 0 0;overflow-y:auto;box-shadow:0 -12px 48px #10201424}.app-modal::backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#17231c80}.modal-heading{justify-content:space-between;align-items:start;gap:16px;margin-bottom:12px;display:flex}.modal-heading h2{color:var(--color-text-primary);letter-spacing:-.5px;margin:0;font-size:21px}.modal-close{border:1px solid var(--color-border-control);width:44px;height:44px;color:var(--color-text-secondary);background:var(--color-surface);cursor:pointer;border-radius:50%;flex-shrink:0;place-items:center;display:grid}.app-modal .form-panel,.app-modal .loan-form-panel{background:0 0;border:0;padding:0}.app-modal .panel-heading{display:none}.app-modal .form-panel form,.app-modal .loan-form-panel form{margin-top:4px}.app-modal .transactions-panel,.app-modal .loan-list-panel{padding:0}.navigation-storage-warning{z-index:9;right:16px;bottom:calc(148px + env(safe-area-inset-bottom));border:1px solid var(--color-border-warning);color:var(--color-warning);background:var(--color-surface-warning);border-radius:10px;margin:0;padding:10px 12px;font-size:12px;position:fixed;left:16px;box-shadow:0 4px 16px #10201412}@media (width>=760px){.settings-sections{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.pwa-card{grid-column:1/-1}.recurring-heading{flex-direction:row;justify-content:space-between;align-items:end;gap:24px;margin-bottom:18px}.recurring-summary{gap:10px}.recurring-summary>div{flex:initial;min-width:130px;padding:11px 13px}.recurring-summary strong{font-size:16px}.recurring-card{padding:14px 16px 11px}.recurring-card-footer{flex-direction:row;justify-content:space-between;align-items:center}.recurring-actions{justify-content:end}.monthly-debt-heading{grid-template-columns:minmax(0,1fr) auto auto;align-items:center}.monthly-debt-controls{grid-area:1/2}.monthly-debt-export{grid-area:1/3}.monthly-debt-metrics{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.monthly-debt-metric{grid-template-columns:minmax(0,1fr);align-content:start;gap:5px;padding:12px 13px}.monthly-debt-metric strong{text-align:left}.monthly-debt-metric small{text-align:left;grid-column:auto}.app-shell{padding-top:24px;padding-bottom:112px}.debt-page{padding-top:8px}.app-navigation{border:1px solid var(--color-border-card);border-radius:18px;width:min(420px,100vw - 32px);padding:8px;bottom:16px;left:auto;right:50%;transform:translate(50%);box-shadow:0 6px 24px #10201418}.floating-action{width:76px;height:64px}.app-modal{border-bottom:1px solid var(--color-border-card);border-radius:18px;width:min(540px,100vw - 40px);max-height:min(86dvh,900px);margin:0;padding:24px;inset:50% auto auto 50%;transform:translate(-50%,-50%)}}
