/* Shared ranking card. Derivation and official status remain renderer-owned. */
.knockout-placements{--placement-rank-width:64px;--placement-stat-width:56px;min-width:0;max-inline-size:1040px;margin-block:12px;padding:12px 12px 6px;background:#1e1e1e;color:#EFEFEF}
.knockout-placements h2{margin:0 0 8px;font-size:16px}
.knockout-placements .tablewrap{min-width:0;max-width:100%;overflow:visible;overscroll-behavior-x:contain;overscroll-behavior-y:auto}
.knockout-placements-table{width:100%;min-width:0;max-width:100%;table-layout:fixed;border-collapse:collapse}
.knockout-placements-table col.placement-col-rank{width:var(--placement-rank-width)}
.knockout-placements-table :is(col.placement-col-team,col.placement-col-members){width:calc((100% - var(--placement-rank-width) - var(--placement-stat-width)*3)/2)}
.knockout-placements-table col.placement-col-school{width:calc(var(--placement-stat-width)*3)}
.knockout-placements-table col.placement-col-stat{width:var(--placement-stat-width)}
.knockout-placements-table :is(th,td){padding:8px 6px;text-align:left;vertical-align:top;border-bottom:1px solid #ffffff1a;min-width:0;font-size:13px;line-height:1.6;background:transparent}
.knockout-placements-table [hidden]{display:none!important}
.knockout-placements-table thead th{position:sticky;top:0;z-index:1;background:#202020;color:#BDBDBD;font-weight:500;white-space:nowrap}
.knockout-placements-table tbody th{background:transparent;color:inherit;font-weight:600;white-space:nowrap}
.knockout-placements-table :is(.placement-name,.placement-member){display:block;min-width:0;max-width:100%;min-height:1.6em;line-height:1.6;overflow-x:auto;overflow-y:hidden;white-space:nowrap;overscroll-behavior-x:contain;overscroll-behavior-y:auto;touch-action:pan-x pan-y;-webkit-overflow-scrolling:touch;scrollbar-width:thin}
.knockout-placements-table :is(.placement-name,.placement-member):focus-visible{outline:2px solid #00E5BE;outline-offset:-2px}
.knockout-placements-table .placement-stat{font-variant-numeric:tabular-nums;white-space:nowrap}
.knockout-placements-table :is(th,td)[data-placement-panel="stats"]{text-align:center}
.placement-controls{display:flex;justify-content:flex-end;margin-top:4px;min-height:32px}
html body:has(#master-sidebar) main#app .knockout-placements .placement-controls button.placement-flip-button,
html body :is(#app,#viewer-results-content,.score-standings-dialog) .knockout-placements .placement-controls button.placement-flip-button{display:inline-grid;place-items:center;flex:none;width:32px;height:32px;min-width:32px;min-height:32px;margin:0;padding:5px;border:1px solid #ffffff26!important;border-radius:6px;background:#ffffff14!important;color:#EFEFEF!important;box-shadow:none!important;opacity:.8;cursor:pointer}
.placement-flip-button svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.placement-flip-button:focus-visible{outline:2px solid #00E5BE!important;outline-offset:2px}
.placement-flip-forward .placement-sheet{animation:placement-turn-forward .28s ease}
.placement-flip-backward .placement-sheet{animation:placement-turn-backward .28s ease}
@keyframes placement-turn-forward{0%{transform:perspective(1100px) rotateY(0);opacity:1}48%{transform:perspective(1100px) rotateY(80deg);opacity:.45}52%{transform:perspective(1100px) rotateY(-80deg);opacity:.45}100%{transform:perspective(1100px) rotateY(0);opacity:1}}
@keyframes placement-turn-backward{0%{transform:perspective(1100px) rotateY(0);opacity:1}48%{transform:perspective(1100px) rotateY(-80deg);opacity:.45}52%{transform:perspective(1100px) rotateY(80deg);opacity:.45}100%{transform:perspective(1100px) rotateY(0);opacity:1}}
/* Equal paint priority across master, independent viewer and scorer standings. */
html body:not(.viewer-body):has(#master-sidebar) main#app table.knockout-placements-table thead th,
html body:not(.viewer-body) #app table.knockout-placements-table thead th,
html body:not(.viewer-body) .score-standings-dialog table.knockout-placements-table thead th{background:#202020!important;color:#BDBDBD!important}
html body:not(.viewer-body):has(#master-sidebar) main#app table.knockout-placements-table tbody :is(th,td),
html body:not(.viewer-body) #app table.knockout-placements-table tbody :is(th,td),
html body:not(.viewer-body) .score-standings-dialog table.knockout-placements-table tbody :is(th,td){background:transparent!important;color:#EDEDED!important}
html body:not(.viewer-body):has(#master-sidebar) main#app table.knockout-placements-table tbody tr.placement-podium,
html body:not(.viewer-body):has(#master-sidebar) main#app table.knockout-placements-table tbody tr.placement-podium>:is(th,td),
html body:not(.viewer-body) #app table.knockout-placements-table tbody tr.placement-podium,
html body:not(.viewer-body) #app table.knockout-placements-table tbody tr.placement-podium>:is(th,td),
html body:not(.viewer-body) .score-standings-dialog table.knockout-placements-table tbody tr.placement-podium,
html body:not(.viewer-body) .score-standings-dialog table.knockout-placements-table tbody tr.placement-podium>:is(th,td){background:#00E5BE!important;color:#111318!important}
@media(max-width:600px){.knockout-placements{--placement-rank-width:48px;--placement-stat-width:40px;padding:8px 6px 4px}.knockout-placements-table :is(th,td){padding:7px 3px;font-size:12px}.knockout-placements-table thead th[data-placement-panel="stats"]{font-size:11px}}
@media(pointer:coarse){html body :is(#app,#viewer-results-content,.score-standings-dialog) .knockout-placements .placement-controls button.placement-flip-button{width:40px;height:40px;min-width:40px;min-height:40px}}
@media(prefers-reduced-motion:reduce){.knockout-placements .placement-sheet{animation:none!important;transform:none!important}}
