*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #f5f8fc;--surface: #ffffff;--border: #d9e4f2;--border-soft: #e9eff8;--surface-2: #eef4fb;--text: #1e3a8a;--text-muted: #7d92b6;--text-dim: #46679c;--green: #059669;--red: #dc2626;--blue: #2563eb;--yellow: #d97706;--font-mono: "DM Mono", monospace;--font-serif: "Playfair Display", serif;--nav-h: 52px;color-scheme:light}html,body{background:var(--bg);color:var(--text);font-family:var(--font-mono);font-size:13px;line-height:1.5;min-height:100vh;-webkit-text-size-adjust:100%;text-size-adjust:100%}button{font-family:var(--font-mono);cursor:pointer}input,select,textarea{font-family:var(--font-mono);background:var(--surface);border:1px solid var(--border);color:var(--text);padding:6px 10px;border-radius:4px;font-size:13px;outline:none;max-width:100%}input:focus,select:focus,textarea:focus{border-color:var(--blue)}table{width:100%;border-collapse:collapse}th{text-align:left;font-weight:500;color:var(--text-muted);font-size:11px;letter-spacing:.08em;text-transform:uppercase;padding:5px 10px;border-bottom:1px solid var(--border)}td{padding:5px 10px;border-bottom:1px solid var(--border-soft);color:var(--text)}.ledger-table tbody tr:nth-child(2n):not(.row-editing) td,.plan-table tbody tr:nth-child(2n):not(.row-editing) td,.budget-table tbody tr:nth-child(2n):not(.row-editing) td,.proj-table tbody tr:nth-child(2n) td,.tx-table tbody tr:nth-child(2n):not(.tx-group-header):not(.tx-edit-row) td{background:#f4f8fd}tr:last-child td{border-bottom:none}.card{background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:16px;box-shadow:0 1px 2px #1e3a8a0d}.label{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted)}.positive{color:var(--green)}.negative{color:var(--red)}.info{color:var(--blue)}.warn{color:var(--yellow)}.muted{color:var(--text-muted)}.dim{color:var(--text-dim)}.btn{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:4px;border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:12px;letter-spacing:.04em;transition:background .15s,border-color .15s;cursor:pointer}.btn:hover{background:var(--surface-2);border-color:#b9cce6}.btn-primary{background:var(--blue);color:#fff;border-color:var(--blue)}.btn-primary:hover{background:#1d4ed8;border-color:#1d4ed8}.btn-danger{border-color:#f2c8c8;color:var(--red)}.btn-danger:hover{background:#fdecec}.section-header{font-family:var(--font-serif);font-size:20px;font-weight:400;color:var(--text);margin-bottom:16px}.divider{border:none;border-top:1px solid var(--border);margin:20px 0}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#c2d2e8;border-radius:3px}.summary-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:16px;max-width:840px}.app-nav{padding:0 24px;gap:24px;overflow-x:auto;-webkit-overflow-scrolling:touch}.app-main{padding:24px;width:100%;max-width:1200px;margin:0 auto}@media(orientation:landscape)and (min-width:1440px){.app-main{max-width:1360px}}@media(max-width:640px){.app-nav{padding:0 16px;gap:16px}.app-nav-tabs{display:none!important}.app-nav>span:first-of-type{margin-right:auto}.app-main{padding:16px;padding-bottom:calc(72px + env(safe-area-inset-bottom))}.summary-grid{grid-template-columns:1fr}.card{padding:14px}.col-hide-mobile{display:none!important}input,select,textarea{font-size:12px}.btn{min-height:36px}.app-nav{padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right))}}.bottom-nav{display:none}@media(max-width:640px){.bottom-nav{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:150;background:#e4eefaf0;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-top:1px solid var(--border);padding-bottom:max(4px,env(safe-area-inset-bottom));padding-left:max(14px,env(safe-area-inset-left));padding-right:max(14px,env(safe-area-inset-right))}.bottom-nav-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;background:none;border:none;border-radius:10px;color:var(--text-muted);padding:8px 2px 6px;margin:4px 2px;cursor:pointer;transition:color .15s,background .15s;-webkit-tap-highlight-color:transparent}.bottom-nav-item.active{color:#fff;background:var(--blue)}.bottom-nav-item svg{opacity:.7}.bottom-nav-item.active svg{opacity:1}.bottom-nav-label{font-size:9.5px;letter-spacing:.04em;text-transform:uppercase}}.collapsible-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.collapsible-body{margin-top:14px}.collapsible-chevron{display:inline-block;color:var(--text-muted);font-size:16px;line-height:1;transition:transform .18s ease}.collapsible-summary{font-size:12px;color:var(--text-dim);white-space:nowrap}.sheet-backdrop{position:fixed;inset:0;z-index:300;background:#17255466;display:flex;align-items:flex-end;animation:sheet-fade .18s ease}.sheet{width:100%;max-height:90vh;display:flex;flex-direction:column;background:var(--surface);border-top-left-radius:16px;border-top-right-radius:16px;border-top:1px solid var(--border);padding:8px 16px calc(16px + env(safe-area-inset-bottom));animation:sheet-slide .22s cubic-bezier(.22,1,.36,1)}.sheet-handle{width:36px;height:4px;border-radius:2px;background:#c9d7ea;margin:6px auto 12px;flex-shrink:0}.sheet-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.sheet-body{overflow-y:auto;-webkit-overflow-scrolling:touch}@keyframes sheet-fade{0%{opacity:0}to{opacity:1}}@keyframes sheet-slide{0%{transform:translateY(100%)}to{transform:translateY(0)}}@media(max-width:640px){.mobile-stack{flex-direction:column;align-items:stretch}.mobile-stack>*{width:100%!important}.mobile-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:8px}.mobile-grid-2>*{width:100%!important}}.gmail-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:16px;gap:12px}.gmail-desktop{display:block}.gmail-mobile{display:none}@media(max-width:640px){.gmail-header{flex-direction:column;align-items:flex-start}.gmail-desktop{display:none}.gmail-mobile{display:block}}.settings-layout{display:grid;grid-template-columns:216px 1fr;gap:32px;align-items:start}.settings-sidebar{position:sticky;top:84px;display:flex;flex-direction:column;gap:18px}.settings-search{width:100%}.settings-nav-group{display:flex;flex-direction:column;gap:2px}.settings-nav-group-label{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);padding:0 10px 4px}.settings-nav-item{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:none;border:1px solid transparent;color:var(--text-dim);font-family:var(--font-mono);font-size:12px;letter-spacing:.02em;padding:7px 10px;border-radius:5px;transition:background .15s,color .15s,border-color .15s}.settings-nav-item:hover{background:var(--surface-2);color:var(--text)}.settings-nav-item.active{background:var(--surface-2);color:var(--text);border-color:var(--border)}.settings-nav-item svg{opacity:.6;flex-shrink:0}.settings-nav-item:hover svg,.settings-nav-item.active svg{opacity:1}.settings-nav-empty{padding:0 10px;font-size:11px}.settings-content{min-width:0}.settings-field{display:flex;align-items:center;gap:12px;margin-bottom:12px}.settings-field-label{width:180px;flex-shrink:0}.settings-field-control{display:flex;align-items:center;gap:8px;flex-wrap:wrap}@media(max-width:640px){.settings-field{flex-direction:column;align-items:stretch;gap:6px;margin-bottom:18px}.settings-field-label{width:auto}}@media(max-width:640px){.settings-content table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;white-space:nowrap}}@media(min-width:641px){.merchant-rules-table{table-layout:fixed}.merchant-rules-table th:nth-child(1),.merchant-rules-table td:nth-child(1){width:46%}.merchant-rules-table th:nth-child(2),.merchant-rules-table td:nth-child(2){width:42%}.merchant-rules-table th:nth-child(3),.merchant-rules-table td:nth-child(3){width:12%}.merchant-rules-table input,.merchant-rules-table select{width:100%!important}}.settings-content-inner{animation:settings-fade .2s ease}@keyframes settings-fade{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}@media(max-width:880px){.settings-layout{grid-template-columns:1fr;gap:16px}.settings-sidebar{position:static;flex-direction:row;gap:8px;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:4px}.settings-search{display:none}.settings-nav-group{flex-direction:row;gap:8px}.settings-nav-group-label{display:none}.settings-nav-item{width:auto;white-space:nowrap;border-color:var(--border)}}.proj-summary-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:16px}.runway-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.runway-card{position:relative}.corner-tooltip{position:absolute;top:14px;right:14px}.corner-tooltip-trigger{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;border:1px solid #9db4d6;color:#7d92b6;font-size:10px;font-style:italic;cursor:pointer;-webkit-user-select:none;user-select:none}.corner-tooltip-box{position:absolute;top:calc(100% + 6px);right:0;width:240px;max-width:78vw;background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:10px 12px;font-size:11px;color:var(--text-dim);line-height:1.6;white-space:pre-line;font-family:var(--font-mono);z-index:200;pointer-events:none;box-shadow:0 8px 24px #1e3a8a2e}.proj-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.proj-table{min-width:720px}@media(max-width:640px){.proj-summary-grid{grid-template-columns:1fr}.runway-grid{display:flex;grid-template-columns:none;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none}.runway-grid::-webkit-scrollbar{display:none}.runway-card{flex:0 0 84%;scroll-snap-align:center}.proj-table-wrap{overflow-x:visible}.proj-table{min-width:0}.proj-table thead{display:none}.proj-table tr{display:block;border:1px solid var(--border);border-radius:6px;padding:8px 12px;margin-bottom:10px}.proj-table td{display:flex;align-items:center;justify-content:space-between;border:none;padding:5px 0;text-align:right!important}.proj-table td:before{content:attr(data-label);color:var(--text-muted);font-size:10px;letter-spacing:.08em;text-transform:uppercase;text-align:left;margin-right:12px}.proj-table td[data-label=Month]{border-bottom:1px solid var(--border);padding-bottom:8px;margin-bottom:4px;font-weight:500}.proj-table td[data-label=Month]:before{content:"";margin:0}}.ledger-filters{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:16px}.ledger-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:-16px;padding:16px}.ledger-table{min-width:720px}@media(max-width:640px){.ledger-table-wrap{overflow-x:visible;margin:0;padding:0}}@media(max-width:640px){.ledger-table,.tx-table,.budget-table,.plan-table{min-width:0;width:100%;table-layout:auto}.ledger-table th,.ledger-table td,.tx-table th,.tx-table td,.budget-table th,.budget-table td,.plan-table th,.plan-table td{padding:8px 6px;font-size:12px}.ledger-table thead th,.tx-table thead th,.budget-table thead th,.plan-table thead th{position:sticky;top:var(--nav-h);z-index:3;background:var(--surface);font-size:10px;color:var(--text-muted)}.ledger-table td[data-label=Date],.ledger-table th.thw-date,.tx-table td[data-label=Date],.tx-table th.thw-date,.ledger-table td[data-label=Amount],.ledger-table th.thw-amount,.tx-table td[data-label=Amount],.tx-table th.thw-amount,.budget-table td[data-label=Budgeted],.budget-table td[data-label=Spent],.budget-table td[data-label=Left],.plan-table td[data-label=Budgeted],.plan-table th.thw-amount,.ledger-table td[data-label=Actions],.ledger-table th.thw-act,.tx-table td[data-label=Actions],.tx-table th.thw-act,.plan-table td[data-label=Actions],.plan-table th.thw-act,.budget-table td[data-label=Actions],.budget-table th.thw-act,.budget-table td[data-label=Done],.budget-table th.thw-done,.budget-table th.thw-bnum{width:1%;white-space:nowrap}.budget-table td[data-label=Done]{text-align:center}.ledger-table td[data-label=Amount],.tx-table td[data-label=Amount],.budget-table td[data-label=Budgeted],.budget-table td[data-label=Spent],.budget-table td[data-label=Left],.plan-table td[data-label=Budgeted]{text-align:right}.ledger-table td[data-label=Actions],.tx-table td[data-label=Actions],.plan-table td[data-label=Actions],.budget-table td[data-label=Actions]{overflow:visible;text-align:center;padding:4px 0}.ledger-table td[data-label=Merchant],.tx-table td[data-label=Merchant],.budget-table td[data-label=Line],.plan-table td[data-label=Label]{display:table-cell!important;width:100%;max-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ledger-table td[data-label=Merchant]>span,.tx-table td[data-label=Merchant]>span{display:inline!important}.tx-table tr.tx-group-header td{position:sticky;top:calc(var(--nav-h) + 30px);z-index:2;background:var(--surface-2);white-space:normal;overflow:hidden}.tx-table tr.tx-group-header td>div{flex-wrap:wrap;gap:2px 8px}.ledger-table tr.row-editing td,.plan-table tr.row-editing td,.budget-table tr.row-editing td,.tx-table tr.tx-edit-row td{display:block!important;width:auto;white-space:normal;overflow:visible;text-align:left;padding:4px 0}.ledger-table tr.row-editing .ledger-edit-field{width:100%!important;text-align:left!important}.tx-table tr.tx-edit-row{display:block;width:100%}.tx-table tr.tx-edit-row>td{width:100%!important;box-sizing:border-box}.tx-table .tx-edit-fields{display:grid!important;grid-template-columns:1fr 1fr;gap:10px;align-items:center}.tx-table .tx-edit-fields>*{width:100%!important;box-sizing:border-box;min-width:0}.tx-table .tx-edit-fields>input:first-child,.tx-table .tx-edit-fields>label{grid-column:1 / -1}.row-editing .btn,.tx-edit-row td[data-label=Actions] .btn{min-height:36px}}.accounts-grid{display:flex;gap:12px;flex-wrap:wrap;align-items:stretch}.account-tile{flex:1 1 160px;min-width:150px;padding:10px 12px;border:1px solid var(--border);border-radius:6px}.accounts-row-break{flex-basis:100%;height:0;margin:0}.account-tile-balance{font-size:18px;margin-top:4px}@media(max-width:640px){.accounts-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.accounts-row-break{display:none}.account-tile{min-width:0;padding:8px 10px}.account-tile-balance{font-size:15px;margin-top:2px}}.row-actions-trigger{display:none}.row-actions-trigger--always{display:inline-flex;align-items:center;justify-content:center;width:28px;height:24px;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--text-dim);font-size:17px;line-height:1;cursor:pointer;-webkit-tap-highlight-color:transparent}.row-actions-trigger--always:hover{background:var(--surface-2)}.row-actions-extra{margin-bottom:14px;padding-bottom:14px;border-bottom:1px solid var(--border)}.row-actions-extra select{width:100%!important}@media(max-width:640px){.row-actions-inline{display:none!important}.row-actions-trigger{display:inline-flex;align-items:center;justify-content:center;width:40px;height:32px;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--text-dim);font-size:20px;line-height:1;-webkit-tap-highlight-color:transparent}.row-actions-trigger:active{background:var(--surface-2)}.ledger-table td[data-label=Actions]:has(.row-actions-trigger),.tx-table td[data-label=Actions]:has(.row-actions-trigger),.plan-table td[data-label=Actions]:has(.row-actions-trigger),.budget-table td[data-label=Actions]:has(.row-actions-trigger){justify-content:flex-end;border-top:none;padding-top:6px;margin-top:0}.row-actions-extra .btn{width:100%}.row-actions-menu{display:flex;flex-direction:column;gap:8px}.row-actions-menu .btn{width:100%;justify-content:center;padding:13px!important;font-size:14px!important}}.month-strip{display:flex;gap:8px;overflow-x:auto;-webkit-overflow-scrolling:touch;margin-bottom:16px;padding-bottom:4px;scrollbar-width:thin;scrollbar-color:var(--border) transparent}@media(orientation:landscape)and (max-height:560px){.app-nav{gap:16px}.app-nav-brand{font-size:13px!important}.app-nav-tabs{gap:8px!important}.app-nav-tabs button,.app-nav-signout{font-size:10px!important}.app-nav-tabs .app-nav-tab{border-radius:9px;padding:8px 12px!important;border-bottom:none!important}.app-nav-tabs .app-nav-tab.active{color:#fff!important;background:var(--blue)!important}.app-main{max-width:none;height:calc(100dvh - var(--nav-h));flex:none!important;overflow:hidden;padding:12px max(20px,env(safe-area-inset-right)) 8px max(20px,env(safe-area-inset-left));position:relative}.app-main>div{display:flex;align-items:stretch;gap:14px;height:100%;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;padding-bottom:6px}.app-main>div>*{flex:0 0 auto;width:min(72vw,520px);max-height:100%;overflow-y:auto;margin-bottom:0!important;scroll-snap-align:start}.app-main>div>.section-header{width:max-content;min-width:0}.app-main>div>div:has(>.section-header){width:max-content;min-width:140px;max-width:200px;flex-wrap:wrap!important;align-content:flex-start;row-gap:12px}.app-main>div>div:has(>.section-header) .section-header{margin-bottom:0}.app-main>div>.view-lead{width:max-content;min-width:150px;max-width:220px}.app-main>div>.view-lead:has(.plaid-sync-status){max-width:min(72vw,440px)}.app-main>div>.view-lead:has(.review-strip){width:min(72vw,520px);max-width:none}.app-main>div>.view-lead:has(.ledger-filters){width:min(28vw,200px);max-width:none}.app-main>div>.view-lead .view-lead-row{flex-wrap:wrap;row-gap:12px}.app-main>div>.view-lead .ledger-filters{flex-direction:column;align-items:stretch}.app-main>div>.view-lead .ledger-filters>*{width:100%!important;margin-left:0!important}.app-main>div>.accounts-card{width:max-content;min-width:210px;max-width:250px}.app-main>div>.accounts-card .accounts-grid{flex-direction:column;flex-wrap:nowrap;gap:6px}.app-main>div>.accounts-card .accounts-row-break{display:none}.app-main>div>.accounts-card .account-tile{flex:0 0 auto;min-width:0;padding:6px 10px}.app-main>div>.accounts-card .account-tile-balance{font-size:14px;margin-top:1px}.app-main>div>.summary-grid{width:min(52vw,360px)}.app-main>div>.proj-summary-grid{width:min(44vw,290px);align-self:flex-start}.app-main>div>.cashflow-card{width:min(52vw,330px);align-self:flex-start}.app-main>div>.month-strip{position:absolute;top:16px;left:max(20px,env(safe-area-inset-left));right:max(20px,env(safe-area-inset-right));width:auto;max-height:none;margin:0;padding-top:2px;overflow-y:visible;z-index:5}.app-main>div>.month-strip .btn{padding:4px 10px!important}.app-main>div:has(>.month-strip){padding-top:54px}.app-main>div>div:has(.ledger-table),.app-main>div>div:has(.proj-table),.app-main>div>div:has(.plan-table),.app-main>div>div:has(.budget-table),.app-main>div>div:has(.tx-table),.app-main>div>div:has(.recharts-wrapper){width:min(88vw,780px)}.app-main>div>div:has(.ledger-table){width:min(94vw,900px)}.summary-grid,.proj-summary-grid,.runway-grid{grid-template-columns:1fr}.app-main>div:has(.settings-layout)>.section-header{display:none}.app-main>div>.settings-layout{width:100%;height:100%;overflow:hidden;grid-template-columns:1fr;grid-template-rows:auto 1fr;align-items:stretch;gap:8px}.settings-sidebar{position:static;flex-direction:row;gap:8px;min-width:0;overflow-x:auto;overflow-y:hidden;padding-bottom:4px}.settings-search{display:none}.settings-nav-group{flex-direction:row;gap:8px}.settings-nav-group-label{display:none}.settings-nav-item{width:auto;white-space:nowrap;border-color:var(--border);font-size:11px;padding:4px 10px}.settings-content{min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch}}.info-tooltip-box{display:none;position:absolute;bottom:calc(100% + 6px);right:0;width:220px;background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:10px 12px;font-size:11px;color:var(--text-dim);line-height:1.5;white-space:pre-line;z-index:100;pointer-events:none;box-shadow:0 8px 24px #1e3a8a2e}.info-tooltip-trigger:hover+.info-tooltip-box,.info-tooltip-trigger:focus+.info-tooltip-box{display:block}
