Level 3. Three different lists in one file, and only one of them is on the screen at a time: the positions table, the biggest-bets list and the activity feed, each behind its own tab. 9 tables, 68 holder rows and 45 activity rows on 9 painted screens. Measured 2026-08-08 by cycling every tab radio, at 390 and 1280.
Positions, biggest bets in two columns, and the activity feed. 24 elements against 44.
The level and its reason stay on the organisms page. This component is small and its page is short, and it exists for one reason a shelf cannot serve: two of its three lists cannot be seen at all without changing which tab is checked, so a shelf specimen shows a third of the component and looks complete.
| list | rows | a row at 390 | at 1280 | what it is |
|---|---|---|---|---|
| positions | 9 tables | 294x207, the whole table | 574x207 | what YOU hold in this market |
| biggest bets | 68 | 172x37 | 275x37 | who else is in it, ranked |
| activity | 45 | 294x45 | 574x45 | what has happened, with times |
All three are read and none of them is touched. There is no control in this file: no row links anywhere, nothing hovers, nothing presses. That is the correct answer for a list whose job is to let you check a number, and it is why the whole file is 43 declarations.
The outcome word in a holder row takes the outcome text role, YES green and NO the figure red, which is the same rule the odds bar's labels follow: text answers to 4.5:1 and a band answers to 3:1, so they are two roles rather than one colour.
A column head inside one of these lists is nested under a section that carries its own label rule, and the label rule sets properties this one does not: uppercase, tracking and a brass ink. So a nested head has to answer for each of them rather than for the one that looked wrong.
It is the same shape and the same afternoon as the event detail screen. Specificity is per PROPERTY, and a rule that wins on one declaration has not taken the element.
.hold-out stands 12 times on 2 screens and had never been
drawn here. On a binary market a name in the biggest-bets list is enough, because there are
only two sides and the column heading says which. On a multi-outcome market it is not: this tag
is what says WHICH of five outcomes the money is on, so the same list means something different
with it and without it.
This file declared .lg-item until 2026-08-10, and it was the
price chart's legend. The item is written by a script into .ed-legend, which
chart owns and draws, so one part had two files. The flat kit settled
which one: before the split of 2026-07-26 the three rules sat under .ed-legend,
under a comment about the multi-outcome chart, so this was a misfile at the split rather than a
home the rule had earned. It went back with 0 differences over 15,802 element readings,
and this file is four classes lighter in its own declaration.
Its own width query: 640 DESK. The holdings table gains a rule between its first two columns at DESK. Nothing moves and nothing reflows: below the rung the rows read as stacked pairs where a vertical line would be a line to nowhere, and above it they read as a table, where the line is what tells one column from the next.
A list you read carries no state. No hover, no press, no cursor: a row that answers a pointer is promising a destination it does not have.
A figure and a band do not share a role. Text clears 4.5:1 and a surface clears 3:1, so the same green is two tokens.
Never show one of three lists and call it the component. Two of them are behind tabs and measure 0x0 until the radio changes.
Never assume a rule that wins has taken the element. It won on one property and lost the other three.
Never give a read-only row a pointer. The tap goes nowhere and the row has said it will.
The level and its reason: the organisms
page. The stylesheet: components/bets-table.css, 77 declarations. The tabs that reveal
the three: tabs. The single-bet row this is not:
position. The outcome roles:
components/tokens.css.