/* V1 crew interlocks, character detail and queue refinements. */

/* Eight fixed status cells, including the exact Single Rider head wait. */
.top-status{grid-template-columns:1.35fr repeat(7,1fr)}

/* Small faces remain readable at simulator scale without becoming cartoon-heavy. */
.person:before{content:none!important;display:none!important}
.person>.person-face{display:block;position:absolute;left:2px;top:-8px;z-index:8;width:10px;height:10px;border:1px solid #78543e;border-radius:50%;background:var(--skin,#dca77f);box-shadow:0 1px 1px #26383c44;overflow:visible}
.rider.person>.person-face{left:2px;top:-10px;width:11px;height:11px}
.staff i.person>.person-face{left:1px;top:-11px;width:12px;height:12px}
.platform-helper i.person>.person-face{left:0;top:-10px;width:11px;height:11px}
.unload-walker.person>.person-face{left:2px;top:-8px;width:10px;height:10px}
.person-face:before{content:"";position:absolute;left:2px;top:4px;z-index:4;width:1.5px;height:1.5px;border-radius:50%;background:#1d282b;box-shadow:4px 0 0 #1d282b}
.person-face:after{content:"";position:absolute;left:3px;top:7px;z-index:4;width:4px;height:2px;border-bottom:1px solid #633b35;border-radius:0 0 50% 50%}
.face-neutral .person-face:after{top:8px;height:0;border-radius:0}
.face-upset .person-face:after{top:8px;border-top:1px solid #633b35;border-bottom:0;border-radius:50% 50% 0 0}
.person-face>em{position:absolute;z-index:3;display:block;background:var(--hair,#3b251b);pointer-events:none}
.hair-short .person-face>em{left:0;right:0;top:-1px;height:4px;border-radius:60% 60% 30% 20%}
.hair-swept .person-face>em{left:-1px;top:-2px;width:10px;height:5px;border-radius:70% 35% 55% 15%;transform:rotate(-8deg)}
.hair-swept .person-face>em:after{content:"";position:absolute;right:-1px;top:2px;width:3px;height:5px;border-radius:0 70% 60% 0;background:inherit}
.hair-bob .person-face>em{left:-1px;right:-1px;top:-2px;height:7px;border-radius:60% 60% 35% 35%;box-shadow:-1px 3px 0 var(--hair),1px 3px 0 var(--hair)}
.hair-bun .person-face>em{left:0;right:0;top:-1px;height:4px;border-radius:60% 60% 25% 25%}
.hair-bun .person-face>em:after{content:"";position:absolute;right:0;top:-4px;width:5px;height:5px;border-radius:50%;background:inherit}
.hair-curls .person-face>em{left:0;top:-2px;width:4px;height:4px;border-radius:50%;box-shadow:3px -1px 0 var(--hair),6px 0 0 var(--hair),-1px 3px 0 var(--hair),7px 3px 0 var(--hair)}

/* Proof lamps are dark during the RFID check and illuminate only on completion. */
.car-lock-light.scanning{background:#26383d!important;opacity:.32!important;box-shadow:none!important;animation:none!important;transform:none!important}
.load-staff.inspecting.check-front i,.load-staff.inspecting.check-back i{animation:none!important;filter:none!important;box-shadow:none!important}
.load-staff.restraint-fault-signal:after{content:"";position:absolute;left:26px;top:0;width:5px;height:21px;border:1px solid #734a38;border-radius:5px;background:linear-gradient(#1976a8 0 45%,var(--skin,#dca77f) 47%);transform:rotate(-42deg);transform-origin:bottom;box-shadow:0 0 5px #f1b54b88;animation:crewFaultArm .8s ease-in-out infinite alternate}
@keyframes crewFaultArm{to{transform:rotate(-31deg)}}

/* Speaker, crew gate and panel now form one compact protected operating point. */
.station-speaker{left:8.7%}
.load-post{left:11.15%}
.load-staff{left:14.1%}
.load-staff.gate-entry{left:13.25%;top:54px}
.load-staff.gate-entry.through-gate{left:13.25%;top:102px}

/* Single Rider uses the same metal doorway language as the main entrance. */
.single-rider-line{left:12px;bottom:1px;width:130px;height:54px;padding:28px 8px 4px;border:5px solid #87979a;border-bottom:0;border-radius:0;background:linear-gradient(90deg,#dfe8e8 0 7%,#425459 8% 48%,#293b40 49% 92%,#dfe8e8 93%);box-shadow:0 0 0 2px #5c6c6f,0 0 10px #69d7e755;overflow:hidden}
.single-rider-line:before{left:50%;top:0;bottom:0;width:0;border-left:2px solid #91a1a4;background:none}
.single-rider-line:after{content:"";position:absolute;left:6px;right:6px;top:23px;height:3px;border:0;background:linear-gradient(90deg,#82e4ef,#3c9eae,#82e4ef);box-shadow:0 0 6px #63d9e8}
.single-rider-line>span{display:none!important}
.single-rider-queue-visual{position:relative;z-index:3;height:21px;padding:0;gap:4px;overflow:hidden}
.single-rider-queue-visual .queue-person{z-index:4}

/* The smoke is deliberately darker than the light rays so it reads on the pale station. */
.departure-light-show:before,.departure-light-show:after{background:radial-gradient(ellipse at 25% 55%,#294b56e6 0 14%,#456b75c9 28%,transparent 70%),radial-gradient(ellipse at 62% 42%,#1f3c48d9 0 12%,#597985a8 31%,transparent 68%);filter:blur(5px);mix-blend-mode:multiply}
.departure-light-show.active:before,.departure-light-show.active:after{animation:tunnelSmokeDark 2.9s ease-out both}
.departure-light-show.active:after{animation-delay:.32s}
@keyframes tunnelSmokeDark{0%{opacity:0;transform:translateX(-18px) scale(.62)}20%{opacity:.78}68%{opacity:.5}100%{opacity:0;transform:translateX(68px) translateY(-9px) scale(1.5)}}

@media(max-width:1100px){.top-status{grid-template-columns:repeat(4,1fr)}.station-speaker{left:9.5%}.load-post{left:12.2%}}
@media(max-width:650px){.top-status{grid-template-columns:1fr 1fr}.single-rider-line{width:105px}.load-post{left:10%}}
