/* V1 independent row gates, throughput readout and operational sensor indications. */

/* Each two-leaf bay now opens independently toward its own vehicle row. */
.gate-bay.open .gate-leaf{transition-duration:1.85s}
.gate-bay.open .gate-leaf-left{
  transform:perspective(115px) rotateY(78deg);
  filter:brightness(.82);
  box-shadow:inset 0 0 0 1px #e8f1f1,3px 2px 5px rgba(28,48,53,.24);
}
.gate-bay.open .gate-leaf-right{
  transform:perspective(115px) rotateY(-78deg);
  filter:brightness(.82);
  box-shadow:inset 0 0 0 1px #e8f1f1,-3px 2px 5px rgba(28,48,53,.24);
}
.gate-bay.open:after{opacity:0}
.gate-bay.gate-failed-mid .gate-leaf-left{transform:perspective(115px) rotateY(42deg)!important}
.gate-bay.gate-failed-mid .gate-leaf-right{transform:perspective(115px) rotateY(-42deg)!important}
.gate-bay.gate-obstructed .gate-leaf-left{transform:perspective(115px) rotateY(34deg)!important}
.gate-bay.gate-obstructed .gate-leaf-right{transform:perspective(115px) rotateY(-34deg)!important}
.gate-bay.gate-failed-mid .gate-leaf{box-shadow:inset 0 0 0 1px #edf8f9,0 0 9px #ed414966!important}

/* Only the guests assigned to an open row travel into the vehicle. */
.guest-queue.board .queue-person{transform:none!important;opacity:1!important}
.guest-queue.board .queue-person.boarding-now{transform:translateY(-66px)!important;opacity:0!important}

/* The queue tile retains its fixed height while showing measured/design capacity. */
.queue-performance{position:relative}
.queue-performance #throughputStatus{
  position:absolute;
  left:12px;
  bottom:4px;
  display:block;
  color:#59747a;
  font-size:6px;
  font-weight:800;
  line-height:1;
  letter-spacing:.07em;
  white-space:nowrap;
}

/* A temporary row-capacity instruction is unmistakable without adding another panel. */
.real-button.gate.capacity-restricted{border-color:#b3464b!important;box-shadow:inset 0 0 0 3px #58272a!important}
.real-button.gate.capacity-restricted>i:not(.progress){animation:capacityRestrictionLamp .8s steps(1,end) infinite!important}
.gate-bay.capacity-restricted:before{content:"HOLD";position:absolute;z-index:8;left:50%;top:-12px;transform:translateX(-50%);padding:1px 4px;border-radius:2px;background:#9f3036;color:#fff;font:700 5px/1.2 Arial,sans-serif;letter-spacing:.08em}
@keyframes capacityRestrictionLamp{0%,48%{background:#ef4a52;box-shadow:inset 0 0 0 1px #ffb1b5,0 0 10px #ef4a52}49%,100%{background:#422629;box-shadow:none}}

/* A failed detection circuit identifies the exact block that inhibited movement. */
.block.sensor-fault{border-color:#ef4a52!important;background:#4b252a!important;box-shadow:inset 0 0 0 1px #ff9ba144,0 0 10px #ef4a5266!important}
.sensor-fault-label{display:block!important;margin-top:3px;color:#ffd4d6!important;font-size:5.5px!important;font-style:normal!important;font-weight:900;letter-spacing:.08em;animation:sensorFaultPulse .8s steps(1,end) infinite}
@keyframes sensorFaultPulse{50%{opacity:.35}}

@media(max-width:650px){.queue-performance #throughputStatus{left:10px;bottom:3px;font-size:5.5px}}
@media(prefers-reduced-motion:reduce){.sensor-fault-label,.real-button.gate.capacity-restricted>i:not(.progress){animation:none!important}}
