/* Calm Instrument Slice 7: Innova Central — staff content and tables (.cx). Operational, dense and precise: the
   Calm Instrument foundations with the Graphite Ledger's density. Tables are the staff page's natural form; a box
   only where it makes a unit (a diagnostic panel, an inline task). States are a glyph and a word, never a badge for
   everything. A Vitals Score is a number in the text colour: never green for healthy or red for urgent, as on the
   partner's Customers list. Monospace (a system stack) only for ids, references, pins and codes. Lime only for the
   one contextual primary action a page genuinely has; destructive actions in the error colour. Tokens only; every
   selector scoped to .cx. Replaces the pages' inline <style> blocks, whose selectors (table, th, h1, a, .btn) were
   global while the page was shown. */

/* ---- Frame ----------------------------------------------------------------------------------------------- */
/* Aligned with the shell's staff header (.ci-staffhead): the same side padding, so a page's content starts under its title. */
.cx { box-sizing: border-box; max-width: calc(1280px + 2 * var(--s7)); padding: var(--s6) var(--s7) var(--s9); color: var(--text); }
.cx-wide { max-width: calc(1460px + 2 * var(--s7)); }
.cx-crumb { margin: 0 0 var(--s3); font-size: var(--fs-sm); line-height: var(--lh-sm); }
.cx-crumb a { color: var(--text-2); text-decoration: none; }
.cx-crumb a:hover { color: var(--text); text-decoration: underline; text-underline-offset: 3px; }
.cx .ci-ph { margin-bottom: var(--s6); }
.cx .ci-ph-desc { display: flex; flex-wrap: wrap; align-items: center; gap: 4px var(--s3); font-size: var(--fs-sm); line-height: var(--lh-sm); }
.cx-h1-mono h1 { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace; letter-spacing: 0; }

.cx-sec { margin: 0 0 var(--s7); }
.cx-sec > h2, .cx-h2 { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px var(--s3); margin: 0 0 var(--s3);
    font-size: var(--fs-label); line-height: var(--lh-label); font-weight: var(--fw-strong); letter-spacing: .08em; text-transform: uppercase; color: var(--muted); }
.cx-sec > h2 .cx-count { letter-spacing: 0; text-transform: none; font-weight: 600; color: var(--text-2); }
.cx-sec > p, .cx-p { margin: 0 0 var(--s3); max-width: 78ch; font-size: var(--fs-sm); line-height: var(--lh-sm); color: var(--text-2); }
.cx-note { margin: var(--s2) 0 0; max-width: 78ch; font-size: var(--fs-meta); line-height: var(--lh-meta); color: var(--muted); }
.cx-dim { color: var(--muted); }
.cx-sec .cx-tablewrap + .cx-p, .cx-sec .cx-list + .cx-p { margin-top: var(--s4); }
.cx-mono { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace; font-size: var(--fs-meta); letter-spacing: 0; overflow-wrap: anywhere; }
.cx a.cx-ref { color: var(--text); text-decoration: underline; text-decoration-color: var(--line-strong); text-underline-offset: 3px; }
.cx a.cx-ref:hover { text-decoration-color: var(--text-2); }
.cx-cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(380px, 1fr)); gap: var(--s5); align-items: start; }

/* A unit of operation or diagnosis: the one place a box is earned. */
.cx-panel { margin: 0 0 var(--s5); padding: var(--s4) var(--s5); border: 1px solid var(--line-strong); border-radius: var(--r-lg); }
.cx-panel > h2, .cx-panel > header > h2 { margin: 0; font-size: var(--fs-heading); line-height: var(--lh-heading); font-weight: var(--fw-strong); color: var(--text); }
.cx-panel > header { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 4px var(--s4); margin: 0 0 var(--s3); }
.cx-panel > header .cx-scope { font-size: var(--fs-meta); color: var(--muted); }
.cx-cols > .cx-panel { margin-bottom: 0; }

