@layer components {
  .product-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--spacing-3);
  }

  .product-item {
    display: flex;
    align-items: center;
    gap: var(--spacing-3);
    padding: var(--spacing-3);
    background-color: var(--color-gray-50);
    border: 1px solid var(--color-gray-200);
    border-radius: var(--radius-md);
    transition: border-color 0.15s ease, background-color 0.15s ease;

    &:hover {
      border-color: var(--color-primary-200);
      background-color: var(--color-primary-50);
    }

    & label {
      flex: 1;
      font-size: var(--font-size-sm);
      color: var(--color-gray-700);
    }

    & input[type="number"] {
      inline-size: 5rem;
      padding: var(--spacing-2) var(--spacing-3);
      font-size: var(--font-size-sm);
      text-align: center;
    }

    & input[type="checkbox"] {
      inline-size: 1.125rem;
      block-size: 1.125rem;
      accent-color: var(--color-primary-600);
    }
  }

  .product-search {
    margin-block-end: var(--spacing-4);

    & input {
      inline-size: 100%;
      padding: var(--spacing-2) var(--spacing-4);
      border: 1px solid var(--color-gray-300);
      border-radius: var(--radius-md);
      font-size: var(--font-size-sm);
    }
  }

  @media (max-width: 639px) {
    .product-grid {
      grid-template-columns: 1fr;
      gap: var(--spacing-2);
    }

    .product-item {
      flex-wrap: wrap;
      gap: var(--spacing-2);

      & input[type="number"] {
        inline-size: 100%;
        min-inline-size: 0;
      }
    }
  }
}
