/* V1 reliability, operator-reference and fleet-maintenance refinements. */

/* Pneumatic leaves close slightly more slowly than they open. */
.gate-arm{transition-duration:2.2s;transition-timing-function:cubic-bezier(.35,.02,.2,1)}
.air-gates.open .gate-arm{transition-duration:1.65s}

/* Crew movement reads as walking instead of darting between positions. */
.staff{transition:left 1.4s ease,top 1.4s ease,transform .38s ease}

/* Five-second local indication for the automatic load spiel. */
.loading-speech-bubble{position:absolute;left:-24px;bottom:41px;z-index:30;width:92px;padding:7px 8px;border:2px solid #31535d;border-radius:10px;background:#f8ffff;color:#17414b;font-size:7px;font-weight:bold;letter-spacing:.09em;text-align:center;box-shadow:0 4px 11px #173b4560,0 0 9px #7ce7f488;opacity:0;transform:translateY(5px) scale(.94);transition:opacity .18s ease,transform .18s ease;pointer-events:none}
.loading-speech-bubble:after{content:"";position:absolute;left:36px;bottom:-8px;width:12px;height:12px;border-right:2px solid #31535d;border-bottom:2px solid #31535d;background:#f8ffff;transform:rotate(45deg)}
.loading-speech-bubble.show{opacity:1;transform:none}

/* Contextual guest-service actions. */
.guest-assist-alert{grid-template-columns:minmax(0,1fr) minmax(150px,210px)}
.guest-assist-actions{display:grid;grid-template-columns:1fr;gap:7px}
.guest-assist-actions button+button{background:#397887;color:#f4ffff;box-shadow:inset 0 0 0 3px #74bdca,0 3px 0 #111819}
.guest-assist-actions button[hidden]{display:none}

.car-maintenance-alert{display:none;grid-template-columns:minmax(0,1fr) 175px;gap:10px;align-items:center;margin:10px 0 2px;padding:10px 11px;border:1px solid #c33e45;background:linear-gradient(135deg,#381d20,#191d1e);color:#fff1f1;box-shadow:inset 4px 0 #ef414a,0 0 15px #ef414a45}
.car-maintenance-alert.show{display:grid;animation:assistAlertIn .25s ease-out both}
.car-maintenance-alert small,.car-maintenance-alert b,.car-maintenance-alert span{display:block}
.car-maintenance-alert small{color:#ff7c82;font-size:7px;letter-spacing:.14em}
.car-maintenance-alert b{margin-top:2px;font-size:10px;letter-spacing:.05em}
.car-maintenance-alert span{margin-top:2px;color:#d8cacc;font-size:8px}
.car-maintenance-alert button{min-height:45px;border:2px solid #160d0e;background:#d4434a;color:#fff;font-size:8px;font-weight:bold;letter-spacing:.06em;box-shadow:inset 0 0 0 3px #f1757b,0 3px 0 #111819;cursor:pointer}
.car-maintenance-alert button:disabled{filter:grayscale(1);opacity:.45;cursor:not-allowed}
.fleet-maintenance-alert{display:none;margin:0 0 10px;padding:9px 10px;border:1px solid #d14a50;background:#3b2022;color:#ffb1b5;font-size:8px;font-weight:bold;letter-spacing:.07em;animation:maintenancePulse .85s ease-in-out infinite alternate}
.fleet-maintenance-alert.show{display:block}
@keyframes maintenancePulse{from{box-shadow:inset 3px 0 #ef414a}to{box-shadow:inset 3px 0 #ef414a,0 0 13px #ef414a88}}

/* Proof lamps sit together on the rear panel, clear of both sliding doors. */
.car-lock-light.light-row-one,.car-lock-light.light-row-two{left:auto;bottom:auto;right:8px}
.car-lock-light.light-row-one{top:29px}
.car-lock-light.light-row-two{top:47px}
.vehicle.maintenance-required{border-color:#ef6a70;box-shadow:0 10px 12px #000a,0 0 14px #ef414a}
.vehicle.maintenance-required:before{content:"SERVICE";position:absolute;right:4px;top:5px;z-index:14;padding:2px 3px;border-radius:2px;background:#a5282e;color:#fff;font-size:5px;font-weight:bold;letter-spacing:.05em}

.car-status.maintenance{border-left-color:#e13e45;background:#fff0f1;color:#87242a}
.auto-row kbd{margin-left:5px;padding:1px 4px;border:1px solid #68777a;border-radius:2px;background:#30393b;color:#d8e1df;font:6px Consolas,monospace}
.keyboard-help-open{width:100%;height:40px;margin-top:14px;border:1px solid #397985;background:linear-gradient(#4696a5,#2e7280);color:#fff;font-size:8px;font-weight:bold;letter-spacing:.08em;cursor:pointer;box-shadow:inset 0 0 0 2px #6bb7c4}

/* Nested command reference and stored-car selector. */
.dialog-layer{position:fixed;inset:0;z-index:140;visibility:hidden;opacity:0;transition:opacity .18s ease,visibility .18s ease}
.dialog-layer.open{visibility:visible;opacity:1}
.dialog-backdrop{position:absolute;inset:0;background:#061013b8;backdrop-filter:blur(3px)}
.command-dialog,.car-picker-dialog{position:absolute;left:50%;top:50%;width:min(610px,92vw);max-height:86vh;overflow:auto;transform:translate(-50%,-46%) scale(.98);padding:18px;border:2px solid #72888d;border-radius:5px;background:#f4f9f9;color:#213438;box-shadow:0 18px 55px #0009;transition:transform .2s ease}
.dialog-layer.open .command-dialog,.dialog-layer.open .car-picker-dialog{transform:translate(-50%,-50%) scale(1)}
.dialog-title{display:flex;align-items:center;justify-content:space-between;gap:15px;padding-bottom:13px;border-bottom:2px solid #9bafb2}
.dialog-title small,.dialog-title b{display:block}.dialog-title small{color:#348193;font-size:7px;letter-spacing:.14em}.dialog-title b{font-size:15px;letter-spacing:.06em}
.dialog-title button{min-height:34px;padding:0 12px;border:1px solid #5a6d71;background:#303c3f;color:#fff;font-size:8px;font-weight:bold;cursor:pointer}
.command-list{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:14px}
.command-list span{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:38px;padding:8px 10px;border:1px solid #c2d0d2;background:#fff;font-size:9px}
.command-list kbd{flex:0 0 auto;min-width:74px;padding:5px 7px;border:1px solid #51656a;border-radius:2px;background:#253337;color:#f3ffff;font:8px Consolas,monospace;text-align:center}
.car-picker-dialog p{margin:13px 0;color:#617579;font-size:9px}
.stored-car-choices{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}
.stored-car-choices button{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:54px;padding:10px 12px;border:2px solid #3f6971;background:linear-gradient(#faffff,#dce9eb);color:#17373e;cursor:pointer;box-shadow:inset 0 0 0 2px #fff,0 3px 0 #829396}
.stored-car-choices button:hover,.stored-car-choices button:focus{border-color:#2a8797;background:#e5faff;outline:2px solid #71cedd}
.stored-car-choices b{font-size:12px}.stored-car-choices span{font-size:7px;color:#617579}

/* A show-feature fault is degraded operation, not a vehicle stop. */
body.scene-fault #systemBadge{color:#ffc34e;border-color:#9b7425}
body.scene-fault #rideState{color:#9a6813}

@media(max-width:650px){.loading-speech-bubble{display:none}.guest-assist-alert,.car-maintenance-alert{grid-template-columns:1fr}.command-list,.stored-car-choices{grid-template-columns:1fr}.car-lock-light.light-row-one,.car-lock-light.light-row-two{right:6px}}
