body, table, th, td, select, button, label, input {
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-variant-numeric: tabular-nums;
}
body { font-size: 12px; margin: 1rem; background: #fff; color: #111; }
h1 { font-size: 14px; margin: 0 0 .25rem 0; }
h2 { font-size: 13px; margin: .75rem 0 .25rem 0; }
h3 { font-size: 12px; margin: .5rem 0 .2rem 0; color: #444; }
.meta, .filters, .sources { color: #666; margin-bottom: .5rem; }
.sources { margin-top: .75rem; }
.kind-columns { display: flex; gap: 3rem; align-items: flex-start; }
.kind-columns h2 { margin-top: 0; }
.filters form { display: inline; margin-right: 12px; }
.filters fieldset { display: inline; border: none; padding: 0 12px 0 0; margin: 0; }
table { border-collapse: collapse; white-space: nowrap; }
th, td { padding: 1px 8px; text-align: left; }
th { position: sticky; top: 0; background: #f0f0f0; border-bottom: 1px solid #999; }
table.listing th { cursor: pointer; user-select: none; }
td.num, th.num { text-align: right; }
th.plus, td.plus { padding-left: 20px; }
/* striping is applied by mendoza.js so filtered/sorted rows stay alternating */
tbody tr.stripe { background: #f7f7f7; }
tbody tr:hover { background: #eef3ff; }
tr.winning { background: #fdf3d7 !important; }
tfoot td { border-top: 1px solid #999; font-weight: bold; }
a { color: #244a9a; }
