@media (max-width: 620px) and (orientation: portrait) {
  .hand-dock {
    grid-column: 1;
    grid-row: 3;
    height: 100%;
    padding: 5px 32px;
  }

  .hand-scroll {
    grid-auto-columns: 78px;
    gap: 7px;
    padding: 10px 1px 6px;
  }

  .hand-arrow {
    width: 28px;
    height: 58px;
    font-size: 2rem;
  }

  .hand-arrow.left {
    left: 2px;
  }

  .hand-arrow.right {
    right: 2px;
  }

  .card {
    height: 98px;
    gap: 3px;
    padding: 7px 6px 6px;
  }

  .card-name {
    min-height: 28px;
    padding-right: 20px;
    font-size: 0.66rem;
  }

  .card-art {
    min-height: 48px;
    font-size: 1.55rem;
  }

  .card-info {
    top: 5px;
    right: 5px;
    width: 18px;
    height: 18px;
    font-size: 0.68rem;
  }

  .card-confirm-badge {
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    padding: 4px 7px;
    font-size: 0.58rem;
  }

  .floating-card-tooltip {
    width: min(220px, calc(100vw - 20px));
    font-size: 0.72rem;
  }

  .modal-backdrop {
    place-items: stretch;
    padding: 6px;
  }

  .right-rail {
    grid-column: 1;
    grid-row: 4;
    z-index: 30;
    min-height: 0;
    display: grid;
    grid-template-columns: max-content minmax(0, 1fr);
    grid-template-rows: 1fr;
    gap: 6px;
    align-content: stretch;
  }

  .right-rail:has(.test-setup-panel) {
    grid-template-rows: 1fr;
  }

  .right-rail:has(.test-setup-panel) .controls {
    grid-column: 2;
    grid-row: 1;
  }

  .right-rail > .test-setup-panel {
    display: none;
  }

  .mobile-test-setup-button {
    display: grid;
  }

  .test-setup-sheet {
    align-self: end;
    height: auto;
    max-height: min(86vh, 640px);
    grid-template-rows: auto minmax(0, 1fr);
    gap: 8px;
    padding: 12px;
  }

  .test-setup-sheet .test-setup-panel {
    display: grid;
    position: static;
    z-index: auto;
    max-height: none;
    min-height: 0;
    overflow: auto;
    padding: 10px;
    gap: 8px;
  }

  .test-setup-sheet .test-setup-panel .section-title {
    display: none;
  }

  .test-setup-sheet .modal-title {
    font-size: 0.9rem;
  }

  .test-setup-sheet .modal-head .ghost-button {
    min-height: 32px;
    padding: 6px 9px;
    font-size: 0.72rem;
  }

  .test-select-grid {
    grid-template-columns: 1fr;
    gap: 6px;
  }

  .test-field {
    font-size: 0.6rem;
  }

  .test-field select {
    min-height: 30px;
    padding: 5px 7px;
    font-size: 0.66rem;
  }

  .test-start-button {
    min-height: 36px;
    padding: 6px 8px;
    font-size: 0.66rem;
  }

  .top-actions {
    grid-column: 1;
    grid-row: 1;
    justify-content: stretch;
    gap: 4px;
    width: max-content;
    max-width: 140px;
  }

  .gear-button {
    width: 44px;
    height: 44px;
    font-size: 0.95rem;
  }

  .return-lobby-icon {
    width: 23px;
    height: 23px;
  }

  .controls {
    grid-column: 2;
    grid-row: 1;
    display: grid;
    min-width: 0;
    align-self: stretch;
    
    gap: 5px;
  }

  .control-stack {
    height: 100%;
    align-content: stretch;
    gap: 5px;
  }

  .primary-button {
    width: 100%;
    min-width: 0;
    min-height: 42px;
    padding: 7px 10px;
    font-size: 0.88rem;
    line-height: 1.05;
  }

  .action-meter {
    min-height: 34px;
    padding: 6px 8px;
    font-size: 0.62rem;
    line-height: 1.08;
  }

  .reaction-choice {
    grid-template-columns: 1fr 1fr;
    gap: 6px;
  }

  .reaction-choice .primary-button,
  .reaction-choice .ghost-button {
    min-height: 44px;
    padding: 7px 8px;
    font-size: 0.72rem;
  }

  .modal-sheet {
    width: 100%;
    height: 100%;
    max-height: none;
    gap: 7px;
    padding: 10px;
  }

  .test-setup-sheet {
    align-self: end;
    height: auto;
    max-height: min(86vh, 640px);
  }

  .modal-sheet.post-match-sheet {
    width: calc(100vw - 16px);
    max-height: calc(100vh - 12px);
    gap: 8px;
    padding: 12px 10px 10px;
  }

  .post-match-head {
    gap: 3px;
    padding: 2px 22px 0;
  }

  .post-match-head p {
    font-size: 0.76rem;
    line-height: 1.18;
  }

  .post-match-sheet .post-match-rating {
    margin: 0;
    padding: 7px 9px;
  }

  .post-match-feedback {
    gap: 6px;
    padding: 8px;
  }

  .feedback-sentiments {
    gap: 5px;
  }

  .feedback-sentiment {
    min-height: 44px;
    padding: 5px 2px;
    font-size: 0.62rem;
  }

  .feedback-report-actions {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .modal-title {
    font-size: 1rem;
  }

  .modal-head {
    gap: 8px;
  }

  .modal-head .ghost-button,
  .builder-tabs .ghost-button {
    min-height: 31px;
    padding: 6px 9px;
    font-size: 0.7rem;
  }

  .builder-tabs {
    gap: 6px;
  }

  .builder-note {
    font-size: 0.72rem;
    line-height: 1.25;
  }

  .builder-difficulty {
    gap: 7px;
  }

  .builder-difficulty-label {
    width: 100%;
    font-size: 0.82rem;
  }

  .builder-stats {
    gap: 5px;
  }

  .builder-stats .mini-pill {
    padding: 2px 5px;
    font-size: 0.56rem;
  }

  .builder-list {
    gap: 5px;
    padding-right: 3px;
  }

  .builder-group-title {
    margin: 6px 0 2px;
    font-size: 0.82rem;
  }

  .builder-row {
    min-height: 52px;
    padding: 7px 8px;
  }

  .builder-card-name {
    gap: 5px;
    font-size: 0.78rem;
  }

  .builder-rarity-chip {
    min-width: 38px;
    min-height: 18px;
    padding: 2px 5px;
    font-size: 0.54rem;
  }

  .builder-card-meta {
    font-size: 0.68rem;
    line-height: 1.18;
  }

  .counter {
    grid-template-columns: 26px 32px 26px;
    gap: 4px;
  }

  .tiny-button {
    min-width: 26px;
    min-height: 26px;
    padding: 3px 6px;
  }

  .modal-foot {
    align-items: stretch;
    gap: 7px;
  }

  .modal-foot > .validation {
    min-width: 0;
    flex: 1 1 auto;
    font-size: 0.68rem;
  }

  .modal-foot .builder-tabs {
    flex: 0 0 auto;
    align-items: stretch;
  }

  .modal-foot .ghost-button,
  .modal-foot .primary-button {
    min-height: 42px;
    padding: 7px 9px;
    font-size: 0.76rem;
  }


  .card-reactor-badge {right: 0px;}
    .card-reactor-battery { width: 16px; height: 10px }
      .card-reactor-battery span {font-size: 0.42rem; font-weight: 400}
      .card-reactor-battery::after { top: 1px;width: 2px; height: 6px; right: -2px }
}
