/* Local Multiplayer layout-only overrides.
   Visual colors, typography, controls, and button styling continue to come
   from the universal Free Play Bay emulator styles. */

body[data-fpb-local-multiplayer] #fpb-local-host-dialog,
body[data-fpb-local-multiplayer] #local-guest-settings-dialog {
  position: fixed !important;
  inset: 0 !important;
  width: min(680px, calc(100vw - 24px)) !important;
  max-width: 680px !important;
  height: auto !important;
  max-height: calc(100dvh - 24px) !important;
  margin: auto !important;
  border-radius: 20px !important;
}

body[data-fpb-local-multiplayer] #fpb-local-host-dialog .stream-settings-shell,
body[data-fpb-local-multiplayer] #local-guest-settings-dialog .fpb-guest-settings-shell {
  width: 100% !important;
  max-height: calc(100dvh - 24px) !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
}

#fpb-local-host-dialog .fpb-local-section {
  display: grid;
  gap: 12px;
  min-width: 0;
}

#fpb-local-host-dialog .fpb-local-section + .fpb-local-section {
  margin-top: 14px;
}

#fpb-local-host-dialog .fpb-local-section .player-menu-note,
#fpb-local-host-dialog .fpb-local-section .muted {
  margin: 0;
}

#fpb-local-host-dialog #fpb-local-offer-qr {
  display: grid;
  place-items: center;
  width: 100%;
  min-height: 0;
  margin: 0 auto;
}

#fpb-local-host-dialog #fpb-local-offer-qr canvas,
#fpb-local-host-dialog #fpb-local-offer-qr img,
#fpb-local-host-dialog #fpb-local-offer-qr svg {
  display: block;
  width: min(168px, 56vw) !important;
  max-width: 168px !important;
  height: auto !important;
  max-height: 168px !important;
  margin: 0 auto !important;
}


#fpb-local-host-dialog .fpb-local-session-actions {
  position: static !important;
  inset: auto !important;
  z-index: auto !important;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 10px;
  width: 100%;
  margin: 0;
  padding: 0;
  background: transparent;
  border: 0;
  backdrop-filter: none;
}

#fpb-local-host-dialog .fpb-local-session-actions > button {
  width: 100%;
  min-width: 0;
}

#fpb-local-host-dialog .fpb-local-connected-devices {
  display: grid;
  gap: 10px;
  min-width: 0;
  margin-top: 2px;
  padding-top: 14px;
  border-top: 1px solid var(--line);
}

#fpb-local-host-dialog .fpb-local-connected-devices .section-heading {
  margin: 0;
}

#fpb-local-host-dialog .fpb-local-cast-option {
  min-width: 0;
  align-items: flex-start;
}

#fpb-local-host-dialog .fpb-local-cast-option > div {
  min-width: 0;
}

#fpb-local-host-dialog .fpb-local-cast-option span,
#fpb-local-host-dialog #fpb-local-mirror-copy {
  white-space: normal;
  overflow-wrap: anywhere;
  word-break: normal;
}

#fpb-local-host-dialog #fpb-local-display-code-panel {
  display: grid;
  gap: 10px;
  min-width: 0;
}

#fpb-local-host-dialog #fpb-local-display-code-panel[hidden],
#fpb-local-host-dialog #fpb-local-mirror-help[hidden],
#fpb-local-host-dialog #fpb-local-pairing-panel[hidden] {
  display: none !important;
}

#fpb-local-host-dialog .fpb-local-code-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: end;
}

#fpb-local-host-dialog .fpb-local-code-row label {
  display: grid;
  gap: 7px;
  min-width: 0;
}

#fpb-local-host-dialog #fpb-local-display-code {
  width: 100%;
  min-height: 44px;
  border: 1px solid var(--line);
  border-radius: 11px;
  padding: 8px 10px;
  background: #080d15;
  color: var(--text);
  font: inherit;
  letter-spacing: .18em;
  text-align: center;
}

/* Controller-only is still the universal controller renderer. The local-only
   class only removes the visible game and gives the existing landscape touch
   layer the full viewport. */
body.fpb-local-controller-only.emulator-playing #emulator-view:not([hidden]) .emulator-host,
body.fpb-local-controller-only.emulator-playing #emulator-view:not([hidden]) #game {
  opacity: 0 !important;
  pointer-events: none !important;
}

body.fpb-local-controller-only.emulator-playing #emulator-view:not([hidden]) .emulator-loading {
  display: none !important;
}

body.fpb-local-controller-only.emulator-playing #emulator-view:not([hidden]) .touch-controls-layer {
  display: block !important;
  position: fixed !important;
  inset: 0 !important;
  width: 100vw !important;
  height: 100dvh !important;
  min-width: 100vw !important;
  min-height: 100dvh !important;
  max-width: 100vw !important;
  max-height: 100dvh !important;
  z-index: 120 !important;
  overflow: hidden !important;
}

body.fpb-local-controller-only.emulator-playing #emulator-view:not([hidden]) .emulator-topbar {
  position: fixed !important;
  top: 0 !important;
  right: 0 !important;
  left: 0 !important;
  z-index: 140 !important;
}

body.fpb-local-controller-only.emulator-playing #emulator-view:not([hidden]) .emulator-title-wrap {
  visibility: hidden !important;
  pointer-events: none !important;
}

body.fpb-local-controller-only.emulator-playing #emulator-view:not([hidden]) .emulator-actions {
  margin-left: auto !important;
}

body.fpb-local-controller-only.emulator-playing #emulator-view:not([hidden]) #open-player-menu,
body.fpb-local-controller-only.emulator-playing #emulator-view:not([hidden]) #edit-layout-live,
body.fpb-local-controller-only.emulator-playing #emulator-view:not([hidden]) #exit-player {
  visibility: visible !important;
  pointer-events: auto !important;
}

@media (max-width: 640px) {
  body[data-fpb-local-multiplayer] #fpb-local-host-dialog,
  body[data-fpb-local-multiplayer] #local-guest-settings-dialog {
    width: calc(100vw - 18px) !important;
    max-width: calc(100vw - 18px) !important;
    height: auto !important;
    max-height: calc(100dvh - 18px) !important;
    margin: auto !important;
    border-radius: 18px !important;
  }

  body[data-fpb-local-multiplayer] #fpb-local-host-dialog .stream-settings-shell,
  body[data-fpb-local-multiplayer] #local-guest-settings-dialog .fpb-guest-settings-shell {
    height: auto !important;
    max-height: calc(100dvh - 18px) !important;
  }

  #fpb-local-host-dialog .fpb-local-code-row {
    grid-template-columns: 1fr;
  }

  #fpb-local-host-dialog .fpb-local-code-row > button {
    width: 100%;
  }
}
