:root{--bg:#f7f7f5;--panel:#fff;--ink:#1c2733;--muted:#5f6873;--line:#e3e4e0;--control-line:#868880;--accent:#0e5a8a;--accent-soft:#e8f1f7;--revenue:#1a6b4a;--expense:#8a3d0e;--grant:#0d7c6b;--calendar-past:#f0f1ee;--other:#4a5568;--danger:#b3372f;--radius:6px;--mono:ui-monospace, "Cascadia Mono", "SF Mono", Menlo, Consolas, monospace;font-family:Segoe UI,system-ui,-apple-system,sans-serif}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);margin:0;font-size:14px}#root{flex-direction:column;min-height:100vh;display:flex}.topbar{background:var(--accent);color:#fff;align-items:center;gap:24px;height:48px;padding:0 20px;display:flex}.topbar .brand{letter-spacing:.02em;font-weight:600}.topbar .company-brand{white-space:nowrap;align-items:center;gap:8px;display:flex}.topbar .company-brand img{object-fit:contain;background:#fff;border-radius:4px;max-width:90px;height:32px;padding:2px 4px}.topbar nav{gap:4px;display:flex}.topbar nav a{color:#d5e5f0;border-radius:var(--radius);padding:6px 12px;text-decoration:none}.topbar nav a.active{color:#fff;background:#ffffff2e}.topbar nav a:hover{color:#fff}.topbar .who{color:#bcd3e2;margin-left:auto;font-size:12px}.global-search{flex:0 320px;width:min(320px,25vw);margin-left:auto;position:relative}.global-search-field{align-items:center;display:flex;position:relative}.global-search-field input[type=search]{color:#fff;background:#ffffff1f;border-color:#ffffff8c;width:100%;height:32px;padding:5px 42px 5px 29px}.global-search-field input::-webkit-search-cancel-button{display:none}.global-search-field input::placeholder{color:#d5e5f0}.global-search-field input[type=search]:focus{color:var(--ink);background:#fff}.global-search-field:focus-within input::placeholder{color:var(--muted)}.global-search-icon{z-index:1;color:#d5e5f0;font-size:17px;position:absolute;left:9px}.global-search-field:focus-within .global-search-icon{color:var(--muted)}.global-search-field kbd{color:#d5e5f0;border:1px solid #fff6;border-radius:4px;padding:1px 5px;font-family:inherit;font-size:11px;line-height:16px;position:absolute;right:7px}.global-search-field:focus-within kbd{border-color:var(--line);color:var(--muted)}.global-search-popover{z-index:45;background:var(--panel);width:min(520px,100vw - 24px);max-height:min(70vh,620px);color:var(--ink);border:1px solid var(--line);border-radius:var(--radius);position:absolute;top:calc(100% + 7px);left:0;overflow-y:auto;box-shadow:0 12px 32px #121c263d}.global-search-state{color:var(--muted);text-align:center;padding:18px}.global-search-group+.global-search-group{border-top:1px solid var(--line)}.global-search-heading{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;background:#eef0ee;justify-content:space-between;padding:7px 10px;font-size:11px;font-weight:700;display:flex}button.global-search-result{background:var(--panel);text-align:left;border:0;border-radius:0;grid-template-columns:minmax(0,1fr) auto;gap:2px 12px;width:100%;padding:8px 10px;display:grid}button.global-search-result:hover,button.global-search-result.active{background:var(--accent-soft);color:var(--ink)}.global-search-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:600;overflow:hidden}.global-search-detail{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--muted);font-size:12px;overflow:hidden}.global-search-context{text-overflow:ellipsis;max-width:160px;color:var(--muted);white-space:nowrap;grid-area:1/2/span 2;align-self:center;font-size:11px;overflow:hidden}.global-search-badge{color:#704b25;background:#ece5dc;border-radius:8px;margin-left:6px;padding:1px 5px;font-size:10px;font-weight:600}.global-search-backdrop{z-index:70;background:#121c2673;justify-content:center;align-items:flex-start;padding:14vh 12px 12px;display:flex;position:fixed;inset:0}.global-search-palette{width:min(600px,100%);color:var(--ink);background:var(--panel);border-radius:var(--radius);overflow:hidden;box-shadow:0 16px 48px #121c2652}.global-search-palette .global-search-field input[type=search]{height:48px;color:var(--ink);background:#fff;border:0;border-radius:0;outline:none;padding:8px 14px 8px 38px;font-size:16px}.global-search-palette .global-search-field input::placeholder{color:var(--muted)}.global-search-palette .global-search-icon{color:var(--muted);font-size:20px;left:13px}.global-search-palette .global-search-popover{border:0;border-top:1px solid var(--line);width:auto;max-height:min(60vh,560px);box-shadow:none;border-radius:0;position:static}button.global-search-more{width:100%;color:var(--accent);text-align:left;border:0;border-radius:0;padding:7px 10px}@media (width<=1400px){.topbar{gap:10px;padding-inline:12px}.topbar nav a{padding-inline:7px}.global-search{flex-basis:220px;width:220px}.topbar .who{display:none}}@media (width<=1050px){.topbar .brand{display:none}.global-search{flex-basis:180px;width:180px}.global-search-field kbd{display:none}.global-search-field input[type=search]{padding-right:8px}.global-search-popover{left:auto;right:0}}.page{width:100%;max-width:1600px;margin:0 auto;padding:20px}.page h1{margin:0 0 16px;font-size:20px}.page h2{margin:24px 0 8px;font-size:16px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);margin-bottom:16px;padding:16px}.toolbar{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:16px;display:flex}.toolbar label{color:var(--muted);font-size:13px}.seg{flex-wrap:wrap;align-items:center;gap:4px;display:inline-flex}.seg>.seg-label{color:var(--muted);font-size:13px}.seg button{font-variant-numeric:tabular-nums}.seg button.active{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.seg button.active:hover{color:#fff;filter:brightness(1.1)}.muted{color:var(--muted)}.error{color:var(--danger)}select,input[type=text],input[type=number],input[type=password],input[type=email],input[type=search]{border:1px solid var(--control-line);border-radius:var(--radius);font:inherit;color:var(--ink);background:#fff;padding:5px 8px}select:focus,input:focus{outline:2px solid var(--accent);border-color:var(--accent)}button{border:1px solid var(--control-line);border-radius:var(--radius);color:var(--ink);font:inherit;cursor:pointer;background:#fff;padding:6px 12px}button:hover{border-color:var(--accent);color:var(--accent)}button.primary{background:var(--accent);border-color:var(--accent);color:#fff}button.primary:hover{filter:brightness(1.1);color:#fff}button.danger{color:var(--danger)}button:disabled{opacity:.5;cursor:default}button.small{padding:2px 8px;font-size:12px}table.data{border-collapse:collapse;background:var(--panel);font-variant-numeric:tabular-nums;width:100%}table.data th,table.data td{border:1px solid var(--line);text-align:left;padding:4px 8px}table.data th{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);white-space:nowrap;z-index:2;background:#eef0ee;font-size:11px;font-weight:600;position:sticky;top:0}table.data td.num,table.data th.num{text-align:right}table.data tr.subtotal td{background:#f3f4f1;font-weight:600}table.data tr.grand td{background:var(--accent-soft);font-weight:700}table.data tr.group-head td{padding-top:10px;font-weight:700}table.data tr.group-total td{font-weight:700}.import-status{overflow-x:auto}.import-status th,.import-status td{white-space:nowrap}.import-status td.imported{color:var(--muted)}.import-status td.missing,.panel .missing{color:var(--danger);font-weight:600}table.data tr.section td{text-transform:uppercase;letter-spacing:.04em;background:#e9edf0;font-size:12px;font-weight:700}table.data tr.section td.rev{color:var(--revenue)}table.data tr.section td.exp{color:var(--expense)}table.data tr.section td.oth{color:var(--other)}table.data tr.section.subsection td{text-transform:none;letter-spacing:0;background:#f1f4f6;padding-left:18px;font-size:13px;font-weight:600}table.data.variance tr.section.subsection td{color:var(--ink);border-top:2px solid var(--line);background:#e6ebef;padding:7px 8px 7px 16px;font-size:15px;font-weight:700}.view-switch{border:2px solid var(--accent);border-radius:8px;display:inline-flex;overflow:hidden;box-shadow:0 1px 3px #00000026}.view-switch button{color:var(--accent);cursor:pointer;background:#fff;border:none;border-radius:0;padding:8px 18px;font-size:15px;font-weight:700}.view-switch button+button{border-left:2px solid var(--accent)}.view-switch button.active{background:var(--accent);color:#fff}table.data.variance tr.section.subsection td button.cat-toggle{width:100%;font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:0;align-items:baseline;gap:6px;padding:0;display:flex}table.data.variance tr.section.subsection td button.cat-toggle:hover{color:var(--accent)}table.data.variance tr.section.subsection td button.cat-toggle .caret{color:var(--accent);font-size:11px}table.data.variance tr.section.subsection td button.cat-toggle .muted{font-size:12px;font-weight:400}table.data.variance tr.section.subsection.folded td{font-weight:400}table.data.variance tr.section.subsection.folded td.num{padding-left:8px;font-size:14px}.scroll-x{overflow-x:auto}.ws input.cell{text-align:right;border:1px solid var(--control-line);font-variant-numeric:tabular-nums;background:#fff;border-radius:3px;width:78px;padding:3px 4px}.ws input.cell:hover{border-color:var(--accent)}.ws input.cell:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft);background:#fff}.ws input.cell.computed{color:var(--muted);background:#f3f4f1;border-color:#0000}.ws input.cell.computed:hover{border-color:var(--control-line)}.ws input.cell.annual{width:90px;font-weight:600}.ws td.acct{vertical-align:middle}.ws .acct-line{align-items:baseline;gap:6px;display:flex}.ws .acct-name{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.ws .acct-line .items-link{flex:none}.ws .code{color:var(--muted);margin-right:6px;font-size:12px}.code{font-family:var(--mono);font-size:12px}.ws td.cmp{color:var(--muted);background:#fafaf8}.ws td.cmp.delta{color:var(--text);font-variant-numeric:tabular-nums}.ws .delta-basis{color:var(--muted);white-space:nowrap;font-size:10px;line-height:1.1;display:block}.ws .rev{color:var(--revenue)}.ws .exp{color:var(--expense)}.ws .oth{color:var(--other)}.page.wide{max-width:none}.ws td,.ws th{padding:2px 4px}.ws input.cell{width:58px;padding:2px;font-size:12px}.ws input.cell.annual{width:72px}.ws td.num,.ws td.cmp,.ws th.num{font-size:12px}.ws th.acctcol,.ws td.acct{width:var(--acct-w,220px);min-width:var(--acct-w,220px);max-width:var(--acct-w,220px);z-index:2;box-shadow:1px 0 0 var(--line);background:#fff;position:sticky;left:0}.ws thead th.acctcol{z-index:4;background:#eef0ee;padding-right:10px}.ws th.modecol,.ws td.modecol{width:var(--mode-w,210px);min-width:var(--mode-w,210px);max-width:var(--mode-w,210px);white-space:nowrap;overflow:hidden}.ws th.modecol{padding-right:10px;position:relative}.ws th.acctcol .col-resizer,.ws th.modecol .col-resizer{cursor:col-resize;-webkit-user-select:none;user-select:none;width:7px;height:100%;position:absolute;top:0;right:0}.ws th.acctcol .col-resizer:hover,.ws th.modecol .col-resizer:hover{background:var(--accent);opacity:.4}.mode-btn{border:1px solid var(--control-line);cursor:pointer;color:var(--muted);background:#fff;border-radius:3px;padding:1px 6px;font-size:11px}.mode-btn.auto{background:var(--accent-soft);color:var(--accent);border-color:var(--accent)}.items-link{color:var(--accent);white-space:nowrap;font-size:12px;text-decoration:none}.note-btn{cursor:pointer;color:var(--control-line);background:0 0;border:none;padding:0 2px;font-size:12px}.note-btn:hover,.note-btn.has-note{color:var(--accent)}.notes-row td{background:var(--accent-soft);padding:4px 10px;font-size:12px}.notes-row input{border:1px solid var(--control-line);border-radius:4px;width:min(480px,60%);padding:3px 8px;font-size:12px}.save-state{color:var(--muted);white-space:nowrap;margin-left:4px;font-size:11px}.save-state.saving{color:var(--accent)}.save-state.error{color:var(--danger)}.chip{background:#fff8e1;border:1px solid #e5d28a;border-radius:12px;align-items:center;gap:8px;padding:2px 10px;font-size:12px;display:inline-flex}.chip button{color:var(--accent);border:none;padding:0;text-decoration:underline}.mode-note{color:var(--muted);white-space:nowrap;cursor:help;font-size:11px;display:inline-block}.grid-hint{color:var(--muted);margin:0 0 8px;font-size:12px}.grid-hint kbd{font:inherit;border:1px solid var(--line);background:#fff;border-bottom-width:2px;border-radius:3px;padding:0 4px}.grid-note{border-radius:var(--radius);border:1px solid var(--line);background:var(--panel);align-items:center;gap:8px;margin:0 0 8px;padding:6px 10px;font-size:13px;display:flex}.grid-note.ok{background:#eef7f1;border-color:#bcd9c8}.grid-note.warn{background:#fff8e1;border-color:#e5d28a}.grid-note.error{color:var(--danger);background:#fdefee;border-color:#e0b0ac}.grid-note button{margin-left:auto}.grid-tools{align-items:center;gap:8px;margin:0 0 8px;font-size:12px;display:flex}.ws .cat-toggle{font:inherit;font-weight:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:none;padding:0}.ws .cat-toggle:hover{color:var(--accent)}.ws .cat-caret{width:12px;color:var(--muted);display:inline-block}.ws tr.section.subsection td.num{padding-left:4px}.bulk-bar{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);flex-wrap:wrap;align-items:center;gap:6px 8px;margin:0 0 8px;padding:6px 10px;font-size:12px;display:flex}.bulk-bar .bb-scope{margin-right:4px}.bulk-bar select,.bulk-bar input{padding:2px 6px;font-size:12px}.bulk-bar .bb-pct{text-align:right;width:56px}.bulk-bar .bb-unit{color:var(--muted);margin-left:-4px}.bulk-bar .bb-sep{background:var(--line);align-self:stretch;width:1px;margin:0 4px}.bulk-bar .bb-progress{font-variant-numeric:tabular-nums;margin-left:auto}.bulk-confirm{margin:0 0 8px}.review-checks{margin-bottom:8px;padding:0;overflow:hidden}.review-checks .rc-head{text-align:left;width:100%;color:var(--ink);background:0 0;border:none;border-radius:0;align-items:center;gap:8px;padding:8px 12px;font-size:13px;display:flex}.review-checks .rc-head:hover{background:#fafaf8}.review-checks .rc-mark{font-size:14px}.review-checks.flagged{border-color:#e5d28a}.review-checks.flagged .rc-mark{color:#8a6d1f}.review-checks.clear .rc-mark{color:var(--revenue)}.review-checks .rc-caret{color:var(--muted);margin-left:auto}.review-checks .rc-body{border-top:1px solid var(--line);padding:8px 12px 4px;font-size:13px}.review-checks .rc-group{margin-bottom:8px}.review-checks .rc-group-head{text-transform:uppercase;letter-spacing:.03em;color:var(--muted);margin-bottom:2px;font-size:12px;font-weight:600}.review-checks .rc-flag{padding:1px 0 1px 8px}.review-checks .rc-target{color:var(--accent);background:0 0;border:none;padding:0;font-weight:600;text-decoration:underline}.review-checks .rc-detail{color:var(--ink)}.review-checks .rc-foot{margin:8px 0 4px;font-size:12px}.steps{gap:8px;margin-bottom:16px;display:flex}.steps .step{background:var(--accent-soft);color:var(--muted);border-radius:12px;padding:4px 12px;font-size:12px}.steps .step.active{background:var(--accent);color:#fff}.steps .step.done{background:var(--accent-soft);color:var(--accent)}.dropzone{border:2px dashed var(--control-line);border-radius:var(--radius);text-align:center;color:var(--muted);cursor:pointer;padding:40px}.dropzone:hover,.dropzone.drag-over{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.raw-preview td,.raw-preview th{text-overflow:ellipsis;white-space:nowrap;max-width:160px;font-size:12px;overflow:hidden}tr.header-candidate{cursor:pointer}tr.header-candidate:hover td{background:var(--accent-soft)}tr.header-chosen td{background:var(--accent-soft);font-weight:600}.tiles{flex-wrap:wrap;gap:16px;margin-bottom:16px;display:flex}.tile{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);min-width:180px;padding:12px 20px}.tile .label{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:12px}.tile .value{font-variant-numeric:tabular-nums;margin-top:4px;font-size:22px;font-weight:700}.tile .value.rev{color:var(--revenue)}.tile .value.exp{color:var(--expense)}.tile .value.oth{color:var(--other)}.tile .tile-sub{color:var(--muted);font-variant-numeric:tabular-nums;margin-top:2px;font-size:12px}:root{--viz-grid:#e1e0d9;--viz-axis:#c3c2b7;--viz-budget:#0e5a8a;--viz-actual:#eb6834;--viz-fav:#1f66c0;--viz-unfav:#b3372f}.charts{grid-template-columns:repeat(auto-fit,minmax(min(440px,100%),1fr));align-items:start;gap:16px;display:grid}.charts .panel{margin-bottom:0}.chart-title{margin:0 0 8px;font-size:13px;font-weight:600}.chart-plot{position:relative}.chart-svg{width:100%;height:auto;display:block;overflow:visible}.chart-svg:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.chart-legend{flex-wrap:wrap;align-items:center;gap:14px;margin-bottom:8px;font-size:12px;display:flex}.chart-legend .key{align-items:center;gap:6px;display:inline-flex}.chart .grid-line{stroke:var(--viz-grid);stroke-width:1px}.chart .axis-line,.chart .crosshair{stroke:var(--viz-axis);stroke-width:1px}.chart .tick{fill:var(--muted);font-size:11px}.chart .end-label{fill:var(--ink);font-size:11px;font-weight:600}.chart .end-label.inside{fill:var(--panel)}.chart .cat-label{fill:var(--ink);font-size:12px}.chart .num{font-variant-numeric:tabular-nums}.chart .line{fill:none;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.chart .line.budget{stroke:var(--viz-budget)}.chart .line.actual{stroke:var(--viz-actual)}.chart .mark.budget{fill:var(--viz-budget)}.chart .mark.actual{fill:var(--viz-actual)}.chart .line.variance{stroke:var(--viz-budget)}.chart .mark.variance{fill:var(--viz-budget)}.chart .mark.fav{fill:var(--viz-fav)}.chart .mark.unfav{fill:var(--viz-unfav)}.chart .zone-unfav{fill:var(--viz-unfav);fill-opacity:.07}.chart .mark.ringed{stroke:var(--panel);stroke-width:2px}.chart .budget-tick{paint-order:stroke}.chart .mark.plan{fill:var(--ink)}.chart .band.active{fill:var(--accent-soft)}.chart .hit{fill:#0000}.chart .bar-row.active .hit{fill:var(--accent-soft)}.chart-tip{pointer-events:none;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);white-space:nowrap;z-index:3;padding:6px 10px;font-size:12px;position:absolute;top:2px;box-shadow:0 2px 8px #1c27331f}.chart-tip .tip-head{color:var(--muted);margin-bottom:4px;font-size:11px}.chart-tip .tip-row{align-items:center;gap:6px;display:flex}.chart-tip .tip-val{font-variant-numeric:tabular-nums;font-weight:600}.chart-tip .swatch{border-radius:2px;width:14px;height:3px;display:inline-block}.chart-tip .swatch.budget{background:var(--viz-budget)}.chart-tip .swatch.actual{background:var(--viz-actual)}.chart-tip .swatch.fav{background:var(--viz-fav)}.chart-tip .swatch.unfav{background:var(--viz-unfav)}.chart-tip .swatch.plan{background:var(--ink)}.chart-tip .swatch.none{background:var(--viz-axis)}.chart-tip .tip-verdict{margin-top:4px;font-weight:600}.chart-tip .tip-verdict.fav{color:var(--viz-fav)}.chart-tip .tip-verdict.unfav{color:var(--viz-unfav)}.chart-table{margin-top:10px;font-size:12px}.chart-table summary{cursor:pointer;color:var(--accent)}.chart-table table.data{margin-top:6px}.chart-table table.data th{position:static}.charts.stale{opacity:.55;transition:opacity .12s linear}.tabs{border-bottom:2px solid var(--line);gap:2px;margin-bottom:16px;display:flex}.tabs button{color:var(--muted);background:0 0;border:none;border-radius:0;padding:8px 16px}.tabs button.active{color:var(--accent);border-bottom:2px solid var(--accent);margin-bottom:-2px;font-weight:600}.page.settings{max-width:1820px}.settings-layout{align-items:flex-start;gap:24px;display:flex}.settings-nav{flex-direction:column;flex:0 0 200px;gap:1px;display:flex;position:sticky;top:20px}.settings-nav h3{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:16px 0 4px;padding:0 10px;font-size:11px}.settings-nav h3:first-child{margin-top:0}.settings-nav a{color:var(--ink);border-radius:var(--radius);border-left:2px solid #0000;padding:6px 10px;text-decoration:none}.settings-nav a:hover{background:var(--accent-soft)}.settings-nav a.active{background:var(--accent-soft);color:var(--accent);border-left-color:var(--accent);font-weight:600}.settings-content{flex:1;min-width:0}.settings-content>h2{margin-top:0}@media (width<=900px){.settings-layout{display:block}.settings-nav{margin-bottom:16px;position:static}}.view-tabs{margin-bottom:12px}.view-tabs button:disabled{color:var(--muted);border-bottom-color:#0000}table.data th.group{text-align:center;border-bottom:1px solid var(--line);font-weight:600}form.inline{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.actuals .num.nodata,.actuals th.num.nodata{color:var(--muted);background:repeating-linear-gradient(45deg,#f6f6f4,#f6f6f4 4px,#efefec 4px 8px)}.actuals tr.subtotal .num.nodata,.actuals tr.grand .num.nodata{background:0 0}.nodata{color:var(--muted)}.actuals .expand-btn{cursor:pointer;color:var(--accent);background:0 0;border:none;flex:none;padding:0 2px;font-size:11px}.actuals tr.subsection td button.cat-toggle{width:100%;font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:0;align-items:baseline;gap:6px;padding:0;display:flex}.actuals tr.subsection td button.cat-toggle:hover{color:var(--accent)}.actuals tr.subsection td button.cat-toggle .caret{color:var(--accent);font-size:11px}.actuals tr.subsection td button.cat-toggle .muted{font-size:12px;font-weight:400}.actuals tr.subsection.folded td.num{padding-left:8px}.actuals tr.subsection.folded .num.nodata{background:0 0}.actuals tr.subsection.folded td.catcol{width:var(--acct-w,220px);min-width:var(--acct-w,220px);max-width:var(--acct-w,220px)}.actuals tr.subsection.folded td button.cat-toggle .cat-label{white-space:nowrap;text-overflow:ellipsis;flex:0 auto;min-width:0;overflow:hidden}.actuals tr.subsection.folded td button.cat-toggle .muted{white-space:nowrap;flex:none}.actuals tr.vendor-row td{background:var(--accent-soft);font-size:12px}.actuals tr.vendor-row td.vendor-note{font-size:11px;font-style:italic}.actuals tr.vendor-row td.remark-head{padding-left:28px;font-style:italic}.actuals tr.vendor-row td.remark-label{text-overflow:ellipsis;white-space:nowrap;max-width:420px;overflow:hidden}.actuals tr.vendor-row .code,.actuals tr.vendor-row .remark-count-lead{margin-right:6px}.actuals tr.vendor-row .detail-fields{align-items:center;gap:6px;display:flex}.actuals tr.vendor-row .detail-fields .detail-desc{text-align:left;flex:1;min-width:80px}.actuals tr.vendor-row input.cell.detail-vendor{text-align:left;width:100%}.actuals tr.vendor-row td.num input.cell{text-align:right;width:90px}.actuals tr.vendor-row td.num button{margin-left:6px}.login-wrap{justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.login{flex-direction:column;gap:12px;width:320px;display:flex}.login-logo{align-self:center;width:auto;height:64px}.login h1{margin:0;font-size:20px}.login label{color:var(--muted);flex-direction:column;gap:4px;font-size:13px;display:flex}.login input{font-size:14px}.login button{margin-top:4px}.topbar .logout{color:#eaf2f8;background:0 0;border-color:#fff6;margin-left:12px}.topbar .logout:hover{color:#fff;border-color:#fff}.inline-confirm{border-radius:var(--radius);background:#fff8e1;border:1px solid #e5d28a;flex-wrap:wrap;align-items:center;gap:6px 12px;padding:6px 10px;font-size:12px;display:flex}.inline-confirm.strong{background:#fdefee;border-color:#e0b0ac}.inline-confirm .ic-text{flex-direction:column;gap:2px;min-width:0;display:flex}.inline-confirm .ic-question{font-weight:600}.inline-confirm.strong .ic-question{color:var(--danger)}.inline-confirm .ic-scope,.inline-confirm .ic-skips,.inline-confirm .ic-detail{color:var(--muted)}.inline-confirm .ic-actions{align-items:center;gap:8px;margin-left:auto;display:flex}.inline-confirm .ic-phrase{color:var(--muted);align-items:center;gap:6px;display:inline-flex}.inline-confirm .ic-phrase code{border:1px solid var(--line);background:#fff;border-radius:3px;padding:0 4px}.inline-confirm .ic-phrase input{width:130px;padding:2px 6px;font-size:12px}tr.confirm-row td{background:#fff8e1;padding:4px 10px}tr.confirm-row .inline-confirm{background:0 0;border:none;padding:0}.template-save{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.template-save input[type=text]{width:220px}.template-save .ts-note{max-width:520px;font-size:12px}.template-save .ts-note.warn{color:#8a6d1f}.control-totals{margin-top:8px;margin-bottom:8px;padding:8px 12px}.control-totals .ct-head{flex-wrap:wrap;align-items:baseline;gap:6px;font-size:13px;display:flex}.control-totals .ct-note{margin:6px 0 0;font-size:12px}.control-totals table.ct{border-collapse:collapse;width:100%;margin-top:8px;font-size:13px}.control-totals table.ct th,.control-totals table.ct td{text-align:left;white-space:nowrap;padding:3px 8px}.control-totals table.ct th{text-transform:uppercase;letter-spacing:.03em;color:var(--muted);font-size:11px;font-weight:600}.control-totals table.ct th.num,.control-totals table.ct td.num{text-align:right;font-variant-numeric:tabular-nums}.control-totals table.ct tbody tr+tr td{border-top:1px solid var(--line)}.control-totals table.ct tr.ct-sub td{border-top:none;padding-top:0;font-size:12px}.control-totals table.ct tr.ct-scope-row td{background:var(--accent-soft)}.control-totals table.ct tfoot tr.ct-derived td{border-top:1px solid var(--line);background:#fafaf8;font-weight:600}.control-totals table.ct tfoot tr.ct-derived.ct-sub td{border-top:none;font-weight:400}.control-totals .ct-input{text-align:right;width:110px;padding:2px 6px;font-size:12px}.control-totals .ct-actions{gap:6px;display:flex}.control-totals .ct-delta.within{color:var(--muted)}.control-totals .ct-delta.off{color:var(--ink);font-weight:600}.control-totals .ct-verdict{white-space:nowrap;font-size:12px}.control-totals .ct-verdict.verified{color:var(--revenue)}.control-totals .ct-verdict.off{color:#8a6d1f}.control-totals .ct-verdict.unverified{color:var(--muted)}.src-badge{border:1px solid var(--line);background:var(--accent-soft);color:var(--accent);white-space:nowrap;border-radius:10px;margin-left:6px;padding:1px 6px;font-size:11px;display:inline-block}.source-note{color:var(--accent);font-size:11px}.generated-row td{background:var(--accent-soft)}tr.search-target td{animation:2.4s ease-out search-target}@keyframes search-target{0%,35%{background:#fff3bf;box-shadow:inset 0 0 0 2px #d99400}to{box-shadow:inset 0 0 #0000}}@media (prefers-reduced-motion:reduce){tr.search-target td{animation:none;box-shadow:inset 0 0 0 2px #d99400}}.topbar .wn-link{color:#eaf2f8;background:0 0;border-color:#fff6;align-items:center;gap:6px;margin-left:0;display:inline-flex}.topbar .wn-link:hover{color:#fff;border-color:#fff}.topbar .who{margin-left:0}.wn-count{color:#4a3200;text-align:center;background:#ffd166;border-radius:9px;min-width:16px;padding:0 5px;font-size:11px;font-weight:600}.wn-overlay{z-index:50;background:#121c2673;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.wn-modal{background:var(--panel);color:var(--ink);border-radius:var(--radius);border:1px solid var(--line);flex-direction:column;width:600px;max-width:100%;max-height:85vh;display:flex;box-shadow:0 12px 40px #121c2640}.wn-head,.wn-foot{justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.wn-head{border-bottom:1px solid var(--line)}.wn-foot{border-top:1px solid var(--line)}.wn-head h3{color:var(--ink);margin:0;font-size:16px}.wn-body-wrap{padding:16px;overflow-y:auto}.wn-lede{color:var(--muted);margin:0 0 12px}.wn-list{margin:0;padding:0;list-style:none}.wn-list li{border-bottom:1px solid var(--line);padding:12px 0}.wn-list li:first-child{padding-top:0}.wn-list li:last-child{border-bottom:none;padding-bottom:0}.wn-title{color:var(--accent);margin-bottom:3px;font-weight:600}.wn-text{color:var(--muted);line-height:1.5}.wn-group{border:none;border-bottom:1px solid var(--line);text-align:left;cursor:pointer;background:0 0;align-items:center;gap:8px;width:100%;padding:8px 0;display:flex}.wn-group:hover{color:var(--accent)}.wn-caret{color:var(--muted);width:10px;font-size:11px}.wn-area{font-weight:600}.wn-group .muted{margin-left:auto;font-size:12px}.wn-new{background:var(--accent-soft);color:var(--accent);border-radius:9px;padding:0 6px;font-size:11px;font-weight:600}.wn-when{color:var(--muted);margin-bottom:3px;font-size:11px}.wn-divider{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;align-items:center;gap:8px;margin:18px 0 6px;font-size:12px;display:flex}.wn-divider:after{content:"";background:var(--line);flex:1;height:1px}.wn-list{padding-left:18px}.drag-handle{cursor:grab;color:var(--muted);-webkit-user-select:none;user-select:none}tr.row-dragging{opacity:.45}tr.row-dragging .drag-handle{cursor:grabbing}tr.row-drop-target td{box-shadow:inset 0 2px 0 var(--accent,#2563eb)}.topbar .bm-wrap{align-items:center;gap:6px;margin-left:0;display:flex;position:relative}.topbar .bm-wrap~.wn-link{margin-left:0}.bm-chip{color:#eaf2f8;background:0 0;border-color:#fff6;align-items:center;gap:8px;display:inline-flex}.bm-chip:hover{color:#fff;border-color:#fff}.bm-due{opacity:.85;border-left:1px solid #ffffff59;padding-left:8px;font-size:11px}.bm-chip.bm-warn{color:#4a3200;background:#ffd166;border-color:#ffd166}.bm-chip.bm-warn .bm-due{opacity:1;border-left-color:#4a32004d}.bm-chip.bm-urgent{background:var(--danger);border-color:var(--danger);color:#fff}.bm-chip.bm-urgent .bm-due{opacity:1;border-left-color:#ffffff73}.bm-chip.bm-next{opacity:.9;font-size:11px}.bm-chip.bm-next .bm-due{font-size:10px}.bm-panel{z-index:60;background:var(--panel);width:340px;max-width:90vw;color:var(--ink);border:1px solid var(--line);border-radius:var(--radius);position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 12px 40px #121c2640}.bm-panel-head{border-bottom:1px solid var(--line);padding:10px 14px}.bm-panel-head h3{margin:0 0 2px;font-size:14px}.bm-groups{max-height:60vh;overflow-y:auto}.bm-group-head{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin:0;padding:8px 14px 4px;font-size:11px}.bm-what{font-weight:400}.bm-list{margin:0;padding:0;list-style:none}.bm-list li{border-bottom:1px solid var(--line);border-left:3px solid #0000;padding:10px 14px}.bm-list li:last-child{border-bottom:none}.bm-list li.bm-warn{border-left-color:#e0a800}.bm-list li.bm-urgent{border-left-color:var(--danger)}.bm-row{justify-content:space-between;gap:12px;display:flex}.bm-company{font-weight:600}.bm-when{color:var(--accent);white-space:nowrap}.bm-financials{margin-top:2px}.bm-list li.bm-warn .bm-financials{color:#7a5600}.bm-list li.bm-urgent .bm-financials{color:var(--danger);font-weight:600}.bm-note{margin-top:2px;font-style:italic}.bm-panel-foot{border-top:1px solid var(--line);flex-wrap:wrap;gap:14px;padding:10px 14px;display:flex}.bm-chip.bm-compact{letter-spacing:.01em;font-variant-numeric:tabular-nums;gap:5px;padding-left:6px;padding-right:8px}.bm-cat{color:#fff;border-radius:4px;flex:0 0 16px;justify-content:center;align-items:center;width:16px;height:16px;font-size:10px;font-weight:700;line-height:1;display:inline-flex}.bm-cat-board{background:#3d6fd0}.bm-cat-compliance{background:#7a5cc4}.bm-cat-grant{background:var(--grant)}.bm-important{color:inherit;font-size:12px;line-height:1}.bm-chip.bm-calm.bm-important-chip{border-color:#ffd166;box-shadow:inset 0 0 0 1px #ffd166}.bm-chip.bm-calm.bm-important-chip:hover{border-color:#ffd166}.bm-chip.bm-calm.bm-important-chip .bm-important{color:#ffd166}.bm-chip.bm-warn .bm-important,.bm-chip.bm-urgent .bm-important{margin-left:-4px}.bm-company .bm-important{vertical-align:-1px;margin-left:-2px;margin-right:6px}.bm-list li.bm-important-row{border-left-color:#e0a800}.bm-list li.bm-important-row.bm-urgent{border-left-color:var(--danger)}.bm-list li.bm-important-row .bm-when{font-weight:700}.cal-day .bm-tag .bm-important,.cal-agenda .bm-tag .bm-important{font-size:11px}.bm-company .bm-cat{vertical-align:-3px;margin-right:6px}.bm-tag{border-radius:9px;margin-left:8px;padding:1px 7px;font-size:11px}.bm-tag.bm-calm{background:var(--accent-soft);color:var(--accent)}.bm-tag.bm-warn{color:#7a5600;background:#fff8e1}.bm-tag.bm-urgent{color:var(--danger);background:#fdeceb}.bm-chip,.bm-due,.bm-nowrap,.bm-tag{white-space:nowrap}button.sort-header{font:inherit;font-weight:inherit;color:inherit;cursor:pointer;background:0 0;border:none;padding:0}button.sort-header:hover{color:var(--accent)}.tile .value.ok{color:var(--revenue)}.tile .value.bad{color:var(--danger)}.balance-sheet th.acctcol,.balance-sheet td.acct,.balance-sheet tr.subsection.folded td.catcol{width:340px;min-width:340px;max-width:340px}.balance-sheet tr.derived td{background:var(--bg)}.balance-sheet td.num.ok{color:var(--revenue);font-weight:600}.balance-sheet td.num.error{font-weight:600}.fb-modal{width:min(680px,94vw)}.fb-body{flex-direction:column;gap:14px;padding:14px 16px;display:flex;overflow:auto}.fb-kinds{flex-wrap:wrap;gap:8px;display:flex}.fb-kind{border:1px solid var(--line);cursor:pointer;border-radius:6px;align-items:center;gap:6px;padding:6px 10px;font-size:13px;display:flex}.fb-kind.on{border-color:var(--accent);background:var(--bg);font-weight:600}.fb-kind input{margin:0}.fb-field{flex-direction:column;gap:5px;font-size:13px;display:flex}.fb-field>span{color:var(--muted)}.fb-field input[type=text],.fb-field input:not([type]),.fb-field textarea{border:1px solid var(--line);width:100%;font:inherit;border-radius:5px;padding:7px 9px}.fb-field textarea{resize:vertical}.fb-shots{flex-wrap:wrap;gap:10px;margin-top:6px;display:flex}.fb-shot{border:1px solid var(--line);border-radius:5px;max-width:190px;margin:0;overflow:hidden}.fb-shot img{width:100%;height:auto;display:block}.fb-shot figcaption{justify-content:space-between;align-items:center;gap:6px;padding:4px 6px;font-size:11px;display:flex}.fb-context-toggle{align-self:flex-start}.fb-context-table{border-collapse:collapse;width:100%;margin-top:8px;font-size:12px}.fb-context-table th{text-align:left;color:var(--muted);white-space:nowrap;vertical-align:top;width:1%;padding:3px 8px 3px 0;font-weight:600}.fb-context-table td{word-break:break-word;padding:3px 0}.fb-context-table pre{white-space:pre-wrap;margin:0;font-size:11px}.fb-ok{color:var(--revenue)}.fb-warn{color:var(--danger)}.fb-done{padding:16px}.fb-done p{margin:0 0 14px}.fb-title-btn{text-align:left}.fb-detail td{background:var(--bg)}.fb-note{white-space:pre-wrap;margin:0 0 10px}.fb-list td{vertical-align:top}.cal-title-row{justify-content:space-between;align-items:flex-start;gap:24px;display:flex}.cal-title-row h1{margin-bottom:4px}.cal-intro{max-width:620px;color:var(--muted);margin:0;line-height:1.45}.cal-key{color:var(--muted);align-items:center;gap:16px;font-size:12px;display:flex}.cal-key>span{white-space:nowrap;align-items:center;gap:6px;display:inline-flex}.cal-key-mark{border-radius:4px;width:18px;height:10px}.cal-key-action{background:var(--accent-soft);border:1px solid var(--accent)}.cal-key-event{background:var(--panel);border:1px solid var(--accent)}.cal-filters{flex-wrap:wrap;gap:8px;margin:16px 0 24px;display:flex}.cal-filters button{white-space:nowrap;align-items:center;gap:6px;min-height:36px;display:inline-flex}.cal-filters button.active{background:var(--accent);border-color:var(--accent);color:#fff}.cal-filters button.active .bm-cat{outline-offset:1px;outline:2px solid #fff}.cal-state{margin:24px 0}.cal-month{margin-bottom:36px}.cal-month h2{margin:0 0 12px;font-size:18px}.cal-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;display:grid}.cal-grid.cal-head{margin-bottom:5px}.cal-weekday{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);text-align:center;padding-bottom:2px;font-size:11px;font-weight:600}.cal-day{border:1px solid var(--control-line);background:var(--panel);border-radius:6px;flex-direction:column;gap:4px;min-width:0;min-height:92px;padding:6px;display:flex}.cal-day.cal-out{background:var(--bg);border-color:#0000}.cal-day.cal-out .cal-daynum{color:var(--muted)}.cal-day.cal-past{background:var(--calendar-past)}.cal-day.cal-out.cal-past{background:var(--bg)}.cal-day.cal-past .cal-daynum{color:var(--muted)}.cal-day.cal-today{border:2px solid var(--accent);box-shadow:inset 0 0 0 1px var(--panel)}.cal-daynum{font-variant-numeric:tabular-nums;font-size:13px;font-weight:650}.cal-day .bm-tag{white-space:nowrap;text-align:left;align-items:center;gap:4px;min-width:0;margin-left:0;text-decoration:none;display:flex;overflow:hidden}.cal-day .bm-tag>span:last-child{text-overflow:ellipsis;min-width:0;overflow:hidden}.cal-day .bm-tag:hover{text-underline-offset:2px;text-decoration:underline}.cal-day .bm-tag:focus-visible,.cal-agenda .bm-tag:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.cal-day .bm-tag.cal-mark-event,.cal-agenda .bm-tag.cal-mark-event{background:var(--panel);border:1px solid}.cal-agenda{display:none}@media (width<=700px){.cal-title-row{display:block}.cal-intro{max-width:38rem}.cal-key{flex-wrap:wrap;gap:12px;margin-top:12px}.cal-filters{margin-block:16px 22px}.cal-filters button{min-height:44px}.cal-desktop{display:none}.cal-agenda{border-top:1px solid var(--control-line);display:block}.cal-month{margin-bottom:32px}.cal-month h2{margin-bottom:10px}.cal-month-empty{margin:0;padding:14px 0}.cal-agenda-day{border-bottom:1px solid var(--line);grid-template-columns:46px minmax(0,1fr);gap:12px;padding:12px 0;display:grid}.cal-agenda-day.cal-past{background:var(--calendar-past)}.cal-agenda-day.cal-today{box-shadow:inset 3px 0 0 var(--accent);padding-left:8px}.cal-agenda-date{color:var(--muted);flex-direction:column;align-items:center;text-decoration:none;display:flex}.cal-agenda-date span{letter-spacing:.04em;text-transform:uppercase;font-size:10px;font-weight:700}.cal-agenda-date strong{color:var(--ink);font-variant-numeric:tabular-nums;font-size:20px;line-height:1.15}.cal-agenda-marks{flex-direction:column;gap:6px;min-width:0;display:flex}.cal-agenda .bm-tag{align-items:center;gap:6px;min-width:0;min-height:34px;margin:0;text-decoration:none;display:flex;overflow:hidden}.cal-agenda .bm-tag>span:last-child{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}}.sched-toggle{font:inherit;color:inherit;cursor:pointer;text-align:left;background:0 0;border:0;padding:0}.sched-toggle:hover{color:var(--accent)}table.sched-list tr.sched-asset td{padding-top:2px;padding-bottom:2px;font-size:13px}table.sched-list tr.sched-asset td:first-child{padding-left:24px}.sched-nowrap{white-space:nowrap}table.sched-list tr.sched-asset button.small{padding:0 6px;font-size:11px}.sched-actions{margin:0 0 12px}.form-modal{width:min(720px,94vw)}.form-modal-wide{width:min(980px,96vw)}.form-modal-body{padding:14px 16px;overflow:auto}.form-modal-fields{flex-wrap:wrap;align-items:center;gap:8px 12px;display:flex}.statement-table{table-layout:fixed;width:100%;max-width:1100px}.statement-table th:first-child,.statement-table td:first-child{width:28%}.statement-table caption{text-align:center;padding-bottom:10px}.statement-table caption .title{font-weight:700}.statement-table th button.link{cursor:pointer;color:inherit;background:0 0;border:0;padding:0;font-weight:700}.statement-table tr.section th{text-align:left;padding-top:12px}.statement-table tr.category td:first-child{padding-left:20px}.statement-table tr.subtotal td{border-top:1px solid var(--line);font-weight:600}.statement-table tr.grand td{background:var(--accent-soft);border-top:1px solid var(--line);font-weight:700}.statement-table td.neg{color:var(--danger,#b00020)}@media print{.topbar,.no-print,.view-tabs,.toolbar{display:none!important}.statement-table{max-width:none;font-size:11px}}.summary-verdict{white-space:nowrap;margin:8px 0 20px;font-size:20px;line-height:1.4;overflow-x:auto}.summary-cards{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-bottom:16px;display:grid}.summary-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:16px 20px}.summary-card .label{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:11px}.summary-card .status{margin-top:6px;font-size:22px;font-weight:700}.summary-card .detail{font-variant-numeric:tabular-nums;margin-top:2px;font-size:16px}.summary-card .sub{color:var(--muted);font-variant-numeric:tabular-nums;margin-top:8px;font-size:12px}.summary-drivers{margin:0;padding-left:20px;font-size:15px;line-height:1.8}.ws .pcol-actuals_prev1,.ws .pcol-budget_prev1,.ws .pcol-actuals_prev2,.ws .pcol-delta,.ws .pcol-delta_pct,.ws .pcol-bud_var,.ws .pcol-bud_var_pct{width:var(--pc);min-width:var(--pc);max-width:var(--pc);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.ws .pcol-actuals_prev1{--pc:var(--pc-actuals_prev1,88px)}.ws .pcol-budget_prev1{--pc:var(--pc-budget_prev1,88px)}.ws .pcol-actuals_prev2{--pc:var(--pc-actuals_prev2,88px)}.ws .pcol-delta{--pc:var(--pc-delta,88px)}.ws .pcol-delta_pct{--pc:var(--pc-delta_pct,88px)}.ws .pcol-bud_var{--pc:var(--pc-bud_var,88px)}.ws .pcol-bud_var_pct{--pc:var(--pc-bud_var_pct,88px)}.ws th.pcol{padding-right:10px;position:relative}.ws th.pcol .col-resizer{cursor:col-resize;-webkit-user-select:none;user-select:none;width:7px;height:100%;position:absolute;top:0;right:0}.ws th.pcol .col-resizer:hover{background:var(--accent);opacity:.4}.col-picker{position:relative}.col-picker summary{cursor:pointer}.col-picker .col-picker-menu{z-index:6;border:1px solid var(--line);white-space:nowrap;background:#fff;border-radius:4px;flex-direction:column;gap:4px;margin-top:4px;padding:6px 10px;display:flex;position:absolute;box-shadow:0 2px 8px #0000001f}.approval-preview{border:1px solid var(--line);background:#e9edf0;border-radius:8px;width:100%;height:780px;margin-top:12px}@media (width<=700px){.approval-builder .toolbar label{width:100%}.approval-builder select{width:100%;max-width:100%}.approval-preview{height:650px}}
