/* V1 station control booth, accessibility operations and expanded fault states. */

.top-status{grid-template-columns:1.35fr repeat(7,1fr)!important}
#accessibleGroupCount{font-size:10px}

/* Face-on central control booth on the protected rear platform. */
.control-booth{
  position:absolute;left:50%;top:40px;z-index:5;width:122px;height:62px;
  transform:translateX(-50%);border:2px solid #3d5b65;border-bottom-width:4px;border-radius:4px 4px 1px 1px;
  background:linear-gradient(180deg,#dceef1 0 18%,#6e8d96 19% 23%,#27434d 24% 100%);
  box-shadow:0 5px 10px #17343b55,inset 0 0 0 2px #eefeff;overflow:hidden;pointer-events:none
}
.booth-header{height:12px;padding-top:3px;color:#17424d;text-align:center;font-size:5px;font-weight:bold;letter-spacing:.16em}
.booth-window{position:absolute;left:8px;right:8px;top:17px;height:34px;border:2px solid #7197a0;background:linear-gradient(165deg,#bddce255,#183039 48%,#0d1c22);box-shadow:inset 0 0 10px #0009;overflow:hidden}
.booth-window:before{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 15%,#c8f7ff1f 17% 24%,transparent 26% 62%,#c8f7ff18 64% 69%,transparent 71%)}
.booth-operator{position:absolute;left:78px;top:13px;width:15px;height:17px;background:transparent!important}
.booth-operator>.person-face{left:2px!important;top:-8px!important;width:11px!important;height:11px!important}
.operator-body{position:absolute;left:0;top:2px;width:15px;height:19px;border-radius:5px 5px 1px 1px;background:#1976a8;box-shadow:inset 0 -5px 0 #0c4868}
.booth-desk{position:absolute;left:19px;right:8px;bottom:-3px;height:11px;border-top:2px solid #8ba9af;background:#18282d;transform:skewX(-11deg)}
.booth-desk i{display:block;position:absolute;top:3px;width:3px;height:3px;border-radius:50%;background:#55d781;box-shadow:0 0 4px #55d781}
.booth-desk i:nth-child(1){left:7px}.booth-desk i:nth-child(2){left:18px;background:#f1ba42;box-shadow:0 0 4px #f1ba42}.booth-desk i:nth-child(3){right:18px}.booth-desk i:nth-child(4){right:7px;background:#65d9ea;box-shadow:0 0 4px #65d9ea}
.pa-microphone{position:absolute;left:89px;top:13px;width:15px;height:13px;border-left:2px solid #6f858a;border-top:2px solid #6f858a;border-radius:10px 0 0 0;transform:rotate(-12deg);transform-origin:left bottom}
.pa-microphone:after{content:"";position:absolute;right:-3px;top:-4px;width:5px;height:5px;border-radius:50%;background:#1a2326;border:1px solid #89999c}
.booth-status-lights{position:absolute;left:9px;right:9px;bottom:3px;display:flex;justify-content:space-around}
.booth-status-lights i{width:4px;height:4px;border-radius:50%;background:#67ddec;box-shadow:0 0 4px #67ddec;animation:boothLight 2.2s ease-in-out infinite alternate}
.booth-status-lights i:nth-child(2){animation-delay:.4s;background:#65df8c}.booth-status-lights i:nth-child(3){animation-delay:.8s;background:#f1bd4f}.booth-status-lights i:nth-child(4){animation-delay:1.2s}.booth-status-lights i:nth-child(5){animation-delay:1.6s;background:#65df8c}
.control-booth.operator-ready .booth-window{box-shadow:inset 0 -14px 18px #54e78355,inset 0 0 10px #0009,0 0 12px #54e78355}
.control-booth.operator-ready .operator-body,.control-booth.operator-ready .person-face{filter:drop-shadow(0 0 4px #63e18c)}
@keyframes boothLight{from{opacity:.3}to{opacity:1}}

/* Disabled groups wait as distinct parties on the right side of offload. */
.accessible-queue{position:absolute;right:16px;bottom:7px;z-index:15;width:300px;height:35px;display:flex;flex-direction:row-reverse;align-items:flex-end;gap:7px;overflow:visible;pointer-events:none}
.accessible-party{position:relative;display:flex;align-items:flex-end;gap:2px;padding-left:5px;border-left:2px solid #d3a943;transition:transform 1.3s cubic-bezier(.3,.7,.2,1),opacity .8s ease}
.accessible-party:first-child:after{content:"ACCESS";position:absolute;right:0;bottom:-7px;color:#98731a;font-size:4px;font-weight:bold;letter-spacing:.08em}
.accessible-guest{position:relative;display:block;width:13px;height:18px;border-radius:4px 4px 2px 2px;background:var(--shirt,#4e9eed);box-shadow:inset 0 -4px 0 #26383c33,0 0 0 1px #c49a2e}
.accessible-guest>.person-face{left:1px!important;top:-8px!important}
.accessible-party.boarding{transform:translate(-92px,-59px);opacity:0}
.accessible-badge{position:absolute;right:4px;top:19px;padding:2px 4px;border:1px solid #f5d66b;border-radius:2px;background:#7d5b12;color:#ffe88f;font-size:5px;font-style:normal;font-weight:bold;letter-spacing:.04em;box-shadow:0 0 7px #e9bd3e77}
.block.accessible{border-color:#d6ae42!important;box-shadow:inset 0 0 12px #efc75038!important}
.car-status.accessible{border-left-color:#d9b74d!important}
.vehicle.accessible-mission:before{content:"♿";position:absolute;right:8px;top:5px;z-index:14;color:#f2cf62;font-size:10px;text-shadow:0 0 5px #dcae25}
.unload-walker.accessible-exit{filter:drop-shadow(0 0 3px #d8b644)}

/* A stopped air-gate leaf remains visibly between its limits until repaired. */
.air-gates.gate-failed-mid .gate-post:first-child .gate-arm{transform:translateX(-48%)!important}
.air-gates.gate-failed-mid .gate-post:nth-child(2) .gate-arm{transform:translateX(48%)!important}
.air-gates.gate-failed-mid .gate-arm{box-shadow:inset 0 0 0 1px #edf8f9,0 0 9px #ed414966!important}

/* Low-output independent emergency fittings become visible during a power loss. */
.emergency-station-lighting{position:absolute;inset:0;z-index:44;opacity:0;pointer-events:none;transition:opacity .45s ease;background:linear-gradient(180deg,#0009,#02070ac7)}
.emergency-station-lighting i{position:absolute;top:34px;width:28px;height:4px;border:1px solid #673337;border-radius:5px;background:#8d3036;box-shadow:0 0 10px #bc353b66}
.emergency-station-lighting i:nth-child(1){left:18%}.emergency-station-lighting i:nth-child(2){left:39%}.emergency-station-lighting i:nth-child(3){right:39%}.emergency-station-lighting i:nth-child(4){right:18%}
body.power-failure .emergency-station-lighting{opacity:1}
body.power-failure .scene{background:#02070a!important}
body.power-failure .future-scene,body.power-failure .staff-platform,body.power-failure .platform,body.power-failure .vehicle-slot,body.power-failure .rail,body.power-failure .air-gates,body.power-failure .station-speaker,body.power-failure .staff,body.power-failure .platform-helper{filter:brightness(.12) saturate(.25)!important}
body.power-failure .future-core,body.power-failure .station-atmosphere,body.power-failure .floor-lights,body.power-failure .light-band,body.power-failure .departure-light-show{opacity:0!important}
body.power-failure .control-booth{filter:brightness(.15);box-shadow:none}
body.power-failure .control-booth .booth-status-lights i,body.power-failure .control-booth .booth-desk i{background:#182326!important;box-shadow:none!important;animation:none!important}
body.power-failure .operator-desk .console button:not(#engineerCall),body.power-failure .operator-desk .row-locks i,body.power-failure .operator-desk .auto-row,body.power-failure .operator-desk .bay-readout{filter:brightness(.13) saturate(.15)!important;box-shadow:none!important}
body.power-failure #engineerCall{position:relative;z-index:5!important;filter:none!important;background:#7f2025!important;border-color:#ff6269!important;color:#fff!important;box-shadow:inset 0 0 0 3px #b93138,0 0 19px #ff3943!important;animation:powerEngineerPulse .62s steps(2,end) infinite!important}
body.power-failure #engineerCall i{background:#ff424b!important;box-shadow:0 0 13px #ff424b!important}
body.power-failure .announcement-subtitle{z-index:130!important}
@keyframes powerEngineerPulse{0%,45%{filter:brightness(.7)}46%,100%{filter:brightness(1.35)}}

.load-auto-gates{margin:7px 0!important}
.auto-toggle-button{position:relative;flex:0 0 36px;width:36px;height:19px;padding:3px;border:0;border-radius:12px;background:#555;box-shadow:none;cursor:pointer}
.auto-toggle-button span{display:block;width:13px;height:13px;border-radius:50%;background:#aaa;transition:transform .2s ease,background .2s ease}
.auto-toggle-button.active{background:#34784d}
.auto-toggle-button.active span{transform:translateX(17px);background:#fff}

@media(max-width:1100px){
  .top-status{grid-template-columns:repeat(4,1fr)!important}
  .control-booth{width:108px}
  .accessible-queue{width:250px}
}
@media(max-width:650px){
  .top-status{grid-template-columns:1fr 1fr!important}
  .control-booth{display:none}
  .accessible-queue{right:4px;width:210px;transform:scale(.86);transform-origin:right bottom}
}
@media(prefers-reduced-motion:reduce){.booth-status-lights i,body.power-failure #engineerCall{animation:none!important}.accessible-party{transition:none!important}}
