/* ══════════════════════════════════════════════════════════════════════
   VisionX Data — department figures beyond the accounts (visionx-data-ui.js).
   Prefix: vxds. Colours are the app's tokens, so light, dark, the user's
   accent and the PDF all follow. The page sits inside .vx-body and, on
   the Business plan, inside .vx-business; both style bare inputs, labels
   and tables, so the selectors here are deliberately specific.
   ══════════════════════════════════════════════════════════════════════ */
/* position:relative keeps every hidden label (.vxds-sr) inside the page. Without it one near the foot of a long
   page is placed against the browser window, which then scrolls on past the app into empty space. */
.vxds-page{position:relative;display:flex;flex-direction:column;gap:16px;color:var(--text);font:400 14px/1.5 Inter,system-ui,sans-serif}
.vxds-page p{margin:0}
.vxds-page code{font:500 12px/1.3 "IBM Plex Mono",ui-monospace,monospace;color:var(--ai-ink,var(--teal));overflow-wrap:anywhere}
.vxds-sr,.vxds-page.vxds-page input.vxds-sr{position:absolute;width:1px;height:1px;min-width:0;min-height:0;margin:-1px;padding:0;border:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
/* a hidden label sits where its text would be; these keep it inside the box that scrolls, so it never widens the page */
.vxds-btn,.vxds-scroll,.vxds-pick{position:relative}
.vxds-page p.vxds-lock,.vxds-page p.vxds-saved{font-size:12.5px;color:var(--slate)}
.vxds-page p.vxds-lock{padding:10px 14px;border-radius:10px;border:1px solid color-mix(in srgb,#e0a030 45%,var(--line));background:color-mix(in srgb,#e0a030 9%,transparent);color:var(--text)}
.vxds-page .vxds-back{align-self:flex-start;min-height:36px;padding:0 4px;border:0;background:none;color:var(--slate);font:600 13px/1 Inter,system-ui,sans-serif;cursor:pointer}
.vxds-page .vxds-back:hover{color:var(--text)}

.vxds-page .vxds-card,.vxds-alerts.vxds-card{min-width:0;padding:18px 20px;border-radius:16px;border:1px solid var(--line);background:var(--surface);display:flex;flex-direction:column;gap:12px}
.vxds-page .vxds-sec{display:flex;flex-direction:column;gap:12px}
.vxds-head h3,.vxds-page .vxds-sub h3{margin:0;font:600 17px/1.25 "Space Grotesk",Inter,sans-serif;letter-spacing:-.2px;color:var(--text)}
.vxds-page .vxds-head p{margin-top:4px;font-size:13px;color:var(--slate);max-width:760px}
.vxds-head.row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px}
.vxds-page p.vxds-foot{font-size:12.5px;line-height:1.55;color:var(--slate)}
.vxds-page p.vxds-empty,.vxds-page .vxds-empty{padding:18px 4px;color:var(--slate);font-size:14px}
.vxds-page .vxds-empty.big{padding:44px 24px;text-align:center;border:1px dashed var(--line);border-radius:16px}
.vxds-page .vxds-empty.big b{display:block;margin-bottom:6px;font:600 18px/1.3 "Space Grotesk",Inter,sans-serif;color:var(--text)}
.vxds-note{font:500 11.5px/1.4 "IBM Plex Mono",ui-monospace,monospace;color:var(--slate)}

.vxds-btn,.vxds-hubbtn{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:38px;padding:0 14px;border-radius:10px;border:1px solid var(--line);background:var(--panel);color:var(--text);font:600 13px/1 Inter,system-ui,sans-serif;text-decoration:none;white-space:nowrap;cursor:pointer}
.vxds-btn:hover,.vxds-hubbtn:hover{border-color:var(--accent)}
.vxds-btn.primary{border-color:transparent;background:var(--accent);color:#06231f}
:root:not([data-theme="dark"]) .vxds-btn.primary{color:#fff}
.vxds-btn.primary:hover{filter:brightness(1.07)}
.vxds-btn:disabled,.vxds-btn.off{opacity:.5;cursor:not-allowed}
.vxds-btn svg{width:15px;height:15px;flex-shrink:0}
.vxds-btn:focus-visible,.vxds-hubbtn:focus-visible,.vxds-back:focus-visible,.vxds-x:focus-visible,.vxds-seg button:focus-visible,.vxds-btn:focus-within{outline:2px solid var(--accent);outline-offset:2px}
.vxds-hubbtn{min-height:40px;margin-right:2px}
.vxds-page .vxds-x{min-height:34px;padding:0 10px;border-radius:8px;border:1px solid var(--line);background:transparent;color:var(--slate);font:600 12px/1 Inter,system-ui,sans-serif;cursor:pointer}
.vxds-page .vxds-x:hover{color:var(--vx-bad);border-color:var(--vx-bad)}
.vxds-page .vxds-x:disabled{opacity:.45;cursor:not-allowed}
.vxds-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px}
.vxds-bar-r{display:inline-flex;flex-wrap:wrap;gap:8px;align-items:center}
.vxds-chip{display:inline-flex;align-items:center;padding:3px 9px;border-radius:999px;font:600 10.5px/1.4 "IBM Plex Mono",ui-monospace,monospace;letter-spacing:.04em;background:var(--panel);color:var(--slate);white-space:nowrap}
.vxds-chip.on{background:color-mix(in srgb,var(--accent) 16%,transparent);color:var(--ai-ink,var(--accent))}
.vxds-chip.warn{background:color-mix(in srgb,#e0a030 18%,transparent);color:color-mix(in srgb,#e0a030 70%,var(--text))}
.vxds-chip.off{background:color-mix(in srgb,var(--text) 8%,transparent)}
.vxds-st.good,.vxds-page .good{color:var(--vx-good)}
.vxds-st.warn{color:color-mix(in srgb,#e0a030 72%,var(--text))}
.vxds-page .bad{color:var(--vx-bad)}
.vxds-page .dim{color:var(--slate)}

/* packs */
.vxds-packs{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px}
.vxds-pack{display:flex;flex-direction:column;gap:8px;padding:16px;border-radius:14px;border:1px solid var(--line);background:var(--surface)}
.vxds-pack-top{display:flex;align-items:center;justify-content:space-between;gap:8px}
.vxds-pack h4{margin:0;font:600 15.5px/1.3 "Space Grotesk",Inter,sans-serif;color:var(--text)}
.vxds-page .vxds-pack p{flex:1;font-size:13px;color:var(--slate)}
.vxds-pack small{font:500 11.5px/1.4 "IBM Plex Mono",ui-monospace,monospace;color:var(--dim)}

/* tables */
.vxds-scroll{overflow-x:auto;max-width:100%}
.vxds-page table.vxds-t,.vxds-page table.vxds-grid{width:100%;border-collapse:collapse;font:400 13.5px/1.4 Inter,system-ui,sans-serif;color:var(--text)}
.vxds-page table.vxds-t th,.vxds-page table.vxds-grid th{position:static;top:auto;z-index:auto;background:transparent;text-transform:none;letter-spacing:normal;text-align:left;font-weight:600;color:var(--text)}
.vxds-page table.vxds-t thead th,.vxds-page table.vxds-grid thead th{padding:9px 10px;border-bottom:1px solid var(--line);font:600 10.5px/1.3 "IBM Plex Mono",ui-monospace,monospace;letter-spacing:.08em;text-transform:uppercase;color:var(--slate);white-space:nowrap}
.vxds-page table.vxds-t td,.vxds-page table.vxds-t tbody th{padding:11px 10px;border-bottom:1px solid color-mix(in srgb,var(--line) 70%,transparent);vertical-align:middle}
.vxds-page table.vxds-t tbody tr:last-child td,.vxds-page table.vxds-t tbody tr:last-child th{border-bottom:0}
.vxds-page table.vxds-t tbody tr:hover td{background:transparent}
.vxds-page table.vxds-t .n,.vxds-page table.vxds-grid .n{text-align:right;font-family:"IBM Plex Mono",ui-monospace,monospace;white-space:nowrap}
.vxds-page table.vxds-t td small,.vxds-page table.vxds-grid th small{display:block;margin-top:2px;font:400 12px/1.35 Inter,system-ui,sans-serif;color:var(--dim)}
.vxds-page table.vxds-t td.acts{white-space:nowrap;text-align:right}
.vxds-page table.vxds-t td.acts .vxds-btn{min-height:32px;padding:0 11px;margin-left:6px}
.vxds-page table.vxds-t.mono td,.vxds-page table.vxds-t.mono tbody th{font:500 12.5px/1.3 "IBM Plex Mono",ui-monospace,monospace;padding:8px 10px}
.vxds-page table.vxds-t.mono tbody th{font-family:Inter,system-ui,sans-serif}
.vxds-page table.vxds-t .tot{font-weight:600;border-left:1px solid var(--line)}

/* set-up */
.vxds-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
.vxds-page .vxds-fields label{display:flex;flex-direction:column;gap:6px;margin:0;font:500 12.5px/1.3 Inter,system-ui,sans-serif;color:var(--slate)}
.vxds-page .vxds-fields label.wide{grid-column:1/-1}
.vxds-page.vxds-page input.vxds-in,.vxds-page.vxds-page select.vxds-in{width:100%;min-width:0;min-height:38px;box-sizing:border-box;padding:0 10px;border-radius:9px;border:1px solid var(--line);background:var(--panel);color:var(--text);font:500 13.5px/1.2 Inter,system-ui,sans-serif}
.vxds-page.vxds-page input.vxds-in.mono{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:12.5px}
.vxds-page.vxds-page input.vxds-in.n{text-align:right;font-family:"IBM Plex Mono",ui-monospace,monospace;max-width:110px;margin-left:auto;display:block}
.vxds-page.vxds-page input.vxds-in:focus,.vxds-page.vxds-page select.vxds-in:focus{outline:2px solid var(--accent);outline-offset:1px}
.vxds-page.vxds-page input.vxds-in:disabled,.vxds-page.vxds-page select.vxds-in:disabled{opacity:.6}
.vxds-page table.vxds-t.setup td{vertical-align:top;min-width:120px}
.vxds-page table.vxds-t.setup td:first-child{min-width:250px}
.vxds-page label.vxds-formula{display:flex;align-items:center;gap:6px;margin:6px 0 0;font:600 14px/1 "IBM Plex Mono",ui-monospace,monospace;color:var(--ai-ink,var(--teal))}
.vxds-page p.vxds-err{margin-top:4px;font-size:12px;color:var(--vx-bad)}
.vxds-page p.vxds-err:empty{display:none}
.vxds-page label.vxds-check{display:flex;align-items:center;gap:6px;margin:6px 0 0;font:400 12px/1.3 Inter,system-ui,sans-serif;color:var(--slate)}
.vxds-page label.vxds-check input{width:16px;height:16px;margin:0;accent-color:var(--accent)}

/* the figures grid */
.vxds-seg{display:inline-flex;padding:3px;border-radius:11px;border:1px solid var(--line);background:var(--panel)}
.vxds-seg button{min-height:34px;padding:0 16px;border:0;border-radius:8px;background:transparent;color:var(--slate);font:600 13px/1 Inter,system-ui,sans-serif;cursor:pointer}
.vxds-seg button[aria-pressed="true"]{background:var(--surface);color:var(--text);box-shadow:0 0 0 1px var(--line)}
.vxds-page table.vxds-grid{min-width:1040px;border-collapse:separate;border-spacing:0}
.vxds-page table.vxds-grid thead th.n{text-align:right;padding-right:12px}
.vxds-page table.vxds-grid thead th.locked{color:var(--dim)}
.vxds-page table.vxds-grid tbody th{position:sticky;left:0;z-index:1;min-width:190px;max-width:240px;padding:5px 10px 5px 0;background:var(--surface);font:500 13px/1.3 Inter,system-ui,sans-serif;border-bottom:1px solid color-mix(in srgb,var(--line) 60%,transparent)}
.vxds-page table.vxds-grid td{padding:3px;border-bottom:1px solid color-mix(in srgb,var(--line) 60%,transparent)}
.vxds-page table.vxds-grid td.mb{padding:5px 10px;font-size:12.5px;color:var(--slate);white-space:nowrap}
.vxds-page table.vxds-grid td.c input{width:100%;min-width:64px;min-height:32px;box-sizing:border-box;padding:0 8px;border-radius:7px;border:1px solid transparent;background:var(--panel);color:var(--text);font:500 12.5px/1 "IBM Plex Mono",ui-monospace,monospace;text-align:right}
.vxds-page table.vxds-grid td.c input:hover{border-color:var(--line)}
.vxds-page table.vxds-grid td.c input:focus{outline:2px solid var(--accent);outline-offset:0;background:var(--surface)}
.vxds-page table.vxds-grid td.c input:disabled{opacity:.5;cursor:not-allowed}
.vxds-page table.vxds-grid tr.calc th,.vxds-page table.vxds-grid tr.calc td{background:color-mix(in srgb,var(--text) 3%,var(--surface));color:var(--slate)}
.vxds-page table.vxds-grid tr.calc td.n{padding:8px 11px;font-size:12.5px}

/* upload review */
.vxds-page .vxds-card.review{border-color:color-mix(in srgb,var(--accent) 45%,var(--line))}
.vxds-checks{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:8px}
.vxds-checks li{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border-radius:11px;border:1px solid var(--line);background:var(--panel)}
.vxds-checks svg{width:18px;height:18px;flex-shrink:0;margin-top:2px}
.vxds-checks li.ok svg{color:var(--vx-good)}
.vxds-checks li.warn svg{color:#e0a030}
.vxds-checks b{display:block;font-weight:600}
.vxds-checks span{font-size:12.5px;color:var(--slate)}

/* the department page */
.vxds-top,.vxds-sub{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px}
.vxds-sub{margin-top:8px;padding-top:14px;border-top:1px solid var(--line)}
.vxds-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(168px,1fr));gap:12px}
.vxds-tile{display:flex;flex-direction:column;gap:5px;min-width:0;padding:14px 16px;border-radius:14px;border:1px solid var(--line);background:var(--surface)}
.vxds-tile .l{font:500 12px/1.3 Inter,system-ui,sans-serif;color:var(--slate)}
.vxds-tile .v{font:600 22px/1.15 "IBM Plex Mono",ui-monospace,monospace;letter-spacing:-.02em;overflow-wrap:anywhere}
.vxds-tile small{font:500 12px/1.35 Inter,system-ui,sans-serif;color:var(--slate)}
.vxds-spark{display:block;width:100%;height:26px;margin-top:2px}
.vxds-two{display:flex;flex-wrap:wrap;gap:16px;align-items:stretch}
.vxds-two>.vxds-card{flex:1 1 300px}
.vxds-two>.vxds-card.grow{flex:2 1 440px}
.vxds-chart{display:block;width:100%;height:auto;color:var(--text)}
.vxds-legend{display:flex;flex-wrap:wrap;gap:14px;font-size:12.5px;color:var(--slate)}
.vxds-legend span{display:inline-flex;align-items:center;gap:6px}
.vxds-legend i{width:12px;height:12px;border-radius:3px;display:inline-block}
.vxds-legend i.tick{width:16px;height:2px;border-radius:0;background:var(--text)}
.vxds-page label.vxds-pick{margin:0}
.vxds-page.vxds-page label.vxds-pick select{width:auto;max-width:260px;min-height:36px;padding:0 10px;border-radius:9px;border:1px solid var(--line);background:var(--panel);color:var(--text);font:500 13px/1.2 Inter,system-ui,sans-serif}
.vxds-of{display:flex;align-items:center;gap:8px;min-width:120px}
.vxds-of i{flex:1;height:8px;border-radius:4px;background:color-mix(in srgb,var(--text) 10%,transparent);overflow:hidden}
.vxds-of i b{display:block;height:100%;border-radius:4px;background:var(--slate)}
.vxds-of i b.good{background:#2fd3b4}
.vxds-of i b.bad{background:#e0a030}
.vxds-of em{font:600 12.5px/1 "IBM Plex Mono",ui-monospace,monospace;font-style:normal;min-width:40px;text-align:right}
.vxds-of em.bad{color:color-mix(in srgb,#e0a030 75%,var(--text))}
.vxds-funnel{display:flex;flex-direction:column;gap:10px}
.vxds-funnel .r,.vxds-share .r{display:flex;justify-content:space-between;gap:10px;font-size:13px}
.vxds-funnel .r small{color:var(--dim);font-size:12px}
.vxds-funnel .r b,.vxds-share .r b{font:600 13px/1.4 "IBM Plex Mono",ui-monospace,monospace}
.vxds-funnel i{display:block;height:20px;margin-top:4px;border-radius:6px}
.vxds-move{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.vxds-move div{padding:11px 13px;border-radius:12px;border:1px solid var(--line);background:var(--panel)}
.vxds-move div.end{border-color:color-mix(in srgb,var(--accent) 45%,var(--line));background:color-mix(in srgb,var(--accent) 8%,transparent)}
.vxds-move span{display:block;font-size:12px;color:var(--slate)}
.vxds-move b{font:600 21px/1.2 "IBM Plex Mono",ui-monospace,monospace}
.vxds-share i{position:relative;display:block;height:10px;margin-top:6px;border-radius:5px;background:color-mix(in srgb,var(--text) 10%,transparent)}
.vxds-share i b{display:block;height:100%;border-radius:5px;background:var(--slate)}
.vxds-share i b.good{background:#2fd3b4}
.vxds-share i b.bad{background:#e0a030}
.vxds-share i u{position:absolute;top:-4px;width:2px;height:18px;background:var(--text)}
.vxds-share small{display:block;margin-top:6px;font-size:12px;color:var(--dim)}
.vxds-page .vxds-card.sig{border-color:var(--ai-line,var(--line))}
.vxds-sig{list-style:none;margin:0;padding:0}
.vxds-sig li{display:flex;align-items:center;gap:10px;padding:9px 0;border-top:1px solid color-mix(in srgb,var(--line) 70%,transparent);font-size:13.5px}
.vxds-sig li:first-child{border-top:0}
.vxds-sig li span{flex:1}
.vxds-sig i{flex:0 0 8px;width:8px;height:8px;border-radius:50%;background:var(--slate)}
.vxds-sig i.good{background:var(--vx-good)}
.vxds-sig i.warn{background:#e0a030}
.vxds-sig i.bad{background:var(--vx-bad)}
.vxds-alerts{margin-top:16px;color:var(--text);font:400 14px/1.5 Inter,system-ui,sans-serif}
.vxds-alerts .vxds-btn{min-height:32px}

/* a department's Overview: what it starts with, and the sheets it could still add */
.vxds-ready{list-style:none;margin:0 0 4px;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:10px}
.vxds-ready li{display:flex;gap:11px;align-items:flex-start;padding:12px 14px;border-radius:12px;border:1px solid var(--line);background:var(--panel)}
.vxds-ready svg{flex:0 0 18px;width:18px;height:18px;margin-top:2px;color:var(--ai-ink,var(--accent))}
.vxds-ready b{display:block;font:600 14px/1.3 Inter,system-ui,sans-serif;color:var(--text)}
.vxds-ready span{display:block;margin-top:3px;font-size:12.5px;line-height:1.45;color:var(--slate)}
.vxds-start .vxds-bar .vxds-note{flex:1 1 260px}
.vxds-more{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}
.vxds-more>span{font-size:13px;color:var(--slate);margin-right:4px}
.vxds-more .vxds-btn{min-height:34px}
.vxds-page .vxds-empty.big .vxds-note{display:block;margin-top:10px}

/* Ask VisionX AI, on a department Overview, sheet or analysis tab */
.vxds-page .vxds-card.vxds-ai{border-color:var(--ai-line,color-mix(in srgb,var(--accent) 35%,var(--line)))}
.vxds-ai h3{display:flex;align-items:center;gap:8px}
.vxds-ai h3 svg,.vxds-btn[data-vxds="ai-jump"] svg{width:16px;height:16px;flex:0 0 16px;color:var(--ai-ink,var(--accent))}
.vxds-ai-sug{display:flex;flex-wrap:wrap;gap:8px}
.vxds-ai-sug button{min-height:34px;padding:7px 12px;border-radius:999px;border:1px solid var(--line);background:var(--panel);color:var(--text);font:500 12.5px/1.35 Inter,system-ui,sans-serif;text-align:left;cursor:pointer}
.vxds-ai-sug button:hover{border-color:var(--accent)}
.vxds-ai-sug button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.vxds-ai-form{display:flex;align-items:flex-end;gap:10px;margin:12px 0 0}
.vxds-page.vxds-page .vxds-ai-form textarea.vxds-in{flex:1;min-width:0;min-height:44px;padding:10px 12px;border-radius:10px;border:1px solid var(--line);background:var(--panel);color:var(--text);font:400 14px/1.45 Inter,system-ui,sans-serif;resize:vertical}
.vxds-page.vxds-page .vxds-ai-form textarea.vxds-in:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.vxds-ai-form .vxds-btn{min-height:44px}
.vxds-ai-ans{margin-top:14px;padding:14px 16px;border-radius:12px;border:1px solid var(--line);background:var(--panel)}
.vxds-page .vxds-ai-ans p.q{margin:0 0 8px;font:600 13.5px/1.4 Inter,system-ui,sans-serif;color:var(--text)}
.vxds-page .vxds-ai-ans .a p{margin:0 0 8px;font-size:14px;line-height:1.6;color:var(--text)}
.vxds-ai-ans .vxds-bar{margin-top:10px}
@media(max-width:700px){.vxds-ai-form{flex-direction:column;align-items:stretch}}
@media print{.vxds-ai-sug,.vxds-ai-form,.vxds-ai-ans .vxds-bar,.vxds-btn[data-vxds="ai-jump"]{display:none!important}}

/* an Analysis card on a department's Overview carries its own Open button */
.vxds-ready li .vxds-btn{margin-top:9px;min-height:32px}
.vxds-hubname{font:600 15px/1.3 "Space Grotesk",Inter,sans-serif;color:var(--text)}

/* analysis sheets (visionx-dept-analysis.js) */
.vxds-page table.vxan-t tbody th,.vxds-page table.vxan-t tfoot th{text-align:left;font-weight:500;color:var(--text);white-space:nowrap}
.vxds-page table.vxan-t tfoot td,.vxds-page table.vxan-t tfoot th{font-weight:600;border-top:1.5px solid var(--line)}
.vxan-ranks{display:flex;flex-direction:column;gap:11px}
.vxan-ranks .r{display:flex;justify-content:space-between;gap:10px;font-size:13px;color:var(--text)}
.vxan-ranks .r small{color:var(--dim);font-size:12px}
.vxan-ranks .r b{font:600 13px/1.4 "IBM Plex Mono",ui-monospace,monospace;white-space:nowrap}
.vxan-ranks i{display:block;height:9px;margin-top:5px;border-radius:5px;background:color-mix(in srgb,var(--text) 10%,transparent);overflow:hidden}
.vxan-ranks i b{display:block;height:100%;border-radius:5px;background:#44b3e1}
.vxan-ranks i b.good{background:#2fd3b4}
.vxan-ranks i b.bad{background:#e0a030}
.vxds-tile small.good{color:var(--vx-good,#1f9d85)}
.vxds-tile small.bad{color:color-mix(in srgb,#e0a030 78%,var(--text))}

/* AR aging and AP aging (visionx-ageing.js) */
.vxag-strip{display:flex;height:22px;border-radius:8px;overflow:hidden;background:color-mix(in srgb,var(--text) 8%,transparent)}
.vxag-strip i{display:block;min-width:2px}
.vxag-key{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:12px;font-size:12.5px;color:var(--slate)}
.vxag-key span{display:inline-flex;align-items:center;gap:7px}
.vxag-key i{width:11px;height:11px;border-radius:3px}
.vxag-key b{font:600 12.5px/1 "IBM Plex Mono",ui-monospace,monospace;color:var(--text)}
.vxag-tools label{margin:0}
.vxds-page.vxag .vxag-tools input.vxds-in,.vxds-page.vxag .vxag-tools select.vxds-in{width:auto;min-width:150px;max-width:230px;min-height:36px}
.vxds-page table.vxag-t{min-width:760px}
.vxds-page table.vxag-t td.n,.vxds-page table.vxag-t th.n{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.vxds-page table.vxag-t td.z{color:var(--dim)}
.vxds-page table.vxag-t td.t{font-weight:600}
.vxds-page table.vxag-t td.s{color:var(--slate)}
.vxds-page table.vxag-t tbody th{padding:0;text-align:left}
.vxag-tog{display:flex;align-items:center;gap:8px;width:100%;min-height:42px;padding:8px 12px;border:0;background:none;color:var(--text);font:600 13.5px/1.3 Inter,system-ui,sans-serif;text-align:left;cursor:pointer}
.vxag-tog svg{flex:0 0 14px;width:14px;height:14px;opacity:.6;transition:transform .16s}
.vxag-tog[aria-expanded="true"] svg{transform:rotate(90deg);opacity:1}
.vxag-tog small{font:500 11px/1 "IBM Plex Mono",ui-monospace,monospace;color:var(--dim);padding:3px 6px;border-radius:999px;background:color-mix(in srgb,var(--text) 8%,transparent)}
.vxag-tog:hover span{text-decoration:underline}
.vxag-tog:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.vxds-page table.vxag-t tr.p.open>*{background:color-mix(in srgb,var(--accent) 7%,transparent)}
.vxds-page table.vxag-t tr.d td{background:var(--panel);font-size:12.5px}
.vxds-page table.vxag-t tr.d td:first-child{padding-left:34px}
.vxds-page table.vxag-t tr.d td b{display:block;font-weight:600;color:var(--text)}
.vxds-page table.vxag-t tr.d td small{display:block;margin-top:2px;color:var(--slate)}
.vxds-page table.vxag-t tr.d td small em{font-style:normal}
.vxds-page table.vxag-t tr.d td small em.late{color:color-mix(in srgb,#e0a030 78%,var(--text));font-weight:600}
.vxds-page table.vxag-t tr.d td.x{text-align:right}
.vxds-page table.vxag-t tfoot th,.vxds-page table.vxag-t tfoot td{font-weight:600;border-top:1.5px solid var(--line);text-align:right}
.vxds-page table.vxag-t tfoot th{text-align:left;padding-left:12px}
.vxds-page table.vxag-t tfoot tr.pc th,.vxds-page table.vxag-t tfoot tr.pc td{font-weight:500;color:var(--slate);border-top:0}
.vxag-chips{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.vxag-chip{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 6px 0 13px;border-radius:999px;border:1px solid var(--line);background:var(--panel);color:var(--text);font:600 13px/1 "IBM Plex Mono",ui-monospace,monospace}
.vxag-chip button{width:26px;height:26px;border:0;border-radius:50%;background:none;color:var(--slate);font-size:17px;line-height:1;cursor:pointer}
.vxag-chip button:hover:not(:disabled){background:color-mix(in srgb,var(--text) 10%,transparent);color:var(--text)}
.vxag-chip button:disabled{opacity:.35;cursor:not-allowed}
.vxag-add{display:inline-flex;align-items:center;gap:8px;margin:0}
.vxag-add label{margin:0}
.vxds-page.vxag .vxag-add input.vxds-in{width:92px;min-height:36px}
.vxag-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;margin-top:14px;font-size:13px;color:var(--slate)}
.vxag-row b{color:var(--text);font-weight:600}
.vxag-row label{display:inline-flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0;color:var(--slate);font-size:13px}
.vxag-row label{max-width:100%}
.vxds-page.vxag .vxag-row select.vxds-in{width:auto;max-width:100%;min-width:0;min-height:36px}
.vxag-form{margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}
.vxag-form .wide{grid-column:1/-1}
.vxag section[id]{scroll-margin-top:14px}
/* on paper a name is plain text; on a slide the five largest balances sit under the bar */
.vxag-name{display:block;padding:9px 12px;font-weight:600;color:var(--text)}
.vxag-name small{font:500 11px/1 "IBM Plex Mono",ui-monospace,monospace;color:var(--dim)}
.vxag-five{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:clamp(8px,1vw,14px)}
.vxag-five li{min-width:0;padding:10px 12px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}
.vxag-five span{display:block;font-size:clamp(12px,.95vw,14px);color:var(--slate);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vxag-five b{display:block;margin:3px 0;font:600 clamp(15px,1.5vw,21px)/1.25 "IBM Plex Mono",ui-monospace,monospace;color:var(--text)}
.vxag-five small{display:block;font-size:clamp(11px,.85vw,13px);line-height:1.35;color:var(--dim)}
.vxds-slide .vxag-strip{height:clamp(22px,3vh,34px)}
.vxds-slide .vxag-key{font-size:clamp(12px,.95vw,14px)}
@media(max-width:700px){.vxag-five{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.vxag-tools{width:100%}.vxds-page.vxag .vxag-tools input.vxds-in,.vxds-page.vxag .vxag-tools select.vxds-in{max-width:none;width:100%}.vxag-tools label{flex:1 1 150px}}
@media print{.vxag-tools,.vxag #vxag-intervals,.vxag #vxag-invoices,.vxag-t td.x .vxds-x{display:none!important}}

/* on a slide (visionx-present.js): four figures over the chart */
.vxds-slide{display:grid;gap:clamp(12px,1.6vw,20px);min-width:0;color:var(--text)}
.vxp-body .vxds-tiles{grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(10px,1.4vw,18px)}
.vxp-body .vxds-tile{padding:clamp(12px,1.5vw,20px);border-radius:18px}
.vxp-body .vxds-tile .l{font-size:clamp(12px,1vw,15px)}
.vxp-body .vxds-tile .v{font-size:clamp(20px,2.3vw,34px)}
.vxp-body .vxds-tile small{font-size:clamp(12px,.95vw,14px)}
.vxds-slide .vxp-chart h4{margin:0 0 8px;font:600 14px/1.2 "Space Grotesk",Inter,sans-serif}
.vxp-body .vxds-spark{display:none}
.vxds-slide .vxp-chart{padding:clamp(10px,1.2vw,18px)}
.vxds-slide .vxp-chart svg{max-height:27vh}
.vxds-slide .vxp-foot-note{margin:0}
.vxds-slide .vxds-legend{margin-top:8px}
@media(max-width:700px){.vxp-body .vxds-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* in the PDF the page is read, not used */
.vxds-page.print .vxds-btn,.vxds-page.print .vxds-pick,.vxds-page.print .vxds-top{display:none}
.vxds-page.print .vxds-card{break-inside:avoid}
@media print{.vxds-btn,.vxds-hubbtn,.vxds-back,.vxds-x,.vxds-pick,.vxds-seg{display:none!important}.vxds-page .vxds-card{break-inside:avoid}}
@media(max-width:700px){
  .vxds-page .vxds-card{padding:14px}
  .vxds-bar-r{width:100%}
  .vxds-bar-r .vxds-btn{flex:1 1 auto}
  .vxds-tile .v{font-size:19px}
  .vxds-tiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .vxds-tile{padding:12px}
}
/* on a phone the chart keeps a readable size and slides sideways */
.vxds-chartwrap{overflow-x:auto}
@media screen and (max-width:700px){.vxds-chartwrap .vxds-chart{min-width:520px}}
@media print{.vxds-chartwrap{overflow:visible}}
