/* Scope every rule to .sideout-room. The court is original geometry, not an image. */
.sideout-room{--room-cream:#f5f1df;--room-green:#163f32;--room-lime:#dcf27a;--room-arena:#12362c;--room-muted:#586a52;box-sizing:border-box;max-width:1180px;margin:0 auto;padding:14px 20px;background:var(--room-cream);color:var(--room-green);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:16px;line-height:1.3;border-radius:20px}
.sideout-room *, .sideout-room *::before,.sideout-room *::after{box-sizing:border-box}
.sideout-room button{font:inherit;cursor:pointer;touch-action:manipulation}
.sideout-room button:focus-visible{outline:3px solid var(--so-focus-inner);outline-offset:2px;box-shadow:0 0 0 5px var(--so-focus-outer)}
.sideout-room button:disabled{cursor:default;opacity:1}
.sideout-room .room-scorebug{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:16px;min-height:58px;margin-bottom:10px}
.sideout-room .room-team{display:flex;align-items:center;gap:16px;min-width:0;font-weight:750}
.sideout-room .room-team--opponent{justify-content:flex-end;text-align:right}
.sideout-room .room-team-label{overflow-wrap:anywhere;max-width:240px;font-size:18px}
.sideout-room .room-score{font-size:36px;line-height:1;font-variant-numeric:tabular-nums}
.sideout-room .room-match-phase{display:grid;gap:2px;text-align:center;font-size:16px;max-width:220px}
.sideout-room .room-match-phase>strong{font-weight:650}
.sideout-room .room-arena{display:flex;justify-content:center;align-items:center;padding:24px 28px;background:var(--room-arena);border-radius:14px;overflow:visible}
.sideout-room .room-court{position:relative;aspect-ratio:2/1;width:min(100%,860px);flex:none;isolation:isolate}
.sideout-room .room-court-lines{position:absolute;inset:0;width:100%;height:100%;overflow:visible;border-radius:2px}
.sideout-room .room-wood{fill:#d6a76b}
.sideout-room .room-wood-grain{stroke:#ac7c46;stroke-width:.035;fill:none;opacity:.45}
.sideout-room .room-court-boundary{stroke:#fff8e7;stroke-width:.08;fill:none}
.sideout-room .room-net-shadow{stroke:#735530;stroke-width:.21;fill:none}
.sideout-room .room-net{stroke:#fff8e7;stroke-width:.1;stroke-dasharray:.09 .09;fill:none}
.sideout-room .room-ball-path{stroke:#173e31;stroke-width:.08;stroke-dasharray:.16 .12;stroke-linecap:round;fill:none;opacity:.75}
.sideout-room .room-player-route{stroke-width:.075;stroke-dasharray:.18 .13;stroke-linecap:round;opacity:.92;pointer-events:none}
.sideout-room .room-player-route--own{stroke:#fff36a}
.sideout-room .room-player-route--opponent{stroke:#ff8c9c}
.sideout-room .room-player{position:absolute;z-index:2;display:grid;place-content:center;gap:0;width:50px;min-height:50px;padding:1px 4px;border:2px solid #f5f1df;border-radius:13px;transform:translate(-50%,-50%);box-shadow:0 3px 0 #0004;line-height:1.08;transition:left 180ms linear,top 180ms linear;background:#163f32;color:#fffbea;text-align:center}
.sideout-room .room-player--opponent{border-radius:50%;background:#f4eedc;color:#40301d;border-color:#725831}
.sideout-room .room-player-number{font-size:18px;font-weight:850}
.sideout-room .room-player-role{font-size:16px;font-weight:700;white-space:nowrap}
.sideout-room .room-player.is-active{outline:4px solid var(--room-lime);outline-offset:3px;z-index:3}
.sideout-room .room-player:disabled{color:#fffbea;background:#163f32}
.sideout-room .room-player--opponent:disabled{color:#40301d;background:#f4eedc}
.sideout-room .room-ball{position:absolute;z-index:4;width:20px;height:20px;transform:translate(-50%,-50%);border:2px solid #173e31;border-radius:50%;background:repeating-conic-gradient(#fffbee 0deg 60deg,#e3bb44 60deg 120deg);box-shadow:0 3px 5px #0005;pointer-events:none;transition:left 180ms linear,top 180ms linear}
.sideout-room .room-live-strip{display:flex;align-items:center;gap:20px;min-height:62px;padding:10px 2px}
.sideout-room .room-actor-strip{display:flex;align-items:center;gap:10px;min-width:0;flex:0 1 auto;font-size:18px}
.sideout-room .room-actor-strip>strong{overflow-wrap:anywhere}
.sideout-room .room-actor-badge{flex:none;padding:5px 8px;border-radius:8px;background:#dce5cb;font-size:16px;font-weight:750}
.sideout-room .room-commentary{margin:0;min-width:0;flex:1;font-size:16px;overflow-wrap:anywhere}
.sideout-room .room-action-rail{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding-bottom:8px}
.sideout-room .room-button{display:inline-flex;justify-content:center;align-items:center;gap:6px;min-height:44px;padding:10px 16px;border:1px solid #879779;border-radius:10px;font-size:16px;font-weight:700;white-space:nowrap}
.sideout-room .room-primary{background:var(--room-lime);color:#173b29;border-color:#92aa45;box-shadow:0 2px 0 #87a638;min-width:170px}
.sideout-room .room-secondary{background:#f9f5e7;color:#163f32}
.sideout-room .room-control-group{display:flex;gap:4px;align-items:center}
.sideout-room .room-plans{margin-left:auto}
.sideout-room .room-option{background:#e7ead8;color:#254431;min-width:44px;padding:10px 12px}
.sideout-room .room-option[aria-pressed="true"]{background:#163f32;color:#f8f6e8;border-color:#163f32}
.sideout-room .room-button:disabled,.sideout-room .room-tab:disabled,.sideout-room .room-roster-player:disabled{background:#e6e9dd;color:#526049;border-color:#8e9d81;box-shadow:none}
.sideout-room .room-option[aria-pressed="true"]:disabled{border:2px solid #526049;padding:9px 11px}
.sideout-room .room-details{border-top:1px solid #bec6ad}
.sideout-room .room-detail-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.sideout-room .room-tabs{display:flex;gap:16px;min-height:44px}
.sideout-room .room-tab{min-width:60px;min-height:44px;padding:8px 4px;border:0;border-bottom:3px solid transparent;background:transparent;color:#506149;font-size:16px;font-weight:650}
.sideout-room .room-tab[aria-selected="true"]{border-bottom-color:#163f32;color:#163f32}
.sideout-room .room-tab-panel:focus-visible{outline:3px solid var(--so-focus-inner);outline-offset:2px;box-shadow:0 0 0 5px var(--so-focus-outer)}
.sideout-room .room-set-scores{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;list-style:none;padding:0;margin:10px 0}
.sideout-room .room-detail-toolbar .room-set-scores{margin:0}.sideout-room .room-set-scores li{display:flex;gap:8px;align-items:center;padding:6px 10px;background:#e6e9d7;border-radius:8px;font-size:16px;font-variant-numeric:tabular-nums}
.sideout-room .room-roster{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;padding:12px 0 4px}
.sideout-room .room-roster-player{display:grid;text-align:left;gap:4px;min-height:64px;padding:8px;border:1px solid #acb99b;border-radius:8px;background:#eef0df;color:#173f30;font-size:16px}
.sideout-room .room-roster-player span{overflow-wrap:anywhere}
.sideout-room .room-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:12px 0}
.sideout-room .room-route-snapshot{border-top:1px solid #bec6ad;margin-top:16px;padding-top:12px}.sideout-room .room-route-snapshot h3{margin:0 0 5px;color:#163f32;font-size:16px}.sideout-room .room-route-snapshot>p{margin:0 0 10px;color:#506149;font-size:14px;line-height:1.4}.sideout-room .room-route-snapshot dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0}.sideout-room .room-route-snapshot dl>div{min-width:0;border:1px solid #b5bea4;border-radius:8px;background:#eef0df;padding:10px}.sideout-room .room-route-snapshot dt{color:#163f32;font-weight:700}.sideout-room .room-route-snapshot dd{margin:5px 0 0;color:#506149;line-height:1.45;overflow-wrap:anywhere}
.sideout-room .room-stat{display:flex;flex-direction:column-reverse;gap:5px;padding:12px;border:1px solid #b5bea4;border-radius:10px}
.sideout-room .room-stat dt{font-size:16px}
.sideout-room .room-stat dd{margin:0;font-size:28px;font-weight:800;font-variant-numeric:tabular-nums}
.sideout-room .room-empty{font-size:16px}
.sideout-room .room-data-coverage{margin:4px 0 8px;color:#b9c8d8;font-size:14px;font-weight:650}.sideout-room .room-data-coverage[data-coverage="partial"]{color:#ffd27a}.sideout-room .room-data-coverage[data-coverage="unrecorded"]{color:#b9c8d8}
.sideout-room.room-summary{padding:28px;background:#12362c;min-height:0;display:grid;align-content:start;justify-items:center}
.sideout-room .room-result-panel{width:min(100%,960px);padding:28px;border-radius:18px;background:var(--room-cream);text-align:center}
.sideout-room .room-result-hero{max-width:720px;margin:0 auto}
.sideout-room .room-result-label{margin:0 0 8px;color:#163f32;font-size:20px;font-weight:850;text-transform:uppercase;letter-spacing:.1em}
.sideout-room .room-result-panel h2{margin:0;font-size:24px;font-weight:700;overflow-wrap:anywhere}
.sideout-room .room-final-score{margin:12px 0;font-size:72px;line-height:1;font-weight:850;letter-spacing:-.035em;font-variant-numeric:tabular-nums}
.sideout-room .room-summary-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;margin:22px 0;text-align:left}
.sideout-room .room-summary-grid>section{min-width:0;padding:16px;border:1px solid #b5bea4;border-radius:12px}
.sideout-room .room-summary-grid h3{margin:0 0 12px;font-size:18px}
.sideout-room .room-summary-stats{grid-template-columns:repeat(2,minmax(0,1fr));text-align:left;margin:0 0 14px}
.sideout-room .room-credit-changes{display:flex;justify-content:flex-start;gap:10px 16px;flex-wrap:wrap;margin:0}
.sideout-room .room-credit-changes>div{display:flex;align-items:center;gap:8px}
.sideout-room .room-credit-changes dt{font-size:16px}
.sideout-room .room-credit-changes dd{margin:0;padding:5px 9px;border-radius:8px;background:#dae99e;font-size:18px;font-weight:800}
.sideout-room .room-change-note{font-size:16px;line-height:1.5;margin:0 0 14px;overflow-wrap:anywhere}
.sideout-room .room-continue{width:100%;margin-top:8px}
@media(min-width:800px) and (max-height:800px){.sideout-room .room-court{width:min(100%,calc((100dvh - 400px)*2),860px)}.sideout-room .room-arena{padding-block:20px}.sideout-room .room-live-strip{min-height:56px}}
@media(max-width:680px){.sideout-room{padding:12px 12px;border-radius:14px}.sideout-room .room-scorebug{gap:8px;min-height:64px;margin-bottom:8px}.sideout-room .room-team{gap:8px}.sideout-room .room-team-label{font-size:16px}.sideout-room .room-score{font-size:28px}.sideout-room .room-match-phase{max-width:105px;font-size:16px}.sideout-room .room-arena{padding:24px;border-radius:10px}.sideout-room .room-player{width:44px;min-height:44px;border-radius:11px}.sideout-room .room-player--opponent{border-radius:50%}.sideout-room .room-player-number{font-size:16px}.sideout-room .room-player-role{font-size:16px}.sideout-room .room-player.is-active{outline-width:3px;outline-offset:2px}.sideout-room .room-ball{width:16px;height:16px}.sideout-room .room-live-strip{display:grid;gap:6px;min-height:88px;padding:12px 0}.sideout-room .room-commentary{line-height:1.35}.sideout-room .room-action-rail{gap:8px}.sideout-room .room-primary{flex:1;min-width:150px}.sideout-room .room-secondary{flex:1}.sideout-room .room-plans{margin-left:auto}.sideout-room .room-button{padding-inline:10px}.sideout-room .room-control-group{gap:4px}.sideout-room .room-roster{grid-template-columns:repeat(2,minmax(0,1fr))}.sideout-room .room-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.sideout-room .room-stat{padding:10px}.sideout-room .room-stat dd{font-size:24px}.sideout-room .room-route-snapshot dl{grid-template-columns:1fr}.sideout-room.room-summary{padding:16px;min-height:0}.sideout-room .room-result-panel{padding:20px 14px}.sideout-room .room-final-score{font-size:64px}.sideout-room .room-summary-grid{grid-template-columns:1fr;gap:10px;margin:16px 0}.sideout-room .room-summary-grid>section{padding:12px}.sideout-room .room-summary-stats{margin:0 0 12px}.sideout-room .room-credit-changes{gap:10px}.sideout-room .room-tabs{justify-content:space-between}.sideout-room .room-set-scores{gap:6px}.sideout-room .room-set-scores li{padding:6px 8px}}
@media(prefers-reduced-motion:reduce){.sideout-room *,.sideout-room *::before,.sideout-room *::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}

.sideout-room .room-sets-total,.sideout-room .room-serving{font-size:16px;white-space:nowrap}.sideout-room .room-serving{border-bottom:3px solid #638036}.sideout-room .room-team{flex-wrap:wrap;gap:6px 12px}.sideout-room .room-team-label{flex:1;min-width:85px}.sideout-room .room-sets-total{flex-basis:100%}.sideout-room .room-team--opponent .room-sets-total{text-align:right}@media(max-width:680px){.sideout-room .room-team-label{min-width:0}.sideout-room .room-scorebug{align-items:start}.sideout-room .room-team{gap:4px 8px}.sideout-room .room-match-phase{max-width:75px}}

.sideout-room .room-flight-readout{margin:0 0 8px;font-size:14px;line-height:1.35;color:#d7e7dc;overflow-wrap:anywhere}
.sideout-room .room-condition-strip{margin:8px 0;padding:9px 12px;border-left:3px solid #f3c869;background:#273448;color:#fff;font-size:14px;line-height:1.35}.sideout-room .room-condition-strip span{color:#d4e0ed}

/* v87: compact, evidence-only setter read; never a player form rating. */
.room-setter-read{margin-top:14px;padding:12px;border:1px solid #36516b;border-radius:10px;background:#101e30;color:#edf5ff}.room-setter-read>header h3{margin:0;color:#70e2d2;font-size:18px}.room-setter-read>header p{margin:3px 0 10px;color:#c2d2e4;font-size:14px}.room-setter-read__teams{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.room-setter-read__team{min-width:0;padding:8px;border:1px solid #36516b;border-radius:8px;background:#17283c}.room-setter-read__team h4{margin:0 0 6px;color:#f3f7ff;font-size:15px}.room-setter-read__players{display:grid;gap:6px}.room-setter-read__player{min-width:0;padding:8px;border-radius:6px;background:#20354c}.room-setter-read__player>header{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.room-setter-read__player>header strong{overflow-wrap:anywhere;color:#fff;font-size:16px}.room-setter-read__player>header span{flex:none;color:#c8d8e9;font-size:14px}.room-setter-read__player ul{display:flex;flex-wrap:wrap;gap:6px;list-style:none;margin:7px 0 0;padding:0}.room-setter-read__player li{display:grid;grid-template-columns:auto auto;column-gap:6px;padding:5px 7px;border:1px solid #496882;border-radius:6px;background:#102137}.room-setter-read__player li span{grid-column:1/-1;color:#a9eee4;font-weight:700}.room-setter-read__player li strong{color:#fff}.room-setter-read__player li small{color:#c8d8e9}.room-setter-read__empty{margin:6px 0 0;color:#e1eaf5;font-size:14px}@media(max-width:680px){.room-setter-read__teams{grid-template-columns:1fr}.room-setter-read{padding:9px}.room-setter-read__player ul{gap:4px}}

.sideout-room .room-setter-dynamics{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 12px;margin:10px 0;padding:12px 14px;border:1px solid #506743;border-radius:10px;background:#e3e9d2;color:#17392f}.sideout-room .room-setter-dynamics header{grid-column:1/-1;display:flex;align-items:baseline;justify-content:space-between;gap:12px}.sideout-room .room-setter-dynamics h3{margin:0;font-size:18px}.sideout-room .room-setter-dynamics label{font-weight:700;align-self:center}.sideout-room .room-setter-dynamics meter{width:min(100%,280px);height:18px;align-self:center}.sideout-room .room-setter-dynamics>strong{font-variant-numeric:tabular-nums;font-size:18px}.sideout-room .room-setter-dynamics>strong span{font-size:14px}.sideout-room .room-setter-dynamics p,.sideout-room .room-setter-dynamics small{grid-column:1/-1;margin:0}.sideout-room .room-setter-dynamics small{color:#314c3d}
