/* V1 centre-opening air gates, maintenance controls and compact offload auxiliaries. */

/* Each of the two boarding rows has a paired set of pneumatic leaves. */
.air-gates{
  left:14%;
  top:179px;
  width:174px;
  height:25px;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:0;
  padding:0;
  overflow:visible;
}
.gate-bay{position:relative;display:block;height:25px;overflow:visible}
.gate-bay:first-child{border-right:2px solid #5b7075}
.gate-leaf{
  position:absolute;
  top:0;
  bottom:0;
  width:50%;
  border:3px solid #60777d;
  background:
    repeating-linear-gradient(90deg,transparent 0 9px,#8da1a5 10px 12px,#eaf2f2 12px 13px,#647a7f 13px 15px),
    linear-gradient(180deg,rgba(234,245,246,.24),rgba(91,119,125,.2));
  box-shadow:inset 0 0 0 1px #e8f1f1,inset 0 -2px 3px rgba(35,55,60,.42),0 2px 4px rgba(28,48,53,.34);
  transition:transform 2.2s cubic-bezier(.35,.02,.2,1);
  will-change:transform;
}
.gate-leaf:before{content:"";position:absolute;left:2px;right:2px;top:2px;height:2px;border-radius:3px;background:rgba(241,249,249,.78)}
.gate-leaf:after{content:"";position:absolute;left:0;right:0;top:9px;height:4px;border-radius:3px;background:linear-gradient(180deg,#dce8e9,#84999d 48%,#536a70);box-shadow:0 1px 1px rgba(34,51,55,.4)}
.gate-leaf-left{left:0;border-radius:7px 2px 2px 7px;transform-origin:left center}
.gate-leaf-right{right:0;border-radius:2px 7px 7px 2px;transform-origin:right center}
.gate-bay:after{content:"";position:absolute;z-index:2;left:50%;top:7px;width:4px;height:11px;transform:translateX(-50%);border-radius:3px;background:linear-gradient(90deg,#50666b,#e0eaea 48%,#657b80);box-shadow:0 1px 2px rgba(30,47,52,.45);transition:opacity .25s}
.air-gates.open .gate-leaf{transition-duration:1.65s}
.air-gates.open .gate-leaf-left{transform:translateX(-100%)}
.air-gates.open .gate-leaf-right{transform:translateX(100%)}
.air-gates.open .gate-bay:after{opacity:0}
.air-gates.gate-failed-mid .gate-leaf-left{transform:translateX(-48%)!important}
.air-gates.gate-failed-mid .gate-leaf-right{transform:translateX(48%)!important}
.air-gates.gate-obstructed .gate-leaf-left{transform:translateX(-44%)!important}
.air-gates.gate-obstructed .gate-leaf-right{transform:translateX(44%)!important}
.air-gates.gate-failed-mid .gate-leaf{box-shadow:inset 0 0 0 1px #edf8f9,0 0 9px #ed414966!important}

/* The fixed fence finishes flush against the outer gate frames. */
.load-fence.left-fence{left:0;width:28.571%}
.load-fence.right-fence{left:calc(28.571% + 174px);right:0;width:auto}

/* Two waiting guests share the centreline of each gate; the queue continues to the entrance. */
.guest-queue{left:28.571%!important;width:350px!important}

/* Slightly uneven, worn floor paint rather than perfect interface circles. */
.boarding-marks{left:28.571%;top:8px;width:174px;display:grid;grid-template-columns:1fr 1fr;justify-items:center;z-index:3}
.boarding-marks i{
  width:28px;
  height:27px;
  border:2px solid rgba(54,151,169,.76);
  border-radius:48% 52% 46% 54%;
  background:radial-gradient(circle at 55% 45%,rgba(229,248,247,.25),rgba(229,248,247,.04) 62%,transparent 68%);
  color:rgba(35,103,116,.82);
  box-shadow:inset 1px 0 rgba(255,255,255,.45),1px 1px rgba(48,137,153,.18);
  text-shadow:.5px .5px rgba(255,255,255,.48);
  filter:saturate(.82);
}
.boarding-marks i:first-child{transform:rotate(-2.2deg) translateY(1px)}
.boarding-marks i:last-child{transform:rotate(1.5deg) translate(-1px,-1px);border-bottom-color:rgba(54,151,169,.48)}

/* Available gate commands flash; the achieved gate position stays solid. */
.real-button.gate.gate-command-ready>i:not(.progress){animation:gateCommandAvailable .72s steps(1,end) infinite!important}
.real-button.gate.gate-position-active>i:not(.progress){animation:none!important}
@keyframes gateCommandAvailable{50%{background:#244035!important;box-shadow:0 0 2px #63e18c55!important}}

/* Compact, matched offload auxiliary controls with panel-style status lamps. */
.offload-secondary-actions{grid-template-columns:1fr 1fr;gap:8px;margin-top:9px}
.offload-secondary-actions .transfer-button{
  height:48px!important;
  min-height:48px!important;
  margin:0!important;
  padding:0 10px!important;
  display:grid!important;
  grid-template-columns:16px minmax(0,1fr) auto;
  align-items:center;
  gap:8px;
  text-align:left;
}
.offload-secondary-actions .transfer-button span{font-size:9px;font-weight:800;letter-spacing:.025em}
.offload-secondary-actions .transfer-button kbd{font-size:11px!important;font-weight:900;justify-self:end}
.action-led{display:block;width:14px;height:14px;border:3px solid #1b2528;border-radius:50%;background:#4d585b;box-shadow:inset 0 0 0 1px #778589,0 1px 2px rgba(0,0,0,.5)}
.accessible-board-button.active .action-led,.offload-secondary-actions .add-car.ready .action-led{background:#55dc83;box-shadow:inset 0 0 0 1px #a8ffc4,0 0 9px rgba(85,220,131,.78)}
.accessible-board-button.ready .action-led{animation:priorityLamp 1s steps(1) infinite}
@keyframes priorityLamp{50%{background:#e7b341;box-shadow:inset 0 0 0 1px #ffe5a0,0 0 9px rgba(231,179,65,.82)}}

.block-local-controls .block-restraint-control{border-color:#87969b;color:#e2edf0}
.block-local-controls .block-restraint-control.open{border-color:#d69c3c;color:#ffd989}

@media(max-width:650px){
  .air-gates{left:14%;width:140px}
  .load-fence.right-fence{left:calc(28.571% + 140px)}
  .guest-queue{left:28.571%!important;width:280px!important}
  .boarding-marks{left:28.571%;width:140px}
  .offload-secondary-actions{grid-template-columns:1fr 1fr}
}

@media(prefers-reduced-motion:reduce){.real-button.gate.gate-command-ready>i:not(.progress){animation:none!important}}
