@media (max-width: 900px) {
  .app-main {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 640px) {
  .app-shell {
    width: min(100vw - 12px, 100%);
    padding-top: 10px;
    padding-bottom: 18px;
  }

  .app-header {
    grid-template-columns: 1fr;
    gap: 10px;
    margin-bottom: 14px;
  }

  .header-meta {
    align-items: stretch;
    gap: 10px;
  }

  .version-switcher {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 8px;
    width: 100%;
  }

  .version-switcher-label {
    display: block;
  }

  .version-switcher select,
  .header-meta .header-link {
    width: 100%;
  }

  .header-changelog-link {
    justify-content: center;
  }

  .board-panel,
  .side-panel {
    padding: 14px;
  }

  .panel-head {
    align-items: start;
    flex-direction: column;
    margin-bottom: 12px;
  }

  .controls-inline {
    width: 100%;
    gap: 10px;
  }

  .controls-inline label,
  .controls-inline button,
  .fullscreen-toolbar-button,
  .button-row button,
  .turn-badge {
    width: 100%;
  }

  .board-toolbar {
    flex-direction: column;
    align-items: stretch;
    gap: 10px;
  }

  .controls-inline select {
    width: 100%;
  }

  .button-row {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .board-actions {
    gap: 10px;
  }

  .board-view,
  .board-view svg {
    min-height: min(58vh, 480px);
  }

  .turn-bar {
    gap: 10px;
  }

  .board-summary {
    padding: 12px;
    font-size: 0.94rem;
    line-height: 1.4;
  }

  .milestone-list {
    font-size: 0.94rem;
  }

  .instructions,
  #status-text {
    font-size: 0.94rem;
    line-height: 1.4;
  }
}
