/* KPIs + the five ratio pages (Multiples, Profitability, ROIC, Solvency, Other ratios) in the Attio table look (user,
   2026-10-31, the pass /government, /insiders and /markets got; docs/features/financials.md "Year tables"):
   - fixed layout: every table on a page shares one Metric width (js/fin-years-table.js measures the longest name,
     capped, into --fy-m) and the periods split the rest evenly, so stacked KPI tables line up column for column;
     below 96px a period the table scrolls sideways in its own box (--fy-n = period columns)
   - the Metric column and the header stay white, every other body cell gets Attio's faint #FAFAFE; the newest year
     keeps its sorted tint + blue dot (user, 2026-10-29); hover sits on the cells
   - headers and cells clip with "…" instead of running into the next column
   Desktop only (html.aiq-desk); band / group rows (one colspan cell) are left alone. */
html.at-done.aiq-desk :is(#tab-statistics table.stx-at, #kd-root table.kd-ktbl):not(#_):not(#_):not(#_):not(#_) {
  table-layout: fixed; width: max(100%, calc(var(--fy-m, 260px) + var(--fy-n, 11) * 96px)) !important; min-width: 0 !important; max-width: none !important; }
/* once measured: every period on the page is --fy-w wide, so stacked tables line up (a shorter one ends early) */
html.at-done.aiq-desk :is(#tab-statistics table.stx-at, #kd-root table.kd-ktbl)[style*="--fy-w"]:not(#_):not(#_):not(#_):not(#_) {
  width: calc(var(--fy-m) + var(--fy-n) * var(--fy-w)) !important; }
html.at-done.aiq-desk :is(#tab-statistics table.stx-at, #kd-root table.kd-ktbl)[style*="--fy-w"]:not(#_):not(#_):not(#_):not(#_) > thead > tr > th:not(:first-child) {
  width: var(--fy-w) !important; }
/* the KPI tables after the first start with a hairline over their header row, which floated on white without one */
/* a later table with its own dates (Reported quarterly) sits flush under the one above (js .fy-flush), whose last row
   draws the line over its header: no top rule of its own, or that line doubled */
html.at-done.aiq-desk #kd-root table.kd-ktbl.fy-next:not(#_):not(#_):not(#_):not(#_) > thead > tr > th { border-top: 0 !important; }
/* one row of dates on KPIs (js joinKpis): a table laid onto the first one's columns hides its header and sits flush
   under it, so the page reads as one table */
html.at-done.aiq-desk #kd-root table.kd-ktbl.fy-joined:not(#_) > thead { display: none !important; }
html.at-done.aiq-desk #kd-root .kd-card:has(> .kd-tblwrap > table.fy-joined):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { margin-top: 0 !important; }
html.at-done.aiq-desk #kd-root table.kd-ktbl .fy-gap:not(#_) { color: var(--a-faint, #A0A9C0); }
/* the KPI total row drew a top rule on the row above's bottom one: a 2px line (user: "every single line the same size") */
html.at-done.aiq-desk #kd-root table.kd-ktbl:not(#_):not(#_):not(#_):not(#_) > tbody > tr.kd-total > td { border-top: 0 !important; }
html.at-done.aiq-desk :is(#tab-statistics table.stx-at, #kd-root table.kd-ktbl):not(#_):not(#_):not(#_):not(#_) > thead > tr > th:first-child {
  width: var(--fy-m, 260px) !important; min-width: 0 !important; max-width: none !important; }
html.at-done.aiq-desk :is(#tab-statistics table.stx-at, #kd-root table.kd-ktbl):not(#_):not(#_):not(#_):not(#_) > thead > tr > th:not(:first-child) {
  width: auto !important; min-width: 0 !important; }
html.at-done.aiq-desk :is(#tab-statistics table.stx-at, #kd-root table.kd-ktbl):not(#_):not(#_):not(#_):not(#_) > * > tr > :is(th, td):not([colspan]) {
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
html.at-done.aiq-desk :is(#tab-statistics table.stx-at, #kd-root table.kd-ktbl) .stx-hi { flex: none; }
html.at-done.aiq-desk :is(#tab-statistics table.stx-at, #kd-root table.kd-ktbl).fy-noic .stx-hi:not(#_) { display: none; }   /* a page short of room: icons go first */
/* the Free lock cells keep their "Upgrade" word at every width (user, 2026-11-04) */

/* tint from B2 */
html.at-done.aiq-desk :is(#tab-statistics table.stx-at, #kd-root table.kd-ktbl):not(#_):not(#_):not(#_):not(#_) > tbody > tr > td:not(:first-child):not([colspan]):not(.stx-new) {
  background: var(--at-cell, #FAFAFE) !important; }
html.at-done.aiq-desk :is(#tab-statistics table.stx-at, #kd-root table.kd-ktbl):not(#_):not(#_):not(#_):not(#_) > tbody > tr:hover > td:not([colspan]) {
  background: var(--a-hover) !important; }
html.at-done[data-theme="dark"] :is(#tab-statistics table.stx-at, #kd-root table.kd-ktbl) { --at-cell: rgba(255,255,255,.018); }

/* the frozen Metric column when a table scrolls sideways (user, 2026-10-31): a band's name stays put at the left
   (js wraps it in .fy-bandl) instead of sliding under it */
html.at-done.aiq-desk :is(#tab-statistics table.stx-at, #kd-root table.kd-ktbl) .fy-bandl { position: sticky; left: 14px; display: inline-flex; align-items: center; }
/* KPIs scroll as one box, like the Income statement (js .fy-scroll): #kd-root takes the edge-to-edge bleed the cards
   had and scrolls sideways; the cards and the tables' own boxes don't, so the frozen column sticks to #kd-root */
html.at-done.aiq-desk #kd-root.fy-scroll:not(#_):not(#_) { overflow-x: auto; overflow-y: hidden; scrollbar-width: none; margin-left: -14px; margin-right: -14px; }
html.at-done.aiq-desk.is-popout #kd-root.fy-scroll:not(#_):not(#_) { margin-right: -12px; }
html.at-done.aiq-desk #kd-root.fy-scroll .kd-card:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { margin-left: 0 !important; margin-right: 0 !important; }
html.at-done.aiq-desk #kd-root.fy-scroll .kd-card > .kd-tblwrap:not(#_):not(#_):not(#_) { overflow: visible !important; }

/* a ratio page's lone category row repeats the tab's name: hidden (js .fy-solo) */
html.at-done.aiq-desk #tab-statistics table.stx-at:not(#_):not(#_) > tbody > tr.fy-solo { display: none !important; }
/* no row count after a section's name ("Earnings 6"; user, 2026-10-31: "get rid of the little number on the rows") */
html.at-done.aiq-desk :is(#tab-statistics table.stx-at, #kd-root table.kd-ktbl) .stx-gn:not(#_):not(#_):not(#_) { display: none !important; }

/* a KPI table with its own header (Reported quarterly) scrolls in its own box, so the page's box ends where the joined tables end (user, 2026-11-04: no blank strip when scrolling) */
html.at-done.aiq-desk #kd-root.fy-scroll .kd-card.fy-own > .kd-tblwrap:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { overflow-x: auto !important; scrollbar-width: none; }
