/* Board deck (#/reports/board). Tokens only for UI colour (tests/test_ui_contrast.py checks the token pairs these rules use:
   ink on paper / sunk / tint, brand-2 on tint, warn-ink on amber-t, red and amber text on paper). The two table colours below are
   the client's deck palette, used with white and ink text. .card, .st, .callout, .btn, .in, .field, .seg, .stt, .x-btn, .plan-act,
   .plan-why, .plan-err and .plan-skel are shared. The page never scrolls sideways: wide tables scroll inside their own wrapper. */
.deck-screen { --deck-head: #5b2c83; --deck-band: #e9f0f9; min-width: 0; display: grid; gap: 14px; align-content: start; }
.deck-screen .sr-only, .deck-print-all .sr-only { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.deck-ready { color: var(--ink-3); font-size: 13.5px; font-weight: 600; margin: 6px 0 0; overflow-wrap: anywhere; }
.deck-pick { min-width: 220px; max-width: 100%; height: 36px; }
.deck-dismiss { margin-left: auto; }
.deck-conflict { align-items: center; flex-wrap: wrap; } .deck-conflict .btn { margin-left: auto; }
.deck-diff ul { margin: 6px 0 0; padding-left: 18px; font-size: 13px; } .deck-diff code { font-family: var(--mono); }
.deck-lint { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.deck-lint li { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; font-size: 13.5px; }
.deck-lint-m { flex: 1 1 260px; min-width: 0; overflow-wrap: anywhere; }


.rot-up svg { transform: rotate(90deg); } .rot-down svg { transform: rotate(90deg); }

/* ------------------------------------------------------------ the slide */
.deck-slide { container-type: inline-size; min-width: 0; }
.deck-sheet { position: relative; width: 100%; aspect-ratio: 16 / 9; background: var(--paper); color: var(--ink); border: 1px solid var(--line-2); border-radius: var(--r-sm); box-shadow: var(--sh); overflow: hidden; font-size: 9px; font-size: 1.2cqw; }
.deck-slide.hid .deck-sheet { opacity: .6; }
.deck-slide-title { position: absolute; left: 2%; top: 1.2%; right: 2%; margin: 0; font-size: 2.2em; line-height: 1.15; font-weight: 800; letter-spacing: -.01em; color: var(--deck-head); }
.deck-hidden-tag { position: absolute; right: 2%; top: 1%; z-index: 3; }
.deck-block { position: absolute; min-width: 0; overflow: hidden; border-radius: 3px; outline: 1px dashed transparent; }
.deck-block:hover { outline-color: var(--line-2); }
.deck-block.sel { outline: 2px solid var(--brand); outline-offset: 1px; overflow: auto; }
.deck-block.k-table, .deck-block.k-typed_table, .deck-block.k-appendix, .deck-block.k-text, .deck-block.k-commentary { overflow: auto; }
.deck-block.prov { background-image: none; }
.deck-marker { position: absolute; top: 2px; right: 2px; z-index: 4; min-width: 1.9em; height: 1.9em; padding: 0 .4em; border-radius: 1em; display: grid; place-items: center; background: var(--tint); color: var(--brand-2); font-weight: 800; font-size: 1em; border: 1px solid var(--tint-2); }
.deck-note { margin: .3em 0 0; font-style: italic; color: var(--ink-3); font-size: .95em; }
.deck-foot { position: absolute; left: 2%; right: 2%; bottom: .6%; display: flex; flex-wrap: wrap; gap: 0 1.5em; font-size: .85em; color: var(--ink-2); z-index: 1; background: var(--paper); }
.deck-wm { position: absolute; inset: 0; z-index: 5; display: grid; place-items: center; pointer-events: none; text-align: center; padding: 0 8%; font-size: 4.2em; font-weight: 800; letter-spacing: .02em; color: rgba(22, 21, 28, .08); transform: rotate(-22deg); }

/* tables */
.deck-tw { overflow: auto; max-width: 100%; }
.deck-table { border-collapse: separate; border-spacing: 0; width: 100%; font-size: 9px; font-size: 1.12cqw; font-variant-numeric: tabular-nums; }
.deck-cap { caption-side: top; text-align: left; font-weight: 750; color: var(--ink-2); padding: 0 0 .25em; }
.deck-table th, .deck-table td { padding: .2em .55em; white-space: nowrap; }
.deck-table thead th { background: var(--deck-head); color: #fff; font-weight: 700; text-align: center; border-left: 1px solid rgba(255, 255, 255, .35); }
.deck-table thead th.lab { text-align: left; border-left: 0; }
.deck-table tbody th.lab { text-align: left; font-weight: 600; }
.deck-table .lab { position: sticky; left: 0; z-index: 1; min-width: 9em; max-width: 16em; white-space: normal; }
.deck-table thead .lab { z-index: 2; }
.deck-table tbody tr > * { background: var(--paper); }
.deck-table tbody tr:nth-child(even) > * { background: var(--deck-band); }
.deck-table td.r { text-align: right; }
.deck-table .r-total > * { font-weight: 800; border-top: 1px solid var(--line-2); }
.deck-table .r-pct > * { font-style: italic; color: var(--ink-2); }
.deck-cell-btn { border: 0; background: none; padding: 0 .15em; font: inherit; color: inherit; cursor: pointer; border-radius: 3px; text-decoration: underline dotted transparent; text-underline-offset: 2px; }
.deck-cell-btn:hover { text-decoration-color: var(--ink-3); }
.deck-cell-btn.on { background: var(--tint-2); }
.deck-cell-t { padding: 0 .15em; }
.deck-screen .paren, .deck-print-all .paren { color: var(--red); }
sup.dg { color: var(--amber); font-weight: 800; margin-left: 1px; }
sup.dmj { color: var(--brand-2); font-weight: 800; margin-left: 2px; font-size: .75em; }
.deck-typed-banner { margin: 0 0 .3em; padding: .2em .6em; background: var(--amber-t); color: var(--warn-ink); font-weight: 700; border-radius: 4px; }
.deck-typed-in { height: 1.9em; width: 7em; padding: 0 .4em; text-align: right; font-size: 1em; }

/* kpi */
.deck-kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .8em; }
.deck-kpi { border: 1px solid var(--line-2); border-radius: 4px; overflow: hidden; background: var(--paper); min-width: 0; }
.deck-kpi h4 { margin: 0; padding: .3em .6em; background: var(--deck-head); color: #fff; font-size: 1.1em; }
.deck-kpi-t { width: 100%; border-collapse: collapse; font-size: 1em; font-variant-numeric: tabular-nums; }
.deck-kpi-t th { text-align: left; font-weight: 700; padding: .25em .5em; white-space: nowrap; color: var(--ink-2); }
.deck-kpi-t td { padding: .25em .4em; text-align: right; white-space: nowrap; }
.deck-kpi-t tr:nth-child(even) > * { background: var(--deck-band); }
.deck-kpi-m { display: block; font-size: .8em; color: var(--ink-3); font-weight: 700; }

/* text */
.deck-text { position: relative; font-size: 1.3em; line-height: 1.35; padding: .15em .3em; }
.deck-text.st-footnote { font-size: 1em; color: var(--ink-2); }
.deck-text.st-title { font-size: 2em; font-weight: 800; }
.deck-edit-btn { position: absolute; right: 0; top: 0; z-index: 3; opacity: 0; }
.deck-block:hover .deck-edit-btn, .deck-block.sel .deck-edit-btn, .deck-edit-btn:focus-visible { opacity: 1; }
.deck-para { margin: 0 0 .35em; overflow-wrap: anywhere; }
.deck-para.p-heading { font-weight: 800; color: var(--deck-head); }
.deck-para.p-bullet, .deck-para.p-bullet2, .deck-para.p-num { position: relative; padding-left: 1.3em; }
.deck-para.p-bullet2 { padding-left: 2.6em; }
.deck-para.p-bullet::before { content: "\2022"; position: absolute; left: .35em; }
.deck-para.p-bullet2::before { content: "\2013"; position: absolute; left: 1.6em; }
.deck-text { counter-reset: dk-n; }
.deck-para.p-num { counter-increment: dk-n; }
.deck-para.p-num::before { content: counter(dk-n) "."; position: absolute; left: 0; font-weight: 700; }
.deck-para.lint-error { border-left: 3px solid var(--red); padding-left: .5em; }
.deck-para.lint-warning { border-left: 3px solid var(--amber); padding-left: .5em; }
.deck-para.lint-error.p-bullet, .deck-para.lint-warning.p-bullet { padding-left: 1.6em; }
.deck-carried { margin-left: .6em; font-size: .8em; color: var(--ink-3); font-style: italic; }
.fig-chip { display: inline; border: 0; padding: 0 .3em; border-radius: 4px; background: var(--tint); color: var(--brand-2); font: inherit; font-weight: 700; cursor: pointer; font-variant-numeric: tabular-nums; }
span.fig-chip { cursor: default; }
.fig-chip.on { background: var(--tint-2); }
.ph-chip { display: inline; padding: 0 .3em; border-radius: 4px; background: var(--amber-t); color: var(--warn-ink); font-weight: 700; }
.deck-text.editing { overflow: visible; }
.deck-toolbar { position: sticky; top: 0; z-index: 6; display: flex; flex-wrap: wrap; gap: 6px; align-items: center; padding: 6px; margin: -2px 0 6px; background: var(--paper); border: 1px solid var(--line-2); border-radius: var(--r-sm); box-shadow: var(--sh); font-size: 13px; }
.deck-toolbar .in { width: auto; height: 30px; }
.deck-usage { margin-left: auto; color: var(--ink-3); font-weight: 650; } .deck-usage.over { color: var(--red); }
.deck-para.edit { min-height: 1.4em; padding: .15em .4em; border: 1px solid var(--line-2); border-radius: 4px; background: var(--paper); outline: none; }
.deck-para.edit:focus { border-color: var(--brand); box-shadow: var(--focus); }
.deck-para.p-bullet.edit, .deck-para.p-num.edit { padding-left: 1.6em; } .deck-para.p-bullet2.edit { padding-left: 2.8em; }

/* placeholder, appendix */
.deck-ph { padding: .6em .8em; border: 1px dashed var(--line-2); border-radius: 4px; background: var(--subtle); color: var(--ink-2); font-size: 1.1em; display: grid; gap: .4em; justify-items: start; }
.deck-ph p { margin: 0; font-style: italic; }
.deck-appx { font-size: 1.1em; padding: .2em .4em; } .deck-appx h4 { margin: .4em 0 .2em; } .deck-appx ul { margin: 0; padding-left: 1.2em; display: grid; gap: .25em; }
.deck-appx li.flag { color: var(--warn-ink); background: var(--amber-t); }
.deck-appx .muted { margin: 0; }

/* charts */
.deck-chart { margin: 0; position: relative; height: 100%; display: flex; flex-direction: column; min-width: 0; }
.deck-svg { width: 100%; height: auto; flex: 1; min-height: 0; display: block; }
.deck-svg text { font-family: var(--sans); font-size: 9px; fill: var(--ink-2); }
.deck-svg .ct { font-size: 12px; font-weight: 700; fill: var(--ink); }
.deck-svg .tk line { stroke: var(--line-2); stroke-width: 1; }
.deck-svg .ln { stroke-width: 2; }
.deck-svg .dl { fill: var(--ink); font-weight: 700; paint-order: stroke; stroke: var(--paper); stroke-width: 2.5px; stroke-linejoin: round; }
.deck-svg .mk:hover { opacity: .85; }
.deck-chart-empty { margin: 0; padding: 1em; color: var(--ink-3); font-style: italic; }
.deck-chart-toggle { position: absolute; right: 2px; top: 0; border: 0; background: var(--paper); color: var(--brand-2); font-size: .95em; font-weight: 700; padding: .1em .5em; border-radius: 4px; opacity: 0; }
.deck-chart:hover .deck-chart-toggle, .deck-chart-toggle:focus-visible, .deck-chart-toggle[aria-expanded="true"] { opacity: 1; }
.deck-chart-table { position: absolute; inset: 1.8em 0 0; background: var(--paper); overflow: auto; z-index: 2; border-top: 1px solid var(--line); }
.deck-chart-table .t { font-size: 1.1em; } .deck-chart-table .t th, .deck-chart-table .t td { padding: .15em .5em; height: auto; position: static; }

/* popover, data panel */
.deck-pop { position: fixed; z-index: 60; left: 8px; right: 8px; bottom: 8px; background: var(--paper); border: 1px solid var(--line-2); border-radius: var(--r); box-shadow: var(--sh-pop); padding: 12px 14px; display: grid; gap: 10px; max-height: 70vh; overflow: auto; font-size: 13.5px; }
.deck-pop:focus { outline: none; }
.deck-pop-h { display: flex; gap: 10px; align-items: flex-start; } .deck-pop-h > div { display: grid; gap: 2px; min-width: 0; overflow-wrap: anywhere; }
.deck-pop-v { font-size: 22px; font-weight: 800; font-variant-numeric: tabular-nums; }
.deck-pop-d { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 6px 12px; margin: 0; }
.deck-pop-d dt { color: var(--ink-3); font-weight: 700; } .deck-pop-d dd { margin: 0; overflow-wrap: anywhere; }
.deck-pop-d dd a { margin-right: 10px; }
.deck-pop-flags { display: flex; flex-wrap: wrap; gap: 4px; }
.deck-pop-a { display: flex; flex-wrap: wrap; gap: 8px; }
.deck-ovr-preview { margin: 0; font-size: 13px; color: var(--ink-2); }
.deck-data h4 { margin: 0 0 4px; font-size: 14px; }
.deck-bind { list-style: none; margin: 8px 0; padding: 0; display: grid; gap: 6px; }
.deck-bind li { display: flex; gap: 8px; align-items: center; justify-content: space-between; border: 1px solid var(--line); border-radius: var(--r-xs); padding: 6px 8px; font-size: 13px; }
.deck-bind li > div { display: grid; min-width: 0; overflow-wrap: anywhere; } .deck-bind .muted { font-size: 12.5px; }
.deck-bind select { width: auto; max-width: 55%; height: 30px; }
.deck-bind-add { display: grid; gap: 8px; margin-top: 10px; }
.in.sm { height: 30px; padding: 0 8px; }

@media (min-width: 761px) { .deck-pop { right: auto; bottom: auto; width: 360px; } }

/* 390 px: the deck is a vertical document. The rail collapses to a disclosure, each slide stacks its blocks in reading
   order, tables and charts scroll inside their own wrappers, and nothing makes the page scroll sideways. */
@media (max-width: 760px) {
  .deck-pick { width: 100%; min-width: 0; }
  .deck-slide { container-type: normal; }
  .deck-sheet { aspect-ratio: auto; overflow: visible; font-size: 14px; display: grid; gap: 12px; padding: 12px; }
  .deck-slide-title, .deck-hidden-tag, .deck-foot, .deck-block { position: static; }
  .deck-slide-title { font-size: 19px; }
  .deck-block { width: auto !important; height: auto !important; overflow: visible; }
  .deck-block.sel, .deck-block.k-table, .deck-block.k-typed_table, .deck-block.k-appendix, .deck-block.k-text, .deck-block.k-commentary { overflow: visible; }
  .deck-foot { background: none; font-size: 12.5px; flex-direction: column; }
  .deck-wm { font-size: 22px; position: absolute; }
  .deck-text { font-size: 14px; } .deck-table { font-size: 13px; } .deck-kpi-t { font-size: 13px; } .deck-appx, .deck-ph { font-size: 13.5px; }
  .deck-tw { overflow-x: auto; }
  .deck-kpis { grid-template-columns: minmax(0, 1fr); }
  .deck-marker { font-size: 12px; }
  .deck-edit-btn { position: static; opacity: 1; }
  .deck-chart { height: auto; overflow-x: auto; }
  .deck-svg { min-width: calc(var(--cw, 300) * .9px); flex: none; }
  .deck-chart-toggle { position: static; opacity: 1; align-self: flex-start; }
  .deck-chart-table { position: static; }
}

/* the print copy lives off screen until the browser prints it */
.deck-print-all { position: absolute; left: -99999px; top: 0; width: 10in; }

/* ============================================================ T7: collaboration panels (comments, history, checks, AI draft) */
.th-panel, .hist-panel, .chk-panel, .ai-panel { display: grid; gap: 10px; min-width: 0; align-content: start; }
.th-panel h4, .chk-panel h4, .th-compose h4 { margin: 6px 0 0; font-size: 14px; }
.th-filters { display: flex; flex-wrap: wrap; gap: 6px; }
.th-filters .n { margin-left: 4px; font-weight: 800; }
.th-list { display: grid; gap: 10px; }
.thread { border: 1px solid var(--line); border-radius: var(--r-sm); padding: 10px 12px; display: grid; gap: 8px; background: var(--paper); min-width: 0; }
.thread.outdated { border-style: dashed; }
.th-h { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.th-go { margin-left: auto; max-width: 100%; overflow-wrap: anywhere; text-align: left; }
.th-quote { margin: 0; padding: 4px 10px; border-left: 3px solid var(--line-2); color: var(--ink-2); font-size: 13.5px; overflow-wrap: anywhere; }
.th-quote.struck { text-decoration: line-through; }
.th-cs { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.th-c-h { display: flex; flex-wrap: wrap; gap: 4px 10px; align-items: center; font-size: 13px; }
.th-c-h .btn { margin-left: auto; }
.th-body { margin: 2px 0 0; white-space: pre-wrap; overflow-wrap: anywhere; font-size: 13.5px; color: var(--ink); }
.th-c.gone .muted { font-style: italic; }
.th-mentions { margin: 4px 0 0; display: flex; gap: 4px; flex-wrap: wrap; }
.th-closed { margin: 0; font-size: 13px; }
.th-acts, .th-row { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.th-row .in { flex: 1 1 140px; min-width: 0; }
.th-reply { display: grid; gap: 6px; }
.th-reply textarea, .th-compose textarea { resize: vertical; }
.th-compose { border-top: 1px solid var(--line); padding-top: 10px; display: grid; gap: 8px; }
.th-kinds { display: flex; gap: 14px; flex-wrap: wrap; }
.th-wait { margin: 0; }

.sg-diff { border: 1px solid var(--line); border-radius: var(--r-xs); background: var(--sunk); padding: 8px 10px; display: grid; gap: 4px; }
.sg-label { font-size: 12.5px; font-weight: 800; color: var(--ink-2); }
.sg-line { margin: 0; font-size: 13.5px; color: var(--ink); overflow-wrap: anywhere; }
.sg-lines { display: grid; gap: 2px; }
.sg-del { background: var(--red-t); color: var(--ink); text-decoration: line-through; }
.sg-add { background: var(--green-t); color: var(--ink); text-decoration: underline; }
.sg-keep { color: var(--ink-2); }
p.sg-keep { padding-left: 0; }

.hist-filters { display: flex; flex-wrap: wrap; gap: 8px; align-items: end; }
.hist-filters .field { margin: 0; min-width: 0; }
.hist-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.hist-row { border: 1px solid var(--line); border-radius: var(--r-xs); padding: 8px 10px; display: grid; gap: 4px; min-width: 0; }
.hist-h { display: flex; flex-wrap: wrap; gap: 4px 10px; align-items: center; font-size: 13px; }
.hist-who, .hist-sum { margin: 0; font-size: 13.5px; overflow-wrap: anywhere; }
.hist-audit summary { cursor: pointer; font-weight: 750; font-size: 13.5px; }

.ai-reasons { margin: 6px 0 0; padding-left: 18px; font-size: 13px; }
.ai-block { margin: 0; font-size: 13.5px; }

/* ============================================================ screen layout (dk-): the slide stage first */
.deck-screen { gap: 10px; }
.dk-acts { flex: 0 1 auto; justify-content: flex-end; }
.dk-goto { display: flex; flex-wrap: wrap; gap: 4px 8px; }
@media (max-width: 760px) {
}

/* ============================================================ board v2 (dk-): the browser form of the PowerPoint
   Every class below is prefixed dk- (an earlier deck class, mj, clashed with manual.css; tests/js/deck_v2_render.test.mjs scans
   this section). Sizes follow the PowerPoint, which is 13.33 in wide: 1em of a v2 slide is 1.45cqw, so the title (2.3em) is
   32 pt, the KPI value (3em) 44 pt, bullets 14 to 20 pt (bulletPt picks the largest that fits the box), chips and chart text
   13 pt, appendix tables 10 pt, all in proportion to the slide width. The only chrome is the logo and the page number;
   a deck that is not published adds a quiet Draft chip. State, fingerprint and provisional months stay in the screen header. */
.deck-screen, .deck-print-all { --dk-good-t: #e1f2ea; --dk-bad-t: #fbe4e0; --dk-flat-t: #efedea; --dk-total-t: #efe8f6; }
.dk-good { --dk-c: #0f7a4f; --dk-ink: #0f7a4f; --dk-t: var(--dk-good-t); }
.dk-bad { --dk-c: #c0392b; --dk-ink: #c0392b; --dk-t: var(--dk-bad-t); }
.dk-flat { --dk-c: #a8a29e; --dk-ink: #57534e; --dk-t: var(--dk-flat-t); }
.dk-total { --dk-c: #5b2c83; --dk-ink: #5b2c83; --dk-t: var(--dk-total-t); }

.deck-sheet.dk-sheet { font-size: 9px; font-size: 1.45cqw; }
.dk-v2 .dk-title { left: 4.5%; top: 1.6%; right: 17%; height: 10.4%; display: flex; align-items: center; font-size: 2.3em; line-height: 1.08; letter-spacing: 0; overflow: hidden; }
.dk-sheet::before { content: ""; position: absolute; left: 4.5%; right: 4.5%; top: 12.5%; height: 2px; background: var(--deck-head); }
.dk-logo { position: absolute; left: 86%; top: 2.1%; width: 11%; height: auto; z-index: 3; }
.dk-logo-cover { left: 30%; top: 27.6%; width: 40%; }
.dk-sec-cover .dk-sheet::before { display: none; }
.dk-sec-cover .dk-title { left: 7.5%; right: 7.5%; top: 44%; height: 14.7%; justify-content: center; text-align: center; font-size: 3.1em; }
.dk-cover-rule { position: absolute; left: 43.25%; width: 13.5%; top: 60%; height: .7%; background: var(--deck-head); }
.dk-cover-band { position: absolute; left: 0; right: 0; bottom: 0; height: 4.7%; background: var(--deck-head); }
.dk-sec-cover .deck-block { left: 11% !important; width: 78% !important; top: 63% !important; height: 18% !important; }
.dk-sec-cover .deck-text { text-align: center; font-size: 1.55em; color: var(--ink-2); }
.dk-page { position: absolute; right: 3.6%; bottom: 2%; font-size: .85em; line-height: 1; color: var(--ink-3); font-variant-numeric: tabular-nums; }
.dk-draft { position: absolute; right: 3.4%; top: 6.7%; z-index: 3; font-size: .8em; line-height: 1.4; padding: 0 .7em; border: 1px solid var(--line-2); border-radius: 1em; color: var(--ink-3); }
.dk-sec-cover .dk-draft { top: 3.3%; }
.dk-v2 .deck-foot { left: 4.5%; right: 12%; bottom: 2.2%; font-size: .7em; background: none; }
.dk-v2 .deck-text { font-size: 1.35em; line-height: 1.3; }
.dk-v2 .deck-block.k-bullets, .dk-v2 .deck-block.k-statement { overflow: auto; }
.dk-v2 .deck-svg text { font-size: 12.5px; }

/* kpi cards */
.dk-cards { display: grid; grid-template-columns: repeat(var(--dk-n, 4), minmax(0, 1fr)); gap: .9em; height: 100%; }
.dk-card { position: relative; display: flex; flex-direction: column; gap: .12em; min-width: 0; padding: .75em .7em .5em; background: #f7f5fa; border: 1px solid #ddd5e8; border-radius: .45em; overflow: hidden; color: #1c1917; }
.dk-card::before { content: ""; position: absolute; left: 12%; right: 12%; top: 0; height: .26em; background: #5b2c83; }
.dk-card-l { margin: 0; font-size: 1em; font-weight: 700; color: #57534e; }
.dk-card-v { display: flex; align-items: center; gap: .4em; min-width: 0; }
.dk-big { font-size: 3em; font-weight: 800; line-height: 1.08; font-variant-numeric: tabular-nums; }
.dk-cards[data-count="5"] .dk-big, .dk-cards[data-count="6"] .dk-big { font-size: 2.6em; }
.dk-big .deck-cell-btn { font: inherit; padding: 0; }
.dk-spark { flex: 1 1 0; min-width: 0; max-width: 55%; height: 2em; }
.dk-spark polyline { stroke: #5b2c83; stroke-width: 2; vector-effect: non-scaling-stroke; stroke-linejoin: round; stroke-linecap: round; }
.dk-spark circle { fill: #5b2c83; }
.dk-card-p { margin: 0 0 .15em; font-size: .93em; color: #57534e; }
.dk-chips { display: grid; gap: .22em; justify-items: start; min-width: 0; }
.dk-chip { display: inline-flex; align-items: center; gap: .4em; max-width: 100%; padding: .12em .6em; border-radius: 1em; font-size: .93em; white-space: nowrap; overflow: hidden; background: var(--dk-t); color: #57534e; }
.dk-chip-n { color: var(--dk-ink); font-weight: 800; font-variant-numeric: tabular-nums; }
.dk-chip .deck-cell-btn { padding: 0; }
.dk-arrow { color: var(--dk-ink); font-size: .85em; }
.dk-chip-t { overflow: hidden; text-overflow: ellipsis; }
.dk-ytd { display: flex; flex-wrap: wrap; align-items: center; gap: .1em .5em; margin-top: auto; padding-top: .3em; }
.dk-ytd-l { font-size: .93em; color: #57534e; }
.dk-ytd-v { font-size: 1.15em; font-weight: 800; font-variant-numeric: tabular-nums; }
.dk-ytd-v .deck-cell-btn { font: inherit; padding: 0; }
.dk-empty { margin: 0; padding: 1em; color: var(--ink-3); font-style: italic; }

/* ranked bars and the waterfall */
.dk-fig { margin: 0; height: 100%; display: flex; min-width: 0; }
.dk-svg { width: 100%; height: auto; flex: 1; min-height: 0; display: block; }
.dk-svg text { font-family: var(--sans); font-size: 13px; fill: #57534e; }
.dk-svg .dk-ct { font-size: 16px; font-weight: 700; fill: #1c1917; }
.dk-svg .dk-cap { font-size: 14px; }
.dk-svg .dk-cl { fill: #1c1917; }
.dk-svg .dk-vl { font-size: 14px; font-weight: 700; fill: #1c1917; font-variant-numeric: tabular-nums; }
.dk-svg .dk-vl.dk-in { fill: #fff; }
.dk-svg .dk-vb.dk-t-good { fill: #0f7a4f; } .dk-svg .dk-vb.dk-t-bad { fill: #c0392b; }
.dk-svg .dk-dg { fill: #c0392b; }
.dk-svg .dk-tk line { stroke: #e7e5e4; stroke-width: 1; }
.dk-svg .dk-zero { stroke: #8a8580; stroke-width: 1.2; }
.dk-svg .dk-link { stroke: #a8a29e; stroke-width: 1; stroke-dasharray: 3 3; }
.dk-bar .dk-rect, .dk-step .dk-rect, .dk-sw { fill: var(--dk-c); }
.dk-val { cursor: pointer; outline: none; }
.dk-val .dk-hit { fill: transparent; }
.dk-val:hover text, .dk-val:focus-visible text, .dk-val.on text { text-decoration: underline; }
.dk-val:focus-visible .dk-hit { stroke: var(--brand); stroke-width: 1.5; }

/* bullets */
.dk-bullets { position: relative; height: 100%; overflow: auto; padding: .1em .3em; line-height: 1.3; color: #1c1917; }
.dk-bl { list-style: none; margin: 0; padding: 0; display: grid; gap: .5em; }
.dk-bullet { position: relative; padding-left: 1.15em; overflow-wrap: anywhere; }
.dk-bullet::before { content: ""; position: absolute; left: 0; top: .5em; width: .52em; height: .52em; border-radius: 50%; background: var(--dk-m, #8a8580); }
.dk-tone-good { --dk-m: #0f7a4f; } .dk-tone-bad { --dk-m: #c0392b; } .dk-tone-neutral { --dk-m: #8a8580; }
.dk-p-heading { padding-left: 0; font-weight: 800; color: var(--deck-head); }
.dk-p-heading::before, .dk-p-p::before { display: none; }
.dk-p-p { padding-left: 0; }
.dk-p-bullet2 { margin-left: 1.2em; }
.dk-bullet.lint-error { border-left: 3px solid var(--red); padding-left: 1.4em; }
.dk-bullet.lint-warning { border-left: 3px solid var(--amber); padding-left: 1.4em; }
.dk-bullet .fig-chip { font-weight: 800; }
.dk-bullet:hover .fig-chip { background: var(--tint-2); }
.dk-edit { position: absolute; right: 0; top: 0; z-index: 3; opacity: 0; }
.dk-bullets:hover .dk-edit, .deck-block.sel .dk-edit, .dk-edit:focus-visible { opacity: 1; }
.dk-bullets-edit { height: 100%; overflow: auto; font-size: 1.05em; }
.dk-note { margin: 0 0 .4em; padding: .3em .6em; background: var(--amber-t); color: var(--warn-ink); border-radius: 4px; font-size: .85em; }

/* the statement of results */
.dk-stmt-w { height: 100%; overflow: auto; max-width: 100%; }
.dk-stmt { border-collapse: separate; border-spacing: 0; width: 100%; font-size: .78em; font-variant-numeric: tabular-nums; }
.dk-stmt-cap { caption-side: top; text-align: left; font-weight: 750; color: var(--ink-2); padding: 0 0 .25em; }
.dk-stmt th, .dk-stmt td { padding: .22em .6em; }
.dk-stmt thead th { background: #5b2c83; color: #fff; font-weight: 700; text-align: center; border-left: 1px solid rgba(255, 255, 255, .35); }
.dk-stmt thead th.dk-no, .dk-stmt thead th.dk-lab { text-align: left; border-left: 0; }
.dk-stmt tbody tr > * { background: #fff; }
.dk-stmt tbody tr:nth-child(even) > * { background: var(--deck-band); }
.dk-stmt tbody th { text-align: left; font-weight: 600; }
.dk-stmt .dk-no { width: 3.2em; white-space: nowrap; color: var(--ink-2); }
.dk-stmt .dk-lab { min-width: 17em; }
.dk-stmt td.dk-r { text-align: right; white-space: nowrap; }
.dk-r-total > * { font-weight: 800; border-top: 1px solid var(--line-2); }
.dk-na > * { color: var(--ink-3); }
.dk-na-t { font-style: italic; text-align: left; }

/* the data tab's list of figures */
.dk-figs li { align-items: flex-start; }
.dk-figv { font-weight: 800; font-variant-numeric: tabular-nums; white-space: nowrap; }


/* a two-line title (the long ones) is set smaller so it fits the title box above the rule */
.dk-v2 .dk-title.dk-title-2 { font-size: 1.75em; line-height: 1.1; }
.dk-sec-cover .dk-title.dk-title-2 { font-size: 2.4em; }
/* dense appendix tables: the PowerPoint's 10 pt rows */
.dk-v2 .deck-table th, .dk-v2 .deck-table td { padding: .1em .5em; line-height: 1.15; }
@media (min-width: 761px) { .dk-v2 .deck-table { font-size: 1.08cqw; } }
.dk-v2 .deck-caption, .dk-v2 .deck-cap { padding-bottom: .15em; }
.dk-stmt th, .dk-stmt td { padding: .1em .6em; line-height: 1.2; }
.dk-stmt { font-size: .74em; }
.dk-v2 .deck-block.k-table { height: auto !important; overflow: visible; }
/* the engine's per-block notes (for example "No published FY budget") belong to the Checks tab, not to a board slide */
.dk-v2 .deck-note { display: none; }
/* KPI cards: tighter, so the value, three comparisons and the year to date all fit the box */
.dk-card { padding: .55em .6em .4em; gap: .05em; }
.dk-card-l { font-size: .95em; }
.dk-big { font-size: 2.5em; line-height: 1; }
.dk-cards[data-count="5"] .dk-big, .dk-cards[data-count="6"] .dk-big { font-size: 2.2em; }
.dk-spark { height: 1.6em; }
.dk-card-p { margin: 0; font-size: .85em; }
.dk-chips { gap: .14em; }
.dk-chip { font-size: .85em; padding: .08em .5em; }
.dk-ytd { padding-top: .15em; gap: .05em .4em; }
.dk-ytd-l { font-size: .85em; }
.dk-ytd-v { font-size: 1.05em; }
.dk-cards[data-count="5"] .dk-chip-t + .dk-chip-t, .dk-cards[data-count="6"] .dk-chip-t + .dk-chip-t { display: none; }
.dk-cards[data-count="5"] .dk-ytd .dk-chip, .dk-cards[data-count="6"] .dk-ytd .dk-chip { display: none; }

@media (max-width: 760px) {
  .deck-sheet.dk-sheet { font-size: 15px; padding: 14px 14px 40px; }
  .dk-sheet::before, .dk-cover-rule, .dk-cover-band { display: none; }
  .dk-v2 .dk-title, .dk-sec-cover .dk-title { position: static; height: auto; font-size: 1.5em; order: -1; justify-content: flex-start; text-align: left; overflow: visible; }
  .dk-logo, .dk-logo-cover { position: static; width: 120px; order: -2; justify-self: start; }
  .dk-sec-cover .dk-logo-cover { width: 62%; justify-self: center; }
  .dk-sec-cover .dk-title { justify-content: center; text-align: center; font-size: 1.7em; }
  .dk-sec-cover .deck-block { position: static; width: auto !important; height: auto !important; }
  .dk-page, .dk-draft { position: static; justify-self: end; order: 99; }
  .dk-v2 .deck-text { font-size: 16px; }
  .dk-cards { grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); height: auto; }
  .dk-big, .dk-cards[data-count="5"] .dk-big { font-size: 2.3em; }
  .dk-chip { white-space: nowrap; font-size: .9em; }
  .dk-chip-t + .dk-chip-t { display: none; }
  .dk-ytd .dk-chip { display: inline-flex; }
  .dk-v2 .dk-title.dk-title-2 { font-size: 1.5em; }
  .dk-fig { height: auto; overflow-x: auto; }
  .dk-svg { min-width: calc(var(--cw, 300) * .9px); flex: none; }
  .dk-bullets, .dk-bullets-edit { height: auto; overflow: visible; font-size: 16px !important; }
  .dk-edit { position: static; opacity: 1; }
  .dk-stmt-w { height: auto; overflow-x: auto; }
  .dk-stmt { font-size: 13px; min-width: 640px; }
  .dk-v2 .deck-foot { position: static; font-size: 12.5px; }
}