/* ---- Figures: a compact row, not decorative cards ---------------------------------------------------------- */
.cx-figs { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); margin: 0 0 var(--s7); border-top: 1px solid var(--line-strong); border-bottom: 1px solid var(--line-strong); }
.cx-figs > div { padding: var(--s3) var(--s4) var(--s3) 0; }
.cx-figs > div + div { padding-left: var(--s4); border-left: 1px solid var(--line); }
.cx-figs dt { font-size: var(--fs-meta); line-height: var(--lh-meta); color: var(--muted); }
.cx-figs dd { margin: 2px 0 0; font-size: var(--fs-title); line-height: var(--lh-title); font-weight: var(--fw-strong); font-variant-numeric: tabular-nums; color: var(--text); }
.cx-figs dd small { display: block; font-size: var(--fs-meta); line-height: var(--lh-meta); font-weight: 500; color: var(--muted); }

/* ---- Alerts: a left rule and a word, never a slab of colour ----------------------------------------------- */
.cx-alert { margin: 0 0 var(--s5); padding: var(--s2) 0 var(--s2) var(--s4); border-left: 3px solid var(--caution); max-width: 90ch; font-size: var(--fs-sm); line-height: var(--lh-sm); color: var(--text); }
.cx-alert strong { font-weight: var(--fw-strong); }
.cx-alert-err { border-left-color: var(--error); }
.cx-alert-ok { border-left-color: var(--progress); }

/* ---- Status: a glyph and a word -------------------------------------------------------------------------- */
.cx-st { display: inline-flex; align-items: baseline; gap: 6px; font-size: var(--fs-sm); line-height: var(--lh-sm); font-weight: 600; white-space: nowrap; color: var(--text-2); }
.cx-st-ok { color: var(--progress); }
.cx-st-wait { color: var(--caution); }
.cx-st-run { color: var(--workflow); }
.cx-st-bad { color: var(--error); }
.cx-st-off { color: var(--muted); }

/* A Vitals Score: the number, neutral, as on the partner's Customers list. */
.cx-score { font-size: var(--fs-heading); line-height: var(--lh-heading); font-weight: var(--fw-strong); font-variant-numeric: tabular-nums; color: var(--text); }

/* ---- Tables: dense, aligned, hairlines ------------------------------------------------------------------- */
.cx-tablewrap { position: relative; overflow-x: auto; border: 1px solid var(--line-strong); border-radius: var(--r-lg); }
.cx-table { width: 100%; border-collapse: collapse; font-size: var(--fs-sm); line-height: var(--lh-sm); }
.cx-table caption { padding: 0; text-align: left; }
.cx-table th, .cx-table td { padding: var(--s2) var(--s3); text-align: left; vertical-align: top; border-bottom: 1px solid var(--line); }
.cx-table thead th { padding-top: var(--s2); padding-bottom: var(--s2); font-size: var(--fs-label); line-height: var(--lh-label); font-weight: var(--fw-strong);
    letter-spacing: .08em; text-transform: uppercase; color: var(--muted); white-space: nowrap; background: var(--fill-1); border-bottom-color: var(--line-strong); }
