.team-page { max-width: 1320px; }
.card-navigation { margin: 24px 0 26px; }
.back-link { font-size: 14px; color: var(--green); }
.team-intro { margin-bottom: 25px; }
.team-intro h1 { font-size: clamp(27px, 3vw, 38px); max-width: 1000px; overflow-wrap: anywhere; }
.team-meta { display: flex; align-items: center; flex-wrap: wrap; gap: 12px 22px; margin-top: 17px; color: var(--muted); font-size: 15px; }
.team-group { display: inline-flex; align-items: center; gap: 8px; color: var(--ink); }
.team-group .group-badge { margin: 0; }
.team-city { max-width: 750px; }
.team-summary { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin-bottom: 20px; max-width: 650px; }
.team-summary .rule-card { padding: 17px 20px; }
.team-summary strong { font-variant-numeric: tabular-nums; font-size: 31px; }
.clean-card { background: #e7efe8; border-color: #d7e3d9; }
.clean-card strong { color: var(--green); }
.team-summary .rule-card .day-pair-label { margin-top: 13px; font-size: 13px; color: #435c4d; }
.team-summary .rule-card .card-clean-days { margin-top: 3px; color: var(--green); font-size: 18px; font-weight: 600; font-variant-numeric: tabular-nums; white-space: nowrap; }
.day-plus { color: #526e5c; padding: 0 4px; font-weight: 400; }
.team-summary .rule-card .day-times-note { margin-top: 9px; font-size: 12px; line-height: 1.5; color: #465f4f; }
.rest-card strong { color: #3d5547; }
.participants-section, .route-section, .map-section { margin-bottom: 20px; }
.team-card-page .table-toolbar { padding: 19px 22px; }
.participant-list { display: flex; flex-wrap: wrap; gap: 10px 24px; margin: 0; list-style: none; padding: 0 22px 21px; }
.participant-list li { padding: 7px 12px; border-radius: 7px; background: #f2f6f2; font-size: 15px; color: #2e4738; }
.route-table { min-width: 1100px; font-size: 14px; }
.route-no { width: 4%; } .route-cp { width: 15%; } .route-time { width: 17%; } .route-split { width: 10%; } .route-credit { width: 9%; } .route-distance { width: 17%; } .route-pace { width: 10%; } .route-one-cp { width: 10%; } .route-interval { width: 8%; }
.route-table th { padding: 13px 10px; }
.route-table th:nth-child(2), .route-table th:nth-child(3) { text-align: left; }
.route-table th:nth-child(5), .route-table td:nth-child(5) { text-align: center; }
.route-table td { padding: 12px 10px; font-variant-numeric: tabular-nums; }
.route-table td:not(:nth-child(2)) { white-space: nowrap; overflow-wrap: normal; }
.route-table td:first-child { text-align: center; color: #445a4d; }
.route-table td:nth-child(2) { color: #375446; }
.route-table td:nth-child(2) b { font-weight: 600; }
.route-table td:nth-child(3), .route-table td:nth-child(6) { color: #405749; font-size: 13px; }
.route-table td:last-child { text-align: center; color: #475f50; font-size: 13px; }
.checkpoint-row:nth-child(even) { background: #fcfdfb; }
.checkpoint-row:hover { background: #f3f7f1; }
.route-table .after-sunset { background: #eef1fa; }
.route-table .after-sunset:hover { background: #e5ebf7; }
.route-table .after-sunset td { border-bottom-color: #dce3ed; }
.route-table .after-sunset td:first-child { box-shadow: inset 3px 0 #7286ad; color: #344e77; }
.route-table .after-sunset td:nth-child(3) { background: #e1e7f2; color: #2c4167; font-weight: 600; }
.night-legend { display: flex; align-items: center; gap: 8px; margin: 0; padding: 0 22px 14px; font-size: 13px; color: #435571; }
.night-swatch { display: inline-block; flex-shrink: 0; width: 17px; height: 13px; border-radius: 3px; border: 1px solid #cdd7e7; border-left: 3px solid #7286ad; background: #e1e7f2; }
.checkpoint-credit { display: inline-block; padding: 2px 6px; border-radius: 5px; color: var(--green); background: #edf5ec; font-size: 13px; }
.boundary-row { background: #eef4ee; }
.boundary-row td { border-top: 1px solid #dce6da; border-bottom: 1px solid #dce6da; }
.boundary-row td:nth-child(2) { font-size: 13px; }
.route-total { background: #f2f6f2; font-weight: 650; }
.route-total td { border-top: 1px solid #dce6da; border-bottom: 0; }
.no-checkpoints { color: var(--muted); padding: 0 22px 20px; margin: 0; font-size: 15px; }
.map-original { font-size: 14px; color: var(--green); }
.map-original span { margin-left: 7px; }
.map-link { display: block; padding: 0 16px 16px; }
.route-map { display: block; max-width: 100%; height: auto; margin: auto; border-radius: 8px; border: 1px solid var(--line); }
.team-card-page footer { padding-top: 6px; }
@media (min-width: 1170px) { .team-card-page .scroll-hint { display: none; } }
@media (max-width: 800px) {
  .card-navigation { margin: 18px 0 23px; }
  .team-intro { margin-bottom: 21px; }
  .team-intro h1 { font-size: 28px; }
  .team-meta { gap: 10px 16px; font-size: 14px; margin-top: 13px; }
  .team-summary { gap: 9px; margin-bottom: 16px; }
  .team-summary .rule-card { padding: 13px 14px; }
  .team-summary strong { font-size: 26px; }
  .team-summary .rule-card .card-clean-days { font-size: 13px; }
  .team-summary .rule-card .day-pair-label { font-size: 12px; }
  .day-plus { padding: 0 1px; }
  .team-card-page .table-toolbar { padding: 16px; }
  .participant-list { flex-direction: column; align-items: flex-start; gap: 8px; padding: 0 16px 17px; }
  .participant-list li { font-size: 14px; }
  .participants-section, .route-section, .map-section { margin-bottom: 16px; }
  .no-checkpoints { padding: 0 16px 17px; font-size: 14px; }
  .night-legend { padding: 0 16px 13px; }
  .map-original { font-size: 13px; }
  .map-link { padding: 0 10px 10px; }
}
@media print {
  .card-navigation, .map-original, .team-card-page .scroll-hint { display: none; }
  .team-page { max-width: none; }
  .team-intro { margin-top: 14px; margin-bottom: 12px; }
  .team-intro h1 { font-size: 24px; }
  .team-meta { margin-top: 8px; font-size: 11px; }
  .team-summary { max-width: 430px; gap: 8px; margin-bottom: 12px; }
  .team-summary .rule-card { padding: 8px 12px; }
  .team-summary strong { font-size: 20px; }
  .team-summary .rule-card .card-clean-days { font-size: 12px; }
  .team-card-page .table-toolbar { padding: 8px 0; }
  .team-card-page h2 { font-size: 14px; }
  .participant-list { padding: 0 0 12px; gap: 10px; }
  .participant-list li { padding: 3px 7px; font-size: 11px; }
  .route-table { min-width: 0; font-size: 10px; }
  .route-table th, .route-table td { padding: 7px 4px; font-size: 10px; }
  .route-table td:nth-child(3), .route-table td:nth-child(6), .route-table td:last-child, .boundary-row td:nth-child(2), .checkpoint-credit { font-size: 10px; }
  .checkpoint-credit { padding: 0; }
  .night-legend { padding: 0 0 10px; font-size: 10px; }
  .route-table .after-sunset, .route-table .after-sunset td { print-color-adjust: exact; -webkit-print-color-adjust: exact; }
  .map-section { break-before: page; }
  .route-map { max-height: 175mm; object-fit: contain; }
}
