:root{--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-6: 24px;--space-8: 32px;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 18px;--radius-pill: 999px;--font-serif: Georgia, "Times New Roman", serif;--font-numeric: "Roboto", system-ui, -apple-system, "Segoe UI", sans-serif}:root,:root[data-theme=light]{color-scheme:light;--surface: #f6f7f9;--surface-raised: #ffffff;--surface-sunken: #eceff4;--line: #d6dbe4;--line-strong: #8a93a3;--ink: #141a26;--ink-muted: #566072;--blue: #2349a0;--blue-soft: #e5ebf8;--on-blue: #ffffff;--green: #2c741e;--green-soft: #e3f1df;--red: #b42318;--red-soft: #fbe7e5;--amber: #8a5300;--amber-soft: #fdf0d8;--grey: #6b7280;--focus-ring: var(--blue);--chart-1: #2a78d6;--chart-2: #eb6834;--chart-3: #1baf7a;--chart-4: #eda100;--chart-5: #e87ba4;--chart-6: #008300;--shadow-card: 0 1px 2px rgba(20,26,38,.06), 0 4px 12px rgba(20,26,38,.05)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--surface: #0e131d;--surface-raised: #171e2b;--surface-sunken: #0a0e15;--line: #2b3445;--line-strong: #667183;--ink: #edf0f5;--ink-muted: #a4aebf;--blue: #8fb0ff;--blue-soft: #1b2a4d;--on-blue: #0e131d;--green: #79c96a;--green-soft: #16301a;--red: #ff8b80;--red-soft: #3d1a17;--amber: #f0b54a;--amber-soft: #3a2a0c;--grey: #9aa3b2;--focus-ring: var(--blue);--chart-1: #3987e5;--chart-2: #d95926;--chart-3: #199e70;--chart-4: #c98500;--chart-5: #d55181;--chart-6: #008300;--shadow-card: 0 1px 2px rgba(0,0,0,.5)}}:root[data-theme=dark]{color-scheme:dark;--surface: #0e131d;--surface-raised: #171e2b;--surface-sunken: #0a0e15;--line: #2b3445;--line-strong: #667183;--ink: #edf0f5;--ink-muted: #a4aebf;--blue: #8fb0ff;--blue-soft: #1b2a4d;--on-blue: #0e131d;--green: #79c96a;--green-soft: #16301a;--red: #ff8b80;--red-soft: #3d1a17;--amber: #f0b54a;--amber-soft: #3a2a0c;--grey: #9aa3b2;--focus-ring: var(--blue);--chart-1: #3987e5;--chart-2: #d95926;--chart-3: #199e70;--chart-4: #c98500;--chart-5: #d55181;--chart-6: #008300;--shadow-card: 0 1px 2px rgba(0,0,0,.5)}:root[data-theme=red],[data-theme=red]{color-scheme:dark;--surface: #170d10;--surface-raised: #221419;--surface-sunken: #100809;--line: #3d252b;--line-strong: #846269;--ink: #f7eced;--ink-muted: #c9adb2;--blue: #ff8ea0;--blue-soft: #4a1d28;--on-blue: #170d10;--green: #86d38f;--green-soft: #18321f;--red: #ffa06b;--red-soft: #46251a;--amber: #f2c55c;--amber-soft: #3d2f0f;--grey: #ab9a9e;--focus-ring: var(--blue);--chart-1: #d85c76;--chart-2: #3d93e0;--chart-3: #19a574;--chart-4: #c98500;--chart-5: #a07ee6;--chart-6: #e0713a;--shadow-card: 0 1px 2px rgba(0,0,0,.5)}:root[data-theme=pink],[data-theme=pink]{color-scheme:light;--surface: #fcf4f7;--surface-raised: #ffffff;--surface-sunken: #f6e6ec;--line: #ecd1db;--line-strong: #a0808c;--ink: #2a1520;--ink-muted: #6d4d5a;--blue: #b02a66;--blue-soft: #fbe1ec;--on-blue: #ffffff;--green: #2c741e;--green-soft: #e3f1df;--red: #b42318;--red-soft: #fbe7e5;--amber: #8a5300;--amber-soft: #fdf0d8;--grey: #7c6870;--focus-ring: var(--blue);--chart-1: #d24b82;--chart-2: #2a78d6;--chart-3: #1baf7a;--chart-4: #eda100;--chart-5: #8a63d8;--chart-6: #e0763a;--shadow-card: 0 1px 2px rgba(42,21,32,.06), 0 4px 12px rgba(42,21,32,.05)}:root[data-theme=green],[data-theme=green]{color-scheme:dark;--surface: #0c1510;--surface-raised: #131f18;--surface-sunken: #08100b;--line: #26382e;--line-strong: #607b6a;--ink: #ecf5ee;--ink-muted: #a8c0b0;--blue: #6fd69c;--blue-soft: #173c28;--on-blue: #0c1510;--green: #c2e36b;--green-soft: #2b3614;--red: #ff8b80;--red-soft: #3d1a17;--amber: #f0b54a;--amber-soft: #3a2a0c;--grey: #98a99e;--focus-ring: var(--blue);--chart-1: #2ea86c;--chart-2: #df6f36;--chart-3: #3d8fe0;--chart-4: #c98500;--chart-5: #d25a8c;--chart-6: #8b78e0;--shadow-card: 0 1px 2px rgba(0,0,0,.5)}:root[data-theme=yellow],[data-theme=yellow]{color-scheme:light;--surface: #fbf8ee;--surface-raised: #fffdf6;--surface-sunken: #f3ebd4;--line: #e4d8b4;--line-strong: #998a5e;--ink: #241d0b;--ink-muted: #625535;--blue: #855d00;--blue-soft: #fbedc2;--on-blue: #ffffff;--green: #2c741e;--green-soft: #e3f1df;--red: #b42318;--red-soft: #fbe7e5;--amber: #a3480a;--amber-soft: #fde5d2;--grey: #7a735f;--focus-ring: var(--blue);--chart-1: #c99200;--chart-2: #2a78d6;--chart-3: #1baf7a;--chart-4: #e0763a;--chart-5: #8a63d8;--chart-6: #d24b82;--shadow-card: 0 1px 2px rgba(36,29,11,.06), 0 4px 12px rgba(36,29,11,.05)}:root[data-theme=purple],[data-theme=purple]{color-scheme:dark;--surface: #120f1d;--surface-raised: #1b1729;--surface-sunken: #0c0a14;--line: #332c48;--line-strong: #6e658a;--ink: #f1eef8;--ink-muted: #b4abca;--blue: #b89cff;--blue-soft: #2f2455;--on-blue: #120f1d;--green: #79c96a;--green-soft: #16301a;--red: #ff8b80;--red-soft: #3d1a17;--amber: #f0b54a;--amber-soft: #3a2a0c;--grey: #a29cb4;--focus-ring: var(--blue);--chart-1: #9a7cea;--chart-2: #d95926;--chart-3: #199e70;--chart-4: #c98500;--chart-5: #d55181;--chart-6: #3d8fe0;--shadow-card: 0 1px 2px rgba(0,0,0,.5)}:root[data-theme=grey],[data-theme=grey]{color-scheme:dark;--surface: #141415;--surface-raised: #1e1e20;--surface-sunken: #0d0d0e;--line: #333336;--line-strong: #6f6f74;--ink: #efeff0;--ink-muted: #b1b1b6;--blue: #d4d4d8;--blue-soft: #35353a;--on-blue: #141415;--green: #7fcf73;--green-soft: #18301a;--red: #ff8a80;--red-soft: #3d1a18;--amber: #f0b54a;--amber-soft: #3a2c0e;--grey: #9c9ca2;--focus-ring: var(--blue);--chart-1: #3987e5;--chart-2: #d95926;--chart-3: #199e70;--chart-4: #c98500;--chart-5: #d55181;--chart-6: #008300;--shadow-card: 0 1px 2px rgba(0,0,0,.5)}:root[data-theme=lightblue],[data-theme=lightblue]{color-scheme:light;--surface: #f0f7fb;--surface-raised: #ffffff;--surface-sunken: #e0eef6;--line: #c8deeb;--line-strong: #7b97a9;--ink: #0f2230;--ink-muted: #4a6273;--blue: #0a6c9f;--blue-soft: #d9ecf8;--on-blue: #ffffff;--green: #2c741e;--green-soft: #e3f1df;--red: #b42318;--red-soft: #fbe7e5;--amber: #8a5300;--amber-soft: #fdf0d8;--grey: #6b7c88;--focus-ring: var(--blue);--chart-1: #1a8fd0;--chart-2: #eb6834;--chart-3: #1baf7a;--chart-4: #eda100;--chart-5: #e87ba4;--chart-6: #7a5cd6;--shadow-card: 0 1px 2px rgba(15,34,48,.06), 0 4px 12px rgba(15,34,48,.05)}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;font-family:var(--font-serif);font-size:16px;line-height:24px;background:var(--surface);color:var(--ink)}button,input{font:inherit;color:inherit}code{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:.875em;background:var(--surface-sunken);padding:1px 5px;border-radius:4px}:where(button,[tabindex],input,a):focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.ob-num{font-family:var(--font-numeric);font-variant-numeric:tabular-nums}.ob-body{margin:0;font-size:16px;line-height:24px}.ob-muted{color:var(--ink-muted)}.ob-caption{margin:0;font-family:var(--font-serif);font-size:13px;line-height:18px;color:var(--ink-muted)}.ob-caption.ob-num{font-family:var(--font-numeric)}.ob-empty{color:var(--ink-muted);margin:var(--space-4) 0}.ob-visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.ob-page{max-width:1240px;margin:0 auto;padding:var(--space-6) var(--space-4) var(--space-8)}@media(min-width:900px){.ob-page{padding:var(--space-8) var(--space-6)}}.ob-top{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:var(--space-4);margin-bottom:var(--space-6)}.ob-title{margin:0;font-size:32px;line-height:40px;font-weight:700;letter-spacing:-.01em}.ob-top-controls{display:flex;flex-wrap:wrap;gap:var(--space-2)}.ob-status{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:2px 0 0;font-size:13px;line-height:18px;color:var(--ink-muted)}.ob-live{width:8px;height:8px;border-radius:50%;background:var(--grey)}.ob-live.is-live{background:var(--green)}.ob-main{display:flex;flex-direction:column;gap:var(--space-6)}.ob-toolbar{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:var(--space-4)}.ob-periodnav{display:flex;align-items:center;gap:var(--space-2)}.ob-period{display:flex;align-items:center;gap:var(--space-2);min-width:0}.ob-period-name{font-size:22px;line-height:30px;font-weight:700}.ob-icon-btn{width:36px;height:36px;border-radius:50%;border:1px solid var(--line-strong);background:var(--surface-raised);font-family:var(--font-numeric);font-size:20px;line-height:1;cursor:pointer;color:var(--ink)}.ob-icon-btn:disabled{opacity:.4;cursor:default}.ob-btn{font-family:var(--font-numeric);font-size:14px;line-height:20px;font-weight:500;min-height:36px;padding:0 var(--space-4);border-radius:var(--radius-md);border:1px solid var(--line-strong);background:var(--surface-raised);color:var(--ink);cursor:pointer}.ob-btn-quiet{border-color:var(--line);background:var(--surface-sunken);color:var(--ink)}.ob-btn:hover{border-color:var(--blue)}.ob-hero{display:flex;flex-direction:column;gap:var(--space-1)}.ob-hero-text{color:var(--ink-muted);max-width:64ch}.ob-kpis{display:grid;gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}.ob-grid{display:grid;gap:var(--space-6);grid-template-columns:1fr;align-items:start}@media(min-width:980px){.ob-grid{grid-template-columns:minmax(0,1.75fr) minmax(300px,1fr)}}.ob-col{display:flex;flex-direction:column;gap:var(--space-6);min-width:0}.ob-footer{text-align:center}.ob-amount{font-weight:500;white-space:nowrap}.ob-amount-sm{font-size:13px;line-height:18px}.ob-amount-md{font-size:16px;line-height:24px}.ob-amount-lg{font-size:24px;line-height:32px}.ob-amount-hero{font-size:40px;line-height:48px;letter-spacing:-.01em}.ob-tone-neutral{color:var(--ink)}.ob-tone-good{color:var(--green)}.ob-tone-bad{color:var(--red)}.ob-tone-muted{color:var(--ink-muted)}.ob-card{background:var(--surface-raised);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:var(--space-4);min-width:0}@media(min-width:900px){.ob-card{padding:var(--space-6)}.ob-kpi.ob-card{padding:var(--space-4) var(--space-6)}}.ob-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-4);margin-bottom:var(--space-4);flex-wrap:wrap}.ob-card-title{margin:0;font-size:18px;line-height:26px;font-weight:700}.ob-kpi{display:flex;flex-direction:column;gap:var(--space-1)}.ob-kpi-label{font-family:var(--font-numeric);font-size:14px;line-height:20px;font-weight:500;color:var(--ink-muted)}.ob-delta{font-size:14px;line-height:20px;font-weight:500}.ob-delta-good{color:var(--green)}.ob-delta-bad{color:var(--red)}.ob-delta-neutral{color:var(--ink-muted)}.ob-delta-label{color:var(--ink-muted);font-weight:400}.ob-switch{display:inline-flex;gap:2px;padding:3px;background:var(--surface-sunken);border:1px solid var(--line);border-radius:var(--radius-pill);max-width:100%;overflow-x:auto}.ob-switch-seg{font-family:var(--font-numeric);font-size:14px;line-height:20px;font-weight:500;padding:6px 14px;min-height:32px;border:0;border-radius:var(--radius-pill);background:transparent;color:var(--ink-muted);cursor:pointer;white-space:nowrap}.ob-switch-sm .ob-switch-seg{font-size:13px;padding:4px 10px;min-height:28px}.ob-switch-seg:hover{color:var(--ink)}.ob-switch-seg.is-on{background:var(--blue);color:var(--on-blue)}.ob-budgets{display:flex;flex-direction:column;gap:var(--space-4)}.ob-budget{display:flex;flex-direction:column;gap:6px;width:100%;text-align:left;background:none;border:0;padding:0}.ob-budget.is-clickable{cursor:pointer;border-radius:var(--radius-sm)}.ob-budget-head,.ob-budget-foot{display:flex;justify-content:space-between;align-items:baseline;gap:var(--space-2)}.ob-budget-name{font-family:var(--font-serif);font-size:16px;line-height:24px;font-weight:700}.ob-budget-figs{font-size:14px;color:var(--ink-muted);text-align:right}.ob-budget-figs strong{color:var(--ink);font-weight:500}.ob-budget-track{height:8px;background:var(--surface-sunken);border-radius:var(--radius-pill);overflow:hidden}.ob-budget-fill{height:100%;border-radius:var(--radius-pill);background:var(--blue)}.ob-budget-warn .ob-budget-fill{background:var(--amber)}.ob-budget-over .ob-budget-fill{background:var(--red)}.ob-budget-status{font-family:var(--font-numeric);font-size:13px;line-height:18px;font-weight:500;color:var(--ink-muted)}.ob-budget-warn .ob-budget-status{color:var(--amber)}.ob-budget-over .ob-budget-status{color:var(--red)}.ob-budget-pct{font-size:13px;color:var(--ink-muted)}.ob-badge{display:inline-block;font-family:var(--font-numeric);font-size:12px;line-height:18px;font-weight:500;padding:0 var(--space-2);border-radius:var(--radius-sm);background:var(--surface-sunken);color:var(--ink-muted);white-space:nowrap}.ob-badge-blue{background:var(--blue-soft);color:var(--blue)}.ob-badge-good{background:var(--green-soft);color:var(--green)}.ob-badge-bad{background:var(--red-soft);color:var(--red)}.ob-badge-warn{background:var(--amber-soft);color:var(--amber)}.ob-chip{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-numeric);font-size:13px;font-weight:500;padding:4px 12px;border-radius:var(--radius-pill);border:1px solid var(--blue);background:var(--blue-soft);color:var(--blue);cursor:pointer}.ob-cats{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.ob-cat{display:grid;grid-template-columns:1fr auto;grid-template-areas:"name figs" "track track" "delta delta";gap:4px var(--space-3);width:100%;text-align:left;padding:var(--space-2);border:1px solid transparent;border-radius:var(--radius-sm);background:none;cursor:pointer}.ob-cat:hover{background:var(--surface-sunken)}.ob-cat.is-on{border-color:var(--blue);background:var(--blue-soft)}.ob-cat-name{grid-area:name;display:flex;align-items:center;gap:var(--space-2);font-size:16px}.ob-cat-swatch{width:10px;height:10px;border-radius:3px;flex:none}.ob-cat-figs{grid-area:figs;display:flex;gap:var(--space-2);align-items:baseline;font-size:16px}.ob-cat-figs strong{font-weight:500}.ob-cat-share{font-size:13px;color:var(--ink-muted);min-width:3ch;text-align:right}.ob-cat-track{grid-area:track;height:10px;border-radius:var(--radius-pill);background:var(--surface-sunken);overflow:hidden}.ob-cat-fill{display:block;height:100%;border-radius:var(--radius-pill)}.ob-cat-delta{grid-area:delta}.ob-cat-delta .ob-delta{font-size:13px}.ob-insights{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-3)}.ob-insight{display:grid;grid-template-columns:24px 1fr;gap:var(--space-2)}.ob-insight-mark{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font-family:var(--font-numeric);font-size:14px;background:var(--surface-sunken);color:var(--ink-muted)}.ob-insight-good .ob-insight-mark{background:var(--green-soft);color:var(--green)}.ob-insight-bad .ob-insight-mark{background:var(--red-soft);color:var(--red)}.ob-txlist-tools{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3);margin-bottom:var(--space-2)}.ob-search input{width:min(340px,100%);min-height:38px;padding:0 var(--space-3);border:1px solid var(--line-strong);border-radius:var(--radius-md);background:var(--surface);font-family:var(--font-numeric);font-size:14px}.ob-search{flex:1 1 240px}.ob-txgroup-head{margin:var(--space-4) 0 0;padding-bottom:4px;font-family:var(--font-numeric);font-size:13px;line-height:18px;font-weight:500;color:var(--ink-muted);border-bottom:1px solid var(--line)}.ob-tx{display:flex;justify-content:space-between;gap:var(--space-4);padding:var(--space-3) 0;border-bottom:1px solid var(--line)}.ob-txgroup .ob-tx:last-child{border-bottom:0}.ob-tx-main{min-width:0}.ob-tx-desc{font-size:16px;line-height:24px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ob-tx-meta{font-size:13px;line-height:18px;color:var(--ink-muted);display:flex;flex-wrap:wrap;column-gap:var(--space-2)}.ob-tx-meta-part{white-space:nowrap}.ob-tx-meta-part+.ob-tx-meta-part:before{content:"·";margin-right:var(--space-2)}.ob-tx-side{display:flex;flex-direction:column;align-items:flex-end;gap:2px;flex:none}.ob-tx-orig{font-size:12px;color:var(--ink-muted)}.ob-tx-tags{display:flex;gap:var(--space-1);flex-wrap:wrap;justify-content:flex-end}.ob-txlist>.ob-btn{margin-top:var(--space-4)}.ob-issues ul{list-style:none;margin:var(--space-2) 0;padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.ob-issue{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:baseline;font-size:14px;line-height:20px}.ob-issue-where{font-size:13px;color:var(--ink-muted)}.ob-emptystate{display:flex;flex-direction:column;gap:var(--space-3)}.ob-emptystate p{margin:0}.ob-code{margin:0;padding:var(--space-3);background:var(--surface-sunken);border-radius:var(--radius-sm);font-size:14px;overflow-x:auto}.ob-chart{position:relative;width:100%}.ob-chart svg{display:block;overflow:visible}.ob-gridline{stroke:var(--line);stroke-width:1}.ob-baseline{stroke:var(--line-strong);stroke-width:1}.ob-axis{font-family:var(--font-numeric);font-size:12px;fill:var(--ink-muted)}.ob-axis.is-selected{fill:var(--ink);font-weight:700}.ob-bar{fill:var(--blue);transition:opacity .12s}.ob-bar.is-over{fill:var(--red)}.ob-bar.is-partial{opacity:.7}.ob-bar-marker{fill:var(--ink)}.ob-chart svg:hover .ob-bar:not(.is-hover){opacity:.5}.ob-chart-hit{cursor:pointer}.ob-chart-hit:focus{outline:none}.ob-chart-hit:focus-visible .ob-bar{stroke:var(--focus-ring);stroke-width:2px}.ob-budget-line{stroke:var(--ink-muted);stroke-width:1.5;stroke-dasharray:4 4}.ob-tip{position:absolute;pointer-events:none;width:160px;padding:var(--space-2) var(--space-3);background:var(--surface-raised);border:1px solid var(--line);border-radius:var(--radius-sm);box-shadow:var(--shadow-card);z-index:2}.ob-tip-label{font-family:var(--font-numeric);font-size:12px;color:var(--ink-muted)}.ob-tip-val{font-size:16px;font-weight:500;color:var(--ink)}.ob-tip-sub{font-family:var(--font-numeric);font-size:12px;color:var(--ink-muted)}@media(prefers-reduced-motion:reduce){.ob-bar{transition:none}}body.ob-noscroll{overflow:hidden}.ob-btn-primary{background:var(--blue);border-color:var(--blue);color:var(--on-blue)}.ob-btn-primary:hover{filter:brightness(1.08)}.ob-btn:disabled{opacity:.5;cursor:default}label.ob-btn,a.ob-btn{display:inline-flex;align-items:center;text-decoration:none}.ob-input{font-family:var(--font-numeric);font-size:14px;min-height:36px;padding:0 var(--space-2);border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink);width:100%;min-width:0}.ob-input.is-num{text-align:right}.ob-error{margin:var(--space-2) 0;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);background:var(--red-soft);color:var(--red);font-family:var(--font-numeric);font-size:14px}.ob-error-text{color:var(--red)}.ob-spacer{flex:1}.ob-subhead{margin:var(--space-4) 0 var(--space-2);font-size:15px;line-height:22px}.ob-chip-quiet{border-color:var(--line-strong);background:var(--surface-raised);color:var(--ink)}.ob-chip-quiet:hover{border-color:var(--blue)}.ob-ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:100%}.ob-req{color:var(--red)}.ob-tabrow{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:var(--space-2);border-bottom:1px solid var(--line)}.ob-tabs{display:flex;gap:2px;overflow-x:auto;max-width:100%}.ob-tab{font-family:var(--font-numeric);font-size:14px;line-height:20px;font-weight:500;padding:10px 14px;border:0;border-bottom:3px solid transparent;background:none;color:var(--ink-muted);cursor:pointer;white-space:nowrap;display:inline-flex;align-items:center;gap:6px}.ob-tab:hover{color:var(--ink)}.ob-tab.is-on{color:var(--ink);border-bottom-color:var(--blue)}.ob-tab-badge{font-size:12px;line-height:18px;padding:0 6px;border-radius:var(--radius-pill);background:var(--surface-sunken);color:var(--ink-muted)}.ob-tab.is-on .ob-tab-badge{background:var(--blue-soft);color:var(--blue)}.ob-tabrow-actions{display:flex;flex-wrap:wrap;gap:var(--space-1);padding-bottom:4px}.ob-panel{display:flex;flex-direction:column;gap:var(--space-6)}.ob-settings-body{margin-top:var(--space-4)}.ob-rangebar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.ob-field-inline{display:inline-flex;align-items:center;gap:var(--space-2);font-family:var(--font-numeric);font-size:14px;color:var(--ink-muted)}.ob-field-inline .ob-input{width:auto}.ob-filters{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.ob-ms{position:relative}.ob-ms-btn{font-family:var(--font-numeric);font-size:13px;line-height:18px;min-height:32px;padding:4px 12px;border-radius:var(--radius-pill);border:1px solid var(--line-strong);background:var(--surface-raised);color:var(--ink);cursor:pointer;white-space:nowrap;max-width:260px;overflow:hidden;text-overflow:ellipsis}.ob-ms-label{color:var(--ink-muted)}.ob-ms.is-active .ob-ms-btn{border-color:var(--blue);background:var(--blue-soft);color:var(--blue)}.ob-ms.is-active .ob-ms-label{color:var(--blue)}.ob-ms-pop{position:absolute;z-index:20;top:calc(100% + 4px);left:0;width:260px;max-width:calc(100vw - 32px);padding:var(--space-2);background:var(--surface-raised);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow-card);display:flex;flex-direction:column;gap:var(--space-2)}.ob-ms-list{max-height:280px;overflow-y:auto;display:flex;flex-direction:column}.ob-ms-opt{display:grid;grid-template-columns:auto 1fr auto;gap:var(--space-2);align-items:center;padding:4px 6px;border-radius:var(--radius-sm);font-family:var(--font-numeric);font-size:14px;cursor:pointer}.ob-ms-opt:hover{background:var(--surface-sunken)}.ob-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#0a0e1573;display:flex;align-items:flex-start;justify-content:center;padding:var(--space-6) var(--space-4);overflow-y:auto}.ob-modal{width:min(720px,100%);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:0 12px 40px #00000040;outline:none}.ob-modal.is-wide{width:min(1120px,100%)}.ob-modal-head{position:sticky;top:calc(-1 * var(--space-6));z-index:2;display:flex;justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-6);background:var(--surface);border-bottom:1px solid var(--line);border-radius:var(--radius-lg) var(--radius-lg) 0 0}.ob-modal-actions{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap;justify-content:flex-end}.ob-modal-body{padding:var(--space-4) var(--space-6) var(--space-6);display:flex;flex-direction:column;gap:var(--space-4)}@media(max-width:600px){.ob-modal-backdrop{padding:0}.ob-modal{border-radius:0;min-height:100%}.ob-modal-head,.ob-modal-body{padding-left:var(--space-4);padding-right:var(--space-4)}.ob-modal-head{top:0;border-radius:0}}@media(min-width:980px){.ob-grid.ob-grid-even{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}.ob-facts{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.ob-facts li{display:flex;justify-content:space-between;gap:var(--space-3);padding:var(--space-2) 0;border-bottom:1px solid var(--line);font-size:15px}.ob-facts li:last-child{border-bottom:0}.ob-facts strong{font-weight:500;text-align:right}.ob-table-wrap{width:100%;overflow-x:auto}.ob-table{width:100%;border-collapse:collapse;font-family:var(--font-numeric);font-size:14px;line-height:20px}.ob-table th,.ob-table td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--line);vertical-align:middle}.ob-table thead th{font-size:13px;font-weight:500;color:var(--ink-muted);white-space:nowrap}.ob-table thead th button{all:unset;cursor:pointer}.ob-table thead th button:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.ob-table tbody th{font-weight:500}.ob-table .is-num{text-align:right;white-space:nowrap}.ob-table tr.is-clickable{cursor:pointer}.ob-table tr.is-clickable:hover,.ob-table tr.is-clickable:focus-visible{background:var(--surface-sunken);outline:none}.ob-table td{position:relative}.ob-cellbar{position:absolute;right:0;top:6px;bottom:6px;background:var(--blue-soft);border-radius:3px}.ob-cell{position:relative}.ob-table-more{margin-top:var(--space-2)}.ob-compare td,.ob-compare th{padding:8px 6px}.ob-compare-d{display:block}.ob-matrix td,.ob-matrix th{padding:6px 8px}.ob-matrix-cell{min-width:56px}.ob-edit-table td{padding:4px 6px}.ob-edit-table .ob-input{min-width:90px}.ob-legend{list-style:none;margin:0 0 var(--space-2);padding:0;display:flex;flex-wrap:wrap;gap:var(--space-4);font-family:var(--font-numeric);font-size:13px;color:var(--ink-muted)}.ob-legend li{display:inline-flex;align-items:center;gap:6px}.ob-legend-key{width:12px;height:12px;border-radius:3px;border:0 solid}.ob-legend-key.is-line{height:0;border-top-width:2px;border-radius:0}.ob-legend-key.is-dashed{height:0;border-top-width:2px;border-top-style:dashed;border-radius:0}.ob-share{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.ob-share-row{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"name figs" "track track" "sub sub";gap:4px var(--space-3);width:100%;text-align:left;padding:6px var(--space-2);border:0;border-radius:var(--radius-sm);background:none;color:inherit;font:inherit}.ob-share-row.is-clickable{cursor:pointer}.ob-share-row.is-clickable:hover{background:var(--surface-sunken)}.ob-share-name{grid-area:name;font-size:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ob-share-figs{grid-area:figs;font-size:14px}.ob-share-figs strong{font-weight:500}.ob-share-track{grid-area:track;height:6px;border-radius:var(--radius-pill);background:var(--surface-sunken);overflow:hidden}.ob-share-track span{display:block;height:100%;border-radius:var(--radius-pill)}.ob-share-sub{grid-area:sub}.ob-budget-track{position:relative;overflow:visible}.ob-budget-fill{max-width:100%}.ob-budget-pace{position:absolute;top:-3px;bottom:-3px;width:2px;margin-left:-1px;background:var(--ink);opacity:.55;border-radius:1px}.ob-budgets-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--space-4) var(--space-6)}.ob-unbudgeted{margin-top:var(--space-4)}.ob-goal{display:flex;flex-direction:column;gap:6px}.ob-goal-track .ob-budget-fill{background:var(--green)}.ob-goal-actions{display:flex;gap:var(--space-3)}.ob-cat-track{position:relative;overflow:visible}.ob-cat-avg{position:absolute;top:-2px;bottom:-2px;width:2px;margin-left:-1px;background:var(--ink);opacity:.6}.ob-form{display:flex;flex-direction:column;gap:var(--space-4)}.ob-form-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:var(--space-3) var(--space-4);align-items:end}.ob-field{display:flex;flex-direction:column;gap:4px;font-family:var(--font-numeric);font-size:13px;color:var(--ink-muted)}.ob-field-wide{grid-column:1 / -1}.ob-field-end{justify-content:flex-end}.ob-field-short{max-width:240px}.ob-fieldset{border:1px solid var(--line);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4) var(--space-4);margin:0;display:flex;flex-direction:column;gap:var(--space-3);min-width:0}.ob-fieldset legend{font-weight:700;padding:0 var(--space-1)}.ob-radio-row{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-6);font-size:15px}.ob-radio-row label,.ob-check{display:inline-flex;gap:var(--space-2);align-items:center;cursor:pointer}.ob-editor{display:flex;flex-direction:column;gap:var(--space-3);margin-top:var(--space-2)}.ob-editor-actions{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:center}.ob-filelist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.ob-filelist li{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-3);padding:var(--space-2) 0;border-bottom:1px solid var(--line)}.ob-filelist-name{font-weight:700}.ob-line{fill:none;stroke-width:2;stroke-linejoin:round;stroke-linecap:round}.ob-area{opacity:.12}.ob-dot{stroke:var(--surface-raised);stroke-width:2}.ob-crosshair{stroke:var(--line-strong);stroke-width:1}.ob-chart svg.is-clickable,.ob-chart-hit.is-clickable{cursor:pointer}.ob-chart svg:focus{outline:none}.ob-chart svg:focus-visible{outline:2px solid var(--focus-ring);outline-offset:4px}.ob-tip{width:180px}.ob-tip-row{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:6px;font-family:var(--font-numeric);font-size:13px}.ob-tip-row .ob-tip-val{font-size:14px}.ob-tip-name{color:var(--ink-muted)}.ob-tip-key{width:8px;height:8px;border-radius:2px}.ob-tm{transition:opacity .12s}.ob-tm.is-dim{opacity:.45}.ob-tm-label,.ob-tm-sub{font-family:var(--font-numeric);fill:var(--ink);paint-order:stroke;stroke:var(--surface-raised);stroke-width:3px;stroke-linejoin:round;pointer-events:none}.ob-tm-label{font-size:13px;font-weight:500}.ob-tm-sub{font-size:12px}.ob-heat{display:flex;flex-direction:column;gap:var(--space-2)}.ob-heat-scroll{overflow-x:auto}.ob-heat-month{display:grid;grid-template-columns:repeat(7,minmax(30px,1fr));gap:3px}.ob-heat-head{text-align:center}.ob-heat-cell{border:0;border-radius:4px;min-height:34px;padding:2px 4px;display:flex;align-items:flex-start;justify-content:flex-end;font-size:11px;color:var(--ink-muted);cursor:pointer}.ob-heat-cell.is-dark{color:var(--on-blue)}.ob-heat-cell.is-empty{background:none;cursor:default}.ob-heat-cell.is-compact{min-height:0;width:13px;height:13px;padding:0;border-radius:3px}.ob-heat-cell:hover,.ob-heat-cell:focus-visible{outline:2px solid var(--ink);outline-offset:0}.ob-heat-weeks{display:flex;gap:3px}.ob-heat-col{display:flex;flex-direction:column;gap:3px}.ob-heat-mlabel{height:16px;font-size:11px;line-height:16px;white-space:nowrap;width:13px;overflow:visible}.ob-heat-dayname{height:13px;font-size:10px;line-height:13px;width:26px}.ob-heat-readout{min-height:18px}.ob-heatlegend{display:flex;align-items:center;gap:3px}.ob-heatlegend-cell{width:13px;height:13px;border-radius:3px}.ob-wh{display:grid;grid-template-columns:34px repeat(24,minmax(14px,1fr));gap:2px;min-width:460px}.ob-wh-row{display:contents}.ob-wh-hour{text-align:left;font-size:10px}.ob-wh-day{font-size:12px;line-height:18px}.ob-wh-cell{height:18px;border-radius:3px}.ob-tx.is-excluded .ob-tx-desc{color:var(--ink-muted)}.ob-txlist-export{display:inline-flex;gap:var(--space-3);margin-left:auto}.ob-dropzone{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:grid;place-items:center;background:color-mix(in srgb,var(--blue) 18%,transparent);pointer-events:none}.ob-dropzone div{padding:var(--space-6) var(--space-8);border:2px dashed var(--blue);border-radius:var(--radius-lg);background:var(--surface-raised);font-family:var(--font-numeric);font-size:18px;font-weight:500;color:var(--blue)}.ob-toast{position:fixed;z-index:90;left:50%;bottom:var(--space-6);transform:translate(-50%);max-width:calc(100vw - 32px);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--ink);color:var(--surface);font-family:var(--font-numeric);font-size:14px;box-shadow:var(--shadow-card)}.ob-toast.is-bad{background:var(--red);color:#fff}.ob-print-frame{position:fixed;width:0;height:0;border:0;visibility:hidden}@media(prefers-reduced-motion:reduce){.ob-tm{transition:none}}@media print{body{background:#fff}.ob-top-controls,.ob-toolbar .ob-icon-btn,.ob-toolbar .ob-switch,.ob-filters,.ob-tabrow-actions,.ob-rangebar,.ob-btn,.ob-search{display:none!important}.ob-card{box-shadow:none;break-inside:avoid}}.ob-card-head>*{min-width:0;max-width:100%}.ob-card-actions{display:flex;flex-wrap:wrap;gap:var(--space-2)}.ob-themepicker{position:relative}.ob-theme-seg{display:inline-flex;align-items:center;gap:6px}.ob-theme-dot{width:12px;height:12px;border-radius:50%;background:linear-gradient(135deg,var(--surface) 0 50%,var(--blue) 50% 100%);box-shadow:0 0 0 1.5px currentColor}.ob-theme-pop{position:absolute;z-index:30;top:calc(100% + 6px);right:0;width:min(420px,calc(100vw - 32px));padding:var(--space-3);background:var(--surface-raised);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:0 8px 28px #00000038;display:flex;flex-direction:column;gap:var(--space-2)}.ob-theme-pop.is-left{right:auto;left:0}.ob-theme-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-2)}@media(max-width:480px){.ob-theme-grid{grid-template-columns:repeat(2,1fr)}}.ob-theme-swatch{display:flex;flex-direction:column;gap:4px;padding:6px;border:2px solid var(--line);border-radius:var(--radius-md);background:var(--surface);color:var(--ink);cursor:pointer;text-align:left;font-family:var(--font-numeric)}.ob-theme-swatch:hover{border-color:var(--blue)}.ob-theme-swatch.is-on{border-color:var(--blue);box-shadow:0 0 0 2px var(--blue-soft)}.ob-theme-preview{position:relative;display:block;height:46px;border-radius:6px;background:var(--surface)}.ob-theme-card{position:absolute;top:4px;right:18px;bottom:4px;left:4px;display:flex;flex-direction:column;justify-content:center;gap:4px;padding:5px;background:var(--surface-raised);border:1px solid var(--line);border-radius:5px}.ob-theme-bar{display:block;height:5px;border-radius:3px}.ob-theme-pill{position:absolute;right:4px;top:6px;width:10px;height:32px;border-radius:5px;background:var(--blue)}.ob-theme-name{font-size:13px;font-weight:500;line-height:16px}.ob-theme-mode{font-size:11px;line-height:14px;color:var(--ink-muted)}.ob-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;white-space:nowrap;text-decoration:none}.ob-btn-sm{min-height:28px;padding:0 var(--space-3);font-size:13px;line-height:18px;border-radius:var(--radius-sm)}.ob-btn-inline{vertical-align:baseline;margin-left:4px;min-height:24px;padding:0 var(--space-2)}.ob-btn-danger{color:var(--red);border-color:color-mix(in srgb,var(--red) 45%,var(--line))}.ob-btn-danger:hover{background:var(--red-soft);border-color:var(--red)}.ob-btn-quiet:hover{border-color:var(--blue)}.ob-status .ob-btn-sm{min-height:24px}.ob-issues>.ob-btn,.ob-card>.ob-btn-sm,.ob-table-more{margin-top:var(--space-2)}.ob-combo{position:relative;min-width:140px}.ob-combo-input{padding-right:28px}.ob-combo-toggle{position:absolute;right:2px;top:50%;transform:translateY(-50%);width:24px;height:28px;border:0;background:none;color:var(--ink-muted);cursor:pointer;font-size:12px}.ob-combo-toggle:hover{color:var(--ink)}.ob-combo-list{position:fixed;z-index:60;margin:0;padding:4px;list-style:none;overflow-y:auto;background:var(--surface-raised);border:1px solid var(--line);border-radius:var(--radius-sm);box-shadow:0 8px 24px #00000038;font-family:var(--font-numeric);font-size:14px}.ob-combo-opt{padding:6px 10px;border-radius:6px;cursor:pointer;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ob-combo-opt.is-active{background:var(--surface-sunken)}.ob-combo-opt.is-selected{color:var(--blue);font-weight:500}.ob-combo-opt.is-selected:before{content:"✓ "}.ob-combo-empty{padding:6px 10px;color:var(--ink-muted)}.ob-fieldset>.ob-btn,.ob-form>.ob-btn,.ob-editor>.ob-btn{align-self:flex-start}.ob-plan{display:flex;flex-direction:column;gap:var(--space-6)}.ob-plan-banner{display:grid;grid-template-columns:auto 1fr auto;gap:var(--space-3);align-items:start;padding:var(--space-3) var(--space-4) var(--space-3) calc(var(--space-4) + 12px);border:2px dashed var(--blue);border-radius:var(--radius-lg);background:repeating-linear-gradient(135deg,var(--blue) 0 5px,var(--blue-soft) 5px 10px) left / 12px 100% no-repeat,var(--surface-raised);font-size:15px}@media(max-width:640px){.ob-plan-banner{grid-template-columns:1fr}}.ob-plan-tag{display:inline-block;font-family:var(--font-numeric);font-size:12px;line-height:18px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:2px 10px;border-radius:var(--radius-pill);border:1.5px dashed var(--blue);color:var(--blue);background:var(--surface-raised);white-space:nowrap}.ob-plan-tag-sm{font-size:11px;line-height:16px;padding:1px 8px}.ob-plan-save{align-self:center;white-space:nowrap}.ob-plan-card{border:1.5px dashed color-mix(in srgb,var(--blue) 55%,var(--line))}.ob-plan-controls{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:var(--space-3) var(--space-4);align-items:end;margin-bottom:var(--space-3)}.ob-field>.ob-btn{align-self:flex-start}.ob-pct{display:flex;align-items:center;gap:4px}.ob-pct .ob-input{width:72px}.ob-pct-sign{font-family:var(--font-numeric);font-size:13px;color:var(--ink-muted);white-space:nowrap}.ob-adjust{display:inline-flex;align-items:center;gap:var(--space-2);flex-wrap:nowrap}.ob-adjust .ob-input{width:110px}.ob-adjust-field{display:inline-flex;align-items:center;gap:4px}.ob-adjust-field .ob-input{width:72px}.ob-plan-table tfoot th,.ob-plan-table tfoot td{border-bottom:0;border-top:2px solid var(--line);font-weight:700}.ob-plan-savings th{color:var(--blue)}.ob-plan-card>.ob-btn-sm{margin-top:var(--space-3)}.ob-gap{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(220px,1fr);gap:var(--space-6);align-items:start}@media(max-width:760px){.ob-gap{grid-template-columns:1fr}}.ob-gap-main{display:flex;flex-direction:column;gap:var(--space-2);align-items:flex-start}.ob-gap-title{font-family:var(--font-numeric);font-size:22px;line-height:30px;font-weight:700}.ob-gap.is-balanced{border-color:var(--green)}.ob-gap.is-balanced .ob-gap-title{color:var(--green)}.ob-gap.is-unassigned .ob-gap-title{color:var(--blue)}.ob-gap.is-over{border-color:var(--red);background:linear-gradient(var(--red-soft),var(--red-soft)) top / 100% 6px no-repeat,var(--surface-raised)}.ob-gap.is-over .ob-gap-title{color:var(--red)}.ob-gap-figures{margin:0;display:flex;flex-direction:column;gap:4px;font-size:15px}.ob-gap-figures div{display:flex;justify-content:space-between;gap:var(--space-3);padding:4px 0}.ob-gap-figures dt{color:var(--ink-muted)}.ob-gap-figures dd{margin:0;font-weight:500}.ob-gap-total{border-top:2px solid var(--line);padding-top:8px!important;font-weight:700}.ob-gap.is-over .ob-gap-total dd{color:var(--red)}.ob-dist{display:flex;flex-direction:column;gap:var(--space-3)}.ob-dist-bar{position:relative;display:flex;gap:2px;height:28px;border-radius:6px;background:var(--surface-sunken)}.ob-dist-seg{display:block;height:100%;min-width:2px}.ob-dist-seg:first-child{border-radius:6px 0 0 6px}.ob-dist-seg:last-child{border-radius:0 6px 6px 0}.ob-dist-seg.is-free,.ob-legend-key.is-free{background:transparent!important;outline:2px dashed var(--line-strong);outline-offset:-2px}.ob-dist-seg.is-savings,.ob-legend-key.is-savings{background:repeating-linear-gradient(45deg,var(--blue) 0 4px,color-mix(in srgb,var(--blue) 60%,var(--surface-raised)) 4px 8px)!important}.ob-dist-over,.ob-legend-key.is-over{background:repeating-linear-gradient(45deg,var(--red) 0 4px,transparent 4px 8px)}.ob-dist-over{position:absolute;top:-4px;bottom:-4px;border:2px solid var(--red);border-radius:0 6px 6px 0;pointer-events:none;opacity:.85}.ob-dist-income{position:absolute;top:-8px;bottom:-8px;width:0;border-left:2px solid var(--ink)}.ob-dist-income span{position:absolute;top:100%;right:4px;margin-top:2px;white-space:nowrap}.ob-dist-legend{list-style:none;margin:var(--space-2) 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:6px var(--space-4);font-size:14px}.ob-dist-legend li{display:grid;grid-template-columns:auto 1fr auto;gap:var(--space-2);align-items:center}.ob-dist-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ob-dist-overrow{color:var(--red)}.ob-inline-name{font:inherit;font-weight:500;color:var(--ink);background:transparent;border:1px solid transparent;border-radius:6px;padding:2px 6px;margin-left:-6px;min-width:6ch;max-width:100%}.ob-inline-name:hover{border-color:var(--line)}.ob-inline-name:focus{border-color:var(--blue);background:var(--surface);outline:none}.ob-inline-name.is-empty::placeholder{color:var(--ink-muted);font-style:italic}.ob-plan-extra th .ob-badge,.ob-plan-table th .ob-badge{display:inline-block;margin-top:2px}.ob-switch-seg.is-disabled{opacity:.45;cursor:default}.ob-plan-dockbar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.ob-window{position:fixed;z-index:40;display:flex;flex-direction:column;background:var(--surface);border:2px dashed var(--blue);border-radius:var(--radius-lg);box-shadow:0 16px 48px #00000059;overflow:hidden}.ob-window.is-side{top:0;right:0;bottom:0;border-radius:0;border-width:0 0 0 2px;box-shadow:-8px 0 32px #0000002e}.ob-window.is-min{height:auto}.ob-window-head{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--line);background:repeating-linear-gradient(135deg,var(--blue-soft) 0 8px,var(--surface-raised) 8px 16px);flex:none}.ob-window-head.is-draggable{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}.ob-window-head.is-draggable:active{cursor:grabbing}.ob-window-head:focus-visible{outline:2px solid var(--focus-ring);outline-offset:-2px}.ob-window-grip{color:var(--ink-muted);font-size:16px;line-height:1}.ob-window-title{flex:1;min-width:0;display:flex;align-items:center;gap:var(--space-2);white-space:nowrap;overflow:hidden}.ob-window-actions{display:flex;flex-wrap:wrap;gap:4px;justify-content:flex-end}.ob-window-body{flex:1;overflow:auto;padding:var(--space-4);container-type:inline-size}.ob-window-resize{position:absolute;right:0;bottom:0;width:18px;height:18px;cursor:nwse-resize;touch-action:none;background:linear-gradient(135deg,transparent 50%,var(--line-strong) 50% 58%,transparent 58% 70%,var(--line-strong) 70% 78%,transparent 78%)}.ob-window-splitter{position:absolute;left:0;top:0;bottom:0;width:8px;cursor:ew-resize;touch-action:none;z-index:1}.ob-window-splitter:hover,.ob-window-splitter:focus-visible{background:color-mix(in srgb,var(--blue) 30%,transparent);outline:none}body.ob-has-side{padding-right:var(--ob-side-w, 560px)}body.ob-has-side .ob-page{max-width:100%}body.ob-has-side .ob-grid:not(.ob-grid-even){grid-template-columns:1fr}@media(min-width:1500px){body.ob-has-side .ob-grid:not(.ob-grid-even){grid-template-columns:minmax(0,1.75fr) minmax(300px,1fr)}}.ob-plan.is-window{gap:var(--space-4)}.ob-plan.is-window .ob-plan-banner{grid-template-columns:auto 1fr auto;font-size:14px}@container (max-width: 640px){.ob-plan .ob-gap,.ob-plan .ob-plan-banner{grid-template-columns:1fr}.ob-plan .ob-gap-title{font-size:18px;line-height:26px}}.ob-cal{display:flex;flex-direction:column;gap:var(--space-3);container-type:inline-size}.ob-cal-months{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--space-4)}.ob-cal-month{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);padding:var(--space-3);display:flex;flex-direction:column;gap:var(--space-2)}.ob-cal-head{display:flex;flex-direction:column;gap:2px;padding-bottom:var(--space-2);border-bottom:1px solid var(--line)}.ob-cal-title{margin:0;font-size:17px;line-height:24px;font-weight:700}.ob-cal-year{font-family:var(--font-numeric);font-weight:400;color:var(--ink-muted);font-size:14px}.ob-cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.ob-cal-wd{font-family:var(--font-numeric);font-size:11px;line-height:16px;font-weight:500;text-transform:uppercase;letter-spacing:.04em;text-align:center;color:var(--ink-muted);padding-bottom:2px}.ob-cal-wd.is-weekend{color:var(--blue)}.ob-cal-day{position:relative;display:flex;flex-direction:column;justify-content:space-between;align-items:flex-start;min-height:54px;padding:4px 5px 6px;border:1px solid var(--line);border-radius:8px;background:var(--surface-raised);color:var(--ink);font-family:var(--font-numeric);text-align:left;cursor:pointer;overflow:hidden;transition:transform .12s,box-shadow .12s,border-color .12s}button.ob-cal-day:hover,button.ob-cal-day:focus-visible{transform:translateY(-1px);border-color:var(--blue);box-shadow:0 4px 12px #00000026;outline:none;z-index:1}.ob-cal-day.is-weekend:not([style*=gradient]){background:color-mix(in srgb,var(--blue) 4%,var(--surface-raised))}.ob-cal-num{font-size:12px;line-height:16px;font-weight:500;color:var(--ink-muted)}.ob-cal-amt{font-size:12px;line-height:16px;font-weight:700;color:var(--ink);white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}.ob-cal-day.is-dark .ob-cal-num,.ob-cal-day.is-dark .ob-cal-amt{color:var(--on-blue)}.ob-cal-bar{position:absolute;left:5px;bottom:3px;height:3px;border-radius:2px;background:var(--blue);opacity:.85}.ob-cal-day.is-dark .ob-cal-bar{background:var(--on-blue);opacity:.7}.ob-cal-mark{position:absolute;top:4px;right:5px;font-size:10px;line-height:14px;font-weight:700}.ob-cal-mark.is-income,.ob-cal-mark.is-nospend{color:var(--green)}.ob-cal-day.is-dark .ob-cal-mark.is-income{color:var(--on-blue)}.ob-cal-day.is-nospend{border-style:dashed;border-color:color-mix(in srgb,var(--green) 45%,var(--line));background:color-mix(in srgb,var(--green) 6%,var(--surface-raised))}.ob-cal-day.is-today{box-shadow:0 0 0 2px var(--blue);border-color:var(--blue)}.ob-cal-day.is-today .ob-cal-num{display:inline-grid;place-items:center;min-width:20px;height:18px;padding:0 4px;border-radius:9px;background:var(--blue);color:var(--on-blue)}.ob-cal-day.is-outside{cursor:default;background:transparent;border-color:transparent}.ob-cal-day.is-outside .ob-cal-num{opacity:.45}.ob-cal-day.is-future{border:1px dashed var(--line);background:repeating-linear-gradient(135deg,transparent 0 6px,color-mix(in srgb,var(--line) 45%,transparent) 6px 7px)}.ob-cal-blank{min-height:54px}@container (max-width: 420px){.ob-cal-day{min-height:42px;padding:3px}.ob-cal-amt{display:none}.ob-cal-blank{min-height:42px}}.ob-cal-legend{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-4)}.ob-cal-legend>span{display:inline-flex;align-items:center;gap:4px}.ob-cal-legend-scale{gap:3px!important}.ob-cal-swatch{width:14px;height:14px;border-radius:4px;border:1px solid var(--line);display:inline-block}.ob-cal-swatch.is-today{box-shadow:0 0 0 2px var(--blue);border-color:var(--blue);background:var(--surface-raised)}.ob-cal-legend .ob-cal-mark{position:static;font-size:11px}@media(prefers-reduced-motion:reduce){.ob-cal-day{transition:none}}.ob-heat-cell.is-compact{border-radius:4px}.ob-heat-cell.is-compact.is-nospend{background:transparent;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--green) 45%,var(--line))}.ob-heat-cell.is-compact.is-today{box-shadow:0 0 0 2px var(--blue)}.ob-heat-col.is-month-start{margin-left:4px}.ob-date{display:inline-flex;align-items:center;justify-content:space-between;gap:var(--space-2);min-height:36px;min-width:150px;padding:0 var(--space-3);border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink);font-family:var(--font-numeric);font-size:14px;cursor:pointer}.ob-date:hover{border-color:var(--blue)}.ob-date[aria-expanded=true]{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-soft)}.ob-date.is-empty .ob-date-value{color:var(--ink-muted)}.ob-date-icon{color:var(--blue);flex:none}.ob-field>.ob-date{width:100%}.ob-datepop{position:fixed;z-index:70;width:300px;padding:var(--space-3);display:flex;flex-direction:column;gap:var(--space-2);background:var(--surface-raised);border:1px solid var(--line);border-top:3px solid var(--blue);border-radius:var(--radius-md);box-shadow:0 12px 32px #00000047;font-family:var(--font-numeric)}.ob-datepop-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.ob-datepop-title{border:0;background:none;color:var(--ink);font-family:var(--font-serif);font-size:17px;font-weight:700;padding:4px 6px;margin-left:-6px;border-radius:6px;cursor:pointer}.ob-datepop-title span{font-size:11px;color:var(--ink-muted)}.ob-datepop-title:hover{background:var(--surface-sunken)}.ob-datepop-nav{display:inline-flex;gap:4px}.ob-icon-btn-sm{width:30px;height:30px;font-size:18px}.ob-datepop-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px 0}.ob-datepop-wd{text-align:center;font-size:11px;line-height:22px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-muted)}.ob-datepop-wd.is-weekend{color:var(--blue)}.ob-datepop-day{position:relative;height:34px;border:0;background:none;color:var(--ink);font:inherit;font-size:14px;cursor:pointer;border-radius:8px}.ob-datepop-day:hover:not(.is-disabled):not(.is-selected){background:var(--surface-sunken)}.ob-datepop-day:focus-visible{outline:2px solid var(--focus-ring);outline-offset:-2px}.ob-datepop-day.is-out{color:var(--ink-muted);opacity:.6}.ob-datepop-day.is-disabled{color:var(--ink-muted);opacity:.35;cursor:not-allowed;text-decoration:line-through}.ob-datepop-day.is-range{background:var(--blue-soft);border-radius:0}.ob-datepop-day.is-range-start{border-radius:8px 0 0 8px}.ob-datepop-day.is-range-end{border-radius:0 8px 8px 0}.ob-datepop-day.is-range-start.is-range-end{border-radius:8px}.ob-datepop-day.is-today{font-weight:700;color:var(--blue)}.ob-datepop-day.is-today:after{content:"";position:absolute;left:50%;bottom:4px;width:4px;height:4px;margin-left:-2px;border-radius:50%;background:var(--blue)}.ob-datepop-day.is-selected{background:var(--blue);color:var(--on-blue);font-weight:700;border-radius:8px;opacity:1}.ob-datepop-day.is-selected:after{background:var(--on-blue)}.ob-datepop-months{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;padding:4px 0}.ob-datepop-month{height:44px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);font:inherit;font-size:14px;cursor:pointer}.ob-datepop-month:hover{border-color:var(--blue)}.ob-datepop-month.is-selected{background:var(--blue-soft);border-color:var(--blue);color:var(--blue);font-weight:700}.ob-datepop-month.is-on{box-shadow:inset 0 0 0 2px var(--blue)}.ob-datepop-foot{display:flex;justify-content:space-between;align-items:center;padding-top:var(--space-2);border-top:1px solid var(--line)}body{padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}.ob-live.is-device{background:var(--blue)}@media(pointer:coarse){.ob-btn-sm{min-height:40px;padding:0 var(--space-3)}.ob-btn-inline{min-height:32px}.ob-switch-seg{min-height:40px}.ob-switch-sm .ob-switch-seg{min-height:36px}.ob-ms-btn{min-height:40px}.ob-tab{padding:12px 14px}.ob-icon-btn{width:40px;height:40px}.ob-input,.ob-date{min-height:42px;font-size:16px}.ob-datepop-day{height:40px}}@media(max-width:600px){.ob-page{padding-left:var(--space-3);padding-right:var(--space-3)}.ob-title{font-size:26px;line-height:32px}.ob-top{margin-bottom:var(--space-4)}.ob-tabrow{position:sticky;top:0;z-index:15;background:var(--surface);margin:0 calc(-1 * var(--space-3));padding:0 var(--space-3)}.ob-tabrow-actions{width:100%;padding-bottom:var(--space-2)}.ob-kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-2)}.ob-kpi.ob-card{padding:var(--space-3)}.ob-amount-lg{font-size:19px;line-height:26px}.ob-amount-hero{font-size:34px;line-height:42px}.ob-card{padding:var(--space-3);border-radius:var(--radius-md)}.ob-main,.ob-panel,.ob-col,.ob-plan{gap:var(--space-4)}.ob-period-name{font-size:18px;line-height:26px}.ob-toast{bottom:calc(var(--space-4) + env(safe-area-inset-bottom))}}.ob-filters-toggle{display:none}.ob-filters-toggle.is-active{border-color:var(--blue);background:var(--blue-soft);color:var(--blue)}@media(max-width:600px){.ob-filters-toggle{display:inline-flex}.ob-filters:not(.is-open)>:not(.ob-filters-toggle){display:none}}.ob-theme-pop>.ob-btn{align-self:flex-start}.ob-theme-editor{position:fixed;z-index:45;top:12px;right:12px;bottom:12px;width:min(400px,calc(100vw - 24px));display:flex;flex-direction:column;background:var(--surface-raised);color:var(--ink);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:0 12px 40px #00000047;outline:none}.ob-theme-editor-head,.ob-theme-editor-foot{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);padding:var(--space-3) var(--space-4)}.ob-theme-editor-head{border-bottom:1px solid var(--line)}.ob-theme-editor-foot{border-top:1px solid var(--line);justify-content:flex-end}.ob-theme-editor-body{flex:1;overflow-y:auto;padding:var(--space-3) var(--space-4);display:flex;flex-direction:column;gap:var(--space-4)}.ob-theme-editor-section{display:flex;flex-direction:column;gap:var(--space-2)}.ob-theme-editor-title{margin:0;font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-muted)}.ob-theme-starts{display:flex;flex-wrap:wrap;gap:6px}.ob-theme-start{display:inline-flex;align-items:center;gap:6px;padding:4px 10px 4px 6px;border:1px solid var(--line-strong);border-radius:var(--radius-pill);background:var(--surface);color:var(--ink);font:13px/18px var(--font-numeric);cursor:pointer}.ob-theme-start:hover{border-color:var(--blue)}.ob-theme-start .ob-theme-dot{box-shadow:0 0 0 1.5px var(--line-strong)}.ob-colour-label{display:flex;flex-direction:column;min-width:0;font-size:14px;line-height:18px}.ob-colour-label .ob-caption{font-size:12px;line-height:15px}.ob-colour-hex{font-family:ui-monospace,Consolas,monospace;font-size:13px;text-transform:lowercase}.ob-theme-check{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);flex-wrap:wrap;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);font-size:14px}.ob-theme-check.is-good{background:var(--green-soft);color:var(--green)}.ob-theme-check.is-bad{background:var(--red-soft);color:var(--red)}.ob-theme-all{display:flex;flex-direction:column;gap:var(--space-4)}.ob-theme-all>summary{list-style:none;align-self:flex-start;display:inline-flex;margin-bottom:var(--space-3)}.ob-theme-all>summary::-webkit-details-marker{display:none}.ob-theme-all>summary:after{content:" ▾";white-space:pre}.ob-theme-all[open]>summary:after{content:" ▴"}.ob-theme-all>section+section{margin-top:var(--space-4)}@media(max-width:600px){.ob-theme-editor{top:auto;left:0;right:0;bottom:0;width:auto;height:62vh;border-radius:var(--radius-lg) var(--radius-lg) 0 0;padding-bottom:env(safe-area-inset-bottom)}}.ob-colour-field{border:1px solid transparent;border-radius:var(--radius-md)}.ob-colour-field.is-open{border-color:var(--line);background:var(--surface)}.ob-colour-row{width:100%;display:grid;grid-template-columns:36px 1fr auto auto;align-items:center;gap:var(--space-2);padding:4px;border:0;border-radius:var(--radius-md);background:none;color:var(--ink);font:inherit;text-align:left;cursor:pointer}.ob-colour-row:hover{background:var(--surface-sunken)}.ob-colour-swatch{width:36px;height:36px;border-radius:var(--radius-sm);border:1px solid var(--line-strong)}.ob-colour-ratio{font:12px/16px var(--font-numeric);padding:2px 8px;border-radius:var(--radius-pill);background:var(--green-soft);color:var(--green);white-space:nowrap}.ob-colour-ratio.is-low{background:var(--red-soft);color:var(--red);font-weight:600}.ob-colour-chevron{color:var(--ink-muted);font-size:12px;width:14px;text-align:center}.ob-palette{display:flex;flex-direction:column;gap:6px;padding:4px var(--space-2) var(--space-3)}.ob-palette-title{font-size:12px;line-height:16px;color:var(--ink-muted);margin-top:4px}.ob-palette-row{display:flex;flex-wrap:wrap;gap:6px}.ob-palette-row .ob-palette-chip{width:28px}.ob-palette-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:3px}.ob-palette-chip{aspect-ratio:1;min-width:0;height:auto;padding:0;border:1px solid rgba(127,127,127,.35);border-radius:5px;cursor:pointer}.ob-palette-chip:hover{transform:scale(1.15);position:relative;z-index:1}.ob-palette-chip.is-on{outline:2px solid var(--ink);outline-offset:1px;position:relative;z-index:1}.ob-palette-chip:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.ob-palette-area{position:relative;height:130px;border-radius:var(--radius-sm);cursor:crosshair;touch-action:none;background-image:linear-gradient(to top,#000,transparent),linear-gradient(to right,#fff,transparent)!important;background-blend-mode:normal}.ob-palette-area:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.ob-palette-knob{position:absolute;width:18px;height:18px;margin:-9px 0 0 -9px;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1px #00000080,0 1px 4px #0006;pointer-events:none}.ob-palette-hue{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:16px;margin:4px 0;border-radius:var(--radius-pill);background:linear-gradient(to right,red,#ff0 17%,#0f0 33%,#0ff,#00f 67%,#f0f 83%,red);cursor:pointer}.ob-palette-hue::-webkit-slider-thumb{-webkit-appearance:none;width:20px;height:20px;border-radius:50%;background:#fff;border:2px solid #fff;box-shadow:0 0 0 1px #00000080,0 1px 4px #0006}.ob-palette-hue::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:#fff;border:2px solid #fff;box-shadow:0 0 0 1px #00000080}.ob-palette-hue:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.ob-palette-foot{display:flex;align-items:flex-end;gap:var(--space-2);margin-top:4px}.ob-palette-now{width:36px;height:36px;flex:none;border-radius:var(--radius-sm);border:1px solid var(--line-strong)}.ob-palette-code{display:flex;flex-direction:column;gap:2px;flex:1;max-width:160px}@media print{.ob-theme-editor{display:none}}.ob-assign{display:grid;gap:var(--space-6);grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:stretch;margin-bottom:var(--space-6)}@media(max-width:720px){.ob-assign{grid-template-columns:1fr;gap:var(--space-4)}}.ob-assign-card{display:flex;flex-direction:column;height:520px}@media(max-width:720px){.ob-assign-card{height:min(520px,68vh)}}.ob-assign-card .ob-card-head{margin-bottom:var(--space-3)}.ob-assign-scroll{flex:1;min-height:0;overflow-y:auto;margin:0 calc(-1 * var(--space-2));padding:2px var(--space-2)}.ob-assign-search{margin-bottom:var(--space-2)}.ob-assign-list,.ob-assign-review{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.ob-assign-tx{width:100%;display:grid;grid-template-columns:22px minmax(0,1fr) auto;align-items:center;gap:var(--space-2);padding:8px 10px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink);font:inherit;text-align:left;cursor:grab}.ob-assign-tx:hover{border-color:var(--line-strong)}.ob-assign-tx:active{cursor:grabbing}.ob-assign-tx.is-selected{border-color:var(--blue);background:var(--blue-soft)}.ob-assign-check{width:18px;height:18px;border:1.5px solid var(--line-strong);border-radius:5px;display:grid;place-items:center;font-size:12px;line-height:1;color:var(--on-blue)}.ob-assign-tx.is-selected .ob-assign-check{background:var(--blue);border-color:var(--blue)}.ob-assign-text{display:flex;flex-direction:column;min-width:0}.ob-assign-desc{font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ob-assign-amount{white-space:nowrap;font-size:14px}.ob-assign-amount.is-income{color:var(--green)}.ob-assign-more{margin-top:var(--space-2)}.ob-assign-done{color:var(--green)}.ob-assign-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:var(--space-2)}.ob-assign-tile{position:relative;min-height:76px;border:1.5px solid var(--line);border-left:5px solid var(--tile, var(--grey));border-radius:var(--radius-md);background:var(--surface);transition:transform .12s,border-color .12s,background .12s}.ob-assign-tile.is-target{border-style:dashed;border-left-style:solid}.ob-assign-tile.is-over{border-color:var(--blue);background:var(--blue-soft);transform:scale(1.04)}.ob-assign-tile-btn{width:100%;height:100%;min-height:73px;display:flex;flex-direction:column;justify-content:center;gap:2px;padding:14px 10px 8px;border:0;background:none;color:var(--ink);font:inherit;text-align:left;cursor:pointer;border-radius:var(--radius-md)}.ob-assign-tile-btn:hover{background:var(--surface-sunken)}.ob-assign-tile-name{font-weight:600;font-size:14px;line-height:18px;overflow-wrap:break-word}.ob-assign-tile-x{position:absolute;top:2px;right:2px;width:22px;height:22px;padding:0;border:0;border-radius:50%;background:none;color:var(--ink-muted);font-size:16px;line-height:1;cursor:pointer}.ob-assign-tile-x:hover{background:var(--red-soft);color:var(--red)}@media(hover:hover){.ob-assign-tile-x{opacity:0}.ob-assign-tile:hover .ob-assign-tile-x,.ob-assign-tile-x:focus-visible{opacity:1}}.ob-assign-tile.is-new{display:flex;flex-direction:column;justify-content:center;gap:6px;padding:8px;border-style:dashed;border-left-width:1.5px}.ob-assign-tile.is-new .ob-input{min-height:30px;font-size:13px}.ob-assign-last{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);margin:var(--space-3) 0 0;padding:6px 10px;border-radius:var(--radius-sm);background:var(--green-soft);color:var(--green);font-size:14px}.ob-assign-review-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto auto;align-items:center;gap:var(--space-3);padding:8px 10px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);cursor:grab}.ob-assign-review-actions{display:flex;gap:4px}@media(max-width:600px){.ob-assign-review-row{grid-template-columns:minmax(0,1fr) auto}.ob-assign-review-actions{grid-column:1 / -1;justify-content:flex-end}}.ob-drag-ghost{position:fixed;top:-100px;left:0;padding:6px 12px;border-radius:var(--radius-pill);background:var(--blue);color:var(--on-blue);font:600 13px/18px var(--font-numeric)}@media print{.ob-assign,.ob-assign-review{display:none}}
