:root{color:#3d4542;font-synthesis:none;letter-spacing:0;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;background:#eef1f0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.5}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}*{box-sizing:border-box}body{min-width:320px;margin:0}#root{min-height:100svh}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline-offset:2px;outline:3px solid #2563eb47}@media (prefers-color-scheme:dark){:root{color:#d5ddd9;background:#101413}}.app-shell{min-height:100svh;padding:28px}.topbar,.overview-grid,.content-grid,.section-heading,.category-button,.outgoing-row,.modal-heading,.form-actions{display:flex}.topbar{justify-content:space-between;align-items:center;gap:18px;max-width:1240px;margin:0 auto 24px}.topbar-actions{flex-wrap:wrap;justify-content:flex-end;align-items:flex-end;gap:12px;display:flex}.sync-pill{color:#1d4ed8;white-space:nowrap;border:1px solid #cbdcff;border-radius:999px;align-self:flex-end;align-items:center;height:32px;padding:0 12px;font-size:12px;font-weight:800;display:inline-flex}.sync-pill.saved{color:#146b5d;background:#eaf7f0;border-color:#b9dccb}.sync-pill.saving,.sync-pill.checking{background:#eef4ff}.sync-pill.local,.sync-pill.locked{color:#a12a20;background:#fff3f1;border-color:#efb3ab}.sync-pill.error{color:#8f271f;background:#f8e8e5;border-color:#d98b82}.month-picker{color:#626b66;gap:5px;font-size:12px;font-weight:760;display:grid}.month-picker input{color:#202423;background:#fff;border:1px solid #d9ded8;border-radius:8px;height:44px;padding:8px 10px}.eyebrow{color:#2563eb;text-transform:uppercase;margin:0 0 4px;font-size:13px;font-weight:700}h1,h2,p{margin:0}h1{color:#202423;font-size:36px;font-weight:760;line-height:1.1}h2{color:#202423;font-size:18px;font-weight:720;line-height:1.2}button,input,select,textarea{font:inherit}button{cursor:pointer}.primary-button,.secondary-button,.icon-button,.status,.metric-action,.category-button{border:0}.primary-button,.secondary-button{border-radius:8px;justify-content:center;align-items:center;gap:8px;height:44px;padding:10px 14px;font-weight:700;display:inline-flex}.primary-button{color:#fff;background:#2563eb}.secondary-button{color:#28302d;background:#eef0ec}.overview-grid{grid-template-columns:minmax(260px,1.25fr) repeat(3,minmax(170px,1fr));gap:12px;max-width:1240px;margin:0 auto 18px;display:grid}.income-panel,.metric-tile,.category-section,.side-panel,.modal{background:#fff;border:1px solid #dde1dc;border-radius:8px;box-shadow:0 12px 28px #3a413d14}.income-panel,.metric-tile{min-height:102px;padding:18px}.income-panel label,.metric-tile span,.outgoing-form label{color:#626b66;font-size:13px;font-weight:700}.money-input{align-items:center;gap:8px;margin-top:10px;display:flex}.money-input span{color:#202423;font-size:30px;font-weight:760}.money-input input{color:#202423;border:0;outline:0;width:100%;min-width:0;font-size:34px;font-weight:760}.payday-note{color:#626b66;margin-top:8px;font-size:13px;font-weight:700}.metric-tile{text-align:left;grid-template-columns:auto 1fr;gap:8px;display:grid}.metric-action{cursor:pointer;grid-template-columns:auto 1fr auto;transition:border-color .16s,box-shadow .16s,transform .16s}.metric-action:hover{border-color:#a9c4f5;transform:translateY(-1px);box-shadow:0 16px 32px #3a413d1f}.metric-tile svg{color:#2563eb}.disclosure-icon{justify-self:end;transition:transform .16s}.disclosure-icon.open{transform:rotate(180deg)}.metric-tile strong{color:#202423;grid-column:1/-1;font-size:28px;line-height:1}.metric-tile em{color:#626b66;grid-column:1/-1;font-size:12px;font-style:normal;font-weight:700}.metric-tile .negative{color:#b83d31}.metric-tile .attention{color:#b42318}.metric-tile:has(.attention){background:#fff5f3;border-color:#f0b8b1}.pay-cycle-strip{color:#243653;background:#eef4ff;border:1px solid #cbdcff;border-radius:8px;grid-template-columns:1fr;align-items:center;gap:12px;max-width:1240px;margin:0 auto 18px;padding:12px 16px;display:grid}.paid-summary-panel{background:#fff;border:1px solid #cbdcff;border-radius:8px;max-width:1240px;margin:-6px auto 18px;padding:16px 18px;box-shadow:0 12px 28px #3a413d14}.paid-summary-heading,.paid-summary-list>div{justify-content:space-between;align-items:center;gap:16px;display:flex}.paid-summary-heading{margin-bottom:10px}.paid-summary-heading>strong{color:#2563eb;font-size:20px}.paid-summary-list{display:grid}.paid-summary-list>div{border-top:1px solid #edf0eb;min-height:44px;padding:9px 0}.paid-summary-list span{min-width:0;display:grid}.paid-summary-list span strong{color:#202423}.paid-summary-list small{color:#626b66;font-size:12px;font-weight:700}.paid-summary-list>div>strong{color:#202423;white-space:nowrap}.pay-cycle-strip div{gap:2px;display:grid}.pay-cycle-strip strong{color:#1d4ed8;font-size:15px}.pay-cycle-strip span{font-size:13px}.content-grid{grid-template-columns:minmax(0,1.35fr) minmax(360px,.65fr);align-items:flex-start;gap:18px;min-width:0;max-width:1240px;margin:0 auto;display:grid}.category-section,.side-panel{min-width:0;padding:18px}.section-heading{justify-content:space-between;align-items:flex-start;margin-bottom:14px}.section-heading p{color:#626b66;margin-top:4px;font-size:14px}.category-list,.mini-list{gap:10px;display:grid}.category-row{border:1px solid #e5e8e3;border-radius:8px;overflow:hidden}.category-row.unpaid{border-color:#efb3ab}.category-row.part-paid{border-color:#c9dcbf}.category-row.paid{border-color:#b9dccb}.category-button{color:#202423;background:#f7f8f5;grid-template-columns:auto minmax(0,1fr) auto auto auto;align-items:center;gap:10px;width:100%;min-height:54px;padding:12px 14px;display:grid}.category-row.unpaid .category-button{background:#fff3f1}.category-row.part-paid .category-button{background:#f1f7ed}.category-row.paid .category-button{background:#eaf7f0}.category-button span{text-align:left;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:760;overflow:hidden}.category-button small{color:#626b66;white-space:nowrap;flex:none;font-size:12px;font-weight:760}.category-button strong{white-space:nowrap;font-size:18px}.outgoing-list{background:#fff}.outgoing-row{border-top:1px solid #edf0eb;grid-template-columns:30px minmax(0,1fr) auto auto auto;align-items:center;gap:12px;min-height:58px;padding:10px 14px;display:grid;position:relative}.outgoing-row:before{content:"";width:4px;position:absolute;top:0;bottom:0;left:0}.outgoing-row.paid{background:#f4fbf7}.outgoing-row.paid:before{background:#1d8b69}.outgoing-row.unpaid{background:#fff8f7}.outgoing-row.unpaid:before{background:#dc3e31}.outgoing-main{min-width:0}.outgoing-main strong{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.outgoing-row strong,.mini-list strong,td{color:#202423}.outgoing-row span,.mini-list span{color:#626b66;font-size:13px}.outgoing-row>span:not(.payment-pill){color:#202423;text-align:right;white-space:nowrap;font-size:15px;font-weight:760}.outgoing-row.paid .outgoing-main strong,.outgoing-row.paid>span:not(.payment-pill){color:#41685a}.row-actions{flex:none;gap:6px;display:flex}.paid-toggle{color:#fff;background:#fff;border:2px solid #dc3e31;border-radius:999px;justify-content:center;align-items:center;width:30px;height:30px;padding:0;display:inline-flex}.paid-toggle.paid{background:#1d8b69;border-color:#1d8b69}.payment-pill{white-space:nowrap;border-radius:999px;justify-content:center;min-width:62px;padding:7px 10px;line-height:1;display:inline-flex;font-size:12px!important;font-weight:800!important}.payment-pill.paid{background:#dff3e9;color:#146b5d!important}.payment-pill.unpaid{background:#ffe4e0;color:#a12a20!important}.icon-button{color:#1d4ed8;background:#edf4ff;border-radius:7px;justify-content:center;align-items:center;width:34px;height:34px;display:inline-flex}.icon-button.danger{color:#9d2e24;background:#f8e8e5}.side-panel{gap:20px;display:grid}.side-panel section{min-width:0}.section-toggle{color:#202423;text-align:left;background:#f5f8ff;border:1px solid #dbe6ff;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;width:100%;min-height:54px;padding:11px 12px;display:flex}.section-toggle span{gap:2px;display:grid}.section-toggle strong{color:#202423;font-size:15px}.section-toggle small{color:#626b66;font-size:12px;font-weight:700}.collapsible-section .table-wrap{margin-top:10px}.mini-list>div,.bucket-list>div{border-bottom:1px solid #edf0eb;justify-content:space-between;align-items:center;gap:14px;min-height:42px;display:flex}.mini-list span{min-width:0;display:grid}.mini-list small{color:#7a837e;font-size:11px;font-weight:760}.bucket-list{display:grid}.bucket-list span{color:#626b66;font-size:13px;font-weight:760}.bucket-list strong{color:#202423}.empty-state{color:#626b66;padding:8px 0 2px;font-size:13px}.table-wrap{width:100%;min-width:0;max-width:100%;overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:540px}th,td{text-align:left;border-bottom:1px solid #edf0eb;padding:10px 8px;font-size:13px}th{color:#626b66;font-weight:760}.status{color:#626b66;background:#f0f1ee;border-radius:999px;padding:5px 9px;font-size:12px;font-weight:760}.status.active{color:#1d4ed8;background:#e8f0ff}.status.paid-status{color:#fff;background:#1d8b69}.table-actions{flex-wrap:wrap;gap:6px;display:flex}.modal-backdrop{z-index:10;background:#1d232061;justify-content:center;align-items:center;padding:18px;display:flex;position:fixed;inset:0}.modal{width:100%;max-width:560px;max-height:calc(100svh - 36px);padding:18px;overflow:auto}.modal-heading{justify-content:space-between;align-items:center;margin-bottom:16px}.outgoing-form{gap:14px;display:grid}.outgoing-form label{gap:7px;display:grid}.outgoing-form input,.outgoing-form select,.outgoing-form textarea{box-sizing:border-box;color:#202423;background:#fbfcfa;border:1px solid #d9ded8;border-radius:8px;width:100%;min-height:42px;padding:10px 11px}.outgoing-form textarea{resize:vertical;min-height:82px}.form-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.checkbox-row{align-items:center;gap:10px!important;display:flex!important}.checkbox-row input{width:18px;height:18px}.form-actions{justify-content:flex-end;gap:10px;margin-top:4px}@media (width<=980px){.app-shell{padding:18px}.topbar{flex-direction:column;align-items:stretch}.topbar-actions{justify-content:stretch}.topbar-actions .primary-button,.month-picker{flex:180px}.overview-grid,.content-grid,.pay-cycle-strip{grid-template-columns:1fr}.overview-grid{max-width:560px}}@media (width<=620px){.app-shell{padding:14px}h1{font-size:28px}.overview-grid{gap:10px}.metric-tile strong,.money-input input,.money-input span{font-size:26px}.form-grid{grid-template-columns:1fr}.category-button{grid-template-columns:auto minmax(0,1fr) auto;gap:4px 10px;padding:12px}.category-button svg{grid-row:1/span 2}.category-button small{grid-row:2;font-size:11px}.category-button small:first-of-type{grid-column:2}.category-button small+small{grid-column:3}.category-button strong{grid-area:1/3;font-size:16px}.outgoing-row{grid-template-columns:28px minmax(0,1fr);align-items:start;gap:8px 12px;padding:14px 12px 14px 16px}.outgoing-row>span:not(.payment-pill),.payment-pill,.row-actions{text-align:left;grid-column:2;justify-self:start}.payment-pill{min-width:70px}.row-actions{margin-top:2px}.pay-cycle-strip,.paid-summary-panel,.category-section,.side-panel,.income-panel,.metric-tile{border-radius:7px}}@media (prefers-color-scheme:dark){.app-shell{background:radial-gradient(circle at 0 0,#25594e38,#0000 34rem),#101413}.eyebrow{color:#93c5fd}h1,h2,.money-input span,.money-input input,.metric-tile strong,.category-button,.category-button strong,.outgoing-row strong,.mini-list strong,.bucket-list strong,.paid-summary-heading>strong,.paid-summary-list span strong,.paid-summary-list>div>strong,td,.outgoing-row>span:not(.payment-pill){color:#f2f6f4}.month-picker,.income-panel label,.metric-tile span,.payday-note,.section-heading p,.category-button small,.outgoing-row span,.mini-list span,.mini-list small,.paid-summary-list small,.bucket-list span,th,.empty-state,.metric-tile em,.outgoing-form label{color:#aab7b2}.income-panel,.metric-tile,.paid-summary-panel,.category-section,.side-panel,.modal{background:#171d1b;border-color:#293331;box-shadow:0 18px 34px #00000052}.month-picker input,.outgoing-form input,.outgoing-form select,.outgoing-form textarea{color:#f2f6f4;background:#101413;border-color:#33403c}.money-input input{background:0 0}.primary-button{color:#07111f;background:#60a5fa}.secondary-button,.icon-button{color:#d6e6ff;background:#1f2a3f}.icon-button.danger{color:#ffb4ab;background:#3a2423}.metric-tile svg{color:#93c5fd}.metric-tile .attention{color:#ffb4ab}.metric-tile:has(.attention){background:#241716;border-color:#65302b}.metric-action:hover{border-color:#315a95;box-shadow:0 18px 34px #00000061}.metric-tile .negative{color:#ffb4ab}.pay-cycle-strip{color:#dbeafe;background:#111d31;border-color:#29466f}.pay-cycle-strip strong{color:#93c5fd}.paid-summary-panel{border-color:#285a48}.paid-summary-list>div{border-top-color:#293331}.section-toggle{color:#f2f6f4;background:#111d31;border-color:#29466f}.section-toggle strong{color:#f2f6f4}.section-toggle small{color:#aab7b2}.category-row{border-color:#293331}.category-row.unpaid{border-color:#65302b}.category-row.part-paid,.category-row.paid{border-color:#285a48}.category-button{background:#1b2220}.category-row.unpaid .category-button{background:#241716}.category-row.part-paid .category-button,.category-row.paid .category-button{background:#14251f}.outgoing-list{background:#171d1b}.outgoing-row{border-top-color:#293331}.outgoing-row.unpaid{background:#1d1514}.outgoing-row.paid{background:#13221d}.outgoing-row.paid .outgoing-main strong,.outgoing-row.paid>span:not(.payment-pill){color:#bcebd8}.paid-toggle{background:#101413;border-color:#ff6f61}.payment-pill.unpaid{background:#4b211d;color:#ffb4ab!important}.payment-pill.paid{background:#183b30;color:#8be0c2!important}.mini-list>div,.bucket-list>div,th,td{border-bottom-color:#293331}.status{color:#b8c4bf;background:#28312f}.status.active{color:#8be0c2;background:#183b30}.status.paid-status{color:#fff;background:#1d8b69}.modal-backdrop{background:#0000009e}}
