:root{--desk: #c9cfd4;--desk-2: #bcc3c9;--manila: #e6d5ae;--manila-2: #d8c391;--kraft: #a97c50;--navy: #1f2b3d;--navy-2: #2c3b52;--paper: #fbf8f1;--ink: #1f2b3d;--ink-2: #4d586a;--muted: #6f7884;--rule: #dcd6c8;--rule-strong: #b8b09c;--stamp: #b3392c;--postal: #2e6a4e;--accent: #1f2b3d;--accent-ink: #fbf8f1;--sans: "Archivo", system-ui, sans-serif;--radius: 4px;--lift: 0 1px 0 rgba(31, 43, 61, .08), 0 10px 24px -14px rgba(31, 43, 61, .55);--lift-hi: 0 2px 0 rgba(31, 43, 61, .08), 0 22px 34px -16px rgba(31, 43, 61, .6);--in: var(--postal);--out: var(--stamp);--card: var(--paper);--paper-2: #f1ece1;--margin: var(--stamp);--serif: var(--sans);--mono: var(--sans)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--desk);color:var(--ink);font:15px/1.5 var(--sans);-webkit-font-smoothing:antialiased}h1,h2,h3{margin:0;font-family:var(--sans);letter-spacing:-.01em}h1{font-size:34px;line-height:1.1;font-weight:700;font-stretch:112%}h2{font-size:22px;font-weight:650}h3{font-size:16px;font-weight:650}em{font-style:normal}.num{font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}.muted{color:var(--muted)}.small{font-size:13px}.eyebrow{margin:0 0 2px;font-size:13px;font-weight:500;color:var(--muted)}.error{color:var(--stamp);font-size:14px;margin:6px 0}.ok{color:var(--postal);font-size:14px}.neg{color:var(--stamp)}button{font:inherit;color:inherit;cursor:pointer;background:none;border:0}button:disabled{cursor:not-allowed;opacity:.45}:focus-visible{outline:2px solid var(--kraft);outline-offset:2px}.primary{background:var(--navy);color:var(--accent-ink);padding:9px 16px;border-radius:var(--radius);font-weight:600;transition:background .15s ease,transform .08s ease}.primary:hover:not(:disabled){background:var(--navy-2)}.primary:active:not(:disabled){transform:translateY(1px)}.ghost{padding:8px 12px;border:1px solid var(--rule-strong);border-radius:var(--radius);background:var(--paper);font-weight:500}.ghost:hover:not(:disabled){border-color:var(--ink-2)}.danger{background:var(--stamp);color:#fff;padding:9px 14px;border-radius:var(--radius);font-weight:600}.danger-text{color:var(--stamp)}.link{color:var(--ink);text-decoration:underline;text-decoration-color:var(--kraft);text-underline-offset:3px;padding:0;font-weight:500}.link.faint{color:var(--muted);text-decoration-color:currentColor}.icon{width:30px;height:30px;border-radius:var(--radius);color:var(--muted);font-size:18px;line-height:1}.icon:hover{background:#1f2b3d14;color:var(--ink)}input,select{font:inherit;color:var(--ink);background:#fff;border:1px solid var(--rule-strong);border-radius:var(--radius);padding:8px 10px;min-width:0}input:focus,select:focus{outline:none;border-color:var(--navy);box-shadow:0 0 0 3px #1f2b3d24}input[type=color]{padding:2px;width:38px;height:38px}input.big{font-size:24px;font-weight:600;padding:6px 10px;font-variant-numeric:tabular-nums}.login{min-height:100%;display:grid;place-items:center;padding:16px}.login-card{position:relative;width:min(440px,100%);background:var(--manila);padding:120px 36px 32px;border-radius:6px;box-shadow:var(--lift-hi);display:grid;gap:14px;overflow:hidden;animation:rise .5s cubic-bezier(.2,.7,.2,1) both}.login-card:before{content:"";position:absolute;inset:0 0 auto;height:110px;background:var(--manila-2);clip-path:polygon(0 0,100% 0,50% 100%);filter:drop-shadow(0 2px 0 rgba(31,43,61,.12))}.login-card h1{font-size:48px;font-stretch:125%}.login-card .eyebrow{color:var(--ink-2)}.login-card label{display:grid;gap:6px;font-weight:500}.google-button{min-height:44px}.google-button[aria-busy=true]{opacity:.5;pointer-events:none}.dev-login{display:grid;gap:8px;margin-top:6px;padding-top:16px;border-top:1px dashed var(--kraft)}.dev-login .eyebrow,.dev-login p{margin:0}.shell{display:grid;grid-template-columns:268px minmax(0,1fr);min-height:100%}.sidebar{background:var(--navy);color:#dfe5ee;padding:22px 16px 18px;display:flex;flex-direction:column;gap:18px;position:sticky;top:0;height:100vh;overflow-y:auto}.wordmark{font-size:22px;font-weight:800;font-stretch:125%;letter-spacing:-.01em;color:#fff;padding:0 6px}.drawer{background:var(--navy-2);border-radius:8px;padding:14px 14px 12px;display:grid;gap:4px;box-shadow:inset 0 1px #ffffff0f,inset 0 -2px #00000040}.drawer .label{font-size:13px;color:#aab6c6}.drawer .figure{font-size:32px;font-weight:700;font-stretch:110%;line-height:1.1;color:#fff}.drawer.negative .figure{color:#ffb1a6}.drawer .state{font-size:13px;color:#aab6c6}.drawer .primary{margin-top:8px;background:var(--manila);color:var(--navy)}.drawer .primary:hover:not(:disabled){background:#efe1bf}.nav{display:grid;gap:2px}.nav button{text-align:left;padding:8px 10px;border-radius:var(--radius);font-weight:500;color:#c3ccd8}.nav button:hover{background:#ffffff0f;color:#fff}.nav button.active{background:#ffffff1a;color:#fff;box-shadow:inset 3px 0 0 var(--manila)}.acct-group h3{display:flex;justify-content:space-between;margin:4px 10px 6px;font-size:13px;font-weight:500;color:#8f9db0}.acct-group ul{list-style:none;margin:0;padding:0}.acct{display:grid;grid-template-columns:1fr auto 26px;align-items:center;gap:6px;padding:1px 2px 1px 10px;border-radius:var(--radius)}.acct:hover{background:#ffffff0d}.acct.selected{background:#ffffff1a}.acct .icon{opacity:0;color:#8f9db0;width:26px;height:26px;font-size:14px}.acct:hover .icon,.acct .icon:focus-visible{opacity:1}.acct .icon:hover{background:#ffffff1a;color:#fff}.acct-name .nm{overflow:hidden;text-overflow:ellipsis}.acct-name{min-width:0;text-align:left;padding:5px 0;display:flex;align-items:center;gap:8px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:#dfe5ee}.acct .num{font-size:13.5px;color:#c3ccd8}.acct .num.neg{color:#ffb1a6}.dot{width:7px;height:7px;border-radius:50%;flex:none;background:#8fb3d9}.dot.cash{background:#8fd1ad}.dot.investment{background:var(--manila)}.closed-group{opacity:.7}.group-toggle{font:inherit;color:inherit;padding:0}.sidebar .add{color:#c3ccd8;border:1px dashed rgba(255,255,255,.25);background:none}.sidebar .add:hover:not(:disabled){border-color:#ffffff80;color:#fff}.sidebar-foot{margin-top:auto;display:grid;gap:8px}.who{display:flex;justify-content:space-between;gap:8px;font-size:13px;color:#8f9db0;padding:10px 6px 0;border-top:1px solid rgba(255,255,255,.08)}.who span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.who .link{color:#c3ccd8;text-decoration-color:#ffffff4d}.close-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:12px;border-top:1px dashed var(--rule-strong)}.main{min-width:0;padding:26px 32px 40px}.budget{display:grid;grid-template-columns:minmax(0,1fr);gap:24px;align-items:start}.budget.with-panel{grid-template-columns:minmax(0,1fr) 340px}.budget>*{min-width:0}.budget-head{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:16px}.month-nav{display:flex;align-items:center;gap:6px}.month-nav h1{min-width:9ch}.month-nav .icon{font-size:24px}.budget-tools{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.sheet{background:var(--paper);border-radius:8px;box-shadow:var(--lift);overflow-x:auto}.budget-table{width:100%;border-collapse:collapse;font-size:14.5px}.budget-table th{text-align:left;font-size:13px;font-weight:600;color:var(--ink-2);padding:11px 14px;border-bottom:2px solid var(--rule-strong);white-space:nowrap}.budget-table td{padding:5px 14px;border-bottom:1px solid var(--rule);vertical-align:middle}.budget-table .amt{text-align:right;white-space:nowrap;width:1%}.budget-table .num{font-variant-numeric:tabular-nums}.goal-col{width:190px}.group-row td{background:#f1ece1;font-weight:650;padding-top:8px;padding-bottom:8px}.group-cell{display:flex;align-items:center;gap:10px}.caret{width:18px;color:var(--muted);font-size:12px}.group-name{font-weight:700;padding:0;white-space:nowrap}.group-name:hover{text-decoration:underline;text-underline-offset:3px}.group-row .add-link{opacity:0;transition:opacity .15s;white-space:nowrap}.group-row:hover .add-link,.group-row .add-link:focus-visible{opacity:1}.add-row td{padding:8px 14px 8px 42px}.env-row{cursor:pointer}.env-row:hover td{background:#f6f2e8}.env-row.selected td{background:#e9eef5}.env-row.selected td:first-child{box-shadow:inset 3px 0 0 var(--navy)}.env-row.hidden-row{opacity:.55}.env-name{padding-left:42px!important}input.assign{width:116px;text-align:right;padding:5px 8px;border-color:transparent;background:transparent;font-variant-numeric:tabular-nums}.env-row:hover input.assign,input.assign:focus{border-color:var(--rule-strong);background:#fff}.spent{padding:0;color:var(--ink-2);font-variant-numeric:tabular-nums}.spent:hover{text-decoration:underline;text-underline-offset:3px}.pill{display:inline-block;min-width:84px;padding:2px 10px;border-radius:99px;text-align:right;font-weight:650}.pill.pos{background:#dcebe2;color:var(--postal)}.pill.zero{background:#ebe7dd;color:var(--muted)}.pill.over{background:#f6dcd8;color:var(--stamp)}.pill.short{background:#f8ebc4;color:#8a6100}.env-sub{display:block;font-size:12.5px;color:var(--muted)}.hidden-section .group-row{cursor:pointer}.hidden-section .group-row td{color:var(--ink-2)}.goal{display:grid;grid-template-columns:70px auto;align-items:center;gap:8px;color:var(--ink-2)}.goal{--goal: #c99a1e}.goal.done{--goal: var(--postal);color:var(--postal)}.goal .small{white-space:nowrap}.add-plus{display:none}.goal .bar{height:6px;border-radius:3px;background:var(--rule);overflow:hidden}.goal .bar span{display:block;height:100%;background:var(--goal)}.budget-table tfoot td{font-weight:700;border-bottom:0;border-top:2px solid var(--rule-strong);padding-top:10px;padding-bottom:10px}.panel-env{position:sticky;top:20px;background:var(--paper);border-radius:8px;box-shadow:var(--lift);padding:20px;display:grid;gap:18px;max-height:calc(100vh - 40px);overflow-y:auto;animation:slide-in .22s cubic-bezier(.2,.7,.2,1) both}.panel-env>*,.panel-env .grid2>*,.figures>*{min-width:0}.panel-env input,.panel-env select{width:100%}.panel-env .check input{width:auto}.panel-env header{display:flex;justify-content:space-between;align-items:start;gap:8px}.panel-env .title{font-size:22px;font-weight:700;line-height:1.2}.panel-env .group{font-size:13px;color:var(--muted)}.figures{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.figures div{display:grid;gap:2px}.figures span:first-child{font-size:12.5px;color:var(--muted)}.figures .num{font-size:18px;font-weight:650}.figures .avail{color:var(--postal)}.figures .avail.over{color:var(--stamp)}.assign-row{display:grid;gap:6px;font-size:13.5px;font-weight:500;color:var(--ink-2)}.assign-row .row{display:flex;gap:8px}.assign-row input{flex:1;min-width:0}.assign-row .primary{flex:none}.panel-section{display:grid;gap:10px;padding-top:16px;border-top:1px solid var(--rule)}.panel-section h3{display:flex;justify-content:space-between;align-items:baseline}.goal-meter{height:8px;border-radius:4px;background:var(--rule);overflow:hidden}.goal-meter span{display:block;height:100%;background:var(--postal)}.choice{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--rule-strong);border-radius:var(--radius);overflow:hidden}.choice.two{grid-template-columns:repeat(2,1fr)}.choice button{padding:7px 6px;font-size:13.5px;font-weight:500;color:var(--ink-2)}.choice button+button{border-left:1px solid var(--rule-strong)}.choice button.on{background:var(--navy);color:#fff}.recent{list-style:none;margin:0;padding:0}.recent li{display:grid;grid-template-columns:auto 1fr auto;gap:10px;padding:7px 0;border-bottom:1px solid var(--rule);font-size:14px}.recent .date{color:var(--muted);font-size:13px}.recent .who-paid{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.budget-empty{max-width:560px;padding:28px;background:var(--paper);border-radius:8px;box-shadow:var(--lift);display:grid;gap:12px;justify-items:start}.budget-empty p{margin:0}.inline-add{display:flex;gap:6px;align-items:center}.inline-add input{flex:1}.register-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:18px}.balance{font-size:22px;font-weight:650;margin:4px 0 0;color:var(--postal)}.balance.neg{color:var(--stamp)}.filters{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:14px}.filters .search{flex:1 1 200px}.chip{padding:6px 11px;border-radius:99px;background:var(--navy);color:#fff;font-size:13px}.table-wrap{background:var(--paper);border-radius:8px;box-shadow:var(--lift);overflow-x:auto;transition:opacity .15s}.table-wrap.loading{opacity:.55}table.ledger{width:100%;border-collapse:collapse}.ledger th{text-align:left;font-size:13px;font-weight:600;color:var(--ink-2);padding:12px 14px;border-bottom:2px solid var(--rule-strong)}.ledger td{padding:9px 14px;border-bottom:1px solid var(--rule);vertical-align:middle}.ledger tbody tr{cursor:pointer}.ledger tbody tr:hover{background:#f3eee2}.ledger .date{width:112px;white-space:nowrap;color:var(--ink-2);font-size:14px;font-variant-numeric:tabular-nums}.ledger .amt{text-align:right;white-space:nowrap;font-weight:600;font-variant-numeric:tabular-nums}.ledger .amt.in{color:var(--postal)}.ledger .amt.out{color:var(--stamp)}.acct-cell{color:var(--ink-2);white-space:nowrap}.payee{text-align:left;padding:0}.payee:hover{text-decoration:underline;text-underline-offset:3px}.env-cell .payee{font-weight:500}.to-fill-tag{font-size:13px;font-weight:600;color:var(--postal)}.no-env{font-size:12.5px;font-weight:600;color:var(--stamp)}.ledger .transfer{color:var(--ink-2);font-style:italic}.notes{color:var(--ink-2);max-width:420px}.notes span:last-child{overflow-wrap:anywhere}.empty td{text-align:center;color:var(--muted);padding:40px;cursor:default}.tag{--c: #546e7a;display:inline-flex;align-items:center;gap:5px;margin-right:6px;padding:2px 8px 2px 7px;border-radius:99px;font-size:12px;font-weight:600;color:var(--c);background:color-mix(in srgb,var(--c) 12%,transparent);border:1px solid color-mix(in srgb,var(--c) 35%,transparent);white-space:nowrap}.tag:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--c)}.pager{display:flex;justify-content:flex-end;align-items:center;gap:10px;margin-top:14px}.pager .muted{margin-right:auto;font-size:13.5px}.summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));background:var(--paper);border-radius:8px;box-shadow:var(--lift);margin:0 0 18px}.summary .figure{padding:14px 16px 12px;display:grid;gap:4px}.summary .figure+.figure{border-left:1px solid var(--rule)}.summary .figure .eyebrow{margin:0}.summary .figure .num{font-size:21px;font-weight:650}.summary .figure small{font-size:12.5px}.backdrop{position:fixed;inset:0;background:#1f2b3d73;display:grid;place-items:center;padding:16px;z-index:10;animation:fade .15s ease both}.modal{width:min(560px,100%);max-height:calc(100vh - 32px);overflow-y:auto;background:var(--paper);border-radius:8px;box-shadow:var(--lift-hi);padding:22px 26px 24px;animation:rise .22s cubic-bezier(.2,.7,.2,1) both}.modal header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.form{display:grid;gap:14px}.form>button{justify-self:start}.form.narrow{max-width:420px;margin-top:14px}.form label,.field-title{display:grid;gap:6px;font-size:13.5px;font-weight:500;color:var(--ink-2)}.form label.check{display:flex;align-items:center;gap:8px;font-size:15px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.row{display:flex;gap:6px}.row input{flex:1}.toggle{width:40px;border:1px solid var(--rule-strong);border-radius:var(--radius);font-size:18px;font-weight:700;color:var(--postal)}.toggle.neg{color:var(--stamp)}.actions{display:flex;gap:8px;align-items:center;margin-top:4px}.actions .spacer,.spacer{flex:1}.actions:not(:has(.spacer)){justify-content:flex-end}.segmented{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--rule-strong);border-radius:var(--radius);overflow:hidden}.seg{padding:9px;font-size:14px;font-weight:600;color:var(--ink-2)}.seg+.seg{border-left:1px solid var(--rule-strong)}.seg.on.outflow{background:var(--stamp);color:#fff}.seg.on.inflow{background:var(--postal);color:#fff}.seg.on.transfer{background:var(--navy);color:#fff}.payee-field{position:relative}.suggest{position:absolute;top:100%;left:0;right:0;z-index:2;list-style:none;margin:4px 0 0;padding:4px;background:#fff;border:1px solid var(--rule-strong);border-radius:var(--radius);box-shadow:var(--lift)}.suggest button{width:100%;text-align:left;padding:7px 8px;border-radius:var(--radius);color:var(--ink)}.suggest button:hover{background:var(--paper-2)}.label-pick>div{display:flex;flex-wrap:wrap;gap:6px}.tag.pick{cursor:pointer;opacity:.55;padding:4px 10px 4px 8px}.tag.pick.on{opacity:1;background:color-mix(in srgb,var(--c) 22%,transparent);box-shadow:inset 0 0 0 1px var(--c)}.panel{max-width:760px;background:var(--paper);border-radius:8px;box-shadow:var(--lift);padding:26px 30px 30px}.panel>.muted{margin:8px 0 0}.settings-section{margin-top:30px;padding-top:22px;border-top:1px solid var(--rule-strong);scroll-margin-top:24px}.settings-section h2{margin-bottom:4px}.label-new{display:flex;gap:8px;margin:22px 0 8px}.label-new input:not([type=color]){flex:1}.label-list{list-style:none;margin:18px 0 0;padding:0;border-top:1px solid var(--rule-strong)}.label-row{display:grid;grid-template-columns:38px 1fr auto auto;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid var(--rule)}.label-row .error{grid-column:2 / -1;margin:0}.lede{font-size:16px;color:var(--ink-2);max-width:560px;margin:8px 0 0}.welcome{max-width:640px;padding:24px 0 0}.welcome h1{font-size:48px;font-stretch:120%}.welcome-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}.welcome-rules{display:none}.confirm{display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:12px 14px;border:1px solid color-mix(in srgb,var(--stamp) 40%,transparent);background:color-mix(in srgb,var(--stamp) 7%,transparent);border-radius:var(--radius)}.confirm p{margin:0;flex-basis:100%}.ynab-step{display:grid;grid-template-columns:44px 1fr;gap:16px;margin-top:22px;padding-top:20px;border-top:1px solid var(--rule)}.ynab-step h3{margin:5px 0 6px;font-size:19px}.ynab-step .grow{min-width:0}.step-no{width:36px;height:36px;display:grid;place-items:center;border:2px solid var(--navy);border-radius:50%;font-weight:700}.plan-list{list-style:none;margin:12px 0 10px;padding:0;border-top:1px solid var(--rule-strong)}.plan-list li{border-bottom:1px solid var(--rule)}.plan{width:100%;display:grid;grid-template-columns:1fr auto auto;gap:16px;align-items:center;padding:12px 8px;text-align:left}.plan:hover:not(:disabled),.plan.current{background:#f3eee2}.plan-name{font-size:17px;font-weight:600}.plan-go{font-size:13.5px;font-weight:600;opacity:0;transition:opacity .15s}.plan:hover .plan-go{opacity:1}.inking{margin-top:16px;display:grid;gap:12px;max-width:520px}.inking span{height:9px;border-radius:2px;background:linear-gradient(90deg,var(--navy) 0 30%,transparent 30% 36%,var(--ink-2) 36% 78%,transparent 78% 84%,var(--kraft) 84%);opacity:.2;transform-origin:left;animation:ink 1.4s ease-in-out infinite both}.sync-result{margin-top:16px;display:grid;gap:14px;justify-items:start}.sync-result .figures{grid-template-columns:repeat(3,minmax(120px,1fr));width:100%;max-width:560px;border-top:2px solid var(--navy);padding-top:10px}.sync-result .figure .num{font-size:28px;font-weight:700}@keyframes rise{0%{opacity:0;transform:translateY(8px)}}@keyframes fade{0%{opacity:0}}@keyframes slide-in{0%{opacity:0;transform:translate(12px)}}@keyframes ink{0%{transform:scaleX(0);opacity:.08}55%{transform:scaleX(1);opacity:.3}to{transform:scaleX(1);opacity:.06}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}@media(max-width:1100px){.budget,.budget.with-panel{grid-template-columns:1fr}.panel-env{position:static;max-height:none}}@media(max-width:860px){.shell{grid-template-columns:1fr}.sidebar{position:static;height:auto}.nav{grid-auto-flow:column;overflow-x:auto}.main{padding:18px 16px 28px}.grid2{grid-template-columns:1fr}.summary{grid-template-columns:repeat(2,minmax(0,1fr))}h1{font-size:28px}.budget-table .spent-col,.budget-table .goal-col{display:none}.env-name{padding-left:22px!important}input.assign{width:84px}.budget-table td,.budget-table th{padding-left:10px;padding-right:10px}.pill{min-width:0}.group-row .add-link{opacity:1;text-decoration:none;font-size:18px;line-height:1}.add-text{display:none}.add-plus{display:inline}.env-name{white-space:nowrap}.panel{padding:20px 18px}.table-wrap{margin:0 -16px;border-radius:0}}
