/** * Classes to make row N or thead top sticky, and/or column N left sticky. * * Div classes: * - sticky-table-scroll: Adds scroll; contains table. * * Table classes: * - sticky-table-head: Top sticky thead rows. * - sticky-table-row1: Top sticky first row. * - sticky-table-row2: Top sticky second row. * - sticky-table-col1: Left sticky first column. * - sticky-table-col2: Left sticky second column. * * Cell classes: * - sticky-table-none: Cell not sticky to fix span issues. * - sticky-table-left: Cell left sticky to fix span issues. * * Notes: * - Sortable moves to thead any header rows and (after sort) sorttop rows. * - Sticky gadget (.mw-sticky-header) moves to thead any wikitable header rows. */@mediascreen{/** * Div containers with restricted height/width + scroll. */.sticky-table-scroll{margin-bottom:1em;/* Moved from table. */margin-top:1em;/* Moved from table. */max-height:75vh;max-width:max-content;/* Vertical scroll next to div. */min-width:50px;/* In case another element floats right. */overflow-y:auto;/*scrollbar-gutter: stable; /* Fix premature wrapping Gecko: 764076. */}.sticky-table-scrolltable{margin-bottom:0;/* Moved to div. */margin-top:0;/* Moved to div. */}.sticky-table-scrollcaption{text-align:left;/* Fix narrow, centered caption hidden on wide table. */}/** * Make top sticky. */.sticky-table-scroll.sticky-table-row1:not(.sticky-table-row2):not(.sticky-table-head)>thead>tr:nth-child(1),.sticky-table-scroll.sticky-table-row1:not(.sticky-table-row2):not(.sticky-table-head)>caption+tbody>tr:nth-child(1),.sticky-table-scroll.sticky-table-row1:not(.sticky-table-row2):not(.sticky-table-head)>tbody:first-child>tr:nth-child(1),.sticky-table-scroll.sticky-table-row2:not(.sticky-table-row1):not(.sticky-table-head)>thead>tr:nth-child(2),.sticky-table-scroll.sticky-table-row2:not(.sticky-table-row1):not(.sticky-table-head)>caption+tbody>tr:nth-child(2),.sticky-table-scroll.sticky-table-row2:not(.sticky-table-row1):not(.sticky-table-head)>tbody:first-child>tr:nth-child(2),.sticky-table-scroll.sticky-table-head:not(.sticky-table-row1):not(.sticky-table-row2)>thead{position:sticky;/* Was "static". */top:0;z-index:10;}/** * Make left sticky. */.sticky-table-scroll.sticky-table-col1:not(.sticky-table-col2)>*>tr>:nth-child(1):not(.sticky-table-none),.sticky-table-scroll.sticky-table-col2:not(.sticky-table-col1)>*>tr>:nth-child(2):not(.sticky-table-none),.sticky-table-scrolltr>.sticky-table-left{position:sticky;/* Was "static". */left:0;z-index:9;}/** * Fix scrolling data shows through sticky's transparent background. */.sticky-table-scrolltable:not(.wikitable){background-color:var(--color-inverted,#fff);}.sticky-table-scrollthead,.sticky-table-scrolltbody,.sticky-table-scrolltfoot,.sticky-table-scrolltr,.sticky-table-scrolltd,.sticky-table-scrolltable:not(.wikitable)>*>tr>th{background-color:inherit;}/** * Fix missing borders due to sticky position and wikitable collapsed borders. * https://bugs.webkit.org/show_bug.cgi?id=128486 * * Skip rare plain table separated borders, which sometimes shows scrolling * data through sticky's 2px "border-spacing". * * Skip very rare Timeless plain table ".mw-datatable" collapsed borders. * * Note: {{Static row numbers}} border-bottom separating header/sorttop from * numbers missing and not selectable with CSS. */.sticky-table-scroll.wikitable{border-collapse:separate;/* Was "collapse". */border-spacing:0;border-width:1px001px;}.sticky-table-scroll.wikitable>*>tr>td,.sticky-table-scroll.wikitable>*>tr>th{border-width:01px1px0;}/* Adjust {{static row numbers}} borders. */.sticky-table-scroll.static-row-numbers.wikitable>*>tr::before{border-right-width:1px;}/* .sticky-table-scroll .static-row-numbers.wikitable > * > .sorttop:not(:has(~ .sorttop))::before, */.sticky-table-scroll.static-row-numbers.wikitable>tbody>tr:last-child::before,.sticky-table-scroll.static-row-numbers.wikitable>tfoot>tr:last-child::before{border-bottom-width:1px;}/* After sort, "tbody:first-of-type" targets "tbody>tr:first-child". */.sticky-table-scroll.static-row-numbers.wikitable>tbody:first-of-type>tr:not(.static-row-header)::before{border-top-width:0;border-left-width:0;}/** * Fix Timeless skin very wide tables not sticky. */body.skin-timeless.sticky-table-scroll.overflowed,body.skin-timeless.sticky-table-scroll.overflowed.content-table{overflow:visible;/* Reset. */}body.skin-timeless.sticky-table-scroll.overflowed{margin-top:0;/* Was "1em". */margin-bottom:0;/* Was "1em". */}body.skin-timeless.sticky-table-scroll.scroll-right.overflowed.content-table-right{box-shadow:none;/* Reset. */border-left:none;/* Reset. */}body.skin-timeless.sticky-table-scroll.wikitable{padding:0;}/** * Fix VisualEditor (VE) removing scrollable and hiding content. */html.ve-activated.sticky-table-scroll{max-height:none;/* Unhide. */}}/** * Fix skins width <=639px (mobile) not sticky. */@mediascreenand(max-width:639px){body.skin-minerva.sticky-table-scrolltable,body.skin-monobook.sticky-table-scrolltable,body.skin-vector-legacy.sticky-table-scrolltable,body.skin-vector-2022.sticky-table-scrolltable{display:table;/* Was "block". */}body.skin-minerva.sticky-table-scrollcaption{display:table-caption;/* Was "block". */}}/** * Fix "Sticky Table Headers" gadget issues; this template has priority. */@mediascreen{.sticky-table-scroll.jquery-tablesorter:not(.sticky-table-head)>thead,.sticky-table-scroll.mw-sticky-header:not(.sticky-table-head)>thead{position:static;/* Was "sticky". */top:auto;/* Was "0". */z-index:auto;/* Was "10". */}.sticky-table-scroll.jquery-tablesorter>tfoot,.sticky-table-scroll.mw-sticky-header>tfoot{position:static;/* Was "sticky". */bottom:auto;/* Was "0". */z-index:auto;/* Was "10". */}}@mediascreenand(min-width:1120px){html.client-js.vector-sticky-header-enabled.sticky-table-scroll:not(.sticky-table-head).mw-sticky-header-element{top:auto!important;/* Was "3.125rem !important". */}}