:root{color:#f4f4f6;background:#1b1c21;color-scheme:dark;font-family:Segoe UI,sans-serif;line-height:1.4}*{box-sizing:border-box}body{margin:0;background:#1b1c21}button,input,select{font:inherit;color:inherit}.app{max-width:880px;margin:0 auto;padding:32px 20px 64px}.app.wide{max-width:1180px}.top{display:flex;flex-direction:column;align-items:stretch;margin-bottom:28px}.title-row{display:flex;justify-content:space-between;gap:24px;align-items:end}.eyebrow{display:flex;flex-wrap:wrap;align-items:baseline;gap:16px;margin:0;font-size:14px;color:#a3a4ad}h1,h2{font-weight:600}h1{margin:0;font-size:40px;color:#fff}.header-actions{display:flex;align-items:center;flex-wrap:wrap;gap:12px}.notify{display:grid;justify-items:end}.refresh-control{display:grid;justify-items:end;gap:8px}button.icon{width:36px;height:36px;padding:0;display:grid;place-items:center;background:transparent;color:#f4f4f6;border:1px solid #3d3e46}button.icon svg{width:18px;height:18px}button.icon:disabled{opacity:.6}.spinner-overlay{position:fixed;inset:0;z-index:30;display:grid;place-items:center;align-content:center;gap:14px;background:#121216b8}.spinner-overlay p{margin:0}.spinner{width:48px;height:48px;border:4px solid #3a3b44;border-top-color:#8b7cff;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.refresh-status{margin:0}.refresh-panel{position:fixed;top:16px;left:50%;z-index:40;width:min(520px,calc(100% - 32px));transform:translate(-50%)}.refresh-panel .banner{margin:0;padding:12px 14px;background:#26272d;border:1px solid #35363d;border-radius:12px}.modal-backdrop{position:fixed;inset:0;z-index:25;display:grid;place-items:center;padding:20px;background:#121216b8}.simplifi-login{display:grid;gap:12px;width:min(420px,100%);padding:20px;background:#26272d;border:1px solid #35363d;border-radius:12px;text-align:left}.simplifi-login h2{margin:0;font-size:22px}.simplifi-login p,.simplifi-login .banner{margin:0}.modal-actions{display:flex;justify-content:flex-end;gap:8px}.login{display:grid;gap:14px;max-width:420px;margin-top:48px;padding:20px;background:#26272d;border:1px solid #35363d;border-radius:12px}nav{display:flex;gap:8px}nav a{color:#c6c7d0;text-decoration:none;padding:8px 12px;border-bottom:2px solid transparent}nav a.active{color:#fff;border-color:#7b68ee}.summary,.card,.create{background:#26272d;border:1px solid #35363d;border-radius:12px}.summary{padding:18px 18px 8px;margin-bottom:18px}.summary p{margin:0 0 6px}.under-text{color:#6ee7b0;font-size:28px}.over-text{color:#ff6b63}.sums,.muted,.detail{color:#a3a4ad}.create{display:grid;grid-template-columns:1.4fr .8fr auto;gap:12px;align-items:end;padding:16px;margin-bottom:18px}.create.envelope-create{grid-template-columns:1.4fr .7fr .8fr auto}.plan-name{min-width:140px;color:#f4f4f6}.paid-check{display:inline-flex;align-items:center;gap:6px;color:#f4f4f6;font-size:14px}.paid-check input{width:16px;height:16px;accent-color:#6d5efc}label{display:grid;gap:6px;font-size:13px;color:#a3a4ad}input,select{background:#1b1c21;border:1px solid #3d3e46;border-radius:8px;padding:8px 10px;color:#f4f4f6}button{background:#6d5efc;color:#fff;border:0;border-radius:8px;padding:9px 14px;cursor:pointer}button.ghost{background:transparent;color:#f4f4f6;border:1px solid #3d3e46}.cards{list-style:none;padding:0;margin:0;display:grid;gap:12px}.card{position:relative;display:grid;grid-template-columns:auto 1fr;column-gap:12px;padding:16px 18px}.card.dragging{opacity:.45}.card.insert-before:before,.card.insert-after:after{content:"";position:absolute;left:0;right:0;height:3px;border-radius:2px;background:#7b68ee;pointer-events:none}.card.insert-before:before{top:-8px}.card.insert-after:after{bottom:-8px}.handle{grid-row:1 / span 4;align-self:center;background:transparent;color:#a3a4ad;border:0;padding:8px 4px;cursor:grab;letter-spacing:-2px;font-size:18px;touch-action:none;-webkit-user-select:none;user-select:none}.card-body{min-width:0}.card.empty{background:#222328}.card-head{display:flex;justify-content:space-between;gap:16px;align-items:baseline}.card h2{display:flex;align-items:center;gap:8px;margin:0;font-size:22px;color:#fff}.warn-icon{color:#f5c451;font-size:18px;line-height:1}.notify-row{display:flex;align-items:end;justify-content:space-between;gap:12px;flex:1 0 100%}.money-field,.percent-field{display:flex;align-items:center;gap:6px}.money-field input{width:120px}.percent-field input{width:72px}.switch{width:44px;height:26px;padding:0;border-radius:999px;background:#3a3b44;position:relative;flex:none}.switch:after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#f4f4f6}.switch.on{background:#6d5efc}.switch.on:after{left:21px}.cash{margin:0;font-size:28px;color:#fff}.actions,.edit{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px;align-items:end}.report-switch{display:flex;justify-content:flex-end;gap:8px;margin-bottom:14px}.report{display:grid;gap:14px;padding:8px 2px}.report-label{margin:8px 0 0;font-size:18px}.plan-list{list-style:none;margin:18px 0 0;padding:0;display:grid;gap:10px}.plan-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.plan-row input[type=text],.plan-row input:not([type=date]):not([type=number]){min-width:180px}.ytd-charts{display:grid;gap:16px;margin-bottom:18px}.plan-summary-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;margin-top:22px;padding:14px 18px;background:#26272d;border:1px solid #35363d;border-radius:12px;color:#fff;font-size:18px;text-align:left}.plan-summary-toggle .chevron{width:18px;height:18px;flex:none;transition:transform .15s ease}.plan-summary-toggle .chevron.open{transform:rotate(90deg)}.plan-summary-body.shut{display:none}.plan-charts{gap:10px;margin-top:12px;margin-bottom:0}.plan-charts .year-chart{padding:10px 12px 8px}.plan-charts .year-chart h2{font-size:15px;margin-bottom:4px}.plan-charts .chart-legend{margin-top:4px;font-size:12px}.year-chart{background:#26272d;border:1px solid #35363d;border-radius:12px;padding:14px 14px 12px}.year-chart h2{margin:0 0 8px;font-size:18px}.chart-plot{position:relative}.year-chart svg{width:100%;height:auto;display:block}.chart-hit{fill:transparent;stroke:transparent;cursor:pointer}.chart-tip{position:absolute;transform:translate(-50%,-120%);background:#1b1c21;border:1px solid #4c6fff;color:#f4f4f6;border-radius:6px;padding:4px 8px;font-size:13px;pointer-events:none;white-space:nowrap;z-index:2}.year-chart .grid-line{stroke:#35363d;stroke-width:1}.year-chart .axis-label{fill:#a3a4ad;font-size:11px}.chart-legend{display:flex;flex-wrap:wrap;gap:14px;margin-top:8px;color:#f4f4f6;font-size:13px}.chart-legend span{display:inline-flex;align-items:center;gap:6px}.chart-legend .swatch{width:18px;height:3px;border-radius:2px;display:inline-block}.txn-toolbar{display:flex;gap:8px;align-items:center;margin-bottom:12px}.txn-toolbar input{flex:1;min-width:0}.filter-panel{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:12px;padding:16px;margin-bottom:12px;background:#26272d;border:1px solid #35363d;border-radius:12px}.add-row{display:flex;gap:8px}.add-row select,.add-row input{flex:1;min-width:0}.date-range{grid-column:1 / -1;display:grid;grid-template-columns:1fr 1fr;gap:12px}.chip-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:8px}.result-count{margin:0}.chip{display:inline-flex;align-items:center;gap:6px;background:#2e2f38;border:1px solid #4c4d57;border-radius:999px;padding:4px 6px 4px 12px;font-size:13px;color:#f4f4f6}.chip button,button.sort,button.link{background:transparent;color:#c6c7d0}.chip button{padding:0 6px;font-size:16px;line-height:1}button.link{color:#9b8cff;padding:0;margin:0 0 12px}button.sort{padding:0;text-align:left}.txn-wrap{overflow:auto;max-height:70vh;border:1px solid #35363d;border-radius:12px;background:#26272d}.txn-table{width:100%;border-collapse:collapse;font-size:14px}.txn-table th,.txn-table td{padding:10px 12px;border-bottom:1px solid #35363d;text-align:left;white-space:nowrap}.txn-table th{position:sticky;top:0;background:#2a2b32}.txn-table td.payee{white-space:normal;min-width:180px}.txn-table .amount,.txn-table th:nth-child(5),.txn-table th:nth-child(5) .sort{text-align:right}.txn-table .amount{font-variant-numeric:tabular-nums}.pending-tag{color:#9db4ff}.empty-table{margin:0;padding:16px}.bar-row{display:grid;grid-template-columns:160px 1fr auto;gap:12px;align-items:center}.bar-row.compact{grid-template-columns:1fr auto;margin-top:10px}.bar-name,.bar-caption{font-size:14px}.bar-caption{display:flex;align-items:center;gap:8px}.hint{position:relative;display:inline-flex;align-items:center}.hint-tip{display:none;position:absolute;left:50%;bottom:calc(100% + 8px);transform:translate(-50%);background:#26272d;border:1px solid #35363d;color:#f4f4f6;border-radius:6px;padding:4px 8px;font-size:13px;font-weight:400;line-height:1.3;letter-spacing:0;white-space:nowrap;pointer-events:none;z-index:8;box-shadow:0 6px 16px #00000073}.hint:hover .hint-tip,.hint:focus-within .hint-tip{display:block}.hint-below .hint-tip{bottom:auto;top:calc(100% + 8px)}.txn-link{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;color:#9db4ff;flex:none}.txn-link svg{width:26px;height:26px}h2 .txn-link{width:28px;height:28px}h2 .txn-link svg{width:28px;height:28px}.bar-name{display:flex;align-items:center;gap:6px;color:#f4f4f6}.track-wrap{position:relative;height:22px}.track{display:flex;height:100%;background:#3a3b44;border-radius:999px;overflow:hidden}.fill{flex:none;height:100%;background:#4c6fff}.fill.pending{background:#9db4ff}.fill.over{background:#ff5d52}.fill.pending.over{background:#ffaaa4}.marker{position:absolute;top:-6px;bottom:-6px;width:4px;background:#fff;transform:translate(-2px);border-radius:1px}.banner{color:#ff8d86;margin:8px 0}.payoff-entry{margin:-8px 0 18px}.payoff-entry a{color:#9db4ff}.plan-menu{list-style:none;margin:0;padding:0;display:grid;gap:12px}.plan-menu a{display:block;padding:16px 18px;background:#26272d;border:1px solid #35363d;border-radius:12px;color:#fff;text-decoration:none;font-size:18px}.month-board{margin-top:28px;display:grid;gap:12px}.month-section{border-radius:16px;padding:16px 18px}.month-section.bills{background:#1a2c22;border:1px solid #2d4a38}.month-section.envelopes{background:#1c2633;border:1px solid #2c3c50}.month-section.margin{background:#2a2233;border:1px solid #3e3450}.month-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(76px,1fr) minmax(76px,1fr);column-gap:12px;align-items:baseline}.month-grid.with-total{grid-template-columns:minmax(0,1.4fr) minmax(76px,1fr) minmax(76px,1fr) minmax(76px,1fr)}.month-span{grid-column:1 / -1}.month-amt.once{grid-column:2 / -1}.month-amt .tracked{font-size:11px;font-weight:400;color:#c9d7ce}.month-grid h2{margin:0;align-self:end}.col-head,.month-amt{text-align:left;white-space:nowrap}.col-head{color:#a3a4ad;font-size:14px;padding-bottom:6px}.month-label,.month-amt{padding:6px 0;border-bottom:1px solid rgba(255,255,255,.08)}.month-label.strong,.month-amt.strong{color:#fff;font-weight:600}.payoff-summary{position:sticky;top:0;z-index:5;background:#26272d;border:1px solid #35363d;border-radius:12px;padding:16px 18px;margin-bottom:16px}.transfer{margin:0;font-size:28px;color:#fff}.transfer.need{color:#ffb4ae}.payoff-metrics{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:8px;color:#a3a4ad}.payoff-period{display:flex;align-items:end;justify-content:space-between;gap:12px;margin-top:16px}.payoff-period select{min-width:160px}.panel{background:#26272d;border:1px solid #35363d;border-radius:12px;padding:16px 18px;margin:12px 0}.panel h2,.card-block h3{margin:0 0 8px}.card-block{margin-top:14px;border-radius:10px;padding:12px 14px}.card-block.venture{background:#011839}.card-block.delta{background:#402755}.card-block.bonvoy{background:#002b43}.bell-button{position:relative}.card-block h3{font-size:18px}.money-line{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:8px 0;border-bottom:1px solid #35363d;color:#f4f4f6}.bill-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.money-line small{display:block}.line-total{margin:10px 0 0;text-align:right;color:#fff}.short{color:#ffb4ae}.errors{background:#26272d;border:1px solid #35363d;border-radius:12px;padding:12px 16px}.errors summary{cursor:pointer;color:#f5c451}.error-wrap{max-height:320px;overflow:auto;margin-top:10px}textarea{width:100%;background:#1b1c21;border:1px solid #3d3e46;border-radius:8px;padding:8px 10px;color:#f4f4f6}@media(max-width:700px){.top,.card-head,.create,.bar-row,.filter-panel,.date-range,.txn-toolbar,.payoff-period{display:grid;grid-template-columns:1fr}h1{font-size:32px}}