.cx-table tbody tr:last-child > td, .cx-table tbody tr:last-child > th { border-bottom: 0; }
.cx-table tbody tr:hover > td, .cx-table tbody tr:hover > th { background: var(--fill-1); }
.cx-table tbody th { font-weight: var(--fw-strong); color: var(--text); }
.cx-table .cx-num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.cx-table .cx-date { white-space: nowrap; font-variant-numeric: tabular-nums; color: var(--text-2); }
.cx-table .cx-act { text-align: right; white-space: nowrap; }
.cx-table .cx-name a { color: var(--text); font-weight: var(--fw-strong); text-decoration: none; }
.cx-table .cx-name a:hover { text-decoration: underline; text-underline-offset: 3px; }
.cx-table .cx-sub { display: block; margin-top: 2px; font-size: var(--fs-meta); line-height: var(--lh-meta); font-weight: 500; color: var(--muted); }
.cx-trunc { display: block; max-width: 44ch; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cx-table tr.cx-busy > td, .cx-table tr.cx-busy > th { background: var(--tint-workflow); }
/* An inline task opened from a row (send, confirm, run in-depth): its own row beneath, full width. */
.cx-table tr.cx-task > td { padding: var(--s3) var(--s4) var(--s4); background: var(--fill-1); border-bottom: 1px solid var(--line-strong); }

/* ---- Controls in a row: one action that is the point, the rest behind ⋯ ---------------------------------- */
.cx-rowact { display: inline-flex; align-items: center; justify-content: flex-end; gap: var(--s2); }
.cx-more { position: relative; display: inline-block; }
.cx-more > summary { list-style: none; display: inline-flex; align-items: center; justify-content: center; min-width: var(--h-control-sm); min-height: var(--h-control-sm);
    padding: 0 var(--s2); border: 1px solid var(--line-strong); border-radius: var(--r-md); color: var(--text-2); font-weight: var(--fw-strong); cursor: pointer; }
.cx-more > summary::-webkit-details-marker { display: none; }
.cx-more > summary:hover { color: var(--text); border-color: var(--control); }
.cx-more[open] > summary { color: var(--text); border-color: var(--control); background: var(--fill-2); }
.cx-more-list { position: absolute; right: 0; z-index: 5; min-width: 200px; margin: 4px 0 0; padding: var(--s1); list-style: none; text-align: left;
    background: var(--raised); border: 1px solid var(--line-strong); border-radius: var(--r-md); box-shadow: var(--shadow-overlay); }
.cx-more-list li + li { margin-top: 2px; }
.cx-more-list a, .cx-more-list button { display: block; width: 100%; padding: 6px var(--s3); border: 0; border-radius: var(--r-sm); background: transparent; color: var(--text);
    font: 600 var(--fs-sm)/var(--lh-sm) var(--font); text-align: left; text-decoration: none; cursor: pointer; white-space: nowrap; }
.cx-more-list a:hover, .cx-more-list button:hover { background: var(--fill-2); }
.cx-more-list .cx-danger { color: var(--error); }
.cx-more-list hr { margin: var(--s1) 0; border: 0; border-top: 1px solid var(--line); }

/* Inline tasks: a question, its consequence, and its two answers. */
.cx-task { max-width: 72ch; }
.cx-task p { margin: 0 0 var(--s2); font-size: var(--fs-sm); line-height: var(--lh-sm); color: var(--text); }
.cx-task .cx-note { margin: var(--s2) 0 0; }
.cx-task-danger > p:first-child { color: var(--error); }
.cx-mt0 { margin-top: 0; }
.cx-mt2 { margin-top: var(--s2); }
.cx-quote { margin: 0 0 var(--s3); padding-left: var(--s3); border-left: 2px solid var(--line-strong); font-style: italic; }
.cx-mt4 { margin-top: var(--s4); }
/* A destructive action, set apart from the others below a rule. */
.cx-apart { margin-top: var(--s5); padding-top: var(--s4); border-top: 1px solid var(--line-strong); }
.cx-taskrow { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s2); }
.cx-taskrow .ci-input { flex: 1 1 260px; min-width: 0; max-width: 420px; }
.cx-check, .cx-radio { display: flex; align-items: flex-start; gap: var(--s2); margin: var(--s2) 0 0; font-size: var(--fs-sm); line-height: var(--lh-sm); color: var(--text-2); cursor: pointer; }
.cx-check input, .cx-radio input { margin: 3px 0 0; accent-color: var(--text); flex: none; }
.cx-fieldset { margin: var(--s3) 0 0; padding: 0; border: 0; min-width: 0; }
.cx-fieldset legend { padding: 0; margin: 0 0 2px; font-size: var(--fs-label); font-weight: var(--fw-strong); letter-spacing: .08em; text-transform: uppercase; color: var(--muted); }

