/* Профиль спортсмена: портрет 4:5, факты таблицей, табло боёв, история боёв, места */
.pr-top { grid-template-columns: 320px minmax(0, 1fr); gap: 48px; }
.pr-name { margin: 12px 0 20px; overflow-wrap: break-word; hyphens: auto; }
.pr-top .factlist a { color: inherit; }
.pr-score { margin-top: 24px; }
.pr-acts { margin-top: 20px; }
@media (max-width: 900px) {
  .pr-top { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .pr-top .profile-photo { width: 168px; }
  .pr-name { margin: 8px 0 16px; }
}

.score-rank a { display: block; color: inherit; text-decoration: none; }
.score-rank b { color: var(--blue); }
.score-rank a:hover span { color: var(--ink); }
/* Место 1–3 в рейтинге — медалью на ленте, как у тройки лидеров; цифра остаётся для экранных чтецов */
.score-rank .medal { margin: 0 auto 8px; width: 44px; padding-top: 16px; }
.score-rank .medal .medal-r { width: 24px; height: 21px; margin: 0 0 0 -12px; }
.score-rank .medal .medal-d { display: flex; width: 44px; height: 44px; margin: 0; font: 700 21px/1 var(--serif); letter-spacing: 0; text-transform: none; color: var(--m-ink); }
.score-rank .medal + b { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.score-rank a:hover .medal-d { color: var(--m-ink); }
.stack > .score-note { margin-top: 10px; line-height: 1.5; max-width: 65ch; }

.bouts td { vertical-align: top; }
.bouts .b-res { white-space: nowrap; }
.bouts .b-method { color: var(--muted); white-space: nowrap; }
.bouts .b-tour a, .places td a { font-weight: 400; }
.bouts .b-date, .bouts .b-weight { white-space: nowrap; }
.bouts .b-link { text-align: right; white-space: nowrap; font-size: 14px; font-weight: 600; }
/* Вся строка ведёт на страницу боя; ссылки на соперника и турнир остаются поверх */
.bouts tbody tr { position: relative; }
.bouts tbody tr:has(.b-link a):hover { background: var(--blue-tint); }
.bouts .b-link a::after { content: ""; position: absolute; inset: 0; }
.bouts .b-opp a, .bouts .b-tour a { position: relative; z-index: 1; }

@media (max-width: 600px) {
  .score { flex-wrap: wrap; }
  .score div { padding: 10px 4px; }
  .score b { font-size: 30px; }
  .score span { font-size: 11px; }
  .score .score-rank { flex-basis: 100%; border-left: 0; border-top: 1px solid var(--line); display: flex; }
  .score-rank a { display: flex; align-items: baseline; justify-content: center; gap: 10px; width: 100%; }
  .score-rank a:has(.medal) { align-items: center; }
  .score-rank .medal { margin: 0; width: 36px; padding-top: 13px; }
  .score-rank .medal .medal-r { width: 20px; height: 18px; margin-left: -10px; }
  .score-rank .medal .medal-d { width: 36px; height: 36px; font-size: 17px; }
}

/* На телефоне строка боя складывается в три строки вместо прокрутки */
@media (max-width: 700px) {
  .bouts thead { display: none; }
  .bouts, .bouts tbody { display: block; }
  .bouts tr { display: grid; grid-template-columns: auto minmax(0, 1fr) auto auto; column-gap: 12px; row-gap: 4px;
    grid-template-areas: "res method method date" "opp opp opp link" "tour tour tour tour";
    padding: 12px 0; border-bottom: 1px solid var(--line); align-items: baseline; }
  .bouts td { display: block; border: 0; padding: 0; }
  .bouts .b-res { grid-area: res; }
  .bouts .b-method { grid-area: method; font-size: 13px; }
  .bouts .b-date { grid-area: date; font-size: 14px; }
  .bouts .b-opp { grid-area: opp; font-size: 17px; }
  .bouts .b-link { grid-area: link; }
  .bouts .b-tour { grid-area: tour; font-size: 14px; }
  .bouts .b-tour .sub { display: inline; margin-left: 6px; }
  .bouts .b-tour .sub::before { content: "· "; }
}

/* Портфолио: медали под фактами, места карточками по турнирам, рейтинг по сезонам */
.pr-medals { margin-top: 24px; }
/* Тренер: подпись над медалями учеников */
.pr-medals-l { margin: 24px 0 0; }
.pr-medals-l + .pr-medals { margin-top: 8px; }
.pr-medals + .pr-score { margin-top: 16px; }
.pr-sec { margin-top: 56px; }
.pr-sec .head { margin-bottom: 16px; }
.pm-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(340px, 1fr)); gap: 16px; }
.pm-card { border: 1px solid var(--line2); background: var(--paper); min-width: 0; }
.pm-head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; padding: 10px 14px; background: var(--mist);
  border-bottom: 1px solid var(--line2); border-left: 4px solid var(--blue); }
.pm-head a { font-weight: 600; color: var(--ink); text-decoration: none; overflow-wrap: anywhere; }
.pm-head a:hover { color: var(--blue); text-decoration: underline; }
.pm-date { font-size: 13px; font-weight: 600; color: var(--ink2); }
.pm-sport { font-size: 12px; font-weight: 600; color: var(--ink2); text-transform: uppercase; letter-spacing: .06em; }
.pm-places { list-style: none; margin: 0; padding: 0; }
.pm-row { display: grid; grid-template-columns: 32px minmax(0, 1fr); column-gap: 12px; align-items: center; padding: 10px 14px; }
.pm-row + .pm-row { border-top: 1px solid var(--line); }
.pm-row > .place:not(.place-1):not(.place-2):not(.place-3) { font-size: 20px; text-align: center; }
.pm-what { min-width: 0; line-height: 1.3; }
.pm-what b { display: block; font-weight: 600; }
.pm-what .sub { display: block; font-size: 13px; overflow-wrap: anywhere; }
.pm-empty { display: flex; gap: 16px; align-items: center; padding: 20px; border: 1px dashed var(--line2); background: var(--mist); }
.pm-empty img { flex: none; opacity: .55; }
.pm-empty b { font-size: 17px; }
.pm-empty p { margin: 4px 0 0; font-size: 14px; }
.pm-seasons { max-width: 640px; }
.pm-seasons td { vertical-align: middle; }
.pm-seasons .mark { margin-left: 8px; font-size: 13px; }
@media (max-width: 600px) {
  .pr-sec { margin-top: 40px; }
  .pm-cards { grid-template-columns: minmax(0, 1fr); }
  .pm-empty { padding: 16px; }
}
