/* Player scorecard queue only. No stationary/course-level queue styles. */
.ps-queue-notice, .ps-queue-dialog, #queue-position-banner {
  --queue-ink: #17212f;
  --queue-muted: #64748b;
  --queue-surface: #fff;
  --queue-soft: #f5f7f9;
  --queue-border: #e4e9ed;
  --queue-accent: color-mix(in srgb, var(--ps-queue-brand, #059669) 70%, #17212f);
  font-family: var(--primary-font, inherit);
  color: var(--queue-ink);
  text-align: left;
  box-sizing: border-box;
}
.ps-queue-notice {
  display: flex; align-items: flex-start; gap: 12px; width: 100%;
  margin: 0 0 16px; padding: 16px; border: 1px solid var(--queue-border);
  border-radius: 16px; background: var(--queue-surface);
}
.ps-queue-notice .ps-queue-icon { width: 36px; height: 36px; border-radius: 11px; }
.ps-queue-notice h2 { margin: 0 0 4px; font-size: 15px; line-height: 1.35; font-weight: 700; letter-spacing: -.02em; }
.ps-queue-notice p { margin: 0; font-size: 13px; line-height: 1.6; color: var(--queue-muted); }
.ps-queue-icon { display: grid; place-items: center; flex: 0 0 auto; width: 48px; height: 48px; border-radius: 14px; background: color-mix(in srgb, var(--ps-queue-brand, #059669) 10%, var(--queue-surface)); color: var(--queue-accent); }
.ps-queue-icon svg { width: 22px; height: 22px; }
.ps-queue-dialog { position: fixed; inset: 0; z-index: 70; display: flex; align-items: center; justify-content: center; padding: max(16px, env(safe-area-inset-top)) 16px max(16px, env(safe-area-inset-bottom)); background: rgba(15,23,42,.64); backdrop-filter: blur(5px); }
.ps-queue-dialog.hidden, .ps-queue-notice.hidden, #queue-position-banner.hidden { display: none; }
.ps-queue-card .hidden { display: none !important; }
.ps-queue-card { width: 100%; max-width: 420px; max-height: calc(100vh - 32px); max-height: calc(100dvh - 32px); overflow-y: auto; overscroll-behavior: contain; padding: 28px; background: var(--queue-surface); border: 1px solid var(--queue-border); border-radius: 24px; box-shadow: 0 20px 60px #0f172a26; }
.ps-queue-topline { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 24px; }
.ps-queue-eyebrow { color: var(--queue-muted); font-size: 10px; line-height: 1.5; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.ps-queue-card h2 { font-size: 27px; line-height: 1.15; letter-spacing: -.045em; font-weight: 750; margin: 0 0 12px; color: var(--queue-ink); }
.ps-queue-copy { margin: 0 0 24px; font-size: 14px; line-height: 1.65; color: var(--queue-muted); }
.ps-queue-card label { display: block; margin: 0 0 8px; font-size: 13px; font-weight: 600; }
.ps-queue-card input { display: block; width: 100%; min-height: 50px; padding: 12px 14px; border: 1px solid var(--queue-border); border-radius: 12px; background: var(--queue-surface); color: var(--queue-ink); font: inherit; font-size: 16px; box-shadow: none; }
.ps-queue-card input::placeholder { color: var(--queue-muted); opacity: 1; }
.ps-queue-card button, #queue-position-banner button { min-height: 44px; font-family: inherit; font-size: 14px; line-height: 1.4; cursor: pointer; border-radius: 12px; font-weight: 600; }
.ps-queue-card .ps-queue-primary { display: block; width: 100%; margin-top: 20px; padding: 14px 16px; background: color-mix(in srgb, var(--ps-queue-brand, #059669) 35%, #0f172a); color: #fff; border: 0; box-shadow: none; }
.ps-queue-card .ps-queue-secondary { display: block; width: 100%; padding: 12px; margin-top: 8px; background: transparent; color: var(--queue-muted); border: 1px solid transparent; box-shadow: none; }
.ps-queue-card button:hover:not(:disabled) { filter: brightness(.94); }
.ps-queue-card button:disabled { opacity: .55; cursor: wait; }
.ps-queue-card :is(button,input,a):focus-visible, #queue-position-banner button:focus-visible { outline: 3px solid var(--queue-accent); outline-offset: 3px; }
.ps-queue-card [aria-invalid="true"] { border-color: #dc2626; }
.ps-queue-fine { font-size: 11px; line-height: 1.7; color: var(--queue-muted); margin: 20px 0 0; }
.ps-queue-fine a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
.ps-queue-error { color: #b91c1c; background: #fef2f2; border-radius: 10px; padding: 12px; font-size: 13px; line-height: 1.5; margin-top: 12px; }
.ps-queue-status { display: inline-flex; align-items: center; gap: 6px; color: var(--queue-muted); font-size: 11px; font-weight: 600; }
.ps-queue-status::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: #94a3b8; }
.ps-queue-status[data-state="live"]::before { background: #059669; }
.ps-queue-status[data-state="offline"]::before, .ps-queue-status[data-state="error"]::before { background: #d97706; }
.ps-queue-place { padding: 24px; margin: 24px 0; text-align: center; border-radius: 18px; border: 1px solid var(--queue-border); background: var(--queue-soft); }
#queue-position-number { font-size: 72px; line-height: 1.1; letter-spacing: -.065em; font-weight: 750; margin: 8px 0; font-variant-numeric: tabular-nums; color: var(--queue-accent); }
#queue-total { font-size: 12px; color: var(--queue-muted); }
.ps-queue-group { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding-top: 18px; margin-top: 18px; border-top: 1px solid var(--queue-border); font-size: 12px; color: var(--queue-muted); }
#queue-group-name { color: var(--queue-ink); font-weight: 600; overflow-wrap: anywhere; text-align: right; }
.ps-queue-actions { display: flex; gap: 8px; border-top: 1px solid var(--queue-border); margin-top: 20px; padding-top: 12px; }
.ps-queue-actions button { flex: 1; padding: 10px 8px; background: transparent; color: var(--queue-muted); border: 0; box-shadow: none; }
.ps-queue-actions #cancel-queue { color: #b91c1c; }
.ps-queue-ready { padding: 16px; margin: 20px 0; border: 1px solid var(--queue-border); background: var(--queue-soft); border-radius: 14px; font-size: 13px; color: var(--queue-muted); }
.ps-queue-ready strong { display: block; color: var(--queue-ink); margin-bottom: 4px; }
#queue-position-banner { position: fixed; top: 12px; left: 16px; right: 16px; max-width: 460px; margin: auto; z-index: 40; border: 1px solid var(--queue-border); border-radius: 16px; background: var(--queue-surface); box-shadow: 0 6px 24px #0f172a14; }
.ps-queue-banner-inner { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 16px; font-size: 14px; }
#banner-wait-estimate { font-size: 12px; color: var(--queue-muted); margin-top: 2px; }
#queue-position-banner button { padding: 8px 12px; background: var(--queue-soft); color: var(--queue-ink); border: 0; }
body.dark-mode :is(.ps-queue-notice, .ps-queue-dialog, #queue-position-banner) { --queue-ink: #f1f5f9; --queue-muted: #a8b6c8; --queue-surface: #182333; --queue-soft: #111c2c; --queue-border: #304052; --queue-accent: color-mix(in srgb, var(--ps-queue-brand, #059669) 45%, #f1f5f9); }
body.dark-mode .ps-queue-error { background: #451a244d; color: #fca5a5; }
body.dark-mode .ps-queue-actions #cancel-queue { color: #fca5a5; }
@media (max-width: 480px) { .ps-queue-card { padding: 24px; border-radius: 20px; } .ps-queue-card h2 { font-size: 26px; } }
@media (max-height: 600px) { .ps-queue-card { padding: 20px; } .ps-queue-topline { margin-bottom: 16px; } .ps-queue-place { padding: 16px; margin: 16px 0; } #queue-position-number { font-size: 56px; } }
@media (prefers-reduced-motion: reduce) { .ps-queue-dialog *, .ps-queue-notice * { animation: none !important; transition: none !important; scroll-behavior: auto !important; } }

/* Waiting is a full-page experience. Other queue dialogs keep their card layout. */
#queue-status-popup { display: block; padding: 0; overflow-y: auto; overscroll-behavior: contain; background: var(--queue-surface); backdrop-filter: none; }
#queue-status-popup.hidden { display: none; }
#queue-status-popup > .ps-queue-card {
  width: 100%; max-width: none; max-height: none; min-height: 100%; overflow: visible;
  padding: max(clamp(24px,4vw,64px),env(safe-area-inset-top)) max(clamp(24px,4vw,64px),env(safe-area-inset-right)) max(clamp(24px,4vw,64px),env(safe-area-inset-bottom)) max(clamp(24px,4vw,64px),env(safe-area-inset-left));
  border: 0; border-radius: 0; box-shadow: none; box-sizing: border-box; outline: none;
}
.ps-queue-waiting-inner { width: 100%; max-width: 1100px; margin: 0 auto; }
#queue-status-popup .ps-queue-topline { margin-bottom: 0; padding-bottom: 24px; border-bottom: 1px solid var(--queue-border); }
.ps-queue-waiting-layout { display: grid; grid-template-columns: 1.1fr 1fr; gap: clamp(32px,6vw,80px); align-items: center; min-height: calc(100dvh - 190px); padding: 40px 0; }
.ps-queue-waiting-layout > div { min-width: 0; }
#queue-status-popup h2 { font-size: clamp(30px,3.4vw,46px); line-height: 1.12; }
#queue-status-popup .ps-queue-place { padding: 32px; margin-bottom: 0; border-radius: 24px; }
#queue-status-popup #queue-position-number { font-size: clamp(80px,8vw,112px); }
.ps-queue-waiting-tools > .ps-queue-copy { font-size: 15px; line-height: 1.7; }
#queue-status-popup .ps-queue-actions { margin-top: 24px; }
@media (max-width: 767px) {
  .ps-queue-waiting-layout { grid-template-columns: 1fr; gap: 28px; min-height: 0; padding: 28px 0 0; }
  #queue-status-popup .ps-queue-topline { padding-bottom: 20px; }
  #queue-status-popup .ps-queue-place { padding: 24px; margin-top: 20px; }
}
