/* A focused, full-height landing surface for game setup. */
.setup {
  display: grid;
  align-content: center;
  min-height: calc(100dvh - 80px);
  max-width: 720px;
  margin: 40px auto;
  padding: calc(clamp(32px, 8vh, 96px) + env(safe-area-inset-top))
           calc(clamp(24px, 7vw, 68px) + env(safe-area-inset-left))
           calc(clamp(32px, 8vh, 96px) + env(safe-area-inset-bottom))
           calc(clamp(24px, 7vw, 68px) + env(safe-area-inset-right));
  position: relative;
  border: 1px solid #35506d;
  border-radius: 28px;
  background: linear-gradient(145deg, #152941dd, #101b2ddd);
  box-shadow: 0 24px 60px #0005;
}

.setup::before {
  display: none !important;
}

.setup > * { position: relative; }
.setup.home-setup { justify-items: center; text-align: center; }
.setup:not(.home-setup) { justify-items: center; text-align: center; }
.setup.home-setup .intro { margin-inline: auto; }
.setup.home-setup form { width: min(100%, 480px); text-align: left; }
.setup.home-setup .setup-actions { width: min(100%, 480px); }
.setup.home-setup .home-links { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px 16px; margin: 25px 0 0; }
.setup.home-setup .home-links a { color: var(--muted); font-size: 13px; text-decoration: underline; }
.setup h1 { font-size: clamp(46px, 8vw, 76px); }
.setup .intro { max-width: 520px; margin: 18px 0 0; font-size: clamp(17px, 2.4vw, 22px); line-height: 1.35; }
.setup form { max-width: 480px; margin: 34px 0 0; padding: 20px; border: 1px solid #36526f; border-radius: 14px; background: #0c1727a8; box-shadow: 0 8px 0 #07111b; }
.setup form .start { margin-top: 4px; padding: 14px 18px; font-size: 16px; }
.setup-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; max-width: 480px; margin-top: 34px; }
.setup-actions button { min-height: 54px; }
.setup-panel { width: min(100%, 480px); margin-top: 24px; padding: 20px; border: 1px solid #36526f; border-radius: 14px; background: #0c1727a8; text-align: center; }
.setup-panel form { width: 100%; margin: 0; padding: 0; border: 0; background: none; box-shadow: none; }
.room-code-row { display: grid; grid-template-columns: minmax(0, 1fr) 44px; gap: 8px; align-items: end; }
.room-code-field { display: grid; }
.room-code-field > input { width: 100%; text-transform: uppercase; letter-spacing: .08em; }
.qr-scan-button { width: 44px; height: 40px; display: grid; place-items: center; border: 1px solid #557493; border-radius: 7px; background: #172b43; color: var(--lime); }
.qr-scan-button svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2; }
.qr-scan-button::after { content: attr(aria-label); position: absolute; right: 0; bottom: calc(100% + 8px); width: max-content; max-width: 210px; padding: 7px 9px; border-radius: 6px; background: #07111b; color: var(--ink); font: 11px 'DM Mono', monospace; opacity: 0; pointer-events: none; transform: translateY(3px); transition: .15s; }
.qr-scan-button:hover::after, .qr-scan-button:focus-visible::after { opacity: 1; transform: translateY(0); }
.room-code {
  display: block !important;
  width: 100% !important;
  text-align: center !important;
  margin: 18px 0 8px !important;
  padding: 0 !important;
  font: 700 clamp(30px, 7vw, 48px) 'DM Mono', monospace !important;
  letter-spacing: .12em !important;
  color: var(--lime) !important;
  text-indent: 0.12em !important; /* Compensate for letter-spacing offset */
  position: relative !important;
  left: 0 !important;
}
.room-qr { display: block; width: 180px; height: 180px; margin: 18px auto; border: 8px solid white; border-radius: 10px; background: white; }
.qr-video { display: block; width: 100%; max-height: 360px; margin: 18px 0; border: 1px solid #4d6d90; border-radius: 10px; background: #05080d; }
.room-players { display: grid; gap: 8px; margin: 18px 0; }
.room-member { display: flex; justify-content: space-between; padding: 10px 12px; border: 1px solid #354762; border-radius: 8px; }
.room-member small { color: var(--muted); }
.room-buttons { display: flex; gap: 10px; }
.room-buttons .start { flex: 1; }
.room-buttons .start:disabled { opacity: .45; cursor: not-allowed; filter: grayscale(.35); }
.error-message { color: var(--hot); min-height: 1.3em; }

@media (max-width: 720px) {
  .setup { align-content: center; padding: 28px 20px; min-height: calc(100dvh - 36px); margin: 18px 10px; border-radius: 20px; }
  .setup h1 { font-size: 52px; }
  .setup form { margin-top: 26px; padding: 16px; }
  .setup-panel form { margin: 0; padding: 0; }
  .setup-actions { grid-template-columns: 1fr; margin-top: 26px; }
}

.compact-board .workers > p { margin: 8px 0; white-space: nowrap; }

@media (max-width: 700px) {
  .compact-board .worker-title { padding-right: 3px !important; }
  .compact-board .worker-title i { top: 4px; right: 4px; bottom: auto; z-index: 4; }
}
