/*
  print.css
  ----------
  Print-only overrides for WASA reports and printable views.

  Focus:
  - Hide app chrome and interactive UI
  - Flatten the screen layout into a clean printable document
  - Improve meet summary spacing and pagination
  - Simplify tables for paper/PDF output
  - Stay aligned with reusable classes in design-system.css
*/

@media print {
  @page {
    size: A4 portrait;
    margin: 12mm;
  }

  html,
  body {
    background: #fff !important;
    color: #000 !important;
    font-size: 10.5pt;
    line-height: 1.3;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }

  body {
    min-height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  /* Hide app chrome and interactive UI */
  .wasa-header-panel,
  .wasa-sidebar-panel,
  .wasa-sidebar-inner,
  .wasa-sidebar-menu,
  .wasa-sidebar-link,
  .wasa-sidebar-accordion,
  .wasa-sidebar-accordion-title,
  .wasa-sidebar-accordion-body,
  .wasa-session-panel,
  .wasa-session-card,
  .wasa-session-list,
  .wasa-session-item,
  .wasa-session-label,
  .wasa-session-value,
  .wasa-footer,
  .wasa-footer-inner,
  .wasa-footer-card,
  .drawer-side,
  .page-actions,
  .listing-page__actions,
  .panel__actions,
  .listing-actions,
  .listing-actions a,
  .listing-actions button,
  .listing-toolbar,
  .listing-toolbar--actions,
  .listing-toolbar__controls,
  .listing-toolbar__toggle,
  .form-actions,
  .button,
  .btn,
  .logout-link,
  footer,
  .no-print,
  details,
  summary,
  .debug_dump,
  .wasa-debug,
  .digg_pagination,
  .digg_pagination .pagination,
  .digg_pagination .apple_pagination,
  .digg_pagination a,
  .digg_pagination span.current,
  .digg_pagination .next_page,
  .digg_pagination .previous_page,
  .digg_pagination .page,
  .digg_pagination .disabled,
  #wasa-list .actions-col,
  #wasa-list .list-actions,
  .empty-state,
  .home-actions {
    display: none !important;
  }

  /* Hide badges/status pills in print */
  .badge,
  .badge-soft,
  .badge-outline,
  .badge--neutral,
  .badge-neutral,
  .badge--success,
  .badge-success,
  .badge--info,
  .badge-info,
  .badge--warning,
  .badge-warning,
  .badge--error,
  .badge-error,
  .badge--financial,
  .badge-financial,
  .badge--registered,
  .badge-registered,
  .badge--pending,
  .badge-pending,
  .badge--unfinancial,
  .badge-unfinancial,
  .badge--non-member,
  .badge-non-member,
  .badge--regular,
  .badge-regular,
  .badge--life,
  .badge-life,
  .badge--swimmer,
  .badge-swimmer,
  .badge--non-swimmer,
  .badge-non-swimmer,
  .listing-statuses {
    display: none !important;
  }

  /* Flatten app shell */
  .drawer,
  .drawer-content,
  main,
  .wasa-app-shell,
  .wasa-app-body,
  .wasa-main,
  .wasa-main-inner,
  .wasa-page-shell,
  .page,
  .listing-page,
  .panel,
  .panel__body,
  .panel__header,
  .form-card,
  .form-card__body,
  .form-card__header,
  .table-wrap {
    display: block !important;
    min-height: auto !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
  }

  .mx-auto,
  .max-w-7xl,
  .w-full,
  .page--narrow,
  .page--wide {
    width: auto !important;
    max-width: none !important;
    margin: 0 !important;
  }

  /* General report spacing */
  .page > * + *,
  .listing-page > * + * {
    margin-top: 10pt !important;
  }

  .stack-xl > *,
  .stack-lg > *,
  .stack-md > *,
  .stack-sm > *,
  .stack-xs > * {
    margin-block-start: 0 !important;
  }

  .stack-xl > * + * {
    margin-top: 10pt !important;
  }

  .stack-lg > * + * {
    margin-top: 8pt !important;
  }

  .stack-md > * + * {
    margin-top: 5pt !important;
  }

  .stack-sm > * + * {
    margin-top: 4pt !important;
  }

  .stack-xs > * + * {
    margin-top: 3pt !important;
  }

  /* Headings */
  h1,
  h2,
  h3,
  .page-title,
  .section-title,
  .item-title,
  .listing-page__title,
  .panel__title,
  .form-section__title,
  .form-card__title,
  .listing-panel__title,
  .home-title,
  .home-section-title {
    color: #000 !important;
    break-after: avoid;
    page-break-after: avoid;
  }

  .page-header,
  .listing-page__header,
  .listing-panel__header {
    display: block !important;
    margin: 0 0 10pt 0 !important;
    padding: 0 0 6pt 0 !important;
    border-bottom: 1px solid #666 !important;
  }

  .page-title,
  .listing-page__title {
    font-size: 16pt !important;
    line-height: 1.2 !important;
    margin: 0 0 3pt 0 !important;
  }

  .page-subtitle,
  .listing-page__subtitle,
  .panel__subtitle,
  .form-section__subtitle,
  .form-card__meta,
  .listing-panel__meta,
  .note,
  .text-muted,
  .home-copy,
  .home-lead {
    font-size: 10pt !important;
    color: #333 !important;
    margin: 0 !important;
  }

  .section-title,
  .panel__title,
  .form-section__title,
  .form-card__title,
  .home-section-title {
    font-size: 12pt !important;
    font-weight: 700 !important;
    margin: 10pt 0 6pt 0 !important;
    padding: 0 0 2pt 0 !important;
    border-bottom: 1px solid #bbb !important;
  }

  .item-title,
  .listing-panel__title {
    font-size: 11pt !important;
    font-weight: 700 !important;
    margin: 0 0 2pt 0 !important;
  }

  .item-number {
    display: inline-block;
    min-width: 1.5em;
    color: #000 !important;
  }

  .item-meta {
    display: block !important;
    font-size: 9.5pt !important;
    color: #222 !important;
    margin: 0 !important;
  }

  .item-meta span + span::before {
    content: " | ";
  }

  /* Summary and header blocks */
  .split,
  .split--center,
  .member-block__header,
  .relay-block__header {
    display: flex !important;
    justify-content: space-between !important;
    align-items: flex-start !important;
    gap: 10pt !important;
    flex-wrap: nowrap !important;
  }

  .member-block__identity,
  .relay-block__identity {
    min-width: 0 !important;
    flex: 1 1 auto !important;
  }

  .member-block__summary,
  .relay-block__summary {
    flex: 0 0 auto !important;
  }

  .summary-list {
    display: block !important;
    font-size: 9.5pt !important;
    white-space: nowrap;
    text-align: right;
    margin: 0 !important;
  }

  .summary-list__item {
    display: block !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    background: transparent !important;
    color: #000 !important;
  }

  .summary-list__item + .summary-list__item {
    margin-top: 2pt !important;
  }

  /* Panels and cards become plain report sections */
  .panel,
  .form-card,
  .home-hero,
  .home-note,
  .callout {
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
  }

  .panel--subtle,
  .panel--flat,
  .panel--success,
  .panel--warning,
  .panel--info,
  .home-note--success,
  .home-note--warning,
  .home-note--info,
  .callout--success,
  .callout--warning,
  .callout--info,
  .callout--error {
    background: transparent !important;
    border: 0 !important;
  }

  .panel + .panel,
  .form-card + .form-card {
    margin-top: 10pt !important;
  }

  /* Form layout */
  .form-section,
  .form-grid,
  .listing-toolbar__group {
    display: block !important;
    gap: 0 !important;
  }

  .form-field,
  .form-row {
    display: block !important;
    margin: 0 0 6pt 0 !important;
  }

  .form-field__label {
    display: block !important;
    margin: 0 0 2pt 0 !important;
    color: #000 !important;
    font-weight: 700 !important;
  }

  .form-field__help {
    color: #333 !important;
    font-size: 9pt !important;
  }

  .form-grid__full {
    grid-column: auto !important;
  }

  /* Club panels and content blocks */
  .member-block,
  .relay-block {
    break-inside: avoid;
    page-break-inside: avoid;
    margin: 0 0 10pt 0 !important;
    padding: 0 0 8pt 0 !important;
    border-bottom: 1px solid #ccc !important;
  }

  .member-block:last-child,
  .relay-block:last-child {
    border-bottom: 0 !important;
  }

  .meta-table,
  .entry-table,
  .relay-table,
  .data-table,
  .key-value,
  .listing-kv {
    break-inside: avoid;
    page-break-inside: avoid;
  }

  /* Meta table */
  .meta-table {
    width: 100% !important;
    border-collapse: collapse !important;
    margin: 0 0 8pt 0 !important;
  }

  .meta-table th,
  .meta-table td {
    padding: 3pt 6pt 3pt 0 !important;
    text-align: left !important;
    vertical-align: top !important;
    border: 0 !important;
    color: #000 !important;
  }

  .meta-table th {
    width: 32% !important;
    font-weight: 700 !important;
  }

  /* Key/value blocks */
  .key-value,
  .listing-kv {
    display: grid !important;
    grid-template-columns: 32% 1fr !important;
    gap: 3pt 8pt !important;
    margin: 0 !important;
  }

  .key-value dt,
  .listing-kv dt {
    color: #000 !important;
    font-weight: 700 !important;
  }

  .key-value dd,
  .listing-kv dd {
    margin: 0 !important;
    color: #000 !important;
  }

  /* Data tables */
  table {
    width: 100% !important;
    border-collapse: collapse !important;
    border-spacing: 0 !important;
  }

  thead {
    display: table-header-group;
  }

  tfoot {
    display: table-footer-group;
  }

  tr,
  td,
  th {
    break-inside: avoid;
    page-break-inside: avoid;
  }

  .data-table,
  .entry-table,
  .relay-table {
    margin-top: 4pt !important;
  }

  .data-table th,
  .data-table td,
  .entry-table th,
  .entry-table td,
  .relay-table th,
  .relay-table td {
    padding: 3pt 4pt !important;
    text-align: left !important;
    vertical-align: top !important;
    border-bottom: 1px solid #ddd !important;
    color: #000 !important;
  }

  .data-table thead th,
  .entry-table thead th,
  .relay-table thead th {
    font-size: 9pt !important;
    font-weight: 700 !important;
    border-bottom: 1px solid #999 !important;
    background: transparent !important;
  }

  /* Hide decorative spacer columns in print */
  .data-table__spacer {
    display: none !important;
    width: 0 !important;
    padding: 0 !important;
    border: 0 !important;
  }

  .data-table__event {
    width: 12% !important;
    white-space: nowrap !important;
  }

  .data-table__sex {
    width: 14% !important;
    white-space: nowrap !important;
  }

  .data-table__name {
    width: auto !important;
  }

  .data-table__time {
    width: 16% !important;
    white-space: nowrap !important;
    text-align: right !important;
  }

  .event-code,
  .text-mono,
  .tabular-nums {
    color: #000 !important;
  }

  .event-code {
    white-space: nowrap !important;
    font-weight: 700 !important;
  }

  /* Prevent wide wrappers from interfering with print flow */
  .table-wrap {
    overflow: visible !important;
  }

  /* Links print as plain text */
  #wasa-list a,
  #wasa-list a:link,
  #wasa-list a:visited,
  a,
  a:link,
  a:visited {
    color: #000 !important;
    text-decoration: none !important;
  }

  #wasa-list a[href]::after,
  .digg_pagination a[href]::after,
  a[href]::after {
    content: none !important;
  }

  /* Legacy list pages still supported */
  #wasa-list table {
    width: 100%;
    border-collapse: collapse;
  }

  #wasa-list th,
  #wasa-list td {
    padding: 0.2rem 0.35rem;
    vertical-align: top;
  }

  /* Better paragraph/page flow */
  p,
  li,
  td,
  th {
    orphans: 3;
    widows: 3;
  }
}