/* ---- Filters: search and a row of views -------------------------------------------------------------------- */
.cx-filters { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s2) var(--s3); margin: 0 0 var(--s5); }
.cx-filters .ci-input { flex: 1 1 260px; min-width: 0; max-width: 420px; }
.cx-views { display: flex; flex-wrap: wrap; gap: 4px; }
.cx-views a, .cx-views button { display: inline-flex; align-items: center; min-height: var(--h-control-sm); padding: 0 var(--s3); border: 1px solid var(--line-strong); border-radius: var(--r-md);
    background: transparent; color: var(--text-2); font: 600 var(--fs-sm)/var(--lh-sm) var(--font); text-decoration: none; white-space: nowrap; cursor: pointer; }
.cx-views a:hover, .cx-views button:hover { color: var(--text); border-color: var(--control); }
.cx-views [aria-current="page"], .cx-views [aria-pressed="true"] { color: var(--text); border-color: var(--text-2); background: var(--fill-2); }

/* ---- Definition lists, timelines ------------------------------------------------------------------------- */
.cx-dl { display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: 6px var(--s5); margin: 0; font-size: var(--fs-sm); line-height: var(--lh-sm); }
.cx-dl dt { color: var(--muted); }
.cx-dl dd { margin: 0; color: var(--text); overflow-wrap: anywhere; }
.cx-timeline { list-style: none; margin: 0; padding: 0; }
.cx-timeline li { display: grid; grid-template-columns: 20px minmax(0, 1fr) auto; gap: 0 var(--s2); padding: 5px 0; font-size: var(--fs-sm); line-height: var(--lh-sm); }
.cx-timeline .cx-g { color: var(--muted); }
.cx-timeline li.cx-done .cx-g { color: var(--progress); }
.cx-timeline li.cx-todo { color: var(--muted); }
.cx-timeline .cx-when { font-variant-numeric: tabular-nums; color: var(--muted); white-space: nowrap; }
.cx-timeline .cx-tn { grid-column: 2 / -1; font-size: var(--fs-meta); line-height: var(--lh-meta); color: var(--muted); overflow-wrap: anywhere; }
.cx-list { list-style: none; margin: 0 0 var(--s3); padding: 0; }
.cx-list li { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px var(--s3); padding: 6px 0; border-bottom: 1px solid var(--line); font-size: var(--fs-sm); line-height: var(--lh-sm); }
.cx-list li:last-child { border-bottom: 0; }
.cx-list li > :first-child { flex: 1 1 auto; min-width: 0; overflow-wrap: anywhere; color: var(--text); }
.cx-form { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s2); margin: var(--s3) 0 0; }
.cx-form .ci-input, .cx-form .ci-select { flex: 1 1 220px; min-width: 0; }
.cx-formgrid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: var(--s4); margin: 0 0 var(--s4); }
.cx-formgrid label { display: grid; gap: 4px; font-size: var(--fs-sm); line-height: var(--lh-sm); font-weight: var(--fw-strong); color: var(--text); }
.cx-formgrid .cx-note { margin: 0; font-weight: 500; }

/* ---- Empty and danger ------------------------------------------------------------------------------------- */
.cx-empty { margin: 0 0 var(--s5); padding: var(--s4) 0; font-size: var(--fs-sm); line-height: var(--lh-sm); color: var(--text-2); }
.cx-danger-zone { margin-top: var(--s8); padding-top: var(--s5); border-top: 1px solid var(--line-strong); }
.cx-danger-zone > h2 { color: var(--error); }

