*{box-sizing:border-box}html,body{margin:0;height:100%;background:#0b0d10;color:#e8e8e8;font-family:system-ui,Arial,sans-serif;user-select:none;touch-action:manipulation}
main{display:grid;grid-template-columns:1fr 1.2fr 1fr;gap:24px;height:100vh;padding:24px;align-items:center}
.speed{font-size:180px;font-weight:800;line-height:1}.speed small{font-size:40px;color:#888;margin-left:10px}
.gearbox .lbl{color:#888;font-size:24px}#gear{font-size:140px;font-weight:800;color:#ff5a36;line-height:1}
.status{font-size:24px;color:#aaa;line-height:1.6;margin-top:16px}.status b{color:#fff}
.mid{text-align:center}#gauge{width:100%;max-width:600px;aspect-ratio:1}.rpm{font-size:40px;font-weight:700}
.right{display:flex;flex-direction:column;gap:16px;font-size:26px}
.big{font-size:40px;padding:26px;border:0;border-radius:18px;color:#fff;font-weight:700}
.go{background:#1f9d4c}.stop{background:#a8322a}.gas{background:#c96a10}.gas.on{background:#ff9a2e}
select,input[type=range]{width:100%;font-size:26px;padding:10px;background:#1b1f25;color:#fff;border:1px solid #333;border-radius:10px;height:56px}
.chk{display:flex;align-items:center;gap:14px}.chk input{width:38px;height:38px}
label{display:block}.hidden{display:none!important}
.warn{position:fixed;top:0;left:0;right:0;background:#a8322a;color:#fff;font-size:26px;padding:14px 24px;z-index:9;text-align:center}
@media (max-width:900px){main{grid-template-columns:1fr;height:auto}.speed{font-size:100px}#gear{font-size:80px}}
.pedals{display:flex;gap:16px}.pedals .big{flex:1;touch-action:none}.rem{background:#b3261e}.rem.on{background:#ff4b3e}
