*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;height:100%;overflow:hidden;background:#0b1a2e;font-family:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;color:#fff;user-select:none;-webkit-user-select:none;touch-action:none;overscroll-behavior:none}
#c{position:fixed;inset:0;width:100%;height:100%;display:block}
.hidden{display:none!important}
button{font:inherit;cursor:pointer;color:inherit}
svg{display:block}

/* ---------- HUD ---------- */
#hud{position:fixed;inset:0;pointer-events:none;--u:min(1vh,1vw);font-size:14px}
#hud button,#hud .ctl{pointer-events:auto}
#tl{position:absolute;left:max(12px,env(safe-area-inset-left));top:10px;display:flex;flex-direction:column;gap:8px}
#tl .row{display:flex;gap:8px}
.hb{width:46px;height:46px;border-radius:9px;border:2px solid rgba(255,255,255,.85);background:rgba(20,28,40,.38);display:grid;place-items:center;padding:0;backdrop-filter:blur(3px)}
.hb svg{width:26px;height:26px;fill:none;stroke:#fff;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.hb.on{background:#1a74d6;border-color:#8cc4ff}
.hb.sig.on.blink{background:#ff9f1a;border-color:#ffd18a}
#b-haz.on.blink{background:#e8323c;border-color:#ffb0b4}
#tr{position:absolute;right:max(12px,env(safe-area-inset-right));top:10px;display:flex;flex-direction:column;align-items:flex-end;gap:8px}
.pnl{background:rgba(20,28,40,.42);border:2px solid rgba(255,255,255,.85);border-radius:9px;padding:6px 12px;backdrop-filter:blur(3px)}
.pnl.top{display:flex;gap:12px;align-items:center}
.pnl.top i{width:1px;align-self:stretch;background:rgba(255,255,255,.5)}
.pnl small{display:block;font-size:11px;opacity:.85}
.pnl b{font-size:19px;font-variant-numeric:tabular-nums}
.pnl.top b.bad{color:#ff8a8a}
.pnl.ex{min-width:210px;max-width:min(320px,40vw)}
.pnl.ex b{display:block;font-size:14px;line-height:1.25}
#h-extimer{display:block;font-weight:bold;font-variant-numeric:tabular-nums;margin-top:2px}
#h-extimer.late{color:#ff8a8a}
#notes{position:absolute;left:50%;top:10px;transform:translateX(-50%);display:flex;flex-direction:column;gap:6px;width:min(460px,44vw)}
.note{display:flex;gap:10px;align-items:center;background:rgba(255,255,255,.88);color:#123;border-radius:9px;padding:6px 10px;box-shadow:0 4px 18px rgba(0,0,0,.25);animation:nin .25s ease}
.note .ic{flex:none;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-weight:bold;color:#fff;font-size:13px;background:#1440c8}
.note.p5 .ic{background:#f0a400}.note.p10 .ic,.note.p15 .ic,.note.p20 .ic,.note.p25 .ic{background:#f06a1a}.note.p50 .ic,.note.p100 .ic{background:#d21d2a}
.note b{display:block;font-size:12px;color:#c21}
.note.info b{color:#1440c8}
.note span{font-size:13px;line-height:1.25}
.note em{display:block;font-style:normal;font-size:12px;font-variant-numeric:tabular-nums;color:#456}
@keyframes nin{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
.mir{position:absolute;border:3px solid #fff;border-radius:6px;box-shadow:0 2px 12px rgba(0,0,0,.4)}
#alarm{position:absolute;inset:0;border:10px solid #e8323c;animation:al .5s steps(2) infinite;display:grid;place-items:center}
#alarm div{background:#e8323c;padding:10px 18px;border-radius:8px;font-weight:bold;font-size:20px;margin-top:-18vh}
@keyframes al{50%{border-color:transparent}}

#bl{position:absolute;left:max(14px,env(safe-area-inset-left));bottom:12px}
.ctl{touch-action:none}
#ctl-wheel{width:min(34vh,190px);height:min(34vh,190px)}
#wheel-svg{width:100%;height:100%;filter:drop-shadow(0 3px 8px rgba(0,0,0,.45))}
.joy-base{width:min(32vh,170px);height:min(32vh,170px);border-radius:50%;border:3px solid rgba(255,255,255,.85);background:rgba(20,28,40,.35);position:relative}
.joy-knob{position:absolute;left:50%;top:50%;width:42%;height:42%;margin:-21% 0 0 -21%;border-radius:50%;background:rgba(232,236,242,.92);box-shadow:0 3px 10px rgba(0,0,0,.4)}
#ctl-btn{display:flex;gap:10px}
.sb{width:min(15vh,84px);height:min(15vh,84px);border-radius:12px;border:3px solid rgba(255,255,255,.9);background:rgba(20,28,40,.38);font-size:44px;line-height:1;font-weight:bold}
.sb.on{background:#1a74d6}
#bc{position:absolute;left:50%;bottom:6px;transform:translateX(-50%);width:120px;text-align:center}
#speedo{width:120px;height:70px}
#speedo path{fill:none;stroke-width:9;stroke-linecap:round}
.arc-bg{stroke:rgba(20,28,40,.55)}.arc{stroke:#2a8cff;stroke-dasharray:157;stroke-dashoffset:157;stroke-linecap:butt}
#spd{position:absolute;left:0;right:0;bottom:16px;font-size:26px;font-variant-numeric:tabular-nums}
#bc small{position:absolute;left:0;right:0;bottom:2px;font-size:11px;opacity:.8}
#br{position:absolute;right:max(14px,env(safe-area-inset-right));bottom:12px;display:flex;align-items:flex-end;gap:10px}
#gears{display:flex;flex-direction:column;border:2px solid rgba(255,255,255,.85);border-radius:9px;overflow:hidden;background:rgba(20,28,40,.38)}
#gears button{width:52px;height:min(9vh,46px);border:0;background:none;font-size:22px;font-weight:bold}
#gears button.on{background:#1a74d6}
.pedal{border:3px solid rgba(255,255,255,.88);border-radius:10px;background:rgba(20,28,40,.38);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:0}
.pedal svg{width:34px;height:34px;fill:none;stroke:#fff;stroke-width:3.2;stroke-linecap:round;stroke-linejoin:round}
.pedal span{font-size:11px;letter-spacing:0;opacity:.85}
#p-brake{width:min(14vh,74px);height:min(26vh,130px)}
#p-gas{width:min(13vh,68px);height:min(38vh,190px)}
.pedal.on{background:#1a74d6}
#keys-hint{position:absolute;left:50%;bottom:82px;transform:translateX(-50%);font-size:12px;background:rgba(10,18,30,.45);padding:4px 10px;border-radius:6px;white-space:nowrap;opacity:.85}
body.touch #keys-hint{display:none}

/* ---------- ekranlar ---------- */
.screen{position:fixed;inset:0;display:grid;place-items:center;padding:16px;overflow:auto}
#start{background:radial-gradient(ellipse at 30% 20%,rgba(28,123,224,.55),transparent 60%),linear-gradient(160deg,#0b2f6e,#06172f 70%)}
.screen.dim{background:rgba(6,14,26,.55);backdrop-filter:blur(4px)}
.start-card{width:min(560px,100%);background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.18);border-radius:16px;padding:22px 24px;box-shadow:0 20px 60px rgba(0,0,0,.4)}
.brand{display:flex;align-items:center;gap:12px}
.brand img{height:48px;width:auto;border-radius:6px;background:#fff;padding:3px}
.brand .dots{width:46px;height:30px;background:radial-gradient(circle,#fff 2.2px,transparent 2.6px) 0 0/7px 7px;-webkit-mask:radial-gradient(ellipse,#000 64%,transparent 66%);mask:radial-gradient(ellipse,#000 64%,transparent 66%)}
.brand b{display:block;font-size:20px;letter-spacing:.04em}
.brand small{opacity:.75;font-size:12px}
.start-card h1{margin:16px 0 4px;font-size:clamp(26px,5vw,40px);letter-spacing:.02em}
.start-card h1 span{display:block;font-size:.45em;color:#f2c230;letter-spacing:.2em;text-transform:uppercase}
.lead{margin:0 0 14px;opacity:.85;font-size:14px;line-height:1.45}
#load .bar{height:8px;background:rgba(255,255,255,.15);border-radius:4px;overflow:hidden}
#load .bar i{display:block;height:100%;width:0;background:linear-gradient(90deg,#1c7be0,#f2c230);transition:width .2s}
#load small{display:block;margin-top:6px;opacity:.8}
#start-btns{display:flex;flex-direction:column;gap:9px}
.big{border:1px solid rgba(255,255,255,.35);background:rgba(255,255,255,.08);border-radius:10px;padding:13px 14px;font-size:17px;font-weight:600;text-align:left}
.big:hover{background:rgba(255,255,255,.14)}
.big.primary{background:#1c7be0;border-color:#1c7be0}
.small-row{display:flex;gap:8px;flex-wrap:wrap}
.small-row button{flex:1;border:1px solid rgba(255,255,255,.3);background:none;border-radius:8px;padding:9px;font-size:13px;min-width:120px}
.foot{display:flex;justify-content:space-between;margin-top:16px;font-size:12px;opacity:.75}
.foot a{color:#9cc8ff}
.menu-card,.res-card{width:min(640px,100%);max-height:calc(100vh - 32px);overflow:auto;background:rgba(240,243,247,.97);color:#16202c;border-radius:14px;padding:14px;box-shadow:0 20px 60px rgba(0,0,0,.45)}
.menu-top{display:flex;gap:8px;margin-bottom:10px}
.menu-top button,.res-btns button{flex:1;border:1px solid #c8d0da;background:#fff;border-radius:8px;padding:10px 6px;font-size:14px;font-weight:600}
.menu-top button:first-child,.res-btns button:first-child{background:#1c7be0;border-color:#1c7be0;color:#fff}
details{border-top:1px solid #d5dbe3}
summary{padding:12px 4px;font-weight:700;font-size:16px;cursor:pointer;list-style:none;display:flex;justify-content:space-between}
summary::after{content:'▾';opacity:.6}
details[open] summary::after{content:'▴'}
.ex-i{padding:8px 4px 10px;border-top:1px dashed #d5dbe3}
.ex-i h4{margin:0 0 4px;font-size:14px;display:flex;justify-content:space-between;gap:8px;align-items:center}
.ex-i h4 button{flex:none;border:0;background:#1c7be0;color:#fff;border-radius:6px;padding:4px 10px;font-size:12px}
.ex-i ul{margin:0;padding:0;list-style:none;font-size:12.5px;color:#4a5562}
.ex-i li{display:flex;gap:8px;padding:2px 0}.ex-i li b{flex:none;width:56px;color:#16202c}
.keys{width:100%;border-collapse:collapse;font-size:13px}
.keys td{padding:6px 4px;border-top:1px solid #e1e6ec}
.keys kbd{display:inline-block;min-width:26px;text-align:center;border:1px solid #b9c2cc;border-bottom-width:3px;border-radius:5px;padding:2px 6px;margin:1px;background:#fff;font-family:inherit;font-size:12px}
.set-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 4px;border-top:1px solid #e1e6ec;flex-wrap:wrap;font-size:14px}
.seg{display:flex;border:1px solid #c8d0da;border-radius:8px;overflow:hidden}
.seg button{border:0;background:#fff;padding:7px 11px;font-size:13px;color:#16202c}
.seg button.on{background:#1c7be0;color:#fff}
.res-card{text-align:center;max-width:520px}
.res-ic{width:68px;height:68px;margin:6px auto;border-radius:50%;border:4px solid #d21d2a;color:#d21d2a;font-size:36px;font-weight:bold;display:grid;place-items:center}
.res-ic.ok{border-color:#1ea446;color:#1ea446}
.res-card h2{margin:6px 0 10px;color:#d21d2a}
.res-card h2.ok{color:#1ea446}
#r-tab{margin:0 auto 8px;font-size:14px;border-collapse:collapse}
#r-tab td{padding:3px 10px;text-align:left}#r-tab td:last-child{text-align:right;font-weight:700}
#r-list{text-align:left;font-size:12.5px;color:#4a5562;max-height:180px;overflow:auto;margin:6px 0}
.res-btns{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
#toast{position:fixed;left:50%;bottom:28%;transform:translateX(-50%);background:rgba(10,18,30,.85);padding:9px 16px;border-radius:8px;font-size:14px;opacity:0;transition:opacity .25s;pointer-events:none;z-index:9}
#toast.on{opacity:1}
#rotate{position:fixed;inset:0;background:#0b2f6e;display:none;place-items:center;text-align:center;font-size:20px;z-index:20;padding:20px}
#rotate div{font-size:18px;line-height:1.6}
@media (orientation:portrait) and (max-width:820px){body.playing #rotate{display:grid}}
@media (max-height:430px){.hb{width:40px;height:40px}.hb svg{width:22px;height:22px}#tl .row,#tl{gap:6px}.pnl b{font-size:16px}.pnl.ex{min-width:170px}#notes{width:min(380px,40vw)}.note .ic{width:28px;height:28px}.note span{font-size:12px}}
