:root{color-scheme:dark;--bg:#151919;--panel:#1d2322;--line:#343c39;--ink:#f2f0e9;--muted:#909d96;--orange:#ff7049;--blue:#79d8ee;--mono:'Courier New',monospace}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,'Arial',sans-serif;font-size:14px}button,input,a{-webkit-tap-highlight-color:transparent}button,input{font:inherit}button,a,input{outline-offset:5px}button{cursor:pointer}button{color:inherit}button:disabled{opacity:.4;cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--orange)}button,a{touch-action:manipulation}button{transition:background .16s,transform .16s,border-color .16s}button:hover:not(:disabled){filter:brightness(1.12)}button:active:not(:disabled){transform:translateY(1px)}[hidden]{display:none!important}h1,h2,h3,p{margin:0}a{color:inherit;text-decoration:none}.topbar{height:88px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 4.8%;gap:30px}.brand{display:flex;align-items:center;font-weight:900;font-size:24px;letter-spacing:-1.2px;gap:5px}.brand-mark{background:var(--orange);color:var(--bg);width:36px;height:36px;display:grid;place-items:center;font-size:29px;font-style:italic;margin-right:8px;transform:skew(-7deg);border-radius:2px}.brand-light{font-weight:400}.brand-dot{font:12px var(--mono);align-self:flex-start;margin-top:6px}.topbar nav{height:100%;display:flex;align-items:center;gap:34px;font-size:11px;font-weight:700;letter-spacing:1.3px}.nav-active{height:100%;display:flex;align-items:center;border-bottom:2px solid var(--orange)}.nav-button{border:0;background:none;font-size:11px;font-weight:700;letter-spacing:1px;color:var(--muted)}.nav-button span{margin-left:15px}.server-badge{font:10px var(--mono);display:flex;gap:10px;align-items:center;letter-spacing:.5px}.status-dot{display:inline-block;flex:none;width:6px;height:6px;background:#a7c9a9;border-radius:50%;box-shadow:0 0 9px #8bc49d44}.version{color:var(--muted);margin-left:8px}main{max-width:1550px;margin:auto;padding:0 4.8%}.intro{display:flex;justify-content:space-between;align-items:center;padding:49px 0 35px}.eyebrow{font:10px var(--mono);font-weight:700;letter-spacing:1.5px;color:var(--muted)}.intro .eyebrow{display:flex;align-items:center;gap:9px}.intro .eyebrow span{height:6px;width:6px;background:var(--orange)}h1{font-size:clamp(33px,3.5vw,53px);letter-spacing:-2.5px;line-height:1.2;margin:15px 0 12px;font-weight:750}h1 em{font-family:Georgia,serif;font-weight:400;color:#d4d6bc}.intro p{color:var(--muted);font-size:13px}.season-stamp{display:flex;flex-direction:column;gap:10px;text-align:right}.season-stamp span{font:9px var(--mono);letter-spacing:1px;color:var(--muted)}.season-stamp strong{font:30px var(--mono);letter-spacing:-2px;color:#d2d6cc}.setup-grid{display:grid;grid-template-columns:minmax(0,1.62fr) minmax(330px,1fr);gap:24px}.circuit-panel{background:#202a25;border:1px solid #3a463e;border-radius:5px;overflow:hidden;position:relative;min-width:0}.panel-top{display:flex;justify-content:space-between;align-items:center;padding:21px 25px}.text-button{background:none;border:0;padding:6px 0;font-size:11px;font-weight:600}.text-button span{margin-left:17px}.track-title{display:flex;align-items:center;justify-content:space-between;padding:4px 27px;position:relative;z-index:1}.small-caps{font:9px var(--mono);letter-spacing:1.5px;color:#a6b8aa}.track-title h2{font-size:34px;letter-spacing:-1px;margin-top:8px}.track-number{font:56px var(--mono);font-weight:700;color:#465349;letter-spacing:-4px}.preview-wrap{position:relative;aspect-ratio:1.95;margin:-10px 6px -7px}.preview-wrap canvas{width:100%;height:100%;display:block}.preview-chip{position:absolute;bottom:21px;left:22px;border:1px solid #4a5b4c;background:#202a25d9;border-radius:3px;padding:8px;font:8px var(--mono);letter-spacing:.7px;display:flex;gap:7px;align-items:center}.north{position:absolute;right:24px;top:30px;color:#8b9f8d;font:10px var(--mono);text-align:center;line-height:1.8}.track-stats{display:flex;justify-content:space-between;gap:10px;margin:0 26px;padding:18px 0;border-top:1px solid #3d4a41}.track-stats div{display:flex;flex-direction:column;gap:8px}.track-stats span{font:8px var(--mono);letter-spacing:1px;color:#95a598}.track-stats strong{font-size:11px;font-weight:500}.track-pagination{display:flex;gap:6px;padding:0 26px 21px}.track-pagination button{flex:1;height:3px;border:0;padding:0;background:#465349;border-radius:2px;position:relative}.track-pagination button:before{content:'';position:absolute;inset:-7px 0}.track-pagination button.selected{background:var(--orange)}.race-setup{border:1px solid var(--line);border-radius:5px;padding:25px 26px;background:#1d2221}.race-setup>h2{font-size:29px;letter-spacing:-.9px;line-height:1.18;margin:15px 0 21px}.mode-switch{display:flex;padding:4px;background:#151a18;border:1px solid #343c37;border-radius:4px;gap:5px;margin-bottom:20px}.mode-switch button{flex:1;background:none;border:1px solid transparent;border-radius:3px;padding:10px 4px;font-weight:600;font-size:11px;white-space:nowrap;color:#929c94}.mode-switch button.selected{background:#353e35;border-color:#56614c;color:#ecefdd}.mode-switch small{font:8px var(--mono);margin-left:5px;opacity:.65}.driver-input{display:flex;align-items:center;gap:11px;padding:11px 0;border-bottom:1px solid var(--line)}.driver-number{font:11px var(--mono);padding:10px 9px;border-radius:3px;background:#ff704916}.orange{color:var(--orange)}.blue{color:var(--blue)}.driver-number.blue{background:#79d8ee12}.driver-input label{font:8px var(--mono);color:var(--muted);text-transform:uppercase;letter-spacing:.8px;flex:1;min-width:0}.driver-input input{display:block;width:100%;border:0;padding:6px 0 0;background:transparent;font:12px Arial;color:var(--ink)}.key-hint{font:9px var(--mono);white-space:nowrap;color:#b0b8b0;letter-spacing:1px}.lap-setting{display:flex;justify-content:space-between;align-items:center;margin:22px 0}.lap-setting label{font-size:12px}.lap-setting small{display:block;font-size:10px;color:var(--muted);margin-top:6px}.stepper{display:flex;height:35px;border:1px solid #3e4741;border-radius:3px;overflow:hidden}.stepper button{width:32px;border:0;background:#29302b;color:#b7c0b5}.stepper input{width:40px;border:0;text-align:center;font:14px var(--mono);background:#1a201c;color:var(--ink);appearance:textfield;-moz-appearance:textfield}.stepper input::-webkit-inner-spin-button{appearance:none}.primary-button{width:100%;min-height:47px;border:1px solid #ff8f65;background:var(--orange);color:#201a16;padding:15px 18px;font-size:11px;font-weight:800;letter-spacing:1px;border-radius:3px;display:flex;justify-content:center;gap:14px;align-items:center}.primary-button span{margin-left:auto;font-size:18px;line-height:14px}.setup-footnote{text-align:center;font-size:9px;color:var(--muted);margin-top:14px}.features{display:grid;grid-template-columns:repeat(3,1fr);padding:28px 0 30px;gap:24px}.features article{display:flex;gap:16px;align-items:flex-start}.feature-icon{border:1px solid #39453a;background:#202820;width:37px;height:37px;display:grid;place-items:center;border-radius:3px;font-size:22px;color:#b5c3a4;flex:none}.features h3{font-size:12px;font-weight:600;margin:1px 0 8px}.features p{font-size:10px;line-height:1.8;color:var(--muted)}footer{border-top:1px solid var(--line);display:flex;justify-content:space-between;padding:20px 0;font:8px var(--mono);letter-spacing:.9px;color:#7e8c81}footer b{margin:0 7px;color:#566154}.field-label{display:block;color:var(--muted);font:9px var(--mono);margin:10px 0}.field{width:100%;background:#151b17;border:1px solid #424c41;border-radius:3px;padding:11px 13px;color:var(--ink);font-size:12px}.online-note{font-size:10px;color:var(--muted);margin:15px 0;display:flex;gap:9px;align-items:center}#join-row{margin-top:17px}#join-row>span{font-size:10px;color:var(--muted)}.join-fields{display:flex;gap:9px;margin-top:10px}.join-fields input{max-width:55%;letter-spacing:2px;text-transform:uppercase}.secondary-button{border:1px solid #4b564b;border-radius:3px;background:#29332b;padding:11px 17px;font-size:11px;white-space:nowrap}.muted{color:var(--muted);font-size:12px;line-height:1.7}dialog{background:#1e2722;border:1px solid #4e5b4d;border-radius:6px;padding:28px;color:var(--ink);width:min(880px,calc(100% - 30px));max-height:90dvh;box-shadow:0 35px 120px #0009}dialog::backdrop{background:#0b100dde;backdrop-filter:blur(8px)}.dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:25px}.dialog-heading h2{font-size:27px;letter-spacing:-.7px;margin-top:11px}.close-dialog{font-size:28px;color:#b8c1b4;border:1px solid #4b5548;width:35px;height:35px;border-radius:3px;background:none;flex:none}.track-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.track-card{background:#263129;border:1px solid #44503f;border-radius:4px;text-align:left;padding:12px;position:relative}.track-card.selected{border-color:var(--orange);background:#31382b}.track-card canvas{width:100%;aspect-ratio:1.6;display:block}.track-card>span{font:9px var(--mono);color:var(--muted)}.track-card strong{display:block;font-size:14px;margin:7px 0}.track-card small{color:var(--muted);font-size:9px}.control-cards{display:grid;grid-template-columns:1fr 1fr;gap:15px}.control-cards article{border:1px solid var(--line);padding:18px;background:#17201b;border-radius:3px}.control-cards span{font:10px var(--mono)}.control-cards strong{display:block;font:23px var(--mono);margin:17px 0}.control-cards p{font-size:12px;line-height:1.9;color:#a9b5a9}.help-content ol{padding-left:20px;font-size:12px;line-height:1.8;color:#a9b5a9}.help-content li{padding:5px 0 5px 5px}.help-content strong{color:var(--ink)}.toast{position:fixed;left:50%;bottom:30px;transform:translateX(-50%);background:#eeeade;color:#282c24;box-shadow:0 5px 30px #0008;border-radius:4px;padding:14px 22px;z-index:100;font-size:12px;max-width:90vw;text-align:center}.lobby-code{display:flex;justify-content:space-between;align-items:center;padding:20px;background:#141e17;border:1px dashed #53624c}.lobby-code span{font:9px var(--mono);color:var(--muted)}.lobby-code strong{display:block;font:38px var(--mono);letter-spacing:6px;color:var(--orange);margin-top:7px}#lobby-details{font-size:12px;margin:20px 0;color:#b9c5b5}.lobby-players{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;max-height:32vh;overflow:auto}.lobby-player{padding:13px;background:#29332b;border:1px solid #3f4b3c;border-radius:3px;font-size:12px;display:flex;gap:9px;align-items:center}.lobby-player>span{min-width:0;overflow:hidden;text-overflow:ellipsis}.lobby-player small{font:9px var(--mono);color:#9ca98f;margin-left:auto}#lobby-note{margin:18px 0}.compact-dialog{width:390px;text-align:center;padding:35px}.compact-dialog h2{font-size:34px;margin:17px 0}.compact-dialog p{color:var(--muted);font-size:12px;line-height:1.6;margin:15px 0 25px}.compact-dialog button{margin-top:12px}.compact-dialog .secondary-button{width:100%}#game{padding:24px 3.5% 16px;max-width:1800px;margin:auto}.race-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.race-top h2{font-size:22px;margin-top:8px;letter-spacing:-.5px}.race-clock{text-align:center}.race-clock>span{display:block;font:8px var(--mono);color:var(--muted);letter-spacing:1px;margin-bottom:7px}.race-clock>strong{font:26px var(--mono);letter-spacing:-1px}.race-actions{display:flex;gap:9px}.icon-button{border:1px solid #465142;border-radius:3px;background:#252e26;padding:9px 13px;font:10px var(--mono)}kbd{font:9px var(--mono);color:var(--muted);margin-left:7px}.race-layout{display:grid;grid-template-columns:minmax(0,1fr) 205px;gap:18px}.track-stage{position:relative;background:#2c3a2c;border:1px solid #53604c;border-radius:5px;overflow:hidden;aspect-ratio:1600/1100;max-height:calc(100dvh - 350px);min-height:300px;display:flex;justify-content:center}#race-canvas{width:100%;height:100%;display:block;object-fit:contain}.track-watermark{position:absolute;left:18px;bottom:17px;font-size:13px;font-weight:800;color:#d6ddc670;letter-spacing:1px;pointer-events:none}.track-watermark span{display:block;font:6px var(--mono);letter-spacing:2px;margin-top:4px}.race-sidebar{background:#1c251e;border:1px solid #384635;border-radius:4px;padding:17px 14px;display:flex;flex-direction:column;min-height:0}.race-sidebar>.eyebrow{font-size:8px;letter-spacing:.7px}#leaderboard{margin-top:16px;overflow:auto;max-height:310px;flex:1}.leader-row{display:flex;align-items:center;gap:8px;font-size:10px;border-bottom:1px solid #33412f;padding:10px 0}.leader-row .position{font:12px var(--mono);color:#829176;width:15px}.car-dot{width:7px;height:12px;border-radius:2px;flex:none}.leader-row .leader-name{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;flex:1}.leader-row small{font:9px var(--mono);color:#a3b498}.leader-row.you{color:#fff0d9}.pit-guide{border-top:1px solid #3c4936;padding-top:16px;margin-top:18px}.pit-guide>span{font:10px var(--mono);color:#cbcb8a}.pit-guide p{font-size:10px;line-height:1.65;color:#97a48b;margin:8px 0}.pit-guide small{font:7px var(--mono);color:#77856c}.connection{font:7px var(--mono);letter-spacing:.4px;display:flex;align-items:center;gap:7px;padding-top:17px;margin-top:auto;color:#a4b795}.driver-hud{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:15px}.hud-card{background:#202820;border:1px solid #3d4937;border-radius:4px;display:flex;gap:20px;align-items:center;padding:13px 18px;border-left:3px solid var(--car-color)}.hud-person{width:125px;min-width:70px}.hud-person>span{font:8px var(--mono);color:var(--car-color);letter-spacing:.8px}.hud-person strong{display:block;font-size:12px;margin-top:7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hud-speed{font:27px var(--mono);min-width:70px}.hud-speed small{font:7px var(--mono);color:var(--muted);display:block;margin-top:2px}.hud-lap{font:18px var(--mono);white-space:nowrap}.hud-lap small{display:block;font:7px var(--mono);color:var(--muted);margin-bottom:7px}.hud-meters{flex:1;min-width:85px}.meter-label{display:flex;justify-content:space-between;align-items:center;font:7px var(--mono);color:#a8b49c;margin:3px 0 5px}.meter{height:3px;background:#414b39;margin-bottom:8px}.meter>i{display:block;height:100%;background:#c6d08a}.meter.health>i{background:#8da794}.meter>i.low{background:#ff7049}.hud-state{font:8px var(--mono);color:#b5c293;min-height:10px;white-space:nowrap}.race-bottom{display:flex;justify-content:space-between;gap:15px;margin-top:13px;color:#8d9b84;font:8px var(--mono)}.countdown{position:absolute;inset:0;display:grid;place-content:center;text-align:center;font-size:105px;font-weight:900;letter-spacing:-6px;color:#f3efdc;text-shadow:0 5px 30px #0007;pointer-events:none}.countdown small{display:block;font:10px var(--mono);letter-spacing:3px;margin-top:9px}.race-banner{position:absolute;top:18px;left:50%;transform:translateX(-50%);padding:10px 18px;background:#162019ed;border:1px solid #657350;border-radius:3px;font:11px var(--mono);text-align:center;max-width:90%;white-space:nowrap}.finish-icon{font-size:60px;color:var(--orange)}#results-table{margin:24px 0;max-height:50vh;overflow:auto}.result-row{display:grid;grid-template-columns:40px 1fr 100px 100px;gap:10px;padding:15px 8px;border-bottom:1px solid #3a4735;align-items:center;font-size:12px}.result-row:first-child{background:#34402c}.result-row .place{font:22px var(--mono);color:var(--orange)}.result-row .result-time{font:12px var(--mono)}.result-row small{color:#a9b29e;font:9px var(--mono);display:block;margin-top:6px}.result-actions{display:flex;gap:12px}.result-actions .primary-button{flex:1}.touch-controls{display:none;justify-content:space-between;flex-wrap:wrap;gap:10px;margin-top:15px;padding-bottom:calc(env(safe-area-inset-bottom, 0px) + 18px);user-select:none}.touch-controls>div{display:flex;gap:10px}#touch-controls button{min-width:78px;width:auto;height:78px;padding-inline:14px;border:1px solid #677654;border-radius:5px;background:#36452c;color:#e2ebce;font-size:23px;touch-action:none}.touch-controls button.pressed{background:var(--orange);color:#171b16}@media(min-width:1500px){.preview-wrap{aspect-ratio:2}.race-setup{padding:30px}.intro{padding-top:55px;padding-bottom:40px}.track-title h2{font-size:41px}.features{padding:34px 0}.features p{font-size:12px}.features h3{font-size:14px}}@media(max-width:1050px){.topbar{padding:0 4%;height:73px}.setup-grid{gap:17px;grid-template-columns:minmax(0,1.4fr) minmax(305px,1fr)}main{padding:0 4%}.race-setup{padding:20px}.intro{padding:34px 0 28px}.preview-wrap{aspect-ratio:1.5;margin-top:0}.track-stats{margin:0 18px}.track-stats strong{font-size:10px}.race-layout{grid-template-columns:minmax(0,1fr) 175px;gap:12px}.hud-card{gap:12px;padding:12px}.hud-person{width:100px}.hud-speed{font-size:23px;min-width:52px}.hud-lap{font-size:15px}.hud-meters{min-width:65px}.race-sidebar{padding:13px 10px}.server-badge{font-size:9px}.season-stamp{display:none}}@media(max-width:760px){.topbar{height:66px;padding:0 20px;gap:15px}.brand{font-size:20px}.brand-mark{width:30px;height:30px;font-size:25px}.topbar nav{gap:15px}.topbar .nav-active{display:none}.server-badge{display:none}.intro{padding:30px 0 25px}h1{font-size:38px;letter-spacing:-1.8px}.intro p{font-size:11px;line-height:1.6}.intro .eyebrow{font-size:8px}.setup-grid{grid-template-columns:1fr}.preview-wrap{aspect-ratio:1.75}.race-setup>h2 br{display:none}.race-setup>h2{font-size:25px}.features{grid-template-columns:1fr;gap:23px;padding:27px 0}.features p br{display:none}.features p{font-size:11px}.features h3{font-size:13px}footer{gap:12px;flex-wrap:wrap;font-size:7px}footer>span:nth-child(2){display:none}.track-grid{grid-template-columns:repeat(2,1fr)}dialog{padding:20px}.dialog-heading h2{font-size:23px}.race-layout{grid-template-columns:1fr}.track-stage{min-height:0;max-height:none;aspect-ratio:1600/1100}.race-sidebar{display:none}.race-top h2{font-size:17px}.race-top .eyebrow{font-size:7px;letter-spacing:.5px}.race-clock>strong{font-size:18px}.race-clock>span{font-size:6px}.race-actions{gap:5px}.race-actions button{padding:10px 8px;font-size:9px}.race-actions kbd{display:none}#game{padding:17px 3%}.driver-hud{gap:8px;grid-template-columns:1fr}.hud-card{gap:17px;padding:10px 12px}.hud-person{flex:1;max-width:125px}.hud-meters{flex:1}.race-bottom{font-size:7px;line-height:1.7;flex-direction:column;gap:3px}.control-cards{grid-template-columns:1fr}.lobby-players{grid-template-columns:repeat(2,1fr)}.lobby-code{padding:15px;gap:10px}.lobby-code strong{font-size:29px}.lobby-code button{font-size:9px;padding:10px}.result-row{grid-template-columns:25px 1fr 75px 75px;gap:6px;font-size:10px;padding:13px 0}.result-row .result-time{font-size:10px}.result-actions{flex-direction:column}.countdown{font-size:70px}.race-banner{font-size:8px;white-space:normal;width:max-content}.track-watermark{font-size:8px;left:10px;bottom:10px}.track-watermark span{font-size:5px}}@media(pointer:coarse){body.in-race{padding-bottom:calc(190px + env(safe-area-inset-bottom,0px))}body.in-race .touch-controls{position:fixed;left:0;right:0;bottom:0;z-index:30;display:flex;align-items:flex-end;background:#151919f2;border-top:1px solid var(--line);box-shadow:0 -12px 24px #0006}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}

.touch-controls .touch-handbrake{font:700 9px var(--mono)}
@media(max-width:380px){.touch-controls>div{gap:8px}}

/* --- Playora: wspólny motyw (na bazie Collective Conflict) --- */
:root{--bg:#111;--panel:#1b1b1b;--line:#444;--ink:#eee;--muted:#aaa}
.playora-header{min-height:56px}
.topbar{border-bottom-color:var(--line)}
.circuit-panel{background:#1b1b1b;border-color:#444}
.race-setup{background:#1b1b1b;border-color:var(--line)}
.mode-switch{background:#151515;border-color:#4a4a4a}
.field{background:#151515;border-color:#4a4a4a}
.secondary-button{background:#252525;border-color:#4a4a4a}
.primary-button{background:var(--playora-accent);border-color:#6ee79b;color:#07140c}
.intro .eyebrow .dot,.intro .eyebrow .eyebrow-text{height:auto;width:auto;background:none}
.intro .eyebrow .dot{height:6px;width:6px;background:var(--playora-accent)}
dialog{background:#1b1b1b;border-color:var(--playora-border)}
.toast{background:#252525;color:#eee}
.lobby-code{background:#151515;border-color:#4a4a4a}
.track-pagination button{background:#4a4a4a}
.track-pagination button.selected{background:var(--playora-accent)}

/* Telefon/tablet w poziomie: tylko tor na całym ekranie. Pasek wyścigu, HUD i pad są przeźroczyste i
  nachodzą na planszę (wspólne minima padu w shared/ui/mobile-controls.css zostają w mocy).
  Wyjście z wyścigu zostaje w oknie pauzy, więc nagłówki mogą zniknąć bezpowrotnie. */
@media (orientation: landscape) and (pointer: coarse) {
 body.in-race { margin: 0; padding-bottom: 0; overflow: hidden; overscroll-behavior: none; }
 body.in-race .playora-header, body.in-race .topbar, body.in-race .race-sidebar,
 body.in-race .race-bottom, body.in-race .track-watermark { display: none; }
 body.in-race #game { position: fixed; inset: 0; z-index: 1; margin: 0; padding: 0; max-width: none; }
 body.in-race .race-layout { position: absolute; inset: 0; display: block; }
 body.in-race .track-stage { position: absolute; inset: 0; border: 0; border-radius: 0; aspect-ratio: auto; min-height: 0; max-height: none; }
 body.in-race .race-top { position: absolute; z-index: 3; top: 0; left: 0; right: 0; margin: 0; padding: 6px 14px 14px; background: linear-gradient(180deg, #151919e6, #15191900); }
 body.in-race .race-top .eyebrow { font-size: 7px; letter-spacing: .5px; }
 body.in-race .race-top h2 { font-size: 14px; margin: 2px 0 0; }
 body.in-race .race-clock > span { font-size: 6px; margin-bottom: 2px; }
 body.in-race .race-clock > strong { font-size: 17px; }
 body.in-race .driver-hud { position: absolute; z-index: 3; top: 58px; left: 12px; right: 12px; margin: 0; gap: 10px; }
 body.in-race .hud-card { gap: 10px; padding: 6px 10px; background: #202820b3; border-color: #3d493780; }
 body.in-race .hud-state { display: none; }
 body.in-race #touch-controls { padding-inline: 18px; }
 /* Panel nie może mieć własnego paska: pad nachodzi na tor, więc tło z @media(pointer:coarse) musi odpuścić. */
 body.in-race .touch-controls { background: transparent; border-top: 0; box-shadow: none; }
 body.in-race #touch-controls button { background: #36452cb3; }
 body.in-race #touch-controls button.pressed { background: var(--orange); }
}

/* Portret w trakcie wyścigu: koniec przewijania przez marketing — tor i pad widać bez ruchu strony. */
@media (orientation: portrait) and (pointer: coarse) {
 body.in-race .topbar, body.in-race .race-bottom { display: none; }
}
