/* Only the roster route opts out of the shared screen container. */
.content.container:has(.roster-page) { width:100%; max-width:none; padding-inline:clamp(.5rem, 2vw, 1.5rem); }
.roster-page { min-width:0; }
.roster-page .print-only, .roster-page .print-check { display:none; }
.roster-page .roster-scroll { overflow-x:auto; }
.roster-page .roster-actions { display:flex; flex-wrap:wrap; justify-content:space-between; gap:.5rem; margin-bottom:1rem; }
.roster-page .roster-actions > div { flex-wrap:wrap; }
.roster-page dl { display:flex; flex-wrap:wrap; gap:1rem 3rem; }
.roster-page dd { margin:0; }
.roster-page .roster-table { width:100%; min-width:42rem; table-layout:fixed; }
.roster-page .roster-summary { min-width:42rem; }
.roster-page .roster-table td { min-height:3rem; vertical-align:top; }
.roster-page .checkin-column { width:4.5rem; text-align:center; }
.roster-page .team-number-column { width:6rem; }
.roster-page .team-name-column { width:30%; overflow:hidden; }
.roster-page .clip-line { white-space:nowrap; overflow:hidden; text-overflow:clip; }
.roster-page .notes-column { width:15%; }
.roster-page .contact-info-button svg { width:1.1rem; height:1.1rem; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; }

@media print {
    @page roster { size:letter portrait; margin:.5in; }
    body:has(.roster-page) { page:roster; }
    body:has(.roster-page), body:has(.roster-page) .page { background:white!important; color:black!important; min-height:0; display:block; }
    body:has(.roster-page) .site-navigation, body:has(.roster-page) .site-footer,
    body:has(.roster-page) .page > .alert, body:has(.roster-page) #blazor-error-ui,
    .roster-page .screen-only, .roster-page .modal, .roster-page .modal-backdrop,
    .roster-page button, .roster-page .toast-stack { display:none!important; }
    .content.container:has(.roster-page) { width:100%!important; max-width:none!important; margin:0!important; padding:0!important; }
    .roster-page { font-size:10pt; line-height:1.25; color:black; }
    .roster-page .print-only { display:block; }
    .roster-page .report-header { font-size:14pt; margin:0 0 .15in; break-after:avoid; }
    .roster-page .roster-scroll { overflow:visible; }
    .roster-page table { width:100%!important; min-width:0!important; border-collapse:collapse; table-layout:fixed; }
    .roster-page thead { display:table-header-group; }
    .roster-page tr { break-inside:avoid; page-break-inside:avoid; }
    .roster-page th, .roster-page td { border:1px solid black!important; background:white!important; color:black!important; padding:.06in; box-shadow:none!important; }
    .roster-page .roster-table td { height:.55in; }
    .roster-page .checkin-column { width:.75in; }
    .roster-page .team-number-column { width:1in; }
    .roster-page .team-name-column { width:2in; overflow:hidden; }

    .roster-page .notes-column { width:auto; }
    .roster-page .print-check { display:inline-flex; width:.16in; height:.16in; border:1px solid black; align-items:center; justify-content:center; font-weight:bold; }
    .roster-page .roster-summary th:first-child { width:1.25in; }
    .roster-page .roster-summary th:nth-child(2) { width:2.1in; }
    .roster-page .roster-summary th:nth-child(3) { width:.55in; }
    .roster-page abbr { text-decoration:none; }
}

