@media (max-width: 760px) {
  .preview-edit-layout {
    grid-template-columns: 1fr;
  }

  .character-hero,
  .character-radar-layout,
  .career-branches,
  .town-layout {
    grid-template-columns: 1fr;
  }

  .career-branches {
    min-width: 0;
  }

  .town-map {
    grid-template-columns: repeat(7, minmax(28px, 1fr));
    justify-self: stretch;
    overflow-x: auto;
  }

  .town-layout {
    align-items: stretch;
    overflow: auto;
  }

  .town-stage {
    width: 100%;
    margin-top: 12px;
    grid-template-columns: 46px minmax(220px, 1fr) 46px;
    grid-template-rows: minmax(58px, auto) auto 52px;
    gap: 8px;
    padding: 0;
    min-height: 520px;
    overflow: visible;
  }

  .town-map-frame {
    height: auto;
    min-height: 0;
    align-content: start;
  }

  .town-map-shell {
    width: min(360px, 100%);
  }

  .town-main-area {
    grid-template-rows: auto minmax(220px, 1fr);
  }

  .town-building-panel {
    max-height: 220px;
  }

  .town-building-list {
    display: grid;
    grid-template-columns: 1fr;
  }

  .current-job-panel > div {
    grid-template-columns: 1fr;
    justify-items: center;
    text-align: center;
  }

  .character-sprite-frame,
  .job-sprite-frame {
    width: min(160px, 100%);
  }

  .preview-edit-frame {
    width: min(220px, 100%);
  }
}

@media (max-width: 520px) {
  .app-shell {
    padding: 0;
  }

  .login-card {
    width: calc(100% - 32px);
    padding: 24px;
  }

  h1 {
    font-size: 32px;
  }

  .top-status-bar,
  .top-session,
  .admin-grid,
  .panel-head,
  .panel-actions {
    display: grid;
  }

  .top-status-bar {
    padding: 12px 16px;
  }

  .game-nav-inner {
    width: calc(100% - 32px);
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: stretch;
    padding: 12px 0;
  }

  .game-nav-inner .ghost-button {
    width: 100%;
  }

  .character-nav-summary {
    grid-column: 1 / -1;
    margin-left: 0;
    justify-content: flex-start;
  }

  .daily-task-card {
    grid-template-columns: 1fr;
    justify-items: stretch;
  }

  .daily-task-claim-button {
    justify-self: start;
  }

  .top-session {
    grid-template-columns: repeat(2, minmax(0, auto));
    justify-content: start;
  }

  .view-content {
    width: calc(100% - 32px);
    padding: 16px 0 40px;
  }

  .panel-actions {
    justify-content: stretch;
  }

  .member-row-main {
    grid-template-columns: 1fr;
  }

  .lab-member-row {
    grid-template-columns: 38px minmax(0, 1fr);
  }

  .lab-member-state {
    grid-column: 2;
    justify-items: start;
    text-align: left;
  }

  .character-stats-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .account-summary {
    grid-template-columns: 1fr;
  }

  .share-address-box {
    grid-template-columns: 1fr;
  }

  .project-item,
  .project-open-button,
  .project-detail-summary,
  .preview-layout,
  .preview-edit-layout {
    grid-template-columns: 1fr;
  }

  .project-thumb,
  .project-preview-frame {
    width: 100%;
  }

  .edit-preview-button {
    justify-self: stretch;
  }

  .project-actions {
    justify-content: flex-start;
  }

  .version-item {
    grid-template-columns: 1fr;
  }

  .project-consensus-list,
  .project-consensus-editor-grid,
  .project-consensus-form-grid {
    grid-template-columns: 1fr;
  }

  .comment-item {
    grid-template-columns: 1fr;
  }

  .version-feedback-layout,
  .feedback-kind-grid,
  .version-meta-row {
    grid-template-columns: 1fr;
  }

  .discussion-section-head,
  .version-meta-editor-head {
    align-items: flex-start;
    flex-direction: column;
  }

  .comment-like-button {
    width: fit-content;
  }

  .version-side {
    justify-items: start;
  }

  .version-actions {
    justify-content: flex-start;
  }

  .member-actions,
  .modal-actions {
    justify-content: start;
  }

  .play-header {
    display: grid;
    padding: 16px;
  }

  .play-stage {
    padding: 10px;
  }

  .game-frame {
    min-height: calc(100vh - 142px);
  }

  .play-loading-text {
    font-size: 18px;
  }
}
