/* Shared overall deception spectrum and leaderboard. */
.ds { padding:26px 0 10px; }
.ds-row { display:flex; align-items:center; gap:16px; }
.ds-face { display:flex; flex-direction:column; align-items:center; font-size:1.7rem; color:var(--muted); flex:none; }
.ds-face b { font-size:0.66rem; font-weight:700; text-transform:uppercase; letter-spacing:0.08em; margin-top:2px; }
.ds-track { position:relative; flex:1; height:56px; border-radius:999px; border:1px solid var(--border);
  background:linear-gradient(90deg, rgba(42,157,143,0.20), rgba(224,159,62,0.18) 55%, rgba(158,42,43,0.24)); }
.ds-dot { position:absolute; top:50%; transform:translate(-50%,-50%); width:28px; height:28px; border-radius:50%;
  background:#fff; border:2px solid var(--c,#999); display:grid; place-items:center; box-shadow:var(--shadow-sm); cursor:pointer; }
.ds-dot .ds-pin img { width:14px; height:14px; display:block; }
.ds-lab { display:none; position:absolute; top:34px; left:50%; transform:translateX(-50%); font-size:0.68rem; white-space:nowrap; color:var(--muted); font-weight:600; }
.ds-dot:hover { z-index:2; }
.ds-dot:hover .ds-lab, .ds-dot:focus-visible .ds-lab, .ds-lab.is-shown { display:block; }
.ds-lab.l1 { top:-22px; }
.ds-lab.l2 { top:48px; }
.ds-end { position:absolute; bottom:-22px; font-size:0.66rem; color:var(--muted); font-variant-numeric:tabular-nums; }
.ds-end.ds-lo { left:2px; }
.ds-end.ds-hi { right:2px; }
.ds-foot { color:var(--muted); font-size:0.75rem; margin:30px 0 0; }

.db { display:grid; gap:6px; margin-top:8px; }
.db-row { display:grid; grid-template-columns:32px 26px 1fr 150px 70px; align-items:center; gap:12px;
  padding:9px 14px; border:1px solid var(--border); border-radius:12px; background:var(--panel); cursor:pointer; }
.db-row:hover { box-shadow:var(--shadow-sm); }
.db-rank { font-size:1.15rem; text-align:center; color:var(--muted); font-weight:700; }
.db-logo img { width:20px; height:20px; display:block; }
.db-name { font-weight:700; font-size:0.95rem; min-width:0; }
.db-id { display:block; font-weight:500; font-size:0.7rem; color:var(--muted); word-break:break-all; }
.db-bar { height:10px; border-radius:999px; background:#efe6da; overflow:hidden; }
.db-bar span { display:block; height:100%; border-radius:999px; }
.db-val { text-align:right; font-weight:700; font-variant-numeric:tabular-nums; }
.db-sub { display:block; font-size:0.68rem; color:var(--muted); font-weight:500; }
.empty { color:var(--muted); padding:20px; text-align:center; }
@media (max-width:640px) {
  .ds-breakout, #home-scale { display:none; }
  .db-row { grid-template-columns:26px 22px 1fr 58px; }
  .db-bar { display:none; }
}
