/* One clear instrument language, with controls suited to each model. */
#room{--instrument-accent:#e84760;--instrument-ink:#203744}
.train-mode{--instrument-accent:#f2c862!important}.flight-mode{--instrument-accent:#75cfe1!important}
.speed-card,.mission-card{background:linear-gradient(145deg,#264653f2,#142b38f2);border-color:#d9e5e64d;box-shadow:0 8px 24px #17334124;border-radius:17px}
.speed-card{position:relative;align-items:center;min-width:112px;overflow:hidden;padding:12px 16px 14px}
.speed-card:after{content:'';position:absolute;left:0;bottom:0;height:4px;width:calc(var(--speed-ratio,0)*100%);background:var(--instrument-accent);transition:width .12s}
.speed-card #modeLabel{font-size:9px;letter-spacing:1.1px;color:#c5d7db;font-weight:750}.speed-card #speed{font-size:43px;font-weight:800;letter-spacing:-1.8px;line-height:1.12}.speed-card .speed-unit{font-size:11px;font-weight:650;color:#e6eff0;letter-spacing:.4px}.speed-card .instrument-detail{display:block;margin-top:8px;font-size:8px;letter-spacing:.55px;color:var(--instrument-accent);font-weight:750}
.mission-card{min-height:114px}.mission-card #objective{font-weight:750;letter-spacing:.7px;font-size:9px;color:#e4eced}.mission-card #timer{font-size:27px;margin:3px 0}.mission-card #feedback{font-size:10px;line-height:1.5}.mission-progress i{background:var(--instrument-accent)}
.map-panel{background:#fbfaf3f2;border:1px solid #fff;box-shadow:0 8px 24px #1733411c}.map-panel>span{font-size:9px;letter-spacing:1.3px;color:#345560}.route-hint{border-radius:12px;background:#fcfaf0f2}.route-hint>b{color:#c72c43}
.drive-controls{align-items:flex-end;bottom:calc(var(--dock,94px) + 22px + env(safe-area-inset-bottom))}
.drive-controls .wheel-cluster,.drive-controls .flight-stick-cluster{position:relative;display:flex;flex-direction:column;align-items:center;gap:5px;pointer-events:none}
.steering-wheel{width:158px;height:158px;touch-action:none;user-select:none;pointer-events:auto;cursor:grab;border-radius:50%;filter:drop-shadow(0 7px 9px #10273155)}
.steering-wheel.active{cursor:grabbing}.steering-wheel svg{display:block;width:100%;height:100%;transition:transform .08s linear}.steering-wheel.active svg{transition:none}.steering-wheel:focus-visible,.flight-stick:focus-visible{outline:3px solid #e84760;outline-offset:4px}
.control-caption,.stick-top{font-size:9px;font-weight:850;letter-spacing:1.5px;color:#e9f2f1;background:#203e4be8;padding:4px 9px;border-radius:5px;pointer-events:none}
.drive-controls .car-reverse{left:0;bottom:calc(100% + 7px);width:44px;height:40px;min-height:40px;box-shadow:0 4px 12px #1c364333;background:#203d4beb;color:#fff;border:1px solid #cad7db66}
.drive-controls .pedals{display:flex;flex-direction:row;align-items:flex-end;gap:12px;padding-bottom:9px;pointer-events:none}
.drive-controls .pedals button{background:transparent;border:0;border-radius:14px;box-shadow:none;transform:none;padding:0;display:flex;flex-direction:column;gap:5px;min-height:0;width:76px;height:auto;pointer-events:auto;color:#e7ecec}
.drive-controls .pedals svg{display:block;width:100%;height:92px;overflow:visible;filter:drop-shadow(0 5px 5px #162e4050)}
.drive-controls .pedals rect{fill:#415a66;stroke:#c8d6db;stroke-width:2}.drive-controls .pedals path{fill:none;stroke:#1c3340;stroke-width:4;stroke-linecap:round}
.drive-controls .pedals .gas-pedal{width:61px}.drive-controls .pedals .gas-pedal svg{height:120px}.drive-controls .gas-pedal rect{fill:#df3750;stroke:#ffadba}.drive-controls .gas-pedal path{stroke:#971d33}.drive-controls .pedals button small{background:#203e4be8;border-radius:5px;padding:4px 7px;font-size:9px;font-weight:800;letter-spacing:1px;color:#f9f9ed}
.drive-controls .pedals button.pressed{background:transparent;transform:translateY(4px)}.drive-controls .pedals button.pressed rect{fill:#bedbce;stroke:#faffed}.drive-controls .pedals .gas-pedal.pressed rect{fill:#ff7384;stroke:#ffe0e3}
.flight-stick{position:relative;width:132px;height:132px;border-radius:50%;background:radial-gradient(circle,#254858 0 17%,#718f99 18% 19%,#1d3948 20% 38%,#496776 39% 40%,#263d4b 41%);border:3px solid #a6bac0;box-shadow:inset 0 3px 10px #06162199,0 7px 15px #15324155;pointer-events:auto;touch-action:none;cursor:move;user-select:none}
.stick-cross{position:absolute;left:50%;top:10%;height:80%;width:1px;background:#b0c4cd60}.stick-cross:after{content:'';position:absolute;top:50%;left:-51px;width:102px;height:1px;background:#b0c4cd60}.stick-knob{position:absolute;left:calc(50% - 20px);top:calc(50% - 23px);width:40px;height:46px;border-radius:18px 18px 13px 13px;background:linear-gradient(135deg,#d2e0e3,#728f9c 40%,#294655);border:2px solid #e1eded;box-shadow:0 5px 5px #09202e88;pointer-events:none;transition:transform .1s}.flight-stick.active .stick-knob{transition:none}.stick-knob:before{content:'';position:absolute;top:6px;left:7px;width:22px;height:5px;border-radius:3px;background:#cb354c}.stick-left,.stick-right{position:absolute;top:calc(50% - 5px);font-size:10px;font-weight:800;color:#c7d9df;pointer-events:none}.stick-left{left:7px}.stick-right{right:7px}
.flight-mode .lever{bottom:calc(var(--dock,94px) + 24px + env(safe-area-inset-bottom));width:105px}.flight-mode .lever-body{height:144px}.flight-mode .lever-knob{background:linear-gradient(#c5e6ee,#6aa3b8 45%,#366277);border-color:#c6e6ef;border-bottom-color:#2b5064}.flight-mode .lever-knob:before{background:#e5f7ff;box-shadow:0 4px 0 #326176}
.station-board{top:222px;width:238px}.station-board #passengerCount{display:block;font-size:10px;color:#d3e1d9;margin-top:8px}.station-board #stationDistance{line-height:1.5}.rail-controls #doors{background:#244e5c}.rail-controls #doors:not(:disabled){border-color:#a5d9c1}.train-mode .speed-card .instrument-detail{font-size:8px}.train-mode .speed-card{min-height:118px;width:112px}
@media(max-width:800px){.speed-card{min-width:90px;padding:9px 12px 12px}.speed-card #speed{font-size:34px}.speed-card #modeLabel{font-size:8px}.speed-card .instrument-detail{font-size:7px;margin-top:5px}.mission-card{min-height:100px}.mission-card #timer{font-size:24px}.mission-card #feedback{font-size:9px}.map-panel>span{font-size:7px}.station-board{top:187px;left:12px;width:180px}.station-board #passengerCount{font-size:9px}.steering-wheel{width:138px;height:138px}.drive-controls .pedals button{width:66px}.drive-controls .pedals svg{height:78px}.drive-controls .pedals .gas-pedal{width:53px}.drive-controls .pedals .gas-pedal svg{height:106px}.train-mode .speed-card{width:88px;min-width:0;min-height:102px}.flight-mode .lever{width:96px;bottom:calc(var(--dock,94px) + 22px + env(safe-area-inset-bottom))}.flight-mode .lever-body{height:130px}}
@media(max-width:480px){.game-hud{flex-direction:column;gap:6px}.speed-card{width:97px}.mission-card{max-width:145px;min-height:0}.mission-card #objective{font-size:8px}.mission-card #timer{font-size:22px;margin:1px 0}.mission-card #feedback{font-size:8px}.speed-card #speed{font-size:34px}.map-panel{width:112px}.drive-controls{left:12px;right:12px}.steering-wheel{width:130px;height:130px}.control-caption,.stick-top{font-size:8px}.drive-controls .pedals{gap:9px}.drive-controls .pedals button{width:62px}.drive-controls .pedals .gas-pedal{width:49px}.drive-controls .pedals .gas-pedal svg{height:102px}.drive-controls .pedals button small{font-size:8px}.flight-stick{width:120px;height:120px}.stick-cross:after{left:-46px;width:92px}.train-mode .station-board{top:164px;width:175px}.train-mode .mission-card{max-width:176px}.train-mode .speed-card #speed{font-size:31px}.train-mode .speed-card #modeLabel{font-size:7px}.train-mode .speed-card .instrument-detail{font-size:7px}.train-mode .game-status{bottom:calc(var(--dock,110px) + 238px);max-width:215px}.game-status{bottom:calc(var(--dock,110px) + 190px);font-size:11px}}
@media(max-height:560px) and (orientation:landscape){.game-hud{top:55px;flex-direction:row}.speed-card{min-width:90px;padding:6px 10px 9px}.speed-card #speed{font-size:29px}.speed-card .instrument-detail{margin-top:3px;font-size:7px}.speed-card #modeLabel{font-size:7px}.mission-card{min-height:91px;max-width:165px;padding:7px 10px}.mission-card #timer{font-size:23px}.mission-card #feedback{font-size:9px}.drive-controls{bottom:calc(var(--dock,60px) + 14px + env(safe-area-inset-bottom))}.steering-wheel{width:112px;height:112px}.drive-controls .car-reverse{width:38px;height:34px;min-height:34px;left:calc(100% + 9px);bottom:0}.drive-controls .pedals svg{height:67px}.drive-controls .pedals .gas-pedal svg{height:92px}.drive-controls .pedals button{width:58px}.drive-controls .pedals .gas-pedal{width:48px}.drive-controls .pedals{padding-bottom:0}.flight-stick{width:106px;height:106px}.stick-cross:after{left:-41px;width:82px}.flight-mode .lever{bottom:calc(var(--dock,60px) + 13px + env(safe-area-inset-bottom));width:92px}.flight-mode .lever-body{height:106px}.flight-mode .map-panel{right:124px}.flight-mode .route-hint{right:124px}.station-board,.train-mode .station-board{top:155px;width:205px;padding:8px 12px}.station-board strong{font-size:17px;margin:2px 0 4px}.station-board #stationDistance{font-size:10px}.station-board #passengerCount{font-size:9px;margin-top:5px}.station-progress{margin-top:6px}.train-mode .speed-card{width:105px;min-height:101px}.train-mode .game-status{bottom:calc(var(--dock,60px) + 140px);max-width:220px}.game-status{bottom:calc(var(--dock,60px) + 142px);max-width:210px}.control-caption,.stick-top{font-size:7px;padding:3px 7px}.train-mode .mission-card{min-height:0}.room-top .brand small{display:none}}
@media(prefers-reduced-motion:reduce){.steering-wheel svg,.stick-knob,.speed-card:after{transition:none}}

.renderer-note{top:auto!important;bottom:1px!important;left:50%!important;transform:translateX(-50%)!important;font-size:8px!important;line-height:11px;padding:0 5px!important;max-width:95%!important;width:max-content;z-index:1;background:#fffaf0cc}
@media(max-height:560px) and (orientation:landscape){.car-mode .route-hint{top:55px;right:145px;width:135px;max-width:135px}.drive-controls .car-reverse{width:44px;height:44px;min-height:44px}}

.room-bottom:has(.renderer-note:not([hidden])){flex-wrap:wrap;row-gap:5px}.room-bottom .renderer-note{position:static!important;transform:none!important;flex-basis:100%;width:100%;max-width:none!important;margin:0;font-size:8px!important;line-height:10px;background:transparent;color:#5d747b;padding:0!important}
