.react-grid-layout{position:relative;transition:height .2s ease}.react-grid-item{transition:all .2s ease;transition-property:left,top,width,height}.react-grid-item img{pointer-events:none;-webkit-user-select:none;user-select:none}.react-grid-item.cssTransforms{transition-property:transform,width,height}.react-grid-item.resizing{transition:none;z-index:1;will-change:width,height}.react-grid-item.react-draggable-dragging{transition:none;z-index:3;will-change:transform}.react-grid-item.dropping{visibility:hidden}.react-grid-item.react-grid-placeholder{background:red;opacity:.2;transition-duration:.1s;z-index:2;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.react-grid-item.react-grid-placeholder.placeholder-resizing{transition:none}.react-grid-item>.react-resizable-handle{position:absolute;width:20px;height:20px}.react-grid-item>.react-resizable-handle:after{content:"";position:absolute;right:3px;bottom:3px;width:5px;height:5px;border-right:2px solid rgba(0,0,0,.4);border-bottom:2px solid rgba(0,0,0,.4)}.react-resizable-hide>.react-resizable-handle{display:none}.react-grid-item>.react-resizable-handle.react-resizable-handle-sw{bottom:0;left:0;cursor:sw-resize;transform:rotate(90deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-se{bottom:0;right:0;cursor:se-resize}.react-grid-item>.react-resizable-handle.react-resizable-handle-nw{top:0;left:0;cursor:nw-resize;transform:rotate(180deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-ne{top:0;right:0;cursor:ne-resize;transform:rotate(270deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-w,.react-grid-item>.react-resizable-handle.react-resizable-handle-e{top:50%;margin-top:-10px;cursor:ew-resize}.react-grid-item>.react-resizable-handle.react-resizable-handle-w{left:0;transform:rotate(135deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-e{right:0;transform:rotate(315deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-n,.react-grid-item>.react-resizable-handle.react-resizable-handle-s{left:50%;margin-left:-10px;cursor:ns-resize}.react-grid-item>.react-resizable-handle.react-resizable-handle-n{top:0;transform:rotate(225deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-s{bottom:0;transform:rotate(45deg)}.react-resizable{position:relative}.react-resizable-handle{position:absolute;width:20px;height:20px;background-repeat:no-repeat;background-origin:content-box;box-sizing:border-box;background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2IDYiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmYwMCIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSI2cHgiIGhlaWdodD0iNnB4Ij48ZyBvcGFjaXR5PSIwLjMwMiI+PHBhdGggZD0iTSA2IDYgTCAwIDYgTCAwIDQuMiBMIDQgNC4yIEwgNC4yIDQuMiBMIDQuMiAwIEwgNiAwIEwgNiA2IEwgNiA2IFoiIGZpbGw9IiMwMDAwMDAiLz48L2c+PC9zdmc+);background-position:bottom right;padding:0 3px 3px 0}.react-resizable-handle-sw{bottom:0;left:0;cursor:sw-resize;transform:rotate(90deg)}.react-resizable-handle-se{bottom:0;right:0;cursor:se-resize}.react-resizable-handle-nw{top:0;left:0;cursor:nw-resize;transform:rotate(180deg)}.react-resizable-handle-ne{top:0;right:0;cursor:ne-resize;transform:rotate(270deg)}.react-resizable-handle-w,.react-resizable-handle-e{top:50%;margin-top:-10px;cursor:ew-resize}.react-resizable-handle-w{left:0;transform:rotate(135deg)}.react-resizable-handle-e{right:0;transform:rotate(315deg)}.react-resizable-handle-n,.react-resizable-handle-s{left:50%;margin-left:-10px;cursor:ns-resize}.react-resizable-handle-n{top:0;transform:rotate(225deg)}.react-resizable-handle-s{bottom:0;transform:rotate(45deg)}:root{--paper: #e9eeea;--surface: #f6f9f6;--ink: #17212c;--ink-soft: #4a5966;--rule: #c3cec8;--rule-strong: #94a69d;--accent: #27489a;--accent-ink: #ffffff;--credit: #1f6a49;--warn: #8c3a22;--warn-bg: #f2e2da;--ok-bg: #dcebe2;--focus: #27489a;--font-sans: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-figure: "Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", Georgia, serif;--radius: 4px;color-scheme:light dark}@media (prefers-color-scheme: dark){:root{--paper: #101916;--surface: #16201c;--ink: #e3ebe5;--ink-soft: #9badA4;--rule: #2a3a34;--rule-strong: #475b51;--accent: #8aadff;--accent-ink: #0e1a35;--credit: #6ccb9e;--warn: #f0a68c;--warn-bg: #3a231b;--ok-bg: #1d3328;--focus: #8aadff}}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.5 var(--font-sans);-webkit-font-smoothing:antialiased}h1,h2,h3{margin:0;line-height:1.2;font-weight:650;letter-spacing:-.01em}h1{font-size:1.6rem}h2{font-size:1.1rem}p{margin:0 0 .75rem}a{color:var(--accent);text-underline-offset:2px}:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:2px}.muted{color:var(--ink-soft)}.small{font-size:.85rem}.num{font-variant-numeric:tabular-nums lining-nums;text-align:right;white-space:nowrap}.credit{color:var(--credit)}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.app{display:grid;grid-template-columns:220px minmax(0,1fr);min-height:100%}.rail{border-right:1px solid var(--rule-strong);padding:1.5rem 1rem;display:flex;flex-direction:column;gap:1.5rem;position:sticky;top:0;height:100vh}.brand{font-weight:700;font-size:1.1rem;padding:0 .5rem}.nav{display:flex;flex-direction:column;gap:2px}.nav a{color:var(--ink);text-decoration:none;padding:.45rem .5rem;border-radius:var(--radius);border-left:3px solid transparent}.nav a:hover{background:color-mix(in srgb,var(--ink) 6%,transparent)}.nav a[aria-current=page]{border-left-color:var(--accent);font-weight:650;background:color-mix(in srgb,var(--accent) 9%,transparent)}.rail-foot{margin-top:auto;padding:0 .5rem;display:flex;flex-direction:column;gap:.5rem}.main{padding:2rem clamp(1rem,4vw,3rem) 4rem;max-width:1100px;width:100%}.page-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1.5rem}@media (max-width: 820px){.app{grid-template-columns:1fr}.rail{position:static;height:auto;flex-direction:row;align-items:center;flex-wrap:wrap;border-right:0;border-bottom:1px solid var(--rule-strong);padding:.75rem 1rem;gap:.5rem 1rem}.nav{flex-direction:row;overflow-x:auto}.nav a{border-left:0;border-bottom:3px solid transparent;border-radius:0;white-space:nowrap}.nav a[aria-current=page]{border-bottom-color:var(--accent)}.rail-foot{margin:0 0 0 auto;flex-direction:row;align-items:center}}.section{border-top:2px solid var(--ink);padding-top:.75rem;margin-top:2rem}.section>h2{margin-bottom:.75rem}.rule-list{list-style:none;margin:0;padding:0}.rule-list>li{border-top:1px solid var(--rule);padding:.7rem 0;display:flex;gap:1rem;align-items:baseline;justify-content:space-between;flex-wrap:wrap}.rule-list>li:last-child{border-bottom:1px solid var(--rule)}.rule-list .tone-warn{color:var(--warn)}.hero-figure{font-family:var(--font-figure);font-size:clamp(2.4rem,7vw,4rem);line-height:1.05;font-variant-numeric:lining-nums tabular-nums;letter-spacing:-.02em;margin:.25rem 0}.hero-meta{display:flex;gap:1.5rem;flex-wrap:wrap;align-items:baseline}.chart-wrap{margin-top:1rem;border-top:1px solid var(--rule-strong);border-bottom:1px solid var(--rule-strong);padding:.5rem 0}.chart{width:100%;height:280px}.chart-empty{height:280px;display:grid;place-items:center;text-align:center;color:var(--ink-soft);padding:1rem}.seg{display:inline-flex;border:1px solid var(--rule-strong);border-radius:var(--radius);overflow:hidden}.seg button{font:inherit;background:transparent;color:var(--ink);border:0;padding:.35rem .8rem;cursor:pointer;border-right:1px solid var(--rule-strong)}.seg button:last-child{border-right:0}.seg button[aria-pressed=true]{background:var(--accent);color:var(--accent-ink)}.btn{font:inherit;cursor:pointer;border-radius:var(--radius);padding:.45rem .9rem;border:1px solid var(--rule-strong);background:var(--surface);color:var(--ink)}.btn:hover:not(:disabled){border-color:var(--ink)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);font-weight:600}.btn-primary:hover:not(:disabled){border-color:var(--accent);filter:brightness(1.08)}.btn-link{background:none;border:0;padding:0;color:var(--accent);text-decoration:underline;cursor:pointer;font:inherit}.field{display:flex;flex-direction:column;gap:.25rem;margin-bottom:1rem}.field label,.label{font-weight:600;font-size:.9rem}input[type=text],input[type=password],input[type=date],input[type=search],select{font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--rule-strong);border-radius:var(--radius);padding:.45rem .6rem;min-width:0}select{padding-right:1.4rem}.inline-form{display:flex;gap:.5rem;align-items:flex-end;flex-wrap:wrap}.filters{display:flex;gap:1rem;align-items:flex-end;flex-wrap:wrap;margin-bottom:1rem}.filters .field{margin:0}.notice{padding:.7rem .9rem;border-left:4px solid var(--rule-strong);background:var(--surface);margin:0 0 1rem}.notice.warn{border-left-color:var(--warn);background:var(--warn-bg);color:var(--ink)}.notice.ok{border-left-color:var(--credit);background:var(--ok-bg)}.notice p:last-child{margin-bottom:0}.badge{display:inline-block;font-size:.78rem;padding:.05rem .45rem;border-radius:999px;border:1px solid var(--rule-strong);color:var(--ink-soft);white-space:nowrap}.badge.ok{border-color:var(--credit);color:var(--credit)}.badge.warn{border-color:var(--warn);color:var(--warn)}.table-wrap{overflow-x:auto}table.register{width:100%;border-collapse:collapse}.register th{text-align:left;font-weight:650;font-size:.85rem;color:var(--ink-soft);padding:.4rem .6rem;border-bottom:2px solid var(--ink)}.register th.num{text-align:right}.register td{padding:.55rem .6rem;border-bottom:1px solid var(--rule);vertical-align:top}.register tr.pending td{color:var(--ink-soft)}.register tr.pending td.desc{font-style:italic}.register td.desc{max-width:38ch;overflow-wrap:anywhere}.register td.date{white-space:nowrap;width:1%}.register .sub{display:block;font-size:.82rem;color:var(--ink-soft)}.pager{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-top:1rem;flex-wrap:wrap}.acct-row{border-top:1px solid var(--rule);padding:.9rem 0;display:grid;grid-template-columns:minmax(0,1.6fr) auto minmax(0,2fr);gap:.75rem 1.25rem;align-items:start}.acct-row:last-child{border-bottom:1px solid var(--rule)}.acct-row.inactive{opacity:.6}.acct-name{font-weight:600;overflow-wrap:anywhere}.acct-balance{font-size:1.1rem}.acct-controls{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}.acct-more{grid-column:1 / -1;font-size:.88rem}.acct-more summary{cursor:pointer;color:var(--ink-soft);width:fit-content}.acct-more>div{padding:.5rem 0 0;display:flex;flex-direction:column;gap:.5rem}.check{display:flex;gap:.5rem;align-items:flex-start}.check input{margin-top:.25rem}@media (max-width: 720px){.acct-row{grid-template-columns:1fr}}.auth{min-height:100%;display:grid;place-items:center;padding:1.5rem}.auth-panel{width:min(420px,100%);border-top:2px solid var(--ink);padding-top:1rem}.auth-panel h1{margin-bottom:1.25rem}.mono-block{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.82rem;background:var(--surface);border:1px solid var(--rule);padding:.4rem .6rem;overflow-x:auto;white-space:pre}.steps{padding-left:1.2rem;margin:0 0 1rem}.steps li{margin-bottom:.4rem}@media (prefers-reduced-motion: no-preference){.btn,.nav a{transition:border-color .12s,background-color .12s}}.main.wide{max-width:none}.budget-layout{display:grid;grid-template-columns:minmax(0,1fr) 390px;gap:2.5rem;align-items:start}.budget-col{min-width:0;max-width:760px}@media (max-width: 1100px){.budget-layout{grid-template-columns:1fr}.budget-col{max-width:none}}.banner{text-align:center;padding:.8rem 1rem;border-top:1px solid var(--rule-strong);border-bottom:1px solid var(--rule-strong);font-size:1.05rem;margin-bottom:1.5rem}.banner b{font-size:1.25rem;font-variant-numeric:tabular-nums lining-nums}.banner.left b{color:var(--credit)}.banner.over{background:var(--warn-bg);color:var(--warn)}.banner.even{background:var(--ok-bg)}.group{margin-bottom:2rem}.g-head,.item-main,.g-cols{display:grid;grid-template-columns:minmax(0,1fr) 7.5rem 7.5rem;gap:.5rem;align-items:baseline}.g-head{border-top:2px solid var(--ink);padding:.55rem 0 .35rem;grid-template-columns:auto 1fr 7.5rem 7.5rem}.g-head h2{font-size:1.1rem}.g-head>.btn-link{justify-self:start;margin-left:.5rem}.g-head .num{font-weight:650}.g-cols{font-size:.82rem;color:var(--ink-soft);padding-bottom:.2rem}.group-edit{background:var(--surface);border-left:4px solid var(--rule-strong);padding:.6rem .8rem;margin-bottom:.5rem}.item{border-top:1px solid var(--rule);padding-top:.45rem;transition:background-color .1s}.item:last-of-type{border-bottom:1px solid var(--rule)}.item-main{padding-bottom:.35rem}.item-name{font:inherit;text-align:left;background:none;border:0;padding:.1rem 0;cursor:pointer;color:var(--ink);display:inline-flex;gap:.5rem;align-items:baseline;flex-wrap:wrap}.item-name:hover{text-decoration:underline;text-underline-offset:3px}.amount-btn{font:inherit;font-variant-numeric:tabular-nums lining-nums;background:none;border:0;padding:.1rem .25rem;cursor:text;color:var(--accent);border-radius:3px}.amount-btn:hover{background:color-mix(in srgb,var(--accent) 10%,transparent)}.amount-input{width:7rem;text-align:right;font-variant-numeric:tabular-nums;padding:.15rem .35rem}.over-text{color:var(--warn);font-weight:600}.bar{height:4px;background:var(--rule);border-radius:2px;overflow:hidden;margin-bottom:.45rem}.bar>span{display:block;height:100%;background:var(--ink)}.bar.income>span{background:var(--credit)}.bar.over>span{background:var(--warn)}.item.drop-ready{background:color-mix(in srgb,var(--accent) 5%,transparent)}.item.drop-over{background:color-mix(in srgb,var(--accent) 16%,transparent);outline:2px dashed var(--accent);outline-offset:-2px}.add-link{display:inline-block;margin:.6rem 0 0}.add-form{margin-top:.6rem}.add-group{margin-top:1rem}.item-detail{background:var(--surface);border-left:4px solid var(--accent);padding:.8rem 1rem;margin:0 0 .6rem}.item-detail h3{font-size:.95rem;margin-bottom:.5rem}.detail-cols{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:1.5rem}@media (max-width: 640px){.detail-cols{grid-template-columns:1fr}}.plain-list{list-style:none;margin:0;padding:0}.plain-list li{display:flex;gap:.6rem;align-items:baseline;padding:.3rem 0;border-top:1px solid var(--rule)}.plain-list li:first-child{border-top:0}.grow{flex:1;min-width:0;overflow-wrap:anywhere}.txn-panel{position:sticky;top:1rem;max-height:calc(100vh - 2rem);overflow-y:auto;border-left:1px solid var(--rule-strong);padding-left:1.5rem}@media (max-width: 1100px){.txn-panel{position:static;max-height:none;border-left:0;padding-left:0;border-top:2px solid var(--ink);padding-top:1rem}}.panel-tabs{display:flex;width:100%}.panel-tabs button{flex:1}.count{margin-left:.35rem;font-size:.75rem;padding:0 .4rem;border-radius:999px;background:var(--ink);color:var(--paper)}.panel-tabs button[aria-pressed=true] .count{background:var(--accent-ink);color:var(--accent)}.txn-list{list-style:none;margin:0;padding:0}.txn-month{font-weight:650;padding:.7rem 0 .3rem;border-bottom:1px solid var(--rule-strong)}.txn{display:grid;grid-template-columns:2.6rem minmax(0,1fr);gap:.7rem;padding:.7rem 0;border-bottom:1px solid var(--rule);cursor:grab;background:var(--paper)}.txn.pending{cursor:default;color:var(--ink-soft)}.txn.dragging{opacity:.45}.txn:active{cursor:grabbing}.date-badge{width:2.6rem;height:2.6rem;border-radius:50%;border:2px solid var(--accent);color:var(--accent);display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.05;font-size:.7rem}.date-badge .dy{font-size:.85rem;font-weight:650}.txn.pending .date-badge{border-style:dashed;border-color:var(--rule-strong);color:var(--ink-soft)}.txn-top{display:flex;justify-content:space-between;gap:.75rem;align-items:baseline}.txn-desc{font-weight:600;overflow-wrap:anywhere}.txn.pending .txn-desc{font-style:italic;font-weight:500}.txn-actions{display:flex;flex-wrap:wrap;gap:.3rem .7rem;align-items:center;margin-top:.35rem}.chip{font:inherit;font-size:.82rem;cursor:pointer;background:none;color:var(--accent);border:1px dashed var(--accent);border-radius:999px;padding:.05rem .6rem}.chip:hover{background:color-mix(in srgb,var(--accent) 12%,transparent)}.chip.solid{cursor:default;border-style:solid;background:color-mix(in srgb,var(--accent) 10%,transparent)}.assign-select{font-size:.82rem;padding:.15rem .3rem;max-width:11rem}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:grid;place-items:center;padding:1rem;z-index:50}.dialog{background:var(--paper);color:var(--ink);width:min(560px,100%);border-top:4px solid var(--accent);padding:1.25rem 1.5rem 1.5rem;max-height:90vh;overflow-y:auto;box-shadow:0 10px 40px #00000059}.dialog h2{margin-bottom:.25rem}.split-row{display:grid;grid-template-columns:minmax(0,1fr) 7rem auto;gap:.5rem;margin-bottom:.5rem;align-items:center}.split-foot{display:flex;justify-content:space-between;align-items:baseline;margin:.5rem 0 1rem}.acct-link{color:var(--ink);text-decoration:none}.acct-link:hover{color:var(--accent);text-decoration:underline;text-underline-offset:3px}.rule-list{list-style:none;margin:1rem 0 0;padding:0;counter-reset:rule}.rule-row{counter-increment:rule;display:grid;grid-template-columns:2rem minmax(0,1fr) auto auto;gap:.75rem 1rem;align-items:start;padding:.8rem 0;border-top:1px solid var(--rule)}.rule-row:last-child{border-bottom:1px solid var(--rule)}.rule-row:before{content:counter(rule);font-weight:650;color:var(--ink-soft);font-variant-numeric:tabular-nums}.rule-row.off .rule-main{opacity:.55}.rule-name{font-weight:650}.rule-buttons{display:flex;gap:.3rem .8rem;flex-wrap:wrap;align-items:baseline;justify-content:flex-end;max-width:22rem}.rule-buttons .btn-link:disabled{color:var(--ink-soft);text-decoration:none;cursor:default}@media (max-width: 720px){.rule-row{grid-template-columns:2rem 1fr}.rule-row .check,.rule-buttons{grid-column:2;justify-content:flex-start}}.rule-form fieldset{border:0;border-top:1px solid var(--rule-strong);margin:0 0 1rem;padding:.6rem 0 0}.rule-form legend{font-weight:650;padding-right:.5rem}.rule-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(13rem,1fr));gap:.25rem 1rem}.rule-actions{display:flex;flex-direction:column;gap:.4rem}.rule-preview{background:var(--surface);border-left:4px solid var(--rule-strong);padding:.6rem .9rem;margin:.5rem 0}.rule-preview p{margin:0 0 .4rem}.rule-preview .plain-list{margin-top:.3rem}.dialog.wide{width:min(720px,100%)}.badge.bot{border-color:var(--accent);color:var(--accent);font-weight:650}.actor{overflow-wrap:anywhere}.event-line{margin-top:.15rem}.history{list-style:none;margin:.4rem 0 0;padding:0 0 0 .8rem;border-left:2px solid var(--rule-strong);display:flex;flex-direction:column;gap:.5rem}.people-list>li.person{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.4rem 1rem;align-items:center;padding:.7rem 0}.people-form{max-width:26rem}.qr-row{display:flex;gap:1.5rem;align-items:center;flex-wrap:wrap;margin:.5rem 0}.qr{width:200px;height:200px;background:#fff;padding:8px;border:1px solid var(--rule-strong)}.qr.placeholder{display:grid;place-items:center;color:#444;font-size:.85rem;text-align:center}.secret{display:block;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:1rem;letter-spacing:.04em;padding:.4rem .6rem;background:var(--surface);border:1px solid var(--rule);margin-top:.25rem;overflow-wrap:anywhere}.codes{list-style:none;margin:.5rem 0 1rem;padding:.8rem 1rem;display:grid;grid-template-columns:repeat(auto-fill,minmax(9rem,1fr));gap:.4rem 1.5rem;background:var(--surface);border:1px solid var(--rule-strong);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:1rem;letter-spacing:.03em}.dash-controls{display:flex;gap:.5rem .75rem;align-items:center;flex-wrap:wrap;justify-content:flex-end}.dash-controls .field{margin:0}.menu{position:relative}.menu>summary{cursor:pointer;list-style:none;padding:.45rem .7rem;border:1px solid var(--rule-strong);border-radius:var(--radius);background:var(--surface)}.menu>summary::-webkit-details-marker{display:none}.menu-items{position:absolute;right:0;top:calc(100% + 4px);z-index:20;min-width:11rem;background:var(--surface);border:1px solid var(--rule-strong);box-shadow:0 6px 20px #0003;padding:.4rem;display:flex;flex-direction:column;gap:.15rem}.menu-items .btn-link{text-align:left;padding:.35rem .5rem;text-decoration:none;color:var(--ink)}.menu-items .btn-link:hover:not(:disabled){background:color-mix(in srgb,var(--accent) 10%,transparent)}.menu-items .btn-link:disabled{color:var(--ink-soft);cursor:default}.dash-grid{margin:0 -2px}.widget{height:100%;display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--rule);border-top:2px solid var(--ink);min-width:0}.widget-head{display:flex;justify-content:space-between;gap:.5rem;align-items:flex-start;padding:.6rem .9rem .35rem}.widget-head.editing{cursor:grab;background:color-mix(in srgb,var(--accent) 8%,transparent)}.widget-head.editing:active{cursor:grabbing}.widget-title{min-width:0}.widget-title h2{font-size:1rem;overflow-wrap:anywhere}.widget-tools{display:flex;gap:.6rem;flex-wrap:wrap;justify-content:flex-end;cursor:default}.widget-body{flex:1;min-height:0;display:flex;flex-direction:column;padding:0 .9rem .8rem}.w-col{flex:1;min-height:0;display:flex;flex-direction:column;gap:.35rem}.w-head{display:flex;align-items:baseline;gap:.75rem;flex-wrap:wrap}.big{font-family:var(--font-figure);font-size:1.6rem;line-height:1.15;font-variant-numeric:lining-nums tabular-nums}.pos{color:var(--credit)}.neg{color:var(--warn)}.w-fill{position:relative;flex:1;min-height:80px}.chart-fill{position:absolute;top:0;right:0;bottom:0;left:0}.w-empty{flex:1;display:grid;place-items:center;text-align:center;color:var(--ink-soft);padding:.5rem}.w-note{margin-top:auto}.w-scroll{flex:1;min-height:0;overflow-y:auto}.w-sub{display:flex;justify-content:space-between;font-weight:650;border-bottom:1px solid var(--rule-strong);padding:.4rem 0 .2rem;margin-top:.3rem}.stat{flex:1;min-height:0;container-type:inline-size;display:flex;flex-direction:column;justify-content:center}.stat-value{font-family:var(--font-figure);font-size:clamp(1.6rem,14cqw,4rem);line-height:1.05;letter-spacing:-.02em;font-variant-numeric:lining-nums tabular-nums;text-align:left}.bar-list,.attention{list-style:none;margin:0;padding:0}.bar-row{padding:.35rem 0;border-bottom:1px solid var(--rule)}.bar-row-top{display:flex;justify-content:space-between;gap:.5rem;align-items:baseline}.bar-row .bar{margin:.25rem 0 .1rem}.figures{flex:1;display:grid;grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));gap:.6rem 1.2rem;align-content:center}.figure-value{font-family:var(--font-figure);font-size:1.5rem;line-height:1.15;text-align:left}.attention li{padding:.45rem 0 .45rem .7rem;border-bottom:1px solid var(--rule);border-left:4px solid var(--rule-strong);margin-bottom:.3rem}.attention li.warn{border-left-color:var(--warn)}.notes{white-space:pre-wrap;overflow-wrap:anywhere}.register.compact td{padding:.3rem .5rem}.drill-chip{background:var(--surface);border-left:4px solid var(--accent);padding:.5rem .8rem}.calendars{display:flex;gap:1rem 1.5rem;flex-wrap:wrap;align-content:flex-start}.cal-month{flex:1 1 11rem;min-width:10.5rem;max-width:18rem}.cal-head{display:flex;gap:.6rem;align-items:baseline;flex-wrap:wrap;margin-bottom:.2rem}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}.cal-dow{text-align:center;font-size:.72rem;color:var(--ink-soft)}.cal-day{aspect-ratio:1;position:relative;display:flex;flex-direction:column;justify-content:space-between;padding:2px 3px;font-size:.72rem;color:var(--ink-soft);border:1px solid var(--rule);text-decoration:none;overflow:hidden}.cal-day.has{color:var(--ink);background:color-mix(in srgb,var(--accent) 8%,transparent);border-color:var(--rule-strong)}.cal-day.has:hover{border-color:var(--accent)}.cal-bars{display:flex;align-items:flex-end;gap:1px;height:55%}.cal-bars i{flex:1;display:block;min-height:0}.cal-bars .in{background:var(--credit)}.cal-bars .out{background:var(--warn)}.picker{list-style:none;margin:0 0 1rem;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));gap:.8rem}.picker li{border:1px solid var(--rule);padding:.7rem .8rem;display:flex;flex-direction:column;gap:.3rem;align-items:flex-start}.picker h3{font-size:.98rem}.picker p{margin:0;flex:1}.range-field{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}textarea{font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--rule-strong);border-radius:var(--radius);padding:.45rem .6rem;width:100%;resize:vertical}input[type=month],input[type=number]{font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--rule-strong);border-radius:var(--radius);padding:.4rem .5rem}.react-grid-item.react-grid-placeholder{background:var(--accent);opacity:.18;border-radius:0}.react-grid-item>.react-resizable-handle:after{border-color:var(--ink-soft)}.react-grid-item.react-draggable-dragging{z-index:10;box-shadow:0 8px 28px #0000004d}:root{--m-header: #1f6a49;--m-nav-h: 60px;--m-bolt: #f5a623;--m-ok: #2eb85c;--m-toast: #1b4f9c}@media (prefers-color-scheme: dark){:root{--m-header: #14452f;--m-toast: #1f3f7a}}body.bubble-mode{overscroll-behavior:contain}.m-app{min-height:100dvh;padding-bottom:calc(var(--m-nav-h) + env(safe-area-inset-bottom))}.m-app:before{content:"";position:fixed;top:0;left:0;right:0;height:env(safe-area-inset-top);background:var(--m-header);z-index:60}.m-main{padding:calc(env(safe-area-inset-top) + .6rem) .85rem 1rem;max-width:100%;overflow-x:clip}.m-main:has(.m-header){padding:0 0 1rem}.m-main h1{font-size:1.5rem}.m-nav{position:fixed;bottom:0;left:0;right:0;z-index:55;display:grid;grid-template-columns:repeat(5,1fr);background:var(--surface);border-top:1px solid var(--rule-strong);padding-bottom:env(safe-area-inset-bottom)}body.bubble-mode .m-nav{display:none}.m-tab{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:var(--m-nav-h);color:var(--ink-soft);text-decoration:none;font-size:.68rem}.m-tab.active{color:var(--accent);font-weight:650}.m-header{position:sticky;top:0;z-index:40;background:var(--m-header);color:#fff;padding:calc(env(safe-area-inset-top) + .5rem) .85rem .75rem}.m-header-top{display:flex;align-items:center;gap:.5rem}.m-header h1{flex:1;margin:0;font-size:1.55rem;font-weight:700;display:flex;align-items:baseline;gap:.6rem}.m-today{color:#fff;font-size:.8rem;text-decoration:underline}.m-round{width:40px;height:40px;border-radius:50%;border:0;background:#ffffff29;color:#fff;font-size:1.5rem;line-height:1;cursor:pointer}.m-round.plus{font-size:1.7rem}.m-seg{display:flex;margin-top:.7rem;padding:3px;gap:3px;border-radius:12px;background:#00000047}.m-seg button{flex:1;border:0;border-radius:9px;background:transparent;color:#fff;padding:.5rem .2rem;font:inherit;font-size:.95rem;cursor:pointer}.m-seg button[aria-pressed=true]{background:#ffffff3d;font-weight:650}.m-banner{text-align:center;padding:.7rem 1rem;background:var(--surface);border-bottom:1px solid var(--rule-strong)}.m-banner.over b{color:var(--warn)}.m-content{padding:.75rem;display:grid;gap:.75rem}.m-group{background:var(--surface);border:1px solid var(--rule);border-radius:14px;overflow:hidden}.m-group-head{display:flex;justify-content:space-between;align-items:baseline;padding:.85rem 1rem;border-bottom:1px solid var(--rule-strong)}.m-group-head h2{font-size:1.1rem}.m-item{display:block;width:100%;text-align:left;background:transparent;border:0;color:inherit;font:inherit;padding:.85rem 1rem .75rem;cursor:pointer;border-radius:10px}.m-item-row{display:flex;justify-content:space-between;gap:.75rem;align-items:baseline}.m-item-name{display:inline-flex;align-items:center;gap:.4rem;min-width:0;overflow-wrap:anywhere}.m-fund{color:var(--accent);display:inline-flex}.m-item .bar{display:block;margin-top:.5rem}.m-item[data-hover=true]{outline:2px solid var(--accent);outline-offset:-2px;background:color-mix(in srgb,var(--accent) 16%,transparent)}.m-add{display:block;padding:.7rem 1rem}.m-count{position:fixed;left:50%;transform:translate(-50%);bottom:calc(var(--m-nav-h) + env(safe-area-inset-bottom) + 14px);z-index:50;width:54px;height:54px;border-radius:50%;border:0;background:var(--accent);color:#fff;font:inherit;font-size:1.5rem;font-weight:700;box-shadow:0 6px 18px #0000004d;cursor:pointer}.m-bubble-layer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:70;pointer-events:none}.m-x{position:fixed;bottom:calc(22px + env(safe-area-inset-bottom));left:50%;transform:translate(-50%);width:54px;height:54px;border-radius:50%;border:0;background:var(--accent);color:#fff;display:grid;place-items:center;pointer-events:auto;z-index:72;cursor:pointer;box-shadow:0 6px 18px #0000004d}.m-fast{position:fixed;right:0;top:40%;min-width:132px;padding:.6rem .9rem;border:2px dashed var(--accent);border-right:0;border-radius:14px 0 0 14px;background:var(--surface);display:flex;flex-direction:column;align-items:flex-start;gap:2px;font-size:.85rem;pointer-events:auto;z-index:71;color:var(--accent)}.m-fast svg{color:var(--m-bolt)}.m-fast span{font-weight:650}.m-fast.on{background:color-mix(in srgb,var(--accent) 20%,var(--surface));border-style:solid}.m-undo{position:fixed;bottom:calc(22px + env(safe-area-inset-bottom));left:50%;transform:translate(-50%);width:88px;height:88px;border-radius:50%;background:#5f6670;color:#fff;display:grid;place-items:center;text-align:center;font-size:.85rem;font-weight:600;padding:0 12px;pointer-events:auto;z-index:71}.m-undo.on{background:#3d434a;transform:translate(-50%) scale(1.12)}.m-check{position:fixed;top:46%;left:50%;width:92px;height:92px;margin:-46px 0 0 -46px;border-radius:50%;background:var(--m-ok);color:#fff;display:grid;place-items:center;pointer-events:none;z-index:90;animation:m-check-pop .9s ease forwards}.m-check svg{width:48px;height:48px}@keyframes m-check-pop{0%{transform:scale(.3);opacity:0}25%{transform:scale(1.1);opacity:1}55%{transform:scale(1);opacity:1}to{transform:scale(.45) translateY(40px);opacity:0}}.m-toast{position:fixed;top:0;left:0;right:0;z-index:95;display:flex;align-items:center;gap:.75rem;padding:calc(env(safe-area-inset-top) + 10px) 14px 12px;background:var(--m-toast);color:#fff;animation:m-slide-down .25s ease;box-shadow:0 6px 18px #0000004d}.m-toast-check{width:38px;height:38px;border-radius:50%;background:#ffffff2e;display:grid;place-items:center;flex:none}.m-toast-check svg{width:22px;height:22px}.m-toast-text{flex:1;min-width:0;display:flex;flex-direction:column}.m-toast-text .small{opacity:.85;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.m-toast-undo{border:0;background:transparent;color:#fff;font:inherit;font-weight:700;padding:.5rem;cursor:pointer}@keyframes m-slide-down{0%{transform:translateY(-100%)}to{transform:none}}@media (prefers-reduced-motion: reduce){.m-check{animation-duration:.01s}.m-toast{animation:none}}.sheet-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#00000073;display:flex;align-items:flex-end}.sheet{width:100%;max-height:88dvh;display:flex;flex-direction:column;background:var(--surface);border-radius:18px 18px 0 0;padding-bottom:env(safe-area-inset-bottom);animation:m-sheet-up .22s ease}@keyframes m-sheet-up{0%{transform:translateY(40%);opacity:.4}to{transform:none;opacity:1}}.sheet-head{display:flex;justify-content:space-between;align-items:center;padding:1rem 1rem .5rem}.sheet-head h2{font-size:1.15rem}.sheet-body{overflow-y:auto;padding:0 1rem 1.2rem}.pick-group{font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft);margin:.9rem 0 .2rem}.pick-row{display:flex;align-items:center;gap:.5rem;width:100%;text-align:left;background:transparent;border:0;border-bottom:1px solid var(--rule);color:inherit;font:inherit;padding:.8rem .2rem;cursor:pointer}.pick-row.suggested{color:var(--accent);font-weight:650}.pick-row svg{color:var(--m-bolt)}.more-list{list-style:none;margin:0 0 1rem;padding:0}.more-list li{display:flex;flex-direction:column;padding:.8rem 0;border-bottom:1px solid var(--rule)}.more-list a{font-size:1.1rem}.install-card{border:1px solid var(--rule-strong);border-radius:14px;padding:1rem;margin:1rem 0;background:var(--surface)}.install-card h2{font-size:1.1rem;margin-bottom:.4rem}.steps{padding-left:1.2rem;display:grid;gap:.4rem}.more-foot{display:flex;flex-direction:column;align-items:flex-start;gap:.6rem;margin-top:1rem}.m-strip{position:fixed;left:0;right:0;bottom:calc(86px + env(safe-area-inset-bottom));z-index:71;overflow-x:auto;overflow-y:hidden;padding:24px 0 14px;pointer-events:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scrollbar-width:none}.m-strip::-webkit-scrollbar{display:none}.m-strip-track{position:relative;display:flex;gap:16px;width:max-content;min-width:100%;padding:0 16px}.m-strip-track:before{content:"";position:absolute;left:0;right:0;top:50%;height:2px;background:var(--rule-strong)}.m-bubble{position:relative;z-index:1;flex:none;width:100px;height:100px;border-radius:50%;background:var(--surface);border:3px solid var(--accent);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:0 8px;touch-action:pan-x;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;cursor:grab;box-shadow:0 6px 16px #0000004d;line-height:1.2}.m-bubble.in{border-color:var(--credit)}.m-bubble.lifted{opacity:0}.m-bubble:focus-visible{outline:3px solid var(--m-bolt);outline-offset:3px}.m-ghost{position:fixed;left:0;top:0;z-index:73;pointer-events:none;touch-action:none;cursor:grabbing;box-shadow:0 14px 34px #00000073}.m-bolt{position:absolute;top:-15px;left:50%;transform:translate(-50%);color:var(--m-bolt);display:inline-flex;background:var(--surface);border-radius:50%}.m-bubble-date{font-size:.72rem;color:var(--ink-soft)}.m-bubble-amount{font-size:1.02rem;font-weight:700;font-variant-numeric:tabular-nums}.m-bubble.in .m-bubble-amount{color:var(--credit)}.m-bubble-merchant{font-size:.7rem;color:var(--ink-soft);max-width:82px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}body.bubble-mode .m-content{padding-bottom:270px}
