/* One round review: cards, lane points, round totals and readiness share the same screen. */
.result-review { height: calc(100dvh - var(--header-h)); max-width: 1800px; padding: 16px var(--safe-x); margin: auto; --review-card-w: clamp(32px,5.6vh,52px); }
.result-review[data-player-count="2"],.result-review[data-player-count="3"] { --review-card-w: clamp(40px,9vh,64px); }
.result-review-paper { height: 100%; display: flex; flex-direction: column; min-height: 0; padding: 14px 16px 10px; border-radius: 13px; color: #295343; gap: 12px; }
.result-review-title { display: flex; align-items: center; justify-content: space-between; gap: 15px; flex-shrink: 0; }
.result-review-title h2 { font: 30px/1.1 'KaiTi','STKaiti',serif; letter-spacing: 4px; }
.result-review-title > span { color: #798266; font-size: 11px; }
.result-review-players { display: grid; grid-template-rows: repeat(var(--result-players),minmax(0,1fr)); gap: 8px; flex: 1; min-height: 0; overflow-y: auto; overscroll-behavior: contain; }
.result-review-player { display: grid; grid-template-columns: minmax(130px,1.05fr) repeat(3,minmax(0,1fr)) minmax(105px,.8fr); align-items: center; gap: 12px; border: 1px solid #d4c994; border-radius: 8px; padding: 9px 12px; background: #fffbed70; min-width: 0; min-height: min-content; }
.result-review-player.is-me { background: #e7d69b66; border-color: #bfa66a; }
.result-review-person { min-width: 0; }
.result-review-identity { display: flex; align-items: center; gap: 8px; }
.result-review-identity .avatar { width: 38px; height: 38px; border-width: 2px; flex-shrink: 0; }
.result-review-identity > div { min-width: 0; }
.result-review-identity strong { display: block; font-size: 13px; overflow-wrap: anywhere; }
.result-review-identity em { font: 9px/1 sans-serif; color: #8d6d32; }
.result-review-rank { display: inline-grid; place-items: center; min-width: 15px; height: 15px; font: 10px/1 Georgia,serif; border-radius: 4px; background: #ad9458; color: #fff9df; margin-right: 5px; }
.result-review .player-uid { font-size: 8px; margin-top: 3px; max-width: 160px; }
.result-review .result-review-awards { display: flex; gap: 3px; flex-wrap: wrap; font-size: 9px; color: #947433; margin-top: 6px; }
.result-review-awards span { background: #ddc87844; border-radius: 3px; padding: 1px 3px; }
.result-review-lane { display: grid; justify-items: center; min-width: 0; gap: 4px; }
.result-review-lane-heading { width: 100%; max-width: calc(var(--review-card-w)*3 + 10px); display: grid; grid-template-columns: minmax(0,1fr) auto auto; align-items: center; gap: 4px; color: #788467; font-size: 11px; white-space: nowrap; }
.result-review-lane-label { overflow: hidden; text-overflow: ellipsis; }
.result-review-lane-rank { color: #4f6656; background: #e7e6d4; border-radius: 3px; padding: 2px 3px; font-size: 11px; }
.result-review-lane-rank.is-first { color: #805a1d; background: #ebd597; }
.result-review-lane-heading strong { font-weight: 500; }
.result-review-lane-heading b { font: bold 15px/1 Georgia,serif; }
/* Each lane owns three tracks. Card size must fit that lane, not just the viewport height. */
.result-review-lane > .cards { --card-w: var(--review-card-w); display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); width: 100%; max-width: calc(var(--review-card-w)*3 + 8px); gap: 4px; min-width: 0; }
.result-review-lane > .cards > .card.playing-card { width: 100%; max-width: 100%; min-width: 0; height: auto; aspect-ratio: 250 / 363; }
.result-review-points { display: grid; justify-items: center; gap: 5px; font-size: 11px; text-align: center; }
.result-review-points > strong { font: bold 28px/1 Georgia,serif; }
.result-review-points > strong > small { font: 10px/1 sans-serif; color: #64785d; }
.result-review-points > small { color: #788366; font-size: 9px; }
.result-review .positive { color: #b86733; }
.result-review .negative { color: #23745e; }
.result-review-footer { flex-shrink: 0; display: flex; align-items: center; justify-content: center; min-height: 43px; }
.result-review-footer .round-ready-controls { justify-content: center; }
.result-review-footer .btn { min-height: 40px; font-size: 14px; padding: 8px 23px; }
.result-review--history { height: auto; max-width: none; padding: 0; margin: 16px 0; }
.result-review--history .result-review-players { grid-template-rows: none; grid-auto-rows: min-content; overflow: visible; }
.result-review--history .result-review-player { min-height: 135px; }
@media(orientation:landscape) and (max-height:600px) {
  .result-review { padding: 5px 12px; --review-card-w: 30px; }
  .result-review[data-player-count="2"],.result-review[data-player-count="3"] { --review-card-w: clamp(34px,9vh,48px); }
  .result-review[data-player-count="5"] { --review-card-w: 30px; }
  .result-review-paper { padding: 7px 9px 5px; gap: 6px; }
  .result-review-title h2 { font-size: 20px; letter-spacing: 2px; }
  .result-review-title > span { font-size: 8px; }
  .result-review-players { gap: 4px; }
  .result-review-player { grid-template-columns: minmax(116px,1.1fr) repeat(3,minmax(0,1fr)) minmax(89px,.85fr); padding: 3px 6px; gap: 8px; }
  .result-review-identity { gap: 4px; }
  .result-review-identity .avatar { width: 26px; height: 26px; }
  .result-review-identity strong { font-size: 11px; }
  .result-review-rank { min-width: 11px; height: 11px; font-size: 8px; margin-right: 3px; }
  .result-review .player-uid { font-size: 7px; margin-top: 1px; max-width: 120px; }
  .result-review .result-review-awards { font-size: 7px; margin-top: 3px; gap: 1px; }
  .result-review-lane { gap: 2px; }
  .result-review-lane-heading { font-size: 9px; }
  .result-review-lane-rank { font-size: 9px; padding: 1px 2px; }
  .result-review-lane-heading b { font-size: 12px; }
  .result-review-lane > .cards { max-width: calc(var(--review-card-w)*3 + 4px); gap: 2px; }
  .result-review-points { font-size: 9px; gap: 2px; }
  .result-review-points > strong { font-size: 19px; }
  .result-review-points > strong > small { font-size: 8px; }
  .result-review-points > small { font-size: 7px; }
  .result-review-footer { min-height: 33px; }
  .result-review-footer .btn { min-height: 32px; padding: 5px 18px; font-size: 11px; }
  .result-review-footer .round-ready-controls { font-size: 9px; }
  .result-review-footer .round-ready-controls small { font-size: 8px; }
  .result-review--history { height: auto; padding: 0; }
  .result-review--history .result-review-player { min-height: 90px; }
}
/* Compact the side columns on narrow landscape screens so all three lanes stay readable. */
@media(orientation:landscape) and (max-width:700px) {
  .result-review-player { grid-template-columns: minmax(86px,.72fr) repeat(3,minmax(0,1fr)) minmax(62px,.55fr); gap: 6px; padding: 3px 4px; }
  .result-review-identity .avatar { width: 21px; height: 21px; }
  .result-review-identity strong { font-size: 10px; }
  .result-review .player-uid { max-width: 100%; }
  .result-review-points > small { max-width: 100%; }
  .result-review-lane-heading { grid-template-columns: minmax(0,1fr) auto; gap: 2px; }
  .result-review-lane-label { grid-column: 1/-1; text-align: center; }
  .result-review-lane-rank { justify-self: center; }
}
@media(orientation:portrait) and (max-width:800px) {
  .result-review,.result-review[data-player-count="2"],.result-review[data-player-count="3"] { padding: 8px; --review-card-w: clamp(26px,7.3vw,35px); }
  .result-review-paper { padding: 10px 8px 7px; gap: 8px; }
  .result-review-title h2 { font-size: 25px; letter-spacing: 2px; }
  .result-review-title > span { max-width: 150px; font-size: 9px; text-align: right; }
  .result-review-players { grid-template-rows: none; grid-auto-rows: min-content; gap: 7px; }
  .result-review-player { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 7px 4px; padding: 8px 5px; }
  .result-review-person { grid-column: 1/3; grid-row: 1; }
  .result-review-identity { gap: 5px; }
  .result-review-identity .avatar { width: 27px; height: 27px; }
  .result-review-identity strong { font-size: 12px; }
  .result-review .player-uid { font-size: 8px; max-width: 165px; }
  .result-review .result-review-awards { margin-top: 3px; font-size: 8px; }
  .result-review-points { grid-column: 3; grid-row: 1; font-size: 9px; gap: 2px; }
  .result-review-points > strong { font-size: 21px; }
  .result-review-points > small { font-size: 7px; white-space: nowrap; }
  .result-review-lane { grid-row: 2; gap: 3px; }
  .result-review-lane-heading { grid-template-columns: minmax(0,1fr) auto; font-size: 10px; gap: 2px; }
  .result-review-lane-label { grid-column: 1/-1; text-align: center; overflow: visible; }
  .result-review-lane-rank { justify-self: center; font-size: 10px; }
  .result-review-lane-heading b { font-size: 11px; }
  .result-review-lane > .cards { gap: 2px; }
  .result-review-footer { min-height: 42px; }
  .result-review-footer .btn { min-height: 38px; padding: 6px 18px; font-size: 12px; }
  .result-review-footer .round-ready-controls { gap: 7px; font-size: 9px; }
  .result-review--history { height: auto; padding: 0; }
}

