:root{--bg:#f4f5f7;--card-bg:#fff;--entry-bg:#fafbfc;--border:#dfe3e8;--hairline:#f0f1f3;--disabled-bg:#eef0f3;--text:#1f2430;--text-muted:#6b7280;--primary:#2563eb;--primary-dark:#1d4ed8;--danger:#dc2626;--danger-bg:#fef2f2;--danger-bg-hover:#fee2e2;--warning:#c2410c;--warning-bg:#fff2e8;--success:#16a34a;--radius:10px;--btn-add-bg:#eef2ff;--btn-add-bg-hover:#e0e7ff;--input-bg:#fff;--account-business:#2563eb;--account-business-bg:#eef4ff;--account-personal:#16a34a;--account-personal-bg:#eefdf3;--account-joint:#f59e0b;--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)}.outlook-refresh-swap{align-items:center;display:grid}.outlook-refresh-swap>*{grid-area:1/1}.outlook-refresh-status{white-space:nowrap;visibility:hidden;margin:0}.outlook-refresh-status.visible{visibility:visible}.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)}.info-btn{appearance:none;border:1.5px solid var(--text-muted);width:22px;height:22px;color:var(--text-muted);cursor:pointer;background:0 0;border-radius:50%;flex:none;justify-content:center;align-items:center;padding:0;font-family:Georgia,Times New Roman,serif;font-size:.75rem;font-style:italic;font-weight:700;line-height:1;display:flex}.info-btn:hover{border-color:var(--primary);color:var(--primary-dark)}.header-actions{flex-wrap:nowrap;flex:none;align-items:center;gap:10px;display:flex}.btn-header-switch{white-space:nowrap;text-overflow:ellipsis;max-width:45vw;padding:6px 12px;font-size:.85rem;overflow:hidden}.header-viewing-text{margin:-8px 0 16px}.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-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}.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-refresh-hidden{visibility:hidden}.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}.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}.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:active{cursor:grabbing}.pot-add-row{justify-content:center;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}.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)}.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}.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)}.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){.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}@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}}
