.contrib-page { display: grid; gap: var(--gap); max-width: 1200px; }
.contrib-body, .contrib-detail { display: grid; gap: var(--gap); }
.contrib-bar { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sp-2) var(--sp-3); }
.contrib-pick { display: inline-flex; align-items: center; gap: var(--sp-2); }
.contrib-pick select { min-width: 220px; }
.contrib-tablewrap { overflow-x: auto; }
.contrib-table tbody tr { cursor: pointer; }
.contrib-table tbody tr:focus-visible { outline: 2px solid var(--accent); outline-offset: -2px; }
.contrib-classes { margin-top: 2px; }
.contrib-late { display: inline-block; font-size: var(--fs-xs); font-weight: 600; color: var(--warn, var(--danger)); white-space: nowrap; }
.contrib-head { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--sp-2); }
.contrib-head h3 { margin: 0; }
.contrib-stats { display: flex; flex-wrap: wrap; gap: var(--sp-2) var(--sp-4); color: var(--text-2); font-size: var(--fs-sm, 13px); }
.contrib-card .card-head { display: flex; align-items: center; gap: var(--sp-2); }
.contrib-text { white-space: pre-wrap; overflow-wrap: anywhere; max-width: 640px; }
.contrib-peek { display: grid; gap: var(--sp-3); }
.contrib-ai p { line-height: 1.5; }
@media print {
  .contrib-page { max-width: none; }
  .contrib-tablewrap { overflow: visible; }
  .contrib-card { break-inside: avoid-page; }
  .contrib-late { color: #000; }
}
