/* Cockpit / thumb-zone update; scoped to the racer. No global business UI rules. */
.harbour-racer .cockpit-frame{background:none;z-index:1}
.harbour-racer [data-windshield]{display:block;width:100%;height:65%;mask-image:linear-gradient(#000 90%,transparent);pointer-events:none}
.harbour-racer .wiper-tools{position:absolute;left:28px;top:194px;display:flex;flex-direction:column;gap:6px;z-index:5;max-width:260px}
.wiper-tools button{pointer-events:auto;padding:9px 14px;border:1px solid #668f9b;border-radius:10px;background:#0a2834df;color:#d5f9f5;cursor:pointer;font:12px inherit}
.wiper-tools button[aria-pressed=true]{border-color:#6ee4c4;background:#17483fec}.wiper-tools small{font-size:11px;color:#ffdb9f;background:#112c38e0;padding:7px 10px;border-radius:8px;line-height:1.5}
.harbour-racer [data-wiper-control][hidden],.harbour-racer [data-rain-warning][hidden],.harbour-racer .sensor-hud[hidden]{display:none!important}
.harbour-racer.mobile-controls-ready .harbour-touch{inset:0;z-index:8;display:none}
.harbour-racer.mobile-controls-ready .harbour-touch .touch-steer,.harbour-racer.mobile-controls-ready .harbour-touch .touch-pedals{display:contents}
.harbour-racer.mobile-controls-ready .harbour-touch button,.control-editor .editor-key{position:absolute;transform:translate(-50%,-50%);min-width:0;min-height:0;margin:0;padding:5px;border-radius:50%;border:1px solid #c2edeb9c;background:radial-gradient(circle at 34% 20%,#397687c9,#122c42db 80%);color:#e2ffff;box-shadow:inset 0 1px 0 #fff3,inset 0 0 22px #41bcd217,0 4px 15px #02122230;display:flex;align-items:center;justify-content:center;font:600 12px/1.2 system-ui;text-shadow:0 1px 3px #061724;touch-action:none;user-select:none;-webkit-user-select:none}
.harbour-racer.mobile-controls-ready .harbour-touch [data-control=left],.harbour-racer.mobile-controls-ready .harbour-touch [data-control=right]{font-size:25px;border-radius:28%;background:linear-gradient(145deg,#28546bcc,#142e49df)}
.harbour-racer.mobile-controls-ready .harbour-touch .touch-nitro{border-color:#80f2ee;color:#bbfff9;background:radial-gradient(circle at 35% 20%,#367686da,#114152ef)}
.harbour-racer.mobile-controls-ready .harbour-touch .touch-nitro:after{content:'+ 油门';position:absolute;bottom:16%;font-size:8px;letter-spacing:1px;color:#a0deda}
.harbour-racer.mobile-controls-ready .harbour-touch .touch-gas{background:radial-gradient(circle at 35% 20%,#3b8985df,#185454df);border-color:#96d5c6}
.harbour-racer.mobile-controls-ready .harbour-touch button.held{background:#96eadd;color:#042135;opacity:1!important;border-color:#fff;box-shadow:0 0 18px #66f8df55;scale:.97}
.harbour-racer .mobile-preferences{margin-top:26px;padding-top:22px;border-top:1px solid #38515c}.mobile-preferences h3{margin:4px 0 18px;font-size:22px;color:#e6faf8}.mobile-preferences .race-eyebrow{font-size:10px;color:#cbb187;letter-spacing:3px}.mobile-preferences output{float:right;color:#82e0d1}
.mobile-preferences .sensor-tools{display:flex;flex-wrap:wrap;gap:8px}.mobile-preferences button{padding:11px 13px;border:1px solid #4d7481;background:#143442;color:#c8efef;border-radius:10px;font:inherit;cursor:pointer}.mobile-preferences .layout-launch{width:100%;margin:12px 0;background:#214b52;border-color:#70b9b7}.mobile-preferences [data-sensor-status]{font-size:12px;line-height:1.7;color:#9db8c5}
.harbour-racer .control-editor{position:absolute;inset:0;z-index:40;background:linear-gradient(#071b29f5,#0b2535d9 60%,#071e2deb);overflow:hidden;touch-action:none;color:#d9f9f5}
.control-editor:before{content:'';position:absolute;inset:0;background-image:linear-gradient(#5ba4ad0c 1px,transparent 1px),linear-gradient(90deg,#5ba4ad0c 1px,transparent 1px);background-size:32px 32px;pointer-events:none}
.control-editor header{position:relative;z-index:2;display:flex;gap:16px;flex-wrap:wrap;align-items:center;justify-content:space-between;padding:18px 24px;background:#0b202bdc;border-bottom:1px solid #3b606d}.control-editor small{font-size:9px;letter-spacing:3px;color:#d4ba89}.control-editor h3{margin:6px 0;font-size:21px}.control-editor p{font-size:11px;margin:6px 0;color:#8cabb7}.control-editor label{display:flex;gap:10px;align-items:center;font-size:12px}.control-editor input{width:110px}.control-editor .editor-actions{display:flex;gap:8px}.control-editor header button,.control-editor select{border-radius:8px;border:1px solid #608591;background:#153742;color:#d9f9f5;padding:9px 12px;font:12px system-ui}.control-editor [data-layout-save]{background:#a5e6d7;color:#09373c;border-color:#a5e6d7}.control-editor .editor-road{position:absolute;top:44%;width:100%;text-align:center;font:12px system-ui;letter-spacing:2px;color:#567e91;pointer-events:none}.control-editor .editor-key.selected{outline:2px solid #c8f3a0;outline-offset:5px;color:#e3ffb7;z-index:3}
.harbour-racer .racer-settings>div{max-height:90%;overscroll-behavior:contain}
@media(pointer:coarse),(max-width:900px){
 .harbour-racer.mobile-controls-ready .harbour-touch:not([hidden]){display:block}
 .harbour-racer.mobile-controls-ready.race-active .hud-speed{bottom:6px;left:42%;right:auto;width:20%;text-align:center;pointer-events:none}.harbour-racer.mobile-controls-ready.race-active .hud-speed>b{font-size:30px;line-height:1}.harbour-racer.mobile-controls-ready.race-active .hud-speed>span{font-size:8px}.harbour-racer.mobile-controls-ready.race-active .hud-speed>small[data-car-state]{display:none}.harbour-racer.race-active .gear-display{font-size:9px;padding:4px;margin:3px 0}.harbour-racer.race-active .gear-display strong{font-size:12px}.harbour-racer.race-active .gear-display small{display:none}.harbour-racer.mobile-controls-ready.race-active .hud-speed .nitro-meter{margin:4px 0;height:4px}.harbour-racer.mobile-controls-ready.race-active .hud-speed>small{font-size:9px}
 .harbour-racer .hud-tools{right:12px;top:12px;gap:4px}.harbour-racer .hud-tools button{padding:7px;min-width:30px;font-size:10px}.harbour-racer .race-performance{top:54px;right:12px;padding:5px 7px;font-size:10px}.harbour-racer .race-performance button{font-size:9px;padding:4px}.harbour-racer .wiper-tools{top:126px;left:14px;max-width:215px}.harbour-racer .wiper-tools button{font-size:10px;width:fit-content}.harbour-racer .wiper-tools small{font-size:9px}.harbour-racer .harbour-map{left:12px;bottom:auto;top:180px;width:64px;height:64px;opacity:.7}.harbour-racer .hud-time{top:14px;left:14px}.harbour-racer .hud-time>b{font-size:30px}.harbour-racer .hud-time small{font-size:9px;letter-spacing:1px}.harbour-racer .hud-time>span{font-size:10px}.harbour-racer .hud-checkpoint{top:20px;left:39%;font-size:10px}.harbour-racer .hud-checkpoint b{font-size:22px}.harbour-racer .hud-technique{font-size:12px;bottom:33%}.harbour-racer .harbour-hints{display:none}
}
@media(max-width:600px){.control-editor header{padding:10px 12px;gap:8px}.control-editor h3{font-size:16px}.control-editor header p{max-width:220px}.control-editor .editor-actions{gap:5px}.control-editor header button{padding:8px;font-size:10px}.control-editor label{width:100%;justify-content:center}.harbour-racer .hud-checkpoint{top:108px;left:auto;right:12px;text-align:right}.harbour-racer .race-performance{top:82px}.harbour-racer .hud-tools{max-width:56%;flex-wrap:wrap;justify-content:flex-end}.harbour-racer .first-person .hud-speed{display:block}}
