/* Mobile-only LiveKit layout: longer host tile followed immediately by compact attendee rows. */
@media (max-width: 600px) {
  #grayxonLiveKitStage {
    display: grid !important;
    width: calc(100vw - 32px) !important;
    max-width: calc(100vw - 32px) !important;
    min-width: 0 !important;
    height: auto !important;
    max-height: none !important;
    min-height: 0 !important;
    box-sizing: border-box !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    grid-auto-flow: row !important;
    grid-auto-rows: auto !important;
    align-items: stretch !important;
    justify-items: stretch !important;
    gap: 7px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    overflow: visible !important;
    align-content: start !important;
  }
  #grayxonLiveKitStage [data-gx-livekit-tile] {
    display: grid !important;
    position: relative !important;
    width: 100% !important;
    height: auto !important;
    min-width: 0 !important;
    min-height: 0 !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    grid-column: auto !important;
    grid-row: auto !important;
    align-self: stretch !important;
    aspect-ratio: 4 / 3 !important;
    overflow: hidden !important;
  }
  /* Host is intentionally taller; attendee miniatures start directly below it. */
  #grayxonLiveKitStage [data-gx-livekit-tile][data-gx-livekit-main="true"] {
    grid-column: 1 / -1 !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    aspect-ratio: 5 / 8 !important;
  }
  #grayxonLiveKitStage [data-gx-livekit-tile] video {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
  }
  /* Only the main host/pinned tile preserves the full camera or screen-share frame.
     Keep its existing box dimensions; never change participant thumbnail fitting. */
  #grayxonLiveKitStage [data-gx-livekit-tile][data-gx-livekit-main="true"] video {
    object-fit: contain !important;
    background: #000 !important;
  }
}
/* LiveKit media controls: vertical stack over the local preview only. */
body.grayxon-livekit-active .gx-call-controls [data-gx-call="audio"],
body.grayxon-livekit-active .gx-call-controls [data-gx-call="video"] {
  display: none !important;
}
#grayxonLiveKitStage [data-gx-livekit-mini-controls] {
  position: absolute !important;
  right: 7px !important;
  bottom: 38px !important;
  left: auto !important;
  top: auto !important;
  z-index: 20 !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 7px !important;
  pointer-events: none !important;
}
#grayxonLiveKitStage [data-gx-livekit-mini-controls] [data-gx-mini-media] {
  flex: 0 0 31px !important;
  width: 31px !important;
  height: 31px !important;
  min-width: 31px !important;
  min-height: 31px !important;
  margin: 0 !important;
  padding: 0 !important;
  pointer-events: auto !important;
  touch-action: manipulation !important;
}
#grayxonLiveKitStage [data-gx-livekit-tile] .gx-livekit-avatar {
  z-index: 1;
}
#grayxonLiveKitStage [data-gx-livekit-tile] video {
  z-index: 2;
}
#grayxonLiveKitStage [data-gx-livekit-tile] [data-gx-livekit-label] {
  z-index: 4;
}


/* Miniaturas: deja únicamente el micrófono visible, pegado a la esquina superior derecha. */
#grayxonLiveKitStage [data-gx-livekit-tile]:not([data-gx-livekit-main="true"]) [data-gx-livekit-mini-controls] {
  top: 6px !important;
  right: 6px !important;
  bottom: auto !important;
  left: auto !important;
  gap: 0 !important;
}
/* En escritorio se conservan cámara y micrófono en las miniaturas.
   En móvil dejamos solo el micrófono para que los controles no se desborden. */
