/* Print stylesheet — optimized for roster + camp-detail dashboards. */

@media print {
  *, *::before, *::after {
    background: transparent !important;
    color: #000 !important;
    box-shadow: none !important;
    text-shadow: none !important;
  }

  .nav-top, .ticker, .footer, .sidebar, .app-bar,
  .filter-rail, .slide-over, .skip-link,
  .btn, button, .nav-links { display: none !important; }

  body {
    font-family: Georgia, "Times New Roman", serif;
    font-size: 11pt;
    line-height: 1.4;
  }

  .print-only { display: block !important; }

  h1, h2, h3, .heading-hero, .heading-1, .heading-2, .heading-3 {
    font-family: Georgia, "Times New Roman", serif;
    page-break-after: avoid;
  }

  .table-roster { width: 100%; border-collapse: collapse; }
  .table-roster th, .table-roster td {
    border-bottom: 0.5pt solid #444;
    padding: 6px 8px;
    page-break-inside: avoid;
  }
  .table-roster thead { background: #ddd !important; -webkit-print-color-adjust: exact; }

  /* Player faces on the printed roster — enlarged so coaches can match names to
     faces during camp; force color so photos/initials render, not blank circles. */
  .roster-face {
    width: 44px !important; height: 44px !important;
    -webkit-print-color-adjust: exact; print-color-adjust: exact;
  }
  img { -webkit-print-color-adjust: exact; print-color-adjust: exact; }

  /* Camp detail: only show roster, hide everything else */
  .kpi-grid,
  .camp-tabs,
  [data-tab-pane]:not([data-tab-pane="roster"]) { display: none !important; }
  [data-tab-pane="roster"] { display: block !important; }

  .card, .kpi-card { border: 1px solid #888; padding: 12px; }

  details, .accordion { display: block; }
  details > summary { display: block; font-weight: bold; }

  a::after { content: " (" attr(href) ")"; font-size: 9pt; color: #666 !important; }
  a[href^="#"]::after, a[href^="javascript:"]::after { content: ""; }

  @page { margin: 0.6in; }
}
