/* V1 operational checks, guest assistance and show-scene monitoring. */

/* Deliberate pneumatic travel: both leaves now take long enough to read clearly. */
.gate-arm{transition-duration:1.65s;transition-timing-function:cubic-bezier(.35,.02,.2,1);will-change:transform}

.guest-assist-alert{display:none;grid-template-columns:minmax(0,1fr) 145px;gap:10px;align-items:center;margin:10px 0 2px;padding:10px 11px;border:1px solid #b77a20;background:linear-gradient(135deg,#2e2a20,#191d1e);color:#f5efe2;box-shadow:inset 4px 0 #ffbd45,0 0 14px #ffb63235}
.guest-assist-alert.show{display:grid;animation:assistAlertIn .25s ease-out both}
.guest-assist-alert small,.guest-assist-alert b,.guest-assist-alert span{display:block}
.guest-assist-alert small{color:#ffbd45;font-size:7px;letter-spacing:.14em}
.guest-assist-alert b{margin-top:2px;font-size:10px;letter-spacing:.05em}
.guest-assist-alert span{margin-top:2px;color:#cbd6d5;font-size:8px}
.guest-assist-alert button{min-height:43px;border:2px solid #111819;background:#d99427;color:#111819;font-size:8px;font-weight:bold;letter-spacing:.07em;cursor:pointer;box-shadow:inset 0 0 0 3px #f6c96b,0 3px 0 #111819}
.guest-assist-alert button:disabled{cursor:not-allowed;filter:grayscale(.45);opacity:.7}
@keyframes assistAlertIn{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:none}}

.guest-queue.issue-row-1 .queue-person:nth-child(1),.guest-queue.issue-row-2 .queue-person:nth-child(3){z-index:20;animation:guestIssuePulse .8s ease-in-out infinite alternate}
@keyframes guestIssuePulse{from{filter:drop-shadow(0 0 1px #ffb52f)}to{filter:drop-shadow(0 0 8px #ffb52f) brightness(1.18)}}
.load-helper{transition:transform 1.15s cubic-bezier(.4,0,.2,1);z-index:19}
.load-helper.assisting{transform:translateX(-155px)}
.load-helper.assisting i{animation:crewAssist .6s ease-in-out infinite alternate}
@keyframes crewAssist{from{transform:translateY(0)}to{transform:translateY(-2px)}}

.scene-monitor-panel{margin-top:12px;padding:12px;background:linear-gradient(145deg,#465052,#2e3638);border:2px solid #6d7b7d;border-radius:5px;box-shadow:inset 0 0 0 5px #22292b,0 8px 20px #26383c44;color:#eef5f4}
.scene-monitor-panel .console-label{margin-bottom:9px}
.scene-monitor-panel .console-label em{color:#62e18a}
.scene-monitor-panel.fault .console-label em{color:#ff686d;animation:monitorFaultText .7s steps(2,end) infinite}
.scene-monitors{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.scene-monitor{position:relative;min-width:0;height:105px;padding:7px;border:2px solid #172124;border-radius:3px;background:#101719;color:#c9d5d4;box-shadow:inset 0 0 0 2px #59676a;overflow:hidden}
.scene-monitor:before{content:"";position:absolute;inset:24px 7px 21px;background:radial-gradient(circle at 72% 35%,#99e8f555 0 4%,transparent 5%),linear-gradient(150deg,transparent 0 35%,#4b7d8755 36% 39%,transparent 40%),linear-gradient(25deg,#14282e,#27464e 56%,#0d171a);border:1px solid #587176;box-shadow:inset 0 0 15px #000;filter:saturate(.75)}
.scene-monitor:after{content:"CAM 03";position:absolute;right:9px;top:28px;color:#a8e9f0;font:5px Consolas,monospace;opacity:.8}
.scene-monitor strong{position:relative;z-index:2;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#e8f1ef;font-size:8px;letter-spacing:.08em}
.scene-monitor span{position:absolute;left:8px;bottom:7px;z-index:2;color:#7f9295;font-size:7px}
.scene-monitor .camera-car{position:absolute;left:calc(50% - 23px);top:51px;z-index:2;width:46px;height:18px;border:2px solid #a7d5da;border-radius:10px 10px 5px 5px;background:#547887;box-shadow:0 4px 6px #0008,0 0 8px #55d8e466;opacity:0;transform:translateX(30px)}
.scene-monitor .camera-car:before,.scene-monitor .camera-car:after{content:"";position:absolute;bottom:-5px;width:9px;height:7px;border-radius:50%;background:#0a0e0f;border:2px solid #536469}.scene-monitor .camera-car:before{left:6px}.scene-monitor .camera-car:after{right:6px}
.scene-monitor.occupied{border-color:#4fbd73;box-shadow:inset 0 0 0 2px #6e8d78,0 0 10px #55db7e44}
.scene-monitor.occupied .camera-car{opacity:1;animation:cameraCarDrift 3.4s ease-in-out infinite alternate}
.scene-monitor.occupied span{color:#72e296}
.scene-monitor.fault{border-color:#ec454b;background:#291416;box-shadow:inset 0 0 0 2px #96363b,0 0 14px #ee3b4377;animation:monitorFault .75s steps(2,end) infinite}
.scene-monitor.fault span{color:#ff7e82;font-weight:bold}
.scene-monitor.scanning:before{filter:brightness(1.8) saturate(1.4)}
.scene-monitor.scanning{box-shadow:inset 0 0 0 2px #81deea,0 0 15px #67dce8}
.block.fault{border-color:#ef5157;background:#571f23;color:#fff;box-shadow:inset 0 0 12px #ef515755,0 0 9px #ef515766;animation:monitorFault .75s steps(2,end) infinite}
@keyframes cameraCarDrift{from{transform:translateX(25px)}to{transform:translateX(-25px)}}
@keyframes monitorFault{50%{background:#42191c}}
@keyframes monitorFaultText{50%{opacity:.35}}

.procedure-checklist{display:grid;gap:5px;margin:10px 0}
.procedure-check{position:relative;padding:8px 8px 8px 31px;border:1px solid #c5d0d1;background:#edf2f2;color:#657579;font-size:8px}
.procedure-check:before{content:"";position:absolute;left:9px;top:7px;width:12px;height:12px;border:2px solid #809093;border-radius:50%;background:#fff}
.procedure-check.complete{color:#1f6740;border-color:#9ac6a9;background:#edf8f0}
.procedure-check.complete:before{border-color:#25814c;background:#52d67b;box-shadow:0 0 7px #52d67b}
.procedure-check.complete:after{content:"✓";position:absolute;left:12px;top:6px;color:#103b25;font-size:10px;font-weight:bold}
.procedure-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px}
.procedure-actions button{min-height:39px;border:1px solid #596a6d;background:#344144;color:#fff;font-size:8px;font-weight:bold;letter-spacing:.06em;cursor:pointer}
.procedure-actions button:first-child{background:#276f7e}
.procedure-actions button:disabled{cursor:not-allowed;filter:grayscale(1);opacity:.45}
.procedure-section.complete{border-color:#7fbd94;background:#f4fff7}
.menu-switch-row+.menu-switch-row{border-top:1px solid #d5dfe0}

body.scene-fault #systemBadge{color:#ff7b80;border-color:#9c3b40}
body.scene-fault #rideState{color:#a52229}
body.estopped .scene-monitor .camera-car,body.estopped .load-helper.assisting i{animation-play-state:paused}

@media(max-width:900px){.scene-monitors{grid-template-columns:1fr 1fr}.guest-assist-alert{grid-template-columns:1fr}.guest-assist-alert button{min-height:36px}}
@media(max-width:650px){.load-helper.assisting{transform:translateX(-95px)}.scene-monitors{grid-template-columns:1fr 1fr}.scene-monitor{height:94px}.procedure-actions{grid-template-columns:1fr}}
