@media (max-width: 1400px) {
  .store-floor { padding-right: 322px; }
  .lanes-area { grid-template-columns: 248px minmax(700px, 1fr); }
  .lane { width: 90px; }
  .lanes-wrapper { gap: 26px; }
}

@media (max-height: 920px) {
  .game {
    gap: 10px;
    padding: 10px;
  }

  .hud,
  .footer-bar {
    padding: 8px 12px;
    font-size: 10px;
    line-height: 1.4;
  }

  .progress-cluster {
    min-width: 190px;
  }

  .hud-goals {
    gap: 3px;
  }

  .wall-top,
  .wall-bottom {
    height: 78px;
  }

  .windows {
    top: 8px;
    left: 20px;
    right: 20px;
    gap: 6px;
  }

  .window {
    height: 58px;
  }

  .windows-sky {
    top: 8px;
    left: 20px;
    right: 20px;
    height: 58px;
  }

  .store-banner {
    top: 86px;
    font-size: 12px;
    padding: 8px 12px;
  }

  .staff-panel {
    top: 100px;
    right: 16px;
    bottom: 12px;
    width: 250px;
    padding: 8px;
  }

  .store-floor {
    padding: 108px 294px 12px 20px;
  }

  .service-office {
    min-height: 340px;
    padding: 8px;
  }

  .office-stats,
  .office-assigned,
  .office-cashier strong,
  .office-cashier span {
    font-size: 12px;
  }

  .staff-meta,
  .staff-meta .assignment,
  .staff-meta .unlock-cost {
    font-size: 11px;
  }


  .lane {
    width: 92px;
    min-height: clamp(300px, 42svh, 400px);
  }

  .lane-meta {
    width: 96px;
    min-height: 52px;
    font-size: 16px;
  }

  .cashier-booth {
    margin-bottom: 12px;
  }

  .belt { width: 72px; }

  .queue-space { right: -59px; width: 56px; top: 156px; }
}

@media (max-height: 760px) {
  .game {
    height: auto;
    min-height: 100svh;
    grid-template-rows: auto auto auto;
    gap: 8px;
    padding: 8px;
  }

  .hud,
  .footer-bar {
    gap: 8px;
    padding: 6px 10px;
    font-size: 9px;
  }

  .progress-line small {
    font-size: 8px;
  }

  .wall-top,
  .wall-bottom {
    height: 62px;
  }

  .windows {
    top: 6px;
    left: 16px;
    right: 16px;
    gap: 5px;
    grid-template-columns: repeat(7, minmax(0, 1fr));
  }

  .windows-sky {
    top: 6px;
    left: 16px;
    right: 16px;
  }

  .window {
    width: 100%;
    height: 46px;
  }

  .windows-sky {
    height: 46px;
  }

  .store-banner {
    top: 72px;
    font-size: 11px;
  }

  .staff-panel {
    top: 88px;
    right: 12px;
    bottom: 10px;
    width: 228px;
    padding: 6px;
  }

  .store-floor {
    padding: 92px 256px 12px 16px;
  }

  .lanes-area {
    gap: 14px;
  }

  .service-office {
    min-height: 300px;
    padding: 6px;
  }

  .manager-card {
    padding: 6px;
    min-height: 54px;
    font-size: 11px;
  }

  .manager-card strong {
    font-size: 11px;
  }

  .summary-card {
    padding: 14px;
    gap: 10px;
  }

  .summary-actions {
    padding-top: 4px;
  }

  .service-office h2,
  .staff-panel h2 {
    font-size: 9px;
    margin-bottom: 6px;
  }

  .office-stats,
  .office-assigned,
  .office-cashier strong,
  .office-cashier span {
    font-size: 11px;
  }

  .staff-meta,
  .staff-meta .assignment,
  .staff-meta .unlock-cost,
  .legend {
    font-size: 10px;
  }


  .lane {
    width: 88px;
    min-height: clamp(280px, 40svh, 360px);
  }

  .lane-label,
  .lane-cta,
  .lane-status {
    font-size: 7px;
  }

  .hud-goal {
    font-size: 6px;
    padding: 2px 3px;
  }

  .cashier-booth { width: 80px; height: 70px; }

  .cashier-sprite {
    transform: scale(0.9);
    transform-origin: center bottom;
  }

  .belt {
    width: 68px;
    height: clamp(132px, 24svh, 176px);
  }

  .queue-space {
    top: 160px;
    right: -59px;
    width: 56px;
  }

  .customer {
    transform-origin: center top;
  }
}
