/* Middle physical panel: keep the unchanged code and original logo fully
   within one screen, with the user-requested transparent background. */
body.lobby-display-page .lobby-stage .lobby-hero:not(.route-waiting) {
  padding-left:0;
  padding-right:0;
  grid-template-columns:repeat(3,minmax(0,1fr));
  column-gap:0;
}
body.lobby-display-page .lobby-stage .lobby-hero:not(.route-waiting) > .qr-zone {
  grid-column:2;
  grid-row:1;
  justify-self:center;
  width:100%;
}
body.lobby-display-page .lobby-stage .lobby-hero:not(.route-waiting) .qr-frame {
  position:relative;
  z-index:1;
  background:transparent;
  border:0;
  box-shadow:none;
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
}
body.lobby-display-page .lobby-stage .lobby-hero:not(.route-waiting) > .qr-rule {
  grid-column:3;
  grid-row:1;
  min-width:0;
  padding:0 calc(2 * var(--canvas-vw));
  border:0;
}
body.lobby-display-page .lobby-stage .lobby-hero:not(.route-waiting) .qr-rule h2 {
  font-size:calc(2 * var(--canvas-vw));
  line-height:1.4;
}
body.lobby-display-page .lobby-stage .lobby-hero:not(.route-waiting) .qr-rule h2 span {
  white-space:normal;
}
body.lobby-display-page .lobby-stage .lobby-hero:not(.route-waiting) > .ordered-room-line {
  grid-row:2;
  margin:0 calc(5 * var(--canvas-vw));
}
/* Presentation corrections applied after the pinned original game styles. */
.lobby-stage .lobby-hero.route-waiting {
  grid-template-columns:minmax(0,1fr);
  grid-template-rows:minmax(0,1fr);
  gap:0;
  place-items:center;
  text-align:center;
}
.lobby-stage .route-waiting-copy { width:100%; }

/* Input feedback is shared; gameplay layout belongs to design-system.css. */
body.mobile-page button{touch-action:manipulation;}
body.mobile-page .phone-actions{-webkit-user-select:none;user-select:none;}
