/* Shared V4b styles for markup produced by src/ui.mjs and src/shell.mjs helpers.
   Page sheets (public/css/<page>.css) may override inside their own page class. */
.ranking.table-scroll,.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 -2px;padding:0 2px;max-width:100%}
.ranking table{width:100%;border-collapse:separate;border-spacing:0 4px;font-size:14px;font-variant-numeric:tabular-nums;color:var(--stone-ink)}
.ranking th{padding:4px 10px;text-align:left;font-size:11.5px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--stone-mute);white-space:nowrap}
.ranking td{padding:8px 10px;background:#fff;white-space:nowrap;vertical-align:middle}
.ranking tr td:first-child{border-radius:12px 0 0 12px}
.ranking tr td:last-child{border-radius:0 12px 12px 0}
.ranking tbody tr:hover td{background:#f3f7ff}
.ranking th button{display:inline-flex;align-items:center;gap:4px;min-height:36px;padding:0;border:0;background:none;font:inherit;letter-spacing:inherit;text-transform:inherit;color:inherit;cursor:pointer}
.ranking th[aria-sort] button{color:var(--blue-dk)}
.entity-link{display:flex;align-items:center;gap:10px;text-decoration:none;color:inherit;min-width:0}
.entity-link img{width:34px;height:34px;object-fit:contain;flex:0 0 auto}
.entity-link span{display:flex;flex-direction:column;min-width:0}
.entity-link strong{font-weight:800;overflow:hidden;text-overflow:ellipsis}
.entity-link small{font-size:12px;color:var(--stone-mute)}
.entity-link:hover strong,.entity-link:hover>span{color:var(--blue-dk)}
.attack-stars{color:var(--gold-2);letter-spacing:1px;font-size:15px;white-space:nowrap}
.data-notice{margin:12px 0;padding:12px 14px;border-radius:14px;background:#fff6dc;border:1px solid #f1d58a;color:#5a3d00;font-weight:700;font-size:14px}
.data-notice a{color:inherit}
.source-credit{font-size:12.5px;color:var(--stone-mute);margin:12px 0 0}
.source-credit a{color:inherit}
.muted{color:var(--stone-mute)}
.text-link{color:var(--blue-dk);font-weight:800;text-decoration:none}
.text-link:hover{text-decoration:underline}
.empty-state{padding:18px;border-radius:14px;background:var(--card-2);color:var(--stone-mute);font-weight:700;text-align:center}
.snapshot{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:700;color:var(--stone-mute)}
.snapshot>span{width:8px;height:8px;border-radius:50%;background:#b7b0a1}
.snapshot.is-live>span{background:var(--up);box-shadow:0 0 0 3px rgba(63,162,26,.18)}
progress{appearance:none;-webkit-appearance:none;width:100%;height:8px;border:0;border-radius:99px;background:var(--card-2);overflow:hidden}
progress::-webkit-progress-bar{background:var(--card-2);border-radius:99px}
progress::-webkit-progress-value{background:var(--green-2);border-radius:99px}
progress::-moz-progress-bar{background:var(--green-2);border-radius:99px}