/* ---- The diagnostic panels: codes and references, dense and monospaced ----------------------------------- */
.cx-diag { width: 100%; border-collapse: collapse; font-size: var(--fs-meta); line-height: var(--lh-meta); }
.cx-diag th, .cx-diag td { padding: 4px 0; text-align: left; vertical-align: top; border-bottom: 1px solid var(--line); }
.cx-diag tr:last-child th, .cx-diag tr:last-child td { border-bottom: 0; }
.cx-diag th { width: 210px; padding-right: var(--s4); font-weight: 600; color: var(--muted); white-space: nowrap; }
.cx-diag td { color: var(--text); font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace; overflow-wrap: anywhere; }
.cx-diag-period { margin: var(--s4) 0 var(--s1); font-size: var(--fs-meta); line-height: var(--lh-meta); color: var(--text-2); }
.cx-diag-entry { margin: var(--s2) 0 0; padding: var(--s2) 0 0; border-top: 1px solid var(--line); }
.cx-diag-entry > summary { cursor: pointer; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace; font-size: var(--fs-meta); color: var(--text); overflow-wrap: anywhere; }
.cx-diag-entry ul { margin: var(--s1) 0 0; padding-left: var(--s4); font-size: var(--fs-meta); line-height: var(--lh-meta); color: var(--text-2); }
.cx-integrity { color: var(--error); font-family: var(--font); font-weight: var(--fw-strong); }

