@media (max-width: 1080px) {
  .workspace {
    grid-template-columns: minmax(360px, 1fr) minmax(380px, 46vw);
  }

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

  .preset-selector {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 780px) {
  body {
    overflow: auto;
  }

  .app-header {
    position: sticky;
    top: 0;
    height: 58px;
    padding: 0 12px;
  }

  .brand-name,
  .header-divider,
  .lab-name {
    display: none;
  }

  .workspace {
    display: block;
    height: auto;
  }

  .viewer-pane {
    width: 100%;
    height: min(62vh, 560px);
    min-height: 430px;
  }

  .report-pane {
    min-height: 600px;
    box-shadow: 0 -1px 0 var(--line);
  }

  .report-scroll {
    height: auto;
    overflow: visible;
    padding: 24px 18px 48px;
  }

  .report-tabs {
    top: 58px;
    margin-right: -18px;
    margin-left: -18px;
    padding-right: 18px;
    padding-left: 18px;
  }

  .preset-selector {
    grid-template-columns: 1fr 1fr;
  }

  .viewer-toolbar {
    right: 12px;
    bottom: 12px;
    left: 12px;
    justify-content: center;
    transform: none;
  }
}

@media (max-width: 520px) {
  .prototype-badge {
    display: none;
  }

  .preset-selector,
  .metrics-grid {
    grid-template-columns: 1fr;
  }

  .report-pane.has-result .preset-selector {
    flex-wrap: wrap;
    overflow: visible;
  }

  .merchant-outcome-grid {
    grid-template-columns: 1fr;
  }

  .merchant-next-step {
    align-items: stretch;
    flex-direction: column;
  }

  .merchant-next-step .secondary-button {
    width: 100%;
  }

  .drop-surface {
    padding: 24px 18px;
  }

  .drop-surface h2 {
    font-size: 30px;
  }

  .viewer-pane {
    min-height: 400px;
  }

  .privacy-chip {
    top: 10px;
    left: 10px;
  }

  .exposure-control {
    display: none;
  }

  .file-summary {
    grid-template-columns: 36px minmax(0, 1fr);
  }

  .file-summary .secondary-button {
    grid-column: 1 / -1;
    width: 100%;
  }

  .validation-summary {
    grid-template-columns: repeat(2, 1fr);
  }

  .validation-stat:nth-child(2) {
    box-shadow: none;
  }

  .validation-stat:nth-child(-n + 2) {
    box-shadow: 0 1px 0 var(--line);
  }

  .fact-list li,
  .detail-list li {
    grid-template-columns: 1fr;
    gap: 4px;
  }

  .fact-list span:last-child,
  .detail-list span:last-child {
    text-align: left;
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}
