/* Scoped to the combined scoreboard; existing calendar and shortcodes retain their styles. */
.dsm-scoreboard-page { width:100%; max-width:100%; min-width:0; overflow:visible; }
.dsm-scoreboard-page table { table-layout:fixed; width:100%; }
.dsm-scoreboard-page th, .dsm-scoreboard-page td { overflow-wrap:anywhere; min-width:0; }
.dsm-scoreboard-page .dsm-scoreboard-filters { display:flex; flex-wrap:wrap; gap:12px; align-items:end; margin:16px 0; }
.dsm-scoreboard-filters label { display:flex; flex-direction:column; gap:4px; min-width:0; flex:1 1 170px; }
.dsm-scoreboard-filters select { box-sizing:border-box; width:100%; max-width:100%; min-width:0; }
.dsm-scoreboard-page .dsm-standings-table th:first-child { width:48%; }
.dsm-scoreboard-page .dsm-standings-table th:not(:first-child), .dsm-scoreboard-page .dsm-standings-table td { text-align:center; }
@media (max-width:700px) {
    .dsm-scoreboard-page .dsm-game-table, .dsm-scoreboard-page .dsm-game-table tbody { display:block; }
    .dsm-scoreboard-page .dsm-game-table thead { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
    .dsm-scoreboard-page .dsm-game-table tr { display:block; margin:12px 0; padding:10px; border:1px solid #ddd; border-radius:8px; background:transparent; }
    .dsm-scoreboard-page .dsm-game-table td { display:grid; grid-template-columns:minmax(0,34%) minmax(0,1fr); gap:8px; padding:6px 0; border:0; width:auto; }
    .dsm-scoreboard-page .dsm-game-table td::before { content:attr(data-label); font-weight:600; }
    .dsm-scoreboard-page .dsm-game-table td:last-child { font-weight:700; }
    .dsm-scoreboard-page .dsm-standings-table th, .dsm-scoreboard-page .dsm-standings-table td { padding:6px 3px; font-size:.85em; }
    .dsm-scoreboard-page .dsm-standings-table th:first-child { width:52%; }
    .dsm-scoreboard-page .dsm-standings-table .dsm-played { display:none; }
}
.dsm-scoreboard-page .dsm-game-table caption.screen-reader-text { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.dsm-game-table tr[data-href] { cursor:pointer; }
.dsm-game-table tr[data-href]:hover { background:rgba(0,0,0,.04); }
.dsm-game-details-link span { display:block; font-size:.85em; margin-top:5px; }
.dsm-expanded-game { border:1px solid #ddd; border-radius:8px; padding:16px; margin:16px 0; overflow-wrap:anywhere; scroll-margin-top:100px; }
.dsm-expanded-game .dsm-expanded-score { font-size:1.15em; }
@media(max-width:700px) {
 .dsm-scoreboard-page .dsm-box-score-table, .dsm-scoreboard-page .dsm-box-score-table tbody { display:block; }
 .dsm-scoreboard-page .dsm-box-score-table thead { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
 .dsm-scoreboard-page .dsm-box-score-table tr { display:block; border:1px solid #ddd; border-radius:8px; margin:10px 0; padding:8px; }
 .dsm-scoreboard-page .dsm-box-score-table td { display:grid; grid-template-columns:minmax(0,34%) minmax(0,1fr); gap:8px; border:0; }
 .dsm-scoreboard-page .dsm-box-score-table td::before { content:attr(data-label); font-weight:600; }
}
.dsm-scoreboard-page.dsm-rankings h3.dsm-rankings-heading { font-size:1.6rem; font-weight:700; text-align:left; margin:24px 0 10px; }
.dsm-scoreboard-page .dsm-rankings-table caption { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
@media(max-width:700px) {
 .dsm-scoreboard-page .dsm-rankings-table, .dsm-scoreboard-page .dsm-rankings-table tbody { display:block; }
 .dsm-scoreboard-page .dsm-rankings-table thead { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
 .dsm-scoreboard-page .dsm-rankings-table tr { display:block; padding:10px; margin:10px 0; border:1px solid #ddd; border-radius:8px; }
 .dsm-scoreboard-page .dsm-rankings-table td,.dsm-scoreboard-page .dsm-rankings-table th { display:grid; grid-template-columns:minmax(0,40%) minmax(0,1fr); gap:8px; border:0; }
 .dsm-scoreboard-page .dsm-rankings-table [data-label]::before { content:attr(data-label); font-weight:600; }
}