/* ---- Clients ---------------------------------------------------------------------------------------------- */
.cx-grow { flex: 1 1 360px; margin: 0; }
.cx-mb { margin-bottom: var(--s4); }
.cx-clients { min-width: 1000px; }
.cx-clients .cx-top { width: 230px; overflow-wrap: anywhere; }
.cx-clients td.cx-date { width: 170px; white-space: normal; }
.cx-clients td.cx-date > span:first-child { white-space: nowrap; }
.cx-clients .cx-act { width: 1%; }
.cx-sent { display: inline-block; margin-left: 6px; vertical-align: 1px; line-height: 0; }
.cx-sent svg { width: 14px; height: 11px; fill: none; stroke: var(--progress); stroke-width: 1.3; stroke-linejoin: round; stroke-linecap: round; }
.cx-run { display: inline-flex; align-items: center; justify-content: flex-end; gap: var(--s2); max-width: 320px; }
.cx-runtext { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: var(--fs-meta); color: var(--text-2); }
/* The Vitals pulse, wherever Central is working (it lived under .staff). */
.cx .pulse { display: block; width: 85px; height: 17px; flex: 0 0 auto; }
.cx .pulse .trace { fill: none; stroke: var(--tint-brand); stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.cx .pulse .beat { fill: none; stroke: var(--lime); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 24 300; animation: cx-pulse 1.5s linear infinite; }
@keyframes cx-pulse { from { stroke-dashoffset: 324; } to { stroke-dashoffset: 0; } }
@media (prefers-reduced-motion: reduce) { .cx .pulse .beat { animation-duration: 4.5s; } }

/* ---- Funnel: commercial administration, not Opportunity Intelligence ------------------------------------- */
.cx-funnel td { white-space: nowrap; }
.cx-funnel .cx-fc { display: block; font-size: var(--fs-heading); line-height: var(--lh-heading); font-weight: var(--fw-strong); font-variant-numeric: tabular-nums; color: var(--text); }
.cx-funnel .cx-fp { font-size: var(--fs-meta); font-weight: 600; font-variant-numeric: tabular-nums; color: var(--text-2); }
.cx-funnel .cx-ft { margin-left: var(--s2); font-size: var(--fs-meta); font-variant-numeric: tabular-nums; color: var(--muted); }
.cx-funnel tr.cx-total > th, .cx-funnel tr.cx-total > td { background: var(--fill-1); }
.cx-key { margin: 0; padding-left: var(--s5); max-width: 90ch; font-size: var(--fs-sm); line-height: var(--lh-sm); color: var(--text-2); }
.cx-key li + li { margin-top: var(--s1); }
.cx-key b { color: var(--text); }

/* ---- Narrow screens: tables become compact rows ---------------------------------------------------------- */
@media (max-width: 900px) {
    .cx { padding: var(--s5) var(--s4) var(--s8); }
    .cx .ci-btn, .cx-more > summary, .cx-views a, .cx-views button { min-height: var(--h-touch); }
    .cx-more-list a, .cx-more-list button { padding-top: 11px; padding-bottom: 11px; }
}
/* The clients table has six columns, one of them the Top opportunity; below the width that holds them it becomes
   compact rows rather than scrolling sideways. Each row keeps its reading order, labels carried down. */
@media (max-width: 1365px) {
    .cx-clients { min-width: 0; }
    .cx-tablewrap:has(.cx-clients) { overflow: visible; }
    .cx-clients thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
    .cx-clients, .cx-clients tbody, .cx-clients tr, .cx-clients td, .cx-clients tbody th { display: block; width: auto; }
    .cx-clients tbody tr { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--s2) var(--s5); padding: var(--s3) var(--s4); border-bottom: 1px solid var(--line-strong); }
    .cx-clients tbody tr:last-child { border-bottom: 0; }
    .cx-clients td, .cx-clients tbody th { padding: 0; border-bottom: 0; text-align: left; }
    .cx-clients td[data-lbl]::before { content: attr(data-lbl); display: block; font-size: var(--fs-label); line-height: var(--lh-label); font-weight: 600; color: var(--muted); }
    .cx-clients .cx-act { display: flex; justify-content: flex-start; }
    .cx-clients .cx-top { width: auto; }
    .cx-clients .cx-num, .cx-clients .cx-act { text-align: left; }
    .cx-clients .cx-act { grid-column: 1 / -1; width: auto; }
    .cx-clients tr.cx-task { display: block; }
    .cx-clients tr.cx-task > td { padding: var(--s3) 0 0; background: transparent; }
    .cx-clients .cx-more-list { right: auto; left: 0; }
}
@media (max-width: 900px) {
    .cx-clients tbody tr { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
    .cx-clients tbody tr { grid-template-columns: minmax(0, 1fr); gap: var(--s1); }
    .cx-figs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .cx-figs > div:nth-child(odd) { padding-left: 0; border-left: 0; }
    .cx-figs > div { border-bottom: 1px solid var(--line); }
    .cx-cols { grid-template-columns: minmax(0, 1fr); }
    .cx-tablewrap { overflow: visible; }
    .cx-cards thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
    .cx-cards, .cx-cards tbody, .cx-cards tr, .cx-cards td, .cx-cards tbody th { display: block; width: auto; }
    .cx-cards tbody tr { padding: var(--s3) var(--s4); border-bottom: 1px solid var(--line-strong); }
    .cx-cards tbody tr:last-child { border-bottom: 0; }
    .cx-cards td, .cx-cards tbody th { padding: 2px 0; border-bottom: 0; text-align: left; }
    .cx-cards td[data-lbl]::before { content: attr(data-lbl) " "; font-size: var(--fs-meta); font-weight: 600; color: var(--muted); }
    .cx-cards .cx-num, .cx-cards .cx-act { text-align: left; }
    .cx-cards .cx-act { margin-top: var(--s2); }
    .cx-cards .cx-trunc { max-width: none; white-space: normal; }
    .cx-cards tr.cx-task > td { padding: var(--s3) 0 0; background: transparent; }
    /* Touch targets on the card layout (phones): every link and control in a card is at least 44px tall, so the client
       name, the partner and the top opportunity are separate, comfortable taps rather than 18px lines of text set
       close together. The table on wider screens keeps its density. */
    .cx-cards tbody th.cx-name a, .cx-cards tbody .oi-pft { display: flex; align-items: center; min-height: var(--h-touch); }
    .cx-cards tbody a.cx-ref { display: inline-flex; align-items: center; min-height: var(--h-touch); }
    .cx-cards tbody .oi-pf { gap: 0; }
    .cx-cards tbody .ci-btn, .cx-cards tbody summary, .cx-cards .cx-more-list a, .cx-cards .cx-more-list button { min-height: var(--h-touch); }
    .cx-cards tbody .cx-more > summary { min-width: var(--h-touch); }
    .cx-more-list { right: auto; left: 0; }
    .cx-diag th { width: auto; display: block; padding-bottom: 0; border-bottom: 0; }
    .cx-diag td { display: block; padding-top: 0; }
    .cx-dl { grid-template-columns: minmax(0, 1fr); gap: 0; }
    .cx-dl dd { margin-bottom: var(--s2); }
    .cx-funnel-wrap { overflow-x: auto; }
}
