/* ZLTable (zl-table.js): the house analytics table, shared by public and staff pages (Player Analytics phase 0, 2026-11-06).
   Same look as the Legendary Analytics tables. Themed by variables set on any ancestor:
   --zt-accent (sorted heading, Total label), --zt-line, --zt-muted, --zt-field (select background).
   Defaults are the site's public colors; staff pages set the gold. */
.zt { --zt-accent: var(--accent, #b7cbe7); --zt-accent-rgb: 183, 203, 231; --zt-line: rgba(255, 255, 255, 0.09); --zt-muted: #8d8d99; --zt-field: #16181f; min-width: 0; }
.zt-gold, .zt-gold .zt { --zt-accent: #e6c84a; --zt-accent-rgb: 230, 200, 74; --zt-field: #16140f; }

.zt-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.zt-table { width: 100%; border-collapse: collapse; font-size: 0.86rem; }
.zt-table th, .zt-table td { padding: 0.45rem 0.5rem; border-bottom: 1px solid rgba(255, 255, 255, 0.05); text-align: left; vertical-align: middle; }
.zt-table thead th { vertical-align: bottom; color: var(--zt-muted); font: 700 0.7rem/1.2 Inter, sans-serif; letter-spacing: 0.06em; text-transform: uppercase; white-space: nowrap; }
.zt-table thead th button { display: block; width: 100%; min-height: 1.6rem; padding: 0; border: 0; background: none; color: inherit; font: inherit; letter-spacing: inherit; text-transform: inherit; text-align: inherit; cursor: pointer; }
.zt-table thead th button:hover, .zt-table thead th.is-sorted button { color: var(--zt-accent); }
.zt-table thead th button:focus-visible { outline: 2px solid var(--zt-accent); outline-offset: 2px; border-radius: 3px; }
.zt-table thead th.is-sorted button::after { content: " \25BE"; }
.zt-table thead th.is-sorted.is-asc button::after { content: " \25B4"; }
.zt-table thead th small { display: block; margin-top: 0.1rem; color: #6f6f7a; font: 600 0.64rem/1.2 Inter, sans-serif; letter-spacing: 0.02em; text-transform: none; }
.zt-table thead th.zt-group { padding-bottom: 0.15rem; border-bottom: 1px solid rgba(var(--zt-accent-rgb), 0.35); text-align: center; color: #c9c9d1; }
.zt-table .num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.zt-table tbody tr:hover td { background: rgba(var(--zt-accent-rgb), 0.05); }
.zt-table td a { color: #fff; text-decoration: none; }
.zt-table td a:hover { color: var(--zt-accent); text-decoration: underline; }
.zt-table td small { display: block; color: var(--zt-muted); font-size: 0.74rem; }
.zt-table th.zt-sub, .zt-table td.zt-sub { padding-left: 0.3rem; padding-right: 0.3rem; }
.zt-table td.zt-sub { color: #c9c9d1; }
.zt-table tfoot tr.zt-total td { border-top: 2px solid rgba(var(--zt-accent-rgb), 0.55); border-bottom: 0; background: rgba(var(--zt-accent-rgb), 0.06); color: #fff; font-weight: 800; }
.zt-table tfoot tr.zt-total td:first-child { color: var(--zt-accent); text-transform: uppercase; letter-spacing: 0.06em; font-size: 0.78rem; }
.zt-table tfoot tr.zt-total td small { font-weight: 500; text-transform: none; letter-spacing: 0; }
.zt-empty { margin: 0; padding: 0.5rem 0; color: var(--zt-muted); font-size: 0.88rem; }

.zt-pagebar { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 0.5rem 1.2rem; margin-top: 0.8rem; }
.zt-pager { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 0.8rem; font-size: 0.86rem; color: #aaa; }
.zt-btn { min-height: 32px; padding: 0.3rem 0.7rem; border-radius: 8px; border: 1px solid var(--zt-line); background: rgba(0, 0, 0, 0.25); color: #ddd; font: 700 0.78rem Inter, sans-serif; cursor: pointer; }
.zt-btn:hover:not([disabled]) { color: #fff; border-color: rgba(var(--zt-accent-rgb), 0.6); }
.zt-btn[disabled] { opacity: 0.4; cursor: default; }
.zt-pp { display: inline-flex; align-items: center; gap: 0.4rem; color: #aaa; font-size: 0.84rem; }
.zt-pp select { padding: 0.3rem 0.5rem; border-radius: 8px; border: 1px solid var(--zt-line); background: var(--zt-field); color: #fff; font: 600 0.82rem Inter, sans-serif; }
