:root {
  --bg: #0f1217; --panel: #171c24; --line: #232a35;
  --fg: #e8ebf0; --dim: #8a93a3;
  --green: #3fb950; --orange: #d29922; --red: #f85149;
  --purple: #bc8cff; --yellow: #e3b341; --accent: #2dd4bf;
}
* { box-sizing: border-box; margin: 0; padding: 0; }
body {
  background: var(--bg); color: var(--fg);
  font: 14px/1.6 -apple-system, "PingFang SC", "Microsoft YaHei", sans-serif;
  max-width: 1080px; margin: 0 auto; padding: 24px 16px 48px;
}
header h1 { font-size: 22px; letter-spacing: .5px; }
#meta { color: var(--dim); margin: 6px 0 16px; font-size: 13px; }
nav { display: flex; gap: 8px; border-bottom: 1px solid var(--line); margin-bottom: 16px; }
.tab {
  background: none; border: none; color: var(--dim); font-size: 15px;
  padding: 8px 18px; cursor: pointer; border-bottom: 2px solid transparent;
}
.tab.active { color: var(--accent); border-bottom-color: var(--accent); }
.chart { width: 100%; background: var(--panel); border-radius: 10px; margin-bottom: 16px; }
.chart-lg { height: 320px; }
.chart-sm { height: 240px; }
table { width: 100%; border-collapse: collapse; background: var(--panel); border-radius: 10px; overflow: hidden; }
th, td { padding: 9px 12px; text-align: left; border-bottom: 1px solid var(--line); }
th { color: var(--dim); font-weight: 500; font-size: 12px; }
td.num, th.num { text-align: right; font-variant-numeric: tabular-nums; }
tr.clickable { cursor: pointer; }
tr.clickable:hover { background: #1c2330; }
tr.detail-row td { padding: 12px; background: #131820; }
.rank { color: var(--dim); width: 36px; }
.paid { color: var(--yellow); font-size: 11px; border: 1px solid var(--yellow); border-radius: 4px; padding: 0 4px; margin-left: 6px; }
.inactive { color: var(--dim); font-size: 11px; margin-left: 6px; }
.c-green { color: var(--green); } .c-orange { color: var(--orange); }
.c-red { color: var(--red); } .c-purple { color: var(--purple); }
.c-yellow { color: var(--yellow); } .c-dim { color: var(--dim); }
.works-list { margin: 8px 0 0; color: var(--dim); font-size: 13px; }
.works-list li { margin: 2px 0; list-style: none; }
footer { margin-top: 28px; color: var(--dim); font-size: 12px; text-align: center; }
#empty-hint { color: var(--dim); text-align: center; padding: 40px 0; }
.soaring-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
  gap: 16px;
}
@media (max-width: 720px) { .soaring-grid { grid-template-columns: 1fr; } }
.soaring-col { display: flex; flex-direction: column; }
.col-title {
  font-size: 13px; font-weight: 500; color: var(--dim);
  padding: 6px 0 8px;
  border-bottom: 1px solid var(--line);
  margin-bottom: 6px;
}
#boost-table { font-size: 13px; }

/* 排序 */
th[data-sort] { cursor: pointer; user-select: none; transition: color .15s; }
th[data-sort]:hover { color: var(--accent); }
th.sorted-desc::after, th.sorted-asc::after { font-size: 10px; margin-left: 2px; opacity: .8; }
th.sorted-desc::after { content: " ▼"; }
th.sorted-asc::after  { content: " ▲"; }
