/* All styling is scoped to the maintenance experience; no WMS input resets. */
.driver-strip{display:flex;gap:16px;align-items:center;flex-wrap:wrap;margin:0 0 16px;font-size:12px;color:#bdd9e1}
.driver-strip>span{margin-right:auto;color:#e2bc8a}.driver-strip button{border:1px solid #648c95;color:#bceef0;background:#143844;padding:8px 16px;border-radius:8px}
.inspect-panel{position:relative;margin-bottom:16px;border:1px solid #46798580;border-radius:12px;overflow:hidden;background:#091722}.inspect-panel canvas{width:100%;height:260px;display:block;touch-action:none}.inspect-panel span{position:absolute;bottom:10px;left:18px;pointer-events:none;color:#b5d8de;font-size:11px;letter-spacing:1px}
.map-picker{display:grid;grid-template-columns:1fr 1.6fr;gap:20px;margin:18px 0 0;border:1px solid #407d8555;padding:14px;background:#13303b;border-radius:8px}.map-picker p{font-size:11px;margin:0;color:#a8c5ce}.map-picker label,.board-filters label{font-size:11px;color:#a2beca;display:grid;gap:5px}
.map-picker select,.board-filters select{background:#0c2531;color:#e0f3ed;border:1px solid #4b7684;padding:9px;border-radius:6px;width:100%}
.leaderboard-overlay{z-index:7}.leaderboard-overlay>div{max-width:900px;width:100%;max-height:100%;overflow:auto}.board-filters{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;text-align:left;margin:15px 0}.leaderboard-row{display:flex;justify-content:space-between;gap:18px;padding:12px;border-bottom:1px solid #47717a66;text-align:left}.leaderboard-row b{color:#dec393;font-variant-numeric:tabular-nums}
.maintenance-3d main.racer-account{max-width:650px;margin:40px auto;padding:30px;background:#112936;border:1px solid #3d6675;border-radius:18px}.racer-account label{display:grid;gap:8px;margin:15px 0}.racer-account input{padding:13px;background:#081e2a;color:#e1eeee;border:1px solid #547889;border-radius:8px;font:inherit}.racer-account a.harbour-primary{display:inline-block;text-decoration:none;color:#14232b}
@media(max-width:700px){.inspect-panel canvas{height:200px}.map-picker{grid-template-columns:1fr}.board-filters{grid-template-columns:1fr 1fr}.driver-strip{gap:10px;font-size:10px}.hud-speed small[data-car-state]{max-width:165px;margin-left:auto}.leaderboard-overlay>div{padding:18px!important}}
.maintenance-3d {
  margin: 0;
  background: #08141e;
  color: #e8f3ef;
  font:
    15px/1.5 system-ui,
    -apple-system,
    "Segoe UI",
    sans-serif;
}
.maintenance-3d * {
  box-sizing: border-box;
}
.maintenance-3d [hidden] {
  display: none !important;
}
.maintenance-3d a {
  color: inherit;
}
.maintenance-3d button,
.maintenance-3d select {
  font: inherit;
}
.maintenance-3d button {
  cursor: pointer;
}
.maintenance-3d :focus-visible {
  outline: 3px solid #e6b16d;
  outline-offset: 4px;
}
.harbour-header {
  padding: 18px max(24px, 4vw);
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid #80bbca26;
  gap: 24px;
  background: #0b1c27;
}
.harbour-brand {
  display: flex;
  align-items: center;
  gap: 16px;
  text-decoration: none;
  letter-spacing: 2px;
}
.harbour-brand img {
  width: 99px;
  height: 49px;
  object-fit: contain;
  background: white;
  border-radius: 6px;
  padding: 4px;
}
.harbour-brand b {
  font-size: 17px;
}
.harbour-brand small {
  display: block;
  color: #8baab2;
  font-size: 9px;
  letter-spacing: 2.6px;
}
.harbour-status {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 12px;
  color: #d4b281;
}
.harbour-status i {
  width: 6px;
  height: 6px;
  background: #eac184;
  border-radius: 50%;
  box-shadow: 0 0 16px #ffc482;
  animation: status-pulse 3s infinite;
}
.harbour-admin {
  font-size: 12px;
  text-decoration: none;
  color: #88a9b5 !important;
  border: 1px solid #304955;
  padding: 9px 15px;
  border-radius: 30px;
}
.harbour-notice {
  max-width: 1512px;
  margin: auto;
  padding: 29px 4vw 25px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 25px;
}
.harbour-notice h1 {
  font-size: 23px;
  letter-spacing: -0.7px;
  margin: 0 0 6px;
}
.harbour-notice p {
  color: #8eabb7;
  font-size: 12px;
  margin: 0;
}
.harbour-notice .notice-tag {
  color: #b9d4d8;
  border: 1px solid #375561;
  padding: 7px 15px;
  white-space: nowrap;
  border-radius: 20px;
  font-size: 11px;
}
.harbour-restored {
  max-width: 1370px;
  margin: 14px auto;
  padding: 14px 20px;
  background: #103f39;
  border: 1px solid #2d8170;
  border-radius: 8px;
}
.harbour-restored a {
  float: right;
}
.maintenance-3d main {
  max-width: 1512px;
  margin: auto;
  padding: 0 4vw 36px;
}
.harbour-racer {
  position: relative;
  height: min(800px, 78vw);
  min-height: 640px;
  background: #132834;
  border: 1px solid #42556355;
  border-radius: 17px;
  overflow: hidden;
  isolation: isolate;
  box-shadow: 0 28px 85px #0006;
  color: #e8f3ef;
}
.harbour-canvas {
  width: 100%;
  height: 100%;
  display: block;
  outline: 0;
}
.harbour-vignette {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(
    180deg,
    #07121b40,
    transparent 35%,
    transparent 70%,
    #05131966
  );
  z-index: 1;
}
.harbour-launch {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse at 75% 42%, #29546166, transparent 52%),
    repeating-linear-gradient(90deg, transparent 0 69px, #46637512 70px),
    linear-gradient(135deg, #152935, #0a1824);
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  padding: 8%;
  z-index: 4;
}
.race-eyebrow {
  font-size: 10px;
  letter-spacing: 3px;
  color: #cbb08a;
  margin: 0 0 18px;
}
.harbour-launch h2 {
  font-size: clamp(40px, 5vw, 72px);
  font-weight: 550;
  letter-spacing: -3px;
  line-height: 1.18;
  margin: 0 0 22px;
}
.harbour-launch em {
  font-style: normal;
  color: #acd4db;
}
.harbour-launch > p:not(.race-eyebrow) {
  color: #8eaeb9;
  line-height: 2;
  font-size: 13px;
}
.harbour-launch > small {
  font-size: 10px;
  color: #83a2ad;
  margin-top: 15px;
}
.harbour-primary {
  border: 0;
  border-radius: 8px;
  padding: 15px 24px;
  background: #dbb37e;
  color: #14232b;
  font-weight: 750;
  font-size: 13px;
  box-shadow: 0 4px 20px #dcac751b;
  transition:
    transform 0.2s,
    background 0.2s;
}
.harbour-primary:hover {
  background: #f0c891;
  transform: translateY(-2px);
}
.harbour-primary span {
  margin-left: 40px;
}
.harbour-launch .harbour-primary {
  margin-top: 20px;
}
.launch-orbit {
  position: absolute;
  width: 360px;
  height: 360px;
  right: 9%;
  top: 50%;
  transform: translateY(-50%);
  display: grid;
  place-items: center;
  border: 1px solid #c4ac7d44;
  border-radius: 50%;
  box-shadow:
    inset 0 0 120px #91d6e915,
    0 0 110px #55a2b11a;
}
.launch-orbit i {
  position: absolute;
  inset: 25px;
  border: 1px dashed #8bb4bd55;
  border-radius: 50%;
  animation: harbour-orbit 35s linear infinite;
}
.launch-orbit i:nth-child(2) {
  inset: -35px;
  border-style: solid;
  transform: rotateX(60deg);
  animation-duration: 55s;
}
.launch-orbit span {
  font-size: 100px;
  font-weight: 200;
  letter-spacing: -8px;
  color: #bccecba0;
  text-shadow: 0 0 60px #adf0ed;
}
.harbour-garage {
  position: absolute;
  inset: 24px;
  background: linear-gradient(140deg, #0a1b26ef, #142d38ed);
  border: 1px solid #6c8b9455;
  border-radius: 12px;
  padding: 29px;
  z-index: 5;
  overflow: auto;
  backdrop-filter: blur(12px);
}
.garage-top {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.garage-top h2 {
  font-size: 27px;
  font-weight: 550;
  margin: 0 0 24px;
  letter-spacing: -1px;
}
.garage-top .race-eyebrow {
  margin-bottom: 6px;
}
.garage-wallet {
  text-align: right;
  padding-bottom: 20px;
}
.garage-wallet small {
  display: block;
  color: #8eaab2;
  font-size: 10px;
}
.garage-wallet b {
  font-size: 24px;
  font-weight: 500;
  color: #dbb987;
  font-variant-numeric: tabular-nums;
}
.car-options {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
}
.car-card {
  position: relative;
  border: 1px solid #44607177;
  border-radius: 9px;
  background: #18313e80;
  color: #dceceb;
  padding: 17px;
  text-align: left;
  transition:
    border-color 0.25s,
    box-shadow 0.25s;
  overflow: hidden;
}
.car-card.selected {
  border-color: #83ccd0;
  box-shadow:
    inset 0 0 30px #62d6dd16,
    0 0 16px #6acfd712;
}
.car-card.selected::after {
  content: "✓ SELECTED";
  position: absolute;
  top: 12px;
  right: 12px;
  color: #9fe3df;
  font-size: 9px;
  letter-spacing: 1px;
}
.car-card h3 {
  font-size: 17px;
  font-weight: 550;
  margin: 10px 0 3px;
}
.car-card small {
  color: #89a8b6;
  font-size: 10px;
}
.car-card .car-spec {
  font-size: 10px;
  color: #94b4bd;
  margin-top: 10px;
}
.car-preview {
  height: 103px;
  width: 100%;
  object-fit: contain;
}
.car-card .car-cost {
  float: right;
  color: #d5b588;
  font-size: 11px;
}
.garage-bottom {
  display: grid;
  grid-template-columns: 1.25fr 1fr;
  gap: 26px;
  margin-top: 25px;
}
.upgrade-panel h3 {
  font-size: 13px;
  font-weight: 500;
  margin: 0 0 12px;
}
.upgrade-panel h3 small {
  font-size: 10px;
  font-weight: 400;
  color: #7c9aa6;
  margin-left: 12px;
}
.upgrade-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}
.upgrade-grid button {
  background: #193640;
  color: #abc6cb;
  text-align: left;
  border: 1px solid #42637077;
  padding: 11px 13px;
  border-radius: 6px;
  font-size: 11px;
}
.upgrade-grid button small {
  display: block;
  color: #ccb188;
  font-size: 10px;
  margin-top: 5px;
}
.upgrade-grid button:disabled {
  opacity: 0.4;
  cursor: default;
}
.start-panel label {
  display: block;
  font-size: 10px;
  color: #829fab;
}
.start-panel select {
  width: 100%;
  margin-top: 5px;
  padding: 9px;
  background: #112834;
  color: #c9dddf;
  border: 1px solid #43657480;
  border-radius: 6px;
  font-size: 11px;
}
.garage-settings {
  display: flex;
  align-items: center;
  gap: 20px;
  margin: 10px 0;
}
.garage-settings label {
  flex: 1;
}
.garage-settings input {
  width: 100%;
  accent-color: #dcb47e;
  margin-top: 14px;
}
.start-panel .harbour-primary {
  width: 100%;
  padding: 13px;
}
.garage-footnote {
  font-size: 10px;
  color: #8aa3ae;
  margin: 20px 0 0;
}
.harbour-hud {
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
}
.hud-time,
.hud-checkpoint {
  position: absolute;
  top: 26px;
  left: 30px;
  text-shadow: 0 2px 10px #0009;
}
.hud-time small,
.hud-checkpoint small {
  display: block;
  color: #d2dce0;
  font-size: 10px;
  letter-spacing: 2px;
}
.hud-time b {
  display: block;
  font-size: 37px;
  line-height: 1.5;
  font-weight: 500;
  font-variant-numeric: tabular-nums;
  letter-spacing: -1px;
}
.hud-time span,
.hud-checkpoint span {
  font-size: 10px;
  color: #cfdae0;
}
.hud-checkpoint {
  left: 260px;
  top: 27px;
}
.hud-checkpoint b {
  font-size: 22px;
  display: block;
  line-height: 2.5;
}
.hud-tools {
  position: absolute;
  right: 25px;
  top: 26px;
  display: flex;
  gap: 8px;
  pointer-events: auto;
}
.hud-tools button {
  background: #0a23368c;
  border: 1px solid #aac6ce66;
  border-radius: 7px;
  color: #e6f6f6;
  width: 40px;
  height: 37px;
}
.harbour-map {
  position: absolute;
  left: 25px;
  bottom: 60px;
  width: 145px;
  height: 145px;
  background: #07162388;
  border-radius: 14px;
  border: 1px solid #bcdbdf33;
}
.hud-speed {
  position: absolute;
  right: 30px;
  bottom: 50px;
  text-align: right;
  text-shadow: 0 3px 15px #000a;
  min-width: 190px;
}
.hud-speed > b {
  font-weight: 500;
  font-size: 77px;
  line-height: 1;
  letter-spacing: -4px;
  font-variant-numeric: tabular-nums;
}
.hud-speed > span {
  font-size: 11px;
  letter-spacing: 2px;
  margin-left: 10px;
}
.hud-speed small {
  display: block;
  font-size: 10px;
  margin-top: 5px;
  color: #cce3e9;
}
.nitro-meter {
  width: 200px;
  height: 5px;
  margin: 14px 0 8px auto;
  background: #113349;
  border-radius: 5px;
  overflow: hidden;
}
.nitro-meter i {
  display: block;
  width: 45%;
  height: 100%;
  background: linear-gradient(90deg, #60aeb6, #b6f9ee);
  box-shadow: 0 0 10px #66defd;
}
.hud-drift {
  position: absolute;
  left: 50%;
  bottom: 90px;
  transform: translateX(-50%);
  font-size: 23px;
  letter-spacing: 2px;
  color: #eff2cc;
  text-shadow: 0 0 20px #e1b56e;
}
.hud-countdown {
  position: absolute;
  left: 50%;
  top: 36%;
  transform: translateX(-50%);
  font-size: 95px;
  color: #ecdbc1;
  font-weight: 600;
  text-shadow: 0 5px 25px #0007;
}
.harbour-overlay {
  position: absolute;
  inset: 0;
  background: #061520b5;
  backdrop-filter: blur(6px);
  display: grid;
  place-items: center;
  z-index: 6;
  text-align: center;
  padding: 25px;
}
.harbour-overlay > div {
  max-width: 600px;
  padding: 45px;
  background: #122c39ed;
  border: 1px solid #64818c66;
  border-radius: 16px;
}
.harbour-overlay h2 {
  font-size: 32px;
  font-weight: 500;
  margin: 0 0 17px;
}
.harbour-overlay p:not(.race-eyebrow) {
  font-size: 12px;
  color: #a7bfca;
}
.overlay-actions {
  display: flex;
  gap: 10px;
  justify-content: center;
  margin-top: 25px;
}
.overlay-actions > button:not(.harbour-primary) {
  background: #29424c;
  border: 1px solid #6a859066;
  border-radius: 8px;
  color: #c9dddd;
  padding: 13px 20px;
  font-size: 12px;
}
.result-time {
  font-size: 54px;
  font-weight: 450;
  font-variant-numeric: tabular-nums;
  color: #dbbb8a;
}
.harbour-toast {
  position: absolute;
  left: 50%;
  top: 130px;
  transform: translateX(-50%);
  background: #102835ec;
  border: 1px solid #a7d0d26b;
  color: #d0eeee;
  padding: 10px 24px;
  border-radius: 30px;
  z-index: 8;
  font-size: 12px;
  max-width: 85%;
  text-align: center;
}
.harbour-touch {
  position: absolute;
  inset: auto 16px 26px;
  display: none;
  align-items: flex-end;
  justify-content: space-between;
  z-index: 3;
  pointer-events: none;
}
.harbour-touch button {
  pointer-events: auto;
  touch-action: none;
  user-select: none;
  -webkit-user-select: none;
  background: #102b4099;
  border: 1px solid #d1eeee77;
  border-radius: 12px;
  color: #e1f7f5;
  height: 55px;
  min-width: 56px;
  font-size: 12px;
  box-shadow: inset 0 0 20px #8bc9ca11;
}
.touch-steer,
.touch-pedals {
  display: flex;
  gap: 8px;
  align-items: flex-end;
}
.harbour-touch .touch-gas {
  height: 82px;
  background: #34838e88;
}
.harbour-touch .touch-nitro {
  border-color: #80eff6;
  color: #b5fcff;
}
.harbour-touch button.held {
  background: #83c7cbbb;
  color: #042135;
}
.harbour-hints {
  position: absolute;
  bottom: 12px;
  left: 24px;
  right: 24px;
  text-align: center;
  letter-spacing: 2px;
  font-size: 8px;
  color: #92b0bb88;
  pointer-events: none;
  z-index: 2;
}
.harbour-hints span {
  padding: 0 10px;
}
.harbour-fault {
  position: absolute;
  inset: 20%;
  z-index: 9;
  border: 1px solid #ebbd8266;
  border-radius: 12px;
  padding: 30px;
  background: #122c3bf5;
  text-align: center;
}
.harbour-fault p {
  font-size: 12px;
  color: #b4cdd6;
}
.harbour-fault button {
  display: block;
  margin: 20px auto;
  background: #c5ae86;
  padding: 10px 20px;
  border: 0;
  border-radius: 6px;
}
.harbour-footer {
  padding: 0 4vw 30px;
  max-width: 1512px;
  margin: auto;
  display: flex;
  justify-content: space-between;
  font-size: 10px;
  color: #7797a4;
  gap: 25px;
}
.harbour-footer a {
  color: #b2c6cc;
  text-decoration: none;
}
@keyframes harbour-orbit {
  to {
    rotate: 360deg;
  }
}
@keyframes status-pulse {
  50% {
    opacity: 0.45;
  }
}
@media (max-width: 1050px) {
  .launch-orbit {
    width: 260px;
    height: 260px;
    right: 6%;
    opacity: 0.6;
  }
  .harbour-racer {
    min-height: 670px;
  }
  .car-preview {
    height: 75px;
  }
  .harbour-garage {
    inset: 16px;
    padding: 20px;
  }
  .garage-bottom {
    gap: 18px;
  }
  .harbour-primary span {
    margin-left: 20px;
  }
}
@media (pointer: coarse) {
  .harbour-touch {
    display: flex;
  }
  .harbour-map {
    bottom: 155px;
    width: 100px;
    height: 100px;
  }
  .hud-speed {
    bottom: 150px;
  }
  .hud-drift {
    bottom: 165px;
  }
}
@media (max-width: 700px) {
  .harbour-brand b,
  .harbour-brand small {
    display: none;
  }
  .harbour-header {
    padding: 12px 18px;
    gap: 12px;
  }
  .harbour-brand img {
    width: 83px;
    height: 38px;
  }
  .harbour-status {
    font-size: 10px;
  }
  .harbour-admin {
    font-size: 10px;
    padding: 7px 11px;
  }
  .harbour-notice {
    padding: 20px;
  }
  .harbour-notice h1 {
    font-size: 20px;
  }
  .notice-tag {
    display: none;
  }
  .maintenance-3d main {
    padding: 0 12px 20px;
  }
  .harbour-racer {
    height: 83dvh;
    min-height: 740px;
  }
  .harbour-launch {
    padding: 35px;
  }
  .launch-orbit {
    width: 190px;
    height: 190px;
    top: 20%;
    right: 8%;
    opacity: 0.3;
  }
  .harbour-launch h2 {
    font-size: 46px;
  }
  .harbour-garage {
    inset: 9px;
    padding: 17px;
  }
  .garage-top h2 {
    font-size: 20px;
  }
  .garage-wallet b {
    font-size: 20px;
  }
  .car-options {
    gap: 6px;
  }
  .car-card {
    padding: 9px 6px;
  }
  .car-card h3 {
    font-size: 12px;
  }
  .car-preview {
    height: 70px;
  }
  .car-card small {
    font-size: 9px;
  }
  .car-card .car-spec {
    font-size: 8px;
    line-height: 1.8;
  }
  .car-card.selected::after {
    font-size: 7px;
    top: 7px;
    right: 5px;
  }
  .car-card .car-cost {
    display: block;
    float: none;
    margin-top: 4px;
    font-size: 9px;
  }
  .garage-bottom {
    grid-template-columns: 1fr;
    margin-top: 20px;
    gap: 18px;
  }
  .upgrade-grid {
    gap: 6px;
  }
  .upgrade-grid button {
    font-size: 10px;
    padding: 8px;
  }
  .garage-footnote {
    font-size: 9px;
    margin-top: 14px;
  }
  .hud-time {
    left: 18px;
    top: 20px;
  }
  .hud-time b {
    font-size: 29px;
  }
  .hud-time small {
    font-size: 8px;
  }
  .hud-checkpoint {
    left: 168px;
    top: 22px;
  }
  .hud-checkpoint b {
    font-size: 17px;
    line-height: 2.3;
  }
  .hud-checkpoint small {
    font-size: 8px;
  }
  .hud-checkpoint span {
    font-size: 8px;
  }
  .hud-tools {
    top: 97px;
    right: 18px;
  }
  .hud-speed {
    right: 20px;
    min-width: 140px;
  }
  .hud-speed > b {
    font-size: 58px;
  }
  .nitro-meter {
    width: 145px;
  }
  .harbour-map {
    left: 17px;
    width: 100px;
    height: 100px;
  }
  .harbour-touch {
    display: flex;
    left: 10px;
    right: 10px;
  }
  .harbour-touch button {
    min-width: 44px;
    height: 49px;
    font-size: 10px;
  }
  .touch-steer,
  .touch-pedals {
    gap: 5px;
  }
  .harbour-touch .touch-gas {
    height: 66px;
  }
  .harbour-map {
    bottom: 138px;
  }
  .hud-speed {
    bottom: 145px;
  }
  .hud-drift {
    bottom: 250px;
    font-size: 16px;
    white-space: nowrap;
  }
  .harbour-overlay > div {
    padding: 24px 16px;
  }
  .harbour-overlay h2 {
    font-size: 25px;
  }
  .overlay-actions {
    flex-wrap: wrap;
  }
  .harbour-fault {
    inset: 10% 5%;
  }
  .harbour-footer {
    flex-direction: column;
    gap: 8px;
  }
  .harbour-hints {
    font-size: 6px;
    letter-spacing: 1px;
  }
}
@media (max-height: 620px) and (orientation: landscape) {
  .harbour-racer.race-active {
    position:fixed;inset:0;z-index:1000;margin:0;width:100%;
    min-height:100dvh;height:100dvh;max-height:100dvh;border:0;border-radius:0;
  }
  .harbour-racer:fullscreen {
    min-height: 100dvh;
    height: 100dvh;
    border: 0;
    border-radius: 0;
  }
  .harbour-garage {
    overflow: auto;
  }
  .harbour-map {
    width: 85px;
    height: 85px;
    bottom: 100px;
  }
  .hud-speed {
    bottom: 100px;
  }
  .harbour-touch {
    bottom: 15px;
  }
  .harbour-hints {
    display: none;
  }
}
@media (max-width:900px) and (pointer:coarse) {
  .harbour-racer.race-active {position:fixed;inset:0;z-index:1000;margin:0;width:100%;min-height:100dvh;height:100dvh;max-height:100dvh;border:0;border-radius:0;}
  .harbour-touch {display:flex;bottom:max(15px,env(safe-area-inset-bottom));left:max(12px,env(safe-area-inset-left));right:max(12px,env(safe-area-inset-right));}
  .race-active .harbour-hints{display:none}
}
@media (prefers-reduced-motion: reduce) {
  .maintenance-3d * {
    animation: none !important;
    transition: none !important;
  }
  .launch-orbit {
    opacity: 0.3;
  }
}
@media(min-width:1100px){
 .harbour-garage{display:grid;grid-template-columns:1.05fr 1fr;gap:14px 22px;align-content:start}
 .garage-top,.driver-strip,.garage-bottom,.garage-footnote{grid-column:1/-1}
 .garage-top h2{margin-bottom:6px}.garage-wallet{padding-bottom:0}.driver-strip{margin:0}
 .inspect-panel{grid-column:1;grid-row:3/5;margin:0}.inspect-panel canvas{height:100%;min-height:295px}
 .car-options{grid-column:2;grid-row:3;gap:8px}.car-card{padding:10px}.car-card h3{font-size:13px}.car-preview{height:65px}.car-card .car-spec{font-size:9px}.car-card .car-cost{float:none;display:block;margin-top:6px}
 .map-picker{grid-column:2;grid-row:4;grid-template-columns:1fr;margin:0;gap:6px}.map-picker p{font-size:10px}
 .garage-bottom{margin:5px 0 0}.garage-footnote{margin:0}
}
/* Room lobby: same visual language, bounded on small touch screens. */
.multiplayer-overlay{z-index:25;overflow:auto;background:rgba(3,13,25,.94)}
.multiplayer-overlay>div{max-width:820px;width:95%;max-height:90vh;overflow:auto;border:1px solid #5ce4dd55;background:linear-gradient(140deg,#132b3c,#081522);box-shadow:0 0 80px #14b8a620}
.net-form{display:flex;align-items:end;gap:12px;flex-wrap:wrap;margin:16px 0}.net-form label{flex:1;min-width:180px}.net-form input{min-width:150px;flex:1}
.net-member{padding:14px;border-bottom:1px solid #93e8e522;background:linear-gradient(90deg,#21bcbf13,transparent);font-size:15px}
[data-net-list]{display:grid;gap:8px;margin:16px 0}[data-net-status]{color:#8af8de;min-height:24px}
.multiplayer-overlay input,.multiplayer-overlay select{width:100%;padding:12px;background:#0d2639;color:#e4fffb;border:1px solid #427185;border-radius:8px}
.multiplayer-overlay button{padding:12px;border:1px solid #5f8798;border-radius:8px;background:#173547;color:#e0fcff;cursor:pointer}.multiplayer-overlay button:disabled{opacity:.4;cursor:not-allowed}
.net-nameplate{position:absolute;z-index:3;transform:translate(-50%,-100%);pointer-events:none;white-space:nowrap;padding:4px 9px;background:#072c3de0;border:1px solid #71dfd899;border-radius:12px;color:#e7fffc;font:12px system-ui;box-shadow:0 2px 10px #0006}.net-nameplate[hidden]{display:none}
.net-nameplate{left:0;top:0;will-change:transform;contain:layout style}
.hud-tools [data-recover]{width:auto;padding:0 10px;font:11px system-ui;white-space:nowrap}
.hud-tools [data-recover]:disabled{opacity:.5}
.live-race-board{position:absolute;left:20px;top:130px;width:246px;pointer-events:auto;background:#061b29e8;border:1px solid #48dccc55;border-radius:12px;padding:10px;color:#e0fff6;font:11px system-ui;contain:layout style}
.live-race-board summary{cursor:pointer;color:#7bffdf;font-weight:700;letter-spacing:.04em}.live-race-board>small{display:block;font-size:9px;opacity:.66;margin-top:5px}
.live-race-board ol{list-style:none;padding:0;margin:8px 0;display:flex;flex-direction:column;gap:3px}
.live-race-board li{display:grid;grid-template-columns:20px 1fr;column-gap:5px;border-radius:5px;padding:4px;background:#0e3044aa}
.live-race-board li.is-self{background:#127e7159;outline:1px solid #77ffda66}.live-race-board li b{grid-row:span 2;align-self:center;color:#86ffdf}.live-race-board li span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.live-race-board li small{color:#92b8c7;font-size:9px}
.hud-technique{position:absolute;left:50%;bottom:28%;transform:translateX(-50%);color:#bdff6d;font:bold 14px system-ui;text-shadow:0 2px 8px #000;white-space:nowrap}
.race-techniques{grid-column:1/-1;font:12px system-ui;color:#b2ced5;padding:10px;border:1px solid #406573;border-radius:8px}.race-techniques summary{cursor:pointer;color:#97f8d9}.race-techniques p{line-height:1.7}
.race-performance{position:absolute;right:20px;top:85px;display:flex;align-items:center;gap:8px;font:11px system-ui;color:#a3ffdd;background:#071c29dc;border:1px solid #65ebc944;border-radius:9px;padding:6px 9px;pointer-events:auto;contain:layout style}
.race-performance button{border:1px solid #66d3c777;border-radius:5px;background:#14423e;color:#caffed;padding:4px 7px;cursor:pointer;font:inherit}.race-performance.is-slow{color:#ffd28c}
@media(max-width:700px){.race-performance{right:10px;top:142px;gap:5px;font-size:9px;padding:4px 6px}}
@media(max-height:550px) and (orientation:landscape){.race-performance{top:65px}.hud-tools{top:26px}}
@media(max-width:700px){.live-race-board{left:10px;top:182px;width:173px;padding:7px;font-size:10px}.live-race-board li{padding:2px 4px}.live-race-board>small{font-size:8px}.hud-tools{gap:4px}.hud-technique{bottom:30%;font-size:11px}.hud-tools [data-recover]{font-size:10px;padding:0 6px}}
@media(max-height:550px){.live-race-board{top:70px;width:182px}.live-race-board li small{display:none}.live-race-board>small:last-child{display:none}}
.asset-pack{display:block;border:1px solid #4daaaa35;border-radius:12px;background:linear-gradient(110deg,#12303a77,#0c202944);margin:12px 0 20px;font-size:12px}
.asset-pack summary{list-style:none;display:flex;align-items:center;gap:12px;cursor:pointer;padding:13px 16px}.asset-pack summary::-webkit-details-marker{display:none}.asset-pack small{display:block;color:#88aab5;font-size:10px;margin-top:2px}.asset-pack b{color:#d0eded;font-weight:600}.pack-icon{display:grid;place-items:center;width:30px;height:30px;border:1px solid #78d9d255;border-radius:9px;color:#86eee0}.pack-expand{margin-left:auto;font-size:11px;color:#8dded9}.pack-body{padding:0 16px 14px;border-top:1px solid #52828c33}.pack-body p{font-size:12px;line-height:1.7;color:#a9c8cf;max-width:680px}.pack-actions{display:flex;gap:10px;flex-wrap:wrap}.pack-actions button,.settings-launch,.music-tools button,.board-group{appearance:none;background:#17404a;border:1px solid #67b0b477;color:#d1f4f0;border-radius:8px;padding:9px 15px;font:inherit}.pack-actions button:last-child{background:transparent;color:#8daeb9;border-color:#44667466}.pack-actions button:disabled{opacity:.45}.pack-actions button:hover,.settings-launch:hover{border-color:#99f8e4;background:#24515a}
.racer-settings{z-index:30!important;align-items:center}.racer-settings>div{width:min(590px,100%);max-height:90%;overflow:auto;text-align:left!important;padding:26px!important}.racer-settings header{display:flex;justify-content:space-between;align-items:center;gap:12px}.racer-settings h2{font-size:28px!important;margin:0}.racer-settings header button{background:transparent;border:1px solid #446775;border-radius:8px;color:#b0d9df;width:36px;height:36px;font-size:24px}.racer-settings .settings-note,.racer-settings p{font-size:12px;color:#93b3c0;line-height:1.6}.racer-settings label{display:grid;gap:7px;color:#c4e3e5;font-size:13px;margin:15px 0}.racer-settings .garage-settings{display:grid;grid-template-columns:1fr;margin:0;gap:0}.racer-settings select{width:100%;background:#09222d;color:#ddf7ef;padding:11px;border:1px solid #57828f;border-radius:8px}.racer-settings input[type=range]{accent-color:#86e9d7;width:100%}.racer-settings .mute-toggle{display:flex;align-items:center;gap:10px;padding:12px;border:1px solid #54828c66;border-radius:8px}.racer-settings input[type=checkbox]{width:18px;height:18px;accent-color:#84e8d7;margin:0}.music-tools{display:flex;align-items:center;gap:16px;font-size:11px}.racer-settings output{color:#e3bb83}.settings-launch{margin:10px 0}.hud-tools .settings-launch{width:auto;height:36px;font:11px system-ui;margin:0;white-space:nowrap;padding:0 10px}
.board-summary{color:#8eeddd;font-size:13px!important}.board-catalog{font-size:12px;text-align:left;padding:12px 0}.board-catalog summary{cursor:pointer;color:#8aded5}.board-group{display:block;text-align:left;width:100%;margin:7px 0;font-size:11px}.board-group:hover{border-color:#85e5cf}
.launch-wind{position:absolute;right:2%;top:15%;width:52%;height:72%;border:1px solid #60879233;border-radius:24px;overflow:hidden;background:#091722;box-shadow:0 30px 80px #0003}.launch-wind canvas{width:100%;height:100%;display:block;touch-action:pan-y}.wind-caption{position:absolute;left:22px;right:22px;bottom:20px;pointer-events:none;display:grid;gap:4px}.wind-caption b{font-size:18px;letter-spacing:3px;color:#e6c493}.wind-caption span{font-size:10px;letter-spacing:2px;color:#abd5df}.wind-caption small{font-size:10px;color:#7497a6}.harbour-launch>p,.harbour-launch>h2,.harbour-launch>[data-load-racer],.harbour-launch>[data-load-status]{position:relative;max-width:43%;z-index:1}
.dash-loader{position:relative;width:180px;height:143px;margin:14px 0 0;--progress:0}.dash-loader svg{width:180px;height:108px;overflow:visible}.gauge-track,.gauge-fill{fill:none;stroke-width:7;stroke-linecap:round}.gauge-track{stroke:#244551}.gauge-fill{stroke:#8ae8d1;stroke-dasharray:100;stroke-dashoffset:calc(100 - var(--progress));transition:stroke-dashoffset .12s}.gauge-needle{fill:none;stroke:#e8bc7e;stroke-width:2;transform-origin:90px 90px;transform:rotate(calc(var(--progress)*1.8deg));transition:transform .12s}.dash-loader strong{position:absolute;top:57px;left:0;width:100%;text-align:center;color:#e8d2ac;font:700 21px system-ui}.dash-loader small{display:block;text-align:center;font-size:10px;color:#a5c3cd}.harbour-launch:has(.dash-loader:not([hidden]))>[data-load-racer]{display:none}
@media(max-width:850px){.launch-wind{position:relative;right:auto;top:auto;width:100%;height:260px;margin-bottom:24px}.harbour-launch>p,.harbour-launch>h2,.harbour-launch>[data-load-racer],.harbour-launch>[data-load-status]{max-width:100%}.harbour-launch{padding:24px!important}.wind-caption{bottom:12px}.pack-expand{font-size:10px}.racer-settings>div{padding:18px!important}.hud-tools .settings-launch{font-size:10px;padding:0 6px}.board-filters{grid-template-columns:1fr 1fr}}
@media(prefers-reduced-motion:reduce){.gauge-fill,.gauge-needle{transition:none}}
.harbour-garage,.harbour-overlay>div{scrollbar-width:thin;scrollbar-color:#426c78 #102a36}
.harbour-launch h2{font-size:clamp(36px,4.25vw,70px)}
@media(max-width:850px){.wind-caption{top:12px;bottom:auto;left:16px}}
