/* V1 station and movement refinements. */
.top-status{height:68px}
.fleet-status-tile{position:relative;padding-right:78px!important}
#menuOpen{position:absolute;right:8px;bottom:8px;width:64px;height:27px;border:1px solid #225d69;border-radius:2px;background:linear-gradient(#388fa0,#286d7a);color:#fff;font-size:6px;font-weight:bold;letter-spacing:.06em;cursor:pointer;box-shadow:inset 0 0 0 2px #69b8c6,0 2px 4px #456b7340}
#menuOpen:hover,#menuOpen:focus{background:linear-gradient(#45a5b7,#2c7b8a);outline:2px solid #75cfdf;outline-offset:1px}

/* The PA caption sits immediately below the status strip. */
.announcement-subtitle{top:7px;bottom:auto;z-index:20;transform:translate(-50%,-12px);width:min(820px,86%)}
.announcement-subtitle.show{transform:translate(-50%,0)}

/* A continuous protected crew-side platform behind the vehicle track. */
.future-scene{z-index:0}
.staff-platform{position:absolute;left:0;right:0;top:38px;height:63px;z-index:2;border-top:2px solid #d9eef1;border-bottom:4px solid #7f9296;background:linear-gradient(180deg,#d9ecefdd,#c2dadddd);box-shadow:inset 0 4px 12px #fff8}
.staff-platform-fence{position:absolute;left:0;right:0;bottom:0;height:18px;border-top:3px solid #74868a;background:repeating-linear-gradient(90deg,transparent 0 25px,#74868a 26px 30px)}
.staff,.staff-post{z-index:10}

/* Crew panels and isolation gates are deliberately small and human-scaled. */
.staff-post{top:48px;width:66px;height:29px}
.load-post{left:3.2%}.unload-post{right:3.2%}
.staff-console{left:0;top:3px;width:28px;height:22px;padding:4px 3px;gap:2px;border-width:2px;border-radius:3px;box-shadow:inset 0 0 0 1px #87979a,0 1px 3px #0004}
.staff-console i{width:7px;height:7px;border-width:1px}
.staff-console:after{left:2px;right:2px;bottom:0;font-size:3px;letter-spacing:.05em}
.staff-gate{left:34px;right:auto;top:3px;width:31px;height:22px;border:2px solid #69787b;border-radius:2px;background:repeating-linear-gradient(90deg,transparent 0 6px,#9aa8aa 7px 9px),linear-gradient(#f2f5f5,#a5b1b3);transform-origin:right center;transform:perspective(90px) rotateY(0);transition:transform .65s ease;box-shadow:inset 0 0 0 1px #eef3f3}
.staff-gate:after{left:0;right:0;top:8px;width:auto;height:3px;border:0;background:#758589}
.staff-gate.open{transform:perspective(90px) rotateY(78deg)}
.unload-post .staff-console{left:auto;right:0}.unload-post .staff-gate{left:0;right:auto;transform-origin:left center}
.load-staff{left:3.2%}.unload-staff{left:90.3%}
.load-staff.inspecting{left:20%;top:104px}.unload-staff.inspecting{left:70%;top:104px}

/* Aesthetic guest-side mission crew at the entrance and exit. */
.platform-helper{position:absolute;bottom:12px;z-index:9;width:22px;height:29px;text-align:center;pointer-events:none}
.platform-helper i{position:relative;display:block;margin:auto;width:15px;height:23px;border:2px solid #0f4661;border-radius:4px 4px 2px 2px;background:#1976a8;box-shadow:inset 0 -6px 0 #173b4a55}
.platform-helper i:before{content:"";position:absolute;width:11px;height:11px;left:0;top:-10px;border:1px solid #78543e;border-radius:50%;background:#dca77f}
.platform-helper i:after{content:"";position:absolute;left:1px;right:1px;bottom:-7px;height:7px;border-radius:0 0 2px 2px;background:#25353b}
.load-helper{right:82px}.offload-helper{left:82px}

/* Four persistent guests wait immediately behind the two air gates. */
.guest-queue{left:calc(28.5% + 27px);right:auto;bottom:5px;width:104px;grid-template-columns:15px 15px;grid-template-rows:20px 20px;grid-auto-flow:column;column-gap:50px;row-gap:5px;z-index:8}
.guest-queue.board .queue-person:nth-child(-n+4){transform:translate(0,-66px)}
.entry-walkers{position:absolute;inset:0;z-index:7;overflow:hidden;pointer-events:none}
.entry-walker{position:absolute;left:calc(28.5% + 27px + var(--entry-lane));bottom:5px;opacity:0;animation:guestWalkIn 1.65s ease-in-out var(--entry-delay) both}
@keyframes guestWalkIn{0%{opacity:0;transform:translateX(315px) translateY(0)}12%{opacity:1}30%{transform:translateX(225px) translateY(-2px)}50%{transform:translateX(145px) translateY(1px)}72%{transform:translateX(72px) translateY(-2px)}100%{opacity:1;transform:translateX(0) translateY(0)}}

/* The closed restraint sits just ahead of each seated pair, not over their bodies. */
.seat-row .row-restraint{transform:translateX(-14px);z-index:5}
.seat-row.locked .row-restraint{transform:translateX(5px)}
.seat-row .rider{z-index:6}

/* Prevent compositing flashes while station vehicles are handed between slots. */
.vehicle-slot,.vehicle{backface-visibility:hidden;transform-style:preserve-3d}
.hold-slot{opacity:1!important}
.hold-slot:empty{opacity:0!important}

@media(max-width:650px){
  .top-status{height:auto}.fleet-status-tile{padding-right:68px!important}
  #menuOpen{right:5px;bottom:6px;width:58px;height:25px}
  .guest-queue{left:calc(28.5% + 18px);column-gap:42px}
  .entry-walker{left:calc(28.5% + 18px + var(--entry-lane))}
  .platform-helper{display:none}
}
