@media (max-width: 1180px) {
  .module-grid {
    grid-template-columns: repeat(2, minmax(240px, 1fr));
  }

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

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

  .work-table-header {
    display: none;
  }

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

  .work-row > div + div {
    border-top: 1px solid var(--color-border);
    border-left: 0;
  }
}

@media (max-width: 760px) {
  .app-shell {
    width: 100%;
    padding: var(--space-2);
    gap: var(--space-3);
  }

  .topbar {
    align-items: flex-start;
    flex-direction: column;
  }

  .storage-status {
    width: 100%;
    white-space: normal;
  }

  .home-page,
  .page {
    padding: var(--space-4);
  }

  h2 {
    font-size: 1.55rem;
  }

  .module-grid {
    grid-template-columns: 1fr;
  }

  .module-card {
    min-height: 210px;
  }

  .module-heading,
  .work-heading {
    flex-direction: column;
    align-items: stretch;
  }

  .module-status,
  .progress-summary {
    min-width: 0;
  }

  .progress-metrics {
    grid-template-columns: 1fr;
  }

  .feature-grid,
  .numbered-grid,
  .step-section-grid,
  .step-header {
    grid-template-columns: 1fr;
  }

  .step-header {
    padding: var(--space-4);
  }

  .work-heading,
  .step-notes {
    padding: var(--space-3);
  }

  .step-header-actions .button,
  .row-actions .button {
    width: 100%;
  }

  .step-navigation {
    grid-template-columns: 1fr;
  }

  .step-navigation .button,
  .step-navigation select {
    width: 100%;
  }

  .work-row > div {
    padding: var(--space-3);
  }

  .modal-overlay {
    padding: var(--space-2);
  }

  .modal-dialog {
    width: calc(100vw - 16px);
    height: calc(100vh - 16px);
  }

  .modal-header,
  .modal-body {
    padding: var(--space-3);
  }

  .emotion-wheel-panel {
    min-height: 430px;
  }

  .emotion-wheel {
    width: min(92vw, 420px);
  }

  .emotion-sector {
    border-width: 3px;
  }

  .emotion-wheel-center {
    border-width: 4px;
    font-size: 0.78rem;
  }
}
