/* Copyright (c) 2026 Donnie Chamberlin. All rights reserved. Proprietary and
confidential. Unauthorized copying, modification or distribution is
prohibited. */
.night-settings { margin: 22px 0; padding: 18px 0; border-block: 1px solid var(--line); }
.past-nights { max-height: 300px; overflow: auto; }
.past-night { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--line); }
.past-night span { min-width: 0; overflow-wrap: anywhere; }
.past-night button { flex-shrink: 0; }
#tip-button { margin: 12px auto 0; }
.tip-modal { width: min(460px, 100%); }
#tip-choices { display: grid; gap: 12px; margin: 18px 0; }
#tip-choices a { display: block; text-align: center; overflow-wrap: anywhere; text-decoration: none; }
.idle-qr-group { display: contents; }
.tip-sign { display:none; }
.tv-display.tips-on:not(.preview-display) #tv-tip-card { display:flex; position:absolute; left:18px; bottom:18px; z-index:6; width:clamp(140px,11vw,180px); padding:12px; flex-direction:column; align-items:center; gap:8px; text-align:center; color:var(--text); background:var(--panel); border:1px solid var(--line); border-radius:14px; box-shadow:0 6px 22px #0008; }
#tv-tip-card strong { color:var(--neon); font-size:clamp(15px,1.1vw,20px); }
#tv-tip-card small { color:var(--muted); font-size:12px; }
.tip-qr { background:#fff; border-radius:8px; padding:6px; line-height:0; }
.tip-qr canvas { display:block; width:clamp(90px,8vw,120px); height:auto; }
.tv-display.tips-on:not(.preview-display) .idle { padding-left:calc(clamp(140px,11vw,180px) + 36px); }
body.tv-display.tips-on:not(.preview-display) #qr-big canvas { width:min(24vw,max(96px,calc(100dvh - 470px)),340px); height:min(24vw,max(96px,calc(100dvh - 470px)),340px); }
.tv-display.tips-on #bs-overlay { max-width:calc(100% - clamp(140px,11vw,180px) - 64px); }
.tv-display.tips-on .intro-skip { left:calc(clamp(140px,11vw,180px) + 36px); }
.signup-qr-card { display:flex; flex-direction:column; align-items:center; gap:6px; flex-shrink:0; }
.signup-qr-card strong { color:var(--neon); font-size:14px; }
#bs-ticker { min-width:0; overflow-wrap:anywhere; }
@media(max-width:640px){
 .tv-display.tips-on:not(.preview-display) #tv-tip-card { left:10px; bottom:10px; width:112px; padding:8px; }
 #tv-tip-card .tip-qr canvas { width:80px; }
 #tv-tip-card strong { font-size:13px; }
 #tv-tip-card small { font-size:10px; }
 .tv-display.tips-on #bs-overlay { max-width:calc(100% - 152px); flex-direction:column; padding:8px; right:10px; bottom:10px; }
 .tv-display.tips-on:not(.preview-display) .idle { padding-left:142px; padding-bottom:20px; }
 .tv-display.tips-on .intro-skip { left:132px; }
}
.recap-overlay { position: absolute; inset: 0; z-index: 30; background: var(--bg); overflow: auto; display: flex; align-items: center; flex-direction: column; gap: 12px; padding: clamp(12px, 2vw, 28px); }
.recap-card { width: min(900px, 100%); text-align: center; background: linear-gradient(135deg, var(--panel), var(--bg)); border: 2px solid var(--neon); border-radius: 22px; padding: clamp(16px, 2vw, 30px); overflow-wrap: anywhere; flex-shrink: 0; }
.recap-card { margin-top: auto; }
#recap-actions { margin-bottom: auto; }
.tv-display .recap-card { margin-bottom: auto; }
.recap-overlay { container-type: size; }
.recap-logo { display: block; width: auto; height: 70px; max-width: 220px; object-fit: contain; margin: 0 auto 10px; }
.recap-show { color: var(--neon); font-family: Bungee, sans-serif; font-size: clamp(18px, 2.3vw, 36px); }
.recap-thanks { font-size: clamp(25px, 3vw, 48px); margin: 8px 0; }
.recap-date { color: var(--muted); margin: 8px 0 16px; }
.recap-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin: 18px 0; }
.recap-stats > div { background: var(--panel2); padding: 14px 8px; border-radius: 12px; }
.recap-stats strong { display: block; font-size: clamp(28px, 4vw, 60px); color: var(--neon); }
.recap-stats span { display: block; font-size: clamp(12px, 1.2vw, 18px); }
.recap-song { font-size: clamp(16px, 1.8vw, 25px); margin: 15px 0; }
.recap-names { margin: 7px 0; }
.recap-footer { color: var(--neon); margin: 15px 0 0; }
#recap-actions { justify-content: center; flex-shrink: 0; }
.tv-display #recap-actions { display: none; }
@container (max-height: 650px) {
  .recap-card { padding: 12px; border-radius: 16px; }
  .recap-logo { height: 40px; margin-bottom: 4px; }
  .recap-show { font-size: 20px; }
  .recap-thanks { font-size: 28px; margin: 4px 0; }
  .recap-date { font-size: 12px; margin: 4px 0 8px; }
  .recap-stats { gap: 6px; margin: 8px 0; }
  .recap-stats > div { padding: 8px 4px; }
  .recap-stats strong { font-size: 34px; }
  .recap-stats span { font-size: 12px; }
  .recap-song { font-size: 17px; margin: 8px 0; }
  .recap-names, .recap-footer { font-size: 12px; margin: 5px 0; }
}
@media (max-width: 640px) {
  .tv-display.tips-on .idle { display:flex; flex-direction:column; gap:20px; }
  .tv-display.tips-on #qr-big { width: min(38vw, 180px); height: min(38vw, 180px); }
  .recap-overlay { justify-content: flex-start; }
  .recap-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .recap-logo { height: 48px; }
  .past-night { flex-wrap: wrap; }
}
