:root{--bg:#f4f5f7;--card-bg:#fff;--entry-bg:#fafbfc;--border:#dfe3e8;--hairline:#f0f1f3;--disabled-bg:#eef0f3;--text:#1f2430;--text-muted:#4b5563;--primary:#2563eb;--primary-dark:#1d4ed8;--danger:#dc2626;--danger-bg:#fef2f2;--danger-bg-hover:#fee2e2;--warning:#c2410c;--warning-bg:#fff2e8;--success:#15803d;--radius:10px;--btn-add-bg:#eef2ff;--btn-add-bg-hover:#e0e7ff;--input-bg:#fff;--account-business:#2563eb;--account-business-bg:#eef4ff;--account-personal:#15803d;--account-personal-bg:#eefdf3;--account-joint:#b45309;--account-joint-bg:#fff7ed}@media (prefers-color-scheme:dark){:root{--bg:#17191d;--card-bg:#1f2227;--entry-bg:#24272d;--border:#34383f;--hairline:#2c2f35;--disabled-bg:#2a2d33;--text:#e7e9ec;--text-muted:#9aa1ab;--primary:#3b82f6;--primary-dark:#60a5fa;--danger:#f87171;--danger-bg:#3a1f1f;--danger-bg-hover:#4a2626;--warning:#fb923c;--warning-bg:#3a2712;--success:#4ade80;--btn-add-bg:#262b45;--btn-add-bg-hover:#313868;--input-bg:#26292f;--account-business:#60a5fa;--account-business-bg:#1c2942;--account-personal:#4ade80;--account-personal-bg:#163529;--account-joint:#fbbf24;--account-joint-bg:#3a2c14}}*{box-sizing:border-box}html{touch-action:pan-x pan-y}body{background:var(--bg);color:var(--text);touch-action:pan-x pan-y;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;line-height:1.4}.app{max-width:900px;margin:0 auto;padding:24px 20px 80px}header{margin-bottom:24px}header h1{white-space:nowrap;text-overflow:ellipsis;min-width:0;margin:0;font-size:1.7rem;overflow:hidden}.card{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:20px;padding:20px}.warning-card{background:var(--warning-bg);border-color:var(--warning);color:var(--warning);padding:14px 20px}.warning-card p{margin:0}.save-status{color:var(--text-muted);align-items:center;gap:6px;margin:6px 0 0;font-size:.85rem;display:flex}.save-status-dot{background:var(--text-muted);border-radius:50%;flex:none;width:8px;height:8px}.save-status[data-state=dirty] .save-status-dot{background:var(--account-joint)}.save-status[data-state=saving] .save-status-dot{background:var(--primary)}.save-status[data-state=saved] .save-status-dot,.save-status[data-state=synced] .save-status-dot{background:var(--success)}.save-status[data-state=error] .save-status-dot{background:var(--danger)}.section-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.section-head-spaced{margin-bottom:16px}.section-head h2{margin:0;font-size:1.15rem}.section-head-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.section-head-title{align-items:center;gap:8px;display:flex}.header-title-row{flex-wrap:nowrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.icon-toggle-btn{appearance:none;color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:4px;font-size:.85rem;line-height:1}.icon-toggle-btn:hover{color:var(--text)}.icon-toggle-btn,.info-btn{position:relative}.icon-toggle-btn:after,.info-btn:after{content:"";position:absolute;inset:-11px}.info-btn{appearance:none;width:22px;height:22px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;flex:none;justify-content:center;align-items:center;padding:0;line-height:1;display:flex}.info-btn:hover{color:var(--primary-dark)}.header-actions{flex-wrap:nowrap;flex:none;align-items:center;gap:10px;display:flex}.header-viewing-text{margin:-8px 0 16px}.header-viewing-chip{font:inherit;cursor:pointer;border:1px solid var(--chip-color);background:color-mix(in srgb, var(--chip-color) 15%, transparent);color:var(--text);border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-weight:600;display:inline-flex}.modal-overlay{z-index:1000;background:#00000080;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal-box{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);width:100%;max-width:480px;max-height:80vh;padding:20px;overflow-y:auto;box-shadow:0 10px 40px #00000040}.modal-box-wide{max-width:720px}.header-menu{position:relative}.header-menu-list{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);z-index:100;min-width:160px;max-width:min(280px,100vw - 24px);padding:4px;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 10px 40px #00000040}.header-menu-item{appearance:none;width:100%;color:var(--text);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:6px;align-items:center;gap:8px;padding:8px 10px;font-size:.9rem;display:flex}.header-menu-item svg{flex:none}.header-menu-item:disabled{opacity:.5;cursor:not-allowed}.header-menu-item:hover:not(:disabled){background:var(--btn-add-bg)}.modal-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.modal-head h3{margin:0;font-size:1.1rem}.modal-close-btn{appearance:none;color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:1.4rem;line-height:1}.modal-close-btn:hover{color:var(--text)}.info-modal-text{color:var(--text);white-space:pre-line;margin:0;font-size:.92rem;line-height:1.5}.hint{color:var(--text-muted);margin:6px 0 16px;font-size:.85rem}.btn{cursor:pointer;border:none;border-radius:8px;padding:8px 14px;font-size:.9rem;font-weight:600}:is(.btn:has(.tabler-icon),.top-tab-btn:has(.tabler-icon)){align-items:center;gap:6px;display:inline-flex}.btn .tabler-icon,.top-tab-btn .tabler-icon{flex:none;width:1.15em;height:1.15em}.btn:disabled{opacity:.5;cursor:default}.btn-add{background:var(--btn-add-bg);color:var(--primary-dark)}.btn-add:hover{background:var(--btn-add-bg-hover)}.btn-primary{color:#fff;background:#2563eb}.btn-primary:hover{background:#1d4ed8}.btn-ghost{color:var(--text);background:0 0}.btn-ghost:hover{background:var(--border)}.snapshot-sync-btn{border:1px solid #0000}.use-daily-spend-row{margin-top:14px}.btn-remove{background:var(--danger-bg);color:var(--danger)}.btn-remove:hover{background:var(--danger-bg-hover)}.btn-secondary{color:var(--primary-dark);border:1px solid var(--primary-dark);background:0 0}.btn-secondary:hover{background:var(--btn-add-bg)}.btn-secondary-remove{color:var(--danger);border:1px solid var(--danger);background:0 0}.btn-secondary-remove:hover{background:var(--danger-bg)}.snapshot-row{align-items:center;gap:10px;margin-bottom:10px;display:flex}.snapshot-row input[type=text],.snapshot-row select{border:1px solid var(--border);color:var(--text);background:var(--input-bg);border-radius:6px;flex:1;padding:8px 10px;font-size:.9rem}.tutorial-text{color:var(--text);margin:0 0 12px;font-size:.92rem;line-height:1.5}.tutorial-footer{justify-content:space-between;align-items:center;gap:8px;margin-top:16px;display:flex}.tutorial-counter{color:var(--text-muted);white-space:nowrap;font-size:.85rem}.tutorial-actions{gap:8px;display:flex}.snapshot-modal-actions{margin-bottom:12px}.snapshot-row-label{color:var(--text-muted);white-space:nowrap;flex:none;font-size:.85rem}.section-divider{border:none;border-top:1px solid var(--border);margin:16px 0}.entry-list{flex-direction:column;gap:14px;display:flex}.entry{border:1px solid var(--border);background:var(--entry-bg);border-radius:8px;padding:14px}.entry-grid{grid-template-columns:repeat(4,1fr);gap:12px;display:grid}.entry-grid-employed{grid-template-columns:1.3fr .8fr .6fr .9fr 1.2fr .6fr}.entry-grid-selfemployed{grid-template-columns:1.4fr 1.2fr .9fr .7fr}.entry-grid-other{grid-template-columns:1.4fr 1.2fr .9fr .7fr .8fr .6fr}.entry-grid-expense{grid-template-columns:1.6fr .9fr .7fr .8fr}.entry-grid-pot{grid-template-columns:.8fr 1.4fr 1.2fr .9fr 1fr}.entry-grid-jointsetup{grid-template-columns:1fr 1fr}.entry-grid-jointbill,.entry-grid-personalbill{grid-template-columns:1.3fr .8fr .9fr 1fr}.entry-grid-jointgroup,.entry-grid-personalgroup{grid-template-columns:1fr}.joint-bill-group,.personal-bill-group{background:var(--card-bg)}.joint-bill-group-bills,.personal-bill-group-bills{margin-top:12px}.joint-bill-group-bills .entry,.personal-bill-group-bills .entry{padding:10px 14px}.joint-bill-group-summary,.personal-bill-group-summary{margin-top:12px}.joint-bill-share-note{color:var(--text-muted);font-size:.78rem;font-weight:400}.entry-grid-budgeting{grid-template-columns:1fr 1fr 1fr}.entry-grid-planned-spending{grid-template-columns:1.6fr 1fr auto}.planned-paid-control{flex:1;justify-content:center;align-items:center;display:flex}.planned-paid-control input[type=checkbox]{width:18px;height:18px}.pot-jointbill-label{grid-column:span 2}.pot-entry{border-left:4px solid var(--border);padding-left:34px;transition:border-color .15s,background .15s;position:relative}.pot-entry[data-account=business]{border-left-color:var(--account-business);background:var(--account-business-bg)}.pot-entry[data-account=personal]{border-left-color:var(--account-personal);background:var(--account-personal-bg)}.pot-entry[data-account=joint]{border-left-color:var(--account-joint);background:var(--account-joint-bg)}.pot-entry[data-gradient=true]{background:linear-gradient(to right, var(--pot-bg-from), var(--pot-bg-to))}.pot-entry.dragging{opacity:.4}.entry label.checkbox-row{flex-direction:row;align-items:center}.entry label.entry-checkbox{width:fit-content}.entry label.entry-checkbox input{align-self:center;width:18px;height:18px;margin:9px 0}.pot-auto-row{color:var(--text-muted);max-width:none;margin-top:10px;font-size:.82rem}.pot-auto-row input{flex-shrink:0;width:16px;height:16px}.pot-joint-row{text-align:center}.pot-joint-control{flex:1;justify-content:center;align-items:center;display:flex}.pot-joint-control input[type=checkbox]{width:18px;height:18px}.pot-entry.drag-over-top{box-shadow:inset 0 2px 0 var(--primary)}.pot-entry.drag-over-bottom{box-shadow:inset 0 -2px 0 var(--primary)}.pot-drag-handle{cursor:grab;color:var(--text-muted);-webkit-user-select:none;user-select:none;padding:4px;font-size:1.1rem;line-height:1;position:absolute;top:50%;left:2px;transform:translateY(-50%)}.pot-drag-handle .tabler-icon{display:block}.warning-icon{vertical-align:text-bottom}.pot-drag-handle:active{cursor:grabbing}.pot-add-row{justify-content:flex-end;margin-top:14px;display:flex}.entry label{color:var(--text-muted);flex-direction:column;gap:4px;font-size:.75rem;font-weight:600;display:flex}.entry label[hidden]{display:none}.entry input[type=text],.entry input[type=number],.entry select{border:1px solid var(--border);color:var(--text);background:var(--input-bg);border-radius:6px;width:100%;height:36px;padding:7px 8px;font-size:.9rem;font-weight:400}.entry select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none' stroke='%239ca3af' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 1.5l5 5 5-5'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;padding-right:32px}.primary-label{flex-direction:row-reverse;justify-content:center;align-items:center;gap:6px}.primary-label input[type=radio]{width:18px;height:18px}.entry-footer{border-top:1px dashed var(--border);justify-content:space-between;align-items:center;margin-top:12px;padding-top:10px;display:flex}.yearly-total{color:var(--text);font-size:.85rem;font-weight:600}.top-tabs{border-bottom:2px solid var(--border);-webkit-overflow-scrolling:touch;gap:6px;margin-bottom:20px;display:flex;overflow:auto hidden}.top-tab-btn{color:var(--text-muted);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:3px solid #0000;flex:none;margin-bottom:-2px;padding:10px 18px;font-size:1rem;font-weight:700;text-decoration:none}.top-tab-btn.active{color:var(--primary-dark);border-bottom-color:var(--primary)}.top-tab-btn:focus-visible{outline:2px solid var(--primary);outline-offset:-2px;border-radius:4px}.top-tabs.fade-end{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 40px),#0000);mask-image:linear-gradient(90deg,#000 calc(100% - 40px),#0000)}.top-tabs.fade-start{-webkit-mask-image:linear-gradient(270deg,#000 calc(100% - 40px),#0000);mask-image:linear-gradient(270deg,#000 calc(100% - 40px),#0000)}.top-tabs.fade-start.fade-end{-webkit-mask-image:linear-gradient(90deg,#0000,#000 40px calc(100% - 40px),#0000);mask-image:linear-gradient(90deg,#0000,#000 40px calc(100% - 40px),#0000)}.entry input:disabled{background:var(--disabled-bg);color:var(--text-muted);cursor:not-allowed}.auto-note{color:var(--text-muted);font-size:.78rem;font-style:italic}.tab-mode-bar{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.tab-mode-bar .btn:not(.btn-secondary){border:1px solid #0000}.tab-mode-status{margin:0}.entry-view{padding:14px 16px}.pot-entry-view{padding-left:14px}.view-fields{flex-wrap:wrap;gap:12px 28px;margin:0;display:flex}.view-field{flex-direction:column;min-width:0;display:flex}.view-field dt{text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted);margin-bottom:2px;font-size:.72rem;font-weight:700}.view-field dd{overflow-wrap:anywhere;margin:0;font-size:.92rem}.view-table-scroll{overflow-x:auto}.view-table{border-collapse:collapse;width:100%;font-size:.92rem}.view-table th{text-align:left;text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted);padding:4px 12px 6px 0;font-size:.72rem;font-weight:700}.view-table td{border-top:1px solid var(--border);padding:6px 12px 6px 0}.view-table .view-table-note td{border-top:none;padding-top:0}.view-note{margin:6px 0 0}.view-fields-nowrap{flex-wrap:nowrap}.view-fields-nowrap .view-field{flex:none}.view-fields-nowrap .view-field-url{flex:auto;min-width:0}.view-fields-nowrap .view-field dt{white-space:nowrap}.view-url-row{align-items:center;gap:10px;min-width:0;display:flex}.view-url{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}.btn-compact{flex:none;padding:4px 10px;font-size:.8rem}.pots-view-table td:first-child,.pots-view-table th:first-child{padding-left:14px}.pots-view-amount{text-align:right;white-space:nowrap}.pots-view-row{--pot-bar:var(--border)}.pots-view-row[data-account=business]{--pot-bar:var(--account-business);background:var(--account-business-bg)}.pots-view-row[data-account=personal]{--pot-bar:var(--account-personal);background:var(--account-personal-bg)}.pots-view-row[data-account=joint]{--pot-bar:var(--account-joint);background:var(--account-joint-bg)}.pots-view-row[data-gradient=true]{background:linear-gradient(to right, var(--pot-bg-from), var(--pot-bg-to))}.pots-view-row td:first-child{box-shadow:inset 4px 0 0 var(--pot-bar)}.pots-view-table .pots-view-note td{border-top:none;padding-top:0;padding-left:14px}.view-group-name{margin:0 0 10px;font-size:1rem}.pots-totals{border-top:1px solid var(--border);flex-direction:column;gap:2px;margin-top:16px;padding-top:12px;display:flex}.pots-subtotal-heading{text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted);margin:10px 0 2px;font-size:.75rem;font-weight:700}.loan-options{flex-wrap:wrap;gap:24px;display:flex}.checkbox-row{cursor:pointer;align-items:center;gap:8px;font-size:.95rem;display:flex}.checkbox-row input{width:18px;height:18px}.results h2{margin-top:0}.tabs{border-bottom:1px solid var(--border);gap:6px;margin-bottom:16px;display:flex}.tab-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;padding:8px 14px;font-size:.9rem;font-weight:600}.tab-btn.active{color:var(--primary-dark);border-bottom-color:var(--primary)}.result-group{margin-bottom:18px}.result-group h3{color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em;margin:0 0 8px;font-size:.75rem}.result-line{border-bottom:1px solid var(--hairline);justify-content:space-between;padding:6px 0;font-size:.92rem;display:flex}.result-line.total{border-bottom:none;border-top:2px solid var(--border);margin-top:4px;padding-top:10px;font-weight:700}.result-line:has(+.result-line.total){border-bottom:none}.result-line.net{color:var(--success);font-size:1.05rem;font-weight:700}.result-line .neg{color:var(--danger)}.band-details summary{color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em;cursor:pointer;margin:0 0 8px;font-size:.75rem;font-weight:600}.band-details[open] summary{margin-bottom:8px}.band-subheading{margin:14px 0 2px;font-size:.8rem;font-weight:700}.band-subheading:first-of-type{margin-top:0}.account-color-business{color:var(--account-business);font-weight:600}.account-color-personal{color:var(--account-personal);font-weight:600}.account-color-joint{color:var(--account-joint);font-weight:600}.note{color:var(--text-muted);border-top:1px solid var(--border);margin-top:16px;padding-top:12px;font-size:.78rem}.balance-headline-group{grid-template-columns:repeat(6,1fr);gap:16px 22px;padding:14px 0 4px;display:grid}@media (width<=1024px){.balance-headline-group{grid-template-columns:repeat(3,1fr)}}.balance-headline{flex-direction:column;gap:2px;display:flex}.balance-headline-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em;white-space:nowrap;font-size:.76rem;font-weight:600}.balance-headline-value{white-space:nowrap;font-size:1.45rem;font-weight:700}.balance-headline-value.pos{color:var(--success)}.balance-headline-value.neg{color:var(--danger)}.skeleton{background:linear-gradient(90deg, var(--hairline) 25%, var(--border) 50%, var(--hairline) 75%);background-size:200% 100%;border-radius:6px;animation:1.4s ease-in-out infinite balance-skeleton-shimmer;display:inline-block}.result-line-skeleton{vertical-align:middle;width:4.5rem;height:1.1em}.button-skeleton{vertical-align:middle;width:3rem;height:.9em}.icon-spin{animation:1s linear infinite icon-spin}@keyframes icon-spin{to{transform:rotate(360deg)}}.balance-headline-value-skeleton{background:linear-gradient(90deg, var(--hairline) 25%, var(--border) 50%, var(--hairline) 75%);background-size:200% 100%;border-radius:6px;width:4.5rem;height:2.03rem;animation:1.4s ease-in-out infinite balance-skeleton-shimmer;display:inline-block}@keyframes balance-skeleton-shimmer{0%{background-position:150% 0}to{background-position:-50% 0}}@media (prefers-reduced-motion:reduce){.skeleton{background:var(--hairline);animation:none}.icon-spin{animation-duration:2.5s}.balance-headline-value-skeleton{background:var(--hairline);animation:none}}.summary-table{border-collapse:collapse;width:100%;font-size:.9rem}.summary-table th,.summary-table td{text-align:left;border-bottom:1px solid var(--hairline);padding:8px 10px}.summary-table th{color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em;font-size:.75rem;font-weight:700}.summary-table td:last-child,.summary-table th:last-child{text-align:right}.summary-table td.summary-group-head{text-align:left;text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted);padding-top:28px;font-size:.75rem;font-weight:700}.summary-table tbody:first-of-type td.summary-group-head{padding-top:8px}@media (width<=700px){.balance-headline-group{grid-template-columns:repeat(2,1fr)}.entry-grid-employed,.entry-grid-selfemployed,.entry-grid-other,.entry-grid-expense,.entry-grid-pot{grid-template-columns:1fr 1fr}.entry-grid-jointbill,.entry-grid-personalbill,.entry-grid-budgeting{grid-template-columns:1fr}.app{padding:16px 12px 80px}.card{padding:14px}.section-head-actions{grid-template-columns:1fr 1fr;width:100%;display:grid}.section-head-actions-compact{width:auto;display:flex}.btn,.top-tab-btn{min-height:44px}.account-suffix{display:none}.snapshot-sync-btn{grid-column:1/-1}.modal-overlay{padding:12px}.snapshot-row{flex-wrap:wrap}.snapshot-row input[type=text],.snapshot-row select{flex:140px;min-width:0}.view-fields-nowrap{flex-wrap:wrap}}.payday-button-row{margin-bottom:20px}.payday-banner{background:var(--success);border-color:var(--success);color:#fff;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.payday-banner p{margin:0}.payday-banner-title{letter-spacing:.08em;font-size:1.4rem;font-weight:800}.payday-banner .payday-banner-note{margin-top:1em}.payday-banner-exit{color:var(--success);background:#fff;font-weight:700}.payday-active .card:not(.payday-banner){border-color:var(--success);box-shadow:0 0 0 3px color-mix(in srgb, var(--success) 20%, transparent);border-width:2px}.color-dot{border-radius:50%;width:18px;height:18px;display:block}.color-picker{display:inline-block;position:relative}.color-picker-trigger,.color-picker-option{border:1px solid var(--border);background:var(--input-bg);cursor:pointer;border-radius:999px;justify-content:center;align-items:center;padding:6px;display:flex}.color-picker-menu{z-index:10;border:1px solid var(--border);background:var(--card-bg);border-radius:999px;gap:6px;padding:6px;display:flex;position:absolute;top:calc(100% + 4px);left:0}.color-picker-option{border-color:#0000}.color-picker-option.selected{border-color:var(--text)}.joint-colors{gap:24px;margin-top:12px;display:flex}.joint-color-field{align-items:center;gap:8px;display:flex}
