:root { color-scheme: light; font-family: Arial, Helvetica, sans-serif; }
body { margin: 0; background: #f5f7fb; color: #172033; }
main { max-width: 1560px; margin: 0 auto; padding: 32px 20px 36px; }
h1 { margin: 0 0 8px; font-size: 30px; line-height: 1.2; }
h2 { margin: 0 0 10px; font-size: 24px; line-height: 1.25; }
.author { margin: 0 0 18px; color: #374151; line-height: 1.5; }
.summary { margin: 0 0 14px; color: #4b5563; line-height: 1.5; }
.dataset-note { margin: 0 0 18px; color: #374151; line-height: 1.5; }
.table-wrap { border: 1px solid #d7dce5; background: #fff; }
table { width: 100%; border-collapse: collapse; min-width: 0; font-size: 13px; }
th, td { padding: 9px 6px; border-bottom: 1px solid #e5e8ef; text-align: left; }
thead { position: sticky; top: 0; z-index: 2; }
th { background: #eaf0f8; color: #111827; font-size: 12px; text-transform: uppercase; letter-spacing: .02em; }
tbody tr:hover { background: #f8fafc; }
a { color: #174ea6; text-decoration: none; font-weight: 600; }
a:hover { text-decoration: underline; }
.numeric { font-variant-numeric: tabular-nums; text-align: right; white-space: nowrap; }
.route-link { display: inline-block; padding: 6px 10px; border: 1px solid #b8c6df; background: #f3f7ff; }
.reference { margin: 18px 0 0; color: #374151; font-size: 14px; line-height: 1.5; }
.created-date { margin-top: 26px; color: #6b7280; font-size: 13px; text-align: right; }
.maintainer { margin-top: 6px; color: #6b7280; font-size: 13px; text-align: right; }
.instance-table table { min-width: 0; }
caption { padding: 12px 14px; text-align: left; color: #4b5563; font-size: 13px; line-height: 1.5; border-bottom: 1px solid #e5e8ef; }
caption p { margin: 0; }
caption p + p { margin-top: 6px; }
thead th[colspan] { text-align: center; }
tbody th { position: static; background: transparent; font-size: inherit; text-transform: none; letter-spacing: normal; }
.row-sub { display: block; margin-top: 3px; color: #6b7280; font-size: 11px; font-weight: normal; }
.row-sub a { font-size: 11px; }
.files { white-space: nowrap; font-size: 12px; line-height: 1.7; }
@media (min-width: 901px) {
  /* Separate Instance, Gurobi and ALNS across both headers and all result rows. */
  .instance-table thead tr:first-child th:nth-child(2),
  .instance-table thead tr:nth-child(2) th:first-child,
  .instance-table tbody td[data-label="Gurobi status"],
  .instance-table thead tr:first-child th:last-child,
  .instance-table thead tr:nth-child(2) th:nth-child(7),
  .instance-table tbody td[data-label="ALNS best L"] {
    border-left: 2px solid #8796ad;
  }
}
@media (max-width: 1100px) {
  table { font-size: 12px; }
  th { font-size: 11px; }
  th, td { padding: 8px 4px; }
}
@media (max-width: 900px) {
  main { padding-left: 16px; padding-right: 16px; }
  .table-wrap { border: 0; background: transparent; }
  table, tbody { display: block; width: 100%; }
  caption { display: block; box-sizing: border-box; width: 100%; padding: 12px 0; margin-bottom: 12px; }
  thead { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); }
  tbody tr { display: block; background: #fff; border: 1px solid #d7dce5; margin-bottom: 14px; }
  tbody th { display: block; background: #eaf0f8; padding: 12px; font-size: 15px; }
  tbody td { display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: 12px; padding: 9px 12px; text-align: right; font-size: 14px; }
  tbody td::before { content: attr(data-label); text-align: left; white-space: normal; color: #374151; font-size: 13px; }
  tbody td .row-sub { grid-column: 2; }
  tbody td:last-child { border-bottom: 0; }
}
