/* Desktop digital bingo card. Mobile remains controlled by the existing V2 rules. */
@media (min-width: 769px) {
  html:has(.v2-mobile-card-only),
  body:has(.v2-mobile-card-only),
  body.lb-v2-active:has(.v2-mobile-card-only) {
    min-height: 100%;
    overflow: auto !important;
  }

  .lb-v2.v2-public-root:has(.v2-mobile-card-only) {
    min-height: 100dvh;
    overflow: auto;
    display: grid;
    place-items: center;
    padding: 0;
  }

  .lb-v2 .v2-mobile-card-only {
    width: min(1180px, 100%);
    max-width: 1180px;
    min-height: 100dvh;
    margin: 0 auto;
    padding: clamp(18px, 2.2vw, 34px);
    display: grid;
    grid-template-columns: minmax(220px, 290px) minmax(0, 1fr);
    grid-template-rows: minmax(0, 1fr);
    align-items: center;
    justify-content: center;
    gap: clamp(20px, 3vw, 44px);
    overflow: visible;
  }

  .lb-v2 .v2-mobile-card-status {
    position: static;
    align-self: center;
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 18px;
    padding: 24px;
    border-radius: 24px;
  }

  .lb-v2 .v2-mobile-card-status > div:first-child {
    display: grid;
    gap: 8px;
  }

  .lb-v2 .v2-mobile-card-status span {
    font-size: 12px;
  }

  .lb-v2 .v2-mobile-card-status strong {
    font-size: clamp(28px, 3vw, 42px);
    line-height: .95;
  }

  .lb-v2 .v2-mobile-card-status small {
    font-size: 14px;
  }

  .lb-v2 .v2-validation-code.compact {
    width: 100%;
    min-width: 0;
    padding: 14px;
  }

  .lb-v2 .v2-validation-code.compact strong {
    font-size: 34px;
  }

  .lb-v2 .v2-mobile-card-only .v2-player-stage {
    flex: none;
    width: min(calc(100vw - 390px), calc(100dvh - 48px), 820px);
    height: min(calc(100vw - 390px), calc(100dvh - 48px), 820px);
    min-width: 520px;
    min-height: 520px;
    max-width: 820px;
    max-height: 820px;
    margin: 0;
    align-items: stretch;
    justify-self: center;
  }

  .lb-v2 .v2-mobile-card-only .v2-player-card,
  .lb-v2 .v2-mobile-card-only .bingo-card,
  .lb-v2 .v2-mobile-card-only .bd-digital-card--mobile {
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    max-height: none !important;
    padding: 12px !important;
    border-radius: 22px !important;
  }

  .lb-v2 .v2-mobile-card-only .v2-player-card {
    grid-template-rows: 42px minmax(0, 1fr) !important;
    gap: 7px !important;
  }

  .lb-v2 .v2-mobile-card-only .v2-print-letters {
    height: 42px !important;
    min-height: 42px !important;
    max-height: 42px !important;
    gap: 6px !important;
  }

  .lb-v2 .v2-mobile-card-only .v2-print-letters b {
    height: 42px !important;
    border-radius: 9px !important;
    font-size: 22px !important;
  }

  .lb-v2 .v2-mobile-card-only .v2-player-grid {
    gap: 6px !important;
  }

  .lb-v2 .v2-mobile-card-only .v2-player-cell {
    border-radius: 10px !important;
    padding: 6px 5px !important;
  }

  .lb-v2 .v2-mobile-card-only .v2-player-cell strong,
  .lb-v2 .v2-mobile-card-only .bingo-song-title {
    font-size: clamp(11px, 1.05vw, 16px) !important;
    line-height: 1.08 !important;
    -webkit-line-clamp: 4;
  }

  .lb-v2 .v2-mobile-card-only .v2-player-cell small,
  .lb-v2 .v2-mobile-card-only .bingo-song-artist {
    font-size: clamp(9px, .8vw, 12px) !important;
  }
}

/* Compact desktop/laptop windows still get a complete card without horizontal clipping. */
@media (min-width: 769px) and (max-width: 1040px),
       (min-width: 769px) and (max-height: 680px) {
  .lb-v2 .v2-mobile-card-only {
    grid-template-columns: 200px minmax(0, 1fr);
    gap: 18px;
    padding: 14px;
  }

  .lb-v2 .v2-mobile-card-status {
    padding: 18px;
  }

  .lb-v2 .v2-mobile-card-only .v2-player-stage {
    width: min(calc(100vw - 250px), calc(100dvh - 28px), 720px);
    height: min(calc(100vw - 250px), calc(100dvh - 28px), 720px);
    min-width: 460px;
    min-height: 460px;
  }
}
