:root{color:#17263b;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;background:#f4f6f3;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;width:100%;max-width:100%}body{width:100%;min-width:0;max-width:100%;min-height:100vh;margin:0;overflow-x:hidden}button{font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}na{-webkit-tap-highlight-color:transparent}nbutton:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline-offset:2px;outline:3px solid #3d78ad59}#root{width:100%;min-width:0;max-width:100%;min-height:100vh;overflow-x:hidden}@media (width<=768px){input,select,textarea{font-size:16px!important}}:root{--navy:#10243d;--green:#6f927a;--green-dark:#4f755d;--pale:#e6eee7;--cream:#f4f6f3;--text:#17263b;--muted:#728093;--line:#e2e8e3;--warning:#c39249;--heads-up:#9c925b;--near-limit:#c17f45;--over:#b45d5d}header{z-index:5;color:#fff;background:#10243dfa;position:sticky;top:0;box-shadow:0 4px 18px #0b1c301f}.header-inner,main{width:min(1180px,100% - 48px);margin:auto}.header-inner{justify-content:space-between;align-items:center;height:72px;display:flex}.brand{color:#fff;align-items:center;gap:11px;text-decoration:none;display:flex}.brand .icon{color:var(--navy);background:#a8bcae;font-size:1rem}.icon{width:36px;height:36px;color:var(--green-dark);background:var(--pale);border-radius:10px;flex:none;place-items:center;font-weight:700;display:inline-grid}.header-actions{align-items:center;gap:8px;display:flex}.signed-in-user{color:#ffffffad;text-overflow:ellipsis;white-space:nowrap;max-width:150px;font-size:.66rem;overflow:hidden}.sign-out-button{color:#fff;white-space:nowrap;background:#ffffff14;border:1px solid #ffffff29;border-radius:10px;min-height:40px;padding:0 11px;font-size:.68rem;font-weight:700}.sign-out-button:hover{background:#ffffff24}.header-icon-button{color:#fff;background:#ffffff14;border:1px solid #ffffff29;border-radius:10px;width:40px;height:40px;font-size:.9rem;position:relative}.header-icon-button:hover{background:#ffffff24}.header-icon-button strong{border:2px solid var(--navy);color:#fff;background:var(--over);border-radius:10px;place-items:center;min-width:19px;height:19px;padding:0 5px;font-size:.58rem;display:grid;position:absolute;top:-6px;right:-6px}.month-selector{background:#ffffff14;border:1px solid #ffffff29;border-radius:10px;align-items:center;min-height:40px;display:flex}.month-selector span{text-align:center;min-width:132px;padding-inline:8px;font-size:.8rem;font-weight:650}.month-selector button{color:#fff;background:0 0;border:0;align-self:stretch;width:36px;font-size:1.35rem}.month-selector button:hover{background:#ffffff17}main{padding:54px 0 42px}.dashboard-auth-error{color:#8c4545;background:#f8eaea;border-radius:9px;margin:-25px 0 24px;padding:11px 13px;font-size:.7rem}.welcome{justify-content:space-between;align-items:flex-end;gap:40px;margin-bottom:30px;display:flex}.eyebrow{color:var(--green-dark);letter-spacing:.13em;text-transform:uppercase;margin:0 0 6px;font-size:.7rem;font-weight:800}h1,h2,p{margin-top:0}h1{color:var(--navy);letter-spacing:-.045em;margin-bottom:10px;font-size:clamp(2rem,4vw,3.15rem);line-height:1.08}h2{color:var(--navy);letter-spacing:-.025em;margin:0;font-size:1.25rem}.welcome>div>p:last-child{color:var(--muted);margin:0;font-size:.96rem}.month-progress{width:210px;color:var(--muted);flex:none;grid-template-columns:1fr auto;gap:8px;font-size:.76rem;display:grid}.month-progress strong{color:var(--navy)}.month-progress>div{background:#dfe5e0;border-radius:9px;grid-column:1/-1;height:5px;overflow:hidden}.month-progress>div span{background:var(--green);width:58%;height:100%;display:block}.summary-grid{grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:20px;display:grid}.summary-card,.panel{border:1px solid var(--line);background:#fff;box-shadow:0 10px 30px #10243d0f}.card-label{color:var(--muted);justify-content:space-between;align-items:center;margin-bottom:17px;font-size:.77rem;font-weight:650;display:flex}.card-label .icon{width:32px;height:32px}.summary-card>strong{color:var(--navy);letter-spacing:-.035em;margin-bottom:7px;font-size:clamp(1.4rem,2.3vw,1.8rem);display:block}.summary-card small{color:var(--muted);font-size:.7rem}.summary-card.navy{border-color:var(--navy);background:var(--navy)}.summary-card.green{border-color:var(--green-dark);background:var(--green-dark)}.summary-card.navy>strong,.summary-card.green>strong{color:#fff}.summary-card.navy .card-label,.summary-card.green .card-label,.summary-card.navy small,.summary-card.green small{color:#ffffffad}.summary-card.navy .icon,.summary-card.green .icon{color:#fff;background:#ffffff24}.content-grid{grid-template-columns:minmax(0,1.65fr) minmax(320px,.85fr);align-items:start;gap:20px;display:grid}.panel{border-radius:18px;min-width:0;overflow:hidden}.panel-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:15px;min-height:89px;padding:20px 24px;display:flex}.panel-header .eyebrow{margin-bottom:4px}.add-button{color:#fff;background:var(--navy);border:0;border-radius:9px;align-items:center;gap:6px;min-height:39px;padding:0 14px;font-size:.75rem;font-weight:700;display:flex}.add-button:hover{background:#1a3655}.add-button:disabled{cursor:not-allowed;opacity:.55}.transactions .panel-header{flex-wrap:wrap;align-items:flex-start}.transactions .panel-header>div:first-child{flex:180px;min-width:0}.transaction-header-actions{flex-wrap:wrap;flex:100%;justify-content:flex-end;align-items:center;gap:7px;min-width:0;display:flex}.transaction-header-actions button{white-space:nowrap;flex:none}.uncategorized-button{color:#795623;background:#fff9ed;border:1px solid #d8b67d;border-radius:9px;align-items:center;gap:7px;min-height:39px;padding:0 10px;font-size:.68rem;font-weight:700;display:flex}.uncategorized-button:hover{background:#fff3d9}.uncategorized-button strong{color:#fff;background:#a96e2d;border-radius:999px;place-items:center;min-width:20px;height:20px;padding:0 5px;font-size:.62rem;display:grid}.import-button{border:1px solid var(--line);min-height:39px;color:var(--green-dark);background:#fff;border-radius:9px;align-items:center;gap:5px;padding:0 11px;font-size:.7rem;font-weight:700;display:flex}.import-button:hover{background:var(--cream)}.budget-list{padding:4px 24px}.budget-row{cursor:pointer;border-bottom:1px solid #edf0ed;border-radius:10px;margin-inline:-10px;padding:18px 10px 16px;transition:background-color .18s,transform .18s}.budget-row:active{background:var(--pale);transform:scale(.995)}.budget-row:focus-visible{outline-offset:-1px;outline:3px solid #6f927a99}.budget-row:last-child{border:0}.budget-heading,.budget-meta,.category{align-items:center;display:flex}.budget-heading,.budget-meta{justify-content:space-between;gap:14px}.category{min-width:0;color:var(--navy);gap:11px;font-size:.84rem}.category strong{overflow-wrap:anywhere}.category .icon{width:34px;height:34px}.amount{color:var(--muted);white-space:nowrap;font-size:.73rem}.amount strong{color:var(--navy)}.row-actions{align-items:center;gap:9px;display:flex}.row-actions button{color:var(--green-dark);background:0 0;border:0;padding:4px 0;font-size:.66rem;font-weight:700}.row-actions .delete-button{color:var(--over)}.row-actions button:hover{text-decoration:underline}.track{background:#edf0ed;border-radius:9px;height:7px;margin:11px 0 7px 45px;overflow:hidden}.track span{border-radius:9px;height:100%;display:block}.safe{color:var(--green-dark)}.track .safe,.legend .safe{background:var(--green)}.heads-up{color:#82772f}.track .heads-up,.legend .heads-up{background:var(--heads-up)}.near-limit{color:#a45f27}.track .near-limit,.legend .near-limit{background:var(--near-limit)}.over{color:var(--over)}.track .over,.legend .over{background:var(--over)}.budget-meta{color:var(--muted);margin-left:45px;font-size:.64rem}.legend{border-top:1px solid var(--line);color:var(--muted);gap:20px;padding:15px 24px;font-size:.64rem;display:flex}.legend span{align-items:center;gap:6px;display:flex}.legend i{border-radius:50%;width:7px;height:7px}.empty-state{color:var(--muted);text-align:center;margin:0;padding:40px 18px;font-size:.82rem}.view-button{color:var(--green-dark);white-space:nowrap;background:0 0;border:0;padding:5px 0;font-size:.7rem;font-weight:700}.transaction-list{padding:5px 20px}.transaction{border-bottom:1px solid #edf0ed;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:11px;padding:16px 0;display:grid}.transaction:last-child{border:0}.transaction .icon{border-radius:50%}.transaction div{min-width:0}.transaction div strong,.transaction small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.transaction div strong,.transaction>strong{color:var(--navy);font-size:.75rem}.transaction small{color:var(--muted);margin-top:3px;font-size:.62rem}.transaction-actions{gap:9px;margin-top:5px;display:flex}.transaction-actions button{color:var(--green-dark);background:0 0;border:0;padding:0;font-size:.61rem;font-weight:700}.transaction-actions button:last-child{color:var(--over)}.transaction-actions button:hover{text-decoration:underline}.note{color:#52685a;background:var(--pale);border-radius:12px;gap:10px;margin:10px 20px 20px;padding:14px;display:flex}.note .icon{width:22px;height:22px}.note p{margin:0;font-size:.69rem;line-height:1.5}.income-panel{margin-top:20px}.income-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px;padding:5px 24px;display:grid}.income-entry{border-bottom:1px solid #edf0ed;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:5px 12px;padding:16px 0;display:grid}.income-entry .icon{border-radius:50%;grid-row:1/3}.income-entry>div{min-width:0}.income-entry>div strong,.income-entry small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.income-entry>div strong,.income-entry>strong{color:var(--navy);font-size:.76rem}.income-entry>strong{color:var(--green-dark)}.income-entry small{color:var(--muted);margin-top:3px;font-size:.62rem}.income-entry .transaction-actions{grid-column:2/-1}footer{color:#7c8895;text-align:center;padding:24px;font-size:.66rem}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline-offset:3px;outline:3px solid #6f927a99}.modal-backdrop{z-index:20;background:#10243d8f;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.category-modal{background:#fff;border-radius:18px;width:min(520px,100%);max-height:calc(100vh - 40px);overflow:auto;box-shadow:0 24px 70px #08182a47}.modal-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:22px 24px;display:flex}.close-button{width:36px;height:36px;color:var(--muted);background:var(--cream);border:0;border-radius:9px;font-size:1.35rem}.category-modal form,.settings-content{padding:24px}.category-modal label{color:var(--navy);gap:7px;font-size:.75rem;font-weight:700;display:grid}.category-modal input,.category-modal select{width:100%;min-height:43px;color:var(--text);font:inherit;background:#fff;border:1px solid #ccd6cf;border-radius:9px;padding:9px 11px}.category-modal input[aria-invalid=true],.category-modal select[aria-invalid=true]{border-color:var(--over)}.full-field{margin-top:18px}.form-row{grid-template-columns:1fr 1fr;gap:14px;margin-top:18px;display:grid}.field-error{color:var(--over);font-size:.65rem;font-weight:600}.rule-suggestion{color:var(--green-dark);font-size:.64rem;font-weight:700}.category-modal .rule-checkbox{color:var(--muted);grid-template-columns:none;align-items:flex-start;gap:9px;margin-top:18px;font-weight:600;line-height:1.45;display:flex}.category-modal .rule-checkbox input,.category-modal .rule-toggle input{width:16px;min-height:16px;accent-color:var(--green-dark);margin:1px 0 0}.form-help{color:var(--muted);margin-bottom:18px;font-size:.76rem}.settings-modal{width:min(760px,100%)}.settings-heading{color:var(--navy);margin:0 0 6px;font-size:1rem}.notification-settings{border:1px solid var(--line);background:#f8fafb;border-radius:14px;margin-top:22px;padding:18px}.notification-settings .rule-save-button{margin-top:12px}.threshold-fields{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.settings-error{color:var(--over);margin:15px 0 0;font-size:.7rem;line-height:1.45}.rules-settings,.data-settings{border-top:1px solid var(--line);margin-top:28px;padding-top:24px}.settings-section-header h3{color:var(--navy);margin:0 0 5px;font-size:1rem}.settings-section-header p{color:var(--muted);margin:0;font-size:.7rem}.rule-editor{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;align-items:end;gap:10px;margin-top:17px;display:grid}.rule-save-button{color:#fff;background:var(--navy);border:0;border-radius:9px;min-height:43px;padding:0 14px;font-size:.7rem;font-weight:700}.rules-list{border-block:1px solid var(--line);max-height:220px;margin-top:16px;overflow-y:auto}.rule-item{border-bottom:1px solid #edf0ed;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:13px 2px;display:grid}.rule-item:last-child{border:0}.rule-item.disabled{opacity:.58}.category-modal .rule-toggle{color:var(--muted);align-items:center;gap:6px;font-size:.61rem;display:flex}.rule-item>div{min-width:0}.rule-item>div strong,.rule-item>div small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.rule-item>div strong{color:var(--navy);font-size:.74rem}.rule-item>div small{color:var(--muted);margin-top:3px;font-size:.62rem}.rule-actions{gap:9px;display:flex}.rule-actions button{color:var(--green-dark);background:0 0;border:0;padding:3px 0;font-size:.64rem;font-weight:700}.rule-actions button:last-child{color:var(--over)}.rules-empty{color:var(--muted);text-align:center;margin:0;padding:24px;font-size:.7rem}.category-modal .test-rule{margin-top:18px}.test-rule small{color:var(--green-dark);font-size:.65rem;font-weight:600;line-height:1.4}.data-actions{flex-wrap:wrap;gap:10px;margin-top:17px;display:flex}.data-actions button,.category-modal .import-backup-button{border:1px solid var(--line);min-height:41px;color:var(--navy);background:#fff;border-radius:9px;justify-content:center;align-items:center;padding:0 15px;font-size:.72rem;font-weight:700;display:inline-flex}.data-actions button:hover,.category-modal .import-backup-button:hover{background:var(--cream)}.category-modal .import-backup-button{cursor:pointer;display:inline-flex}.import-backup-button input{clip:rect(0,0,0,0);white-space:nowrap;height:1px;position:absolute;overflow:hidden;width:1px!important;min-height:1px!important}.backup-message{border-radius:9px;margin:14px 0 0;padding:11px 13px;font-size:.7rem;line-height:1.45}.backup-message.error{color:#8c4545;background:#f8eaea}.backup-message.success{color:var(--green-dark);background:var(--pale)}.restore-preview{background:#fffaf0;border:1px solid #d8b67d;border-radius:12px;margin-top:16px;padding:16px}.restore-preview>div:first-child strong,.restore-preview>div:first-child small{overflow-wrap:anywhere;display:block}.restore-preview>div:first-child strong{color:var(--navy);font-size:.76rem}.restore-preview>div:first-child small{color:var(--muted);margin-top:4px;font-size:.63rem}.restore-preview dl{grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;margin:15px 0;display:grid}.restore-preview dl div{text-align:center;background:#fff;border-radius:8px;min-width:0;padding:9px}.restore-preview dt{color:var(--muted);font-size:.58rem}.restore-preview dd{color:var(--navy);margin:4px 0 0;font-size:.8rem;font-weight:750}.restore-preview p{color:#795623;margin:0;font-size:.68rem;line-height:1.5}.restore-preview>div:last-child{flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-top:15px;display:flex}.restore-preview>div:last-child button{border:1px solid var(--line);min-height:38px;color:var(--navy);background:#fff;border-radius:8px;padding:0 13px;font-size:.69rem;font-weight:700}.restore-preview>div:last-child .restore-button{border-color:var(--over);color:#fff;background:var(--over)}.modal-actions{justify-content:flex-end;gap:9px;margin-top:25px;display:flex}.modal-actions button{border:1px solid var(--line);min-height:40px;color:var(--navy);background:#fff;border-radius:9px;padding:0 15px;font-size:.75rem;font-weight:700}.modal-actions .save-button{border-color:var(--navy);color:#fff;background:var(--navy)}.connected-bank-list{gap:14px;margin-top:18px;display:grid}.connected-bank{border:1px solid var(--line);background:#fafcfb;border-radius:12px;padding:15px}.connected-bank-heading{justify-content:space-between;align-items:center;gap:14px;display:flex}.connected-bank-heading strong,.connected-bank-heading small{display:block}.connected-bank-heading strong{color:var(--navy)}.connected-bank-heading small{color:var(--muted);margin-top:3px;font-size:.67rem}.connected-bank .income-entry:last-child{border-bottom:0;padding-bottom:0}.disconnect-bank-button{color:#a73333;background:#fff;border:1px solid #c94a4a;border-radius:9px;min-height:38px;padding:0 12px;font-weight:700}.disconnect-bank-button:disabled{cursor:wait;opacity:.65}.bank-disconnect-error{color:#8f2525;background:#fff5f5;border:1px solid #e5aaaa;border-radius:9px;padding:10px 12px}.available-cash-summary{color:#fff;background:linear-gradient(145deg,#436b52,#5e856a);border-radius:14px;gap:4px;margin:0 24px 16px;padding:17px;display:grid}.available-cash-summary span{text-transform:uppercase;letter-spacing:.045em;font-size:.66rem;font-weight:750}.available-cash-summary strong{font-size:1.65rem}.available-cash-summary small{color:#ffffffc7;font-size:.61rem}.bank-balance-entry{border-bottom:1px solid var(--line);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:11px;padding:13px 0;display:grid}.bank-balance-entry>div:nth-child(2){min-width:0}.bank-balance-entry>div:nth-child(2) strong,.bank-balance-entry>div:nth-child(2) small{display:block}.bank-balance-entry>div:nth-child(2) strong{color:var(--navy);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.bank-balance-entry>div:nth-child(2) small{color:var(--muted);margin-top:3px;font-size:.61rem}.bank-balance-amount{text-align:right;white-space:nowrap}.bank-balance-amount small,.bank-balance-amount strong,.bank-balance-amount span{display:block}.bank-balance-amount small,.bank-balance-amount span{color:var(--muted);font-size:.58rem}.bank-balance-amount strong{color:var(--navy);margin:3px 0;font-size:.85rem}.bank-account-actions{flex-wrap:wrap}@media (width<=540px){.connected-bank-heading{flex-direction:column;align-items:stretch}.disconnect-bank-button{width:100%}.available-cash-summary{margin-inline:18px}.bank-balance-entry{grid-template-columns:auto minmax(0,1fr)}.bank-balance-amount{text-align:left;grid-column:2}}.detail-modal{width:min(650px,100%)}.detail-title{align-items:center;gap:12px;min-width:0;display:flex}.detail-title h2{overflow-wrap:anywhere}.detail-content{padding:24px}.detail-summary{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.detail-summary>div{border:1px solid var(--line);background:var(--cream);border-radius:12px;min-width:0;padding:15px}.detail-summary span,.detail-summary strong{display:block}.detail-summary span{color:var(--muted);margin-bottom:7px;font-size:.65rem}.detail-summary strong{color:var(--navy);overflow-wrap:anywhere;font-size:1rem}.detail-summary .over strong{color:var(--over)}.detail-list-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:16px;margin-top:28px;padding-bottom:13px;display:flex}.detail-list-header h3{color:var(--navy);margin:0;font-size:1rem}.detail-transactions{max-height:310px;overflow-y:auto}.detail-transaction{border-bottom:1px solid #edf0ed;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:5px 16px;padding:15px 2px;display:grid}.detail-transaction:last-child{border-bottom:0}.detail-transaction>div{min-width:0}.detail-transaction>div strong,.detail-transaction small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.detail-transaction>div strong,.detail-transaction>strong{color:var(--navy);font-size:.76rem}.detail-transaction small{color:var(--muted);margin-top:4px;font-size:.64rem}.detail-transaction .transaction-actions{grid-column:1/-1}.detail-empty{color:var(--muted);text-align:center;margin:0;padding:38px 18px 20px;font-size:.78rem;line-height:1.5}.notification-panel{width:min(570px,100%)}.notification-list{max-height:min(520px,100vh - 150px);padding:10px 20px 20px;overflow-y:auto}.notification-item{border:0;border-bottom:1px solid var(--line);width:100%;color:var(--text);text-align:left;background:#fff;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:15px 4px;display:grid}.notification-item:hover{background:var(--cream)}.notification-item:last-child{border-bottom:0}.notification-item .warning-dot{background:currentColor;border-radius:50%;width:10px;height:10px}.notification-item>span:nth-child(2){min-width:0}.notification-item span>strong,.notification-item span>small{display:block}.notification-item span>strong{color:var(--navy);font-size:.78rem}.notification-item span>small{color:var(--muted);margin-top:4px;font-size:.64rem}.notification-item.heads-up{color:var(--heads-up)}.notification-item.near-limit{color:var(--near-limit)}.notification-item.over{color:var(--over)}.warning-value{text-align:right}.warning-value small{font-weight:700;color:currentColor!important}.import-modal{width:min(920px,100%)}.import-content{padding:24px}.import-file-step{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:270px;display:flex}.import-file-step>p{max-width:500px;color:var(--muted);font-size:.8rem;line-height:1.55}.category-modal .file-picker{background:var(--cream);text-align:left;border:1px dashed #aebdb2;border-radius:12px;width:min(430px,100%);margin:12px 0;padding:22px}.category-modal .file-picker input{margin-top:4px;padding:8px}.import-file-step a{color:var(--green-dark);font-size:.7rem;font-weight:700}.import-step-header{justify-content:space-between;align-items:end;gap:20px;margin-bottom:20px;display:flex}.import-step-header h3{color:var(--navy);margin:0 0 4px;font-size:1rem}.import-step-header p{color:var(--muted);margin:0;font-size:.68rem}.import-step-header label{width:180px}.mapping-grid{grid-template-columns:repeat(3,1fr);gap:13px;display:grid}.mapping-help{color:var(--muted);margin:15px 0 0;font-size:.68rem}.import-group{margin-top:22px}.import-group h4{color:var(--navy);margin:0 0 8px;font-size:.76rem}.import-rows{border:1px solid var(--line);border-radius:12px;max-height:260px;overflow-y:auto}.import-row{border-bottom:1px solid var(--line);background:#fff;grid-template-columns:auto minmax(0,1fr) minmax(150px,210px);align-items:center;gap:12px;padding:12px;display:grid}.import-row:last-child{border:0}.import-row.possible-duplicate{background:#fcf7ef}.import-row.unreadable{background:#fbf3f3}.category-modal .import-row>input{width:17px;min-height:17px;accent-color:var(--green-dark);margin:0}.import-row>div{min-width:0}.import-row>div strong,.import-row>div small,.import-row>div span{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.import-row>div strong{color:var(--navy);font-size:.73rem}.import-row>div small{color:var(--muted);margin-top:3px;font-size:.62rem}.import-row>div span{color:var(--green-dark);margin-top:4px;font-size:.61rem;font-weight:700}.import-row.possible-duplicate>div span,.import-row.unreadable>div span{color:var(--over)}.import-row select{min-height:37px;font-size:.68rem}.import-kind{color:var(--muted);text-align:right;font-size:.66rem}.import-error{color:#8c4545;background:#f8eaea;border-radius:9px;margin:16px 0 0;padding:11px 13px;font-size:.7rem}.import-summary{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:360px;display:flex}.import-summary>.icon{color:#fff;background:var(--green-dark)}.import-summary h3{color:var(--navy);margin:14px 0 6px}.import-summary>p{color:var(--muted);font-size:.75rem}.import-summary>div{border-block:1px solid var(--line);width:min(500px,100%);margin:15px 0 22px}.import-summary>div span{color:var(--muted);justify-content:space-between;gap:15px;padding:10px 3px;font-size:.7rem;display:flex}.import-summary>div strong{color:var(--navy)}.import-summary>.save-button{color:#fff;background:var(--navy);border:0;border-radius:9px;min-height:40px;padding:0 18px;font-weight:700}.uncategorized-modal{width:min(860px,100%)}.uncategorized-content{grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);display:grid}.review-toolbar{border-bottom:1px solid var(--line);color:var(--muted);grid-column:1/-1;justify-content:space-between;align-items:center;padding:13px 22px;font-size:.68rem;font-weight:700;display:flex}.category-modal .select-all{color:var(--navy);align-items:center;gap:8px;display:flex}.category-modal .select-all input,.uncategorized-row>input{width:16px;min-height:16px;accent-color:var(--green-dark);margin:0}.uncategorized-list{border-right:1px solid var(--line);max-height:min(560px,100vh - 180px);padding:6px 20px;overflow-y:auto}.uncategorized-row{border-bottom:1px solid #edf0ed;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:5px 11px;padding:14px 7px;display:grid;position:relative}.uncategorized-row.active{background:var(--cream);border-radius:9px;margin-inline:-4px;padding-inline:11px}.uncategorized-row>input{grid-row:1/3}.uncategorized-row>div{min-width:0}.uncategorized-row>div strong,.uncategorized-row>div small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.uncategorized-row>div strong,.uncategorized-row>strong{color:var(--navy);font-size:.74rem}.uncategorized-row>div small{color:var(--muted);margin-top:3px;font-size:.62rem}.uncategorized-row select{min-height:32px;color:var(--text);font:inherit;background:#fff;border:1px solid #ccd6cf;border-radius:8px;grid-column:2/-1;padding:5px 8px;font-size:.66rem}.next-label{color:var(--green-dark);text-transform:uppercase;letter-spacing:.08em;font-size:.55rem;font-weight:800;position:absolute;top:2px;right:5px}.assignment-panel{background:#fbfcfa;padding:22px}.assignment-heading{justify-content:space-between;align-items:center;gap:10px;margin-bottom:19px;display:flex}.assignment-heading h3{color:var(--navy);margin:3px 0 0;font-size:1rem}.assignment-heading button{color:var(--green-dark);background:0 0;border:0;padding:5px 0;font-size:.67rem;font-weight:750}.assignment-panel>label{margin-top:16px}.inline-category-form{border:1px solid var(--line);background:#fff;border-radius:11px;grid-template-columns:1fr 1fr;gap:9px;margin:0 0 20px;padding:14px;display:grid}.category-modal .inline-category-form{padding:14px}.inline-category-form button{color:#fff;background:var(--green-dark);border:0;border-radius:8px;grid-column:1/-1;min-height:36px;font-size:.68rem;font-weight:700}.category-modal .rule-match-field{margin-top:13px}.rule-match-field small{color:var(--muted);font-size:.61rem;font-weight:500;line-height:1.4}.uncategorized-complete{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:350px;padding:40px;display:flex}.uncategorized-complete>.icon{color:#fff;background:var(--green-dark)}.uncategorized-complete h3{color:var(--navy);margin:14px 0 5px}.uncategorized-complete p{color:var(--muted);margin:0 0 22px;font-size:.76rem}.uncategorized-complete .save-button{color:#fff;background:var(--navy);border:0;border-radius:9px;min-height:40px;padding:0 18px;font-weight:700}@media (width<=900px){.summary-grid{grid-template-columns:repeat(2,1fr)}.content-grid{grid-template-columns:1fr}.transaction-header-actions{flex-basis:auto}}@media (width<=600px){.header-inner,main{width:calc(100% - 28px)}.header-inner{flex-direction:column;align-items:stretch;gap:7px;height:auto;min-height:64px;padding-block:9px}.brand{font-size:.95rem}.brand .icon{width:34px;height:34px}.brand-copy{display:none}.header-actions{justify-content:space-between;gap:5px}.signed-in-user{display:none}.sign-out-button{min-height:36px;padding-inline:8px;font-size:.62rem}.header-icon-button{width:32px;height:36px;padding:0}.month-selector{min-height:36px}.month-selector span{min-width:90px;padding-inline:2px;font-size:.68rem}.month-selector button{width:26px}main{padding:34px 0 28px}.welcome{margin-bottom:24px;display:block}h1{font-size:2.15rem}.welcome>div>p:last-child{font-size:.86rem;line-height:1.5}.month-progress{width:100%;margin-top:22px}.summary-grid{gap:10px}.summary-card{border-radius:14px;min-height:133px;padding:16px}.card-label{margin-bottom:14px;font-size:.68rem}.card-label .icon{width:29px;height:29px}.summary-card>strong{font-size:1.22rem}.summary-card small{font-size:.62rem;line-height:1.35;display:block}.panel{border-radius:15px}.panel-header{min-height:80px;padding:17px}.add-button{justify-content:center;width:39px;padding:0;font-size:1rem}.add-label,.import-label{display:none}.import-button{justify-content:center;width:39px;padding:0;font-size:1rem}.uncategorized-button{justify-content:center;width:39px;padding:0}.uncategorized-label{display:none}.transactions .panel-header>div:first-child{flex-basis:100%}.transactions .transaction-header-actions{flex-basis:100%;justify-content:flex-start}.transactions .add-button,.transactions .import-button,.transactions .uncategorized-button{width:auto;padding-inline:11px;font-size:.7rem}.transactions .add-label,.transactions .import-label,.transactions .uncategorized-label{display:inline}.budget-list{padding:3px 17px}.category{max-width:57%;font-size:.77rem}.amount{font-size:.67rem}.row-actions{gap:7px}.row-actions .amount{display:none}.track,.budget-meta{margin-left:45px}.legend{justify-content:space-between;gap:7px;padding:14px 17px}.transaction-list{padding-inline:17px}.income-list{grid-template-columns:1fr;padding-inline:17px}.note{margin-inline:17px}.category-modal form,.settings-content,.modal-header{padding:19px}.form-row,.threshold-fields,.rule-editor{grid-template-columns:1fr}.restore-preview dl{grid-template-columns:repeat(2,minmax(0,1fr))}.rule-item{grid-template-columns:1fr auto}.category-modal .rule-toggle{grid-column:1/-1}.detail-content{padding:19px}.detail-summary{grid-template-columns:1fr}.detail-summary>div{justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.detail-summary span{margin:0}.detail-list-header .add-button{width:auto;padding-inline:11px;font-size:.7rem}.detail-transactions{max-height:290px}.notification-list{padding-inline:15px}.import-content{padding:18px}.import-step-header{flex-direction:column;align-items:stretch;gap:12px}.import-step-header label{width:100%}.mapping-grid{grid-template-columns:1fr}.import-row{grid-template-columns:auto minmax(0,1fr)}.import-row select,.import-kind{text-align:left;grid-column:2;width:100%}}@media (width<=700px){.uncategorized-content{display:block}.uncategorized-list{border-right:0;border-bottom:1px solid var(--line);max-height:42vh}.assignment-panel{padding:18px}}@media (width<=390px){.amount span{display:none}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}.cloud-button{color:inherit;white-space:nowrap;background:0 0;border:1px solid #ffffff59}.cloud-migration-modal table{border-collapse:collapse;width:100%;margin:1rem 0}.cloud-migration-modal th,.cloud-migration-modal td{text-align:right;border-bottom:1px solid #dfe5e2;padding:.55rem}.cloud-migration-modal th:first-child{text-align:left}.cloud-status{background:#eef2f0;border-radius:.5rem;padding:.75rem}.cloud-status.complete{color:#245b42;background:#e1efe8}.cloud-status.error,.cloud-status.blocked{color:#8a3029;background:#f8e7e5}.connect-bank-button{color:#17324d;font:inherit;cursor:pointer;background:#fff;border:1px solid #ffffff59;border-radius:999px;padding:.55rem .85rem;font-weight:800}.connect-bank-button:hover{background:#edf7f1}.bank-import-modal{width:min(980px,100%)}.bank-import-content{padding:0 24px 20px}.bank-review-toolbar{border-bottom:1px solid var(--line);color:var(--muted);justify-content:space-between;align-items:center;gap:16px;padding:12px 24px;font-size:.68rem;font-weight:700;display:flex}.bank-review-layout{grid-template-columns:minmax(0,1.4fr) minmax(280px,.6fr);min-height:420px;display:grid}.bank-review-list{border-right:1px solid var(--line);max-height:58vh;overflow:auto}.bank-review-row{border-bottom:1px solid var(--line);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:13px 18px;display:grid}.bank-review-row:last-child{border-bottom:0}.bank-review-row.active{background:var(--cream)}.bank-review-row>input{width:16px;min-height:16px;accent-color:var(--green-dark);margin:0}.bank-review-row div{min-width:0}.bank-review-row div strong{color:var(--navy);text-overflow:ellipsis;white-space:nowrap;font-size:.74rem;display:block;overflow:hidden}.bank-review-row small{color:var(--muted);margin-top:4px;display:block}.bank-review-row>strong{white-space:nowrap}.bank-review-row .bank-credit{color:var(--green-dark)}.bank-review-actions{background:#fbfcfa;padding:22px}.bank-review-actions h3{color:var(--navy);margin:4px 0 6px}.bank-review-actions>p:not(.eyebrow):not(.settings-error){color:var(--muted);margin:0 0 18px;font-size:.68rem;line-height:1.45}.bank-review-actions>label{margin:14px 0}.bank-review-actions .bank-action{color:#fff;background:var(--green-dark);border:0;border-radius:9px;width:100%;min-height:42px;margin-top:12px;font-weight:750}.bank-review-actions button:disabled{cursor:not-allowed;opacity:.5}.bank-nonspend-actions{grid-template-columns:1fr 1fr;gap:8px;margin-top:9px;display:grid}.bank-nonspend-actions button{border:1px solid var(--line);min-height:38px;color:var(--navy);background:#fff;border-radius:8px;font-size:.67rem;font-weight:700}.bank-review-actions>small{color:var(--muted);margin-top:13px;font-size:.61rem;line-height:1.45;display:block}.bank-no-categories{background:#fffaf0;border:1px solid #d8b67d;border-radius:10px;margin:14px 0;padding:13px}.bank-no-categories p{color:#795623;margin:0 0 9px;font-size:.67rem;line-height:1.4}.bank-no-categories button{color:#fff;background:var(--navy);border:0;border-radius:7px;min-height:34px;padding:0 11px;font-size:.66rem;font-weight:700}.bank-review-footer{border-top:1px solid var(--line);margin:0;padding:14px 20px}.bank-review-empty{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:360px;padding:30px;display:flex}.bank-review-empty .icon{color:#fff;background:var(--green-dark)}.bank-review-empty h3{color:var(--navy);margin:12px 0 4px}.bank-review-empty p{color:var(--muted);margin:0;font-size:.72rem}.household-invite{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:10px;display:grid}.household-invite label{margin:0}.household-invite>small{color:var(--muted);grid-column:1/-1;line-height:1.5}.household-member-list{gap:8px;margin-top:14px;display:grid}.household-member{border:1px solid var(--line);background:#fff;border-radius:11px;justify-content:space-between;align-items:center;gap:12px;padding:12px;display:flex}.household-member strong,.household-member small{display:block}.household-member strong{color:var(--navy);font-size:.72rem}.household-member small{color:var(--muted);margin-top:3px;font-size:.61rem}.household-member button{color:#8a3030;background:#fff7f7;border:1px solid #d8b5b5;border-radius:8px;min-height:34px;font-weight:700}.danger-settings{background:snow;border-color:#e2b9b9}.account-danger-action,.account-delete-warning{justify-content:space-between;align-items:center;gap:14px;display:flex}.account-danger-action strong,.account-danger-action small,.account-delete-warning strong,.account-delete-warning small{display:block}.account-danger-action small,.account-delete-warning small{color:var(--muted);margin-top:4px;line-height:1.45}.account-danger-action button,.delete-account-button{color:#8a2525;background:#fff;border:1px solid #c94a4a;border-radius:9px;min-height:38px;font-weight:700}.account-danger-action button:disabled,.delete-account-button:disabled{cursor:wait;opacity:.65}.delete-account-form{border-top:1px solid #ecd0d0;gap:12px;margin-top:16px;padding-top:16px;display:grid}.delete-account-button{color:#fff;background:#9d2929;justify-self:start;padding:0 14px}:root{--navy:#132a42;--green:#6f9178;--green-dark:#436b52;--pale:#e9f1eb;--cream:#f6f7f4;--text:#1c2c3f;--muted:#687789;--line:#dfe6e1}.app-shell{background:radial-gradient(circle at 12% 0%, #6f91781f, transparent 28rem), var(--cream)}header{-webkit-backdrop-filter:blur(16px);background:#132a42f5;box-shadow:0 8px 30px #0d1f3124}.header-inner{height:78px}.brand{letter-spacing:-.015em;font-size:1.02rem;font-weight:650}.brand .icon{color:#fff;background:#ffffff24;box-shadow:inset 0 0 0 1px #ffffff1a}.header-actions{gap:7px}.connect-bank-button,.sign-out-button,.header-icon-button,.month-selector,.cloud-button{transition:border-color .18s,background-color .18s,transform .18s}.connect-bank-button{color:#fff;background:#ffffff1a;border:1px solid #ffffff2e;min-height:40px}.connect-bank-button:first-child{color:#fff;background:#2f6fed;border-color:#2f6fed}.connect-bank-button:first-child:hover{background:#255fce}.connect-bank-button:hover,.sign-out-button:hover,.header-icon-button:hover{transform:translateY(-1px)}.cloud-button{text-overflow:ellipsis;border-radius:999px;max-width:118px;padding:7px 9px;font-size:.61rem;overflow:hidden}main{padding-top:46px}.welcome{align-items:center;margin-bottom:26px}.welcome h1{max-width:680px;margin-bottom:8px;font-size:clamp(2rem,4vw,3rem)}.welcome>div>p:last-child{max-width:570px;line-height:1.55}.month-progress{background:#ffffffb8;border:1px solid #132a4214;border-radius:15px;width:240px;padding:16px 18px;box-shadow:0 8px 22px #10243d0d}.month-progress>div{height:7px}.summary-card,.panel{border-color:#132a4217;box-shadow:0 10px 30px #10243d0e}.summary-card{border-radius:18px;min-height:148px;padding:20px}.summary-card:not(.navy):not(.green){background:#ffffffe6}.summary-card.navy{background:linear-gradient(145deg,#132a42,#1c3b5b)}.summary-card.green{background:linear-gradient(145deg,#436b52,#5e856a)}.summary-card>strong{font-size:clamp(1.45rem,2.3vw,1.9rem)}.card-label .icon{border-radius:50%}.panel{background:#fffffff0;border-radius:20px}.panel-header{min-height:84px;padding:19px 22px}.panel-header h2{font-size:1.12rem}.add-button,.import-button,.uncategorized-button,.rule-save-button{border-radius:11px}.add-button{min-height:42px;padding-inline:15px;box-shadow:0 5px 14px #132a421f}.budget-row{padding-block:17px}.track{background:#e9eeea;height:8px}.transaction,.income-entry{padding-block:15px}.note{border:1px solid #436b521a}.category-modal{border:1px solid #ffffff80;border-radius:22px}.category-modal input,.category-modal select{border-radius:11px;min-height:46px}@media (width<=900px){.header-inner{align-items:flex-start;gap:12px;height:auto;min-height:72px;padding-block:11px}.header-actions{flex-wrap:wrap;justify-content:flex-end}.signed-in-user,.cloud-button{order:3}.month-selector{order:2}}@media (width<=600px){.header-inner,main{width:calc(100% - 24px)}.header-inner{padding-block:14px;display:block}.brand{align-self:auto;width:fit-content;margin-bottom:12px}.brand-copy{display:inline}.header-actions{grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;display:grid}.connect-bank-button{min-height:42px;padding:0 10px;font-size:.68rem}.connect-bank-button:first-of-type{grid-column:1/4}.connect-bank-button:nth-of-type(2){grid-column:4/7}.sign-out-button{grid-area:2/4;min-width:0;min-height:42px;padding-inline:6px;font-size:.6rem}.header-icon-button{width:auto;min-width:42px;height:42px}.header-icon-button:nth-of-type(4){grid-area:2/5}.header-icon-button:nth-of-type(5){grid-area:2/6}.month-selector{order:initial;grid-area:2/1/auto/4;min-height:42px}.month-selector span{flex:1;font-size:.74rem}.cloud-button,.signed-in-user{display:none}main{padding-top:26px}.welcome{margin-bottom:19px}.welcome .eyebrow{margin-bottom:5px}.welcome h1{margin-bottom:7px;font-size:1.8rem;line-height:1.1}.welcome>div>p:last-child{font-size:.8rem}.month-progress{margin-top:16px;padding:13px 14px}.summary-grid{gap:8px;margin-bottom:16px}.summary-card{border-radius:16px;min-height:118px;padding:14px}.card-label{margin-bottom:10px;font-size:.62rem}.summary-card>strong{margin-bottom:5px;font-size:1.12rem}.summary-card small{font-size:.59rem}.panel{border-radius:18px}.panel-header{min-height:73px;padding:15px}.panel-header h2{font-size:1rem}.content-grid{gap:14px}.budget-list,.transaction-list,.income-list{padding-inline:14px}.budget-row{margin-inline:-5px;padding:15px 5px 14px}.category{max-width:70%}.row-actions button{min-width:34px;min-height:30px}.legend{white-space:nowrap;justify-content:flex-start;gap:14px;overflow-x:auto}.transaction{gap:9px}.transaction>strong{font-size:.7rem}.note{margin:8px 14px 14px}.modal-backdrop{align-items:end;padding:8px}.category-modal{border-radius:22px 22px 16px 16px;width:100%;max-height:calc(100dvh - 16px)}.household-invite{grid-template-columns:1fr}.household-invite>small{grid-column:auto}}@media (width<=760px){.bank-review-layout{display:block}.bank-review-list{border-right:0;border-bottom:1px solid var(--line);max-height:42vh}.bank-review-toolbar{flex-direction:column;align-items:flex-start;gap:7px;padding-inline:18px}.bank-review-actions{padding:18px}}.read-only-banner{color:#17324d;background:#eef5fb;border:1px solid #c8d5e4;border-radius:.75rem;margin:0 0 1rem;padding:.8rem 1rem}.read-only-banner strong{margin-right:.25rem}@media (width<=600px){html,body,#root,.app-shell{width:100%;min-width:0;max-width:100%;overflow-x:hidden}header,.header-inner,main,.welcome,.summary-grid,.content-grid,.panel{min-width:0;max-width:100%}.header-inner,main{width:calc(100% - 24px)}.header-actions>*,.summary-card,.panel-header>*,.budget-heading>*,.budget-meta>*{min-width:0}.summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.summary-card{width:100%;overflow:hidden}.summary-card>strong,.summary-card small,.card-label{overflow-wrap:anywhere}.content-grid{grid-template-columns:minmax(0,1fr);width:100%}.panel,.budget-list,.transaction-list,.income-list{width:100%}.category-modal input,.category-modal select{max-width:100%}}:root{--navy-950:#08172b;--navy-900:#0b1f3a;--navy-800:#12345a;--navy-700:#1d4b78;--blue-500:#3d78ad;--blue-100:#dce9f5;--blue-50:#eff5fa;--surface:#fff;--canvas:#f3f7fb;--text:#10233c;--muted:#60728a;--line:#d9e3ed;--green:#237a61;--green-soft:#e5f4ef;--amber:#b47714;--red:#b34043;--shadow-sm:0 8px 24px #0a1f3a12;--shadow-md:0 18px 50px #0a1f3a1f}body{color:var(--text);background:radial-gradient(circle at 85% -10%, #3d78ad21, transparent 28rem), var(--canvas)}.app-shell{background:0 0;min-height:100vh}header{z-index:30;-webkit-backdrop-filter:blur(16px);background:#08172bf5;border-bottom:1px solid #ffffff21;position:sticky;top:0;box-shadow:0 8px 28px #08172b2e}.header-inner{max-width:1240px}.brand{color:#fff;letter-spacing:-.02em}.brand:hover{color:#fff}.brand .icon{color:#fff;background:linear-gradient(145deg,#255a8b,#102b4d);border:1px solid #ffffff40;box-shadow:inset 0 0 0 2px #ffffff14,0 6px 16px #00000038}.brand-copy{font-weight:500}.brand-copy strong{font-weight:800}.header-actions button,.month-selector{color:#fff;background:#ffffff14;border-color:#fff3}.header-actions button:hover,.month-selector:hover{background:#ffffff24}.connect-bank-button{color:#fff!important;background:#ffffff1a!important;border-color:#ffffff47!important}.connect-bank-button:first-child{background:#28618f!important;border-color:#4f89bd!important}.sign-out-button{color:#dbe8f4!important}.header-icon-button strong{border-color:var(--navy-900)}.signed-in-user,.cloud-button{color:#c5d6e7}.cloud-saved{color:#9ee0c8}main{max-width:1240px}.eyebrow{color:var(--navy-700);letter-spacing:.12em}.welcome h1{color:var(--navy-950);letter-spacing:-.045em;font-size:clamp(2rem,4vw,3.35rem)}.welcome>div>p:last-child{color:var(--muted)}.month-progress{border:1px solid var(--line);box-shadow:var(--shadow-sm);background:#ffffffc7}.month-progress>div{background:var(--blue-100)}.month-progress>div>span{background:linear-gradient(90deg, var(--navy-800), var(--blue-500))}.summary-grid{gap:14px}.summary-card{border:1px solid var(--line);min-height:144px;box-shadow:var(--shadow-sm);background:#ffffffeb;border-radius:22px}.summary-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.summary-card.navy{color:#fff;background:linear-gradient(135deg, #ffffff14, transparent 50%), var(--navy-900);border-color:#0000}.summary-card .icon{background:var(--blue-50);color:var(--navy-700)}.summary-card.navy .icon{color:#fff;background:#ffffff21}.summary-card small{color:var(--muted)}.summary-card.navy small{color:#c4d6e7}.content-grid{gap:18px}.panel{border:1px solid var(--line);box-shadow:var(--shadow-sm);background:#fffffff0;border-radius:24px;overflow:hidden}.panel-header{border-bottom:1px solid var(--line);background:linear-gradient(#fff,#f9fbfd)}.panel-header h2{color:var(--navy-950);letter-spacing:-.025em}.add-button,.save-button,.auth-primary{box-shadow:0 7px 16px #12345a2e;border-color:var(--navy-800)!important;color:#fff!important;background:var(--navy-800)!important}.add-button:hover,.save-button:hover{background:var(--navy-700)!important}.import-button,.uncategorized-button{color:var(--navy-800);background:var(--blue-50)}.uncategorized-button strong{background:var(--navy-800)}.budget-row{border-color:var(--line)}.budget-row:hover{background:var(--blue-50)}.category .icon,.transaction>.icon,.income-entry>.icon{color:var(--navy-700);background:var(--blue-50)}.track{background:#e7edf3}.track span.safe{background:var(--navy-700)}.track span.heads-up{background:#d29a32}.track span.near-limit{background:#c46a32}.track span.over{background:var(--red)}.budget-meta .safe{color:var(--navy-700)}.legend i.safe{background:var(--navy-700)}.transaction:hover,.income-entry:hover{background:var(--blue-50)}.transaction small,.income-entry small,.budget-meta,.panel p{color:var(--muted)}.transaction>strong{color:var(--text)}.income-entry>strong,.bank-credit{color:var(--green)}.note{color:var(--navy-800);background:var(--blue-50);border-color:#cddfed}.note .icon{color:#fff;background:var(--navy-700)}.read-only-banner{color:var(--navy-800);background:var(--blue-50);border-color:#bfd5e8}.dashboard-auth-error,.settings-error,.field-error{border-radius:12px}footer{color:var(--muted)}.mobile-nav{display:none}.modal-backdrop{-webkit-backdrop-filter:blur(8px);background:#0511209e}.category-modal{background:#fff;border:1px solid #ffffffa6;border-radius:24px;box-shadow:0 28px 80px #04112147}.modal-header{border-bottom-color:var(--line);background:linear-gradient(#fff,#f7fafd)}.category-modal input,.category-modal select,.category-modal textarea{background:#fbfdff;border-color:#cbd8e5}.category-modal input:focus,.category-modal select:focus,.category-modal textarea:focus{border-color:var(--blue-500);box-shadow:0 0 0 3px #3d78ad24}.close-button{color:var(--navy-800);background:var(--blue-50)}.available-cash-summary{color:#fff;background:linear-gradient(145deg, var(--navy-900), var(--navy-700))}.notification-item.unread{background:var(--blue-50)}.auth-loading>span{background:var(--navy-900)}@media (width<=600px){body{padding-bottom:calc(76px + env(safe-area-inset-bottom))}header{position:relative}.header-inner{padding-top:calc(10px + env(safe-area-inset-top))}.brand{margin-bottom:10px}.brand .icon{border-radius:11px;width:36px;height:36px}.brand-copy{font-size:1rem}.header-actions{grid-template-columns:repeat(4,minmax(0,1fr));padding-bottom:2px}.header-actions .connect-bank-button,.header-actions .sign-out-button,.header-actions .header-icon-button,.header-actions .signed-in-user,.header-actions .cloud-button{display:none}.header-actions .month-selector{background:#ffffff14;border-color:#ffffff30;grid-area:1/1/auto/-1;min-height:44px;display:flex}main{padding-top:22px;padding-bottom:14px}.welcome{display:block}.welcome h1{font-size:2rem}.welcome>div>p:last-child{font-size:.88rem;line-height:1.45}.month-progress{border-radius:16px;margin-top:16px}.summary-grid{gap:10px}.summary-card{border-radius:18px;min-height:124px;padding:15px}.summary-card>strong{font-size:1.18rem}.summary-card:hover{transform:none}.panel{border-radius:20px}.panel-header{min-height:70px}.content-grid{gap:16px}.income-panel{margin-bottom:8px}.budget-heading{align-items:flex-start}.row-actions{justify-content:flex-end;max-width:46%}.row-actions .amount{text-align:right;width:100%}.row-actions button{font-size:.66rem}.budget-meta{font-size:.72rem}.mobile-nav{right:10px;bottom:calc(8px + env(safe-area-inset-bottom));z-index:50;-webkit-backdrop-filter:blur(18px);background:#08172bf5;border:1px solid #ffffff29;border-radius:21px;grid-template-columns:repeat(4,minmax(0,1fr));min-height:64px;padding:7px 6px;display:grid;position:fixed;left:10px;box-shadow:0 14px 40px #04112157}.mobile-nav a,.mobile-nav button{color:#d6e4f0;background:0 0;border:0;border-radius:14px;flex-direction:column;justify-content:center;align-items:center;gap:3px;min-width:0;min-height:50px;padding:3px;text-decoration:none;display:flex}.mobile-nav a:active,.mobile-nav button:active{color:#fff;background:#ffffff1a}.mobile-nav svg{fill:currentColor;width:21px;height:21px}.mobile-nav span{text-overflow:ellipsis;max-width:100%;font-size:.63rem;font-weight:750;overflow:hidden}footer{display:none}#recent-activity{scroll-margin-top:12px}.modal-backdrop{padding-bottom:calc(8px + env(safe-area-inset-bottom))}.category-modal{border-radius:24px 24px 18px 18px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important}}body:has(.modal-backdrop){overflow:hidden}.summary-card.green{color:#fff;background:linear-gradient(145deg,#174f43,#28705d);border-color:#1f6554}.summary-card.green .icon{color:#fff;background:#ffffff26}.summary-card.green small{color:#d8eee7}@media (width<=600px){.modal-backdrop{z-index:100;background:var(--canvas);-webkit-backdrop-filter:none;align-items:stretch;padding:0;overflow:hidden}.settings-modal{width:100%;max-width:none;height:100dvh;max-height:100dvh;box-shadow:none;border:0;border-radius:0}.settings-modal .modal-header{z-index:2;padding-top:calc(18px + env(safe-area-inset-top));flex:none;position:sticky;top:0}.settings-modal .settings-content{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;min-height:0;padding-bottom:calc(96px + env(safe-area-inset-bottom));overflow-y:auto}.settings-modal .close-button{flex:0 0 48px;width:48px;height:48px}.modal-backdrop:has(.bank-accounts-modal){z-index:40;bottom:calc(82px + env(safe-area-inset-bottom));height:auto}.bank-accounts-modal{width:100%;max-width:none;height:100%;max-height:none;box-shadow:none;border:0;border-radius:0;flex-direction:column;display:flex;overflow:hidden}.bank-accounts-modal .modal-header{z-index:2;padding-top:calc(18px + env(safe-area-inset-top));flex:none;position:sticky;top:0}.bank-accounts-modal .close-button{flex:0 0 48px;width:48px;height:48px}.bank-accounts-modal>p,.bank-accounts-modal>.available-cash-summary,.bank-accounts-modal>.bank-disconnect-error,.bank-accounts-modal>.backup-message,.bank-accounts-modal>.bank-accounts-loading,.bank-accounts-modal>.empty-state{flex:none}.bank-accounts-modal .connected-bank-list{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;flex:auto;min-height:0;padding-bottom:12px;overflow-y:auto}.bank-accounts-modal .bank-account-actions{z-index:2;background:#fff;flex:none;padding-bottom:14px;position:sticky;bottom:0}.bank-accounts-modal .bank-account-actions>button{flex:1 1 0}.modal-backdrop .category-modal{min-height:0}.modal-backdrop .category-modal .modal-header{z-index:10;min-height:calc(82px + env(safe-area-inset-top));padding-top:calc(18px + env(safe-area-inset-top));background:#fff;flex:none;gap:14px;padding-bottom:18px;padding-left:18px;padding-right:18px;position:sticky;top:0}.modal-backdrop .category-modal .modal-header>div{flex:auto;min-width:0}.modal-backdrop .category-modal .modal-header .eyebrow,.modal-backdrop .category-modal .modal-header h2{overflow-wrap:anywhere;max-width:100%}.modal-backdrop .category-modal .modal-header h2{line-height:1.12}.modal-backdrop .category-modal .close-button{z-index:11;touch-action:manipulation;flex:0 0 48px;align-self:flex-start;width:48px;min-width:48px;height:48px;position:relative}}.welcome-metrics{flex:none;align-items:stretch;gap:12px;display:flex}.welcome-metrics .month-progress{width:220px;margin:0}.dashboard-balance{border:1px solid var(--line);width:190px;color:var(--muted);box-shadow:var(--shadow-sm);text-align:left;background:#ffffffc7;border-radius:15px;flex-direction:column;justify-content:center;align-items:flex-start;padding:14px 16px;display:flex}.dashboard-balance:hover{border-color:var(--blue-200);background:#fff;transform:translateY(-1px)}.dashboard-balance span,.dashboard-balance small{font-size:.67rem;font-weight:700}.dashboard-balance strong{max-width:100%;color:var(--navy-950);letter-spacing:-.025em;text-overflow:ellipsis;white-space:nowrap;margin:3px 0 2px;font-size:clamp(1.05rem,2vw,1.35rem);overflow:hidden}.dashboard-balance small{color:var(--muted);font-weight:600}@media (width<=600px){.welcome-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:16px;display:grid}.welcome-metrics .month-progress,.dashboard-balance{border-radius:16px;width:auto;min-width:0;margin:0;padding:12px}.welcome-metrics>:only-child{grid-column:1/-1}.dashboard-balance strong{font-size:clamp(.98rem,4.4vw,1.2rem)}}.auth-page{background:radial-gradient(circle at top left,#6f927a33,transparent 34%),var(--cream);grid-template-columns:minmax(0,1fr);place-items:center;width:100%;max-width:100vw;min-height:100vh;padding:32px 20px;display:grid;overflow-x:hidden}.auth-card{border:1px solid var(--line);background:#fff;border-radius:20px;justify-self:center;width:100%;min-width:0;max-width:440px;padding:36px;box-shadow:0 20px 60px #10243d1f}.auth-brand{color:var(--navy);align-items:center;gap:11px;margin-bottom:32px;font-size:1rem;display:flex}.auth-brand>span{color:#fff;background:var(--navy);border-radius:11px;place-items:center;width:40px;height:40px;font-weight:800;display:grid}.auth-card h1{margin-bottom:9px;font-size:2rem}.auth-description{color:var(--muted);margin-bottom:25px;font-size:.82rem;line-height:1.5}.auth-card form{gap:17px;display:grid}.auth-card label{color:var(--navy);gap:7px;font-size:.74rem;font-weight:750;display:grid}.auth-card input{width:100%;min-height:45px;color:var(--text);background:#fff;border:1px solid #ccd6cf;border-radius:9px;padding:10px 12px;font-family:inherit;font-size:16px}.auth-primary{color:#fff;background:var(--navy);border:0;border-radius:9px;width:100%;min-height:44px;font-size:.77rem;font-weight:750}.auth-primary:disabled{cursor:wait;opacity:.65}.auth-message{border-radius:9px;padding:12px 14px;font-size:.7rem;line-height:1.5}.auth-message strong,.auth-message span{display:block}.auth-message strong{margin-bottom:3px}.auth-message.error{color:#8c4545;background:#f8eaea}.confirmation-note{color:var(--muted);text-align:center;margin:-3px 0 0;font-size:.66rem;line-height:1.5}.auth-links{flex-wrap:wrap;justify-content:center;gap:8px 18px;display:flex}.auth-links button{color:var(--green-dark);background:0 0;border:0;padding:2px 0;font-size:.7rem;font-weight:700}.auth-links button:hover{text-decoration:underline}.recovery-complete{gap:18px;display:grid}.auth-loading{color:var(--navy);align-items:center;gap:13px;font-size:.8rem;display:flex}.auth-loading span{color:#fff;background:var(--navy);border-radius:12px;place-items:center;width:42px;height:42px;font-size:1rem;font-weight:800;animation:1.25s ease-in-out infinite auth-pulse;display:grid}@keyframes auth-pulse{50%{opacity:.55;transform:scale(.96)}}@media (width<=480px){.auth-page{padding:20px max(14px, env(safe-area-inset-right)) 20px max(14px, env(safe-area-inset-left))}.auth-card{border-radius:16px;padding:27px 21px}.auth-brand{margin-bottom:26px}.auth-card h1{font-size:1.75rem}}@media (prefers-reduced-motion:reduce){.auth-loading span{animation:none}}.auth-page{padding-top:calc(32px + env(safe-area-inset-top));background:linear-gradient(145deg,#08172bf7,#12345aeb),#08172b;position:relative}.auth-page:before,.auth-page:after{content:"";pointer-events:none;border:1px solid #ffffff1a;border-radius:999px;width:20rem;height:5rem;position:fixed;transform:rotate(-28deg)}.auth-page:before{top:8%;right:-7rem}.auth-page:after{bottom:9%;left:-8rem}.auth-card{z-index:1;border-color:#ffffffa6;border-radius:26px;position:relative;overflow:hidden;box-shadow:0 30px 90px #0000004d}.auth-card:before{content:"";background:linear-gradient(90deg,#12345a,#4b86b9,#12345a);height:5px;position:absolute;top:0;left:0;right:0}.auth-brand{color:#0b1f3a}.auth-brand>span{background:linear-gradient(145deg,#255a8b,#0b1f3a);border:1px solid #fff3;box-shadow:0 8px 20px #0b1f3a38}.auth-card h1{color:#08172b;letter-spacing:-.035em}.auth-description{color:#60728a}.auth-card label{color:#10233c}.auth-card input{background:#fbfdff;border-color:#cbd8e5;border-radius:12px;min-height:49px}.auth-card input:focus{border-color:#3d78ad;outline:none;box-shadow:0 0 0 3px #3d78ad24}.auth-primary{background:#12345a;border-radius:12px;min-height:49px;box-shadow:0 8px 20px #12345a33}.auth-primary:hover{background:#1d4b78}.auth-links button{color:#1d4b78}.auth-message.success{color:#1c614d;background:#e5f4ef}.auth-loading{z-index:1;color:#fff;position:relative}.auth-loading span{background:linear-gradient(145deg,#3d78ad,#12345a)}@media (width<=480px){.auth-card{border-radius:23px;padding:30px 22px}}