@media (max-width: 600px) {
  #grayxonLiveKitStage [data-gx-livekit-tile]:not([data-gx-livekit-main="true"]) [data-gx-livekit-mini-controls] [data-gx-mini-media="video"] {
    display: none !important;
  }
}
#grayxonLiveKitStage [data-gx-livekit-tile]:not([data-gx-livekit-main="true"]) [data-gx-livekit-mini-controls] [data-gx-mini-media="audio"] {
  width: 30px !important;
  height: 30px !important;
  min-width: 30px !important;
  min-height: 30px !important;
  flex-basis: 30px !important;
}
/* Barra móvil compacta: siete espacios iguales y colgar siempre en el centro. */
@media (max-width: 600px) {
  body.grayxon-live-training-call .gx-call-controls {
    display: grid !important;
    grid-template-columns: repeat(7, minmax(0, 1fr)) !important;
    align-items: center !important;
    justify-items: stretch !important;
    width: calc(100vw - 20px) !important;
    max-width: calc(100vw - 20px) !important;
    box-sizing: border-box !important;
    gap: 2px !important;
    padding: 7px 6px !important;
    left: 50% !important;
    transform: translateX(-50%) !important;
  }
  body.grayxon-live-training-call .gx-call-controls > button {
    min-width: 0 !important;
    width: 100% !important;
    min-height: 48px !important;
    padding: 3px 0 !important;
    gap: 3px !important;
    border-radius: 10px !important;
    overflow: hidden !important;
  }
  body.grayxon-live-training-call .gx-call-controls > button > span:last-child {
    display: block !important;
    max-width: 100% !important;
    font-size: 8px !important;
    line-height: 1.05 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }
  body.grayxon-live-training-call .gx-call-controls > button .gx-ctl-icon {
    width: 22px !important;
    height: 22px !important;
    font-size: 18px !important;
  }
  body.grayxon-live-training-call .gx-call-controls > button .gx-ctl-icon svg {
    width: 22px !important;
    height: 22px !important;
  }
  body.grayxon-live-training-call .gx-call-controls > button.gx-call-end {
    grid-column: auto !important;
    justify-self: center !important;
    align-self: center !important;
    width: 42px !important;
    min-width: 42px !important;
    height: 42px !important;
    min-height: 42px !important;
    padding: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 1px !important;
    border: 0 !important;
    border-radius: 50% !important;
    background: #fe2c55 !important;
    color: #fff !important;
    box-shadow: 0 3px 12px #fe2c5555 !important;
    overflow: visible !important;
  }
  body.grayxon-live-training-call .gx-call-controls > button.gx-call-end .gx-ctl-icon,
  body.grayxon-live-training-call .gx-call-controls > button.gx-call-end .gx-ctl-icon svg {
    width: 23px !important;
    height: 23px !important;
  }
  body.grayxon-live-training-call .gx-call-controls > button.gx-call-end > span:last-child {
    font-size: 7px !important;
    line-height: 1 !important;
    overflow: visible !important;
  }
}


/* LiveKit controls: identical button sizes, positions vary only by viewport. */
#grayxonLiveKitStage [data-gx-livekit-tile] [data-gx-livekit-mini-controls] {
  top: 6px !important;
  right: 6px !important;
  bottom: auto !important;
  left: auto !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 5px !important;
}
#grayxonLiveKitStage [data-gx-livekit-tile] [data-gx-livekit-mini-controls] [data-gx-mini-media] {
  width: 30px !important;
  height: 30px !important;
  min-width: 30px !important;
  min-height: 30px !important;
  flex: 0 0 30px !important;
  margin: 0 !important;
}
#grayxonLiveKitStage [data-gx-livekit-tile] [data-gx-livekit-mini-controls] [data-gx-mini-media="video"] {
  display: grid !important;
}
@media (max-width: 600px) {
  #grayxonLiveKitStage [data-gx-livekit-tile] [data-gx-livekit-mini-controls] {
    top: 6px !important;
    right: 6px !important;
    left: 6px !important;
    bottom: auto !important;
    flex-direction: row !important;
    justify-content: space-between !important;
    align-items: flex-start !important;
    gap: 5px !important;
  }
  #grayxonLiveKitStage [data-gx-livekit-tile] [data-gx-livekit-mini-controls] [data-gx-mini-media] {
    width: 30px !important;
    height: 30px !important;
    min-width: 30px !important;
    min-height: 30px !important;
    flex-basis: 30px !important;
  }
  body.grayxon-live-training-call .gx-call-controls {
    display: grid !important;
    grid-template-columns: repeat(7, minmax(0, 1fr)) !important;
    width: calc(100vw - 20px) !important;
    max-width: calc(100vw - 20px) !important;
    box-sizing: border-box !important;
    gap: 3px !important;
    padding: 8px 7px !important;
    left: 50% !important;
    right: auto !important;
    transform: translateX(-50%) !important;
    align-items: center !important;
    justify-items: stretch !important;
  }
  body.grayxon-live-training-call .gx-call-controls > button {
    min-width: 0 !important;
    width: 100% !important;
    min-height: 52px !important;
    padding: 4px 1px !important;
    gap: 4px !important;
    overflow: visible !important;
  }
  body.grayxon-live-training-call .gx-call-controls > button > span:last-child {
    display: block !important;
    max-width: 100% !important;
    font-size: 9px !important;
    line-height: 1.1 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }
  body.grayxon-live-training-call .gx-call-controls > button.gx-call-end {
    grid-column: 4 !important;
    justify-self: center !important;
    width: 44px !important;
    min-width: 44px !important;
    height: 44px !important;
    min-height: 44px !important;
    padding: 0 !important;
    border-radius: 50% !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 1px !important;
  }
}


