/* V1 finishing pass: compact industrial controls, unload movement and station lighting */
.station-atmosphere{position:absolute;inset:74px 0 0;z-index:19;pointer-events:none;overflow:hidden;opacity:.42;mix-blend-mode:screen;background:linear-gradient(105deg,transparent 0 28%,#4ddcff14 36%,#8eefff35 42%,transparent 50% 68%,#3cbfe92b 75%,transparent 83%);background-size:280% 100%;animation:stationBlueSweep 11s linear infinite}
.station-atmosphere:before,.station-atmosphere:after{content:"";position:absolute;left:-20%;width:42%;height:3px;border-radius:50%;background:#7deaff;box-shadow:0 0 9px #36c9f7,0 0 24px #36c9f799;animation:floorWave 8s ease-in-out infinite}
.station-atmosphere:before{top:148px}.station-atmosphere:after{top:226px;animation-delay:-3.7s}
.station-atmosphere i{position:absolute;left:-15%;top:120px;width:34%;height:120px;transform:skewX(-24deg);background:linear-gradient(90deg,transparent,#5ee5ff23,transparent);filter:blur(5px);animation:lightRibbon 9s linear infinite}
.station-atmosphere i:nth-child(2){animation-delay:-3s;opacity:.72}.station-atmosphere i:nth-child(3){animation-delay:-6s;opacity:.52}
@keyframes stationBlueSweep{to{background-position:-280% 0}}
@keyframes floorWave{0%,100%{transform:translateX(0) scaleX(.72);opacity:.2}50%{transform:translateX(335%) scaleX(1.4);opacity:.8}}
@keyframes lightRibbon{to{left:115%}}

.station-speaker{z-index:27}
.speaker-ready-lamp{position:absolute;left:9px;bottom:-12px;width:11px;height:11px;border:2px solid #26383c;border-radius:50%;background:#314046;box-shadow:inset 0 0 0 1px #73868a}
.speaker-ready-lamp.ready{background:#68ed90;box-shadow:0 0 5px #68ed90,0 0 13px #68ed90,inset 0 0 0 1px #e8fff0;animation:speakerReadyFlash .62s steps(2,end) infinite}
@keyframes speakerReadyFlash{50%{filter:brightness(.48);box-shadow:0 0 3px #68ed90}}

.unload-walkers{position:absolute;inset:0;z-index:21;pointer-events:none}
.unload-walker{position:absolute;left:36%;top:21px;width:15px;height:20px;border-radius:4px 4px 2px 2px;background:var(--shirt,#4e9eed);box-shadow:inset 0 -5px 0 #26383c33;opacity:0;animation:unloadGuestExit var(--walk-duration,3.1s) cubic-bezier(.34,.08,.68,.93) var(--walk-delay,0s) forwards}
.unload-walker:before{content:"";position:absolute;width:10px;height:10px;left:2px;top:-8px;border-radius:50%;background:#dca77f;border:1px solid #78543e}
.unload-walker:after{content:"";position:absolute;left:2px;right:2px;bottom:-5px;height:6px;border-radius:0 0 3px 3px;background:#29383d}
@keyframes unloadGuestExit{0%{opacity:0;transform:translate(0,-48px)}8%{opacity:1;transform:translate(0,-31px)}36%{transform:translate(calc(-1 * var(--lane-offset,22px)),-13px)}78%{opacity:1;transform:translate(calc(-1 * var(--exit-distance,300px)),-13px)}100%{opacity:0;transform:translate(calc(-1 * var(--exit-distance,300px)),-38px) scale(.86)}}
.offload-helper{z-index:24}
.offload-helper.assisting{transform:translateX(-54px);filter:drop-shadow(0 0 7px #74e6f4);transition:transform 2.2s ease,filter .3s}

/* Compact, contemporary industrial panel layout. */
.operator-desk{gap:8px}
.operator-desk .console{padding:8px;border:1px solid #657276;border-radius:3px;background:linear-gradient(155deg,#657174 0,#465053 32%,#30383a 100%);box-shadow:inset 0 0 0 3px #252c2e,0 5px 12px #1a2b2f4d}
.operator-desk .console-label{height:27px;margin-bottom:6px;padding:4px 8px;border-color:#75888c;background:linear-gradient(#172124,#101719);box-shadow:inset 0 0 0 1px #05090a}
.operator-desk .console-label span{font-size:9px}
.bay-readout{height:29px;margin-bottom:6px;padding:5px 8px;border:1px solid #7fa0a6;background:linear-gradient(#d9eef1,#b9d0d4);box-shadow:inset 0 0 5px #fff,0 1px 0 #1a2426}
.load-buttons,.unload-buttons{gap:5px;padding:5px;border:1px solid #242c2e;border-radius:3px;background:#30383a}
.real-button,.real-button.restraint-control,.real-button.dispatch{height:61px;min-height:61px;border:1px solid #121719;border-radius:3px;background:linear-gradient(#586367,#3c4548);box-shadow:inset 0 0 0 2px #737f82,0 2px 0 #171b1c}
.real-button>i:not(.progress),.real-button.restraint-control>i{width:22px;height:17px;margin:3px auto 5px;border:3px solid #162023;border-radius:3px}
.real-button.dispatch b{width:23px;height:19px;margin:3px auto 5px;border:4px solid #19221c;border-radius:4px}
.real-button span{display:block;padding:0 3px;font-size:7px;line-height:1.05;letter-spacing:.045em}
.real-button kbd{right:3px;bottom:2px;padding:1px 3px;font-size:5px}
.real-button:active:not(:disabled){transform:translateY(1px);box-shadow:inset 0 0 0 2px #849194,0 1px 0 #171b1c}
.row-locks{margin:4px 0;padding:4px 6px;min-height:24px}
.single-stage-button{min-height:30px;margin:4px 0 5px;padding:4px 8px}
.load-service{gap:5px;margin-top:5px}
.load-safety{gap:5px}
.load-safety button{height:45px;min-height:45px}
.load-safety button i{width:18px;height:18px;margin:1px auto 2px}
.load-safety button span{font-size:6px}
.transfer-button{min-height:33px;padding:5px 8px;font-size:7px}
.auto-row{min-height:39px;margin:0 0 5px;padding:5px 7px}
.auto-row b,.auto-row small{font-size:7px}
.main-console .safety-controls .engineer-button{height:50px;border-width:1px;box-shadow:inset 0 0 0 2px #737c7e,0 2px 0 #181b1c}
.main-console .safety-controls .engineer-button i{display:inline-block;width:19px;height:17px;margin:0 8px 0 0;border-width:3px;vertical-align:middle}
.main-console .session-button{height:25px!important}
.unload-assist-alert{margin:0 0 6px;grid-template-columns:minmax(0,1fr) minmax(120px,150px);padding:7px 8px;gap:7px}
.guest-assist-alert button{min-height:31px;padding:4px 6px;font-size:7px;box-shadow:inset 0 0 0 2px #f6c96b,0 2px 0 #111819}
.guest-assist-actions{gap:4px}

/* The load crew position is just to the right of the PA speaker and close to both rows. */
.load-post{left:7.4%}
.load-staff{left:14.1%;top:54px;transition:left 1.05s ease,top 1.05s ease,transform .38s ease}
.load-staff.gate-entry{left:10.3%;top:54px}
.load-staff.gate-entry.through-gate{left:10.3%;top:102px}
.load-staff.inspecting.check-front{left:13.2%;top:104px}
.load-staff.inspecting.check-back{left:17.1%;top:104px}

body.estopped .station-atmosphere{animation-play-state:paused;opacity:.12}
@media(prefers-reduced-motion:reduce){.station-atmosphere,.station-atmosphere:before,.station-atmosphere:after,.station-atmosphere i,.speaker-ready-lamp.ready,.unload-walker{animation-duration:.01ms;animation-iteration-count:1}}
@media(max-width:900px){.unload-assist-alert{grid-template-columns:1fr}.real-button,.real-button.restraint-control,.real-button.dispatch{height:58px;min-height:58px}}