/* Final responsive polish: keep both local media controls visible and equal-sized. */
#grayxonLiveKitStage [data-gx-livekit-tile] [data-gx-livekit-mini-controls] {
  gap: 8px !important;
}
#grayxonLiveKitStage [data-gx-livekit-tile] [data-gx-livekit-mini-controls] [data-gx-mini-media="audio"],
#grayxonLiveKitStage [data-gx-livekit-tile] [data-gx-livekit-mini-controls] [data-gx-mini-media="video"] {
  display: grid !important;
  place-items: center !important;
  width: 30px !important;
  height: 30px !important;
  min-width: 30px !important;
  min-height: 30px !important;
  flex: 0 0 30px !important;
}
@media (max-width: 600px) {
  #grayxonLiveKitStage [data-gx-livekit-tile] [data-gx-livekit-mini-controls] {
    left: 6px !important;
    right: 6px !important;
    top: 6px !important;
    bottom: auto !important;
    flex-direction: row !important;
    justify-content: space-between !important;
    align-items: flex-start !important;
    gap: 5px !important;
  }
  body.grayxon-live-training-call .gx-call-controls {
    display: flex !important;
    flex-wrap: nowrap !important;
    justify-content: space-around !important;
    align-items: center !important;
    gap: 3px !important;
    width: calc(100vw - 20px) !important;
    max-width: calc(100vw - 20px) !important;
    padding: 8px 6px !important;
    box-sizing: border-box !important;
    left: 50% !important;
    right: auto !important;
    transform: translateX(-50%) !important;
  }
  body.grayxon-live-training-call .gx-call-controls > button {
    flex: 1 1 0 !important;
    min-width: 0 !important;
    width: 0 !important;
    min-height: 54px !important;
    padding: 4px 0 !important;
    gap: 4px !important;
    overflow: hidden !important;
  }
  body.grayxon-live-training-call .gx-call-controls > button[data-gx-call="hand"] { order: 1 !important; }
  body.grayxon-live-training-call .gx-call-controls > button[data-gx-call="chat"] { order: 2 !important; }
  body.grayxon-live-training-call .gx-call-controls > button.gx-call-end { order: 3 !important; }
  body.grayxon-live-training-call .gx-call-controls > button[data-gx-call="reactions"] { order: 4 !important; }
  body.grayxon-live-training-call .gx-call-controls > button[data-gx-call="more"] { order: 5 !important; }
  body.grayxon-live-training-call .gx-call-controls > button.gx-call-end {
    flex: 0 0 48px !important;
    width: 48px !important;
    min-width: 48px !important;
    height: 48px !important;
    min-height: 48px !important;
    border-radius: 50% !important;
    padding: 0 !important;
  }
  body.grayxon-live-training-call .gx-call-controls > button > span:last-child {
    font-size: 9px !important;
    line-height: 1.1 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    max-width: 100% !important;
  }
}


/* Explicitly override the legacy mobile rule that hid the camera on thumbnails. */
@media (max-width: 600px) {
  #grayxonLiveKitStage [data-gx-livekit-tile]:not([data-gx-livekit-main="true"]) [data-gx-livekit-mini-controls] [data-gx-mini-media="video"] {
    display: grid !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
  }
  #grayxonLiveKitStage [data-gx-livekit-tile] [data-gx-livekit-mini-controls] [data-gx-mini-media="audio"],
  #grayxonLiveKitStage [data-gx-livekit-tile] [data-gx-livekit-mini-controls] [data-gx-mini-media="video"] {
    width: 30px !important;
    height: 30px !important;
    min-width: 30px !important;
    min-height: 30px !important;
    flex: 0 0 30px !important;
  }
}


/* Keep the own-camera menu inside the viewport and above the active local tile. */
body.grayxon-live-training-call .gx-self-camera-menu-wrap {
  right: max(12px, env(safe-area-inset-right)) !important;
  left: auto !important;
  max-width: calc(100vw - 24px) !important;
  box-sizing: border-box !important;
}
body.grayxon-live-training-call .gx-self-camera-menu {
  max-width: calc(100vw - 32px) !important;
  box-sizing: border-box !important;
}

/* Solo el anfitrión: en móvil, conserva la mano arriba a la derecha y apila
   cámara/micrófono justo debajo, sin alterar las miniaturas de participantes. */
@media (max-width: 600px) {
  #grayxonLiveKitStage [data-gx-livekit-tile][data-gx-livekit-main="true"] [data-gx-livekit-mini-controls] {
    top: 7px !important;
    right: 7px !important;
    bottom: auto !important;
    left: auto !important;
    flex-direction: column-reverse !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 7px !important;
  }
  #grayxonLiveKitStage [data-gx-livekit-tile][data-gx-livekit-main="true"] [data-gx-livekit-mini-controls] [data-gx-mini-media] {
    width: 31px !important;
    height: 31px !important;
    min-width: 31px !important;
    min-height: 31px !important;
    flex: 0 0 31px !important;
  }
}
